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
41 : InstanceScript(pMap)
42 {
43 Initialize();
45 // 0: 10 man difficulty
46 // 1: 25 man difficulty
47 m_difficulty = (pMap->Is25ManRaid() ? 0 : 1);
48 };
#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:146
int m_difficulty
Definition instance_ulduar.cpp:53

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.

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

175 {
176 packet.Worldstates.reserve(2);
178 packet.Worldstates.emplace_back(WORLD_STATE_ULDUAR_ALGALON_DESPAWN_TIMER, std::min<int32>(m_algalonTimer, 60));
179 }
@ 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:135

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.

1046 {
1047 switch (type)
1048 {
1049 case TYPE_LEVIATHAN:
1050 case TYPE_IGNIS:
1051 case TYPE_RAZORSCALE:
1052 case TYPE_XT002:
1053 case TYPE_ASSEMBLY:
1054 case TYPE_KOLOGARN:
1055 case TYPE_AURIAYA:
1056 case TYPE_MIMIRON:
1057 case TYPE_HODIR:
1058 case TYPE_THORIM:
1059 case TYPE_FREYA:
1060 case TYPE_VEZAX:
1061 case TYPE_YOGGSARON:
1062 case TYPE_ALGALON:
1063 case TYPE_WATCHERS:
1064 return m_auiEncounter[type];
1065
1071
1072 case DATA_MAGE_BARRIER:
1073 return m_mageBarrier;
1074
1076 return m_unbrokenAchievement;
1077
1078 case DATA_CALL_TRAM:
1079 return m_mimironTramUsed;
1080 }
1081
1082 return 0;
1083 }
bool m_leviathanTowers[4]
Definition instance_ulduar.cpp:76
bool m_mimironTramUsed
Definition instance_ulduar.cpp:142
uint32 m_mageBarrier
Definition instance_ulduar.cpp:79
uint32 m_auiEncounter[MAX_ENCOUNTER]
Definition instance_ulduar.cpp:50
uint32 m_unbrokenAchievement
Definition instance_ulduar.cpp:78
@ 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.

