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

@@ -0,0 +1,12 @@
--
DELETE FROM `creature_text` WHERE `CreatureID` = 18805;
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
(18805, 0, 0, 'Tal anu\'men no sin\'dorei!', 14, 0, 100, 0, 0, 11134, 20849, 0, 'solarian SAY_AGGRO'),
(18805, 1, 0, 'You are hopelessly outmatched!', 14, 0, 100, 0, 0, 11139, 20854, 0, 'solarian SAY_SUMMON1'),
(18805, 1, 1, 'I will crush your delusions of grandeur!', 14, 0, 100, 0, 0, 11140, 20855, 0, 'solarian SAY_SUMMON2'),
(18805, 2, 0, 'Your soul belongs to the abyss!', 14, 0, 100, 0, 0, 11136, 20851, 0, 'solarian SAY_KILL1'),
(18805, 2, 1, 'By the blood of the Highborne!', 14, 0, 100, 0, 0, 11137, 20852, 0, 'solarian SAY_KILL2'),
(18805, 2, 2, 'For the Sunwell!', 14, 0, 100, 0, 0, 11138, 20853, 0, 'solarian SAY_KILL3'),
(18805, 3, 0, 'The warmth of the sun... awaits.', 14, 0, 100, 0, 0, 11135, 20850, 0, 'solarian SAY_DEATH'),
(18805, 4, 0, 'Enough of this! Now I call upon the fury of the cosmos itself.', 14, 0, 100, 0, 0, 0, 20372, 0, 'solarian SAY_VOID1'),
(18805, 4, 1, 'I become ONE... with the VOID!', 14, 0, 100, 0, 0, 0, 20373, 0, 'solarian SAY_VOID2');

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())