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;