921 {
922 switch (data)
923 {
924 // Bosses
925 case TYPE_LEVIATHAN:
926 return m_uiLeviathanGUID;
927 case TYPE_IGNIS:
928 return m_uiIgnisGUID;
929 case TYPE_RAZORSCALE:
930 return m_uiRazorscaleGUID;
931 case TYPE_XT002:
932 return m_uiXT002GUID;
933 case TYPE_KOLOGARN:
934 return m_uiKologarnGUID;
935 case TYPE_AURIAYA:
936 return m_uiAuriayaGUID;
937 case TYPE_MIMIRON:
938 return m_uiMimironGUID;
939 case TYPE_HODIR:
940 return m_uiHodirGUID;
941 case TYPE_THORIM:
942 return m_uiThorimGUID;
943 case TYPE_FREYA:
944 return m_uiFreyaGUID;
945 case TYPE_VEZAX:
946 return m_uiVezaxGUID;
947 case TYPE_YOGGSARON:
948 return m_uiYoggSaronGUID;
949 case TYPE_ALGALON:
950 return m_uiAlgalonGUID;
952 return m_auiAssemblyGUIDs[0];
953 case DATA_MOLGEIM:
954 return m_auiAssemblyGUIDs[1];
955 case DATA_BRUNDIR:
956 return m_auiAssemblyGUIDs[2];
957
958 // Flame Leviathan
960 return m_RepairSGUID[0];
962 return m_RepairSGUID[1];
964 return m_lightningWalls[0];
966 return m_lightningWalls[1];
969
970 // Razorscales Harpoon Fire State GUIDs
975 return m_RazorscaleHarpoonFireStateGUID[data - 200];
976
977 // XT-002
978 case GO_XT002_DOORS:
979 return m_xt002DoorsGUID;
980 // XT-002
982 return KologarnDoorGUID;
983 // Thorim
990
991 // Hodir chests
995 return m_hodirNormalChest;
996
997 // Freya Elders
1001 return m_FreyaElder[data - NPC_ELDER_IRONBRANCH];
1002
1003 // Mimiron's first vehicle (spawned by default)
1006 case DATA_MIMIRON_VX001:
1007 return m_MimironVX001guid;
1008 case DATA_MIMIRON_ACU:
1009 return m_MimironACUguid;
1013 return m_MimironDoor[data - 311];
1014
1015 // Yogg-Saron
1017 return m_yoggsaronDoorsGUID;
1018 case NPC_SARA:
1019 return m_saraGUID;
1021 return m_yoggsaronBrainGUID;
1022
1023 // Algalon the Observer
1025 return m_algalonSigilDoorGUID[0];
1027 return m_algalonSigilDoorGUID[1];
1029 return m_algalonSigilDoorGUID[2];
1031 return m_algalonFloorGUID[0];
1033 return m_algalonFloorGUID[1];
1035 return m_algalonUniverseGUID;
1037 return m_algalonTrapdoorGUID;
1040 }
1041
1042 return ObjectGuid::Empty;
1043 }
static ObjectGuid const Empty
Definition ObjectGuid.h:120
ObjectGuid m_MimironDoor[3]
Definition instance_ulduar.cpp:114
ObjectGuid m_uiFreyaGUID
Definition instance_ulduar.cpp:66
ObjectGuid m_lightningWalls[2]
Definition instance_ulduar.cpp:75
ObjectGuid m_uiAlgalonGUID
Definition instance_ulduar.cpp:69
ObjectGuid m_uiMimironGUID
Definition instance_ulduar.cpp:63
ObjectGuid m_yoggsaronDoorsGUID
Definition instance_ulduar.cpp:126
ObjectGuid m_algalonFloorGUID[2]
Definition instance_ulduar.cpp:130
ObjectGuid m_algalonTrapdoorGUID
Definition instance_ulduar.cpp:132
ObjectGuid m_saraGUID
Definition instance_ulduar.cpp:124
ObjectGuid m_brannBronzebeardAlgGUID
Definition instance_ulduar.cpp:133
ObjectGuid m_RazorscaleHarpoonFireStateGUID[4]
Definition instance_ulduar.cpp:82
ObjectGuid m_FreyaElder[3]
Definition instance_ulduar.cpp:120
ObjectGuid m_xt002DoorsGUID
Definition instance_ulduar.cpp:85
ObjectGuid m_MimironLeviathanMKIIguid
Definition instance_ulduar.cpp:115
ObjectGuid m_uiIgnisGUID
Definition instance_ulduar.cpp:57
ObjectGuid m_RepairSGUID[2]
Definition instance_ulduar.cpp:74
ObjectGuid m_uiKologarnGUID
Definition instance_ulduar.cpp:61
ObjectGuid m_uiVezaxGUID
Definition instance_ulduar.cpp:67
ObjectGuid m_uiYoggSaronGUID
Definition instance_ulduar.cpp:68
ObjectGuid m_algalonSigilDoorGUID[3]
Definition instance_ulduar.cpp:129
ObjectGuid m_yoggsaronBrainGUID
Definition instance_ulduar.cpp:125
ObjectGuid m_uiThorimGUID
Definition instance_ulduar.cpp:65
ObjectGuid m_hodirNormalChest
Definition instance_ulduar.cpp:99
ObjectGuid m_MimironACUguid
Definition instance_ulduar.cpp:117
ObjectGuid m_MimironVX001guid
Definition instance_ulduar.cpp:116
ObjectGuid m_auiAssemblyGUIDs[3]
Definition instance_ulduar.cpp:60
ObjectGuid m_uiLeviathanGUID
Definition instance_ulduar.cpp:56
ObjectGuid KologarnDoorGUID
Definition instance_ulduar.cpp:88
ObjectGuid m_uiHodirGUID
Definition instance_ulduar.cpp:64
ObjectGuid m_uiAuriayaGUID
Definition instance_ulduar.cpp:62
ObjectGuid m_leviathanDoorsGUID
Definition instance_ulduar.cpp:72
ObjectGuid m_uiRazorscaleGUID
Definition instance_ulduar.cpp:58
ObjectGuid m_algalonUniverseGUID
Definition instance_ulduar.cpp:131
ObjectGuid m_uiXT002GUID
Definition instance_ulduar.cpp:59
ObjectGuid m_thorimGameobjectsGUID[5]
Definition instance_ulduar.cpp:95
ObjectGuid m_hodirHardmodeChest
Definition instance_ulduar.cpp:100
@ 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.

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

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.

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

