AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
instance_gundrak::instance_gundrak_InstanceMapScript Struct Reference
Inheritance diagram for instance_gundrak::instance_gundrak_InstanceMapScript:
InstanceScript ZoneScript

Public Member Functions

 instance_gundrak_InstanceMapScript (Map *map)
 
void Initialize () override
 
void OnGameObjectCreate (GameObject *gameobject) override
 
void OnGameObjectRemove (GameObject *gameobject) override
 
void SetData (uint32 type, uint32) override
 
bool SetBossState (uint32 type, EncounterState state) override
 
void OnUnitDeath (Unit *unit) override
 
void Update (uint32 diff) override
 
- Public Member Functions inherited from InstanceScript
 InstanceScript (Map *map)
 
 ~InstanceScript () override
 
virtual void Load (char const *data)
 
virtual void CreatureLooted (Creature *, LootType)
 
virtual std::string GetSaveData ()
 
void SaveToDB ()
 
virtual bool IsEncounterInProgress () const
 
void OnCreatureCreate (Creature *creature) override
 
void OnCreatureRemove (Creature *creature) override
 
void OnGameObjectCreate (GameObject *go) override
 
void OnGameObjectRemove (GameObject *go) override
 
ObjectGuid GetObjectGuid (uint32 type) const
 
ObjectGuid GetGuidData (uint32 type) const override
 
CreatureGetCreature (uint32 type)
 
GameObjectGetGameObject (uint32 type)
 
virtual void OnPlayerEnter (Player *)
 
virtual void OnPlayerLeave (Player *)
 
virtual void OnPlayerAreaUpdate (Player *, uint32, uint32)
 
virtual void OnPlayerInWaterStateUpdate (Player *, bool)
 
void HandleGameObject (ObjectGuid guid, bool open, GameObject *go=nullptr)
 
void DoUseDoorOrButton (ObjectGuid guid, uint32 withRestoreTime=0, bool useAlternativeState=false)
 
void DoRespawnGameObject (ObjectGuid guid, uint32 timeToDespawn=MINUTE)
 
void DoRespawnGameObject (uint32 type)
 
void DoRespawnCreature (ObjectGuid guid, bool force=false)
 
void DoRespawnCreature (uint32 type, bool force=false)
 
void DoUpdateWorldState (uint32 worldstateId, uint32 worldstateValue)
 
void DoSendNotifyToInstance (char const *format,...)
 
void DoUpdateAchievementCriteria (AchievementCriteriaTypes type, uint32 miscValue1=0, uint32 miscValue2=0, Unit *unit=nullptr)
 
void DoStartTimedAchievement (AchievementCriteriaTimedTypes type, uint32 entry)
 
void DoStopTimedAchievement (AchievementCriteriaTimedTypes type, uint32 entry)
 
void DoRemoveAurasDueToSpellOnPlayers (uint32 spell)
 
void DoCastSpellOnPlayers (uint32 spell)
 
void DoCastSpellOnPlayer (Player *player, uint32 spell, bool includePets, bool includeControlled)
 
bool ServerAllowsTwoSideGroups ()
 
EncounterState GetBossState (uint32 id) const
 
CreatureBoundary const * GetBossBoundary (uint32 id) const
 
BossInfo const * GetBossInfo (uint32 id) const
 
uint32 GetPersistentData (uint32 index) const
 
void StorePersistentData (uint32 index, uint32 data)
 
virtual bool CheckAchievementCriteriaMeet (uint32, Player const *, Unit const *=nullptr, uint32=0)
 
virtual bool CheckRequiredBosses (uint32, Player const *=nullptr) const
 
void SetCompletedEncountersMask (uint32 newMask, bool save)
 
uint32 GetCompletedEncounterMask () const
 
void SendEncounterUnit (uint32 type, Unit *unit=nullptr, uint8 param1=0, uint8 param2=0)
 
virtual void FillInitialWorldStates (WorldPackets::WorldState::InitWorldStates &)
 
uint32 GetEncounterCount () const
 
void MarkAreaTriggerDone (uint32 id)
 
void ResetAreaTriggerDone (uint32 id)
 
bool IsAreaTriggerDone (uint32 id) const
 
virtual void DoAction (int32)
 
void DoForAllMinions (uint32 id, std::function< void(Creature *)> exec)
 
