diff options
Diffstat (limited to 'src/server/scripts/Battlefield/BattlefieldWG.cpp')
-rw-r--r-- | src/server/scripts/Battlefield/BattlefieldWG.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/server/scripts/Battlefield/BattlefieldWG.cpp b/src/server/scripts/Battlefield/BattlefieldWG.cpp index a8f3d135ebd..0c6ec4624bb 100644 --- a/src/server/scripts/Battlefield/BattlefieldWG.cpp +++ b/src/server/scripts/Battlefield/BattlefieldWG.cpp @@ -21,6 +21,7 @@ #include "BattlefieldWG.h" #include "AchievementMgr.h" +#include "BattlefieldMgr.h" #include "Battleground.h" #include "CreatureTextMgr.h" #include "GameObject.h" @@ -31,6 +32,7 @@ #include "ObjectAccessor.h" #include "Player.h" #include "Random.h" +#include "ScriptedCreature.h" #include "ScriptMgr.h" #include "SpellAuras.h" #include "TemporarySummon.h" @@ -1864,7 +1866,36 @@ public: } }; +class npc_wg_give_promotion_credit : public CreatureScript +{ +public: + npc_wg_give_promotion_credit() : CreatureScript("npc_wg_give_promotion_credit") { } + + struct npc_wg_give_promotion_creditAI : public ScriptedAI + { + npc_wg_give_promotion_creditAI(Creature* creature) : ScriptedAI(creature) { } + + void JustDied(Unit* killer) override + { + if (!killer || killer->GetTypeId() != TYPEID_PLAYER) + return; + + BattlefieldWG* wintergrasp = static_cast<BattlefieldWG*>(sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG)); + if (!wintergrasp) + return; + + wintergrasp->HandlePromotion(killer->ToPlayer(), me); + } + }; + + CreatureAI* GetAI(Creature* creature) const override + { + return new npc_wg_give_promotion_creditAI(creature); + } +}; + void AddSC_BF_wintergrasp() { new Battlefield_wintergrasp(); + new npc_wg_give_promotion_credit(); } |