Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
boss_azshir_the_sleepless.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_Azshir_the_Sleepless
8
SD%Complete: 80
9
SDComment:
10
SDCategory: Scarlet Monastery
11
EndScriptData */
12
13
#include "
ScriptMgr.h
"
14
#include "
ScriptedCreature.h
"
15
16
enum
Spells
17
{
18
SPELL_CALLOFTHEGRAVE
= 17831,
19
SPELL_TERRIFY
= 7399,
20
SPELL_SOULSIPHON
= 7290
21
};
22
23
class
boss_azshir_the_sleepless
:
public
CreatureScript
24
{
25
public
:
26
boss_azshir_the_sleepless
() :
CreatureScript
(
"boss_azshir_the_sleepless"
) { }
27
28
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
29
{
30
return
new
boss_azshir_the_sleeplessAI
(creature);
31
}
32
33
struct
boss_azshir_the_sleeplessAI
:
public
ScriptedAI
34
{
35
boss_azshir_the_sleeplessAI
(
Creature
* creature) :
ScriptedAI
(creature) { }
36
37
uint32
SoulSiphon_Timer
;
38
uint32
CallOftheGrave_Timer
;
39
uint32
Terrify_Timer
;
40
41
void
Reset
()
OVERRIDE
42
{
43
SoulSiphon_Timer
= 1;
44
CallOftheGrave_Timer
= 30000;
45
Terrify_Timer
= 20000;
46
}
47
48
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
{ }
49
50
void
UpdateAI
(
uint32
diff)
OVERRIDE
51
{
52
if
(!
UpdateVictim
())
53
return
;
54
55
//If we are <50% hp cast Soul Siphon rank 1
56
if
(!
HealthAbovePct
(50) && !
me
->IsNonMeleeSpellCasted(
false
))
57
{
58
//SoulSiphon_Timer
59
if
(
SoulSiphon_Timer
<= diff)
60
{
61
DoCastVictim
(
SPELL_SOULSIPHON
);
62
return
;
63
64
//SoulSiphon_Timer = 20000;
65
}
66
else
SoulSiphon_Timer
-= diff;
67
}
68
69
//CallOfTheGrave_Timer
70
if
(
CallOftheGrave_Timer
<= diff)
71
{
72
DoCastVictim
(
SPELL_CALLOFTHEGRAVE
);
73
CallOftheGrave_Timer
= 30000;
74
}
75
else
CallOftheGrave_Timer
-= diff;
76
77
//Terrify_Timer
78
if
(
Terrify_Timer
<= diff)
79
{
80
DoCastVictim
(
SPELL_TERRIFY
);
81
Terrify_Timer
= 20000;
82
}
83
else
Terrify_Timer
-= diff;
84
85
DoMeleeAttackIfReady
();
86
}
87
};
88
};
89
90
void
AddSC_boss_azshir_the_sleepless
()
91
{
92
new
boss_azshir_the_sleepless
();
93
}
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_SOULSIPHON
@ SPELL_SOULSIPHON
Definition
boss_azshir_the_sleepless.cpp:20
SPELL_CALLOFTHEGRAVE
@ SPELL_CALLOFTHEGRAVE
Definition
boss_azshir_the_sleepless.cpp:18
SPELL_TERRIFY
@ SPELL_TERRIFY
Definition
boss_azshir_the_sleepless.cpp:19
AddSC_boss_azshir_the_sleepless
void AddSC_boss_azshir_the_sleepless()
Definition
boss_azshir_the_sleepless.cpp:90
CreatureAI
Definition
CreatureAI.h:54
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_azshir_the_sleepless
Definition
boss_azshir_the_sleepless.cpp:24
boss_azshir_the_sleepless::boss_azshir_the_sleepless
boss_azshir_the_sleepless()
Definition
boss_azshir_the_sleepless.cpp:26
boss_azshir_the_sleepless::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
boss_azshir_the_sleepless.cpp:28
ScriptedAI::me
Creature * me
Definition
ScriptedCreature.h:182
ScriptedAI::HealthAbovePct
bool HealthAbovePct(uint32 pct) const
Definition
ScriptedCreature.h:251
ScriptedAI::ScriptedAI
ScriptedAI(Creature *creature)
Definition
ScriptedCreature.cpp:85
boss_azshir_the_sleepless::boss_azshir_the_sleeplessAI
Definition
boss_azshir_the_sleepless.cpp:34
boss_azshir_the_sleepless::boss_azshir_the_sleeplessAI::SoulSiphon_Timer
uint32 SoulSiphon_Timer
Definition
boss_azshir_the_sleepless.cpp:37
boss_azshir_the_sleepless::boss_azshir_the_sleeplessAI::boss_azshir_the_sleeplessAI
boss_azshir_the_sleeplessAI(Creature *creature)
Definition
boss_azshir_the_sleepless.cpp:35
boss_azshir_the_sleepless::boss_azshir_the_sleeplessAI::Terrify_Timer
uint32 Terrify_Timer
Definition
boss_azshir_the_sleepless.cpp:39
boss_azshir_the_sleepless::boss_azshir_the_sleeplessAI::CallOftheGrave_Timer
uint32 CallOftheGrave_Timer
Definition
boss_azshir_the_sleepless.cpp:38
boss_azshir_the_sleepless::boss_azshir_the_sleeplessAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
boss_azshir_the_sleepless.cpp:50
boss_azshir_the_sleepless::boss_azshir_the_sleeplessAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
boss_azshir_the_sleepless.cpp:48
boss_azshir_the_sleepless::boss_azshir_the_sleeplessAI::Reset
void Reset() OVERRIDE
Definition
boss_azshir_the_sleepless.cpp:41
src
server
scripts
EasternKingdoms
ScarletMonastery
boss_azshir_the_sleepless.cpp
Generated on
for Project SkyFire Core by
1.17.0