Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
instance_obsidian_sanctum.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 "
obsidian_sanctum.h
"
9
10
#define MAX_ENCOUNTER 1
11
12
/* Obsidian Sanctum encounters:
13
0 - Sartharion
14
*/
15
16
class
instance_obsidian_sanctum
:
public
InstanceMapScript
17
{
18
public
:
19
instance_obsidian_sanctum
() :
InstanceMapScript
(
"instance_obsidian_sanctum"
, 615) { }
20
21
InstanceScript
*
GetInstanceScript
(
InstanceMap
* map)
const
OVERRIDE
22
{
23
return
new
instance_obsidian_sanctum_InstanceMapScript
(map);
24
}
25
26
struct
instance_obsidian_sanctum_InstanceMapScript
:
public
InstanceScript
27
{
28
instance_obsidian_sanctum_InstanceMapScript
(
Map
* map) :
InstanceScript
(map) { }
29
30
uint32
m_auiEncounter
[
MAX_ENCOUNTER
];
31
uint64
m_uiSartharionGUID
;
32
uint64
m_uiTenebronGUID
;
33
uint64
m_uiShadronGUID
;
34
uint64
m_uiVesperonGUID
;
35
36
bool
m_bTenebronKilled
;
37
bool
m_bShadronKilled
;
38
bool
m_bVesperonKilled
;
39
40
void
Initialize
()
OVERRIDE
41
{
42
memset(&
m_auiEncounter
, 0,
sizeof
(
m_auiEncounter
));
43
44
m_uiSartharionGUID
= 0;
45
m_uiTenebronGUID
= 0;
46
m_uiShadronGUID
= 0;
47
m_uiVesperonGUID
= 0;
48
49
m_bTenebronKilled
=
false
;
50
m_bShadronKilled
=
false
;
51
m_bVesperonKilled
=
false
;
52
}
53
54
bool
IsEncounterInProgress
() const
OVERRIDE
55
{
56
for
(
uint8
i = 0; i <
MAX_ENCOUNTER
; ++i)
57
if
(
m_auiEncounter
[i] ==
IN_PROGRESS
)
58
return
true
;
59
60
return
false
;
61
}
62
63
void
OnCreatureCreate
(
Creature
* creature)
OVERRIDE
64
{
65
switch
(creature->GetEntry())
66
{
67
case
NPC_SARTHARION
:
68
m_uiSartharionGUID
= creature->GetGUID();
69
break
;
70
//three dragons below set to active state once created.
71
//we must expect bigger raid to encounter main boss, and then three dragons must be active due to grid differences
72
case
NPC_TENEBRON
:
73
m_uiTenebronGUID
= creature->GetGUID();
74
creature->setActive(
true
);
75
break
;
76
case
NPC_SHADRON
:
77
m_uiShadronGUID
= creature->GetGUID();
78
creature->setActive(
true
);
79
break
;
80
case
NPC_VESPERON
:
81
m_uiVesperonGUID
= creature->GetGUID();
82
creature->setActive(
true
);
83
break
;
84
}
85
}
86
87
void
SetData
(
uint32
uiType,
uint32
uiData)
OVERRIDE
88
{
89
if
(uiType ==
TYPE_SARTHARION_EVENT
)
90
m_auiEncounter
[0] = uiData;
91
else
if
(uiType ==
TYPE_TENEBRON_PREKILLED
)
92
m_bTenebronKilled
=
true
;
93
else
if
(uiType ==
TYPE_SHADRON_PREKILLED
)
94
m_bShadronKilled
=
true
;
95
else
if
(uiType ==
TYPE_VESPERON_PREKILLED
)
96
m_bVesperonKilled
=
true
;
97
}
98
99
uint32
GetData
(
uint32
uiType)
const
OVERRIDE
100
{
101
if
(uiType ==
TYPE_SARTHARION_EVENT
)
102
return
m_auiEncounter
[0];
103
else
if
(uiType ==
TYPE_TENEBRON_PREKILLED
)
104
return
m_bTenebronKilled
;
105
else
if
(uiType ==
TYPE_SHADRON_PREKILLED
)
106
return
m_bShadronKilled
;
107
else
if
(uiType ==
TYPE_VESPERON_PREKILLED
)
108
return
m_bVesperonKilled
;
109
110
return
0;
111
}
112
113
uint64
GetData64
(
uint32
uiData)
const
OVERRIDE
114
{
115
switch
(uiData)
116
{
117
case
DATA_SARTHARION
:
118
return
m_uiSartharionGUID
;
119
case
DATA_TENEBRON
:
120
return
m_uiTenebronGUID
;
121
case
DATA_SHADRON
:
122
return
m_uiShadronGUID
;
123
case
DATA_VESPERON
:
124
return
m_uiVesperonGUID
;
125
}
126
return
0;
127
}
128
};
129
};
130
131
void
AddSC_instance_obsidian_sanctum
()
132
{
133
new
instance_obsidian_sanctum
();
134
}
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
ScriptMgr.h
NPC_SARTHARION
@ NPC_SARTHARION
Definition
ScriptedCreature.cpp:404
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
Map
Definition
Map.h:238
instance_obsidian_sanctum
Definition
instance_obsidian_sanctum.cpp:17
instance_obsidian_sanctum::instance_obsidian_sanctum
instance_obsidian_sanctum()
Definition
instance_obsidian_sanctum.cpp:19
instance_obsidian_sanctum::GetInstanceScript
InstanceScript * GetInstanceScript(InstanceMap *map) const OVERRIDE
Definition
instance_obsidian_sanctum.cpp:21
AddSC_instance_obsidian_sanctum
void AddSC_instance_obsidian_sanctum()
Definition
instance_obsidian_sanctum.cpp:131
MAX_ENCOUNTER
#define MAX_ENCOUNTER
Definition
instance_obsidian_sanctum.cpp:10
obsidian_sanctum.h
NPC_VESPERON
@ NPC_VESPERON
Definition
obsidian_sanctum.h:27
NPC_SHADRON
@ NPC_SHADRON
Definition
obsidian_sanctum.h:26
NPC_TENEBRON
@ NPC_TENEBRON
Definition
obsidian_sanctum.h:25
TYPE_SARTHARION_EVENT
@ TYPE_SARTHARION_EVENT
Definition
obsidian_sanctum.h:11
DATA_VESPERON
@ DATA_VESPERON
Definition
obsidian_sanctum.h:19
TYPE_VESPERON_PREKILLED
@ TYPE_VESPERON_PREKILLED
Definition
obsidian_sanctum.h:14
DATA_TENEBRON
@ DATA_TENEBRON
Definition
obsidian_sanctum.h:17
TYPE_TENEBRON_PREKILLED
@ TYPE_TENEBRON_PREKILLED
Definition
obsidian_sanctum.h:12
TYPE_SHADRON_PREKILLED
@ TYPE_SHADRON_PREKILLED
Definition
obsidian_sanctum.h:13
DATA_SARTHARION
@ DATA_SARTHARION
Definition
obsidian_sanctum.h:16
DATA_SHADRON
@ DATA_SHADRON
Definition
obsidian_sanctum.h:18
instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript
Definition
instance_obsidian_sanctum.cpp:27
instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::m_bShadronKilled
bool m_bShadronKilled
Definition
instance_obsidian_sanctum.cpp:37
instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::Initialize
void Initialize() OVERRIDE
Definition
instance_obsidian_sanctum.cpp:40
instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::m_bTenebronKilled
bool m_bTenebronKilled
Definition
instance_obsidian_sanctum.cpp:36
instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::m_uiTenebronGUID
uint64 m_uiTenebronGUID
Definition
instance_obsidian_sanctum.cpp:32
instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::m_uiShadronGUID
uint64 m_uiShadronGUID
Definition
instance_obsidian_sanctum.cpp:33
instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::m_bVesperonKilled
bool m_bVesperonKilled
Definition
instance_obsidian_sanctum.cpp:38
instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::instance_obsidian_sanctum_InstanceMapScript
instance_obsidian_sanctum_InstanceMapScript(Map *map)
Definition
instance_obsidian_sanctum.cpp:28
instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::IsEncounterInProgress
bool IsEncounterInProgress() const OVERRIDE
Definition
instance_obsidian_sanctum.cpp:54
instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::m_uiSartharionGUID
uint64 m_uiSartharionGUID
Definition
instance_obsidian_sanctum.cpp:31
instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::m_auiEncounter
uint32 m_auiEncounter[MAX_ENCOUNTER]
Definition
instance_obsidian_sanctum.cpp:30
instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::OnCreatureCreate
void OnCreatureCreate(Creature *creature) OVERRIDE
Definition
instance_obsidian_sanctum.cpp:63
instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::SetData
void SetData(uint32 uiType, uint32 uiData) OVERRIDE
Definition
instance_obsidian_sanctum.cpp:87
instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::m_uiVesperonGUID
uint64 m_uiVesperonGUID
Definition
instance_obsidian_sanctum.cpp:34
instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::GetData
uint32 GetData(uint32 uiType) const OVERRIDE
Definition
instance_obsidian_sanctum.cpp:99
instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::GetData64
uint64 GetData64(uint32 uiData) const OVERRIDE
Definition
instance_obsidian_sanctum.cpp:113
src
server
scripts
Northrend
ChamberOfAspects
ObsidianSanctum
instance_obsidian_sanctum.cpp
Generated on
for Project SkyFire Core by
1.17.0