Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
boss_high_inquisitor_fairbanks.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_High_Inquisitor_Fairbanks
8
SD%Complete: 100
9
SDComment: @todo if this guy not involved in some special event, remove (and let ACID script)
10
SDCategory: Scarlet Monastery
11
EndScriptData */
12
13
#include "
ScriptMgr.h
"
14
#include "
ScriptedCreature.h
"
15
16
enum
Spells
17
{
18
SPELL_CURSEOFBLOOD
= 8282,
19
SPELL_DISPELMAGIC
= 15090,
20
SPELL_FEAR
= 12096,
21
SPELL_HEAL
= 12039,
22
SPELL_POWERWORDSHIELD
= 11647,
23
SPELL_SLEEP
= 8399
24
};
25
26
class
boss_high_inquisitor_fairbanks
:
public
CreatureScript
27
{
28
public
:
29
boss_high_inquisitor_fairbanks
() :
CreatureScript
(
"boss_high_inquisitor_fairbanks"
) { }
30
31
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
32
{
33
return
new
boss_high_inquisitor_fairbanksAI
(creature);
34
}
35
36
struct
boss_high_inquisitor_fairbanksAI
:
public
ScriptedAI
37
{
38
boss_high_inquisitor_fairbanksAI
(
Creature
* creature) :
ScriptedAI
(creature) { }
39
40
uint32
CurseOfBlood_Timer
;
41
uint32
DispelMagic_Timer
;
42
uint32
Fear_Timer
;
43
uint32
Heal_Timer
;
44
uint32
Sleep_Timer
;
45
uint32
Dispel_Timer
;
46
bool
PowerWordShield
;
47
48
void
Reset
()
OVERRIDE
49
{
50
CurseOfBlood_Timer
= 10000;
51
DispelMagic_Timer
= 30000;
52
Fear_Timer
= 40000;
53
Heal_Timer
= 30000;
54
Sleep_Timer
= 30000;
55
Dispel_Timer
= 20000;
56
PowerWordShield
=
false
;
57
me
->SetStandState(
UNIT_STAND_STATE_DEAD
);
58
me
->SetUInt32Value(
UNIT_FIELD_ANIM_TIER
, 7);
59
}
60
61
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
62
{
63
me
->SetStandState(
UNIT_STAND_STATE_STAND
);
64
me
->SetUInt32Value(
UNIT_FIELD_ANIM_TIER
, 0);
65
}
66
67
void
UpdateAI
(
uint32
diff)
OVERRIDE
68
{
69
if
(!
UpdateVictim
())
70
return
;
71
72
//If we are <25% hp cast Heal
73
if
(!
HealthAbovePct
(25) && !
me
->IsNonMeleeSpellCasted(
false
) &&
Heal_Timer
<= diff)
74
{
75
DoCast
(
me
,
SPELL_HEAL
);
76
Heal_Timer
= 30000;
77
}
78
else
Heal_Timer
-= diff;
79
80
//Fear_Timer
81
if
(
Fear_Timer
<= diff)
82
{
83
if
(
Unit
* target =
SelectTarget
(
SELECT_TARGET_RANDOM
, 1))
84
DoCast
(target,
SPELL_FEAR
);
85
86
Fear_Timer
= 40000;
87
}
88
else
Fear_Timer
-= diff;
89
90
//Sleep_Timer
91
if
(
Sleep_Timer
<= diff)
92
{
93
if
(
Unit
* target =
SelectTarget
(
SELECT_TARGET_TOPAGGRO
, 0))
94
DoCast
(target,
SPELL_SLEEP
);
95
96
Sleep_Timer
= 30000;
97
}
98
else
Sleep_Timer
-= diff;
99
100
//PowerWordShield_Timer
101
if
(!
PowerWordShield
&& !
HealthAbovePct
(25))
102
{
103
DoCast
(
me
,
SPELL_POWERWORDSHIELD
);
104
PowerWordShield
=
true
;
105
}
106
107
//Dispel_Timer
108
if
(
Dispel_Timer
<= diff)
109
{
110
if
(
Unit
* target =
SelectTarget
(
SELECT_TARGET_RANDOM
, 0))
111
DoCast
(target,
SPELL_DISPELMAGIC
);
112
113
DispelMagic_Timer
= 30000;
114
}
115
else
DispelMagic_Timer
-= diff;
116
117
//CurseOfBlood_Timer
118
if
(
CurseOfBlood_Timer
<= diff)
119
{
120
DoCastVictim
(
SPELL_CURSEOFBLOOD
);
121
CurseOfBlood_Timer
= 25000;
122
}
123
else
CurseOfBlood_Timer
-= diff;
124
125
DoMeleeAttackIfReady
();
126
}
127
};
128
};
129
130
void
AddSC_boss_high_inquisitor_fairbanks
()
131
{
132
new
boss_high_inquisitor_fairbanks
();
133
}
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
UNIT_STAND_STATE_DEAD
@ UNIT_STAND_STATE_DEAD
Definition
Unit.h:169
UNIT_STAND_STATE_STAND
@ UNIT_STAND_STATE_STAND
Definition
Unit.h:162
SELECT_TARGET_TOPAGGRO
@ SELECT_TARGET_TOPAGGRO
Definition
UnitAI.h:24
SELECT_TARGET_RANDOM
@ SELECT_TARGET_RANDOM
Definition
UnitAI.h:23
UNIT_FIELD_ANIM_TIER
@ UNIT_FIELD_ANIM_TIER
Definition
UpdateFields.h:96
SPELL_CURSEOFBLOOD
@ SPELL_CURSEOFBLOOD
Definition
boss_high_inquisitor_fairbanks.cpp:18
SPELL_SLEEP
@ SPELL_SLEEP
Definition
boss_high_inquisitor_fairbanks.cpp:23
SPELL_DISPELMAGIC
@ SPELL_DISPELMAGIC
Definition
boss_high_inquisitor_fairbanks.cpp:19
SPELL_FEAR
@ SPELL_FEAR
Definition
boss_high_inquisitor_fairbanks.cpp:20
SPELL_HEAL
@ SPELL_HEAL
Definition
boss_high_inquisitor_fairbanks.cpp:21
SPELL_POWERWORDSHIELD
@ SPELL_POWERWORDSHIELD
Definition
boss_high_inquisitor_fairbanks.cpp:22
AddSC_boss_high_inquisitor_fairbanks
void AddSC_boss_high_inquisitor_fairbanks()
Definition
boss_high_inquisitor_fairbanks.cpp:130
SPELL_HEAL
@ SPELL_HEAL
Definition
boss_moira_bronzebeard.cpp:11
SPELL_DISPELMAGIC
@ SPELL_DISPELMAGIC
Definition
boss_moroes.cpp:43
SPELL_FEAR
@ SPELL_FEAR
Definition
boss_nefarian.cpp:106
SPELL_CURSEOFBLOOD
@ SPELL_CURSEOFBLOOD
Definition
boss_shadow_hunter_voshgajin.cpp:12
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::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_high_inquisitor_fairbanks
Definition
boss_high_inquisitor_fairbanks.cpp:27
boss_high_inquisitor_fairbanks::boss_high_inquisitor_fairbanks
boss_high_inquisitor_fairbanks()
Definition
boss_high_inquisitor_fairbanks.cpp:29
boss_high_inquisitor_fairbanks::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
boss_high_inquisitor_fairbanks.cpp:31
ScriptedAI::me
Creature * me
Definition
ScriptedCreature.h:182
ScriptedAI::HealthAbovePct
bool HealthAbovePct(uint32 pct) const
Definition
ScriptedCreature.h:251
ScriptedAI::ScriptedAI
ScriptedAI(Creature *creature)
Definition
ScriptedCreature.cpp:85
boss_high_inquisitor_fairbanks::boss_high_inquisitor_fairbanksAI
Definition
boss_high_inquisitor_fairbanks.cpp:37
boss_high_inquisitor_fairbanks::boss_high_inquisitor_fairbanksAI::Reset
void Reset() OVERRIDE
Definition
boss_high_inquisitor_fairbanks.cpp:48
boss_high_inquisitor_fairbanks::boss_high_inquisitor_fairbanksAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
boss_high_inquisitor_fairbanks.cpp:61
boss_high_inquisitor_fairbanks::boss_high_inquisitor_fairbanksAI::Heal_Timer
uint32 Heal_Timer
Definition
boss_high_inquisitor_fairbanks.cpp:43
boss_high_inquisitor_fairbanks::boss_high_inquisitor_fairbanksAI::boss_high_inquisitor_fairbanksAI
boss_high_inquisitor_fairbanksAI(Creature *creature)
Definition
boss_high_inquisitor_fairbanks.cpp:38
boss_high_inquisitor_fairbanks::boss_high_inquisitor_fairbanksAI::Fear_Timer
uint32 Fear_Timer
Definition
boss_high_inquisitor_fairbanks.cpp:42
boss_high_inquisitor_fairbanks::boss_high_inquisitor_fairbanksAI::Sleep_Timer
uint32 Sleep_Timer
Definition
boss_high_inquisitor_fairbanks.cpp:44
boss_high_inquisitor_fairbanks::boss_high_inquisitor_fairbanksAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
boss_high_inquisitor_fairbanks.cpp:67
boss_high_inquisitor_fairbanks::boss_high_inquisitor_fairbanksAI::DispelMagic_Timer
uint32 DispelMagic_Timer
Definition
boss_high_inquisitor_fairbanks.cpp:41
boss_high_inquisitor_fairbanks::boss_high_inquisitor_fairbanksAI::Dispel_Timer
uint32 Dispel_Timer
Definition
boss_high_inquisitor_fairbanks.cpp:45
boss_high_inquisitor_fairbanks::boss_high_inquisitor_fairbanksAI::PowerWordShield
bool PowerWordShield
Definition
boss_high_inquisitor_fairbanks.cpp:46
boss_high_inquisitor_fairbanks::boss_high_inquisitor_fairbanksAI::CurseOfBlood_Timer
uint32 CurseOfBlood_Timer
Definition
boss_high_inquisitor_fairbanks.cpp:40
src
server
scripts
EasternKingdoms
ScarletMonastery
boss_high_inquisitor_fairbanks.cpp
Generated on
for Project SkyFire Core by
1.17.0