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

Public Member Functions

 instance_temple_of_ahnqiraj_InstanceMapScript (Map *map)
 
void Initialize () override
 
void OnCreatureCreate (Creature *creature) override
 
void OnGameObjectCreate (GameObject *go) override
 
void OnUnitDeath (Unit *unit) override
 
uint32 GetData (uint32 type) const override
 
void SetData (uint32 type, uint32 data) override
 
bool CheckRequiredBosses (uint32 bossId, Player const *player) const override
 
bool SetBossState (uint32 type, EncounterState state) 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 void Update (uint32)
 
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
 
Creature * GetCreature (uint32 type)
 
GameObject * GetGameObject (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)
 Open or close a GameObject by GUID.
 
void HandleGameObject (uint32 type, bool open)
 Open or close a GameObject registered via LoadObjectData.
 
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
 
void RegisterBossSpawn (ObjectGuid::LowType spawnId, uint32 bossId)
 
bool IsBossSpawnDone (ObjectGuid::LowType spawnId) 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)
 
bool _SkipCheckRequiredBosses (Player const *player=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 void ProcessEvent (WorldObject *, uint32)
 

Private Attributes

GuidVector CThunGraspGUIDs
 
uint32 BugTrioDeathCount
 

Additional Inherited Members

- Static Public Member Functions inherited from InstanceScript
static std::string GetBossStateName (uint8 state)
 
- Public Attributes inherited from InstanceScript
Map * instance
 
TaskScheduler scheduler
 
- 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_temple_of_ahnqiraj_InstanceMapScript()

instance_temple_of_ahnqiraj::instance_temple_of_ahnqiraj_InstanceMapScript::instance_temple_of_ahnqiraj_InstanceMapScript ( Map *  map)
inline
63 : InstanceScript(map)
64 {
69 }
#define DataHeader
Definition blackrock_depths.h:23
Definition InstanceScript.h:143
void SetBossNumber(uint32 number)
Definition InstanceScript.h:311
void LoadDoorData(DoorData const *data)
Definition InstanceScript.cpp:192
void SetHeaders(std::string const &dataHeaders)
Definition InstanceScript.cpp:169
void LoadObjectData(ObjectData const *creatureData, ObjectData const *gameObjectData)
Definition InstanceScript.cpp:204
ObjectData const creatureData[]
Definition instance_temple_of_ahnqiraj.cpp:25
DoorData const doorData[]
Definition instance_temple_of_ahnqiraj.cpp:42
@ MAX_BOSS_NUMBER
Definition temple_of_ahnqiraj.h:38

References creatureData, DataHeader, doorData, InstanceScript::LoadDoorData(), InstanceScript::LoadObjectData(), MAX_BOSS_NUMBER, InstanceScript::SetBossNumber(), and InstanceScript::SetHeaders().

Member Function Documentation

◆ CheckRequiredBosses()

bool instance_temple_of_ahnqiraj::instance_temple_of_ahnqiraj_InstanceMapScript::CheckRequiredBosses ( uint32  bossId,
Player const *  player 
) const
inlineoverridevirtual

Reimplemented from InstanceScript.

194 {
195 if (_SkipCheckRequiredBosses(player))
196 return true;
197
198 switch (bossId)
199 {
202 return false;
203 break;
204 case DATA_CTHUN:
206 return false;
207 break;
208 default:
209 break;
210 }
211
212 return true;
213 }
@ DONE
Definition InstanceScript.h:61
EncounterState GetBossState(uint32 id) const
Definition InstanceScript.h:252
bool _SkipCheckRequiredBosses(Player const *player=nullptr) const
Definition InstanceScript.cpp:401
@ DATA_HUHURAN
Definition temple_of_ahnqiraj.h:33
@ DATA_CTHUN
Definition temple_of_ahnqiraj.h:36
@ DATA_TWIN_EMPERORS
Definition temple_of_ahnqiraj.h:34

References DATA_CTHUN, DATA_HUHURAN, DATA_TWIN_EMPERORS, and DONE.

◆ GetData()

uint32 instance_temple_of_ahnqiraj::instance_temple_of_ahnqiraj_InstanceMapScript::GetData ( uint32  type) const
inlineoverridevirtual

Reimplemented from ZoneScript.

169 {
170 switch (type)
171 {
173 return BugTrioDeathCount;
174 }
175 return 0;
176 }
uint32 BugTrioDeathCount
Definition instance_temple_of_ahnqiraj.cpp:238
@ DATA_BUG_TRIO_DEATH
Definition temple_of_ahnqiraj.h:43

References DATA_BUG_TRIO_DEATH.

◆ Initialize()

void instance_temple_of_ahnqiraj::instance_temple_of_ahnqiraj_InstanceMapScript::Initialize ( )
inlineoverridevirtual

Reimplemented from InstanceScript.

72 {
74 }

References BugTrioDeathCount.

◆ OnCreatureCreate()

void instance_temple_of_ahnqiraj::instance_temple_of_ahnqiraj_InstanceMapScript::OnCreatureCreate ( Creature *  creature)
inlineoverridevirtual

Reimplemented from ZoneScript.

77 {
78 switch (creature->GetEntry())
79 {
82 creature->Respawn();
83 break;
84 case NPC_MASTERS_EYE:
85 if (GetBossState(DATA_TWIN_EMPERORS) != DONE && !creature->IsAlive())
86 creature->Respawn(true);
87 break;
88 case NPC_CTHUN:
89 if (!creature->IsAlive())
90 {
91 for (ObjectGuid const& guid : CThunGraspGUIDs)
92 {
93 if (GameObject* cthunGrasp = instance->GetGameObject(guid))
94 {
95 cthunGrasp->DespawnOrUnsummon(1s);
96 }
97 }
98 }
99 break;
100 default:
101 break;
102 }
103
105 }
void Respawn(bool force=false)
Definition Creature.cpp:2044
Definition GameObject.h:120
void OnCreatureCreate(Creature *creature) override
Definition InstanceScript.cpp:75
Map * instance
Definition InstanceScript.h:149
GameObject * GetGameObject(ObjectGuid const &guid)
Definition Map.cpp:2447
Definition ObjectGuid.h:121
uint32 GetEntry() const
Definition Object.h:123
bool IsAlive() const
Definition Unit.h:1798
GuidVector CThunGraspGUIDs
Definition instance_temple_of_ahnqiraj.cpp:237
@ NPC_CTHUN
Definition temple_of_ahnqiraj.h:54
@ NPC_OURO_SPAWNER
Definition temple_of_ahnqiraj.h:77
@ NPC_MASTERS_EYE
Definition temple_of_ahnqiraj.h:53
@ DATA_OURO
Definition temple_of_ahnqiraj.h:35

References CThunGraspGUIDs, DATA_OURO, DATA_TWIN_EMPERORS, DONE, InstanceScript::GetBossState(), Object::GetEntry(), Map::GetGameObject(), InstanceScript::instance, Unit::IsAlive(), NPC_CTHUN, NPC_MASTERS_EYE, NPC_OURO_SPAWNER, InstanceScript::OnCreatureCreate(), and Creature::Respawn().

◆ OnGameObjectCreate()

void instance_temple_of_ahnqiraj::instance_temple_of_ahnqiraj_InstanceMapScript::OnGameObjectCreate ( GameObject *  go)
inlineoverridevirtual

Reimplemented from ZoneScript.

108 {
109 switch (go->GetEntry())
110 {
111 case GO_CTHUN_GRASP:
112 CThunGraspGUIDs.push_back(go->GetGUID());
113 if (Creature* CThun = GetCreature(DATA_CTHUN))
114 {
115 if (!CThun->IsAlive())
116 {
117 go->DespawnOrUnsummon(1s);
118 }
119 }
120 break;
121 default:
122 break;
123 }
124
126 }
Definition Creature.h:47
void DespawnOrUnsummon(Milliseconds delay=0ms, Seconds forcedRespawnTime=0s)
Definition GameObject.cpp:928
Creature * GetCreature(uint32 type)
Definition InstanceScript.cpp:126
void OnGameObjectCreate(GameObject *go) override
Definition InstanceScript.cpp:96
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:120
@ GO_CTHUN_GRASP
Definition temple_of_ahnqiraj.h:89

References CThunGraspGUIDs, DATA_CTHUN, GameObject::DespawnOrUnsummon(), InstanceScript::GetCreature(), Object::GetEntry(), Object::GetGUID(), GO_CTHUN_GRASP, and InstanceScript::OnGameObjectCreate().

◆ OnUnitDeath()

void instance_temple_of_ahnqiraj::instance_temple_of_ahnqiraj_InstanceMapScript::OnUnitDeath ( Unit *  unit)
inlineoverridevirtual

Reimplemented from ZoneScript.

129 {
130 switch (unit->GetEntry())
131 {
134 if (Creature* creature = unit->ToCreature())
135 {
136 if (CreatureGroup* formation = creature->GetFormation())
137 {
138 scheduler.Schedule(100ms, [formation](TaskContext /*context*/)
139 {
140 if (!formation->IsAnyMemberAlive(true))
141 {
142 if (Creature* leader = formation->GetLeader())
143 {
144 if (leader->IsAlive())
145 {
146 leader->AI()->SetData(0, 1);
147 }
148 }
149 }
150 });
151 }
152 }
153 break;
154 case NPC_CTHUN:
155 for (ObjectGuid const& guid : CThunGraspGUIDs)
156 {
157 if (GameObject* cthunGrasp = instance->GetGameObject(guid))
158 {
159 cthunGrasp->DespawnOrUnsummon(1s);
160 }
161 }
162 break;
163 default:
164 break;
165 }
166 }
Definition CreatureGroups.h:95
TaskScheduler scheduler
Definition InstanceScript.h:308
Creature * ToCreature()
Definition Object.h:212
Definition TaskScheduler.h:422
TaskScheduler & Schedule(std::chrono::duration< _Rep, _Period > const &time, task_handler_t const &task)
Definition TaskScheduler.h:233
@ NPC_QIRAJI_MINDSLAYER
Definition temple_of_ahnqiraj.h:81
@ NPC_QIRAJI_SLAYER
Definition temple_of_ahnqiraj.h:80

References CThunGraspGUIDs, Object::GetEntry(), Map::GetGameObject(), InstanceScript::instance, NPC_CTHUN, NPC_QIRAJI_MINDSLAYER, NPC_QIRAJI_SLAYER, TaskScheduler::Schedule(), InstanceScript::scheduler, and Object::ToCreature().

◆ SetBossState()

bool instance_temple_of_ahnqiraj::instance_temple_of_ahnqiraj_InstanceMapScript::SetBossState ( uint32  type,
EncounterState  state 
)
inlineoverridevirtual

Reimplemented from InstanceScript.

216 {
217 if (!InstanceScript::SetBossState(type, state))
218 return false;
219
220 switch (type)
221 {
222 case DATA_OURO:
223 if (state == FAIL)
224 {
225 if (Creature* ouroSpawner = GetCreature(DATA_OURO_SPAWNER))
226 ouroSpawner->Respawn();
227 }
228 break;
229 default:
230 break;
231 }
232
233 return true;
234 }
@ FAIL
Definition InstanceScript.h:60
virtual bool SetBossState(uint32 id, EncounterState state)
Definition InstanceScript.cpp:406
@ DATA_OURO_SPAWNER
Definition temple_of_ahnqiraj.h:44

References DATA_OURO, DATA_OURO_SPAWNER, FAIL, and InstanceScript::SetBossState().

◆ SetData()

void instance_temple_of_ahnqiraj::instance_temple_of_ahnqiraj_InstanceMapScript::SetData ( uint32  type,
uint32  data 
)
inlineoverridevirtual

Reimplemented from ZoneScript.

179 {
180 switch (type)
181 {
183 if (data != 0)
185 else
187 break;
188 default:
189 break;
190 }
191 }

References DATA_BUG_TRIO_DEATH.

Member Data Documentation

◆ BugTrioDeathCount

uint32 instance_temple_of_ahnqiraj::instance_temple_of_ahnqiraj_InstanceMapScript::BugTrioDeathCount
private

Referenced by Initialize().

◆ CThunGraspGUIDs

GuidVector instance_temple_of_ahnqiraj::instance_temple_of_ahnqiraj_InstanceMapScript::CThunGraspGUIDs
private

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