Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
instance_azjol_nerub.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 "azjol_nerub.h"
9
18
20{
21 public:
23
25 {
38
40 {
41 switch (creature->GetEntry())
42 {
43 case NPC_KRIKTHIR:
44 KrikthirGUID = creature->GetGUID();
45 break;
46 case NPC_HADRONOX:
47 HadronoxGUID = creature->GetGUID();
48 break;
49 case NPC_ANUBARAK:
50 AnubarakGUID = creature->GetGUID();
51 break;
53 WatcherNarjilGUID = creature->GetGUID();
54 break;
56 WatcherGashraGUID = creature->GetGUID();
57 break;
59 WatcherSilthikGUID = creature->GetGUID();
60 break;
61 default:
62 break;
63 }
64 }
65
67 {
68 switch (go->GetEntry())
69 {
74 AddDoor(go, true);
75 break;
76 default:
77 break;
78 }
79 }
80
82 {
83 switch (go->GetEntry())
84 {
89 AddDoor(go, false);
90 break;
91 default:
92 break;
93 }
94 }
95
97 {
98 switch (type)
99 {
101 return KrikthirGUID;
102 case DATA_HADRONOX:
103 return HadronoxGUID;
104 case DATA_ANUBARAK:
105 return AnubarakGUID;
107 return WatcherGashraGUID;
109 return WatcherSilthikGUID;
111 return WatcherNarjilGUID;
112 default:
113 break;
114 }
115
116 return 0;
117 }
118
119 std::string GetSaveData() OVERRIDE
120 {
122
123 std::ostringstream saveStream;
124 saveStream << "A N " << GetBossSaveData();
125
127 return saveStream.str();
128 }
129
130 void Load(char const* str) OVERRIDE
131 {
132 if (!str)
133 {
135 return;
136 }
137
139
140 char dataHead1, dataHead2;
141
142 std::istringstream loadStream(str);
143 loadStream >> dataHead1 >> dataHead2;
144
145 if (dataHead1 == 'A' && dataHead2 == 'N')
146 {
147 for (uint32 i = 0; i < EncounterCount; ++i)
148 {
149 uint32 tmpState;
150 loadStream >> tmpState;
151 if (tmpState == IN_PROGRESS || tmpState > SPECIAL)
152 tmpState = NOT_STARTED;
153 SetBossState(i, EncounterState(tmpState));
154 }
155 }
156 else
158
160 }
161
162 protected:
169 };
170
175};
176
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
#define AzjolNerubScriptName
Definition azjol_nerub.h:9
@ GO_ANUBARAK_DOOR_1
Definition azjol_nerub.h:40
@ GO_ANUBARAK_DOOR_3
Definition azjol_nerub.h:42
@ GO_KRIKTHIR_DOOR
Definition azjol_nerub.h:39
@ GO_ANUBARAK_DOOR_2
Definition azjol_nerub.h:41
@ NPC_KRIKTHIR
Definition azjol_nerub.h:28
@ NPC_WATCHER_GASHRA
Definition azjol_nerub.h:33
@ NPC_ANUBARAK
Definition azjol_nerub.h:30
@ NPC_WATCHER_NARJIL
Definition azjol_nerub.h:32
@ NPC_HADRONOX
Definition azjol_nerub.h:29
@ NPC_WATCHER_SILTHIK
Definition azjol_nerub.h:34
@ DATA_WATCHER_SILTHIK
Definition azjol_nerub.h:22
@ DATA_ANUBARAK
Definition azjol_nerub.h:18
@ DATA_HADRONOX
Definition azjol_nerub.h:17
@ DATA_WATCHER_GASHRA
Definition azjol_nerub.h:21
@ DATA_KRIKTHIR_THE_GATEWATCHER
Definition azjol_nerub.h:16
@ DATA_WATCHER_NARJIL
Definition azjol_nerub.h:23
uint32 const EncounterCount
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
void AddSC_instance_azjol_nerub()
DoorData const doorData[]
DoorData const doorData[]