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

Public Member Functions

 instance_ulduar_InstanceMapScript (Map *pMap)
 
void Initialize () override
 
void FillInitialWorldStates (WorldPackets::WorldState::InitWorldStates &packet) override
 
void OnPlayerEnter (Player *player) override
 
bool IsEncounterInProgress () const override
 
void ProcessEvent (WorldObject *, uint32 eventId) override
 
void SpawnHodirChests (Difficulty diff, Creature *hodir)
 
void OnCreatureCreate (Creature *creature) override
 
void OnCreatureRemove (Creature *creature) override
 
void OpenIfDone (uint32 encounter, GameObject *go, GOState state)
 
void OnGameObjectCreate (GameObject *gameObject) override
 
void setChestsLootable (uint32 boss)
 
void SetData (uint32 type, uint32 data) override
 
ObjectGuid GetGuidData (uint32 data) const override
 
uint32 GetData (uint32 type) const override
 
void OnUnitDeath (Unit *unit) override
 
void ReadSaveDataMore (std::istringstream &data) override
 
void WriteSaveDataMore (std::ostringstream &data) override
 
void Update (uint32 diff) override
 
void SpawnLeviathanEncounterVehicles (uint8 mode)
 
bool CheckAchievementCriteriaMeet (uint32 criteria_id, Player const *, Unit const *, uint32) 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 ()
 
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 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 ()
 
virtual bool SetBossState (uint32 id, EncounterState state)
 
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 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)
 
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)
 

Public Attributes

uint32 m_auiEncounter [MAX_ENCOUNTER]
 
uint32 C_of_Ulduar_MASK
 
int m_difficulty
 
ObjectGuid m_uiLeviathanGUID
 
ObjectGuid m_uiIgnisGUID
 
ObjectGuid m_uiRazorscaleGUID
 
ObjectGuid m_uiXT002GUID
 
ObjectGuid m_auiAssemblyGUIDs [3]
 
ObjectGuid m_uiKologarnGUID
 
ObjectGuid m_uiAuriayaGUID
 
ObjectGuid m_uiMimironGUID
 
ObjectGuid m_uiHodirGUID
 
ObjectGuid m_uiThorimGUID
 
ObjectGuid m_uiFreyaGUID
 
ObjectGuid m_uiVezaxGUID
 
ObjectGuid m_uiYoggSaronGUID
 
ObjectGuid m_uiAlgalonGUID
 
ObjectGuid m_leviathanDoorsGUID
 
ObjectGuid m_leviathanVisualTowers [4][2]
 
ObjectGuid m_RepairSGUID [2]
 
ObjectGuid m_lightningWalls [2]
 
bool m_leviathanTowers [4]
 
GuidList _leviathanVehicles
 
uint32 m_unbrokenAchievement
 
uint32 m_mageBarrier
 
ObjectGuid m_RazorscaleHarpoonFireStateGUID [4]
 
ObjectGuid m_xt002DoorsGUID
 
ObjectGuid KologarnDoorGUID
 
ObjectGuid m_assemblyDoorsGUID
 
ObjectGuid m_archivumDoorsGUID
 
ObjectGuid m_thorimGameobjectsGUID [5]
 
bool hmHodir
 
ObjectGuid m_hodirNormalChest
 
ObjectGuid m_hodirHardmodeChest
 
Position normalChestPosition = { 1967.152588f, -204.188461f, 432.686951f, 5.50957f }
 
Position hardChestPosition = { 2035.94600f, -202.084885f, 432.686859f, 3.164077f }
 
ObjectGuid m_mimironTramGUID
 
ObjectGuid m_mimironActivateTramGUID
 
ObjectGuid m_mimironTramRocketBoosterGUID
 
ObjectGuid m_mimironTramTurnaround1GUID
 
ObjectGuid m_mimironTramTurnaround2GUID
 
ObjectGuid m_mimironCallTramCenterGUID
 
ObjectGuid m_mimironCallTramMimironGUID
 
ObjectGuid m_MimironDoor [3]
 
ObjectGuid m_MimironLeviathanMKIIguid
 
ObjectGuid m_MimironVX001guid
 
ObjectGuid m_MimironACUguid
 
ObjectGuid m_FreyaElder [3]
 
uint32 m_conspeedatoryAttempt
 
ObjectGuid m_saraGUID
 
ObjectGuid m_yoggsaronBrainGUID
 
ObjectGuid m_yoggsaronDoorsGUID
 
ObjectGuid m_algalonSigilDoorGUID [3]
 
ObjectGuid m_algalonFloorGUID [2]
 
ObjectGuid m_algalonUniverseGUID
 
ObjectGuid m_algalonTrapdoorGUID
 
ObjectGuid m_brannBronzebeardAlgGUID
 
ObjectGuid m_brannBronzebeardBaseCamp
 
uint32 m_algalonTimer
 
const Position triggerAncientGatePosition = { 1883.65f, 269.272f, 418.406f }
 
EventMap _events
 
bool m_mimironTramUsed
 
ObjectGuid m_keepersgateGUID
 
ObjectGuid m_keepersGossipGUID [4]
 
- 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)
 
void WriteSaveDataHeaders (std::ostringstream &data)
 
void WriteSaveDataBossStates (std::ostringstream &data)
 
void WritePersistentData (std::ostringstream &data)
 

Detailed Description

Constructor & Destructor Documentation

◆ instance_ulduar_InstanceMapScript()

instance_ulduar::instance_ulduar_InstanceMapScript::instance_ulduar_InstanceMapScript ( Map pMap)
inline
42 : InstanceScript(pMap)
43 {
44 Initialize();
46 // 0: 10 man difficulty
47 // 1: 25 man difficulty
48 m_difficulty = (pMap->Is25ManRaid() ? 0 : 1);
49 };
#define DataHeader
Definition blackrock_depths.h:23
Definition InstanceScript.h:143
void SetHeaders(std::string const &dataHeaders)
Definition InstanceScript.cpp:153
bool Is25ManRaid() const
Definition Map.h:300
void Initialize() override
Definition instance_ulduar.cpp:147
int m_difficulty
Definition instance_ulduar.cpp:54

References DataHeader, Initialize(), Map::Is25ManRaid(), m_difficulty, and InstanceScript::SetHeaders().

Member Function Documentation

◆ CheckAchievementCriteriaMeet()

bool instance_ulduar::instance_ulduar_InstanceMapScript::CheckAchievementCriteriaMeet ( uint32  criteria_id,
Player const *  ,
Unit const *  ,
uint32   
)
inlineoverridevirtual

Reimplemented from InstanceScript.

1211 {
1212 switch (criteria_id)
1213 {
1214 case 10042:
1215 case 10352:
1216 return (C_of_Ulduar_MASK & (1 << TYPE_LEVIATHAN)) == 0;
1217 case 10342:
1218 case 10355:
1219 return (C_of_Ulduar_MASK & (1 << TYPE_IGNIS)) == 0;
1220 case 10340:
1221 case 10353:
1222 return (C_of_Ulduar_MASK & (1 << TYPE_RAZORSCALE)) == 0;
1223 case 10341:
1224 case 10354:
1225 return (C_of_Ulduar_MASK & (1 << TYPE_XT002)) == 0;
1226 case 10598:
1227 case 10599:
1228 return (C_of_Ulduar_MASK & (1 << TYPE_ASSEMBLY)) == 0;
1229 case 10348:
1230 case 10357:
1231 return (C_of_Ulduar_MASK & (1 << TYPE_KOLOGARN)) == 0;
1232 case 10351:
1233 case 10363:
1234 return (C_of_Ulduar_MASK & (1 << TYPE_AURIAYA)) == 0;
1235 case 10439:
1236 case 10719:
1237 return (C_of_Ulduar_MASK & (1 << TYPE_HODIR)) == 0;
1238 case 10403:
1239 case 10404:
1240 return (C_of_Ulduar_MASK & (1 << TYPE_THORIM)) == 0;
1241 case 10582:
1242 case 10583:
1243 return (C_of_Ulduar_MASK & (1 << TYPE_FREYA)) == 0;
1244 case 10347:
1245 case 10361:
1246 return (C_of_Ulduar_MASK & (1 << TYPE_MIMIRON)) == 0;
1247 case 10349:
1248 case 10362:
1249 return (C_of_Ulduar_MASK & (1 << TYPE_VEZAX)) == 0;
1250 case 10350:
1251 case 10364:
1252 return (C_of_Ulduar_MASK & (1 << TYPE_YOGGSARON)) == 0;
1253 }
1254 return false;
1255 }
uint32 C_of_Ulduar_MASK
Definition instance_ulduar.cpp:52
@ TYPE_IGNIS
Definition ulduar.h:33
@ TYPE_VEZAX
Definition ulduar.h:43
@ TYPE_XT002
Definition ulduar.h:35
@ TYPE_HODIR
Definition ulduar.h:40
@ TYPE_ASSEMBLY
Definition ulduar.h:36
@ TYPE_KOLOGARN
Definition ulduar.h:37
@ TYPE_AURIAYA
Definition ulduar.h:38
@ TYPE_RAZORSCALE
Definition ulduar.h:34
@ TYPE_FREYA
Definition ulduar.h:39
@ TYPE_LEVIATHAN
Definition ulduar.h:32
@ TYPE_MIMIRON
Definition ulduar.h:41
@ TYPE_THORIM
Definition ulduar.h:42
@ TYPE_YOGGSARON
Definition ulduar.h:44

References C_of_Ulduar_MASK, TYPE_ASSEMBLY, TYPE_AURIAYA, TYPE_FREYA, TYPE_HODIR, TYPE_IGNIS, TYPE_KOLOGARN, TYPE_LEVIATHAN, TYPE_MIMIRON, TYPE_RAZORSCALE, TYPE_THORIM, TYPE_VEZAX, TYPE_XT002, and TYPE_YOGGSARON.

◆ FillInitialWorldStates()

void instance_ulduar::instance_ulduar_InstanceMapScript::FillInitialWorldStates ( WorldPackets::WorldState::InitWorldStates packet)
inlineoverridevirtual

Reimplemented from InstanceScript.

176 {
177 packet.Worldstates.reserve(2);
179 packet.Worldstates.emplace_back(WORLD_STATE_ULDUAR_ALGALON_DESPAWN_TIMER, std::min<int32>(m_algalonTimer, 60));
180 }
@ WORLD_STATE_ULDUAR_ALGALON_TIMER_ENABLED
Definition WorldStateDefines.h:567
@ WORLD_STATE_ULDUAR_ALGALON_DESPAWN_TIMER
Definition WorldStateDefines.h:566
std::vector< WorldStateInfo > Worldstates
Definition WorldStatePackets.h:46
uint32 m_algalonTimer
Definition instance_ulduar.cpp:136

References m_algalonTimer, WORLD_STATE_ULDUAR_ALGALON_DESPAWN_TIMER, WORLD_STATE_ULDUAR_ALGALON_TIMER_ENABLED, and WorldPackets::WorldState::InitWorldStates::Worldstates.

◆ GetData()

uint32 instance_ulduar::instance_ulduar_InstanceMapScript::GetData ( uint32  type) const
inlineoverridevirtual

Reimplemented from ZoneScript.

