diff options
| author | Jeremy <Golrag@users.noreply.github.com> | 2023-05-09 05:20:35 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-09 05:20:35 +0200 |
| commit | 205aba1ff3a6f1ff92a8b26af646fd25f139c697 (patch) | |
| tree | a2273ad956ee236dd4044d114759d9e24211468c /src/server/scripts/EasternKingdoms | |
| parent | dc284750968d1816cc4271f4c6a6dbcdcdfd3f51 (diff) | |
Core/Battlegrounds: Moved AreaSpiritHealer resurrection handling to respective npc flags (#28508)
* UNIT_NPC_FLAG_AREA_SPIRIT_HEALER
* UNIT_NPC_FLAG_2_AREA_SPIRIT_HEALER_INDIVIDUAL
Diffstat (limited to 'src/server/scripts/EasternKingdoms')
| -rw-r--r-- | src/server/scripts/EasternKingdoms/zone_tol_barad.cpp | 87 |
1 files changed, 34 insertions, 53 deletions
diff --git a/src/server/scripts/EasternKingdoms/zone_tol_barad.cpp b/src/server/scripts/EasternKingdoms/zone_tol_barad.cpp index d52d7f89eca..e0da4c64877 100644 --- a/src/server/scripts/EasternKingdoms/zone_tol_barad.cpp +++ b/src/server/scripts/EasternKingdoms/zone_tol_barad.cpp @@ -29,8 +29,6 @@ enum TBSpiritGuide { - SPELL_CHANNEL_SPIRIT_HEAL = 22011, - GOSSIP_OPTION_ID_SLAGWORKS = 0, GOSSIP_OPTION_ID_IRONCLAD_GARRISON = 1, GOSSIP_OPTION_ID_WARDENS_VIGIL = 2, @@ -39,61 +37,44 @@ enum TBSpiritGuide GOSSIP_OPTION_ID_SOUTH_SPIRE = 5, }; -class npc_tb_spirit_guide : public CreatureScript +struct npc_tb_spirit_guide : public ScriptedAI { - public: - npc_tb_spirit_guide() : CreatureScript("npc_tb_spirit_guide") { } - - struct npc_tb_spirit_guideAI : public ScriptedAI - { - npc_tb_spirit_guideAI(Creature* creature) : ScriptedAI(creature) { } - - void UpdateAI(uint32 /*diff*/) override - { - if (!me->HasUnitState(UNIT_STATE_CASTING)) - DoCast(me, SPELL_CHANNEL_SPIRIT_HEAL); - } - - bool OnGossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override - { - player->PlayerTalkClass->SendCloseGossip(); - - uint32 areaId = 0; - switch (gossipListId) - { - case GOSSIP_OPTION_ID_SLAGWORKS: - areaId = TB_GY_SLAGWORKS; - break; - case GOSSIP_OPTION_ID_IRONCLAD_GARRISON: - areaId = TB_GY_IRONCLAD_GARRISON; - break; - case GOSSIP_OPTION_ID_WARDENS_VIGIL: - areaId = TB_GY_WARDENS_VIGIL; - break; - case GOSSIP_OPTION_ID_EAST_SPIRE: - areaId = TB_GY_EAST_SPIRE; - break; - case GOSSIP_OPTION_ID_WEST_SPIRE: - areaId = TB_GY_WEST_SPIRE; - break; - case GOSSIP_OPTION_ID_SOUTH_SPIRE: - areaId = TB_GY_SOUTH_SPIRE; - break; - default: - return true; - } + npc_tb_spirit_guide(Creature* creature) : ScriptedAI(creature) { } - if (WorldSafeLocsEntry const* safeLoc = sObjectMgr->GetWorldSafeLoc(areaId)) - player->TeleportTo(safeLoc->Loc); - - return false; - } - }; + bool OnGossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override + { + player->PlayerTalkClass->SendCloseGossip(); - CreatureAI* GetAI(Creature* creature) const override + uint32 areaId = 0; + switch (gossipListId) { - return new npc_tb_spirit_guideAI(creature); + case GOSSIP_OPTION_ID_SLAGWORKS: + areaId = TB_GY_SLAGWORKS; + break; + case GOSSIP_OPTION_ID_IRONCLAD_GARRISON: + areaId = TB_GY_IRONCLAD_GARRISON; + break; + case GOSSIP_OPTION_ID_WARDENS_VIGIL: + areaId = TB_GY_WARDENS_VIGIL; + break; + case GOSSIP_OPTION_ID_EAST_SPIRE: + areaId = TB_GY_EAST_SPIRE; + break; + case GOSSIP_OPTION_ID_WEST_SPIRE: + areaId = TB_GY_WEST_SPIRE; + break; + case GOSSIP_OPTION_ID_SOUTH_SPIRE: + areaId = TB_GY_SOUTH_SPIRE; + break; + default: + return true; } + + if (WorldSafeLocsEntry const* safeLoc = sObjectMgr->GetWorldSafeLoc(areaId)) + player->TeleportTo(safeLoc->Loc); + + return false; + } }; // 85123 - Siege Cannon - selects random target @@ -130,6 +111,6 @@ public: void AddSC_tol_barad() { - new npc_tb_spirit_guide(); + RegisterCreatureAI(npc_tb_spirit_guide); new spell_siege_cannon(); } |
