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

Public Member Functions

 instance_icecrown_citadel_InstanceMapScript (InstanceMap *map)
 
void FillInitialWorldStates (WorldPacket &data) override
 
void OnPlayerAreaUpdate (Player *player, uint32, uint32 newArea) override
 
void OnPlayerEnter (Player *player) override
 
void OnCreatureCreate (Creature *creature) override
 
void OnCreatureRemove (Creature *creature) override
 
uint32 GetCreatureEntry (ObjectGuid::LowType, CreatureData const *data) override
 
uint32 GetGameObjectEntry (ObjectGuid::LowType, uint32 entry) override
 
void OnUnitDeath (Unit *unit) override
 
void OnGameObjectCreate (GameObject *go) override
 
void OnGameObjectRemove (GameObject *go) override
 
uint32 GetData (uint32 type) const override
 
ObjectGuid GetGuidData (uint32 type) const override
 
void HandleDropAttempt (bool drop=true)
 
void RemoveBackPack ()
 
bool SetBossState (uint32 type, EncounterState state) override
 
void SpawnGunship ()
 
void SetData (uint32 type, uint32 data) override
 
bool CheckAchievementCriteriaMeet (uint32 criteria_id, Player const *, Unit const *, uint32) override
 
bool CheckRequiredBosses (uint32 bossId, Player const *player) const override
 
bool CheckPlagueworks (uint32 bossId) const
 
bool CheckCrimsonHalls (uint32 bossId) const
 
bool CheckFrostwingHalls (uint32 bossId) const
 
bool CheckLowerSpire (uint32 bossId) const
 
void CheckLichKingAvailability ()
 
void ReadSaveDataMore (std::istringstream &data) override
 
void WriteSaveDataMore (std::ostringstream &data) override
 
void Update (uint32 diff) override
 
void ProcessEvent (WorldObject *source, uint32 eventId) override
 
void SetPositionTraps (GameObject *go)
 
- 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)
 

Protected Attributes

bool IsBuffAvailable
 
uint32 WeeklyQuestId10
 
ObjectGuid WeeklyQuestNpcGUID [WeeklyNPCs]
 
ObjectGuid PutricideEnteranceDoorGUID
 
uint32 PutricideEventProgress
 
ObjectGuid GasReleaseValveGUID
 
ObjectGuid OozeReleaseValveGUID
 
bool LichKingHeroicAvailable
 
uint32 LichKingRandomWhisperTimer
 
uint32 DarkwhisperElevatorTimer
 
ObjectGuid ScourgeTransporterFirstGUID
 
EventMap Events
 
ObjectGuid LadyDeathwhisperGUID
 
ObjectGuid LadyDeathwisperElevatorGUID
 
ObjectGuid GunshipGUID
 
ObjectGuid EnemyGunshipGUID
 
ObjectGuid GunshipArmoryGUID
 
ObjectGuid DeathbringerSaurfangGUID
 
ObjectGuid DeathbringerSaurfangDoorGUID
 
ObjectGuid DeathbringerSaurfangEventGUID
 
ObjectGuid DeathbringersCacheGUID
 
ObjectGuid SaurfangTeleportGUID
 
ObjectGuid PlagueSigilGUID
 
ObjectGuid BloodwingSigilGUID
 
ObjectGuid FrostwingSigilGUID
 
ObjectGuid PutricidePipeGUIDs [2]
 
ObjectGuid PutricideGateGUIDs [2]
 
ObjectGuid PutricideCollisionGUID
 
ObjectGuid FestergutGUID
 
ObjectGuid RotfaceGUID
 
ObjectGuid ProfessorPutricideGUID
 
ObjectGuid PutricideTableGUID
 
ObjectGuid BloodCouncilGUIDs [3]
 
ObjectGuid BloodCouncilControllerGUID
 
ObjectGuid BloodQueenLanaThelGUID
 
ObjectGuid CrokScourgebaneGUID
 
ObjectGuid CrokCaptainGUIDs [4]
 
ObjectGuid SisterSvalnaGUID
 
ObjectGuid ValithriaDreamwalkerGUID
 
ObjectGuid ValithriaLichKingGUID
 
ObjectGuid ValithriaTriggerGUID
 
ObjectGuid PutricadeTrapGUID
 
ObjectGuid SindragosaGauntletGUID
 
ObjectGuid SindragosaGUID
 
ObjectGuid SpinestalkerGUID
 
ObjectGuid RimefangGUID
 
ObjectGuid TheLichKingTeleportGUID
 
ObjectGuid TheLichKingGUID
 
ObjectGuid TheLichKingLhGUID
 
ObjectGuid HighlordTirionFordringGUID
 
ObjectGuid TerenasMenethilGUID
 
ObjectGuid ArthasPlatformGUID
 
ObjectGuid ArthasPrecipiceGUID
 
ObjectGuid FrozenThroneEdgeGUID
 
ObjectGuid FrozenThroneWindGUID
 
ObjectGuid FrozenThroneWarningGUID
 
ObjectGuid FrozenBolvarGUID
 
ObjectGuid PillarsChainedGUID
 
ObjectGuid PillarsUnchainedGUID
 
TeamId TeamIdInInstance
 
uint32 ColdflameJetsState
 
std::set< ObjectGuid::LowTypeFrostwyrmGUIDs
 
std::set< ObjectGuid::LowTypeSpinestalkerTrash
 
std::set< ObjectGuid::LowTypeRimefangTrash
 
uint32 BloodQuickeningState
 
uint32 HeroicAttempts
 
uint16 BloodQuickeningMinutes
 
uint32 BloodPrinceTrashCount
 
bool IsBonedEligible
 
bool IsOozeDanceEligible
 
bool IsNauseaEligible
 
bool IsOrbWhispererEligible
 
bool IsSindragosaIntroDone
 

Additional Inherited Members

- Static Public Member Functions inherited from InstanceScript
static std::string GetBossStateName (uint8 state)
 
- Public Attributes inherited from InstanceScript
Mapinstance
 
TaskScheduler scheduler
 
- 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_icecrown_citadel_InstanceMapScript()

instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::instance_icecrown_citadel_InstanceMapScript ( InstanceMap map)
inline
205 : InstanceScript(map)
206 {
207 // pussywizard:
208 IsBuffAvailable = true;
209 WeeklyQuestId10 = 0;
214
223 IsBonedEligible = true;
224 IsOozeDanceEligible = true;
225 IsNauseaEligible = true;
231 IsSindragosaIntroDone = false;
232 }
constexpr auto IN_MILLISECONDS
Definition: Common.h:53
ObjectData const creatureData[]
Definition: instance_icecrown_citadel.cpp:124
DoorData const doorData[]
Definition: instance_icecrown_citadel.cpp:92
BossBoundaryData const boundaries
Definition: instance_icecrown_citadel.cpp:72
uint32 const MaxHeroicAttempts
Definition: icecrown_citadel.h:33
@ MAX_DATA_INDEXES
Definition: icecrown_citadel.h:150
@ MAX_ENCOUNTERS
Definition: deadmines.h:30
#define DataHeader
Definition: blackrock_depths.h:23
@ TEAM_NEUTRAL
Definition: SharedDefines.h:762
@ NOT_STARTED
Definition: InstanceScript.h:57
Definition: InstanceScript.h:142
void SetBossNumber(uint32 number)
Definition: InstanceScript.h:285
void SetPersistentDataCount(uint32 number)
Definition: InstanceScript.h:286
void LoadDoorData(DoorData const *data)
Definition: InstanceScript.cpp:164
void LoadBossBoundaries(BossBoundaryData const &data)
Definition: InstanceScript.cpp:134
void SetHeaders(std::string const &dataHeaders)
Definition: InstanceScript.cpp:141
void LoadObjectData(ObjectData const *creatureData, ObjectData const *gameObjectData)
Definition: InstanceScript.cpp:176
uint32 DarkwhisperElevatorTimer
Definition: instance_icecrown_citadel.cpp:1958
uint32 PutricideEventProgress
Definition: instance_icecrown_citadel.cpp:1953
bool IsBuffAvailable
Definition: instance_icecrown_citadel.cpp:1949
bool IsNauseaEligible
Definition: instance_icecrown_citadel.cpp:2020
uint32 BloodPrinceTrashCount
Definition: instance_icecrown_citadel.cpp:2017
uint16 BloodQuickeningMinutes
Definition: instance_icecrown_citadel.cpp:2016
bool LichKingHeroicAvailable
Definition: instance_icecrown_citadel.cpp:1956
uint32 WeeklyQuestId10
Definition: instance_icecrown_citadel.cpp:1950
bool IsOrbWhispererEligible
Definition: instance_icecrown_citadel.cpp:2021
bool IsOozeDanceEligible
Definition: instance_icecrown_citadel.cpp:2019
uint32 BloodQuickeningState
Definition: instance_icecrown_citadel.cpp:2014
uint32 ColdflameJetsState
Definition: instance_icecrown_citadel.cpp:2010
uint32 HeroicAttempts
Definition: instance_icecrown_citadel.cpp:2015
TeamId TeamIdInInstance
Definition: instance_icecrown_citadel.cpp:2009
bool IsBonedEligible
Definition: instance_icecrown_citadel.cpp:2018
uint32 LichKingRandomWhisperTimer
Definition: instance_icecrown_citadel.cpp:1957
bool IsSindragosaIntroDone
Definition: instance_icecrown_citadel.cpp:2022

References BloodPrinceTrashCount, BloodQuickeningMinutes, BloodQuickeningState, boundaries, ColdflameJetsState, creatureData, DarkwhisperElevatorTimer, DataHeader, doorData, HeroicAttempts, IN_MILLISECONDS, IsBonedEligible, IsBuffAvailable, IsNauseaEligible, IsOozeDanceEligible, IsOrbWhispererEligible, IsSindragosaIntroDone, LichKingHeroicAvailable, LichKingRandomWhisperTimer, InstanceScript::LoadBossBoundaries(), InstanceScript::LoadDoorData(), InstanceScript::LoadObjectData(), MAX_DATA_INDEXES, MAX_ENCOUNTERS, MaxHeroicAttempts, NOT_STARTED, PutricideEventProgress, InstanceScript::SetBossNumber(), InstanceScript::SetHeaders(), InstanceScript::SetPersistentDataCount(), TEAM_NEUTRAL, TeamIdInInstance, and WeeklyQuestId10.

Member Function Documentation

◆ CheckAchievementCriteriaMeet()

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::CheckAchievementCriteriaMeet ( uint32  criteria_id,
Player const *  ,
Unit const *  ,
uint32   
)
inlineoverridevirtual

Reimplemented from InstanceScript.

1434 {
1435 switch (criteria_id)
1436 {
1437 case CRITERIA_BONED_10N:
1438 case CRITERIA_BONED_25N:
1439 case CRITERIA_BONED_10H:
1440 case CRITERIA_BONED_25H:
1441 return IsBonedEligible;
1446 return IsOozeDanceEligible;
1451 return IsNauseaEligible;
1457 // Only one criteria for both modes, need to do it like this
1459 return instance->ToInstanceMap()->GetMaxPlayers() == 10;
1461 return instance->ToInstanceMap()->GetMaxPlayers() == 25;
1462 default:
1463 break;
1464 }
1465
1466 return false;
1467 }
@ CRITERIA_BONED_25H
Definition: icecrown_citadel.h:485
@ CRITERIA_BONED_10N
Definition: icecrown_citadel.h:482
@ CRITERIA_NAUSEA_10H
Definition: icecrown_citadel.h:496
@ CRITERIA_BONED_25N
Definition: icecrown_citadel.h:483
@ CRITERIA_BONED_10H
Definition: icecrown_citadel.h:484
@ CRITERIA_DANCES_WITH_OOZES_10H
Definition: icecrown_citadel.h:490
@ CRITERIA_NAUSEA_10N
Definition: icecrown_citadel.h:494
@ CRITERIA_NAUSEA_25N
Definition: icecrown_citadel.h:495
@ CRITERIA_NAUSEA_25H
Definition: icecrown_citadel.h:497
@ CRITERIA_ORB_WHISPERER_25H
Definition: icecrown_citadel.h:503
@ CRITERIA_DANCES_WITH_OOZES_10N
Definition: icecrown_citadel.h:488
@ CRITERIA_DANCES_WITH_OOZES_25H
Definition: icecrown_citadel.h:491
@ CRITERIA_KILL_LANA_THEL_25M
Definition: icecrown_citadel.h:507
@ CRITERIA_DANCES_WITH_OOZES_25N
Definition: icecrown_citadel.h:489
@ CRITERIA_ORB_WHISPERER_25N
Definition: icecrown_citadel.h:501
@ CRITERIA_KILL_LANA_THEL_10M
Definition: icecrown_citadel.h:506
@ CRITERIA_ORB_WHISPERER_10N
Definition: icecrown_citadel.h:500
@ CRITERIA_ORB_WHISPERER_10H
Definition: icecrown_citadel.h:502
Map * instance
Definition: InstanceScript.h:148
InstanceMap * ToInstanceMap()
Definition: Map.h:544
uint32 GetMaxPlayers() const
Definition: Map.cpp:3217

References CRITERIA_BONED_10H, CRITERIA_BONED_10N, CRITERIA_BONED_25H, CRITERIA_BONED_25N, CRITERIA_DANCES_WITH_OOZES_10H, CRITERIA_DANCES_WITH_OOZES_10N, CRITERIA_DANCES_WITH_OOZES_25H, CRITERIA_DANCES_WITH_OOZES_25N, CRITERIA_KILL_LANA_THEL_10M, CRITERIA_KILL_LANA_THEL_25M, CRITERIA_NAUSEA_10H, CRITERIA_NAUSEA_10N, CRITERIA_NAUSEA_25H, CRITERIA_NAUSEA_25N, CRITERIA_ORB_WHISPERER_10H, CRITERIA_ORB_WHISPERER_10N, CRITERIA_ORB_WHISPERER_25H, and CRITERIA_ORB_WHISPERER_25N.

◆ CheckCrimsonHalls()

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::CheckCrimsonHalls ( uint32  bossId) const
inline
1534 {
1535 switch (bossId)
1536 {
1537 case DATA_THE_LICH_KING:
1539 {
1540 return false;
1541 }
1542 [[fallthrough]];
1545 return false;
1546 break;
1547 default:
1548 break;
1549 }
1550
1551 return true;
1552 }
@ DATA_THE_LICH_KING
Definition: icecrown_citadel.h:98
@ DATA_BLOOD_PRINCE_COUNCIL
Definition: icecrown_citadel.h:93
@ DATA_BLOOD_QUEEN_LANA_THEL
Definition: icecrown_citadel.h:94
@ DONE
Definition: InstanceScript.h:60
EncounterState GetBossState(uint32 id) const
Definition: InstanceScript.h:235

References DATA_BLOOD_PRINCE_COUNCIL, DATA_BLOOD_QUEEN_LANA_THEL, DATA_THE_LICH_KING, and DONE.

◆ CheckFrostwingHalls()

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::CheckFrostwingHalls ( uint32  bossId) const
inline
1555 {
1556 switch (bossId)
1557 {
1558 case DATA_THE_LICH_KING:
1560 {
1561 return false;
1562 }
1563 [[fallthrough]];
1564 case DATA_SINDRAGOSA:
1566 {
1567 return false;
1568 }
1570 {
1571 return false;
1572 }
1573 break;
1574 default:
1575 break;
1576 }
1577
1578 return true;
1579 }
@ DATA_SINDRAGOSA_GAUNTLET
Definition: icecrown_citadel.h:99
@ DATA_VALITHRIA_DREAMWALKER
Definition: icecrown_citadel.h:96
@ DATA_SINDRAGOSA
Definition: icecrown_citadel.h:97

References DATA_SINDRAGOSA, DATA_SINDRAGOSA_GAUNTLET, DATA_THE_LICH_KING, DATA_VALITHRIA_DREAMWALKER, and DONE.

◆ CheckLichKingAvailability()

void instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::CheckLichKingAvailability ( )
inline
1625 {
1627 {
1629 {
1630 teleporter->SetGoState(GO_STATE_ACTIVE);
1631
1632 std::list<Creature*> stalkers;
1633 GetCreatureListWithEntryInGrid(stalkers, teleporter, NPC_INVISIBLE_STALKER, 100.0f);
1634 if (stalkers.empty())
1635 return;
1636
1637 stalkers.sort(Acore::ObjectDistanceOrderPred(teleporter));
1638 stalkers.front()->CastSpell((Unit*)nullptr, SPELL_ARTHAS_TELEPORTER_CEREMONY, false);
1639 stalkers.pop_front();
1640 for (std::list<Creature*>::iterator itr = stalkers.begin(); itr != stalkers.end(); ++itr)
1641 (*itr)->AI()->Reset();
1642 }
1643 }
1644 }
@ NPC_INVISIBLE_STALKER
Definition: icecrown_citadel.h:369
@ SPELL_ARTHAS_TELEPORTER_CEREMONY
Definition: icecrown_citadel.h:58
@ DATA_PROFESSOR_PUTRICIDE
Definition: icecrown_citadel.h:92
void GetCreatureListWithEntryInGrid(std::list< Creature * > &list, WorldObject *source, uint32 entry, float maxSearchRange)
Definition: ScriptedCreature.cpp:860
@ GO_STATE_ACTIVE
Definition: GameObjectData.h:689
Definition: GameObject.h:120
Definition: Object.h:703
Definition: Unit.h:630
GameObject * GetGameObject(ObjectGuid const guid)
Definition: Map.cpp:3322
ObjectGuid TheLichKingTeleportGUID
Definition: instance_icecrown_citadel.cpp:1996