1047 {
1048 switch (type)
1049 {
1050 case TYPE_LEVIATHAN:
1051 case TYPE_IGNIS:
1052 case TYPE_RAZORSCALE:
1053 case TYPE_XT002:
1054 case TYPE_ASSEMBLY:
1055 case TYPE_KOLOGARN:
1056 case TYPE_AURIAYA:
1057 case TYPE_MIMIRON:
1058 case TYPE_HODIR:
1059 case TYPE_THORIM:
1060 case TYPE_FREYA:
1061 case TYPE_VEZAX:
1062 case TYPE_YOGGSARON:
1063 case TYPE_ALGALON:
1064 case TYPE_WATCHERS:
1065 return m_auiEncounter[type];
1066
1072
1073 case DATA_MAGE_BARRIER:
1074 return m_mageBarrier;
1075
1077 return m_unbrokenAchievement;
1078
1079 case DATA_CALL_TRAM:
1080 return m_mimironTramUsed;
1081 }
1082
1083 return 0;
1084 }
bool m_leviathanTowers[4]
Definition instance_ulduar.cpp:77
bool m_mimironTramUsed
Definition instance_ulduar.cpp:143
uint32 m_mageBarrier
Definition instance_ulduar.cpp:80
uint32 m_auiEncounter[MAX_ENCOUNTER]
Definition instance_ulduar.cpp:51
uint32 m_unbrokenAchievement
Definition instance_ulduar.cpp:79
@ EVENT_TOWER_OF_STORM_DESTROYED
Definition ulduar.h:268
@ EVENT_TOWER_OF_LIFE_DESTROYED
Definition ulduar.h:271
@ EVENT_TOWER_OF_FLAMES_DESTROYED
Definition ulduar.h:270
@ EVENT_TOWER_OF_FROST_DESTROYED
Definition ulduar.h:269
@ DATA_MAGE_BARRIER
Definition ulduar.h:101
@ DATA_UNBROKEN_ACHIEVEMENT
Definition ulduar.h:59
@ DATA_CALL_TRAM
Definition ulduar.h:98
@ TYPE_WATCHERS
Definition ulduar.h:46
@ TYPE_ALGALON
Definition ulduar.h:45

References DATA_CALL_TRAM, DATA_MAGE_BARRIER, DATA_UNBROKEN_ACHIEVEMENT, EVENT_TOWER_OF_FLAMES_DESTROYED, EVENT_TOWER_OF_FROST_DESTROYED, EVENT_TOWER_OF_LIFE_DESTROYED, EVENT_TOWER_OF_STORM_DESTROYED, m_auiEncounter, m_leviathanTowers, m_mageBarrier, m_mimironTramUsed, m_unbrokenAchievement, TYPE_ALGALON, TYPE_ASSEMBLY, TYPE_AURIAYA, TYPE_FREYA, TYPE_HODIR, TYPE_IGNIS, TYPE_KOLOGARN, TYPE_LEVIATHAN, TYPE_MIMIRON, TYPE_RAZORSCALE, TYPE_THORIM, TYPE_VEZAX, TYPE_WATCHERS, TYPE_XT002, and TYPE_YOGGSARON.

Referenced by OnCreatureCreate(), OnGameObjectCreate(), OnUnitDeath(), OpenIfDone(), ReadSaveDataMore(), and SetData().

◆ GetGuidData()

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::GetGuidData ( uint32  data) const
inlineoverridevirtual

Reimplemented from ZoneScript.

922 {
923 switch (data)
924 {
925 // Bosses
926 case TYPE_LEVIATHAN:
927 return m_uiLeviathanGUID;
928 case TYPE_IGNIS:
929 return m_uiIgnisGUID;
930 case TYPE_RAZORSCALE:
931 return m_uiRazorscaleGUID;
932 case TYPE_XT002:
933 return m_uiXT002GUID;
934 case TYPE_KOLOGARN:
935 return m_uiKologarnGUID;
936 case TYPE_AURIAYA:
937 return m_uiAuriayaGUID;
938 case TYPE_MIMIRON:
939 return m_uiMimironGUID;
940 case TYPE_HODIR:
941 return m_uiHodirGUID;
942 case TYPE_THORIM:
943 return m_uiThorimGUID;
944 case TYPE_FREYA:
945 return m_uiFreyaGUID;
946 case TYPE_VEZAX:
947 return m_uiVezaxGUID;
948 case TYPE_YOGGSARON:
949 return m_uiYoggSaronGUID;
950 case TYPE_ALGALON:
951 return m_uiAlgalonGUID;
953 return m_auiAssemblyGUIDs[0];
954 case DATA_MOLGEIM:
955 return m_auiAssemblyGUIDs[1];
956 case DATA_BRUNDIR:
957 return m_auiAssemblyGUIDs[2];
958
959 // Flame Leviathan
961 return m_RepairSGUID[0];
963 return m_RepairSGUID[1];
965 return m_lightningWalls[0];
967 return m_lightningWalls[1];
970
971 // Razorscales Harpoon Fire State GUIDs
976 return m_RazorscaleHarpoonFireStateGUID[data - 200];
977
978 // XT-002
979 case GO_XT002_DOORS:
980 return m_xt002DoorsGUID;
981 // XT-002
983 return KologarnDoorGUID;
984 // Thorim
991
992 // Hodir chests
996 return m_hodirNormalChest;
997
998 // Freya Elders
1002 return m_FreyaElder[data - NPC_ELDER_IRONBRANCH];
1003
1004 // Mimiron's first vehicle (spawned by default)
1007 case DATA_MIMIRON_VX001:
1008 return m_MimironVX001guid;
1009 case DATA_MIMIRON_ACU:
1010 return m_MimironACUguid;
1014 return m_MimironDoor[data - 311];
1015
1016 // Yogg-Saron
1018 return m_yoggsaronDoorsGUID;
1019 case NPC_SARA:
1020 return m_saraGUID;
1022 return m_yoggsaronBrainGUID;
1023
1024 // Algalon the Observer
1026 return m_algalonSigilDoorGUID[0];
1028 return m_algalonSigilDoorGUID[1];
1030 return m_algalonSigilDoorGUID[2];
1032 return m_algalonFloorGUID[0];
1034 return m_algalonFloorGUID[1];
1036 return m_algalonUniverseGUID;
1038 return m_algalonTrapdoorGUID;
1041 }
1042
1043 return ObjectGuid::Empty;
1044 }
static ObjectGuid const Empty
Definition ObjectGuid.h:120
ObjectGuid m_MimironDoor[3]
Definition instance_ulduar.cpp:115
ObjectGuid m_uiFreyaGUID
Definition instance_ulduar.cpp:67
ObjectGuid m_lightningWalls[2]
Definition instance_ulduar.cpp:76
ObjectGuid m_uiAlgalonGUID
Definition instance_ulduar.cpp:70
ObjectGuid m_uiMimironGUID
Definition instance_ulduar.cpp:64
ObjectGuid m_yoggsaronDoorsGUID
Definition instance_ulduar.cpp:127
ObjectGuid m_algalonFloorGUID[2]
Definition instance_ulduar.cpp:131
ObjectGuid m_algalonTrapdoorGUID
Definition instance_ulduar.cpp:133
ObjectGuid m_saraGUID
Definition instance_ulduar.cpp:125
ObjectGuid m_brannBronzebeardAlgGUID
Definition instance_ulduar.cpp:134
ObjectGuid m_RazorscaleHarpoonFireStateGUID[4]
Definition instance_ulduar.cpp:83
ObjectGuid m_FreyaElder[3]
Definition instance_ulduar.cpp:121
ObjectGuid m_xt002DoorsGUID
Definition instance_ulduar.cpp:86
ObjectGuid m_MimironLeviathanMKIIguid
Definition instance_ulduar.cpp:116
ObjectGuid m_uiIgnisGUID
Definition instance_ulduar.cpp:58
ObjectGuid m_RepairSGUID[2]
Definition instance_ulduar.cpp:75
ObjectGuid m_uiKologarnGUID
Definition instance_ulduar.cpp:62
ObjectGuid m_uiVezaxGUID
Definition instance_ulduar.cpp:68
ObjectGuid m_uiYoggSaronGUID
Definition instance_ulduar.cpp:69
ObjectGuid m_algalonSigilDoorGUID[3]
Definition instance_ulduar.cpp:130
ObjectGuid m_yoggsaronBrainGUID
Definition instance_ulduar.cpp:126
ObjectGuid m_uiThorimGUID
Definition instance_ulduar.cpp:66
ObjectGuid m_hodirNormalChest
Definition instance_ulduar.cpp:100
ObjectGuid m_MimironACUguid
Definition instance_ulduar.cpp:118
ObjectGuid m_MimironVX001guid
Definition instance_ulduar.cpp:117
ObjectGuid m_auiAssemblyGUIDs[3]
Definition instance_ulduar.cpp:61
ObjectGuid m_uiLeviathanGUID
Definition instance_ulduar.cpp:57
ObjectGuid KologarnDoorGUID
Definition instance_ulduar.cpp:89
ObjectGuid m_uiHodirGUID
Definition instance_ulduar.cpp:65
ObjectGuid m_uiAuriayaGUID
Definition instance_ulduar.cpp:63
ObjectGuid m_leviathanDoorsGUID
Definition instance_ulduar.cpp:73
ObjectGuid m_uiRazorscaleGUID
Definition instance_ulduar.cpp:59
ObjectGuid m_algalonUniverseGUID
Definition instance_ulduar.cpp:132
ObjectGuid m_uiXT002GUID
Definition instance_ulduar.cpp:60
ObjectGuid m_thorimGameobjectsGUID[5]
Definition instance_ulduar.cpp:96
ObjectGuid m_hodirHardmodeChest
Definition instance_ulduar.cpp:101
@ DATA_MIMIRON_VX001
Definition ulduar.h:69
@ DATA_THORIM_FIRST_DOORS
Definition ulduar.h:81
@ DATA_MOLGEIM
Definition ulduar.h:86
@ DATA_THORIM_LEVER
Definition ulduar.h:79
@ DATA_LIGHTNING_WALL2
Definition ulduar.h:56
@ DATA_BRUNDIR
Definition ulduar.h:87
@ DATA_HARPOON_FIRE_STATE_1
Definition ulduar.h:62
@ DATA_HARPOON_FIRE_STATE_2
Definition ulduar.h:63
@ DATA_GO_MIMIRON_DOOR_1
Definition ulduar.h:73
@ DATA_THORIM_FENCE
Definition ulduar.h:80
@ DATA_REPAIR_STATION1
Definition ulduar.h:57
@ DATA_THORIM_SECOND_DOORS
Definition ulduar.h:82
@ DATA_STEELBREAKER
Definition ulduar.h:85
@ DATA_HARPOON_FIRE_STATE_3
Definition ulduar.h:64
@ DATA_LIGHTNING_WALL1
Definition ulduar.h:55
@ DATA_GO_MIMIRON_DOOR_2
Definition ulduar.h:74
@ DATA_GO_MIMIRON_DOOR_3
Definition ulduar.h:75
@ DATA_MIMIRON_LEVIATHAN_MKII
Definition ulduar.h:68
@ DATA_HARPOON_FIRE_STATE_4
Definition ulduar.h:65
@ DATA_MIMIRON_ACU
Definition ulduar.h:70
@ DATA_THORIM_LEVER_GATE
Definition ulduar.h:78
@ DATA_REPAIR_STATION2
Definition ulduar.h:58
@ GO_DOODAD_UL_SIGILDOOR_03
Definition ulduar.h:252
@ GO_DOODAD_UL_UNIVERSEGLOBE01
Definition ulduar.h:255
@ GO_YOGG_SARON_DOORS
Definition ulduar.h:245
@ GO_DOODAD_UL_SIGILDOOR_01
Definition ulduar.h:250
@ GO_LEVIATHAN_DOORS
Definition ulduar.h:195
@ GO_HODIR_CHEST_NORMAL
Definition ulduar.h:180
@ GO_DOODAD_UL_SIGILDOOR_02
Definition ulduar.h:251
@ GO_KOLOGARN_DOORS
Definition ulduar.h:212
@ GO_DOODAD_UL_ULDUAR_TRAPDOOR_03
Definition ulduar.h:256
@ GO_XT002_DOORS
Definition ulduar.h:214
@ GO_DOODAD_UL_UNIVERSEFLOOR_01
Definition ulduar.h:253
@ GO_HODIR_CHEST_HARD
Definition ulduar.h:182
@ GO_DOODAD_UL_UNIVERSEFLOOR_02
Definition ulduar.h:254
@ NPC_ELDER_BRIGHTLEAF
Definition ulduar.h:137
@ NPC_BRAIN_OF_YOGG_SARON
Definition ulduar.h:125
@ NPC_SARA
Definition ulduar.h:123
@ NPC_ELDER_IRONBRANCH
Definition ulduar.h:139
@ NPC_ELDER_STONEBARK
Definition ulduar.h:138
@ NPC_BRANN_BRONZBEARD_ALG
Definition ulduar.h:160

