Skip to content

Instantly share code, notes, and snippets.

@aletson
Forked from tje3d/wg_tena_gm.patch
Created October 11, 2017 11:46
Show Gist options
  • Save aletson/b7f8bb14e4a9ab093442c05ebf3aaa24 to your computer and use it in GitHub Desktop.
Save aletson/b7f8bb14e4a9ab093442c05ebf3aaa24 to your computer and use it in GitHub Desktop.
From f89fa6404142834b16a6bd54b7650eccb5f51e30 Mon Sep 17 00:00:00 2001
From: tje3d <tje3d@yahoo.com>
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