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

Public Member Functions

 instance_halls_of_reflection_InstanceMapScript (Map *pMap)
 
void Initialize () override
 
bool IsEncounterInProgress () const override
 
void OnCreatureCreate (Creature *creature) override
 
void OnGameObjectCreate (GameObject *go) override
 
void SetData (uint32 type, uint32 data) override
 
uint32 GetData (uint32 type) const override
 
ObjectGuid GetGuidData (uint32 type) const override
 
void ReadSaveDataMore (std::istringstream &data) override
 
void WriteSaveDataMore (std::ostringstream &data) override
 
void OnUnitDeath (Unit *unit) override
 
void RandomizeCompositionsAndShow ()
 
void AddWave1 ()
 
void DoWipe1 ()
 
void Update (uint32 diff) override
 
- Public Member Functions inherited from InstanceScript
 InstanceScript (Map *map)
 
 ~InstanceScript () override
 
virtual void Initialize ()
 
virtual void Load (char const *data)
 
virtual void CreatureLooted (Creature *, LootType)
 
virtual std::string GetSaveData ()
 
void SaveToDB ()
 
virtual void Update (uint32)
 
virtual bool IsEncounterInProgress () const
 
void OnCreatureCreate (Creature *creature) override
 
void OnCreatureRemove (Creature *creature) override
 
void OnGameObjectCreate (GameObject *go) override
 
void OnGameObjectRemove (GameObject *go) override
 
ObjectGuid GetObjectGuid (uint32 type) const
 
ObjectGuid GetGuidData (uint32 type) const override
 
CreatureGetCreature (uint32 type)
 
GameObjectGetGameObject (uint32 type)
 
virtual void OnPlayerEnter (Player *)
 
virtual void OnPlayerAreaUpdate (Player *, uint32, uint32)
 
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 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 CheckAchievementCriteriaMeet (uint32, Player const *, Unit const *=nullptr, uint32=0)
 
virtual bool CheckRequiredBosses (uint32, Player const *=nullptr) const
 
void SetCompletedEncountersMask (uint32 newMask, bool save)
 
uint32 GetCompletedEncounterMask () const
 
void SendEncounterUnit (uint32 type, Unit *unit=nullptr, uint8 param1=0, uint8 param2=0)
 
virtual void FillInitialWorldStates (WorldPacket &)
 
uint32 GetEncounterCount () const
 
void MarkAreaTriggerDone (uint32 id)
 
void ResetAreaTriggerDone (uint32 id)
 
bool IsAreaTriggerDone (uint32 id) const
 
virtual void DoAction (int32)
 
- 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 OnCreatureCreate (Creature *)
 
virtual void OnCreatureRemove (Creature *)
 
virtual void OnGameObjectCreate (GameObject *)
 
virtual void OnGameObjectRemove (GameObject *)
 
virtual void OnUnitDeath (Unit *)
 
virtual void OnCreatureEvade (Creature *)
 
virtual ObjectGuid GetGuidData (uint32) const
 
virtual void SetGuidData (uint32, ObjectGuid)
 
virtual uint64 GetData64 (uint32) const
 
virtual void SetData64 (uint32, uint64)
 
virtual uint32 GetData (uint32) const
 
virtual void SetData (uint32, uint32)
 
virtual void ProcessEvent (WorldObject *, uint32)
 

Public Attributes

uint32 EncounterMask
 
TeamId TeamIdInInstance
 
ObjectGuid NPC_FalricGUID
 
ObjectGuid NPC_MarwynGUID
 
ObjectGuid NPC_LichKingIntroGUID
 
ObjectGuid NPC_LeaderIntroGUID
 
ObjectGuid NPC_GuardGUID
 
ObjectGuid NPC_UtherGUID
 
ObjectGuid NPC_LichKingGUID
 
ObjectGuid NPC_LeaderGUID
 
ObjectGuid NPC_IceWallTargetGUID [4]
 
ObjectGuid NPC_AltarBunnyGUID
 
ObjectGuid NPC_QuelDelarGUID
 
ObjectGuid NPC_ShipCaptainGUID
 
ObjectGuid GO_FrostmourneGUID
 
ObjectGuid GO_FrostmourneAltarGUID
 
ObjectGuid GO_FrontDoorGUID
 
ObjectGuid GO_ArthasDoorGUID
 
ObjectGuid GO_CaveInGUID
 
ObjectGuid GO_DoorBeforeThroneGUID
 
ObjectGuid GO_DoorAfterThroneGUID
 
ObjectGuid GO_IceWallGUID
 
ObjectGuid NPC_TrashGUID [NUM_OF_TRASH]
 
bool TrashActive [NUM_OF_TRASH]
 
uint8 TrashCounter
 
uint32 chosenComposition [8][5]
 
uint8 WaveNumber
 
uint32 NextWaveTimer
 
uint16 CheckPlayersTimer
 
uint16 ResumeFirstEventTimer
 
uint8 ResumeFirstEventStep
 
bool bFinished5Waves
 
uint8 reqKillCount
 
bool IsDuringLKFight
 
uint32 BatteredHiltStatus
 
ObjectGuid NPC_FrostswornGeneralGUID
 
ObjectGuid NPC_SpiritualReflectionGUID [5]
 
uint32 outroTimer
 
uint8 outroStep
 
MotionTransportT1
 
- Public Attributes inherited from InstanceScript
Mapinstance
 

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 AddObject (Creature *obj, bool add)
 
void AddObject (GameObject *obj, bool add)
 
void AddObject (WorldObject *obj, uint32 type, bool add)
 
void AddDoor (GameObject *door, bool add)
 
void AddMinion (Creature *minion, bool add)
 
void UpdateDoorState (GameObject *door)
 
void UpdateMinionState (Creature *minion, EncounterState state)
 
bool ReadSaveDataHeaders (std::istringstream &data)
 
void ReadSaveDataBossStates (std::istringstream &data)
 
void ReadSavePersistentData (std::istringstream &data)
 
virtual void ReadSaveDataMore (std::istringstream &)
 
void WriteSaveDataHeaders (std::ostringstream &data)
 
void WriteSaveDataBossStates (std::ostringstream &data)
 
void WritePersistentData (std::ostringstream &data)
 
virtual void WriteSaveDataMore (std::ostringstream &)
 

Detailed Description

Constructor & Destructor Documentation

◆ instance_halls_of_reflection_InstanceMapScript()

instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::instance_halls_of_reflection_InstanceMapScript ( Map pMap)
inline
138 : InstanceScript(pMap)
139 {
141 };
#define DataHeader
Definition: blackrock_depths.h:23
Definition: InstanceScript.h:140
void SetHeaders(std::string const &dataHeaders)
Definition: InstanceScript.cpp:137

References DataHeader, and InstanceScript::SetHeaders().

Member Function Documentation

◆ AddWave1()

void instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::AddWave1 ( )
inline
814 {
815 if (WaveNumber >= 10)
816 return;
817
818 ++WaveNumber;
819 if (WaveNumber >= 6)
820 bFinished5Waves = true;
821
825
826 // some of them could go back to spawn due to vanish, etc.
827 // on activating next wave make those attack again
828 for (uint8 i = 0; i < NUM_OF_TRASH; ++i)
829 if (TrashActive[i])
831 if (c->IsAlive() && !c->IsInCombat())
832 c->AI()->DoAction(1);
833
834 if (WaveNumber == 5 || WaveNumber == 10)
835 {
836 NextWaveTimer = 0;
837 if (WaveNumber == 5)
838 {
840 {
841 if (falric->IsAlive())
842 falric->AI()->DoAction(1);
843 else
844 NextWaveTimer = 1;
845 }
846 }
847 else
848 {
850 if (marwyn->IsAlive()) // should always be true, but just in case
851 marwyn->AI()->DoAction(1);
852 }
853 }
854 else
855 {
856 NextWaveTimer = 150000;
857
858 uint8 num_to_activate = 5;
859 if (WaveNumber <= 2)
860 num_to_activate = 3;
861 else if (WaveNumber <= 4)
862 num_to_activate = 4;
863
864 reqKillCount += num_to_activate;
865
866 for (uint8 i = 0; i < num_to_activate; ++i)
867 {
868 uint32 entry = chosenComposition[WaveNumber - (WaveNumber > 5 ? 2 : 1)][i];
869 bool forward = !!urand(0, 1);
870 for (int8 j = (forward ? 0 : NUM_OF_TRASH - 1); (forward ? j<NUM_OF_TRASH : j >= 0); (forward ? ++j : --j))
871 if (!TrashActive[j])
873 if (c->GetEntry() == entry)
874 {
875 TrashActive[j] = true;
876 c->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
877 c->SetImmuneToAll(false);
878 c->AI()->DoAction(1);
879 break;
880 }
881 }
882 }
883 }
std::uint8_t uint8
Definition: Define.h:110
std::uint32_t uint32
Definition: Define.h:108
std::int8_t int8
Definition: Define.h:106
uint32 urand(uint32 min, uint32 max)
Definition: Random.cpp:44
@ UNIT_FLAG_NOT_SELECTABLE
Definition: Unit.h:473
#define NUM_OF_TRASH
Definition: halls_of_reflection.h:122
@ WORLD_STATE_HOR_COUNTER
Definition: halls_of_reflection.h:110
@ WORLD_STATE_HOR_WAVE_COUNT
Definition: halls_of_reflection.h:111
Definition: Creature.h:46
void HandleGameObject(ObjectGuid guid, bool open, GameObject *go=nullptr)
Definition: InstanceScript.cpp:109
Map * instance
Definition: InstanceScript.h:146
void DoUpdateWorldState(uint32 worldstateId, uint32 worldstateValue)
Definition: InstanceScript.cpp:519
Creature * GetCreature(ObjectGuid const guid)
Definition: Map.cpp:3293
bool bFinished5Waves
Definition: instance_halls_of_reflection.cpp:175
uint8 reqKillCount
Definition: instance_halls_of_reflection.cpp:176
ObjectGuid NPC_FalricGUID
Definition: instance_halls_of_reflection.cpp:145
bool TrashActive[NUM_OF_TRASH]
Definition: instance_halls_of_reflection.cpp:167
ObjectGuid NPC_TrashGUID[NUM_OF_TRASH]
Definition: instance_halls_of_reflection.cpp:166
ObjectGuid NPC_MarwynGUID
Definition: instance_halls_of_reflection.cpp:146
uint8 WaveNumber
Definition: instance_halls_of_reflection.cpp:170
ObjectGuid GO_FrontDoorGUID
Definition: instance_halls_of_reflection.cpp:159
uint32 chosenComposition[8][5]
Definition: instance_halls_of_reflection.cpp:169
uint32 NextWaveTimer
Definition: instance_halls_of_reflection.cpp:171

