From 9d672f8b627e7a143eac7ce5f84faa7d8fefbad0 Mon Sep 17 00:00:00 2001 From: Dan <83884799+elthehablo@users.noreply.github.com> Date: Wed, 29 May 2024 23:57:34 +0200 Subject: [PATCH] fix(Scripts/Hyjal): remove summoned mobs on boss evade and reset waves (#18975) init --- .../BattleForMountHyjal/boss_anetheron.cpp | 21 +++++++++++++++++++ .../BattleForMountHyjal/boss_azgalor.cpp | 21 +++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp index b6263024a..8cd23296a 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp @@ -32,6 +32,11 @@ enum Spells SPELL_INFERNAL_IMMOLATION = 31304 }; +enum Misc +{ + NPC_TOWERING_INFERNAL = 17818 +}; + enum Texts { SAY_ONDEATH = 0, @@ -54,6 +59,22 @@ public: }); } + void EnterEvadeMode(EvadeReason why) override + { + std::list infernalList; + me->GetCreatureListWithEntryInGrid(infernalList, NPC_TOWERING_INFERNAL, 100.0f); + if (infernalList.size() > 0) + { + for (Creature* infernal : infernalList) + { + infernal->DespawnOrUnsummon(); + } + } + infernalList.clear(); + instance->SetData(DATA_RESET_ALLIANCE, 0); + me->DespawnOrUnsummon(); + } + void JustEngagedWith(Unit * who) override { BossAI::JustEngagedWith(who); diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp index bf62aabb8..f71903261 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp @@ -30,6 +30,11 @@ enum Spells SPELL_BERSERK = 26662 }; +enum Misc +{ + NPC_LESSER_DOOMGUARD = 17864 +}; + enum Texts { SAY_ONDEATH = 0, @@ -52,6 +57,22 @@ public: }); } + void EnterEvadeMode(EvadeReason why) override + { + std::list doomguardList; + me->GetCreatureListWithEntryInGrid(doomguardList, NPC_LESSER_DOOMGUARD, 100.0f); + if (doomguardList.size() > 0) + { + for (Creature* doomguard : doomguardList) + { + doomguard->DespawnOrUnsummon(); + } + } + doomguardList.clear(); + instance->SetData(DATA_RESET_HORDE, 0); + me->DespawnOrUnsummon(); + } + void JustEngagedWith(Unit * who) override { BossAI::JustEngagedWith(who);