Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
boss_magistrate_barthilas.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_Magistrate_Barthilas
8
SD%Complete: 70
9
SDComment:
10
SDCategory: Stratholme
11
EndScriptData */
12
13
#include "
ScriptMgr.h
"
14
#include "
ScriptedCreature.h
"
15
#include "
stratholme.h
"
16
17
enum
Spells
18
{
19
SPELL_DRAININGBLOW
= 16793,
20
SPELL_CROWDPUMMEL
= 10887,
21
SPELL_MIGHTYBLOW
= 14099,
22
SPELL_FURIOUS_ANGER
= 16791
23
};
24
25
enum
Models
26
{
27
MODEL_NORMAL
= 10433,
28
MODEL_HUMAN
= 3637
29
};
30
31
class
boss_magistrate_barthilas
:
public
CreatureScript
32
{
33
public
:
34
boss_magistrate_barthilas
() :
CreatureScript
(
"boss_magistrate_barthilas"
) { }
35
36
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
37
{
38
return
new
boss_magistrate_barthilasAI
(creature);
39
}
40
41
struct
boss_magistrate_barthilasAI
:
public
ScriptedAI
42
{
43
boss_magistrate_barthilasAI
(
Creature
* creature) :
ScriptedAI
(creature) { }
44
45
uint32
DrainingBlow_Timer
;
46
uint32
CrowdPummel_Timer
;
47
uint32
MightyBlow_Timer
;
48
uint32
FuriousAnger_Timer
;
49
uint32
AngerCount
;
50
51
void
Reset
()
OVERRIDE
52
{
53
DrainingBlow_Timer
= 20000;
54
CrowdPummel_Timer
= 15000;
55
MightyBlow_Timer
= 10000;
56
FuriousAnger_Timer
= 5000;
57
AngerCount
= 0;
58
59
if
(
me
->IsAlive())
60
me
->SetDisplayId(
MODEL_NORMAL
);
61
else
62
me
->SetDisplayId(
MODEL_HUMAN
);
63
}
64
65
void
MoveInLineOfSight
(
Unit
* who)
OVERRIDE
66
67
{
68
//nothing to see here yet
69
70
ScriptedAI::MoveInLineOfSight
(who);
71
}
72
73
void
JustDied
(
Unit
*
/*killer*/
)
OVERRIDE
74
{
75
me
->SetDisplayId(
MODEL_HUMAN
);
76
}
77
78
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
79
{
80
}
81
82
void
UpdateAI
(
uint32
diff)
OVERRIDE
83
{
84
//Return since we have no target
85
if
(!
UpdateVictim
())
86
return
;
87
88
if
(
FuriousAnger_Timer
<= diff)
89
{
90
FuriousAnger_Timer
= 4000;
91
if
(
AngerCount
> 25)
92
return
;
93
94
++
AngerCount
;
95
DoCast
(
me
,
SPELL_FURIOUS_ANGER
,
false
);
96
}
else
FuriousAnger_Timer
-= diff;
97
98
//DrainingBlow
99
if
(
DrainingBlow_Timer
<= diff)
100
{
101
DoCastVictim
(
SPELL_DRAININGBLOW
);
102
DrainingBlow_Timer
= 15000;
103
}
else
DrainingBlow_Timer
-= diff;
104
105
//CrowdPummel
106
if
(
CrowdPummel_Timer
<= diff)
107
{
108
DoCastVictim
(
SPELL_CROWDPUMMEL
);
109
CrowdPummel_Timer
= 15000;
110
}
else
CrowdPummel_Timer
-= diff;
111
112
//MightyBlow
113
if
(
MightyBlow_Timer
<= diff)
114
{
115
DoCastVictim
(
SPELL_MIGHTYBLOW
);
116
MightyBlow_Timer
= 20000;
117
}
else
MightyBlow_Timer
-= diff;
118
119
DoMeleeAttackIfReady
();
120
}
121
};
122
};
123
124
void
AddSC_boss_magistrate_barthilas
()
125
{
126
new
boss_magistrate_barthilas
();
127
}
Spells
Spells
Definition
BattlegroundIC.h:645
uint32
std::uint32_t uint32
Definition
Define.h:77
OVERRIDE
#define OVERRIDE
Definition
Define.h:60
ScriptMgr.h
ScriptedCreature.h
SPELL_MIGHTYBLOW
@ SPELL_MIGHTYBLOW
Definition
blackrock_depths.cpp:335
SPELL_MIGHTYBLOW
@ SPELL_MIGHTYBLOW
Definition
boss_magistrate_barthilas.cpp:21
SPELL_DRAININGBLOW
@ SPELL_DRAININGBLOW
Definition
boss_magistrate_barthilas.cpp:19
SPELL_CROWDPUMMEL
@ SPELL_CROWDPUMMEL
Definition
boss_magistrate_barthilas.cpp:20
SPELL_FURIOUS_ANGER
@ SPELL_FURIOUS_ANGER
Definition
boss_magistrate_barthilas.cpp:22
Models
Models
Definition
boss_magistrate_barthilas.cpp:26
MODEL_NORMAL
@ MODEL_NORMAL
Definition
boss_magistrate_barthilas.cpp:27
MODEL_HUMAN
@ MODEL_HUMAN
Definition
boss_magistrate_barthilas.cpp:28
AddSC_boss_magistrate_barthilas
void AddSC_boss_magistrate_barthilas()
Definition
boss_magistrate_barthilas.cpp:124
CreatureAI
Definition
CreatureAI.h:54
CreatureAI::MoveInLineOfSight
virtual void MoveInLineOfSight(Unit *)
Definition
CreatureAI.cpp:114
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::DoCastVictim
void DoCastVictim(uint32 spellId, bool triggered=false)
Definition
UnitAI.cpp:168
Unit
Definition
Unit.h:1367
boss_magistrate_barthilas
Definition
boss_magistrate_barthilas.cpp:32
boss_magistrate_barthilas::boss_magistrate_barthilas
boss_magistrate_barthilas()
Definition
boss_magistrate_barthilas.cpp:34
boss_magistrate_barthilas::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
boss_magistrate_barthilas.cpp:36
stratholme.h
ScriptedAI::me
Creature * me
Definition
ScriptedCreature.h:182
ScriptedAI::ScriptedAI
ScriptedAI(Creature *creature)
Definition
ScriptedCreature.cpp:85
boss_magistrate_barthilas::boss_magistrate_barthilasAI
Definition
boss_magistrate_barthilas.cpp:42
boss_magistrate_barthilas::boss_magistrate_barthilasAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
boss_magistrate_barthilas.cpp:78
boss_magistrate_barthilas::boss_magistrate_barthilasAI::CrowdPummel_Timer
uint32 CrowdPummel_Timer
Definition
boss_magistrate_barthilas.cpp:46
boss_magistrate_barthilas::boss_magistrate_barthilasAI::Reset
void Reset() OVERRIDE
Definition
boss_magistrate_barthilas.cpp:51
boss_magistrate_barthilas::boss_magistrate_barthilasAI::JustDied
void JustDied(Unit *) OVERRIDE
Definition
boss_magistrate_barthilas.cpp:73
boss_magistrate_barthilas::boss_magistrate_barthilasAI::FuriousAnger_Timer
uint32 FuriousAnger_Timer
Definition
boss_magistrate_barthilas.cpp:48
boss_magistrate_barthilas::boss_magistrate_barthilasAI::AngerCount
uint32 AngerCount
Definition
boss_magistrate_barthilas.cpp:49
boss_magistrate_barthilas::boss_magistrate_barthilasAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
boss_magistrate_barthilas.cpp:82
boss_magistrate_barthilas::boss_magistrate_barthilasAI::MoveInLineOfSight
void MoveInLineOfSight(Unit *who) OVERRIDE
Definition
boss_magistrate_barthilas.cpp:65
boss_magistrate_barthilas::boss_magistrate_barthilasAI::DrainingBlow_Timer
uint32 DrainingBlow_Timer
Definition
boss_magistrate_barthilas.cpp:45
boss_magistrate_barthilas::boss_magistrate_barthilasAI::MightyBlow_Timer
uint32 MightyBlow_Timer
Definition
boss_magistrate_barthilas.cpp:47
boss_magistrate_barthilas::boss_magistrate_barthilasAI::boss_magistrate_barthilasAI
boss_magistrate_barthilasAI(Creature *creature)
Definition
boss_magistrate_barthilas.cpp:43
src
server
scripts
EasternKingdoms
Stratholme
boss_magistrate_barthilas.cpp
Generated on
for Project SkyFire Core by
1.17.0