Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
boss_ymiron.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
/* Script Data Start
7
SDName: Boss ymiron
8
SDAuthor: LordVanMartin
9
SD%Complete:
10
SDComment:
11
SDCategory:
12
Script Data End */
13
14
#include "
ScriptMgr.h
"
15
#include "
ScriptedCreature.h
"
16
#include "
utgarde_pinnacle.h
"
17
#include "
SpellInfo.h
"
18
19
enum
Spells
20
{
21
SPELL_BANE
= 48294,
22
H_SPELL_BANE
= 59301,
23
SPELL_DARK_SLASH
= 48292,
24
SPELL_FETID_ROT
= 48291,
25
H_SPELL_FETID_ROT
= 59300,
26
SPELL_SCREAMS_OF_THE_DEAD
= 51750,
27
SPELL_SPIRIT_BURST
= 48529,
28
H_SPELL_SPIRIT_BURST
= 59305,
29
SPELL_SPIRIT_STRIKE
= 48423,
30
H_SPELL_SPIRIT_STRIKE
= 59304,
31
SPELL_ANCESTORS_VENGEANCE
= 16939,
32
33
SPELL_SUMMON_AVENGING_SPIRIT
= 48592,
34
SPELL_SUMMON_SPIRIT_FOUNT
= 48386,
35
36
SPELL_CHANNEL_SPIRIT_TO_YMIRON
= 48316,
37
SPELL_CHANNEL_YMIRON_TO_SPIRIT
= 48307,
38
39
SPELL_SPIRIT_FOUNT
= 48380,
40
H_SPELL_SPIRIT_FOUNT
= 59320
41
};
42
43
//not in db
44
enum
Yells
45
{
46
SAY_AGGRO
= 0,
47
SAY_SLAY
= 1,
48
SAY_DEATH
= 2,
49
SAY_SUMMON_BJORN
= 3,
50
SAY_SUMMON_HALDOR
= 4,
51
SAY_SUMMON_RANULF
= 5,
52
SAY_SUMMON_TORGYN
= 6
53
};
54
55
enum
Creatures
56
{
57
NPC_BJORN
= 27303,
58
NPC_BJORN_VISUAL
= 27304,
59
NPC_HALDOR
= 27307,
60
NPC_HALDOR_VISUAL
= 27310,
61
NPC_RANULF
= 27308,
62
NPC_RANULF_VISUAL
= 27311,
63
NPC_TORGYN
= 27309,
64
NPC_TORGYN_VISUAL
= 27312,
65
NPC_SPIRIT_FOUNT
= 27339,
66
NPC_AVENGING_SPIRIT
= 27386
67
};
68
69
struct
ActiveBoatStruct
70
{
71
uint32
npc
;
72
int32
say
;
73
float
MoveX
,
MoveY
,
MoveZ
,
SpawnX
,
SpawnY
,
SpawnZ
,
SpawnO
;
74
};
75
76
static
ActiveBoatStruct
ActiveBoat
[4] =
77
{
78
{
NPC_BJORN_VISUAL
,
SAY_SUMMON_BJORN
, 404.379f, -335.335f, 104.756f, 413.594f, -335.408f, 107.995f, 3.157f},
79
{
NPC_HALDOR_VISUAL
,
SAY_SUMMON_HALDOR
, 380.813f, -335.069f, 104.756f, 369.994f, -334.771f, 107.995f, 6.232f},
80
{
NPC_RANULF_VISUAL
,
SAY_SUMMON_RANULF
, 381.546f, -314.362f, 104.756f, 370.841f, -314.426f, 107.995f, 6.232f},
81
{
NPC_TORGYN_VISUAL
,
SAY_SUMMON_TORGYN
, 404.310f, -314.761f, 104.756f, 413.992f, -314.703f, 107.995f, 3.157f}
82
};
83
84
enum
Misc
85
{
86
DATA_KINGS_BANE
= 2157
87
};
88
89
class
boss_ymiron
:
public
CreatureScript
90
{
91
public
:
92
boss_ymiron
() :
CreatureScript
(
"boss_ymiron"
) { }
93
94
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
95
{
96
return
new
boss_ymironAI
(creature);
97
}
98
99
struct
boss_ymironAI
:
public
ScriptedAI
100
{
101
boss_ymironAI
(
Creature
* creature) :
ScriptedAI
(creature)
102
{
103
instance
= creature->
GetInstanceScript
();
104
for
(
int
i = 0; i < 4; ++i)
105
m_uiActiveOrder
[i] = i;
106
for
(
int
i = 0; i < 3; ++i)
107
{
108
int
r = i + (rand() % (4 - i));
109
int
temp =
m_uiActiveOrder
[i];
110
m_uiActiveOrder
[i] =
m_uiActiveOrder
[r];
111
m_uiActiveOrder
[r] = temp;
112
}
113
114
m_uiActivedCreatureGUID
= 0;
115
m_uiOrbGUID
= 0;
116
}
117
118
bool
m_bIsWalking
;
119
bool
m_bIsPause
;
120
bool
m_bIsActiveWithBJORN
;
121
bool
m_bIsActiveWithHALDOR
;
122
bool
m_bIsActiveWithRANULF
;
123
bool
m_bIsActiveWithTORGYN
;
124
bool
kingsBane
;
// Achievement King's Bane
125
126
uint8
m_uiActiveOrder
[4];
127
uint8
m_uiActivedNumber
;
128
129
uint32
m_uiFetidRot_Timer
;
130
uint32
m_uiBane_Timer
;
131
uint32
m_uiDarkSlash_Timer
;
132
uint32
m_uiAncestors_Vengeance_Timer
;
133
134
uint32
m_uiAbility_BJORN_Timer
;
135
uint32
m_uiAbility_HALDOR_Timer
;
136
uint32
m_uiAbility_RANULF_Timer
;
137
uint32
m_uiAbility_TORGYN_Timer
;
138
139
uint32
m_uiPause_Timer
;
140
uint32
m_uiHealthAmountModifier
;
141
uint32
m_uiHealthAmountMultipler
;
142
143
uint64
m_uiActivedCreatureGUID
;
144
uint64
m_uiOrbGUID
;
145
146
InstanceScript
*
instance
;
147
148
void
Reset
()
OVERRIDE
149
{
150
m_bIsWalking
=
false
;
151
m_bIsPause
=
false
;
152
m_bIsActiveWithBJORN
=
false
;
153
m_bIsActiveWithHALDOR
=
false
;
154
m_bIsActiveWithRANULF
=
false
;
155
m_bIsActiveWithTORGYN
=
false
;
156
kingsBane
=
true
;
157
158
m_uiFetidRot_Timer
= std::rand() % 13000 + 8000;
159
m_uiBane_Timer
= std::rand() % 23000 + 18000;
160
m_uiDarkSlash_Timer
= std::rand() % 33000 + 28000;
161
m_uiAncestors_Vengeance_Timer
=
DUNGEON_MODE
(60000, 45000);
162
m_uiPause_Timer
= 0;
163
164
m_uiAbility_BJORN_Timer
= 0;
165
m_uiAbility_HALDOR_Timer
= 0;
166
m_uiAbility_RANULF_Timer
= 0;
167
m_uiAbility_TORGYN_Timer
= 0;
168
169
m_uiActivedNumber
= 0;
170
m_uiHealthAmountModifier
= 1;
171
m_uiHealthAmountMultipler
=
DUNGEON_MODE
(20, 25);
172
173
DespawnBoatGhosts
(
m_uiActivedCreatureGUID
);
174
DespawnBoatGhosts
(
m_uiOrbGUID
);
175
176
if
(
instance
)
177
instance
->SetData(
DATA_KING_YMIRON_EVENT
,
NOT_STARTED
);
178
}
179
180
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
181
{
182
Talk
(
SAY_AGGRO
);
183
184
if
(
instance
)
185
instance
->SetData(
DATA_KING_YMIRON_EVENT
,
IN_PROGRESS
);
186
}
187
188
void
SpellHitTarget
(
Unit
* who,
SpellInfo
const
* spell)
OVERRIDE
189
{
190
if
(who && who->GetTypeId() ==
TypeID::TYPEID_PLAYER
&& spell->Id == 59302)
191
kingsBane
=
false
;
192
}
193
194
uint32
GetData
(
uint32
type)
const
OVERRIDE
195
{
196
if
(type ==
DATA_KINGS_BANE
)
197
return
kingsBane
? 1 : 0;
198
199
return
0;
200
}
201
202
void
UpdateAI
(
uint32
diff)
OVERRIDE
203
{
204
if
(
m_bIsWalking
)
205
{
206
if
(
m_uiPause_Timer
<= diff)
207
{
208
Talk
(
ActiveBoat
[
m_uiActiveOrder
[
m_uiActivedNumber
]].say);
209
DoCast
(
me
,
SPELL_CHANNEL_YMIRON_TO_SPIRIT
);
// should be on spirit
210
if
(
Creature
* temp =
me
->SummonCreature(
ActiveBoat
[
m_uiActiveOrder
[
m_uiActivedNumber
]].npc,
ActiveBoat
[
m_uiActiveOrder
[
m_uiActivedNumber
]].SpawnX,
ActiveBoat
[
m_uiActiveOrder
[
m_uiActivedNumber
]].SpawnY,
ActiveBoat
[
m_uiActiveOrder
[
m_uiActivedNumber
]].SpawnZ,
ActiveBoat
[
m_uiActiveOrder
[
m_uiActivedNumber
]].SpawnO,
TempSummonType::TEMPSUMMON_CORPSE_DESPAWN
, 0))
211
{
212
m_uiActivedCreatureGUID
= temp->GetGUID();
213
temp->CastSpell(
me
,
SPELL_CHANNEL_SPIRIT_TO_YMIRON
,
true
);
214
temp->SetFlag(
UNIT_FIELD_FLAGS
,
UNIT_FLAG_NON_ATTACKABLE
|
UNIT_FLAG_NOT_SELECTABLE
);
215
temp->SetDisableGravity(
true
);
216
switch
(
m_uiActiveOrder
[
m_uiActivedNumber
])
217
{
218
case
0:
m_bIsActiveWithBJORN
=
true
;
break
;
219
case
1:
m_bIsActiveWithHALDOR
=
true
;
break
;
220
case
2:
m_bIsActiveWithRANULF
=
true
;
break
;
221
case
3:
m_bIsActiveWithTORGYN
=
true
;
break
;
222
}
223
}
224
225
m_bIsPause
=
true
;
226
m_bIsWalking
=
false
;
227
m_uiPause_Timer
= 3000;
228
}
else
m_uiPause_Timer
-= diff;
229
return
;
230
}
231
else
if
(
m_bIsPause
)
232
{
233
if
(
m_uiPause_Timer
<= diff)
234
{
235
m_uiAbility_BJORN_Timer
= 5000;
236
m_uiAbility_HALDOR_Timer
= 5000;
237
m_uiAbility_RANULF_Timer
= 5000;
238
m_uiAbility_TORGYN_Timer
= 5000;
239
240
m_bIsPause
=
false
;
241
m_uiPause_Timer
= 0;
242
}
else
m_uiPause_Timer
-= diff;
243
return
;
244
}
245
246
//Return since we have no target
247
if
(!
UpdateVictim
())
248
return
;
249
250
if
(!
m_bIsPause
)
251
{
252
// Normal spells ------------------------------------------------------------------------
253
if
(
m_uiBane_Timer
<= diff)
254
{
255
DoCast
(
me
,
SPELL_BANE
);
256
m_uiBane_Timer
= std::rand() % 25000 + 20000;
257
}
else
m_uiBane_Timer
-= diff;
258
259
if
(
m_uiFetidRot_Timer
<= diff)
260
{
261
DoCastVictim
(
SPELL_FETID_ROT
);
262
m_uiFetidRot_Timer
= std::rand() % 15000 + 10000;
263
}
else
m_uiFetidRot_Timer
-= diff;
264
265
if
(
m_uiDarkSlash_Timer
<= diff)
266
{
267
DoCastVictim
(
SPELL_DARK_SLASH
);
268
m_uiDarkSlash_Timer
= std::rand() % 35000 + 30000;
269
}
else
m_uiDarkSlash_Timer
-= diff;
270
271
if
(
m_uiAncestors_Vengeance_Timer
<= diff)
272
{
273
DoCast
(
me
,
SPELL_ANCESTORS_VENGEANCE
);
274
m_uiAncestors_Vengeance_Timer
=
DUNGEON_MODE
(std::rand() % 65000 + 60000, std::rand() % 50000 + 45000);
275
}
else
m_uiAncestors_Vengeance_Timer
-= diff;
276
277
// Abilities ------------------------------------------------------------------------------
278
if
(
m_bIsActiveWithBJORN
&&
m_uiAbility_BJORN_Timer
<= diff)
279
{
280
//DoCast(me, SPELL_SUMMON_SPIRIT_FOUNT); // works fine, but using summon has better control
281
if
(
Creature
* temp =
me
->SummonCreature(
NPC_SPIRIT_FOUNT
, 385.0f + rand() % 10, -330.0f + rand() % 10, 104.756f, 0,
TempSummonType::TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT
, 180000))
282
{
283
temp->SetSpeed(
MOVE_RUN
, 0.4f);
284
temp->CastSpell(temp,
DUNGEON_MODE
(
SPELL_SPIRIT_FOUNT
,
H_SPELL_SPIRIT_FOUNT
),
true
);
285
temp->SetFlag(
UNIT_FIELD_FLAGS
,
UNIT_FLAG_NON_ATTACKABLE
|
UNIT_FLAG_NOT_SELECTABLE
);
286
temp->SetDisplayId(11686);
287
m_uiOrbGUID
= temp->GetGUID();
288
}
289
m_bIsActiveWithBJORN
=
false
;
// only one orb
290
}
else
m_uiAbility_BJORN_Timer
-= diff;
291
292
if
(
m_bIsActiveWithHALDOR
&&
m_uiAbility_HALDOR_Timer
<= diff)
293
{
294
DoCastVictim
(
SPELL_SPIRIT_STRIKE
);
295
m_uiAbility_HALDOR_Timer
= 5000;
// overtime
296
}
else
m_uiAbility_HALDOR_Timer
-= diff;
297
298
if
(
m_bIsActiveWithRANULF
&&
m_uiAbility_RANULF_Timer
<= diff)
299
{
300
DoCast
(
me
,
SPELL_SPIRIT_BURST
);
301
m_uiAbility_RANULF_Timer
= 10000;
// overtime
302
}
else
m_uiAbility_RANULF_Timer
-= diff;
303
304
if
(
m_bIsActiveWithTORGYN
&&
m_uiAbility_TORGYN_Timer
<= diff)
305
{
306
float
x, y, z;
307
x =
me
->GetPositionX()-5;
308
y =
me
->GetPositionY()-5;
309
z =
me
->GetPositionZ();
310
for
(
uint8
i = 0; i < 4; ++i)
311
{
312
//DoCast(me, SPELL_SUMMON_AVENGING_SPIRIT); // works fine, but using summon has better control
313
if
(
Creature
* temp =
me
->SummonCreature(
NPC_AVENGING_SPIRIT
, x + rand() % 10, y + rand() % 10, z, 0,
TempSummonType::TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT
, 30000))
314
{
315
if
(
Unit
* target =
SelectTarget
(
SELECT_TARGET_RANDOM
, 0))
316
{
317
temp->AddThreat(target, 0.0f);
318
temp->AI()->AttackStart(target);
319
}
320
}
321
}
322
m_uiAbility_TORGYN_Timer
= 15000;
// overtime
323
}
else
m_uiAbility_TORGYN_Timer
-= diff;
324
325
// Health check -----------------------------------------------------------------------------
326
if
(
me
->HealthBelowPct(100 -
m_uiHealthAmountMultipler
*
m_uiHealthAmountModifier
))
327
{
328
uint8
m_uiOrder =
m_uiHealthAmountModifier
- 1;
329
++
m_uiHealthAmountModifier
;
330
331
me
->InterruptNonMeleeSpells(
true
);
332
DoCast
(
me
,
SPELL_SCREAMS_OF_THE_DEAD
);
333
me
->GetMotionMaster()->Clear();
334
me
->StopMoving();
335
me
->AttackStop();
336
me
->GetMotionMaster()->MovePoint(0,
ActiveBoat
[
m_uiActiveOrder
[m_uiOrder]].MoveX,
ActiveBoat
[
m_uiActiveOrder
[m_uiOrder]].MoveY,
ActiveBoat
[
m_uiActiveOrder
[m_uiOrder]].MoveZ);
337
338
DespawnBoatGhosts
(
m_uiActivedCreatureGUID
);
339
DespawnBoatGhosts
(
m_uiOrbGUID
);
340
341
m_bIsActiveWithBJORN
=
false
;
342
m_bIsActiveWithHALDOR
=
false
;
343
m_bIsActiveWithRANULF
=
false
;
344
m_bIsActiveWithTORGYN
=
false
;
345
346
m_uiBane_Timer
+= 8000;
347
m_uiFetidRot_Timer
+= 8000;
348
m_uiDarkSlash_Timer
+= 8000;
349
m_uiAncestors_Vengeance_Timer
+= 8000;
350
351
m_uiActivedNumber
= m_uiOrder;
352
m_bIsWalking
=
true
;
353
m_uiPause_Timer
= 2000;
354
return
;
355
}
356
DoMeleeAttackIfReady
();
357
}
358
}
359
360
void
JustDied
(
Unit
*
/*killer*/
)
OVERRIDE
361
{
362
Talk
(
SAY_DEATH
);
363
364
DespawnBoatGhosts
(
m_uiActivedCreatureGUID
);
365
DespawnBoatGhosts
(
m_uiOrbGUID
);
366
367
if
(
instance
)
368
instance
->SetData(
DATA_KING_YMIRON_EVENT
,
DONE
);
369
}
370
371
void
KilledUnit
(
Unit
*
/*victim*/
)
OVERRIDE
372
{
373
Talk
(
SAY_SLAY
);
374
}
375
376
void
DespawnBoatGhosts
(
uint64
m_uiCreatureGUID)
377
{
378
if
(m_uiCreatureGUID)
379
if
(
Creature
* temp =
Unit::GetCreature
(*
me
, m_uiCreatureGUID))
380
temp->DisappearAndDie();
381
382
m_uiCreatureGUID = 0;
383
}
384
};
385
};
386
387
class
achievement_kings_bane
:
public
AchievementCriteriaScript
388
{
389
public
:
390
achievement_kings_bane
() :
AchievementCriteriaScript
(
"achievement_kings_bane"
)
391
{
392
}
393
394
bool
OnCheck
(
Player
*
/*player*/
,
Unit
* target)
OVERRIDE
395
{
396
if
(!target)
397
return
false
;
398
399
if
(
Creature
* Ymiron = target->
ToCreature
())
400
if
(Ymiron->AI()->GetData(
DATA_KINGS_BANE
))
401
return
true
;
402
403
return
false
;
404
}
405
};
406
407
void
AddSC_boss_ymiron
()
408
{
409
new
boss_ymiron
();
410
new
achievement_kings_bane
();
411
}
Spells
Spells
Definition
BattlegroundIC.h:645
int32
std::int32_t int32
Definition
Define.h:73
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
uint64
std::uint64_t uint64
Definition
Define.h:76
IN_PROGRESS
@ IN_PROGRESS
Definition
InstanceScript.h:47
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_CORPSE_DESPAWN
@ TEMPSUMMON_CORPSE_DESPAWN
Definition
Object.h:72
TempSummonType::TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT
@ TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT
Definition
Object.h:71
ScriptMgr.h
ScriptedCreature.h
SpellInfo.h
MOVE_RUN
@ MOVE_RUN
Definition
Unit.h:556
UNIT_FLAG_NON_ATTACKABLE
@ UNIT_FLAG_NON_ATTACKABLE
Definition
Unit.h:626
UNIT_FLAG_NOT_SELECTABLE
@ UNIT_FLAG_NOT_SELECTABLE
Definition
Unit.h:650
SELECT_TARGET_RANDOM
@ SELECT_TARGET_RANDOM
Definition
UnitAI.h:23
UNIT_FIELD_FLAGS
@ UNIT_FIELD_FLAGS
Definition
UpdateFields.h:82
Creatures
Creatures
Definition
alterac_valley.cpp:28
SAY_SLAY
@ SAY_SLAY
Definition
boss_alizabal.cpp:20
SAY_DEATH
#define SAY_DEATH
Definition
boss_commander_kolurg.cpp:30
SAY_AGGRO
#define SAY_AGGRO
Definition
boss_commander_kolurg.cpp:28
Misc
Misc
Definition
boss_occuthar.cpp:37
NPC_TORGYN_VISUAL
@ NPC_TORGYN_VISUAL
Definition
boss_ymiron.cpp:64
NPC_AVENGING_SPIRIT
@ NPC_AVENGING_SPIRIT
Definition
boss_ymiron.cpp:66
NPC_HALDOR
@ NPC_HALDOR
Definition
boss_ymiron.cpp:59
NPC_SPIRIT_FOUNT
@ NPC_SPIRIT_FOUNT
Definition
boss_ymiron.cpp:65
NPC_RANULF_VISUAL
@ NPC_RANULF_VISUAL
Definition
boss_ymiron.cpp:62
NPC_HALDOR_VISUAL
@ NPC_HALDOR_VISUAL
Definition
boss_ymiron.cpp:60
NPC_RANULF
@ NPC_RANULF
Definition
boss_ymiron.cpp:61
NPC_BJORN_VISUAL
@ NPC_BJORN_VISUAL
Definition
boss_ymiron.cpp:58
NPC_BJORN
@ NPC_BJORN
Definition
boss_ymiron.cpp:57
NPC_TORGYN
@ NPC_TORGYN
Definition
boss_ymiron.cpp:63
DATA_KINGS_BANE
@ DATA_KINGS_BANE
Definition
boss_ymiron.cpp:86
SAY_DEATH
@ SAY_DEATH
Definition
boss_ymiron.cpp:48
SAY_SUMMON_BJORN
@ SAY_SUMMON_BJORN
Definition
boss_ymiron.cpp:49
SAY_SUMMON_RANULF
@ SAY_SUMMON_RANULF
Definition
boss_ymiron.cpp:51
SAY_SUMMON_TORGYN
@ SAY_SUMMON_TORGYN
Definition
boss_ymiron.cpp:52
SAY_AGGRO
@ SAY_AGGRO
Definition
boss_ymiron.cpp:46
SAY_SLAY
@ SAY_SLAY
Definition
boss_ymiron.cpp:47
SAY_SUMMON_HALDOR
@ SAY_SUMMON_HALDOR
Definition
boss_ymiron.cpp:50
AddSC_boss_ymiron
void AddSC_boss_ymiron()
Definition
boss_ymiron.cpp:407
ActiveBoat
static ActiveBoatStruct ActiveBoat[4]
Definition
boss_ymiron.cpp:76
SPELL_SPIRIT_BURST
@ SPELL_SPIRIT_BURST
Definition
boss_ymiron.cpp:27
SPELL_SCREAMS_OF_THE_DEAD
@ SPELL_SCREAMS_OF_THE_DEAD
Definition
boss_ymiron.cpp:26
H_SPELL_SPIRIT_BURST
@ H_SPELL_SPIRIT_BURST
Definition
boss_ymiron.cpp:28
SPELL_SUMMON_AVENGING_SPIRIT
@ SPELL_SUMMON_AVENGING_SPIRIT
Definition
boss_ymiron.cpp:33
SPELL_CHANNEL_SPIRIT_TO_YMIRON
@ SPELL_CHANNEL_SPIRIT_TO_YMIRON
Definition
boss_ymiron.cpp:36
SPELL_CHANNEL_YMIRON_TO_SPIRIT
@ SPELL_CHANNEL_YMIRON_TO_SPIRIT
Definition
boss_ymiron.cpp:37
H_SPELL_FETID_ROT
@ H_SPELL_FETID_ROT
Definition
boss_ymiron.cpp:25
SPELL_SPIRIT_FOUNT
@ SPELL_SPIRIT_FOUNT
Definition
boss_ymiron.cpp:39
H_SPELL_SPIRIT_FOUNT
@ H_SPELL_SPIRIT_FOUNT
Definition
boss_ymiron.cpp:40
H_SPELL_SPIRIT_STRIKE
@ H_SPELL_SPIRIT_STRIKE
Definition
boss_ymiron.cpp:30
SPELL_SUMMON_SPIRIT_FOUNT
@ SPELL_SUMMON_SPIRIT_FOUNT
Definition
boss_ymiron.cpp:34
SPELL_ANCESTORS_VENGEANCE
@ SPELL_ANCESTORS_VENGEANCE
Definition
boss_ymiron.cpp:31
SPELL_SPIRIT_STRIKE
@ SPELL_SPIRIT_STRIKE
Definition
boss_ymiron.cpp:29
SPELL_DARK_SLASH
@ SPELL_DARK_SLASH
Definition
boss_ymiron.cpp:23
H_SPELL_BANE
@ H_SPELL_BANE
Definition
boss_ymiron.cpp:22
SPELL_BANE
@ SPELL_BANE
Definition
boss_ymiron.cpp:21
SPELL_FETID_ROT
@ SPELL_FETID_ROT
Definition
boss_ymiron.cpp:24
AchievementCriteriaScript::AchievementCriteriaScript
AchievementCriteriaScript(const char *name)
Definition
ScriptMgr.cpp:1508
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
Object::ToCreature
Creature * ToCreature()
Definition
Object.h:207
Player
Definition
Player.h:1289
SpellInfo
Definition
SpellInfo.h:158
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
Unit::GetCreature
static Creature * GetCreature(WorldObject &object, uint64 guid)
Definition
Unit.cpp:4905
WorldObject::GetInstanceScript
InstanceScript * GetInstanceScript()
Definition
Object.cpp:1612
achievement_kings_bane
Definition
boss_ymiron.cpp:388
achievement_kings_bane::achievement_kings_bane
achievement_kings_bane()
Definition
boss_ymiron.cpp:390
achievement_kings_bane::OnCheck
bool OnCheck(Player *, Unit *target) OVERRIDE
Definition
boss_ymiron.cpp:394
boss_ymiron
Definition
boss_ymiron.cpp:90
boss_ymiron::boss_ymiron
boss_ymiron()
Definition
boss_ymiron.cpp:92
boss_ymiron::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
boss_ymiron.cpp:94
SPELL_SPIRIT_BURST
@ SPELL_SPIRIT_BURST
Definition
halls_of_reflection.cpp:1563
ActiveBoatStruct
Definition
boss_ymiron.cpp:70
ActiveBoatStruct::SpawnZ
float SpawnZ
Definition
boss_ymiron.cpp:73
ActiveBoatStruct::SpawnO
float SpawnO
Definition
boss_ymiron.cpp:73
ActiveBoatStruct::npc
uint32 npc
Definition
boss_ymiron.cpp:71
ActiveBoatStruct::MoveY
float MoveY
Definition
boss_ymiron.cpp:73
ActiveBoatStruct::SpawnY
float SpawnY
Definition
boss_ymiron.cpp:73
ActiveBoatStruct::say
int32 say
Definition
boss_ymiron.cpp:72
ActiveBoatStruct::MoveZ
float MoveZ
Definition
boss_ymiron.cpp:73
ActiveBoatStruct::MoveX
float MoveX
Definition
boss_ymiron.cpp:73
ActiveBoatStruct::SpawnX
float SpawnX
Definition
boss_ymiron.cpp:73
ScriptedAI::me
Creature * me
Definition
ScriptedCreature.h:182
ScriptedAI::ScriptedAI
ScriptedAI(Creature *creature)
Definition
ScriptedCreature.cpp:85
ScriptedAI::DUNGEON_MODE
const T & DUNGEON_MODE(const T &normal5, const T &heroic5) const
Definition
ScriptedCreature.h:294
Yells
Definition
boss_illidan.cpp:256
boss_ymiron::boss_ymironAI
Definition
boss_ymiron.cpp:100
boss_ymiron::boss_ymironAI::m_uiActivedCreatureGUID
uint64 m_uiActivedCreatureGUID
Definition
boss_ymiron.cpp:143
boss_ymiron::boss_ymironAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
boss_ymiron.cpp:180
boss_ymiron::boss_ymironAI::Reset
void Reset() OVERRIDE
Definition
boss_ymiron.cpp:148
boss_ymiron::boss_ymironAI::m_uiOrbGUID
uint64 m_uiOrbGUID
Definition
boss_ymiron.cpp:144
boss_ymiron::boss_ymironAI::m_uiHealthAmountModifier
uint32 m_uiHealthAmountModifier
Definition
boss_ymiron.cpp:140
boss_ymiron::boss_ymironAI::instance
InstanceScript * instance
Definition
boss_ymiron.cpp:146
boss_ymiron::boss_ymironAI::m_uiAbility_HALDOR_Timer
uint32 m_uiAbility_HALDOR_Timer
Definition
boss_ymiron.cpp:135
boss_ymiron::boss_ymironAI::m_uiActivedNumber
uint8 m_uiActivedNumber
Definition
boss_ymiron.cpp:127
boss_ymiron::boss_ymironAI::DespawnBoatGhosts
void DespawnBoatGhosts(uint64 m_uiCreatureGUID)
Definition
boss_ymiron.cpp:376
boss_ymiron::boss_ymironAI::GetData
uint32 GetData(uint32 type) const OVERRIDE
Definition
boss_ymiron.cpp:194
boss_ymiron::boss_ymironAI::m_bIsActiveWithTORGYN
bool m_bIsActiveWithTORGYN
Definition
boss_ymiron.cpp:123
boss_ymiron::boss_ymironAI::m_bIsActiveWithHALDOR
bool m_bIsActiveWithHALDOR
Definition
boss_ymiron.cpp:121
boss_ymiron::boss_ymironAI::m_uiFetidRot_Timer
uint32 m_uiFetidRot_Timer
Definition
boss_ymiron.cpp:129
boss_ymiron::boss_ymironAI::m_bIsWalking
bool m_bIsWalking
Definition
boss_ymiron.cpp:118
boss_ymiron::boss_ymironAI::kingsBane
bool kingsBane
Definition
boss_ymiron.cpp:124
boss_ymiron::boss_ymironAI::m_uiPause_Timer
uint32 m_uiPause_Timer
Definition
boss_ymiron.cpp:139
boss_ymiron::boss_ymironAI::m_uiHealthAmountMultipler
uint32 m_uiHealthAmountMultipler
Definition
boss_ymiron.cpp:141
boss_ymiron::boss_ymironAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
boss_ymiron.cpp:202
boss_ymiron::boss_ymironAI::m_uiDarkSlash_Timer
uint32 m_uiDarkSlash_Timer
Definition
boss_ymiron.cpp:131
boss_ymiron::boss_ymironAI::m_uiAncestors_Vengeance_Timer
uint32 m_uiAncestors_Vengeance_Timer
Definition
boss_ymiron.cpp:132
boss_ymiron::boss_ymironAI::boss_ymironAI
boss_ymironAI(Creature *creature)
Definition
boss_ymiron.cpp:101
boss_ymiron::boss_ymironAI::JustDied
void JustDied(Unit *) OVERRIDE
Definition
boss_ymiron.cpp:360
boss_ymiron::boss_ymironAI::m_uiAbility_TORGYN_Timer
uint32 m_uiAbility_TORGYN_Timer
Definition
boss_ymiron.cpp:137
boss_ymiron::boss_ymironAI::m_uiAbility_BJORN_Timer
uint32 m_uiAbility_BJORN_Timer
Definition
boss_ymiron.cpp:134
boss_ymiron::boss_ymironAI::SpellHitTarget
void SpellHitTarget(Unit *who, SpellInfo const *spell) OVERRIDE
Definition
boss_ymiron.cpp:188
boss_ymiron::boss_ymironAI::KilledUnit
void KilledUnit(Unit *) OVERRIDE
Definition
boss_ymiron.cpp:371
boss_ymiron::boss_ymironAI::m_bIsActiveWithRANULF
bool m_bIsActiveWithRANULF
Definition
boss_ymiron.cpp:122
boss_ymiron::boss_ymironAI::m_uiBane_Timer
uint32 m_uiBane_Timer
Definition
boss_ymiron.cpp:130
boss_ymiron::boss_ymironAI::m_bIsActiveWithBJORN
bool m_bIsActiveWithBJORN
Definition
boss_ymiron.cpp:120
boss_ymiron::boss_ymironAI::m_uiActiveOrder
uint8 m_uiActiveOrder[4]
Definition
boss_ymiron.cpp:126
boss_ymiron::boss_ymironAI::m_uiAbility_RANULF_Timer
uint32 m_uiAbility_RANULF_Timer
Definition
boss_ymiron.cpp:136
boss_ymiron::boss_ymironAI::m_bIsPause
bool m_bIsPause
Definition
boss_ymiron.cpp:119
utgarde_pinnacle.h
DATA_KING_YMIRON_EVENT
@ DATA_KING_YMIRON_EVENT
Definition
utgarde_pinnacle.h:14
src
server
scripts
Northrend
UtgardeKeep
UtgardePinnacle
boss_ymiron.cpp
Generated on
for Project SkyFire Core by
1.17.0