References bFinished5Waves, chosenComposition, InstanceScript::DoUpdateWorldState(), Map::GetCreature(), GO_FrontDoorGUID, InstanceScript::HandleGameObject(), InstanceScript::instance, NextWaveTimer, NPC_FalricGUID, NPC_MarwynGUID, NPC_TrashGUID, NUM_OF_TRASH, reqKillCount, TrashActive, UNIT_FLAG_NOT_SELECTABLE, urand(), WaveNumber, WORLD_STATE_HOR_COUNTER, and WORLD_STATE_HOR_WAVE_COUNT.

Referenced by SetData(), and Update().

◆ DoWipe1()

void instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::DoWipe1 ( )
inline
886 {
887 if (!WaveNumber)
888 return;
889
893
895 WaveNumber = 0;
896 NextWaveTimer = 0;
897 memset(&chosenComposition, 0, sizeof(chosenComposition));
898
899 for (uint8 i = 0; i < NUM_OF_TRASH; ++i)
900 if (TrashActive[i])
902 {
903 c->GetThreatMgr().ClearAllThreat();
904 c->CombatStop(true);
905 c->InterruptNonMeleeSpells(true);
906 c->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
907 c->SetImmuneToAll(true);
908 c->Respawn(true);
909 c->UpdatePosition(c->GetHomePosition(), true);
910 c->StopMovingOnCurrentPos();
911 }
912 memset(&TrashActive, 0, sizeof(TrashActive));
913
915 falric->AI()->EnterEvadeMode();
917 marwyn->AI()->EnterEvadeMode();
918
921 reqKillCount = 0;
922 }
uint8 TrashCounter
Definition: instance_halls_of_reflection.cpp:168
uint8 ResumeFirstEventStep
Definition: instance_halls_of_reflection.cpp:174
uint16 ResumeFirstEventTimer
Definition: instance_halls_of_reflection.cpp:173

References chosenComposition, InstanceScript::DoUpdateWorldState(), Map::GetCreature(), GO_FrontDoorGUID, InstanceScript::HandleGameObject(), InstanceScript::instance, NextWaveTimer, NPC_FalricGUID, NPC_MarwynGUID, NPC_TrashGUID, NUM_OF_TRASH, reqKillCount, ResumeFirstEventStep, ResumeFirstEventTimer, TrashActive, TrashCounter, UNIT_FLAG_NOT_SELECTABLE, WaveNumber, WORLD_STATE_HOR_COUNTER, and WORLD_STATE_HOR_WAVE_COUNT.

Referenced by SetData(), and Update().

◆ GetData()

uint32 instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::GetData ( uint32  type) const
inlineoverridevirtual

Reimplemented from ZoneScript.

666 {
667 switch(type)
668 {
669 case DATA_INTRO:
670 case DATA_FALRIC:
671 case DATA_MARWYN:
673 case DATA_LK_INTRO:
674 case DATA_LICH_KING:
675 return EncounterMask & (1 << type);
676 case DATA_WAVE_NUMBER:
677 return (uint32)WaveNumber;
679 return BatteredHiltStatus;
680 }
681
682 return 0;
683 }
@ DATA_FROSTSWORN_GENERAL
Definition: halls_of_reflection.h:40
@ DATA_LICH_KING
Definition: halls_of_reflection.h:42
@ DATA_MARWYN
Definition: halls_of_reflection.h:39
@ DATA_BATTERED_HILT
Definition: halls_of_reflection.h:43
@ DATA_FALRIC
Definition: halls_of_reflection.h:38
@ DATA_WAVE_NUMBER
Definition: halls_of_reflection.h:52
@ DATA_LK_INTRO
Definition: halls_of_reflection.h:41
@ DATA_INTRO
Definition: halls_of_reflection.h:37
uint32 BatteredHiltStatus
Definition: instance_halls_of_reflection.cpp:178
uint32 EncounterMask
Definition: instance_halls_of_reflection.cpp:143

References BatteredHiltStatus, DATA_BATTERED_HILT, DATA_FALRIC, DATA_FROSTSWORN_GENERAL, DATA_INTRO, DATA_LICH_KING, DATA_LK_INTRO, DATA_MARWYN, DATA_WAVE_NUMBER, EncounterMask, and WaveNumber.

◆ GetGuidData()

ObjectGuid instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::GetGuidData ( uint32  type) const
inlineoverridevirtual

Reimplemented from InstanceScript.

686 {
687 switch(type)
688 {
690 return NPC_GuardGUID;
693 case NPC_UTHER:
694 return NPC_UtherGUID;
695 case DATA_FALRIC:
696 return NPC_FalricGUID;
697 case DATA_MARWYN:
698 return NPC_MarwynGUID;
700 return NPC_LichKingGUID;
702 return NPC_LeaderGUID;
704 case NPC_ICE_WALL_TARGET+1:
705 case NPC_ICE_WALL_TARGET+2:
706 case NPC_ICE_WALL_TARGET+3:
708 case GO_FROSTMOURNE:
709 return GO_FrostmourneGUID;
710 case GO_ARTHAS_DOOR:
711 return GO_ArthasDoorGUID;
712 case GO_FRONT_DOOR:
713 return GO_FrontDoorGUID;
714 }
715
716 return ObjectGuid::Empty;
717 }
@ NPC_UTHER
Definition: culling_of_stratholme.h:56
@ NPC_SYLVANAS_PART2
Definition: forge_of_souls.h:41
@ GO_FRONT_DOOR
Definition: halls_of_reflection.h:93
@ GO_FROSTMOURNE
Definition: halls_of_reflection.h:91
@ GO_ARTHAS_DOOR
Definition: halls_of_reflection.h:94
@ NPC_DARK_RANGER_LORALEN
Definition: halls_of_reflection.h:68
@ NPC_LICH_KING_EVENT
Definition: halls_of_reflection.h:59
@ NPC_LICH_KING_BOSS
Definition: halls_of_reflection.h:60
@ NPC_ICE_WALL_TARGET
Definition: halls_of_reflection.h:81
static ObjectGuid const Empty
Definition: ObjectGuid.h:122
ObjectGuid GO_FrostmourneGUID
Definition: instance_halls_of_reflection.cpp:157
ObjectGuid NPC_LeaderGUID
Definition: instance_halls_of_reflection.cpp:152
ObjectGuid NPC_LichKingIntroGUID
Definition: instance_halls_of_reflection.cpp:147
ObjectGuid NPC_IceWallTargetGUID[4]
Definition: instance_halls_of_reflection.cpp:153
ObjectGuid NPC_UtherGUID
Definition: instance_halls_of_reflection.cpp:150
ObjectGuid NPC_GuardGUID
Definition: instance_halls_of_reflection.cpp:149
ObjectGuid GO_ArthasDoorGUID
Definition: instance_halls_of_reflection.cpp:160
ObjectGuid NPC_LichKingGUID
Definition: instance_halls_of_reflection.cpp:151

References DATA_FALRIC, DATA_MARWYN, ObjectGuid::Empty, GO_ARTHAS_DOOR, GO_ArthasDoorGUID, GO_FRONT_DOOR, GO_FrontDoorGUID, GO_FROSTMOURNE, GO_FrostmourneGUID, NPC_DARK_RANGER_LORALEN, NPC_FalricGUID, NPC_GuardGUID, NPC_ICE_WALL_TARGET, NPC_IceWallTargetGUID, NPC_LeaderGUID, NPC_LICH_KING_BOSS, NPC_LICH_KING_EVENT, NPC_LichKingGUID, NPC_LichKingIntroGUID, NPC_MarwynGUID, NPC_SYLVANAS_PART2, NPC_UTHER, and NPC_UtherGUID.

◆ Initialize()

void instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::Initialize ( )
inlineoverridevirtual

Reimplemented from InstanceScript.