313 {
314 switch (creature->GetEntry())
315 {
316 case NPC_LEVIATHAN:
317 m_uiLeviathanGUID = creature->GetGUID();
318 break;
319 case NPC_IGNIS:
320 m_uiIgnisGUID = creature->GetGUID();
321 break;
322 case NPC_RAZORSCALE:
323 m_uiRazorscaleGUID = creature->GetGUID();
324 break;
325 case NPC_XT002:
326 m_uiXT002GUID = creature->GetGUID();
327 break;
328 case NPC_STEELBREAKER:
329 m_auiAssemblyGUIDs[0] = creature->GetGUID();
330 break;
331 case NPC_MOLGEIM:
332 m_auiAssemblyGUIDs[1] = creature->GetGUID();
333 break;
334 case NPC_BRUNDIR:
335 m_auiAssemblyGUIDs[2] = creature->GetGUID();
336 break;
337 case NPC_KOLOGARN:
338 m_uiKologarnGUID = creature->GetGUID();
339 if (GetData(TYPE_KOLOGARN) == DONE)
340 {
341 creature->SetDisableGravity(true);
342 creature->SetPosition(creature->GetHomePosition());
344 creature->StopMovingOnCurrentPos();
345 }
346 break;
347 case NPC_AURIAYA:
348 m_uiAuriayaGUID = creature->GetGUID();
349 break;
350 case NPC_MIMIRON:
351 m_uiMimironGUID = creature->GetGUID();
352 break;
353 case NPC_HODIR:
354 m_uiHodirGUID = creature->GetGUID();
356 {
358 }
359 break;
360 case NPC_THORIM:
361 m_uiThorimGUID = creature->GetGUID();
362 break;
363 case NPC_FREYA:
364 m_uiFreyaGUID = creature->GetGUID();
365 break;
366 case NPC_VEZAX:
367 m_uiVezaxGUID = creature->GetGUID();
368 break;
369 case NPC_YOGGSARON:
370 m_uiYoggSaronGUID = creature->GetGUID();
371 break;
372 case NPC_ALGALON:
373 m_uiAlgalonGUID = creature->GetGUID();
374
375 if (!m_algalonTimer)
376 creature->DespawnOrUnsummon();
377 break;
379 {
380 if (creature->GetPositionX() > 595 )
382 else if (creature->GetPositionX() > 585 )
384 else if (creature->GetPositionX() > 575 )
386 else
388 }
389 break;
392 break;
394 m_MimironVX001guid = creature->GetGUID();
395 break;
396 case NPC_MIMIRON_ACU:
397 m_MimironACUguid = creature->GetGUID();
398 break;
402 m_FreyaElder[creature->GetEntry() - NPC_ELDER_IRONBRANCH] = creature->GetGUID();
403 break;
404 case NPC_SARA:
405 m_saraGUID = creature->GetGUID();
406 break;
408 m_yoggsaronBrainGUID = creature->GetGUID();
409 break;
412 break;
415 break;
424 algalon->AI()->JustSummoned(creature);
425 break;
426 }
427 }
@ 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:1971
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:3222
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:3171
void DespawnOrUnsummon(Milliseconds msTimeToDespawn, Seconds forcedRespawnTimer)
Definition Creature.cpp:2183
Difficulty GetDifficulty() const
Definition Map.h:290
uint32 GetEntry() const
Definition Object.h:115
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:112
void StopMovingOnCurrentPos()
Definition Unit.cpp:16741
float GetPositionX() const
Definition Position.h:121
void SpawnHodirChests(Difficulty diff, Creature *hodir)
Definition instance_ulduar.cpp:241
ObjectGuid m_brannBronzebeardBaseCamp
Definition instance_ulduar.cpp:134
uint32 GetData(uint32 type) const override
Definition instance_ulduar.cpp:1045
@ 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.

430 {
431 switch (creature->GetEntry())
432 {
434 if (m_brannBronzebeardAlgGUID == creature->GetGUID())
436 break;
437 }
438 }
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.

