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

Public Member Functions

 instance_black_temple_InstanceMapScript (Map *map)
 
void OnCreatureCreate (Creature *creature) override
 
void OnGameObjectCreate (GameObject *go) override
 
bool SetBossState (uint32 type, EncounterState state) override
 
- Public Member Functions inherited from InstanceScript
 InstanceScript (Map *map)
 
 ~InstanceScript () override
 
virtual void Initialize ()
 
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
 
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 OnUnitDeath (Unit *)
 
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 SetData (uint32, uint32)
 
virtual void ProcessEvent (WorldObject *, uint32)
 

Protected Attributes

GuidSet ashtongueGUIDs
 

Additional Inherited Members

- Static Public Member Functions inherited from InstanceScript
static std::string GetBossStateName (uint8 state)
 
- Public Attributes inherited from InstanceScript
Mapinstance
 
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_black_temple_InstanceMapScript()

instance_black_temple::instance_black_temple_InstanceMapScript::instance_black_temple_InstanceMapScript ( Map map)
inline
101 : InstanceScript(map)
102 {
109
110 ashtongueGUIDs.clear();
111 }
#define DataHeader
Definition blackrock_depths.h:23
Definition InstanceScript.h:143
void SetBossNumber(uint32 number)
Definition InstanceScript.h:296
void LoadSummonData(ObjectData const *data)
Definition InstanceScript.cpp:212
void LoadDoorData(DoorData const *data)
Definition InstanceScript.cpp:176
void LoadBossBoundaries(BossBoundaryData const &data)
Definition InstanceScript.cpp:146
void SetHeaders(std::string const &dataHeaders)
Definition InstanceScript.cpp:153
void LoadObjectData(ObjectData const *creatureData, ObjectData const *gameObjectData)
Definition InstanceScript.cpp:188
@ MAX_ENCOUNTERS
Definition deadmines.h:30
ObjectData const creatureData[]
Definition instance_black_temple.cpp:48
DoorData const doorData[]
Definition instance_black_temple.cpp:27
BossBoundaryData const boundaries
Definition instance_black_temple.cpp:79
ObjectData const summonData[]
Definition instance_black_temple.cpp:69
GuidSet ashtongueGUIDs
Definition instance_black_temple.cpp:193

References ashtongueGUIDs, boundaries, creatureData, DataHeader, doorData, InstanceScript::LoadBossBoundaries(), InstanceScript::LoadDoorData(), InstanceScript::LoadObjectData(), InstanceScript::LoadSummonData(), MAX_ENCOUNTERS, InstanceScript::SetBossNumber(), InstanceScript::SetHeaders(), and summonData.

Member Function Documentation

◆ OnCreatureCreate()

void instance_black_temple::instance_black_temple_InstanceMapScript::OnCreatureCreate ( Creature creature)
inlineoverridevirtual

Reimplemented from ZoneScript.

114 {
115 switch (creature->GetEntry())
116 {
120 creature->SetCorpseDelay(5);
121 break;
128 case NPC_STORM_FURY:
131 else
132 ashtongueGUIDs.insert(creature->GetGUID());
133 break;
134 default:
135 break;
136 }
137
139 }
@ DONE
Definition InstanceScript.h:61
@ FACTION_ASHTONGUE_DEATHSWORN
Definition SharedDefines.h:231
@ NPC_ASHTONGUE_PRIMALIST
Definition black_temple.h:81
@ NPC_ASHTONGUE_MYSTIC
Definition black_temple.h:79
@ NPC_ASHTONGUE_STORMCALLER
Definition black_temple.h:80
@ NPC_ANGERED_SOUL_FRAGMENT
Definition black_temple.h:61
@ NPC_ASHTONGUE_FERAL_SPIRIT
Definition black_temple.h:82
@ NPC_HUNGERING_SOUL_FRAGMENT
Definition black_temple.h:62
@ NPC_ASHTONGUE_STALKER
Definition black_temple.h:83
@ NPC_ASHTONGUE_BATTLELORD
Definition black_temple.h:78
@ NPC_SUFFERING_SOUL_FRAGMENT
Definition black_temple.h:63
@ NPC_STORM_FURY
Definition black_temple.h:84
@ DATA_SHADE_OF_AKAMA
Definition black_temple.h:31
void SetCorpseDelay(uint32 delay)
Definition Creature.h:70
void OnCreatureCreate(Creature *creature) override
Definition InstanceScript.cpp:70
EncounterState GetBossState(uint32 id) const
Definition InstanceScript.h:242
uint32 GetEntry() const
Definition Object.h:115
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:112
void SetFaction(uint32 faction)
Definition Unit.cpp:10097

References ashtongueGUIDs, DATA_SHADE_OF_AKAMA, DONE, FACTION_ASHTONGUE_DEATHSWORN, InstanceScript::GetBossState(), Object::GetEntry(), Object::GetGUID(), NPC_ANGERED_SOUL_FRAGMENT, NPC_ASHTONGUE_BATTLELORD, NPC_ASHTONGUE_FERAL_SPIRIT, NPC_ASHTONGUE_MYSTIC, NPC_ASHTONGUE_PRIMALIST, NPC_ASHTONGUE_STALKER, NPC_ASHTONGUE_STORMCALLER, NPC_HUNGERING_SOUL_FRAGMENT, NPC_STORM_FURY, NPC_SUFFERING_SOUL_FRAGMENT, InstanceScript::OnCreatureCreate(), Creature::SetCorpseDelay(), and Unit::SetFaction().

◆ OnGameObjectCreate()

void instance_black_temple::instance_black_temple_InstanceMapScript::OnGameObjectCreate ( GameObject go)
inlineoverridevirtual

Reimplemented from ZoneScript.

142 {
143 // If created after Illidari Council is done, then skip Akama's event. Used for crashes/reset
144 if (go->GetEntry() == GO_ILLIDAN_GATE)
145 {
147 {
150 }
151 }
152
154 }
@ GO_ILLIDAN_GATE
Definition black_temple.h:102
@ DATA_ILLIDARI_COUNCIL
Definition black_temple.h:36
@ DATA_AKAMA_ILLIDAN
Definition black_temple.h:37
void HandleGameObject(ObjectGuid guid, bool open, GameObject *go=nullptr)
Definition InstanceScript.cpp:125
void OnGameObjectCreate(GameObject *go) override
Definition InstanceScript.cpp:85
static ObjectGuid const Empty
Definition ObjectGuid.h:120
bool SetBossState(uint32 type, EncounterState state) override
Definition instance_black_temple.cpp:156

References DATA_AKAMA_ILLIDAN, DATA_ILLIDARI_COUNCIL, DONE, ObjectGuid::Empty, InstanceScript::GetBossState(), Object::GetEntry(), GO_ILLIDAN_GATE, InstanceScript::HandleGameObject(), InstanceScript::OnGameObjectCreate(), and SetBossState().

◆ SetBossState()

bool instance_black_temple::instance_black_temple_InstanceMapScript::SetBossState ( uint32  type,
EncounterState  state 
)
inlineoverridevirtual

Reimplemented from InstanceScript.

157 {
158 if (!InstanceScript::SetBossState(type, state))
159 return false;
160
161 if (state == DONE)
162 {
163 switch (type)
164 {
167 trigger->AI()->Talk(EMOTE_NAJENTUS_DEFEATED);
168 break;
170 for (ObjectGuid const& guid : ashtongueGUIDs)
171 if (Creature* ashtongue = instance->GetCreature(guid))
172 ashtongue->SetFaction(FACTION_ASHTONGUE_DEATHSWORN);
173 [[fallthrough]];
179 trigger->AI()->Talk(EMOTE_LOWER_TEMPLE_DEFEATED);
180 break;
183 akama->AI()->DoAction(0);
184 break;
185 default:
186 break;
187 }
188 }
189 return true;
190 }
@ EMOTE_LOWER_TEMPLE_DEFEATED
Definition black_temple.h:121
@ EMOTE_NAJENTUS_DEFEATED
Definition black_temple.h:120
@ DATA_TERON_GOREFIEND
Definition black_temple.h:32
@ DATA_BLACK_TEMPLE_TRIGGER
Definition black_temple.h:46
@ DATA_HIGH_WARLORD_NAJENTUS
Definition black_temple.h:29
@ DATA_GURTOGG_BLOODBOIL
Definition black_temple.h:33
@ DATA_RELIQUARY_OF_SOULS
Definition black_temple.h:34
Definition Creature.h:43
virtual bool SetBossState(uint32 id, EncounterState state)
Definition InstanceScript.cpp:385
Creature * GetCreature(uint32 type)
Definition InstanceScript.cpp:115
Map * instance
Definition InstanceScript.h:149
bool AllBossesDone() const
Definition InstanceScript.cpp:808
Definition ObjectGuid.h:118

References InstanceScript::AllBossesDone(), ashtongueGUIDs, DATA_AKAMA_ILLIDAN, DATA_BLACK_TEMPLE_TRIGGER, DATA_GURTOGG_BLOODBOIL, DATA_HIGH_WARLORD_NAJENTUS, DATA_ILLIDARI_COUNCIL, DATA_RELIQUARY_OF_SOULS, DATA_SHADE_OF_AKAMA, DATA_TERON_GOREFIEND, DONE, EMOTE_LOWER_TEMPLE_DEFEATED, EMOTE_NAJENTUS_DEFEATED, FACTION_ASHTONGUE_DEATHSWORN, Map::GetCreature(), InstanceScript::GetCreature(), InstanceScript::instance, and InstanceScript::SetBossState().

Referenced by OnGameObjectCreate().

Member Data Documentation

◆ ashtongueGUIDs

GuidSet instance_black_temple::instance_black_temple_InstanceMapScript::ashtongueGUIDs
protected

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