188 {
189 EncounterMask = 0;
191 memset(&TrashActive, 0, sizeof(TrashActive));
192 TrashCounter = 0;
193 memset(&chosenComposition, 0, sizeof(chosenComposition));
194 WaveNumber = 0;
195 NextWaveTimer = 0;
196 CheckPlayersTimer = 5000;
199 bFinished5Waves = false;
200 reqKillCount = 0;
201 IsDuringLKFight = false;
203
204 outroTimer = 0;
205 outroStep = 0;
206 T1 = nullptr;
207 }
@ TEAM_NEUTRAL
Definition: SharedDefines.h:734
uint32 outroTimer
Definition: instance_halls_of_reflection.cpp:183
MotionTransport * T1
Definition: instance_halls_of_reflection.cpp:185
uint8 outroStep
Definition: instance_halls_of_reflection.cpp:184
TeamId TeamIdInInstance
Definition: instance_halls_of_reflection.cpp:144
bool IsDuringLKFight
Definition: instance_halls_of_reflection.cpp:177
uint16 CheckPlayersTimer
Definition: instance_halls_of_reflection.cpp:172

References BatteredHiltStatus, bFinished5Waves, CheckPlayersTimer, chosenComposition, EncounterMask, IsDuringLKFight, NextWaveTimer, outroStep, outroTimer, reqKillCount, ResumeFirstEventStep, ResumeFirstEventTimer, T1, TEAM_NEUTRAL, TeamIdInInstance, TrashActive, TrashCounter, and WaveNumber.

◆ IsEncounterInProgress()

bool instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::IsEncounterInProgress ( ) const
inlineoverridevirtual

Reimplemented from InstanceScript.

210 {
211 return (instance->HavePlayers() && WaveNumber) || IsDuringLKFight; // during LK fight npcs are active and will unset this variable
212 }
bool HavePlayers() const
Definition: Map.h:475

References Map::HavePlayers(), InstanceScript::instance, IsDuringLKFight, and WaveNumber.

◆ OnCreatureCreate()

void instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::OnCreatureCreate ( Creature creature)
inlineoverridevirtual

Reimplemented from InstanceScript.

215 {
217 {
218 Map::PlayerList const& players = instance->GetPlayers();
219 if (!players.IsEmpty())
220 for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
221 if (Player* p = itr->GetSource())
222 if (!p->IsGameMaster())
223 {
224 TeamIdInInstance = p->GetTeamId();
225 break;
226 }
227 }
228
229 switch(creature->GetEntry())
230 {
232 creature->SetVisible(false);
233 NPC_LeaderIntroGUID = creature->GetGUID();
235 creature->UpdateEntry(NPC_JAINA_PART1);
238 break;
240 creature->SetVisible(false);
241 NPC_GuardGUID = creature->GetGUID();
244 break;
245 case NPC_UTHER:
246 creature->SetVisible(false);
247 NPC_UtherGUID = creature->GetGUID();
248 creature->SetReactState(REACT_PASSIVE);
249 break;
251 creature->SetVisible(false);
252 NPC_LichKingIntroGUID = creature->GetGUID();
253 creature->SetReactState(REACT_PASSIVE);
255 break;
256 case NPC_FALRIC:
257 creature->SetVisible(false);
258 NPC_FalricGUID = creature->GetGUID();
260 break;
261 case NPC_MARWYN:
262 creature->SetVisible(false);
263 NPC_MarwynGUID = creature->GetGUID();
265 break;
267 case NPC_WAVE_FOOTMAN:
269 case NPC_WAVE_PRIEST:
270 case NPC_WAVE_MAGE:
272 NPC_TrashGUID[TrashCounter++] = creature->GetGUID();
273 if (!(EncounterMask & (1 << DATA_MARWYN)) && !creature->IsAlive())
274 creature->Respawn();
275 creature->SetVisible(false);
276 break;
278 if (!(EncounterMask & (1 << DATA_MARWYN)))
279 {
280 creature->SetVisible(false);
281 creature->SetReactState(REACT_PASSIVE);
282 }
284 break;
286 for (uint8 i = 0; i < 5; ++i)
288 {
289 NPC_SpiritualReflectionGUID[i] = creature->GetGUID();
290 break;
291 }
292 creature->SetVisible(false);
293 break;
296 creature->SetVisible(false);
297 if (!(EncounterMask & (1 << DATA_LK_INTRO)))
298 {
301 {
302 creature->StopMoving();
303 creature->SetFacingTo(creature->GetAngle(&SylvanasFightPos));
304 }
305 }
306 else if (!(EncounterMask & (1 << DATA_LICH_KING)))
308 else
309 creature->SetVisible(false);
310
311 NPC_LichKingGUID = creature->GetGUID();
312 creature->SetHealth((creature->GetMaxHealth() * 3) / 4);
314 break;
316 if (!creature->IsAlive())
317 creature->Respawn();
318 NPC_LeaderGUID = creature->GetGUID();
320 creature->UpdateEntry(NPC_JAINA_PART2);
321 creature->SetHealth(creature->GetMaxHealth() / 20);
322
324 creature->SetVisible(false);
325 if (!(EncounterMask & (1 << DATA_LK_INTRO)))
326 {
331 {
332 creature->UpdatePosition(SylvanasFightPos, true);
333 creature->StopMovingOnCurrentPos();
334 }
335 }
336 else if (!(EncounterMask & (1 << DATA_LICH_KING)))
337 {
340 creature->UpdatePosition(LeaderEscapePos, true);
341 creature->StopMovingOnCurrentPos();
342 }
343 else
344 {
345 instance->LoadGrid(PathWaypoints[PATH_WP_COUNT - 1].GetPositionX(), PathWaypoints[PATH_WP_COUNT - 1].GetPositionY());
346 creature->UpdatePosition(PathWaypoints[PATH_WP_COUNT - 1], true);
347 creature->StopMovingOnCurrentPos();
348 }
350 break;
352 if (creature->GetPositionX() > 5525.0f)
353 NPC_IceWallTargetGUID[0] = creature->GetGUID();
354 else if (creature->GetPositionX() > 5475.0f)
355 NPC_IceWallTargetGUID[1] = creature->GetGUID();
356 else if (creature->GetPositionX() > 5400.0f)
357 NPC_IceWallTargetGUID[2] = creature->GetGUID();
358 else
359 NPC_IceWallTargetGUID[3] = creature->GetGUID();
360 break;
361 case NPC_ALTAR_BUNNY:
362 NPC_AltarBunnyGUID = creature->GetGUID();
363 break;
364 case NPC_QUEL_DELAR:
365 NPC_QuelDelarGUID = creature->GetGUID();
366 creature->SetReactState(REACT_PASSIVE);
367 break;
370 NPC_ShipCaptainGUID = creature->GetGUID();
371 break;
372 }
373 }
@ UNIT_NPC_EMOTESTATE
Definition: UpdateFields.h:140
@ MOVEMENTFLAG_WALKING
Definition: Unit.h:560
@ REACT_PASSIVE
Definition: Unit.h:1023
@ UNIT_NPC_FLAG_GOSSIP
Definition: Unit.h:516
@ UNIT_NPC_FLAG_QUESTGIVER
Definition: Unit.h:517
@ NPC_JAINA_PART1
Definition: forge_of_souls.h:42
@ NPC_JAINA_PART2
Definition: forge_of_souls.h:43
@ NPC_SYLVANAS_PART1
Definition: forge_of_souls.h:40
const Position PathWaypoints[PATH_WP_COUNT]
Definition: halls_of_reflection.h:335
@ NPC_HIGH_CAPTAIN_JUSTIN_BARLETT
Definition: halls_of_reflection.h:83
@ NPC_SKY_REAVER_KORM_BLACKSKAR
Definition: halls_of_reflection.h:84
@ NPC_ALTAR_BUNNY
Definition: halls_of_reflection.h:85
@ NPC_WAVE_FOOTMAN
Definition: halls_of_reflection.h:76
@ NPC_SPIRITUAL_REFLECTION
Definition: halls_of_reflection.h:80
@ NPC_WAVE_PRIEST
Definition: halls_of_reflection.h:72
@ NPC_ARCHMAGE_KORELN
Definition: halls_of_reflection.h:69
@ NPC_FALRIC
Definition: halls_of_reflection.h:57
@ NPC_WAVE_MAGE
Definition: halls_of_reflection.h:73
@ NPC_QUEL_DELAR
Definition: halls_of_reflection.h:86
@ NPC_WAVE_MERCENARY
Definition: halls_of_reflection.h:75
@ NPC_WAVE_RIFLEMAN
Definition: halls_of_reflection.h:77
@ NPC_MARWYN
Definition: halls_of_reflection.h:58
@ NPC_FROSTSWORN_GENERAL
Definition: halls_of_reflection.h:79
@ SPELL_JAINA_ICE_PRISON
Definition: halls_of_reflection.h:281
@ SPELL_SYLVANAS_CLOAK_OF_DARKNESS
Definition: halls_of_reflection.h:280
@ SPELL_SYLVANAS_DARK_BINDING
Definition: halls_of_reflection.h:282
@ SPELL_JAINA_ICE_BARRIER
Definition: halls_of_reflection.h:279
const Position LeaderEscapePos
Definition: halls_of_reflection.h:324
const Position SylvanasFightPos
Definition: halls_of_reflection.h:323
#define PATH_WP_COUNT
Definition: halls_of_reflection.h:332
@ EMOTE_ONESHOT_ATTACK2HTIGHT
Definition: SharedDefines.h:1899
@ EMOTE_ONESHOT_ATTACK1H
Definition: SharedDefines.h:1898
@ TEAM_ALLIANCE
Definition: SharedDefines.h:732
bool IsEmpty() const
Definition: LinkedList.h:97
Definition: LinkedList.h:139
void Respawn(bool force=false)
Definition: Creature.cpp:2005
void SetReactState(ReactStates st)
Definition: Creature.h:89
bool UpdateEntry(uint32 entry, const CreatureData *data=nullptr, bool changelevel=true, bool updateAI=false)
Definition: Creature.cpp:483
uint32 GetEntry() const
Definition: Object.h:109
static ObjectGuid GetGUID(Object const *o)
Definition: Object.h:106
void SetUInt32Value(uint16 index, uint32 value)
Definition: Object.cpp:650
float GetPositionX() const
Definition: Position.h:117
float GetAngle(const Position *pos) const
Definition: Position.cpp:77
Definition: Player.h:1046
void SetVisible(bool x)
Definition: Unit.cpp:14129
void SetFacingTo(float ori)
Definition: Unit.cpp:20782
uint32 GetMaxHealth() const
Definition: Unit.h:1441
Aura * AddAura(uint32 spellId, Unit *target)
Definition: Unit.cpp:19031
bool IsAlive() const
Definition: Unit.h:1808
void StopMoving()
Definition: Unit.cpp:16824
void RemoveNpcFlag(NPCFlags flags)
Definition: Unit.h:1648
void SetHealth(uint32 val)
Definition: Unit.cpp:15370
virtual bool UpdatePosition(float x, float y, float z, float ang, bool teleport=false)
Definition: Unit.cpp:20194
void AddUnitMovementFlag(uint32 f)
Definition: Unit.h:2272
void SetNpcFlag(NPCFlags flags)
Definition: Unit.h:1647
SpellCastResult CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition: Unit.cpp:1169
void StopMovingOnCurrentPos()
Definition: Unit.cpp:16863
void RemoveUnitMovementFlag(uint32 f)
Definition: Unit.h:2273
void LoadGrid(float x, float y)
Definition: Map.cpp:494
PlayerList const & GetPlayers() const
Definition: Map.h:484
Definition: MapRefMgr.h:26
iterator begin()
Definition: MapRefMgr.h:36
iterator end()
Definition: MapRefMgr.h:37
ObjectGuid NPC_FrostswornGeneralGUID
Definition: instance_halls_of_reflection.cpp:180
ObjectGuid NPC_QuelDelarGUID
Definition: instance_halls_of_reflection.cpp:155
ObjectGuid NPC_SpiritualReflectionGUID[5]
Definition: instance_halls_of_reflection.cpp:181
ObjectGuid NPC_ShipCaptainGUID
Definition: instance_halls_of_reflection.cpp:156
ObjectGuid NPC_AltarBunnyGUID
Definition: instance_halls_of_reflection.cpp:154
ObjectGuid NPC_LeaderIntroGUID
Definition: instance_halls_of_reflection.cpp:148

