Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
the_black_morass.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
/*
7
Name: The_Black_Morass
8
%Complete: 30
9
Comment: Misc NPC's and mobs for instance. Most here far from complete.
10
Category: Caverns of Time, The Black Morass
11
*/
12
13
/* ContentData
14
npc_medivh_bm
15
npc_time_rift
16
npc_saat
17
EndContentData */
18
19
#include "
ScriptMgr.h
"
20
#include "
ScriptedCreature.h
"
21
#include "
ScriptedGossip.h
"
22
#include "
the_black_morass.h
"
23
#include "
Player.h
"
24
#include "
SpellInfo.h
"
25
26
enum
MedivhBm
27
{
28
SAY_ENTER
= 0,
//where does this belong?
29
SAY_INTRO
= 1,
30
SAY_WEAK75
= 2,
31
SAY_WEAK50
= 3,
32
SAY_WEAK25
= 4,
33
SAY_DEATH
= 5,
34
SAY_WIN
= 6,
35
SAY_ORCS_ENTER
= 7,
36
SAY_ORCS_ANSWER
= 8,
37
38
SPELL_CHANNEL
= 31556,
39
SPELL_PORTAL_RUNE
= 32570,
//aura(portal on ground effect)
40
41
SPELL_BLACK_CRYSTAL
= 32563,
//aura
42
SPELL_PORTAL_CRYSTAL
= 32564,
//summon
43
44
SPELL_BANISH_PURPLE
= 32566,
//aura
45
SPELL_BANISH_GREEN
= 32567,
//aura
46
47
SPELL_CORRUPT
= 31326,
48
SPELL_CORRUPT_AEONUS
= 37853,
49
50
C_COUNCIL_ENFORCER
= 17023
51
};
52
53
class
npc_medivh_bm
:
public
CreatureScript
54
{
55
public
:
56
npc_medivh_bm
() :
CreatureScript
(
"npc_medivh_bm"
) { }
57
58
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
59
{
60
return
new
npc_medivh_bmAI
(creature);
61
}
62
63
struct
npc_medivh_bmAI
:
public
ScriptedAI
64
{
65
npc_medivh_bmAI
(
Creature
* creature) :
ScriptedAI
(creature)
66
{
67
instance
= creature->
GetInstanceScript
();
68
}
69
70
InstanceScript
*
instance
;
71
72
uint32
SpellCorrupt_Timer
;
73
uint32
Check_Timer
;
74
75
bool
Life75
;
76
bool
Life50
;
77
bool
Life25
;
78
79
void
Reset
()
OVERRIDE
80
{
81
SpellCorrupt_Timer
= 0;
82
Check_Timer
= 0;
83
Life75
=
true
;
84
Life50
=
true
;
85
Life25
=
true
;
86
87
if
(!
instance
)
88
return
;
89
90
if
(
instance
->GetData(
TYPE_MEDIVH
) ==
IN_PROGRESS
)
91
DoCast
(
me
,
SPELL_CHANNEL
,
true
);
92
else
if
(
me
->HasAura(
SPELL_CHANNEL
))
93
me
->RemoveAura(
SPELL_CHANNEL
);
94
95
DoCast
(
me
,
SPELL_PORTAL_RUNE
,
true
);
96
}
97
98
void
MoveInLineOfSight
(
Unit
* who)
OVERRIDE
99
100
{
101
if
(!
instance
)
102
return
;
103
104
if
(who->GetTypeId() ==
TypeID::TYPEID_PLAYER
&&
me
->IsWithinDistInMap(who, 10.0f))
105
{
106
if
(
instance
->GetData(
TYPE_MEDIVH
) ==
IN_PROGRESS
||
instance
->GetData(
TYPE_MEDIVH
) ==
DONE
)
107
return
;
108
109
Talk
(
SAY_INTRO
);
110
instance
->SetData(
TYPE_MEDIVH
,
IN_PROGRESS
);
111
DoCast
(
me
,
SPELL_CHANNEL
,
false
);
112
Check_Timer
= 5000;
113
}
114
else
if
(who->GetTypeId() ==
TypeID::TYPEID_UNIT
&&
me
->IsWithinDistInMap(who, 15.0f))
115
{
116
if
(
instance
->GetData(
TYPE_MEDIVH
) !=
IN_PROGRESS
)
117
return
;
118
119
uint32
entry = who->GetEntry();
120
if
(entry ==
NPC_INFINITE_ASSASIN
|| entry ==
NPC_INFINITE_WHELP
|| entry ==
NPC_INFINITE_CRONOMANCER
|| entry ==
NPC_INFINITE_EXECUTIONER
|| entry ==
NPC_INFINITE_VANQUISHER
)
121
{
122
who->StopMoving();
123
who->CastSpell(
me
,
SPELL_CORRUPT
,
false
);
124
}
125
else
if
(entry ==
NPC_AEONUS
)
126
{
127
who->StopMoving();
128
who->CastSpell(
me
,
SPELL_CORRUPT_AEONUS
,
false
);
129
}
130
}
131
}
132
133
void
AttackStart
(
Unit
*
/*who*/
)
OVERRIDE
134
{
135
//if (instance && instance->GetData(TYPE_MEDIVH) == IN_PROGRESS)
136
//return;
137
138
//ScriptedAI::AttackStart(who);
139
}
140
141
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
{ }
142
143
void
SpellHit
(
Unit
*
/*caster*/
,
const
SpellInfo
* spell)
OVERRIDE
144
{
145
if
(
SpellCorrupt_Timer
)
146
return
;
147
148
if
(spell->Id ==
SPELL_CORRUPT_AEONUS
)
149
SpellCorrupt_Timer
= 1000;
150
151
if
(spell->Id ==
SPELL_CORRUPT
)
152
SpellCorrupt_Timer
= 3000;
153
}
154
155
void
JustDied
(
Unit
* killer)
OVERRIDE
156
{
157
if
(killer->GetEntry() ==
me
->GetEntry())
158
return
;
159
160
Talk
(
SAY_DEATH
);
161
}
162
163
void
UpdateAI
(
uint32
diff)
OVERRIDE
164
{
165
if
(!
instance
)
166
return
;
167
168
if
(
SpellCorrupt_Timer
)
169
{
170
if
(
SpellCorrupt_Timer
<= diff)
171
{
172
instance
->SetData(
TYPE_MEDIVH
,
SPECIAL
);
173
174
if
(
me
->HasAura(
SPELL_CORRUPT_AEONUS
))
175
SpellCorrupt_Timer
= 1000;
176
else
if
(
me
->HasAura(
SPELL_CORRUPT
))
177
SpellCorrupt_Timer
= 3000;
178
else
179
SpellCorrupt_Timer
= 0;
180
}
else
SpellCorrupt_Timer
-= diff;
181
}
182
183
if
(
Check_Timer
)
184
{
185
if
(
Check_Timer
<= diff)
186
{
187
uint32
pct =
instance
->GetData(
DATA_SHIELD
);
188
189
Check_Timer
= 5000;
190
191
if
(
Life25
&& pct <= 25)
192
{
193
Talk
(
SAY_WEAK25
);
194
Life25
=
false
;
195
}
196
else
if
(
Life50
&& pct <= 50)
197
{
198
Talk
(
SAY_WEAK50
);
199
Life50
=
false
;
200
}
201
else
if
(
Life75
&& pct <= 75)
202
{
203
Talk
(
SAY_WEAK75
);
204
Life75
=
false
;
205
}
206
207
//if we reach this it means event was running but at some point reset.
208
if
(
instance
->GetData(
TYPE_MEDIVH
) ==
NOT_STARTED
)
209
{
210
me
->DealDamage(
me
,
me
->GetHealth(), NULL,
DIRECT_DAMAGE
,
SPELL_SCHOOL_MASK_NORMAL
, NULL,
false
);
211
me
->RemoveCorpse();
212
me
->Respawn();
213
return
;
214
}
215
216
if
(
instance
->GetData(
TYPE_RIFT
) ==
DONE
)
217
{
218
Talk
(
SAY_WIN
);
219
Check_Timer
= 0;
220
221
if
(
me
->HasAura(
SPELL_CHANNEL
))
222
me
->RemoveAura(
SPELL_CHANNEL
);
223
225
instance
->SetData(
TYPE_MEDIVH
,
DONE
);
226
}
227
}
else
Check_Timer
-= diff;
228
}
229
230
//if (!UpdateVictim())
231
//return;
232
233
//DoMeleeAttackIfReady();
234
}
235
};
236
};
237
238
struct
Wave
239
{
240
uint32
PortalMob
[4];
//spawns for portal waves (in order)
241
};
242
243
static
Wave
PortalWaves
[]=
244
{
245
{ {
NPC_INFINITE_ASSASIN
,
NPC_INFINITE_WHELP
,
NPC_INFINITE_CRONOMANCER
, 0} },
246
{ {
NPC_INFINITE_EXECUTIONER
,
NPC_INFINITE_CRONOMANCER
,
NPC_INFINITE_WHELP
,
NPC_INFINITE_ASSASIN
} },
247
{ {
NPC_INFINITE_EXECUTIONER
,
NPC_INFINITE_VANQUISHER
,
NPC_INFINITE_CRONOMANCER
,
NPC_INFINITE_ASSASIN
} }
248
};
249
250
class
npc_time_rift
:
public
CreatureScript
251
{
252
public
:
253
npc_time_rift
() :
CreatureScript
(
"npc_time_rift"
) { }
254
255
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
256
{
257
return
new
npc_time_riftAI
(creature);
258
}
259
260
struct
npc_time_riftAI
:
public
ScriptedAI
261
{
262
npc_time_riftAI
(
Creature
* creature) :
ScriptedAI
(creature)
263
{
264
instance
= creature->
GetInstanceScript
();
265
}
266
267
InstanceScript
*
instance
;
268
269
uint32
TimeRiftWave_Timer
;
270
uint8
mRiftWaveCount
;
271
uint8
mPortalCount
;
272
uint8
mWaveId
;
273
274
void
Reset
()
OVERRIDE
275
{
276
TimeRiftWave_Timer
= 15000;
277
mRiftWaveCount
= 0;
278
279
if
(!
instance
)
280
return
;
281
282
mPortalCount
=
instance
->GetData(
DATA_PORTAL_COUNT
);
283
284
if
(
mPortalCount
< 6)
285
mWaveId
= 0;
286
else
if
(
mPortalCount
> 12)
287
mWaveId
= 2;
288
else
mWaveId
= 1;
289
}
290
291
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
{ }
292
293
void
DoSummonAtRift
(
uint32
creature_entry)
294
{
295
if
(!creature_entry)
296
return
;
297
298
if
(
instance
&&
instance
->GetData(
TYPE_MEDIVH
) !=
IN_PROGRESS
)
299
{
300
me
->InterruptNonMeleeSpells(
true
);
301
me
->RemoveAllAuras();
302
return
;
303
}
304
305
Position
pos;
306
me
->GetRandomNearPosition(pos, 10.0f);
307
308
//normalize Z-level if we can, if rift is not at ground level.
309
pos.
m_positionZ
= std::max(
me
->GetMap()->GetHeight(pos.
m_positionX
, pos.
m_positionY
,
MAX_HEIGHT
),
me
->GetMap()->GetWaterLevel(pos.
m_positionX
, pos.
m_positionY
));
310
311
if
(
Unit
* Summon =
DoSummon
(creature_entry, pos, 30000,
TempSummonType::TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT
))
312
if
(
Unit
* temp =
Unit::GetUnit
(*
me
,
instance
?
instance
->GetData64(
DATA_MEDIVH
) : 0))
313
Summon->AddThreat(temp, 0.0f);
314
}
315
316
void
DoSelectSummon
()
317
{
318
if
((
mRiftWaveCount
> 2 &&
mWaveId
< 1) ||
mRiftWaveCount
> 3)
319
mRiftWaveCount
= 0;
320
321
uint32
entry = 0;
322
323
entry =
PortalWaves
[
mWaveId
].PortalMob[
mRiftWaveCount
];
324
SF_LOG_DEBUG
(
"scripts"
,
"npc_time_rift: summoning wave Creature (Wave %u, Entry %u)."
,
mRiftWaveCount
, entry);
325
326
++
mRiftWaveCount
;
327
328
if
(entry ==
NPC_INFINITE_WHELP
)
329
{
330
for
(
uint8
i = 0; i < 3; ++i)
331
DoSummonAtRift
(entry);
332
}
else
DoSummonAtRift
(entry);
333
}
334
335
void
UpdateAI
(
uint32
diff)
OVERRIDE
336
{
337
if
(!
instance
)
338
return
;
339
340
if
(
TimeRiftWave_Timer
<= diff)
341
{
342
DoSelectSummon
();
343
TimeRiftWave_Timer
= 15000;
344
}
else
TimeRiftWave_Timer
-= diff;
345
346
if
(
me
->IsNonMeleeSpellCasted(
false
))
347
return
;
348
349
SF_LOG_DEBUG
(
"scripts"
,
"npc_time_rift: not casting anylonger, i need to die."
);
350
me
->setDeathState(
DeathState::JUST_DIED
);
351
352
if
(
instance
->GetData(
TYPE_RIFT
) ==
IN_PROGRESS
)
353
instance
->SetData(
TYPE_RIFT
,
SPECIAL
);
354
}
355
};
356
};
357
358
enum
Saat
359
{
360
SPELL_CHRONO_BEACON
= 34975,
361
ITEM_CHRONO_BEACON
= 24289
362
};
363
364
#define GOSSIP_ITEM_OBTAIN "[PH] Obtain Chrono-Beacon"
365
366
class
npc_saat
:
public
CreatureScript
367
{
368
public
:
369
npc_saat
() :
CreatureScript
(
"npc_saat"
) { }
370
371
bool
OnGossipSelect
(
Player
* player,
Creature
* creature,
uint32
/*sender*/
,
uint32
action)
OVERRIDE
372
{
373
player->PlayerTalkClass->ClearMenus();
374
if
(action ==
GOSSIP_ACTION_INFO_DEF
+1)
375
{
376
player->CLOSE_GOSSIP_MENU();
377
creature->CastSpell(player,
SPELL_CHRONO_BEACON
,
false
);
378
}
379
return
true
;
380
}
381
382
bool
OnGossipHello
(
Player
* player,
Creature
* creature)
OVERRIDE
383
{
384
if
(creature->IsQuestGiver())
385
player->PrepareQuestMenu(creature->GetGUID());
386
387
if
(player->GetQuestStatus(
QUEST_OPENING_PORTAL
) ==
QUEST_STATUS_INCOMPLETE
&& !player->HasItemCount(
ITEM_CHRONO_BEACON
))
388
{
389
player->ADD_GOSSIP_ITEM(
GOSSIP_ICON_CHAT
,
GOSSIP_ITEM_OBTAIN
,
GOSSIP_SENDER_MAIN
,
GOSSIP_ACTION_INFO_DEF
+1);
390
player->SEND_GOSSIP_MENU(10000, creature->GetGUID());
391
return
true
;
392
}
393
else
if
(player->GetQuestRewardStatus(
QUEST_OPENING_PORTAL
) && !player->HasItemCount(
ITEM_CHRONO_BEACON
))
394
{
395
player->ADD_GOSSIP_ITEM(
GOSSIP_ICON_CHAT
,
GOSSIP_ITEM_OBTAIN
,
GOSSIP_SENDER_MAIN
,
GOSSIP_ACTION_INFO_DEF
+1);
396
player->SEND_GOSSIP_MENU(10001, creature->GetGUID());
397
return
true
;
398
}
399
400
player->SEND_GOSSIP_MENU(10002, creature->GetGUID());
401
return
true
;
402
}
403
};
404
405
void
AddSC_the_black_morass
()
406
{
407
new
npc_medivh_bm
();
408
new
npc_time_rift
();
409
new
npc_saat
();
410
}
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
GOSSIP_ICON_CHAT
@ GOSSIP_ICON_CHAT
Definition
GossipDef.h:46
IN_PROGRESS
@ IN_PROGRESS
Definition
InstanceScript.h:47
DONE
@ DONE
Definition
InstanceScript.h:49
SPECIAL
@ SPECIAL
Definition
InstanceScript.h:50
NOT_STARTED
@ NOT_STARTED
Definition
InstanceScript.h:46
SF_LOG_DEBUG
#define SF_LOG_DEBUG(filterType__,...)
Definition
Log.h:134
MAX_HEIGHT
#define MAX_HEIGHT
Definition
Map.h:141
TypeID::TYPEID_PLAYER
@ TYPEID_PLAYER
Definition
Object.h:55
TypeID::TYPEID_UNIT
@ TYPEID_UNIT
Definition
Object.h:54
TempSummonType::TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT
@ TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT
Definition
Object.h:71
Player.h
QUEST_STATUS_INCOMPLETE
@ QUEST_STATUS_INCOMPLETE
Definition
QuestDef.h:89
ScriptMgr.h
ScriptedCreature.h
ScriptedGossip.h
GOSSIP_SENDER_MAIN
@ GOSSIP_SENDER_MAIN
Definition
ScriptedGossip.h:58
GOSSIP_ACTION_INFO_DEF
@ GOSSIP_ACTION_INFO_DEF
Definition
ScriptedGossip.h:56
SPELL_SCHOOL_MASK_NORMAL
@ SPELL_SCHOOL_MASK_NORMAL
Definition
SharedDefines.h:270
SpellInfo.h
DeathState::JUST_DIED
@ JUST_DIED
Definition
Unit.h:504
DIRECT_DAMAGE
@ DIRECT_DAMAGE
Definition
Unit.h:614
SAY_INTRO
@ SAY_INTRO
Definition
boss_alizabal.cpp:14
SAY_ENTER
@ SAY_ENTER
Definition
boss_captain_skarloc.cpp:23
SAY_DEATH
#define SAY_DEATH
Definition
boss_commander_kolurg.cpp:30
SPELL_CHANNEL
@ SPELL_CHANNEL
Definition
boss_razorgore.cpp:23
CreatureAI
Definition
CreatureAI.h:54
CreatureAI::DoSummon
Creature * DoSummon(uint32 entry, Position const &pos, uint32 despawnTime=30000, TempSummonType summonType=TempSummonType::TEMPSUMMON_CORPSE_TIMED_DESPAWN)
Definition
CreatureAI.cpp:235
CreatureAI::Talk
void Talk(uint8 id, WorldObject const *whisperTarget=NULL)
Definition
CreatureAI.cpp:28
Creature
Definition
Creature.h:427
CreatureScript::CreatureScript
CreatureScript(const char *name)
Definition
ScriptMgr.cpp:1436
InstanceScript
Definition
InstanceScript.h:123
Player
Definition
Player.h:1289
SpellInfo
Definition
SpellInfo.h:158
UnitAI::DoCast
void DoCast(uint32 spellId)
Definition
UnitAI.cpp:110
Unit
Definition
Unit.h:1367
Unit::GetUnit
static Unit * GetUnit(WorldObject &object, uint64 guid)
Definition
Unit.cpp:4895
WorldObject::GetInstanceScript
InstanceScript * GetInstanceScript()
Definition
Object.cpp:1612
npc_medivh_bm
Definition
the_black_morass.cpp:54
npc_medivh_bm::npc_medivh_bm
npc_medivh_bm()
Definition
the_black_morass.cpp:56
npc_medivh_bm::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
the_black_morass.cpp:58
npc_saat
Definition
the_black_morass.cpp:367
npc_saat::OnGossipSelect
bool OnGossipSelect(Player *player, Creature *creature, uint32, uint32 action) OVERRIDE
Definition
the_black_morass.cpp:371
npc_saat::OnGossipHello
bool OnGossipHello(Player *player, Creature *creature) OVERRIDE
Definition
the_black_morass.cpp:382
npc_saat::npc_saat
npc_saat()
Definition
the_black_morass.cpp:369
npc_time_rift
Definition
the_black_morass.cpp:251
npc_time_rift::npc_time_rift
npc_time_rift()
Definition
the_black_morass.cpp:253
npc_time_rift::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
the_black_morass.cpp:255
Position
Definition
Object.h:274
Position::m_positionZ
float m_positionZ
Definition
Object.h:289
Position::m_positionX
float m_positionX
Definition
Object.h:287
Position::m_positionY
float m_positionY
Definition
Object.h:288
ScriptedAI::me
Creature * me
Definition
ScriptedCreature.h:182
ScriptedAI::ScriptedAI
ScriptedAI(Creature *creature)
Definition
ScriptedCreature.cpp:85
Wave
Definition
hyjalAI.h:31
Wave::PortalMob
uint32 PortalMob[4]
Definition
the_black_morass.cpp:240
npc_medivh_bm::npc_medivh_bmAI
Definition
the_black_morass.cpp:64
npc_medivh_bm::npc_medivh_bmAI::Life50
bool Life50
Definition
the_black_morass.cpp:76
npc_medivh_bm::npc_medivh_bmAI::JustDied
void JustDied(Unit *killer) OVERRIDE
Definition
the_black_morass.cpp:155
npc_medivh_bm::npc_medivh_bmAI::Reset
void Reset() OVERRIDE
Definition
the_black_morass.cpp:79
npc_medivh_bm::npc_medivh_bmAI::MoveInLineOfSight
void MoveInLineOfSight(Unit *who) OVERRIDE
Definition
the_black_morass.cpp:98
npc_medivh_bm::npc_medivh_bmAI::instance
InstanceScript * instance
Definition
the_black_morass.cpp:70
npc_medivh_bm::npc_medivh_bmAI::Life75
bool Life75
Definition
the_black_morass.cpp:75
npc_medivh_bm::npc_medivh_bmAI::SpellCorrupt_Timer
uint32 SpellCorrupt_Timer
Definition
the_black_morass.cpp:72
npc_medivh_bm::npc_medivh_bmAI::Check_Timer
uint32 Check_Timer
Definition
the_black_morass.cpp:73
npc_medivh_bm::npc_medivh_bmAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
the_black_morass.cpp:141
npc_medivh_bm::npc_medivh_bmAI::npc_medivh_bmAI
npc_medivh_bmAI(Creature *creature)
Definition
the_black_morass.cpp:65
npc_medivh_bm::npc_medivh_bmAI::SpellHit
void SpellHit(Unit *, const SpellInfo *spell) OVERRIDE
Definition
the_black_morass.cpp:143
npc_medivh_bm::npc_medivh_bmAI::AttackStart
void AttackStart(Unit *) OVERRIDE
Definition
the_black_morass.cpp:133
npc_medivh_bm::npc_medivh_bmAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
the_black_morass.cpp:163
npc_medivh_bm::npc_medivh_bmAI::Life25
bool Life25
Definition
the_black_morass.cpp:77
npc_time_rift::npc_time_riftAI
Definition
the_black_morass.cpp:261
npc_time_rift::npc_time_riftAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
the_black_morass.cpp:291
npc_time_rift::npc_time_riftAI::mWaveId
uint8 mWaveId
Definition
the_black_morass.cpp:272
npc_time_rift::npc_time_riftAI::TimeRiftWave_Timer
uint32 TimeRiftWave_Timer
Definition
the_black_morass.cpp:269
npc_time_rift::npc_time_riftAI::DoSummonAtRift
void DoSummonAtRift(uint32 creature_entry)
Definition
the_black_morass.cpp:293
npc_time_rift::npc_time_riftAI::Reset
void Reset() OVERRIDE
Definition
the_black_morass.cpp:274
npc_time_rift::npc_time_riftAI::npc_time_riftAI
npc_time_riftAI(Creature *creature)
Definition
the_black_morass.cpp:262
npc_time_rift::npc_time_riftAI::DoSelectSummon
void DoSelectSummon()
Definition
the_black_morass.cpp:316
npc_time_rift::npc_time_riftAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
the_black_morass.cpp:335
npc_time_rift::npc_time_riftAI::mPortalCount
uint8 mPortalCount
Definition
the_black_morass.cpp:271
npc_time_rift::npc_time_riftAI::instance
InstanceScript * instance
Definition
the_black_morass.cpp:267
npc_time_rift::npc_time_riftAI::mRiftWaveCount
uint8 mRiftWaveCount
Definition
the_black_morass.cpp:270
GOSSIP_ITEM_OBTAIN
#define GOSSIP_ITEM_OBTAIN
Definition
the_black_morass.cpp:364
AddSC_the_black_morass
void AddSC_the_black_morass()
Definition
the_black_morass.cpp:405
MedivhBm
MedivhBm
Definition
the_black_morass.cpp:27
SPELL_CORRUPT
@ SPELL_CORRUPT
Definition
the_black_morass.cpp:47
SAY_DEATH
@ SAY_DEATH
Definition
the_black_morass.cpp:33
SPELL_BLACK_CRYSTAL
@ SPELL_BLACK_CRYSTAL
Definition
the_black_morass.cpp:41
SAY_WEAK75
@ SAY_WEAK75
Definition
the_black_morass.cpp:30
SAY_WEAK50
@ SAY_WEAK50
Definition
the_black_morass.cpp:31
SAY_WEAK25
@ SAY_WEAK25
Definition
the_black_morass.cpp:32
SAY_WIN
@ SAY_WIN
Definition
the_black_morass.cpp:34
SAY_ORCS_ENTER
@ SAY_ORCS_ENTER
Definition
the_black_morass.cpp:35
C_COUNCIL_ENFORCER
@ C_COUNCIL_ENFORCER
Definition
the_black_morass.cpp:50
SPELL_CHANNEL
@ SPELL_CHANNEL
Definition
the_black_morass.cpp:38
SAY_ORCS_ANSWER
@ SAY_ORCS_ANSWER
Definition
the_black_morass.cpp:36
SPELL_PORTAL_CRYSTAL
@ SPELL_PORTAL_CRYSTAL
Definition
the_black_morass.cpp:42
SPELL_PORTAL_RUNE
@ SPELL_PORTAL_RUNE
Definition
the_black_morass.cpp:39
SPELL_CORRUPT_AEONUS
@ SPELL_CORRUPT_AEONUS
Definition
the_black_morass.cpp:48
SPELL_BANISH_PURPLE
@ SPELL_BANISH_PURPLE
Definition
the_black_morass.cpp:44
SAY_INTRO
@ SAY_INTRO
Definition
the_black_morass.cpp:29
SPELL_BANISH_GREEN
@ SPELL_BANISH_GREEN
Definition
the_black_morass.cpp:45
PortalWaves
static Wave PortalWaves[]
Definition
the_black_morass.cpp:243
Saat
Saat
Definition
the_black_morass.cpp:359
SPELL_CHRONO_BEACON
@ SPELL_CHRONO_BEACON
Definition
the_black_morass.cpp:360
ITEM_CHRONO_BEACON
@ ITEM_CHRONO_BEACON
Definition
the_black_morass.cpp:361
the_black_morass.h
QUEST_OPENING_PORTAL
@ QUEST_OPENING_PORTAL
Definition
the_black_morass.h:32
NPC_AEONUS
@ NPC_AEONUS
Definition
the_black_morass.h:45
NPC_INFINITE_EXECUTIONER
@ NPC_INFINITE_EXECUTIONER
Definition
the_black_morass.h:49
NPC_INFINITE_WHELP
@ NPC_INFINITE_WHELP
Definition
the_black_morass.h:47
NPC_INFINITE_VANQUISHER
@ NPC_INFINITE_VANQUISHER
Definition
the_black_morass.h:50
NPC_INFINITE_CRONOMANCER
@ NPC_INFINITE_CRONOMANCER
Definition
the_black_morass.h:48
NPC_INFINITE_ASSASIN
@ NPC_INFINITE_ASSASIN
Definition
the_black_morass.h:46
DATA_MEDIVH
@ DATA_MEDIVH
Definition
the_black_morass.h:18
DATA_PORTAL_COUNT
@ DATA_PORTAL_COUNT
Definition
the_black_morass.h:19
TYPE_MEDIVH
@ TYPE_MEDIVH
Definition
the_black_morass.h:13
TYPE_RIFT
@ TYPE_RIFT
Definition
the_black_morass.h:14
DATA_SHIELD
@ DATA_SHIELD
Definition
the_black_morass.h:20
src
server
scripts
Kalimdor
CavernsOfTime
TheBlackMorass
the_black_morass.cpp
Generated on
for Project SkyFire Core by
1.17.0