fix(Scripts/SunwellPlateau): Correct timing for Eredar Twins (#21894)

This commit is contained in:
blinkysc
2025-04-12 11:12:04 -05:00
committed by GitHub
parent df17717b98
commit 613f09199c

View File

@@ -69,10 +69,12 @@ enum Spells
SPELL_BLAZE_SUMMON = 45236 SPELL_BLAZE_SUMMON = 45236
}; };
enum Misc enum TwinPhases
{ {
ACTION_SISTER_DIED = 1, ACTION_SISTER_DIED = 1,
GROUP_SPECIAL_ABILITY = 1 GROUP_SPECIAL_ABILITY = 1,
GROUP_PYROGENICS = 2,
GROUP_FLAME_SEAR = 3
}; };
struct boss_sacrolash : public BossAI struct boss_sacrolash : public BossAI
@@ -226,16 +228,24 @@ struct boss_alythess : public BossAI
Talk(YELL_SISTER_SACROLASH_DEAD); Talk(YELL_SISTER_SACROLASH_DEAD);
me->CastSpell(me, SPELL_EMPOWER, true); me->CastSpell(me, SPELL_EMPOWER, true);
scheduler.CancelGroup(GROUP_SPECIAL_ABILITY); scheduler.CancelAll();
// PYROGENICS Phase 2
scheduler.Schedule(16s, GROUP_PYROGENICS, [this](TaskContext context) {
DoCastSelf(SPELL_PYROGENICS);
context.Repeat(16s, 28s);
});
// FLAME_SEAR phase 2
ScheduleTimedEvent(8s, 10s, [&] {
me->CastCustomSpell(SPELL_FLAME_SEAR, SPELLVALUE_MAX_TARGETS, urand(4, 5), me, TRIGGERED_NONE);
}, 8s, 10s, GROUP_FLAME_SEAR);
ScheduleTimedEvent(20s, 26s, [&] { ScheduleTimedEvent(20s, 26s, [&] {
Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 1, 100.0f); Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 1, 100.0f);
if (!target) if (!target)
target = me->GetVictim(); target = me->GetVictim();
DoCast(target, SPELL_SHADOW_NOVA); DoCast(target, SPELL_SHADOW_NOVA);
if (Creature * sacrolash = instance->GetCreature(DATA_SACROLASH)) if (Creature* sacrolash = instance->GetCreature(DATA_SACROLASH))
sacrolash->AI()->Talk(EMOTE_SHADOW_NOVA, target); sacrolash->AI()->Talk(EMOTE_SHADOW_NOVA, target);
}, 20s, 26s); }, 20s, 26s);
} }
} }
@@ -253,13 +263,16 @@ struct boss_alythess : public BossAI
DoCastVictim(SPELL_BLAZE); DoCastVictim(SPELL_BLAZE);
}, 3800ms); }, 3800ms);
ScheduleTimedEvent(21s, 34s, [&] { // PYROGENICS Phase 1
scheduler.Schedule(21s, GROUP_PYROGENICS, [this](TaskContext context) {
DoCastSelf(SPELL_PYROGENICS); DoCastSelf(SPELL_PYROGENICS);
}, 21s, 34s); context.Repeat(21s, 34s);
});
// FLAME_SEAR Phase 1
ScheduleTimedEvent(10s, 15s, [&] { ScheduleTimedEvent(10s, 15s, [&] {
me->CastCustomSpell(SPELL_FLAME_SEAR, SPELLVALUE_MAX_TARGETS, urand(4, 5), me, TRIGGERED_NONE); me->CastCustomSpell(SPELL_FLAME_SEAR, SPELLVALUE_MAX_TARGETS, urand(4, 5), me, TRIGGERED_NONE);
}, 10s, 15s); }, 10s, 15s, GROUP_FLAME_SEAR);
scheduler.Schedule(20s, GROUP_SPECIAL_ABILITY, [this](TaskContext context) { scheduler.Schedule(20s, GROUP_SPECIAL_ABILITY, [this](TaskContext context) {
Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 1, 100.0f); Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 1, 100.0f);