References Unit::AddAura(), Unit::AddUnitMovementFlag(), MapRefMgr::begin(), Unit::CastSpell(), DATA_FROSTSWORN_GENERAL, DATA_LICH_KING, DATA_LK_INTRO, DATA_MARWYN, EMOTE_ONESHOT_ATTACK1H, EMOTE_ONESHOT_ATTACK2HTIGHT, EncounterMask, MapRefMgr::end(), Position::GetAngle(), Object::GetEntry(), Object::GetGUID(), Unit::GetMaxHealth(), Map::GetPlayers(), Position::GetPositionX(), InstanceScript::instance, Unit::IsAlive(), LinkedListHead::IsEmpty(), LeaderEscapePos, Map::LoadGrid(), MOVEMENTFLAG_WALKING, NPC_ALTAR_BUNNY, NPC_AltarBunnyGUID, NPC_ARCHMAGE_KORELN, NPC_DARK_RANGER_LORALEN, NPC_FALRIC, NPC_FalricGUID, NPC_FROSTSWORN_GENERAL, NPC_FrostswornGeneralGUID, NPC_GuardGUID, NPC_HIGH_CAPTAIN_JUSTIN_BARLETT, NPC_ICE_WALL_TARGET, NPC_IceWallTargetGUID, NPC_JAINA_PART1, NPC_JAINA_PART2, NPC_LeaderGUID, NPC_LeaderIntroGUID, NPC_LICH_KING_BOSS, NPC_LICH_KING_EVENT, NPC_LichKingGUID, NPC_LichKingIntroGUID, NPC_MARWYN, NPC_MarwynGUID, NPC_QUEL_DELAR, NPC_QuelDelarGUID, NPC_ShipCaptainGUID, NPC_SKY_REAVER_KORM_BLACKSKAR, NPC_SPIRITUAL_REFLECTION, NPC_SpiritualReflectionGUID, NPC_SYLVANAS_PART1, NPC_SYLVANAS_PART2, NPC_TrashGUID, NPC_UTHER, NPC_UtherGUID, NPC_WAVE_FOOTMAN, NPC_WAVE_MAGE, NPC_WAVE_MERCENARY, NPC_WAVE_PRIEST, NPC_WAVE_RIFLEMAN, NUM_OF_TRASH, PATH_WP_COUNT, PathWaypoints, REACT_PASSIVE, Unit::RemoveNpcFlag(), Unit::RemoveUnitMovementFlag(), Creature::Respawn(), Unit::SetFacingTo(), Unit::SetHealth(), Unit::SetNpcFlag(), Creature::SetReactState(), Object::SetUInt32Value(), Unit::SetVisible(), SPELL_JAINA_ICE_BARRIER, SPELL_JAINA_ICE_PRISON, SPELL_SYLVANAS_CLOAK_OF_DARKNESS, SPELL_SYLVANAS_DARK_BINDING, Unit::StopMoving(), Unit::StopMovingOnCurrentPos(), SylvanasFightPos, TEAM_ALLIANCE, TEAM_NEUTRAL, TeamIdInInstance, TrashCounter, UNIT_NPC_EMOTESTATE, UNIT_NPC_FLAG_GOSSIP, UNIT_NPC_FLAG_QUESTGIVER, Creature::UpdateEntry(), and Unit::UpdatePosition().

◆ OnGameObjectCreate()

void instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::OnGameObjectCreate ( GameObject go)
inlineoverridevirtual

Reimplemented from InstanceScript.

376 {
377 switch(go->GetEntry())
378 {
379 case GO_FROSTMOURNE:
382 if (EncounterMask & (1 << DATA_INTRO))
383 go->SetPhaseMask(2, true);
384 break;
387 break;
388 case GO_FRONT_DOOR:
391 break;
392 case GO_ARTHAS_DOOR:
395 break;
396 case GO_CAVE_IN:
397 GO_CaveInGUID = go->GetGUID();
398 break;
401 break;
404 break;
405 case GO_ICE_WALL:
406 GO_IceWallGUID = go->GetGUID();
407 break;
408 }
409 }
@ GO_CAVE_IN
Definition: halls_of_reflection.h:95
@ GO_ICE_WALL
Definition: halls_of_reflection.h:98
@ GO_DOOR_BEFORE_THRONE
Definition: halls_of_reflection.h:96
@ GO_FROSTMOURNE_ALTAR
Definition: halls_of_reflection.h:92
@ GO_DOOR_AFTER_THRONE
Definition: halls_of_reflection.h:97
void SetPhaseMask(uint32 newPhaseMask, bool update) override
Definition: GameObject.cpp:2641
ObjectGuid GO_FrostmourneAltarGUID
Definition: instance_halls_of_reflection.cpp:158
ObjectGuid GO_DoorAfterThroneGUID
Definition: instance_halls_of_reflection.cpp:163
ObjectGuid GO_CaveInGUID
Definition: instance_halls_of_reflection.cpp:161
ObjectGuid GO_IceWallGUID
Definition: instance_halls_of_reflection.cpp:164
ObjectGuid GO_DoorBeforeThroneGUID
Definition: instance_halls_of_reflection.cpp:162

References DATA_INTRO, DATA_MARWYN, ObjectGuid::Empty, EncounterMask, Object::GetEntry(), Object::GetGUID(), GO_ARTHAS_DOOR, GO_ArthasDoorGUID, GO_CAVE_IN, GO_CaveInGUID, GO_DOOR_AFTER_THRONE, GO_DOOR_BEFORE_THRONE, GO_DoorAfterThroneGUID, GO_DoorBeforeThroneGUID, GO_FRONT_DOOR, GO_FrontDoorGUID, GO_FROSTMOURNE, GO_FROSTMOURNE_ALTAR, GO_FrostmourneAltarGUID, GO_FrostmourneGUID, GO_ICE_WALL, GO_IceWallGUID, InstanceScript::HandleGameObject(), and GameObject::SetPhaseMask().

◆ OnUnitDeath()

void instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::OnUnitDeath ( Unit unit)
inlineoverridevirtual

Reimplemented from ZoneScript.

