Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
boss_ebonroc.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 "
blackwing_lair.h
"
9
10
enum
Spells
11
{
12
SPELL_SHADOWFLAME
= 22539,
13
SPELL_WINGBUFFET
= 23339,
14
SPELL_SHADOWOFEBONROC
= 23340
15
};
16
17
enum
Events
18
{
19
EVENT_SHADOWFLAME
= 1,
20
EVENT_WINGBUFFET
= 2,
21
EVENT_SHADOWOFEBONROC
= 3
22
};
23
24
class
boss_ebonroc
:
public
CreatureScript
25
{
26
public
:
27
boss_ebonroc
() :
CreatureScript
(
"boss_ebonroc"
) { }
28
29
struct
boss_ebonrocAI
:
public
BossAI
30
{
31
boss_ebonrocAI
(
Creature
* creature) :
BossAI
(creature,
BOSS_EBONROC
) { }
32
33
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
34
{
35
if
(
instance
&&
instance
->GetBossState(
BOSS_BROODLORD
) !=
DONE
)
36
{
37
EnterEvadeMode
();
38
return
;
39
}
40
_EnterCombat
();
41
42
events
.ScheduleEvent(
EVENT_SHADOWFLAME
, std::rand() % 20000 + 10000);
43
events
.ScheduleEvent(
EVENT_WINGBUFFET
, 30000);
44
events
.ScheduleEvent(
EVENT_SHADOWOFEBONROC
, std::rand() % 10000 + 8000);
45
}
46
47
void
UpdateAI
(
uint32
diff)
OVERRIDE
48
{
49
if
(!
UpdateVictim
())
50
return
;
51
52
events
.Update(diff);
53
54
if
(
me
->HasUnitState(
UNIT_STATE_CASTING
))
55
return
;
56
57
while
(
uint32
eventId =
events
.ExecuteEvent())
58
{
59
switch
(eventId)
60
{
61
case
EVENT_SHADOWFLAME
:
62
DoCastVictim
(
SPELL_SHADOWFLAME
);
63
events
.ScheduleEvent(
EVENT_SHADOWFLAME
, std::rand() % 20000 + 10000);
64
break
;
65
case
EVENT_WINGBUFFET
:
66
DoCastVictim
(
SPELL_WINGBUFFET
);
67
events
.ScheduleEvent(
EVENT_WINGBUFFET
, 30000);
68
break
;
69
case
EVENT_SHADOWOFEBONROC
:
70
DoCastVictim
(
SPELL_SHADOWOFEBONROC
);
71
events
.ScheduleEvent(
EVENT_SHADOWOFEBONROC
, std::rand() % 10000 + 8000);
72
break
;
73
}
74
}
75
76
DoMeleeAttackIfReady
();
77
}
78
};
79
80
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
81
{
82
return
new
boss_ebonrocAI
(creature);
83
}
84
};
85
86
void
AddSC_boss_ebonroc
()
87
{
88
new
boss_ebonroc
();
89
}
Spells
Spells
Definition
BattlegroundIC.h:645
uint32
std::uint32_t uint32
Definition
Define.h:77
OVERRIDE
#define OVERRIDE
Definition
Define.h:60
DONE
@ DONE
Definition
InstanceScript.h:49
ScriptMgr.h
ScriptedCreature.h
UNIT_STATE_CASTING
@ UNIT_STATE_CASTING
Definition
Unit.h:527
Events
Events
Definition
alterac_valley.cpp:40
blackwing_lair.h
BOSS_BROODLORD
@ BOSS_BROODLORD
Definition
blackwing_lair.h:17
BOSS_EBONROC
@ BOSS_EBONROC
Definition
blackwing_lair.h:19
AddSC_boss_ebonroc
void AddSC_boss_ebonroc()
Definition
boss_ebonroc.cpp:86
SPELL_SHADOWFLAME
@ SPELL_SHADOWFLAME
Definition
boss_ebonroc.cpp:12
SPELL_SHADOWOFEBONROC
@ SPELL_SHADOWOFEBONROC
Definition
boss_ebonroc.cpp:14
SPELL_WINGBUFFET
@ SPELL_WINGBUFFET
Definition
boss_ebonroc.cpp:13
EVENT_WINGBUFFET
@ EVENT_WINGBUFFET
Definition
boss_ebonroc.cpp:20
EVENT_SHADOWFLAME
@ EVENT_SHADOWFLAME
Definition
boss_ebonroc.cpp:19
EVENT_SHADOWOFEBONROC
@ EVENT_SHADOWOFEBONROC
Definition
boss_ebonroc.cpp:21
BossAI::instance
InstanceScript *const instance
Definition
ScriptedCreature.h:383
BossAI::events
EventMap events
Definition
ScriptedCreature.h:439
BossAI::BossAI
BossAI(Creature *creature, uint32 bossId)
Definition
ScriptedCreature.cpp:456
BossAI::_EnterCombat
void _EnterCombat()
Definition
ScriptedCreature.cpp:485
CreatureAI
Definition
CreatureAI.h:54
CreatureAI::UpdateVictim
bool UpdateVictim()
Definition
CreatureAI.cpp:192
CreatureAI::EnterEvadeMode
virtual void EnterEvadeMode()
Definition
CreatureAI.cpp:130
Creature
Definition
Creature.h:427
CreatureScript::CreatureScript
CreatureScript(const char *name)
Definition
ScriptMgr.cpp:1436
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_ebonroc
Definition
boss_ebonroc.cpp:25
boss_ebonroc::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
boss_ebonroc.cpp:80
boss_ebonroc::boss_ebonroc
boss_ebonroc()
Definition
boss_ebonroc.cpp:27
ScriptedAI::me
Creature * me
Definition
ScriptedCreature.h:182
boss_ebonroc::boss_ebonrocAI
Definition
boss_ebonroc.cpp:30
boss_ebonroc::boss_ebonrocAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
boss_ebonroc.cpp:47
boss_ebonroc::boss_ebonrocAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
boss_ebonroc.cpp:33
boss_ebonroc::boss_ebonrocAI::boss_ebonrocAI
boss_ebonrocAI(Creature *creature)
Definition
boss_ebonroc.cpp:31
src
server
scripts
EasternKingdoms
BlackrockMountain
BlackwingLair
boss_ebonroc.cpp
Generated on
for Project SkyFire Core by
1.17.0