References DATA_BRUNDIR, DATA_GO_MIMIRON_DOOR_1, DATA_GO_MIMIRON_DOOR_2, DATA_GO_MIMIRON_DOOR_3, DATA_HARPOON_FIRE_STATE_1, DATA_HARPOON_FIRE_STATE_2, DATA_HARPOON_FIRE_STATE_3, DATA_HARPOON_FIRE_STATE_4, DATA_LIGHTNING_WALL1, DATA_LIGHTNING_WALL2, DATA_MIMIRON_ACU, DATA_MIMIRON_LEVIATHAN_MKII, DATA_MIMIRON_VX001, DATA_MOLGEIM, DATA_REPAIR_STATION1, DATA_REPAIR_STATION2, DATA_STEELBREAKER, DATA_THORIM_FENCE, DATA_THORIM_FIRST_DOORS, DATA_THORIM_LEVER, DATA_THORIM_LEVER_GATE, DATA_THORIM_SECOND_DOORS, ObjectGuid::Empty, GO_DOODAD_UL_SIGILDOOR_01, GO_DOODAD_UL_SIGILDOOR_02, GO_DOODAD_UL_SIGILDOOR_03, GO_DOODAD_UL_ULDUAR_TRAPDOOR_03, GO_DOODAD_UL_UNIVERSEFLOOR_01, GO_DOODAD_UL_UNIVERSEFLOOR_02, GO_DOODAD_UL_UNIVERSEGLOBE01, GO_HODIR_CHEST_HARD, GO_HODIR_CHEST_NORMAL, GO_KOLOGARN_DOORS, GO_LEVIATHAN_DOORS, GO_XT002_DOORS, GO_YOGG_SARON_DOORS, KologarnDoorGUID, m_algalonFloorGUID, m_algalonSigilDoorGUID, m_algalonTrapdoorGUID, m_algalonUniverseGUID, m_auiAssemblyGUIDs, m_brannBronzebeardAlgGUID, m_FreyaElder, m_hodirHardmodeChest, m_hodirNormalChest, m_leviathanDoorsGUID, m_lightningWalls, m_MimironACUguid, m_MimironDoor, m_MimironLeviathanMKIIguid, m_MimironVX001guid, m_RazorscaleHarpoonFireStateGUID, m_RepairSGUID, m_saraGUID, m_thorimGameobjectsGUID, m_uiAlgalonGUID, m_uiAuriayaGUID, m_uiFreyaGUID, m_uiHodirGUID, m_uiIgnisGUID, m_uiKologarnGUID, m_uiLeviathanGUID, m_uiMimironGUID, m_uiRazorscaleGUID, m_uiThorimGUID, m_uiVezaxGUID, m_uiXT002GUID, m_uiYoggSaronGUID, m_xt002DoorsGUID, m_yoggsaronBrainGUID, m_yoggsaronDoorsGUID, NPC_BRAIN_OF_YOGG_SARON, NPC_BRANN_BRONZBEARD_ALG, NPC_ELDER_BRIGHTLEAF, NPC_ELDER_IRONBRANCH, NPC_ELDER_STONEBARK, NPC_SARA, TYPE_ALGALON, TYPE_AURIAYA, TYPE_FREYA, TYPE_HODIR, TYPE_IGNIS, TYPE_KOLOGARN, TYPE_LEVIATHAN, TYPE_MIMIRON, TYPE_RAZORSCALE, TYPE_THORIM, TYPE_VEZAX, TYPE_XT002, and TYPE_YOGGSARON.

Referenced by SetData().

◆ Initialize()

void instance_ulduar::instance_ulduar_InstanceMapScript::Initialize ( )
inlineoverridevirtual

Reimplemented from InstanceScript.

148 {
149 // Bosses
150 memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
152
153 // Flame Leviathan
154 for (uint8 i = 0; i < 4; ++i)
155 m_leviathanTowers[i] = true;
156
157 _leviathanVehicles.clear();
159 m_mageBarrier = 0;
160
161 // Hodir
162 hmHodir = true; // If players fail the Hardmode then becomes false
163
164 // Freya
166
167 // Algalon
168 m_algalonTimer = 0;
169
170 // Shared
171 _events.Reset();
172 m_mimironTramUsed = false;
173 }
std::uint8_t uint8
Definition Define.h:109
void Reset()
Definition EventMap.cpp:21
bool hmHodir
Definition instance_ulduar.cpp:99
GuidList _leviathanVehicles
Definition instance_ulduar.cpp:78
EventMap _events
Definition instance_ulduar.cpp:142
uint32 m_conspeedatoryAttempt
Definition instance_ulduar.cpp:122

References _events, _leviathanVehicles, C_of_Ulduar_MASK, hmHodir, m_algalonTimer, m_auiEncounter, m_conspeedatoryAttempt, m_leviathanTowers, m_mageBarrier, m_mimironTramUsed, m_unbrokenAchievement, and EventMap::Reset().

Referenced by instance_ulduar_InstanceMapScript().

◆ IsEncounterInProgress()

bool instance_ulduar::instance_ulduar_InstanceMapScript::IsEncounterInProgress ( ) const
inlineoverridevirtual

Reimplemented from InstanceScript.

219 {
220 for (uint8 i = 0; i < (MAX_ENCOUNTER - 1); ++i)
221 {
222 if (m_auiEncounter[i] == IN_PROGRESS)
223 return true;
224 }
225
226 // Leviathan does not use IN_PROGRESS type, instead SPECIAL is set and never reset,
227 // Check if he is in combat.
229 if (l->IsInCombat())
230 return true;
231
232 return false;
233 }
@ IN_PROGRESS
Definition InstanceScript.h:59
Map * instance
Definition InstanceScript.h:149
Creature * GetCreature(ObjectGuid const guid)
Definition Map.cpp:2498
Definition Unit.h:620
#define MAX_ENCOUNTER
Definition violet_hold.h:21

References Map::GetCreature(), IN_PROGRESS, InstanceScript::instance, m_auiEncounter, m_uiLeviathanGUID, and MAX_ENCOUNTER.

◆ OnCreatureCreate()

void instance_ulduar::instance_ulduar_InstanceMapScript::OnCreatureCreate ( Creature creature)
inlineoverridevirtual

These creatures are summoned by something else than Algalon but need to be controlled/despawned by him - so they need to be registered in his summon list

Reimplemented from ZoneScript.

314 {
315 switch (creature->GetEntry())
316 {
317 case NPC_LEVIATHAN:
318 m_uiLeviathanGUID = creature->GetGUID();
319 break;
320 case NPC_IGNIS:
321 m_uiIgnisGUID = creature->GetGUID();
322 break;
323 case NPC_RAZORSCALE:
324 m_uiRazorscaleGUID = creature->GetGUID();
325 break;
326 case NPC_XT002:
327 m_uiXT002GUID = creature->GetGUID();
328 break;
329 case NPC_STEELBREAKER:
330 m_auiAssemblyGUIDs[0] = creature->GetGUID();
331 break;
332 case NPC_MOLGEIM:
333 m_auiAssemblyGUIDs[1] = creature->GetGUID();
334 break;
335 case NPC_BRUNDIR:
336 m_auiAssemblyGUIDs[2] = creature->GetGUID();
337 break;
338 case NPC_KOLOGARN:
339 m_uiKologarnGUID = creature->GetGUID();
340 if (GetData(TYPE_KOLOGARN) == DONE)
341 {
342 creature->SetDisableGravity(true);
343 creature->SetPosition(creature->GetHomePosition());
345 creature->StopMovingOnCurrentPos();
346 }
347 break;
348 case NPC_AURIAYA:
349 m_uiAuriayaGUID = creature->GetGUID();
350 break;
351 case NPC_MIMIRON:
352 m_uiMimironGUID = creature->GetGUID();
353 break;
354 case NPC_HODIR:
355 m_uiHodirGUID = creature->GetGUID();
357 {
359 }
360 break;
361 case NPC_THORIM:
362 m_uiThorimGUID = creature->GetGUID();
363 break;
364 case NPC_FREYA:
365 m_uiFreyaGUID = creature->GetGUID();
366 break;
367 case NPC_VEZAX:
368 m_uiVezaxGUID = creature->GetGUID();
369 break;
370 case NPC_YOGGSARON:
371 m_uiYoggSaronGUID = creature->GetGUID();
372 break;
373 case NPC_ALGALON:
374 m_uiAlgalonGUID = creature->GetGUID();
375
376 if (!m_algalonTimer)
377 creature->DespawnOrUnsummon();
378 break;
380 {
381 if (creature->GetPositionX() > 595 )
383 else if (creature->GetPositionX() > 585 )
385 else if (creature->GetPositionX() > 575 )
387 else
389 }
390 break;
393 break;
395 m_MimironVX001guid = creature->GetGUID();
396 break;
397 case NPC_MIMIRON_ACU:
398 m_MimironACUguid = creature->GetGUID();
399 break;
403 m_FreyaElder[creature->GetEntry() - NPC_ELDER_IRONBRANCH] = creature->GetGUID();
404 break;
405 case NPC_SARA:
406 m_saraGUID = creature->GetGUID();
407 break;
409 m_yoggsaronBrainGUID = creature->GetGUID();
410 break;
413 break;
416 break;
425 algalon->AI()->JustSummoned(creature);
426 break;
427 }
428 }
@ DONE
Definition InstanceScript.h:61
@ NPC_FREYA
Definition ScriptedCreature.cpp:568
Definition Creature.h:43
void setDeathState(DeathState s, bool despawn=false) override
A creature can be in 4 different states: Alive, JustDied, Corpse, and JustRespawned....
Definition Creature.cpp:1965
bool SetDisableGravity(bool disable, bool packetOnly=false, bool updateAnimationTier=true) override
Enable or disable the creature's fly mode by adding or removing: MOVEMENTFLAG_FLYING....
Definition Creature.cpp:3220
void GetHomePosition(float &x, float &y, float &z, float &ori) const
Definition Creature.h:342
void SetPosition(float x, float y, float z, float o)
Definition Creature.cpp:3169
void DespawnOrUnsummon(Milliseconds msTimeToDespawn, Seconds forcedRespawnTimer)
Definition Creature.cpp:2177
Difficulty GetDifficulty() const
Definition Map.h:290
uint32 GetEntry() const
Definition Object.h:116
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:113
void StopMovingOnCurrentPos()
Definition Unit.cpp:16722
float GetPositionX() const
Definition Position.h:121
void SpawnHodirChests(Difficulty diff, Creature *hodir)
Definition instance_ulduar.cpp:242
ObjectGuid m_brannBronzebeardBaseCamp
Definition instance_ulduar.cpp:135
uint32 GetData(uint32 type) const override
Definition instance_ulduar.cpp:1046
@ NPC_VEZAX
Definition ulduar.h:122
@ NPC_MIMIRON_ACU
Definition ulduar.h:134
@ NPC_YOGGSARON
Definition ulduar.h:124
@ NPC_MOLGEIM
Definition ulduar.h:114
@ NPC_ALGALON_STALKER_ASTEROID_TARGET_01
Definition ulduar.h:168
@ NPC_BRUNDIR
Definition ulduar.h:115
@ NPC_UNLEASHED_DARK_MATTER
Definition ulduar.h:170
@ NPC_THORIM
Definition ulduar.h:120
@ NPC_ALGALON
Definition ulduar.h:126
@ NPC_XT002
Definition ulduar.h:112
@ NPC_HARPOON_FIRE_STATE
Definition ulduar.h:129
@ NPC_HODIR
Definition ulduar.h:119
@ NPC_MIMIRON_LEVIATHAN_MKII
Definition ulduar.h:132
@ NPC_IGNIS
Definition ulduar.h:110
@ NPC_LEVIATHAN
Definition ulduar.h:109
@ NPC_ALGALON_STALKER_ASTEROID_TARGET_02
Definition ulduar.h:169
@ NPC_STEELBREAKER
Definition ulduar.h:113
@ NPC_BRANN_BASE_CAMP
Definition ulduar.h:157
@ NPC_KOLOGARN
Definition ulduar.h:116
@ NPC_AURIAYA
Definition ulduar.h:117
@ NPC_RAZORSCALE
Definition ulduar.h:111
@ NPC_ALGALON_VOID_ZONE_VISUAL_STALKER
Definition ulduar.h:167
@ NPC_MIMIRON_VX001
Definition ulduar.h:133
@ NPC_MIMIRON
Definition ulduar.h:118

