Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
instance_vault_of_archavon.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 "
InstanceScript.h
"
8
#include "
vault_of_archavon.h
"
9
10
/* Vault of Archavon encounters:
11
1 - Archavon the Stone Watcher event
12
2 - Emalon the Storm Watcher event
13
3 - Koralon the Flame Watcher event
14
4 - Toravon the Ice Watcher event
15
*/
16
17
class
instance_vault_of_archavon
:
public
InstanceMapScript
18
{
19
public
:
20
instance_vault_of_archavon
() :
InstanceMapScript
(
"instance_vault_of_archavon"
, 624) { }
21
22
struct
instance_vault_of_archavon_InstanceMapScript
:
public
InstanceScript
23
{
24
instance_vault_of_archavon_InstanceMapScript
(
Map
* map) :
InstanceScript
(map)
25
{
26
SetBossNumber
(
EncounterCount
);
27
28
EmalonGUID
= 0;
29
ToravonGUID
= 0;
30
ArchavonDeath
= 0;
31
EmalonDeath
= 0;
32
KoralonDeath
= 0;
33
}
34
35
void
OnCreatureCreate
(
Creature
* creature)
OVERRIDE
36
{
37
switch
(creature->GetEntry())
38
{
39
case
NPC_EMALON
:
40
EmalonGUID
= creature->GetGUID();
41
break
;
42
case
NPC_TORAVON
:
43
ToravonGUID
= creature->GetGUID();
44
break
;
45
default
:
46
break
;
47
}
48
}
49
50
uint64
GetData64
(
uint32
identifier)
const
OVERRIDE
51
{
52
switch
(identifier)
53
{
54
case
DATA_EMALON
:
55
return
EmalonGUID
;
56
case
DATA_TORAVON
:
57
return
ToravonGUID
;
58
default
:
59
break
;
60
}
61
62
return
0;
63
}
64
65
bool
SetBossState
(
uint32
type,
EncounterState
state)
OVERRIDE
66
{
67
if
(!
InstanceScript::SetBossState
(type, state))
68
return
false
;
69
70
if
(state !=
DONE
)
71
return
true
;
72
73
switch
(type)
74
{
75
case
DATA_ARCHAVON
:
76
ArchavonDeath
= time(NULL);
77
break
;
78
case
DATA_EMALON
:
79
EmalonDeath
= time(NULL);
80
break
;
81
case
DATA_KORALON
:
82
KoralonDeath
= time(NULL);
83
break
;
84
default
:
85
return
true
;
86
}
87
88
// on every death of Archavon, Emalon and Koralon check our achievement
89
DoCastSpellOnPlayers
(
SPELL_EARTH_WIND_FIRE_ACHIEVEMENT_CHECK
);
90
91
return
true
;
92
}
93
94
bool
CheckAchievementCriteriaMeet
(
uint32
criteria_id,
Player
const
*
/*source*/
,
Unit
const
*
/*target*/
,
uint32
/*miscvalue1*/
)
OVERRIDE
95
{
96
switch
(criteria_id)
97
{
98
case
CRITERIA_EARTH_WIND_FIRE_10
:
99
case
CRITERIA_EARTH_WIND_FIRE_25
:
100
if
(
ArchavonDeath
&&
EmalonDeath
&&
KoralonDeath
)
101
{
102
// instance difficulty check is already done in db (achievement_criteria_data)
103
// int() for Visual Studio, compile errors with abs(time_t)
104
return
(abs(
int
(
ArchavonDeath
-
EmalonDeath
)) <
MINUTE
&& \
105
abs(
int
(
EmalonDeath
-
KoralonDeath
)) <
MINUTE
&& \
106
abs(
int
(
KoralonDeath
-
ArchavonDeath
)) <
MINUTE
);
107
}
108
break
;
109
default
:
110
break
;
111
}
112
113
return
false
;
114
}
115
116
private
:
117
uint64
EmalonGUID
;
118
uint64
ToravonGUID
;
119
time_t
ArchavonDeath
;
120
time_t
EmalonDeath
;
121
time_t
KoralonDeath
;
122
};
123
124
InstanceScript
*
GetInstanceScript
(
InstanceMap
* map)
const
OVERRIDE
125
{
126
return
new
instance_vault_of_archavon_InstanceMapScript
(map);
127
}
128
};
129
130
void
AddSC_instance_vault_of_archavon
()
131
{
132
new
instance_vault_of_archavon
();
133
}
MINUTE
@ MINUTE
Definition
Common.h:119
uint32
std::uint32_t uint32
Definition
Define.h:77
OVERRIDE
#define OVERRIDE
Definition
Define.h:60
uint64
std::uint64_t uint64
Definition
Define.h:76
InstanceScript.h
EncounterState
EncounterState
Definition
InstanceScript.h:45
DONE
@ DONE
Definition
InstanceScript.h:49
ScriptMgr.h
EncounterCount
uint32 const EncounterCount
Definition
baradin_hold.h:15
Creature
Definition
Creature.h:427
InstanceMap
Definition
Map.h:637
InstanceMapScript::InstanceMapScript
InstanceMapScript(const char *name, uint32 mapId)
Definition
ScriptMgr.cpp:1412
InstanceScript
Definition
InstanceScript.h:123
InstanceScript::InstanceScript
InstanceScript(Map *map)
Definition
InstanceScript.h:125
InstanceScript::SetBossNumber
void SetBossNumber(uint32 number)
Definition
InstanceScript.h:212
InstanceScript::SetBossState
virtual bool SetBossState(uint32 id, EncounterState state)
Definition
InstanceScript.cpp:182
InstanceScript::DoCastSpellOnPlayers
void DoCastSpellOnPlayers(uint32 spell)
Definition
InstanceScript.cpp:369
Map
Definition
Map.h:238
Player
Definition
Player.h:1289
Unit
Definition
Unit.h:1367
instance_vault_of_archavon
Definition
instance_vault_of_archavon.cpp:18
instance_vault_of_archavon::instance_vault_of_archavon
instance_vault_of_archavon()
Definition
instance_vault_of_archavon.cpp:20
instance_vault_of_archavon::GetInstanceScript
InstanceScript * GetInstanceScript(InstanceMap *map) const OVERRIDE
Definition
instance_vault_of_archavon.cpp:124
AddSC_instance_vault_of_archavon
void AddSC_instance_vault_of_archavon()
Definition
instance_vault_of_archavon.cpp:130
instance_vault_of_archavon::instance_vault_of_archavon_InstanceMapScript
Definition
instance_vault_of_archavon.cpp:23
instance_vault_of_archavon::instance_vault_of_archavon_InstanceMapScript::EmalonGUID
uint64 EmalonGUID
Definition
instance_vault_of_archavon.cpp:117
instance_vault_of_archavon::instance_vault_of_archavon_InstanceMapScript::ArchavonDeath
time_t ArchavonDeath
Definition
instance_vault_of_archavon.cpp:119
instance_vault_of_archavon::instance_vault_of_archavon_InstanceMapScript::OnCreatureCreate
void OnCreatureCreate(Creature *creature) OVERRIDE
Definition
instance_vault_of_archavon.cpp:35
instance_vault_of_archavon::instance_vault_of_archavon_InstanceMapScript::KoralonDeath
time_t KoralonDeath
Definition
instance_vault_of_archavon.cpp:121
instance_vault_of_archavon::instance_vault_of_archavon_InstanceMapScript::SetBossState
bool SetBossState(uint32 type, EncounterState state) OVERRIDE
Definition
instance_vault_of_archavon.cpp:65
instance_vault_of_archavon::instance_vault_of_archavon_InstanceMapScript::CheckAchievementCriteriaMeet
bool CheckAchievementCriteriaMeet(uint32 criteria_id, Player const *, Unit const *, uint32) OVERRIDE
Definition
instance_vault_of_archavon.cpp:94
instance_vault_of_archavon::instance_vault_of_archavon_InstanceMapScript::GetData64
uint64 GetData64(uint32 identifier) const OVERRIDE
Definition
instance_vault_of_archavon.cpp:50
instance_vault_of_archavon::instance_vault_of_archavon_InstanceMapScript::instance_vault_of_archavon_InstanceMapScript
instance_vault_of_archavon_InstanceMapScript(Map *map)
Definition
instance_vault_of_archavon.cpp:24
instance_vault_of_archavon::instance_vault_of_archavon_InstanceMapScript::EmalonDeath
time_t EmalonDeath
Definition
instance_vault_of_archavon.cpp:120
instance_vault_of_archavon::instance_vault_of_archavon_InstanceMapScript::ToravonGUID
uint64 ToravonGUID
Definition
instance_vault_of_archavon.cpp:118
vault_of_archavon.h
CRITERIA_EARTH_WIND_FIRE_25
@ CRITERIA_EARTH_WIND_FIRE_25
Definition
vault_of_archavon.h:30
CRITERIA_EARTH_WIND_FIRE_10
@ CRITERIA_EARTH_WIND_FIRE_10
Definition
vault_of_archavon.h:29
SPELL_EARTH_WIND_FIRE_ACHIEVEMENT_CHECK
@ SPELL_EARTH_WIND_FIRE_ACHIEVEMENT_CHECK
Definition
vault_of_archavon.h:35
NPC_TORAVON
@ NPC_TORAVON
Definition
vault_of_archavon.h:24
NPC_EMALON
@ NPC_EMALON
Definition
vault_of_archavon.h:22
DATA_ARCHAVON
@ DATA_ARCHAVON
Definition
vault_of_archavon.h:13
DATA_KORALON
@ DATA_KORALON
Definition
vault_of_archavon.h:15
DATA_EMALON
@ DATA_EMALON
Definition
vault_of_archavon.h:14
DATA_TORAVON
@ DATA_TORAVON
Definition
vault_of_archavon.h:16
src
server
scripts
Northrend
VaultOfArchavon
instance_vault_of_archavon.cpp
Generated on
for Project SkyFire Core by
1.17.0