feat(Core/Scripts): Allow scheduling multiple hp checks at once for i… (#15897)

feat(Core/Scripts): Allow scheduling multiple hp checks at once for identical phases
This commit is contained in:
Skjalf
2023-04-09 15:37:04 -03:00
committed by GitHub
parent d167781576
commit d47e93830f
3 changed files with 21 additions and 25 deletions

View File

@@ -56,16 +56,19 @@ struct boss_talon_king_ikiss : public BossAI
_Reset();
_spoken = false;
ScheduleHealthCheckEvent(80, [&] {
TeleportAndCastExplosion();
});
ScheduleHealthCheckEvent({ 80, 50, 25 }, [&] {
me->InterruptNonMeleeSpells(false);
DoCastAOE(SPELL_BLINK);
DoCastSelf(SPELL_ARCANE_BUBBLE, true);
Talk(EMOTE_ARCANE_EXP);
ScheduleHealthCheckEvent(50, [&] {
TeleportAndCastExplosion();
});
ScheduleHealthCheckEvent(25, [&] {
TeleportAndCastExplosion();
scheduler.Schedule(1s, [this](TaskContext)
{
DoCastAOE(SPELL_ARCANE_EXPLOSION);
}).Schedule(6500ms, [this](TaskContext /*context*/)
{
me->GetThreatMgr().ResetAllThreat();
});
});
ScheduleHealthCheckEvent(20, [&] {
@@ -79,22 +82,6 @@ struct boss_talon_king_ikiss : public BossAI
return _spoken;
}
void TeleportAndCastExplosion()
{
me->InterruptNonMeleeSpells(false);
DoCastAOE(SPELL_BLINK);
DoCastSelf(SPELL_ARCANE_BUBBLE, true);
Talk(EMOTE_ARCANE_EXP);
scheduler.Schedule(1s, [this](TaskContext)
{
DoCastAOE(SPELL_ARCANE_EXPLOSION);
}).Schedule(6500ms, [this](TaskContext /*context*/)
{
me->GetThreatMgr().ResetAllThreat();
});
}
void MoveInLineOfSight(Unit* who) override
{
if (!_spoken && who->IsPlayer())