From f583dbe98cbd80ec980bbf3bc94c1f366d609196 Mon Sep 17 00:00:00 2001 From: Skjalf <47818697+Nyeriah@users.noreply.github.com> Date: Sat, 30 Sep 2023 15:34:18 -0300 Subject: [PATCH] fix(Scripts/Karazhan): Restore Netherspite DestroyPortals() function (#17392) --- .../Karazhan/boss_netherspite.cpp | 36 ++++++++++--------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp index 78c548127..80f09e547 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp @@ -101,12 +101,7 @@ struct boss_netherspite : public BossAI BossAI::Reset(); berserk = false; HandleDoors(true); - - for (int i = 0; i < 3; ++i) - { - PortalGUID[i].Clear(); - BeamTarget[i].Clear(); - } + DestroyPortals(); } void SummonPortals() @@ -225,6 +220,24 @@ struct boss_netherspite : public BossAI }); } + void DestroyPortals() + { + for (int i = 0; i < 3; ++i) + { + if (Creature* portal = ObjectAccessor::GetCreature(*me, PortalGUID[i])) + { + portal->DisappearAndDie(); + } + if (Creature* portal = ObjectAccessor::GetCreature(*me, BeamerGUID[i])) + { + portal->DisappearAndDie(); + } + + PortalGUID[i].Clear(); + BeamTarget[i].Clear(); + } + } + void SwitchToBanishPhase() { Talk(EMOTE_PHASE_BANISH); @@ -234,16 +247,7 @@ struct boss_netherspite : public BossAI DoCastSelf(SPELL_BANISH_VISUAL, true); DoCastSelf(SPELL_BANISH_ROOT, true); - for (uint32 id : PortalID) - { - summons.DespawnEntry(id); - } - - for (int i = 0; i < 3; ++i) - { - PortalGUID[i].Clear(); - BeamTarget[i].Clear(); - } + DestroyPortals(); scheduler.Schedule(30s, [this](TaskContext) {