References Creature::DespawnOrUnsummon(), DONE, Map::GetCreature(), GetData(), Map::GetDifficulty(), Object::GetEntry(), Object::GetGUID(), Creature::GetHomePosition(), Position::GetPositionX(), InstanceScript::instance, JustDied, m_algalonTimer, m_auiAssemblyGUIDs, m_auiEncounter, m_brannBronzebeardAlgGUID, m_brannBronzebeardBaseCamp, m_FreyaElder, m_MimironACUguid, m_MimironLeviathanMKIIguid, m_MimironVX001guid, m_RazorscaleHarpoonFireStateGUID, m_saraGUID, m_uiAlgalonGUID, m_uiAuriayaGUID, m_uiFreyaGUID, m_uiHodirGUID, m_uiIgnisGUID, m_uiKologarnGUID, m_uiLeviathanGUID, m_uiMimironGUID, m_uiRazorscaleGUID, m_uiThorimGUID, m_uiVezaxGUID, m_uiXT002GUID, m_uiYoggSaronGUID, m_yoggsaronBrainGUID, NPC_ALGALON, NPC_ALGALON_STALKER_ASTEROID_TARGET_01, NPC_ALGALON_STALKER_ASTEROID_TARGET_02, NPC_ALGALON_VOID_ZONE_VISUAL_STALKER, NPC_AURIAYA, NPC_BRAIN_OF_YOGG_SARON, NPC_BRANN_BASE_CAMP, NPC_BRANN_BRONZBEARD_ALG, NPC_BRUNDIR, NPC_ELDER_BRIGHTLEAF, NPC_ELDER_IRONBRANCH, NPC_ELDER_STONEBARK, NPC_FREYA, NPC_HARPOON_FIRE_STATE, NPC_HODIR, NPC_IGNIS, NPC_KOLOGARN, NPC_LEVIATHAN, NPC_MIMIRON, NPC_MIMIRON_ACU, NPC_MIMIRON_LEVIATHAN_MKII, NPC_MIMIRON_VX001, NPC_MOLGEIM, NPC_RAZORSCALE, NPC_SARA, NPC_STEELBREAKER, NPC_THORIM, NPC_UNLEASHED_DARK_MATTER, NPC_VEZAX, NPC_XT002, NPC_YOGGSARON, Creature::setDeathState(), Creature::SetDisableGravity(), Creature::SetPosition(), SpawnHodirChests(), Unit::StopMovingOnCurrentPos(), TYPE_HODIR, and TYPE_KOLOGARN.

◆ OnCreatureRemove()

void instance_ulduar::instance_ulduar_InstanceMapScript::OnCreatureRemove ( Creature creature)
inlineoverridevirtual

Reimplemented from ZoneScript.

431 {
432 switch (creature->GetEntry())
433 {
435 if (m_brannBronzebeardAlgGUID == creature->GetGUID())
437 break;
438 }
439 }
void Clear()
Definition ObjectGuid.h:138

References ObjectGuid::Clear(), Object::GetEntry(), Object::GetGUID(), m_brannBronzebeardAlgGUID, and NPC_BRANN_BRONZBEARD_ALG.

◆ OnGameObjectCreate()

void instance_ulduar::instance_ulduar_InstanceMapScript::OnGameObjectCreate ( GameObject gameObject)
inlineoverridevirtual

Reimplemented from ZoneScript.

448 {
449 switch (gameObject->GetEntry())
450 {
451 // Flame Leviathan
453 {
454 if (m_RepairSGUID[0])
455 m_RepairSGUID[1] = gameObject->GetGUID();
456 else
457 m_RepairSGUID[0] = gameObject->GetGUID();
458 break;
459 }
461 m_lightningWalls[0] = gameObject->GetGUID();
463 break;
465 m_lightningWalls[1] = gameObject->GetGUID();
466 break;
469 m_leviathanVisualTowers[3][0] = gameObject->GetGUID();
470 break;
473 m_leviathanVisualTowers[0][0] = gameObject->GetGUID();
474 break;
477 m_leviathanVisualTowers[2][0] = gameObject->GetGUID();
478 break;
481 m_leviathanVisualTowers[1][0] = gameObject->GetGUID();
482 break;
485 m_leviathanVisualTowers[3][1] = gameObject->GetGUID();
486 break;
489 m_leviathanVisualTowers[0][1] = gameObject->GetGUID();
490 break;
493 m_leviathanVisualTowers[2][1] = gameObject->GetGUID();
494 break;
497 m_leviathanVisualTowers[1][1] = gameObject->GetGUID();
498 break;
502 m_leviathanDoorsGUID = gameObject->GetGUID();
503 break;
504 // XT-002, Kologarn, Assembly of Iron
505 case GO_XT002_DOORS:
506 m_xt002DoorsGUID = gameObject->GetGUID();
507 break;
509 KologarnDoorGUID = gameObject->GetGUID();
510 break;
513 break;
515 m_assemblyDoorsGUID = gameObject->GetGUID();
516 break;
518 m_archivumDoorsGUID = gameObject->GetGUID();
520 break;
521 // Thorim
524 break;
525 case GO_ARENA_LEVER:
527 break;
528 case GO_ARENA_FENCE:
530 break;
533 break;
536 break;
537 // Yogg-Saron
539 m_yoggsaronDoorsGUID = gameObject->GetGUID();
540 break;
541 case GO_KEEPERS_GATE:
544
545 m_keepersgateGUID = gameObject->GetGUID();
546 break;
547 // Mimiron, Hodir, Vezax
549 gameObject->EnableCollision(false);
550 break;
552 m_MimironDoor[0] = gameObject->GetGUID();
553 break;
555 m_MimironDoor[1] = gameObject->GetGUID();
556 break;
558 m_MimironDoor[2] = gameObject->GetGUID();
559 break;
561 case GO_HODIR_DOOR:
562 if (GetData(TYPE_HODIR) == DONE)
563 if (gameObject->GetGoState() != GO_STATE_ACTIVE )
564 {
565 gameObject->SetLootState(GO_READY);
566 gameObject->UseDoorOrButton(0, false);
567 }
568 break;
569 case GO_VEZAX_DOOR:
570 if (GetData(TYPE_VEZAX) == DONE )
571 if (gameObject->GetGoState() != GO_STATE_ACTIVE )
572 {
573 gameObject->SetLootState(GO_READY);
574 gameObject->UseDoorOrButton(0, false);
575 }
576 break;
577 case GO_SNOW_MOUND:
578 gameObject->EnableCollision(false);
579 break;
580 // Mimiron Tram
581 case GO_MIMIRON_TRAM:
582 if (GetData(TYPE_MIMIRON) == DONE)
583 m_mimironTramUsed = true;
584 m_mimironTramGUID = gameObject->GetGUID();
585 break;
588 break;
590 m_mimironActivateTramGUID = gameObject->GetGUID();
591 break;
593 m_mimironCallTramCenterGUID = gameObject->GetGUID();
594 break;
597 break;
600 break;
603 break;
604 // Algalon the Observer
607 if (m_algalonTimer)
609 break;
611 m_algalonSigilDoorGUID[0] = gameObject->GetGUID();
612 if (m_algalonTimer)
613 gameObject->SetGoState(GO_STATE_ACTIVE);
614 break;
616 m_algalonSigilDoorGUID[1] = gameObject->GetGUID();
617 if (m_algalonTimer)
618 gameObject->SetGoState(GO_STATE_ACTIVE);
619 break;
621 m_algalonSigilDoorGUID[2] = gameObject->GetGUID();
622 break;
624 m_algalonFloorGUID[0] = gameObject->GetGUID();
625 break;
627 m_algalonFloorGUID[1] = gameObject->GetGUID();
628 break;
630 m_algalonUniverseGUID = gameObject->GetGUID();
631 break;
633 m_algalonTrapdoorGUID = gameObject->GetGUID();
634 break;
635 // Herbs
636 case 191019: // Adder's Tongue
637 case 190176: // Frost Lotus
638 case 190171: // Lichbloom
639 case 190170: // Talandra's Rose
640 case 189973: // Goldclover
641 if (GetData(TYPE_FREYA) == DONE)
642 gameObject->SetRespawnTime(7 * DAY);
643 break;
644 }
645 }
constexpr auto DAY
Definition Common.h:49
@ GO_STATE_READY
Definition GameObjectData.h:690
@ GO_STATE_ACTIVE
Definition GameObjectData.h:689
@ GO_STATE_ACTIVE_ALTERNATIVE
Definition GameObjectData.h:691
@ GO_READY
Definition GameObject.h:111
@ GO_FLAG_IN_USE
Definition SharedDefines.h:1603
@ GO_FLAG_LOCKED
Definition SharedDefines.h:1604
void SetGoState(GOState state)
Definition GameObject.cpp:2462
void SetGameObjectFlag(GameObjectFlags flags)
Definition GameObject.h:217
void UseDoorOrButton(uint32 time_to_restore=0, bool alternative=false, Unit *user=nullptr)
Definition GameObject.cpp:1414
GOState GetGoState() const
Definition GameObject.h:204
void EnableCollision(bool enable)
Definition GameObject.cpp:2589
void SetLootState(LootState s, Unit *unit=nullptr)
Definition GameObject.cpp:2427
void SetRespawnTime(int32 respawn)
Definition GameObject.cpp:1288
void RemoveGameObjectFlag(GameObjectFlags flags)
Definition GameObject.h:218
ObjectGuid m_mimironTramTurnaround1GUID
Definition instance_ulduar.cpp:109
ObjectGuid m_assemblyDoorsGUID
Definition instance_ulduar.cpp:92
void OpenIfDone(uint32 encounter, GameObject *go, GOState state)
Definition instance_ulduar.cpp:441
ObjectGuid m_mimironActivateTramGUID
Definition instance_ulduar.cpp:107
ObjectGuid m_mimironTramGUID
Definition instance_ulduar.cpp:106
ObjectGuid m_archivumDoorsGUID
Definition instance_ulduar.cpp:93
ObjectGuid m_mimironCallTramCenterGUID
Definition instance_ulduar.cpp:111
ObjectGuid m_mimironTramRocketBoosterGUID
Definition instance_ulduar.cpp:108
ObjectGuid m_keepersgateGUID
Definition instance_ulduar.cpp:144
ObjectGuid m_mimironTramTurnaround2GUID
Definition instance_ulduar.cpp:110
ObjectGuid m_mimironCallTramMimironGUID
Definition instance_ulduar.cpp:112
ObjectGuid m_leviathanVisualTowers[4][2]
Definition instance_ulduar.cpp:74
@ GO_DOODAD_UL_TRAIN_TURNAROUND01
Definition ulduar.h:222
@ GO_MIMIRON_ELEVATOR
Definition ulduar.h:226
@ GO_MIMIRON_CALL_TRAM_MIMIRON
Definition ulduar.h:220
@ GO_ARCHIVUM_DOORS
Definition ulduar.h:209
@ GO_KOLOGARN_BRIDGE
Definition ulduar.h:211
@ GO_MIMIRON_TRAM_ROCKET_BOOSTER
Definition ulduar.h:221
@ GO_DOODAD_UL_TRAIN_TURNAROUND02
Definition ulduar.h:223
@ GO_VEZAX_DOOR
Definition ulduar.h:233
@ GO_THORIMS_TARGETTING_CRYSTAL
Definition ulduar.h:201
@ GO_MIMIRONS_TARGETTING_CRYSTAL
Definition ulduar.h:198
@ GO_FREYAS_GENERATOR
Definition ulduar.h:203
@ GO_SECOND_COLOSSUS_DOORS
Definition ulduar.h:242
@ GO_HODIRS_GENERATOR
Definition ulduar.h:204
@ GO_CELESTIAL_PLANETARIUM_ACCESS_25
Definition ulduar.h:249
@ GO_ARENA_FENCE
Definition ulduar.h:240
@ GO_ARENA_LEVER_GATE
Definition ulduar.h:238
@ GO_ASSEMBLY_DOORS
Definition ulduar.h:210
@ GO_MIMIRON_ACTIVATE_TRAM
Definition ulduar.h:218
@ GO_HODIR_FROZEN_DOOR
Definition ulduar.h:230
@ GO_KEEPERS_GATE
Definition ulduar.h:213
@ GO_THORIMS_GENERATOR
Definition ulduar.h:205
@ GO_REPAIR_STATION_TRAP
Definition ulduar.h:194
@ GO_MIMIRON_DOOR_3
Definition ulduar.h:229
@ GO_MIMIRON_DOOR_1
Definition ulduar.h:227
@ GO_ARENA_LEVER
Definition ulduar.h:239
@ GO_HODIR_DOOR
Definition ulduar.h:231
@ GO_HODIRS_TARGETTING_CRYSTAL
Definition ulduar.h:200
@ GO_SNOW_MOUND
Definition ulduar.h:235
@ GO_FIRST_COLOSSUS_DOORS
Definition ulduar.h:241
@ GO_MIMIRONS_GENERATOR
Definition ulduar.h:202
@ GO_LIGHTNING_WALL1
Definition ulduar.h:196
@ GO_CELESTIAL_PLANETARIUM_ACCESS_10
Definition ulduar.h:248
@ GO_LIGHTNING_WALL2
Definition ulduar.h:197
@ GO_MIMIRON_TRAM
Definition ulduar.h:217
@ GO_MIMIRON_DOOR_2
Definition ulduar.h:228
@ GO_MIMIRON_CALL_TRAM_CENTER
Definition ulduar.h:219
@ GO_FREYAS_TARGETTING_CRYSTAL
Definition ulduar.h:199

