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

Public Member Functions

 instance_naxxramas_InstanceMapScript (Map *pMap)
 
void HeiganEruptSections (uint32 section)
 
bool IsEncounterInProgress () const override
 
void OnCreatureCreate (Creature *creature) override
 
void OnGameObjectCreate (GameObject *pGo) override
 
void OnGameObjectRemove (GameObject *pGo) override
 
bool CheckAchievementCriteriaMeet (uint32 criteria_id, Player const *, Unit const *, uint32) override
 
void SetData (uint32 id, uint32 data) override
 
uint32 GetData (uint32 id) const override
 
bool SetBossState (uint32 bossId, EncounterState state) override
 
void Update (uint32 diff) override
 
ObjectGuid GetGuidData (uint32 id) const override
 
void ReadSaveDataMore (std::istringstream &data) override
 
void WriteSaveDataMore (std::ostringstream &data) 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)
 
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 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)
 
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
 
- 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

std::set< GameObject * > HeiganEruption [4]
 
ObjectGuid _patchwerkGateGUID
 
ObjectGuid _gluthGateGUID
 
ObjectGuid _nothEntryGateGUID
 
ObjectGuid _nothExitGateGUID
 
ObjectGuid _heiganGateGUID
 
ObjectGuid _heiganGateExitGUID
 
ObjectGuid _loathebGateGUID
 
ObjectGuid _anubNextGateGUID
 
ObjectGuid _faerlinaWebGUID
 
ObjectGuid _faerlinaGateGUID
 
ObjectGuid _maexxnaGateGUID
 
ObjectGuid _thaddiusGateGUID
 
ObjectGuid _gothikEnterGateGUID
 
ObjectGuid _gothikInnerGateGUID
 
ObjectGuid _gothikExitGateGUID {}
 
ObjectGuid _horsemanGateGUID
 
ObjectGuid _kelthuzadFloorGUID
 
ObjectGuid _kelthuzadGateGUID
 
ObjectGuid _kelthuzadPortal1GUID
 
ObjectGuid _kelthuzadPortal2GUID
 
ObjectGuid _kelthuzadPortal3GUID
 
ObjectGuid _kelthuzadPortal4GUID
 
ObjectGuid _sapphironGateGUID
 
ObjectGuid _horsemanPortalGUID
 
ObjectGuid _loathebPortalGUID
 
ObjectGuid _maexxnaPortalGUID
 
ObjectGuid _thaddiusPortalGUID
 
ObjectGuid _deathknightEyePortalGUID
 
ObjectGuid _plagueEyePortalGUID
 
ObjectGuid _spiderEyePortalGUID
 
ObjectGuid _abomEyePortalGUID
 
ObjectGuid _deathknightGlowEyePortalGUID
 
ObjectGuid _plagueGlowEyePortalGUID
 
ObjectGuid _spiderGlowEyePortalGUID
 
ObjectGuid _abomGlowEyePortalGUID
 
GuidList PatchwerkRoomTrash
 
ObjectGuid _patchwerkGUID
 
ObjectGuid _thaddiusGUID
 
ObjectGuid _gothikGUID
 
ObjectGuid _stalaggGUID
 
ObjectGuid _feugenGUID
 
ObjectGuid _zeliekGUID
 
ObjectGuid _rivendareGUID
 
ObjectGuid _blaumeuxGUID
 
ObjectGuid _korthazzGUID
 
ObjectGuid _sapphironGUID
 
ObjectGuid _kelthuzadGUID
 
ObjectGuid _lichkingGUID
 
uint8 _horsemanKilled
 
uint32 _speakTimer
 
uint32 _horsemanTimer
 
uint32 _screamTimer
 
bool _hadThaddiusGreet
 
EventMap events
 
uint8 _currentWingTaunt
 
bool _horsemanLoadDoneState
 
uint8 abominationsKilled
 
bool faerlinaAchievement
 
bool thaddiusAchievement
 
bool loathebAchievement
 
bool sapphironAchievement
 
bool heiganAchievement
 
uint32 immortalAchievement
 
- 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)
 
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_naxxramas_InstanceMapScript()

instance_naxxramas::instance_naxxramas_InstanceMapScript::instance_naxxramas_InstanceMapScript ( Map pMap)
inlineexplicit
84 : InstanceScript(pMap)
85 {
90 for (auto& i : HeiganEruption)
91 i.clear();
92
93 // NPCs
94 PatchwerkRoomTrash.clear();
95
96 // Controls
98 _speakTimer = 0;
101 _hadThaddiusGreet = false;
104
105 // Achievements
107 faerlinaAchievement = true;
108 thaddiusAchievement = true;
109 loathebAchievement = true;
111 heiganAchievement = true;
113 }
constexpr auto IN_MILLISECONDS
Definition: Common.h:53
constexpr auto MINUTE
Definition: Common.h:47
@ SAY_FIRST_WING_TAUNT
Definition: naxxramas.h:193
ObjectData const gameObjectData[]
Definition: instance_naxxramas.cpp:67
ObjectData const creatureData[]
Definition: instance_naxxramas.cpp:61
DoorData const doorData[]
Definition: instance_naxxramas.cpp:55
@ MAX_ENCOUNTERS
Definition: deadmines.h:30
#define DataHeader
Definition: blackrock_depths.h:23
Definition: InstanceScript.h:142
void SetBossNumber(uint32 number)
Definition: InstanceScript.h:285
void LoadDoorData(DoorData const *data)
Definition: InstanceScript.cpp:164
void SetHeaders(std::string const &dataHeaders)
Definition: InstanceScript.cpp:141
void LoadObjectData(ObjectData const *creatureData, ObjectData const *gameObjectData)
Definition: InstanceScript.cpp:176
uint8 _currentWingTaunt
Definition: instance_naxxramas.cpp:176
GuidList PatchwerkRoomTrash
Definition: instance_naxxramas.cpp:155
uint32 _horsemanTimer
Definition: instance_naxxramas.cpp:172
std::set< GameObject * > HeiganEruption[4]
Definition: instance_naxxramas.cpp:115
bool _hadThaddiusGreet
Definition: instance_naxxramas.cpp:174
bool _horsemanLoadDoneState
Definition: instance_naxxramas.cpp:177
bool sapphironAchievement
Definition: instance_naxxramas.cpp:184
bool loathebAchievement
Definition: instance_naxxramas.cpp:183
uint32 _speakTimer
Definition: instance_naxxramas.cpp:171
bool thaddiusAchievement
Definition: instance_naxxramas.cpp:182
uint32 _screamTimer
Definition: instance_naxxramas.cpp:173
bool faerlinaAchievement
Definition: instance_naxxramas.cpp:181
uint8 _horsemanKilled
Definition: instance_naxxramas.cpp:170
uint32 immortalAchievement
Definition: instance_naxxramas.cpp:186
uint8 abominationsKilled
Definition: instance_naxxramas.cpp:180
bool heiganAchievement
Definition: instance_naxxramas.cpp:185

References _currentWingTaunt, _hadThaddiusGreet, _horsemanKilled, _horsemanLoadDoneState, _horsemanTimer, _screamTimer, _speakTimer, abominationsKilled, creatureData, DataHeader, doorData, faerlinaAchievement, gameObjectData, heiganAchievement, HeiganEruption, immortalAchievement, IN_MILLISECONDS, InstanceScript::LoadDoorData(), InstanceScript::LoadObjectData(), loathebAchievement, MAX_ENCOUNTERS, MINUTE, PatchwerkRoomTrash, sapphironAchievement, SAY_FIRST_WING_TAUNT, InstanceScript::SetBossNumber(), InstanceScript::SetHeaders(), and thaddiusAchievement.

Member Function Documentation

◆ CheckAchievementCriteriaMeet()

bool instance_naxxramas::instance_naxxramas_InstanceMapScript::CheckAchievementCriteriaMeet ( uint32  criteria_id,
Player const *  ,
Unit const *  ,
uint32   
)
inlineoverridevirtual

Reimplemented from InstanceScript.

