Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
boss_broodlord_lashlayer.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
Say
11
{
12
SAY_AGGRO
= 0,
13
SAY_LEASH
= 1
14
};
15
16
enum
Spells
17
{
18
SPELL_CLEAVE
= 26350,
19
SPELL_BLASTWAVE
= 23331,
20
SPELL_MORTALSTRIKE
= 24573,
21
SPELL_KNOCKBACK
= 25778
22
};
23
24
enum
Events
25
{
26
EVENT_CLEAVE
= 1,
27
EVENT_BLASTWAVE
= 2,
28
EVENT_MORTALSTRIKE
= 3,
29
EVENT_KNOCKBACK
= 4,
30
EVENT_CHECK
= 5
31
};
32
33
class
boss_broodlord
:
public
CreatureScript
34
{
35
public
:
36
boss_broodlord
() :
CreatureScript
(
"boss_broodlord"
) { }
37
38
struct
boss_broodlordAI
:
public
BossAI
39
{
40
boss_broodlordAI
(
Creature
* creature) :
BossAI
(creature,
BOSS_BROODLORD
) { }
41
42
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
43
{
44
if
(
instance
->GetBossState(
BOSS_VAELASTRAZ
) !=
DONE
)
45
{
46
EnterEvadeMode
();
47
return
;
48
}
49
50
_EnterCombat
();
51
Talk
(
SAY_AGGRO
);
52
53
events
.ScheduleEvent(
EVENT_CLEAVE
, 8000);
54
events
.ScheduleEvent(
EVENT_BLASTWAVE
, 12000);
55
events
.ScheduleEvent(
EVENT_MORTALSTRIKE
, 20000);
56
events
.ScheduleEvent(
EVENT_KNOCKBACK
, 30000);
57
events
.ScheduleEvent(
EVENT_CHECK
, 1000);
58
}
59
60
void
UpdateAI
(
uint32
diff)
OVERRIDE
61
{
62
if
(!
UpdateVictim
())
63
return
;
64
65
events
.Update(diff);
66
67
while
(
uint32
eventId =
events
.ExecuteEvent())
68
{
69
switch
(eventId)
70
{
71
case
EVENT_CLEAVE
:
72
DoCastVictim
(
SPELL_CLEAVE
);
73
events
.ScheduleEvent(
EVENT_CLEAVE
, 7000);
74
break
;
75
case
EVENT_BLASTWAVE
:
76
DoCastVictim
(
SPELL_BLASTWAVE
);
77
events
.ScheduleEvent(
EVENT_BLASTWAVE
, std::rand() % 16000 + 8000);
78
break
;
79
case
EVENT_MORTALSTRIKE
:
80
DoCastVictim
(
SPELL_MORTALSTRIKE
);
81
events
.ScheduleEvent(
EVENT_MORTALSTRIKE
, std::rand() % 35000 + 25000);
82
break
;
83
case
EVENT_KNOCKBACK
:
84
DoCastVictim
(
SPELL_KNOCKBACK
);
85
if
(
DoGetThreat
(
me
->GetVictim()))
86
DoModifyThreatPercent
(
me
->GetVictim(), -50);
87
events
.ScheduleEvent(
EVENT_KNOCKBACK
, std::rand() % 30000 + 15000);
88
break
;
89
case
EVENT_CHECK
:
90
if
(
me
->GetDistance(
me
->GetHomePosition()) > 150.0f)
91
{
92
Talk
(
SAY_LEASH
);
93
EnterEvadeMode
();
94
}
95
events
.ScheduleEvent(
EVENT_CHECK
, 1000);
96
break
;
97
}
98
}
99
100
DoMeleeAttackIfReady
();
101
}
102
};
103
104
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
105
{
106
return
new
boss_broodlordAI
(creature);
107
}
108
};
109
110
void
AddSC_boss_broodlord
()
111
{
112
new
boss_broodlord
();
113
}
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
SPELL_CLEAVE
@ SPELL_CLEAVE
Definition
alterac_valley.cpp:12
Events
Events
Definition
alterac_valley.cpp:40
EVENT_CLEAVE
@ EVENT_CLEAVE
Definition
alterac_valley.cpp:42
blackwing_lair.h
BOSS_BROODLORD
@ BOSS_BROODLORD
Definition
blackwing_lair.h:17
BOSS_VAELASTRAZ
@ BOSS_VAELASTRAZ
Definition
blackwing_lair.h:16
AddSC_boss_broodlord
void AddSC_boss_broodlord()
Definition
boss_broodlord_lashlayer.cpp:110
SPELL_CLEAVE
@ SPELL_CLEAVE
Definition
boss_broodlord_lashlayer.cpp:18
SPELL_MORTALSTRIKE
@ SPELL_MORTALSTRIKE
Definition
boss_broodlord_lashlayer.cpp:20
SPELL_KNOCKBACK
@ SPELL_KNOCKBACK
Definition
boss_broodlord_lashlayer.cpp:21
SPELL_BLASTWAVE
@ SPELL_BLASTWAVE
Definition
boss_broodlord_lashlayer.cpp:19
Say
Say
Definition
boss_broodlord_lashlayer.cpp:11
SAY_AGGRO
@ SAY_AGGRO
Definition
boss_broodlord_lashlayer.cpp:12
SAY_LEASH
@ SAY_LEASH
Definition
boss_broodlord_lashlayer.cpp:13
EVENT_KNOCKBACK
@ EVENT_KNOCKBACK
Definition
boss_broodlord_lashlayer.cpp:29
EVENT_BLASTWAVE
@ EVENT_BLASTWAVE
Definition
boss_broodlord_lashlayer.cpp:27
EVENT_CLEAVE
@ EVENT_CLEAVE
Definition
boss_broodlord_lashlayer.cpp:26
EVENT_MORTALSTRIKE
@ EVENT_MORTALSTRIKE
Definition
boss_broodlord_lashlayer.cpp:28
EVENT_CHECK
@ EVENT_CHECK
Definition
boss_broodlord_lashlayer.cpp:30
SAY_AGGRO
#define SAY_AGGRO
Definition
boss_commander_kolurg.cpp:28
SPELL_MORTALSTRIKE
@ SPELL_MORTALSTRIKE
Definition
boss_gorosh_the_dervish.cpp:12
SPELL_BLASTWAVE
@ SPELL_BLASTWAVE
Definition
boss_overlord_wyrmthalak.cpp:12
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::DoCastVictim
void DoCastVictim(uint32 spellId, bool triggered=false)
Definition
UnitAI.cpp:168
Unit
Definition
Unit.h:1367
boss_broodlord
Definition
boss_broodlord_lashlayer.cpp:34
boss_broodlord::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
boss_broodlord_lashlayer.cpp:104
boss_broodlord::boss_broodlord
boss_broodlord()
Definition
boss_broodlord_lashlayer.cpp:36
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_broodlord::boss_broodlordAI
Definition
boss_broodlord_lashlayer.cpp:39
boss_broodlord::boss_broodlordAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
boss_broodlord_lashlayer.cpp:42
boss_broodlord::boss_broodlordAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
boss_broodlord_lashlayer.cpp:60
boss_broodlord::boss_broodlordAI::boss_broodlordAI
boss_broodlordAI(Creature *creature)
Definition
boss_broodlord_lashlayer.cpp:40
src
server
scripts
EasternKingdoms
BlackrockMountain
BlackwingLair
boss_broodlord_lashlayer.cpp
Generated on
for Project SkyFire Core by
1.17.0