731 {
733 if (unit->GetEntry() == NPC_WAVE_MERCENARY || unit->GetEntry() == NPC_WAVE_FOOTMAN || unit->GetEntry() == NPC_WAVE_RIFLEMAN || unit->GetEntry() == NPC_WAVE_PRIEST || unit->GetEntry() == NPC_WAVE_MAGE)
734 if ((--reqKillCount) == 0 && WaveNumber % 5 && NextWaveTimer > 5000)
735 NextWaveTimer = 5000;
736
737 if (unit->GetEntry() == NPC_QUEL_DELAR)
739 {
740 c->SetStandState(UNIT_STAND_STATE_STAND);
741 c->SetWalk(false);
742 c->GetMotionMaster()->MovePoint(0, 5313.92f, 1989.36f, 707.70f);
743 c->m_Events.AddEvent(new UtherBatteredHiltEvent(*c, 9), c->m_Events.CalculateTime(7000));
744 }
745 }
@ UNIT_STAND_STATE_STAND
Definition: Unit.h:53
Definition: instance_halls_of_reflection.cpp:23

References Map::GetCreature(), Object::GetEntry(), InstanceScript::instance, NextWaveTimer, NPC_QUEL_DELAR, NPC_UtherGUID, NPC_WAVE_FOOTMAN, NPC_WAVE_MAGE, NPC_WAVE_MERCENARY, NPC_WAVE_PRIEST, NPC_WAVE_RIFLEMAN, reqKillCount, UNIT_STAND_STATE_STAND, and WaveNumber.

◆ RandomizeCompositionsAndShow()

void instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::RandomizeCompositionsAndShow ( )
inline
748 {
749 uint8 r1 = urand(0, 1), r2 = urand(2, 3);
750 for (uint8 i = 0; i < 5; ++i)
751 {
753 chosenComposition[1][i] = allowedCompositions[r1 == 0 ? 1 : 0][i];
755 chosenComposition[3][i] = allowedCompositions[r2 == 2 ? 3 : 2][i];
756 }
757 bool left[4] = {true, true, true, true};
758 for (uint8 k = 4; k > 0; --k)
759 {
760 uint8 r = urand(0, k - 1);
761 uint8 ur = 0;
762 for (uint8 j = 0; j < 4; ++j)
763 if (left[j])
764 {
765 if (ur == r)
766 {
767 left[j] = false;
768 for (uint8 i = 0; i < 5; ++i)
769 chosenComposition[8 - k][i] = allowedCompositions[j + 4][i];
770 break;
771 }
772 ++ur;
773 }
774 }
775
776 if (bFinished5Waves)
777 {
778 for (; WaveNumber < 4; ++WaveNumber)
779 {
780 uint8 num_to_activate;
781 if (WaveNumber <= 1)
782 num_to_activate = 3;
783 else
784 num_to_activate = 4;
785
786 for (uint8 i = 0; i < num_to_activate; ++i)
787 {
789 bool forward = !!urand(0, 1);
790 for (int8 j = (forward ? 0 : NUM_OF_TRASH - 1); (forward ? j<NUM_OF_TRASH : j >= 0); (forward ? ++j : --j))
791 if (!TrashActive[j])
793 if (c->GetEntry() == entry)
794 {
795 TrashActive[j] = true;
796 Unit::Kill(c, c);
797 break;
798 }
799 }
800 }
801 WaveNumber = 5;
802 }
803
804 for (uint8 i = 0; i < NUM_OF_TRASH; ++i)
805 if (!TrashActive[i])
807 {
808 c->SetVisible(true);
809 c->CastSpell(c, SPELL_WELL_OF_SOULS_VISUAL, false);
810 }
811 }
const uint32 allowedCompositions[8][5]
Definition: halls_of_reflection.h:301
@ SPELL_WELL_OF_SOULS_VISUAL
Definition: halls_of_reflection.h:267
static void Kill(Unit *killer, Unit *victim, bool durabilityLoss=true, WeaponAttackType attackType=BASE_ATTACK, SpellInfo const *spellProto=nullptr, Spell const *spell=nullptr)
Definition: Unit.cpp:17862

References allowedCompositions, bFinished5Waves, chosenComposition, Map::GetCreature(), InstanceScript::instance, Unit::Kill(), NPC_TrashGUID, NUM_OF_TRASH, SPELL_WELL_OF_SOULS_VISUAL, TrashActive, urand(), and WaveNumber.

Referenced by SetData().

◆ ReadSaveDataMore()

void instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::ReadSaveDataMore ( std::istringstream &  data)
inlineoverridevirtual

Reimplemented from InstanceScript.

720 {
721 data >> EncounterMask;
723 }
@ BHSF_NONE
Definition: halls_of_reflection.h:116
@ BHSF_FINISHED
Definition: halls_of_reflection.h:119

References BatteredHiltStatus, BHSF_FINISHED, BHSF_NONE, DATA_BATTERED_HILT, and EncounterMask.

◆ SetData()

void instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::SetData ( uint32  type,
uint32  data 
)
inlineoverridevirtual

Reimplemented from ZoneScript.