void StoreGameObjectState (ObjectGuid::LowType spawnId, uint8 state)
 
uint8 GetStoredGameObjectState (ObjectGuid::LowType spawnId) const
 
void LoadInstanceSavedGameobjectStateData ()
 
bool IsBossDone (uint32 bossId) const
 
bool AllBossesDone () const
 
bool AllBossesDone (std::initializer_list< uint32 > bossIds) const
 
TeamId GetTeamIdInInstance () const
 
void SetTeamIdInInstance (TeamId teamId)
 
bool IsTwoFactionInstance () const
 
- Public Member Functions inherited from ZoneScript
 ZoneScript ()
 
virtual ~ZoneScript ()
 
virtual uint32 GetCreatureEntry (ObjectGuid::LowType, CreatureData const *data)
 
virtual uint32 GetGameObjectEntry (ObjectGuid::LowType, uint32 entry)
 
virtual void OnCreatureEvade (Creature *)
 
virtual void SetGuidData (uint32, ObjectGuid)
 
virtual uint64 GetData64 (uint32) const
 
virtual void SetData64 (uint32, uint64)
 
virtual uint32 GetData (uint32) const
 
virtual void ProcessEvent (WorldObject *, uint32)
 

Public Attributes

ObjectGuid _sladRanAltarGUID
 
ObjectGuid _moorabiAltarGUID
 
ObjectGuid _drakkariAltarGUID
 
ObjectGuid _bridgeGUIDs [6]
 
uint32 _keysInCount
 
uint32 _activateTimer
 
- Public Attributes inherited from InstanceScript
Mapinstance
 
TaskScheduler scheduler
 

Additional Inherited Members

- Static Public Member Functions inherited from InstanceScript
static std::string GetBossStateName (uint8 state)
 
- Protected Member Functions inherited from InstanceScript
void SetHeaders (std::string const &dataHeaders)
 
void SetBossNumber (uint32 number)
 
void SetPersistentDataCount (uint32 number)
 
void LoadBossBoundaries (BossBoundaryData const &data)
 
void LoadDoorData (DoorData const *data)
 
void LoadMinionData (MinionData const *data)
 
void LoadObjectData (ObjectData const *creatureData, ObjectData const *gameObjectData)
 
void LoadSummonData (ObjectData const *data)
 
void SetSummoner (Creature *creature)
 
void AddObject (Creature *obj, bool add=true)
 
void RemoveObject (Creature *obj)
 
void AddObject (GameObject *obj, bool add=true)
 
void RemoveObject (GameObject *obj)
 
void AddObject (WorldObject *obj, uint32 type, bool add=true)
 
void RemoveObject (WorldObject *obj, uint32 type)
 
void AddDoor (GameObject *door, bool add=true)
 
void RemoveDoor (GameObject *door)
 
void AddMinion (Creature *minion, bool add=true)
 
void RemoveMinion (Creature *minion)
 
void UpdateDoorState (GameObject *door)
 
void UpdateMinionState (Creature *minion, EncounterState state)
 
bool ReadSaveDataHeaders (std::istringstream &data)
 
void ReadSaveDataBossStates (std::istringstream &data)
 
void ReadSavePersistentData (std::istringstream &data)
 
virtual void ReadSaveDataMore (std::istringstream &)
 
void WriteSaveDataHeaders (std::ostringstream &data)
 
void WriteSaveDataBossStates (std::ostringstream &data)
 
void WritePersistentData (std::ostringstream &data)
 
virtual void WriteSaveDataMore (std::ostringstream &)
 

Detailed Description

Constructor & Destructor Documentation

◆ instance_gundrak_InstanceMapScript()

instance_gundrak::instance_gundrak_InstanceMapScript::instance_gundrak_InstanceMapScript ( Map map)
inline
46 : InstanceScript(map)
47 {
49 }
#define DataHeader
Definition blackrock_depths.h:23
Definition InstanceScript.h:143
void SetHeaders(std::string const &dataHeaders)
Definition InstanceScript.cpp:153

References DataHeader, and InstanceScript::SetHeaders().

Member Function Documentation

◆ Initialize()

void instance_gundrak::instance_gundrak_InstanceMapScript::Initialize ( )
inlineoverridevirtual

Reimplemented from InstanceScript.

