Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
boss_nightbane.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: Boss_Nightbane
8
SD%Complete: 80
9
SDComment: SDComment: Timers may incorrect
10
SDCategory: Karazhan
11
EndScriptData */
12
13
#include "
ScriptMgr.h
"
14
#include "
ScriptedCreature.h
"
15
#include "
karazhan.h
"
16
17
enum
Spells
18
{
19
// phase 1
20
SPELL_BELLOWING_ROAR
= 39427,
21
SPELL_CHARRED_EARTH
= 30129,
22
SPELL_DISTRACTING_ASH
= 30130,
23
SPELL_SMOLDERING_BREATH
= 30210,
24
SPELL_TAIL_SWEEP
= 25653,
25
// phase 2
26
SPELL_RAIN_OF_BONES
= 37098,
27
SPELL_SMOKING_BLAST
= 37057,
28
SPELL_FIREBALL_BARRAGE
= 30282,
29
SPELL_SEARING_CINDERS
= 30127,
30
SPELL_SUMMON_SKELETON
= 30170
31
};
32
33
enum
Says
34
{
35
EMOTE_SUMMON
= 0,
// Not used in script
36
YELL_AGGRO
= 1,
37
YELL_FLY_PHASE
= 2,
38
YELL_LAND_PHASE
= 3,
39
EMOTE_BREATH
= 4
40
};
41
42
float
IntroWay
[8][3] =
43
{
44
{-11053.37f, -1794.48f, 149.00f},
45
{-11141.07f, -1841.40f, 125.00f},
46
{-11187.28f, -1890.23f, 125.00f},
47
{-11189.20f, -1931.25f, 125.00f},
48
{-11153.76f, -1948.93f, 125.00f},
49
{-11128.73f, -1929.75f, 125.00f},
50
{-11140.00f, -1915.00f, 122.00f},
51
{-11163.00f, -1903.00f, 91.473f}
52
};
53
54
class
boss_nightbane
:
public
CreatureScript
55
{
56
public
:
57
boss_nightbane
() :
CreatureScript
(
"boss_nightbane"
) { }
58
59
struct
boss_nightbaneAI
:
public
ScriptedAI
60
{
61
boss_nightbaneAI
(
Creature
* creature) :
ScriptedAI
(creature)
62
{
63
instance
= creature->
GetInstanceScript
();
64
Intro
=
true
;
65
uint32
Phase
= 0;
66
67
bool
RainBones
=
false
;
68
bool
Skeletons
=
false
;
69
70
uint32
BellowingRoarTimer
= 0;
71
uint32
CharredEarthTimer
= 0;
72
uint32
DistractingAshTimer
= 0;
73
uint32
SmolderingBreathTimer
= 0;
74
uint32
TailSweepTimer
= 0;
75
uint32
RainofBonesTimer
= 0;
76
uint32
SmokingBlastTimer
= 0;
77
uint32
FireballBarrageTimer
= 0;
78
uint32
SearingCindersTimer
;
79
80
uint32
FlyCount
= 0;
81
uint32
FlyTimer
= 0;
82
83
bool
Flying
=
false
;
84
bool
Movement
=
false
;
85
86
uint32
WaitTimer
= 0;
87
uint32
MovePhase
= 0;
88
}
89
90
void
Reset
()
OVERRIDE
91
{
92
BellowingRoarTimer
= 30000;
93
CharredEarthTimer
= 15000;
94
DistractingAshTimer
= 20000;
95
SmolderingBreathTimer
= 10000;
96
TailSweepTimer
= 12000;
97
RainofBonesTimer
= 10000;
98
SmokingBlastTimer
= 20000;
99
FireballBarrageTimer
= 13000;
100
SearingCindersTimer
= 14000;
101
WaitTimer
= 1000;
102
103
Phase
=1;
104
FlyCount
= 0;
105
MovePhase
= 0;
106
107
me
->SetSpeed(
MOVE_RUN
, 2.0f);
108
me
->SetDisableGravity(
true
);
109
me
->SetWalk(
false
);
110
me
->setActive(
true
);
111
112
if
(
instance
)
113
{
114
if
(
instance
->GetData(
TYPE_NIGHTBANE
) ==
DONE
||
instance
->GetData(
TYPE_NIGHTBANE
) ==
IN_PROGRESS
)
115
me
->DisappearAndDie();
116
else
117
instance
->SetData(
TYPE_NIGHTBANE
,
NOT_STARTED
);
118
}
119
120
HandleTerraceDoors
(
true
);
121
122
Flying
=
false
;
123
Movement
=
false
;
124
125
if
(!
Intro
)
126
{
127
me
->SetHomePosition(
IntroWay
[7][0],
IntroWay
[7][1],
IntroWay
[7][2], 0);
128
me
->GetMotionMaster()->MoveTargetedHome();
129
}
130
}
131
132
void
HandleTerraceDoors
(
bool
open)
133
{
134
if
(
instance
)
135
{
136
instance
->HandleGameObject(
instance
->GetData64(
DATA_MASTERS_TERRACE_DOOR_1
), open);
137
instance
->HandleGameObject(
instance
->GetData64(
DATA_MASTERS_TERRACE_DOOR_2
), open);
138
}
139
}
140
141
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
142
{
143
if
(
instance
)
144
instance
->SetData(
TYPE_NIGHTBANE
,
IN_PROGRESS
);
145
146
HandleTerraceDoors
(
false
);
147
Talk
(
YELL_AGGRO
);
148
}
149
150
void
AttackStart
(
Unit
* who)
OVERRIDE
151
{
152
if
(!
Intro
&& !
Flying
)
153
ScriptedAI::AttackStart
(who);
154
}
155
156
void
JustDied
(
Unit
*
/*killer*/
)
OVERRIDE
157
{
158
if
(
instance
)
159
instance
->SetData(
TYPE_NIGHTBANE
,
DONE
);
160
161
HandleTerraceDoors
(
true
);
162
}
163
164
void
MoveInLineOfSight
(
Unit
* who)
OVERRIDE
165
166
{
167
if
(!
Intro
&& !
Flying
)
168
ScriptedAI::MoveInLineOfSight
(who);
169
}
170
171
void
MovementInform
(
uint32
type,
uint32
id
)
OVERRIDE
172
{
173
if
(type !=
POINT_MOTION_TYPE
)
174
return
;
175
176
if
(
Intro
)
177
{
178
if
(
id
>= 8)
179
{
180
Intro
=
false
;
181
me
->SetHomePosition(
IntroWay
[7][0],
IntroWay
[7][1],
IntroWay
[7][2], 0);
182
return
;
183
}
184
185
WaitTimer
= 1;
186
}
187
188
if
(
Flying
)
189
{
190
if
(
id
== 0)
191
{
192
Talk
(
EMOTE_BREATH
);
193
Flying
=
false
;
194
Phase
= 2;
195
return
;
196
}
197
198
if
(
id
== 3)
199
{
200
MovePhase
= 4;
201
WaitTimer
= 1;
202
return
;
203
}
204
205
if
(
id
== 8)
206
{
207
Flying
=
false
;
208
Phase
= 1;
209
Movement
=
true
;
210
return
;
211
}
212
213
WaitTimer
= 1;
214
}
215
}
216
217
void
JustSummoned
(
Creature
* summoned)
OVERRIDE
218
{
219
summoned->AI()->AttackStart(
me
->GetVictim());
220
}
221
222
void
TakeOff
()
223
{
224
Talk
(
YELL_FLY_PHASE
);
225
226
me
->InterruptSpell(
CURRENT_GENERIC_SPELL
);
227
me
->HandleEmoteCommand(
EMOTE_ONESHOT_LIFTOFF
);
228
me
->SetDisableGravity(
true
);
229
(*me).GetMotionMaster()->Clear(
false
);
230
(*me).GetMotionMaster()->MovePoint(0,
IntroWay
[2][0],
IntroWay
[2][1],
IntroWay
[2][2]);
231
232
Flying
=
true
;
233
234
FlyTimer
= std::rand() % 60000 + 45000;
//timer wrong between 45 and 60 seconds
235
++
FlyCount
;
236
237
RainofBonesTimer
= 5000;
//timer wrong (maybe)
238
RainBones
=
false
;
239
Skeletons
=
false
;
240
}
241
242
void
UpdateAI
(
uint32
diff)
OVERRIDE
243
{
244
/* The timer for this was never setup apparently, not sure if the code works properly:
245
if (WaitTimer <= diff)
246
{
247
if (Intro)
248
{
249
if (MovePhase >= 7)
250
{
251
me->SetLevitate(false);
252
me->HandleEmoteCommand(EMOTE_ONESHOT_LAND);
253
me->GetMotionMaster()->MovePoint(8, IntroWay[7][0], IntroWay[7][1], IntroWay[7][2]);
254
}
255
else
256
{
257
me->GetMotionMaster()->MovePoint(MovePhase, IntroWay[MovePhase][0], IntroWay[MovePhase][1], IntroWay[MovePhase][2]);
258
++MovePhase;
259
}
260
}
261
if (Flying)
262
{
263
if (MovePhase >= 7)
264
{
265
me->SetLevitate(false);
266
me->HandleEmoteCommand(EMOTE_ONESHOT_LAND);
267
me->GetMotionMaster()->MovePoint(8, IntroWay[7][0], IntroWay[7][1], IntroWay[7][2]);
268
}
269
else
270
{
271
me->GetMotionMaster()->MovePoint(MovePhase, IntroWay[MovePhase][0], IntroWay[MovePhase][1], IntroWay[MovePhase][2]);
272
++MovePhase;
273
}
274
}
275
276
WaitTimer = 0;
277
} else WaitTimer -= diff;
278
*/
279
280
if
(!
UpdateVictim
())
281
return
;
282
283
if
(
Flying
)
284
return
;
285
286
// Phase 1 "GROUND FIGHT"
287
if
(
Phase
== 1)
288
{
289
if
(
Movement
)
290
{
291
DoStartMovement
(
me
->GetVictim());
292
Movement
=
false
;
293
}
294
295
if
(
BellowingRoarTimer
<= diff)
296
{
297
DoCastVictim
(
SPELL_BELLOWING_ROAR
);
298
BellowingRoarTimer
= std::rand() % 40000 + 30000;
299
}
else
BellowingRoarTimer
-= diff;
300
301
if
(
SmolderingBreathTimer
<= diff)
302
{
303
DoCastVictim
(
SPELL_SMOLDERING_BREATH
);
304
SmolderingBreathTimer
= 20000;
305
}
else
SmolderingBreathTimer
-= diff;
306
307
if
(
CharredEarthTimer
<= diff)
308
{
309
if
(
Unit
* target =
SelectTarget
(
SELECT_TARGET_RANDOM
, 0, 100,
true
))
310
DoCast
(target,
SPELL_CHARRED_EARTH
);
311
CharredEarthTimer
= 20000;
312
}
else
CharredEarthTimer
-= diff;
313
314
if
(
TailSweepTimer
<= diff)
315
{
316
if
(
Unit
* target =
SelectTarget
(
SELECT_TARGET_RANDOM
, 0, 100,
true
))
317
if
(!
me
->HasInArc(
M_PI
, target))
318
DoCast
(target,
SPELL_TAIL_SWEEP
);
319
TailSweepTimer
= 15000;
320
}
else
TailSweepTimer
-= diff;
321
322
if
(
SearingCindersTimer
<= diff)
323
{
324
if
(
Unit
* target =
SelectTarget
(
SELECT_TARGET_RANDOM
, 0, 100,
true
))
325
DoCast
(target,
SPELL_SEARING_CINDERS
);
326
SearingCindersTimer
= 10000;
327
}
else
SearingCindersTimer
-= diff;
328
329
uint32
Prozent =
uint32
(
me
->GetHealthPct());
330
331
if
(Prozent < 75 &&
FlyCount
== 0)
// first take off 75%
332
TakeOff
();
333
334
if
(Prozent < 50 &&
FlyCount
== 1)
// secound take off 50%
335
TakeOff
();
336
337
if
(Prozent < 25 &&
FlyCount
== 2)
// third take off 25%
338
TakeOff
();
339
340
DoMeleeAttackIfReady
();
341
}
342
343
//Phase 2 "FLYING FIGHT"
344
if
(
Phase
== 2)
345
{
346
if
(!
RainBones
)
347
{
348
if
(!
Skeletons
)
349
{
350
for
(
uint8
i = 0; i <= 3; ++i)
351
{
352
DoCastVictim
(
SPELL_SUMMON_SKELETON
);
353
Skeletons
=
true
;
354
}
355
}
356
357
if
(
RainofBonesTimer
< diff && !
RainBones
)
// only once at the beginning of phase 2
358
{
359
DoCastVictim
(
SPELL_RAIN_OF_BONES
);
360
RainBones
=
true
;
361
SmokingBlastTimer
= 20000;
362
}
else
RainofBonesTimer
-= diff;
363
364
if
(
DistractingAshTimer
<= diff)
365
{
366
if
(
Unit
* target =
SelectTarget
(
SELECT_TARGET_RANDOM
, 0, 100,
true
))
367
DoCast
(target,
SPELL_DISTRACTING_ASH
);
368
DistractingAshTimer
= 2000;
//timer wrong
369
}
else
DistractingAshTimer
-= diff;
370
}
371
372
if
(
RainBones
)
373
{
374
if
(
SmokingBlastTimer
<= diff)
375
{
376
DoCastVictim
(
SPELL_SMOKING_BLAST
);
377
SmokingBlastTimer
= 1500;
//timer wrong
378
}
else
SmokingBlastTimer
-= diff;
379
}
380
381
if
(
FireballBarrageTimer
<= diff)
382
{
383
if
(
Unit
* target =
SelectTarget
(
SELECT_TARGET_FARTHEST
, 0))
384
DoCast
(target,
SPELL_FIREBALL_BARRAGE
);
385
FireballBarrageTimer
= 20000;
386
}
else
FireballBarrageTimer
-= diff;
387
388
if
(
FlyTimer
<= diff)
//landing
389
{
390
Talk
(
YELL_LAND_PHASE
);
391
392
me
->GetMotionMaster()->Clear(
false
);
393
me
->GetMotionMaster()->MovePoint(3,
IntroWay
[3][0],
IntroWay
[3][1],
IntroWay
[3][2]);
394
395
Flying
=
true
;
396
}
else
FlyTimer
-= diff;
397
}
398
}
399
400
private
:
401
InstanceScript
*
instance
;
402
403
uint32
Phase
;
404
405
bool
RainBones
;
406
bool
Skeletons
;
407
408
uint32
BellowingRoarTimer
;
409
uint32
CharredEarthTimer
;
410
uint32
DistractingAshTimer
;
411
uint32
SmolderingBreathTimer
;
412
uint32
TailSweepTimer
;
413
uint32
RainofBonesTimer
;
414
uint32
SmokingBlastTimer
;
415
uint32
FireballBarrageTimer
;
416
uint32
SearingCindersTimer
;
417
418
uint32
FlyCount
;
419
uint32
FlyTimer
;
420
421
bool
Intro
;
422
bool
Flying
;
423
bool
Movement
;
424
425
uint32
WaitTimer
;
426
uint32
MovePhase
;
427
};
428
429
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
430
{
431
return
new
boss_nightbaneAI
(creature);
432
}
433
};
434
435
void
AddSC_boss_nightbane
()
436
{
437
new
boss_nightbane
();
438
}
Spells
Spells
Definition
BattlegroundIC.h:645
M_PI
#define M_PI
Definition
Common.h:192
uint8
std::uint8_t uint8
Definition
Define.h:79
uint32
std::uint32_t uint32
Definition
Define.h:77
OVERRIDE
#define OVERRIDE
Definition
Define.h:60
IN_PROGRESS
@ IN_PROGRESS
Definition
InstanceScript.h:47
DONE
@ DONE
Definition
InstanceScript.h:49
NOT_STARTED
@ NOT_STARTED
Definition
InstanceScript.h:46
POINT_MOTION_TYPE
@ POINT_MOTION_TYPE
Definition
MotionMaster.h:33
ScriptMgr.h
ScriptedCreature.h
EMOTE_ONESHOT_LIFTOFF
@ EMOTE_ONESHOT_LIFTOFF
Definition
SharedDefines.h:2197
CURRENT_GENERIC_SPELL
@ CURRENT_GENERIC_SPELL
Definition
Unit.h:1109
MOVE_RUN
@ MOVE_RUN
Definition
Unit.h:556
SELECT_TARGET_FARTHEST
@ SELECT_TARGET_FARTHEST
Definition
UnitAI.h:27
SELECT_TARGET_RANDOM
@ SELECT_TARGET_RANDOM
Definition
UnitAI.h:23
YELL_AGGRO
@ YELL_AGGRO
Definition
boss_balinda.cpp:19
Says
Says
Definition
boss_halycon.cpp:17
YELL_FLY_PHASE
@ YELL_FLY_PHASE
Definition
boss_nightbane.cpp:37
EMOTE_BREATH
@ EMOTE_BREATH
Definition
boss_nightbane.cpp:39
EMOTE_SUMMON
@ EMOTE_SUMMON
Definition
boss_nightbane.cpp:35
YELL_AGGRO
@ YELL_AGGRO
Definition
boss_nightbane.cpp:36
YELL_LAND_PHASE
@ YELL_LAND_PHASE
Definition
boss_nightbane.cpp:38
IntroWay
float IntroWay[8][3]
Definition
boss_nightbane.cpp:42
SPELL_SMOLDERING_BREATH
@ SPELL_SMOLDERING_BREATH
Definition
boss_nightbane.cpp:23
SPELL_CHARRED_EARTH
@ SPELL_CHARRED_EARTH
Definition
boss_nightbane.cpp:21
SPELL_DISTRACTING_ASH
@ SPELL_DISTRACTING_ASH
Definition
boss_nightbane.cpp:22
SPELL_BELLOWING_ROAR
@ SPELL_BELLOWING_ROAR
Definition
boss_nightbane.cpp:20
SPELL_RAIN_OF_BONES
@ SPELL_RAIN_OF_BONES
Definition
boss_nightbane.cpp:26
SPELL_FIREBALL_BARRAGE
@ SPELL_FIREBALL_BARRAGE
Definition
boss_nightbane.cpp:28
SPELL_SEARING_CINDERS
@ SPELL_SEARING_CINDERS
Definition
boss_nightbane.cpp:29
SPELL_SMOKING_BLAST
@ SPELL_SMOKING_BLAST
Definition
boss_nightbane.cpp:27
SPELL_TAIL_SWEEP
@ SPELL_TAIL_SWEEP
Definition
boss_nightbane.cpp:24
SPELL_SUMMON_SKELETON
@ SPELL_SUMMON_SKELETON
Definition
boss_nightbane.cpp:30
AddSC_boss_nightbane
void AddSC_boss_nightbane()
Definition
boss_nightbane.cpp:435
CreatureAI
Definition
CreatureAI.h:54
CreatureAI::MoveInLineOfSight
virtual void MoveInLineOfSight(Unit *)
Definition
CreatureAI.cpp:114
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::SelectTarget
Unit * SelectTarget(SelectAggroTarget targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, int32 aura=0)
Definition
UnitAI.cpp:66
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
boss_nightbane
Definition
boss_nightbane.cpp:55
boss_nightbane::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
boss_nightbane.cpp:429
boss_nightbane::boss_nightbane
boss_nightbane()
Definition
boss_nightbane.cpp:57
karazhan.h
DATA_MASTERS_TERRACE_DOOR_1
@ DATA_MASTERS_TERRACE_DOOR_1
Definition
karazhan.h:40
DATA_MASTERS_TERRACE_DOOR_2
@ DATA_MASTERS_TERRACE_DOOR_2
Definition
karazhan.h:41
TYPE_NIGHTBANE
@ TYPE_NIGHTBANE
Definition
karazhan.h:22
Movement
Definition
Unit.h:365
ScriptedAI::me
Creature * me
Definition
ScriptedCreature.h:182
ScriptedAI::ScriptedAI
ScriptedAI(Creature *creature)
Definition
ScriptedCreature.cpp:85
ScriptedAI::AttackStart
void AttackStart(Unit *) OVERRIDE
Definition
ScriptedCreature.cpp:118
ScriptedAI::DoStartMovement
void DoStartMovement(Unit *target, float distance=0.0f, float angle=0.0f)
Definition
ScriptedCreature.cpp:135
boss_nightbane::boss_nightbaneAI
Definition
boss_nightbane.cpp:60
boss_nightbane::boss_nightbaneAI::JustDied
void JustDied(Unit *) OVERRIDE
Definition
boss_nightbane.cpp:156
boss_nightbane::boss_nightbaneAI::AttackStart
void AttackStart(Unit *who) OVERRIDE
Definition
boss_nightbane.cpp:150
boss_nightbane::boss_nightbaneAI::Flying
bool Flying
Definition
boss_nightbane.cpp:422
boss_nightbane::boss_nightbaneAI::SmolderingBreathTimer
uint32 SmolderingBreathTimer
Definition
boss_nightbane.cpp:411
boss_nightbane::boss_nightbaneAI::FlyTimer
uint32 FlyTimer
Definition
boss_nightbane.cpp:419
boss_nightbane::boss_nightbaneAI::MovementInform
void MovementInform(uint32 type, uint32 id) OVERRIDE
Definition
boss_nightbane.cpp:171
boss_nightbane::boss_nightbaneAI::WaitTimer
uint32 WaitTimer
Definition
boss_nightbane.cpp:425
boss_nightbane::boss_nightbaneAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
boss_nightbane.cpp:141
boss_nightbane::boss_nightbaneAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
boss_nightbane.cpp:242
boss_nightbane::boss_nightbaneAI::BellowingRoarTimer
uint32 BellowingRoarTimer
Definition
boss_nightbane.cpp:408
boss_nightbane::boss_nightbaneAI::boss_nightbaneAI
boss_nightbaneAI(Creature *creature)
Definition
boss_nightbane.cpp:61
boss_nightbane::boss_nightbaneAI::HandleTerraceDoors
void HandleTerraceDoors(bool open)
Definition
boss_nightbane.cpp:132
boss_nightbane::boss_nightbaneAI::JustSummoned
void JustSummoned(Creature *summoned) OVERRIDE
Definition
boss_nightbane.cpp:217
boss_nightbane::boss_nightbaneAI::Intro
bool Intro
Definition
boss_nightbane.cpp:421
boss_nightbane::boss_nightbaneAI::SmokingBlastTimer
uint32 SmokingBlastTimer
Definition
boss_nightbane.cpp:414
boss_nightbane::boss_nightbaneAI::TakeOff
void TakeOff()
Definition
boss_nightbane.cpp:222
boss_nightbane::boss_nightbaneAI::SearingCindersTimer
uint32 SearingCindersTimer
Definition
boss_nightbane.cpp:416
boss_nightbane::boss_nightbaneAI::DistractingAshTimer
uint32 DistractingAshTimer
Definition
boss_nightbane.cpp:410
boss_nightbane::boss_nightbaneAI::instance
InstanceScript * instance
Definition
boss_nightbane.cpp:401
boss_nightbane::boss_nightbaneAI::RainofBonesTimer
uint32 RainofBonesTimer
Definition
boss_nightbane.cpp:413
boss_nightbane::boss_nightbaneAI::MoveInLineOfSight
void MoveInLineOfSight(Unit *who) OVERRIDE
Definition
boss_nightbane.cpp:164
boss_nightbane::boss_nightbaneAI::TailSweepTimer
uint32 TailSweepTimer
Definition
boss_nightbane.cpp:412
boss_nightbane::boss_nightbaneAI::Phase
uint32 Phase
Definition
boss_nightbane.cpp:403
boss_nightbane::boss_nightbaneAI::FireballBarrageTimer
uint32 FireballBarrageTimer
Definition
boss_nightbane.cpp:415
boss_nightbane::boss_nightbaneAI::RainBones
bool RainBones
Definition
boss_nightbane.cpp:405
boss_nightbane::boss_nightbaneAI::Reset
void Reset() OVERRIDE
Definition
boss_nightbane.cpp:90
boss_nightbane::boss_nightbaneAI::Skeletons
bool Skeletons
Definition
boss_nightbane.cpp:406
boss_nightbane::boss_nightbaneAI::CharredEarthTimer
uint32 CharredEarthTimer
Definition
boss_nightbane.cpp:409
boss_nightbane::boss_nightbaneAI::FlyCount
uint32 FlyCount
Definition
boss_nightbane.cpp:418
boss_nightbane::boss_nightbaneAI::MovePhase
uint32 MovePhase
Definition
boss_nightbane.cpp:426
src
server
scripts
EasternKingdoms
Karazhan
boss_nightbane.cpp
Generated on
for Project SkyFire Core by
1.17.0