412 {
413 switch(type)
414 {
415 case DATA_INTRO:
416 EncounterMask |= (1 << DATA_INTRO);
417 AddWave1();
418 break;
421 break;
422 case DATA_FALRIC:
423 if (WaveNumber)
424 {
425 if (data == NOT_STARTED)
426 DoWipe1();
427 else if (data == DONE)
428 {
429 NextWaveTimer = 60000;
430 EncounterMask |= (1 << DATA_FALRIC);
431 }
432 }
433 break;
434 case DATA_MARWYN:
435 if (WaveNumber)
436 {
437 if (data == NOT_STARTED)
438 DoWipe1();
439 else if (data == DONE)
440 {
441 EncounterMask |= (1 << DATA_MARWYN);
445 {
446 c->SetVisible(true);
447 c->SetReactState(REACT_AGGRESSIVE);
448 }
449 WaveNumber = 0;
451
452 // give quest
453 Map::PlayerList const& pl = instance->GetPlayers();
454 for (Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr)
455 if (Player* p = itr->GetSource())
456 p->CastSpell(p, p->GetTeamId() == TEAM_ALLIANCE ? SPELL_HOR_START_QUEST_ALLY : SPELL_HOR_START_QUEST_HORDE, true);
457 }
458 }
459 break;
462 if (data == DONE)
463 {
465 c->SetVisible(true);
467 c->SetVisible(true);
468 }
469 break;
471 {
472 uint8 i = 0;
473 Map::PlayerList const& pl = instance->GetPlayers();
474 for (Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr)
475 if (Player* p = itr->GetSource())
476 if (p->IsAlive() && !p->IsGameMaster())
478 {
479 if (!c->IsAlive())
480 c->Respawn();
481 c->SetCanFly(true);
482 c->SetDisableGravity(true);
483 c->SetVisible(true);
484
485 Item* i;
486 i = p->GetWeaponForAttack(BASE_ATTACK);
488 i = p->GetWeaponForAttack(OFF_ATTACK);
490 i = p->GetWeaponForAttack(RANGED_ATTACK);
492 p->CastSpell(c, SPELL_HOR_CLONE, true);
493 p->CastSpell(c, SPELL_HOR_CLONE_NAME, true);
494 }
495 }
496 break;
499 for (uint8 i = 0; i < 5; ++i)
501 if (c->IsVisible())
502 {
503 c->SetInCombatWithZone();
504 c->SetCanFly(false);
505 c->SetDisableGravity(false);
506 c->GetMotionMaster()->MoveJump(fg->GetPositionX(), fg->GetPositionY(), fg->GetPositionZ(), 20.0f, 10.0f);
507 }
508 break;
510 for (uint8 i = 0; i < 5; ++i)
512 c->AI()->EnterEvadeMode();
513 break;
514 case DATA_LK_INTRO:
517 c->AI()->DoAction(ACTION_START_INTRO);
518 break;
520 IsDuringLKFight = true;
523 break;
525 if (!IsDuringLKFight)
526 {
527 break;
528 }
531 {
532 if (!c->IsAlive())
533 {
534 c->Respawn();
536 c->UpdateEntry(NPC_JAINA_PART2);
537 }
538 c->GetThreatMgr().ClearAllThreat();
539 c->CombatStop(true);
540 c->InterruptNonMeleeSpells(true);
541 c->GetMotionMaster()->Clear();
542 c->GetMotionMaster()->MoveIdle();
543 c->UpdatePosition(LeaderEscapePos, true);
544 c->StopMovingOnCurrentPos();
545 c->RemoveNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
546 c->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
547 c->SetHealth(c->GetMaxHealth() / 20);
548 c->AI()->Reset();
549 c->setActive(false);
550 c->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
551 c->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
552 }
554 {
555 c->GetThreatMgr().ClearAllThreat();
556 c->CombatStop(true);
557 c->InterruptNonMeleeSpells(true);
558 c->GetMotionMaster()->Clear();
559 c->GetMotionMaster()->MoveIdle();
560 c->UpdatePosition(c->GetHomePosition(), true);
561 c->StopMovingOnCurrentPos();
562 c->RemoveAllAuras();
564 c->AI()->Reset();
565 c->setActive(false);
566 c->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
567 c->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
568 c->SetSpeed(MOVE_RUN, c->GetCreatureTemplate()->speed_run);
569 }
570 IsDuringLKFight = false;
571 outroTimer = 0;
572 outroStep = 0;
573 [[fallthrough]];
577 break;
578 case DATA_LICH_KING:
579 if (data == DONE)
580 {
581 instance->LoadGrid(PathWaypoints[0].GetPositionX(), PathWaypoints[0].GetPositionY());
584 c->setActive(false);
586 c->setActive(false);
587 IsDuringLKFight = false;
588 outroStep = 1;
589 outroTimer = 0;
590 }
591 break;
593 {
595 return;
596
597 switch(data)
598 {
599 case 1: // talked to leader
601 SaveToDB();
602 break;
603 case 2:
605 break;
608 c->CastSpell(c, 70720, true);
610 c->m_Events.AddEvent(new UtherBatteredHiltEvent(*c, 1), c->m_Events.CalculateTime(3000));
611 break;
612 case 3:
614 break;
617 {
618 c->m_Events.AddEvent(new UtherBatteredHiltEvent(*c, 3), c->m_Events.CalculateTime(5500));
619 }
620 break;
621 case 4:
623 {
624 c->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
625 c->SetSpeed(MOVE_RUN, 2.5f);
626 }
627 break;
628 case 5:
630 c->m_Events.AddEvent(new UtherBatteredHiltEvent(*c, 6), c->m_Events.CalculateTime(3000));
631 break;
632 case 6:
634 {
635 c->SetSpeed(MOVE_RUN, c->GetCreatureTemplate()->speed_run);
636 c->GetMotionMaster()->MoveLand(0, c->GetPositionX(), c->GetPositionY(), 707.70f, 7.0f);
637 }
638 break;
639 case 7:
641 {
642 c->SetReactState(REACT_AGGRESSIVE);
643 c->SetImmuneToAll(false);
644 c->RemoveAurasDueToSpell(70300);
645 }
646 break;
647 case 8:
649 c->SetInCombatWithZone();
650 break;
651 case 9:
654 SaveToDB();
655 break;
656 }
657 }
658 return;
659 }
660
661 if (data == DONE)
662 SaveToDB();
663 }
@ UNIT_VIRTUAL_ITEM_SLOT_ID
Definition: UpdateFields.h:116
@ OFF_ATTACK
Definition: Unit.h:397
@ BASE_ATTACK
Definition: Unit.h:396
@ RANGED_ATTACK
Definition: Unit.h:398
@ REACT_AGGRESSIVE
Definition: Unit.h:1025
@ MOVE_RUN
Definition: Unit.h:379
@ DONE
Definition: InstanceScript.h:59
@ NOT_STARTED
Definition: InstanceScript.h:56
@ ACTION_START_INTRO
Definition: boss_twinemperors.cpp:50
@ BHSF_THROWN
Definition: halls_of_reflection.h:118
@ BHSF_STARTED
Definition: halls_of_reflection.h:117
@ SPELL_HOR_CLONE_NAME
Definition: halls_of_reflection.h:276
@ ACHIEV_RETREATING_TIMED_EVENT
Definition: halls_of_reflection.h:259
@ SPELL_HOR_CLONE
Definition: halls_of_reflection.h:275
@ SPELL_HOR_START_QUEST_HORDE
Definition: halls_of_reflection.h:264
@ SPELL_HOR_START_QUEST_ALLY
Definition: halls_of_reflection.h:263
@ ACTION_START_LK_FIGHT
Definition: halls_of_reflection.h:49
@ ACTION_SHOW_TRASH
Definition: halls_of_reflection.h:45
@ ACTION_SPIRITUAL_REFLECTIONS_HIDE
Definition: halls_of_reflection.h:48
@ ACTION_DELETE_ICE_WALL
Definition: halls_of_reflection.h:51
@ ACTION_STOP_LK_FIGHT
Definition: halls_of_reflection.h:50
@ ACTION_SPIRITUAL_REFLECTIONS_ACTIVATE
Definition: halls_of_reflection.h:47
@ ACTION_SPIRITUAL_REFLECTIONS_COPY
Definition: halls_of_reflection.h:46
@ ACHIEVEMENT_TIMED_TYPE_EVENT
Definition: DBCEnums.h:116
@ EMOTE_ONESHOT_NONE
Definition: SharedDefines.h:1866
Definition: Item.h:214
void Clear()
Definition: ObjectGuid.h:140
float GetPositionY() const
Definition: Position.h:118
void SaveToDB()
Definition: InstanceScript.cpp:41
void DoStartTimedAchievement(AchievementCriteriaTimedTypes type, uint32 entry)
Definition: InstanceScript.cpp:565
void DoStopTimedAchievement(AchievementCriteriaTimedTypes type, uint32 entry)
Definition: InstanceScript.cpp:576
void DoWipe1()
Definition: instance_halls_of_reflection.cpp:885
void AddWave1()
Definition: instance_halls_of_reflection.cpp:813
void RandomizeCompositionsAndShow()
Definition: instance_halls_of_reflection.cpp:747

References ACHIEV_RETREATING_TIMED_EVENT, ACHIEVEMENT_TIMED_TYPE_EVENT, ACTION_DELETE_ICE_WALL, ACTION_SHOW_TRASH, ACTION_SPIRITUAL_REFLECTIONS_ACTIVATE, ACTION_SPIRITUAL_REFLECTIONS_COPY, ACTION_SPIRITUAL_REFLECTIONS_HIDE, ACTION_START_INTRO, ACTION_START_LK_FIGHT, ACTION_STOP_LK_FIGHT, AddWave1(), BASE_ATTACK, BatteredHiltStatus, MapRefMgr::begin(), BHSF_FINISHED, BHSF_STARTED, BHSF_THROWN, ObjectGuid::Clear(), DATA_BATTERED_HILT, DATA_FALRIC, DATA_FROSTSWORN_GENERAL, DATA_INTRO, DATA_LICH_KING, DATA_LK_INTRO, DATA_MARWYN, DONE, InstanceScript::DoStartTimedAchievement(), InstanceScript::DoStopTimedAchievement(), InstanceScript::DoUpdateWorldState(), DoWipe1(), EMOTE_ONESHOT_NONE, EncounterMask, MapRefMgr::end(), Map::GetCreature(), Object::GetEntry(), Map::GetPlayers(), Position::GetPositionX(), Position::GetPositionY(), GO_ArthasDoorGUID, GO_FrontDoorGUID, GO_IceWallGUID, InstanceScript::HandleGameObject(), InstanceScript::instance, IsDuringLKFight, LeaderEscapePos, Map::LoadGrid(), MOVE_RUN, MOVEMENTFLAG_WALKING, NextWaveTimer, NOT_STARTED, NPC_AltarBunnyGUID, NPC_FrostswornGeneralGUID, NPC_JAINA_PART2, NPC_LeaderGUID, NPC_LichKingGUID, NPC_QuelDelarGUID, NPC_SpiritualReflectionGUID, NPC_UtherGUID, OFF_ATTACK, outroStep, outroTimer, PathWaypoints, RandomizeCompositionsAndShow(), RANGED_ATTACK, REACT_AGGRESSIVE, InstanceScript::SaveToDB(), Object::SetUInt32Value(), SPELL_HOR_CLONE, SPELL_HOR_CLONE_NAME, SPELL_HOR_START_QUEST_ALLY, SPELL_HOR_START_QUEST_HORDE, SPELL_JAINA_ICE_PRISON, SPELL_SYLVANAS_DARK_BINDING, TEAM_ALLIANCE, TeamIdInInstance, UNIT_NPC_EMOTESTATE, UNIT_NPC_FLAG_GOSSIP, UNIT_NPC_FLAG_QUESTGIVER, UNIT_VIRTUAL_ITEM_SLOT_ID, WaveNumber, and WORLD_STATE_HOR_COUNTER.

Referenced by Update().

◆ Update()

void instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::Update ( uint32  diff)
inlineoverridevirtual

Reimplemented from InstanceScript.