59 {
62
63 _keysInCount = 0;
65 }
void SetBossNumber(uint32 number)
Definition InstanceScript.h:296
void LoadDoorData(DoorData const *data)
Definition InstanceScript.cpp:176
@ MAX_ENCOUNTERS
Definition deadmines.h:30
DoorData const doorData[]
Definition instance_gundrak.cpp:24
uint32 _activateTimer
Definition instance_gundrak.cpp:56
uint32 _keysInCount
Definition instance_gundrak.cpp:55

References _activateTimer, _keysInCount, doorData, InstanceScript::LoadDoorData(), MAX_ENCOUNTERS, and InstanceScript::SetBossNumber().

◆ OnGameObjectCreate()

void instance_gundrak::instance_gundrak_InstanceMapScript::OnGameObjectCreate ( GameObject gameobject)
inlineoverridevirtual

Reimplemented from ZoneScript.

68 {
69 switch (gameobject->GetEntry())
70 {
72 _sladRanAltarGUID = gameobject->GetGUID();
74 break;
76 _drakkariAltarGUID = gameobject->GetGUID();
78 break;
80 _moorabiAltarGUID = gameobject->GetGUID();
82 break;
84 _bridgeGUIDs[0] = gameobject->GetGUID();
86 break;
88 _bridgeGUIDs[1] = gameobject->GetGUID();
90 break;
92 _bridgeGUIDs[2] = gameobject->GetGUID();
94 break;
96 _bridgeGUIDs[3] = gameobject->GetGUID();
98 break;
100 _bridgeGUIDs[4] = gameobject->GetGUID();
102 break;
104 _bridgeGUIDs[5] = gameobject->GetGUID();
105 gameobject->SetGoState(GO_STATE_READY);
106 break;
107 case GO_ECK_DOORS:
109 if (instance->IsHeroic())
110 AddDoor(gameobject);
111 break;
115 AddDoor(gameobject);
116 break;
117 }
118 }
@ GO_STATE_READY
Definition GameObjectData.h:692
@ GO_STATE_ACTIVE
Definition GameObjectData.h:691
@ GO_STATE_ACTIVE_ALTERNATIVE
Definition GameObjectData.h:693
@ DONE
Definition InstanceScript.h:61
void SetGoState(GOState state)
Definition GameObject.cpp:2469
Map * instance
Definition InstanceScript.h:149
EncounterState GetBossState(uint32 id) const
Definition InstanceScript.h:242
void AddDoor(GameObject *door, bool add=true)
Definition InstanceScript.cpp:331
bool IsHeroic() const
Definition Map.h:299
uint32 GetEntry() const
Definition Object.h:116
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:113
@ GO_GAL_DARAH_DOORS0
Definition gundrak.h:63
@ GO_GUNDRAK_BRIDGE
Definition gundrak.h:58
@ GO_ALTAR_OF_MOORABI
Definition gundrak.h:54
@ GO_STATUE_OF_MOORABI
Definition gundrak.h:55
@ GO_STATUE_OF_DRAKKARI
Definition gundrak.h:53
@ GO_ALTAR_OF_DRAKKARI
Definition gundrak.h:52
@ GO_GAL_DARAH_DOORS1
Definition gundrak.h:64
@ GO_STATUE_OF_SLAD_RAN
Definition gundrak.h:51
@ GO_ECK_DOORS
Definition gundrak.h:61
@ GO_ECK_UNDERWATER_GATE
Definition gundrak.h:62
@ GO_STATUE_OF_GAL_DARAH
Definition gundrak.h:56
@ GO_GAL_DARAH_DOORS2
Definition gundrak.h:65
@ GO_ALTAR_OF_SLAD_RAN
Definition gundrak.h:50
@ GO_GUNDRAK_COLLISION
Definition gundrak.h:59
@ DATA_SLAD_RAN
Definition gundrak.h:29
@ DATA_DRAKKARI_COLOSSUS
Definition gundrak.h:31
@ DATA_MOORABI
Definition gundrak.h:30
ObjectGuid _moorabiAltarGUID
Definition instance_gundrak.cpp:52
ObjectGuid _bridgeGUIDs[6]
Definition instance_gundrak.cpp:54
ObjectGuid _drakkariAltarGUID
Definition instance_gundrak.cpp:53
ObjectGuid _sladRanAltarGUID
Definition instance_gundrak.cpp:51