References DATA_THORIM_FENCE, DATA_THORIM_FIRST_DOORS, DATA_THORIM_LEVER, DATA_THORIM_LEVER_GATE, DATA_THORIM_SECOND_DOORS, DAY, DONE, GameObject::EnableCollision(), GetData(), Object::GetEntry(), GameObject::GetGoState(), Object::GetGUID(), GO_ARCHIVUM_DOORS, GO_ARENA_FENCE, GO_ARENA_LEVER, GO_ARENA_LEVER_GATE, GO_ASSEMBLY_DOORS, GO_CELESTIAL_PLANETARIUM_ACCESS_10, GO_CELESTIAL_PLANETARIUM_ACCESS_25, GO_DOODAD_UL_SIGILDOOR_01, GO_DOODAD_UL_SIGILDOOR_02, GO_DOODAD_UL_SIGILDOOR_03, GO_DOODAD_UL_TRAIN_TURNAROUND01, GO_DOODAD_UL_TRAIN_TURNAROUND02, GO_DOODAD_UL_ULDUAR_TRAPDOOR_03, GO_DOODAD_UL_UNIVERSEFLOOR_01, GO_DOODAD_UL_UNIVERSEFLOOR_02, GO_DOODAD_UL_UNIVERSEGLOBE01, GO_FIRST_COLOSSUS_DOORS, GO_FLAG_IN_USE, GO_FLAG_LOCKED, GO_FREYAS_GENERATOR, GO_FREYAS_TARGETTING_CRYSTAL, GO_HODIR_DOOR, GO_HODIR_FROZEN_DOOR, GO_HODIRS_GENERATOR, GO_HODIRS_TARGETTING_CRYSTAL, GO_KEEPERS_GATE, GO_KOLOGARN_BRIDGE, GO_KOLOGARN_DOORS, GO_LEVIATHAN_DOORS, GO_LIGHTNING_WALL1, GO_LIGHTNING_WALL2, GO_MIMIRON_ACTIVATE_TRAM, GO_MIMIRON_CALL_TRAM_CENTER, GO_MIMIRON_CALL_TRAM_MIMIRON, GO_MIMIRON_DOOR_1, GO_MIMIRON_DOOR_2, GO_MIMIRON_DOOR_3, GO_MIMIRON_ELEVATOR, GO_MIMIRON_TRAM, GO_MIMIRON_TRAM_ROCKET_BOOSTER, GO_MIMIRONS_GENERATOR, GO_MIMIRONS_TARGETTING_CRYSTAL, GO_READY, GO_REPAIR_STATION_TRAP, GO_SECOND_COLOSSUS_DOORS, GO_SNOW_MOUND, GO_STATE_ACTIVE, GO_STATE_ACTIVE_ALTERNATIVE, GO_STATE_READY, GO_THORIMS_GENERATOR, GO_THORIMS_TARGETTING_CRYSTAL, GO_VEZAX_DOOR, GO_XT002_DOORS, GO_YOGG_SARON_DOORS, KologarnDoorGUID, m_algalonFloorGUID, m_algalonSigilDoorGUID, m_algalonTimer, m_algalonTrapdoorGUID, m_algalonUniverseGUID, m_archivumDoorsGUID, m_assemblyDoorsGUID, m_keepersgateGUID, m_leviathanDoorsGUID, m_leviathanVisualTowers, m_lightningWalls, m_mimironActivateTramGUID, m_mimironCallTramCenterGUID, m_mimironCallTramMimironGUID, m_MimironDoor, m_mimironTramGUID, m_mimironTramRocketBoosterGUID, m_mimironTramTurnaround1GUID, m_mimironTramTurnaround2GUID, m_mimironTramUsed, m_RepairSGUID, m_thorimGameobjectsGUID, m_xt002DoorsGUID, m_yoggsaronDoorsGUID, OpenIfDone(), GameObject::RemoveGameObjectFlag(), GameObject::SetGameObjectFlag(), GameObject::SetGoState(), GameObject::SetLootState(), GameObject::SetRespawnTime(), TYPE_ASSEMBLY, TYPE_FREYA, TYPE_HODIR, TYPE_KOLOGARN, TYPE_LEVIATHAN, TYPE_MIMIRON, TYPE_THORIM, TYPE_VEZAX, and GameObject::UseDoorOrButton().

◆ OnPlayerEnter()

void instance_ulduar::instance_ulduar_InstanceMapScript::OnPlayerEnter ( Player player)
inlineoverridevirtual

Reimplemented from InstanceScript.

183 {
184 // mimiron tram:
186 {
187 player->UpdateVisibilityOf(MimironTram);
188 if (StaticTransport* t = MimironTram->ToStaticTransport())
189 {
191 if (!go->GetTransport())
192 t->AddPassenger(go, true);
194 if (!go->GetTransport())
195 t->AddPassenger(go, true);
196 }
197 }
198
200 {
202 if (!algalon)
203 return;
204
205 if (m_algalonTimer <= 60)
206 {
208 algalon->AI()->DoAction(ACTION_INIT_ALGALON);
209 }
210 else // if (m_algalonTimer = TIMER_ALGALON_TO_SUMMON)
211 {
213 algalon->SetImmuneToPC(false);
214 }
215 }
216 }
CreatureAI * AI() const
Definition Creature.h:141
void RescheduleEvent(uint32 eventId, uint32 time, uint32 groupId=0, uint32 phase=0)
Definition EventMap.cpp:81
Definition GameObject.h:120
StaticTransport * ToStaticTransport()
Definition GameObject.h:323
GameObject * GetGameObject(ObjectGuid const guid)
Definition Map.cpp:2503
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:2174
void UpdateVisibilityOf(WorldObject *target)
Definition PlayerUpdates.cpp:1717
Definition Transport.h:113
Definition TemporarySummon.h:40
virtual void DoAction(int32)
Definition UnitAI.h:216
void SetImmuneToPC(bool apply, bool keepCombat=false)
Definition Unit.cpp:13652
Position const AlgalonLandPos
Definition ulduar.h:310
@ TIMER_ALGALON_SUMMONED
Definition ulduar.h:286
@ ACTION_INIT_ALGALON
Definition ulduar.h:281
@ EVENT_UPDATE_ALGALON_TIMER
Definition ulduar.h:279
@ TIMER_ALGALON_TO_SUMMON
Definition ulduar.h:285

References _events, ACTION_INIT_ALGALON, Creature::AI(), AlgalonLandPos, UnitAI::DoAction(), EVENT_UPDATE_ALGALON_TIMER, Map::GetGameObject(), InstanceScript::instance, m_algalonTimer, m_mimironActivateTramGUID, m_mimironTramGUID, m_mimironTramRocketBoosterGUID, m_uiAlgalonGUID, NPC_ALGALON, EventMap::RescheduleEvent(), Unit::SetImmuneToPC(), Map::SummonCreature(), TIMER_ALGALON_SUMMONED, TIMER_ALGALON_TO_SUMMON, GameObject::ToStaticTransport(), and Player::UpdateVisibilityOf().

◆ OnUnitDeath()

void instance_ulduar::instance_ulduar_InstanceMapScript::OnUnitDeath ( Unit unit)
inlineoverridevirtual

Reimplemented from ZoneScript.

