Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
boss_baron_rivendare.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_Baron_Rivendare
8
SD%Complete: 70
9
SDComment: aura applied/defined in database
10
SDCategory: Stratholme
11
EndScriptData */
12
13
#include "
ScriptMgr.h
"
14
#include "
ScriptedCreature.h
"
15
#include "
stratholme.h
"
16
17
enum
Says
18
{
19
SAY_BARON_RUN_START
= 0,
20
SAY_BARON_RUN_BOSS_KILL
= 1,
21
SAY_BARON_RUN_FAIL
= 2,
22
SAY_EVENT_RAMSTEIN
= 3,
23
SAY_EVENT_BARON
= 4
24
};
25
26
enum
Spells
27
{
28
SPELL_SHADOWBOLT
= 17393,
29
SPELL_CLEAVE
= 15284,
30
SPELL_MORTALSTRIKE
= 15708,
31
32
SPELL_UNHOLY_AURA
= 15284,
33
SPELL_RAISEDEAD
= 15708,
//triggers death pact (17471)
34
35
SPELL_RAISE_DEAD1
= 17475,
36
SPELL_RAISE_DEAD2
= 17476,
37
SPELL_RAISE_DEAD3
= 17477,
38
SPELL_RAISE_DEAD4
= 17478,
39
SPELL_RAISE_DEAD5
= 17479,
40
SPELL_RAISE_DEAD6
= 17480,
41
};
42
43
// Define Add positions
44
Position
const
ADD_POS_1
= {4017.403809f, -3339.703369f, 115.057655f, 5.487860f};
45
Position
const
ADD_POS_2
= {4013.189209f, -3351.808350f, 115.052254f, 0.134280f};
46
Position
const
ADD_POS_3
= {4017.738037f, -3363.478016f, 115.057274f, 0.723313f};
47
Position
const
ADD_POS_4
= {4048.877197f, -3363.223633f, 115.054253f, 3.627735f};
48
Position
const
ADD_POS_5
= {4051.777588f, -3350.893311f, 115.055351f, 3.066176f};
49
Position
const
ADD_POS_6
= {4048.375977f, -3339.966309f, 115.055222f, 2.457497f};
50
51
class
boss_baron_rivendare
:
public
CreatureScript
52
{
53
public
:
54
boss_baron_rivendare
() :
CreatureScript
(
"boss_baron_rivendare"
) { }
55
56
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
57
{
58
return
new
boss_baron_rivendareAI
(creature);
59
}
60
61
struct
boss_baron_rivendareAI
:
public
ScriptedAI
62
{
63
boss_baron_rivendareAI
(
Creature
* creature) :
ScriptedAI
(creature)
64
{
65
instance
=
me
->GetInstanceScript();
66
}
67
68
InstanceScript
*
instance
;
69
70
uint32
ShadowBolt_Timer
;
71
uint32
Cleave_Timer
;
72
uint32
MortalStrike_Timer
;
73
// uint32 RaiseDead_Timer;
74
uint32
SummonSkeletons_Timer
;
75
76
void
Reset
()
OVERRIDE
77
{
78
ShadowBolt_Timer
= 5000;
79
Cleave_Timer
= 8000;
80
MortalStrike_Timer
= 12000;
81
// RaiseDead_Timer = 30000;
82
SummonSkeletons_Timer
= 34000;
83
if
(
instance
&&
instance
->GetData(
TYPE_RAMSTEIN
) ==
DONE
)
84
instance
->SetData(
TYPE_BARON
,
NOT_STARTED
);
85
}
86
87
void
AttackStart
(
Unit
* who)
OVERRIDE
88
{
89
if
(
instance
)
//can't use entercombat(), boss' dmg aura sets near players in combat, before entering the room's door
90
instance
->SetData(
TYPE_BARON
,
IN_PROGRESS
);
91
ScriptedAI::AttackStart
(who);
92
}
93
94
void
JustSummoned
(
Creature
* summoned)
OVERRIDE
95
{
96
if
(
Unit
* target =
SelectTarget
(
SELECT_TARGET_RANDOM
, 0))
97
summoned->AI()->AttackStart(target);
98
}
99
100
void
JustDied
(
Unit
*
/*killer*/
)
OVERRIDE
101
{
102
if
(
instance
)
103
instance
->SetData(
TYPE_BARON
,
DONE
);
104
}
105
106
void
UpdateAI
(
uint32
diff)
OVERRIDE
107
{
108
if
(!
UpdateVictim
())
109
return
;
110
111
//ShadowBolt
112
if
(
ShadowBolt_Timer
<= diff)
113
{
114
if
(
SelectTarget
(
SELECT_TARGET_RANDOM
, 0))
115
DoCastVictim
(
SPELL_SHADOWBOLT
);
116
117
ShadowBolt_Timer
= 10000;
118
}
else
ShadowBolt_Timer
-= diff;
119
120
//Cleave
121
if
(
Cleave_Timer
<= diff)
122
{
123
DoCastVictim
(
SPELL_CLEAVE
);
124
//13 seconds until we should cast this again
125
Cleave_Timer
= 7000 + (rand()%10000);
126
}
else
Cleave_Timer
-= diff;
127
128
//MortalStrike
129
if
(
MortalStrike_Timer
<= diff)
130
{
131
DoCastVictim
(
SPELL_MORTALSTRIKE
);
132
MortalStrike_Timer
= 10000 + (rand()%15000);
133
}
else
MortalStrike_Timer
-= diff;
134
135
//RaiseDead
136
// if (RaiseDead_Timer <= diff)
137
// {
138
// DoCast(me, SPELL_RAISEDEAD);
139
// RaiseDead_Timer = 45000;
140
// } else RaiseDead_Timer -= diff;
141
142
//SummonSkeletons
143
if
(
SummonSkeletons_Timer
<= diff)
144
{
145
me
->SummonCreature(11197,
ADD_POS_1
,
TempSummonType::TEMPSUMMON_TIMED_DESPAWN
, 29000);
146
me
->SummonCreature(11197,
ADD_POS_2
,
TempSummonType::TEMPSUMMON_TIMED_DESPAWN
, 29000);
147
me
->SummonCreature(11197,
ADD_POS_3
,
TempSummonType::TEMPSUMMON_TIMED_DESPAWN
, 29000);
148
me
->SummonCreature(11197,
ADD_POS_4
,
TempSummonType::TEMPSUMMON_TIMED_DESPAWN
, 29000);
149
me
->SummonCreature(11197,
ADD_POS_5
,
TempSummonType::TEMPSUMMON_TIMED_DESPAWN
, 29000);
150
me
->SummonCreature(11197,
ADD_POS_6
,
TempSummonType::TEMPSUMMON_TIMED_DESPAWN
, 29000);
151
152
//34 seconds until we should cast this again
153
SummonSkeletons_Timer
= 40000;
154
}
else
SummonSkeletons_Timer
-= diff;
155
156
DoMeleeAttackIfReady
();
157
}
158
};
159
};
160
161
void
AddSC_boss_baron_rivendare
()
162
{
163
new
boss_baron_rivendare
();
164
}
Spells
Spells
Definition
BattlegroundIC.h:645
uint32
std::uint32_t uint32
Definition
Define.h:77
OVERRIDE
#define OVERRIDE
Definition
Define.h:60
IN_PROGRESS
@ IN_PROGRESS
Definition
InstanceScript.h:47
DONE
@ DONE
Definition
InstanceScript.h:49
NOT_STARTED
@ NOT_STARTED
Definition
InstanceScript.h:46
TempSummonType::TEMPSUMMON_TIMED_DESPAWN
@ TEMPSUMMON_TIMED_DESPAWN
Definition
Object.h:70
ScriptMgr.h
ScriptedCreature.h
SELECT_TARGET_RANDOM
@ SELECT_TARGET_RANDOM
Definition
UnitAI.h:23
SPELL_CLEAVE
@ SPELL_CLEAVE
Definition
alterac_valley.cpp:12
SPELL_SHADOWBOLT
@ SPELL_SHADOWBOLT
Definition
boss_anubshiah.cpp:11
SAY_BARON_RUN_FAIL
@ SAY_BARON_RUN_FAIL
Definition
boss_baron_rivendare.cpp:21
SAY_BARON_RUN_BOSS_KILL
@ SAY_BARON_RUN_BOSS_KILL
Definition
boss_baron_rivendare.cpp:20
SAY_EVENT_RAMSTEIN
@ SAY_EVENT_RAMSTEIN
Definition
boss_baron_rivendare.cpp:22
SAY_BARON_RUN_START
@ SAY_BARON_RUN_START
Definition
boss_baron_rivendare.cpp:19
SAY_EVENT_BARON
@ SAY_EVENT_BARON
Definition
boss_baron_rivendare.cpp:23
SPELL_RAISEDEAD
@ SPELL_RAISEDEAD
Definition
boss_baron_rivendare.cpp:33
SPELL_CLEAVE
@ SPELL_CLEAVE
Definition
boss_baron_rivendare.cpp:29
SPELL_RAISE_DEAD3
@ SPELL_RAISE_DEAD3
Definition
boss_baron_rivendare.cpp:37
SPELL_MORTALSTRIKE
@ SPELL_MORTALSTRIKE
Definition
boss_baron_rivendare.cpp:30
SPELL_RAISE_DEAD1
@ SPELL_RAISE_DEAD1
Definition
boss_baron_rivendare.cpp:35
SPELL_RAISE_DEAD5
@ SPELL_RAISE_DEAD5
Definition
boss_baron_rivendare.cpp:39
SPELL_SHADOWBOLT
@ SPELL_SHADOWBOLT
Definition
boss_baron_rivendare.cpp:28
SPELL_RAISE_DEAD4
@ SPELL_RAISE_DEAD4
Definition
boss_baron_rivendare.cpp:38
SPELL_RAISE_DEAD6
@ SPELL_RAISE_DEAD6
Definition
boss_baron_rivendare.cpp:40
SPELL_RAISE_DEAD2
@ SPELL_RAISE_DEAD2
Definition
boss_baron_rivendare.cpp:36
SPELL_UNHOLY_AURA
@ SPELL_UNHOLY_AURA
Definition
boss_baron_rivendare.cpp:32
ADD_POS_4
Position const ADD_POS_4
Definition
boss_baron_rivendare.cpp:47
ADD_POS_3
Position const ADD_POS_3
Definition
boss_baron_rivendare.cpp:46
ADD_POS_6
Position const ADD_POS_6
Definition
boss_baron_rivendare.cpp:49
ADD_POS_5
Position const ADD_POS_5
Definition
boss_baron_rivendare.cpp:48
ADD_POS_2
Position const ADD_POS_2
Definition
boss_baron_rivendare.cpp:45
ADD_POS_1
Position const ADD_POS_1
Definition
boss_baron_rivendare.cpp:44
AddSC_boss_baron_rivendare
void AddSC_boss_baron_rivendare()
Definition
boss_baron_rivendare.cpp:161
SPELL_MORTALSTRIKE
@ SPELL_MORTALSTRIKE
Definition
boss_gorosh_the_dervish.cpp:12
Says
Says
Definition
boss_halycon.cpp:17
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
InstanceScript
Definition
InstanceScript.h:123
UnitAI::DoMeleeAttackIfReady
void DoMeleeAttackIfReady()
Definition
UnitAI.cpp:28
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_baron_rivendare
Definition
boss_baron_rivendare.cpp:52
boss_baron_rivendare::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
boss_baron_rivendare.cpp:56
boss_baron_rivendare::boss_baron_rivendare
boss_baron_rivendare()
Definition
boss_baron_rivendare.cpp:54
stratholme.h
TYPE_BARON
@ TYPE_BARON
Definition
stratholme.h:16
TYPE_RAMSTEIN
@ TYPE_RAMSTEIN
Definition
stratholme.h:15
Position
Definition
Object.h:274
ScriptedAI::me
Creature * me
Definition
ScriptedCreature.h:182
ScriptedAI::ScriptedAI
ScriptedAI(Creature *creature)
Definition
ScriptedCreature.cpp:85
ScriptedAI::AttackStart
void AttackStart(Unit *) OVERRIDE
Definition
ScriptedCreature.cpp:118
boss_baron_rivendare::boss_baron_rivendareAI
Definition
boss_baron_rivendare.cpp:62
boss_baron_rivendare::boss_baron_rivendareAI::Reset
void Reset() OVERRIDE
Definition
boss_baron_rivendare.cpp:76
boss_baron_rivendare::boss_baron_rivendareAI::MortalStrike_Timer
uint32 MortalStrike_Timer
Definition
boss_baron_rivendare.cpp:72
boss_baron_rivendare::boss_baron_rivendareAI::ShadowBolt_Timer
uint32 ShadowBolt_Timer
Definition
boss_baron_rivendare.cpp:70
boss_baron_rivendare::boss_baron_rivendareAI::AttackStart
void AttackStart(Unit *who) OVERRIDE
Definition
boss_baron_rivendare.cpp:87
boss_baron_rivendare::boss_baron_rivendareAI::JustDied
void JustDied(Unit *) OVERRIDE
Definition
boss_baron_rivendare.cpp:100
boss_baron_rivendare::boss_baron_rivendareAI::Cleave_Timer
uint32 Cleave_Timer
Definition
boss_baron_rivendare.cpp:71
boss_baron_rivendare::boss_baron_rivendareAI::boss_baron_rivendareAI
boss_baron_rivendareAI(Creature *creature)
Definition
boss_baron_rivendare.cpp:63
boss_baron_rivendare::boss_baron_rivendareAI::instance
InstanceScript * instance
Definition
boss_baron_rivendare.cpp:68
boss_baron_rivendare::boss_baron_rivendareAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
boss_baron_rivendare.cpp:106
boss_baron_rivendare::boss_baron_rivendareAI::JustSummoned
void JustSummoned(Creature *summoned) OVERRIDE
Definition
boss_baron_rivendare.cpp:94
boss_baron_rivendare::boss_baron_rivendareAI::SummonSkeletons_Timer
uint32 SummonSkeletons_Timer
Definition
boss_baron_rivendare.cpp:74
src
server
scripts
EasternKingdoms
Stratholme
boss_baron_rivendare.cpp
Generated on
for Project SkyFire Core by
1.17.0