Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
boss_anubshiah.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_SHADOWBOLT
= 17228,
12
SPELL_CURSEOFTONGUES
= 15470,
13
SPELL_CURSEOFWEAKNESS
= 17227,
14
SPELL_DEMONARMOR
= 11735,
15
SPELL_ENVELOPINGWEB
= 15471
16
};
17
18
class
boss_anubshiah
:
public
CreatureScript
19
{
20
public
:
21
boss_anubshiah
() :
CreatureScript
(
"boss_anubshiah"
) { }
22
23
struct
boss_anubshiahAI
:
public
ScriptedAI
24
{
25
boss_anubshiahAI
(
Creature
* creature) :
ScriptedAI
(creature)
26
{
27
ShadowBolt_Timer
= 0;
28
CurseOfTongues_Timer
= 0;
29
CurseOfWeakness_Timer
= 0;
30
DemonArmor_Timer
= 0;
31
EnvelopingWeb_Timer
= 0;
32
}
33
34
void
Reset
()
OVERRIDE
35
{
36
ShadowBolt_Timer
= 7000;
37
CurseOfTongues_Timer
= 24000;
38
CurseOfWeakness_Timer
= 12000;
39
DemonArmor_Timer
= 3000;
40
EnvelopingWeb_Timer
= 16000;
41
}
42
43
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
{ }
44
45
void
UpdateAI
(
uint32
diff)
OVERRIDE
46
{
47
//Return since we have no target
48
if
(!
UpdateVictim
())
49
return
;
50
51
//ShadowBolt_Timer
52
if
(
ShadowBolt_Timer
<= diff)
53
{
54
DoCastVictim
(
SPELL_SHADOWBOLT
);
55
ShadowBolt_Timer
= 7000;
56
}
else
ShadowBolt_Timer
-= diff;
57
58
//CurseOfTongues_Timer
59
if
(
CurseOfTongues_Timer
<= diff)
60
{
61
if
(
Unit
* target =
SelectTarget
(
SELECT_TARGET_RANDOM
, 0, 100,
true
))
62
DoCast
(target,
SPELL_CURSEOFTONGUES
);
63
CurseOfTongues_Timer
= 18000;
64
}
else
CurseOfTongues_Timer
-= diff;
65
66
//CurseOfWeakness_Timer
67
if
(
CurseOfWeakness_Timer
<= diff)
68
{
69
DoCastVictim
(
SPELL_CURSEOFWEAKNESS
);
70
CurseOfWeakness_Timer
= 45000;
71
}
else
CurseOfWeakness_Timer
-= diff;
72
73
//DemonArmor_Timer
74
if
(
DemonArmor_Timer
<= diff)
75
{
76
DoCast
(
me
,
SPELL_DEMONARMOR
);
77
DemonArmor_Timer
= 300000;
78
}
else
DemonArmor_Timer
-= diff;
79
80
//EnvelopingWeb_Timer
81
if
(
EnvelopingWeb_Timer
<= diff)
82
{
83
if
(
Unit
* target =
SelectTarget
(
SELECT_TARGET_RANDOM
, 0, 100,
true
))
84
DoCast
(target,
SPELL_ENVELOPINGWEB
);
85
EnvelopingWeb_Timer
= 12000;
86
}
else
EnvelopingWeb_Timer
-= diff;
87
88
DoMeleeAttackIfReady
();
89
}
90
91
private
:
92
uint32
ShadowBolt_Timer
;
93
uint32
CurseOfTongues_Timer
;
94
uint32
CurseOfWeakness_Timer
;
95
uint32
DemonArmor_Timer
;
96
uint32
EnvelopingWeb_Timer
;
97
};
98
99
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
100
{
101
return
new
boss_anubshiahAI
(creature);
102
}
103
};
104
105
void
AddSC_boss_anubshiah
()
106
{
107
new
boss_anubshiah
();
108
}
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
SELECT_TARGET_RANDOM
@ SELECT_TARGET_RANDOM
Definition
UnitAI.h:23
SPELL_CURSEOFWEAKNESS
@ SPELL_CURSEOFWEAKNESS
Definition
boss_anubshiah.cpp:13
SPELL_ENVELOPINGWEB
@ SPELL_ENVELOPINGWEB
Definition
boss_anubshiah.cpp:15
SPELL_CURSEOFTONGUES
@ SPELL_CURSEOFTONGUES
Definition
boss_anubshiah.cpp:12
SPELL_SHADOWBOLT
@ SPELL_SHADOWBOLT
Definition
boss_anubshiah.cpp:11
SPELL_DEMONARMOR
@ SPELL_DEMONARMOR
Definition
boss_anubshiah.cpp:14
AddSC_boss_anubshiah
void AddSC_boss_anubshiah()
Definition
boss_anubshiah.cpp:105
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_anubshiah
Definition
boss_anubshiah.cpp:19
boss_anubshiah::boss_anubshiah
boss_anubshiah()
Definition
boss_anubshiah.cpp:21
boss_anubshiah::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
boss_anubshiah.cpp:99
ScriptedAI::me
Creature * me
Definition
ScriptedCreature.h:182
ScriptedAI::ScriptedAI
ScriptedAI(Creature *creature)
Definition
ScriptedCreature.cpp:85
boss_anubshiah::boss_anubshiahAI
Definition
boss_anubshiah.cpp:24
boss_anubshiah::boss_anubshiahAI::Reset
void Reset() OVERRIDE
Definition
boss_anubshiah.cpp:34
boss_anubshiah::boss_anubshiahAI::ShadowBolt_Timer
uint32 ShadowBolt_Timer
Definition
boss_anubshiah.cpp:92
boss_anubshiah::boss_anubshiahAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
boss_anubshiah.cpp:43
boss_anubshiah::boss_anubshiahAI::EnvelopingWeb_Timer
uint32 EnvelopingWeb_Timer
Definition
boss_anubshiah.cpp:96
boss_anubshiah::boss_anubshiahAI::CurseOfWeakness_Timer
uint32 CurseOfWeakness_Timer
Definition
boss_anubshiah.cpp:94
boss_anubshiah::boss_anubshiahAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
boss_anubshiah.cpp:45
boss_anubshiah::boss_anubshiahAI::DemonArmor_Timer
uint32 DemonArmor_Timer
Definition
boss_anubshiah.cpp:95
boss_anubshiah::boss_anubshiahAI::CurseOfTongues_Timer
uint32 CurseOfTongues_Timer
Definition
boss_anubshiah.cpp:93
boss_anubshiah::boss_anubshiahAI::boss_anubshiahAI
boss_anubshiahAI(Creature *creature)
Definition
boss_anubshiah.cpp:25
src
server
scripts
EasternKingdoms
BlackrockMountain
BlackrockDepths
boss_anubshiah.cpp
Generated on
for Project SkyFire Core by
1.17.0