References DATA_BLOOD_QUEEN_LANA_THEL, DATA_PROFESSOR_PUTRICIDE, DATA_SINDRAGOSA, DONE, GetCreatureListWithEntryInGrid(), GO_STATE_ACTIVE, NPC_INVISIBLE_STALKER, and SPELL_ARTHAS_TELEPORTER_CEREMONY.

Referenced by SetBossState().

◆ CheckLowerSpire()

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::CheckLowerSpire ( uint32  bossId) const
inline
1582 {
1583 switch (bossId)
1584 {
1585 case DATA_THE_LICH_KING:
1586 case DATA_SINDRAGOSA:
1591 case DATA_ROTFACE:
1592 case DATA_FESTERGUT:
1594 {
1595 return false;
1596 }
1597 [[fallthrough]];
1600 {
1601 return false;
1602 }
1603 [[fallthrough]];
1606 {
1607 return false;
1608 }
1609 [[fallthrough]];
1612 {
1613 return false;
1614 }
1615 [[fallthrough]];
1617 default:
1618 break;
1619 }
1620
1621 return true;
1622 }
@ DATA_DEATHBRINGER_SAURFANG
Definition: icecrown_citadel.h:89
@ DATA_ICECROWN_GUNSHIP_BATTLE
Definition: icecrown_citadel.h:88
@ DATA_ROTFACE
Definition: icecrown_citadel.h:91
@ DATA_LORD_MARROWGAR
Definition: icecrown_citadel.h:86
@ DATA_FESTERGUT
Definition: icecrown_citadel.h:90
@ DATA_LADY_DEATHWHISPER
Definition: icecrown_citadel.h:87

References DATA_BLOOD_PRINCE_COUNCIL, DATA_BLOOD_QUEEN_LANA_THEL, DATA_DEATHBRINGER_SAURFANG, DATA_FESTERGUT, DATA_ICECROWN_GUNSHIP_BATTLE, DATA_LADY_DEATHWHISPER, DATA_LORD_MARROWGAR, DATA_PROFESSOR_PUTRICIDE, DATA_ROTFACE, DATA_SINDRAGOSA, DATA_THE_LICH_KING, DATA_VALITHRIA_DREAMWALKER, and DONE.

◆ CheckPlagueworks()

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::CheckPlagueworks ( uint32  bossId) const
inline
1513 {
1514 switch (bossId)
1515 {
1516 case DATA_THE_LICH_KING:
1518 {
1519 return false;
1520 }
1521 [[fallthrough]];
1524 return false;
1525 break;
1526 default:
1527 break;
1528 }
1529
1530 return true;
1531 }

References DATA_FESTERGUT, DATA_PROFESSOR_PUTRICIDE, DATA_ROTFACE, DATA_THE_LICH_KING, and DONE.

◆ CheckRequiredBosses()

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::CheckRequiredBosses ( uint32  bossId,
Player const *  player 
) const
inlineoverridevirtual

Reimplemented from InstanceScript.

1470 {
1471 if (player && player->GetSession() && player->GetSession()->GetSecurity() >= SEC_MODERATOR)
1472 {
1473 return true;
1474 }
1475
1476 switch (bossId)
1477 {
1478 case DATA_THE_LICH_KING:
1479 if (!CheckPlagueworks(bossId))
1480 return false;
1481 if (!CheckCrimsonHalls(bossId))
1482 return false;
1483 if (!CheckFrostwingHalls(bossId))
1484 return false;
1485 break;
1486 case DATA_SINDRAGOSA:
1488 if (!CheckFrostwingHalls(bossId))
1489 return false;
1490 break;
1493 if (!CheckCrimsonHalls(bossId))
1494 return false;
1495 break;
1496 case DATA_FESTERGUT:
1497 case DATA_ROTFACE:
1499 if (!CheckPlagueworks(bossId))
1500 return false;
1501 break;
1502 default:
1503 break;
1504 }
1505
1506 if (!CheckLowerSpire(bossId))
1507 return false;
1508
1509 return true;
1510 }
@ SEC_MODERATOR
Definition: Common.h:58
bool CheckFrostwingHalls(uint32 bossId) const
Definition: instance_icecrown_citadel.cpp:1554
bool CheckLowerSpire(uint32 bossId) const
Definition: instance_icecrown_citadel.cpp:1581
bool CheckCrimsonHalls(uint32 bossId) const
Definition: instance_icecrown_citadel.cpp:1533
bool CheckPlagueworks(uint32 bossId) const
Definition: instance_icecrown_citadel.cpp:1512

References DATA_BLOOD_PRINCE_COUNCIL, DATA_BLOOD_QUEEN_LANA_THEL, DATA_FESTERGUT, DATA_PROFESSOR_PUTRICIDE, DATA_ROTFACE, DATA_SINDRAGOSA, DATA_THE_LICH_KING, DATA_VALITHRIA_DREAMWALKER, WorldSession::GetSecurity(), Player::GetSession(), and SEC_MODERATOR.

◆ FillInitialWorldStates()

void instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::FillInitialWorldStates ( WorldPacket data)
inlineoverridevirtual

Reimplemented from InstanceScript.

235 {
236 if (instance->IsHeroic())
237 {
243 }
244 }
std::uint32_t uint32
Definition: Define.h:107
@ WORLDSTATE_SHOW_ATTEMPTS
Definition: icecrown_citadel.h:564
@ WORLDSTATE_ATTEMPTS_REMAINING
Definition: icecrown_citadel.h:565
@ WORLDSTATE_ATTEMPTS_MAX
Definition: icecrown_citadel.h:566
@ WORLDSTATE_EXECUTION_TIME
Definition: icecrown_citadel.h:563
@ WORLDSTATE_SHOW_TIMER
Definition: instance_zulaman.cpp:27
@ IN_PROGRESS
Definition: InstanceScript.h:58
bool IsHeroic() const
Definition: Map.h:450

References BloodQuickeningMinutes, BloodQuickeningState, HeroicAttempts, IN_PROGRESS, InstanceScript::instance, Map::IsHeroic(), MaxHeroicAttempts, WORLDSTATE_ATTEMPTS_MAX, WORLDSTATE_ATTEMPTS_REMAINING, WORLDSTATE_EXECUTION_TIME, WORLDSTATE_SHOW_ATTEMPTS, and WORLDSTATE_SHOW_TIMER.

◆ GetCreatureEntry()

uint32 instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::GetCreatureEntry ( ObjectGuid::LowType  ,
CreatureData const *  data 
)
inlineoverridevirtual

Reimplemented from ZoneScript.

551 {
553 {
554 Map::PlayerList const& players = instance->GetPlayers();
555 if (!players.IsEmpty())
556 if (Player* player = players.begin()->GetSource())
557 TeamIdInInstance = player->GetTeamId();
558 }
559
560 uint32 entry = data->id1;
561 switch (entry)
562 {
567 return 0;
568 break;
573 return 0;
574 break;
576 if (GameObjectTemplate const* go = sObjectMgr->GetGameObjectTemplate(GO_THE_SKYBREAKER_A))
577 if ((TeamIdInInstance == TEAM_ALLIANCE && data->mapid == go->moTransport.mapID) ||
578 (TeamIdInInstance == TEAM_HORDE && data->mapid != go->moTransport.mapID))
579 return entry;
580 return 0;
582 if ((TeamIdInInstance == TEAM_ALLIANCE && data->posX > 10.0f) ||
583 (TeamIdInInstance == TEAM_HORDE && data->posX < 10.0f))
584 return entry;
585 return 0;
587 if ((TeamIdInInstance == TEAM_ALLIANCE && data->posY < 2200.0f) || (TeamIdInInstance == TEAM_HORDE && data->posY > 2200.0f))
588 return 0;
589 break;
590 }
591
592 return entry;
593 }
@ NPC_HIGH_CAPTAIN_JUSTIN_BARTLETT
Definition: icecrown_citadel.h:238
@ NPC_SKY_REAVER_KORM_BLACKSCAR
Definition: icecrown_citadel.h:239
@ NPC_IGB_MURADIN_BRONZEBEARD
Definition: icecrown_citadel.h:221
@ NPC_SPIRE_FROSTWYRM
Definition: icecrown_citadel.h:370
@ NPC_ZAFOD_BOOMBOX
Definition: icecrown_citadel.h:237
@ NPC_SKYBREAKER_DECKHAND
Definition: icecrown_citadel.h:218
@ NPC_ORGRIMS_HAMMER_CREW
Definition: icecrown_citadel.h:219
@ GO_THE_SKYBREAKER_A
Definition: icecrown_citadel.h:405
@ TEAM_ALLIANCE
Definition: SharedDefines.h:760
@ TEAM_HORDE
Definition: SharedDefines.h:761
#define sObjectMgr
Definition: ObjectMgr.h:1635
@ NPC_ALLIANCE_GUNSHIP_CANNON
Definition: BattlegroundIC.h:46
@ NPC_HORDE_GUNSHIP_CANNON
Definition: BattlegroundIC.h:45
bool IsEmpty() const
Definition: LinkedList.h:97
FROM * GetSource() const
Definition: Reference.h:97
Definition: GameObjectData.h:31
Definition: Player.h:1081
PlayerList const & GetPlayers() const
Definition: Map.h:484
Definition: MapRefMgr.h:26
iterator begin()
Definition: MapRefMgr.h:36

References MapRefMgr::begin(), Map::GetPlayers(), Reference< TO, FROM >::GetSource(), GO_THE_SKYBREAKER_A, CreatureData::id1, InstanceScript::instance, LinkedListHead::IsEmpty(), CreatureData::mapid, NPC_ALLIANCE_GUNSHIP_CANNON, NPC_HIGH_CAPTAIN_JUSTIN_BARTLETT, NPC_HORDE_GUNSHIP_CANNON, NPC_IGB_MURADIN_BRONZEBEARD, NPC_ORGRIMS_HAMMER_CREW, NPC_SKY_REAVER_KORM_BLACKSCAR, NPC_SKYBREAKER_DECKHAND, NPC_SPIRE_FROSTWYRM, NPC_ZAFOD_BOOMBOX, CreatureData::posX, CreatureData::posY, sObjectMgr, TEAM_ALLIANCE, TEAM_HORDE, TEAM_NEUTRAL, and TeamIdInInstance.

◆ GetData()

uint32 instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::GetData ( uint32  type) const
inlineoverridevirtual

Reimplemented from ZoneScript.

936 {
937 switch (type)
938 {
940 return (IsBuffAvailable ? 1 : 0);
942 return WeeklyQuestId10;
945 return TO_BE_DECIDED;
947 return IN_PROGRESS;
949 return DONE;
950 return NOT_STARTED;
952 return (instance->IsHeroic() ? 1 : 0);
954 return (LichKingHeroicAvailable ? 1 : 0);
956 return FrostwyrmGUIDs.size();
958 return SpinestalkerTrash.size();
959 case DATA_RIMEFANG:
960 return RimefangTrash.size();
962 return ColdflameJetsState;
964 return TeamIdInInstance;
968 return HeroicAttempts;
970 return (IsSindragosaIntroDone ? 1 : 0);
971 default:
972 break;
973 }
974
975 return 0;
976 }
@ PUTRICIDE_EVENT_FLAG_FESTERGUT_VALVE
Definition: icecrown_citadel.h:571
@ PUTRICIDE_EVENT_FLAG_TRAP_FINISHED
Definition: icecrown_citadel.h:574
@ PUTRICIDE_EVENT_FLAG_ROTFACE_VALVE
Definition: icecrown_citadel.h:572
@ PUTRICIDE_EVENT_FLAG_TRAP_INPROGRESS
Definition: icecrown_citadel.h:573
@ DATA_HEROIC_ATTEMPTS
Definition: icecrown_citadel.h:120
@ DATA_SINDRAGOSA_FROSTWYRMS
Definition: icecrown_citadel.h:114
@ DATA_WEEKLY_QUEST_ID
Definition: icecrown_citadel.h:137
@ DATA_LK_HC_AVAILABLE
Definition: icecrown_citadel.h:141
@ DATA_HAS_LIMITED_ATTEMPTS
Definition: icecrown_citadel.h:140
@ DATA_PUTRICIDE_TRAP_STATE
Definition: icecrown_citadel.h:139
@ DATA_BUFF_AVAILABLE
Definition: icecrown_citadel.h:136
@ DATA_RIMEFANG
Definition: icecrown_citadel.h:116
@ DATA_BLOOD_QUICKENING_STATE
Definition: icecrown_citadel.h:119
@ DATA_SINDRAGOSA_INTRO
Definition: icecrown_citadel.h:142
@ DATA_COLDFLAME_JETS
Definition: icecrown_citadel.h:117
@ DATA_SPINESTALKER
Definition: icecrown_citadel.h:115
@ DATA_TEAMID_IN_INSTANCE
Definition: trial_of_the_champion.h:44
@ TO_BE_DECIDED
Definition: InstanceScript.h:62
std::set< ObjectGuid::LowType > SpinestalkerTrash
Definition: instance_icecrown_citadel.cpp:2012
std::set< ObjectGuid::LowType > RimefangTrash
Definition: instance_icecrown_citadel.cpp:2013
std::set< ObjectGuid::LowType > FrostwyrmGUIDs
Definition: instance_icecrown_citadel.cpp:2011

References BloodQuickeningState, ColdflameJetsState, DATA_BLOOD_QUICKENING_STATE, DATA_BUFF_AVAILABLE, DATA_COLDFLAME_JETS, DATA_HAS_LIMITED_ATTEMPTS, DATA_HEROIC_ATTEMPTS, DATA_LK_HC_AVAILABLE, DATA_PUTRICIDE_TRAP_STATE, DATA_RIMEFANG, DATA_SINDRAGOSA_FROSTWYRMS, DATA_SINDRAGOSA_INTRO, DATA_SPINESTALKER, DATA_TEAMID_IN_INSTANCE, DATA_WEEKLY_QUEST_ID, DONE, FrostwyrmGUIDs, HeroicAttempts, IN_PROGRESS, InstanceScript::instance, IsBuffAvailable, Map::IsHeroic(), IsSindragosaIntroDone, LichKingHeroicAvailable, NOT_STARTED, PUTRICIDE_EVENT_FLAG_FESTERGUT_VALVE, PUTRICIDE_EVENT_FLAG_ROTFACE_VALVE, PUTRICIDE_EVENT_FLAG_TRAP_FINISHED, PUTRICIDE_EVENT_FLAG_TRAP_INPROGRESS, PutricideEventProgress, RimefangTrash, SpinestalkerTrash, TeamIdInInstance, TO_BE_DECIDED, and WeeklyQuestId10.

Referenced by HandleDropAttempt(), OnCreatureCreate(), OnUnitDeath(), and SetBossState().

◆ GetGameObjectEntry()

uint32 instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::GetGameObjectEntry ( ObjectGuid::LowType  ,
uint32  entry 
)
inlineoverridevirtual

Reimplemented from ZoneScript.

596 {
598 {
599 Map::PlayerList const& players = instance->GetPlayers();
600 if (!players.IsEmpty())
601 if (Player* player = players.begin()->GetSource())
602 TeamIdInInstance = player->GetTeamId();
603 }
604
605 switch (entry)
606 {
612 return 0;
613 break;
619 return 0;
620 break;
621 }
622
623 return entry;
624 }
@ GO_GUNSHIP_ARMORY_H_10N
Definition: icecrown_citadel.h:398
@ GO_GUNSHIP_ARMORY_A_10H
Definition: icecrown_citadel.h:408
@ GO_GUNSHIP_ARMORY_A_25N
Definition: icecrown_citadel.h:407
@ GO_GUNSHIP_ARMORY_A_10N
Definition: icecrown_citadel.h:406
@ GO_GUNSHIP_ARMORY_H_25H
Definition: icecrown_citadel.h:401
@ GO_GUNSHIP_ARMORY_H_25N
Definition: icecrown_citadel.h:399
@ GO_GUNSHIP_ARMORY_A_25H
Definition: icecrown_citadel.h:409
@ GO_GUNSHIP_ARMORY_H_10H
Definition: icecrown_citadel.h:400

References MapRefMgr::begin(), Map::GetPlayers(), Reference< TO, FROM >::GetSource(), GO_GUNSHIP_ARMORY_A_10H, GO_GUNSHIP_ARMORY_A_10N, GO_GUNSHIP_ARMORY_A_25H, GO_GUNSHIP_ARMORY_A_25N, GO_GUNSHIP_ARMORY_H_10H, GO_GUNSHIP_ARMORY_H_10N, GO_GUNSHIP_ARMORY_H_25H, GO_GUNSHIP_ARMORY_H_25N, InstanceScript::instance, LinkedListHead::IsEmpty(), TEAM_ALLIANCE, TEAM_HORDE, TEAM_NEUTRAL, and TeamIdInInstance.

◆ GetGuidData()

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::GetGuidData ( uint32  type) const
inlineoverridevirtual

Reimplemented from InstanceScript.

