Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
zone_thunder_bluff.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: Thunder_Bluff
8
SD%Complete: 100
9
SDComment: Quest support: 925
10
SDCategory: Thunder Bluff
11
EndScriptData */
12
13
#include "
ScriptMgr.h
"
14
#include "
ScriptedCreature.h
"
15
#include "
ScriptedGossip.h
"
16
#include "
Player.h
"
17
18
/*#####
19
# npc_cairne_bloodhoof
20
######*/
21
22
enum
CairneBloodhoof
23
{
24
SPELL_BERSERKER_CHARGE
= 16636,
25
SPELL_CLEAVE
= 16044,
26
SPELL_MORTAL_STRIKE
= 16856,
27
SPELL_THUNDERCLAP
= 23931,
28
SPELL_UPPERCUT
= 22916
29
};
30
31
#define GOSSIP_HCB "I know this is rather silly but a young ward who is a bit shy would like your hoofprint."
33
class
npc_cairne_bloodhoof
:
public
CreatureScript
34
{
35
public
:
36
npc_cairne_bloodhoof
() :
CreatureScript
(
"npc_cairne_bloodhoof"
) { }
37
38
CreatureAI
*
GetAI
(
Creature
* creature)
const
OVERRIDE
39
{
40
return
new
npc_cairne_bloodhoofAI
(creature);
41
}
42
43
struct
npc_cairne_bloodhoofAI
:
public
ScriptedAI
44
{
45
npc_cairne_bloodhoofAI
(
Creature
* creature) :
ScriptedAI
(creature) { }
46
47
uint32
BerserkerChargeTimer
;
48
uint32
CleaveTimer
;
49
uint32
MortalStrikeTimer
;
50
uint32
ThunderclapTimer
;
51
uint32
UppercutTimer
;
52
53
void
Reset
()
OVERRIDE
54
{
55
BerserkerChargeTimer
= 30000;
56
CleaveTimer
= 5000;
57
MortalStrikeTimer
= 10000;
58
ThunderclapTimer
= 15000;
59
UppercutTimer
= 10000;
60
}
61
62
void
EnterCombat
(
Unit
*
/*who*/
)
OVERRIDE
{ }
63
64
void
UpdateAI
(
uint32
diff)
OVERRIDE
65
{
66
if
(!
UpdateVictim
())
67
return
;
68
69
if
(
BerserkerChargeTimer
<= diff)
70
{
71
if
(
Unit
* target =
SelectTarget
(
SELECT_TARGET_RANDOM
, 0))
72
DoCast
(target,
SPELL_BERSERKER_CHARGE
);
73
BerserkerChargeTimer
= 25000;
74
}
else
BerserkerChargeTimer
-= diff;
75
76
if
(
UppercutTimer
<= diff)
77
{
78
DoCastVictim
(
SPELL_UPPERCUT
);
79
UppercutTimer
= 20000;
80
}
else
UppercutTimer
-= diff;
81
82
if
(
ThunderclapTimer
<= diff)
83
{
84
DoCastVictim
(
SPELL_THUNDERCLAP
);
85
ThunderclapTimer
= 15000;
86
}
else
ThunderclapTimer
-= diff;
87
88
if
(
MortalStrikeTimer
<= diff)
89
{
90
DoCastVictim
(
SPELL_MORTAL_STRIKE
);
91
MortalStrikeTimer
= 15000;
92
}
else
MortalStrikeTimer
-= diff;
93
94
if
(
CleaveTimer
<= diff)
95
{
96
DoCastVictim
(
SPELL_CLEAVE
);
97
CleaveTimer
= 7000;
98
}
else
CleaveTimer
-= diff;
99
100
DoMeleeAttackIfReady
();
101
}
102
};
103
};
104
105
void
AddSC_thunder_bluff
()
106
{
107
new
npc_cairne_bloodhoof
();
108
}
uint32
std::uint32_t uint32
Definition
Define.h:77
OVERRIDE
#define OVERRIDE
Definition
Define.h:60
Player.h
ScriptMgr.h
ScriptedCreature.h
ScriptedGossip.h
SELECT_TARGET_RANDOM
@ SELECT_TARGET_RANDOM
Definition
UnitAI.h:23
SPELL_CLEAVE
@ SPELL_CLEAVE
Definition
alterac_valley.cpp:12
SPELL_MORTAL_STRIKE
@ SPELL_MORTAL_STRIKE
Definition
boss_galvangar.cpp:15
SPELL_BERSERKER_CHARGE
@ SPELL_BERSERKER_CHARGE
Definition
boss_midnight.cpp:30
SPELL_THUNDERCLAP
@ SPELL_THUNDERCLAP
Definition
boss_vanndar.cpp:22
SPELL_UPPERCUT
@ SPELL_UPPERCUT
Definition
boss_warmaster_voone.cpp:14
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
npc_cairne_bloodhoof
Definition
zone_thunder_bluff.cpp:34
npc_cairne_bloodhoof::GetAI
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Definition
zone_thunder_bluff.cpp:38
npc_cairne_bloodhoof::npc_cairne_bloodhoof
npc_cairne_bloodhoof()
Definition
zone_thunder_bluff.cpp:36
ScriptedAI::ScriptedAI
ScriptedAI(Creature *creature)
Definition
ScriptedCreature.cpp:85
npc_cairne_bloodhoof::npc_cairne_bloodhoofAI
Definition
zone_thunder_bluff.cpp:44
npc_cairne_bloodhoof::npc_cairne_bloodhoofAI::UpdateAI
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Definition
zone_thunder_bluff.cpp:64
npc_cairne_bloodhoof::npc_cairne_bloodhoofAI::UppercutTimer
uint32 UppercutTimer
Definition
zone_thunder_bluff.cpp:51
npc_cairne_bloodhoof::npc_cairne_bloodhoofAI::Reset
void Reset() OVERRIDE
Definition
zone_thunder_bluff.cpp:53
npc_cairne_bloodhoof::npc_cairne_bloodhoofAI::MortalStrikeTimer
uint32 MortalStrikeTimer
Definition
zone_thunder_bluff.cpp:49
npc_cairne_bloodhoof::npc_cairne_bloodhoofAI::BerserkerChargeTimer
uint32 BerserkerChargeTimer
Definition
zone_thunder_bluff.cpp:47
npc_cairne_bloodhoof::npc_cairne_bloodhoofAI::CleaveTimer
uint32 CleaveTimer
Definition
zone_thunder_bluff.cpp:48
npc_cairne_bloodhoof::npc_cairne_bloodhoofAI::ThunderclapTimer
uint32 ThunderclapTimer
Definition
zone_thunder_bluff.cpp:50
npc_cairne_bloodhoof::npc_cairne_bloodhoofAI::npc_cairne_bloodhoofAI
npc_cairne_bloodhoofAI(Creature *creature)
Definition
zone_thunder_bluff.cpp:45
npc_cairne_bloodhoof::npc_cairne_bloodhoofAI::EnterCombat
void EnterCombat(Unit *) OVERRIDE
Definition
zone_thunder_bluff.cpp:62
CairneBloodhoof
CairneBloodhoof
Definition
zone_thunder_bluff.cpp:23
SPELL_CLEAVE
@ SPELL_CLEAVE
Definition
zone_thunder_bluff.cpp:25
SPELL_MORTAL_STRIKE
@ SPELL_MORTAL_STRIKE
Definition
zone_thunder_bluff.cpp:26
SPELL_THUNDERCLAP
@ SPELL_THUNDERCLAP
Definition
zone_thunder_bluff.cpp:27
SPELL_BERSERKER_CHARGE
@ SPELL_BERSERKER_CHARGE
Definition
zone_thunder_bluff.cpp:24
SPELL_UPPERCUT
@ SPELL_UPPERCUT
Definition
zone_thunder_bluff.cpp:28
AddSC_thunder_bluff
void AddSC_thunder_bluff()
Definition
zone_thunder_bluff.cpp:105
src
server
scripts
Kalimdor
zone_thunder_bluff.cpp
Generated on
for Project SkyFire Core by
1.17.0