1087 {
1088 // Feeds on Tears achievement
1089 if (unit->IsPlayer())
1090 {
1093 algalon->AI()->DoAction(ACTION_FEEDS_ON_TEARS_FAILED);
1094 }
1095 else if (unit->IsCreature() && unit->GetAreaId() == AREA_THE_CONSERVATORY_OF_LIFE)
1096 {
1098 {
1099 DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, 21597 /*CON-SPEED-ATORY_TIMED_CRITERIA*/);
1101 SaveToDB();
1102 }
1103 }
1104
1105 // achievement Champion/Conqueror of Ulduar
1106 if (unit->IsPlayer())
1107 for (uint8 i = 0; i <= 12; ++i)
1108 {
1109 bool go = false;
1110 if (i == TYPE_LEVIATHAN)
1111 {
1113 if (c->IsInCombat())
1114 go = true;
1115 }
1116 else
1117 go = (m_auiEncounter[i] == IN_PROGRESS);
1118
1119 if (go && (C_of_Ulduar_MASK & (1 << i)) == 0)
1120 {
1121 C_of_Ulduar_MASK |= (1 << i);
1122 SaveToDB();
1123 }
1124 }
1125 }
@ AREA_THE_CONSERVATORY_OF_LIFE
Definition AreaDefines.h:162
@ ACHIEVEMENT_TIMED_TYPE_EVENT
Definition DBCEnums.h:110
void SaveToDB()
Definition InstanceScript.cpp:41
void DoStartTimedAchievement(AchievementCriteriaTimedTypes type, uint32 entry)
Definition InstanceScript.cpp:665
bool IsPlayer() const
Definition Object.h:201
bool IsCreature() const
Definition Object.h:205
uint32 GetAreaId() const
Definition Object.cpp:3156
Seconds GetGameTime()
Definition GameTime.cpp:38
@ ACTION_FEEDS_ON_TEARS_FAILED
Definition ulduar.h:280

References ACHIEVEMENT_TIMED_TYPE_EVENT, ACTION_FEEDS_ON_TEARS_FAILED, AREA_THE_CONSERVATORY_OF_LIFE, C_of_Ulduar_MASK, DAY, InstanceScript::DoStartTimedAchievement(), WorldObject::GetAreaId(), Map::GetCreature(), GetData(), GameTime::GetGameTime(), IN_PROGRESS, InstanceScript::instance, Object::IsCreature(), Object::IsPlayer(), m_auiEncounter, m_conspeedatoryAttempt, m_uiAlgalonGUID, m_uiLeviathanGUID, InstanceScript::SaveToDB(), TYPE_ALGALON, and TYPE_LEVIATHAN.

◆ OpenIfDone()

void instance_ulduar::instance_ulduar_InstanceMapScript::OpenIfDone ( uint32  encounter,
GameObject go,
GOState  state 
)
inline
442 {
443 if (GetData(encounter) == DONE)
444 go->SetGoState(state);
445 }

References DONE, GetData(), and GameObject::SetGoState().

Referenced by OnGameObjectCreate().

◆ ProcessEvent()

void instance_ulduar::instance_ulduar_InstanceMapScript::ProcessEvent ( WorldObject ,
uint32  eventId 
)
inlineoverridevirtual

Reimplemented from ZoneScript.

236 {
237 // destory towers
239 SetData(eventId, 0);
240 }
void SetData(uint32 type, uint32 data) override
Definition instance_ulduar.cpp:672

References EVENT_TOWER_OF_FLAMES_DESTROYED, EVENT_TOWER_OF_LIFE_DESTROYED, and SetData().

Referenced by SetData().

◆ ReadSaveDataMore()

void instance_ulduar::instance_ulduar_InstanceMapScript::ReadSaveDataMore ( std::istringstream &  data)
inlineoverridevirtual

Reimplemented from InstanceScript.

1128 {
1129 data >> m_auiEncounter[0];
1130 data >> m_auiEncounter[1];
1131 data >> m_auiEncounter[2];
1132 data >> m_auiEncounter[3];
1133 data >> m_auiEncounter[4];
1134 data >> m_auiEncounter[5];
1135 data >> m_auiEncounter[6];
1136 data >> m_auiEncounter[7];
1137 data >> m_auiEncounter[8];
1138 data >> m_auiEncounter[9];
1139 data >> m_auiEncounter[10];
1140 data >> m_auiEncounter[11];
1141 data >> m_auiEncounter[12];
1142 data >> m_auiEncounter[13];
1143 data >> m_auiEncounter[14];
1144 data >> m_conspeedatoryAttempt;
1145 data >> m_unbrokenAchievement;
1146 data >> m_algalonTimer;
1147
1150
1152 {
1155 }
1156
1157 data >> C_of_Ulduar_MASK;
1158 data >> m_mageBarrier;
1159
1160 for (uint8 i = 0; i < (MAX_ENCOUNTER - 1); ++i)
1161 {
1162 if (m_auiEncounter[i] == IN_PROGRESS)
1163 {
1165 }
1166 }
1167 }
@ NOT_STARTED
Definition InstanceScript.h:58
void DoUpdateWorldState(uint32 worldstateId, uint32 worldstateValue)
Definition InstanceScript.cpp:621

References C_of_Ulduar_MASK, DONE, InstanceScript::DoUpdateWorldState(), GetData(), IN_PROGRESS, m_algalonTimer, m_auiEncounter, m_conspeedatoryAttempt, m_mageBarrier, m_unbrokenAchievement, MAX_ENCOUNTER, NOT_STARTED, TIMER_ALGALON_SUMMONED, TIMER_ALGALON_TO_SUMMON, TYPE_ALGALON, WORLD_STATE_ULDUAR_ALGALON_DESPAWN_TIMER, and WORLD_STATE_ULDUAR_ALGALON_TIMER_ENABLED.

◆ setChestsLootable()

void instance_ulduar::instance_ulduar_InstanceMapScript::setChestsLootable ( uint32  boss)
inline
648 {
649 if (boss)
650 {
651 switch (boss)
652 {
653 case TYPE_HODIR:
654 if (hmHodir)
655 {
657 {
658 go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
659 go->SetLootRecipient(instance);
660 }
661 }
663 {
664 go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
665 go->SetLootRecipient(instance);
666 }
667 break;
668 }
669 }
670 }
@ GO_FLAG_NOT_SELECTABLE
Definition SharedDefines.h:1607

References Map::GetGameObject(), GO_FLAG_NOT_SELECTABLE, hmHodir, InstanceScript::instance, m_hodirHardmodeChest, m_hodirNormalChest, and TYPE_HODIR.

Referenced by SetData().

◆ SetData()

void instance_ulduar::instance_ulduar_InstanceMapScript::SetData ( uint32  type,
uint32  data 
)
inlineoverridevirtual

Reimplemented from ZoneScript.

673 {
674 switch (type)
675 {
676 case TYPE_LEVIATHAN:
677 m_auiEncounter[type] = data;
678 if (data == DONE)
679 {
680 Map::PlayerList const& pList = instance->GetPlayers();
681 for (Map::PlayerList::const_iterator itr = pList.begin(); itr != pList.end(); ++itr)
682 {
683 if (Creature* vehicleCreature = itr->GetSource()->GetVehicleCreatureBase())
684 {
685 vehicleCreature->DespawnOrUnsummon();
686 }
687 }
688 }
689 break;
690 case TYPE_IGNIS:
691 case TYPE_RAZORSCALE:
692 case TYPE_XT002:
693 case TYPE_AURIAYA:
694 case TYPE_VEZAX:
695 case TYPE_YOGGSARON:
696 case TYPE_KOLOGARN:
697 m_auiEncounter[type] = data;
698 break;
699 case TYPE_ASSEMBLY:
701 go->SetGoState(data == IN_PROGRESS ? GO_STATE_READY : GO_STATE_ACTIVE);
703 go->SetGoState(data == DONE ? GO_STATE_ACTIVE : GO_STATE_READY);
704
705 m_auiEncounter[type] = data;
706 break;
707 case TYPE_MIMIRON:
708 case TYPE_HODIR:
709 case TYPE_THORIM:
710 case TYPE_FREYA:
711 m_auiEncounter[type] = data;
713 {
714 scheduler.Schedule(45s, [this](TaskContext /*context*/)
715 {
717 {
718 go->RemoveGameObjectFlag(GO_FLAG_LOCKED);
719 if (Creature* trigger = instance->SummonCreature(NPC_ANCIENT_GATE_WORLD_TRIGGER, triggerAncientGatePosition, nullptr, 10*IN_MILLISECONDS))
720 {
721 trigger->AI()->Talk(EMOTE_ANCIENT_GATE_UNLOCKED);
722 }
723 }
724 });
725 }
726 if (type == TYPE_MIMIRON && data == IN_PROGRESS) // after reaching him without tram and starting the fight
727 m_mimironTramUsed = true;
728 if (GetData(TYPE_HODIR) == DONE)
730 break;
733 {
734 hmHodir = false;
735 go->Delete();
737 }
738 break;
739 case TYPE_WATCHERS:
740 m_auiEncounter[type] |= 1 << data;
741 [[fallthrough]];
744 sara->AI()->DoAction(ACTION_SARA_UPDATE_SUMMON_KEEPERS);
745 break;
747 m_mageBarrier = data;
748 break;
749
754 {
756 for (uint8 i = 0; i < 2; ++i)
757 {
759 {
760 gameObject->SetGoState(GO_STATE_ACTIVE);
761 }
762 }
763 return;
764 }
765
768 return;
771 SaveToDB();
772 return;
776 m_algalonTimer = 60;
778 SaveToDB();
779 return;
785 SaveToDB();
786 return;
787 case TYPE_ALGALON:
788 m_auiEncounter[type] = data;
790 {
791 go->SetGoState(data != IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY);
792 go->EnableCollision(false);
793 }
795 {
796 go->SetGoState(data != IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY);
797 go->EnableCollision(false);
798 }
800 {
801 go->SetGoState(data == IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY);
802 go->EnableCollision(false);
803 }
805 {
806 go->SetGoState(data == IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY);
807 go->EnableCollision(false);
808 }
810 {
811 go->SetGoState(data == IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY);
812 go->EnableCollision(false);
813 }
814
815 break;
816
817 // Achievement
821 return;
822 case DATA_CALL_TRAM:
824 if (StaticTransport* t = MimironTram->ToStaticTransport())
825 {
826 if (data == 0 && t->GetGoState() == GO_STATE_ACTIVE && t->GetPathProgress() == t->GetPauseTime())
827 {
828 MimironTram->SetGoState(GO_STATE_READY);
830 rocketBooster->SetGoState(GO_STATE_ACTIVE);
832 activateTramButton->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
833 if (GameObject* callTramCenterButton = instance->GetGameObject(m_mimironCallTramCenterGUID))
834 callTramCenterButton->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
835 scheduler.Schedule(30s, [this](TaskContext /*context*/)
836 {
838 turnaround1->UseDoorOrButton();
840 rocketBooster->SetGoState(GO_STATE_READY);
841 }).Schedule(60s, [this](TaskContext /*context*/)
842 {
844 activateTramButton->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
845 if (GameObject* callTramMimironButton = instance->GetGameObject(m_mimironCallTramMimironGUID))
846 callTramMimironButton->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
847 });
848 }
849 if (data == 1 && t->GetGoState() == GO_STATE_READY && t->GetPathProgress() == 0)
850 {
851 MimironTram->SetGoState(GO_STATE_ACTIVE);
853 rocketBooster->SetGoState(GO_STATE_ACTIVE);
855 activateTramButton->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
856 if (GameObject* callTramMimironButton = instance->GetGameObject(m_mimironCallTramMimironGUID))
857 callTramMimironButton->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
858 scheduler.Schedule(33s, [this](TaskContext /*context*/)
859 {
861 turnaround2->UseDoorOrButton();
863 rocketBooster->SetGoState(GO_STATE_READY);
864 }).Schedule(63s, [this](TaskContext /*context*/)
865 {
867 activateTramButton->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
868 if (GameObject* callTramCenterButton = instance->GetGameObject(m_mimironCallTramCenterGUID))
869 callTramCenterButton->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
870 });
871 }
872 }
873 break;
876 {
877 cr->TextEmote("Go to your vehicles!", nullptr, true);
878 }
879 break;
885 break;
886 }
887
888 // take care of herbs
889 if (type == TYPE_FREYA && data == DONE)
890 {
891 std::list<GameObject*> goList;
893 {
894 freya->GetGameObjectListWithEntryInGrid(goList, 191019 /*Adder's Tongue*/, 333.0f);
895 freya->GetGameObjectListWithEntryInGrid(goList, 190176 /*Frost Lotus*/, 333.0f);
896 freya->GetGameObjectListWithEntryInGrid(goList, 190171 /*Lichbloom*/, 333.0f);
897 freya->GetGameObjectListWithEntryInGrid(goList, 190170 /*Talandra's Rose*/, 333.0f);
898 freya->GetGameObjectListWithEntryInGrid(goList, 189973 /*Goldclover*/, 333.0f);
899
900 for (std::list<GameObject*>::const_iterator itr = goList.begin(); itr != goList.end(); ++itr)
901 (*itr)->SetRespawnTime(7 * DAY);
902 }
903 }
904
905 if (data == DONE || type == TYPE_LEVIATHAN || type == TYPE_WATCHERS)
906 SaveToDB();
907
908 if (type > TYPE_LEVIATHAN && type < TYPE_WATCHERS && data == IN_PROGRESS)
909 {
910 Map::PlayerList const& pList = instance->GetPlayers();
911 for (Map::PlayerList::const_iterator itr = pList.begin(); itr != pList.end(); ++itr)
912 {
913 if (Creature* vehicleCreature = itr->GetSource()->GetVehicleCreatureBase())
914 {
915 vehicleCreature->DespawnOrUnsummon();
916 }
917 }
918 }
919 }
@ ACHIEVEMENT_TIMED_TYPE_SPELL_TARGET
Definition DBCEnums.h:113
@ ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET
Definition DBCEnums.h:142
void CancelEvent(uint32 eventId)
Definition EventMap.cpp:190
void DoUpdateAchievementCriteria(AchievementCriteriaTypes type, uint32 miscValue1=0, uint32 miscValue2=0, Unit *unit=nullptr)
Definition InstanceScript.cpp:656
TaskScheduler scheduler
Definition InstanceScript.h:293
Definition LinkedList.h:139
Definition MapRefMgr.h:26
iterator begin()
Definition MapRefMgr.h:36
iterator end()
Definition MapRefMgr.h:37
PlayerList const & GetPlayers() const
Definition Map.h:333
Definition TaskScheduler.h:421
TaskScheduler & Schedule(std::chrono::duration< _Rep, _Period > const &time, task_handler_t const &task)
Definition TaskScheduler.h:232
Creature * GetVehicleCreatureBase() const
Definition Unit.cpp:18794
void ProcessEvent(WorldObject *, uint32 eventId) override
Definition instance_ulduar.cpp:235
void SpawnLeviathanEncounterVehicles(uint8 mode)
Definition instance_ulduar.cpp:1301
void setChestsLootable(uint32 boss)
Definition instance_ulduar.cpp:647
ObjectGuid GetGuidData(uint32 data) const override
Definition instance_ulduar.cpp:921
@ EVENT_KEEPER_TELEPORTED
Definition ulduar.h:292
@ SPELL_DWARFAGEDDON
Definition ulduar.h:306
@ ACTION_SARA_UPDATE_SUMMON_KEEPERS
Definition ulduar.h:299
@ TIMER_ALGALON_DEFEATED
Definition ulduar.h:284
@ DATA_BRANN_MEMOTESAY
Definition ulduar.h:102
@ DATA_DESPAWN_ALGALON
Definition ulduar.h:91
@ DATA_BRANN_EASY_MODE
Definition ulduar.h:103
@ DATA_ALGALON_DEFEATED
Definition ulduar.h:92
@ DATA_VEHICLE_SPAWN
Definition ulduar.h:54
@ DATA_DWARFAGEDDON
Definition ulduar.h:95
@ DATA_ALGALON_SUMMON_STATE
Definition ulduar.h:90
@ TYPE_HODIR_HM_FAIL
Definition ulduar.h:47