979 {
980 switch (type)
981 {
985 return GunshipGUID;
987 return EnemyGunshipGUID;
996 case DATA_FESTERGUT:
997 return FestergutGUID;
998 case DATA_ROTFACE:
999 return RotfaceGUID;
1003 return PutricideTableGUID;
1005 return BloodCouncilGUIDs[0];
1007 return BloodCouncilGUIDs[1];
1009 return BloodCouncilGUIDs[2];
1015 return CrokScourgebaneGUID;
1021 case DATA_SISTER_SVALNA:
1022 return SisterSvalnaGUID;
1026 return ValithriaLichKingGUID;
1028 return ValithriaTriggerGUID;
1032 return PutricadeTrapGUID;
1033 case DATA_SINDRAGOSA:
1034 return SindragosaGUID;
1035 case DATA_SPINESTALKER:
1036 return SpinestalkerGUID;
1037 case DATA_RIMEFANG:
1038 return RimefangGUID;
1039 case DATA_THE_LICH_KING:
1040 return TheLichKingGUID;
1044 return ArthasPlatformGUID;
1046 return TerenasMenethilGUID;
1047 default:
1048 break;
1049 }
1050
1051 return ObjectGuid::Empty;
1052 }
@ NPC_SINDRAGOSA_GAUNTLET
Definition: icecrown_citadel.h:335
@ NPC_PUTRICADES_TRAP
Definition: icecrown_citadel.h:343
@ GO_SAURFANG_S_DOOR
Definition: icecrown_citadel.h:412
@ GO_SCOURGE_TRANSPORTER_SAURFANG
Definition: icecrown_citadel.h:417
@ DATA_VALITHRIA_LICH_KING
Definition: icecrown_citadel.h:127
@ DATA_BLOOD_PRINCES_CONTROL
Definition: icecrown_citadel.h:113
@ DATA_PRINCE_TALDARAM_GUID
Definition: icecrown_citadel.h:111
@ DATA_PRINCE_VALANAR_GUID
Definition: icecrown_citadel.h:112
@ DATA_VALITHRIA_TRIGGER
Definition: icecrown_citadel.h:126
@ DATA_TERENAS_MENETHIL
Definition: icecrown_citadel.h:130
@ DATA_SISTER_SVALNA
Definition: icecrown_citadel.h:95
@ DATA_CROK_SCOURGEBANE
Definition: icecrown_citadel.h:121
@ DATA_SAURFANG_EVENT_NPC
Definition: icecrown_citadel.h:104
@ DATA_HIGHLORD_TIRION_FORDRING
Definition: icecrown_citadel.h:128
@ DATA_ENEMY_GUNSHIP
Definition: icecrown_citadel.h:131
@ DATA_CAPTAIN_RUPERT
Definition: icecrown_citadel.h:125
@ DATA_PUTRICIDE_TABLE
Definition: icecrown_citadel.h:107
@ DATA_CAPTAIN_ARNATH
Definition: icecrown_citadel.h:122
@ DATA_PRINCE_KELESETH_GUID
Definition: icecrown_citadel.h:110
@ DATA_CAPTAIN_GRONDEL
Definition: icecrown_citadel.h:124
@ DATA_CAPTAIN_BRANDON
Definition: icecrown_citadel.h:123
@ DATA_ARTHAS_PLATFORM
Definition: icecrown_citadel.h:129
static ObjectGuid const Empty
Definition: ObjectGuid.h:120
ObjectGuid SindragosaGauntletGUID
Definition: instance_icecrown_citadel.cpp:1992
ObjectGuid RimefangGUID
Definition: instance_icecrown_citadel.cpp:1995
ObjectGuid SpinestalkerGUID
Definition: instance_icecrown_citadel.cpp:1994
ObjectGuid BloodCouncilGUIDs[3]
Definition: instance_icecrown_citadel.cpp:1982
ObjectGuid TheLichKingGUID
Definition: instance_icecrown_citadel.cpp:1997
ObjectGuid TerenasMenethilGUID
Definition: instance_icecrown_citadel.cpp:2000
ObjectGuid DeathbringerSaurfangEventGUID
Definition: instance_icecrown_citadel.cpp:1969
ObjectGuid ValithriaDreamwalkerGUID
Definition: instance_icecrown_citadel.cpp:1988
ObjectGuid BloodCouncilControllerGUID
Definition: instance_icecrown_citadel.cpp:1983
ObjectGuid FestergutGUID
Definition: instance_icecrown_citadel.cpp:1978
ObjectGuid ValithriaLichKingGUID
Definition: instance_icecrown_citadel.cpp:1989
ObjectGuid HighlordTirionFordringGUID
Definition: instance_icecrown_citadel.cpp:1999
ObjectGuid BloodQueenLanaThelGUID
Definition: instance_icecrown_citadel.cpp:1984
ObjectGuid ArthasPlatformGUID
Definition: instance_icecrown_citadel.cpp:2001
ObjectGuid ProfessorPutricideGUID
Definition: instance_icecrown_citadel.cpp:1980
ObjectGuid CrokCaptainGUIDs[4]
Definition: instance_icecrown_citadel.cpp:1986
ObjectGuid DeathbringerSaurfangGUID
Definition: instance_icecrown_citadel.cpp:1967
ObjectGuid LadyDeathwhisperGUID
Definition: instance_icecrown_citadel.cpp:1962
ObjectGuid PutricadeTrapGUID
Definition: instance_icecrown_citadel.cpp:1991
ObjectGuid GunshipGUID
Definition: instance_icecrown_citadel.cpp:1964
ObjectGuid PutricideTableGUID
Definition: instance_icecrown_citadel.cpp:1981
ObjectGuid EnemyGunshipGUID
Definition: instance_icecrown_citadel.cpp:1965
ObjectGuid ValithriaTriggerGUID
Definition: instance_icecrown_citadel.cpp:1990
ObjectGuid SindragosaGUID
Definition: instance_icecrown_citadel.cpp:1993
ObjectGuid RotfaceGUID
Definition: instance_icecrown_citadel.cpp:1979
ObjectGuid SisterSvalnaGUID
Definition: instance_icecrown_citadel.cpp:1987
ObjectGuid SaurfangTeleportGUID
Definition: instance_icecrown_citadel.cpp:1971
ObjectGuid DeathbringerSaurfangDoorGUID
Definition: instance_icecrown_citadel.cpp:1968
ObjectGuid CrokScourgebaneGUID
Definition: instance_icecrown_citadel.cpp:1985

References ArthasPlatformGUID, BloodCouncilControllerGUID, BloodCouncilGUIDs, BloodQueenLanaThelGUID, CrokCaptainGUIDs, CrokScourgebaneGUID, DATA_ARTHAS_PLATFORM, DATA_BLOOD_PRINCES_CONTROL, DATA_BLOOD_QUEEN_LANA_THEL, DATA_CAPTAIN_ARNATH, DATA_CAPTAIN_BRANDON, DATA_CAPTAIN_GRONDEL, DATA_CAPTAIN_RUPERT, DATA_CROK_SCOURGEBANE, DATA_DEATHBRINGER_SAURFANG, DATA_ENEMY_GUNSHIP, DATA_FESTERGUT, DATA_HIGHLORD_TIRION_FORDRING, DATA_ICECROWN_GUNSHIP_BATTLE, DATA_LADY_DEATHWHISPER, DATA_PRINCE_KELESETH_GUID, DATA_PRINCE_TALDARAM_GUID, DATA_PRINCE_VALANAR_GUID, DATA_PROFESSOR_PUTRICIDE, DATA_PUTRICIDE_TABLE, DATA_RIMEFANG, DATA_ROTFACE, DATA_SAURFANG_EVENT_NPC, DATA_SINDRAGOSA, DATA_SISTER_SVALNA, DATA_SPINESTALKER, DATA_TERENAS_MENETHIL, DATA_THE_LICH_KING, DATA_VALITHRIA_DREAMWALKER, DATA_VALITHRIA_LICH_KING, DATA_VALITHRIA_TRIGGER, DeathbringerSaurfangDoorGUID, DeathbringerSaurfangEventGUID, DeathbringerSaurfangGUID, ObjectGuid::Empty, EnemyGunshipGUID, FestergutGUID, GO_SAURFANG_S_DOOR, GO_SCOURGE_TRANSPORTER_SAURFANG, GunshipGUID, HighlordTirionFordringGUID, LadyDeathwhisperGUID, NPC_PUTRICADES_TRAP, NPC_SINDRAGOSA_GAUNTLET, ProfessorPutricideGUID, PutricadeTrapGUID, PutricideTableGUID, RimefangGUID, RotfaceGUID, SaurfangTeleportGUID, SindragosaGauntletGUID, SindragosaGUID, SisterSvalnaGUID, SpinestalkerGUID, TerenasMenethilGUID, TheLichKingGUID, ValithriaDreamwalkerGUID, ValithriaLichKingGUID, and ValithriaTriggerGUID.

◆ HandleDropAttempt()

void instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::HandleDropAttempt ( bool  drop = true)
inline
1055 {
1057 return;
1058 if (drop && HeroicAttempts)
1059 {
1062 SaveToDB();
1063 }
1064 if (HeroicAttempts)
1065 return;
1068 if (professor->IsAlive())
1069 professor->SetVisible(false);
1071 if (bq->IsAlive())
1072 bq->SetVisible(false);
1074 if (sindra->IsAlive())
1075 sindra->SetVisible(false);
1076 if (Creature* theLichKing = instance->GetCreature(TheLichKingGUID))
1077 if (theLichKing->IsAlive())
1078 theLichKing->SetVisible(false);
1079 }
Definition: Creature.h:43
void SaveToDB()
Definition: InstanceScript.cpp:41
void DoUpdateWorldState(uint32 worldstateId, uint32 worldstateValue)
Definition: InstanceScript.cpp:603
Creature * GetCreature(ObjectGuid const guid)
Definition: Map.cpp:3317
uint32 GetData(uint32 type) const override
Definition: instance_icecrown_citadel.cpp:935

References BloodQueenLanaThelGUID, DATA_FESTERGUT, DATA_HAS_LIMITED_ATTEMPTS, DATA_ROTFACE, DONE, InstanceScript::DoUpdateWorldState(), InstanceScript::GetBossState(), Map::GetCreature(), GetData(), HeroicAttempts, InstanceScript::instance, ProfessorPutricideGUID, InstanceScript::SaveToDB(), SindragosaGUID, TheLichKingGUID, and WORLDSTATE_ATTEMPTS_REMAINING.

Referenced by SetBossState().

◆ OnCreatureCreate()

void instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::OnCreatureCreate ( Creature creature)
inlineoverridevirtual

Reimplemented from InstanceScript.

