Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
boss_ingvar_the_plunderer.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_Ingvar_The_Plunderer
8
SD%Complete: 95
9
SDComment: Some Problems with Annhylde Movement, Blizzlike Timers (just shadow axe summon needs a new timer)
10
SDCategory: Udgarde Keep
11
EndScriptData */
12
13
#include "
ScriptMgr.h
"
14
#include "
ScriptedCreature.h
"
15
#include "
utgarde_keep.h
"
16
17
enum
Yells
18
{
19
// Ingvar (Human)
20
SAY_AGGRO_1
= 0,
21
SAY_SLAY_1
= 1,
22
SAY_DEATH_1
= 2,
23
24
// Ingvar (Undead)
25
SAY_AGGRO_2
= 3,
26
SAY_SLAY_2
= 4,
27
SAY_DEATH_2
= 5,
28
29
// Annhylde The Caller
30
YELL_RESURRECT
= 0
31
};
32
33
enum
Events
34
{
35
EVENT_CLEAVE
= 1,
36
EVENT_SMASH
,
37
EVENT_STAGGERING_ROAR
,
38
EVENT_ENRAGE
,
39
40
EVENT_DARK_SMASH
,
41
EVENT_DREADFUL_ROAR
,
42
EVENT_WOE_STRIKE
,
43
EVENT_SHADOW_AXE
,
44
EVENT_JUST_TRANSFORMED
,
45
EVENT_SUMMON_BANSHEE
,
46
47
EVENT_RESURRECT_1
,
48
EVENT_RESURRECT_2
49
};
50
51
enum
Phases
52
{
53
PHASE_HUMAN
= 1,
54
PHASE_UNDEAD
,
55
PHASE_EVENT
56
};
57
58
enum
Spells
59
{
60
// Ingvar Spells human form
61
SPELL_CLEAVE
= 42724,
62
SPELL_SMASH
= 42669,
63
SPELL_STAGGERING_ROAR
= 42708,
64
SPELL_ENRAGE
= 42705,
65
66
SPELL_INGVAR_FEIGN_DEATH
= 42795,
67
SPELL_SUMMON_BANSHEE
= 42912,
68
SPELL_SCOURG_RESURRECTION
= 42863,
// Spawn resurrect effect around Ingvar
69
70
// Ingvar Spells undead form
71
SPELL_DARK_SMASH
= 42723,
72
SPELL_DREADFUL_ROAR
= 42729,
73
SPELL_WOE_STRIKE
= 42730,
74
75
SPELL_SHADOW_AXE_SUMMON
= 42748,
76
77
// Spells for Annhylde
78
SPELL_SCOURG_RESURRECTION_HEAL
= 42704,
// Heal Max + DummyAura
79
SPELL_SCOURG_RESURRECTION_BEAM
= 42857,
// Channeling Beam of Annhylde
80
SPELL_SCOURG_RESURRECTION_DUMMY
= 42862,
// Some Emote Dummy?
81
SPELL_INGVAR_TRANSFORM
= 42796
82
};
83
84
enum
Misc
85
{
86
ACTION_START_PHASE_2
87
};
88
89
class
boss_ingvar_the_plunderer
:
public
CreatureScript
90
{
91
public
:
92
boss_ingvar_the_plunderer
() :
CreatureScript
(
"boss_ingvar_the_plunderer"
) { }
93
94
struct
boss_ingvar_the_plundererAI
:
public
BossAI
95
{
96
boss_ingvar_the_plundererAI
(
Creature
* creature) :
BossAI
(creature,
DATA_INGVAR
)
97
{
98
_isUndead
=
false
;
99
}
100
101
void
Reset
()
OVERRIDE
102
{
103
_isUndead
=
false
;
104
105
me
->RemoveFlag(
UNIT_FIELD_FLAGS
,
UNIT_FLAG_IMMUNE_TO_PC
);
106
107
_Reset
();
108
events
.SetPhase(
PHASE_HUMAN
);
109
110
events
.ScheduleEvent(
EVENT_CLEAVE
, std::rand() % (12 *
IN_MILLISECONDS
) + (6 *
IN_MILLISECONDS
), 0,
PHASE_HUMAN
);
111
events
.ScheduleEvent(
EVENT_STAGGERING_ROAR
, std::rand() % (21 *
IN_MILLISECONDS
) + (18 *
IN_MILLISECONDS
), 0,
PHASE_HUMAN
);
112
events
.ScheduleEvent(
EVENT_ENRAGE
, std::rand() % (14 *
IN_MILLISECONDS
) + (7 *
IN_MILLISECONDS
), 0,
PHASE_HUMAN
);
113
events
.ScheduleEvent(
EVENT_SMASH
, std::rand() % (17 *
IN_MILLISECONDS
) + (12 *
IN_MILLISECONDS
), 0,
PHASE_HUMAN
);
114
}
115
116
void
DamageTaken
(
Unit
*
/*doneBy*/
,
uint32
& damage)
OVERRIDE
117
{
118
if
(damage >=
me
->GetHealth() &&
events
.IsInPhase(
PHASE_HUMAN
))
119
{
120
me
->RemoveAllAuras();
121
DoCast
(
me
,
SPELL_INGVAR_FEIGN_DEATH
,
true
);
122
123
me
->SetFlag(
UNIT_FIELD_FLAGS
,
UNIT_FLAG_NON_ATTACKABLE
);
124
125
events
.SetPhase(
PHASE_EVENT
);
126
events
.ScheduleEvent(
EVENT_SUMMON_BANSHEE
, 3 *
IN_MILLISECONDS
, 0,
PHASE_EVENT
);
127
128
Talk
(
SAY_DEATH_1
);
129
}
130
131
if
(
events
.IsInPhase(
PHASE_EVENT
))
132
damage = 0;
133
}
134
135
void
DoAction
(
int32
actionId)
OVERRIDE
136
{
137
if
(actionId ==
ACTION_START_PHASE_2
)
138
StartZombiePhase
();
139
}
140
141
void
StartZombiePhase
()
142
{
143
_isUndead
=
true
;
144
me
->RemoveAura(
SPELL_INGVAR_FEIGN_DEATH
);
145
DoCast
(
me
,
SPELL_INGVAR_TRANSFORM
,
true
);
146
events
.ScheduleEvent(
EVENT_JUST_TRANSFORMED
, 2 *
IN_MILLISECONDS
, 0,
PHASE_EVENT
);
147
148
Talk
(
SAY_AGGRO_2
);
149
}
150
151
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
152
{
153
_EnterCombat
();
154
155
if
(!
_isUndead
)
156
Talk
(
SAY_AGGRO_1
);
157
}
158
159
void
JustDied
(
Unit
*
/*killer*/
)
OVERRIDE
160
{
161
_JustDied
();
162
Talk
(
SAY_DEATH_2
);
163
}
164
165
void
ScheduleSecondPhase
()
166
{
167
events
.SetPhase(
PHASE_UNDEAD
);
168
events
.ScheduleEvent(
EVENT_DARK_SMASH
, std::rand() % (18 *
IN_MILLISECONDS
) + (14 *
IN_MILLISECONDS
), 0,
PHASE_UNDEAD
);
169
events
.ScheduleEvent(
EVENT_DREADFUL_ROAR
, std::rand() % (22 *
IN_MILLISECONDS
) + (18 *
IN_MILLISECONDS
), 0,
PHASE_UNDEAD
);
170
events
.ScheduleEvent(
EVENT_WOE_STRIKE
, std::rand() % (14 *
IN_MILLISECONDS
) + (10 *
IN_MILLISECONDS
), 0,
PHASE_UNDEAD
);
171
events
.ScheduleEvent(
EVENT_SHADOW_AXE
, 30*
IN_MILLISECONDS
, 0,
PHASE_UNDEAD
);
172
}
173
174
void
KilledUnit
(
Unit
*
/*victim*/
)
OVERRIDE
175
{
176
Talk
(
_isUndead
?
SAY_SLAY_1
:
SAY_SLAY_2
);
177
}
178
179
void
UpdateAI
(
uint32
diff)
OVERRIDE
180
{
181
if
(!
UpdateVictim
() && !
events
.IsInPhase(
PHASE_EVENT
))
182
return
;
183
184
events
.Update(diff);
185
186
if
(
me
->HasUnitState(
UNIT_STATE_CASTING
))
187
return
;
188
189
while
(
uint32
eventId =
events
.ExecuteEvent())
190
{
191
switch
(eventId)
192
{
193
// PHASE ONE
194
case
EVENT_CLEAVE
:
195
DoCastVictim
(
SPELL_CLEAVE
);
196
events
.ScheduleEvent(
EVENT_CLEAVE
, std::rand() % (12 *
IN_MILLISECONDS
) + (6 *
IN_MILLISECONDS
), 0,
PHASE_HUMAN
);
197
break
;
198
case
EVENT_STAGGERING_ROAR
:
199
DoCast
(
me
,
SPELL_STAGGERING_ROAR
);
200
events
.ScheduleEvent(
EVENT_STAGGERING_ROAR
, std::rand() % (22 *
IN_MILLISECONDS
) + (18 *
IN_MILLISECONDS
), 0,
PHASE_HUMAN
);
201
break
;
202
case
EVENT_ENRAGE
:
203
DoCast
(
me
,
SPELL_ENRAGE
);
204
events
.ScheduleEvent(
EVENT_ENRAGE
, std::rand() % (14 *
IN_MILLISECONDS
) + (7 *
IN_MILLISECONDS
), 0,
PHASE_HUMAN
);
205
break
;
206
case
EVENT_SMASH
:
207
DoCastAOE
(
SPELL_SMASH
);
208
events
.ScheduleEvent(
EVENT_SMASH
, std::rand() % (16 *
IN_MILLISECONDS
) + (12 *
IN_MILLISECONDS
), 0,
PHASE_HUMAN
);
209
break
;
210
case
EVENT_JUST_TRANSFORMED
:
211
me
->RemoveFlag(
UNIT_FIELD_FLAGS
,
UNIT_FLAG_NON_ATTACKABLE
);
212
DoZoneInCombat
();
213
ScheduleSecondPhase
();
214
return
;
215
case
EVENT_SUMMON_BANSHEE
:
216
DoCast
(
me
,
SPELL_SUMMON_BANSHEE
);
217
return
;
218
// PHASE TWO
219
case
EVENT_DARK_SMASH
:
220
DoCastVictim
(
SPELL_DARK_SMASH
);
221
events
.ScheduleEvent(
EVENT_DARK_SMASH
, std::rand() % (16 *
IN_MILLISECONDS
) + (12 *
IN_MILLISECONDS
), 0,
PHASE_UNDEAD
);
222
break
;
223
case
EVENT_DREADFUL_ROAR
:
224
DoCast
(
me
,
SPELL_DREADFUL_ROAR
);
225
events
.ScheduleEvent(
EVENT_DREADFUL_ROAR
, std::rand() % (22 *
IN_MILLISECONDS
) + (18 *
IN_MILLISECONDS
), 0,
PHASE_UNDEAD
);
226
break
;
227
case
EVENT_WOE_STRIKE
:
228
DoCastVictim
(
SPELL_WOE_STRIKE
);
229
events
.ScheduleEvent(
EVENT_WOE_STRIKE
, std::rand() % (14 *
IN_MILLISECONDS
) + (10 *
IN_MILLISECONDS
), 0,
PHASE_UNDEAD
);
230
break
;
231
case
EVENT_SHADOW_AXE
:
232
if
(
Unit
* target =
SelectTarget
(
SELECT_TARGET_TOPAGGRO
, 1))
233
DoCast
(target,
SPELL_SHADOW_AXE_SUMMON
);
234
235
events
.ScheduleEvent(
EVENT_SHADOW_AXE
, 30*
IN_MILLISECONDS
, 0,
PHASE_UNDEAD
);
236
break
;
237
}
238
}
239
240
if
(!
events
.IsInPhase(
PHASE_EVENT
))
241
DoMeleeAttackIfReady
();
242
}
243
244
private
:
245
bool
_isUndead
;
246
};
247
248
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
249
{
250
return
GetUtgardeKeepAI<boss_ingvar_the_plundererAI>
(creature);
251
}
252
};
253
254
class
npc_annhylde_the_caller
:
public
CreatureScript
255
{
256
public
:
257
npc_annhylde_the_caller
() :
CreatureScript
(
"npc_annhylde_the_caller"
) { }
258
259
struct
npc_annhylde_the_callerAI
:
public
ScriptedAI
260
{
261
npc_annhylde_the_callerAI
(
Creature
* creature) :
ScriptedAI
(creature)
262
{
263
_instance
= creature->
GetInstanceScript
();
264
}
265
266
void
Reset
()
OVERRIDE
267
{
268
_events
.Reset();
269
271
me
->SetHover(
true
);
272
273
me
->GetPosition(
x
,
y
,
z
);
274
DoTeleportTo
(
x
+1,
y
,
z
+30);
275
me
->GetMotionMaster()->MovePoint(1,
x
,
y
,
z
+15);
276
}
277
278
void
MovementInform
(
uint32
type,
uint32
id
)
OVERRIDE
279
{
280
if
(type !=
POINT_MOTION_TYPE
)
281
return
;
282
283
switch
(
id
)
284
{
285
case
1:
286
Talk
(
YELL_RESURRECT
);
287
if
(
Creature
* ingvar =
ObjectAccessor::GetCreature
(*
me
,
_instance
->GetData64(
DATA_INGVAR
)))
288
{
289
ingvar->RemoveAura(
SPELL_SUMMON_BANSHEE
);
290
ingvar->CastSpell(ingvar,
SPELL_SCOURG_RESURRECTION_DUMMY
,
true
);
291
DoCast
(ingvar,
SPELL_SCOURG_RESURRECTION_BEAM
);
292
}
293
_events
.ScheduleEvent(
EVENT_RESURRECT_1
, 8000);
294
break
;
295
case
2:
296
me
->DespawnOrUnsummon();
297
break
;
298
default
:
299
break
;
300
}
301
}
302
303
void
AttackStart
(
Unit
*
/*who*/
)
OVERRIDE
{ }
304
void
MoveInLineOfSight
(
Unit
*
/*who*/
)
OVERRIDE
{ }
305
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
{ }
306
307
void
UpdateAI
(
uint32
diff)
OVERRIDE
308
{
309
_events
.Update(diff);
310
311
while
(
uint32
eventId =
_events
.ExecuteEvent())
312
{
313
switch
(eventId)
314
{
315
case
EVENT_RESURRECT_1
:
316
if
(
Creature
* ingvar =
ObjectAccessor::GetCreature
(*
me
,
_instance
->GetData64(
DATA_INGVAR
)))
317
{
318
ingvar->RemoveAura(
SPELL_INGVAR_FEIGN_DEATH
);
319
ingvar->CastSpell(ingvar,
SPELL_SCOURG_RESURRECTION_HEAL
,
false
);
320
}
321
_events
.ScheduleEvent(
EVENT_RESURRECT_2
, 3000);
322
break
;
323
case
EVENT_RESURRECT_2
:
324
if
(
Creature
* ingvar =
ObjectAccessor::GetCreature
(*
me
,
_instance
->GetData64(
DATA_INGVAR
)))
325
{
326
ingvar->RemoveAurasDueToSpell(
SPELL_SCOURG_RESURRECTION_DUMMY
);
327
ingvar->AI()->DoAction(
ACTION_START_PHASE_2
);
328
}
329
330
me
->GetMotionMaster()->MovePoint(2,
x
+1,
y
,
z
+30);
331
break
;
332
default
:
333
break
;
334
}
335
}
336
}
337
338
private
:
339
InstanceScript
*
_instance
;
340
EventMap
_events
;
341
float
x
,
y
,
z
;
342
};
343
344
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
345
{
346
return
GetUtgardeKeepAI<npc_annhylde_the_callerAI>
(creature);
347
}
348
};
349
350
enum
ShadowAxe
351
{
352
SPELL_SHADOW_AXE_DAMAGE
= 42750,
353
H_SPELL_SHADOW_AXE_DAMAGE
= 59719,
354
POINT_TARGET
= 28
355
};
356
357
class
npc_ingvar_throw_dummy
:
public
CreatureScript
358
{
359
public
:
360
npc_ingvar_throw_dummy
() :
CreatureScript
(
"npc_ingvar_throw_dummy"
) { }
361
362
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
363
{
364
return
new
npc_ingvar_throw_dummyAI
(creature);
365
}
366
367
struct
npc_ingvar_throw_dummyAI
:
public
ScriptedAI
368
{
369
npc_ingvar_throw_dummyAI
(
Creature
* creature) :
ScriptedAI
(creature)
370
{
371
}
372
373
void
Reset
()
OVERRIDE
374
{
375
if
(
Creature
* target =
me
->FindNearestCreature(
NPC_THROW_TARGET
, 50.0f))
376
{
377
float
x, y, z;
378
target->GetPosition(x, y, z);
379
me
->GetMotionMaster()->MoveCharge(x, y, z, 42.0f,
POINT_TARGET
);
380
target->DisappearAndDie();
381
}
382
else
383
me
->DisappearAndDie();
384
}
385
386
void
MovementInform
(
uint32
type,
uint32
id
)
OVERRIDE
387
{
388
if
(type ==
EFFECT_MOTION_TYPE
&&
id
==
POINT_TARGET
)
389
{
390
DoCast
(
me
,
SPELL_SHADOW_AXE_DAMAGE
);
391
me
->SetFlag(
UNIT_FIELD_FLAGS
,
UNIT_FLAG_DISABLE_MOVE
);
392
me
->DespawnOrUnsummon(10000);
393
}
394
}
395
};
396
};
397
398
void
AddSC_boss_ingvar_the_plunderer
()
399
{
400
new
boss_ingvar_the_plunderer
();
401
new
npc_annhylde_the_caller
();
402
new
npc_ingvar_throw_dummy
();
403
}
Spells
Spells
Definition
BattlegroundIC.h:645
IN_MILLISECONDS
@ IN_MILLISECONDS
Definition
Common.h:125
int32
std::int32_t int32
Definition
Define.h:73
uint32
std::uint32_t uint32
Definition
Define.h:77
OVERRIDE
#define OVERRIDE
Definition
Define.h:60
POINT_MOTION_TYPE
@ POINT_MOTION_TYPE
Definition
MotionMaster.h:33
EFFECT_MOTION_TYPE
@ EFFECT_MOTION_TYPE
Definition
MotionMaster.h:41
ScriptMgr.h
ScriptedCreature.h
UNIT_STATE_CASTING
@ UNIT_STATE_CASTING
Definition
Unit.h:527
UNIT_FLAG_NON_ATTACKABLE
@ UNIT_FLAG_NON_ATTACKABLE
Definition
Unit.h:626
UNIT_FLAG_DISABLE_MOVE
@ UNIT_FLAG_DISABLE_MOVE
Definition
Unit.h:627
UNIT_FLAG_IMMUNE_TO_PC
@ UNIT_FLAG_IMMUNE_TO_PC
Definition
Unit.h:633
SELECT_TARGET_TOPAGGRO
@ SELECT_TARGET_TOPAGGRO
Definition
UnitAI.h:24
UNIT_FIELD_FLAGS
@ UNIT_FIELD_FLAGS
Definition
UpdateFields.h:82
SPELL_CLEAVE
@ SPELL_CLEAVE
Definition
alterac_valley.cpp:12
SPELL_ENRAGE
@ SPELL_ENRAGE
Definition
alterac_valley.cpp:14
Events
Events
Definition
alterac_valley.cpp:40
EVENT_ENRAGE
@ EVENT_ENRAGE
Definition
alterac_valley.cpp:45
EVENT_CLEAVE
@ EVENT_CLEAVE
Definition
alterac_valley.cpp:42
Phases
Phases
Definition
boss_anraphet.cpp:80
PHASE_UNDEAD
@ PHASE_UNDEAD
Definition
boss_black_knight.cpp:60
ShadowAxe
ShadowAxe
Definition
boss_ingvar_the_plunderer.cpp:351
POINT_TARGET
@ POINT_TARGET
Definition
boss_ingvar_the_plunderer.cpp:354
H_SPELL_SHADOW_AXE_DAMAGE
@ H_SPELL_SHADOW_AXE_DAMAGE
Definition
boss_ingvar_the_plunderer.cpp:353
SPELL_SHADOW_AXE_DAMAGE
@ SPELL_SHADOW_AXE_DAMAGE
Definition
boss_ingvar_the_plunderer.cpp:352
ACTION_START_PHASE_2
@ ACTION_START_PHASE_2
Definition
boss_ingvar_the_plunderer.cpp:86
YELL_RESURRECT
@ YELL_RESURRECT
Definition
boss_ingvar_the_plunderer.cpp:30
SAY_AGGRO_2
@ SAY_AGGRO_2
Definition
boss_ingvar_the_plunderer.cpp:25
SAY_SLAY_2
@ SAY_SLAY_2
Definition
boss_ingvar_the_plunderer.cpp:26
SAY_DEATH_2
@ SAY_DEATH_2
Definition
boss_ingvar_the_plunderer.cpp:27
SAY_AGGRO_1
@ SAY_AGGRO_1
Definition
boss_ingvar_the_plunderer.cpp:20
SAY_SLAY_1
@ SAY_SLAY_1
Definition
boss_ingvar_the_plunderer.cpp:21
SAY_DEATH_1
@ SAY_DEATH_1
Definition
boss_ingvar_the_plunderer.cpp:22
SPELL_CLEAVE
@ SPELL_CLEAVE
Definition
boss_ingvar_the_plunderer.cpp:61
SPELL_ENRAGE
@ SPELL_ENRAGE
Definition
boss_ingvar_the_plunderer.cpp:64
SPELL_SCOURG_RESURRECTION_BEAM
@ SPELL_SCOURG_RESURRECTION_BEAM
Definition
boss_ingvar_the_plunderer.cpp:79
SPELL_SHADOW_AXE_SUMMON
@ SPELL_SHADOW_AXE_SUMMON
Definition
boss_ingvar_the_plunderer.cpp:75
SPELL_DREADFUL_ROAR
@ SPELL_DREADFUL_ROAR
Definition
boss_ingvar_the_plunderer.cpp:72
SPELL_STAGGERING_ROAR
@ SPELL_STAGGERING_ROAR
Definition
boss_ingvar_the_plunderer.cpp:63
SPELL_SUMMON_BANSHEE
@ SPELL_SUMMON_BANSHEE
Definition
boss_ingvar_the_plunderer.cpp:67
SPELL_INGVAR_FEIGN_DEATH
@ SPELL_INGVAR_FEIGN_DEATH
Definition
boss_ingvar_the_plunderer.cpp:66
SPELL_INGVAR_TRANSFORM
@ SPELL_INGVAR_TRANSFORM
Definition
boss_ingvar_the_plunderer.cpp:81
SPELL_DARK_SMASH
@ SPELL_DARK_SMASH
Definition
boss_ingvar_the_plunderer.cpp:71
SPELL_SMASH
@ SPELL_SMASH
Definition
boss_ingvar_the_plunderer.cpp:62
SPELL_SCOURG_RESURRECTION
@ SPELL_SCOURG_RESURRECTION
Definition
boss_ingvar_the_plunderer.cpp:68
SPELL_SCOURG_RESURRECTION_DUMMY
@ SPELL_SCOURG_RESURRECTION_DUMMY
Definition
boss_ingvar_the_plunderer.cpp:80
SPELL_SCOURG_RESURRECTION_HEAL
@ SPELL_SCOURG_RESURRECTION_HEAL
Definition
boss_ingvar_the_plunderer.cpp:78
SPELL_WOE_STRIKE
@ SPELL_WOE_STRIKE
Definition
boss_ingvar_the_plunderer.cpp:73
PHASE_UNDEAD
@ PHASE_UNDEAD
Definition
boss_ingvar_the_plunderer.cpp:54
PHASE_EVENT
@ PHASE_EVENT
Definition
boss_ingvar_the_plunderer.cpp:55
PHASE_HUMAN
@ PHASE_HUMAN
Definition
boss_ingvar_the_plunderer.cpp:53
AddSC_boss_ingvar_the_plunderer
void AddSC_boss_ingvar_the_plunderer()
Definition
boss_ingvar_the_plunderer.cpp:398
EVENT_DREADFUL_ROAR
@ EVENT_DREADFUL_ROAR
Definition
boss_ingvar_the_plunderer.cpp:41
EVENT_JUST_TRANSFORMED
@ EVENT_JUST_TRANSFORMED
Definition
boss_ingvar_the_plunderer.cpp:44
EVENT_SHADOW_AXE
@ EVENT_SHADOW_AXE
Definition
boss_ingvar_the_plunderer.cpp:43
EVENT_STAGGERING_ROAR
@ EVENT_STAGGERING_ROAR
Definition
boss_ingvar_the_plunderer.cpp:37
EVENT_ENRAGE
@ EVENT_ENRAGE
Definition
boss_ingvar_the_plunderer.cpp:38
EVENT_RESURRECT_2
@ EVENT_RESURRECT_2
Definition
boss_ingvar_the_plunderer.cpp:48
EVENT_SMASH
@ EVENT_SMASH
Definition
boss_ingvar_the_plunderer.cpp:36
EVENT_WOE_STRIKE
@ EVENT_WOE_STRIKE
Definition
boss_ingvar_the_plunderer.cpp:42
EVENT_DARK_SMASH
@ EVENT_DARK_SMASH
Definition
boss_ingvar_the_plunderer.cpp:40
EVENT_RESURRECT_1
@ EVENT_RESURRECT_1
Definition
boss_ingvar_the_plunderer.cpp:47
EVENT_SUMMON_BANSHEE
@ EVENT_SUMMON_BANSHEE
Definition
boss_ingvar_the_plunderer.cpp:45
EVENT_CLEAVE
@ EVENT_CLEAVE
Definition
boss_ingvar_the_plunderer.cpp:35
EVENT_SMASH
@ EVENT_SMASH
Definition
boss_kologarn.cpp:61
Misc
Misc
Definition
boss_occuthar.cpp:37
SAY_AGGRO_2
@ SAY_AGGRO_2
Definition
boss_razorscale.cpp:21
SAY_AGGRO_1
@ SAY_AGGRO_1
Definition
boss_razorscale.cpp:24
BossAI::events
EventMap events
Definition
ScriptedCreature.h:439
BossAI::BossAI
BossAI(Creature *creature, uint32 bossId)
Definition
ScriptedCreature.cpp:456
BossAI::_JustDied
void _JustDied()
Definition
ScriptedCreature.cpp:474
BossAI::_Reset
void _Reset()
Definition
ScriptedCreature.cpp:462
BossAI::_EnterCombat
void _EnterCombat()
Definition
ScriptedCreature.cpp:485
CreatureAI
Definition
CreatureAI.h:54
CreatureAI::DoZoneInCombat
void DoZoneInCombat(Creature *creature=NULL, float maxRangeToNearestTarget=50.0f)
Definition
CreatureAI.cpp:33
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
EventMap
Definition
CreatureAIImpl.h:304
InstanceScript
Definition
InstanceScript.h:123
ObjectAccessor::GetCreature
static Creature * GetCreature(WorldObject const &u, uint64 guid)
Definition
ObjectAccessor.cpp:209
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
UnitAI::DoCastAOE
void DoCastAOE(uint32 spellId, bool triggered=false)
Definition
UnitAI.cpp:176
Unit
Definition
Unit.h:1367
WorldObject::GetInstanceScript
InstanceScript * GetInstanceScript()
Definition
Object.cpp:1612
boss_ingvar_the_plunderer
Definition
boss_ingvar_the_plunderer.cpp:90
boss_ingvar_the_plunderer::boss_ingvar_the_plunderer
boss_ingvar_the_plunderer()
Definition
boss_ingvar_the_plunderer.cpp:92
boss_ingvar_the_plunderer::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
boss_ingvar_the_plunderer.cpp:248
npc_annhylde_the_caller
Definition
boss_ingvar_the_plunderer.cpp:255
npc_annhylde_the_caller::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
boss_ingvar_the_plunderer.cpp:344
npc_annhylde_the_caller::npc_annhylde_the_caller
npc_annhylde_the_caller()
Definition
boss_ingvar_the_plunderer.cpp:257
npc_ingvar_throw_dummy
Definition
boss_ingvar_the_plunderer.cpp:358
npc_ingvar_throw_dummy::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
boss_ingvar_the_plunderer.cpp:362
npc_ingvar_throw_dummy::npc_ingvar_throw_dummy
npc_ingvar_throw_dummy()
Definition
boss_ingvar_the_plunderer.cpp:360
SAY_DEATH_2
@ SAY_DEATH_2
Definition
example_escort.cpp:29
SAY_DEATH_1
@ SAY_DEATH_1
Definition
example_escort.cpp:28
ScriptedAI::me
Creature * me
Definition
ScriptedCreature.h:182
ScriptedAI::DoTeleportTo
void DoTeleportTo(float x, float y, float z, uint32 time=0)
Definition
ScriptedCreature.cpp:292
ScriptedAI::ScriptedAI
ScriptedAI(Creature *creature)
Definition
ScriptedCreature.cpp:85
Yells
Definition
boss_illidan.cpp:256
boss_ingvar_the_plunderer::boss_ingvar_the_plundererAI::Reset
void Reset() OVERRIDE
Definition
boss_ingvar_the_plunderer.cpp:101
boss_ingvar_the_plunderer::boss_ingvar_the_plundererAI::DamageTaken
void DamageTaken(Unit *, uint32 &damage) OVERRIDE
Definition
boss_ingvar_the_plunderer.cpp:116
boss_ingvar_the_plunderer::boss_ingvar_the_plundererAI::StartZombiePhase
void StartZombiePhase()
Definition
boss_ingvar_the_plunderer.cpp:141
boss_ingvar_the_plunderer::boss_ingvar_the_plundererAI::DoAction
void DoAction(int32 actionId) OVERRIDE
Definition
boss_ingvar_the_plunderer.cpp:135
boss_ingvar_the_plunderer::boss_ingvar_the_plundererAI::boss_ingvar_the_plundererAI
boss_ingvar_the_plundererAI(Creature *creature)
Definition
boss_ingvar_the_plunderer.cpp:96
boss_ingvar_the_plunderer::boss_ingvar_the_plundererAI::ScheduleSecondPhase
void ScheduleSecondPhase()
Definition
boss_ingvar_the_plunderer.cpp:165
boss_ingvar_the_plunderer::boss_ingvar_the_plundererAI::_isUndead
bool _isUndead
Definition
boss_ingvar_the_plunderer.cpp:245
boss_ingvar_the_plunderer::boss_ingvar_the_plundererAI::KilledUnit
void KilledUnit(Unit *) OVERRIDE
Definition
boss_ingvar_the_plunderer.cpp:174
boss_ingvar_the_plunderer::boss_ingvar_the_plundererAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
boss_ingvar_the_plunderer.cpp:179
boss_ingvar_the_plunderer::boss_ingvar_the_plundererAI::JustDied
void JustDied(Unit *) OVERRIDE
Definition
boss_ingvar_the_plunderer.cpp:159
boss_ingvar_the_plunderer::boss_ingvar_the_plundererAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
boss_ingvar_the_plunderer.cpp:151
npc_annhylde_the_caller::npc_annhylde_the_callerAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
boss_ingvar_the_plunderer.cpp:305
npc_annhylde_the_caller::npc_annhylde_the_callerAI::x
float x
Definition
boss_ingvar_the_plunderer.cpp:341
npc_annhylde_the_caller::npc_annhylde_the_callerAI::Reset
void Reset() OVERRIDE
Definition
boss_ingvar_the_plunderer.cpp:266
npc_annhylde_the_caller::npc_annhylde_the_callerAI::y
float y
Definition
boss_ingvar_the_plunderer.cpp:341
npc_annhylde_the_caller::npc_annhylde_the_callerAI::AttackStart
void AttackStart(Unit *) OVERRIDE
Definition
boss_ingvar_the_plunderer.cpp:303
npc_annhylde_the_caller::npc_annhylde_the_callerAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
boss_ingvar_the_plunderer.cpp:307
npc_annhylde_the_caller::npc_annhylde_the_callerAI::MoveInLineOfSight
void MoveInLineOfSight(Unit *) OVERRIDE
Definition
boss_ingvar_the_plunderer.cpp:304
npc_annhylde_the_caller::npc_annhylde_the_callerAI::_events
EventMap _events
Definition
boss_ingvar_the_plunderer.cpp:340
npc_annhylde_the_caller::npc_annhylde_the_callerAI::npc_annhylde_the_callerAI
npc_annhylde_the_callerAI(Creature *creature)
Definition
boss_ingvar_the_plunderer.cpp:261
npc_annhylde_the_caller::npc_annhylde_the_callerAI::z
float z
Definition
boss_ingvar_the_plunderer.cpp:341
npc_annhylde_the_caller::npc_annhylde_the_callerAI::_instance
InstanceScript * _instance
Definition
boss_ingvar_the_plunderer.cpp:339
npc_annhylde_the_caller::npc_annhylde_the_callerAI::MovementInform
void MovementInform(uint32 type, uint32 id) OVERRIDE
Definition
boss_ingvar_the_plunderer.cpp:278
npc_ingvar_throw_dummy::npc_ingvar_throw_dummyAI
Definition
boss_ingvar_the_plunderer.cpp:368
npc_ingvar_throw_dummy::npc_ingvar_throw_dummyAI::Reset
void Reset() OVERRIDE
Definition
boss_ingvar_the_plunderer.cpp:373
npc_ingvar_throw_dummy::npc_ingvar_throw_dummyAI::npc_ingvar_throw_dummyAI
npc_ingvar_throw_dummyAI(Creature *creature)
Definition
boss_ingvar_the_plunderer.cpp:369
npc_ingvar_throw_dummy::npc_ingvar_throw_dummyAI::MovementInform
void MovementInform(uint32 type, uint32 id) OVERRIDE
Definition
boss_ingvar_the_plunderer.cpp:386
utgarde_keep.h
GetUtgardeKeepAI
AI * GetUtgardeKeepAI(Creature *creature)
Definition
utgarde_keep.h:76
NPC_THROW_TARGET
@ NPC_THROW_TARGET
Definition
utgarde_keep.h:42
DATA_INGVAR
@ DATA_INGVAR
Definition
utgarde_keep.h:18
src
server
scripts
Northrend
UtgardeKeep
UtgardeKeep
boss_ingvar_the_plunderer.cpp
Generated on
for Project SkyFire Core by
1.17.0