Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
instance_sunken_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/* ScriptData
7SDName: Instance_Sunken_Temple
8SD%Complete: 100
9SDComment:Place Holder
10SDCategory: Sunken Temple
11EndScriptData */
12
13#include "ScriptMgr.h"
14#include "InstanceScript.h"
15#include "sunken_temple.h"
16
30
35
37{
38public:
39 instance_sunken_temple() : InstanceMapScript("instance_sunken_temple", 109) { }
40
45
47 {
51
59
61
62 bool s1;
63 bool s2;
64 bool s3;
65 bool s4;
66 bool s5;
67 bool s6;
68
70 {
77 GOAtalaiIdol = 0;
78
79 State = 0;
80
81 s1 = false;
82 s2 = false;
83 s3 = false;
84 s4 = false;
85 s5 = false;
86 s6 = false;
87 }
88
90 {
91 switch (go->GetEntry())
92 {
93 case GO_ATALAI_STATUE1: GOAtalaiStatue1 = go->GetGUID(); break;
94 case GO_ATALAI_STATUE2: GOAtalaiStatue2 = go->GetGUID(); break;
95 case GO_ATALAI_STATUE3: GOAtalaiStatue3 = go->GetGUID(); break;
96 case GO_ATALAI_STATUE4: GOAtalaiStatue4 = go->GetGUID(); break;
97 case GO_ATALAI_STATUE5: GOAtalaiStatue5 = go->GetGUID(); break;
98 case GO_ATALAI_STATUE6: GOAtalaiStatue6 = go->GetGUID(); break;
99 case GO_ATALAI_IDOL: GOAtalaiIdol = go->GetGUID(); break;
100 }
101 }
102
103 virtual void Update(uint32 /*diff*/) // correct order goes form 1-6
104 {
105 switch (State)
106 {
108 if (!s1 && !s2 && !s3 && !s4 && !s5 && !s6)
109 {
110 if (GameObject* pAtalaiStatue1 = instance->GetGameObject(GOAtalaiStatue1))
111 UseStatue(pAtalaiStatue1);
112 s1 = true;
113 State = 0;
114 };
115 break;
117 if (s1 && !s2 && !s3 && !s4 && !s5 && !s6)
118 {
119 if (GameObject* pAtalaiStatue2 = instance->GetGameObject(GOAtalaiStatue2))
120 UseStatue(pAtalaiStatue2);
121 s2 = true;
122 State = 0;
123 };
124 break;
126 if (s1 && s2 && !s3 && !s4 && !s5 && !s6)
127 {
128 if (GameObject* pAtalaiStatue3 = instance->GetGameObject(GOAtalaiStatue3))
129 UseStatue(pAtalaiStatue3);
130 s3 = true;
131 State = 0;
132 };
133 break;
135 if (s1 && s2 && s3 && !s4 && !s5 && !s6)
136 {
137 if (GameObject* pAtalaiStatue4 = instance->GetGameObject(GOAtalaiStatue4))
138 UseStatue(pAtalaiStatue4);
139 s4 = true;
140 State = 0;
141 }
142 break;
144 if (s1 && s2 && s3 && s4 && !s5 && !s6)
145 {
146 if (GameObject* pAtalaiStatue5 = instance->GetGameObject(GOAtalaiStatue5))
147 UseStatue(pAtalaiStatue5);
148 s5 = true;
149 State = 0;
150 }
151 break;
153 if (s1 && s2 && s3 && s4 && s5 && !s6)
154 {
155 if (GameObject* pAtalaiStatue6 = instance->GetGameObject(GOAtalaiStatue6))
156 UseStatue(pAtalaiStatue6);
157 s6 = true;
158 State = 0;
159 }
160 break;
161 }
162 };
163
165 {
166 go->SummonGameObject(GO_ATALAI_LIGHT1, go->GetPositionX(), go->GetPositionY(), go->GetPositionZ(), 0, 0, 0, 0, 0, 0);
168 }
169
170 /*
171 void UseLastStatue(GameObject* go)
172 {
173 AtalaiStatue1->SummonGameObject(GO_ATALAI_LIGHT2, AtalaiStatue1->GetPositionX(), AtalaiStatue1->GetPositionY(), AtalaiStatue1->GetPositionZ(), 0, 0, 0, 0, 0, 100000);
174 AtalaiStatue2->SummonGameObject(GO_ATALAI_LIGHT2, AtalaiStatue2->GetPositionX(), AtalaiStatue2->GetPositionY(), AtalaiStatue2->GetPositionZ(), 0, 0, 0, 0, 0, 100000);
175 AtalaiStatue3->SummonGameObject(GO_ATALAI_LIGHT2, AtalaiStatue3->GetPositionX(), AtalaiStatue3->GetPositionY(), AtalaiStatue3->GetPositionZ(), 0, 0, 0, 0, 0, 100000);
176 AtalaiStatue4->SummonGameObject(GO_ATALAI_LIGHT2, AtalaiStatue4->GetPositionX(), AtalaiStatue4->GetPositionY(), AtalaiStatue4->GetPositionZ(), 0, 0, 0, 0, 0, 100000);
177 AtalaiStatue5->SummonGameObject(GO_ATALAI_LIGHT2, AtalaiStatue5->GetPositionX(), AtalaiStatue5->GetPositionY(), AtalaiStatue5->GetPositionZ(), 0, 0, 0, 0, 0, 100000);
178 AtalaiStatue6->SummonGameObject(GO_ATALAI_LIGHT2, AtalaiStatue6->GetPositionX(), AtalaiStatue6->GetPositionY(), AtalaiStatue6->GetPositionZ(), 0, 0, 0, 0, 0, 100000);
179 go->SummonGameObject(148838, -488.997, 96.61, -189.019, -1.52, 0, 0, 0, 0, 100000);
180 }
181 */
182
183 void SetData(uint32 type, uint32 data) OVERRIDE
184 {
185 if (type == EVENT_STATE)
186 State = data;
187 }
188
190 {
191 if (type == EVENT_STATE)
192 return State;
193 return 0;
194 }
195 };
196
197};
198
std::uint32_t uint32
Definition Define.h:77
#define OVERRIDE
Definition Define.h:60
std::uint64_t uint64
Definition Define.h:76
@ GAMEOBJECT_FIELD_FLAGS
CreatureIds
InstanceMapScript(const char *name, uint32 mapId)
InstanceScript(Map *map)
Definition Map.h:238
void SetUInt32Value(uint16 index, uint32 value)
Definition Object.cpp:1038
GameObject * SummonGameObject(uint32 entry, float x, float y, float z, float ang, float rotation0, float rotation1, float rotation2, float rotation3, uint32 respawnTime)
Definition Object.cpp:2729
InstanceScript * GetInstanceScript(InstanceMap *map) const OVERRIDE
@ NPC_MALFURION_STORMRAGE
void AddSC_instance_sunken_temple()
float GetPositionZ() const
Definition Object.h:330
float GetPositionX() const
Definition Object.h:328
float GetPositionY() const
Definition Object.h:329
#define EVENT_STATE