Skip to content

Commit 631bf7b

Browse files
authored
Scripts/Violet Hold: Modernize scripts (#30990)
1 parent 7e03a1c commit 631bf7b

File tree

9 files changed

+286
-248
lines changed

9 files changed

+286
-248
lines changed

src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp

Lines changed: 41 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -21,28 +21,29 @@
2121
#include "ScriptedCreature.h"
2222
#include "violet_hold.h"
2323

24-
enum Spells
24+
enum CyanigosaTexts
2525
{
26-
SPELL_SUMMON_PLAYER = 21150,
27-
SPELL_ARCANE_VACUUM = 58694,
28-
SPELL_BLIZZARD = 58693,
29-
SPELL_MANA_DESTRUCTION = 59374,
30-
SPELL_TAIL_SWEEP = 58690,
31-
SPELL_UNCONTROLLABLE_ENERGY = 58688,
32-
SPELL_TRANSFORM = 58668
26+
SAY_AGGRO = 0,
27+
SAY_SLAY = 1,
28+
SAY_DEATH = 2,
29+
SAY_SPAWN = 3,
30+
SAY_DISRUPTION = 4,
31+
SAY_BREATH_ATTACK = 5,
32+
SAY_SPECIAL_ATTACK = 6
3333
};
3434

35-
enum Yells
35+
enum CyanigosaSpells
3636
{
37-
SAY_AGGRO = 0,
38-
SAY_SLAY = 1,
39-
SAY_DEATH = 2,
40-
SAY_SPAWN = 3,
41-
SAY_DISRUPTION = 4,
42-
SAY_BREATH_ATTACK = 5,
43-
SAY_SPECIAL_ATTACK = 6
37+
SPELL_SUMMON_PLAYER = 21150,
38+
SPELL_ARCANE_VACUUM = 58694,
39+
SPELL_BLIZZARD = 58693,
40+
SPELL_MANA_DESTRUCTION = 59374,
41+
SPELL_TAIL_SWEEP = 58690,
42+
SPELL_UNCONTROLLABLE_ENERGY = 58688,
43+
SPELL_TRANSFORM = 58668
4444
};
4545

46+
// 31134 - Cyanigosa
4647
struct boss_cyanigosa : public BossAI
4748
{
4849
boss_cyanigosa(Creature* creature) : BossAI(creature, DATA_CYANIGOSA) { }
@@ -78,34 +79,34 @@ struct boss_cyanigosa : public BossAI
7879

7980
void ScheduleTasks() override
8081
{
81-
scheduler.Schedule(Seconds(10), [this](TaskContext task)
82+
scheduler.Schedule(10s, [this](TaskContext task)
8283
{
8384
DoCastAOE(SPELL_ARCANE_VACUUM);
8485
task.Repeat();
8586
});
8687

87-
scheduler.Schedule(Seconds(15), [this](TaskContext task)
88+
scheduler.Schedule(15s, [this](TaskContext task)
8889
{
8990
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 45.0f, true))
9091
DoCast(target, SPELL_BLIZZARD);
9192
task.Repeat();
9293
});
9394

94-
scheduler.Schedule(Seconds(20), [this](TaskContext task)
95+
scheduler.Schedule(20s, [this](TaskContext task)
9596
{
9697
DoCastVictim(SPELL_TAIL_SWEEP);
9798
task.Repeat();
9899
});
99100

100-
scheduler.Schedule(Seconds(25), [this](TaskContext task)
101+
scheduler.Schedule(25s, [this](TaskContext task)
101102
{
102103
DoCastVictim(SPELL_UNCONTROLLABLE_ENERGY);
103104
task.Repeat();
104105
});
105106

106107
if (IsHeroic())
107108
{
108-
scheduler.Schedule(Seconds(30), [this](TaskContext task)
109+
scheduler.Schedule(30s, [this](TaskContext task)
109110
{
110111
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true))
111112
DoCast(target, SPELL_MANA_DESTRUCTION);
@@ -115,24 +116,6 @@ struct boss_cyanigosa : public BossAI
115116
}
116117
};
117118

118-
class achievement_defenseless : public AchievementCriteriaScript
119-
{
120-
public:
121-
achievement_defenseless() : AchievementCriteriaScript("achievement_defenseless") { }
122-
123-
bool OnCheck(Player* /*player*/, Unit* target) override
124-
{
125-
if (!target)
126-
return false;
127-
128-
InstanceScript* instance = target->GetInstanceScript();
129-
if (!instance)
130-
return false;
131-
132-
return instance->GetData(DATA_DEFENSELESS) != 0;
133-
}
134-
};
135-
136119
// 58694 - Arcane Vacuum
137120
class spell_cyanigosa_arcane_vacuum : public SpellScript
138121
{
@@ -154,9 +137,27 @@ class spell_cyanigosa_arcane_vacuum : public SpellScript
154137
}
155138
};
156139

140+
class achievement_defenseless : public AchievementCriteriaScript
141+
{
142+
public:
143+
achievement_defenseless() : AchievementCriteriaScript("achievement_defenseless") { }
144+
145+
bool OnCheck(Player* /*player*/, Unit* target) override
146+
{
147+
if (!target)
148+
return false;
149+
150+
InstanceScript* instance = target->GetInstanceScript();
151+
if (!instance)
152+
return false;
153+
154+
return instance->GetData(DATA_DEFENSELESS) != 0;
155+
}
156+
};
157+
157158
void AddSC_boss_cyanigosa()
158159
{
159160
RegisterVioletHoldCreatureAI(boss_cyanigosa);
160-
new achievement_defenseless();
161161
RegisterSpellScript(spell_cyanigosa_arcane_vacuum);
162+
new achievement_defenseless();
162163
}

src/server/scripts/Northrend/VioletHold/boss_erekem.cpp

Lines changed: 39 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -22,28 +22,30 @@
2222
#include "ScriptedCreature.h"
2323
#include "violet_hold.h"
2424

25-
enum Spells
25+
enum ErekemTexts
2626
{
27-
SPELL_BLOODLUST = 54516,
28-
SPELL_BREAK_BONDS = 59463,
29-
SPELL_CHAIN_HEAL = 54481,
30-
SPELL_EARTH_SHIELD = 54479,
31-
SPELL_EARTH_SHOCK = 54511,
32-
SPELL_LIGHTNING_BOLT = 53044,
33-
SPELL_STORMSTRIKE = 51876,
34-
SPELL_WINDFURY = 54493
27+
SAY_AGGRO = 0,
28+
SAY_SLAY = 1,
29+
SAY_DEATH = 2,
30+
SAY_SPAWN = 3,
31+
SAY_ADD_KILLED = 4,
32+
SAY_BOTH_ADDS_KILLED = 5
3533
};
3634

37-
enum Yells
35+
enum ErekemSpells
3836
{
39-
SAY_AGGRO = 0,
40-
SAY_SLAY = 1,
41-
SAY_DEATH = 2,
42-
SAY_SPAWN = 3,
43-
SAY_ADD_KILLED = 4,
44-
SAY_BOTH_ADDS_KILLED = 5
37+
SPELL_BLOODLUST = 54516,
38+
SPELL_BREAK_BONDS = 59463,
39+
SPELL_CHAIN_HEAL = 54481,
40+
SPELL_EARTH_SHIELD = 54479,
41+
SPELL_EARTH_SHOCK = 54511,
42+
SPELL_LIGHTNING_BOLT = 53044,
43+
SPELL_STORMSTRIKE = 51876,
44+
SPELL_WINDFURY = 54493
4545
};
4646

47+
// 29315 - Erekem
48+
// 32226 - Arakkoa Windwalker
4749
struct boss_erekem : public BossAI
4850
{
4951
boss_erekem(Creature* creature) : BossAI(creature, DATA_EREKEM)
@@ -179,43 +181,43 @@ struct boss_erekem : public BossAI
179181

180182
void ScheduleTasks() override
181183
{
182-
scheduler.Schedule(Seconds(20), [this](TaskContext task)
184+
scheduler.Schedule(20s, [this](TaskContext task)
183185
{
184186
if (Unit* ally = DoSelectLowestHpFriendly(30.0f))
185187
DoCast(ally, SPELL_EARTH_SHIELD);
186188

187-
task.Repeat(Seconds(20));
189+
task.Repeat(20s);
188190
});
189191

190-
scheduler.Schedule(Seconds(2), [this](TaskContext task)
192+
scheduler.Schedule(2s, [this](TaskContext task)
191193
{
192194
DoCast(SPELL_BLOODLUST);
193-
task.Repeat(Seconds(35), Seconds(45));
195+
task.Repeat(35s, 45s);
194196
});
195197

196-
scheduler.Schedule(Seconds(2), [this](TaskContext task)
198+
scheduler.Schedule(2s, [this](TaskContext task)
197199
{
198200
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f))
199201
DoCast(target, SPELL_LIGHTNING_BOLT);
200202

201-
task.Repeat(Milliseconds(2500));
203+
task.Repeat(2500ms);
202204
});
203205

204-
scheduler.Schedule(Seconds(10), [this](TaskContext task)
206+
scheduler.Schedule(10s, [this](TaskContext task)
205207
{
206208
if (Unit* ally = DoSelectLowestHpFriendly(40.0f))
207209
DoCast(ally, SPELL_CHAIN_HEAL);
208210

209211
if (!CheckGuardAlive())
210-
task.Repeat(Seconds(3));
212+
task.Repeat(3s);
211213
else
212-
task.Repeat(Seconds(8), Seconds(11));
214+
task.Repeat(8s, 11s);
213215
});
214216

215-
scheduler.Schedule(Seconds(2), Seconds(8), [this](TaskContext task)
217+
scheduler.Schedule(2s, 8s, [this](TaskContext task)
216218
{
217219
DoCastVictim(SPELL_EARTH_SHOCK);
218-
task.Repeat(Seconds(8), Seconds(13));
220+
task.Repeat(8s, 13s);
219221
});
220222

221223
scheduler.Schedule(0s, [this](TaskContext task)
@@ -227,11 +229,11 @@ struct boss_erekem : public BossAI
227229
if (guard && guard->IsAlive() && CheckGuardAuras(guard))
228230
{
229231
DoCastAOE(SPELL_BREAK_BONDS);
230-
task.Repeat(Seconds(10));
232+
task.Repeat(10s);
231233
return;
232234
}
233235
}
234-
task.Repeat(Milliseconds(500));
236+
task.Repeat(500ms);
235237
});
236238
}
237239

@@ -246,6 +248,8 @@ enum GuardSpells
246248
SPELL_STRIKE = 14516
247249
};
248250

251+
// 29395 - Erekem Guard
252+
// 32228 - Arakkoa Talon Guard
249253
struct npc_erekem_guard : public ScriptedAI
250254
{
251255
npc_erekem_guard(Creature* creature) : ScriptedAI(creature) { }
@@ -271,22 +275,22 @@ struct npc_erekem_guard : public ScriptedAI
271275

272276
void ScheduledTasks()
273277
{
274-
scheduler.Schedule(Seconds(4), Seconds(8), [this](TaskContext task)
278+
scheduler.Schedule(4s, 8s, [this](TaskContext task)
275279
{
276280
DoCastVictim(SPELL_STRIKE);
277-
task.Repeat(Seconds(4), Seconds(8));
281+
task.Repeat(4s, 8s);
278282
});
279283

280-
scheduler.Schedule(Seconds(8), Seconds(13), [this](TaskContext task)
284+
scheduler.Schedule(8s, 13s, [this](TaskContext task)
281285
{
282286
DoCastAOE(SPELL_HOWLING_SCREECH);
283-
task.Repeat(Seconds(8), Seconds(13));
287+
task.Repeat(8s, 13s);
284288
});
285289

286-
scheduler.Schedule(Seconds(1), Seconds(3), [this](TaskContext task)
290+
scheduler.Schedule(1s, 3s, [this](TaskContext task)
287291
{
288292
DoCastVictim(SPELL_GUSHING_WOUND);
289-
task.Repeat(Seconds(7), Seconds(12));
293+
task.Repeat(7s, 12s);
290294
});
291295
}
292296

src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,19 @@
2323
#include "SpellScript.h"
2424
#include "violet_hold.h"
2525

26-
enum Spells
26+
enum IchoronTexts
27+
{
28+
SAY_AGGRO = 0,
29+
SAY_SLAY = 1,
30+
SAY_DEATH = 2,
31+
SAY_SPAWN = 3,
32+
SAY_ENRAGE = 4,
33+
SAY_SHATTER = 5,
34+
SAY_BUBBLE = 6,
35+
EMOTE_SHATTER = 7
36+
};
37+
38+
enum IchoronSpells
2739
{
2840
SPELL_WATER_BLAST = 54237,
2941
SPELL_WATER_BOLT_VOLLEY = 54241,
@@ -47,30 +59,20 @@ enum Spells
4759
SPELL_SPLASH = 59516
4860
};
4961

50-
enum Yells
51-
{
52-
SAY_AGGRO = 0,
53-
SAY_SLAY = 1,
54-
SAY_DEATH = 2,
55-
SAY_SPAWN = 3,
56-
SAY_ENRAGE = 4,
57-
SAY_SHATTER = 5,
58-
SAY_BUBBLE = 6,
59-
EMOTE_SHATTER = 7
60-
};
61-
62-
enum Actions
62+
enum IchoronActions
6363
{
6464
ACTION_WATER_GLOBULE_HIT = 1,
6565
ACTION_PROTECTIVE_BUBBLE_SHATTERED = 2,
6666
ACTION_DRAINED = 3
6767
};
6868

69-
enum Misc
69+
enum IchoronMisc
7070
{
7171
DATA_DEHYDRATION = 1
7272
};
7373

74+
// 29313 - Ichoron
75+
// 32234 - Swirling Water Revenant
7476
struct boss_ichoron : public BossAI
7577
{
7678
boss_ichoron(Creature* creature) : BossAI(creature, DATA_ICHORON)
@@ -131,7 +133,7 @@ struct boss_ichoron : public BossAI
131133
me->LowerPlayerDamageReq(damage);
132134
me->ModifyHealth(-std::min<int32>(damage, me->GetHealth() - 1));
133135

134-
scheduler.DelayAll(Seconds(15));
136+
scheduler.DelayAll(15s);
135137
break;
136138
}
137139
case ACTION_DRAINED:
@@ -205,17 +207,17 @@ struct boss_ichoron : public BossAI
205207
DoCast(me, SPELL_PROTECTIVE_BUBBLE);
206208
});
207209

208-
scheduler.Schedule(Seconds(10), Seconds(15), [this](TaskContext task)
210+
scheduler.Schedule(10s, 15s, [this](TaskContext task)
209211
{
210212
DoCastAOE(SPELL_WATER_BOLT_VOLLEY);
211-
task.Repeat(Seconds(10), Seconds(15));
213+
task.Repeat(10s, 15s);
212214
});
213215

214-
scheduler.Schedule(Seconds(6), Seconds(9), [this](TaskContext task)
216+
scheduler.Schedule(6s, 9s, [this](TaskContext task)
215217
{
216218
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f))
217219
DoCast(target, SPELL_WATER_BLAST);
218-
task.Repeat(Seconds(6), Seconds(9));
220+
task.Repeat(6s, 9s);
219221
});
220222
}
221223

@@ -224,6 +226,7 @@ struct boss_ichoron : public BossAI
224226
bool _dehydration;
225227
};
226228

229+
// 29321 - Ichor Globule
227230
struct npc_ichor_globule : public ScriptedAI
228231
{
229232
npc_ichor_globule(Creature* creature) : ScriptedAI(creature), _splashTriggered(false)

0 commit comments

Comments
 (0)