536 {
537 switch (criteria_id)
538 {
539 case 7600: // And They Would All Go Down Together (10 player)
540 case 7601: // And They Would All Go Down Together (25 player)
541 return (_horsemanTimer < 15 * IN_MILLISECONDS);
542 case 7614: // Just Can't Get Enough (10 player)
543 case 7615: // Just Can't Get Enough (25 player)
544 return abominationsKilled >= 18;
545 case 7265: // Momma Said Knock You Out (10 player)
546 case 7549: // Momma Said Knock You Out (25 player)
547 return faerlinaAchievement;
548 case 7604: // Shocking! (10 player)
549 case 7605: // Shocking! (25 player)
550 return thaddiusAchievement;
551 case 7612: // Spore Loser (10 player)
552 case 7613: // Spore Loser (25 player)
553 return loathebAchievement;
554 case 7264: // The Safety Dance (10 player)
555 case 7548: // The Safety Dance (25 player)
556 return heiganAchievement;
557 case 7608: // Subtraction (10 player)
558 // The Dedicated few (10 player)
559 case 6802:
560 case 7146:
561 case 7147:
562 case 7148:
563 case 7149:
564 case 7150:
565 case 7151:
566 case 7152:
567 case 7153:
568 case 7154:
569 case 7155:
570 case 7156:
571 case 7157:
572 case 7158:
573 return (instance->GetPlayersCountExceptGMs() < 9);
574 case 7609: // Subtraction (25 player)
575 // The Dedicated few (25 player)
576 case 7159:
577 case 7160:
578 case 7161:
579 case 7162:
580 case 7163:
581 case 7164:
582 case 7165:
583 case 7166:
584 case 7167:
585 case 7168:
586 case 7169:
587 case 7170:
588 case 7171:
589 case 7172:
590 return (instance->GetPlayersCountExceptGMs() < 21);
591 case 7567: // The Hundred Club (10 player)
592 case 7568: // The Hundred Club (25 player)
594 // The Undying
595 case 7617:
596 case 13237:
597 case 13238:
598 case 13239:
599 case 13240:
600 // The Immortal
601 case 7616:
602 case 13233:
603 case 13234:
604 case 13235:
605 case 13236:
606 {
607 uint8 count = 0;
608 for (uint8 i = 0; i < MAX_ENCOUNTERS; ++i)
609 {
610 if (GetBossState(i) == NOT_STARTED)
611 ++count;
612 }
613 return !count && immortalAchievement;
614 }
615
616 default:
617 return false;
618 }
619 }
std::uint8_t uint8
Definition: Define.h:109
@ NOT_STARTED
Definition: InstanceScript.h:57
Map * instance
Definition: InstanceScript.h:148
EncounterState GetBossState(uint32 id) const
Definition: InstanceScript.h:235
uint32 GetPlayersCountExceptGMs() const
Definition: Map.cpp:2748

References _horsemanTimer, abominationsKilled, faerlinaAchievement, InstanceScript::GetBossState(), Map::GetPlayersCountExceptGMs(), heiganAchievement, immortalAchievement, IN_MILLISECONDS, InstanceScript::instance, loathebAchievement, MAX_ENCOUNTERS, NOT_STARTED, sapphironAchievement, and thaddiusAchievement.

◆ GetData()

uint32 instance_naxxramas::instance_naxxramas_InstanceMapScript::GetData ( uint32  id) const
inlineoverridevirtual

Reimplemented from ZoneScript.

658 {
660 return 1;
661
662 return 0;
663 }
@ DATA_HAD_THADDIUS_GREET
Definition: naxxramas.h:75

References _hadThaddiusGreet, and DATA_HAD_THADDIUS_GREET.

◆ GetGuidData()

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::GetGuidData ( uint32  id) const
inlineoverridevirtual

Reimplemented from InstanceScript.

1064 {
1065 switch (id)
1066 {
1067 // GameObjects
1069 return _heiganGateGUID;
1070 case DATA_LOATHEB_GATE:
1071 return _loathebGateGUID;
1072 case DATA_FAERLINA_WEB:
1073 return _faerlinaWebGUID;
1074 case DATA_MAEXXNA_GATE:
1075 return _maexxnaGateGUID;
1077 return _gothikEnterGateGUID;
1079 return _gothikInnerGateGUID;
1081 return _gothikExitGateGUID;
1082 case DATA_HORSEMEN_GATE:
1083 return _horsemanGateGUID;
1084 case DATA_THADDIUS_GATE:
1085 return _thaddiusGateGUID;
1087 return _nothEntryGateGUID;
1089 return _kelthuzadFloorGUID;
1091 return _kelthuzadGateGUID;
1093 return _kelthuzadPortal1GUID;
1095 return _kelthuzadPortal2GUID;
1097 return _kelthuzadPortal3GUID;
1099 return _kelthuzadPortal4GUID;
1100
1101 // NPCs
1102 case DATA_THADDIUS_BOSS:
1103 return _thaddiusGUID;
1104 case DATA_STALAGG_BOSS:
1105 return _stalaggGUID;
1106 case DATA_FEUGEN_BOSS:
1107 return _feugenGUID;
1108 case DATA_GOTHIK_BOSS:
1109 return _gothikGUID;
1111 return _lichkingGUID;
1112 default:
1113 break;
1114 }
1115
1116 return ObjectGuid::Empty;
1117 }
@ DATA_GOTHIK_INNER_GATE
Definition: naxxramas.h:62
@ DATA_HEIGAN_ENTER_GATE
Definition: naxxramas.h:51
@ DATA_GOTHIK_BOSS
Definition: naxxramas.h:60
@ DATA_KELTHUZAD_FLOOR
Definition: naxxramas.h:66
@ DATA_NOTH_ENTRY_GATE
Definition: naxxramas.h:49
@ DATA_KELTHUZAD_GATE
Definition: naxxramas.h:74
@ DATA_GOTHIK_ENTER_GATE
Definition: naxxramas.h:61
@ DATA_LICH_KING_BOSS
Definition: naxxramas.h:65
@ DATA_KELTHUZAD_PORTAL_3
Definition: naxxramas.h:78
@ DATA_LOATHEB_GATE
Definition: naxxramas.h:52
@ DATA_KELTHUZAD_PORTAL_2
Definition: naxxramas.h:77
@ DATA_GOTHIK_EXIT_GATE
Definition: naxxramas.h:63
@ DATA_KELTHUZAD_PORTAL_1
Definition: naxxramas.h:76
@ DATA_HORSEMEN_GATE
Definition: naxxramas.h:64
@ DATA_THADDIUS_GATE
Definition: naxxramas.h:58
@ DATA_MAEXXNA_GATE
Definition: naxxramas.h:54
@ DATA_KELTHUZAD_PORTAL_4
Definition: naxxramas.h:79
@ DATA_FAERLINA_WEB
Definition: naxxramas.h:53
@ DATA_THADDIUS_BOSS
Definition: naxxramas.h:55
@ DATA_STALAGG_BOSS
Definition: naxxramas.h:56
@ DATA_FEUGEN_BOSS
Definition: naxxramas.h:57
static ObjectGuid const Empty
Definition: ObjectGuid.h:120
ObjectGuid _kelthuzadPortal1GUID
Definition: instance_naxxramas.cpp:136
ObjectGuid _gothikInnerGateGUID
Definition: instance_naxxramas.cpp:131
ObjectGuid _gothikGUID
Definition: instance_naxxramas.cpp:158
ObjectGuid _maexxnaGateGUID
Definition: instance_naxxramas.cpp:128
ObjectGuid _kelthuzadPortal4GUID
Definition: instance_naxxramas.cpp:139
ObjectGuid _kelthuzadFloorGUID
Definition: instance_naxxramas.cpp:134
ObjectGuid _feugenGUID
Definition: instance_naxxramas.cpp:160
ObjectGuid _gothikEnterGateGUID
Definition: instance_naxxramas.cpp:130
ObjectGuid _loathebGateGUID
Definition: instance_naxxramas.cpp:124
ObjectGuid _kelthuzadPortal3GUID
Definition: instance_naxxramas.cpp:138
ObjectGuid _faerlinaWebGUID
Definition: instance_naxxramas.cpp:126
ObjectGuid _horsemanGateGUID
Definition: instance_naxxramas.cpp:133
ObjectGuid _kelthuzadGateGUID
Definition: instance_naxxramas.cpp:135
ObjectGuid _heiganGateGUID
Definition: instance_naxxramas.cpp:122
ObjectGuid _lichkingGUID
Definition: instance_naxxramas.cpp:167
ObjectGuid _thaddiusGateGUID
Definition: instance_naxxramas.cpp:129
ObjectGuid _gothikExitGateGUID
Definition: instance_naxxramas.cpp:132
ObjectGuid _thaddiusGUID
Definition: instance_naxxramas.cpp:157
ObjectGuid _stalaggGUID
Definition: instance_naxxramas.cpp:159
ObjectGuid _nothEntryGateGUID
Definition: instance_naxxramas.cpp:120
ObjectGuid _kelthuzadPortal2GUID
Definition: instance_naxxramas.cpp:137

