Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
boss_firemaw.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_FLAMEBUFFET
= 23341
15
};
16
17
enum
Events
18
{
19
EVENT_SHADOWFLAME
= 1,
20
EVENT_WINGBUFFET
= 2,
21
EVENT_FLAMEBUFFET
= 3
22
};
23
24
class
boss_firemaw
:
public
CreatureScript
25
{
26
public
:
27
boss_firemaw
() :
CreatureScript
(
"boss_firemaw"
) { }
28
29
struct
boss_firemawAI
:
public
BossAI
30
{
31
boss_firemawAI
(
Creature
* creature) :
BossAI
(creature,
BOSS_FIREMAW
) { }
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_FLAMEBUFFET
, 5000);
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
if
(
DoGetThreat
(
me
->GetVictim()))
68
DoModifyThreatPercent
(
me
->GetVictim(), -75);
69
events
.ScheduleEvent(
EVENT_WINGBUFFET
, 30000);
70
break
;
71
case
EVENT_FLAMEBUFFET
:
72
DoCastVictim
(
SPELL_FLAMEBUFFET
);
73
events
.ScheduleEvent(
EVENT_FLAMEBUFFET
, 5000);
74
break
;
75
}
76
}
77
78
DoMeleeAttackIfReady
();
79
}
80
};
81
82
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
83
{
84
return
new
boss_firemawAI
(creature);
85
}
86
};
87
88
void
AddSC_boss_firemaw
()
89
{
90
new
boss_firemaw
();
91
}
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_FIREMAW
@ BOSS_FIREMAW
Definition
blackwing_lair.h:18
BOSS_BROODLORD
@ BOSS_BROODLORD
Definition
blackwing_lair.h:17
SPELL_SHADOWFLAME
@ SPELL_SHADOWFLAME
Definition
boss_ebonroc.cpp:12
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
SPELL_FLAMEBUFFET
@ SPELL_FLAMEBUFFET
Definition
boss_firemaw.cpp:14
SPELL_SHADOWFLAME
@ SPELL_SHADOWFLAME
Definition
boss_firemaw.cpp:12
SPELL_WINGBUFFET
@ SPELL_WINGBUFFET
Definition
boss_firemaw.cpp:13
AddSC_boss_firemaw
void AddSC_boss_firemaw()
Definition
boss_firemaw.cpp:88
EVENT_WINGBUFFET
@ EVENT_WINGBUFFET
Definition
boss_firemaw.cpp:20
EVENT_SHADOWFLAME
@ EVENT_SHADOWFLAME
Definition
boss_firemaw.cpp:19
EVENT_FLAMEBUFFET
@ EVENT_FLAMEBUFFET
Definition
boss_firemaw.cpp:21
SPELL_FLAMEBUFFET
@ SPELL_FLAMEBUFFET
Definition
boss_pyroguard_emberseer.cpp:31
EVENT_FLAMEBUFFET
@ EVENT_FLAMEBUFFET
Definition
boss_pyroguard_emberseer.cpp:50
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_firemaw
Definition
boss_firemaw.cpp:25
boss_firemaw::boss_firemaw
boss_firemaw()
Definition
boss_firemaw.cpp:27
boss_firemaw::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
boss_firemaw.cpp:82
ScriptedAI::me
Creature * me
Definition
ScriptedCreature.h:182
ScriptedAI::DoGetThreat
float DoGetThreat(Unit *unit)
Definition
ScriptedCreature.cpp:278
ScriptedAI::DoModifyThreatPercent
void DoModifyThreatPercent(Unit *unit, int32 pct)
Definition
ScriptedCreature.cpp:285
boss_firemaw::boss_firemawAI
Definition
boss_firemaw.cpp:30
boss_firemaw::boss_firemawAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
boss_firemaw.cpp:47
boss_firemaw::boss_firemawAI::boss_firemawAI
boss_firemawAI(Creature *creature)
Definition
boss_firemaw.cpp:31
boss_firemaw::boss_firemawAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
boss_firemaw.cpp:33
src
server
scripts
EasternKingdoms
BlackrockMountain
BlackwingLair
boss_firemaw.cpp
Generated on
for Project SkyFire Core by
1.17.0