Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
boss_celebras_the_cursed.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_Celebras_the_Cursed
8
SD%Complete: 100
9
SDComment:
10
SDCategory: Maraudon
11
EndScriptData */
12
13
#include "
ScriptMgr.h
"
14
#include "
ScriptedCreature.h
"
15
16
enum
Spells
17
{
18
SPELL_WRATH
= 21807,
19
SPELL_ENTANGLINGROOTS
= 12747,
20
SPELL_CORRUPT_FORCES
= 21968
21
};
22
23
class
celebras_the_cursed
:
public
CreatureScript
24
{
25
public
:
26
celebras_the_cursed
() :
CreatureScript
(
"boss_celebras_the_cursed"
) { }
27
28
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
29
{
30
return
new
celebras_the_cursedAI
(creature);
31
}
32
33
struct
celebras_the_cursedAI
:
public
ScriptedAI
34
{
35
celebras_the_cursedAI
(
Creature
* creature) :
ScriptedAI
(creature) { }
36
37
uint32
WrathTimer
;
38
uint32
EntanglingRootsTimer
;
39
uint32
CorruptForcesTimer
;
40
41
void
Reset
()
OVERRIDE
42
{
43
WrathTimer
= 8000;
44
EntanglingRootsTimer
= 2000;
45
CorruptForcesTimer
= 30000;
46
}
47
48
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
{ }
49
50
void
JustDied
(
Unit
*
/*killer*/
)
OVERRIDE
51
{
52
me
->SummonCreature(13716,
me
->GetPositionX(),
me
->GetPositionY(),
me
->GetPositionZ(), 0,
TempSummonType::TEMPSUMMON_TIMED_DESPAWN
, 600000);
53
}
54
55
void
UpdateAI
(
uint32
diff)
OVERRIDE
56
{
57
if
(!
UpdateVictim
())
58
return
;
59
60
//Wrath
61
if
(
WrathTimer
<= diff)
62
{
63
if
(
Unit
* target =
SelectTarget
(
SELECT_TARGET_RANDOM
, 0))
64
DoCast
(target,
SPELL_WRATH
);
65
WrathTimer
= 8000;
66
}
67
else
WrathTimer
-= diff;
68
69
//EntanglingRoots
70
if
(
EntanglingRootsTimer
<= diff)
71
{
72
DoCastVictim
(
SPELL_ENTANGLINGROOTS
);
73
EntanglingRootsTimer
= 20000;
74
}
75
else
EntanglingRootsTimer
-= diff;
76
77
//CorruptForces
78
if
(
CorruptForcesTimer
<= diff)
79
{
80
me
->InterruptNonMeleeSpells(
false
);
81
DoCast
(
me
,
SPELL_CORRUPT_FORCES
);
82
CorruptForcesTimer
= 20000;
83
}
84
else
CorruptForcesTimer
-= diff;
85
86
DoMeleeAttackIfReady
();
87
}
88
};
89
};
90
91
void
AddSC_boss_celebras_the_cursed
()
92
{
93
new
celebras_the_cursed
();
94
}
Spells
Spells
Definition
BattlegroundIC.h:645
uint32
std::uint32_t uint32
Definition
Define.h:77
OVERRIDE
#define OVERRIDE
Definition
Define.h:60
TempSummonType::TEMPSUMMON_TIMED_DESPAWN
@ TEMPSUMMON_TIMED_DESPAWN
Definition
Object.h:70
ScriptMgr.h
ScriptedCreature.h
SELECT_TARGET_RANDOM
@ SELECT_TARGET_RANDOM
Definition
UnitAI.h:23
SPELL_CORRUPT_FORCES
@ SPELL_CORRUPT_FORCES
Definition
boss_celebras_the_cursed.cpp:20
SPELL_ENTANGLINGROOTS
@ SPELL_ENTANGLINGROOTS
Definition
boss_celebras_the_cursed.cpp:19
SPELL_WRATH
@ SPELL_WRATH
Definition
boss_celebras_the_cursed.cpp:18
AddSC_boss_celebras_the_cursed
void AddSC_boss_celebras_the_cursed()
Definition
boss_celebras_the_cursed.cpp:91
SPELL_WRATH
@ SPELL_WRATH
Definition
chapter5.cpp:195
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::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
celebras_the_cursed
Definition
boss_celebras_the_cursed.cpp:24
celebras_the_cursed::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
boss_celebras_the_cursed.cpp:28
celebras_the_cursed::celebras_the_cursed
celebras_the_cursed()
Definition
boss_celebras_the_cursed.cpp:26
ScriptedAI::me
Creature * me
Definition
ScriptedCreature.h:182
ScriptedAI::ScriptedAI
ScriptedAI(Creature *creature)
Definition
ScriptedCreature.cpp:85
celebras_the_cursed::celebras_the_cursedAI
Definition
boss_celebras_the_cursed.cpp:34
celebras_the_cursed::celebras_the_cursedAI::celebras_the_cursedAI
celebras_the_cursedAI(Creature *creature)
Definition
boss_celebras_the_cursed.cpp:35
celebras_the_cursed::celebras_the_cursedAI::CorruptForcesTimer
uint32 CorruptForcesTimer
Definition
boss_celebras_the_cursed.cpp:39
celebras_the_cursed::celebras_the_cursedAI::WrathTimer
uint32 WrathTimer
Definition
boss_celebras_the_cursed.cpp:37
celebras_the_cursed::celebras_the_cursedAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
boss_celebras_the_cursed.cpp:48
celebras_the_cursed::celebras_the_cursedAI::EntanglingRootsTimer
uint32 EntanglingRootsTimer
Definition
boss_celebras_the_cursed.cpp:38
celebras_the_cursed::celebras_the_cursedAI::JustDied
void JustDied(Unit *) OVERRIDE
Definition
boss_celebras_the_cursed.cpp:50
celebras_the_cursed::celebras_the_cursedAI::Reset
void Reset() OVERRIDE
Definition
boss_celebras_the_cursed.cpp:41
celebras_the_cursed::celebras_the_cursedAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
boss_celebras_the_cursed.cpp:55
src
server
scripts
Kalimdor
Maraudon
boss_celebras_the_cursed.cpp
Generated on
for Project SkyFire Core by
1.17.0