Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
boss_kelris.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 "
blackfathom_deeps.h
"
9
10
enum
Spells
11
{
12
SPELL_MIND_BLAST
= 15587,
13
SPELL_SLEEP
= 8399,
14
15
SAY_AGGRO
= 0,
16
SAY_SLEEP
= 1,
17
SAY_DEATH
= 2
18
};
19
20
class
boss_kelris
:
public
CreatureScript
21
{
22
public
:
23
boss_kelris
() :
CreatureScript
(
"boss_kelris"
) { }
24
25
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
26
{
27
return
new
boss_kelrisAI
(creature);
28
}
29
30
struct
boss_kelrisAI
:
public
ScriptedAI
31
{
32
boss_kelrisAI
(
Creature
* creature) :
ScriptedAI
(creature)
33
{
34
instance
= creature->
GetInstanceScript
();
35
}
36
37
uint32
mindBlastTimer
;
38
uint32
sleepTimer
;
39
40
InstanceScript
*
instance
;
41
42
void
Reset
()
OVERRIDE
43
{
44
mindBlastTimer
= std::rand() % 5000 + 2000;
45
sleepTimer
= std::rand() % 12000 + 9000;
46
if
(
instance
)
47
instance
->SetData(
TYPE_KELRIS
,
NOT_STARTED
);
48
}
49
50
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
51
{
52
Talk
(
SAY_AGGRO
);
53
if
(
instance
)
54
instance
->SetData(
TYPE_KELRIS
,
IN_PROGRESS
);
55
}
56
57
void
JustDied
(
Unit
*
/*killer*/
)
OVERRIDE
58
{
59
Talk
(
SAY_DEATH
);
60
if
(
instance
)
61
instance
->SetData(
TYPE_KELRIS
,
DONE
);
62
}
63
64
void
UpdateAI
(
uint32
diff)
OVERRIDE
65
{
66
if
(!
UpdateVictim
())
67
return
;
68
69
if
(
mindBlastTimer
< diff)
70
{
71
DoCastVictim
(
SPELL_MIND_BLAST
);
72
mindBlastTimer
= std::rand() % 9000 + 7000;
73
}
else
mindBlastTimer
-= diff;
74
75
if
(
sleepTimer
< diff)
76
{
77
if
(
Unit
* target =
SelectTarget
(
SELECT_TARGET_RANDOM
, 0, 100,
true
))
78
{
79
Talk
(
SAY_SLEEP
);
80
DoCast
(target,
SPELL_SLEEP
);
81
}
82
sleepTimer
= std::rand() % 20000 + 15000;
83
}
else
sleepTimer
-= diff;
84
85
DoMeleeAttackIfReady
();
86
}
87
};
88
};
89
90
void
AddSC_boss_kelris
()
91
{
92
new
boss_kelris
();
93
}
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
SELECT_TARGET_RANDOM
@ SELECT_TARGET_RANDOM
Definition
UnitAI.h:23
blackfathom_deeps.h
TYPE_KELRIS
@ TYPE_KELRIS
Definition
blackfathom_deeps.h:24
SAY_DEATH
#define SAY_DEATH
Definition
boss_commander_kolurg.cpp:30
SAY_AGGRO
#define SAY_AGGRO
Definition
boss_commander_kolurg.cpp:28
SPELL_SLEEP
@ SPELL_SLEEP
Definition
boss_high_inquisitor_fairbanks.cpp:23
SAY_DEATH
@ SAY_DEATH
Definition
boss_kelris.cpp:17
SPELL_SLEEP
@ SPELL_SLEEP
Definition
boss_kelris.cpp:13
SAY_AGGRO
@ SAY_AGGRO
Definition
boss_kelris.cpp:15
SPELL_MIND_BLAST
@ SPELL_MIND_BLAST
Definition
boss_kelris.cpp:12
SAY_SLEEP
@ SAY_SLEEP
Definition
boss_kelris.cpp:16
AddSC_boss_kelris
void AddSC_boss_kelris()
Definition
boss_kelris.cpp:90
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
InstanceScript
Definition
InstanceScript.h:123
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
UnitAI::DoCastVictim
void DoCastVictim(uint32 spellId, bool triggered=false)
Definition
UnitAI.cpp:168
Unit
Definition
Unit.h:1367
WorldObject::GetInstanceScript
InstanceScript * GetInstanceScript()
Definition
Object.cpp:1612
boss_kelris
Definition
boss_kelris.cpp:21
boss_kelris::boss_kelris
boss_kelris()
Definition
boss_kelris.cpp:23
boss_kelris::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
boss_kelris.cpp:25
ScriptedAI::ScriptedAI
ScriptedAI(Creature *creature)
Definition
ScriptedCreature.cpp:85
boss_kelris::boss_kelrisAI
Definition
boss_kelris.cpp:31
boss_kelris::boss_kelrisAI::JustDied
void JustDied(Unit *) OVERRIDE
Definition
boss_kelris.cpp:57
boss_kelris::boss_kelrisAI::boss_kelrisAI
boss_kelrisAI(Creature *creature)
Definition
boss_kelris.cpp:32
boss_kelris::boss_kelrisAI::instance
InstanceScript * instance
Definition
boss_kelris.cpp:40
boss_kelris::boss_kelrisAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
boss_kelris.cpp:50
boss_kelris::boss_kelrisAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
boss_kelris.cpp:64
boss_kelris::boss_kelrisAI::Reset
void Reset() OVERRIDE
Definition
boss_kelris.cpp:42
boss_kelris::boss_kelrisAI::sleepTimer
uint32 sleepTimer
Definition
boss_kelris.cpp:38
boss_kelris::boss_kelrisAI::mindBlastTimer
uint32 mindBlastTimer
Definition
boss_kelris.cpp:37
src
server
scripts
Kalimdor
BlackfathomDeeps
boss_kelris.cpp
Generated on
for Project SkyFire Core by
1.17.0