References _events, ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET, ACHIEVEMENT_TIMED_TYPE_SPELL_TARGET, ACTION_SARA_UPDATE_SUMMON_KEEPERS, MapRefMgr::begin(), EventMap::CancelEvent(), ObjectGuid::Clear(), DATA_ALGALON_DEFEATED, DATA_ALGALON_SUMMON_STATE, DATA_BRANN_EASY_MODE, DATA_BRANN_MEMOTESAY, DATA_CALL_TRAM, DATA_DESPAWN_ALGALON, DATA_DWARFAGEDDON, DATA_MAGE_BARRIER, DATA_UNBROKEN_ACHIEVEMENT, DATA_VEHICLE_SPAWN, DAY, DONE, InstanceScript::DoStartTimedAchievement(), InstanceScript::DoUpdateAchievementCriteria(), InstanceScript::DoUpdateWorldState(), EMOTE_ANCIENT_GATE_UNLOCKED, MapRefMgr::end(), EVENT_KEEPER_TELEPORTED, EVENT_TOWER_OF_FLAMES_DESTROYED, EVENT_TOWER_OF_FROST_DESTROYED, EVENT_TOWER_OF_LIFE_DESTROYED, EVENT_TOWER_OF_STORM_DESTROYED, EVENT_UPDATE_ALGALON_TIMER, Map::GetCreature(), GetData(), Map::GetGameObject(), GetGuidData(), Map::GetPlayers(), Unit::GetVehicleCreatureBase(), GO_DOODAD_UL_SIGILDOOR_03, GO_DOODAD_UL_ULDUAR_TRAPDOOR_03, GO_DOODAD_UL_UNIVERSEFLOOR_01, GO_DOODAD_UL_UNIVERSEFLOOR_02, GO_DOODAD_UL_UNIVERSEGLOBE01, GO_FLAG_LOCKED, GO_FLAG_NOT_SELECTABLE, GO_STATE_ACTIVE, GO_STATE_READY, hmHodir, IN_MILLISECONDS, IN_PROGRESS, InstanceScript::instance, m_algalonTimer, m_archivumDoorsGUID, m_assemblyDoorsGUID, m_auiEncounter, m_brannBronzebeardBaseCamp, m_hodirHardmodeChest, m_keepersgateGUID, m_leviathanTowers, m_leviathanVisualTowers, m_mageBarrier, m_mimironActivateTramGUID, m_mimironCallTramCenterGUID, m_mimironCallTramMimironGUID, m_mimironTramGUID, m_mimironTramRocketBoosterGUID, m_mimironTramTurnaround1GUID, m_mimironTramTurnaround2GUID, m_mimironTramUsed, m_saraGUID, m_unbrokenAchievement, NPC_ANCIENT_GATE_WORLD_TRIGGER, ProcessEvent(), EventMap::RescheduleEvent(), InstanceScript::SaveToDB(), TaskScheduler::Schedule(), InstanceScript::scheduler, setChestsLootable(), SpawnLeviathanEncounterVehicles(), SPELL_DWARFAGEDDON, Map::SummonCreature(), TIMER_ALGALON_DEFEATED, TIMER_ALGALON_SUMMONED, GameObject::ToStaticTransport(), triggerAncientGatePosition, TYPE_ALGALON, TYPE_ASSEMBLY, TYPE_AURIAYA, TYPE_FREYA, TYPE_HODIR, TYPE_HODIR_HM_FAIL, TYPE_IGNIS, TYPE_KOLOGARN, TYPE_LEVIATHAN, TYPE_MIMIRON, TYPE_RAZORSCALE, TYPE_THORIM, TYPE_VEZAX, TYPE_WATCHERS, TYPE_XT002, TYPE_YOGGSARON, WORLD_STATE_ULDUAR_ALGALON_DESPAWN_TIMER, and WORLD_STATE_ULDUAR_ALGALON_TIMER_ENABLED.

Referenced by ProcessEvent(), and Update().

◆ SpawnHodirChests()

void instance_ulduar::instance_ulduar_InstanceMapScript::SpawnHodirChests ( Difficulty  diff,
Creature hodir 
)
inline
243 {
244 switch (diff)
245 {
246 case RAID_DIFFICULTY_10MAN_NORMAL: // 10 man chest
247 {
249 {
250 if (GameObject* go = hodir->SummonGameObject(
255 normalChestPosition.GetOrientation(), 0, 0, 0, 0, 0))
256 {
257 m_hodirNormalChest = go->GetGUID();
258 go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
259 }
260 }
262 {
263 if (GameObject* go = hodir->SummonGameObject(
268 hardChestPosition.GetOrientation(), 0, 0, 0, 0, 0))
269 {
270 m_hodirHardmodeChest = go->GetGUID();
271 go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
272 hmHodir = true;
273 }
274 }
275 break;
276 }
277 case RAID_DIFFICULTY_25MAN_NORMAL: // 25 man chest
278 {
280 {
281 if (GameObject* go = hodir->SummonGameObject(
286 normalChestPosition.GetOrientation(), 0, 0, 0, 0, 0))
287 {
288 m_hodirNormalChest = go->GetGUID();
289 go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
290 }
291 }
293 {
294 if (GameObject* go = hodir->SummonGameObject(
299 hardChestPosition.GetOrientation(), 0, 0, 0, 0, 0))
300 {
301 m_hodirHardmodeChest = go->GetGUID();
302 go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
303 hmHodir = true;
304 }
305 }
306 break;
307 }
308 default:
309 break;
310 }
311 }
@ RAID_DIFFICULTY_10MAN_NORMAL
Definition DBCEnums.h:273
@ RAID_DIFFICULTY_25MAN_NORMAL
Definition DBCEnums.h:274
GameObject * SummonGameObject(uint32 entry, float x, float y, float z, float ang, float rotation0, float rotation1, float rotation2, float rotation3, uint32 respawnTime, bool checkTransport=true, GOSummonType summonType=GO_SUMMON_TIMED_OR_CORPSE_DESPAWN)
Definition Object.cpp:2382
float GetPositionZ() const
Definition Position.h:123
float GetOrientation() const
Definition Position.h:124
float GetPositionY() const
Definition Position.h:122
Position hardChestPosition
Definition instance_ulduar.cpp:103
Position normalChestPosition
Definition instance_ulduar.cpp:102
@ GO_HODIR_CHEST_NORMAL_HERO
Definition ulduar.h:181
@ GO_HODIR_CHEST_HARD_HERO
Definition ulduar.h:183

References Position::GetOrientation(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), GO_FLAG_NOT_SELECTABLE, GO_HODIR_CHEST_HARD, GO_HODIR_CHEST_HARD_HERO, GO_HODIR_CHEST_NORMAL, GO_HODIR_CHEST_NORMAL_HERO, hardChestPosition, hmHodir, m_hodirHardmodeChest, m_hodirNormalChest, normalChestPosition, RAID_DIFFICULTY_10MAN_NORMAL, RAID_DIFFICULTY_25MAN_NORMAL, and WorldObject::SummonGameObject().

Referenced by OnCreatureCreate().

◆ SpawnLeviathanEncounterVehicles()