447 {
448 switch (gameObject->GetEntry())
449 {
450 // Flame Leviathan
452 {
453 if (m_RepairSGUID[0])
454 m_RepairSGUID[1] = gameObject->GetGUID();
455 else
456 m_RepairSGUID[0] = gameObject->GetGUID();
457 break;
458 }
460 m_lightningWalls[0] = gameObject->GetGUID();
462 break;
464 m_lightningWalls[1] = gameObject->GetGUID();
465 break;
468 m_leviathanVisualTowers[3][0] = gameObject->GetGUID();
469 break;
472 m_leviathanVisualTowers[0][0] = gameObject->GetGUID();
473 break;
476 m_leviathanVisualTowers[2][0] = gameObject->GetGUID();
477 break;
480 m_leviathanVisualTowers[1][0] = gameObject->GetGUID();
481 break;
484 m_leviathanVisualTowers[3][1] = gameObject->GetGUID();
485 break;
488 m_leviathanVisualTowers[0][1] = gameObject->GetGUID();
489 break;
492 m_leviathanVisualTowers[2][1] = gameObject->GetGUID();
493 break;
496 m_leviathanVisualTowers[1][1] = gameObject->GetGUID();
497 break;
501 m_leviathanDoorsGUID = gameObject->GetGUID();
502 break;
503 // XT-002, Kologarn, Assembly of Iron
504 case GO_XT002_DOORS:
505 m_xt002DoorsGUID = gameObject->GetGUID();
506 break;
508 KologarnDoorGUID = gameObject->GetGUID();
509 break;
512 break;
514 m_assemblyDoorsGUID = gameObject->GetGUID();
515 break;
517 m_archivumDoorsGUID = gameObject->GetGUID();
519 break;
520 // Thorim
523 break;
524 case GO_ARENA_LEVER:
526 break;
527 case GO_ARENA_FENCE:
529 break;
532 break;
535 break;
536 // Yogg-Saron
538 m_yoggsaronDoorsGUID = gameObject->GetGUID();
539 break;
540 case GO_KEEPERS_GATE:
543
544 m_keepersgateGUID = gameObject->GetGUID();
545 break;
546 // Mimiron, Hodir, Vezax
548 gameObject->EnableCollision(false);
549 break;
551 m_MimironDoor[0] = gameObject->GetGUID();
552 break;
554 m_MimironDoor[1] = gameObject->GetGUID();
555 break;
557 m_MimironDoor[2] = gameObject->GetGUID();
558 break;
560 case GO_HODIR_DOOR:
561 if (GetData(TYPE_HODIR) == DONE)
562 if (gameObject->GetGoState() != GO_STATE_ACTIVE )
563 {
564 gameObject->SetLootState(GO_READY);
565 gameObject->UseDoorOrButton(0, false);
566 }
567 break;
568 case GO_VEZAX_DOOR:
569 if (GetData(TYPE_VEZAX) == DONE )
570 if (gameObject->GetGoState() != GO_STATE_ACTIVE )
571 {
572 gameObject->SetLootState(GO_READY);
573 gameObject->UseDoorOrButton(0, false);
574 }
575 break;
576 case GO_SNOW_MOUND:
577 gameObject->EnableCollision(false);
578 break;
579 // Mimiron Tram
580 case GO_MIMIRON_TRAM:
581 if (GetData(TYPE_MIMIRON) == DONE)
582 m_mimironTramUsed = true;
583 m_mimironTramGUID = gameObject->GetGUID();
584 break;
587 break;
589 m_mimironActivateTramGUID = gameObject->GetGUID();
590 break;
592 m_mimironCallTramCenterGUID = gameObject->GetGUID();
593 break;
596 break;
599 break;
602 break;
603 // Algalon the Observer
606 if (m_algalonTimer)
608 break;
610 m_algalonSigilDoorGUID[0] = gameObject->GetGUID();
611 if (m_algalonTimer)
612 gameObject->SetGoState(GO_STATE_ACTIVE);
613 break;
615 m_algalonSigilDoorGUID[1] = gameObject->GetGUID();
616 if (m_algalonTimer)
617 gameObject->SetGoState(GO_STATE_ACTIVE);
618 break;
620 m_algalonSigilDoorGUID[2] = gameObject->GetGUID();
621 break;
623 m_algalonFloorGUID[0] = gameObject->GetGUID();
624 break;
626 m_algalonFloorGUID[1] = gameObject->GetGUID();
627 break;
629 m_algalonUniverseGUID = gameObject->GetGUID();
630 break;
632 m_algalonTrapdoorGUID = gameObject->GetGUID();
633 break;
634 // Herbs
635 case 191019: // Adder's Tongue
636 case 190176: // Frost Lotus
637 case 190171: // Lichbloom
638 case 190170: // Talandra's Rose
639 case 189973: // Goldclover
640 if (GetData(TYPE_FREYA) == DONE)
641 gameObject->SetRespawnTime(7 * DAY);
642 break;
643 }
644 }
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:108
ObjectGuid m_assemblyDoorsGUID
Definition instance_ulduar.cpp:91
void OpenIfDone(uint32 encounter, GameObject *go, GOState state)
Definition instance_ulduar.cpp:440
ObjectGuid m_mimironActivateTramGUID
Definition instance_ulduar.cpp:106
ObjectGuid m_mimironTramGUID
Definition instance_ulduar.cpp:105
ObjectGuid m_archivumDoorsGUID
Definition instance_ulduar.cpp:92
ObjectGuid m_mimironCallTramCenterGUID
Definition instance_ulduar.cpp:110
ObjectGuid m_mimironTramRocketBoosterGUID
Definition instance_ulduar.cpp:107
ObjectGuid m_keepersgateGUID
Definition instance_ulduar.cpp:143
ObjectGuid m_mimironTramTurnaround2GUID
Definition instance_ulduar.cpp:109
ObjectGuid m_mimironCallTramMimironGUID
Definition instance_ulduar.cpp:111
ObjectGuid m_leviathanVisualTowers[4][2]
Definition instance_ulduar.cpp:73
@ 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.

