Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
boss_maleki_the_pallid.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_maleki_the_pallid
8
SD%Complete: 100
9
SDComment:
10
SDCategory: Stratholme
11
EndScriptData */
12
13
#include "
ScriptMgr.h
"
14
#include "
ScriptedCreature.h
"
15
#include "
stratholme.h
"
16
17
enum
Spells
18
{
19
SPELL_FROSTBOLT
= 17503,
20
SPELL_DRAINLIFE
= 20743,
21
SPELL_DRAIN_MANA
= 17243,
22
SPELL_ICETOMB
= 16869
23
};
24
25
class
boss_maleki_the_pallid
:
public
CreatureScript
26
{
27
public
:
28
boss_maleki_the_pallid
() :
CreatureScript
(
"boss_maleki_the_pallid"
) { }
29
30
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
31
{
32
return
new
boss_maleki_the_pallidAI
(creature);
33
}
34
35
struct
boss_maleki_the_pallidAI
:
public
ScriptedAI
36
{
37
boss_maleki_the_pallidAI
(
Creature
* creature) :
ScriptedAI
(creature)
38
{
39
instance
=
me
->GetInstanceScript();
40
}
41
42
InstanceScript
*
instance
;
43
44
uint32
Frostbolt_Timer
;
45
uint32
IceTomb_Timer
;
46
uint32
DrainLife_Timer
;
47
48
void
Reset
()
OVERRIDE
49
{
50
Frostbolt_Timer
= 1000;
51
IceTomb_Timer
= 16000;
52
DrainLife_Timer
= 31000;
53
}
54
55
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
56
{
57
}
58
59
void
JustDied
(
Unit
*
/*killer*/
)
OVERRIDE
60
{
61
if
(
instance
)
62
instance
->SetData(
TYPE_PALLID
,
IN_PROGRESS
);
63
}
64
65
void
UpdateAI
(
uint32
diff)
OVERRIDE
66
{
67
//Return since we have no target
68
if
(!
UpdateVictim
())
69
return
;
70
71
//Frostbolt
72
if
(
Frostbolt_Timer
<= diff)
73
{
74
if
(rand()%100 < 90)
75
DoCastVictim
(
SPELL_FROSTBOLT
);
76
Frostbolt_Timer
= 3500;
77
}
else
Frostbolt_Timer
-= diff;
78
79
//IceTomb
80
if
(
IceTomb_Timer
<= diff)
81
{
82
if
(rand()%100 < 65)
83
DoCastVictim
(
SPELL_ICETOMB
);
84
IceTomb_Timer
= 28000;
85
}
else
IceTomb_Timer
-= diff;
86
87
//DrainLife
88
if
(
DrainLife_Timer
<= diff)
89
{
90
if
(rand()%100 < 55)
91
DoCastVictim
(
SPELL_DRAINLIFE
);
92
DrainLife_Timer
= 31000;
93
}
else
DrainLife_Timer
-= diff;
94
95
DoMeleeAttackIfReady
();
96
}
97
};
98
};
99
100
void
AddSC_boss_maleki_the_pallid
()
101
{
102
new
boss_maleki_the_pallid
();
103
}
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
ScriptMgr.h
ScriptedCreature.h
SPELL_FROSTBOLT
@ SPELL_FROSTBOLT
Definition
boss_balinda.cpp:14
SPELL_FROSTBOLT
@ SPELL_FROSTBOLT
Definition
boss_maleki_the_pallid.cpp:19
SPELL_DRAINLIFE
@ SPELL_DRAINLIFE
Definition
boss_maleki_the_pallid.cpp:20
SPELL_ICETOMB
@ SPELL_ICETOMB
Definition
boss_maleki_the_pallid.cpp:22
AddSC_boss_maleki_the_pallid
void AddSC_boss_maleki_the_pallid()
Definition
boss_maleki_the_pallid.cpp:100
SPELL_DRAIN_MANA
@ SPELL_DRAIN_MANA
Definition
boss_selin_fireheart.cpp:39
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
InstanceScript
Definition
InstanceScript.h:123
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_maleki_the_pallid
Definition
boss_maleki_the_pallid.cpp:26
boss_maleki_the_pallid::boss_maleki_the_pallid
boss_maleki_the_pallid()
Definition
boss_maleki_the_pallid.cpp:28
boss_maleki_the_pallid::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
boss_maleki_the_pallid.cpp:30
stratholme.h
TYPE_PALLID
@ TYPE_PALLID
Definition
stratholme.h:14
ScriptedAI::me
Creature * me
Definition
ScriptedCreature.h:182
ScriptedAI::ScriptedAI
ScriptedAI(Creature *creature)
Definition
ScriptedCreature.cpp:85
boss_maleki_the_pallid::boss_maleki_the_pallidAI
Definition
boss_maleki_the_pallid.cpp:36
boss_maleki_the_pallid::boss_maleki_the_pallidAI::DrainLife_Timer
uint32 DrainLife_Timer
Definition
boss_maleki_the_pallid.cpp:46
boss_maleki_the_pallid::boss_maleki_the_pallidAI::Frostbolt_Timer
uint32 Frostbolt_Timer
Definition
boss_maleki_the_pallid.cpp:44
boss_maleki_the_pallid::boss_maleki_the_pallidAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
boss_maleki_the_pallid.cpp:65
boss_maleki_the_pallid::boss_maleki_the_pallidAI::instance
InstanceScript * instance
Definition
boss_maleki_the_pallid.cpp:42
boss_maleki_the_pallid::boss_maleki_the_pallidAI::Reset
void Reset() OVERRIDE
Definition
boss_maleki_the_pallid.cpp:48
boss_maleki_the_pallid::boss_maleki_the_pallidAI::JustDied
void JustDied(Unit *) OVERRIDE
Definition
boss_maleki_the_pallid.cpp:59
boss_maleki_the_pallid::boss_maleki_the_pallidAI::IceTomb_Timer
uint32 IceTomb_Timer
Definition
boss_maleki_the_pallid.cpp:45
boss_maleki_the_pallid::boss_maleki_the_pallidAI::boss_maleki_the_pallidAI
boss_maleki_the_pallidAI(Creature *creature)
Definition
boss_maleki_the_pallid.cpp:37
boss_maleki_the_pallid::boss_maleki_the_pallidAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
boss_maleki_the_pallid.cpp:55
src
server
scripts
EasternKingdoms
Stratholme
boss_maleki_the_pallid.cpp
Generated on
for Project SkyFire Core by
1.17.0