Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
instance_arcatraz.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: Instance_Arcatraz
8
SD%Complete: 80
9
SDComment: Mainly Harbringer Skyriss event
10
SDCategory: Tempest Keep, The Arcatraz
11
EndScriptData */
12
13
#include "
ScriptMgr.h
"
14
#include "
InstanceScript.h
"
15
#include "
arcatraz.h
"
16
17
#define MAX_ENCOUNTER 9
18
19
enum
Units
20
{
21
CONTAINMENT_CORE_SECURITY_FIELD_ALPHA
= 184318,
//door opened when Wrath-Scryer Soccothrates dies
22
CONTAINMENT_CORE_SECURITY_FIELD_BETA
= 184319,
//door opened when Dalliah the Doomsayer dies
23
POD_ALPHA
= 183961,
//pod first boss wave
24
POD_BETA
= 183963,
//pod second boss wave
25
POD_DELTA
= 183964,
//pod third boss wave
26
POD_GAMMA
= 183962,
//pod fourth boss wave
27
POD_OMEGA
= 183965,
//pod fifth boss wave
28
WARDENS_SHIELD
= 184802,
// warden shield
29
SEAL_SPHERE
= 184802,
//shield 'protecting' mellichar
30
31
MELLICHAR
= 20904,
//skyriss will kill this unit
32
};
33
34
/* Arcatraz encounters:
35
1 - Zereketh the Unbound event
36
2 - Dalliah the Doomsayer event
37
3 - Wrath-Scryer Soccothrates event
38
4 - Harbinger Skyriss event, 5 sub-events
39
*/
40
41
class
instance_arcatraz
:
public
InstanceMapScript
42
{
43
public
:
44
instance_arcatraz
()
45
:
InstanceMapScript
(
"instance_arcatraz"
, 552)
46
{
47
}
48
struct
instance_arcatraz_InstanceMapScript
:
public
InstanceScript
49
{
50
instance_arcatraz_InstanceMapScript
(
Map
* map) :
InstanceScript
(map) { }
51
52
uint32
m_auiEncounter
[
MAX_ENCOUNTER
];
53
54
uint64
Containment_Core_Security_Field_AlphaGUID
;
55
uint64
Containment_Core_Security_Field_BetaGUID
;
56
uint64
Pod_AlphaGUID
;
57
uint64
Pod_GammaGUID
;
58
uint64
Pod_BetaGUID
;
59
uint64
Pod_DeltaGUID
;
60
uint64
Pod_OmegaGUID
;
61
uint64
Wardens_ShieldGUID
;
62
uint64
GoSphereGUID
;
63
uint64
MellicharGUID
;
64
65
void
Initialize
()
OVERRIDE
66
{
67
memset(&
m_auiEncounter
, 0,
sizeof
(
m_auiEncounter
));
68
69
Containment_Core_Security_Field_AlphaGUID
= 0;
70
Containment_Core_Security_Field_BetaGUID
= 0;
71
Pod_AlphaGUID
= 0;
72
Pod_GammaGUID
= 0;
73
Pod_BetaGUID
= 0;
74
Pod_DeltaGUID
= 0;
75
Pod_OmegaGUID
= 0;
76
Wardens_ShieldGUID
= 0;
77
GoSphereGUID
= 0;
78
MellicharGUID
= 0;
79
}
80
81
bool
IsEncounterInProgress
() const
OVERRIDE
82
{
83
for
(
uint8
i = 0; i <
MAX_ENCOUNTER
; ++i)
84
if
(
m_auiEncounter
[i] ==
IN_PROGRESS
)
85
return
true
;
86
87
return
false
;
88
}
89
90
void
OnGameObjectCreate
(
GameObject
* go)
OVERRIDE
91
{
92
switch
(go->GetEntry())
93
{
94
case
CONTAINMENT_CORE_SECURITY_FIELD_ALPHA
:
95
Containment_Core_Security_Field_AlphaGUID
= go->GetGUID();
96
break
;
97
98
case
CONTAINMENT_CORE_SECURITY_FIELD_BETA
:
99
Containment_Core_Security_Field_BetaGUID
= go->GetGUID();
100
break
;
101
102
case
POD_ALPHA
:
103
Pod_AlphaGUID
= go->GetGUID();
104
break
;
105
106
case
POD_GAMMA
:
107
Pod_GammaGUID
= go->GetGUID();
108
break
;
109
110
case
POD_BETA
:
111
Pod_BetaGUID
= go->GetGUID();
112
break
;
113
114
case
POD_DELTA
:
115
Pod_DeltaGUID
= go->GetGUID();
116
break
;
117
118
case
POD_OMEGA
:
119
Pod_OmegaGUID
= go->GetGUID();
120
break
;
121
122
case
SEAL_SPHERE
:
123
GoSphereGUID
= go->GetGUID();
124
break
;
125
126
/*case WARDENS_SHIELD:
127
Wardens_ShieldGUID = go->GetGUID();
128
break;*/
129
}
130
}
131
132
void
OnCreatureCreate
(
Creature
* creature)
OVERRIDE
133
{
134
if
(creature->GetEntry() ==
MELLICHAR
)
135
MellicharGUID
= creature->GetGUID();
136
}
137
138
void
SetData
(
uint32
type,
uint32
data)
OVERRIDE
139
{
140
switch
(type)
141
{
142
case
TYPE_ZEREKETH
:
143
m_auiEncounter
[0] = data;
144
break
;
145
case
TYPE_DALLIAH
:
146
if
(data ==
DONE
)
147
{
148
if
(
GameObject
* go =
instance
->GetGameObject(
Containment_Core_Security_Field_BetaGUID
))
149
go->UseDoorOrButton();
150
}
151
m_auiEncounter
[1] = data;
152
break
;
153
case
TYPE_SOCCOTHRATES
:
154
if
(data ==
DONE
)
155
{
156
if
(
GameObject
* go =
instance
->GetGameObject(
Containment_Core_Security_Field_AlphaGUID
))
157
go->UseDoorOrButton();
158
}
159
m_auiEncounter
[2] = data;
160
break
;
161
case
TYPE_HARBINGERSKYRISS
:
162
if
(data ==
NOT_STARTED
|| data ==
FAIL
)
163
{
164
m_auiEncounter
[4] =
NOT_STARTED
;
165
m_auiEncounter
[5] =
NOT_STARTED
;
166
m_auiEncounter
[6] =
NOT_STARTED
;
167
m_auiEncounter
[7] =
NOT_STARTED
;
168
m_auiEncounter
[8] =
NOT_STARTED
;
169
}
170
m_auiEncounter
[3] = data;
171
break
;
172
case
TYPE_WARDEN_1
:
173
if
(data ==
IN_PROGRESS
)
174
if
(
GameObject
* go =
instance
->GetGameObject(
Pod_AlphaGUID
))
175
go->UseDoorOrButton();
176
m_auiEncounter
[4] = data;
177
break
;
178
case
TYPE_WARDEN_2
:
179
if
(data ==
IN_PROGRESS
)
180
{
181
if
(
GameObject
* go =
instance
->GetGameObject(
Pod_BetaGUID
))
182
go->UseDoorOrButton();
183
}
184
m_auiEncounter
[5] = data;
185
break
;
186
case
TYPE_WARDEN_3
:
187
if
(data ==
IN_PROGRESS
)
188
{
189
if
(
GameObject
* go =
instance
->GetGameObject(
Pod_DeltaGUID
))
190
go->UseDoorOrButton();
191
}
192
m_auiEncounter
[6] = data;
193
break
;
194
case
TYPE_WARDEN_4
:
195
if
(data ==
IN_PROGRESS
)
196
{
197
if
(
GameObject
* go =
instance
->GetGameObject(
Pod_GammaGUID
))
198
go->UseDoorOrButton();
199
}
200
m_auiEncounter
[7] = data;
201
break
;
202
case
TYPE_WARDEN_5
:
203
if
(data ==
IN_PROGRESS
)
204
{
205
if
(
GameObject
* go =
instance
->GetGameObject(
Pod_OmegaGUID
))
206
go->UseDoorOrButton();
207
}
208
m_auiEncounter
[8] = data;
209
break
;
210
case
TYPE_SHIELD_OPEN
:
211
if
(data ==
IN_PROGRESS
)
212
{
213
if
(
GameObject
* go =
instance
->GetGameObject(
Wardens_ShieldGUID
))
214
go->UseDoorOrButton();
215
}
216
break
;
217
}
218
}
219
220
uint32
GetData
(
uint32
type)
const
OVERRIDE
221
{
222
switch
(type)
223
{
224
case
TYPE_HARBINGERSKYRISS
:
return
m_auiEncounter
[3];
225
case
TYPE_WARDEN_1
:
return
m_auiEncounter
[4];
226
case
TYPE_WARDEN_2
:
return
m_auiEncounter
[5];
227
case
TYPE_WARDEN_3
:
return
m_auiEncounter
[6];
228
case
TYPE_WARDEN_4
:
return
m_auiEncounter
[7];
229
case
TYPE_WARDEN_5
:
return
m_auiEncounter
[8];
230
}
231
return
0;
232
}
233
234
uint64
GetData64
(
uint32
data)
const
OVERRIDE
235
{
236
switch
(data)
237
{
238
case
DATA_MELLICHAR
:
return
MellicharGUID
;
239
case
DATA_SPHERE_SHIELD
:
return
GoSphereGUID
;
240
}
241
return
0;
242
}
243
};
244
245
InstanceScript
*
GetInstanceScript
(
InstanceMap
* map)
const
OVERRIDE
246
{
247
return
new
instance_arcatraz_InstanceMapScript
(map);
248
}
249
};
250
251
void
AddSC_instance_arcatraz
()
252
{
253
new
instance_arcatraz
;
254
}
255
uint8
std::uint8_t uint8
Definition
Define.h:79
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
IN_PROGRESS
@ IN_PROGRESS
Definition
InstanceScript.h:47
FAIL
@ FAIL
Definition
InstanceScript.h:48
DONE
@ DONE
Definition
InstanceScript.h:49
NOT_STARTED
@ NOT_STARTED
Definition
InstanceScript.h:46
ScriptMgr.h
arcatraz.h
TYPE_WARDEN_5
@ TYPE_WARDEN_5
Definition
arcatraz.h:19
TYPE_WARDEN_1
@ TYPE_WARDEN_1
Definition
arcatraz.h:15
DATA_MELLICHAR
@ DATA_MELLICHAR
Definition
arcatraz.h:20
TYPE_ZEREKETH
@ TYPE_ZEREKETH
Definition
arcatraz.h:11
TYPE_SHIELD_OPEN
@ TYPE_SHIELD_OPEN
Definition
arcatraz.h:21
TYPE_SOCCOTHRATES
@ TYPE_SOCCOTHRATES
Definition
arcatraz.h:13
DATA_SPHERE_SHIELD
@ DATA_SPHERE_SHIELD
Definition
arcatraz.h:22
TYPE_HARBINGERSKYRISS
@ TYPE_HARBINGERSKYRISS
Definition
arcatraz.h:14
TYPE_DALLIAH
@ TYPE_DALLIAH
Definition
arcatraz.h:12
TYPE_WARDEN_4
@ TYPE_WARDEN_4
Definition
arcatraz.h:18
TYPE_WARDEN_3
@ TYPE_WARDEN_3
Definition
arcatraz.h:17
TYPE_WARDEN_2
@ TYPE_WARDEN_2
Definition
arcatraz.h:16
Creature
Definition
Creature.h:427
GameObject
Definition
GameObject.h:629
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::instance
Map * instance
Definition
InstanceScript.h:129
Map
Definition
Map.h:238
instance_arcatraz
Definition
instance_arcatraz.cpp:42
instance_arcatraz::GetInstanceScript
InstanceScript * GetInstanceScript(InstanceMap *map) const OVERRIDE
Definition
instance_arcatraz.cpp:245
instance_arcatraz::instance_arcatraz
instance_arcatraz()
Definition
instance_arcatraz.cpp:44
AddSC_instance_arcatraz
void AddSC_instance_arcatraz()
Definition
instance_arcatraz.cpp:251
Units
Units
Definition
instance_arcatraz.cpp:20
MELLICHAR
@ MELLICHAR
Definition
instance_arcatraz.cpp:31
POD_BETA
@ POD_BETA
Definition
instance_arcatraz.cpp:24
CONTAINMENT_CORE_SECURITY_FIELD_ALPHA
@ CONTAINMENT_CORE_SECURITY_FIELD_ALPHA
Definition
instance_arcatraz.cpp:21
WARDENS_SHIELD
@ WARDENS_SHIELD
Definition
instance_arcatraz.cpp:28
POD_OMEGA
@ POD_OMEGA
Definition
instance_arcatraz.cpp:27
POD_GAMMA
@ POD_GAMMA
Definition
instance_arcatraz.cpp:26
SEAL_SPHERE
@ SEAL_SPHERE
Definition
instance_arcatraz.cpp:29
CONTAINMENT_CORE_SECURITY_FIELD_BETA
@ CONTAINMENT_CORE_SECURITY_FIELD_BETA
Definition
instance_arcatraz.cpp:22
POD_DELTA
@ POD_DELTA
Definition
instance_arcatraz.cpp:25
POD_ALPHA
@ POD_ALPHA
Definition
instance_arcatraz.cpp:23
MAX_ENCOUNTER
#define MAX_ENCOUNTER
Definition
instance_arcatraz.cpp:17
instance_arcatraz::instance_arcatraz_InstanceMapScript
Definition
instance_arcatraz.cpp:49
instance_arcatraz::instance_arcatraz_InstanceMapScript::GoSphereGUID
uint64 GoSphereGUID
Definition
instance_arcatraz.cpp:62
instance_arcatraz::instance_arcatraz_InstanceMapScript::Containment_Core_Security_Field_BetaGUID
uint64 Containment_Core_Security_Field_BetaGUID
Definition
instance_arcatraz.cpp:55
instance_arcatraz::instance_arcatraz_InstanceMapScript::Pod_GammaGUID
uint64 Pod_GammaGUID
Definition
instance_arcatraz.cpp:57
instance_arcatraz::instance_arcatraz_InstanceMapScript::Pod_AlphaGUID
uint64 Pod_AlphaGUID
Definition
instance_arcatraz.cpp:56
instance_arcatraz::instance_arcatraz_InstanceMapScript::Initialize
void Initialize() OVERRIDE
Definition
instance_arcatraz.cpp:65
instance_arcatraz::instance_arcatraz_InstanceMapScript::instance_arcatraz_InstanceMapScript
instance_arcatraz_InstanceMapScript(Map *map)
Definition
instance_arcatraz.cpp:50
instance_arcatraz::instance_arcatraz_InstanceMapScript::Pod_DeltaGUID
uint64 Pod_DeltaGUID
Definition
instance_arcatraz.cpp:59
instance_arcatraz::instance_arcatraz_InstanceMapScript::MellicharGUID
uint64 MellicharGUID
Definition
instance_arcatraz.cpp:63
instance_arcatraz::instance_arcatraz_InstanceMapScript::OnCreatureCreate
void OnCreatureCreate(Creature *creature) OVERRIDE
Definition
instance_arcatraz.cpp:132
instance_arcatraz::instance_arcatraz_InstanceMapScript::Pod_BetaGUID
uint64 Pod_BetaGUID
Definition
instance_arcatraz.cpp:58
instance_arcatraz::instance_arcatraz_InstanceMapScript::m_auiEncounter
uint32 m_auiEncounter[MAX_ENCOUNTER]
Definition
instance_arcatraz.cpp:52
instance_arcatraz::instance_arcatraz_InstanceMapScript::IsEncounterInProgress
bool IsEncounterInProgress() const OVERRIDE
Definition
instance_arcatraz.cpp:81
instance_arcatraz::instance_arcatraz_InstanceMapScript::SetData
void SetData(uint32 type, uint32 data) OVERRIDE
Definition
instance_arcatraz.cpp:138
instance_arcatraz::instance_arcatraz_InstanceMapScript::Wardens_ShieldGUID
uint64 Wardens_ShieldGUID
Definition
instance_arcatraz.cpp:61
instance_arcatraz::instance_arcatraz_InstanceMapScript::GetData
uint32 GetData(uint32 type) const OVERRIDE
Definition
instance_arcatraz.cpp:220
instance_arcatraz::instance_arcatraz_InstanceMapScript::Pod_OmegaGUID
uint64 Pod_OmegaGUID
Definition
instance_arcatraz.cpp:60
instance_arcatraz::instance_arcatraz_InstanceMapScript::Containment_Core_Security_Field_AlphaGUID
uint64 Containment_Core_Security_Field_AlphaGUID
Definition
instance_arcatraz.cpp:54
instance_arcatraz::instance_arcatraz_InstanceMapScript::OnGameObjectCreate
void OnGameObjectCreate(GameObject *go) OVERRIDE
Definition
instance_arcatraz.cpp:90
instance_arcatraz::instance_arcatraz_InstanceMapScript::GetData64
uint64 GetData64(uint32 data) const OVERRIDE
Definition
instance_arcatraz.cpp:234
src
server
scripts
Outland
TempestKeep
arcatraz
instance_arcatraz.cpp
Generated on
for Project SkyFire Core by
1.17.0