Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
instance_black_temple.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 "black_temple.h"
9
25
27{
28 public:
30
32 {
55
57 {
58 switch (creature->GetEntry())
59 {
61 NajentusGUID = creature->GetGUID();
62 break;
63 case NPC_SUPREMUS:
64 SupremusGUID = creature->GetGUID();
65 break;
67 ShadeOfAkamaGUID = creature->GetGUID();
68 break;
69 case NPC_AKAMA_SHADE:
70 AkamaShadeGUID = creature->GetGUID();
71 break;
72 case NPC_AKAMA:
73 AkamaGUID = creature->GetGUID();
74 break;
76 GathiosTheShattererGUID = creature->GetGUID();
77 break;
79 HighNethermancerZerevorGUID = creature->GetGUID();
80 break;
82 LadyMalandeGUID = creature->GetGUID();
83 break;
85 VerasDarkshadowGUID = creature->GetGUID();
86 break;
88 IllidariCouncilGUID = creature->GetGUID();
89 break;
91 BloodElfCouncilVoiceGUID = creature->GetGUID();
92 break;
94 IllidanStormrageGUID = creature->GetGUID();
95 break;
96 default:
97 break;
98 }
99 }
100
102 {
103 switch (go->GetEntry())
104 {
105 case GO_NAJENTUS_GATE:
106 case GO_SUPREMUS_GATE:
108 case GO_TERON_DOOR_1:
109 case GO_TERON_DOOR_2:
110 case GO_GURTOGG_DOOR:
111 case GO_TEMPLE_DOOR:
115 AddDoor(go, true);
116 break;
117 case GO_ILLIDAN_GATE:
118 IllidanGateGUID = go->GetGUID();
119 break;
121 IllidanDoorGUIDs[0] = go->GetGUID();
122 break;
124 IllidanDoorGUIDs[1] = go->GetGUID();
125 break;
126 default:
127 break;
128 }
129 }
130
132 {
133 switch (go->GetEntry())
134 {
135 case GO_NAJENTUS_GATE:
136 case GO_SUPREMUS_GATE:
138 case GO_TERON_DOOR_1:
139 case GO_TERON_DOOR_2:
140 case GO_GURTOGG_DOOR:
141 case GO_TEMPLE_DOOR:
145 AddDoor(go, false);
146 break;
147 default:
148 break;
149 }
150 }
151
153 {
154 switch (type)
155 {
157 return NajentusGUID;
158 case DATA_SUPREMUS:
159 return SupremusGUID;
161 return ShadeOfAkamaGUID;
162 case DATA_AKAMA_SHADE:
163 return AkamaShadeGUID;
164 case DATA_AKAMA:
165 return AkamaGUID;
171 return LadyMalandeGUID;
173 return VerasDarkshadowGUID;
175 return IllidariCouncilGUID;
181 return IllidanGateGUID;
183 return IllidanDoorGUIDs[0];
185 return IllidanDoorGUIDs[1];
186 default:
187 break;
188 }
189
190 return 0;
191 }
192
193 std::string GetSaveData() OVERRIDE
194 {
196
197 std::ostringstream saveStream;
198 saveStream << "B T " << GetBossSaveData();
199
201 return saveStream.str();
202 }
203
204 void Load(char const* str) OVERRIDE
205 {
206 if (!str)
207 {
209 return;
210 }
211
213
214 char dataHead1, dataHead2;
215
216 std::istringstream loadStream(str);
217 loadStream >> dataHead1 >> dataHead2;
218
219 if (dataHead1 == 'B' && dataHead2 == 'T')
220 {
221 for (uint32 i = 0; i < EncounterCount; ++i)
222 {
223 uint32 tmpState;
224 loadStream >> tmpState;
225 if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
226 tmpState = NOT_STARTED;
227 SetBossState(i, EncounterState(tmpState));
228 }
229 }
230 else
232
234 }
235
236 protected:
242
247
250
252
255 };
256
261};
262
std::uint32_t uint32
Definition Define.h:77
#define OVERRIDE
Definition Define.h:60
std::uint64_t uint64
Definition Define.h:76
#define OUT_LOAD_INST_DATA_FAIL
EncounterState
@ IN_PROGRESS
@ SPECIAL
@ NOT_STARTED
#define OUT_SAVE_INST_DATA_COMPLETE
#define OUT_LOAD_INST_DATA_COMPLETE
#define OUT_SAVE_INST_DATA
#define OUT_LOAD_INST_DATA(a)
@ DOOR_TYPE_ROOM
@ DOOR_TYPE_PASSAGE
@ BOUNDARY_NONE
uint32 const EncounterCount
#define BTScriptName
Definition black_temple.h:9
@ GO_ILLIDAN_DOOR_R
@ GO_TERON_DOOR_1
@ GO_TEMPLE_DOOR
@ GO_TERON_DOOR_2
@ GO_COUNCIL_DOOR_1
@ GO_SHADE_OF_AKAMA_DOOR
@ GO_MOTHER_SHAHRAZ_DOOR
@ GO_GURTOGG_DOOR
@ GO_NAJENTUS_GATE
@ GO_ILLIDAN_GATE
@ GO_COUNCIL_DOOR_2
@ GO_SUPREMUS_GATE
@ GO_ILLIDAN_DOOR_L
@ NPC_VERAS_DARKSHADOW
@ NPC_ILLIDARI_COUNCIL
@ NPC_AKAMA
@ NPC_GATHIOS_THE_SHATTERER
@ NPC_HIGH_WARLORD_NAJENTUS
@ NPC_SHADE_OF_AKAMA
@ NPC_ILLIDAN_STORMRAGE
@ NPC_HIGH_NETHERMANCER_ZEREVOR
@ NPC_LADY_MALANDE
@ NPC_BLOOD_ELF_COUNCIL_VOICE
@ NPC_AKAMA_SHADE
@ NPC_SUPREMUS
@ DATA_TERON_GOREFIEND
@ DATA_AKAMA
@ DATA_ILLIDARI_COUNCIL
@ DATA_MOTHER_SHAHRAZ
@ DATA_HIGH_NETHERMANCER_ZEREVOR
@ DATA_SUPREMUS
@ DATA_GATHIOS_THE_SHATTERER
@ DATA_BLOOD_ELF_COUNCIL_VOICE
@ DATA_ILLIDAN_STORMRAGE
@ DATA_VERAS_DARKSHADOW
@ DATA_GO_ILLIDAN_DOOR_R
@ DATA_AKAMA_SHADE
@ DATA_GO_ILLIDAN_DOOR_L
@ DATA_LADY_MALANDE
@ DATA_GO_ILLIDAN_GATE
@ DATA_HIGH_WARLORD_NAJENTUS
@ DATA_SHADE_OF_AKAMA
@ DATA_GURTOGG_BLOODBOIL
@ DATA_RELIQUARY_OF_SOULS
InstanceMapScript(const char *name, uint32 mapId)
InstanceScript(Map *map)
void SetBossNumber(uint32 number)
virtual bool SetBossState(uint32 id, EncounterState state)
std::string GetBossSaveData()
void AddDoor(GameObject *door, bool add)
void LoadDoorData(DoorData const *data)
Definition Map.h:238
InstanceScript * GetInstanceScript(InstanceMap *map) const OVERRIDE
DoorData const doorData[]
void AddSC_instance_black_temple()
DoorData const doorData[]