182 {
183 // mimiron tram:
185 {
186 player->UpdateVisibilityOf(MimironTram);
187 if (StaticTransport* t = MimironTram->ToStaticTransport())
188 {
190 if (!go->GetTransport())
191 t->AddPassenger(go, true);
193 if (!go->GetTransport())
194 t->AddPassenger(go, true);
195 }
196 }
197
199 {
201 if (!algalon)
202 return;
203
204 if (m_algalonTimer <= 60)
205 {
207 algalon->AI()->DoAction(ACTION_INIT_ALGALON);
208 }
209 else // if (m_algalonTimer = TIMER_ALGALON_TO_SUMMON)
210 {
212 algalon->SetImmuneToPC(false);
213 }
214 }
215 }
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:212
void SetImmuneToPC(bool apply, bool keepCombat=false)
Definition Unit.cpp:13653
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.

1086 {
1087 // Feeds on Tears achievement
1088 if (unit->IsPlayer())
1089 {
1092 algalon->AI()->DoAction(ACTION_FEEDS_ON_TEARS_FAILED);
1093 }
1094 else if (unit->IsCreature() && unit->GetAreaId() == 4656 /*Conservatory of Life*/)
1095 {
1097 {
1098 DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, 21597 /*CON-SPEED-ATORY_TIMED_CRITERIA*/);
1100 SaveToDB();
1101 }
1102 }
1103
1104 // achievement Champion/Conqueror of Ulduar
1105 if (unit->IsPlayer())
1106 for (uint8 i = 0; i <= 12; ++i)
1107 {
1108 bool go = false;
1109 if (i == TYPE_LEVIATHAN)
1110 {
1112 if (c->IsInCombat())
1113 go = true;
1114 }
1115 else
1116 go = (m_auiEncounter[i] == IN_PROGRESS);
1117
1118 if (go && (C_of_Ulduar_MASK & (1 << i)) == 0)
1119 {
1120 C_of_Ulduar_MASK |= (1 << i);
1121 SaveToDB();
1122 }
1123 }
1124 }
@ 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:200
bool IsCreature() const
Definition Object.h:204
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, 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
441 {
442 if (GetData(encounter) == DONE)
443 go->SetGoState(state);
444 }

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

Referenced by OnGameObjectCreate().

◆ ProcessEvent()

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

Reimplemented from ZoneScript.

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

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.