References _faerlinaWebGUID, _feugenGUID, _gothikEnterGateGUID, _gothikExitGateGUID, _gothikGUID, _gothikInnerGateGUID, _heiganGateGUID, _horsemanGateGUID, _kelthuzadFloorGUID, _kelthuzadGateGUID, _kelthuzadPortal1GUID, _kelthuzadPortal2GUID, _kelthuzadPortal3GUID, _kelthuzadPortal4GUID, _lichkingGUID, _loathebGateGUID, _maexxnaGateGUID, _nothEntryGateGUID, _stalaggGUID, _thaddiusGateGUID, _thaddiusGUID, DATA_FAERLINA_WEB, DATA_FEUGEN_BOSS, DATA_GOTHIK_BOSS, DATA_GOTHIK_ENTER_GATE, DATA_GOTHIK_EXIT_GATE, DATA_GOTHIK_INNER_GATE, DATA_HEIGAN_ENTER_GATE, DATA_HORSEMEN_GATE, DATA_KELTHUZAD_FLOOR, DATA_KELTHUZAD_GATE, DATA_KELTHUZAD_PORTAL_1, DATA_KELTHUZAD_PORTAL_2, DATA_KELTHUZAD_PORTAL_3, DATA_KELTHUZAD_PORTAL_4, DATA_LICH_KING_BOSS, DATA_LOATHEB_GATE, DATA_MAEXXNA_GATE, DATA_NOTH_ENTRY_GATE, DATA_STALAGG_BOSS, DATA_THADDIUS_BOSS, DATA_THADDIUS_GATE, and ObjectGuid::Empty.

◆ HeiganEruptSections()

void instance_naxxramas::instance_naxxramas_InstanceMapScript::HeiganEruptSections ( uint32  section)
inline
189 {
190 for (uint8 i = 0; i < 4; ++i)
191 {
192 if (i == section)
193 continue;
194
195 for (auto itr : HeiganEruption[i])
196 {
197 itr->SendCustomAnim(itr->GetGoAnimProgress());
198 itr->CastSpell(nullptr, SPELL_ERUPTION);
199 }
200 }
201 }
@ SPELL_ERUPTION
Definition: boss_garr.cpp:42

References HeiganEruption, and SPELL_ERUPTION.

Referenced by SetData().

◆ IsEncounterInProgress()

bool instance_naxxramas::instance_naxxramas_InstanceMapScript::IsEncounterInProgress ( ) const
inlineoverridevirtual

Reimplemented from InstanceScript.

204 {
205 for (uint8 i = 0; i < MAX_ENCOUNTERS; ++i)
206 {
207 if (GetBossState(i) == IN_PROGRESS)
208 return true;
209 }
210 return false;
211 }
@ IN_PROGRESS
Definition: InstanceScript.h:58

References InstanceScript::GetBossState(), IN_PROGRESS, and MAX_ENCOUNTERS.

◆ OnCreatureCreate()

void instance_naxxramas::instance_naxxramas_InstanceMapScript::OnCreatureCreate ( Creature creature)
inlineoverridevirtual

Reimplemented from InstanceScript.

214 {
215 switch (creature->GetEntry())
216 {
217 case NPC_PATCHWERK:
218 _patchwerkGUID = creature->GetGUID();
219 return;
221 PatchwerkRoomTrash.push_back(creature->GetGUID());
222 return;
223 case NPC_BILE_RETCHER:
224 if (creature->GetPositionY() > -3258.0f) // we want only those inside the room, not before
225 PatchwerkRoomTrash.push_back(creature->GetGUID());
226 return;
228 if (creature->GetPositionY() > -3258.0f) // we want only those inside the room, not before
229 PatchwerkRoomTrash.push_back(creature->GetGUID());
230 return;
232 PatchwerkRoomTrash.push_back(creature->GetGUID());
233 return;
235 PatchwerkRoomTrash.push_back(creature->GetGUID());
236 return;
238 PatchwerkRoomTrash.push_back(creature->GetGUID());
239 return;
240 case NPC_THADDIUS:
241 _thaddiusGUID = creature->GetGUID();
242 return;
243 case NPC_STALAGG:
244 _stalaggGUID = creature->GetGUID();
245 return;
246 case NPC_FEUGEN:
247 _feugenGUID = creature->GetGUID();
248 return;
249 case NPC_GOTHIK:
250 _gothikGUID = creature->GetGUID();
251 return;
253 _blaumeuxGUID = creature->GetGUID();
254 return;
255 case NPC_SIR_ZELIEK:
256 _zeliekGUID = creature->GetGUID();
257 return;
259 _rivendareGUID = creature->GetGUID();
260 return;
262 _korthazzGUID = creature->GetGUID();
263 return;
264 case NPC_SAPPHIRON:
265 _sapphironGUID = creature->GetGUID();
266 return;
267 case NPC_KELTHUZAD:
268 _kelthuzadGUID = creature->GetGUID();
269 return;
270 case NPC_LICH_KING:
271 _lichkingGUID = creature->GetGUID();
272 return;
273 }
274
276 }
@ NPC_FEUGEN
Definition: naxxramas.h:137
@ NPC_THADDIUS
Definition: naxxramas.h:135
@ NPC_GOTHIK
Definition: naxxramas.h:170
@ NPC_LADY_BLAUMEUX
Definition: naxxramas.h:145
@ NPC_MAD_SCIENTIST
Definition: naxxramas.h:164
@ NPC_SLUDGE_BELCHER
Definition: naxxramas.h:167
@ NPC_SAPPHIRON
Definition: naxxramas.h:149
@ NPC_STALAGG
Definition: naxxramas.h:136
@ NPC_PATCHWERK
Definition: naxxramas.h:161
@ NPC_BILE_RETCHER
Definition: naxxramas.h:163
@ NPC_SURGICAL_ASSIST
Definition: naxxramas.h:166
@ NPC_THANE_KORTHAZZ
Definition: naxxramas.h:146
@ NPC_PATCHWORK_GOLEM
Definition: naxxramas.h:162
@ NPC_KELTHUZAD
Definition: naxxramas.h:152
@ NPC_LIVING_MONSTROSITY
Definition: naxxramas.h:165
@ NPC_SIR_ZELIEK
Definition: naxxramas.h:144
@ NPC_LICH_KING
Definition: trial_of_the_crusader.h:143
@ NPC_BARON_RIVENDARE
Definition: stratholme.h:43
uint32 GetEntry() const
Definition: Object.h:112
static ObjectGuid GetGUID(Object const *o)
Definition: Object.h:109
float GetPositionY() const
Definition: Position.h:117
void OnCreatureCreate(Creature *creature) override
Definition: InstanceScript.cpp:58
ObjectGuid _rivendareGUID
Definition: instance_naxxramas.cpp:162
ObjectGuid _sapphironGUID
Definition: instance_naxxramas.cpp:165
ObjectGuid _kelthuzadGUID
Definition: instance_naxxramas.cpp:166
ObjectGuid _blaumeuxGUID
Definition: instance_naxxramas.cpp:163
ObjectGuid _korthazzGUID
Definition: instance_naxxramas.cpp:164
ObjectGuid _patchwerkGUID
Definition: instance_naxxramas.cpp:156
ObjectGuid _zeliekGUID
Definition: instance_naxxramas.cpp:161

