From 970c57954720733a2e02d32721395657db07ccd4 Mon Sep 17 00:00:00 2001 From: Skjalf <47818697+Nyeriah@users.noreply.github.com> Date: Mon, 25 Sep 2023 08:07:30 -0300 Subject: [PATCH] fix(Scripts/Ulduar): Respawn Algalon on wipes (#17344) --- .../Ulduar/Ulduar/boss_algalon_the_observer.cpp | 3 +++ .../Northrend/Ulduar/Ulduar/instance_ulduar.cpp | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp index f187c85a5..86fc02904 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp @@ -366,6 +366,9 @@ public: return; } + if (m_pInstance) + m_pInstance->SetData(TYPE_ALGALON, FAIL); + ScriptedAI::EnterEvadeMode(why); } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp index 52a25f438..df114d77d 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp @@ -786,6 +786,18 @@ public: go->SetGoState(data == IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY); go->EnableCollision(false); } + + if (data == FAIL) + { + scheduler.Schedule(5s, [this](TaskContext) + { + if (m_algalonTimer && (m_algalonTimer <= 60 || m_algalonTimer == TIMER_ALGALON_TO_SUMMON)) + { + instance->SummonCreature(NPC_ALGALON, AlgalonLandPos); + } + }); + } + break; // Achievement @@ -1109,6 +1121,8 @@ public: void Update(uint32 diff) override { + InstanceScript::Update(diff); + if (_events.Empty()) return;