Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
boss_ambassador_flamelash.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
9
enum
Spells
10
{
11
SPELL_FIREBLAST
= 15573
12
};
13
14
class
boss_ambassador_flamelash
:
public
CreatureScript
15
{
16
public
:
17
boss_ambassador_flamelash
() :
CreatureScript
(
"boss_ambassador_flamelash"
) { }
18
19
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
20
{
21
return
new
boss_ambassador_flamelashAI
(creature);
22
}
23
24
struct
boss_ambassador_flamelashAI
:
public
ScriptedAI
25
{
26
boss_ambassador_flamelashAI
(
Creature
* creature) :
ScriptedAI
(creature) { }
27
28
uint32
FireBlast_Timer
;
29
uint32
Spirit_Timer
;
30
31
void
Reset
()
OVERRIDE
32
{
33
FireBlast_Timer
= 2000;
34
Spirit_Timer
= 24000;
35
}
36
37
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
{ }
38
39
void
SummonSpirits
(
Unit
* victim)
40
{
41
if
(
Creature
* Spirit =
DoSpawnCreature
(9178,
float
(std::rand() % 9 + -9),
float
(std::rand() % 9 + -9), 0, 0,
TempSummonType::TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN
, 60000))
42
Spirit->AI()->AttackStart(victim);
43
}
44
45
void
UpdateAI
(
uint32
diff)
OVERRIDE
46
{
47
//Return since we have no target
48
if
(!
UpdateVictim
())
49
return
;
50
51
//FireBlast_Timer
52
if
(
FireBlast_Timer
<= diff)
53
{
54
DoCastVictim
(
SPELL_FIREBLAST
);
55
FireBlast_Timer
= 7000;
56
}
else
FireBlast_Timer
-= diff;
57
58
//Spirit_Timer
59
if
(
Spirit_Timer
<= diff)
60
{
61
SummonSpirits
(
me
->GetVictim());
62
SummonSpirits
(
me
->GetVictim());
63
SummonSpirits
(
me
->GetVictim());
64
SummonSpirits
(
me
->GetVictim());
65
66
Spirit_Timer
= 30000;
67
}
else
Spirit_Timer
-= diff;
68
69
DoMeleeAttackIfReady
();
70
}
71
};
72
};
73
74
void
AddSC_boss_ambassador_flamelash
()
75
{
76
new
boss_ambassador_flamelash
();
77
}
Spells
Spells
Definition
BattlegroundIC.h:645
uint32
std::uint32_t uint32
Definition
Define.h:77
OVERRIDE
#define OVERRIDE
Definition
Define.h:60
TempSummonType::TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN
@ TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN
Definition
Object.h:69
ScriptMgr.h
ScriptedCreature.h
SPELL_FIREBLAST
@ SPELL_FIREBLAST
Definition
boss_ambassador_flamelash.cpp:11
AddSC_boss_ambassador_flamelash
void AddSC_boss_ambassador_flamelash()
Definition
boss_ambassador_flamelash.cpp:74
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::DoCastVictim
void DoCastVictim(uint32 spellId, bool triggered=false)
Definition
UnitAI.cpp:168
Unit
Definition
Unit.h:1367
boss_ambassador_flamelash
Definition
boss_ambassador_flamelash.cpp:15
boss_ambassador_flamelash::boss_ambassador_flamelash
boss_ambassador_flamelash()
Definition
boss_ambassador_flamelash.cpp:17
boss_ambassador_flamelash::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
boss_ambassador_flamelash.cpp:19
ScriptedAI::me
Creature * me
Definition
ScriptedCreature.h:182
ScriptedAI::DoSpawnCreature
Creature * DoSpawnCreature(uint32 entry, float offsetX, float offsetY, float offsetZ, float angle, TempSummonType type, uint32 despawntime)
Definition
ScriptedCreature.cpp:178
ScriptedAI::ScriptedAI
ScriptedAI(Creature *creature)
Definition
ScriptedCreature.cpp:85
boss_ambassador_flamelash::boss_ambassador_flamelashAI
Definition
boss_ambassador_flamelash.cpp:25
boss_ambassador_flamelash::boss_ambassador_flamelashAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
boss_ambassador_flamelash.cpp:37
boss_ambassador_flamelash::boss_ambassador_flamelashAI::boss_ambassador_flamelashAI
boss_ambassador_flamelashAI(Creature *creature)
Definition
boss_ambassador_flamelash.cpp:26
boss_ambassador_flamelash::boss_ambassador_flamelashAI::Reset
void Reset() OVERRIDE
Definition
boss_ambassador_flamelash.cpp:31
boss_ambassador_flamelash::boss_ambassador_flamelashAI::Spirit_Timer
uint32 Spirit_Timer
Definition
boss_ambassador_flamelash.cpp:29
boss_ambassador_flamelash::boss_ambassador_flamelashAI::FireBlast_Timer
uint32 FireBlast_Timer
Definition
boss_ambassador_flamelash.cpp:28
boss_ambassador_flamelash::boss_ambassador_flamelashAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
boss_ambassador_flamelash.cpp:45
boss_ambassador_flamelash::boss_ambassador_flamelashAI::SummonSpirits
void SummonSpirits(Unit *victim)
Definition
boss_ambassador_flamelash.cpp:39
src
server
scripts
EasternKingdoms
BlackrockMountain
BlackrockDepths
boss_ambassador_flamelash.cpp
Generated on
for Project SkyFire Core by
1.17.0