Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
boss_aku_mai.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_POISON_CLOUD
= 3815,
13
SPELL_FRENZIED_RAGE
= 3490
14
};
15
16
enum
Events
17
{
18
EVENT_POISON_CLOUD
= 1,
19
EVENT_FRENZIED_RAGE
= 2
20
};
21
22
class
boss_aku_mai
:
public
CreatureScript
23
{
24
public
:
25
boss_aku_mai
() :
CreatureScript
(
"boss_aku_mai"
) { }
26
27
struct
boss_aku_maiAI
:
public
BossAI
28
{
29
boss_aku_maiAI
(
Creature
* creature) :
BossAI
(creature,
TYPE_AKU_MAI
) { }
30
31
void
Reset
()
OVERRIDE
32
{
33
IsEnraged
=
false
;
34
_Reset
();
35
}
36
37
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
38
{
39
events
.ScheduleEvent(
EVENT_POISON_CLOUD
, std::rand() % 9000 + 5000);
40
_EnterCombat
();
41
}
42
43
void
JustDied
(
Unit
*
/*killer*/
)
OVERRIDE
44
{
45
_JustDied
();
46
}
47
48
void
UpdateAI
(
uint32
diff)
OVERRIDE
49
{
50
if
(!
UpdateVictim
())
51
return
;
52
53
events
.Update(diff);
54
55
if
(!
IsEnraged
&&
HealthBelowPct
(30))
56
events
.ScheduleEvent(
EVENT_FRENZIED_RAGE
, 100);
57
58
while
(
uint32
eventId =
events
.ExecuteEvent())
59
{
60
switch
(eventId)
61
{
62
case
EVENT_POISON_CLOUD
:
63
DoCastVictim
(
SPELL_POISON_CLOUD
);
64
events
.ScheduleEvent(
EVENT_POISON_CLOUD
, std::rand() % 50000 + 25000);
65
break
;
66
case
EVENT_FRENZIED_RAGE
:
67
DoCast
(
me
,
SPELL_FRENZIED_RAGE
);
68
IsEnraged
=
true
;
69
break
;
70
default
:
71
break
;
72
}
73
}
74
DoMeleeAttackIfReady
();
75
}
76
77
private
:
78
bool
IsEnraged
;
79
};
80
81
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
82
{
83
return
new
boss_aku_maiAI
(creature);
84
}
85
};
86
87
void
AddSC_boss_aku_mai
()
88
{
89
new
boss_aku_mai
();
90
}
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
Events
Events
Definition
alterac_valley.cpp:40
blackfathom_deeps.h
TYPE_AKU_MAI
@ TYPE_AKU_MAI
Definition
blackfathom_deeps.h:26
AddSC_boss_aku_mai
void AddSC_boss_aku_mai()
Definition
boss_aku_mai.cpp:87
SPELL_FRENZIED_RAGE
@ SPELL_FRENZIED_RAGE
Definition
boss_aku_mai.cpp:13
SPELL_POISON_CLOUD
@ SPELL_POISON_CLOUD
Definition
boss_aku_mai.cpp:12
EVENT_POISON_CLOUD
@ EVENT_POISON_CLOUD
Definition
boss_aku_mai.cpp:18
EVENT_FRENZIED_RAGE
@ EVENT_FRENZIED_RAGE
Definition
boss_aku_mai.cpp:19
BossAI::events
EventMap events
Definition
ScriptedCreature.h:439
BossAI::BossAI
BossAI(Creature *creature, uint32 bossId)
Definition
ScriptedCreature.cpp:456
BossAI::_JustDied
void _JustDied()
Definition
ScriptedCreature.cpp:474
BossAI::_Reset
void _Reset()
Definition
ScriptedCreature.cpp:462
BossAI::_EnterCombat
void _EnterCombat()
Definition
ScriptedCreature.cpp:485
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::DoCastVictim
void DoCastVictim(uint32 spellId, bool triggered=false)
Definition
UnitAI.cpp:168
Unit
Definition
Unit.h:1367
boss_aku_mai
Definition
boss_aku_mai.cpp:23
boss_aku_mai::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
boss_aku_mai.cpp:81
boss_aku_mai::boss_aku_mai
boss_aku_mai()
Definition
boss_aku_mai.cpp:25
ScriptedAI::me
Creature * me
Definition
ScriptedCreature.h:182
ScriptedAI::HealthBelowPct
bool HealthBelowPct(uint32 pct) const
Definition
ScriptedCreature.h:247
boss_aku_mai::boss_aku_maiAI
Definition
boss_aku_mai.cpp:28
boss_aku_mai::boss_aku_maiAI::JustDied
void JustDied(Unit *) OVERRIDE
Definition
boss_aku_mai.cpp:43
boss_aku_mai::boss_aku_maiAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
boss_aku_mai.cpp:37
boss_aku_mai::boss_aku_maiAI::Reset
void Reset() OVERRIDE
Definition
boss_aku_mai.cpp:31
boss_aku_mai::boss_aku_maiAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
boss_aku_mai.cpp:48
boss_aku_mai::boss_aku_maiAI::boss_aku_maiAI
boss_aku_maiAI(Creature *creature)
Definition
boss_aku_mai.cpp:29
boss_aku_mai::boss_aku_maiAI::IsEnraged
bool IsEnraged
Definition
boss_aku_mai.cpp:78
src
server
scripts
Kalimdor
BlackfathomDeeps
boss_aku_mai.cpp
Generated on
for Project SkyFire Core by
1.17.0