From 084c9e2bf116723f541deae5a04b025fa6396509 Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Mon, 24 Aug 2026 20:21:44 -0300 Subject: [PATCH] fix(Scripts/Ulduar): despawn Freya's Strengthened Iron Roots on wipe and defeat (#27286) --- .../scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp | 13 +++++++++++++ .../Northrend/Ulduar/Ulduar/instance_ulduar.cpp | 5 +++-- src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h | 1 + 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp index 67cce9f84e..f0ef12cd4f 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp @@ -996,6 +996,19 @@ struct boss_freya_iron_root : public NullCreatureAI boss_freya_iron_root(Creature* pCreature) : NullCreatureAI(pCreature) { } void JustDied(Unit* /*killer*/) override + { + ReleaseRootedPlayer(); + } + + // The root aura is infinite and self-cast by the victim, so nothing engine-side + // removes it; a root despawned without being killed must free its victim too + void OnDespawn() override + { + ReleaseRootedPlayer(); + } + +private: + void ReleaseRootedPlayer() { if (!me->IsSummon()) return; diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp index cf236dde95..68c6a515d1 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp @@ -168,8 +168,9 @@ ObjectData const gameobjectData[] = ObjectData const summonData[] = { - { NPC_SARONITE_ANIMUS, BOSS_VEZAX }, // summoned by a Saronite Vapor, not Vezax - { 0, 0 } + { NPC_SARONITE_ANIMUS, BOSS_VEZAX }, // summoned by a Saronite Vapor, not Vezax + { NPC_STRENGTHENED_IRON_ROOTS, BOSS_FREYA }, // summoned by the rooted player, not Freya + { 0, 0 } }; BossBoundaryData const boundaries = diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h index d24b48d524..e723b74c7f 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h @@ -173,6 +173,7 @@ enum UlduarNPCs NPC_HODIR = 32845, NPC_THORIM = 32865, NPC_FREYA = 32906, + NPC_STRENGTHENED_IRON_ROOTS = 33168, NPC_VEZAX = 33271, NPC_SARONITE_ANIMUS = 33524, NPC_SARA = 33134,