aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/EasternKingdoms
diff options
context:
space:
mode:
authorJeremy <Golrag@users.noreply.github.com>2023-05-09 05:20:35 +0200
committerGitHub <noreply@github.com>2023-05-09 05:20:35 +0200
commit205aba1ff3a6f1ff92a8b26af646fd25f139c697 (patch)
treea2273ad956ee236dd4044d114759d9e24211468c /src/server/scripts/EasternKingdoms
parentdc284750968d1816cc4271f4c6a6dbcdcdfd3f51 (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.cpp87
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();
}