1127 {
1128 data >> m_auiEncounter[0];
1129 data >> m_auiEncounter[1];
1130 data >> m_auiEncounter[2];
1131 data >> m_auiEncounter[3];
1132 data >> m_auiEncounter[4];
1133 data >> m_auiEncounter[5];
1134 data >> m_auiEncounter[6];
1135 data >> m_auiEncounter[7];
1136 data >> m_auiEncounter[8];
1137 data >> m_auiEncounter[9];
1138 data >> m_auiEncounter[10];
1139 data >> m_auiEncounter[11];
1140 data >> m_auiEncounter[12];
1141 data >> m_auiEncounter[13];
1142 data >> m_auiEncounter[14];
1143 data >> m_conspeedatoryAttempt;
1144 data >> m_unbrokenAchievement;
1145 data >> m_algalonTimer;
1146
1149
1151 {
1154 }
1155
1156 data >> C_of_Ulduar_MASK;
1157 data >> m_mageBarrier;
1158
1159 for (uint8 i = 0; i < (MAX_ENCOUNTER - 1); ++i)
1160 {
1161 if (m_auiEncounter[i] == IN_PROGRESS)
1162 {
1164 }
1165 }
1166 }
@ 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
647 {
648 if (boss)
649 {
650 switch (boss)
651 {
652 case TYPE_HODIR:
653 if (hmHodir)
654 {
656 {
657 go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
658 go->SetLootRecipient(instance);
659 }
660 }
662 {
663 go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
664 go->SetLootRecipient(instance);
665 }
666 break;
667 }
668 }
669 }
@ 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.