void instance_ulduar::instance_ulduar_InstanceMapScript::SpawnLeviathanEncounterVehicles ( uint8  mode)
1302{
1303 if (!_leviathanVehicles.empty())
1304 {
1305 for (ObjectGuid const& guid : _leviathanVehicles)
1306 {
1307 if (Creature* cr = instance->GetCreature(guid))
1308 {
1309 cr->DespawnOrUnsummon();
1310 }
1311 }
1312
1313 _leviathanVehicles.clear();
1314 }
1315
1316 if (mode < VEHICLE_POS_NONE)
1317 {
1318 for (uint8 i = 0; i < (instance->Is25ManRaid() ? 5 : 2); ++i)
1319 {
1321 {
1322 _leviathanVehicles.push_back(veh->GetGUID());
1323 }
1325 {
1326 _leviathanVehicles.push_back(veh->GetGUID());
1327 }
1329 {
1330 _leviathanVehicles.push_back(veh->GetGUID());
1331 }
1332 }
1333 }
1334}
Definition ObjectGuid.h:118
const Position vehiclePositions[30]
Definition instance_ulduar.cpp:1259
@ VEHICLE_POS_NONE
Definition ulduar.h:266
@ NPC_SALVAGED_SIEGE_ENGINE
Definition ulduar.h:152
@ NPC_VEHICLE_CHOPPER
Definition ulduar.h:154
@ NPC_SALVAGED_DEMOLISHER
Definition ulduar.h:155

References _leviathanVehicles, Map::GetCreature(), InstanceScript::instance, Map::Is25ManRaid(), NPC_SALVAGED_DEMOLISHER, NPC_SALVAGED_SIEGE_ENGINE, NPC_VEHICLE_CHOPPER, Map::SummonCreature(), VEHICLE_POS_NONE, and vehiclePositions.

Referenced by SetData().

◆ Update()

void instance_ulduar::instance_ulduar_InstanceMapScript::Update ( uint32  diff)
inlineoverridevirtual

Reimplemented from InstanceScript.

1179 {
1181
1182 if (_events.Empty())
1183 return;
1184
1185 _events.Update(diff);
1186 switch (_events.ExecuteEvent())
1187 {
1190 {
1191 return;
1192 }
1193
1194 SaveToDB();
1196 if (m_algalonTimer)
1197 {
1198 _events.Repeat(1min);
1199 return;
1200 }
1201
1204 algalon->AI()->DoAction(ACTION_DESPAWN_ALGALON);
1205 }
1206 }
uint32 ExecuteEvent()
Definition EventMap.cpp:114
void Update(uint32 time)
Definition EventMap.h:54
bool Empty() const
Definition EventMap.h:96
void Repeat(Milliseconds time)
Definition EventMap.cpp:104
virtual void Update(uint32)
Definition InstanceScript.cpp:247
@ ACTION_DESPAWN_ALGALON
Definition ulduar.h:282

References _events, ACTION_DESPAWN_ALGALON, DATA_ALGALON_DEFEATED, InstanceScript::DoUpdateWorldState(), EventMap::Empty(), EVENT_UPDATE_ALGALON_TIMER, EventMap::ExecuteEvent(), Map::GetCreature(), InstanceScript::instance, m_algalonTimer, m_uiAlgalonGUID, EventMap::Repeat(), InstanceScript::SaveToDB(), SetData(), TIMER_ALGALON_DEFEATED, EventMap::Update(), InstanceScript::Update(), and WORLD_STATE_ULDUAR_ALGALON_DESPAWN_TIMER.

◆ WriteSaveDataMore()

void instance_ulduar::instance_ulduar_InstanceMapScript::WriteSaveDataMore ( std::ostringstream &  data)
inlineoverridevirtual

Reimplemented from InstanceScript.

1170 {
1171 data << m_auiEncounter[0] << ' ' << m_auiEncounter[1] << ' ' << m_auiEncounter[2] << ' ' << m_auiEncounter[3] << ' '
1172 << m_auiEncounter[4] << ' ' << m_auiEncounter[5] << ' ' << m_auiEncounter[6] << ' ' << m_auiEncounter[7] << ' '
1173 << m_auiEncounter[8] << ' ' << m_auiEncounter[9] << ' ' << m_auiEncounter[10] << ' ' << m_auiEncounter[11] << ' '
1174 << m_auiEncounter[12] << ' ' << m_auiEncounter[13] << ' ' << m_auiEncounter[14] << ' ' << m_conspeedatoryAttempt << ' '
1175 << m_unbrokenAchievement << ' ' << m_algalonTimer << ' ' << C_of_Ulduar_MASK << ' ' << m_mageBarrier;
1176 }

References C_of_Ulduar_MASK, m_algalonTimer, m_auiEncounter, m_conspeedatoryAttempt, m_mageBarrier, and m_unbrokenAchievement.

Member Data Documentation

◆ _events

EventMap instance_ulduar::instance_ulduar_InstanceMapScript::_events

◆ _leviathanVehicles

GuidList instance_ulduar::instance_ulduar_InstanceMapScript::_leviathanVehicles

◆ C_of_Ulduar_MASK

uint32 instance_ulduar::instance_ulduar_InstanceMapScript::C_of_Ulduar_MASK

◆ hardChestPosition

Position instance_ulduar::instance_ulduar_InstanceMapScript::hardChestPosition = { 2035.94600f, -202.084885f, 432.686859f, 3.164077f }
103{ 2035.94600f, -202.084885f, 432.686859f, 3.164077f };

Referenced by SpawnHodirChests().

◆ hmHodir

bool instance_ulduar::instance_ulduar_InstanceMapScript::hmHodir

◆ KologarnDoorGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::KologarnDoorGUID

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ m_algalonFloorGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_algalonFloorGUID[2]

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ m_algalonSigilDoorGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_algalonSigilDoorGUID[3]

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ m_algalonTimer

uint32 instance_ulduar::instance_ulduar_InstanceMapScript::m_algalonTimer

◆ m_algalonTrapdoorGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_algalonTrapdoorGUID

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ m_algalonUniverseGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_algalonUniverseGUID

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ m_archivumDoorsGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_archivumDoorsGUID

Referenced by OnGameObjectCreate(), and SetData().

◆ m_assemblyDoorsGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_assemblyDoorsGUID

Referenced by OnGameObjectCreate(), and SetData().

◆ m_auiAssemblyGUIDs

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_auiAssemblyGUIDs[3]

Referenced by GetGuidData(), and OnCreatureCreate().

◆ m_auiEncounter

uint32 instance_ulduar::instance_ulduar_InstanceMapScript::m_auiEncounter[MAX_ENCOUNTER]

◆ m_brannBronzebeardAlgGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_brannBronzebeardAlgGUID

◆ m_brannBronzebeardBaseCamp

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_brannBronzebeardBaseCamp

Referenced by OnCreatureCreate(), and SetData().

◆ m_conspeedatoryAttempt

uint32 instance_ulduar::instance_ulduar_InstanceMapScript::m_conspeedatoryAttempt

◆ m_difficulty

int instance_ulduar::instance_ulduar_InstanceMapScript::m_difficulty

◆ m_FreyaElder

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_FreyaElder[3]

Referenced by GetGuidData(), and OnCreatureCreate().

◆ m_hodirHardmodeChest

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_hodirHardmodeChest

◆ m_hodirNormalChest

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_hodirNormalChest

◆ m_keepersgateGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_keepersgateGUID

Referenced by OnGameObjectCreate(), and SetData().

◆ m_keepersGossipGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_keepersGossipGUID[4]

◆ m_leviathanDoorsGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_leviathanDoorsGUID

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ m_leviathanTowers

bool instance_ulduar::instance_ulduar_InstanceMapScript::m_leviathanTowers[4]

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

◆ m_leviathanVisualTowers

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_leviathanVisualTowers[4][2]

Referenced by OnGameObjectCreate(), and SetData().

◆ m_lightningWalls

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_lightningWalls[2]

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ m_mageBarrier

uint32 instance_ulduar::instance_ulduar_InstanceMapScript::m_mageBarrier

◆ m_mimironActivateTramGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_mimironActivateTramGUID

◆ m_MimironACUguid

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_MimironACUguid

Referenced by GetGuidData(), and OnCreatureCreate().

◆ m_mimironCallTramCenterGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_mimironCallTramCenterGUID

Referenced by OnGameObjectCreate(), and SetData().

◆ m_mimironCallTramMimironGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_mimironCallTramMimironGUID

Referenced by OnGameObjectCreate(), and SetData().

◆ m_MimironDoor

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_MimironDoor[3]

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ m_MimironLeviathanMKIIguid

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_MimironLeviathanMKIIguid

Referenced by GetGuidData(), and OnCreatureCreate().

◆ m_mimironTramGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_mimironTramGUID

◆ m_mimironTramRocketBoosterGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_mimironTramRocketBoosterGUID

◆ m_mimironTramTurnaround1GUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_mimironTramTurnaround1GUID

Referenced by OnGameObjectCreate(), and SetData().

◆ m_mimironTramTurnaround2GUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_mimironTramTurnaround2GUID

Referenced by OnGameObjectCreate(), and SetData().

◆ m_mimironTramUsed

bool instance_ulduar::instance_ulduar_InstanceMapScript::m_mimironTramUsed

◆ m_MimironVX001guid

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_MimironVX001guid

Referenced by GetGuidData(), and OnCreatureCreate().

◆ m_RazorscaleHarpoonFireStateGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_RazorscaleHarpoonFireStateGUID[4]

Referenced by GetGuidData(), and OnCreatureCreate().

◆ m_RepairSGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_RepairSGUID[2]

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ m_saraGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_saraGUID

◆ m_thorimGameobjectsGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_thorimGameobjectsGUID[5]

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ m_uiAlgalonGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_uiAlgalonGUID

◆ m_uiAuriayaGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_uiAuriayaGUID

Referenced by GetGuidData(), and OnCreatureCreate().

◆ m_uiFreyaGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_uiFreyaGUID

Referenced by GetGuidData(), and OnCreatureCreate().

◆ m_uiHodirGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_uiHodirGUID

Referenced by GetGuidData(), and OnCreatureCreate().

◆ m_uiIgnisGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_uiIgnisGUID

Referenced by GetGuidData(), and OnCreatureCreate().

◆ m_uiKologarnGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_uiKologarnGUID

Referenced by GetGuidData(), and OnCreatureCreate().

◆ m_uiLeviathanGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_uiLeviathanGUID

◆ m_uiMimironGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_uiMimironGUID

Referenced by GetGuidData(), and OnCreatureCreate().

◆ m_uiRazorscaleGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_uiRazorscaleGUID

Referenced by GetGuidData(), and OnCreatureCreate().

◆ m_uiThorimGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_uiThorimGUID

Referenced by GetGuidData(), and OnCreatureCreate().

◆ m_uiVezaxGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_uiVezaxGUID

Referenced by GetGuidData(), and OnCreatureCreate().

◆ m_uiXT002GUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_uiXT002GUID

Referenced by GetGuidData(), and OnCreatureCreate().

◆ m_uiYoggSaronGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_uiYoggSaronGUID

Referenced by GetGuidData(), and OnCreatureCreate().

◆ m_unbrokenAchievement

uint32 instance_ulduar::instance_ulduar_InstanceMapScript::m_unbrokenAchievement

◆ m_xt002DoorsGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_xt002DoorsGUID

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ m_yoggsaronBrainGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_yoggsaronBrainGUID

Referenced by GetGuidData(), and OnCreatureCreate().

◆ m_yoggsaronDoorsGUID

ObjectGuid instance_ulduar::instance_ulduar_InstanceMapScript::m_yoggsaronDoorsGUID

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ normalChestPosition

Position instance_ulduar::instance_ulduar_InstanceMapScript::normalChestPosition = { 1967.152588f, -204.188461f, 432.686951f, 5.50957f }
102{ 1967.152588f, -204.188461f, 432.686951f, 5.50957f };

Referenced by SpawnHodirChests().

◆ triggerAncientGatePosition

const Position instance_ulduar::instance_ulduar_InstanceMapScript::triggerAncientGatePosition = { 1883.65f, 269.272f, 418.406f }
139{ 1883.65f, 269.272f, 418.406f };

Referenced by SetData().


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