Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
boss_flamegor.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
Emotes
11
{
12
EMOTE_FRENZY
= 0,
13
};
14
15
enum
Spells
16
{
17
SPELL_SHADOWFLAME
= 22539,
18
SPELL_WINGBUFFET
= 23339,
19
SPELL_FRENZY
= 23342
//This spell periodically triggers fire nova
20
};
21
22
enum
Events
23
{
24
EVENT_SHADOWFLAME
= 1,
25
EVENT_WINGBUFFET
= 2,
26
EVENT_FRENZY
= 3
27
};
28
29
class
boss_flamegor
:
public
CreatureScript
30
{
31
public
:
32
boss_flamegor
() :
CreatureScript
(
"boss_flamegor"
) { }
33
34
struct
boss_flamegorAI
:
public
BossAI
35
{
36
boss_flamegorAI
(
Creature
* creature) :
BossAI
(creature,
BOSS_FLAMEGOR
) { }
37
38
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
39
{
40
if
(
instance
&&
instance
->GetBossState(
BOSS_BROODLORD
) !=
DONE
)
41
{
42
EnterEvadeMode
();
43
return
;
44
}
45
_EnterCombat
();
46
47
events
.ScheduleEvent(
EVENT_SHADOWFLAME
, std::rand() % 20000 + 10000);
48
events
.ScheduleEvent(
EVENT_WINGBUFFET
, 30000);
49
events
.ScheduleEvent(
EVENT_FRENZY
, 10000);
50
}
51
52
void
UpdateAI
(
uint32
diff)
OVERRIDE
53
{
54
if
(!
UpdateVictim
())
55
return
;
56
57
events
.Update(diff);
58
59
if
(
me
->HasUnitState(
UNIT_STATE_CASTING
))
60
return
;
61
62
while
(
uint32
eventId =
events
.ExecuteEvent())
63
{
64
switch
(eventId)
65
{
66
case
EVENT_SHADOWFLAME
:
67
DoCastVictim
(
SPELL_SHADOWFLAME
);
68
events
.ScheduleEvent(
EVENT_SHADOWFLAME
, std::rand() % 20000 + 10000);
69
break
;
70
case
EVENT_WINGBUFFET
:
71
DoCastVictim
(
SPELL_WINGBUFFET
);
72
if
(
DoGetThreat
(
me
->GetVictim()))
73
DoModifyThreatPercent
(
me
->GetVictim(), -75);
74
events
.ScheduleEvent(
EVENT_WINGBUFFET
, 30000);
75
break
;
76
case
EVENT_FRENZY
:
77
Talk
(
EMOTE_FRENZY
);
78
DoCast
(
me
,
SPELL_FRENZY
);
79
events
.ScheduleEvent(
EVENT_FRENZY
, std::rand() % 10000 + 8000);
80
break
;
81
}
82
}
83
84
DoMeleeAttackIfReady
();
85
}
86
};
87
88
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
89
{
90
return
new
boss_flamegorAI
(creature);
91
}
92
};
93
94
void
AddSC_boss_flamegor
()
95
{
96
new
boss_flamegor
();
97
}
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_FLAMEGOR
@ BOSS_FLAMEGOR
Definition
blackwing_lair.h:20
BOSS_BROODLORD
@ BOSS_BROODLORD
Definition
blackwing_lair.h:17
Emotes
Emotes
Definition
boss_chromaggus.cpp:12
SPELL_FRENZY
@ SPELL_FRENZY
Definition
boss_drekthar.cpp:14
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
EMOTE_FRENZY
@ EMOTE_FRENZY
Definition
boss_flamegor.cpp:12
SPELL_FRENZY
@ SPELL_FRENZY
Definition
boss_flamegor.cpp:19
SPELL_SHADOWFLAME
@ SPELL_SHADOWFLAME
Definition
boss_flamegor.cpp:17
SPELL_WINGBUFFET
@ SPELL_WINGBUFFET
Definition
boss_flamegor.cpp:18
AddSC_boss_flamegor
void AddSC_boss_flamegor()
Definition
boss_flamegor.cpp:94
EVENT_WINGBUFFET
@ EVENT_WINGBUFFET
Definition
boss_flamegor.cpp:25
EVENT_FRENZY
@ EVENT_FRENZY
Definition
boss_flamegor.cpp:26
EVENT_SHADOWFLAME
@ EVENT_SHADOWFLAME
Definition
boss_flamegor.cpp:24
EVENT_FRENZY
@ EVENT_FRENZY
Definition
boss_gizrul_the_slavener.cpp:27
EMOTE_FRENZY
@ EMOTE_FRENZY
Definition
boss_lord_valthalak.cpp:20
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::Talk
void Talk(uint8 id, WorldObject const *whisperTarget=NULL)
Definition
CreatureAI.cpp:28
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::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_flamegor
Definition
boss_flamegor.cpp:30
boss_flamegor::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
boss_flamegor.cpp:88
boss_flamegor::boss_flamegor
boss_flamegor()
Definition
boss_flamegor.cpp:32
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_flamegor::boss_flamegorAI
Definition
boss_flamegor.cpp:35
boss_flamegor::boss_flamegorAI::boss_flamegorAI
boss_flamegorAI(Creature *creature)
Definition
boss_flamegor.cpp:36
boss_flamegor::boss_flamegorAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
boss_flamegor.cpp:38
boss_flamegor::boss_flamegorAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
boss_flamegor.cpp:52
src
server
scripts
EasternKingdoms
BlackrockMountain
BlackwingLair
boss_flamegor.cpp
Generated on
for Project SkyFire Core by
1.17.0