Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
boss_magmadar.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_Magmadar
8
SD%Complete: 75
9
SDComment: Conflag on ground nyi
10
SDCategory: Molten Core
11
EndScriptData */
12
13
#include "
ObjectMgr.h
"
14
#include "
ScriptMgr.h
"
15
#include "
ScriptedCreature.h
"
16
#include "
molten_core.h
"
17
18
enum
Texts
19
{
20
EMOTE_FRENZY
= 0
21
};
22
23
enum
Spells
24
{
25
SPELL_FRENZY
= 19451,
26
SPELL_MAGMA_SPIT
= 19449,
27
SPELL_PANIC
= 19408,
28
SPELL_LAVA_BOMB
= 19428,
29
};
30
31
enum
Events
32
{
33
EVENT_FRENZY
= 1,
34
EVENT_PANIC
= 2,
35
EVENT_LAVA_BOMB
= 3,
36
};
37
38
class
boss_magmadar
:
public
CreatureScript
39
{
40
public
:
41
boss_magmadar
() :
CreatureScript
(
"boss_magmadar"
) { }
42
43
struct
boss_magmadarAI
:
public
BossAI
44
{
45
boss_magmadarAI
(
Creature
* creature) :
BossAI
(creature,
BOSS_MAGMADAR
)
46
{
47
}
48
49
void
Reset
()
OVERRIDE
50
{
51
BossAI::Reset
();
52
DoCast
(
me
,
SPELL_MAGMA_SPIT
,
true
);
53
}
54
55
void
EnterCombat
(
Unit
* victim)
OVERRIDE
56
{
57
BossAI::EnterCombat
(victim);
58
events
.ScheduleEvent(
EVENT_FRENZY
, 30000);
59
events
.ScheduleEvent(
EVENT_PANIC
, 20000);
60
events
.ScheduleEvent(
EVENT_LAVA_BOMB
, 12000);
61
}
62
63
void
UpdateAI
(
uint32
diff)
OVERRIDE
64
{
65
if
(!
UpdateVictim
())
66
return
;
67
68
events
.Update(diff);
69
70
if
(
me
->HasUnitState(
UNIT_STATE_CASTING
))
71
return
;
72
73
while
(
uint32
eventId =
events
.ExecuteEvent())
74
{
75
switch
(eventId)
76
{
77
case
EVENT_FRENZY
:
78
Talk
(
EMOTE_FRENZY
);
79
DoCast
(
me
,
SPELL_FRENZY
);
80
events
.ScheduleEvent(
EVENT_FRENZY
, 15000);
81
break
;
82
case
EVENT_PANIC
:
83
DoCastVictim
(
SPELL_PANIC
);
84
events
.ScheduleEvent(
EVENT_PANIC
, 35000);
85
break
;
86
case
EVENT_LAVA_BOMB
:
87
if
(
Unit
* target =
SelectTarget
(
SELECT_TARGET_RANDOM
, 0, 0.0f,
true
, -
SPELL_LAVA_BOMB
))
88
DoCast
(target,
SPELL_LAVA_BOMB
);
89
events
.ScheduleEvent(
EVENT_LAVA_BOMB
, 12000);
90
break
;
91
default
:
92
break
;
93
}
94
}
95
96
DoMeleeAttackIfReady
();
97
}
98
};
99
100
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
101
{
102
return
new
boss_magmadarAI
(creature);
103
}
104
};
105
106
void
AddSC_boss_magmadar
()
107
{
108
new
boss_magmadar
();
109
}
Spells
Spells
Definition
BattlegroundIC.h:645
uint32
std::uint32_t uint32
Definition
Define.h:77
OVERRIDE
#define OVERRIDE
Definition
Define.h:60
ObjectMgr.h
ScriptMgr.h
ScriptedCreature.h
UNIT_STATE_CASTING
@ UNIT_STATE_CASTING
Definition
Unit.h:527
SELECT_TARGET_RANDOM
@ SELECT_TARGET_RANDOM
Definition
UnitAI.h:23
Events
Events
Definition
alterac_valley.cpp:40
Texts
Texts
Definition
boss_alizabal.cpp:13
SPELL_FRENZY
@ SPELL_FRENZY
Definition
boss_drekthar.cpp:14
EVENT_FRENZY
@ EVENT_FRENZY
Definition
boss_gizrul_the_slavener.cpp:27
EMOTE_FRENZY
@ EMOTE_FRENZY
Definition
boss_lord_valthalak.cpp:20
AddSC_boss_magmadar
void AddSC_boss_magmadar()
Definition
boss_magmadar.cpp:106
SPELL_FRENZY
@ SPELL_FRENZY
Definition
boss_magmadar.cpp:25
SPELL_MAGMA_SPIT
@ SPELL_MAGMA_SPIT
Definition
boss_magmadar.cpp:26
SPELL_LAVA_BOMB
@ SPELL_LAVA_BOMB
Definition
boss_magmadar.cpp:28
SPELL_PANIC
@ SPELL_PANIC
Definition
boss_magmadar.cpp:27
EMOTE_FRENZY
@ EMOTE_FRENZY
Definition
boss_magmadar.cpp:20
EVENT_PANIC
@ EVENT_PANIC
Definition
boss_magmadar.cpp:34
EVENT_LAVA_BOMB
@ EVENT_LAVA_BOMB
Definition
boss_magmadar.cpp:35
EVENT_FRENZY
@ EVENT_FRENZY
Definition
boss_magmadar.cpp:33
BossAI::events
EventMap events
Definition
ScriptedCreature.h:439
BossAI::Reset
void Reset() OVERRIDE
Definition
ScriptedCreature.h:400
BossAI::BossAI
BossAI(Creature *creature, uint32 bossId)
Definition
ScriptedCreature.cpp:456
BossAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
ScriptedCreature.h:404
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
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
boss_magmadar
Definition
boss_magmadar.cpp:39
boss_magmadar::boss_magmadar
boss_magmadar()
Definition
boss_magmadar.cpp:41
boss_magmadar::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
boss_magmadar.cpp:100
molten_core.h
BOSS_MAGMADAR
@ BOSS_MAGMADAR
Definition
molten_core.h:12
ScriptedAI::me
Creature * me
Definition
ScriptedCreature.h:182
boss_magmadar::boss_magmadarAI
Definition
boss_magmadar.cpp:44
boss_magmadar::boss_magmadarAI::boss_magmadarAI
boss_magmadarAI(Creature *creature)
Definition
boss_magmadar.cpp:45
boss_magmadar::boss_magmadarAI::Reset
void Reset() OVERRIDE
Definition
boss_magmadar.cpp:49
boss_magmadar::boss_magmadarAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
boss_magmadar.cpp:63
boss_magmadar::boss_magmadarAI::EnterCombat
void EnterCombat(Unit *victim) OVERRIDE
Definition
boss_magmadar.cpp:55
src
server
scripts
EasternKingdoms
BlackrockMountain
MoltenCore
boss_magmadar.cpp
Generated on
for Project SkyFire Core by
1.17.0