Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
boss_nerubenkan.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_Nerubenkan
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_ENCASINGWEBS
= 4962,
20
SPELL_PIERCEARMOR
= 6016,
21
SPELL_CRYPT_SCARABS
= 31602,
22
SPELL_RAISEUNDEADSCARAB
= 17235
23
};
24
25
class
boss_nerubenkan
:
public
CreatureScript
26
{
27
public
:
28
boss_nerubenkan
() :
CreatureScript
(
"boss_nerubenkan"
) { }
29
30
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
31
{
32
return
new
boss_nerubenkanAI
(creature);
33
}
34
35
struct
boss_nerubenkanAI
:
public
ScriptedAI
36
{
37
boss_nerubenkanAI
(
Creature
* creature) :
ScriptedAI
(creature)
38
{
39
instance
=
me
->GetInstanceScript();
40
}
41
42
InstanceScript
*
instance
;
43
44
uint32
EncasingWebs_Timer
;
45
uint32
PierceArmor_Timer
;
46
uint32
CryptScarabs_Timer
;
47
uint32
RaiseUndeadScarab_Timer
;
48
49
void
Reset
()
OVERRIDE
50
{
51
CryptScarabs_Timer
= 3000;
52
EncasingWebs_Timer
= 7000;
53
PierceArmor_Timer
= 19000;
54
RaiseUndeadScarab_Timer
= 3000;
55
}
56
57
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
58
{
59
}
60
61
void
JustDied
(
Unit
*
/*killer*/
)
OVERRIDE
62
{
63
if
(
instance
)
64
instance
->SetData(
TYPE_NERUB
,
IN_PROGRESS
);
65
}
66
67
void
RaiseUndeadScarab
(
Unit
* victim)
68
{
69
if
(
Creature
* pUndeadScarab =
DoSpawnCreature
(10876,
float
(std::rand() % 9 + -9),
float
(std::rand() % 9 + -9), 0, 0,
TempSummonType::TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN
, 180000))
70
if
(pUndeadScarab->AI())
71
pUndeadScarab->AI()->AttackStart(victim);
72
}
73
74
void
UpdateAI
(
uint32
diff)
OVERRIDE
75
{
76
if
(!
UpdateVictim
())
77
return
;
78
79
//EncasingWebs
80
if
(
EncasingWebs_Timer
<= diff)
81
{
82
DoCastVictim
(
SPELL_ENCASINGWEBS
);
83
EncasingWebs_Timer
= 30000;
84
}
else
EncasingWebs_Timer
-= diff;
85
86
//PierceArmor
87
if
(
PierceArmor_Timer
<= diff)
88
{
89
if
((std::rand() % 3) < 2)
90
DoCastVictim
(
SPELL_PIERCEARMOR
);
91
PierceArmor_Timer
= 35000;
92
}
else
PierceArmor_Timer
-= diff;
93
94
//CryptScarabs_Timer
95
if
(
CryptScarabs_Timer
<= diff)
96
{
97
DoCastVictim
(
SPELL_CRYPT_SCARABS
);
98
CryptScarabs_Timer
= 20000;
99
}
else
CryptScarabs_Timer
-= diff;
100
101
//RaiseUndeadScarab
102
if
(
RaiseUndeadScarab_Timer
<= diff)
103
{
104
RaiseUndeadScarab
(
me
->GetVictim());
105
RaiseUndeadScarab_Timer
= 16000;
106
}
else
RaiseUndeadScarab_Timer
-= diff;
107
108
DoMeleeAttackIfReady
();
109
}
110
};
111
};
112
113
void
AddSC_boss_nerubenkan
()
114
{
115
new
boss_nerubenkan
();
116
}
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
TempSummonType::TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN
@ TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN
Definition
Object.h:69
ScriptMgr.h
ScriptedCreature.h
SPELL_PIERCEARMOR
@ SPELL_PIERCEARMOR
Definition
boss_nerubenkan.cpp:20
SPELL_CRYPT_SCARABS
@ SPELL_CRYPT_SCARABS
Definition
boss_nerubenkan.cpp:21
SPELL_ENCASINGWEBS
@ SPELL_ENCASINGWEBS
Definition
boss_nerubenkan.cpp:19
SPELL_RAISEUNDEADSCARAB
@ SPELL_RAISEUNDEADSCARAB
Definition
boss_nerubenkan.cpp:22
AddSC_boss_nerubenkan
void AddSC_boss_nerubenkan()
Definition
boss_nerubenkan.cpp:113
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::DoCastVictim
void DoCastVictim(uint32 spellId, bool triggered=false)
Definition
UnitAI.cpp:168
Unit
Definition
Unit.h:1367
boss_nerubenkan
Definition
boss_nerubenkan.cpp:26
boss_nerubenkan::boss_nerubenkan
boss_nerubenkan()
Definition
boss_nerubenkan.cpp:28
boss_nerubenkan::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
boss_nerubenkan.cpp:30
stratholme.h
TYPE_NERUB
@ TYPE_NERUB
Definition
stratholme.h:13
ScriptedAI::me
Creature * me
Definition
ScriptedCreature.h:182
ScriptedAI::DoSpawnCreature
Creature * DoSpawnCreature(uint32 entry, float offsetX, float offsetY, float offsetZ, float angle, TempSummonType type, uint32 despawntime)
Definition
ScriptedCreature.cpp:178
ScriptedAI::ScriptedAI
ScriptedAI(Creature *creature)
Definition
ScriptedCreature.cpp:85
boss_nerubenkan::boss_nerubenkanAI
Definition
boss_nerubenkan.cpp:36
boss_nerubenkan::boss_nerubenkanAI::RaiseUndeadScarab_Timer
uint32 RaiseUndeadScarab_Timer
Definition
boss_nerubenkan.cpp:47
boss_nerubenkan::boss_nerubenkanAI::Reset
void Reset() OVERRIDE
Definition
boss_nerubenkan.cpp:49
boss_nerubenkan::boss_nerubenkanAI::JustDied
void JustDied(Unit *) OVERRIDE
Definition
boss_nerubenkan.cpp:61
boss_nerubenkan::boss_nerubenkanAI::RaiseUndeadScarab
void RaiseUndeadScarab(Unit *victim)
Definition
boss_nerubenkan.cpp:67
boss_nerubenkan::boss_nerubenkanAI::PierceArmor_Timer
uint32 PierceArmor_Timer
Definition
boss_nerubenkan.cpp:45
boss_nerubenkan::boss_nerubenkanAI::CryptScarabs_Timer
uint32 CryptScarabs_Timer
Definition
boss_nerubenkan.cpp:46
boss_nerubenkan::boss_nerubenkanAI::boss_nerubenkanAI
boss_nerubenkanAI(Creature *creature)
Definition
boss_nerubenkan.cpp:37
boss_nerubenkan::boss_nerubenkanAI::EncasingWebs_Timer
uint32 EncasingWebs_Timer
Definition
boss_nerubenkan.cpp:44
boss_nerubenkan::boss_nerubenkanAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
boss_nerubenkan.cpp:74
boss_nerubenkan::boss_nerubenkanAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
boss_nerubenkan.cpp:57
boss_nerubenkan::boss_nerubenkanAI::instance
InstanceScript * instance
Definition
boss_nerubenkan.cpp:42
src
server
scripts
EasternKingdoms
Stratholme
boss_nerubenkan.cpp
Generated on
for Project SkyFire Core by
1.17.0