References _blaumeuxGUID, _feugenGUID, _gothikGUID, _kelthuzadGUID, _korthazzGUID, _lichkingGUID, _patchwerkGUID, _rivendareGUID, _sapphironGUID, _stalaggGUID, _thaddiusGUID, _zeliekGUID, Object::GetEntry(), Object::GetGUID(), Position::GetPositionY(), NPC_BARON_RIVENDARE, NPC_BILE_RETCHER, NPC_FEUGEN, NPC_GOTHIK, NPC_KELTHUZAD, NPC_LADY_BLAUMEUX, NPC_LICH_KING, NPC_LIVING_MONSTROSITY, NPC_MAD_SCIENTIST, NPC_PATCHWERK, NPC_PATCHWORK_GOLEM, NPC_SAPPHIRON, NPC_SIR_ZELIEK, NPC_SLUDGE_BELCHER, NPC_STALAGG, NPC_SURGICAL_ASSIST, NPC_THADDIUS, NPC_THANE_KORTHAZZ, InstanceScript::OnCreatureCreate(), and PatchwerkRoomTrash.

◆ OnGameObjectCreate()

void instance_naxxramas::instance_naxxramas_InstanceMapScript::OnGameObjectCreate ( GameObject pGo)
inlineoverridevirtual

Reimplemented from InstanceScript.

279 {
280 if (pGo->GetGOInfo()->displayId == 6785 || pGo->GetGOInfo()->displayId == 1287)
281 {
282 HeiganEruption[GetEruptionSection(pGo->GetPositionX(), pGo->GetPositionY())].insert(pGo);
283 return;
284 }
285
286 switch (pGo->GetEntry())
287 {
291 {
293 }
294 break;
295 case GO_GLUTH_GATE:
296 _gluthGateGUID = pGo->GetGUID();
298 {
300 }
301 break;
305 {
307 }
308 break;
310 _nothExitGateGUID = pGo->GetGUID();
312 {
314 }
315 break;
317 _heiganGateGUID = pGo->GetGUID();
319 {
321 }
322 break;
326 {
328 }
329 break;
330 case GO_LOATHEB_GATE:
331 _loathebGateGUID = pGo->GetGUID();
333 {
335 }
336 break;
338 _anubNextGateGUID = pGo->GetGUID();
340 {
342 }
343 break;
344 case GO_FAERLINA_GATE:
345 _faerlinaGateGUID = pGo->GetGUID();
347 {
349 }
350 break;
351 case GO_FAERLINA_WEB:
352 _faerlinaWebGUID = pGo->GetGUID();
354 {
356 }
357 break;
358 case GO_MAEXXNA_GATE:
359 _maexxnaGateGUID = pGo->GetGUID();
361 {
363 }
364 break;
365 case GO_THADDIUS_GATE:
366 _thaddiusGateGUID = pGo->GetGUID();
368 {
370 }
371 break;
374 break;
377 break;
381 {
383 }
384 break;
385 case GO_HORSEMEN_GATE:
386 _horsemanGateGUID = pGo->GetGUID();
388 {
390 }
391 break;
394 break;
398 {
400 }
401 break;
404 break;
407 break;
410 break;
413 break;
417 {
419 }
420 break;
424 {
427 }
428 break;
432 {
435 }
436 break;
440 {
443 }
444 break;
448 {
451 }
452 break;
453
454 // Glow portals at center-side
458 {
460 }
461 break;
465 {
467 }
468 break;
472 {
474 }
475 break;
479 {
481 }
482 break;
483
484 // Glow portals at boss-side
488 {
490 }
491 break;
495 {
497 }
498 break;
502 {
504 }
505 break;
509 {
511 }
512 break;
513 }
514
516 }
@ GO_HEIGAN_ENTRY_GATE
Definition: naxxramas.h:88
@ GO_MAEXXNA_PORTAL
Definition: naxxramas.h:116
@ GO_GOTHIK_EXIT_GATE
Definition: naxxramas.h:99
@ GO_PATCHWERK_GATE
Definition: naxxramas.h:84
@ GO_THADDIUS_GATE
Definition: naxxramas.h:96
@ GO_LOATHEB_GATE
Definition: naxxramas.h:90
@ GO_HEIGAN_EXIT_GATE
Definition: naxxramas.h:89
@ GO_PLAGUE_EYE_PORTAL
Definition: naxxramas.h:121
@ GO_MAEXXNA_GATE
Definition: naxxramas.h:95
@ GO_KELTHUZAD_FLOOR
Definition: naxxramas.h:107
@ GO_ABOM_EYE_PORTAL
Definition: naxxramas.h:123
@ GO_LOATHEB_PORTAL
Definition: naxxramas.h:114
@ GO_KELTHUZAD_PORTAL_3
Definition: naxxramas.h:111
@ GO_SAPPHIRON_GATE
Definition: naxxramas.h:101
@ GO_SPIDER_EYE_PORTAL
Definition: naxxramas.h:122
@ GO_KELTHUZAD_GATE
Definition: naxxramas.h:108
@ GO_NOTH_ENTRY_GATE
Definition: naxxramas.h:86
@ GO_THADDIUS_PORTAL
Definition: naxxramas.h:115
@ GO_GOTHIK_ENTER_GATE
Definition: naxxramas.h:97
@ GO_CONS_EYE_RAMP_BOSS
Definition: naxxramas.h:129
@ GO_PLAG_EYE_RAMP_BOSS
Definition: naxxramas.h:127
@ GO_HORSEMAN_PORTAL
Definition: naxxramas.h:117
@ GO_FAERLINA_WEB
Definition: naxxramas.h:93
@ GO_ANUB_NEXT_GATE
Definition: naxxramas.h:92
@ GO_MILI_EYE_RAMP_BOSS
Definition: naxxramas.h:128
@ GO_NOTH_EXIT_GATE
Definition: naxxramas.h:87
@ GO_KELTHUZAD_PORTAL_1
Definition: naxxramas.h:109
@ GO_DEATHKNIGHT_EYE_PORTAL
Definition: naxxramas.h:120
@ GO_KELTHUZAD_PORTAL_2
Definition: naxxramas.h:110
@ GO_KELTHUZAD_PORTAL_4
Definition: naxxramas.h:112
@ GO_FAERLINA_GATE
Definition: naxxramas.h:94
@ GO_HORSEMEN_GATE
Definition: naxxramas.h:100
@ GO_GLUTH_GATE
Definition: naxxramas.h:85
@ GO_GOTHIK_INNER_GATE
Definition: naxxramas.h:98
@ GO_ARAC_EYE_RAMP_BOSS
Definition: naxxramas.h:126
@ BOSS_HORSEMAN
Definition: naxxramas.h:41
@ BOSS_ANUB
Definition: naxxramas.h:35
@ BOSS_HEIGAN
Definition: naxxramas.h:33
@ BOSS_LOATHEB
Definition: naxxramas.h:34
@ BOSS_GLUTH
Definition: naxxramas.h:31
@ BOSS_GOTHIK
Definition: naxxramas.h:40
@ BOSS_SAPPHIRON
Definition: naxxramas.h:42
@ BOSS_MAEXXNA
Definition: naxxramas.h:37
@ BOSS_THADDIUS
Definition: naxxramas.h:38
@ BOSS_NOTH
Definition: naxxramas.h:32
@ BOSS_PATCHWERK
Definition: naxxramas.h:29
@ BOSS_FAERLINA
Definition: naxxramas.h:36
uint8 GetEruptionSection(float x, float y)
Definition: instance_naxxramas.cpp:36
@ GO_FLAG_NOT_SELECTABLE
Definition: SharedDefines.h:1607
@ DONE
Definition: InstanceScript.h:60
@ GO_STATE_ACTIVE
Definition: GameObjectData.h:689
void SetGoState(GOState state)
Definition: GameObject.cpp:2477
GameObjectTemplate const * GetGOInfo() const
Definition: GameObject.h:136
void RemoveGameObjectFlag(GameObjectFlags flags)
Definition: GameObject.h:219
uint32 displayId
Definition: GameObjectData.h:34
float GetPositionX() const
Definition: Position.h:116
void OnGameObjectCreate(GameObject *go) override
Definition: InstanceScript.cpp:73
ObjectGuid _nothExitGateGUID
Definition: instance_naxxramas.cpp:121
ObjectGuid _loathebPortalGUID
Definition: instance_naxxramas.cpp:142
ObjectGuid _plagueEyePortalGUID
Definition: instance_naxxramas.cpp:146
ObjectGuid _deathknightGlowEyePortalGUID
Definition: instance_naxxramas.cpp:149
ObjectGuid _sapphironGateGUID
Definition: instance_naxxramas.cpp:140
ObjectGuid _abomGlowEyePortalGUID
Definition: instance_naxxramas.cpp:152
ObjectGuid _horsemanPortalGUID
Definition: instance_naxxramas.cpp:141
ObjectGuid _plagueGlowEyePortalGUID
Definition: instance_naxxramas.cpp:150
ObjectGuid _thaddiusPortalGUID
Definition: instance_naxxramas.cpp:144
ObjectGuid _gluthGateGUID
Definition: instance_naxxramas.cpp:119
ObjectGuid _spiderGlowEyePortalGUID
Definition: instance_naxxramas.cpp:151
ObjectGuid _anubNextGateGUID
Definition: instance_naxxramas.cpp:125
ObjectGuid _deathknightEyePortalGUID
Definition: instance_naxxramas.cpp:145
ObjectGuid _faerlinaGateGUID
Definition: instance_naxxramas.cpp:127
ObjectGuid _abomEyePortalGUID
Definition: instance_naxxramas.cpp:148
ObjectGuid _maexxnaPortalGUID
Definition: instance_naxxramas.cpp:143
ObjectGuid _heiganGateExitGUID
Definition: instance_naxxramas.cpp:123
ObjectGuid _patchwerkGateGUID
Definition: instance_naxxramas.cpp:118
ObjectGuid _spiderEyePortalGUID
Definition: instance_naxxramas.cpp:147

