Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
boss_marwyn.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
#include "
ScriptMgr.h
"
7
#include "
ScriptedCreature.h
"
8
#include "
halls_of_reflection.h
"
9
10
enum
Texts
11
{
12
SAY_AGGRO
= 0,
13
SAY_SLAY
= 1,
14
SAY_DEATH
= 2,
15
SAY_CORRUPTED_FLESH
= 3
16
};
17
18
enum
Spells
19
{
20
SPELL_OBLITERATE
= 72360,
21
SPELL_WELL_OF_CORRUPTION
= 72362,
22
SPELL_CORRUPTED_FLESH
= 72363,
23
SPELL_SHARED_SUFFERING
= 72368,
24
};
25
26
enum
Events
27
{
28
EVENT_NONE
,
29
EVENT_OBLITERATE
,
30
EVENT_WELL_OF_CORRUPTION
,
31
EVENT_CORRUPTED_FLESH
,
32
EVENT_SHARED_SUFFERING
,
33
};
34
35
class
boss_marwyn
:
public
CreatureScript
36
{
37
public
:
38
boss_marwyn
() :
CreatureScript
(
"boss_marwyn"
) { }
39
40
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
41
{
42
return
new
boss_marwynAI
(creature);
43
}
44
45
struct
boss_marwynAI
:
public
boss_horAI
46
{
47
boss_marwynAI
(
Creature
* creature) :
boss_horAI
(creature) { }
48
49
void
Reset
()
OVERRIDE
50
{
51
boss_horAI::Reset
();
52
53
if
(
instance
)
54
instance
->SetBossState(
DATA_MARWYN_EVENT
,
NOT_STARTED
);
55
}
56
57
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
58
{
59
Talk
(
SAY_AGGRO
);
60
if
(
instance
)
61
instance
->SetBossState(
DATA_MARWYN_EVENT
,
IN_PROGRESS
);
62
63
events
.ScheduleEvent(
EVENT_OBLITERATE
, 30000);
64
events
.ScheduleEvent(
EVENT_WELL_OF_CORRUPTION
, 13000);
65
events
.ScheduleEvent(
EVENT_CORRUPTED_FLESH
, 20000);
66
events
.ScheduleEvent(
EVENT_SHARED_SUFFERING
, 20000);
67
}
68
69
void
JustDied
(
Unit
*
/*killer*/
)
OVERRIDE
70
{
71
Talk
(
SAY_DEATH
);
72
73
if
(
instance
)
74
instance
->SetBossState(
DATA_MARWYN_EVENT
,
DONE
);
75
}
76
77
void
KilledUnit
(
Unit
*
/*victim*/
)
OVERRIDE
78
{
79
Talk
(
SAY_SLAY
);
80
}
81
82
void
UpdateAI
(
uint32
diff)
OVERRIDE
83
{
84
// Return since we have no target
85
if
(!
UpdateVictim
())
86
return
;
87
88
events
.Update(diff);
89
90
if
(
me
->HasUnitState(
UNIT_STATE_CASTING
))
91
return
;
92
93
switch
(
events
.ExecuteEvent())
94
{
95
case
EVENT_OBLITERATE
:
96
DoCast
(
SPELL_OBLITERATE
);
97
events
.ScheduleEvent(
EVENT_OBLITERATE
, 30000);
98
break
;
99
case
EVENT_WELL_OF_CORRUPTION
:
100
DoCast
(
SPELL_WELL_OF_CORRUPTION
);
101
events
.ScheduleEvent(
EVENT_WELL_OF_CORRUPTION
, 13000);
102
break
;
103
case
EVENT_CORRUPTED_FLESH
:
104
Talk
(
SAY_CORRUPTED_FLESH
);
105
DoCast
(
SPELL_CORRUPTED_FLESH
);
106
events
.ScheduleEvent(
EVENT_CORRUPTED_FLESH
, 20000);
107
break
;
108
case
EVENT_SHARED_SUFFERING
:
109
if
(
Unit
* target =
SelectTarget
(
SELECT_TARGET_RANDOM
))
110
DoCast
(target,
SPELL_SHARED_SUFFERING
);
111
events
.ScheduleEvent(
EVENT_SHARED_SUFFERING
, 20000);
112
break
;
113
}
114
115
DoMeleeAttackIfReady
();
116
}
117
};
118
};
119
120
void
AddSC_boss_marwyn
()
121
{
122
new
boss_marwyn
();
123
}
Spells
Spells
Definition
BattlegroundIC.h:645
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
ScriptMgr.h
ScriptedCreature.h
UNIT_STATE_CASTING
@ UNIT_STATE_CASTING
Definition
Unit.h:527
SELECT_TARGET_RANDOM
@ SELECT_TARGET_RANDOM
Definition
UnitAI.h:23
Events
Events
Definition
alterac_valley.cpp:40
Texts
Texts
Definition
boss_alizabal.cpp:13
SAY_SLAY
@ SAY_SLAY
Definition
boss_alizabal.cpp:20
SPELL_OBLITERATE
@ SPELL_OBLITERATE
Definition
boss_black_knight.cpp:29
SAY_DEATH
#define SAY_DEATH
Definition
boss_commander_kolurg.cpp:30
SAY_AGGRO
#define SAY_AGGRO
Definition
boss_commander_kolurg.cpp:28
EVENT_NONE
@ EVENT_NONE
Definition
boss_felmyst.cpp:84
SPELL_SHARED_SUFFERING
@ SPELL_SHARED_SUFFERING
Definition
boss_marwyn.cpp:23
SPELL_WELL_OF_CORRUPTION
@ SPELL_WELL_OF_CORRUPTION
Definition
boss_marwyn.cpp:21
SPELL_CORRUPTED_FLESH
@ SPELL_CORRUPTED_FLESH
Definition
boss_marwyn.cpp:22
SPELL_OBLITERATE
@ SPELL_OBLITERATE
Definition
boss_marwyn.cpp:20
AddSC_boss_marwyn
void AddSC_boss_marwyn()
Definition
boss_marwyn.cpp:120
SAY_DEATH
@ SAY_DEATH
Definition
boss_marwyn.cpp:14
SAY_AGGRO
@ SAY_AGGRO
Definition
boss_marwyn.cpp:12
SAY_SLAY
@ SAY_SLAY
Definition
boss_marwyn.cpp:13
SAY_CORRUPTED_FLESH
@ SAY_CORRUPTED_FLESH
Definition
boss_marwyn.cpp:15
EVENT_WELL_OF_CORRUPTION
@ EVENT_WELL_OF_CORRUPTION
Definition
boss_marwyn.cpp:30
EVENT_CORRUPTED_FLESH
@ EVENT_CORRUPTED_FLESH
Definition
boss_marwyn.cpp:31
EVENT_OBLITERATE
@ EVENT_OBLITERATE
Definition
boss_marwyn.cpp:29
EVENT_SHARED_SUFFERING
@ EVENT_SHARED_SUFFERING
Definition
boss_marwyn.cpp:32
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
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
Unit
Definition
Unit.h:1367
boss_marwyn
Definition
boss_marwyn.cpp:36
boss_marwyn::boss_marwyn
boss_marwyn()
Definition
boss_marwyn.cpp:38
boss_marwyn::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
boss_marwyn.cpp:40
halls_of_reflection.h
DATA_MARWYN_EVENT
@ DATA_MARWYN_EVENT
Definition
halls_of_reflection.h:21
ScriptedAI::me
Creature * me
Definition
ScriptedCreature.h:182
boss_horAI::events
EventMap events
Definition
halls_of_reflection.h:131
boss_horAI::instance
InstanceScript * instance
Definition
halls_of_reflection.h:130
boss_horAI::Reset
void Reset()
Definition
halls_of_reflection.h:134
boss_horAI::boss_horAI
boss_horAI(Creature *creature)
Definition
halls_of_reflection.h:125
boss_marwyn::boss_marwynAI
Definition
boss_marwyn.cpp:46
boss_marwyn::boss_marwynAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
boss_marwyn.cpp:57
boss_marwyn::boss_marwynAI::KilledUnit
void KilledUnit(Unit *) OVERRIDE
Definition
boss_marwyn.cpp:77
boss_marwyn::boss_marwynAI::Reset
void Reset() OVERRIDE
Definition
boss_marwyn.cpp:49
boss_marwyn::boss_marwynAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
boss_marwyn.cpp:82
boss_marwyn::boss_marwynAI::boss_marwynAI
boss_marwynAI(Creature *creature)
Definition
boss_marwyn.cpp:47
boss_marwyn::boss_marwynAI::JustDied
void JustDied(Unit *) OVERRIDE
Definition
boss_marwyn.cpp:69
src
server
scripts
Northrend
FrozenHalls
HallsOfReflection
boss_marwyn.cpp
Generated on
for Project SkyFire Core by
1.17.0