References _bridgeGUIDs, _drakkariAltarGUID, _keysInCount, _moorabiAltarGUID, _sladRanAltarGUID, InstanceScript::AddDoor(), DATA_DRAKKARI_COLOSSUS, DATA_MOORABI, DATA_SLAD_RAN, DONE, InstanceScript::GetBossState(), Object::GetEntry(), Object::GetGUID(), GO_ALTAR_OF_DRAKKARI, GO_ALTAR_OF_MOORABI, GO_ALTAR_OF_SLAD_RAN, GO_ECK_DOORS, GO_ECK_UNDERWATER_GATE, GO_GAL_DARAH_DOORS0, GO_GAL_DARAH_DOORS1, GO_GAL_DARAH_DOORS2, GO_GUNDRAK_BRIDGE, GO_GUNDRAK_COLLISION, GO_STATE_ACTIVE, GO_STATE_ACTIVE_ALTERNATIVE, GO_STATE_READY, GO_STATUE_OF_DRAKKARI, GO_STATUE_OF_GAL_DARAH, GO_STATUE_OF_MOORABI, GO_STATUE_OF_SLAD_RAN, InstanceScript::instance, Map::IsHeroic(), and GameObject::SetGoState().

◆ OnGameObjectRemove()

void instance_gundrak::instance_gundrak_InstanceMapScript::OnGameObjectRemove ( GameObject gameobject)
inlineoverridevirtual

Reimplemented from ZoneScript.

121 {
122 switch (gameobject->GetEntry())
123 {
124 case GO_ECK_DOORS:
126 if (instance->IsHeroic())
127 RemoveDoor(gameobject);
128 break;
132 RemoveDoor(gameobject);
133 break;
134 }
135 }
void RemoveDoor(GameObject *door)
Definition InstanceScript.cpp:353

References Object::GetEntry(), GO_ECK_DOORS, GO_ECK_UNDERWATER_GATE, GO_GAL_DARAH_DOORS0, GO_GAL_DARAH_DOORS1, GO_GAL_DARAH_DOORS2, InstanceScript::instance, Map::IsHeroic(), and InstanceScript::RemoveDoor().

◆ OnUnitDeath()

void instance_gundrak::instance_gundrak_InstanceMapScript::OnUnitDeath ( Unit unit)
inlineoverridevirtual

Reimplemented from ZoneScript.

196 {
198 return;
199
200 if (Creature* dweller = unit->ToCreature())
201 if (CreatureGroup* formation = dweller->GetFormation())
202 {
204 scheduler.Schedule(1s, [this, dweller, formation](TaskContext /*context*/)
205 {
206 if (!formation->IsAnyMemberAlive())
207 {
208 if (dweller)
209 dweller->AI()->Talk(EMOTE_SUMMON_ECK);
210
211 instance->SummonCreature(NPC_ECK_THE_FEROCIOUS, { 1624.70f, 891.43f, 95.08f, 1.2f });
212 }
213 });
214 }
215 }
Definition CreatureGroups.h:90
Definition Creature.h:47
bool IsBossDone(uint32 bossId) const
Definition InstanceScript.h:285
TaskScheduler scheduler
Definition InstanceScript.h:293
Creature * ToCreature()
Definition Object.h:206
bool EntryEquals(T... entries) const
Definition Object.h:234
Definition TaskScheduler.h:421
TaskScheduler & CancelAll()
Definition TaskScheduler.cpp:45
TaskScheduler & Schedule(std::chrono::duration< _Rep, _Period > const &time, task_handler_t const &task)
Definition TaskScheduler.h:232
@ NPC_RUINS_DWELLER
Definition gundrak.h:39
@ DATA_ECK_THE_FEROCIOUS
Definition gundrak.h:33

References TaskScheduler::CancelAll(), DATA_ECK_THE_FEROCIOUS, Object::EntryEquals(), InstanceScript::instance, InstanceScript::IsBossDone(), Map::IsHeroic(), NPC_RUINS_DWELLER, TaskScheduler::Schedule(), InstanceScript::scheduler, and Object::ToCreature().

◆ SetBossState()

bool instance_gundrak::instance_gundrak_InstanceMapScript::SetBossState ( uint32  type,
EncounterState  state 
)
inlineoverridevirtual

Reimplemented from InstanceScript.