References _abomEyePortalGUID, _abomGlowEyePortalGUID, _anubNextGateGUID, _deathknightEyePortalGUID, _deathknightGlowEyePortalGUID, _faerlinaGateGUID, _faerlinaWebGUID, _gluthGateGUID, _gothikEnterGateGUID, _gothikExitGateGUID, _gothikInnerGateGUID, _heiganGateExitGUID, _heiganGateGUID, _horsemanGateGUID, _horsemanPortalGUID, _kelthuzadFloorGUID, _kelthuzadGateGUID, _kelthuzadPortal1GUID, _kelthuzadPortal2GUID, _kelthuzadPortal3GUID, _kelthuzadPortal4GUID, _loathebGateGUID, _loathebPortalGUID, _maexxnaGateGUID, _maexxnaPortalGUID, _nothEntryGateGUID, _nothExitGateGUID, _patchwerkGateGUID, _plagueEyePortalGUID, _plagueGlowEyePortalGUID, _sapphironGateGUID, _speakTimer, _spiderEyePortalGUID, _spiderGlowEyePortalGUID, _thaddiusGateGUID, _thaddiusPortalGUID, BOSS_ANUB, BOSS_FAERLINA, BOSS_GLUTH, BOSS_GOTHIK, BOSS_HEIGAN, BOSS_HORSEMAN, BOSS_LOATHEB, BOSS_MAEXXNA, BOSS_NOTH, BOSS_PATCHWERK, BOSS_SAPPHIRON, BOSS_THADDIUS, GameObjectTemplate::displayId, DONE, InstanceScript::GetBossState(), Object::GetEntry(), GetEruptionSection(), GameObject::GetGOInfo(), Object::GetGUID(), Position::GetPositionX(), Position::GetPositionY(), GO_ABOM_EYE_PORTAL, GO_ANUB_NEXT_GATE, GO_ARAC_EYE_RAMP_BOSS, GO_CONS_EYE_RAMP_BOSS, GO_DEATHKNIGHT_EYE_PORTAL, GO_FAERLINA_GATE, GO_FAERLINA_WEB, GO_FLAG_NOT_SELECTABLE, GO_GLUTH_GATE, GO_GOTHIK_ENTER_GATE, GO_GOTHIK_EXIT_GATE, GO_GOTHIK_INNER_GATE, GO_HEIGAN_ENTRY_GATE, GO_HEIGAN_EXIT_GATE, GO_HORSEMAN_PORTAL, GO_HORSEMEN_GATE, GO_KELTHUZAD_FLOOR, GO_KELTHUZAD_GATE, GO_KELTHUZAD_PORTAL_1, GO_KELTHUZAD_PORTAL_2, GO_KELTHUZAD_PORTAL_3, GO_KELTHUZAD_PORTAL_4, GO_LOATHEB_GATE, GO_LOATHEB_PORTAL, GO_MAEXXNA_GATE, GO_MAEXXNA_PORTAL, GO_MILI_EYE_RAMP_BOSS, GO_NOTH_ENTRY_GATE, GO_NOTH_EXIT_GATE, GO_PATCHWERK_GATE, GO_PLAG_EYE_RAMP_BOSS, GO_PLAGUE_EYE_PORTAL, GO_SAPPHIRON_GATE, GO_SPIDER_EYE_PORTAL, GO_STATE_ACTIVE, GO_THADDIUS_GATE, GO_THADDIUS_PORTAL, HeiganEruption, InstanceScript::OnGameObjectCreate(), GameObject::RemoveGameObjectFlag(), and GameObject::SetGoState().

◆ OnGameObjectRemove()

void instance_naxxramas::instance_naxxramas_InstanceMapScript::OnGameObjectRemove ( GameObject pGo)
inlineoverridevirtual

Reimplemented from InstanceScript.

519 {
520 if (pGo->GetGOInfo()->displayId == 6785 || pGo->GetGOInfo()->displayId == 1287)
521 {
522 uint32 section = GetEruptionSection(pGo->GetPositionX(), pGo->GetPositionY());
523 HeiganEruption[section].erase(pGo);
524 return;
525 }
526 if (pGo->GetEntry() == GO_SAPPHIRON_BIRTH)
527 {
529 {
530 cr->AI()->DoAction(ACTION_SAPPHIRON_BIRTH);
531 }
532 }
533 }
std::uint32_t uint32
Definition: Define.h:107
@ GO_SAPPHIRON_BIRTH
Definition: naxxramas.h:106
@ ACTION_SAPPHIRON_BIRTH
Definition: naxxramas.h:178
Definition: Creature.h:43
Creature * GetCreature(ObjectGuid const guid)
Definition: Map.cpp:3317

References _sapphironGUID, ACTION_SAPPHIRON_BIRTH, GameObjectTemplate::displayId, Map::GetCreature(), Object::GetEntry(), GetEruptionSection(), GameObject::GetGOInfo(), Position::GetPositionX(), Position::GetPositionY(), GO_SAPPHIRON_BIRTH, HeiganEruption, and InstanceScript::instance.

◆ ReadSaveDataMore()

void instance_naxxramas::instance_naxxramas_InstanceMapScript::ReadSaveDataMore ( std::istringstream &  data)
inlineoverridevirtual

Reimplemented from InstanceScript.

1120 {
1121 data >> immortalAchievement;
1122 }

References immortalAchievement.

◆ SetBossState()

bool instance_naxxramas::instance_naxxramas_InstanceMapScript::SetBossState ( uint32  bossId,
EncounterState  state 
)
inlineoverridevirtual

Reimplemented from InstanceScript.

666 {
667 // pull all the trash if not killed
668 if (bossId == BOSS_PATCHWERK && state == IN_PROGRESS)
669 {
671 {
672 for (auto& itr : PatchwerkRoomTrash)
673 {
674 Creature* trash = ObjectAccessor::GetCreature(*patch, itr);
675 if (trash && trash->IsAlive() && !trash->IsInCombat())
676 {
677 trash->AI()->AttackStart(patch->GetVictim());
678 }
679 }
680 }
681 }
682
683 // Horseman handling
684 if (bossId == BOSS_HORSEMAN && !_horsemanLoadDoneState)
685 {
686 if (state == DONE)
687 {
690 if (_horsemanKilled < 4)
691 {
692 return false;
693 }
694 // All horsemans are killed
696 {
697 cr->CastSpell(cr, 59450, true); // credit
698 }
699 }
700
701 // respawn
702 else if (state == NOT_STARTED && _horsemanKilled > 0)
703 {
704 Creature* cr;
705 _horsemanKilled = 0;
707 {
708 if (!cr->IsAlive())
709 {
710 cr->SetPosition(cr->GetHomePosition());
711 cr->Respawn();
712 }
713 }
715 {
716 if (!cr->IsAlive())
717 {
718 cr->SetPosition(cr->GetHomePosition());
719 cr->Respawn();
720 }
721 }
722 if ((cr = instance->GetCreature(_zeliekGUID)))
723 {
724 if (!cr->IsAlive())
725 {
726 cr->SetPosition(cr->GetHomePosition());
727 cr->Respawn();
728 }
729 }
731 {
732 if (!cr->IsAlive())
733 {
734 cr->SetPosition(cr->GetHomePosition());
735 cr->Respawn();
736 }
737 }
738 }
739 else if (state == IN_PROGRESS)
740 {
741 Creature* cr;
743 {
745 }
747 {
749 }
750 if ((cr = instance->GetCreature(_zeliekGUID)))
751 {
753 }
755 {
757 }
758 }
759
760 if (state == NOT_STARTED)
761 {
762 _horsemanTimer = 0;
763 }
764 }
765
766 if (!InstanceScript::SetBossState(bossId, state))
767 return false;
768
769 // Bosses data
770 switch (bossId)
771 {
772 case BOSS_KELTHUZAD:
773 if (state == NOT_STARTED)
774 {
776 }
777 break;
778 case BOSS_FAERLINA:
779 if (state == NOT_STARTED)
780 {
781 faerlinaAchievement = true;
782 }
783 break;
784 case BOSS_THADDIUS:
785 if (state == NOT_STARTED)
786 {
787 thaddiusAchievement = true;
788 }
789 break;
790 case BOSS_LOATHEB:
791 if (state == NOT_STARTED)
792 {
793 loathebAchievement = true;
794 }
795 break;
796 case BOSS_HEIGAN:
797 if (state == NOT_STARTED)
798 {
799 heiganAchievement = true;
800 }
801 break;
802 case BOSS_SAPPHIRON:
803 if (state == DONE)
804 {
805 _speakTimer = 1;
806 // Load KT's grid so he can talk
807 instance->LoadGrid(3763.43f, -5115.87f);
808 }
809 else if (state == NOT_STARTED)
810 {
812 }
813 break;
814 default:
815 break;
816 }
817
818 // Save instance and open gates
819 if (state == DONE)
820 {
821 SaveToDB();
822
823 switch (bossId)
824 {
825 case BOSS_PATCHWERK:
827 {
828 go->SetGoState(GO_STATE_ACTIVE);
829 }
830 break;
831 case BOSS_GLUTH:
833 {
834 go->SetGoState(GO_STATE_ACTIVE);
835 }
837 {
838 go->SetGoState(GO_STATE_ACTIVE);
839 }
840 break;
841 case BOSS_NOTH:
843 {
844 go->SetGoState(GO_STATE_ACTIVE);
845 }
847 {
848 go->SetGoState(GO_STATE_ACTIVE);
849 }
850 break;
851 case BOSS_HEIGAN:
853 {
854 go->SetGoState(GO_STATE_ACTIVE);
855 }
857 {
858 go->SetGoState(GO_STATE_ACTIVE);
859 }
860 break;
861 case BOSS_LOATHEB:
863 {
864 go->SetGoState(GO_STATE_ACTIVE);
865 }
867 {
868 go->SetGoState(GO_STATE_ACTIVE);
869 go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
870 }
872 {
873 go->SetGoState(GO_STATE_ACTIVE);
874 }
876 {
877 go->SetGoState(GO_STATE_ACTIVE);
878 }
879 events.ScheduleEvent(EVENT_KELTHUZAD_WING_TAUNT, 6s);
880 break;
881 case BOSS_ANUB:
883 {
884 go->SetGoState(GO_STATE_ACTIVE);
885 }
886 break;
887 case BOSS_FAERLINA:
889 {
890 go->SetGoState(GO_STATE_ACTIVE);
891 }
893 {
894 go->SetGoState(GO_STATE_ACTIVE);
895 }
896 break;
897 case BOSS_MAEXXNA:
899 {
900 go->SetGoState(GO_STATE_ACTIVE);
901 }
903 {
904 go->SetGoState(GO_STATE_ACTIVE);
905 go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
906 }
908 {
909 go->SetGoState(GO_STATE_ACTIVE);
910 }
912 {
913 go->SetGoState(GO_STATE_ACTIVE);
914 }
915 events.ScheduleEvent(EVENT_KELTHUZAD_WING_TAUNT, 6s);
916 break;
917 case BOSS_GOTHIK:
919 {
920 go->SetGoState(GO_STATE_ACTIVE);
921 }
923 {
924 go->SetGoState(GO_STATE_ACTIVE);
925 }
927 {
928 go->SetGoState(GO_STATE_ACTIVE);
929 }
930 break;
931 case BOSS_SAPPHIRON:
932 events.ScheduleEvent(EVENT_FROSTWYRM_WATERFALL_DOOR, 5s);
933 break;
934 case BOSS_THADDIUS:
936 {
937 go->SetGoState(GO_STATE_ACTIVE);
938 go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
939 }
941 {
942 go->SetGoState(GO_STATE_ACTIVE);
943 }
945 {
946 go->SetGoState(GO_STATE_ACTIVE);
947 }
948 events.ScheduleEvent(EVENT_KELTHUZAD_WING_TAUNT, 6s);
949 break;
950 case BOSS_HORSEMAN:
952 {
953 go->SetGoState(GO_STATE_ACTIVE);
954 go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
955 }
957 {
958 go->SetGoState(GO_STATE_ACTIVE);
959 }
961 {
962 go->SetGoState(GO_STATE_ACTIVE);
963 }
964 events.ScheduleEvent(EVENT_KELTHUZAD_WING_TAUNT, 6s);
965 break;
966 default:
967 break;
968 }
969 }
970 return true;
971 }
events
Definition: boss_sartura.cpp:43
@ BOSS_KELTHUZAD
Definition: naxxramas.h:43
@ EVENT_FROSTWYRM_WATERFALL_DOOR
Definition: naxxramas.h:200
@ EVENT_KELTHUZAD_WING_TAUNT
Definition: naxxramas.h:199
Creature * GetCreature(WorldObject const &u, ObjectGuid const guid)
Definition: ObjectAccessor.cpp:210
virtual void AttackStart(Unit *)
Definition: UnitAI.cpp:27
void SetInCombatWithZone()
Set in combat all units in the dungeon/raid. Affect only units with IsAIEnabled.
Definition: Creature.cpp:2811
void Respawn(bool force=false)
Definition: Creature.cpp:2035
void GetHomePosition(float &x, float &y, float &z, float &ori) const
Definition: Creature.h:338
void SetPosition(float x, float y, float z, float o)
Definition: Creature.cpp:3154
CreatureAI * AI() const
Definition: Creature.h:140
Definition: GameObject.h:120
bool IsAlive() const
Definition: Unit.h:1654
bool IsInCombat() const
Definition: Unit.h:884
virtual bool SetBossState(uint32 id, EncounterState state)
Definition: InstanceScript.cpp:373
void SaveToDB()
Definition: InstanceScript.cpp:41
void LoadGrid(float x, float y)
Definition: Map.cpp:495
GameObject * GetGameObject(ObjectGuid const guid)
Definition: Map.cpp:3322

References _abomEyePortalGUID, _abomGlowEyePortalGUID, _anubNextGateGUID, _blaumeuxGUID, _deathknightEyePortalGUID, _deathknightGlowEyePortalGUID, _faerlinaGateGUID, _gluthGateGUID, _gothikEnterGateGUID, _gothikExitGateGUID, _heiganGateExitGUID, _heiganGateGUID, _horsemanGateGUID, _horsemanKilled, _horsemanLoadDoneState, _horsemanPortalGUID, _horsemanTimer, _korthazzGUID, _loathebGateGUID, _loathebPortalGUID, _maexxnaGateGUID, _maexxnaPortalGUID, _nothExitGateGUID, _patchwerkGateGUID, _patchwerkGUID, _plagueEyePortalGUID, _plagueGlowEyePortalGUID, _rivendareGUID, _speakTimer, _spiderEyePortalGUID, _spiderGlowEyePortalGUID, _thaddiusGateGUID, _thaddiusPortalGUID, _zeliekGUID, abominationsKilled, Creature::AI(), UnitAI::AttackStart(), BOSS_ANUB, BOSS_FAERLINA, BOSS_GLUTH, BOSS_GOTHIK, BOSS_HEIGAN, BOSS_HORSEMAN, BOSS_KELTHUZAD, BOSS_LOATHEB, BOSS_MAEXXNA, BOSS_NOTH, BOSS_PATCHWERK, BOSS_SAPPHIRON, BOSS_THADDIUS, DONE, EVENT_FROSTWYRM_WATERFALL_DOOR, EVENT_KELTHUZAD_WING_TAUNT, faerlinaAchievement, Map::GetCreature(), ObjectAccessor::GetCreature(), Map::GetGameObject(), Creature::GetHomePosition(), GO_FLAG_NOT_SELECTABLE, GO_STATE_ACTIVE, heiganAchievement, IN_PROGRESS, InstanceScript::instance, Unit::IsAlive(), Unit::IsInCombat(), Map::LoadGrid(), loathebAchievement, NOT_STARTED, PatchwerkRoomTrash, Creature::Respawn(), sapphironAchievement, InstanceScript::SaveToDB(), InstanceScript::SetBossState(), Creature::SetInCombatWithZone(), Creature::SetPosition(), and thaddiusAchievement.

◆ SetData()

void instance_naxxramas::instance_naxxramas_InstanceMapScript::SetData ( uint32  id,
uint32  data 
)
inlineoverridevirtual

Reimplemented from ZoneScript.

622 {
623 switch (id)
624 {
627 return;
629 faerlinaAchievement = false;
630 return;
632 thaddiusAchievement = false;
633 return;
635 loathebAchievement = false;
636 return;
638 sapphironAchievement = false;
639 return;
640 case DATA_DANCE_FAIL:
641 heiganAchievement = false;
642 return;
645 SaveToDB();
646 return;
649 return;
651 _hadThaddiusGreet = (data == 1);
652 default:
653 return;
654 }
655 }
@ DATA_HUNDRED_CLUB
Definition: naxxramas.h:71
@ DATA_FRENZY_REMOVED
Definition: naxxramas.h:68
@ DATA_CHARGES_CROSSED
Definition: naxxramas.h:69
@ DATA_IMMORTAL_FAIL
Definition: naxxramas.h:73
@ DATA_DANCE_FAIL
Definition: naxxramas.h:72
@ DATA_ABOMINATION_KILLED
Definition: naxxramas.h:67
@ DATA_SPORE_KILLED
Definition: naxxramas.h:70
@ DATA_HEIGAN_ERUPTION
Definition: naxxramas.h:50
void HeiganEruptSections(uint32 section)
Definition: instance_naxxramas.cpp:188

References _hadThaddiusGreet, abominationsKilled, DATA_ABOMINATION_KILLED, DATA_CHARGES_CROSSED, DATA_DANCE_FAIL, DATA_FRENZY_REMOVED, DATA_HAD_THADDIUS_GREET, DATA_HEIGAN_ERUPTION, DATA_HUNDRED_CLUB, DATA_IMMORTAL_FAIL, DATA_SPORE_KILLED, faerlinaAchievement, heiganAchievement, HeiganEruptSections(), immortalAchievement, loathebAchievement, sapphironAchievement, InstanceScript::SaveToDB(), and thaddiusAchievement.

◆ Update()

void instance_naxxramas::instance_naxxramas_InstanceMapScript::Update ( uint32  diff)
inlineoverridevirtual

Reimplemented from InstanceScript.

974 {
975 if (_speakTimer)
976 {
979 if (kel && lich)
980 {
981 _speakTimer += diff;
982 }
983 else
984 {
985 return;
986 }
987 if (_speakTimer > 10000 && _speakTimer < 20000)
988 {
989 kel->AI()->Talk(SAY_SAPP_DIALOG1);
990 _speakTimer = 20000;
991 }
992 else if (_speakTimer > 30000 && _speakTimer < 40000)
993 {
994 lich->AI()->Talk(SAY_SAPP_DIALOG2_LICH);
995 _speakTimer = 40000;
996 }
997 else if (_speakTimer > 54000 && _speakTimer < 60000)
998 {
999 kel->AI()->Talk(SAY_SAPP_DIALOG3);
1000 _speakTimer = 60000;
1001 }
1002 else if (_speakTimer > 70000 && _speakTimer < 80000)
1003 {
1004 lich->AI()->Talk(SAY_SAPP_DIALOG4_LICH);
1005 _speakTimer = 80000;
1006 }
1007 else if (_speakTimer > 92000 && _speakTimer < 100000)
1008 {
1009 kel->AI()->Talk(SAY_SAPP_DIALOG5);
1010 _speakTimer = 100000;
1011 }
1012 else if (_speakTimer > 105000)
1013 {
1014 kel->AI()->Talk(SAY_SAPP_DIALOG6);
1015 _speakTimer = 0;
1017 {
1018 go->SetGoState(GO_STATE_ACTIVE);
1019 }
1020 }
1021 }
1022
1023 // And They would all
1024 if (_horsemanTimer)
1025 {
1026 _horsemanTimer += diff;
1027 }
1028
1030 {
1031 if (_screamTimer <= diff)
1032 {
1034 _screamTimer = (2 * MINUTE + urand(0, 30)) * IN_MILLISECONDS;
1035 }
1036 else
1037 {
1038 _screamTimer -= diff;
1039 }
1040 }
1041
1042 events.Update(diff);
1043 switch (events.ExecuteEvent())
1044 {
1046 // Loads Kel'Thuzad's grid. We need this as he must be active in order for his texts to work.
1047 instance->LoadGrid(3749.67f, -5114.06f);
1048 if (Creature* kelthuzad = instance->GetCreature(_kelthuzadGUID))
1049 {
1050 kelthuzad->AI()->Talk(_currentWingTaunt);
1051 }
1053 break;
1056 {
1057 go->SetGoState(GO_STATE_ACTIVE);
1058 }
1059 break;
1060 }
1061 }
uint32 urand(uint32 min, uint32 max)
Definition: Random.cpp:44
@ SOUND_SCREAM
Definition: naxxramas.h:181
@ SAY_SAPP_DIALOG4_LICH
Definition: naxxramas.h:189
@ SAY_SAPP_DIALOG6
Definition: naxxramas.h:191
@ SAY_SAPP_DIALOG2_LICH
Definition: naxxramas.h:187
@ SAY_SAPP_DIALOG1
Definition: naxxramas.h:186
@ SAY_SAPP_DIALOG5
Definition: naxxramas.h:190
@ SAY_SAPP_DIALOG3
Definition: naxxramas.h:188
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr, Milliseconds delay=0s)
Causes the creature to talk/say the text assigned to their entry in the creature_text database table.
Definition: CreatureAI.cpp:50
void PlayDirectSoundToMap(uint32 soundId, uint32 zoneId=0)
Definition: Map.cpp:3747

References _currentWingTaunt, _horsemanTimer, _kelthuzadGateGUID, _kelthuzadGUID, _lichkingGUID, _sapphironGateGUID, _screamTimer, _speakTimer, Creature::AI(), BOSS_THADDIUS, DONE, EVENT_FROSTWYRM_WATERFALL_DOOR, EVENT_KELTHUZAD_WING_TAUNT, InstanceScript::GetBossState(), Map::GetCreature(), Map::GetGameObject(), GO_STATE_ACTIVE, IN_MILLISECONDS, InstanceScript::instance, Map::LoadGrid(), MINUTE, Map::PlayDirectSoundToMap(), SAY_SAPP_DIALOG1, SAY_SAPP_DIALOG2_LICH, SAY_SAPP_DIALOG3, SAY_SAPP_DIALOG4_LICH, SAY_SAPP_DIALOG5, SAY_SAPP_DIALOG6, SOUND_SCREAM, CreatureAI::Talk(), and urand().

◆ WriteSaveDataMore()

void instance_naxxramas::instance_naxxramas_InstanceMapScript::WriteSaveDataMore ( std::ostringstream &  data)
inlineoverridevirtual

Reimplemented from InstanceScript.

1125 {
1126 data << immortalAchievement;
1127 }

References immortalAchievement.

Member Data Documentation

◆ _abomEyePortalGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_abomEyePortalGUID

Referenced by OnGameObjectCreate(), and SetBossState().

◆ _abomGlowEyePortalGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_abomGlowEyePortalGUID

Referenced by OnGameObjectCreate(), and SetBossState().

◆ _anubNextGateGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_anubNextGateGUID

Referenced by OnGameObjectCreate(), and SetBossState().

◆ _blaumeuxGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_blaumeuxGUID

Referenced by OnCreatureCreate(), and SetBossState().

◆ _currentWingTaunt

uint8 instance_naxxramas::instance_naxxramas_InstanceMapScript::_currentWingTaunt

◆ _deathknightEyePortalGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_deathknightEyePortalGUID

Referenced by OnGameObjectCreate(), and SetBossState().

◆ _deathknightGlowEyePortalGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_deathknightGlowEyePortalGUID

Referenced by OnGameObjectCreate(), and SetBossState().

◆ _faerlinaGateGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_faerlinaGateGUID

Referenced by OnGameObjectCreate(), and SetBossState().

◆ _faerlinaWebGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_faerlinaWebGUID

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ _feugenGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_feugenGUID

Referenced by GetGuidData(), and OnCreatureCreate().

◆ _gluthGateGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_gluthGateGUID

Referenced by OnGameObjectCreate(), and SetBossState().

◆ _gothikEnterGateGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_gothikEnterGateGUID

◆ _gothikExitGateGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_gothikExitGateGUID {}

◆ _gothikGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_gothikGUID

Referenced by GetGuidData(), and OnCreatureCreate().

◆ _gothikInnerGateGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_gothikInnerGateGUID

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ _hadThaddiusGreet

bool instance_naxxramas::instance_naxxramas_InstanceMapScript::_hadThaddiusGreet

◆ _heiganGateExitGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_heiganGateExitGUID

Referenced by OnGameObjectCreate(), and SetBossState().

◆ _heiganGateGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_heiganGateGUID

◆ _horsemanGateGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_horsemanGateGUID

◆ _horsemanKilled

uint8 instance_naxxramas::instance_naxxramas_InstanceMapScript::_horsemanKilled

◆ _horsemanLoadDoneState

bool instance_naxxramas::instance_naxxramas_InstanceMapScript::_horsemanLoadDoneState

◆ _horsemanPortalGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_horsemanPortalGUID

Referenced by OnGameObjectCreate(), and SetBossState().

◆ _horsemanTimer

uint32 instance_naxxramas::instance_naxxramas_InstanceMapScript::_horsemanTimer

◆ _kelthuzadFloorGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_kelthuzadFloorGUID

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ _kelthuzadGateGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_kelthuzadGateGUID

◆ _kelthuzadGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_kelthuzadGUID

Referenced by OnCreatureCreate(), and Update().

◆ _kelthuzadPortal1GUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_kelthuzadPortal1GUID

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ _kelthuzadPortal2GUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_kelthuzadPortal2GUID

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ _kelthuzadPortal3GUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_kelthuzadPortal3GUID

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ _kelthuzadPortal4GUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_kelthuzadPortal4GUID

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ _korthazzGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_korthazzGUID

Referenced by OnCreatureCreate(), and SetBossState().

◆ _lichkingGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_lichkingGUID

◆ _loathebGateGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_loathebGateGUID

◆ _loathebPortalGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_loathebPortalGUID

Referenced by OnGameObjectCreate(), and SetBossState().

◆ _maexxnaGateGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_maexxnaGateGUID

◆ _maexxnaPortalGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_maexxnaPortalGUID

Referenced by OnGameObjectCreate(), and SetBossState().

◆ _nothEntryGateGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_nothEntryGateGUID

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ _nothExitGateGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_nothExitGateGUID

Referenced by OnGameObjectCreate(), and SetBossState().

◆ _patchwerkGateGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_patchwerkGateGUID

Referenced by OnGameObjectCreate(), and SetBossState().

◆ _patchwerkGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_patchwerkGUID

Referenced by OnCreatureCreate(), and SetBossState().

◆ _plagueEyePortalGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_plagueEyePortalGUID

Referenced by OnGameObjectCreate(), and SetBossState().

◆ _plagueGlowEyePortalGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_plagueGlowEyePortalGUID

Referenced by OnGameObjectCreate(), and SetBossState().

◆ _rivendareGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_rivendareGUID

Referenced by OnCreatureCreate(), and SetBossState().

◆ _sapphironGateGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_sapphironGateGUID

Referenced by OnGameObjectCreate(), and Update().

◆ _sapphironGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_sapphironGUID

◆ _screamTimer

uint32 instance_naxxramas::instance_naxxramas_InstanceMapScript::_screamTimer

◆ _speakTimer

uint32 instance_naxxramas::instance_naxxramas_InstanceMapScript::_speakTimer

◆ _spiderEyePortalGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_spiderEyePortalGUID

Referenced by OnGameObjectCreate(), and SetBossState().

◆ _spiderGlowEyePortalGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_spiderGlowEyePortalGUID

Referenced by OnGameObjectCreate(), and SetBossState().

◆ _stalaggGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_stalaggGUID

Referenced by GetGuidData(), and OnCreatureCreate().

◆ _thaddiusGateGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_thaddiusGateGUID

◆ _thaddiusGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_thaddiusGUID

Referenced by GetGuidData(), and OnCreatureCreate().

◆ _thaddiusPortalGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_thaddiusPortalGUID

Referenced by OnGameObjectCreate(), and SetBossState().

◆ _zeliekGUID

ObjectGuid instance_naxxramas::instance_naxxramas_InstanceMapScript::_zeliekGUID

Referenced by OnCreatureCreate(), and SetBossState().

◆ abominationsKilled

uint8 instance_naxxramas::instance_naxxramas_InstanceMapScript::abominationsKilled

◆ events

EventMap instance_naxxramas::instance_naxxramas_InstanceMapScript::events

◆ faerlinaAchievement

bool instance_naxxramas::instance_naxxramas_InstanceMapScript::faerlinaAchievement

◆ heiganAchievement

bool instance_naxxramas::instance_naxxramas_InstanceMapScript::heiganAchievement

◆ HeiganEruption

std::set<GameObject*> instance_naxxramas::instance_naxxramas_InstanceMapScript::HeiganEruption[4]

◆ immortalAchievement

uint32 instance_naxxramas::instance_naxxramas_InstanceMapScript::immortalAchievement

◆ loathebAchievement

bool instance_naxxramas::instance_naxxramas_InstanceMapScript::loathebAchievement

◆ PatchwerkRoomTrash

GuidList instance_naxxramas::instance_naxxramas_InstanceMapScript::PatchwerkRoomTrash

◆ sapphironAchievement

bool instance_naxxramas::instance_naxxramas_InstanceMapScript::sapphironAchievement

◆ thaddiusAchievement

bool instance_naxxramas::instance_naxxramas_InstanceMapScript::thaddiusAchievement