fix(Scripts/TheEye): make Solarian not overlap casts and not cast arcane missiles into p2 transition (#18480)

* initial

* add voiceline

* move position of yells

* change voicings
This commit is contained in:
Dan
2024-03-08 07:55:42 +01:00
committed by GitHub
parent 9e7c443f3c
commit 903820077c
2 changed files with 26 additions and 9 deletions

View File

@@ -23,12 +23,10 @@
enum Yells
{
SAY_AGGRO = 0,
SAY_SUMMON1 = 1,
SAY_SUMMON2 = 2,
SAY_KILL = 3,
SAY_DEATH = 4,
SAY_VOIDA = 5,
SAY_VOIDB = 6
SAY_SUMMON = 1,
SAY_KILL = 2,
SAY_DEATH = 3,
SAY_VOID = 4
};
enum Spells
@@ -59,7 +57,13 @@ enum Misc
struct boss_high_astromancer_solarian : public BossAI
{
boss_high_astromancer_solarian(Creature* creature) : BossAI(creature, DATA_ASTROMANCER) { }
boss_high_astromancer_solarian(Creature* creature) : BossAI(creature, DATA_ASTROMANCER)
{
scheduler.SetValidator([this]
{
return !me->HasUnitState(UNIT_STATE_CASTING);
});
}
void Reset() override
{
@@ -68,6 +72,8 @@ struct boss_high_astromancer_solarian : public BossAI
me->SetReactState(REACT_AGGRESSIVE);
ScheduleHealthCheckEvent(20, [&]{
Talk(SAY_VOID);
me->InterruptNonMeleeSpells(false);
scheduler.CancelAll();
me->ResumeChasingVictim();
scheduler.Schedule(3s, [this](TaskContext context)
@@ -138,11 +144,11 @@ struct boss_high_astromancer_solarian : public BossAI
}).Schedule(52100ms, [this](TaskContext context)
{
me->SetReactState(REACT_PASSIVE);
Talk(SAY_SUMMON);
me->SetModelVisible(false);
scheduler.DelayAll(21s);
scheduler.Schedule(6s, [this](TaskContext)
{
Talk(SAY_SUMMON1);
summons.DoForAllSummons([&](WorldObject* summon)
{
if (Creature* light = summon->ToCreature())
@@ -164,7 +170,6 @@ struct boss_high_astromancer_solarian : public BossAI
}).Schedule(20s, [this](TaskContext)
{
me->SetReactState(REACT_AGGRESSIVE);
Talk(SAY_SUMMON2);
summons.DoForAllSummons([&](WorldObject* summon)
{
if (Creature* light = summon->ToCreature())