Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
instance_scarlet_monastery.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_Scarlet_Monastery
8
SD%Complete: 50
9
SDComment:
10
SDCategory: Scarlet Monastery
11
EndScriptData */
12
13
#include "
ScriptMgr.h
"
14
#include "
ScriptedCreature.h
"
15
#include "
scarlet_monastery.h
"
16
17
enum
Entry
18
{
19
ENTRY_PUMPKIN_SHRINE
= 186267,
20
ENTRY_HORSEMAN
= 23682,
21
ENTRY_HEAD
= 23775,
22
ENTRY_PUMPKIN
= 23694
23
};
24
25
#define MAX_ENCOUNTER 2
26
27
class
instance_scarlet_monastery
:
public
InstanceMapScript
28
{
29
public
:
30
instance_scarlet_monastery
() :
InstanceMapScript
(
"instance_scarlet_monastery"
, 189) { }
31
32
InstanceScript
*
GetInstanceScript
(
InstanceMap
* map)
const
OVERRIDE
33
{
34
return
new
instance_scarlet_monastery_InstanceMapScript
(map);
35
}
36
37
struct
instance_scarlet_monastery_InstanceMapScript
:
public
InstanceScript
38
{
39
instance_scarlet_monastery_InstanceMapScript
(
Map
* map) :
InstanceScript
(map) { }
40
41
uint64
PumpkinShrineGUID
;
42
uint64
HorsemanGUID
;
43
uint64
HeadGUID
;
44
std::set<uint64>
HorsemanAdds
;
45
46
uint64
MograineGUID
;
47
uint64
WhitemaneGUID
;
48
uint64
VorrelGUID
;
49
uint64
DoorHighInquisitorGUID
;
50
51
uint32
encounter
[
MAX_ENCOUNTER
];
52
53
void
Initialize
()
OVERRIDE
54
{
55
memset(&
encounter
, 0,
sizeof
(
encounter
));
56
57
PumpkinShrineGUID
= 0;
58
HorsemanGUID
= 0;
59
HeadGUID
= 0;
60
HorsemanAdds
.clear();
61
62
MograineGUID
= 0;
63
WhitemaneGUID
= 0;
64
VorrelGUID
= 0;
65
DoorHighInquisitorGUID
= 0;
66
}
67
68
void
OnGameObjectCreate
(
GameObject
* go)
OVERRIDE
69
{
70
switch
(go->GetEntry())
71
{
72
case
ENTRY_PUMPKIN_SHRINE
:
PumpkinShrineGUID
= go->GetGUID();
break
;
73
case
104600:
DoorHighInquisitorGUID
= go->GetGUID();
break
;
74
}
75
}
76
77
void
OnCreatureCreate
(
Creature
* creature)
OVERRIDE
78
{
79
switch
(creature->GetEntry())
80
{
81
case
ENTRY_HORSEMAN
:
HorsemanGUID
= creature->GetGUID();
break
;
82
case
ENTRY_HEAD
:
HeadGUID
= creature->GetGUID();
break
;
83
case
ENTRY_PUMPKIN
:
HorsemanAdds
.insert(creature->GetGUID());
break
;
84
case
3976:
MograineGUID
= creature->GetGUID();
break
;
85
case
3977:
WhitemaneGUID
= creature->GetGUID();
break
;
86
case
3981:
VorrelGUID
= creature->GetGUID();
break
;
87
}
88
}
89
90
void
SetData
(
uint32
type,
uint32
data)
OVERRIDE
91
{
92
switch
(type)
93
{
94
case
TYPE_MOGRAINE_AND_WHITE_EVENT
:
95
if
(data ==
IN_PROGRESS
)
96
DoUseDoorOrButton
(
DoorHighInquisitorGUID
);
97
if
(data ==
FAIL
)
98
DoUseDoorOrButton
(
DoorHighInquisitorGUID
);
99
100
encounter
[0] = data;
101
break
;
102
case
GAMEOBJECT_PUMPKIN_SHRINE
:
103
HandleGameObject
(
PumpkinShrineGUID
,
false
);
104
break
;
105
case
DATA_HORSEMAN_EVENT
:
106
encounter
[1] = data;
107
if
(data ==
DONE
)
108
{
109
for
(std::set<uint64>::const_iterator itr =
HorsemanAdds
.begin(); itr !=
HorsemanAdds
.end(); ++itr)
110
{
111
Creature
* add =
instance
->GetCreature(*itr);
112
if
(add && add->
IsAlive
())
113
add->
Kill
(add);
114
}
115
HorsemanAdds
.clear();
116
HandleGameObject
(
PumpkinShrineGUID
,
false
);
117
}
118
break
;
119
}
120
}
121
122
uint64
GetData64
(
uint32
type)
const
OVERRIDE
123
{
124
switch
(type)
125
{
126
//case GAMEOBJECT_PUMPKIN_SHRINE: return PumpkinShrineGUID;
127
//case DATA_HORSEMAN: return HorsemanGUID;
128
//case DATA_HEAD: return HeadGUID;
129
case
DATA_MOGRAINE
:
return
MograineGUID
;
130
case
DATA_WHITEMANE
:
return
WhitemaneGUID
;
131
case
DATA_VORREL
:
return
VorrelGUID
;
132
case
DATA_DOOR_WHITEMANE
:
return
DoorHighInquisitorGUID
;
133
}
134
return
0;
135
}
136
137
uint32
GetData
(
uint32
type)
const
OVERRIDE
138
{
139
if
(type ==
TYPE_MOGRAINE_AND_WHITE_EVENT
)
140
return
encounter
[0];
141
if
(type ==
DATA_HORSEMAN_EVENT
)
142
return
encounter
[1];
143
return
0;
144
}
145
};
146
};
147
148
void
AddSC_instance_scarlet_monastery
()
149
{
150
new
instance_scarlet_monastery
();
151
}
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
IN_PROGRESS
@ IN_PROGRESS
Definition
InstanceScript.h:47
FAIL
@ FAIL
Definition
InstanceScript.h:48
DONE
@ DONE
Definition
InstanceScript.h:49
ScriptMgr.h
ScriptedCreature.h
Entry
Entry
Definition
boss_headless_horseman.cpp:38
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::DoUseDoorOrButton
void DoUseDoorOrButton(uint64 guid, uint32 withRestoreTime=0, bool useAlternativeState=false)
Definition
InstanceScript.cpp:247
InstanceScript::instance
Map * instance
Definition
InstanceScript.h:129
InstanceScript::HandleGameObject
void HandleGameObject(uint64 guid, bool open, GameObject *go=NULL)
Definition
InstanceScript.cpp:33
Map
Definition
Map.h:238
Unit::Kill
void Kill(Unit *victim, bool durabilityLoss=true)
Definition
Unit.cpp:6342
Unit::IsAlive
bool IsAlive() const
Definition
Unit.h:2032
instance_scarlet_monastery
Definition
instance_scarlet_monastery.cpp:28
instance_scarlet_monastery::GetInstanceScript
InstanceScript * GetInstanceScript(InstanceMap *map) const OVERRIDE
Definition
instance_scarlet_monastery.cpp:32
instance_scarlet_monastery::instance_scarlet_monastery
instance_scarlet_monastery()
Definition
instance_scarlet_monastery.cpp:30
AddSC_instance_scarlet_monastery
void AddSC_instance_scarlet_monastery()
Definition
instance_scarlet_monastery.cpp:148
ENTRY_PUMPKIN_SHRINE
@ ENTRY_PUMPKIN_SHRINE
Definition
instance_scarlet_monastery.cpp:19
ENTRY_HEAD
@ ENTRY_HEAD
Definition
instance_scarlet_monastery.cpp:21
ENTRY_PUMPKIN
@ ENTRY_PUMPKIN
Definition
instance_scarlet_monastery.cpp:22
ENTRY_HORSEMAN
@ ENTRY_HORSEMAN
Definition
instance_scarlet_monastery.cpp:20
MAX_ENCOUNTER
#define MAX_ENCOUNTER
Definition
instance_scarlet_monastery.cpp:25
scarlet_monastery.h
DATA_MOGRAINE
@ DATA_MOGRAINE
Definition
scarlet_monastery.h:13
DATA_WHITEMANE
@ DATA_WHITEMANE
Definition
scarlet_monastery.h:14
DATA_DOOR_WHITEMANE
@ DATA_DOOR_WHITEMANE
Definition
scarlet_monastery.h:15
DATA_HORSEMAN_EVENT
@ DATA_HORSEMAN_EVENT
Definition
scarlet_monastery.h:17
DATA_VORREL
@ DATA_VORREL
Definition
scarlet_monastery.h:20
GAMEOBJECT_PUMPKIN_SHRINE
@ GAMEOBJECT_PUMPKIN_SHRINE
Definition
scarlet_monastery.h:18
TYPE_MOGRAINE_AND_WHITE_EVENT
@ TYPE_MOGRAINE_AND_WHITE_EVENT
Definition
scarlet_monastery.h:11
instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript
Definition
instance_scarlet_monastery.cpp:38
instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::Initialize
void Initialize() OVERRIDE
Definition
instance_scarlet_monastery.cpp:53
instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::GetData64
uint64 GetData64(uint32 type) const OVERRIDE
Definition
instance_scarlet_monastery.cpp:122
instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::instance_scarlet_monastery_InstanceMapScript
instance_scarlet_monastery_InstanceMapScript(Map *map)
Definition
instance_scarlet_monastery.cpp:39
instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::HorsemanAdds
std::set< uint64 > HorsemanAdds
Definition
instance_scarlet_monastery.cpp:44
instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::MograineGUID
uint64 MograineGUID
Definition
instance_scarlet_monastery.cpp:46
instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::DoorHighInquisitorGUID
uint64 DoorHighInquisitorGUID
Definition
instance_scarlet_monastery.cpp:49
instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::OnCreatureCreate
void OnCreatureCreate(Creature *creature) OVERRIDE
Definition
instance_scarlet_monastery.cpp:77
instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::PumpkinShrineGUID
uint64 PumpkinShrineGUID
Definition
instance_scarlet_monastery.cpp:41
instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::GetData
uint32 GetData(uint32 type) const OVERRIDE
Definition
instance_scarlet_monastery.cpp:137
instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::WhitemaneGUID
uint64 WhitemaneGUID
Definition
instance_scarlet_monastery.cpp:47
instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::VorrelGUID
uint64 VorrelGUID
Definition
instance_scarlet_monastery.cpp:48
instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::OnGameObjectCreate
void OnGameObjectCreate(GameObject *go) OVERRIDE
Definition
instance_scarlet_monastery.cpp:68
instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::SetData
void SetData(uint32 type, uint32 data) OVERRIDE
Definition
instance_scarlet_monastery.cpp:90
instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::encounter
uint32 encounter[MAX_ENCOUNTER]
Definition
instance_scarlet_monastery.cpp:51
instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::HeadGUID
uint64 HeadGUID
Definition
instance_scarlet_monastery.cpp:43
instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::HorsemanGUID
uint64 HorsemanGUID
Definition
instance_scarlet_monastery.cpp:42
src
server
scripts
EasternKingdoms
ScarletMonastery
instance_scarlet_monastery.cpp
Generated on
for Project SkyFire Core by
1.17.0