297 {
299 {
300 Map::PlayerList const& players = instance->GetPlayers();
301 if (!players.IsEmpty())
302 if (Player* player = players.begin()->GetSource())
303 TeamIdInInstance = player->GetTeamId();
304 }
305
306 // apply ICC buff to pets/summons
308 if (Unit* owner = creature->GetOwner())
309 if (Player* plr = owner->ToPlayer())
310 {
311 SpellAreaForAreaMapBounds saBounds = sSpellMgr->GetSpellAreaForAreaMapBounds(4812);
312 for (SpellAreaForAreaMap::const_iterator itr = saBounds.first; itr != saBounds.second; ++itr)
313 if ((itr->second->raceMask & plr->getRaceMask()) && !creature->HasAura(itr->second->spellId))
314 if (SpellInfo const* si = sSpellMgr->GetSpellInfo(itr->second->spellId))
316 creature->AddAura(itr->second->spellId, creature);
317 }
318
319 // fighting npcs in Rampart of Skulls
320 std::string name1("Skybreaker ");
321 std::string name2("Kor'kron ");
322 if (!creature->GetTransport() && creature->GetPositionZ() <= 205.0f && creature->GetExactDist2d(-439.0f, 2210.0f) <= 150.0f && (creature->GetEntry() == 37544 || creature->GetEntry() == 37545 || creature->GetName().compare(0, name1.length(), name1) == 0 || creature->GetName().compare(0, name2.length(), name2) == 0))
324
325 // pussywizard: check weekly here, before possible UpdateEntry
326 // allow creating all of them, because after killing Marrowgar some have to appear, so just hide them
327 switch (creature->GetEntry())
328 {
336 for (uint8 i = 0; i < WeeklyNPCs; ++i)
337 if (WeeklyQuestData[i].creatureEntry == creature->GetEntry())
338 {
339 WeeklyQuestNpcGUID[i] = creature->GetGUID();
340 if (WeeklyQuestId10 != WeeklyQuestData[i].questId[0])
341 creature->SetVisible(false);
343 creature->SetVisible(false);
344 }
345 break;
346 }
347
348 switch (creature->GetEntry())
349 {
353 break;
357 break;
358 case NPC_TORTUNOK:
361 break;
365 break;
369 break;
372 creature->UpdateEntry(NPC_YILI);
373 break;
374 case NPC_VOL_GUK:
376 creature->UpdateEntry(NPC_JEDEBIA);
377 break;
381 break;
385
386 // Xinef: summon in case of instance unload
388 {
393 }
394 break;
396 LadyDeathwhisperGUID = creature->GetGUID();
397 break;
399 DeathbringerSaurfangGUID = creature->GetGUID();
400 break;
403 {
405 creature->LoadEquipment();
406 }
408 creature->LastUsedScriptID = creature->GetScriptId();
409 break;
412 break;
415 {
417 creature->LoadEquipment();
418 }
419 break;
423 break;
424 case NPC_FESTERGUT:
425 FestergutGUID = creature->GetGUID();
426 break;
427 case NPC_ROTFACE:
428 RotfaceGUID = creature->GetGUID();
429 break;
431 ProfessorPutricideGUID = creature->GetGUID();
433 creature->SetVisible(false);
434 break;
436 BloodCouncilGUIDs[0] = creature->GetGUID();
437 break;
439 BloodCouncilGUIDs[1] = creature->GetGUID();
440 break;
442 BloodCouncilGUIDs[2] = creature->GetGUID();
443 break;
446 break;
448 BloodQueenLanaThelGUID = creature->GetGUID();
450 creature->SetVisible(false);
451 break;
453 CrokScourgebaneGUID = creature->GetGUID();
454 break;
455 // we can only do this because there are no gaps in their entries
460 CrokCaptainGUIDs[creature->GetEntry() - NPC_CAPTAIN_ARNATH] = creature->GetGUID();
461 break;
463 SisterSvalnaGUID = creature->GetGUID();
464 break;
466 ValithriaDreamwalkerGUID = creature->GetGUID();
467 break;
469 ValithriaLichKingGUID = creature->GetGUID();
470 break;
472 TheLichKingLhGUID = creature->GetGUID();
473 break;
475 ValithriaTriggerGUID = creature->GetGUID();
476 break;
478 PutricadeTrapGUID = creature->GetGUID();
479 break;
481 SindragosaGauntletGUID = creature->GetGUID();
482 break;
483 case NPC_SINDRAGOSA:
484 SindragosaGUID = creature->GetGUID();
486 creature->SetVisible(false);
487 break;
488 case NPC_SPINESTALKER:
489 SpinestalkerGUID = creature->GetGUID();
490 break;
491 case NPC_RIMEFANG:
492 RimefangGUID = creature->GetGUID();
493 break;
495 // Teleporter visual at center
497 creature->CastSpell(creature, SPELL_ARTHAS_TELEPORTER_CEREMONY, false);
498 break;
500 TheLichKingGUID = creature->GetGUID();
502 creature->SetVisible(false);
503 break;
506 break;
509 TerenasMenethilGUID = creature->GetGUID();
510 break;
513 creature->DespawnOrUnsummon(1);
514 break;
517 {
518 uint32 spellId = 0;
519 if (creature->GetPositionY() > 2790.0f && creature->GetPositionZ() > 420.0f)
520 spellId = BLOOD_BEAM_VISUAL_RHAND;
521 else if (creature->GetPositionY() < 2790.0f && creature->GetPositionZ() > 420.0f)
522 spellId = BLOOD_BEAM_VISUAL_LHAND;
523 else if (creature->GetPositionY() < 2790.0f && creature->GetPositionZ() < 420.0f)
524 spellId = BLOOD_BEAM_VISUAL_LLEG;
525 else
526 spellId = BLOOD_BEAM_VISUAL_RLEG;
527 creature->m_Events.AddEvent(new DelayedCastMincharEvent(creature, spellId), creature->m_Events.CalculateTime(1000));
528 }
529 break;
532 if (!creature->IsAlive())
533 creature->Respawn();
534 break;
535 default:
536 break;
537 }
538
540 }
std::uint8_t uint8
Definition: Define.h:109
Position const UtherSpawnPos
Definition: instance_icecrown_citadel.cpp:155
@ BLOOD_BEAM_VISUAL_LHAND
Definition: instance_icecrown_citadel.cpp:61
@ BLOOD_BEAM_VISUAL_RHAND
Definition: instance_icecrown_citadel.cpp:60
@ BLOOD_BEAM_VISUAL_LLEG
Definition: instance_icecrown_citadel.cpp:62
@ BLOOD_BEAM_VISUAL_RLEG
Definition: instance_icecrown_citadel.cpp:63
Position const SylvanasSpawnPos
Definition: instance_icecrown_citadel.cpp:156
WeeklyQuest const WeeklyQuestData[WeeklyNPCs]
Definition: instance_icecrown_citadel.cpp:140
Position const MuradinSpawnPos
Definition: instance_icecrown_citadel.cpp:154
Position const JainaSpawnPos
Definition: instance_icecrown_citadel.cpp:153
@ NPC_THE_LICH_KING_VALITHRIA
Definition: icecrown_citadel.h:318
@ NPC_UVLUS_BANEFIRE
Definition: icecrown_citadel.h:165
@ NPC_MURADIN_BRONZEBEARD_DUMMY
Definition: icecrown_citadel.h:177
@ NPC_GREEN_DRAGON_COMBAT_TRIGGER
Definition: icecrown_citadel.h:309
@ NPC_CAPTAIN_BRANDON
Definition: icecrown_citadel.h:292
@ NPC_INFILTRATOR_MINCHAR_BQ
Definition: icecrown_citadel.h:191
@ NPC_TERENAS_MENETHIL_FROSTMOURNE
Definition: icecrown_citadel.h:349
@ NPC_SKYBREAKER_LIEUTENANT
Definition: icecrown_citadel.h:186
@ NPC_PRINCE_VALANAR
Definition: icecrown_citadel.h:276
@ NPC_YILI
Definition: icecrown_citadel.h:168
@ NPC_VALITHRIA_DREAMWALKER
Definition: icecrown_citadel.h:308
@ NPC_ALRIN_THE_AGILE
Definition: icecrown_citadel.h:190
@ NPC_ALLIANCE_COMMANDER
Definition: icecrown_citadel.h:160
@ NPC_TALAN_MOONSTRIKE
Definition: icecrown_citadel.h:164
@ NPC_ALANA_MOONSTRIKE
Definition: icecrown_citadel.h:162
@ NPC_UTHER_THE_LIGHTBRINGER_QUEST
Definition: icecrown_citadel.h:180
@ NPC_ALCHEMIST_ADRIANNA
Definition: icecrown_citadel.h:189
@ NPC_IKFIRUS_THE_VILE
Definition: icecrown_citadel.h:167
@ NPC_HIGH_OVERLORD_SAURFANG_DUMMY
Definition: icecrown_citadel.h:176
@ NPC_DEATHBRINGER_SAURFANG
Definition: icecrown_citadel.h:242
@ NPC_KING_VARIAN_WRYNN
Definition: icecrown_citadel.h:174
@ NPC_KOR_KRON_GENERAL
Definition: icecrown_citadel.h:159
@ NPC_BLOOD_ORB_CONTROLLER
Definition: icecrown_citadel.h:277
@ NPC_LADY_JAINA_PROUDMOORE_QUEST
Definition: icecrown_citadel.h:178
@ NPC_MURADIN_BRONZEBEARD_QUEST
Definition: icecrown_citadel.h:179
@ NPC_KOR_KRON_LIEUTENANT
Definition: icecrown_citadel.h:185
@ NPC_SE_SKYBREAKER_MARINE
Definition: icecrown_citadel.h:249
@ NPC_CAPTAIN_RUPERT
Definition: icecrown_citadel.h:294
@ NPC_FESTERGUT
Definition: icecrown_citadel.h:253
@ NPC_HARAGG_THE_UNSEEN
Definition: icecrown_citadel.h:171
@ NPC_INFILTRATOR_MINCHAR
Definition: icecrown_citadel.h:184
@ NPC_BLOOD_QUEEN_LANA_THEL
Definition: icecrown_citadel.h:287
@ NPC_HIGHLORD_TIRION_FORDRING_LK
Definition: icecrown_citadel.h:348
@ NPC_MALFUS_GRIMFROST
Definition: icecrown_citadel.h:166
@ NPC_JEDEBIA
Definition: icecrown_citadel.h:170
@ NPC_ROTFACE
Definition: icecrown_citadel.h:257
@ NPC_SE_HIGH_OVERLORD_SAURFANG
Definition: icecrown_citadel.h:247
@ NPC_MINCHAR_BEAM_STALKER
Definition: icecrown_citadel.h:193
@ NPC_LADY_SYLVANAS_WINDRUNNER_QUEST
Definition: icecrown_citadel.h:181
@ NPC_PROFESSOR_PUTRICIDE
Definition: icecrown_citadel.h:263
@ NPC_NIBY_THE_ALMIGHTY
Definition: icecrown_citadel.h:172
@ NPC_VOL_GUK
Definition: icecrown_citadel.h:169
@ NPC_CROK_SCOURGEBANE
Definition: icecrown_citadel.h:290
@ NPC_SE_KOR_KRON_REAVER
Definition: icecrown_citadel.h:248
@ NPC_TORTUNOK
Definition: icecrown_citadel.h:161
@ NPC_LADY_DEATHWHISPER
Definition: icecrown_citadel.h:202
@ NPC_GARROSH_HELLSCREAM
Definition: icecrown_citadel.h:173
@ NPC_SISTER_SVALNA
Definition: icecrown_citadel.h:304
@ NPC_SPINESTALKER
Definition: icecrown_citadel.h:326
@ NPC_THE_LICH_KING_LH
Definition: icecrown_citadel.h:157
@ NPC_GERARDO_THE_SUAVE
Definition: icecrown_citadel.h:163
@ NPC_PRINCE_KELESETH
Definition: icecrown_citadel.h:274
@ NPC_CAPTAIN_GRONDEL
Definition: icecrown_citadel.h:293
@ NPC_SE_MURADIN_BRONZEBEARD
Definition: icecrown_citadel.h:245
@ NPC_VALITHRIA_DREAMWALKER_QUEST
Definition: icecrown_citadel.h:194
@ NPC_TERENAS_MENETHIL_FROSTMOURNE_H
Definition: icecrown_citadel.h:351
@ NPC_CAPTAIN_ARNATH
Definition: icecrown_citadel.h:291
uint32 const WeeklyNPCs
Definition: icecrown_citadel.h:32
@ NPC_RIMEFANG
Definition: pit_of_saron.h:71
@ NPC_SINDRAGOSA
Definition: pit_of_saron.h:72
@ NPC_PRINCE_TALDARAM
Definition: ahnkahet.h:41
@ NPC_THE_LICH_KING
Definition: chapter5.cpp:240
@ SPELL_AURA_MOD_INCREASE_HEALTH_PERCENT
Definition: SpellAuraDefines.h:196
std::pair< SpellAreaForAreaMap::const_iterator, SpellAreaForAreaMap::const_iterator > SpellAreaForAreaMapBounds
Definition: SpellMgr.h:550
#define sSpellMgr
Definition: SpellMgr.h:825
@ NOTIFY_AI_RELOCATION
Definition: Object.h:67
@ UNIT_MASK_CONTROLABLE_GUARDIAN
Definition: UnitDefines.h:143
@ UNIT_MASK_GUARDIAN
Definition: UnitDefines.h:137
@ UNIT_MASK_MINION
Definition: UnitDefines.h:136
void AddEvent(BasicEvent *Event, uint64 e_time, bool set_addtime=true)
Definition: EventProcessor.h:103
uint64 CalculateTime(uint64 t_offset) const
Definition: EventProcessor.cpp:159
void Respawn(bool force=false)
Definition: Creature.cpp:2035
void LoadEquipment(int8 id=1, bool force=false)
Definition: Creature.cpp:1798
uint32 GetScriptId() const
Definition: Creature.cpp:3043
CreatureData const * GetCreatureData() const
Definition: Creature.h:206
bool UpdateEntry(uint32 entry, const CreatureData *data=nullptr, bool changelevel=true, bool updateAI=false)
Definition: Creature.cpp:539
void DespawnOrUnsummon(Milliseconds msTimeToDespawn, Seconds forcedRespawnTimer)
Definition: Creature.cpp:2178
Player * ToPlayer()
Definition: Object.h:201
uint32 GetEntry() const
Definition: Object.h:115
static ObjectGuid GetGUID(Object const *o)
Definition: Object.h:112
uint32 LastUsedScriptID
Definition: Object.h:601
std::string const & GetName() const
Definition: Object.h:463
Transport * GetTransport() const
Definition: Object.h:604
void AddToNotify(uint16 f)
Definition: Object.cpp:2989
EventProcessor m_Events
Definition: Object.h:642
bool IsPlayer() const
Definition: ObjectGuid.h:168
float GetExactDist2d(const float x, const float y) const
Definition: Position.h:165
float GetPositionZ() const
Definition: Position.h:118
float GetPositionY() const
Definition: Position.h:117
void SetVisible(bool x)
Definition: Unit.cpp:14232
Unit * GetOwner() const
Definition: Unit.cpp:10600
Aura * AddAura(uint32 spellId, Unit *target)
Definition: Unit.cpp:18863
bool IsAlive() const
Definition: Unit.h:1654
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
Definition: Unit.cpp:5698
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:1167
ObjectGuid GetOwnerGUID() const
Definition: Unit.h:678
uint32 HasUnitTypeMask(uint32 mask) const
Definition: Unit.h:706
bool CanHaveThreatList(bool skipAliveCheck=false) const
Definition: Unit.cpp:14614
void OnCreatureCreate(Creature *creature) override
Definition: InstanceScript.cpp:58
TempSummon * SummonCreature(uint32 entry, Position const &pos, SummonPropertiesEntry const *properties=nullptr, uint32 duration=0, WorldObject *summoner=nullptr, uint32 spellId=0, uint32 vehId=0, bool visibleBySummonerOnly=false)
Definition: Object.cpp:2174
Definition: SpellInfo.h:316
Definition: instance_icecrown_citadel.cpp:182
ObjectGuid WeeklyQuestNpcGUID[WeeklyNPCs]
Definition: instance_icecrown_citadel.cpp:1951
ObjectGuid TheLichKingLhGUID
Definition: instance_icecrown_citadel.cpp:1998

References Unit::AddAura(), EventProcessor::AddEvent(), WorldObject::AddToNotify(), MapRefMgr::begin(), BLOOD_BEAM_VISUAL_LHAND, BLOOD_BEAM_VISUAL_LLEG, BLOOD_BEAM_VISUAL_RHAND, BLOOD_BEAM_VISUAL_RLEG, BloodCouncilControllerGUID, BloodCouncilGUIDs, BloodQueenLanaThelGUID, BloodQuickeningState, EventProcessor::CalculateTime(), Unit::CanHaveThreatList(), Unit::CastSpell(), CrokCaptainGUIDs, CrokScourgebaneGUID, DATA_BLOOD_QUEEN_LANA_THEL, DATA_BUFF_AVAILABLE, DATA_FESTERGUT, DATA_HAS_LIMITED_ATTEMPTS, DATA_PROFESSOR_PUTRICIDE, DATA_ROTFACE, DATA_SINDRAGOSA, DATA_THE_LICH_KING, DATA_VALITHRIA_DREAMWALKER, DeathbringerSaurfangEventGUID, DeathbringerSaurfangGUID, Creature::DespawnOrUnsummon(), DONE, FestergutGUID, InstanceScript::GetBossState(), Creature::GetCreatureData(), GetData(), Object::GetEntry(), Position::GetExactDist2d(), Object::GetGUID(), WorldObject::GetName(), Unit::GetOwner(), Unit::GetOwnerGUID(), Map::GetPlayers(), Position::GetPositionY(), Position::GetPositionZ(), Creature::GetScriptId(), Reference< TO, FROM >::GetSource(), WorldObject::GetTransport(), Unit::HasAura(), Unit::HasUnitTypeMask(), HeroicAttempts, HighlordTirionFordringGUID, InstanceScript::instance, Unit::IsAlive(), LinkedListHead::IsEmpty(), ObjectGuid::IsPlayer(), JainaSpawnPos, LadyDeathwhisperGUID, WorldObject::LastUsedScriptID, Creature::LoadEquipment(), WorldObject::m_Events, MuradinSpawnPos, NOTIFY_AI_RELOCATION, NPC_ALANA_MOONSTRIKE, NPC_ALCHEMIST_ADRIANNA, NPC_ALLIANCE_COMMANDER, NPC_ALRIN_THE_AGILE, NPC_BLOOD_ORB_CONTROLLER, NPC_BLOOD_QUEEN_LANA_THEL, NPC_CAPTAIN_ARNATH, NPC_CAPTAIN_BRANDON, NPC_CAPTAIN_GRONDEL, NPC_CAPTAIN_RUPERT, NPC_CROK_SCOURGEBANE, NPC_DEATHBRINGER_SAURFANG, NPC_FESTERGUT, NPC_GARROSH_HELLSCREAM, NPC_GERARDO_THE_SUAVE, NPC_GREEN_DRAGON_COMBAT_TRIGGER, NPC_HARAGG_THE_UNSEEN, NPC_HIGH_OVERLORD_SAURFANG_DUMMY, NPC_HIGHLORD_TIRION_FORDRING_LK, NPC_IKFIRUS_THE_VILE, NPC_INFILTRATOR_MINCHAR, NPC_INFILTRATOR_MINCHAR_BQ, NPC_INVISIBLE_STALKER, NPC_JEDEBIA, NPC_KING_VARIAN_WRYNN, NPC_KOR_KRON_GENERAL, NPC_KOR_KRON_LIEUTENANT, NPC_LADY_DEATHWHISPER, NPC_LADY_JAINA_PROUDMOORE_QUEST, NPC_LADY_SYLVANAS_WINDRUNNER_QUEST, NPC_MALFUS_GRIMFROST, NPC_MINCHAR_BEAM_STALKER, NPC_MURADIN_BRONZEBEARD_DUMMY, NPC_MURADIN_BRONZEBEARD_QUEST, NPC_NIBY_THE_ALMIGHTY, NPC_ORGRIMS_HAMMER_CREW, NPC_PRINCE_KELESETH, NPC_PRINCE_TALDARAM, NPC_PRINCE_VALANAR, NPC_PROFESSOR_PUTRICIDE, NPC_PUTRICADES_TRAP, NPC_RIMEFANG, NPC_ROTFACE, NPC_SE_HIGH_OVERLORD_SAURFANG, NPC_SE_KOR_KRON_REAVER, NPC_SE_MURADIN_BRONZEBEARD, NPC_SE_SKYBREAKER_MARINE, NPC_SINDRAGOSA, NPC_SINDRAGOSA_GAUNTLET, NPC_SISTER_SVALNA, NPC_SKYBREAKER_DECKHAND, NPC_SKYBREAKER_LIEUTENANT, NPC_SPINESTALKER, NPC_TALAN_MOONSTRIKE, NPC_TERENAS_MENETHIL_FROSTMOURNE, NPC_TERENAS_MENETHIL_FROSTMOURNE_H, NPC_THE_LICH_KING, NPC_THE_LICH_KING_LH, NPC_THE_LICH_KING_VALITHRIA, NPC_TORTUNOK, NPC_UTHER_THE_LIGHTBRINGER_QUEST, NPC_UVLUS_BANEFIRE, NPC_VALITHRIA_DREAMWALKER, NPC_VALITHRIA_DREAMWALKER_QUEST, NPC_VOL_GUK, NPC_YILI, InstanceScript::OnCreatureCreate(), ProfessorPutricideGUID, PutricadeTrapGUID, Creature::Respawn(), RimefangGUID, RotfaceGUID, Unit::SetVisible(), SindragosaGauntletGUID, SindragosaGUID, SisterSvalnaGUID, SPELL_ARTHAS_TELEPORTER_CEREMONY, SPELL_AURA_MOD_INCREASE_HEALTH_PERCENT, SpinestalkerGUID, sSpellMgr, Map::SummonCreature(), SylvanasSpawnPos, TEAM_ALLIANCE, TEAM_NEUTRAL, TeamIdInInstance, TerenasMenethilGUID, TheLichKingGUID, TheLichKingLhGUID, Object::ToPlayer(), UNIT_MASK_CONTROLABLE_GUARDIAN, UNIT_MASK_GUARDIAN, UNIT_MASK_MINION, Creature::UpdateEntry(), UtherSpawnPos, ValithriaDreamwalkerGUID, ValithriaLichKingGUID, ValithriaTriggerGUID, WeeklyNPCs, WeeklyQuestData, WeeklyQuestId10, and WeeklyQuestNpcGUID.

◆ OnCreatureRemove()

void instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::OnCreatureRemove ( Creature creature)
inlineoverridevirtual

Reimplemented from InstanceScript.

543 {
544 if (creature->GetEntry() == NPC_SINDRAGOSA)
546
548 }
void Clear()
Definition: ObjectGuid.h:138
void OnCreatureRemove(Creature *creature) override
Definition: InstanceScript.cpp:67

References ObjectGuid::Clear(), Object::GetEntry(), NPC_SINDRAGOSA, InstanceScript::OnCreatureRemove(), and SindragosaGUID.

◆ OnGameObjectCreate()

void instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::OnGameObjectCreate ( GameObject go)
inlineoverridevirtual

Reimplemented from InstanceScript.

