Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
boss_grimlok.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_Grimlok
8
SD%Complete: 100
9
SDComment:
10
SDCategory: Uldaman
11
EndScriptData */
12
13
#include "
ScriptMgr.h
"
14
#include "
ScriptedCreature.h
"
15
16
enum
Grimlok
17
{
18
SAY_AGGRO
= 0,
19
SAY_KILL
= 1,
20
SPELL_LIGHTNING_BOLT
= 12167,
21
SPELL_CHAIN_BOLT
= 8292,
22
SPELL_BLOODLUST
= 6742,
23
SPELL_SHRINK
= 11892
24
};
25
26
class
boss_grimlok
:
public
CreatureScript
27
{
28
public
:
29
boss_grimlok
() :
CreatureScript
(
"boss_grimlok"
) { }
30
31
struct
boss_grimlokAI
:
public
ScriptedAI
32
{
33
boss_grimlokAI
(
Creature
* creature) :
ScriptedAI
(creature) { }
34
35
uint32
uiLightningBoltTimer
;
36
uint32
uiChainBoltTimer
;
37
uint32
uiShrinkTimer
;
38
uint32
uiBloodlustTimer
;
39
40
void
Reset
()
OVERRIDE
41
{
42
uiLightningBoltTimer
= 10000;
43
uiChainBoltTimer
= 8000;
44
uiShrinkTimer
= 28000;
45
uiBloodlustTimer
= 25000;
46
}
47
48
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
49
{
50
Talk
(
SAY_AGGRO
);
51
}
52
53
void
KilledUnit
(
Unit
*
/*victim*/
)
OVERRIDE
54
{
55
Talk
(
SAY_KILL
);
56
}
57
58
void
UpdateAI
(
uint32
uiDiff)
OVERRIDE
59
{
60
//Return since we have no target
61
if
(!
UpdateVictim
())
62
return
;
63
64
//uiLightningBoltTimer
65
if
(
uiLightningBoltTimer
<= uiDiff)
66
{
67
DoCastVictim
(
SPELL_LIGHTNING_BOLT
);
68
uiLightningBoltTimer
= 2000;
69
}
else
uiLightningBoltTimer
-= uiDiff;
70
71
//uiChainBoltTimer
72
if
(
uiChainBoltTimer
<= uiDiff)
73
{
74
DoCastVictim
(
SPELL_CHAIN_BOLT
);
75
uiChainBoltTimer
= 9000;
76
}
77
else
uiChainBoltTimer
-= uiDiff;
78
79
//uiBloodlustTimer
80
if
(
uiBloodlustTimer
<= uiDiff)
81
{
82
DoCast
(
me
,
SPELL_BLOODLUST
);
83
uiBloodlustTimer
= 25000;
84
}
85
else
uiBloodlustTimer
-= uiDiff;
86
87
//uiShrinkTimer
88
if
(
uiShrinkTimer
<= uiDiff)
89
{
90
DoCastVictim
(
SPELL_SHRINK
);
91
uiShrinkTimer
= 28000;
92
}
93
else
uiShrinkTimer
-= uiDiff;
94
95
DoMeleeAttackIfReady
();
96
}
97
};
98
99
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
100
{
101
return
new
boss_grimlokAI
(creature);
102
}
103
};
104
105
void
AddSC_boss_grimlok
()
106
{
107
new
boss_grimlok
();
108
}
uint32
std::uint32_t uint32
Definition
Define.h:77
OVERRIDE
#define OVERRIDE
Definition
Define.h:60
ScriptMgr.h
ScriptedCreature.h
SAY_AGGRO
#define SAY_AGGRO
Definition
boss_commander_kolurg.cpp:28
SAY_KILL
#define SAY_KILL
Definition
boss_commander_kolurg.cpp:29
Grimlok
Grimlok
Definition
boss_grimlok.cpp:17
SPELL_SHRINK
@ SPELL_SHRINK
Definition
boss_grimlok.cpp:23
SPELL_BLOODLUST
@ SPELL_BLOODLUST
Definition
boss_grimlok.cpp:22
SAY_AGGRO
@ SAY_AGGRO
Definition
boss_grimlok.cpp:18
SAY_KILL
@ SAY_KILL
Definition
boss_grimlok.cpp:19
SPELL_LIGHTNING_BOLT
@ SPELL_LIGHTNING_BOLT
Definition
boss_grimlok.cpp:20
SPELL_CHAIN_BOLT
@ SPELL_CHAIN_BOLT
Definition
boss_grimlok.cpp:21
AddSC_boss_grimlok
void AddSC_boss_grimlok()
Definition
boss_grimlok.cpp:105
SPELL_BLOODLUST
@ SPELL_BLOODLUST
Definition
boss_houndmaster_loksey.cpp:24
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::DoCastVictim
void DoCastVictim(uint32 spellId, bool triggered=false)
Definition
UnitAI.cpp:168
Unit
Definition
Unit.h:1367
boss_grimlok
Definition
boss_grimlok.cpp:27
boss_grimlok::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
boss_grimlok.cpp:99
boss_grimlok::boss_grimlok
boss_grimlok()
Definition
boss_grimlok.cpp:29
ScriptedAI::me
Creature * me
Definition
ScriptedCreature.h:182
ScriptedAI::ScriptedAI
ScriptedAI(Creature *creature)
Definition
ScriptedCreature.cpp:85
boss_grimlok::boss_grimlokAI
Definition
boss_grimlok.cpp:32
boss_grimlok::boss_grimlokAI::uiShrinkTimer
uint32 uiShrinkTimer
Definition
boss_grimlok.cpp:37
boss_grimlok::boss_grimlokAI::uiChainBoltTimer
uint32 uiChainBoltTimer
Definition
boss_grimlok.cpp:36
boss_grimlok::boss_grimlokAI::uiLightningBoltTimer
uint32 uiLightningBoltTimer
Definition
boss_grimlok.cpp:35
boss_grimlok::boss_grimlokAI::UpdateAI
void UpdateAI(uint32 uiDiff) OVERRIDE
== Triggered Actions Requested ==================
Definition
boss_grimlok.cpp:58
boss_grimlok::boss_grimlokAI::Reset
void Reset() OVERRIDE
Definition
boss_grimlok.cpp:40
boss_grimlok::boss_grimlokAI::KilledUnit
void KilledUnit(Unit *) OVERRIDE
Definition
boss_grimlok.cpp:53
boss_grimlok::boss_grimlokAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
boss_grimlok.cpp:48
boss_grimlok::boss_grimlokAI::boss_grimlokAI
boss_grimlokAI(Creature *creature)
Definition
boss_grimlok.cpp:33
boss_grimlok::boss_grimlokAI::uiBloodlustTimer
uint32 uiBloodlustTimer
Definition
boss_grimlok.cpp:38
src
server
scripts
EasternKingdoms
Uldaman
boss_grimlok.cpp
Generated on
for Project SkyFire Core by
1.17.0