925 {
926 if (!instance->HavePlayers())
927 return;
928
929 if (CheckPlayersTimer <= diff)
930 {
931 CheckPlayersTimer = 5000;
932 if ((EncounterMask & (1 << DATA_INTRO)) && !(EncounterMask & (1 << DATA_MARWYN))) // first event
933 {
934 Map::PlayerList const& pl = instance->GetPlayers();
936 {
937 bool allDead = true;
938 bool outOfRange = false;
939 for (Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr)
940 if (Player* p = itr->GetSource())
941 {
942 if (p->IsGameMaster())
943 continue;
944 if (p->IsAlive())
945 allDead = false;
946 if (p->GetExactDist2d(&CenterPos) > MAX_DIST_FROM_CENTER_IN_COMBAT)
947 {
948 outOfRange = true;
949 break;
950 }
951 }
952 if (allDead || outOfRange)
953 DoWipe1();
954 }
955 else if (!ResumeFirstEventTimer)
956 {
957 bool allInRangeAndAlive = (instance->GetPlayersCountExceptGMs() > 0);
958 for (Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr)
959 if (Player* p = itr->GetSource())
960 if (!p->IsGameMaster() && (p->GetExactDist2d(&CenterPos) > MAX_DIST_FROM_CENTER_TO_START || !p->IsAlive()))
961 {
962 allInRangeAndAlive = false;
963 break;
964 }
965 if (allInRangeAndAlive)
966 {
969 }
970 }
971 }
972 }
973 else
974 CheckPlayersTimer -= diff;
975
976 if (NextWaveTimer)
977 {
978 if (NextWaveTimer <= diff)
979 {
980 NextWaveTimer = 0;
981 AddWave1();
982 }
983 else
984 NextWaveTimer -= diff;
985 }
986
988 {
989 if (ResumeFirstEventTimer <= diff)
990 {
991 switch (ResumeFirstEventStep) // After a wipe
992 {
993 case 0:
995 {
996 pFalric->UpdatePosition(5274.9f, 2039.2f, 709.319f, 5.4619f, true);
997 pFalric->StopMovingOnCurrentPos();
998 pFalric->SetVisible(true);
999 if (pFalric->IsAlive())
1000 {
1001 pFalric->GetMotionMaster()->MovePoint(0, FalricMovePos);
1002 if (Aura* a = pFalric->AddAura(SPELL_SHADOWMOURNE_VISUAL, pFalric))
1003 a->SetDuration(8000);
1004 }
1005 }
1007 {
1008 pMarwyn->UpdatePosition(5343.77f, 1973.86f, 709.319f, 2.35173f, true);
1009 pMarwyn->StopMovingOnCurrentPos();
1010 pMarwyn->SetVisible(true);
1011 if (pMarwyn->IsAlive())
1012 {
1013 pMarwyn->GetMotionMaster()->MovePoint(0, MarwynMovePos);
1014 if (Aura* a = pMarwyn->AddAura(SPELL_SHADOWMOURNE_VISUAL, pMarwyn))
1015 a->SetDuration(8000);
1016 }
1017
1018 pMarwyn->AI()->Talk(EMOTE_MARWYN_INTRO_SPIRIT);
1019 }
1021 ResumeFirstEventTimer = 7500;
1022 break;
1023 case 1:
1025 {
1026 if (pFalric->IsAlive())
1027 {
1028 pFalric->AI()->Talk(SAY_FALRIC_INTRO_2); // Between wave 1 and 4
1029 }
1030 else
1031 {
1033 {
1034 marwyn->AI()->Talk(SAY_MARWYN_WIPE_AFTER_FALRIC); // Between wave 6 and 9
1035 }
1036 }
1037 }
1038
1042 NextWaveTimer = 7000;
1043 break;
1044 default:
1045 for (uint8 i = 0; i < NUM_OF_TRASH; ++i)
1047 c->SetVisible(false);
1049 falric->SetVisible(false);
1051 marwyn->SetVisible(false);
1054 break;
1055 }
1056 }
1057 else
1058 ResumeFirstEventTimer -= diff;
1059 }
1060
1061 if (outroStep)
1062 {
1063 if (outroTimer <= diff)
1064 {
1065 switch (outroStep)
1066 {
1067 case 1:
1069 {
1070 lk->UpdatePosition(PathWaypoints[PATH_WP_COUNT - 2], true);
1071 lk->StopMovingOnCurrentPos();
1072 lk->RemoveAllAuras();
1074 if (!lk->IsVisible())
1075 lk->SetVisible(true);
1077 {
1078 leader->UpdatePosition(PathWaypoints[PATH_WP_COUNT - 1], true);
1079 leader->StopMovingOnCurrentPos();
1080 leader->RemoveAllAuras();
1081 leader->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_READY1H);
1082 if (!leader->IsVisible())
1083 leader->SetVisible(true);
1084 lk->CastSpell(leader, SPELL_HARVEST_SOUL, false);
1085 }
1086 }
1087 ++outroStep;
1088 outroTimer = 500;
1089 break;
1090 case 2:
1091 {
1093 T1 = sTransportMgr->CreateTransport(entry, 0, instance);
1094
1095 ++outroStep;
1096 outroTimer = TeamIdInInstance == TEAM_ALLIANCE ? 10000 : 10500;
1097 }
1098 break;
1099 case 3:
1100 if (T1)
1101 T1->EnableMovement(false);
1105 {
1106 c->RemoveAllAuras();
1107 c->CastSpell(c, SPELL_GUNSHIP_CANNON_FIRE_PERIODIC, true);
1108 }
1110 {
1111 c->InterruptNonMeleeSpells(true);
1112 c->RemoveAllAuras();
1113 }
1114 ++outroStep;
1115 outroTimer = 5000;
1116 break;
1117 case 4:
1119 ++outroStep;
1120 outroTimer = 3000;
1121 break;
1122 case 5:
1124 c->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
1126 {
1127 c->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
1128 c->GetThreatMgr().ClearAllThreat();
1129 c->CombatStop(true);
1130 c->InterruptNonMeleeSpells(true);
1131 c->SetVisible(false);
1132 }
1133 if (instance->IsHeroic())
1136 c->CastSpell(c, SPELL_ACHIEVEMENT_CHECK, true);
1137 ++outroStep;
1138 outroTimer = 1000;
1139 break;
1140 case 6:
1141 if (T1)
1142 T1->EnableMovement(true);
1143 ++outroStep;
1144 outroTimer = 3500;
1145 break;
1146 case 7:
1147 if (T1)
1148 T1->EnableMovement(false);
1150 {
1151 uint8 index = TeamIdInInstance == TEAM_ALLIANCE ? 0 : 1;
1152 for (uint8 i = 0; i < 3; ++i)
1153 if (StairsPos[index][i].GetPositionX())
1154 if (GameObject* go = leader->SummonGameObject(TeamIdInInstance == TEAM_ALLIANCE ? GO_STAIRS_ALLIANCE : GO_STAIRS_HORDE, StairsPos[index][i].GetPositionX(), StairsPos[index][i].GetPositionY(), StairsPos[index][i].GetPositionZ(), StairsPos[index][i].GetOrientation(), 0.0f, 0.0f, 0.0f, 0.0f, 86400, false))
1155 go->SetGameObjectFlag(GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE);
1156
1157 //Position pos = TeamIdInInstance == TEAM_ALLIANCE ? AllyPortalPos : HordePortalPos;
1158 //leader->SummonGameObject(GO_PORTAL_TO_DALARAN, pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), pos.GetOrientation(), 0.0f, 0.0f, 0.0f, 0.0f, 86400);
1159 //pos = TeamIdInInstance == TEAM_ALLIANCE ? AllyChestPos : HordeChestPos;
1160 //leader->SummonGameObject(instance->GetSpawnMode() ? GO_CHEST_HEROIC : GO_CHEST_NORMAL, pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), pos.GetOrientation(), 0.0f, 0.0f, 0.0f, 0.0f, 86400);
1161 }
1162 ++outroStep;
1163 outroTimer = 1000;
1164 break;
1165 case 8:
1169 {
1170 c->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
1171 c->GetMotionMaster()->MovePoint(0, WalkCaveInPos);
1172 }
1173 ++outroStep;
1174 outroTimer = 6000;
1175 break;
1176 case 9:
1180 ++outroStep;
1181 outroTimer = 11000;
1182 break;
1183 case 10:
1184 ++outroStep;
1185 outroTimer = 0;
1187 if (Player* p = itr->GetSource())
1188 p->KilledMonsterCredit(NPC_WRATH_OF_THE_LICH_KING_CREDIT);
1191 {
1192 c->AI()->Talk(SAY_JAINA_FINAL_2);
1193 outroTimer = 10000;
1194 }
1195 break;
1196 case 11:
1198 c->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER);
1199 ++outroStep;
1200 outroTimer = 300 * 1000;
1201 break;
1202 case 12:
1203 outroStep = 0;
1204 outroTimer = 0;
1205 if (T1)
1206 T1->setActive(false);
1207 break;
1208 }
1209 }
1210 else
1211 outroTimer -= diff;
1212 }
1213 }
#define sTransportMgr
Definition: TransportMgr.h:163
@ SPELL_ACHIEVEMENT_CHECK
Definition: boss_tharon_ja.cpp:49
const Position FalricMovePos
Definition: halls_of_reflection.h:321
@ GO_THE_SKYBREAKER
Definition: halls_of_reflection.h:99
@ GO_ORGRIMS_HAMMER
Definition: halls_of_reflection.h:100
@ GO_STAIRS_HORDE
Definition: halls_of_reflection.h:102
@ GO_STAIRS_ALLIANCE
Definition: halls_of_reflection.h:101
@ NPC_WRATH_OF_THE_LICH_KING_CREDIT
Definition: halls_of_reflection.h:82
const Position MarwynMovePos
Definition: halls_of_reflection.h:322
#define MAX_DIST_FROM_CENTER_IN_COMBAT
Definition: halls_of_reflection.h:123
@ SPELL_GUNSHIP_CANNON_FIRE_PERIODIC
Definition: halls_of_reflection.h:294
@ SPELL_HARVEST_SOUL
Definition: halls_of_reflection.h:289
@ SPELL_SHADOWMOURNE_VISUAL
Definition: halls_of_reflection.h:265
const Position StairsPos[2][3]
Definition: halls_of_reflection.h:372
@ SAY_JAINA_FINAL_2
Definition: halls_of_reflection.h:223
@ SAY_ONBOARD_ALLY
Definition: halls_of_reflection.h:227
@ EMOTE_MARWYN_INTRO_SPIRIT
Definition: halls_of_reflection.h:241
@ SAY_FALRIC_INTRO_2
Definition: halls_of_reflection.h:174
@ SAY_JAINA_FINAL_1
Definition: halls_of_reflection.h:222
@ SAY_FIRE_HORDE
Definition: halls_of_reflection.h:211
@ SAY_MARWYN_WIPE_AFTER_FALRIC
Definition: halls_of_reflection.h:243
@ SAY_ONBOARD_HORDE
Definition: halls_of_reflection.h:212
@ SAY_FIRE_ALLY
Definition: halls_of_reflection.h:226
@ SAY_SYLVANA_FINAL
Definition: halls_of_reflection.h:208
#define MAX_DIST_FROM_CENTER_TO_START
Definition: halls_of_reflection.h:124
const Position WalkCaveInPos
Definition: halls_of_reflection.h:326
const Position CenterPos
Definition: halls_of_reflection.h:313
@ EMOTE_ONESHOT_CUSTOM_SPELL_02
Definition: SharedDefines.h:1970
@ EMOTE_ONESHOT_READY1H
Definition: SharedDefines.h:1904
@ GO_FLAG_INTERACT_COND
Definition: SharedDefines.h:1577
@ GO_FLAG_NOT_SELECTABLE
Definition: SharedDefines.h:1579
Definition: GameObject.h:122
void setActive(bool isActiveObject)
Definition: Object.cpp:1085
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:2332
float GetPositionZ() const
Definition: Position.h:119
float GetOrientation() const
Definition: Position.h:120
void EnableMovement(bool enabled)
Definition: Transport.cpp:454
uint32 GetPlayersCountExceptGMs() const
Definition: Map.cpp:2729
InstanceMap * ToInstanceMap()
Definition: Map.h:544
bool IsHeroic() const
Definition: Map.h:451
void PermBindAllPlayers()
Definition: Map.cpp:3131
Definition: SpellAuras.h:87
void SetData(uint32 type, uint32 data) override
Definition: instance_halls_of_reflection.cpp:411

