aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoroffl <11556157+offl@users.noreply.github.com>2025-05-27 15:12:07 +0300
committerGitHub <noreply@github.com>2025-05-27 14:12:07 +0200
commit631bf7be4eb9c51b78ff70d478bea1322db23aba (patch)
tree1860d74504a32d7d1fc3d41a6a21c21e9ebd68ad /src
parent7e03a1ce05baf33f8810658a679733c5e3626760 (diff)
Scripts/Violet Hold: Modernize scripts (#30990)
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp81
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_erekem.cpp74
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp43
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp26
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_moragg.cpp26
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp60
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp39
-rw-r--r--src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp54
-rw-r--r--src/server/scripts/Northrend/VioletHold/violet_hold.cpp131
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) { }