700 {
702 {
703 Map::PlayerList const& players = instance->GetPlayers();
704 if (!players.IsEmpty())
705 if (Player* player = players.begin()->GetSource())
706 TeamIdInInstance = player->GetTeamId();
707 }
708
709 switch (go->GetEntry())
710 {
716 break;
717 case GO_GEIST_ALARM_1:
718 case GO_GEIST_ALARM_2:
719 go->SetPosition(go->GetPositionX() + urand(0, 2) * 20.0f * (go->GetEntry() == GO_GEIST_ALARM_1 ? -1.0f : 1.0f), go->GetPositionY(), go->GetPositionZ(), go->GetOrientation());
720 break;
722 case GO_ICEWALL:
738 case GO_ICE_WALL:
740 AddDoor(go);
741 break;
745 break;
746 // these 2 gates are functional only on 25man modes
749 if (instance->Is25ManRaid())
750 AddDoor(go);
751 break;
754 break;
758 break;
768 break;
771 AddDoor(go);
772 break;
778 break;
781 break;
782 case GO_PLAGUE_SIGIL:
783 PlagueSigilGUID = go->GetGUID();
786 break;
791 break;
796 break;
800 break;
802 PutricideGateGUIDs[0] = go->GetGUID();
805 else
807 break;
809 PutricideGateGUIDs[1] = go->GetGUID();
812 else
814 break;
816 PutricidePipeGUIDs[0] = go->GetGUID();
819 break;
821 PutricidePipeGUIDs[1] = go->GetGUID();
824 break;
829 break;
834 break;
835 case GO_DRINK_ME:
837 break;
843 go->SetLootRecipient(valithria);
845 break;
850 break;
852 // this enables movement at The Frozen Throne, when printed this value is 0.000000f
853 // however, when represented as integer client will accept only this value
856 break;
860 break;
863 break;
866 break;
869 break;
873 go->SetRespawnTime(7 * DAY);
874 break;
878 go->SetRespawnTime(7 * DAY);
879 break;
883 go->SetRespawnTime(7 * DAY);
884 break;
886 AddDoor(go);
890 break;
891 default:
892 break;
893 }
894 }
constexpr auto DAY
Definition: Common.h:49
uint32 urand(uint32 min, uint32 max)
Definition: Random.cpp:44
@ GO_SINDRAGOSA_SHORTCUT_ENTRANCE_DOOR
Definition: icecrown_citadel.h:457
@ GO_SCIENTIST_AIRLOCK_DOOR_GREEN
Definition: icecrown_citadel.h:424
@ GO_SCOURGE_TRANSPORTER_LK
Definition: icecrown_citadel.h:464
@ GO_THE_SKYBREAKER_H
Definition: icecrown_citadel.h:397
@ GO_GREEN_PLAGUE_MONSTER_ENTRANCE
Definition: icecrown_citadel.h:421
@ GO_SCIENTIST_AIRLOCK_DOOR_COLLISION
Definition: icecrown_citadel.h:422
@ GO_ORGRIMS_HAMMER_A
Definition: icecrown_citadel.h:404
@ GO_DOODAD_ICECROWN_GREENTUBES02
Definition: icecrown_citadel.h:426
@ GO_DEATHBRINGER_S_CACHE_10N
Definition: icecrown_citadel.h:413
@ GO_CACHE_OF_THE_DREAMWALKER_25H
Definition: icecrown_citadel.h:453
@ GO_GAS_RELEASE_VALVE
Definition: icecrown_citadel.h:430
@ GO_FROZEN_LAVAMAN
Definition: icecrown_citadel.h:474
@ GO_BLOODWING_SIGIL
Definition: icecrown_citadel.h:441
@ GO_DEATHBRINGER_S_CACHE_25N
Definition: icecrown_citadel.h:414
@ GO_LADY_DEATHWHISPER_ELEVATOR
Definition: icecrown_citadel.h:393
@ GO_CACHE_OF_THE_DREAMWALKER_25N
Definition: icecrown_citadel.h:451
@ GO_BLOOD_ELF_COUNCIL_DOOR_RIGHT
Definition: icecrown_citadel.h:436
@ GO_SINDRAGOSA_SHORTCUT_EXIT_DOOR
Definition: icecrown_citadel.h:458
@ GO_DOODAD_ICECROWN_SNOWEDGEWARNING01
Definition: icecrown_citadel.h:473
@ GO_DOODAD_ICECROWN_ICEWALL02
Definition: icecrown_citadel.h:387
@ GO_ICEWALL
Definition: icecrown_citadel.h:388
@ GO_LAVAMAN_PILLARS_UNCHAINED
Definition: icecrown_citadel.h:476
@ GO_SPIRIT_ALARM_1
Definition: icecrown_citadel.h:379
@ GO_ORATORY_OF_THE_DAMNED_ENTRANCE
Definition: icecrown_citadel.h:392
@ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_04
Definition: icecrown_citadel.h:449
@ GO_SCIENTIST_AIRLOCK_DOOR_ORANGE
Definition: icecrown_citadel.h:423
@ GO_ARTHAS_PLATFORM
Definition: icecrown_citadel.h:465
@ GO_GEIST_ALARM_2
Definition: icecrown_citadel.h:384
@ GO_CACHE_OF_THE_DREAMWALKER_10N
Definition: icecrown_citadel.h:450
@ GO_GREEN_DRAGON_BOSS_EXIT
Definition: icecrown_citadel.h:445
@ GO_ORANGE_PLAGUE_MONSTER_ENTRANCE
Definition: icecrown_citadel.h:420
@ GO_PLAGUE_SIGIL
Definition: icecrown_citadel.h:429
@ GO_DOODAD_ICECROWN_BLOODPRINCE_DOOR_01
Definition: icecrown_citadel.h:439
@ GO_DEATHBRINGER_S_CACHE_10H
Definition: icecrown_citadel.h:415
@ GO_DOODAD_ICECROWN_THRONEFROSTYWIND01
Definition: icecrown_citadel.h:467
@ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_02
Definition: icecrown_citadel.h:447
@ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_03
Definition: icecrown_citadel.h:448
@ GO_SIGIL_OF_THE_FROSTWING
Definition: icecrown_citadel.h:461
@ GO_OOZE_RELEASE_VALVE
Definition: icecrown_citadel.h:431
@ GO_SCOURGE_TRANSPORTER_FIRST
Definition: icecrown_citadel.h:376
@ GO_SPIRIT_ALARM_3
Definition: icecrown_citadel.h:381
@ GO_SPIRIT_ALARM_2
Definition: icecrown_citadel.h:380
@ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_01
Definition: icecrown_citadel.h:446
@ GO_BLOOD_ELF_COUNCIL_DOOR
Definition: icecrown_citadel.h:435
@ GO_DOODAD_ICECROWN_ORANGETUBES02
Definition: icecrown_citadel.h:425
@ GO_DEATHBRINGER_S_CACHE_25H
Definition: icecrown_citadel.h:416
@ GO_GEIST_ALARM_1
Definition: icecrown_citadel.h:383
@ GO_DOODAD_ICECROWN_GRATE_01
Definition: icecrown_citadel.h:440
@ GO_LORD_MARROWGAR_S_ENTRANCE
Definition: icecrown_citadel.h:389
@ GO_SCIENTIST_ENTRANCE
Definition: icecrown_citadel.h:427
@ GO_LAVAMAN_PILLARS_CHAINED
Definition: icecrown_citadel.h:475
@ GO_DRINK_ME
Definition: icecrown_citadel.h:428
@ GO_CRIMSON_HALL_DOOR
Definition: icecrown_citadel.h:434
@ GO_DOODAD_ICECROWN_THRONEFROSTYEDGE01
Definition: icecrown_citadel.h:468
@ GO_CACHE_OF_THE_DREAMWALKER_10H
Definition: icecrown_citadel.h:452
@ GO_SPIRIT_ALARM_4
Definition: icecrown_citadel.h:382
@ GO_GREEN_DRAGON_BOSS_ENTRANCE
Definition: icecrown_citadel.h:444
@ GO_SINDRAGOSA_ENTRANCE_DOOR
Definition: icecrown_citadel.h:456
@ GO_ARTHAS_PRECIPICE
Definition: icecrown_citadel.h:466
@ GO_ICE_WALL
Definition: halls_of_reflection.h:93
@ GO_FLAG_INTERACT_COND
Definition: SharedDefines.h:1605
@ GO_FLAG_NODESPAWN
Definition: SharedDefines.h:1608
@ GO_FLAG_NOT_SELECTABLE
Definition: SharedDefines.h:1607
@ GO_FLAG_LOCKED
Definition: SharedDefines.h:1604
@ GO_STATE_ACTIVE_ALTERNATIVE
Definition: GameObjectData.h:691
@ GAMEOBJECT_PARENTROTATION
Definition: UpdateFields.h:400
void SetGoState(GOState state)
Definition: GameObject.cpp:2479
void SetGameObjectFlag(GameObjectFlags flags)
Definition: GameObject.h:218
void SetRespawnTime(int32 respawn)
Definition: GameObject.cpp:1305
void SetLootRecipient(Creature *creature)
Definition: GameObject.cpp:2648
void RemoveGameObjectFlag(GameObjectFlags flags)
Definition: GameObject.h:219
void SetPosition(float x, float y, float z, float o)
Definition: GameObject.cpp:2864
void SetUInt32Value(uint16 index, uint32 value)
Definition: Object.cpp:650
float GetOrientation() const
Definition: Position.h:119
float GetPositionX() const
Definition: Position.h:116
void HandleGameObject(ObjectGuid guid, bool open, GameObject *go=nullptr)
Definition: InstanceScript.cpp:113
void AddDoor(GameObject *door, bool add=true)
Definition: InstanceScript.cpp:319
bool Is25ManRaid() const
Definition: Map.h:451
ObjectGuid LadyDeathwisperElevatorGUID
Definition: instance_icecrown_citadel.cpp:1963
ObjectGuid FrozenThroneWarningGUID
Definition: instance_icecrown_citadel.cpp:2005
ObjectGuid ScourgeTransporterFirstGUID
Definition: instance_icecrown_citadel.cpp:1959
ObjectGuid DeathbringersCacheGUID
Definition: instance_icecrown_citadel.cpp:1970
ObjectGuid PutricideEnteranceDoorGUID
Definition: instance_icecrown_citadel.cpp:1952
ObjectGuid FrostwingSigilGUID
Definition: instance_icecrown_citadel.cpp:1974
ObjectGuid ArthasPrecipiceGUID
Definition: instance_icecrown_citadel.cpp:2002
ObjectGuid PutricideCollisionGUID
Definition: instance_icecrown_citadel.cpp:1977
ObjectGuid GunshipArmoryGUID
Definition: instance_icecrown_citadel.cpp:1966
ObjectGuid FrozenThroneWindGUID
Definition: instance_icecrown_citadel.cpp:2004
ObjectGuid OozeReleaseValveGUID
Definition: instance_icecrown_citadel.cpp:1955
ObjectGuid GasReleaseValveGUID
Definition: instance_icecrown_citadel.cpp:1954
ObjectGuid PutricidePipeGUIDs[2]
Definition: instance_icecrown_citadel.cpp:1975
ObjectGuid FrozenThroneEdgeGUID
Definition: instance_icecrown_citadel.cpp:2003
ObjectGuid PillarsChainedGUID
Definition: instance_icecrown_citadel.cpp:2007
ObjectGuid FrozenBolvarGUID
Definition: instance_icecrown_citadel.cpp:2006
ObjectGuid PutricideGateGUIDs[2]
Definition: instance_icecrown_citadel.cpp:1976
ObjectGuid BloodwingSigilGUID
Definition: instance_icecrown_citadel.cpp:1973
ObjectGuid PlagueSigilGUID
Definition: instance_icecrown_citadel.cpp:1972
ObjectGuid PillarsUnchainedGUID
Definition: instance_icecrown_citadel.cpp:2008
void SetPositionTraps(GameObject *go)
Definition: instance_icecrown_citadel.cpp:1922

References InstanceScript::AddDoor(), ArthasPlatformGUID, ArthasPrecipiceGUID, MapRefMgr::begin(), BloodwingSigilGUID, DATA_BLOOD_QUEEN_LANA_THEL, DATA_FESTERGUT, DATA_LORD_MARROWGAR, DATA_PROFESSOR_PUTRICIDE, DATA_ROTFACE, DATA_SINDRAGOSA, DATA_THE_LICH_KING, DAY, DeathbringerSaurfangDoorGUID, DeathbringersCacheGUID, DONE, EnemyGunshipGUID, FrostwingSigilGUID, FrozenBolvarGUID, FrozenThroneEdgeGUID, FrozenThroneWarningGUID, FrozenThroneWindGUID, GAMEOBJECT_PARENTROTATION, GasReleaseValveGUID, InstanceScript::GetBossState(), Map::GetCreature(), Object::GetEntry(), Object::GetGUID(), Position::GetOrientation(), Map::GetPlayers(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), Reference< TO, FROM >::GetSource(), GO_ARTHAS_PLATFORM, GO_ARTHAS_PRECIPICE, GO_BLOOD_ELF_COUNCIL_DOOR, GO_BLOOD_ELF_COUNCIL_DOOR_RIGHT, GO_BLOODWING_SIGIL, GO_CACHE_OF_THE_DREAMWALKER_10H, GO_CACHE_OF_THE_DREAMWALKER_10N, GO_CACHE_OF_THE_DREAMWALKER_25H, GO_CACHE_OF_THE_DREAMWALKER_25N, GO_CRIMSON_HALL_DOOR, GO_DEATHBRINGER_S_CACHE_10H, GO_DEATHBRINGER_S_CACHE_10N, GO_DEATHBRINGER_S_CACHE_25H, GO_DEATHBRINGER_S_CACHE_25N, GO_DOODAD_ICECROWN_BLOODPRINCE_DOOR_01, GO_DOODAD_ICECROWN_GRATE_01, GO_DOODAD_ICECROWN_GREENTUBES02, GO_DOODAD_ICECROWN_ICEWALL02, GO_DOODAD_ICECROWN_ORANGETUBES02, GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_01, GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_02, GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_03, GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_04, GO_DOODAD_ICECROWN_SNOWEDGEWARNING01, GO_DOODAD_ICECROWN_THRONEFROSTYEDGE01, GO_DOODAD_ICECROWN_THRONEFROSTYWIND01, GO_DRINK_ME, GO_FLAG_INTERACT_COND, GO_FLAG_LOCKED, GO_FLAG_NODESPAWN, GO_FLAG_NOT_SELECTABLE, GO_FROZEN_LAVAMAN, GO_GAS_RELEASE_VALVE, GO_GEIST_ALARM_1, GO_GEIST_ALARM_2, GO_GREEN_DRAGON_BOSS_ENTRANCE, GO_GREEN_DRAGON_BOSS_EXIT, GO_GREEN_PLAGUE_MONSTER_ENTRANCE, GO_GUNSHIP_ARMORY_A_10H, GO_GUNSHIP_ARMORY_A_10N, GO_GUNSHIP_ARMORY_A_25H, GO_GUNSHIP_ARMORY_A_25N, GO_GUNSHIP_ARMORY_H_10H, GO_GUNSHIP_ARMORY_H_10N, GO_GUNSHIP_ARMORY_H_25H, GO_GUNSHIP_ARMORY_H_25N, GO_ICE_WALL, GO_ICEWALL, GO_LADY_DEATHWHISPER_ELEVATOR, GO_LAVAMAN_PILLARS_CHAINED, GO_LAVAMAN_PILLARS_UNCHAINED, GO_LORD_MARROWGAR_S_ENTRANCE, GO_OOZE_RELEASE_VALVE, GO_ORANGE_PLAGUE_MONSTER_ENTRANCE, GO_ORATORY_OF_THE_DAMNED_ENTRANCE, GO_ORGRIMS_HAMMER_A, GO_PLAGUE_SIGIL, GO_SAURFANG_S_DOOR, GO_SCIENTIST_AIRLOCK_DOOR_COLLISION, GO_SCIENTIST_AIRLOCK_DOOR_GREEN, GO_SCIENTIST_AIRLOCK_DOOR_ORANGE, GO_SCIENTIST_ENTRANCE, GO_SCOURGE_TRANSPORTER_FIRST, GO_SCOURGE_TRANSPORTER_LK, GO_SCOURGE_TRANSPORTER_SAURFANG, GO_SIGIL_OF_THE_FROSTWING, GO_SINDRAGOSA_ENTRANCE_DOOR, GO_SINDRAGOSA_SHORTCUT_ENTRANCE_DOOR, GO_SINDRAGOSA_SHORTCUT_EXIT_DOOR, GO_SPIRIT_ALARM_1, GO_SPIRIT_ALARM_2, GO_SPIRIT_ALARM_3, GO_SPIRIT_ALARM_4, GO_STATE_ACTIVE, GO_STATE_ACTIVE_ALTERNATIVE, GO_THE_SKYBREAKER_H, GunshipArmoryGUID, InstanceScript::HandleGameObject(), InstanceScript::instance, Map::Is25ManRaid(), LinkedListHead::IsEmpty(), LadyDeathwisperElevatorGUID, OozeReleaseValveGUID, PillarsChainedGUID, PillarsUnchainedGUID, PlagueSigilGUID, PUTRICIDE_EVENT_FLAG_FESTERGUT_VALVE, PUTRICIDE_EVENT_FLAG_ROTFACE_VALVE, PUTRICIDE_EVENT_FLAG_TRAP_FINISHED, PutricideCollisionGUID, PutricideEnteranceDoorGUID, PutricideEventProgress, PutricideGateGUIDs, PutricidePipeGUIDs, PutricideTableGUID, GameObject::RemoveGameObjectFlag(), SaurfangTeleportGUID, ScourgeTransporterFirstGUID, GameObject::SetGameObjectFlag(), GameObject::SetGoState(), GameObject::SetLootRecipient(), GameObject::SetPosition(), SetPositionTraps(), GameObject::SetRespawnTime(), Object::SetUInt32Value(), TEAM_NEUTRAL, TeamIdInInstance, TheLichKingTeleportGUID, urand(), and ValithriaDreamwalkerGUID.

◆ OnGameObjectRemove()

void instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::OnGameObjectRemove ( GameObject go)
inlineoverridevirtual

Reimplemented from InstanceScript.

897 {
898 switch (go->GetEntry())
899 {
901 case GO_ICEWALL:
919 //case GO_SINDRAGOSA_ENTRANCE_DOOR:
922 case GO_ICE_WALL:
924 RemoveDoor(go);
925 break;
929 break;
930 default:
931 break;
932 }
933 }
@ GO_ORGRIMS_HAMMER_H
Definition: icecrown_citadel.h:396
void RemoveDoor(GameObject *door)
Definition: InstanceScript.cpp:341

