fix(Scripts/Ulduar): exactly 8 Guardians to end Yogg-Saron phase 1 (#27251)

Co-authored-by: Claude Opus 5 <[email protected]>
This commit is contained in:
Øyvind Bertelsen
2026-08-28 10:16:50 +02:00
committed by GitHub
co-authored by Claude Opus 5
parent 4dc517379d
commit 35b9c80f87
3 changed files with 20 additions and 2 deletions
@@ -0,0 +1,9 @@
-- Guardian of Yogg-Saron: the 25-man Shadow Nova (65209) entry-targeted effect must hit other
-- Guardians (33136) like its 10-man variant (62714) does since 2026_08_03_03. Its condition still
-- targeted Sara (33134), dealing her a second 25k per Guardian on top of the dedicated 65719 nova.
UPDATE `conditions` SET `ConditionValue2` = 33136 WHERE (`SourceTypeOrReferenceId` = 13) AND (`SourceGroup` = 2) AND (`SourceEntry` = 65209) AND (`SourceId` = 0) AND (`ElseGroup` = 0) AND (`ConditionTypeOrReference` = 31) AND (`ConditionTarget` = 0) AND (`ConditionValue1` = 3) AND (`ConditionValue2` = 33134) AND (`ConditionValue3` = 0);
-- Sara is friendly in phase 1 and thus never in combat, so out-of-combat regen undoes the
-- Guardians' Shadow Nova damage. Disable health regen like Yogg-Saron (33288); the script
-- restores her to full health on reset and on the phase 2 transformation instead.
UPDATE `creature_template` SET `RegenHealth` = 0 WHERE `entry` IN (33134, 34332);
@@ -2045,6 +2045,13 @@ void SpellMgr::LoadSpellInfoCorrections()
spellInfo->AttributesEx6 |= SPELL_ATTR6_IGNORE_PHASE_SHIFT;
});
// Shadow Nova (Sara)
ApplySpellFix({ 65719 }, [](SpellInfo* spellInfo)
{
spellInfo->AttributesEx3 |= SPELL_ATTR3_ALWAYS_HIT;
spellInfo->AttributesEx4 |= SPELL_ATTR4_NO_CAST_LOG;
});
// Cosmic Smash (Algalon the Observer)
ApplySpellFix({ 62293 }, [](SpellInfo* spellInfo)
{
@@ -511,6 +511,7 @@ struct boss_yoggsaron_sara : public ScriptedAI
me->SetDisplayId(me->GetNativeDisplayId());
me->SetDisableGravity(true);
me->SetFaction(FACTION_FRIENDLY);
me->SetFullHealth();
me->ClearUnitState(UNIT_STATE_EVADE);
EnableSara(false);
@@ -775,10 +776,10 @@ struct boss_yoggsaron_sara : public ScriptedAI
if (me->GetHealth() <= damage)
{
_secondPhase = true;
damage = 0;
// leave her at 1 health through the transformation dialogue, the client treats 0 health as dead
damage = me->GetHealth() - 1;
events.SetPhase(EVENT_PHASE_TWO);
me->SetHealth(me->GetMaxHealth());
me->SetInCombatWithZone();
me->SetFaction(FACTION_MONSTER_2);
@@ -993,6 +994,7 @@ struct boss_yoggsaron_sara : public ScriptedAI
}
case EVENT_SARA_P2_SPAWN_START_TENTACLES:
{
me->SetFullHealth();
me->SetOrientation(M_PI);
me->SetDisplayId(SARA_TRANSFORM_MODEL);