fix(Scripts/SunwellPlateau): Kiljaeden shouldnt interrupt Darkness of… (#21982)

This commit is contained in:
Andrew
2025-05-07 05:41:08 -03:00
committed by GitHub
parent 93f08a8a70
commit 69a16b0b59
@@ -227,6 +227,11 @@ struct boss_kiljaeden : public BossAI
boss_kiljaeden(Creature* creature) : BossAI(creature, DATA_KILJAEDEN) boss_kiljaeden(Creature* creature) : BossAI(creature, DATA_KILJAEDEN)
{ {
me->SetReactState(REACT_PASSIVE); me->SetReactState(REACT_PASSIVE);
scheduler.SetValidator([this]
{
return !me->HasUnitState(UNIT_STATE_CASTING);
});
} }
void InitializeAI() override void InitializeAI() override
@@ -303,22 +308,22 @@ struct boss_kiljaeden : public BossAI
scheduler.CancelAll(); scheduler.CancelAll();
ScheduleBasicAbilities();
me->m_Events.AddEventAtOffset([&] { me->m_Events.AddEventAtOffset([&] {
if (Creature* kalec = instance->GetCreature(DATA_KALECGOS_KJ)) if (Creature* kalec = instance->GetCreature(DATA_KALECGOS_KJ))
kalec->AI()->Talk(SAY_KALECGOS_READY2); kalec->AI()->Talk(SAY_KALECGOS_READY2);
EmpowerOrb(false); EmpowerOrb(false);
}, 35s); }, 35s);
me->m_Events.AddEventAtOffset([&] { scheduler.Schedule(1s, [this](TaskContext)
{
Talk(SAY_KJ_REFLECTION); Talk(SAY_KJ_REFLECTION);
me->CastCustomSpell(SPELL_SINISTER_REFLECTION, SPELLVALUE_MAX_TARGETS, 1, me, TRIGGERED_NONE); me->CastCustomSpell(SPELL_SINISTER_REFLECTION, SPELLVALUE_MAX_TARGETS, 1, me, TRIGGERED_NONE);
}, 1s); });
scheduler.Schedule(1s + 200ms, [this](TaskContext) scheduler.Schedule(1s + 200ms, [this](TaskContext)
{ {
DoCastSelf(SPELL_SHADOW_SPIKE); DoCastSelf(SPELL_SHADOW_SPIKE);
ScheduleBasicAbilities();
}); });
ScheduleTimedEvent(15s, [&] { ScheduleTimedEvent(15s, [&] {
@@ -340,14 +345,20 @@ struct boss_kiljaeden : public BossAI
ScheduleHealthCheckEvent(25, [&] { ScheduleHealthCheckEvent(25, [&] {
_phase = PHASE_SACRIFICE; _phase = PHASE_SACRIFICE;
me->m_Events.AddEventAtOffset([&] { scheduler.CancelAll();
scheduler.Schedule(1s, [this](TaskContext)
{
scheduler.Schedule(1s, [this](TaskContext)
{
Talk(SAY_KJ_REFLECTION); Talk(SAY_KJ_REFLECTION);
me->CastCustomSpell(SPELL_SINISTER_REFLECTION, SPELLVALUE_MAX_TARGETS, 1, me, TRIGGERED_NONE); me->CastCustomSpell(SPELL_SINISTER_REFLECTION, SPELLVALUE_MAX_TARGETS, 1, me, TRIGGERED_NONE);
}, 1s); });
me->m_Events.AddEventAtOffset([&] { scheduler.Schedule(2s, [this](TaskContext)
{
DoCastSelf(SPELL_SHADOW_SPIKE); DoCastSelf(SPELL_SHADOW_SPIKE);
}, 2s); });
if (Creature* kalec = instance->GetCreature(DATA_KALECGOS_KJ)) if (Creature* kalec = instance->GetCreature(DATA_KALECGOS_KJ))
{ {
@@ -361,8 +372,6 @@ struct boss_kiljaeden : public BossAI
anveena->AI()->Talk(SAY_ANVEENA_GOODBYE, 25s); anveena->AI()->Talk(SAY_ANVEENA_GOODBYE, 25s);
} }
scheduler.CancelAll();
me->m_Events.AddEventAtOffset([&] { me->m_Events.AddEventAtOffset([&] {
if (Creature* anveena = instance->GetCreature(DATA_ANVEENA)) if (Creature* anveena = instance->GetCreature(DATA_ANVEENA))
{ {
@@ -377,7 +386,7 @@ struct boss_kiljaeden : public BossAI
anveena->CastSpell(anveena, SPELL_SACRIFICE_OF_ANVEENA, true); anveena->CastSpell(anveena, SPELL_SACRIFICE_OF_ANVEENA, true);
DoCastSelf(SPELL_CUSTOM_08_STATE, true); DoCastSelf(SPELL_CUSTOM_08_STATE, true);
me->SetUnitFlag(UNIT_FLAG_PACIFIED); me->SetUnitFlag(UNIT_FLAG_PACIFIED);
scheduler.DelayAll(7100ms); scheduler.CancelAll();
me->m_Events.AddEventAtOffset([&] { me->m_Events.AddEventAtOffset([&] {
me->RemoveAurasDueToSpell(SPELL_CUSTOM_08_STATE); me->RemoveAurasDueToSpell(SPELL_CUSTOM_08_STATE);
@@ -410,6 +419,7 @@ struct boss_kiljaeden : public BossAI
EmpowerOrb(true); EmpowerOrb(true);
}, 61s); }, 61s);
}); });
});
} }
void ScheduleBasicAbilities() void ScheduleBasicAbilities()