Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
boss_bloodmage_thalnos.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_Bloodmage_Thalnos
8
SD%Complete: 100
9
SDComment:
10
SDCategory: Scarlet Monastery
11
EndScriptData */
12
13
#include "
ScriptMgr.h
"
14
#include "
ScriptedCreature.h
"
15
16
enum
Yells
17
{
18
SAY_AGGRO
= 0,
19
SAY_HEALTH
= 1,
20
SAY_KILL
= 2
21
};
22
23
enum
Spells
24
{
25
SPELL_FLAMESHOCK
= 8053,
26
SPELL_SHADOWBOLT
= 1106,
27
SPELL_FLAMESPIKE
= 8814,
28
SPELL_FIRENOVA
= 16079,
29
};
30
31
class
boss_bloodmage_thalnos
:
public
CreatureScript
32
{
33
public
:
34
boss_bloodmage_thalnos
() :
CreatureScript
(
"boss_bloodmage_thalnos"
) { }
35
36
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
37
{
38
return
new
boss_bloodmage_thalnosAI
(creature);
39
}
40
41
struct
boss_bloodmage_thalnosAI
:
public
ScriptedAI
42
{
43
boss_bloodmage_thalnosAI
(
Creature
* creature) :
ScriptedAI
(creature) { }
44
45
bool
HpYell
;
46
uint32
FlameShock_Timer
;
47
uint32
ShadowBolt_Timer
;
48
uint32
FlameSpike_Timer
;
49
uint32
FireNova_Timer
;
50
51
void
Reset
()
OVERRIDE
52
{
53
HpYell
=
false
;
54
FlameShock_Timer
= 10000;
55
ShadowBolt_Timer
= 2000;
56
FlameSpike_Timer
= 8000;
57
FireNova_Timer
= 40000;
58
}
59
60
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
61
{
62
Talk
(
SAY_AGGRO
);
63
}
64
65
void
KilledUnit
(
Unit
*
/*Victim*/
)
OVERRIDE
66
{
67
Talk
(
SAY_KILL
);
68
}
69
70
void
UpdateAI
(
uint32
diff)
OVERRIDE
71
{
72
if
(!
UpdateVictim
())
73
return
;
74
75
//If we are <35% hp
76
if
(!
HpYell
&& !
HealthAbovePct
(35))
77
{
78
Talk
(
SAY_HEALTH
);
79
HpYell
=
true
;
80
}
81
82
//FlameShock_Timer
83
if
(
FlameShock_Timer
<= diff)
84
{
85
DoCastVictim
(
SPELL_FLAMESHOCK
);
86
FlameShock_Timer
= urand(10000, 15000);
87
}
88
else
FlameShock_Timer
-= diff;
89
90
//FlameSpike_Timer
91
if
(
FlameSpike_Timer
<= diff)
92
{
93
DoCastVictim
(
SPELL_FLAMESPIKE
);
94
FlameSpike_Timer
= 30000;
95
}
96
else
FlameSpike_Timer
-= diff;
97
98
//FireNova_Timer
99
if
(
FireNova_Timer
<= diff)
100
{
101
DoCastVictim
(
SPELL_FIRENOVA
);
102
FireNova_Timer
= 40000;
103
}
104
else
FireNova_Timer
-= diff;
105
106
//ShadowBolt_Timer
107
if
(
ShadowBolt_Timer
<= diff)
108
{
109
DoCastVictim
(
SPELL_SHADOWBOLT
);
110
ShadowBolt_Timer
= 2000;
111
}
112
else
ShadowBolt_Timer
-= diff;
113
114
DoMeleeAttackIfReady
();
115
}
116
};
117
};
118
119
void
AddSC_boss_bloodmage_thalnos
()
120
{
121
new
boss_bloodmage_thalnos
();
122
}
Spells
Spells
Definition
BattlegroundIC.h:645
uint32
std::uint32_t uint32
Definition
Define.h:77
OVERRIDE
#define OVERRIDE
Definition
Define.h:60
ScriptMgr.h
ScriptedCreature.h
SPELL_SHADOWBOLT
@ SPELL_SHADOWBOLT
Definition
boss_anubshiah.cpp:11
SAY_AGGRO
@ SAY_AGGRO
Definition
boss_bloodmage_thalnos.cpp:18
SAY_KILL
@ SAY_KILL
Definition
boss_bloodmage_thalnos.cpp:20
SAY_HEALTH
@ SAY_HEALTH
Definition
boss_bloodmage_thalnos.cpp:19
AddSC_boss_bloodmage_thalnos
void AddSC_boss_bloodmage_thalnos()
Definition
boss_bloodmage_thalnos.cpp:119
SPELL_FLAMESPIKE
@ SPELL_FLAMESPIKE
Definition
boss_bloodmage_thalnos.cpp:27
SPELL_SHADOWBOLT
@ SPELL_SHADOWBOLT
Definition
boss_bloodmage_thalnos.cpp:26
SPELL_FIRENOVA
@ SPELL_FIRENOVA
Definition
boss_bloodmage_thalnos.cpp:28
SPELL_FLAMESHOCK
@ SPELL_FLAMESHOCK
Definition
boss_bloodmage_thalnos.cpp:25
SAY_AGGRO
#define SAY_AGGRO
Definition
boss_commander_kolurg.cpp:28
SAY_KILL
#define SAY_KILL
Definition
boss_commander_kolurg.cpp:29
SPELL_FIRENOVA
@ SPELL_FIRENOVA
Definition
boss_drakkisath.cpp:12
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::DoCastVictim
void DoCastVictim(uint32 spellId, bool triggered=false)
Definition
UnitAI.cpp:168
Unit
Definition
Unit.h:1367
boss_bloodmage_thalnos
Definition
boss_bloodmage_thalnos.cpp:32
boss_bloodmage_thalnos::boss_bloodmage_thalnos
boss_bloodmage_thalnos()
Definition
boss_bloodmage_thalnos.cpp:34
boss_bloodmage_thalnos::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
boss_bloodmage_thalnos.cpp:36
ScriptedAI::HealthAbovePct
bool HealthAbovePct(uint32 pct) const
Definition
ScriptedCreature.h:251
ScriptedAI::ScriptedAI
ScriptedAI(Creature *creature)
Definition
ScriptedCreature.cpp:85
Yells
Definition
boss_illidan.cpp:256
boss_bloodmage_thalnos::boss_bloodmage_thalnosAI
Definition
boss_bloodmage_thalnos.cpp:42
boss_bloodmage_thalnos::boss_bloodmage_thalnosAI::FlameShock_Timer
uint32 FlameShock_Timer
Definition
boss_bloodmage_thalnos.cpp:46
boss_bloodmage_thalnos::boss_bloodmage_thalnosAI::boss_bloodmage_thalnosAI
boss_bloodmage_thalnosAI(Creature *creature)
Definition
boss_bloodmage_thalnos.cpp:43
boss_bloodmage_thalnos::boss_bloodmage_thalnosAI::FlameSpike_Timer
uint32 FlameSpike_Timer
Definition
boss_bloodmage_thalnos.cpp:48
boss_bloodmage_thalnos::boss_bloodmage_thalnosAI::ShadowBolt_Timer
uint32 ShadowBolt_Timer
Definition
boss_bloodmage_thalnos.cpp:47
boss_bloodmage_thalnos::boss_bloodmage_thalnosAI::FireNova_Timer
uint32 FireNova_Timer
Definition
boss_bloodmage_thalnos.cpp:49
boss_bloodmage_thalnos::boss_bloodmage_thalnosAI::Reset
void Reset() OVERRIDE
Definition
boss_bloodmage_thalnos.cpp:51
boss_bloodmage_thalnos::boss_bloodmage_thalnosAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
boss_bloodmage_thalnos.cpp:60
boss_bloodmage_thalnos::boss_bloodmage_thalnosAI::HpYell
bool HpYell
Definition
boss_bloodmage_thalnos.cpp:45
boss_bloodmage_thalnos::boss_bloodmage_thalnosAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
boss_bloodmage_thalnos.cpp:70
boss_bloodmage_thalnos::boss_bloodmage_thalnosAI::KilledUnit
void KilledUnit(Unit *) OVERRIDE
Definition
boss_bloodmage_thalnos.cpp:65
src
server
scripts
EasternKingdoms
ScarletMonastery
boss_bloodmage_thalnos.cpp
Generated on
for Project SkyFire Core by
1.17.0