672 {
673 switch (type)
674 {
675 case TYPE_LEVIATHAN:
676 m_auiEncounter[type] = data;
677 if (data == DONE)
678 {
679 Map::PlayerList const& pList = instance->GetPlayers();
680 for (Map::PlayerList::const_iterator itr = pList.begin(); itr != pList.end(); ++itr)
681 {
682 if (Creature* vehicleCreature = itr->GetSource()->GetVehicleCreatureBase())
683 {
684 vehicleCreature->DespawnOrUnsummon();
685 }
686 }
687 }
688 break;
689 case TYPE_IGNIS:
690 case TYPE_RAZORSCALE:
691 case TYPE_XT002:
692 case TYPE_AURIAYA:
693 case TYPE_VEZAX:
694 case TYPE_YOGGSARON:
695 case TYPE_KOLOGARN:
696 m_auiEncounter[type] = data;
697 break;
698 case TYPE_ASSEMBLY:
700 go->SetGoState(data == IN_PROGRESS ? GO_STATE_READY : GO_STATE_ACTIVE);
702 go->SetGoState(data == DONE ? GO_STATE_ACTIVE : GO_STATE_READY);
703
704 m_auiEncounter[type] = data;
705 break;
706 case TYPE_MIMIRON:
707 case TYPE_HODIR:
708 case TYPE_THORIM:
709 case TYPE_FREYA:
710 m_auiEncounter[type] = data;
712 {
713 scheduler.Schedule(45s, [this](TaskContext /*context*/)
714 {
716 {
717 go->RemoveGameObjectFlag(GO_FLAG_LOCKED);
718 if (Creature* trigger = instance->SummonCreature(NPC_ANCIENT_GATE_WORLD_TRIGGER, triggerAncientGatePosition, nullptr, 10*IN_MILLISECONDS))
719 {
720 trigger->AI()->Talk(EMOTE_ANCIENT_GATE_UNLOCKED);
721 }
722 }
723 });
724 }
725 if (type == TYPE_MIMIRON && data == IN_PROGRESS) // after reaching him without tram and starting the fight
726 m_mimironTramUsed = true;
727 if (GetData(TYPE_HODIR) == DONE)
729 break;
732 {
733 hmHodir = false;
734 go->Delete();
736 }
737 break;
738 case TYPE_WATCHERS:
739 m_auiEncounter[type] |= 1 << data;
740 [[fallthrough]];
743 sara->AI()->DoAction(ACTION_SARA_UPDATE_SUMMON_KEEPERS);
744 break;
746 m_mageBarrier = data;
747 break;
748
753 {
755 for (uint8 i = 0; i < 2; ++i)
756 {
758 {
759 gameObject->SetGoState(GO_STATE_ACTIVE);
760 }
761 }
762 return;
763 }
764
767 return;
770 SaveToDB();
771 return;
775 m_algalonTimer = 60;
777 SaveToDB();
778 return;
784 SaveToDB();
785 return;
786 case TYPE_ALGALON:
787 m_auiEncounter[type] = data;
789 {
790 go->SetGoState(data != IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY);
791 go->EnableCollision(false);
792 }
794 {
795 go->SetGoState(data != IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY);
796 go->EnableCollision(false);
797 }
799 {
800 go->SetGoState(data == IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY);
801 go->EnableCollision(false);
802 }
804 {
805 go->SetGoState(data == IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY);
806 go->EnableCollision(false);
807 }
809 {
810 go->SetGoState(data == IN_PROGRESS ? GO_STATE_ACTIVE : GO_STATE_READY);
811 go->EnableCollision(false);
812 }
813
814 break;
815
816 // Achievement
820 return;
821 case DATA_CALL_TRAM:
823 if (StaticTransport* t = MimironTram->ToStaticTransport())
824 {
825 if (data == 0 && t->GetGoState() == GO_STATE_ACTIVE && t->GetPathProgress() == t->GetPauseTime())
826 {
827 MimironTram->SetGoState(GO_STATE_READY);
829 rocketBooster->SetGoState(GO_STATE_ACTIVE);
831 activateTramButton->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
832 if (GameObject* callTramCenterButton = instance->GetGameObject(m_mimironCallTramCenterGUID))
833 callTramCenterButton->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
834 scheduler.Schedule(30s, [this](TaskContext /*context*/)
835 {
837 turnaround1->UseDoorOrButton();
839 rocketBooster->SetGoState(GO_STATE_READY);
840 }).Schedule(60s, [this](TaskContext /*context*/)
841 {
843 activateTramButton->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
844 if (GameObject* callTramMimironButton = instance->GetGameObject(m_mimironCallTramMimironGUID))
845 callTramMimironButton->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
846 });
847 }
848 if (data == 1 && t->GetGoState() == GO_STATE_READY && t->GetPathProgress() == 0)
849 {
850 MimironTram->SetGoState(GO_STATE_ACTIVE);
852 rocketBooster->SetGoState(GO_STATE_ACTIVE);
854 activateTramButton->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
855 if (GameObject* callTramMimironButton = instance->GetGameObject(m_mimironCallTramMimironGUID))
856 callTramMimironButton->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
857 scheduler.Schedule(33s, [this](TaskContext /*context*/)
858 {
860 turnaround2->UseDoorOrButton();
862 rocketBooster->SetGoState(GO_STATE_READY);
863 }).Schedule(63s, [this](TaskContext /*context*/)
864 {
866 activateTramButton->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
867 if (GameObject* callTramCenterButton = instance->GetGameObject(m_mimironCallTramCenterGUID))
868 callTramCenterButton->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
869 });
870 }
871 }
872 break;
875 {
876 cr->TextEmote("Go to your vehicles!", nullptr, true);
877 }
878 break;
884 break;
885 }
886
887 // take care of herbs
888 if (type == TYPE_FREYA && data == DONE)
889 {
890 std::list<GameObject*> goList;
892 {
893 freya->GetGameObjectListWithEntryInGrid(goList, 191019 /*Adder's Tongue*/, 333.0f);
894 freya->GetGameObjectListWithEntryInGrid(goList, 190176 /*Frost Lotus*/, 333.0f);
895 freya->GetGameObjectListWithEntryInGrid(goList, 190171 /*Lichbloom*/, 333.0f);
896 freya->GetGameObjectListWithEntryInGrid(goList, 190170 /*Talandra's Rose*/, 333.0f);
897 freya->GetGameObjectListWithEntryInGrid(goList, 189973 /*Goldclover*/, 333.0f);
898
899 for (std::list<GameObject*>::const_iterator itr = goList.begin(); itr != goList.end(); ++itr)
900 (*itr)->SetRespawnTime(7 * DAY);
901 }
902 }
903
904 if (data == DONE || type == TYPE_LEVIATHAN || type == TYPE_WATCHERS)
905 SaveToDB();
906
907 if (type > TYPE_LEVIATHAN && type < TYPE_WATCHERS && data == IN_PROGRESS)
908 {
909 Map::PlayerList const& pList = instance->GetPlayers();
910 for (Map::PlayerList::const_iterator itr = pList.begin(); itr != pList.end(); ++itr)
911 {
912 if (Creature* vehicleCreature = itr->GetSource()->GetVehicleCreatureBase())
913 {
914 vehicleCreature->DespawnOrUnsummon();
915 }
916 }
917 }
918 }
@ 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:18799
void ProcessEvent(WorldObject *, uint32 eventId) override
Definition instance_ulduar.cpp:234
void SpawnLeviathanEncounterVehicles(uint8 mode)
Definition instance_ulduar.cpp:1300
void setChestsLootable(uint32 boss)
Definition instance_ulduar.cpp:646
ObjectGuid GetGuidData(uint32 data) const override
Definition instance_ulduar.cpp:920
@ 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
242 {
243 switch (diff)
244 {
245 case RAID_DIFFICULTY_10MAN_NORMAL: // 10 man chest
246 {
248 {
249 if (GameObject* go = hodir->SummonGameObject(
254 normalChestPosition.GetOrientation(), 0, 0, 0, 0, 0))
255 {
256 m_hodirNormalChest = go->GetGUID();
257 go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
258 }
259 }
261 {
262 if (GameObject* go = hodir->SummonGameObject(
267 hardChestPosition.GetOrientation(), 0, 0, 0, 0, 0))
268 {
269 m_hodirHardmodeChest = go->GetGUID();
270 go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
271 hmHodir = true;
272 }
273 }
274 break;
275 }
276 case RAID_DIFFICULTY_25MAN_NORMAL: // 25 man chest
277 {
279 {
280 if (GameObject* go = hodir->SummonGameObject(
285 normalChestPosition.GetOrientation(), 0, 0, 0, 0, 0))
286 {
287 m_hodirNormalChest = go->GetGUID();
288 go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
289 }
290 }
292 {
293 if (GameObject* go = hodir->SummonGameObject(
298 hardChestPosition.GetOrientation(), 0, 0, 0, 0, 0))
299 {
300 m_hodirHardmodeChest = go->GetGUID();
301 go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
302 hmHodir = true;
303 }
304 }
305 break;
306 }
307 default:
308 break;
309 }
310 }
@ 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:102
Position normalChestPosition
Definition instance_ulduar.cpp:101
@ 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)
1301{
1302 if (!_leviathanVehicles.empty())
1303 {
1304 for (ObjectGuid const& guid : _leviathanVehicles)
1305 {
1306 if (Creature* cr = instance->GetCreature(guid))
1307 {
1308 cr->DespawnOrUnsummon();
1309 }
1310 }
1311
1312 _leviathanVehicles.clear();
1313 }
1314
1315 if (mode < VEHICLE_POS_NONE)
1316 {
1317 for (uint8 i = 0; i < (instance->Is25ManRaid() ? 5 : 2); ++i)
1318 {
1320 {
1321 _leviathanVehicles.push_back(veh->GetGUID());
1322 }
1324 {
1325 _leviathanVehicles.push_back(veh->GetGUID());
1326 }
1328 {
1329 _leviathanVehicles.push_back(veh->GetGUID());
1330 }
1331 }
1332 }
1333}
Definition ObjectGuid.h:118
const Position vehiclePositions[30]
Definition instance_ulduar.cpp:1258
@ 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.

1178 {
1180
1181 if (_events.Empty())
1182 return;
1183
1184 _events.Update(diff);
1185 switch (_events.ExecuteEvent())
1186 {
1189 {
1190 return;
1191 }
1192
1193 SaveToDB();
1195 if (m_algalonTimer)
1196 {
1197 _events.Repeat(1min);
1198 return;
1199 }
1200
1203 algalon->AI()->DoAction(ACTION_DESPAWN_ALGALON);
1204 }
1205 }
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.

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

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 }
102{ 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 }
101{ 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 }
138{ 1883.65f, 269.272f, 418.406f };

Referenced by SetData().


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