References ObjectGuid::Clear(), Object::GetEntry(), GO_BLOOD_ELF_COUNCIL_DOOR, GO_BLOOD_ELF_COUNCIL_DOOR_RIGHT, GO_CRIMSON_HALL_DOOR, GO_DOODAD_ICECROWN_BLOODPRINCE_DOOR_01, GO_DOODAD_ICECROWN_GRATE_01, GO_DOODAD_ICECROWN_ICEWALL02, GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_01, GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_02, GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_03, GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_04, GO_GREEN_DRAGON_BOSS_ENTRANCE, GO_GREEN_DRAGON_BOSS_EXIT, GO_GREEN_PLAGUE_MONSTER_ENTRANCE, GO_ICE_WALL, GO_ICEWALL, GO_LORD_MARROWGAR_S_ENTRANCE, GO_ORANGE_PLAGUE_MONSTER_ENTRANCE, GO_ORATORY_OF_THE_DAMNED_ENTRANCE, GO_ORGRIMS_HAMMER_H, GO_SAURFANG_S_DOOR, GO_SCIENTIST_ENTRANCE, GO_SCOURGE_TRANSPORTER_FIRST, GO_SINDRAGOSA_SHORTCUT_ENTRANCE_DOOR, GO_SINDRAGOSA_SHORTCUT_EXIT_DOOR, GO_THE_SKYBREAKER_A, GunshipGUID, and InstanceScript::RemoveDoor().

◆ OnPlayerAreaUpdate()

void instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::OnPlayerAreaUpdate ( Player player,
uint32  ,
uint32  newArea 
)
inlineoverridevirtual

Reimplemented from InstanceScript.

247 {
248 if (newArea == 4890 /*Putricide's Laboratory of Alchemical Horrors and Fun*/ ||
249 newArea == 4891 /*The Sanctum of Blood*/ ||
250 newArea == 4889 /*The Frost Queen's Lair*/ ||
251 newArea == 4859 /*The Frozen Throne*/ ||
252 newArea == 4910 /*Frostmourne*/)
253 {
254 player->SendInitWorldStates(player->GetZoneId(), player->GetAreaId());
255 }
256 else
257 {
259 }
260 }
uint32 GetAreaId() const
Definition: Object.cpp:3165
uint32 GetZoneId() const
Definition: Object.cpp:3157
void SendUpdateWorldState(uint32 variable, uint32 value) const
Definition: PlayerUpdates.cpp:2197
void SendInitWorldStates(uint32 zone, uint32 area)
Definition: Player.cpp:8219

References WorldObject::GetAreaId(), WorldObject::GetZoneId(), Player::SendInitWorldStates(), Player::SendUpdateWorldState(), and WORLDSTATE_SHOW_ATTEMPTS.

◆ OnPlayerEnter()

void instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::OnPlayerEnter ( Player player)
inlineoverridevirtual

Reimplemented from InstanceScript.

263 {
265 TeamIdInInstance = player->GetTeamId();
266
267 // for professor putricide hc
270
272 SpawnGunship();
273
274 if (GetBossState(DATA_SINDRAGOSA) != DONE && IsSindragosaIntroDone && !GetCreature(DATA_SINDRAGOSA) && Events.GetTimeUntilEvent(EVENT_RESPAWN_SINDRAGOSA) == Milliseconds::max())
275 {
276 Events.ScheduleEvent(EVENT_RESPAWN_SINDRAGOSA, 30s);
277 }
278
279 if (IsBuffAvailable)
280 {
281 SpellAreaForAreaMapBounds saBounds = sSpellMgr->GetSpellAreaForAreaMapBounds(4812);
282 for (SpellAreaForAreaMap::const_iterator itr = saBounds.first; itr != saBounds.second; ++itr)
283 if ((itr->second->raceMask & player->getRaceMask()) && !player->HasAura(itr->second->spellId))
284 {
285 if (SpellInfo const* si = sSpellMgr->GetSpellInfo(itr->second->spellId))
286 {
288 {
289 DoCastSpellOnPlayer(player, itr->second->spellId, false, false);
290 }
291 }
292 }
293 }
294 }
@ SPELL_OOZE_VARIABLE
Definition: instance_icecrown_citadel.cpp:59
@ SPELL_GAS_VARIABLE
Definition: instance_icecrown_citadel.cpp:58
@ EVENT_RESPAWN_SINDRAGOSA
Definition: instance_icecrown_citadel.cpp:53
Events
Definition: alterac_valley.cpp:53
TeamId GetTeamId(bool original=false) const
Definition: Player.h:2108
uint32 getRaceMask() const
Definition: Unit.h:795
Creature * GetCreature(uint32 type)
Definition: InstanceScript.cpp:103
void DoRemoveAurasDueToSpellOnPlayers(uint32 spell)
Definition: InstanceScript.cpp:665
void DoCastSpellOnPlayer(Player *player, uint32 spell, bool includePets, bool includeControlled)
Definition: InstanceScript.cpp:684
void SpawnGunship()
Definition: instance_icecrown_citadel.cpp:1253

References DATA_ICECROWN_GUNSHIP_BATTLE, DATA_LADY_DEATHWHISPER, DATA_SINDRAGOSA, InstanceScript::DoCastSpellOnPlayer(), DONE, InstanceScript::DoRemoveAurasDueToSpellOnPlayers(), EVENT_RESPAWN_SINDRAGOSA, InstanceScript::GetBossState(), InstanceScript::GetCreature(), Unit::getRaceMask(), Player::GetTeamId(), Unit::HasAura(), IsBuffAvailable, IsSindragosaIntroDone, SpawnGunship(), SPELL_AURA_MOD_INCREASE_HEALTH_PERCENT, SPELL_GAS_VARIABLE, SPELL_OOZE_VARIABLE, sSpellMgr, TEAM_NEUTRAL, and TeamIdInInstance.

◆ OnUnitDeath()

void instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::OnUnitDeath ( Unit unit)
inlineoverridevirtual

Reimplemented from ZoneScript.

627 {
628 Creature* creature = unit->ToCreature();
629 if (!creature)
630 return;
631
632 // fighting npcs in Rampart of Skulls
633 std::string name1("Skybreaker ");
634 std::string name2("Kor'kron ");
635 if (!creature->GetTransport() && creature->GetPositionZ() <= 205.0f && creature->GetExactDist2d(-439.0f, 2210.0f) <= 150.0f && (creature->GetEntry() == 37544 || creature->GetEntry() == 37545 || creature->GetName().compare(0, name1.length(), name1) == 0 || creature->GetName().compare(0, name2.length(), name2) == 0))
636 if (!creature->GetLootRecipient())
637 creature->m_Events.AddEvent(new RespawnEvent(*creature), creature->m_Events.CalculateTime(3000));
638
639 switch (creature->GetEntry())
640 {
647 crok->AI()->SetGUID(creature->GetGUID(), ACTION_VRYKUL_DEATH);
648 break;
650 if (FrostwyrmGUIDs.empty())
651 return;
652
653 if (creature->AI()->GetData(1/*DATA_FROSTWYRM_OWNER*/) == DATA_SPINESTALKER)
654 {
655 SpinestalkerTrash.erase(creature->GetSpawnId());
656 if (SpinestalkerTrash.empty())
657 if (Creature* spinestalk = instance->GetCreature(SpinestalkerGUID))
658 spinestalk->AI()->DoAction(ACTION_START_FROSTWYRM);
659 }
660 else
661 {
662 RimefangTrash.erase(creature->GetSpawnId());
663 if (RimefangTrash.empty())
664 if (Creature* spinestalk = instance->GetCreature(RimefangGUID))
665 spinestalk->AI()->DoAction(ACTION_START_FROSTWYRM);
666 }
667 break;
668 case NPC_RIMEFANG:
669 case NPC_SPINESTALKER:
670 {
672 return;
673
675 return;
676
677 FrostwyrmGUIDs.erase(creature->GetSpawnId());
678 if (FrostwyrmGUIDs.empty())
679 {
682 boss->AI()->DoAction(ACTION_START_FROSTWYRM);
683 }
684 break;
685 }
687 if (Creature* c = unit->SummonCreature(WORLD_TRIGGER, *unit, TEMPSUMMON_TIMED_DESPAWN, 10000))
688 {
689 c->CastSpell(c, VOID_ZONE_VISUAL, true);
691 unit->ToCreature()->DespawnOrUnsummon(3000);
692 }
693 break;
694 default:
695 break;
696 }
697 }
@ VOID_ZONE_VISUAL
Definition: instance_icecrown_citadel.cpp:64
Position const SindragosaSpawnPos
Definition: instance_icecrown_citadel.cpp:157
@ NPC_YMIRJAR_BATTLE_MAIDEN
Definition: icecrown_citadel.h:299
@ NPC_YMIRJAR_WARLORD
Definition: icecrown_citadel.h:303
@ NPC_RISEN_DEATHSPEAKER_SERVANT
Definition: icecrown_citadel.h:212
@ NPC_YMIRJAR_HUNTRESS
Definition: icecrown_citadel.h:302
@ NPC_FROSTWING_WHELP
Definition: icecrown_citadel.h:329
@ NPC_YMIRJAR_FROSTBINDER
Definition: icecrown_citadel.h:301
@ NPC_DEATHSPEAKER_SERVANT
Definition: icecrown_citadel.h:211
@ ACTION_VRYKUL_DEATH
Definition: icecrown_citadel.h:531
@ ACTION_START_FROSTWYRM
Definition: icecrown_citadel.h:534
@ NPC_YMIRJAR_DEATHBRINGER
Definition: pit_of_saron.h:104
@ TEMPSUMMON_MANUAL_DESPAWN
Definition: Object.h:53
@ TEMPSUMMON_TIMED_DESPAWN
Definition: Object.h:48
#define WORLD_TRIGGER
Definition: Unit.h:37
virtual uint32 GetData(uint32) const
Definition: UnitAI.h:213
Player * GetLootRecipient() const
Definition: Creature.cpp:1306
ObjectGuid::LowType GetSpawnId() const
Definition: Creature.h:65
CreatureAI * AI() const
Definition: Creature.h:140
Creature * ToCreature()
Definition: Object.h:205
TempSummon * SummonCreature(uint32 id, const Position &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0, SummonPropertiesEntry const *properties=nullptr, bool visibleBySummonerOnly=false) const
Definition: Object.cpp:2366
void LoadGrid(float x, float y)
Definition: Map.cpp:495
Definition: instance_icecrown_citadel.cpp:166

References ACTION_START_FROSTWYRM, ACTION_VRYKUL_DEATH, EventProcessor::AddEvent(), Creature::AI(), EventProcessor::CalculateTime(), CrokScourgebaneGUID, DATA_HAS_LIMITED_ATTEMPTS, DATA_SINDRAGOSA, DATA_SPINESTALKER, Creature::DespawnOrUnsummon(), DONE, FrostwyrmGUIDs, InstanceScript::GetBossState(), Map::GetCreature(), GetData(), UnitAI::GetData(), Object::GetEntry(), Position::GetExactDist2d(), Object::GetGUID(), Creature::GetLootRecipient(), WorldObject::GetName(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), Creature::GetSpawnId(), WorldObject::GetTransport(), HeroicAttempts, InstanceScript::instance, Map::LoadGrid(), WorldObject::m_Events, NPC_DEATHSPEAKER_SERVANT, NPC_FROSTWING_WHELP, NPC_RIMEFANG, NPC_RISEN_DEATHSPEAKER_SERVANT, NPC_SINDRAGOSA, NPC_SPINESTALKER, NPC_YMIRJAR_BATTLE_MAIDEN, NPC_YMIRJAR_DEATHBRINGER, NPC_YMIRJAR_FROSTBINDER, NPC_YMIRJAR_HUNTRESS, NPC_YMIRJAR_WARLORD, RimefangGUID, RimefangTrash, SindragosaSpawnPos, SpinestalkerGUID, SpinestalkerTrash, Map::SummonCreature(), WorldObject::SummonCreature(), TEMPSUMMON_MANUAL_DESPAWN, TEMPSUMMON_TIMED_DESPAWN, Object::ToCreature(), VOID_ZONE_VISUAL, and WORLD_TRIGGER.

◆ ProcessEvent()

void instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::ProcessEvent ( WorldObject source,
uint32  eventId 
)
inlineoverridevirtual

Reimplemented from ZoneScript.

1810 {
1811 switch (eventId)
1812 {
1815 {
1816 if (GameObject* go = source->ToGameObject())
1817 if (MotionTransport* transport = go->ToMotionTransport())
1818 transport->UnloadNonStaticPassengers();
1819 source->AddObjectToRemoveList();
1820 }
1821 break;
1824 {
1825 captain->AI()->DoAction(ACTION_ENEMY_GUNSHIP_TALK);
1826 }
1827 [[fallthrough]];
1830 if (GameObject* go = source->ToGameObject())
1831 if (MotionTransport* transport = go->ToMotionTransport())
1832 transport->EnableMovement(false);
1833 break;
1835 if (GameObject* go = source->ToGameObject())
1836 if (MotionTransport* transport = go->ToMotionTransport())
1837 {
1838 transport->setActive(false);
1839 transport->EnableMovement(false);
1840 //After movement is stopped remove the backpack
1842 }
1844 captain->AI()->DoAction(ACTION_EXIT_SHIP);
1845 break;
1846
1847 case EVENT_QUAKE:
1849 warning->SetGoState(GO_STATE_ACTIVE);
1850 Events.ScheduleEvent(EVENT_QUAKE_SHATTER, 5s);
1851 break;
1854 {
1855 platform->SetDestructibleState(GO_DESTRUCTIBLE_DESTROYED);
1856 Events.ScheduleEvent(EVENT_REBUILD_PLATFORM, 1500ms);
1857 }
1858 break;
1859 case EVENT_TELEPORT_TO_FROSMOURNE: // Harvest Soul (normal mode)
1861 {
1862 terenas->AI()->DoAction(ACTION_FROSTMOURNE_INTRO);
1863 std::list<Creature*> triggers;
1865 if (!triggers.empty())
1866 {
1867 triggers.sort(Acore::ObjectDistanceOrderPred(terenas, false));
1868 Unit* visual = triggers.front();
1869 visual->CastSpell(visual, SPELL_FROSTMOURNE_TELEPORT_VISUAL, true);
1870 }
1871
1872 if (Creature* warden = instance->SummonCreature(NPC_SPIRIT_WARDEN, SpiritWardenSpawn, nullptr, 65000))
1873 {
1874 terenas->AI()->AttackStart(warden);
1875 warden->AddThreat(terenas, 300000.0f);
1876 }
1877 }
1878 break;
1881 {
1883 goGas->SetGameObjectFlag(GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE);
1884
1887 {
1889 for (uint8 i = 0; i < 2; ++i)
1891 go->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
1892 }
1893 else
1896 SaveToDB();
1897 }
1898 break;
1901 {
1903 goOoze->SetGameObjectFlag(GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE);
1904
1907 {
1909 for (uint8 i = 0; i < 2; ++i)
1911 go->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
1912 }
1913 else
1916 SaveToDB();
1917 }
1918 break;
1919 }
1920 }
Position const TerenasSpawn
Definition: boss_the_lich_king.cpp:321
Position const SpiritWardenSpawn
Definition: boss_the_lich_king.cpp:323
@ EVENT_QUAKE_SHATTER
Definition: instance_icecrown_citadel.cpp:50
@ EVENT_REBUILD_PLATFORM
Definition: instance_icecrown_citadel.cpp:51
@ EVENT_PLAYERS_GUNSHIP_SPAWN
Definition: instance_icecrown_citadel.cpp:34
@ EVENT_SECOND_REMORSELESS_WINTER
Definition: instance_icecrown_citadel.cpp:41
@ EVENT_ENEMY_GUNSHIP_DESPAWN
Definition: instance_icecrown_citadel.cpp:38
@ EVENT_TELEPORT_TO_FROSMOURNE
Definition: instance_icecrown_citadel.cpp:42
@ EVENT_PLAYERS_GUNSHIP_COMBAT
Definition: instance_icecrown_citadel.cpp:35
@ EVENT_ROTFACE_VALVE_USED
Definition: instance_icecrown_citadel.cpp:44
@ EVENT_FESTERGUT_VALVE_USED
Definition: instance_icecrown_citadel.cpp:43
@ EVENT_QUAKE
Definition: instance_icecrown_citadel.cpp:40
@ EVENT_ENEMY_GUNSHIP_COMBAT
Definition: instance_icecrown_citadel.cpp:37
@ EVENT_PLAYERS_GUNSHIP_SAURFANG
Definition: instance_icecrown_citadel.cpp:36
@ NPC_SPIRIT_WARDEN
Definition: icecrown_citadel.h:350
@ NPC_IGB_HIGH_OVERLORD_SAURFANG
Definition: icecrown_citadel.h:220
@ NPC_WORLD_TRIGGER_INFINITE_AOI
Definition: icecrown_citadel.h:363
@ ACTION_FROSTMOURNE_INTRO
Definition: icecrown_citadel.h:538
@ ACTION_ENEMY_GUNSHIP_TALK
Definition: icecrown_citadel.h:513
@ ACTION_EXIT_SHIP
Definition: icecrown_citadel.h:514
@ SPELL_FROSTMOURNE_TELEPORT_VISUAL
Definition: icecrown_citadel.h:59
@ GO_DESTRUCTIBLE_DESTROYED
Definition: SharedDefines.h:1629
MotionTransport * ToMotionTransport()
Definition: GameObject.h:327
GameObject * ToGameObject()
Definition: Object.h:213
void AddObjectToRemoveList()
Definition: Object.cpp:2160
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
Definition: Object.cpp:2457
Definition: Transport.h:48
void RemoveBackPack()
Definition: instance_icecrown_citadel.cpp:1081

References ACTION_ENEMY_GUNSHIP_TALK, ACTION_EXIT_SHIP, ACTION_FROSTMOURNE_INTRO, WorldObject::AddObjectToRemoveList(), Unit::CastSpell(), DATA_ICECROWN_GUNSHIP_BATTLE, DONE, EVENT_ENEMY_GUNSHIP_COMBAT, EVENT_ENEMY_GUNSHIP_DESPAWN, EVENT_FESTERGUT_VALVE_USED, EVENT_PLAYERS_GUNSHIP_COMBAT, EVENT_PLAYERS_GUNSHIP_SAURFANG, EVENT_PLAYERS_GUNSHIP_SPAWN, EVENT_QUAKE, EVENT_QUAKE_SHATTER, EVENT_REBUILD_PLATFORM, EVENT_ROTFACE_VALVE_USED, EVENT_SECOND_REMORSELESS_WINTER, EVENT_TELEPORT_TO_FROSMOURNE, WorldObject::FindNearestCreature(), GetCreatureListWithEntryInGrid(), GO_DESTRUCTIBLE_DESTROYED, GO_FLAG_INTERACT_COND, GO_FLAG_NOT_SELECTABLE, GO_STATE_ACTIVE, GO_STATE_ACTIVE_ALTERNATIVE, NPC_IGB_HIGH_OVERLORD_SAURFANG, NPC_IGB_MURADIN_BRONZEBEARD, NPC_SPIRIT_WARDEN, NPC_TERENAS_MENETHIL_FROSTMOURNE, NPC_WORLD_TRIGGER_INFINITE_AOI, PUTRICIDE_EVENT_FLAG_FESTERGUT_VALVE, PUTRICIDE_EVENT_FLAG_ROTFACE_VALVE, SPELL_FROSTMOURNE_TELEPORT_VISUAL, SpiritWardenSpawn, WorldObject::SummonCreature(), TEAM_HORDE, TerenasSpawn, Object::ToGameObject(), and GameObject::ToMotionTransport().

◆ ReadSaveDataMore()

void instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::ReadSaveDataMore ( std::istringstream &  data)
inlineoverridevirtual

Reimplemented from InstanceScript.

1647 {
1648 data >> HeroicAttempts;
1649
1650 uint32 temp = 0;
1651 data >> temp;
1652
1653 if (temp == IN_PROGRESS)
1654 {
1656 }
1657 else
1658 {
1660 }
1661
1662 data >> BloodQuickeningState;
1663 data >> BloodQuickeningMinutes;
1664
1666 {
1667 Events.ScheduleEvent(EVENT_UPDATE_EXECUTION_TIME, 1min);
1670 }
1671
1672 data >> WeeklyQuestId10;
1673 data >> PutricideEventProgress;
1674 PutricideEventProgress &= ~PUTRICIDE_EVENT_FLAG_TRAP_INPROGRESS;
1676 data >> BloodPrinceTrashCount;
1677 data >> IsBuffAvailable;
1678 data >> IsSindragosaIntroDone;
1680 }
@ EVENT_UPDATE_EXECUTION_TIME
Definition: instance_icecrown_citadel.cpp:49
void SetData(uint32 type, uint32 data) override
Definition: instance_icecrown_citadel.cpp:1267

References DATA_BUFF_AVAILABLE, DONE, EVENT_UPDATE_EXECUTION_TIME, IN_PROGRESS, NOT_STARTED, WORLDSTATE_EXECUTION_TIME, and WORLDSTATE_SHOW_TIMER.

◆ RemoveBackPack()

void instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::RemoveBackPack ( )
inline
1082 {
1083 for (auto const& itr : instance->GetPlayers())
1084 if (Player* _player = itr.GetSource())
1085 _player->DestroyItemCount(ITEM_GOBLIN_ROCKET_PACK, _player->GetItemCount(ITEM_GOBLIN_ROCKET_PACK), true);
1086 }
@ ITEM_GOBLIN_ROCKET_PACK
Definition: icecrown_citadel.h:585

References Map::GetPlayers(), InstanceScript::instance, and ITEM_GOBLIN_ROCKET_PACK.

◆ SetBossState()

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SetBossState ( uint32  type,
EncounterState  state 
)
inlineoverridevirtual

Reimplemented from InstanceScript.

1089 {
1090 if (!InstanceScript::SetBossState(type, state))
1091 return false;
1092
1093 switch (type)
1094 {
1096 if (state == DONE)
1097 {
1099 SetData(DATA_WEEKLY_QUEST_ID, 0); // show required hidden npcs
1101 transporter->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
1102 SaveToDB();
1103 }
1104 break;
1106 if (state == DONE)
1107 SpawnGunship();
1108 break;
1110 if (state == DONE)
1111 {
1113 {
1114 loot->SetLootRecipient(instance);
1115 loot->RemoveGameObjectFlag(GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN);
1116 }
1117 }
1118 else if (state == FAIL)
1119 Events.ScheduleEvent(EVENT_RESPAWN_GUNSHIP, 30s);
1120 break;
1122 switch (state)
1123 {
1124 case DONE:
1126 {
1128 loot->SetLootRecipient(deathbringer);
1129 loot->RemoveGameObjectFlag(GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN);
1130 }
1131 [[fallthrough]];
1132 case NOT_STARTED:
1134 {
1135 HandleGameObject(SaurfangTeleportGUID, true, teleporter);
1136 teleporter->RemoveGameObjectFlag(GO_FLAG_IN_USE);
1137 }
1138 break;
1139 default:
1140 break;
1141 }
1142 break;
1143 case DATA_FESTERGUT:
1144 if (state == DONE)
1145 {
1147 go->RemoveGameObjectFlag(GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE);
1149 HandleDropAttempt(false);
1150 }
1151 break;
1152 case DATA_ROTFACE:
1153 if (state == DONE)
1154 {
1156 go->RemoveGameObjectFlag(GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE);
1158 HandleDropAttempt(false);
1159 }
1160 break;
1164 if (state == DONE)
1166 else if (state == FAIL)
1168 if (state == DONE && !instance->IsHeroic() && LichKingHeroicAvailable)
1169 {
1171 SaveToDB();
1172 }
1173 break;
1176 if (state == DONE)
1178 else if (state == FAIL)
1180 if (state == DONE && !instance->IsHeroic() && LichKingHeroicAvailable)
1181 {
1183 SaveToDB();
1184 }
1185 break;
1187 if (state == DONE)
1188 SetData(DATA_WEEKLY_QUEST_ID, GetData(DATA_WEEKLY_QUEST_ID)); // will show weekly quest npc if necessary
1189 break;
1190 case DATA_SINDRAGOSA:
1192 if (state == DONE)
1194 else if (state == FAIL)
1195 {
1196 IsSindragosaIntroDone = true;
1198 if (instance->IsHeroic())
1199 {
1200 if (HeroicAttempts)
1201 {
1202 Events.ScheduleEvent(EVENT_RESPAWN_SINDRAGOSA, 30s);
1203 }
1204 }
1205 else
1206 {
1207 Events.ScheduleEvent(EVENT_RESPAWN_SINDRAGOSA, 30s);
1208 }
1209 }
1210 if (state == DONE && !instance->IsHeroic() && LichKingHeroicAvailable)
1211 {
1213 SaveToDB();
1214 }
1215 break;
1216 case DATA_THE_LICH_KING:
1217 {
1218 // dramatically increase visibility range during fight to seeing frostmourne room
1219 instance->SetVisibilityRange(state == IN_PROGRESS ? 500.0f : 200.0f);
1220
1221 if (state == FAIL)
1222 {
1223 Events.CancelEvent(EVENT_QUAKE_SHATTER);
1224 Events.CancelEvent(EVENT_REBUILD_PLATFORM);
1225
1227 }
1228
1229 if (state == DONE)
1230 {
1232 bolvar->SetRespawnTime(7 * DAY);
1234 pillars->SetRespawnTime(7 * DAY);
1236 pillars->SetRespawnTime(7 * DAY);
1237
1243 }
1244 break;
1245 }
1246 default:
1247 break;
1248 }
1249
1250 return true;
1251 }
@ EVENT_RESPAWN_GUNSHIP
Definition: instance_icecrown_citadel.cpp:52
@ QUEST_RESIDUE_RENDEZVOUS_10
Definition: icecrown_citadel.h:547
@ QUEST_SECURING_THE_RAMPARTS_10
Definition: icecrown_citadel.h:545
@ QUEST_BLOOD_QUICKENING_10
Definition: icecrown_citadel.h:549
@ QUEST_DEPROGRAMMING_10
Definition: icecrown_citadel.h:543
@ QUEST_RESPITE_FOR_A_TORMENTED_SOUL_10
Definition: icecrown_citadel.h:551
@ GO_FLAG_IN_USE
Definition: SharedDefines.h:1603
static First const & RAND(First const &first, Second const &second, Rest const &... rest)
Definition: CreatureAIImpl.h:25
@ FAIL
Definition: InstanceScript.h:59
virtual bool SetBossState(uint32 id, EncounterState state)
Definition: InstanceScript.cpp:373
void SetVisibilityRange(float range)
Definition: Map.h:350
void HandleDropAttempt(bool drop=true)
Definition: instance_icecrown_citadel.cpp:1054
void CheckLichKingAvailability()
Definition: instance_icecrown_citadel.cpp:1624

References BloodwingSigilGUID, CheckLichKingAvailability(), DATA_BLOOD_QUEEN_LANA_THEL, DATA_DEATHBRINGER_SAURFANG, DATA_FESTERGUT, DATA_ICECROWN_GUNSHIP_BATTLE, DATA_LADY_DEATHWHISPER, DATA_LORD_MARROWGAR, DATA_PROFESSOR_PUTRICIDE, DATA_ROTFACE, DATA_SINDRAGOSA, DATA_THE_LICH_KING, DATA_VALITHRIA_DREAMWALKER, DATA_WEEKLY_QUEST_ID, DAY, DeathbringerSaurfangGUID, DeathbringersCacheGUID, DONE, EVENT_QUAKE_SHATTER, EVENT_REBUILD_PLATFORM, EVENT_RESPAWN_GUNSHIP, EVENT_RESPAWN_SINDRAGOSA, FAIL, FrostwingSigilGUID, FrozenBolvarGUID, GasReleaseValveGUID, InstanceScript::GetBossState(), Map::GetCreature(), GetData(), Map::GetGameObject(), Position::GetPositionX(), Position::GetPositionY(), GO_FLAG_IN_USE, GO_FLAG_INTERACT_COND, GO_FLAG_LOCKED, GO_FLAG_NODESPAWN, GO_FLAG_NOT_SELECTABLE, GunshipArmoryGUID, HandleDropAttempt(), InstanceScript::HandleGameObject(), HeroicAttempts, IN_PROGRESS, InstanceScript::instance, Map::IsHeroic(), IsSindragosaIntroDone, JainaSpawnPos, LichKingHeroicAvailable, Map::LoadGrid(), MuradinSpawnPos, NOT_STARTED, NPC_LADY_JAINA_PROUDMOORE_QUEST, NPC_LADY_SYLVANAS_WINDRUNNER_QUEST, NPC_MURADIN_BRONZEBEARD_QUEST, NPC_UTHER_THE_LIGHTBRINGER_QUEST, OozeReleaseValveGUID, PillarsChainedGUID, PillarsUnchainedGUID, PlagueSigilGUID, PUTRICIDE_EVENT_FLAG_TRAP_FINISHED, PutricideEnteranceDoorGUID, PutricideEventProgress, QUEST_BLOOD_QUICKENING_10, QUEST_DEPROGRAMMING_10, QUEST_RESIDUE_RENDEZVOUS_10, QUEST_RESPITE_FOR_A_TORMENTED_SOUL_10, QUEST_SECURING_THE_RAMPARTS_10, RAND(), SaurfangTeleportGUID, InstanceScript::SaveToDB(), ScourgeTransporterFirstGUID, InstanceScript::SetBossState(), SetData(), Map::SetVisibilityRange(), SpawnGunship(), Map::SummonCreature(), SylvanasSpawnPos, UtherSpawnPos, and WeeklyQuestId10.

Referenced by SetData(), and SpawnGunship().

◆ SetData()

void instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SetData ( uint32  type,
uint32  data 
)
inlineoverridevirtual

Reimplemented from ZoneScript.

1268 {
1269 switch (type)
1270 {
1272 IsBuffAvailable = !!data;
1273 if (!IsBuffAvailable)
1274 {
1275 instance->DoForAllPlayers([&](Player* player)
1276 {
1277 player->UpdateAreaDependentAuras(player->GetAreaId());
1278 for (Unit::ControlSet::const_iterator itr = player->m_Controlled.begin(); itr != player->m_Controlled.end(); ++itr)
1279 {
1280 Unit::AuraMap& am = (*itr)->GetOwnedAuras();
1281 for (Unit::AuraMap::iterator itra = am.begin(); itra != am.end();)
1282 switch (itra->second->GetId())
1283 {
1284 // Hellscream's Warsong
1285 case 73816:
1286 case 73818:
1287 case 73819:
1288 case 73820:
1289 case 73821:
1290 case 73822:
1291 // Strength of Wrynn
1292 case 73762:
1293 case 73824:
1294 case 73825:
1295 case 73826:
1296 case 73827:
1297 case 73828:
1298 (*itr)->RemoveOwnedAura(itra);
1299 break;
1300 default:
1301 ++itra;
1302 break;
1303 }
1304 }
1305 });
1306 }
1307 SaveToDB();
1308 break;
1310 for (uint8 i = 0; i < WeeklyNPCs; ++i)
1311 if (WeeklyQuestData[i].questId[0] == WeeklyQuestId10 && (WeeklyQuestData[i].creatureEntry != NPC_VALITHRIA_DREAMWALKER_QUEST || GetBossState(DATA_VALITHRIA_DREAMWALKER) == DONE) /*appears after killing valithria*/)
1312 if (WeeklyQuestNpcGUID[i])
1314 c->SetVisible(true);
1315 break;
1317 if (data == NOT_STARTED)
1318 {
1319 PutricideEventProgress &= ~PUTRICIDE_EVENT_FLAG_TRAP_INPROGRESS;
1322 {
1323 for (uint8 i = 0; i < 2; ++i)
1325 go->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
1326 }
1327 else
1328 {
1331 }
1332 SaveToDB();
1333 }
1334 else if (data == IN_PROGRESS)
1335 {
1340 SaveToDB();
1341 }
1342 else if (data == DONE)
1343 {
1344 PutricideEventProgress &= ~PUTRICIDE_EVENT_FLAG_TRAP_INPROGRESS;
1349 {
1350 for (uint8 i = 0; i < 2; ++i)
1352 go->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
1353 }
1354 else
1355 {
1358 }
1359 SaveToDB();
1360 }
1361 return;
1363 IsBonedEligible = !!data;
1364 break;
1366 IsOozeDanceEligible = !!data;
1367 break;
1369 IsNauseaEligible = !!data;
1370 break;
1372 IsOrbWhispererEligible = !!data;
1373 break;
1375 FrostwyrmGUIDs.insert(data);
1376 break;
1377 case DATA_SPINESTALKER:
1378 SpinestalkerTrash.insert(data);
1379 break;
1380 case DATA_RIMEFANG:
1381 RimefangTrash.insert(data);
1382 break;
1384 ColdflameJetsState = data;
1385 if (ColdflameJetsState == DONE)
1386 SaveToDB();
1387 break;
1389 {
1391 break;
1392 if (BloodQuickeningState == data)
1393 break;
1395 break;
1396
1397 switch (data)
1398 {
1399 case IN_PROGRESS:
1400 Events.ScheduleEvent(EVENT_UPDATE_EXECUTION_TIME, 1min);
1404 break;
1405 case DONE:
1409 break;
1410 default:
1411 break;
1412 }
1413
1414 BloodQuickeningState = data;
1415 SaveToDB();
1416 break;
1417 }
1419 {
1420 if (++BloodPrinceTrashCount >= 4)
1421 {
1424 }
1425 SaveToDB();
1426 break;
1427 }
1428 default:
1429 break;
1430 }
1431 }
@ DATA_ORB_WHISPERER_ACHIEVEMENT
Definition: icecrown_citadel.h:109
@ DATA_OOZE_DANCE_ACHIEVEMENT
Definition: icecrown_citadel.h:106
@ DATA_NAUSEA_ACHIEVEMENT
Definition: icecrown_citadel.h:108
@ DATA_BLOOD_PRINCE_TRASH
Definition: icecrown_citadel.h:100
@ DATA_BONED_ACHIEVEMENT
Definition: icecrown_citadel.h:105
@ DATA_BPC_TRASH_DIED
Definition: icecrown_citadel.h:144
void UpdateAreaDependentAuras(uint32 area_id)
Definition: PlayerUpdates.cpp:1821
ControlSet m_Controlled
Definition: Unit.h:1940
void DoForAllPlayers(std::function< void(Player *)> exec)
Definition: Map.cpp:3827
bool SetBossState(uint32 type, EncounterState state) override
Definition: instance_icecrown_citadel.cpp:1088

References BloodPrinceTrashCount, BloodQuickeningMinutes, BloodQuickeningState, ColdflameJetsState, DATA_BLOOD_PRINCE_TRASH, DATA_BLOOD_QUICKENING_STATE, DATA_BONED_ACHIEVEMENT, DATA_BPC_TRASH_DIED, DATA_BUFF_AVAILABLE, DATA_COLDFLAME_JETS, DATA_NAUSEA_ACHIEVEMENT, DATA_OOZE_DANCE_ACHIEVEMENT, DATA_ORB_WHISPERER_ACHIEVEMENT, DATA_PUTRICIDE_TRAP_STATE, DATA_RIMEFANG, DATA_SINDRAGOSA_FROSTWYRMS, DATA_SPINESTALKER, DATA_VALITHRIA_DREAMWALKER, DATA_WEEKLY_QUEST_ID, Map::DoForAllPlayers(), DONE, InstanceScript::DoUpdateWorldState(), EVENT_UPDATE_EXECUTION_TIME, FrostwyrmGUIDs, WorldObject::GetAreaId(), InstanceScript::GetBossState(), Map::GetCreature(), Map::GetGameObject(), GO_STATE_ACTIVE_ALTERNATIVE, InstanceScript::HandleGameObject(), IN_PROGRESS, InstanceScript::instance, IsBonedEligible, IsBuffAvailable, IsNauseaEligible, IsOozeDanceEligible, IsOrbWhispererEligible, Unit::m_Controlled, NOT_STARTED, NPC_VALITHRIA_DREAMWALKER_QUEST, PUTRICIDE_EVENT_FLAG_FESTERGUT_VALVE, PUTRICIDE_EVENT_FLAG_ROTFACE_VALVE, PUTRICIDE_EVENT_FLAG_TRAP_FINISHED, PUTRICIDE_EVENT_FLAG_TRAP_INPROGRESS, PutricideCollisionGUID, PutricideEnteranceDoorGUID, PutricideEventProgress, PutricideGateGUIDs, QUEST_BLOOD_QUICKENING_10, RimefangTrash, InstanceScript::SaveToDB(), SetBossState(), SpinestalkerTrash, Player::UpdateAreaDependentAuras(), WeeklyNPCs, WeeklyQuestData, WeeklyQuestId10, WeeklyQuestNpcGUID, WORLDSTATE_EXECUTION_TIME, and WORLDSTATE_SHOW_TIMER.

Referenced by SetBossState().

◆ SetPositionTraps()

void instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SetPositionTraps ( GameObject go)
inline
1923 {
1924 std::vector<Position> trapPositions;
1925
1926 switch (go->GetEntry())
1927 {
1928 case GO_SPIRIT_ALARM_1:
1929 trapPositions = GoSpiritAlarm_1;
1930 break;
1931 case GO_SPIRIT_ALARM_2:
1932 trapPositions = GoSpiritAlarm_2;
1933 break;
1934 case GO_SPIRIT_ALARM_3:
1935 trapPositions = GoSpiritAlarm_3;
1936 break;
1937 case GO_SPIRIT_ALARM_4:
1938 trapPositions = GoSpiritAlarm_4;
1939 break;
1940 default:
1941 return;
1942 }
1943
1945 }
std::vector< Position > GoSpiritAlarm_1
Definition: instance_icecrown_citadel.cpp:160
std::vector< Position > GoSpiritAlarm_4
Definition: instance_icecrown_citadel.cpp:163
std::vector< Position > GoSpiritAlarm_3
Definition: instance_icecrown_citadel.cpp:162
std::vector< Position > GoSpiritAlarm_2
Definition: instance_icecrown_citadel.cpp:161
auto SelectRandomContainerElement(C const &container) -> typename std::add_const< decltype(*std::begin(container))>::type &
Definition: Containers.h:133
void Relocate(float x, float y)
Definition: Position.h:72

References Object::GetEntry(), GO_SPIRIT_ALARM_1, GO_SPIRIT_ALARM_2, GO_SPIRIT_ALARM_3, GO_SPIRIT_ALARM_4, GoSpiritAlarm_1, GoSpiritAlarm_2, GoSpiritAlarm_3, GoSpiritAlarm_4, Position::Relocate(), and Acore::Containers::SelectRandomContainerElement().

Referenced by OnGameObjectCreate().

◆ SpawnGunship()

void instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SpawnGunship ( )
inline
1254 {
1255 if (!GunshipGUID && instance->HavePlayers())
1256 {
1259 if (MotionTransport* gunship = sTransportMgr->CreateTransport(gunshipEntry, 0, instance))
1260 {
1261 GunshipGUID = gunship->GetGUID();
1262 gunship->setActive(false);
1263 }
1264 }
1265 }
#define sTransportMgr
Definition: TransportMgr.h:163
bool HavePlayers() const
Definition: Map.h:475

References DATA_ICECROWN_GUNSHIP_BATTLE, GO_ORGRIMS_HAMMER_H, GO_THE_SKYBREAKER_A, GunshipGUID, Map::HavePlayers(), InstanceScript::instance, NOT_STARTED, SetBossState(), sTransportMgr, TEAM_HORDE, and TeamIdInInstance.

Referenced by OnPlayerEnter(), and SetBossState().

◆ Update()

void instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::Update ( uint32  diff)
inlineoverridevirtual

Reimplemented from InstanceScript.

1697 {
1698 // Xinef: A Feast of Souls (24547) whispers
1699 if (LichKingRandomWhisperTimer <= diff)
1700 {
1702 Map::PlayerList const& players = instance->GetPlayers();
1703 if (!players.IsEmpty())
1704 if (Player* player = players.begin()->GetSource())
1705 if (player->GetQuestStatus(QUEST_A_FEAST_OF_SOULS) == QUEST_STATUS_INCOMPLETE)
1706 {
1707 if (Creature* theLichKing = instance->GetCreature(TheLichKingLhGUID))
1708 {
1709 theLichKing->AI()->Talk(SAY_SOULS_LICH_KING_RAND_WHISPER, player);
1710 }
1711 }
1712 }
1713 else
1715
1716 if (DarkwhisperElevatorTimer <= diff)
1717 {
1721 if (StaticTransport* trans = elevator->ToStaticTransport())
1722 {
1723 if (trans->GetGoState() == GO_STATE_READY && trans->GetPathProgress() == 0)
1724 trans->SetGoState(GO_STATE_ACTIVE);
1725 else if (trans->GetGoState() == GO_STATE_ACTIVE && trans->GetPathProgress() == trans->GetPauseTime())
1726 trans->SetGoState(GO_STATE_READY);
1727 }
1728 }
1729 else
1731
1732 if (Events.Empty())
1733 return;
1734
1735 Events.Update(diff);
1736
1737 while (uint32 eventId = Events.ExecuteEvent())
1738 {
1739 switch (eventId)
1740 {
1742 {
1745 {
1746 Events.ScheduleEvent(EVENT_UPDATE_EXECUTION_TIME, 1min);
1749 }
1750 else
1751 {
1755 bq->AI()->DoAction(ACTION_KILL_MINCHAR);
1756 }
1757 SaveToDB();
1758 break;
1759 }
1761 {
1763 platform->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED);
1765 edge->SetGoState(GO_STATE_ACTIVE);
1767 wind->SetGoState(GO_STATE_READY);
1769 warning->SetGoState(GO_STATE_READY);
1770 if (Creature* theLichKing = instance->GetCreature(TheLichKingGUID))
1771 theLichKing->AI()->DoAction(ACTION_RESTORE_LIGHT);
1772 break;
1773 }
1776 platform->SetDestructibleState(GO_DESTRUCTIBLE_REBUILDING, nullptr, true);
1778 edge->SetGoState(GO_STATE_READY);
1780 wind->SetGoState(GO_STATE_ACTIVE);
1781 break;
1783 SpawnGunship();
1784 break;
1787 {
1789 {
1790 sindragosa->setActive(true);
1791 sindragosa->SetDisableGravity(true);
1792 sindragosa->GetMotionMaster()->MovePath(NPC_SINDRAGOSA * 10, true);
1793
1794 if (TempSummon* summon = sindragosa->ToTempSummon())
1795 {
1796 summon->SetTempSummonType(TEMPSUMMON_DEAD_DESPAWN);
1797 }
1798 }
1799 }
1800 // Could happen more than once if more than one player enters before she respawns.
1801 Events.CancelEvent(EVENT_RESPAWN_SINDRAGOSA);
1802 break;
1803 default:
1804 break;
1805 }
1806 }
1807 }
@ SAY_SOULS_LICH_KING_RAND_WHISPER
Definition: instance_icecrown_citadel.cpp:69
@ QUEST_A_FEAST_OF_SOULS
Definition: icecrown_citadel.h:557
@ ACTION_RESTORE_LIGHT
Definition: icecrown_citadel.h:537
@ ACTION_KILL_MINCHAR
Definition: icecrown_citadel.h:528
@ GO_DESTRUCTIBLE_REBUILDING
Definition: SharedDefines.h:1630
@ GO_DESTRUCTIBLE_DAMAGED
Definition: SharedDefines.h:1628
@ QUEST_STATUS_INCOMPLETE
Definition: QuestDef.h:103
@ GO_STATE_READY
Definition: GameObjectData.h:690
@ TEMPSUMMON_DEAD_DESPAWN
Definition: Object.h:52
Definition: TemporarySummon.h:40
StaticTransport * ToStaticTransport()
Definition: GameObject.h:324
Definition: Transport.h:112
TempSummon * ToTempSummon()
Definition: Unit.h:696

References ACTION_KILL_MINCHAR, ACTION_RESTORE_LIGHT, MapRefMgr::begin(), DATA_LADY_DEATHWHISPER, DATA_SINDRAGOSA, DONE, EVENT_QUAKE_SHATTER, EVENT_REBUILD_PLATFORM, EVENT_RESPAWN_GUNSHIP, EVENT_RESPAWN_SINDRAGOSA, EVENT_UPDATE_EXECUTION_TIME, Reference< TO, FROM >::GetSource(), GO_DESTRUCTIBLE_DAMAGED, GO_DESTRUCTIBLE_REBUILDING, GO_STATE_ACTIVE, GO_STATE_READY, IN_MILLISECONDS, LinkedListHead::IsEmpty(), NPC_SINDRAGOSA, QUEST_A_FEAST_OF_SOULS, QUEST_STATUS_INCOMPLETE, SAY_SOULS_LICH_KING_RAND_WHISPER, SindragosaSpawnPos, WorldObject::SummonCreature(), TEMPSUMMON_DEAD_DESPAWN, GameObject::ToStaticTransport(), Unit::ToTempSummon(), urand(), WORLDSTATE_EXECUTION_TIME, and WORLDSTATE_SHOW_TIMER.

◆ WriteSaveDataMore()

void instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::WriteSaveDataMore ( std::ostringstream &  data)
inlineoverridevirtual

Reimplemented from InstanceScript.

1683 {
1684 data << HeroicAttempts << ' '
1685 << ColdflameJetsState << ' '
1686 << BloodQuickeningState << ' '
1687 << BloodQuickeningMinutes << ' '
1688 << WeeklyQuestId10 << ' '
1689 << PutricideEventProgress << ' '
1690 << uint32(LichKingHeroicAvailable ? 1 : 0) << ' '
1691 << BloodPrinceTrashCount << ' '
1692 << uint32(IsBuffAvailable ? 1 : 0) << ' '
1693 << uint32(IsSindragosaIntroDone ? 1 : 0);
1694 }

Member Data Documentation

◆ ArthasPlatformGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::ArthasPlatformGUID
protected

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ ArthasPrecipiceGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::ArthasPrecipiceGUID
protected

Referenced by OnGameObjectCreate().

◆ BloodCouncilControllerGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::BloodCouncilControllerGUID
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ BloodCouncilGUIDs

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::BloodCouncilGUIDs[3]
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ BloodPrinceTrashCount

uint32 instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::BloodPrinceTrashCount
protected

◆ BloodQueenLanaThelGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::BloodQueenLanaThelGUID
protected

◆ BloodQuickeningMinutes

uint16 instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::BloodQuickeningMinutes
protected

◆ BloodQuickeningState

uint32 instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::BloodQuickeningState
protected

◆ BloodwingSigilGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::BloodwingSigilGUID
protected

Referenced by OnGameObjectCreate(), and SetBossState().

◆ ColdflameJetsState

uint32 instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::ColdflameJetsState
protected

◆ CrokCaptainGUIDs

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::CrokCaptainGUIDs[4]
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ CrokScourgebaneGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::CrokScourgebaneGUID
protected

◆ DarkwhisperElevatorTimer

uint32 instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::DarkwhisperElevatorTimer
protected

◆ DeathbringerSaurfangDoorGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::DeathbringerSaurfangDoorGUID
protected

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ DeathbringerSaurfangEventGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::DeathbringerSaurfangEventGUID
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ DeathbringerSaurfangGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::DeathbringerSaurfangGUID
protected

◆ DeathbringersCacheGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::DeathbringersCacheGUID
protected

Referenced by OnGameObjectCreate(), and SetBossState().

◆ EnemyGunshipGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::EnemyGunshipGUID
protected

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ Events

EventMap instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::Events
protected

◆ FestergutGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::FestergutGUID
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ FrostwingSigilGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::FrostwingSigilGUID
protected

Referenced by OnGameObjectCreate(), and SetBossState().

◆ FrostwyrmGUIDs

std::set<ObjectGuid::LowType> instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::FrostwyrmGUIDs
protected

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

◆ FrozenBolvarGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::FrozenBolvarGUID
protected

Referenced by OnGameObjectCreate(), and SetBossState().

◆ FrozenThroneEdgeGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::FrozenThroneEdgeGUID
protected

Referenced by OnGameObjectCreate().

◆ FrozenThroneWarningGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::FrozenThroneWarningGUID
protected

Referenced by OnGameObjectCreate().

◆ FrozenThroneWindGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::FrozenThroneWindGUID
protected

Referenced by OnGameObjectCreate().

◆ GasReleaseValveGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::GasReleaseValveGUID
protected

Referenced by OnGameObjectCreate(), and SetBossState().

◆ GunshipArmoryGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::GunshipArmoryGUID
protected

Referenced by OnGameObjectCreate(), and SetBossState().

◆ GunshipGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::GunshipGUID
protected

◆ HeroicAttempts

uint32 instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::HeroicAttempts
protected

◆ HighlordTirionFordringGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::HighlordTirionFordringGUID
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ IsBonedEligible

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::IsBonedEligible
protected

◆ IsBuffAvailable

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::IsBuffAvailable
protected

◆ IsNauseaEligible

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::IsNauseaEligible
protected

◆ IsOozeDanceEligible

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::IsOozeDanceEligible
protected

◆ IsOrbWhispererEligible

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::IsOrbWhispererEligible
protected

◆ IsSindragosaIntroDone

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::IsSindragosaIntroDone
protected

◆ LadyDeathwhisperGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::LadyDeathwhisperGUID
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ LadyDeathwisperElevatorGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::LadyDeathwisperElevatorGUID
protected

Referenced by OnGameObjectCreate().

◆ LichKingHeroicAvailable

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::LichKingHeroicAvailable
protected

◆ LichKingRandomWhisperTimer

uint32 instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::LichKingRandomWhisperTimer
protected

◆ OozeReleaseValveGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::OozeReleaseValveGUID
protected

Referenced by OnGameObjectCreate(), and SetBossState().

◆ PillarsChainedGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::PillarsChainedGUID
protected

Referenced by OnGameObjectCreate(), and SetBossState().

◆ PillarsUnchainedGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::PillarsUnchainedGUID
protected

Referenced by OnGameObjectCreate(), and SetBossState().

◆ PlagueSigilGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::PlagueSigilGUID
protected

Referenced by OnGameObjectCreate(), and SetBossState().

◆ ProfessorPutricideGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::ProfessorPutricideGUID
protected

◆ PutricadeTrapGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::PutricadeTrapGUID
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ PutricideCollisionGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::PutricideCollisionGUID
protected

Referenced by OnGameObjectCreate(), and SetData().

◆ PutricideEnteranceDoorGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::PutricideEnteranceDoorGUID
protected

◆ PutricideEventProgress

uint32 instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::PutricideEventProgress
protected

◆ PutricideGateGUIDs

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::PutricideGateGUIDs[2]
protected

Referenced by OnGameObjectCreate(), and SetData().

◆ PutricidePipeGUIDs

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::PutricidePipeGUIDs[2]
protected

Referenced by OnGameObjectCreate().

◆ PutricideTableGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::PutricideTableGUID
protected

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ RimefangGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::RimefangGUID
protected

◆ RimefangTrash

std::set<ObjectGuid::LowType> instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::RimefangTrash
protected

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

◆ RotfaceGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::RotfaceGUID
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ SaurfangTeleportGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SaurfangTeleportGUID
protected

◆ ScourgeTransporterFirstGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::ScourgeTransporterFirstGUID
protected

Referenced by OnGameObjectCreate(), and SetBossState().

◆ SindragosaGauntletGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SindragosaGauntletGUID
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ SindragosaGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SindragosaGUID
protected

◆ SisterSvalnaGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SisterSvalnaGUID
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ SpinestalkerGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SpinestalkerGUID
protected

◆ SpinestalkerTrash

std::set<ObjectGuid::LowType> instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SpinestalkerTrash
protected

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

◆ TeamIdInInstance

TeamId instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::TeamIdInInstance
protected

◆ TerenasMenethilGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::TerenasMenethilGUID
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ TheLichKingGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::TheLichKingGUID
protected

◆ TheLichKingLhGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::TheLichKingLhGUID
protected

Referenced by OnCreatureCreate().

◆ TheLichKingTeleportGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::TheLichKingTeleportGUID
protected

Referenced by OnGameObjectCreate().

◆ ValithriaDreamwalkerGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::ValithriaDreamwalkerGUID
protected

◆ ValithriaLichKingGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::ValithriaLichKingGUID
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ ValithriaTriggerGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::ValithriaTriggerGUID
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ WeeklyQuestId10

uint32 instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::WeeklyQuestId10
protected

◆ WeeklyQuestNpcGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::WeeklyQuestNpcGUID[WeeklyNPCs]
protected

Referenced by OnCreatureCreate(), and SetData().