diff options
author | offl <11556157+offl@users.noreply.github.com> | 2025-05-27 15:12:07 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-05-27 14:12:07 +0200 |
commit | 631bf7be4eb9c51b78ff70d478bea1322db23aba (patch) | |
tree | 1860d74504a32d7d1fc3d41a6a21c21e9ebd68ad /src | |
parent | 7e03a1ce05baf33f8810658a679733c5e3626760 (diff) |
Scripts/Violet Hold: Modernize scripts (#30990)
Diffstat (limited to 'src')
9 files changed, 286 insertions, 248 deletions
diff --git a/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp b/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp index 04eaa2fe6a8..ced77e3f8ec 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp @@ -21,28 +21,29 @@ #include "ScriptedCreature.h" #include "violet_hold.h" -enum Spells +enum CyanigosaTexts { - SPELL_SUMMON_PLAYER = 21150, - SPELL_ARCANE_VACUUM = 58694, - SPELL_BLIZZARD = 58693, - SPELL_MANA_DESTRUCTION = 59374, - SPELL_TAIL_SWEEP = 58690, - SPELL_UNCONTROLLABLE_ENERGY = 58688, - SPELL_TRANSFORM = 58668 + SAY_AGGRO = 0, + SAY_SLAY = 1, + SAY_DEATH = 2, + SAY_SPAWN = 3, + SAY_DISRUPTION = 4, + SAY_BREATH_ATTACK = 5, + SAY_SPECIAL_ATTACK = 6 }; -enum Yells +enum CyanigosaSpells { - SAY_AGGRO = 0, - SAY_SLAY = 1, - SAY_DEATH = 2, - SAY_SPAWN = 3, - SAY_DISRUPTION = 4, - SAY_BREATH_ATTACK = 5, - SAY_SPECIAL_ATTACK = 6 + SPELL_SUMMON_PLAYER = 21150, + SPELL_ARCANE_VACUUM = 58694, + SPELL_BLIZZARD = 58693, + SPELL_MANA_DESTRUCTION = 59374, + SPELL_TAIL_SWEEP = 58690, + SPELL_UNCONTROLLABLE_ENERGY = 58688, + SPELL_TRANSFORM = 58668 }; +// 31134 - Cyanigosa struct boss_cyanigosa : public BossAI { boss_cyanigosa(Creature* creature) : BossAI(creature, DATA_CYANIGOSA) { } @@ -78,26 +79,26 @@ struct boss_cyanigosa : public BossAI void ScheduleTasks() override { - scheduler.Schedule(Seconds(10), [this](TaskContext task) + scheduler.Schedule(10s, [this](TaskContext task) { DoCastAOE(SPELL_ARCANE_VACUUM); task.Repeat(); }); - scheduler.Schedule(Seconds(15), [this](TaskContext task) + scheduler.Schedule(15s, [this](TaskContext task) { if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 45.0f, true)) DoCast(target, SPELL_BLIZZARD); task.Repeat(); }); - scheduler.Schedule(Seconds(20), [this](TaskContext task) + scheduler.Schedule(20s, [this](TaskContext task) { DoCastVictim(SPELL_TAIL_SWEEP); task.Repeat(); }); - scheduler.Schedule(Seconds(25), [this](TaskContext task) + scheduler.Schedule(25s, [this](TaskContext task) { DoCastVictim(SPELL_UNCONTROLLABLE_ENERGY); task.Repeat(); @@ -105,7 +106,7 @@ struct boss_cyanigosa : public BossAI if (IsHeroic()) { - scheduler.Schedule(Seconds(30), [this](TaskContext task) + scheduler.Schedule(30s, [this](TaskContext task) { if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true)) DoCast(target, SPELL_MANA_DESTRUCTION); @@ -115,24 +116,6 @@ struct boss_cyanigosa : public BossAI } }; -class achievement_defenseless : public AchievementCriteriaScript -{ - public: - achievement_defenseless() : AchievementCriteriaScript("achievement_defenseless") { } - - bool OnCheck(Player* /*player*/, Unit* target) override - { - if (!target) - return false; - - InstanceScript* instance = target->GetInstanceScript(); - if (!instance) - return false; - - return instance->GetData(DATA_DEFENSELESS) != 0; - } -}; - // 58694 - Arcane Vacuum class spell_cyanigosa_arcane_vacuum : public SpellScript { @@ -154,9 +137,27 @@ class spell_cyanigosa_arcane_vacuum : public SpellScript } }; +class achievement_defenseless : public AchievementCriteriaScript +{ + public: + achievement_defenseless() : AchievementCriteriaScript("achievement_defenseless") { } + + bool OnCheck(Player* /*player*/, Unit* target) override + { + if (!target) + return false; + + InstanceScript* instance = target->GetInstanceScript(); + if (!instance) + return false; + + return instance->GetData(DATA_DEFENSELESS) != 0; + } +}; + void AddSC_boss_cyanigosa() { RegisterVioletHoldCreatureAI(boss_cyanigosa); - new achievement_defenseless(); RegisterSpellScript(spell_cyanigosa_arcane_vacuum); + new achievement_defenseless(); } diff --git a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp index 3d0d871ac27..767f070bf7b 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp @@ -22,28 +22,30 @@ #include "ScriptedCreature.h" #include "violet_hold.h" -enum Spells +enum ErekemTexts { - SPELL_BLOODLUST = 54516, - SPELL_BREAK_BONDS = 59463, - SPELL_CHAIN_HEAL = 54481, - SPELL_EARTH_SHIELD = 54479, - SPELL_EARTH_SHOCK = 54511, - SPELL_LIGHTNING_BOLT = 53044, - SPELL_STORMSTRIKE = 51876, - SPELL_WINDFURY = 54493 + SAY_AGGRO = 0, + SAY_SLAY = 1, + SAY_DEATH = 2, + SAY_SPAWN = 3, + SAY_ADD_KILLED = 4, + SAY_BOTH_ADDS_KILLED = 5 }; -enum Yells +enum ErekemSpells { - SAY_AGGRO = 0, - SAY_SLAY = 1, - SAY_DEATH = 2, - SAY_SPAWN = 3, - SAY_ADD_KILLED = 4, - SAY_BOTH_ADDS_KILLED = 5 + SPELL_BLOODLUST = 54516, + SPELL_BREAK_BONDS = 59463, + SPELL_CHAIN_HEAL = 54481, + SPELL_EARTH_SHIELD = 54479, + SPELL_EARTH_SHOCK = 54511, + SPELL_LIGHTNING_BOLT = 53044, + SPELL_STORMSTRIKE = 51876, + SPELL_WINDFURY = 54493 }; +// 29315 - Erekem +// 32226 - Arakkoa Windwalker struct boss_erekem : public BossAI { boss_erekem(Creature* creature) : BossAI(creature, DATA_EREKEM) @@ -179,43 +181,43 @@ struct boss_erekem : public BossAI void ScheduleTasks() override { - scheduler.Schedule(Seconds(20), [this](TaskContext task) + scheduler.Schedule(20s, [this](TaskContext task) { if (Unit* ally = DoSelectLowestHpFriendly(30.0f)) DoCast(ally, SPELL_EARTH_SHIELD); - task.Repeat(Seconds(20)); + task.Repeat(20s); }); - scheduler.Schedule(Seconds(2), [this](TaskContext task) + scheduler.Schedule(2s, [this](TaskContext task) { DoCast(SPELL_BLOODLUST); - task.Repeat(Seconds(35), Seconds(45)); + task.Repeat(35s, 45s); }); - scheduler.Schedule(Seconds(2), [this](TaskContext task) + scheduler.Schedule(2s, [this](TaskContext task) { if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f)) DoCast(target, SPELL_LIGHTNING_BOLT); - task.Repeat(Milliseconds(2500)); + task.Repeat(2500ms); }); - scheduler.Schedule(Seconds(10), [this](TaskContext task) + scheduler.Schedule(10s, [this](TaskContext task) { if (Unit* ally = DoSelectLowestHpFriendly(40.0f)) DoCast(ally, SPELL_CHAIN_HEAL); if (!CheckGuardAlive()) - task.Repeat(Seconds(3)); + task.Repeat(3s); else - task.Repeat(Seconds(8), Seconds(11)); + task.Repeat(8s, 11s); }); - scheduler.Schedule(Seconds(2), Seconds(8), [this](TaskContext task) + scheduler.Schedule(2s, 8s, [this](TaskContext task) { DoCastVictim(SPELL_EARTH_SHOCK); - task.Repeat(Seconds(8), Seconds(13)); + task.Repeat(8s, 13s); }); scheduler.Schedule(0s, [this](TaskContext task) @@ -227,11 +229,11 @@ struct boss_erekem : public BossAI if (guard && guard->IsAlive() && CheckGuardAuras(guard)) { DoCastAOE(SPELL_BREAK_BONDS); - task.Repeat(Seconds(10)); + task.Repeat(10s); return; } } - task.Repeat(Milliseconds(500)); + task.Repeat(500ms); }); } @@ -246,6 +248,8 @@ enum GuardSpells SPELL_STRIKE = 14516 }; +// 29395 - Erekem Guard +// 32228 - Arakkoa Talon Guard struct npc_erekem_guard : public ScriptedAI { npc_erekem_guard(Creature* creature) : ScriptedAI(creature) { } @@ -271,22 +275,22 @@ struct npc_erekem_guard : public ScriptedAI void ScheduledTasks() { - scheduler.Schedule(Seconds(4), Seconds(8), [this](TaskContext task) + scheduler.Schedule(4s, 8s, [this](TaskContext task) { DoCastVictim(SPELL_STRIKE); - task.Repeat(Seconds(4), Seconds(8)); + task.Repeat(4s, 8s); }); - scheduler.Schedule(Seconds(8), Seconds(13), [this](TaskContext task) + scheduler.Schedule(8s, 13s, [this](TaskContext task) { DoCastAOE(SPELL_HOWLING_SCREECH); - task.Repeat(Seconds(8), Seconds(13)); + task.Repeat(8s, 13s); }); - scheduler.Schedule(Seconds(1), Seconds(3), [this](TaskContext task) + scheduler.Schedule(1s, 3s, [this](TaskContext task) { DoCastVictim(SPELL_GUSHING_WOUND); - task.Repeat(Seconds(7), Seconds(12)); + task.Repeat(7s, 12s); }); } diff --git a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp index 546c43245b9..425b25fdeab 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp @@ -23,7 +23,19 @@ #include "SpellScript.h" #include "violet_hold.h" -enum Spells +enum IchoronTexts +{ + SAY_AGGRO = 0, + SAY_SLAY = 1, + SAY_DEATH = 2, + SAY_SPAWN = 3, + SAY_ENRAGE = 4, + SAY_SHATTER = 5, + SAY_BUBBLE = 6, + EMOTE_SHATTER = 7 +}; + +enum IchoronSpells { SPELL_WATER_BLAST = 54237, SPELL_WATER_BOLT_VOLLEY = 54241, @@ -47,30 +59,20 @@ enum Spells SPELL_SPLASH = 59516 }; -enum Yells -{ - SAY_AGGRO = 0, - SAY_SLAY = 1, - SAY_DEATH = 2, - SAY_SPAWN = 3, - SAY_ENRAGE = 4, - SAY_SHATTER = 5, - SAY_BUBBLE = 6, - EMOTE_SHATTER = 7 -}; - -enum Actions +enum IchoronActions { ACTION_WATER_GLOBULE_HIT = 1, ACTION_PROTECTIVE_BUBBLE_SHATTERED = 2, ACTION_DRAINED = 3 }; -enum Misc +enum IchoronMisc { DATA_DEHYDRATION = 1 }; +// 29313 - Ichoron +// 32234 - Swirling Water Revenant struct boss_ichoron : public BossAI { boss_ichoron(Creature* creature) : BossAI(creature, DATA_ICHORON) @@ -131,7 +133,7 @@ struct boss_ichoron : public BossAI me->LowerPlayerDamageReq(damage); me->ModifyHealth(-std::min<int32>(damage, me->GetHealth() - 1)); - scheduler.DelayAll(Seconds(15)); + scheduler.DelayAll(15s); break; } case ACTION_DRAINED: @@ -205,17 +207,17 @@ struct boss_ichoron : public BossAI DoCast(me, SPELL_PROTECTIVE_BUBBLE); }); - scheduler.Schedule(Seconds(10), Seconds(15), [this](TaskContext task) + scheduler.Schedule(10s, 15s, [this](TaskContext task) { DoCastAOE(SPELL_WATER_BOLT_VOLLEY); - task.Repeat(Seconds(10), Seconds(15)); + task.Repeat(10s, 15s); }); - scheduler.Schedule(Seconds(6), Seconds(9), [this](TaskContext task) + scheduler.Schedule(6s, 9s, [this](TaskContext task) { if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f)) DoCast(target, SPELL_WATER_BLAST); - task.Repeat(Seconds(6), Seconds(9)); + task.Repeat(6s, 9s); }); } @@ -224,6 +226,7 @@ private: bool _dehydration; }; +// 29321 - Ichor Globule struct npc_ichor_globule : public ScriptedAI { npc_ichor_globule(Creature* creature) : ScriptedAI(creature), _splashTriggered(false) diff --git a/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp b/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp index 4a7705bb984..eb6d14972c1 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp @@ -20,14 +20,16 @@ #include "ScriptedCreature.h" #include "violet_hold.h" -enum Spells +enum LavanthorSpells { - SPELL_CAUTERIZING_FLAMES = 59466, // Only in heroic - SPELL_FIREBOLT = 54235, - SPELL_FLAME_BREATH = 54282, - SPELL_LAVA_BURN = 54249 + SPELL_CAUTERIZING_FLAMES = 59466, // Only in heroic + SPELL_FIREBOLT = 54235, + SPELL_FLAME_BREATH = 54282, + SPELL_LAVA_BURN = 54249 }; +// 29312 - Lavanthor +// 32237 - Lava Hound struct boss_lavanthor : public BossAI { boss_lavanthor(Creature* creature) : BossAI(creature, DATA_LAVANTHOR) { } @@ -59,24 +61,24 @@ struct boss_lavanthor : public BossAI void ScheduleTasks() override { - scheduler.Schedule(Seconds(1), [this](TaskContext task) + scheduler.Schedule(1s, [this](TaskContext task) { if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true)) DoCast(target, SPELL_FIREBOLT); - task.Repeat(Seconds(5), Seconds(13)); + task.Repeat(5s, 13s); }); - scheduler.Schedule(Seconds(5), [this](TaskContext task) + scheduler.Schedule(5s, [this](TaskContext task) { DoCastVictim(SPELL_FLAME_BREATH); - task.Repeat(Seconds(10), Seconds(15)); + task.Repeat(10s, 15s); }); - scheduler.Schedule(Seconds(10), [this](TaskContext task) + scheduler.Schedule(10s, [this](TaskContext task) { if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f)) DoCast(target, SPELL_LAVA_BURN); - task.Repeat(Seconds(15), Seconds(23)); + task.Repeat(15s, 23s); }); if (IsHeroic()) @@ -84,7 +86,7 @@ struct boss_lavanthor : public BossAI scheduler.Schedule(Seconds(3), [this](TaskContext task) { DoCastAOE(SPELL_CAUTERIZING_FLAMES); - task.Repeat(Seconds(10), Seconds(16)); + task.Repeat(10s, 16s); }); } } diff --git a/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp b/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp index 0f77eea9b33..a841198c10f 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp @@ -22,19 +22,21 @@ #include "SpellScript.h" #include "violet_hold.h" -enum Spells +enum MoraggSpells { - SPELL_CORROSIVE_SALIVA = 54527, - SPELL_OPTIC_LINK = 54396, - SPELL_RAY_OF_PAIN = 54438, - SPELL_RAY_OF_SUFFERING = 54442, + SPELL_CORROSIVE_SALIVA = 54527, + SPELL_OPTIC_LINK = 54396, + SPELL_RAY_OF_PAIN = 54438, + SPELL_RAY_OF_SUFFERING = 54442, // Visual - SPELL_OPTIC_LINK_LEVEL_1 = 54393, - SPELL_OPTIC_LINK_LEVEL_2 = 54394, - SPELL_OPTIC_LINK_LEVEL_3 = 54395 + SPELL_OPTIC_LINK_LEVEL_1 = 54393, + SPELL_OPTIC_LINK_LEVEL_2 = 54394, + SPELL_OPTIC_LINK_LEVEL_3 = 54395 }; +// 29316 - Moragg +// 32235 - Chaos Watcher struct boss_moragg : public BossAI { boss_moragg(Creature* creature) : BossAI(creature, DATA_MORAGG) { } @@ -72,17 +74,17 @@ struct boss_moragg : public BossAI DoCast(me, SPELL_RAY_OF_SUFFERING); }); - scheduler.Schedule(Seconds(15), [this](TaskContext task) + scheduler.Schedule(15s, [this](TaskContext task) { if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true)) DoCast(target, SPELL_OPTIC_LINK); - task.Repeat(Seconds(25)); + task.Repeat(25s); }); - scheduler.Schedule(Seconds(5), [this](TaskContext task) + scheduler.Schedule(5s, [this](TaskContext task) { DoCastVictim(SPELL_CORROSIVE_SALIVA); - task.Repeat(Seconds(10)); + task.Repeat(10s); }); } }; diff --git a/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp b/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp index 450f32f8124..b783301060d 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp @@ -30,7 +30,22 @@ * - Implement Ethereal Summon Target */ -enum Spells +enum XevozzTexts +{ + // Xevozz + SAY_AGGRO = 0, + SAY_SLAY = 1, + SAY_DEATH = 2, + SAY_SPAWN = 3, + SAY_CHARGED = 4, + SAY_REPEAT_SUMMON = 5, + SAY_SUMMON_ENERGY = 6, + + // Ethereal Sphere + SAY_ETHEREAL_SPHERE_SUMMON = 0 +}; + +enum XevozzSpells { SPELL_ARCANE_BARRAGE_VOLLEY = 54202, SPELL_ARCANE_BUFFET = 54226, @@ -41,14 +56,14 @@ static uint32 const EtherealSphereCount = 3; static uint32 const EtherealSphereSummonSpells[EtherealSphereCount] = { 54102, 54137, 54138 }; static uint32 const EtherealSphereHeroicSummonSpells[EtherealSphereCount] = { 54102, 54137, 54138 }; -enum NPCs +enum XevozzCreatures { NPC_ETHEREAL_SPHERE = 29271, NPC_ETHEREAL_SPHERE2 = 32582, NPC_ETHEREAL_SUMMON_TARGET = 29276 }; -enum CreatureSpells +enum XevozzCreatureSpells { SPELL_ARCANE_POWER = 54160, H_SPELL_ARCANE_POWER = 59474, @@ -58,26 +73,13 @@ enum CreatureSpells SPELL_POWER_BALL_DAMAGE_TRIGGER = 54207 }; -enum Yells -{ - // Xevozz - SAY_AGGRO = 0, - SAY_SLAY = 1, - SAY_DEATH = 2, - SAY_SPAWN = 3, - SAY_CHARGED = 4, - SAY_REPEAT_SUMMON = 5, - SAY_SUMMON_ENERGY = 6, - - // Ethereal Sphere - SAY_ETHEREAL_SPHERE_SUMMON = 0 -}; - -enum SphereActions +enum XevozzActions { - ACTION_SUMMON = 1, + ACTION_SUMMON = 1 }; +// 29266 - Xevozz +// 32231 - Ethereal Wind Trader struct boss_xevozz : public BossAI { boss_xevozz(Creature* creature) : BossAI(creature, DATA_XEVOZZ) { } @@ -134,20 +136,20 @@ struct boss_xevozz : public BossAI void ScheduleTasks() override { - scheduler.Schedule(Seconds(8), Seconds(10), [this](TaskContext task) + scheduler.Schedule(8s, 10s, [this](TaskContext task) { DoCastAOE(SPELL_ARCANE_BARRAGE_VOLLEY); - task.Repeat(Seconds(8), Seconds(10)); + task.Repeat(8s, 10s); }); - scheduler.Schedule(Seconds(10), Seconds(11), [this](TaskContext task) + scheduler.Schedule(10s, 11s, [this](TaskContext task) { if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 45.0f, true)) DoCast(target, SPELL_ARCANE_BUFFET); - task.Repeat(Seconds(15), Seconds(20)); + task.Repeat(15s, 20s); }); - scheduler.Schedule(Seconds(5), [this](TaskContext task) + scheduler.Schedule(5s, [this](TaskContext task) { Talk(SAY_REPEAT_SUMMON); @@ -166,17 +168,19 @@ struct boss_xevozz : public BossAI }); } - task.Schedule(Seconds(33), Seconds(35), [this](TaskContext /*task*/) + task.Schedule(33s, 35s, [this](TaskContext /*task*/) { DummyEntryCheckPredicate pred; summons.DoAction(ACTION_SUMMON, pred); }); - task.Repeat(Seconds(45), Seconds(47)); + task.Repeat(45s, 47s); }); } }; +// 29271 - Ethereal Sphere +// 32582 - Ethereal Sphere struct npc_ethereal_sphere : public ScriptedAI { npc_ethereal_sphere(Creature* creature) : ScriptedAI(creature) @@ -211,7 +215,7 @@ struct npc_ethereal_sphere : public ScriptedAI void ScheduledTasks() { - scheduler.Schedule(Seconds(1), [this](TaskContext task) + scheduler.Schedule(1s, [this](TaskContext task) { if (Creature* xevozz = instance->GetCreature(DATA_XEVOZZ)) { diff --git a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp index 98425811c25..efc7f28a3d7 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp @@ -20,7 +20,17 @@ #include "ScriptedCreature.h" #include "violet_hold.h" -enum Spells +enum ZuramatTexts +{ + SAY_AGGRO = 0, + SAY_SLAY = 1, + SAY_DEATH = 2, + SAY_SPAWN = 3, + SAY_SHIELD = 4, + SAY_WHISPER = 5 +}; + +enum ZuramatSpells { SPELL_SHROUD_OF_DARKNESS = 54524, SPELL_SUMMON_VOID_SENTRY = 54369, @@ -32,22 +42,14 @@ enum Spells SPELL_SUMMON_VOID_SENTRY_BALL = 58650 }; -enum Yells -{ - SAY_AGGRO = 0, - SAY_SLAY = 1, - SAY_DEATH = 2, - SAY_SPAWN = 3, - SAY_SHIELD = 4, - SAY_WHISPER = 5 -}; - -enum Misc +enum ZuramatMisc { ACTION_DESPAWN_VOID_SENTRY_BALL = 1, DATA_VOID_DANCE = 2153 }; +// 29314 - Zuramat the Obliterator +// 32230 - Void Lord struct boss_zuramat : public BossAI { boss_zuramat(Creature* creature) : BossAI(creature, DATA_ZURAMAT) @@ -122,23 +124,23 @@ struct boss_zuramat : public BossAI void ScheduleTasks() override { - scheduler.Schedule(Seconds(4), [this](TaskContext task) + scheduler.Schedule(4s, [this](TaskContext task) { DoCast(me, SPELL_SUMMON_VOID_SENTRY); - task.Repeat(Seconds(7), Seconds(10)); + task.Repeat(7s, 10s); }); - scheduler.Schedule(Seconds(9), [this](TaskContext task) + scheduler.Schedule(9s, [this](TaskContext task) { if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true)) DoCast(target, SPELL_VOID_SHIFT); - task.Repeat(Seconds(15)); + task.Repeat(15s); }); - scheduler.Schedule(Seconds(18), Seconds(20), [this](TaskContext task) + scheduler.Schedule(18s, 20s, [this](TaskContext task) { DoCast(me, SPELL_SHROUD_OF_DARKNESS); - task.Repeat(Seconds(18), Seconds(20)); + task.Repeat(18s, 20s); }); } @@ -146,6 +148,7 @@ private: bool _voidDance; }; +// 29364 - Void Sentry struct npc_void_sentry : public ScriptedAI { npc_void_sentry(Creature* creature) : ScriptedAI(creature), _summons(creature) diff --git a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp index 7260b8fa1e1..41e9d555d94 100644 --- a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp +++ b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp @@ -134,7 +134,7 @@ Position const ZuramatPath[ZuramatPathSize] = // sniff { 1923.226f, 847.3297f, 47.15541f } }; -enum Yells +enum VioletHoldTexts { SAY_CYANIGOSA_SPAWN = 3, SAY_XEVOZZ_SPAWN = 3, @@ -145,7 +145,7 @@ enum Yells SOUND_MORAGG_SPAWN = 10112 }; -enum Spells +enum VioletHoldSpells { SPELL_CYANIGOSA_TRANSFORM = 58668, SPELL_CYANIGOSA_ARCANE_POWER_STATE = 49411, @@ -411,10 +411,10 @@ class instance_violet_hold : public InstanceMapScript if (GameObject* crystal = instance->GetGameObject(ActivationCrystalGUIDs[i])) crystal->RemoveFlag(GO_FLAG_NOT_SELECTABLE); - Scheduler.Schedule(Seconds(3), [this](TaskContext task) + Scheduler.Schedule(3s, [this](TaskContext task) { CheckEventState(); - task.Repeat(Seconds(3)); + task.Repeat(3s); }); } else if (data == NOT_STARTED) @@ -546,7 +546,7 @@ class instance_violet_hold : public InstanceMapScript switch (bossId) { case DATA_MORAGG: - Scheduler.Schedule(Seconds(2), [this](TaskContext task) + Scheduler.Schedule(2s, [this](TaskContext task) { if (Creature* moragg = GetCreature(DATA_MORAGG)) { @@ -554,12 +554,12 @@ class instance_violet_hold : public InstanceMapScript moragg->CastSpell(moragg, SPELL_MORAGG_EMOTE_ROAR); } - task.Schedule(Seconds(3), [this](TaskContext task) + task.Schedule(3s, [this](TaskContext task) { if (Creature* moragg = GetCreature(DATA_MORAGG)) moragg->GetMotionMaster()->MoveSmoothPath(POINT_INTRO, MoraggPath, MoraggPathSize, true); - task.Schedule(Seconds(8), [this](TaskContext /*task*/) + task.Schedule(8s, [this](TaskContext /*task*/) { if (Creature* moragg = GetCreature(DATA_MORAGG)) { @@ -571,12 +571,12 @@ class instance_violet_hold : public InstanceMapScript }); break; case DATA_EREKEM: - Scheduler.Schedule(Seconds(3), [this](TaskContext task) + Scheduler.Schedule(3s, [this](TaskContext task) { if (Creature* erekem = GetCreature(DATA_EREKEM)) erekem->AI()->Talk(SAY_EREKEM_SPAWN); - task.Schedule(Seconds(5), [this](TaskContext task) + task.Schedule(5s, [this](TaskContext task) { if (Creature* erekem = GetCreature(DATA_EREKEM)) erekem->GetMotionMaster()->MoveSmoothPath(POINT_INTRO, ErekemPath, ErekemPathSize, true); @@ -586,12 +586,12 @@ class instance_violet_hold : public InstanceMapScript if (Creature* guard = instance->GetCreature(GetGuidData(DATA_EREKEM_GUARD_2))) guard->GetMotionMaster()->MoveSmoothPath(POINT_INTRO, ErekemGuardRightPath, ErekemGuardRightPathSize, true); - task.Schedule(Seconds(6), [this](TaskContext task) + task.Schedule(6s, [this](TaskContext task) { if (Creature* erekem = GetCreature(DATA_EREKEM)) erekem->HandleEmoteCommand(EMOTE_ONESHOT_ROAR); - task.Schedule(Seconds(1), [this](TaskContext /*task*/) + task.Schedule(1s, [this](TaskContext /*task*/) { for (uint32 i = DATA_EREKEM_GUARD_1; i <= DATA_EREKEM_GUARD_2; ++i) { @@ -610,17 +610,17 @@ class instance_violet_hold : public InstanceMapScript }); break; case DATA_ICHORON: - Scheduler.Schedule(Seconds(2), [this](TaskContext task) + Scheduler.Schedule(2s, [this](TaskContext task) { if (Creature* ichoron = GetCreature(DATA_ICHORON)) ichoron->AI()->Talk(SAY_ICHORON_SPAWN); - task.Schedule(Seconds(3), [this](TaskContext task) + task.Schedule(3s, [this](TaskContext task) { if (Creature* ichoron = GetCreature(DATA_ICHORON)) ichoron->GetMotionMaster()->MoveSmoothPath(POINT_INTRO, IchoronPath, IchoronPathSize, true); - task.Schedule(Seconds(14), [this](TaskContext /*task*/) + task.Schedule(14s, [this](TaskContext /*task*/) { if (Creature* ichoron = GetCreature(DATA_ICHORON)) { @@ -632,17 +632,17 @@ class instance_violet_hold : public InstanceMapScript }); break; case DATA_LAVANTHOR: - Scheduler.Schedule(Seconds(1), [this](TaskContext task) + Scheduler.Schedule(1s, [this](TaskContext task) { if (Creature* lavanthor = GetCreature(DATA_LAVANTHOR)) lavanthor->CastSpell(lavanthor, SPELL_LAVANTHOR_SPECIAL_UNARMED); - task.Schedule(Seconds(3), [this](TaskContext task) + task.Schedule(3s, [this](TaskContext task) { if (Creature* lavanthor = GetCreature(DATA_LAVANTHOR)) lavanthor->GetMotionMaster()->MoveSmoothPath(POINT_INTRO, LavanthorPath, LavanthorPathSize, true); - task.Schedule(Seconds(8), [this](TaskContext /*task*/) + task.Schedule(8s, [this](TaskContext /*task*/) { if (Creature* lavanthor = GetCreature(DATA_LAVANTHOR)) { @@ -654,22 +654,22 @@ class instance_violet_hold : public InstanceMapScript }); break; case DATA_XEVOZZ: - Scheduler.Schedule(Seconds(2), [this](TaskContext task) + Scheduler.Schedule(2s, [this](TaskContext task) { if (Creature* xevozz = GetCreature(DATA_XEVOZZ)) xevozz->AI()->Talk(SAY_XEVOZZ_SPAWN); - task.Schedule(Seconds(3), [this](TaskContext task) + task.Schedule(3s, [this](TaskContext task) { if (Creature* xevozz = GetCreature(DATA_XEVOZZ)) xevozz->HandleEmoteCommand(EMOTE_ONESHOT_TALK_NO_SHEATHE); - task.Schedule(Seconds(4), [this](TaskContext task) + task.Schedule(4s, [this](TaskContext task) { if (Creature* xevozz = GetCreature(DATA_XEVOZZ)) xevozz->GetMotionMaster()->MoveSmoothPath(POINT_INTRO, XevozzPath, XevozzPathSize, true); - task.Schedule(Seconds(4), [this](TaskContext /*task*/) + task.Schedule(4s, [this](TaskContext /*task*/) { if (Creature* xevozz = GetCreature(DATA_XEVOZZ)) { @@ -682,7 +682,7 @@ class instance_violet_hold : public InstanceMapScript }); break; case DATA_ZURAMAT: - Scheduler.Schedule(Seconds(2), [this](TaskContext task) + Scheduler.Schedule(2s, [this](TaskContext task) { if (Creature* zuramat = GetCreature(DATA_ZURAMAT)) { @@ -690,12 +690,12 @@ class instance_violet_hold : public InstanceMapScript zuramat->AI()->Talk(SAY_ZURAMAT_SPAWN); } - task.Schedule(Seconds(6), [this](TaskContext task) + task.Schedule(6s, [this](TaskContext task) { if (Creature* zuramat = GetCreature(DATA_ZURAMAT)) zuramat->GetMotionMaster()->MoveSmoothPath(POINT_INTRO, ZuramatPath, ZuramatPathSize, true); - task.Schedule(Seconds(4), [this](TaskContext /*task*/) + task.Schedule(4s, [this](TaskContext /*task*/) { if (Creature* zuramat = GetCreature(DATA_ZURAMAT)) { @@ -902,17 +902,17 @@ class instance_violet_hold : public InstanceMapScript void ScheduleCyanigosaIntro() { - Scheduler.Schedule(Seconds(2), [this](TaskContext task) + Scheduler.Schedule(2s, [this](TaskContext task) { if (Creature* cyanigosa = GetCreature(DATA_CYANIGOSA)) cyanigosa->AI()->Talk(SAY_CYANIGOSA_SPAWN); - task.Schedule(Seconds(6), [this](TaskContext task) + task.Schedule(6s, [this](TaskContext task) { if (Creature* cyanigosa = GetCreature(DATA_CYANIGOSA)) cyanigosa->GetMotionMaster()->MoveJump(CyanigosaJumpLocation, 10.0f, 27.44744f); - task.Schedule(Seconds(7), [this](TaskContext /*task*/) + task.Schedule(7s, [this](TaskContext /*task*/) { if (Creature* cyanigosa = GetCreature(DATA_CYANIGOSA)) { diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp index 83fce5afc3f..efe88fc317e 100644 --- a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp +++ b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp @@ -355,6 +355,7 @@ Position const SinclariPositions[] = // sniff Position const GuardsMovePosition = { 1802.099f, 803.7724f, 44.36466f, 0.0f }; // sniff +// 30658 - Lieutenant Sinclari struct npc_sinclari_vh : public ScriptedAI { npc_sinclari_vh(Creature* creature) : ScriptedAI(creature), _summons(creature) @@ -438,25 +439,25 @@ struct npc_sinclari_vh : public ScriptedAI void ScheduleIntro() { - _scheduler.Schedule(Seconds(1), [this](TaskContext task) + _scheduler.Schedule(1s, [this](TaskContext task) { switch (task.GetRepeatCounter()) { case 0: me->SetWalk(true); me->GetMotionMaster()->MovePoint(0, SinclariPositions[0]); - task.Repeat(Seconds(1)); + task.Repeat(1s); break; case 1: me->HandleEmoteCommand(EMOTE_ONESHOT_USE_STANDING); me->GetMap()->SummonCreature(NPC_DEFENSE_SYSTEM, DefenseSystemLocation); - task.Repeat(Seconds(3)); + task.Repeat(3s); break; case 2: me->SetFacingTo(SinclariPositions[0].GetOrientation()); Talk(SAY_SINCLARI_INTRO_1); - task.Schedule(Seconds(1), [this](TaskContext /*task*/) + task.Schedule(1s, [this](TaskContext /*task*/) { std::list<Creature*> guardList; me->GetCreatureListWithEntryInGrid(guardList, NPC_VIOLET_HOLD_GUARD, 100.0f); @@ -470,17 +471,17 @@ struct npc_sinclari_vh : public ScriptedAI } }); - task.Repeat(Seconds(2)); + task.Repeat(2s); break; case 3: me->GetMotionMaster()->MovePoint(0, SinclariPositions[1]); _summons.DespawnAll(); - task.Repeat(Seconds(5)); + task.Repeat(5s); break; case 4: me->SetFacingTo(SinclariPositions[1].GetOrientation()); - task.Schedule(Seconds(1), [this](TaskContext /*task*/) + task.Schedule(1s, [this](TaskContext /*task*/) { std::list<Creature*> guardList; me->GetCreatureListWithEntryInGrid(guardList, NPC_VIOLET_HOLD_GUARD, 100.0f); @@ -488,15 +489,15 @@ struct npc_sinclari_vh : public ScriptedAI guard->SetVisible(false); }); - task.Repeat(Seconds(6)); + task.Repeat(6s); break; case 5: Talk(SAY_SINCLARI_INTRO_2); - task.Repeat(Seconds(4)); + task.Repeat(4s); break; case 6: me->HandleEmoteCommand(EMOTE_ONESHOT_TALK_NO_SHEATHE); - task.Repeat(Seconds(1)); + task.Repeat(1s); break; case 7: if (GameObject* mainDoor = _instance->GetGameObject(DATA_MAIN_DOOR)) @@ -504,11 +505,11 @@ struct npc_sinclari_vh : public ScriptedAI mainDoor->SetGoState(GO_STATE_READY); mainDoor->SetFlag(GO_FLAG_LOCKED); } - task.Repeat(Seconds(5)); + task.Repeat(5s); break; case 8: _instance->SetData(DATA_MAIN_EVENT_STATE, IN_PROGRESS); - task.Repeat(Seconds(1)); + task.Repeat(1s); break; case 9: // We should teleport inside if event is in progress with GOSSIP_MENU_SEND_ME_IN @@ -522,12 +523,12 @@ struct npc_sinclari_vh : public ScriptedAI void ScheduleOutro() { - _scheduler.Schedule(Seconds(4), [this](TaskContext task) + _scheduler.Schedule(4s, [this](TaskContext task) { Talk(SAY_SINCLARI_OUTRO); me->GetMotionMaster()->MovePoint(0, SinclariPositions[3]); - task.Schedule(Seconds(10), [this](TaskContext /*task*/) + task.Schedule(10s, [this](TaskContext /*task*/) { me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); }); @@ -553,6 +554,7 @@ private: SummonList _summons; }; +// 31079 - Azure Saboteur struct npc_azure_saboteur : public ScriptedAI { npc_azure_saboteur(Creature* creature) : ScriptedAI(creature) @@ -599,7 +601,7 @@ struct npc_azure_saboteur : public ScriptedAI void Reset() override { _scheduler.CancelAll(); - _scheduler.Schedule(Seconds(2), [this](TaskContext /*task*/) + _scheduler.Schedule(2s, [this](TaskContext /*task*/) { StartMovement(); }); @@ -614,10 +616,10 @@ struct npc_azure_saboteur : public ScriptedAI me->CastSpell(me, SPELL_SHIELD_DISRUPTION, false); if (task.GetRepeatCounter() < 2) - task.Repeat(Seconds(1)); + task.Repeat(1s); else { - task.Schedule(Seconds(2), [this](TaskContext /*task*/) + task.Schedule(2s, [this](TaskContext /*task*/) { _instance->SetData(DATA_START_BOSS_ENCOUNTER, 1); me->CastSpell(me, SPELL_TELEPORT_VISUAL, false); @@ -689,6 +691,7 @@ protected: uint8 _portalLocation; }; +// 30679 - Teleportation Portal struct npc_violet_hold_teleportation_portal : public npc_violet_hold_teleportation_portal_commonAI { npc_violet_hold_teleportation_portal(Creature* creature) : npc_violet_hold_teleportation_portal_commonAI(creature) @@ -745,6 +748,7 @@ struct npc_violet_hold_teleportation_portal : public npc_violet_hold_teleportati } }; +// 32174 - Teleportation Portal (Elite) struct npc_violet_hold_teleportation_portal_elite : public npc_violet_hold_teleportation_portal_commonAI { npc_violet_hold_teleportation_portal_elite(Creature* creature) : npc_violet_hold_teleportation_portal_commonAI(creature) @@ -765,7 +769,7 @@ struct npc_violet_hold_teleportation_portal_elite : public npc_violet_hold_telep if (Creature* sinclariTrigger = _instance->GetCreature(DATA_SINCLARI_TRIGGER)) sinclariTrigger->AI()->Talk(SAY_SINCLARI_ELITE_SQUAD); - task.Schedule(Seconds(1), [this](TaskContext /*task*/) + task.Schedule(1s, [this](TaskContext /*task*/) { me->SetVisible(false); }); @@ -784,6 +788,7 @@ struct npc_violet_hold_teleportation_portal_elite : public npc_violet_hold_telep } }; +// 31011 - Teleportation Portal (Intro) struct npc_violet_hold_teleportation_portal_intro : public npc_violet_hold_teleportation_portal_commonAI { npc_violet_hold_teleportation_portal_intro(Creature* creature) : npc_violet_hold_teleportation_portal_commonAI(creature) @@ -795,7 +800,7 @@ struct npc_violet_hold_teleportation_portal_intro : public npc_violet_hold_telep if (_instance->GetData(DATA_MAIN_EVENT_STATE) != NOT_STARTED) return; - _scheduler.Schedule(Seconds(15), [this](TaskContext task) + _scheduler.Schedule(15s, [this](TaskContext task) { // Limit the number of current summons if (_summons.size() < 3) @@ -894,7 +899,7 @@ struct violet_hold_trashAI : public EscortAI { me->SetReactState(REACT_DEFENSIVE); DoCastAOE(SPELL_DESTROY_DOOR_SEAL); - _scheduler.Schedule(Seconds(2), [this](TaskContext destroyDoorCheck) + _scheduler.Schedule(2s, [this](TaskContext destroyDoorCheck) { if (!me->HasAura(SPELL_DESTROY_DOOR_SEAL)) DoCastAOE(SPELL_DESTROY_DOOR_SEAL); @@ -933,6 +938,8 @@ protected: uint32 _lastWaypointId; }; +// 30661 - Azure Invader +// 30961 - Azure Invader struct npc_azure_invader : public violet_hold_trashAI { npc_azure_invader(Creature* creature) : violet_hold_trashAI(creature) { } @@ -941,13 +948,13 @@ struct npc_azure_invader : public violet_hold_trashAI { if (me->GetEntry() == NPC_AZURE_INVADER_1) { - _scheduler.Schedule(Seconds(5), [this](TaskContext task) + _scheduler.Schedule(5s, [this](TaskContext task) { DoCastVictim(SPELL_CLEAVE); task.Repeat(); }); - _scheduler.Schedule(Seconds(4), [this](TaskContext task) + _scheduler.Schedule(4s, [this](TaskContext task) { DoCastVictim(SPELL_IMPALE); task.Repeat(); @@ -955,21 +962,23 @@ struct npc_azure_invader : public violet_hold_trashAI } else if (me->GetEntry() == NPC_AZURE_INVADER_2) { - _scheduler.Schedule(Seconds(5), [this](TaskContext task) + _scheduler.Schedule(5s, [this](TaskContext task) { DoCastVictim(SPELL_BRUTAL_STRIKE); task.Repeat(); }); - _scheduler.Schedule(Seconds(4), [this](TaskContext task) + _scheduler.Schedule(4s, [this](TaskContext task) { DoCastVictim(SPELL_SUNDER_ARMOR); - task.Repeat(Seconds(8), Seconds(10)); + task.Repeat(8s, 10s); }); } } }; +// 30663 - Azure Binder +// 30918 - Azure Binder struct npc_azure_binder : public violet_hold_trashAI { npc_azure_binder(Creature* creature) : violet_hold_trashAI(creature) { } @@ -978,37 +987,39 @@ struct npc_azure_binder : public violet_hold_trashAI { if (me->GetEntry() == NPC_AZURE_BINDER_1) { - _scheduler.Schedule(Seconds(5), [this](TaskContext task) + _scheduler.Schedule(5s, [this](TaskContext task) { DoCastAOE(SPELL_ARCANE_EXPLOSION); task.Repeat(); }); - _scheduler.Schedule(Seconds(4), [this](TaskContext task) + _scheduler.Schedule(4s, [this](TaskContext task) { if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 30.0f)) DoCast(target, SPELL_ARCANE_BARRAGE); - task.Repeat(Seconds(6)); + task.Repeat(6s); }); } else if (me->GetEntry() == NPC_AZURE_BINDER_2) { - _scheduler.Schedule(Seconds(5), [this](TaskContext task) + _scheduler.Schedule(5s, [this](TaskContext task) { DoCastAOE(SPELL_FROST_NOVA); task.Repeat(); }); - _scheduler.Schedule(Seconds(4), [this](TaskContext task) + _scheduler.Schedule(4s, [this](TaskContext task) { if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f)) DoCast(target, SPELL_FROSTBOLT); - task.Repeat(Seconds(6)); + task.Repeat(6s); }); } } }; +// 30664 - Azure Mage Slayer +// 30963 - Azure Mage Slayer struct npc_azure_mage_slayer : public violet_hold_trashAI { npc_azure_mage_slayer(Creature* creature) : violet_hold_trashAI(creature) { } @@ -1017,57 +1028,59 @@ struct npc_azure_mage_slayer : public violet_hold_trashAI { if (me->GetEntry() == NPC_AZURE_MAGE_SLAYER_1) { - _scheduler.Schedule(Seconds(5), [this](TaskContext task) + _scheduler.Schedule(5s, [this](TaskContext task) { DoCast(me, SPELL_ARCANE_EMPOWERMENT); - task.Repeat(Seconds(14)); + task.Repeat(14s); }); } else if (me->GetEntry() == NPC_AZURE_MAGE_SLAYER_2) { - _scheduler.Schedule(Seconds(5), [this](TaskContext task) + _scheduler.Schedule(5s, [this](TaskContext task) { // wrong spellid? if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 30.0f)) DoCast(target, SPELL_SPELL_LOCK); - task.Repeat(Seconds(9)); + task.Repeat(9s); }); } } }; +// 30668 - Azure Raider struct npc_azure_raider : public violet_hold_trashAI { npc_azure_raider(Creature* creature) : violet_hold_trashAI(creature) { } void ScheduledTasks() override { - _scheduler.Schedule(Seconds(5), [this](TaskContext task) + _scheduler.Schedule(5s, [this](TaskContext task) { DoCastVictim(SPELL_CONCUSSION_BLOW); task.Repeat(); }); - _scheduler.Schedule(Seconds(8), [this](TaskContext task) + _scheduler.Schedule(8s, [this](TaskContext task) { DoCast(me, SPELL_MAGIC_REFLECTION); - task.Repeat(Seconds(10), Seconds(15)); + task.Repeat(10s, 15s); }); } }; +// 32191 - Azure Stalker struct npc_azure_stalker : public violet_hold_trashAI { npc_azure_stalker(Creature* creature) : violet_hold_trashAI(creature) { } void ScheduledTasks() override { - _scheduler.Schedule(Seconds(8), [this](TaskContext task) + _scheduler.Schedule(8s, [this](TaskContext task) { if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f)) DoCast(target, SPELL_TACTICAL_BLINK); - task.Schedule(Milliseconds(1300), [this](TaskContext /*task*/) + task.Schedule(1300ms, [this](TaskContext /*task*/) { if (Unit* target = SelectTarget(SelectTargetMethod::MinDistance, 0, 5.0f)) DoCast(target, SPELL_BACKSTAB); @@ -1078,6 +1091,8 @@ struct npc_azure_stalker : public violet_hold_trashAI } }; +// 30662 - Azure Spellbreaker +// 30962 - Azure Spellbreaker struct npc_azure_spellbreaker : public violet_hold_trashAI { npc_azure_spellbreaker(Creature* creature) : violet_hold_trashAI(creature) { } @@ -1086,51 +1101,52 @@ struct npc_azure_spellbreaker : public violet_hold_trashAI { if (me->GetEntry() == NPC_AZURE_SPELLBREAKER_1) { - _scheduler.Schedule(Seconds(5), [this](TaskContext task) + _scheduler.Schedule(5s, [this](TaskContext task) { if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 30.0f)) DoCast(target, SPELL_ARCANE_BLAST); - task.Repeat(Seconds(6)); + task.Repeat(6s); }); - _scheduler.Schedule(Seconds(4), [this](TaskContext task) + _scheduler.Schedule(4s, [this](TaskContext task) { if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 30.0f)) DoCast(target, SPELL_SLOW); - task.Repeat(Seconds(5)); + task.Repeat(5s); }); } else if (me->GetEntry() == NPC_AZURE_SPELLBREAKER_2) { - _scheduler.Schedule(Seconds(5), [this](TaskContext task) + _scheduler.Schedule(5s, [this](TaskContext task) { if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 30.0f)) DoCast(target, SPELL_CHAINS_OF_ICE); - task.Repeat(Seconds(7)); + task.Repeat(7s); }); - _scheduler.Schedule(Seconds(4), [this](TaskContext task) + _scheduler.Schedule(4s, [this](TaskContext task) { DoCast(me, SPELL_CONE_OF_COLD); - task.Repeat(Seconds(5)); + task.Repeat(5s); }); } } }; +// 30666 - Azure Captain struct npc_azure_captain : public violet_hold_trashAI { npc_azure_captain(Creature* creature) : violet_hold_trashAI(creature) { } void ScheduledTasks() override { - _scheduler.Schedule(Seconds(5), [this](TaskContext task) + _scheduler.Schedule(5s, [this](TaskContext task) { DoCastVictim(SPELL_MORTAL_STRIKE); task.Repeat(); }); - _scheduler.Schedule(Seconds(8), [this](TaskContext task) + _scheduler.Schedule(8s, [this](TaskContext task) { DoCast(me, SPELL_WHIRLWIND_OF_STEEL); task.Repeat(); @@ -1138,27 +1154,29 @@ struct npc_azure_captain : public violet_hold_trashAI } }; +// 30667 - Azure Sorceror struct npc_azure_sorceror : public violet_hold_trashAI { npc_azure_sorceror(Creature* creature) : violet_hold_trashAI(creature) { } void ScheduledTasks() override { - _scheduler.Schedule(Seconds(4), [this](TaskContext task) + _scheduler.Schedule(4s, [this](TaskContext task) { if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 35.0f)) DoCast(target, SPELL_ARCANE_STREAM); - task.Repeat(Seconds(5), Seconds(10)); + task.Repeat(5s, 10s); }); - _scheduler.Schedule(Seconds(), Seconds(), [this](TaskContext task) + _scheduler.Schedule(0s, [this](TaskContext task) { DoCastAOE(SPELL_MANA_DETONATION); - task.Repeat(Seconds(2), Seconds(6)); + task.Repeat(2s, 6s); }); } }; +// 30837 - Defense System struct npc_violet_hold_defense_system : public ScriptedAI { npc_violet_hold_defense_system(Creature* creature) : ScriptedAI(creature) { } @@ -1171,14 +1189,14 @@ struct npc_violet_hold_defense_system : public ScriptedAI void ScheduledTasks() { - _scheduler.Schedule(Seconds(4), [this](TaskContext task) + _scheduler.Schedule(4s, [this](TaskContext task) { DoCastAOE(SPELL_ARCANE_LIGHTNING_DAMAGE); DoCastAOE(SPELL_ARCANE_LIGHTNING_DUMMY); if (task.GetRepeatCounter() == 2) DoCastAOE(SPELL_ARCANE_LIGHTNING_INSTAKILL); else - task.Repeat(Seconds(1)); + task.Repeat(1s); }); } @@ -1191,6 +1209,7 @@ private: TaskScheduler _scheduler; }; +// 193611 - Activation Crystal struct go_activation_crystal : public GameObjectAI { go_activation_crystal(GameObject* go) : GameObjectAI(go) { } |