166 {
167 if (!InstanceScript::SetBossState(type, state))
168 {
169 if (state == DONE && (type == DATA_SLAD_RAN || type == DATA_MOORABI || type == DATA_DRAKKARI_COLOSSUS))
170 ++_keysInCount;
171 return false;
172 }
173
174 if (state != DONE)
175 return true;
176
177 switch (type)
178 {
179 case DATA_SLAD_RAN:
181 altar->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
182 break;
183 case DATA_MOORABI:
185 altar->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
186 break;
189 altar->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
190 break;
191 }
192 return true;
193 }
@ GO_FLAG_NOT_SELECTABLE
Definition SharedDefines.h:1618
Definition GameObject.h:120
virtual bool SetBossState(uint32 id, EncounterState state)
Definition InstanceScript.cpp:385
GameObject * GetGameObject(ObjectGuid const &guid)
Definition Map.cpp:2362

References _drakkariAltarGUID, _keysInCount, _moorabiAltarGUID, _sladRanAltarGUID, DATA_DRAKKARI_COLOSSUS, DATA_MOORABI, DATA_SLAD_RAN, DONE, Map::GetGameObject(), GO_FLAG_NOT_SELECTABLE, InstanceScript::instance, and InstanceScript::SetBossState().

◆ SetData()

void instance_gundrak::instance_gundrak_InstanceMapScript::SetData ( uint32  type,
uint32   
)
inlineoverridevirtual

Reimplemented from ZoneScript.

138 {
139 switch (type)
140 {
143 statue->SetGoState(GO_STATE_READY);
144 break;
147 statue->SetGoState(GO_STATE_READY);
148 break;
151 statue->SetGoState(GO_STATE_READY);
152 break;
153 }
154
155 if (type >= GO_ALTAR_OF_SLAD_RAN)
156 {
157 for (uint8 i = 0; i < 3; ++i)
159 if (statue->GetGoState() != GO_STATE_READY)
160 return;
161 _activateTimer = 1;
162 }
163 }
std::uint8_t uint8
Definition Define.h:109

References _activateTimer, _bridgeGUIDs, Map::GetGameObject(), GO_ALTAR_OF_DRAKKARI, GO_ALTAR_OF_MOORABI, GO_ALTAR_OF_SLAD_RAN, GO_STATE_READY, and InstanceScript::instance.

◆ Update()

void instance_gundrak::instance_gundrak_InstanceMapScript::Update ( uint32  diff)
inlineoverridevirtual

Reimplemented from InstanceScript.

218 {
219 scheduler.Update(diff);
220
221 if (!_activateTimer)
222 return;
223
224 _activateTimer += diff;
225 if (_activateTimer >= 5000)
226 {
227 _activateTimer = 0;
228 for (uint8 i = 0; i < 5; ++i)
230 go->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
231 }
232 if (GameObject* collision = instance->GetGameObject(_bridgeGUIDs[4]))
233 if (collision->AI())
234 collision->AI()->SetData(0, 1);
235 }
TaskScheduler & Update(success_t const &callback=EmptyCallback)
Definition TaskScheduler.cpp:27

References GO_STATE_ACTIVE_ALTERNATIVE.

Member Data Documentation

◆ _activateTimer

uint32 instance_gundrak::instance_gundrak_InstanceMapScript::_activateTimer

Referenced by Initialize(), and SetData().

◆ _bridgeGUIDs

ObjectGuid instance_gundrak::instance_gundrak_InstanceMapScript::_bridgeGUIDs[6]

Referenced by OnGameObjectCreate(), and SetData().

◆ _drakkariAltarGUID

ObjectGuid instance_gundrak::instance_gundrak_InstanceMapScript::_drakkariAltarGUID

Referenced by OnGameObjectCreate(), and SetBossState().

◆ _keysInCount

uint32 instance_gundrak::instance_gundrak_InstanceMapScript::_keysInCount

◆ _moorabiAltarGUID

ObjectGuid instance_gundrak::instance_gundrak_InstanceMapScript::_moorabiAltarGUID

Referenced by OnGameObjectCreate(), and SetBossState().

◆ _sladRanAltarGUID

ObjectGuid instance_gundrak::instance_gundrak_InstanceMapScript::_sladRanAltarGUID

Referenced by OnGameObjectCreate(), and SetBossState().


The documentation for this struct was generated from the following file: