Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
arcatraz.cpp
Go to the documentation of this file.
1
/*
2
* This file is part of Project SkyFire https://www.projectskyfire.org.
3
* See LICENSE.md file for Copyright information
4
*/
5
6
/* ScriptData
7
SDName: Arcatraz
8
SD%Complete: 60
9
SDComment: Warden Mellichar, event controller for Skyriss event. Millhouse Manastorm. @todo make better combatAI for Millhouse.
10
SDCategory: Tempest Keep, The Arcatraz
11
EndScriptData */
12
13
/* ContentData
14
npc_millhouse_manastorm
15
npc_warden_mellichar
16
npc_zerekethvoidzone
17
EndContentData */
18
19
#include "
ScriptMgr.h
"
20
#include "
ScriptedCreature.h
"
21
#include "
arcatraz.h
"
22
23
/*#####
24
# npc_millhouse_manastorm
25
#####*/
26
27
enum
MillhouseSays
28
{
29
SAY_INTRO_1
= 0,
30
SAY_INTRO_2
= 1,
31
SAY_WATER
= 2,
32
SAY_BUFFS
= 3,
33
SAY_DRINK
= 4,
34
SAY_READY
= 5,
35
SAY_KILL
= 6,
36
SAY_PYRO
= 7,
37
SAY_ICEBLOCK
= 8,
38
SAY_LOWHP
= 9,
39
SAY_DEATH
= 10,
40
SAY_COMPLETE
= 11,
41
};
42
43
enum
MillhouseSpells
44
{
45
SPELL_CONJURE_WATER
= 36879,
46
SPELL_ARCANE_INTELLECT
= 36880,
47
SPELL_ICE_ARMOR
= 36881,
48
SPELL_ARCANE_MISSILES
= 33833,
49
SPELL_CONE_OF_COLD
= 12611,
50
SPELL_FIRE_BLAST
= 13341,
51
SPELL_FIREBALL
= 14034,
52
SPELL_FROSTBOLT
= 15497,
53
SPELL_PYROBLAST
= 33975,
54
};
55
56
class
npc_millhouse_manastorm
:
public
CreatureScript
57
{
58
public
:
59
npc_millhouse_manastorm
() :
CreatureScript
(
"npc_millhouse_manastorm"
) { }
60
61
struct
npc_millhouse_manastormAI
:
public
ScriptedAI
62
{
63
npc_millhouse_manastormAI
(
Creature
* creature) :
ScriptedAI
(creature)
64
{
65
instance
= creature->
GetInstanceScript
();
66
}
67
68
InstanceScript
*
instance
;
69
70
uint32
EventProgress_Timer
;
71
uint32
Phase
;
72
bool
Init
;
73
bool
LowHp
;
74
75
uint32
Pyroblast_Timer
;
76
uint32
Fireball_Timer
;
77
78
void
Reset
()
OVERRIDE
79
{
80
EventProgress_Timer
= 2000;
81
LowHp
=
false
;
82
Init
=
false
;
83
Phase
= 1;
84
85
Pyroblast_Timer
= 1000;
86
Fireball_Timer
= 2500;
87
88
if
(
instance
)
89
{
90
if
(
instance
->GetData(
TYPE_WARDEN_2
) ==
DONE
)
91
Init
=
true
;
92
93
if
(
instance
->GetData(
TYPE_HARBINGERSKYRISS
) ==
DONE
)
94
Talk
(
SAY_COMPLETE
);
95
}
96
}
97
98
void
AttackStart
(
Unit
* who)
OVERRIDE
99
{
100
if
(
me
->Attack(who,
true
))
101
{
102
me
->AddThreat(who, 0.0f);
103
me
->SetInCombatWith(who);
104
who->SetInCombatWith(
me
);
105
me
->GetMotionMaster()->MoveChase(who, 25.0f);
106
}
107
}
108
109
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
{ }
110
111
void
KilledUnit
(
Unit
*
/*victim*/
)
OVERRIDE
112
{
113
Talk
(
SAY_KILL
);
114
}
115
116
void
JustDied
(
Unit
*
/*killer*/
)
OVERRIDE
117
{
118
Talk
(
SAY_DEATH
);
119
120
/*for questId 10886 (heroic mode only)
121
if (instance && instance->GetData(TYPE_HARBINGERSKYRISS) != DONE)
122
->FailQuest();*/
123
}
124
125
void
UpdateAI
(
uint32
diff)
OVERRIDE
126
{
127
if
(!
Init
)
128
{
129
if
(
EventProgress_Timer
<= diff)
130
{
131
if
(
Phase
< 8)
132
{
133
switch
(
Phase
)
134
{
135
case
1:
136
Talk
(
SAY_INTRO_1
);
137
EventProgress_Timer
= 18000;
138
break
;
139
case
2:
140
Talk
(
SAY_INTRO_2
);
141
EventProgress_Timer
= 18000;
142
break
;
143
case
3:
144
Talk
(
SAY_WATER
);
145
DoCast
(
me
,
SPELL_CONJURE_WATER
);
146
EventProgress_Timer
= 7000;
147
break
;
148
case
4:
149
Talk
(
SAY_BUFFS
);
150
DoCast
(
me
,
SPELL_ICE_ARMOR
);
151
EventProgress_Timer
= 7000;
152
break
;
153
case
5:
154
Talk
(
SAY_DRINK
);
155
DoCast
(
me
,
SPELL_ARCANE_INTELLECT
);
156
EventProgress_Timer
= 7000;
157
break
;
158
case
6:
159
Talk
(
SAY_READY
);
160
EventProgress_Timer
= 6000;
161
break
;
162
case
7:
163
if
(
instance
)
164
instance
->SetData(
TYPE_WARDEN_2
,
DONE
);
165
Init
=
true
;
166
break
;
167
}
168
++
Phase
;
169
}
170
}
171
else
172
EventProgress_Timer
-= diff;
173
}
174
175
if
(!
UpdateVictim
())
176
return
;
177
if
(!
LowHp
&&
HealthBelowPct
(20))
178
{
179
Talk
(
SAY_LOWHP
);
180
LowHp
=
true
;
181
}
182
183
if
(
Pyroblast_Timer
<= diff)
184
{
185
if
(
me
->IsNonMeleeSpellCasted(
false
))
186
return
;
187
188
Talk
(
SAY_PYRO
);
189
190
DoCastVictim
(
SPELL_PYROBLAST
);
191
Pyroblast_Timer
= 40000;
192
}
193
else
194
Pyroblast_Timer
-=diff;
195
196
if
(
Fireball_Timer
<= diff)
197
{
198
DoCastVictim
(
SPELL_FIREBALL
);
199
Fireball_Timer
= 4000;
200
}
201
else
202
Fireball_Timer
-=diff;
203
204
DoMeleeAttackIfReady
();
205
}
206
};
207
208
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
209
{
210
return
new
npc_millhouse_manastormAI
(creature);
211
}
212
};
213
/*#####
214
# npc_warden_mellichar
215
#####*/
216
217
enum
WardenSays
218
{
219
YELL_INTRO1
= 0,
220
YELL_INTRO2
= 1,
221
YELL_RELEASE1
= 2,
222
YELL_RELEASE2A
= 3,
223
YELL_RELEASE2B
= 4,
224
YELL_RELEASE3
= 5,
225
YELL_RELEASE4
= 6,
226
YELL_WELCOME
= 7,
227
};
228
229
enum
WardenUnits
230
{
231
//phase 2(acid mobs)
232
ENTRY_TRICKSTER
= 20905,
233
ENTRY_PH_HUNTER
= 20906,
234
//phase 3
235
ENTRY_MILLHOUSE
= 20977,
236
//phase 4(acid mobs)
237
ENTRY_AKKIRIS
= 20908,
238
ENTRY_SULFURON
= 20909,
239
//phase 5(acid mobs)
240
ENTRY_TW_DRAK
= 20910,
241
ENTRY_BL_DRAK
= 20911,
242
//phase 6
243
ENTRY_SKYRISS
= 20912,
244
};
245
246
enum
WardenSpells
247
{
248
//TARGET_SCRIPT
249
SPELL_TARGET_ALPHA
= 36856,
250
SPELL_TARGET_BETA
= 36854,
251
SPELL_TARGET_DELTA
= 36857,
252
SPELL_TARGET_GAMMA
= 36858,
253
SPELL_TARGET_OMEGA
= 36852,
254
SPELL_BUBBLE_VISUAL
= 36849,
255
};
256
257
class
npc_warden_mellichar
:
public
CreatureScript
258
{
259
public
:
260
npc_warden_mellichar
() :
CreatureScript
(
"npc_warden_mellichar"
) { }
261
262
struct
npc_warden_mellicharAI
:
public
ScriptedAI
263
{
264
npc_warden_mellicharAI
(
Creature
* creature) :
ScriptedAI
(creature)
265
{
266
instance
= creature->
GetInstanceScript
();
267
}
268
269
InstanceScript
*
instance
;
270
271
bool
IsRunning
;
272
bool
CanSpawn
;
273
274
uint32
EventProgress_Timer
;
275
uint32
Phase
;
276
277
void
Reset
()
OVERRIDE
278
{
279
IsRunning
=
false
;
280
CanSpawn
=
false
;
281
282
EventProgress_Timer
= 22000;
283
Phase
= 1;
284
285
me
->SetFlag(
UNIT_FIELD_FLAGS
,
UNIT_FLAG_NON_ATTACKABLE
);
286
DoCast
(
me
,
SPELL_TARGET_OMEGA
);
287
288
if
(
instance
)
289
instance
->SetData(
TYPE_HARBINGERSKYRISS
,
NOT_STARTED
);
290
}
291
292
void
AttackStart
(
Unit
*
/*who*/
)
OVERRIDE
{ }
293
294
void
MoveInLineOfSight
(
Unit
* who)
OVERRIDE
295
296
{
297
if
(
IsRunning
)
298
return
;
299
300
if
(!
me
->GetVictim() &&
me
->CanCreatureAttack(who))
301
{
302
if
(!
me
->CanFly() &&
me
->GetDistanceZ(who) >
CREATURE_Z_ATTACK_RANGE
)
303
return
;
304
if
(who->GetTypeId() !=
TypeID::TYPEID_PLAYER
)
305
return
;
306
307
float
attackRadius =
me
->GetAttackDistance(who)/10;
308
if
(
me
->IsWithinDistInMap(who, attackRadius) &&
me
->IsWithinLOSInMap(who))
309
EnterCombat
(who);
310
}
311
}
312
313
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
314
{
315
Talk
(
YELL_INTRO1
);
316
DoCast
(
me
,
SPELL_BUBBLE_VISUAL
);
317
318
if
(
instance
)
319
{
320
instance
->SetData(
TYPE_HARBINGERSKYRISS
,
IN_PROGRESS
);
321
instance
->HandleGameObject(
instance
->GetData64(
DATA_SPHERE_SHIELD
),
false
);
322
IsRunning
=
true
;
323
}
324
}
325
326
bool
CanProgress
()
327
{
328
if
(
instance
)
329
{
330
if
(
Phase
== 7 &&
instance
->GetData(
TYPE_WARDEN_4
) ==
DONE
)
331
return
true
;
332
if
(
Phase
== 6 &&
instance
->GetData(
TYPE_WARDEN_3
) ==
DONE
)
333
return
true
;
334
if
(
Phase
== 5 &&
instance
->GetData(
TYPE_WARDEN_2
) ==
DONE
)
335
return
true
;
336
if
(
Phase
== 4)
337
return
true
;
338
if
(
Phase
== 3 &&
instance
->GetData(
TYPE_WARDEN_1
) ==
DONE
)
339
return
true
;
340
if
(
Phase
== 2 &&
instance
->GetData(
TYPE_HARBINGERSKYRISS
) ==
IN_PROGRESS
)
341
return
true
;
342
if
(
Phase
== 1 &&
instance
->GetData(
TYPE_HARBINGERSKYRISS
) ==
IN_PROGRESS
)
343
return
true
;
344
return
false
;
345
}
346
return
false
;
347
}
348
349
void
DoPrepareForPhase
()
350
{
351
if
(
instance
)
352
{
353
me
->InterruptNonMeleeSpells(
true
);
354
me
->RemoveAurasByType(
SPELL_AURA_DUMMY
);
355
356
switch
(
Phase
)
357
{
358
case
2:
359
DoCast
(
me
,
SPELL_TARGET_ALPHA
);
360
instance
->SetData(
TYPE_WARDEN_1
,
IN_PROGRESS
);
361
instance
->HandleGameObject(
instance
->GetData64(
DATA_SPHERE_SHIELD
),
false
);
362
break
;
363
case
3:
364
DoCast
(
me
,
SPELL_TARGET_BETA
);
365
instance
->SetData(
TYPE_WARDEN_2
,
IN_PROGRESS
);
366
break
;
367
case
5:
368
DoCast
(
me
,
SPELL_TARGET_DELTA
);
369
instance
->SetData(
TYPE_WARDEN_3
,
IN_PROGRESS
);
370
break
;
371
case
6:
372
DoCast
(
me
,
SPELL_TARGET_GAMMA
);
373
instance
->SetData(
TYPE_WARDEN_4
,
IN_PROGRESS
);
374
break
;
375
case
7:
376
instance
->SetData(
TYPE_WARDEN_5
,
IN_PROGRESS
);
377
break
;
378
}
379
CanSpawn
=
true
;
380
}
381
}
382
383
void
UpdateAI
(
uint32
diff)
OVERRIDE
384
{
385
if
(!
IsRunning
)
386
return
;
387
388
if
(
EventProgress_Timer
<= diff)
389
{
390
if
(
instance
)
391
{
392
if
(
instance
->GetData(
TYPE_HARBINGERSKYRISS
) ==
FAIL
)
393
{
394
Reset
();
395
return
;
396
}
397
}
398
399
if
(
CanSpawn
)
400
{
401
//continue beam omega pod, unless we are about to summon skyriss
402
if
(
Phase
!= 7)
403
DoCast
(
me
,
SPELL_TARGET_OMEGA
);
404
405
switch
(
Phase
)
406
{
407
case
2:
408
switch
(std::rand() % 1)
409
{
410
case
0:
411
me
->SummonCreature(
ENTRY_TRICKSTER
, 478.326f, -148.505f, 42.56f, 3.19f,
TempSummonType::TEMPSUMMON_TIMED_OR_DEAD_DESPAWN
, 600000);
412
break
;
413
case
1:
414
me
->SummonCreature(
ENTRY_PH_HUNTER
, 478.326f, -148.505f, 42.56f, 3.19f,
TempSummonType::TEMPSUMMON_TIMED_OR_DEAD_DESPAWN
, 600000);
415
break
;
416
}
417
break
;
418
case
3:
419
me
->SummonCreature(
ENTRY_MILLHOUSE
, 413.292f, -148.378f, 42.56f, 6.27f,
TempSummonType::TEMPSUMMON_TIMED_OR_DEAD_DESPAWN
, 600000);
420
break
;
421
case
4:
422
Talk
(
YELL_RELEASE2B
);
423
break
;
424
case
5:
425
switch
(std::rand() % 1)
426
{
427
case
0:
428
me
->SummonCreature(
ENTRY_AKKIRIS
, 420.179f, -174.396f, 42.58f, 0.02f,
TempSummonType::TEMPSUMMON_TIMED_OR_DEAD_DESPAWN
, 600000);
429
break
;
430
case
1:
431
me
->SummonCreature(
ENTRY_SULFURON
, 420.179f, -174.396f, 42.58f, 0.02f,
TempSummonType::TEMPSUMMON_TIMED_OR_DEAD_DESPAWN
, 600000);
432
break
;
433
}
434
break
;
435
case
6:
436
switch
(std::rand() % 1)
437
{
438
case
0:
439
me
->SummonCreature(
ENTRY_TW_DRAK
, 471.795f, -174.58f, 42.58f, 3.06f,
TempSummonType::TEMPSUMMON_TIMED_OR_DEAD_DESPAWN
, 600000);
440
break
;
441
case
1:
442
me
->SummonCreature(
ENTRY_BL_DRAK
, 471.795f, -174.58f, 42.58f, 3.06f,
TempSummonType::TEMPSUMMON_TIMED_OR_DEAD_DESPAWN
, 600000);
443
break
;
444
}
445
break
;
446
case
7:
447
me
->SummonCreature(
ENTRY_SKYRISS
, 445.763f, -191.639f, 44.64f, 1.60f,
TempSummonType::TEMPSUMMON_TIMED_OR_DEAD_DESPAWN
, 600000);
448
Talk
(
YELL_WELCOME
);
449
break
;
450
}
451
CanSpawn
=
false
;
452
++
Phase
;
453
}
454
if
(
CanProgress
())
455
{
456
switch
(
Phase
)
457
{
458
case
1:
459
Talk
(
YELL_INTRO2
);
460
EventProgress_Timer
= 10000;
461
++
Phase
;
462
break
;
463
case
2:
464
Talk
(
YELL_RELEASE1
);
465
DoPrepareForPhase
();
466
EventProgress_Timer
= 7000;
467
break
;
468
case
3:
469
Talk
(
YELL_RELEASE2A
);
470
DoPrepareForPhase
();
471
EventProgress_Timer
= 10000;
472
break
;
473
case
4:
474
DoPrepareForPhase
();
475
EventProgress_Timer
= 15000;
476
break
;
477
case
5:
478
Talk
(
YELL_RELEASE3
);
479
DoPrepareForPhase
();
480
EventProgress_Timer
= 15000;
481
break
;
482
case
6:
483
Talk
(
YELL_RELEASE4
);
484
DoPrepareForPhase
();
485
EventProgress_Timer
= 15000;
486
break
;
487
case
7:
488
DoPrepareForPhase
();
489
EventProgress_Timer
= 15000;
490
break
;
491
}
492
}
493
}
494
else
495
EventProgress_Timer
-= diff;
496
}
497
};
498
499
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
500
{
501
return
new
npc_warden_mellicharAI
(creature);
502
}
503
};
504
505
/*#####
506
# npc_zerekethvoidzone (this script probably not needed in future -> `creature_template_addon`.`auras`='36120 0')
507
#####*/
508
509
enum
ZerekethSpell
510
{
511
SPELL_VOID_ZONE_DAMAGE
= 36120,
512
};
513
514
class
npc_zerekethvoidzone
:
public
CreatureScript
515
{
516
public
:
517
npc_zerekethvoidzone
() :
CreatureScript
(
"npc_zerekethvoidzone"
) { }
518
519
struct
npc_zerekethvoidzoneAI
:
public
ScriptedAI
520
{
521
npc_zerekethvoidzoneAI
(
Creature
* creature) :
ScriptedAI
(creature) { }
522
523
void
Reset
()
OVERRIDE
524
{
525
me
->SetUInt32Value(
UNIT_FIELD_NPC_FLAGS
, 0);
526
me
->setFaction(16);
527
me
->SetFlag(
UNIT_FIELD_FLAGS
,
UNIT_FLAG_NOT_SELECTABLE
);
528
529
DoCast
(
me
,
SPELL_VOID_ZONE_DAMAGE
);
530
}
531
532
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
{ }
533
};
534
535
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
536
{
537
return
new
npc_zerekethvoidzoneAI
(creature);
538
}
539
};
540
541
void
AddSC_arcatraz
()
542
{
543
new
npc_millhouse_manastorm
();
544
new
npc_warden_mellichar
();
545
new
npc_zerekethvoidzone
();
546
}
CREATURE_Z_ATTACK_RANGE
#define CREATURE_Z_ATTACK_RANGE
Definition
Creature.h:422
uint32
std::uint32_t uint32
Definition
Define.h:77
OVERRIDE
#define OVERRIDE
Definition
Define.h:60
IN_PROGRESS
@ IN_PROGRESS
Definition
InstanceScript.h:47
FAIL
@ FAIL
Definition
InstanceScript.h:48
DONE
@ DONE
Definition
InstanceScript.h:49
NOT_STARTED
@ NOT_STARTED
Definition
InstanceScript.h:46
TypeID::TYPEID_PLAYER
@ TYPEID_PLAYER
Definition
Object.h:55
TempSummonType::TEMPSUMMON_TIMED_OR_DEAD_DESPAWN
@ TEMPSUMMON_TIMED_OR_DEAD_DESPAWN
Definition
Object.h:68
ScriptMgr.h
ScriptedCreature.h
SPELL_AURA_DUMMY
@ SPELL_AURA_DUMMY
Definition
SpellAuraDefines.h:51
UNIT_FLAG_NON_ATTACKABLE
@ UNIT_FLAG_NON_ATTACKABLE
Definition
Unit.h:626
UNIT_FLAG_NOT_SELECTABLE
@ UNIT_FLAG_NOT_SELECTABLE
Definition
Unit.h:650
UNIT_FIELD_NPC_FLAGS
@ UNIT_FIELD_NPC_FLAGS
Definition
UpdateFields.h:107
UNIT_FIELD_FLAGS
@ UNIT_FIELD_FLAGS
Definition
UpdateFields.h:82
AddSC_arcatraz
void AddSC_arcatraz()
Definition
arcatraz.cpp:541
WardenSpells
WardenSpells
Definition
arcatraz.cpp:247
SPELL_TARGET_GAMMA
@ SPELL_TARGET_GAMMA
Definition
arcatraz.cpp:252
SPELL_TARGET_BETA
@ SPELL_TARGET_BETA
Definition
arcatraz.cpp:250
SPELL_TARGET_DELTA
@ SPELL_TARGET_DELTA
Definition
arcatraz.cpp:251
SPELL_BUBBLE_VISUAL
@ SPELL_BUBBLE_VISUAL
Definition
arcatraz.cpp:254
SPELL_TARGET_OMEGA
@ SPELL_TARGET_OMEGA
Definition
arcatraz.cpp:253
SPELL_TARGET_ALPHA
@ SPELL_TARGET_ALPHA
Definition
arcatraz.cpp:249
WardenSays
WardenSays
Definition
arcatraz.cpp:218
YELL_INTRO2
@ YELL_INTRO2
Definition
arcatraz.cpp:220
YELL_INTRO1
@ YELL_INTRO1
Definition
arcatraz.cpp:219
YELL_RELEASE2B
@ YELL_RELEASE2B
Definition
arcatraz.cpp:223
YELL_WELCOME
@ YELL_WELCOME
Definition
arcatraz.cpp:226
YELL_RELEASE4
@ YELL_RELEASE4
Definition
arcatraz.cpp:225
YELL_RELEASE1
@ YELL_RELEASE1
Definition
arcatraz.cpp:221
YELL_RELEASE2A
@ YELL_RELEASE2A
Definition
arcatraz.cpp:222
YELL_RELEASE3
@ YELL_RELEASE3
Definition
arcatraz.cpp:224
ZerekethSpell
ZerekethSpell
Definition
arcatraz.cpp:510
SPELL_VOID_ZONE_DAMAGE
@ SPELL_VOID_ZONE_DAMAGE
Definition
arcatraz.cpp:511
WardenUnits
WardenUnits
Definition
arcatraz.cpp:230
ENTRY_TRICKSTER
@ ENTRY_TRICKSTER
Definition
arcatraz.cpp:232
ENTRY_SULFURON
@ ENTRY_SULFURON
Definition
arcatraz.cpp:238
ENTRY_AKKIRIS
@ ENTRY_AKKIRIS
Definition
arcatraz.cpp:237
ENTRY_MILLHOUSE
@ ENTRY_MILLHOUSE
Definition
arcatraz.cpp:235
ENTRY_SKYRISS
@ ENTRY_SKYRISS
Definition
arcatraz.cpp:243
ENTRY_PH_HUNTER
@ ENTRY_PH_HUNTER
Definition
arcatraz.cpp:233
ENTRY_BL_DRAK
@ ENTRY_BL_DRAK
Definition
arcatraz.cpp:241
ENTRY_TW_DRAK
@ ENTRY_TW_DRAK
Definition
arcatraz.cpp:240
MillhouseSays
MillhouseSays
Definition
arcatraz.cpp:28
SAY_DEATH
@ SAY_DEATH
Definition
arcatraz.cpp:39
SAY_INTRO_2
@ SAY_INTRO_2
Definition
arcatraz.cpp:30
SAY_PYRO
@ SAY_PYRO
Definition
arcatraz.cpp:36
SAY_BUFFS
@ SAY_BUFFS
Definition
arcatraz.cpp:32
SAY_INTRO_1
@ SAY_INTRO_1
Definition
arcatraz.cpp:29
SAY_WATER
@ SAY_WATER
Definition
arcatraz.cpp:31
SAY_ICEBLOCK
@ SAY_ICEBLOCK
Definition
arcatraz.cpp:37
SAY_KILL
@ SAY_KILL
Definition
arcatraz.cpp:35
SAY_READY
@ SAY_READY
Definition
arcatraz.cpp:34
SAY_LOWHP
@ SAY_LOWHP
Definition
arcatraz.cpp:38
SAY_COMPLETE
@ SAY_COMPLETE
Definition
arcatraz.cpp:40
SAY_DRINK
@ SAY_DRINK
Definition
arcatraz.cpp:33
MillhouseSpells
MillhouseSpells
Definition
arcatraz.cpp:44
SPELL_ICE_ARMOR
@ SPELL_ICE_ARMOR
Definition
arcatraz.cpp:47
SPELL_CONJURE_WATER
@ SPELL_CONJURE_WATER
Definition
arcatraz.cpp:45
SPELL_ARCANE_INTELLECT
@ SPELL_ARCANE_INTELLECT
Definition
arcatraz.cpp:46
SPELL_FIREBALL
@ SPELL_FIREBALL
Definition
arcatraz.cpp:51
SPELL_PYROBLAST
@ SPELL_PYROBLAST
Definition
arcatraz.cpp:53
arcatraz.h
TYPE_WARDEN_5
@ TYPE_WARDEN_5
Definition
arcatraz.h:19
TYPE_WARDEN_1
@ TYPE_WARDEN_1
Definition
arcatraz.h:15
DATA_SPHERE_SHIELD
@ DATA_SPHERE_SHIELD
Definition
arcatraz.h:22
TYPE_HARBINGERSKYRISS
@ TYPE_HARBINGERSKYRISS
Definition
arcatraz.h:14
TYPE_WARDEN_4
@ TYPE_WARDEN_4
Definition
arcatraz.h:18
TYPE_WARDEN_3
@ TYPE_WARDEN_3
Definition
arcatraz.h:17
TYPE_WARDEN_2
@ TYPE_WARDEN_2
Definition
arcatraz.h:16
SPELL_FROSTBOLT
@ SPELL_FROSTBOLT
Definition
boss_balinda.cpp:14
SPELL_FIREBALL
@ SPELL_FIREBALL
Definition
boss_balinda.cpp:13
SPELL_CONE_OF_COLD
@ SPELL_CONE_OF_COLD
Definition
boss_balinda.cpp:12
SAY_DEATH
#define SAY_DEATH
Definition
boss_commander_kolurg.cpp:30
SAY_KILL
#define SAY_KILL
Definition
boss_commander_kolurg.cpp:29
SPELL_ARCANE_MISSILES
@ SPELL_ARCANE_MISSILES
Definition
boss_kelthuzad.cpp:87
SPELL_FIRE_BLAST
@ SPELL_FIRE_BLAST
Definition
boss_magtheridon.cpp:69
SPELL_PYROBLAST
@ SPELL_PYROBLAST
Definition
boss_pyroguard_emberseer.cpp:32
SAY_DRINK
@ SAY_DRINK
Definition
boss_shade_of_aran.cpp:25
CreatureAI
Definition
CreatureAI.h:54
CreatureAI::Talk
void Talk(uint8 id, WorldObject const *whisperTarget=NULL)
Definition
CreatureAI.cpp:28
CreatureAI::UpdateVictim
bool UpdateVictim()
Definition
CreatureAI.cpp:192
Creature
Definition
Creature.h:427
CreatureScript::CreatureScript
CreatureScript(const char *name)
Definition
ScriptMgr.cpp:1436
InstanceScript
Definition
InstanceScript.h:123
UnitAI::DoMeleeAttackIfReady
void DoMeleeAttackIfReady()
Definition
UnitAI.cpp:28
UnitAI::DoCast
void DoCast(uint32 spellId)
Definition
UnitAI.cpp:110
UnitAI::DoCastVictim
void DoCastVictim(uint32 spellId, bool triggered=false)
Definition
UnitAI.cpp:168
Unit
Definition
Unit.h:1367
WorldObject::GetInstanceScript
InstanceScript * GetInstanceScript()
Definition
Object.cpp:1612
npc_millhouse_manastorm
Definition
arcatraz.cpp:57
npc_millhouse_manastorm::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
arcatraz.cpp:208
npc_millhouse_manastorm::npc_millhouse_manastorm
npc_millhouse_manastorm()
Definition
arcatraz.cpp:59
npc_warden_mellichar
Definition
arcatraz.cpp:258
npc_warden_mellichar::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
arcatraz.cpp:499
npc_warden_mellichar::npc_warden_mellichar
npc_warden_mellichar()
Definition
arcatraz.cpp:260
npc_zerekethvoidzone
Definition
arcatraz.cpp:515
npc_zerekethvoidzone::npc_zerekethvoidzone
npc_zerekethvoidzone()
Definition
arcatraz.cpp:517
npc_zerekethvoidzone::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
arcatraz.cpp:535
SAY_READY
#define SAY_READY
Definition
karazhan.cpp:54
ScriptedAI::me
Creature * me
Definition
ScriptedCreature.h:182
ScriptedAI::HealthBelowPct
bool HealthBelowPct(uint32 pct) const
Definition
ScriptedCreature.h:247
ScriptedAI::ScriptedAI
ScriptedAI(Creature *creature)
Definition
ScriptedCreature.cpp:85
npc_millhouse_manastorm::npc_millhouse_manastormAI
Definition
arcatraz.cpp:62
npc_millhouse_manastorm::npc_millhouse_manastormAI::KilledUnit
void KilledUnit(Unit *) OVERRIDE
Definition
arcatraz.cpp:111
npc_millhouse_manastorm::npc_millhouse_manastormAI::EventProgress_Timer
uint32 EventProgress_Timer
Definition
arcatraz.cpp:70
npc_millhouse_manastorm::npc_millhouse_manastormAI::Pyroblast_Timer
uint32 Pyroblast_Timer
Definition
arcatraz.cpp:75
npc_millhouse_manastorm::npc_millhouse_manastormAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
arcatraz.cpp:109
npc_millhouse_manastorm::npc_millhouse_manastormAI::AttackStart
void AttackStart(Unit *who) OVERRIDE
Definition
arcatraz.cpp:98
npc_millhouse_manastorm::npc_millhouse_manastormAI::Fireball_Timer
uint32 Fireball_Timer
Definition
arcatraz.cpp:76
npc_millhouse_manastorm::npc_millhouse_manastormAI::Reset
void Reset() OVERRIDE
Definition
arcatraz.cpp:78
npc_millhouse_manastorm::npc_millhouse_manastormAI::Init
bool Init
Definition
arcatraz.cpp:72
npc_millhouse_manastorm::npc_millhouse_manastormAI::npc_millhouse_manastormAI
npc_millhouse_manastormAI(Creature *creature)
Definition
arcatraz.cpp:63
npc_millhouse_manastorm::npc_millhouse_manastormAI::Phase
uint32 Phase
Definition
arcatraz.cpp:71
npc_millhouse_manastorm::npc_millhouse_manastormAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
arcatraz.cpp:125
npc_millhouse_manastorm::npc_millhouse_manastormAI::JustDied
void JustDied(Unit *) OVERRIDE
Definition
arcatraz.cpp:116
npc_millhouse_manastorm::npc_millhouse_manastormAI::LowHp
bool LowHp
Definition
arcatraz.cpp:73
npc_millhouse_manastorm::npc_millhouse_manastormAI::instance
InstanceScript * instance
Definition
arcatraz.cpp:68
npc_warden_mellichar::npc_warden_mellicharAI
Definition
arcatraz.cpp:263
npc_warden_mellichar::npc_warden_mellicharAI::CanSpawn
bool CanSpawn
Definition
arcatraz.cpp:272
npc_warden_mellichar::npc_warden_mellicharAI::EventProgress_Timer
uint32 EventProgress_Timer
Definition
arcatraz.cpp:274
npc_warden_mellichar::npc_warden_mellicharAI::MoveInLineOfSight
void MoveInLineOfSight(Unit *who) OVERRIDE
Definition
arcatraz.cpp:294
npc_warden_mellichar::npc_warden_mellicharAI::CanProgress
bool CanProgress()
Definition
arcatraz.cpp:326
npc_warden_mellichar::npc_warden_mellicharAI::npc_warden_mellicharAI
npc_warden_mellicharAI(Creature *creature)
Definition
arcatraz.cpp:264
npc_warden_mellichar::npc_warden_mellicharAI::IsRunning
bool IsRunning
Definition
arcatraz.cpp:271
npc_warden_mellichar::npc_warden_mellicharAI::Reset
void Reset() OVERRIDE
Definition
arcatraz.cpp:277
npc_warden_mellichar::npc_warden_mellicharAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
arcatraz.cpp:383
npc_warden_mellichar::npc_warden_mellicharAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
arcatraz.cpp:313
npc_warden_mellichar::npc_warden_mellicharAI::Phase
uint32 Phase
Definition
arcatraz.cpp:275
npc_warden_mellichar::npc_warden_mellicharAI::AttackStart
void AttackStart(Unit *) OVERRIDE
Definition
arcatraz.cpp:292
npc_warden_mellichar::npc_warden_mellicharAI::DoPrepareForPhase
void DoPrepareForPhase()
Definition
arcatraz.cpp:349
npc_warden_mellichar::npc_warden_mellicharAI::instance
InstanceScript * instance
Definition
arcatraz.cpp:269
npc_zerekethvoidzone::npc_zerekethvoidzoneAI
Definition
arcatraz.cpp:520
npc_zerekethvoidzone::npc_zerekethvoidzoneAI::npc_zerekethvoidzoneAI
npc_zerekethvoidzoneAI(Creature *creature)
Definition
arcatraz.cpp:521
npc_zerekethvoidzone::npc_zerekethvoidzoneAI::Reset
void Reset() OVERRIDE
Definition
arcatraz.cpp:523
npc_zerekethvoidzone::npc_zerekethvoidzoneAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
arcatraz.cpp:532
SAY_INTRO_2
@ SAY_INTRO_2
Definition
trial_of_the_champion.cpp:27
SAY_INTRO_1
@ SAY_INTRO_1
Definition
trial_of_the_champion.cpp:26
src
server
scripts
Outland
TempestKeep
arcatraz
arcatraz.cpp
Generated on
for Project SkyFire Core by
1.17.0