-
-
Save mysterious-static/b7f8bb14e4a9ab093442c05ebf3aaa24 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From f89fa6404142834b16a6bd54b7650eccb5f51e30 Mon Sep 17 00:00:00 2001 | |
From: tje3d <[email protected]> | |
Date: Thu, 28 Sep 2017 21:28:17 +0330 | |
Subject: [PATCH] wg_tena_gm | |
--- | |
src/server/game/Battlefield/Battlefield.cpp | 3 ++ | |
.../game/Battlefield/Zones/BattlefieldWG.cpp | 52 ++++++++-------------- | |
src/server/game/Battlefield/Zones/BattlefieldWG.h | 2 + | |
3 files changed, 23 insertions(+), 34 deletions(-) | |
diff --git a/src/server/game/Battlefield/Battlefield.cpp b/src/server/game/Battlefield/Battlefield.cpp | |
index d2f579ed17..dc02a1e438 100644 | |
--- a/src/server/game/Battlefield/Battlefield.cpp | |
+++ b/src/server/game/Battlefield/Battlefield.cpp | |
@@ -336,6 +336,9 @@ void Battlefield::InvitePlayerToQueue(Player* player) | |
void Battlefield::HandlePlayerEnterZone(Player* player, uint32 /*zone*/) | |
{ | |
+ if (player->IsGameMaster()) | |
+ return; | |
+ | |
if (IsEnabled()) | |
{ | |
if (IsWarTime() && !player->IsInFlight()) | |
diff --git a/src/server/game/Battlefield/Zones/BattlefieldWG.cpp b/src/server/game/Battlefield/Zones/BattlefieldWG.cpp | |
index ef4aec6ba8..5ce33a0cdd 100644 | |
--- a/src/server/game/Battlefield/Zones/BattlefieldWG.cpp | |
+++ b/src/server/game/Battlefield/Zones/BattlefieldWG.cpp | |
@@ -722,6 +722,7 @@ void BattlefieldWintergrasp::OnCreatureCreate(Creature* creature) | |
creature->AddAura(SPELL_HORDE_FLAG, creature); | |
_vehicleSet[team].insert(creature->GetGUID()); | |
UpdateVehicleCountWG(); | |
+ ApplyBuff(creature, false); | |
} | |
else | |
{ | |
@@ -1283,50 +1284,33 @@ void BattlefieldWintergrasp::UpdateTenacity() | |
{ | |
_tenacityTeam = newStack > 0 ? TEAM_ALLIANCE : TEAM_HORDE; | |
- if (newStack < 0) | |
- newStack = -newStack; | |
- if (newStack > 20) | |
- newStack = 20; | |
- | |
- uint32 buff_honor = SPELL_GREATEST_HONOR; | |
- if (newStack < 15) | |
- buff_honor = SPELL_GREATER_HONOR; | |
- if (newStack < 10) | |
- buff_honor = SPELL_GREAT_HONOR; | |
- if (newStack < 5) | |
- buff_honor = 0; | |
- | |
for (auto itr = _playersInWar[_tenacityTeam].begin(); itr != _playersInWar[_tenacityTeam].end(); ++itr) | |
- { | |
if (Player* player = ObjectAccessor::FindPlayer(*itr)) | |
- player->SetAuraStack(SPELL_TENACITY, player, newStack); | |
- } | |
+ ApplyBuff(player, true); | |
for (auto itr = _vehicleSet[_tenacityTeam].begin(); itr != _vehicleSet[_tenacityTeam].end(); ++itr) | |
- { | |
if (Creature* creature = GetCreature(*itr)) | |
- creature->SetAuraStack(SPELL_TENACITY_VEHICLE, creature, newStack); | |
- } | |
- | |
- if (buff_honor != 0) | |
- { | |
- for (auto itr = _playersInWar[_tenacityTeam].begin(); itr != _playersInWar[_tenacityTeam].end(); ++itr) | |
- { | |
- if (Player* player = ObjectAccessor::FindPlayer(*itr)) | |
- player->CastSpell(player, buff_honor, true); | |
- } | |
- | |
- for (auto itr = _vehicleSet[_tenacityTeam].begin(); itr != _vehicleSet[_tenacityTeam].end(); ++itr) | |
- { | |
- if (Creature* creature = GetCreature(*itr)) | |
- creature->CastSpell(creature, buff_honor, true); | |
- } | |
- } | |
+ ApplyBuff(creature, false); | |
} | |
else | |
_tenacityTeam = TEAM_NEUTRAL; | |
} | |
+void BattlefieldWintergrasp::ApplyBuff(Unit* target, bool type) const | |
+{ | |
+ uint32 buff_honor = SPELL_GREATEST_HONOR; | |
+ if (_tenacityStack < 5) | |
+ buff_honor = 0; | |
+ else if (_tenacityStack < 10) | |
+ buff_honor = SPELL_GREAT_HONOR; | |
+ else if (_tenacityStack < 15) | |
+ buff_honor = SPELL_GREATER_HONOR; | |
+ | |
+ target->SetAuraStack(type ? SPELL_TENACITY : SPELL_TENACITY_VEHICLE, target, std::min(_tenacityStack, uint32(20))); | |
+ if (buff_honor) | |
+ target->CastSpell(target, buff_honor, true); | |
+} | |
+ | |
void BattlefieldWintergrasp::SendWarning(uint8 id, Player const* target) | |
{ | |
if (!id) | |
diff --git a/src/server/game/Battlefield/Zones/BattlefieldWG.h b/src/server/game/Battlefield/Zones/BattlefieldWG.h | |
index 5a5daa249e..c0ab73ba22 100644 | |
--- a/src/server/game/Battlefield/Zones/BattlefieldWG.h | |
+++ b/src/server/game/Battlefield/Zones/BattlefieldWG.h | |
@@ -455,6 +455,8 @@ class TC_GAME_API BattlefieldWintergrasp : public Battlefield | |
WintergraspGraveyardId GetSpiritGraveyardId(uint32 areaId) const; | |
private: | |
+ void ApplyBuff(Unit* target, bool type) const; | |
+ | |
WintergraspBuilding* GetBuilding(uint32 entry) const; | |
WintergraspBuilding* GetBuilding(ObjectGuid guid) const; | |
WintergraspWorkshop* GetWorkshop(WintergraspWorkshopId id) const; | |
-- | |
2.11.0 (Apple Git-81) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment