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

Public Member Functions

 instance_blackrock_depths (Map *map)
 
void OnPlayerEnter (Player *) override
 
void ReplaceMoiraIfSaved ()
 
void Initialize () override
 
void OnCreatureCreate (Creature *creature) override
 
void OnGameObjectCreate (GameObject *go) override
 
void OnUnitDeath (Unit *unit) override
 
void SetData (uint32 type, uint32 data) override
 
uint32 GetData (uint32 type) const override
 
void SetGuidData (uint32 data, ObjectGuid guid) override
 
ObjectGuid GetGuidData (uint32 data) const override
 
std::string GetSaveData () override
 
void Load (char const *in) override
 
void TombOfSevenEvent ()
 
void TombOfSevenReset ()
 
bool CheckTombReset (uint32 diff)
 
void Update (uint32 diff) override
 
- Public Member Functions inherited from InstanceScript
 InstanceScript (Map *map)
 
 ~InstanceScript () override
 
virtual void CreatureLooted (Creature *, LootType)
 
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
 
Creature * GetCreature (uint32 type)
 
GameObject * GetGameObject (uint32 type)
 
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 ()
 
virtual bool SetBossState (uint32 id, EncounterState state)
 
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)
 
virtual bool CheckRequiredBosses (uint32, Player const *=nullptr) const
 
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 uint64 GetData64 (uint32) const
 
virtual void SetData64 (uint32, uint64)
 
virtual void ProcessEvent (WorldObject *, uint32)
 

Public Attributes

uint32 encounter [MAX_ENCOUNTER]
 
std::string str_data
 
ObjectGuid EmperorGUID
 
ObjectGuid PhalanxGUID
 
ObjectGuid MagmusGUID
 
ObjectGuid MoiraGUID
 
ObjectGuid PriestessGUID
 
ObjectGuid IronhandGUID [6]
 
ObjectGuid CorenGUID
 
ObjectGuid GoArena1GUID
 
ObjectGuid GoArena2GUID
 
ObjectGuid GoArena3GUID
 
ObjectGuid GoArena4GUID
 
ObjectGuid GoShadowLockGUID
 
ObjectGuid GoShadowMechGUID
 
ObjectGuid GoShadowGiantGUID
 
ObjectGuid GoShadowDummyGUID
 
ObjectGuid GoBarKegGUID
 
ObjectGuid GoBarKegTrapGUID
 
ObjectGuid GoBarDoorGUID
 
ObjectGuid GoTombEnterGUID
 
ObjectGuid GoTombExitGUID
 
ObjectGuid GoLyceumGUID
 
ObjectGuid GoSFSGUID
 
ObjectGuid GoSFNGUID
 
ObjectGuid GoGolemNGUID
 
ObjectGuid GoGolemSGUID
 
ObjectGuid GoThroneGUID
 
ObjectGuid GoChestGUID
 
ObjectGuid GoSpectralChaliceGUID
 
uint32 BarAleCount
 
uint32 GhostKillCount
 
uint32 LovePotionEventState
 
ObjectGuid TombBossGUIDs [7]
 
uint32 tombResetTimer
 
uint32 TombTimer
 
uint32 TombEventCounter
 
uint32 OpenedCoofers
 
uint32 IronhandCounter
 
uint32 PhalanxActivationState
 
GuidList ArgelmachAdds
 
ObjectGuid ArgelmachGUID
 
GuidList VaultWarderGUIDs
 
ObjectGuid GoSecretDoorGUID
 
ObjectGuid GoSecretSafeGUID
 
Position VaultWarderCenter = Position(813.5f, -348.0f)
 
TempSummon * TempSummonGrimstone = nullptr
 
Position GrimstonePositon = Position(625.559f, -205.618f, -52.735f, 2.609f)
 
time_t timeRingFail = 0
 
uint8 arenaMobsToSpawn
 
uint8 arenaBossToSpawn
 
std::vector< ObjectGuid > ArenaSpectators
 
Position CenterOfRingOfLaw = Position(595.289, -186.56)
 
ObjectGuid EmperorSenators [5]
 
std::vector< ObjectGuid > EmperorSenatorsVector
 
Position EmperorSpawnPos = Position(1380.52, -831, 115)
 
- Public Attributes inherited from InstanceScript
Map * instance
 
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_blackrock_depths()

instance_blackrock_depths::instance_blackrock_depths ( Map *  map)
inline
120 : InstanceScript(map)
121 {
123 }
#define DataHeader
Definition blackrock_depths.h:23
Definition InstanceScript.h:143
void SetHeaders(std::string const &dataHeaders)
Definition InstanceScript.cpp:169

References DataHeader, and InstanceScript::SetHeaders().

Member Function Documentation

◆ CheckTombReset()

bool instance_blackrock_depths::CheckTombReset ( uint32  diff)
inline
963 {
964 bool anyBossAlive = false; // status of the bosses up until the current one
965 for (uint8 i = 0; i < TombEventCounter; i++)
966 {
968 if (boss)
969 {
970 anyBossAlive |= boss->IsAlive();
971 if (boss->IsAlive() && boss->IsInCombat())
972 {
974 return false; // any boss in combat means we shouldn't reset.
975 }
976 }
977 }
978 if (!anyBossAlive) // no boss alive, put reset timer back up
980 tombResetTimer -= diff;
981 return tombResetTimer < diff;
982 }
std::uint8_t uint8
Definition Define.h:109
Definition Creature.h:47
Map * instance
Definition InstanceScript.h:149
Creature * GetCreature(ObjectGuid const &guid)
Definition Map.cpp:2442
bool IsAlive() const
Definition Unit.h:1812
bool IsInCombat() const
Definition Unit.h:949
@ TIMER_TOMB_RESET
Definition instance_blackrock_depths.cpp:32
ObjectGuid TombBossGUIDs[7]
Definition instance_blackrock_depths.cpp:161
uint32 tombResetTimer
Definition instance_blackrock_depths.cpp:162
uint32 TombEventCounter
Definition instance_blackrock_depths.cpp:164

References Map::GetCreature(), InstanceScript::instance, Unit::IsAlive(), Unit::IsInCombat(), TIMER_TOMB_RESET, TombBossGUIDs, TombEventCounter, and tombResetTimer.

Referenced by Update().

◆ GetData()

uint32 instance_blackrock_depths::GetData ( uint32  type) const
inlineoverridevirtual

Reimplemented from ZoneScript.

755 {
756 switch (type)
757 {
758 case TYPE_RING_OF_LAW:
759 return encounter[0];
760 case TYPE_VAULT:
761 return encounter[1];
762 case TYPE_BAR:
763 if (encounter[2] == IN_PROGRESS && BarAleCount == 3)
764 return SPECIAL;
765 else
766 return encounter[2];
768 return encounter[3];
769 case TYPE_LYCEUM:
770 return encounter[4];
771 case TYPE_IRON_HALL:
772 return encounter[5];
774 return timeRingFail;
775 case DATA_ARENA_MOBS:
776 return arenaMobsToSpawn;
777 case DATA_ARENA_BOSS:
778 return arenaBossToSpawn;
783 }
784 return 0;
785 }
@ IN_PROGRESS
Definition InstanceScript.h:59
@ SPECIAL
Definition InstanceScript.h:62
@ TYPE_RING_OF_LAW
Definition blackrock_depths.h:40
@ TYPE_IRON_HALL
Definition blackrock_depths.h:45
@ TYPE_BAR
Definition blackrock_depths.h:42
@ TYPE_TOMB_OF_SEVEN
Definition blackrock_depths.h:43
@ DATA_TIME_RING_FAIL
Definition blackrock_depths.h:83
@ DATA_ARENA_BOSS
Definition blackrock_depths.h:85
@ TYPE_LYCEUM
Definition blackrock_depths.h:44
@ DATA_PHALANX_ACTIVATED
Definition blackrock_depths.h:86
@ DATA_LOVE_POTION_EVENT
Definition blackrock_depths.h:87
@ TYPE_VAULT
Definition blackrock_depths.h:41
@ DATA_ARENA_MOBS
Definition blackrock_depths.h:84
uint8 arenaBossToSpawn
Definition instance_blackrock_depths.cpp:182
time_t timeRingFail
Definition instance_blackrock_depths.cpp:180
uint32 BarAleCount
Definition instance_blackrock_depths.cpp:158
uint32 PhalanxActivationState
Definition instance_blackrock_depths.cpp:167
uint32 encounter[MAX_ENCOUNTER]
Definition instance_blackrock_depths.cpp:125
uint8 arenaMobsToSpawn
Definition instance_blackrock_depths.cpp:181
uint32 LovePotionEventState
Definition instance_blackrock_depths.cpp:160

References arenaBossToSpawn, arenaMobsToSpawn, BarAleCount, DATA_ARENA_BOSS, DATA_ARENA_MOBS, DATA_LOVE_POTION_EVENT, DATA_PHALANX_ACTIVATED, DATA_TIME_RING_FAIL, encounter, IN_PROGRESS, LovePotionEventState, PhalanxActivationState, SPECIAL, timeRingFail, TYPE_BAR, TYPE_IRON_HALL, TYPE_LYCEUM, TYPE_RING_OF_LAW, TYPE_TOMB_OF_SEVEN, and TYPE_VAULT.

Referenced by OnCreatureCreate(), OnGameObjectCreate(), OnUnitDeath(), SetData(), and Update().

◆ GetGuidData()

ObjectGuid instance_blackrock_depths::GetGuidData ( uint32  data) const
inlineoverridevirtual

Reimplemented from ZoneScript.

830 {
831 switch (data)
832 {
833 case DATA_EMPEROR:
834 return EmperorGUID;
835 case DATA_PHALANX:
836 return PhalanxGUID;
837 case DATA_MOIRA:
838 return MoiraGUID;
839 case DATA_COREN:
840 return CorenGUID;
841 case DATA_ARENA1:
842 return GoArena1GUID;
843 case DATA_ARENA2:
844 return GoArena2GUID;
845 case DATA_ARENA3:
846 return GoArena3GUID;
847 case DATA_ARENA4:
848 return GoArena4GUID;
849 case DATA_GO_BAR_KEG:
850 return GoBarKegGUID;
852 return GoBarKegTrapGUID;
853 case DATA_GO_BAR_DOOR:
854 return GoBarDoorGUID;
856 return GoSFNGUID;
858 return GoSFSGUID;
859 case DATA_THRONE_DOOR:
860 return GoThroneGUID;
862 return GoGolemNGUID;
864 return GoGolemSGUID;
865 case DATA_GO_CHALICE:
867 case DATA_MAGMUS:
868 {
869 return MagmusGUID;
870 }
871 }
872
873 return ObjectGuid::Empty;
874 }
@ DATA_PHALANX
Definition blackrock_depths.h:48
@ DATA_COREN
Definition blackrock_depths.h:75
@ DATA_EMPEROR
Definition blackrock_depths.h:47
@ DATA_GO_BAR_KEG
Definition blackrock_depths.h:55
@ DATA_MAGMUS
Definition blackrock_depths.h:73
@ DATA_ARENA3
Definition blackrock_depths.h:52
@ DATA_ARENA2
Definition blackrock_depths.h:51
@ DATA_GO_CHALICE
Definition blackrock_depths.h:58
@ DATA_MOIRA
Definition blackrock_depths.h:67
@ DATA_GOLEM_DOOR_S
Definition blackrock_depths.h:61
@ DATA_GOLEM_DOOR_N
Definition blackrock_depths.h:60
@ DATA_THRONE_DOOR
Definition blackrock_depths.h:63
@ DATA_SF_BRAZIER_N
Definition blackrock_depths.h:65
@ DATA_ARENA4
Definition blackrock_depths.h:53
@ DATA_GO_BAR_KEG_TRAP
Definition blackrock_depths.h:56
@ DATA_ARENA1
Definition blackrock_depths.h:50
@ DATA_SF_BRAZIER_S
Definition blackrock_depths.h:66
@ DATA_GO_BAR_DOOR
Definition blackrock_depths.h:57
static ObjectGuid const Empty
Definition ObjectGuid.h:123
ObjectGuid GoBarKegTrapGUID
Definition instance_blackrock_depths.cpp:145
ObjectGuid MagmusGUID
Definition instance_blackrock_depths.cpp:130
ObjectGuid GoBarDoorGUID
Definition instance_blackrock_depths.cpp:146
ObjectGuid EmperorGUID
Definition instance_blackrock_depths.cpp:128
ObjectGuid GoArena3GUID
Definition instance_blackrock_depths.cpp:138
ObjectGuid GoGolemSGUID
Definition instance_blackrock_depths.cpp:153
ObjectGuid PhalanxGUID
Definition instance_blackrock_depths.cpp:129
ObjectGuid GoSFSGUID
Definition instance_blackrock_depths.cpp:150
ObjectGuid GoGolemNGUID
Definition instance_blackrock_depths.cpp:152
ObjectGuid GoArena1GUID
Definition instance_blackrock_depths.cpp:136
ObjectGuid GoSFNGUID
Definition instance_blackrock_depths.cpp:151
ObjectGuid GoBarKegGUID
Definition instance_blackrock_depths.cpp:144
ObjectGuid GoArena4GUID
Definition instance_blackrock_depths.cpp:139
ObjectGuid MoiraGUID
Definition instance_blackrock_depths.cpp:131
ObjectGuid GoThroneGUID
Definition instance_blackrock_depths.cpp:154
ObjectGuid GoArena2GUID
Definition instance_blackrock_depths.cpp:137
ObjectGuid CorenGUID
Definition instance_blackrock_depths.cpp:134
ObjectGuid GoSpectralChaliceGUID
Definition instance_blackrock_depths.cpp:156

References CorenGUID, DATA_ARENA1, DATA_ARENA2, DATA_ARENA3, DATA_ARENA4, DATA_COREN, DATA_EMPEROR, DATA_GO_BAR_DOOR, DATA_GO_BAR_KEG, DATA_GO_BAR_KEG_TRAP, DATA_GO_CHALICE, DATA_GOLEM_DOOR_N, DATA_GOLEM_DOOR_S, DATA_MAGMUS, DATA_MOIRA, DATA_PHALANX, DATA_SF_BRAZIER_N, DATA_SF_BRAZIER_S, DATA_THRONE_DOOR, EmperorGUID, ObjectGuid::Empty, GoArena1GUID, GoArena2GUID, GoArena3GUID, GoArena4GUID, GoBarDoorGUID, GoBarKegGUID, GoBarKegTrapGUID, GoGolemNGUID, GoGolemSGUID, GoSFNGUID, GoSFSGUID, GoSpectralChaliceGUID, GoThroneGUID, MagmusGUID, MoiraGUID, and PhalanxGUID.

Referenced by SetData().

◆ GetSaveData()

std::string instance_blackrock_depths::GetSaveData ( )
inlineoverridevirtual

Reimplemented from InstanceScript.

877 {
878 return str_data;
879 }
std::string str_data
Definition instance_blackrock_depths.cpp:126

References str_data.

◆ Initialize()

void instance_blackrock_depths::Initialize ( )
inlineoverridevirtual

Reimplemented from InstanceScript.

236 {
237 memset(&encounter, 0, sizeof(encounter));
238
239 BarAleCount = 0;
240 GhostKillCount = 0;
244 tombResetTimer = 0;
245 OpenedCoofers = 0;
246 IronhandCounter = 0;
248 ArenaSpectators.clear();
249
250 // these are linked to the dungeon and not how many times the arena started.
251 arenaMobsToSpawn = urand(0, 5);
252 arenaBossToSpawn = urand(0, 5);
253 }
@ NOT_STARTED
Definition InstanceScript.h:58
uint32 urand(uint32 min, uint32 max)
Definition Random.cpp:44
@ TIMER_TOMB_START
Definition instance_blackrock_depths.cpp:31
uint32 OpenedCoofers
Definition instance_blackrock_depths.cpp:165
std::vector< ObjectGuid > ArenaSpectators
Definition instance_blackrock_depths.cpp:184
uint32 GhostKillCount
Definition instance_blackrock_depths.cpp:159
uint32 IronhandCounter
Definition instance_blackrock_depths.cpp:166
uint32 TombTimer
Definition instance_blackrock_depths.cpp:163

References arenaBossToSpawn, arenaMobsToSpawn, ArenaSpectators, BarAleCount, encounter, GhostKillCount, IronhandCounter, LovePotionEventState, NOT_STARTED, OpenedCoofers, PhalanxActivationState, TIMER_TOMB_START, TombEventCounter, tombResetTimer, TombTimer, and urand().

◆ Load()

void instance_blackrock_depths::Load ( char const *  in)
inlineoverridevirtual

Reimplemented from InstanceScript.

882 {
883 if (!in)
884 {
886 return;
887 }
888
890
891 std::istringstream loadStream(in);
892 loadStream >> encounter[0] >> encounter[1] >> encounter[2] >> encounter[3]
893 >> encounter[4] >> encounter[5] >> GhostKillCount;
894 if (!(loadStream >> PhalanxActivationState) || PhalanxActivationState != DONE)
896 if (!(loadStream >> LovePotionEventState) || LovePotionEventState != DONE)
898
899 for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
900 if (encounter[i] == IN_PROGRESS)
902 if (GhostKillCount > 0 && GhostKillCount < 7)
903 GhostKillCount = 0;//reset tomb of seven event
904 if (GhostKillCount >= 7)
905 GhostKillCount = 7;
906
908 }
#define OUT_LOAD_INST_DATA_FAIL
Definition InstanceScript.h:33
#define OUT_LOAD_INST_DATA_COMPLETE
Definition InstanceScript.h:32
#define OUT_LOAD_INST_DATA(a)
Definition InstanceScript.h:31
@ DONE
Definition InstanceScript.h:61
constexpr auto MAX_ENCOUNTER
Definition instance_blackrock_depths.cpp:26

References DONE, encounter, GhostKillCount, IN_PROGRESS, LovePotionEventState, MAX_ENCOUNTER, NOT_STARTED, OUT_LOAD_INST_DATA, OUT_LOAD_INST_DATA_COMPLETE, OUT_LOAD_INST_DATA_FAIL, and PhalanxActivationState.

◆ OnCreatureCreate()

void instance_blackrock_depths::OnCreatureCreate ( Creature *  creature)
inlineoverridevirtual

Reimplemented from ZoneScript.

256 {
257 switch (creature->GetEntry())
258 {
259 case NPC_EMPEROR:
260 EmperorGUID = creature->GetGUID();
261 break;
262 case NPC_PHALANX:
263 PhalanxGUID = creature->GetGUID();
264 break;
265 case NPC_MOIRA:
266 MoiraGUID = creature->GetGUID();
267 break;
269 CorenGUID = creature->GetGUID();
270 break;
271 case NPC_ANGERREL:
272 TombBossGUIDs[0] = creature->GetGUID();
273 break;
274 case NPC_SEETHREL:
275 TombBossGUIDs[1] = creature->GetGUID();
276 break;
277 case NPC_DOPEREL:
278 TombBossGUIDs[2] = creature->GetGUID();
279 break;
280 case NPC_GLOOMREL:
281 TombBossGUIDs[3] = creature->GetGUID();
282 break;
283 case NPC_VILEREL:
284 TombBossGUIDs[4] = creature->GetGUID();
285 break;
286 case NPC_HATEREL:
287 TombBossGUIDs[5] = creature->GetGUID();
288 break;
289 case NPC_DOOMREL:
290 TombBossGUIDs[6] = creature->GetGUID();
291 break;
292 case NPC_MAGMUS:
293 MagmusGUID = creature->GetGUID();
294 if (!creature->IsAlive())
295 HandleGameObject(GoThroneGUID, true); // if Magmus is dead open door to last boss
296 break;
301 if (creature->IsAlive() && creature->GetPositionZ() < -51.5f && creature->GetPositionZ() > -55.f)
302 ArgelmachAdds.push_back(creature->GetGUID());
303 break;
305 ArgelmachGUID = creature->GetGUID();
306 break;
308 IronhandGUID[IronhandCounter] = creature->GetGUID();
310 break;
312 ArenaSpectators.push_back(creature->GetGUID());
313 // note: reads GetData, not encounter[TYPE_RING_OF_LAW]: the types are 1-based
314 // while the array is 0-based, so the raw index would hit the vault slot
315 if (GetData(TYPE_RING_OF_LAW) == DONE) // added for crashes
316 {
317 creature->SetFaction(FACTION_NEUTRAL);
319 }
320 break;
322 case NPC_SHADOWFORCE_CITIZEN: // both do the same
324 ArenaSpectators.push_back(creature->GetGUID());
325 // note: reads GetData, not encounter[TYPE_RING_OF_LAW]: the types are 1-based
326 // while the array is 0-based, so the raw index would hit the vault slot
327 if (GetData(TYPE_RING_OF_LAW) == DONE) // added for crashes
328 {
329 creature->SetFaction(FACTION_NEUTRAL);
331 }
332 break;
334 // keep track of Senators that are not too far from emperor. Can't really use emperor as creature due to him possibly not being spawned.
335 // some senators spawn at ring of law
337 EmperorSenatorsVector.push_back(creature->GetGUID());
338 break;
340 // only the four constructs in the Relic Coffer room belong to the vault event,
341 // the rest of the Black Vault spawns are regular trash
343 break;
344 // dead spawns with a pending respawn are loaded too: a corpse must not be frozen or
345 // counted, or the restarted event could not complete until its respawn timer expires
346 if (!creature->IsAlive())
347 break;
348 // frozen until all 12 Relic Coffers have been opened. Stoned (statue visual) is cast
349 // here instead of creature_addon on purpose: addon auras get re-applied on every
350 // evade, which would turn the constructs back into statues after the event has started.
352 {
353 creature->CastSpell(creature, SPELL_STONED, true);
354 creature->SetImmuneToPC(true);
355 // untargetable while inert: the reference video (https://youtu.be/KE1nElNN1YY)
356 // shows the statues cannot be targeted until activated; vmangos likewise clears
357 // UNIT_FLAG_NOT_SELECTABLE on them when Doomgrip aggroes
359 creature->SetReactState(REACT_PASSIVE);
360 }
361 [[fallthrough]];
363 VaultWarderGUIDs.push_back(creature->GetGUID());
364 break;
365 default:
366 break;
367 }
368 }
@ UNIT_FLAG_NOT_SELECTABLE
Definition UnitDefines.h:282
@ REACT_DEFENSIVE
Definition Unit.h:575
@ REACT_PASSIVE
Definition Unit.h:574
@ NPC_EMPEROR
Definition blackrock_depths.h:92
@ NPC_COREN_DIREBREW
Definition blackrock_depths.h:113
@ NPC_IRONHAND_GUARDIAN
Definition blackrock_depths.h:115
@ NPC_SHADOWFORGE_SENATOR
Definition blackrock_depths.h:121
@ NPC_DOOMREL
Definition blackrock_depths.h:100
@ NPC_VILEREL
Definition blackrock_depths.h:97
@ NPC_RAGEREAVER_GOLEM
Definition blackrock_depths.h:108
@ NPC_ANGERREL
Definition blackrock_depths.h:94
@ NPC_WEAPON_TECHNICIAN
Definition blackrock_depths.h:106
@ NPC_DOOMFORGE_ARCANASMITH
Definition blackrock_depths.h:107
@ NPC_WATCHMAN_DOOMGRIP
Definition blackrock_depths.h:104
@ NPC_SHADOWFORCE_CITIZEN
Definition blackrock_depths.h:119
@ NPC_HATEREL
Definition blackrock_depths.h:96
@ NPC_MAGMUS
Definition blackrock_depths.h:123
@ NPC_GOLEM_LORD_ARGELMACH
Definition blackrock_depths.h:110
@ NPC_SHADOWFORGE_PEASANT
Definition blackrock_depths.h:118
@ NPC_WRATH_HAMMER_CONSTRUCT
Definition blackrock_depths.h:109
@ NPC_DOPEREL
Definition blackrock_depths.h:95
@ NPC_PHALANX
Definition blackrock_depths.h:93
@ NPC_GLOOMREL
Definition blackrock_depths.h:99
@ NPC_WARBRINGER_CONSTRUCT
Definition blackrock_depths.h:111
@ NPC_ARENA_SPECTATOR
Definition blackrock_depths.h:117
@ NPC_SEETHREL
Definition blackrock_depths.h:98
@ NPC_MOIRA
Definition blackrock_depths.h:101
@ FACTION_NEUTRAL
Definition blackrock_depths.h:28
void SetReactState(ReactStates state)
A creature can have 3 ReactStates : Agressive, Passive, Neutral.
Definition Creature.h:99
void HandleGameObject(ObjectGuid guid, bool open, GameObject *go=nullptr)
Open or close a GameObject by GUID.
Definition InstanceScript.cpp:136
uint32 GetEntry() const
Definition Object.h:123
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:120
void SetFaction(uint32 faction)
Definition Unit.cpp:6886
SpellCastResult CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition Unit.cpp:1378
void SetUnitFlag(UnitFlags flags)
UnitFlags available in UnitDefines.h.
Definition Unit.h:754
void SetImmuneToPC(bool apply, bool keepCombat=false)
Definition Unit.cpp:10423
float GetDistance2d(WorldObject const *obj) const
Definition Object.cpp:1322
@ SPELL_STONED
Definition instance_blackrock_depths.cpp:92
@ DISTANCE_EMPEROR_ROOM
Definition instance_blackrock_depths.cpp:38
@ DISTANCE_VAULT_WARDER
Definition instance_blackrock_depths.cpp:40
@ RADIUS_RING_OF_LAW
Definition instance_blackrock_depths.cpp:37
float GetPositionZ() const
Definition Position.h:123
float GetPositionX() const
Definition Position.h:121
float GetPositionY() const
Definition Position.h:122
GuidList ArgelmachAdds
Definition instance_blackrock_depths.cpp:169
uint32 GetData(uint32 type) const override
Definition instance_blackrock_depths.cpp:754
GuidList VaultWarderGUIDs
Definition instance_blackrock_depths.cpp:173
ObjectGuid IronhandGUID[6]
Definition instance_blackrock_depths.cpp:133
Position CenterOfRingOfLaw
Definition instance_blackrock_depths.cpp:185
std::vector< ObjectGuid > EmperorSenatorsVector
Definition instance_blackrock_depths.cpp:188
Position VaultWarderCenter
Definition instance_blackrock_depths.cpp:176
ObjectGuid ArgelmachGUID
Definition instance_blackrock_depths.cpp:170
Position EmperorSpawnPos
Definition instance_blackrock_depths.cpp:189

References ArenaSpectators, ArgelmachAdds, ArgelmachGUID, Unit::CastSpell(), CenterOfRingOfLaw, CorenGUID, DISTANCE_EMPEROR_ROOM, DISTANCE_VAULT_WARDER, DONE, EmperorGUID, EmperorSenatorsVector, EmperorSpawnPos, FACTION_NEUTRAL, GetData(), WorldObject::GetDistance2d(), Object::GetEntry(), Object::GetGUID(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), GoThroneGUID, InstanceScript::HandleGameObject(), IronhandCounter, IronhandGUID, Unit::IsAlive(), MagmusGUID, MoiraGUID, NOT_STARTED, NPC_ANGERREL, NPC_ARENA_SPECTATOR, NPC_COREN_DIREBREW, NPC_DOOMFORGE_ARCANASMITH, NPC_DOOMREL, NPC_DOPEREL, NPC_EMPEROR, NPC_GLOOMREL, NPC_GOLEM_LORD_ARGELMACH, NPC_HATEREL, NPC_IRONHAND_GUARDIAN, NPC_MAGMUS, NPC_MOIRA, NPC_PHALANX, NPC_RAGEREAVER_GOLEM, NPC_SEETHREL, NPC_SHADOWFORCE_CITIZEN, NPC_SHADOWFORGE_PEASANT, NPC_SHADOWFORGE_SENATOR, NPC_VILEREL, NPC_WARBRINGER_CONSTRUCT, NPC_WATCHMAN_DOOMGRIP, NPC_WEAPON_TECHNICIAN, NPC_WRATH_HAMMER_CONSTRUCT, PhalanxGUID, RADIUS_RING_OF_LAW, REACT_DEFENSIVE, REACT_PASSIVE, Unit::SetFaction(), Unit::SetImmuneToPC(), Creature::SetReactState(), Unit::SetUnitFlag(), SPELL_STONED, TombBossGUIDs, TYPE_RING_OF_LAW, TYPE_VAULT, UNIT_FLAG_NOT_SELECTABLE, VaultWarderCenter, and VaultWarderGUIDs.

◆ OnGameObjectCreate()

void instance_blackrock_depths::OnGameObjectCreate ( GameObject *  go)
inlineoverridevirtual

Reimplemented from ZoneScript.

371 {
372 switch (go->GetEntry())
373 {
375 {
376 std::list<Creature*> patrons;
379
380 Creature* closestPatron = nullptr;
381 SmartAI* closestPatronAI = nullptr;
382 float closestDistance = DISTANCE_DARK_IRON_ALE;
383 for (Creature* patron : patrons)
384 {
385 SmartAI* patronAI = CAST_AI(SmartAI, patron->AI());
386 float const distance = go->GetDistance(patron);
387 if (!patronAI || !patron->IsAlive() || patron->IsInCombat() || patronAI->GetData(DATA_DARK_IRON_ALE) == DATA_DARK_IRON_ALE_DRINK || distance >= closestDistance)
388 continue;
389
390 closestPatron = patron;
391 closestPatronAI = patronAI;
392 closestDistance = distance;
393 }
394
395 if (closestPatronAI)
396 {
397 closestPatron->SetEmoteState(EMOTE_STATE_NONE);
399 }
400 break;
401 }
402 case GO_ARENA1:
403 GoArena1GUID = go->GetGUID();
404 break;
405 case GO_ARENA2:
406 GoArena2GUID = go->GetGUID();
407 break;
408 case GO_ARENA3:
409 GoArena3GUID = go->GetGUID();
410 break;
411 case GO_ARENA4:
412 GoArena4GUID = go->GetGUID();
413 break;
414 case GO_SHADOW_LOCK:
416 break;
419 break;
422 break;
423 case GO_SHADOW_DUMMY:
425 break;
426 case GO_BAR_KEG_SHOT:
427 GoBarKegGUID = go->GetGUID();
428 break;
429 case GO_BAR_KEG_TRAP:
431 break;
432 case GO_BAR_DOOR:
433 GoBarDoorGUID = go->GetGUID();
434 go->AllowSaveToDB(true);
437 else if (GetData(TYPE_BAR) == DONE)
439 break;
440 case GO_TOMB_ENTER:
441 GoTombEnterGUID = go->GetGUID();
442 break;
443 case GO_TOMB_EXIT:
444 GoTombExitGUID = go->GetGUID();
445 if (GhostKillCount >= 7)
447 else
449 break;
450 case GO_LYCEUM:
451 GoLyceumGUID = go->GetGUID();
452 break;
453 case GO_SF_S:
454 GoSFSGUID = go->GetGUID();
455 break;
456 case GO_SF_N:
457 GoSFNGUID = go->GetGUID();
458 break;
459 case GO_GOLEM_ROOM_N:
460 GoGolemNGUID = go->GetGUID();
461 break;
462 case GO_GOLEM_ROOM_S:
463 GoGolemSGUID = go->GetGUID();
464 break;
465 case GO_THRONE_ROOM:
466 GoThroneGUID = go->GetGUID();
467 break;
468 case GO_CHEST_SEVEN:
469 GoChestGUID = go->GetGUID();
470 break;
473 break;
474 case GO_SECRET_DOOR:
476 if (GetData(TYPE_VAULT) == DONE)
478 break;
479 case GO_SECRET_SAFE:
481 // non-interactable via gameobject_template_addon flags until the vault event is done
482 if (GetData(TYPE_VAULT) == DONE)
484 break;
485 }
486 }
@ GO_STATE_ACTIVE
Definition GameObjectData.h:708
@ GO_STATE_ACTIVE_ALTERNATIVE
Definition GameObjectData.h:710
@ EMOTE_STATE_NONE
Definition SharedDefines.h:1926
@ GO_FLAG_NOT_SELECTABLE
Definition SharedDefines.h:1611
#define CAST_AI(a, b)
Definition UnitAI.h:26
void SetGoState(GOState state)
Definition GameObject.cpp:2582
void RemoveGameObjectFlag(GameObjectFlags flags)
Definition GameObject.h:225
void AllowSaveToDB(bool enable)
Definition GameObject.h:381
Definition SmartAI.h:46
uint32 GetData(uint32 id=0) const override
Definition SmartAI.cpp:1151
void SetData(uint32 id, uint32 value) override
Definition SmartAI.h:167
void SetEmoteState(Emote emoteState)
Definition Unit.h:764
void GetCreatureListWithEntryInGrid(std::list< Creature * > &lList, uint32 uiEntry, float fMaxSearchRange) const
Definition Object.cpp:2626
float GetDistance(WorldObject const *obj) const
Definition Object.cpp:1304
@ GO_SHADOW_MECHANISM
Definition instance_blackrock_depths.cpp:70
@ GO_ARENA3
Definition instance_blackrock_depths.cpp:67
@ GO_GOLEM_ROOM_N
Definition instance_blackrock_depths.cpp:81
@ GO_SECRET_DOOR
Definition instance_blackrock_depths.cpp:86
@ GO_SHADOW_LOCK
Definition instance_blackrock_depths.cpp:69
@ GO_SHADOW_GIANT_DOOR
Definition instance_blackrock_depths.cpp:71
@ GO_TOMB_EXIT
Definition instance_blackrock_depths.cpp:77
@ GO_LYCEUM
Definition instance_blackrock_depths.cpp:78
@ GO_SHADOW_DUMMY
Definition instance_blackrock_depths.cpp:72
@ GO_SF_S
Definition instance_blackrock_depths.cpp:80
@ GO_TOMB_ENTER
Definition instance_blackrock_depths.cpp:76
@ GO_ARENA2
Definition instance_blackrock_depths.cpp:66
@ GO_GOLEM_ROOM_S
Definition instance_blackrock_depths.cpp:82
@ GO_BAR_DOOR
Definition instance_blackrock_depths.cpp:75
@ GO_SF_N
Definition instance_blackrock_depths.cpp:79
@ GO_BAR_KEG_SHOT
Definition instance_blackrock_depths.cpp:73
@ GO_SECRET_SAFE
Definition instance_blackrock_depths.cpp:87
@ GO_ARENA4
Definition instance_blackrock_depths.cpp:68
@ GO_ARENA1
Definition instance_blackrock_depths.cpp:65
@ GO_SPECTRAL_CHALICE
Definition instance_blackrock_depths.cpp:84
@ GO_BAR_KEG_TRAP
Definition instance_blackrock_depths.cpp:74
@ GO_THRONE_ROOM
Definition instance_blackrock_depths.cpp:83
@ GO_CHEST_SEVEN
Definition instance_blackrock_depths.cpp:85
@ DATA_DARK_IRON_ALE_DRINK
Definition instance_blackrock_depths.cpp:50
@ NPC_GRIM_PATRON
Definition instance_blackrock_depths.cpp:46
@ GO_DARK_IRON_ALE_MUG
Definition instance_blackrock_depths.cpp:45
@ DATA_DARK_IRON_ALE
Definition instance_blackrock_depths.cpp:49
@ NPC_GUZZLING_PATRON
Definition instance_blackrock_depths.cpp:47
@ NPC_HAMMERED_PATRON
Definition instance_blackrock_depths.cpp:48
@ DISTANCE_DARK_IRON_ALE
Definition instance_blackrock_depths.cpp:39
ObjectGuid GoTombExitGUID
Definition instance_blackrock_depths.cpp:148
ObjectGuid GoSecretDoorGUID
Definition instance_blackrock_depths.cpp:174
ObjectGuid GoShadowMechGUID
Definition instance_blackrock_depths.cpp:141
ObjectGuid GoShadowDummyGUID
Definition instance_blackrock_depths.cpp:143
ObjectGuid GoShadowGiantGUID
Definition instance_blackrock_depths.cpp:142
ObjectGuid GoSecretSafeGUID
Definition instance_blackrock_depths.cpp:175
ObjectGuid GoTombEnterGUID
Definition instance_blackrock_depths.cpp:147
ObjectGuid GoShadowLockGUID
Definition instance_blackrock_depths.cpp:140
ObjectGuid GoChestGUID
Definition instance_blackrock_depths.cpp:155
ObjectGuid GoLyceumGUID
Definition instance_blackrock_depths.cpp:149

References GameObject::AllowSaveToDB(), CAST_AI, DATA_DARK_IRON_ALE, DATA_DARK_IRON_ALE_DRINK, DISTANCE_DARK_IRON_ALE, DONE, EMOTE_STATE_NONE, ObjectGuid::Empty, WorldObject::GetCreatureListWithEntryInGrid(), SmartAI::GetData(), GetData(), WorldObject::GetDistance(), Object::GetEntry(), Object::GetGUID(), GhostKillCount, GO_ARENA1, GO_ARENA2, GO_ARENA3, GO_ARENA4, GO_BAR_DOOR, GO_BAR_KEG_SHOT, GO_BAR_KEG_TRAP, GO_CHEST_SEVEN, GO_DARK_IRON_ALE_MUG, GO_FLAG_NOT_SELECTABLE, GO_GOLEM_ROOM_N, GO_GOLEM_ROOM_S, GO_LYCEUM, GO_SECRET_DOOR, GO_SECRET_SAFE, GO_SF_N, GO_SF_S, GO_SHADOW_DUMMY, GO_SHADOW_GIANT_DOOR, GO_SHADOW_LOCK, GO_SHADOW_MECHANISM, GO_SPECTRAL_CHALICE, GO_STATE_ACTIVE, GO_STATE_ACTIVE_ALTERNATIVE, GO_THRONE_ROOM, GO_TOMB_ENTER, GO_TOMB_EXIT, GoArena1GUID, GoArena2GUID, GoArena3GUID, GoArena4GUID, GoBarDoorGUID, GoBarKegGUID, GoBarKegTrapGUID, GoChestGUID, GoGolemNGUID, GoGolemSGUID, GoLyceumGUID, GoSecretDoorGUID, GoSecretSafeGUID, GoSFNGUID, GoSFSGUID, GoShadowDummyGUID, GoShadowGiantGUID, GoShadowLockGUID, GoShadowMechGUID, GoSpectralChaliceGUID, GoThroneGUID, GoTombEnterGUID, GoTombExitGUID, InstanceScript::HandleGameObject(), LovePotionEventState, NPC_GRIM_PATRON, NPC_GUZZLING_PATRON, NPC_HAMMERED_PATRON, GameObject::RemoveGameObjectFlag(), SmartAI::SetData(), Unit::SetEmoteState(), GameObject::SetGoState(), TYPE_BAR, and TYPE_VAULT.

◆ OnPlayerEnter()

void instance_blackrock_depths::OnPlayerEnter ( Player *  )
inlineoverridevirtual

Reimplemented from InstanceScript.

192 {
193 ReplaceMoiraIfSaved(); // In case a player joins the party during the run
194 // SetData(TYPE_RING_OF_LAW, DONE);
195 }
void ReplaceMoiraIfSaved()
Definition instance_blackrock_depths.cpp:197

References ReplaceMoiraIfSaved().

◆ OnUnitDeath()

void instance_blackrock_depths::OnUnitDeath ( Unit *  unit)
inlineoverridevirtual

Reimplemented from ZoneScript.

489 {
490 uint32 deadSenators = 0;
491 switch (unit->GetEntry())
492 {
497 ArgelmachAdds.remove(unit->GetGUID());
498 break;
499 case NPC_MAGMUS:
501 break;
505 {
506 // regular Black Vault trash shares the entry but is not in the list,
507 // remove() is a no-op for it
508 VaultWarderGUIDs.remove(unit->GetGUID());
509 if (VaultWarderGUIDs.empty())
511 }
512 break;
514 deadSenators = 1; //hacky, but we cannot count the unit that just died through its state because OnUnitDeath() is called before the state is set.
515 for (auto const& senatorGUID: EmperorSenatorsVector)
516 if (Creature* senator = instance->GetCreature(senatorGUID))
517 if (!senator->IsAlive() || senator->isDying())
518 deadSenators++;
519
520 if (Creature* emperor = instance->GetCreature(EmperorGUID))
521 // send % of senators that died
522 emperor->AI()->SetData(0, (100 * deadSenators) / EmperorSenatorsVector.size());
523 break;
524 case NPC_ANGERREL:
525 case NPC_DOPEREL:
526 case NPC_HATEREL:
527 case NPC_VILEREL:
528 case NPC_SEETHREL:
529 case NPC_GLOOMREL:
530 case NPC_DOOMREL:
532 if (GhostKillCount >= 7)
534 break;
535 default:
536 break;
537 }
538 }
std::uint32_t uint32
Definition Define.h:107
Creature * GetCreature(uint32 type)
Definition InstanceScript.cpp:126
void SetData(uint32 type, uint32 data) override
Definition instance_blackrock_depths.cpp:540

References ArgelmachAdds, DONE, EmperorGUID, EmperorSenatorsVector, Map::GetCreature(), GetData(), Object::GetEntry(), Object::GetGUID(), GhostKillCount, IN_PROGRESS, InstanceScript::instance, NPC_ANGERREL, NPC_DOOMFORGE_ARCANASMITH, NPC_DOOMREL, NPC_DOPEREL, NPC_GLOOMREL, NPC_HATEREL, NPC_MAGMUS, NPC_RAGEREAVER_GOLEM, NPC_SEETHREL, NPC_SHADOWFORGE_SENATOR, NPC_VILEREL, NPC_WARBRINGER_CONSTRUCT, NPC_WATCHMAN_DOOMGRIP, NPC_WEAPON_TECHNICIAN, NPC_WRATH_HAMMER_CONSTRUCT, SetData(), TYPE_IRON_HALL, TYPE_TOMB_OF_SEVEN, TYPE_VAULT, and VaultWarderGUIDs.

◆ ReplaceMoiraIfSaved()

void instance_blackrock_depths::ReplaceMoiraIfSaved ( )
inline
198 {
199 ObjectGuid* GUIDToReplace = &PriestessGUID; // default to having Moira
200 ObjectGuid* GUIDToSpawn = &MoiraGUID;
201 uint32 NPCEntry = NPC_MOIRA;
202 bool MoiraSaved = true;
203
204 // check if all players saved her.
205 Map::PlayerList const& lPlayers = instance->GetPlayers();
206 if (!lPlayers.IsEmpty())
207 {
208 for (Map::PlayerList::const_iterator itr = lPlayers.begin(); itr != lPlayers.end(); ++itr)
209 {
210 if (Player* player = itr->GetSource())
211 {
212 // set to false if this player hasn't saved her. Another player can't put it to true.
213 MoiraSaved = MoiraSaved && ((player->GetQuestStatus(PRINCESS_QUEST_HORDE) == QUEST_STATUS_REWARDED)
214 || (player->GetQuestStatus(PRINCESS_QUEST_ALLIANCE) == QUEST_STATUS_REWARDED));
215 }
216 }
217 }
218
219 // assign correct GUIDs and spawn targets
220 if (MoiraSaved)
221 {
222 GUIDToReplace = &MoiraGUID;
223 GUIDToSpawn = &PriestessGUID;
224 NPCEntry = NPC_PRIESTESS;
225 }
226
227 if (Creature* CreatureToReplace = instance->GetCreature(*GUIDToReplace))
228 {
229 Creature* NewSpawn = instance->SummonCreature(NPCEntry, CreatureToReplace->GetPosition());
230 CreatureToReplace->RemoveFromWorld();
231 *GUIDToSpawn = NewSpawn->GetGUID();
232 }
233 }
@ QUEST_STATUS_REWARDED
Definition QuestDef.h:106
@ NPC_PRIESTESS
Definition blackrock_depths.h:102
Definition LinkedList.h:139
bool IsEmpty() const
Definition LinkedList.h:97
Definition MapRefMgr.h:26
iterator begin()
Definition MapRefMgr.h:36
iterator end()
Definition MapRefMgr.h:37
PlayerList const & GetPlayers() const
Definition Map.h:335
TempSummon * SummonCreature(uint32 entry, Position const &pos, SummonPropertiesEntry const *properties=nullptr, uint32 duration=0, WorldObject *summoner=nullptr, uint32 spellId=0, uint32 vehId=0, bool visibleBySummonerOnly=false)
Definition Object.cpp:2253
Definition ObjectGuid.h:121
Definition Player.h:1086
void RemoveFromWorld() override
Definition TemporarySummon.cpp:331
@ PRINCESS_QUEST_HORDE
Definition instance_blackrock_depths.cpp:59
@ PRINCESS_QUEST_ALLIANCE
Definition instance_blackrock_depths.cpp:60
ObjectGuid PriestessGUID
Definition instance_blackrock_depths.cpp:132

References MapRefMgr::begin(), MapRefMgr::end(), Map::GetCreature(), Object::GetGUID(), Map::GetPlayers(), InstanceScript::instance, LinkedListHead::IsEmpty(), MoiraGUID, NPC_MOIRA, NPC_PRIESTESS, PriestessGUID, PRINCESS_QUEST_ALLIANCE, PRINCESS_QUEST_HORDE, QUEST_STATUS_REWARDED, TempSummon::RemoveFromWorld(), and Map::SummonCreature().

Referenced by OnPlayerEnter(), and SetData().

◆ SetData()

void instance_blackrock_depths::SetData ( uint32  type,
uint32  data 
)
inlineoverridevirtual

Reimplemented from ZoneScript.

541 {
542 LOG_DEBUG("scripts.ai", "Instance Blackrock Depths: SetData update (Type: {} Data {})", type, data);
543
544 switch (type)
545 {
546 case TYPE_RING_OF_LAW:
547 encounter[0] = data;
548 switch (data)
549 {
550 case IN_PROGRESS:
552 break;
553 case FAIL:
555 {
557 TempSummonGrimstone = nullptr;
559 }
561 break;
562 case DONE:
563 for (auto const& itr : ArenaSpectators)
564 if (Creature* spectator = instance->GetCreature(itr))
565 {
566 spectator->SetFaction(FACTION_NEUTRAL);
567 spectator->SetReactState(REACT_DEFENSIVE);
568 }
569 break;
570 default:
571 break;
572 }
573 break;
574 case TYPE_VAULT:
575 encounter[1] = data;
576 if (data == DONE)
577 {
578 // vault cleared: open the secret door and make the Secret Safe lootable
581 safe->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
582 }
583 break;
584 case TYPE_BAR:
585 if (data == SPECIAL)
586 ++BarAleCount;
587 else
588 encounter[2] = data;
589 break;
592 if (data == DONE)
593 encounter[2] = DONE;
594 break;
596 encounter[3] = data;
597 switch (data)
598 {
599 case IN_PROGRESS:
602 break;
603 case DONE:
607 break;
608 }
609 break;
610 case TYPE_LYCEUM:
611 encounter[4] = data;
612 if (data == DONE)
613 {
616 if (Creature* magmus = instance->GetCreature(MagmusGUID))
617 magmus->AI()->Talk(0);
618 ReplaceMoiraIfSaved(); // Need to place the correct final boss, but we need her to be spawned first.
619 }
620 break;
621 case TYPE_IRON_HALL:
622 encounter[5] = data;
623 switch (data)
624 {
625 case NOT_STARTED:
626 case IN_PROGRESS:
627 for (int i = 0; i < 6; i++)
628 if (Creature* ironhand = instance->GetCreature(IronhandGUID[i]))
629 ironhand->AI()->SetData(0, data == IN_PROGRESS);
630 break;
631 case DONE:
633 break;
634 default:
635 break;
636 }
637 break;
639 OpenedCoofers += 1;
640 // the coffer doors reset on every map load while the vault state persists: reopening
641 // them after the event has started must not restart it or summon a second Doomgrip
643 {
645
646 // awaken the Warbringer Constructs guarding the vault
647 for (ObjectGuid const& warderGUID : VaultWarderGUIDs)
648 {
649 if (Creature* warder = instance->GetCreature(warderGUID))
650 {
651 warder->RemoveAurasDueToSpell(SPELL_STONED);
652 warder->SetImmuneToPC(false);
653 warder->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
654 warder->SetReactState(REACT_AGGRESSIVE);
655 }
656 }
657
658 // spawns at the room entrance, not amidst the constructs (position from cmangos)
659 Position pos = {821.905f, -338.382f, -50.134f, 3.78736f};
661 summon->SetTempSummonType(TEMPSUMMON_MANUAL_DESPAWN);
662 }
663 break;
665 {
666 if (Creature* argelmach = instance->GetCreature(ArgelmachGUID))
667 {
668 GuidList adds = ArgelmachAdds;
669 for (GuidList::const_iterator itr = adds.begin(); itr != adds.end();)
670 {
671 if (Creature* argelmachAdd = instance->GetCreature(*itr))
672 {
673 if (argelmachAdd->GetEntry() == NPC_WRATH_HAMMER_CONSTRUCT)
674 {
675 argelmachAdd->RemoveAurasDueToSpell(SPELL_STONED);
676 argelmachAdd->AI()->AttackStart(argelmach->GetVictim());
677 itr = adds.erase(itr);
678 }
679 else if (argelmachAdd->GetEntry() == NPC_RAGEREAVER_GOLEM)
680 {
681 if (argelmachAdd->IsWithinDist2d(argelmach, 10.f))
682 {
683 argelmachAdd->RemoveAurasDueToSpell(SPELL_STONED);
684 argelmachAdd->AI()->AttackStart(argelmach->GetVictim());
685 itr = adds.erase(itr);
686 }
687 else
688 ++itr;
689 }
690 else
691 {
692 ++itr;
693 }
694 }
695 else
696 {
697 ++itr;
698 }
699 }
700
701 if (!adds.empty())
702 {
703 argelmach->SetReactState(REACT_PASSIVE);
704 argelmach->SetTarget();
705 argelmach->AI()->SetData(DATA_GOLEM_LORD_ARGELMACH_INIT, IN_PROGRESS);
706 }
707 else
708 {
709 argelmach->AI()->SetData(DATA_GOLEM_LORD_ARGELMACH_INIT, DONE);
710 }
711 }
712 break;
713 }
715 {
716 if (Creature* argelmach = instance->GetCreature(ArgelmachGUID))
717 {
718 argelmach->HandleEmoteCommand(EMOTE_ONESHOT_SHOUT);
719 argelmach->m_Events.AddEventAtOffset(new RestoreAttack(argelmach), 3s);
720
721 for (ObjectGuid const& argelmachAddGUID : ArgelmachAdds)
722 if (Creature* argelmachAdd = instance->GetCreature(argelmachAddGUID))
723 if (!argelmachAdd->IsInCombat())
724 {
725 argelmachAdd->RemoveAurasDueToSpell(SPELL_STONED);
726 argelmachAdd->AI()->AttackStart(argelmach->GetVictim());
727 }
728 }
729 break;
730 }
733 break;
734 default:
735 break;
736 }
737
738 if (data == DONE || GhostKillCount >= 7)
739 {
741
742 std::ostringstream saveStream;
743 saveStream << encounter[0] << ' ' << encounter[1] << ' ' << encounter[2] << ' '
744 << encounter[3] << ' ' << encounter[4] << ' ' << encounter[5] << ' ' << GhostKillCount << ' '
746
747 str_data = saveStream.str();
748
749 SaveToDB();
751 }
752 }
constexpr auto DAY
Definition Common.h:49
#define OUT_SAVE_INST_DATA_COMPLETE
Definition InstanceScript.h:30
#define OUT_SAVE_INST_DATA
Definition InstanceScript.h:29
@ FAIL
Definition InstanceScript.h:60
#define LOG_DEBUG(filterType__,...)
Definition Log.h:157
std::list< ObjectGuid > GuidList
Definition ObjectGuid.h:258
@ TEMPSUMMON_MANUAL_DESPAWN
Definition Object.h:57
@ EMOTE_ONESHOT_SHOUT
Definition SharedDefines.h:1918
@ REACT_AGGRESSIVE
Definition Unit.h:576
@ NPC_GRIMSTONE
Definition blackrock_depths.h:145
@ DATA_GOLEM_LORD_ARGELMACH_ADDS
Definition blackrock_depths.h:72
@ DATA_GOLEM_LORD_ARGELMACH_INIT
Definition blackrock_depths.h:71
@ DATA_OPEN_COFFER_DOORS
Definition blackrock_depths.h:69
Definition GameObject.h:125
void SaveToDB()
Definition InstanceScript.cpp:43
void DoRespawnGameObject(ObjectGuid guid, uint32 timeToDespawn=MINUTE)
Definition InstanceScript.cpp:597
GameObject * GetGameObject(ObjectGuid const &guid)
Definition Map.cpp:2447
Definition instance_blackrock_depths.cpp:96
Definition TemporarySummon.h:50
Seconds GetGameTime()
Definition GameTime.cpp:39
Definition Position.h:27
TempSummon * TempSummonGrimstone
Definition instance_blackrock_depths.cpp:178
Position GrimstonePositon
Definition instance_blackrock_depths.cpp:179
ObjectGuid GetGuidData(uint32 data) const override
Definition instance_blackrock_depths.cpp:829

References ArenaSpectators, ArgelmachAdds, ArgelmachGUID, BarAleCount, DATA_GOLEM_DOOR_N, DATA_GOLEM_DOOR_S, DATA_GOLEM_LORD_ARGELMACH_ADDS, DATA_GOLEM_LORD_ARGELMACH_INIT, DATA_LOVE_POTION_EVENT, DATA_OPEN_COFFER_DOORS, DATA_PHALANX_ACTIVATED, DATA_THRONE_DOOR, DAY, DONE, InstanceScript::DoRespawnGameObject(), EMOTE_ONESHOT_SHOUT, encounter, FACTION_NEUTRAL, FAIL, Map::GetCreature(), GetData(), Map::GetGameObject(), GameTime::GetGameTime(), GetGuidData(), GhostKillCount, GO_FLAG_NOT_SELECTABLE, GoChestGUID, GoSecretDoorGUID, GoSecretSafeGUID, GoTombEnterGUID, GoTombExitGUID, GrimstonePositon, InstanceScript::HandleGameObject(), IN_PROGRESS, InstanceScript::instance, IronhandGUID, LOG_DEBUG, LovePotionEventState, MagmusGUID, NOT_STARTED, NPC_GRIMSTONE, NPC_RAGEREAVER_GOLEM, NPC_WATCHMAN_DOOMGRIP, NPC_WRATH_HAMMER_CONSTRUCT, OpenedCoofers, OUT_SAVE_INST_DATA, OUT_SAVE_INST_DATA_COMPLETE, PhalanxActivationState, REACT_AGGRESSIVE, REACT_DEFENSIVE, REACT_PASSIVE, TempSummon::RemoveFromWorld(), ReplaceMoiraIfSaved(), InstanceScript::SaveToDB(), SetData(), SPECIAL, SPELL_STONED, str_data, Map::SummonCreature(), TEMPSUMMON_MANUAL_DESPAWN, TempSummonGrimstone, timeRingFail, TYPE_BAR, TYPE_IRON_HALL, TYPE_LYCEUM, TYPE_RING_OF_LAW, TYPE_TOMB_OF_SEVEN, TYPE_VAULT, UNIT_FLAG_NOT_SELECTABLE, and VaultWarderGUIDs.

Referenced by OnUnitDeath(), SetData(), and TombOfSevenReset().

◆ SetGuidData()

void instance_blackrock_depths::SetGuidData ( uint32  data,
ObjectGuid  guid 
)
inlineoverridevirtual

Reimplemented from ZoneScript.

788 {
789 if (data != DATA_DARK_IRON_ALE_HOME && data != DATA_DARK_IRON_ALE_REFORM &&
791 return;
792
793 if (Creature* patron = instance->GetCreature(guid))
794 {
795 if (data == DATA_DARK_IRON_ALE_EMOTE)
796 {
797 if (CreatureAddon const* addon = patron->GetCreatureAddon())
798 patron->SetEmoteState(static_cast<Emote>(addon->emote));
799
800 return;
801 }
802
803 if (data == DATA_DARK_IRON_ALE_DISBAND)
804 {
805 if (CreatureGroup* formation = patron->GetFormation())
806 sFormationMgr->RemoveCreatureFromGroup(formation, patron);
807
808 return;
809 }
810
811 if (data == DATA_DARK_IRON_ALE_REFORM)
812 {
813 if (!patron->GetFormation())
814 patron->SearchFormation();
815
816 return;
817 }
818
819 if (patron->IsAlive() && !patron->IsInCombat())
820 {
821 if (!patron->GetFormation())
822 patron->SearchFormation();
823
824 patron->GetMotionMaster()->MoveTargetedHome(true);
825 }
826 }
827 }
#define sFormationMgr
Definition CreatureGroups.h:136
Emote
Definition SharedDefines.h:1897
Definition CreatureGroups.h:95
@ DATA_DARK_IRON_ALE_EMOTE
Definition instance_blackrock_depths.cpp:54
@ DATA_DARK_IRON_ALE_REFORM
Definition instance_blackrock_depths.cpp:52
@ DATA_DARK_IRON_ALE_DISBAND
Definition instance_blackrock_depths.cpp:53
@ DATA_DARK_IRON_ALE_HOME
Definition instance_blackrock_depths.cpp:51
Definition CreatureData.h:431

References DATA_DARK_IRON_ALE_DISBAND, DATA_DARK_IRON_ALE_EMOTE, DATA_DARK_IRON_ALE_HOME, DATA_DARK_IRON_ALE_REFORM, Map::GetCreature(), InstanceScript::instance, and sFormationMgr.

◆ TombOfSevenEvent()

void instance_blackrock_depths::TombOfSevenEvent ( )
inline
911 {
913 {
915 {
917 boss->SetFaction(FACTION_DARK_IRON_DWARVES);
918 boss->SetImmuneToPC(false);
919
920 // find suitable target here.
921 Player* target = boss->SelectNearestPlayer(130);
922 if (target && boss->CanCreatureAttack(target, true))
923 {
924 boss->AI()->AttackStart(target);
925 boss->AI()->DoZoneInCombat();
927 }
928 }
929 }
930 }
@ FACTION_DARK_IRON_DWARVES
Definition SharedDefines.h:210
Player * SelectNearestPlayer(float distance=0) const
Definition Object.cpp:2592

References FACTION_DARK_IRON_DWARVES, Map::GetCreature(), GhostKillCount, InstanceScript::instance, WorldObject::SelectNearestPlayer(), TIMER_TOMB_RESET, TombBossGUIDs, TombEventCounter, and tombResetTimer.

Referenced by Update().

◆ TombOfSevenReset()

void instance_blackrock_depths::TombOfSevenReset ( )
inline
933 {
934 HandleGameObject(GoTombExitGUID, false);// close exit door
935 HandleGameObject(GoTombEnterGUID, true);// open entrance door
936 for (uint8 i = 0; i < 7; ++i)
938 {
939 if (!boss->IsAlive())
940 {
941 //do not call EnterEvadeMode(), it will create infinit loops
942 boss->Respawn();
943 boss->RemoveAllAuras();
944 boss->GetThreatMgr().ClearAllThreat();
945 boss->CombatStop(true);
946 boss->LoadCreaturesAddon(true);
947 boss->GetMotionMaster()->MoveTargetedHome();
948 boss->SetLootRecipient(nullptr);
949 }
950 boss->SetFaction(FACTION_FRIENDLY);
951 boss->SetImmuneToPC(true); // think this is useless
952 if (i == 6) // doomrel needs explicit reset
953 boss->AI()->Reset();
954 }
955
956 GhostKillCount = 0;
960 }
@ FACTION_FRIENDLY
Definition SharedDefines.h:189

References FACTION_FRIENDLY, Map::GetCreature(), GhostKillCount, GoTombEnterGUID, GoTombExitGUID, InstanceScript::HandleGameObject(), InstanceScript::instance, NOT_STARTED, SetData(), TIMER_TOMB_START, TombBossGUIDs, TombEventCounter, TombTimer, and TYPE_TOMB_OF_SEVEN.

Referenced by Update().

◆ Update()

void instance_blackrock_depths::Update ( uint32  diff)
inlineoverridevirtual

Reimplemented from InstanceScript.

985 {
987 {
988 if (TombTimer <= diff)
989 {
992 }
993 else
994 {
995 TombTimer -= diff;
996 }
997
998 if (CheckTombReset(diff))
1000 }
1001 }
@ TIMER_TOMBOFTHESEVEN
Definition instance_blackrock_depths.cpp:30
void TombOfSevenReset()
Definition instance_blackrock_depths.cpp:932
void TombOfSevenEvent()
Definition instance_blackrock_depths.cpp:910
bool CheckTombReset(uint32 diff)
Definition instance_blackrock_depths.cpp:962

References CheckTombReset(), GetData(), GhostKillCount, IN_PROGRESS, TIMER_TOMBOFTHESEVEN, TombOfSevenEvent(), TombOfSevenReset(), TombTimer, and TYPE_TOMB_OF_SEVEN.

Member Data Documentation

◆ arenaBossToSpawn

uint8 instance_blackrock_depths::arenaBossToSpawn

Referenced by GetData(), and Initialize().

◆ arenaMobsToSpawn

uint8 instance_blackrock_depths::arenaMobsToSpawn

Referenced by GetData(), and Initialize().

◆ ArenaSpectators

std::vector<ObjectGuid> instance_blackrock_depths::ArenaSpectators

◆ ArgelmachAdds

GuidList instance_blackrock_depths::ArgelmachAdds

◆ ArgelmachGUID

ObjectGuid instance_blackrock_depths::ArgelmachGUID

Referenced by OnCreatureCreate(), and SetData().

◆ BarAleCount

uint32 instance_blackrock_depths::BarAleCount

Referenced by GetData(), Initialize(), and SetData().

◆ CenterOfRingOfLaw

Position instance_blackrock_depths::CenterOfRingOfLaw = Position(595.289, -186.56)

Referenced by OnCreatureCreate().

◆ CorenGUID

ObjectGuid instance_blackrock_depths::CorenGUID

Referenced by GetGuidData(), and OnCreatureCreate().

◆ EmperorGUID

ObjectGuid instance_blackrock_depths::EmperorGUID

◆ EmperorSenators

ObjectGuid instance_blackrock_depths::EmperorSenators[5]

◆ EmperorSenatorsVector

std::vector<ObjectGuid> instance_blackrock_depths::EmperorSenatorsVector

Referenced by OnCreatureCreate(), and OnUnitDeath().

◆ EmperorSpawnPos

Position instance_blackrock_depths::EmperorSpawnPos = Position(1380.52, -831, 115)

Referenced by OnCreatureCreate().

◆ encounter

uint32 instance_blackrock_depths::encounter[MAX_ENCOUNTER]

Referenced by GetData(), Initialize(), Load(), and SetData().

◆ GhostKillCount

uint32 instance_blackrock_depths::GhostKillCount

◆ GoArena1GUID

ObjectGuid instance_blackrock_depths::GoArena1GUID

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ GoArena2GUID

ObjectGuid instance_blackrock_depths::GoArena2GUID

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ GoArena3GUID

ObjectGuid instance_blackrock_depths::GoArena3GUID

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ GoArena4GUID

ObjectGuid instance_blackrock_depths::GoArena4GUID

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ GoBarDoorGUID

ObjectGuid instance_blackrock_depths::GoBarDoorGUID

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ GoBarKegGUID

ObjectGuid instance_blackrock_depths::GoBarKegGUID

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ GoBarKegTrapGUID

ObjectGuid instance_blackrock_depths::GoBarKegTrapGUID

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ GoChestGUID

ObjectGuid instance_blackrock_depths::GoChestGUID

Referenced by OnGameObjectCreate(), and SetData().

◆ GoGolemNGUID

ObjectGuid instance_blackrock_depths::GoGolemNGUID

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ GoGolemSGUID

ObjectGuid instance_blackrock_depths::GoGolemSGUID

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ GoLyceumGUID

ObjectGuid instance_blackrock_depths::GoLyceumGUID

Referenced by OnGameObjectCreate().

◆ GoSecretDoorGUID

ObjectGuid instance_blackrock_depths::GoSecretDoorGUID

Referenced by OnGameObjectCreate(), and SetData().

◆ GoSecretSafeGUID

ObjectGuid instance_blackrock_depths::GoSecretSafeGUID

Referenced by OnGameObjectCreate(), and SetData().

◆ GoSFNGUID

ObjectGuid instance_blackrock_depths::GoSFNGUID

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ GoSFSGUID

ObjectGuid instance_blackrock_depths::GoSFSGUID

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ GoShadowDummyGUID

ObjectGuid instance_blackrock_depths::GoShadowDummyGUID

Referenced by OnGameObjectCreate().

◆ GoShadowGiantGUID

ObjectGuid instance_blackrock_depths::GoShadowGiantGUID

Referenced by OnGameObjectCreate().

◆ GoShadowLockGUID

ObjectGuid instance_blackrock_depths::GoShadowLockGUID

Referenced by OnGameObjectCreate().

◆ GoShadowMechGUID

ObjectGuid instance_blackrock_depths::GoShadowMechGUID

Referenced by OnGameObjectCreate().

◆ GoSpectralChaliceGUID

ObjectGuid instance_blackrock_depths::GoSpectralChaliceGUID

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ GoThroneGUID

ObjectGuid instance_blackrock_depths::GoThroneGUID

◆ GoTombEnterGUID

ObjectGuid instance_blackrock_depths::GoTombEnterGUID

◆ GoTombExitGUID

ObjectGuid instance_blackrock_depths::GoTombExitGUID

◆ GrimstonePositon

Position instance_blackrock_depths::GrimstonePositon = Position(625.559f, -205.618f, -52.735f, 2.609f)

Referenced by SetData().

◆ IronhandCounter

uint32 instance_blackrock_depths::IronhandCounter

Referenced by Initialize(), and OnCreatureCreate().

◆ IronhandGUID

ObjectGuid instance_blackrock_depths::IronhandGUID[6]

Referenced by OnCreatureCreate(), and SetData().

◆ LovePotionEventState

uint32 instance_blackrock_depths::LovePotionEventState

◆ MagmusGUID

ObjectGuid instance_blackrock_depths::MagmusGUID

◆ MoiraGUID

ObjectGuid instance_blackrock_depths::MoiraGUID

◆ OpenedCoofers

uint32 instance_blackrock_depths::OpenedCoofers

Referenced by Initialize(), and SetData().

◆ PhalanxActivationState

uint32 instance_blackrock_depths::PhalanxActivationState

Referenced by GetData(), Initialize(), Load(), and SetData().

◆ PhalanxGUID

ObjectGuid instance_blackrock_depths::PhalanxGUID

Referenced by GetGuidData(), and OnCreatureCreate().

◆ PriestessGUID

ObjectGuid instance_blackrock_depths::PriestessGUID

Referenced by ReplaceMoiraIfSaved().

◆ str_data

std::string instance_blackrock_depths::str_data

Referenced by GetSaveData(), and SetData().

◆ TempSummonGrimstone

TempSummon* instance_blackrock_depths::TempSummonGrimstone = nullptr

Referenced by SetData().

◆ timeRingFail

time_t instance_blackrock_depths::timeRingFail = 0

Referenced by GetData(), and SetData().

◆ TombBossGUIDs

ObjectGuid instance_blackrock_depths::TombBossGUIDs[7]

◆ TombEventCounter

uint32 instance_blackrock_depths::TombEventCounter

◆ tombResetTimer

uint32 instance_blackrock_depths::tombResetTimer

◆ TombTimer

uint32 instance_blackrock_depths::TombTimer

◆ VaultWarderCenter

Position instance_blackrock_depths::VaultWarderCenter = Position(813.5f, -348.0f)

Referenced by OnCreatureCreate().

◆ VaultWarderGUIDs

GuidList instance_blackrock_depths::VaultWarderGUIDs

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