References ACTION_SHOW_TRASH, AddWave1(), MapRefMgr::begin(), CenterPos, CheckPlayersTimer, DATA_INTRO, DATA_MARWYN, DoWipe1(), EMOTE_MARWYN_INTRO_SPIRIT, EMOTE_ONESHOT_CUSTOM_SPELL_02, EMOTE_ONESHOT_NONE, EMOTE_ONESHOT_READY1H, MotionTransport::EnableMovement(), EncounterMask, MapRefMgr::end(), FalricMovePos, Map::GetCreature(), Position::GetOrientation(), Map::GetPlayers(), Map::GetPlayersCountExceptGMs(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), GO_CaveInGUID, GO_FLAG_INTERACT_COND, GO_FLAG_NOT_SELECTABLE, GO_ORGRIMS_HAMMER, GO_STAIRS_ALLIANCE, GO_STAIRS_HORDE, GO_THE_SKYBREAKER, InstanceScript::HandleGameObject(), Map::HavePlayers(), InstanceScript::instance, Map::IsHeroic(), MarwynMovePos, MAX_DIST_FROM_CENTER_IN_COMBAT, MAX_DIST_FROM_CENTER_TO_START, MOVEMENTFLAG_WALKING, NextWaveTimer, NPC_FalricGUID, NPC_LeaderGUID, NPC_LichKingGUID, NPC_MarwynGUID, NPC_ShipCaptainGUID, NPC_TrashGUID, NPC_WRATH_OF_THE_LICH_KING_CREDIT, NUM_OF_TRASH, outroStep, outroTimer, PATH_WP_COUNT, PathWaypoints, InstanceMap::PermBindAllPlayers(), ResumeFirstEventStep, ResumeFirstEventTimer, SAY_FALRIC_INTRO_2, SAY_FIRE_ALLY, SAY_FIRE_HORDE, SAY_JAINA_FINAL_1, SAY_JAINA_FINAL_2, SAY_MARWYN_WIPE_AFTER_FALRIC, SAY_ONBOARD_ALLY, SAY_ONBOARD_HORDE, SAY_SYLVANA_FINAL, WorldObject::setActive(), SetData(), SPELL_ACHIEVEMENT_CHECK, SPELL_GUNSHIP_CANNON_FIRE_PERIODIC, SPELL_HARVEST_SOUL, SPELL_SHADOWMOURNE_VISUAL, StairsPos, sTransportMgr, WorldObject::SummonGameObject(), T1, TEAM_ALLIANCE, TeamIdInInstance, Map::ToInstanceMap(), UNIT_NPC_EMOTESTATE, UNIT_NPC_FLAG_QUESTGIVER, WalkCaveInPos, and WaveNumber.

◆ WriteSaveDataMore()

void instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::WriteSaveDataMore ( std::ostringstream &  data)
inlineoverridevirtual

Reimplemented from InstanceScript.

726 {
727 data << EncounterMask;
728 }

References EncounterMask.

Member Data Documentation

◆ BatteredHiltStatus

uint32 instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::BatteredHiltStatus

◆ bFinished5Waves

bool instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::bFinished5Waves

◆ CheckPlayersTimer

uint16 instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::CheckPlayersTimer

Referenced by Initialize(), and Update().

◆ chosenComposition

uint32 instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::chosenComposition[8][5]

◆ EncounterMask

uint32 instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::EncounterMask

◆ GO_ArthasDoorGUID

ObjectGuid instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::GO_ArthasDoorGUID

◆ GO_CaveInGUID

ObjectGuid instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::GO_CaveInGUID

Referenced by OnGameObjectCreate(), and Update().

◆ GO_DoorAfterThroneGUID

ObjectGuid instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::GO_DoorAfterThroneGUID

Referenced by OnGameObjectCreate().

◆ GO_DoorBeforeThroneGUID

ObjectGuid instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::GO_DoorBeforeThroneGUID

Referenced by OnGameObjectCreate().

◆ GO_FrontDoorGUID

ObjectGuid instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::GO_FrontDoorGUID

◆ GO_FrostmourneAltarGUID

ObjectGuid instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::GO_FrostmourneAltarGUID

Referenced by OnGameObjectCreate().

◆ GO_FrostmourneGUID

ObjectGuid instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::GO_FrostmourneGUID

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ GO_IceWallGUID

ObjectGuid instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::GO_IceWallGUID

Referenced by OnGameObjectCreate(), and SetData().

◆ IsDuringLKFight

bool instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::IsDuringLKFight

◆ NextWaveTimer

uint32 instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::NextWaveTimer

◆ NPC_AltarBunnyGUID

ObjectGuid instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::NPC_AltarBunnyGUID

Referenced by OnCreatureCreate(), and SetData().

◆ NPC_FalricGUID

ObjectGuid instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::NPC_FalricGUID

◆ NPC_FrostswornGeneralGUID

ObjectGuid instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::NPC_FrostswornGeneralGUID

Referenced by OnCreatureCreate(), and SetData().

◆ NPC_GuardGUID

ObjectGuid instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::NPC_GuardGUID

Referenced by GetGuidData(), and OnCreatureCreate().

◆ NPC_IceWallTargetGUID

ObjectGuid instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::NPC_IceWallTargetGUID[4]

Referenced by GetGuidData(), and OnCreatureCreate().

◆ NPC_LeaderGUID

ObjectGuid instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::NPC_LeaderGUID

◆ NPC_LeaderIntroGUID

ObjectGuid instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::NPC_LeaderIntroGUID

Referenced by OnCreatureCreate().

◆ NPC_LichKingGUID

ObjectGuid instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::NPC_LichKingGUID

◆ NPC_LichKingIntroGUID

ObjectGuid instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::NPC_LichKingIntroGUID

Referenced by GetGuidData(), and OnCreatureCreate().

◆ NPC_MarwynGUID

ObjectGuid instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::NPC_MarwynGUID

◆ NPC_QuelDelarGUID

ObjectGuid instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::NPC_QuelDelarGUID

Referenced by OnCreatureCreate(), and SetData().

◆ NPC_ShipCaptainGUID

ObjectGuid instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::NPC_ShipCaptainGUID

Referenced by OnCreatureCreate(), and Update().

◆ NPC_SpiritualReflectionGUID

ObjectGuid instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::NPC_SpiritualReflectionGUID[5]

Referenced by OnCreatureCreate(), and SetData().

◆ NPC_TrashGUID

ObjectGuid instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::NPC_TrashGUID[NUM_OF_TRASH]

◆ NPC_UtherGUID

ObjectGuid instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::NPC_UtherGUID

◆ outroStep

uint8 instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::outroStep

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

◆ outroTimer

uint32 instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::outroTimer

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

◆ reqKillCount

uint8 instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::reqKillCount

◆ ResumeFirstEventStep

uint8 instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::ResumeFirstEventStep

Referenced by DoWipe1(), Initialize(), and Update().

◆ ResumeFirstEventTimer

uint16 instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::ResumeFirstEventTimer

Referenced by DoWipe1(), Initialize(), and Update().

◆ T1

MotionTransport* instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::T1

Referenced by Initialize(), and Update().

◆ TeamIdInInstance

TeamId instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::TeamIdInInstance

◆ TrashActive

bool instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::TrashActive[NUM_OF_TRASH]

◆ TrashCounter

uint8 instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::TrashCounter

◆ WaveNumber

uint8 instance_halls_of_reflection::instance_halls_of_reflection_InstanceMapScript::WaveNumber