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)
 
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)
 
- 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 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 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
199 : InstanceScript(map)
200 {
201 // pussywizard:
202 IsBuffAvailable = true;
203 WeeklyQuestId10 = 0;
208
217 IsBonedEligible = true;
218 IsOozeDanceEligible = true;
219 IsNauseaEligible = true;
225 IsSindragosaIntroDone = false;
226 }
constexpr auto IN_MILLISECONDS
Definition: Common.h:55
@ NOT_STARTED
Definition: InstanceScript.h:57
#define DataHeader
Definition: blackrock_depths.h:23
@ MAX_ENCOUNTERS
Definition: deadmines.h:30
uint32 const MaxHeroicAttempts
Definition: icecrown_citadel.h:41
@ MAX_DATA_INDEXES
Definition: icecrown_citadel.h:156
ObjectData const creatureData[]
Definition: instance_icecrown_citadel.cpp:120
DoorData const doorData[]
Definition: instance_icecrown_citadel.cpp:88
BossBoundaryData const boundaries
Definition: instance_icecrown_citadel.cpp:68
@ TEAM_NEUTRAL
Definition: SharedDefines.h:762
Definition: InstanceScript.h:141
void SetBossNumber(uint32 number)
Definition: InstanceScript.h:271
void SetPersistentDataCount(uint32 number)
Definition: InstanceScript.h:272
void LoadDoorData(DoorData const *data)
Definition: InstanceScript.cpp:160
void LoadBossBoundaries(BossBoundaryData const &data)
Definition: InstanceScript.cpp:130
void SetHeaders(std::string const &dataHeaders)
Definition: InstanceScript.cpp:137
void LoadObjectData(ObjectData const *creatureData, ObjectData const *gameObjectData)
Definition: InstanceScript.cpp:172
uint32 DarkwhisperElevatorTimer
Definition: instance_icecrown_citadel.cpp:1945
uint32 PutricideEventProgress
Definition: instance_icecrown_citadel.cpp:1940
bool IsBuffAvailable
Definition: instance_icecrown_citadel.cpp:1936
bool IsNauseaEligible
Definition: instance_icecrown_citadel.cpp:2006
uint32 BloodPrinceTrashCount
Definition: instance_icecrown_citadel.cpp:2003
uint16 BloodQuickeningMinutes
Definition: instance_icecrown_citadel.cpp:2002
bool LichKingHeroicAvailable
Definition: instance_icecrown_citadel.cpp:1943
uint32 WeeklyQuestId10
Definition: instance_icecrown_citadel.cpp:1937
bool IsOrbWhispererEligible
Definition: instance_icecrown_citadel.cpp:2007
bool IsOozeDanceEligible
Definition: instance_icecrown_citadel.cpp:2005
uint32 BloodQuickeningState
Definition: instance_icecrown_citadel.cpp:2000
uint32 ColdflameJetsState
Definition: instance_icecrown_citadel.cpp:1996
uint32 HeroicAttempts
Definition: instance_icecrown_citadel.cpp:2001
TeamId TeamIdInInstance
Definition: instance_icecrown_citadel.cpp:1995
bool IsBonedEligible
Definition: instance_icecrown_citadel.cpp:2004
uint32 LichKingRandomWhisperTimer
Definition: instance_icecrown_citadel.cpp:1944
bool IsSindragosaIntroDone
Definition: instance_icecrown_citadel.cpp:2008

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.

1425 {
1426 switch (criteria_id)
1427 {
1428 case CRITERIA_BONED_10N:
1429 case CRITERIA_BONED_25N:
1430 case CRITERIA_BONED_10H:
1431 case CRITERIA_BONED_25H:
1432 return IsBonedEligible;
1437 return IsOozeDanceEligible;
1442 return IsNauseaEligible;
1448 // Only one criteria for both modes, need to do it like this
1450 return instance->ToInstanceMap()->GetMaxPlayers() == 10;
1452 return instance->ToInstanceMap()->GetMaxPlayers() == 25;
1453 default:
1454 break;
1455 }
1456
1457 return false;
1458 }
@ CRITERIA_BONED_25H
Definition: icecrown_citadel.h:491
@ CRITERIA_BONED_10N
Definition: icecrown_citadel.h:488
@ CRITERIA_NAUSEA_10H
Definition: icecrown_citadel.h:502
@ CRITERIA_BONED_25N
Definition: icecrown_citadel.h:489
@ CRITERIA_BONED_10H
Definition: icecrown_citadel.h:490
@ CRITERIA_DANCES_WITH_OOZES_10H
Definition: icecrown_citadel.h:496
@ CRITERIA_NAUSEA_10N
Definition: icecrown_citadel.h:500
@ CRITERIA_NAUSEA_25N
Definition: icecrown_citadel.h:501
@ CRITERIA_NAUSEA_25H
Definition: icecrown_citadel.h:503
@ CRITERIA_ORB_WHISPERER_25H
Definition: icecrown_citadel.h:509
@ CRITERIA_DANCES_WITH_OOZES_10N
Definition: icecrown_citadel.h:494
@ CRITERIA_DANCES_WITH_OOZES_25H
Definition: icecrown_citadel.h:497
@ CRITERIA_KILL_LANA_THEL_25M
Definition: icecrown_citadel.h:513
@ CRITERIA_DANCES_WITH_OOZES_25N
Definition: icecrown_citadel.h:495
@ CRITERIA_ORB_WHISPERER_25N
Definition: icecrown_citadel.h:507
@ CRITERIA_KILL_LANA_THEL_10M
Definition: icecrown_citadel.h:512
@ CRITERIA_ORB_WHISPERER_10N
Definition: icecrown_citadel.h:506
@ CRITERIA_ORB_WHISPERER_10H
Definition: icecrown_citadel.h:508
Map * instance
Definition: InstanceScript.h:147
InstanceMap * ToInstanceMap()
Definition: Map.h:545
uint32 GetMaxPlayers() const
Definition: Map.cpp:3207

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
1525 {
1526 switch (bossId)
1527 {
1528 case DATA_THE_LICH_KING:
1530 {
1531 return false;
1532 }
1533 [[fallthrough]];
1536 return false;
1537 break;
1538 default:
1539 break;
1540 }
1541
1542 return true;
1543 }
@ DONE
Definition: InstanceScript.h:60
@ DATA_THE_LICH_KING
Definition: icecrown_citadel.h:106
@ DATA_BLOOD_PRINCE_COUNCIL
Definition: icecrown_citadel.h:101
@ DATA_BLOOD_QUEEN_LANA_THEL
Definition: icecrown_citadel.h:102
EncounterState GetBossState(uint32 id) const
Definition: InstanceScript.h:231

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
1546 {
1547 switch (bossId)
1548 {
1549 case DATA_THE_LICH_KING:
1551 {
1552 return false;
1553 }
1554 [[fallthrough]];
1555 case DATA_SINDRAGOSA:
1557 {
1558 return false;
1559 }
1561 {
1562 return false;
1563 }
1564 break;
1565 default:
1566 break;
1567 }
1568
1569 return true;
1570 }
@ DATA_SINDRAGOSA_GAUNTLET
Definition: icecrown_citadel.h:107
@ DATA_VALITHRIA_DREAMWALKER
Definition: icecrown_citadel.h:104
@ DATA_SINDRAGOSA
Definition: icecrown_citadel.h:105

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
1616 {
1618 {
1620 {
1621 teleporter->SetGoState(GO_STATE_ACTIVE);
1622
1623 std::list<Creature*> stalkers;
1624 GetCreatureListWithEntryInGrid(stalkers, teleporter, NPC_INVISIBLE_STALKER, 100.0f);
1625 if (stalkers.empty())
1626 return;
1627
1628 stalkers.sort(Acore::ObjectDistanceOrderPred(teleporter));
1629 stalkers.front()->CastSpell((Unit*)nullptr, SPELL_ARTHAS_TELEPORTER_CEREMONY, false);
1630 stalkers.pop_front();
1631 for (std::list<Creature*>::iterator itr = stalkers.begin(); itr != stalkers.end(); ++itr)
1632 (*itr)->AI()->Reset();
1633 }
1634 }
1635 }
void GetCreatureListWithEntryInGrid(std::list< Creature * > &list, WorldObject *source, uint32 entry, float maxSearchRange)
Definition: ScriptedCreature.cpp:818
@ GO_STATE_ACTIVE
Definition: GameObjectData.h:690
@ NPC_INVISIBLE_STALKER
Definition: icecrown_citadel.h:375
@ SPELL_ARTHAS_TELEPORTER_CEREMONY
Definition: icecrown_citadel.h:66
@ DATA_PROFESSOR_PUTRICIDE
Definition: icecrown_citadel.h:100
Definition: GameObject.h:122
Definition: Object.h:682
Definition: Unit.h:1302
GameObject * GetGameObject(ObjectGuid const guid)
Definition: Map.cpp:3312
ObjectGuid TheLichKingTeleportGUID
Definition: instance_icecrown_citadel.cpp:1983

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
1573 {
1574 switch (bossId)
1575 {
1576 case DATA_THE_LICH_KING:
1577 case DATA_SINDRAGOSA:
1582 case DATA_ROTFACE:
1583 case DATA_FESTERGUT:
1585 {
1586 return false;
1587 }
1588 [[fallthrough]];
1591 {
1592 return false;
1593 }
1594 [[fallthrough]];
1597 {
1598 return false;
1599 }
1600 [[fallthrough]];
1603 {
1604 return false;
1605 }
1606 [[fallthrough]];
1608 default:
1609 break;
1610 }
1611
1612 return true;
1613 }
@ DATA_DEATHBRINGER_SAURFANG
Definition: icecrown_citadel.h:97
@ DATA_ICECROWN_GUNSHIP_BATTLE
Definition: icecrown_citadel.h:96
@ DATA_ROTFACE
Definition: icecrown_citadel.h:99
@ DATA_LORD_MARROWGAR
Definition: icecrown_citadel.h:94
@ DATA_FESTERGUT
Definition: icecrown_citadel.h:98
@ DATA_LADY_DEATHWHISPER
Definition: icecrown_citadel.h:95

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
1504 {
1505 switch (bossId)
1506 {
1507 case DATA_THE_LICH_KING:
1509 {
1510 return false;
1511 }
1512 [[fallthrough]];
1515 return false;
1516 break;
1517 default:
1518 break;
1519 }
1520
1521 return true;
1522 }

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.

1461 {
1462 if (player && player->GetSession() && player->GetSession()->GetSecurity() >= SEC_MODERATOR)
1463 {
1464 return true;
1465 }
1466
1467 switch (bossId)
1468 {
1469 case DATA_THE_LICH_KING:
1470 if (!CheckPlagueworks(bossId))
1471 return false;
1472 if (!CheckCrimsonHalls(bossId))
1473 return false;
1474 if (!CheckFrostwingHalls(bossId))
1475 return false;
1476 break;
1477 case DATA_SINDRAGOSA:
1479 if (!CheckFrostwingHalls(bossId))
1480 return false;
1481 break;
1484 if (!CheckCrimsonHalls(bossId))
1485 return false;
1486 break;
1487 case DATA_FESTERGUT:
1488 case DATA_ROTFACE:
1490 if (!CheckPlagueworks(bossId))
1491 return false;
1492 break;
1493 default:
1494 break;
1495 }
1496
1497 if (!CheckLowerSpire(bossId))
1498 return false;
1499
1500 return true;
1501 }
@ SEC_MODERATOR
Definition: Common.h:60
bool CheckFrostwingHalls(uint32 bossId) const
Definition: instance_icecrown_citadel.cpp:1545
bool CheckLowerSpire(uint32 bossId) const
Definition: instance_icecrown_citadel.cpp:1572
bool CheckCrimsonHalls(uint32 bossId) const
Definition: instance_icecrown_citadel.cpp:1524
bool CheckPlagueworks(uint32 bossId) const
Definition: instance_icecrown_citadel.cpp:1503

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.

229 {
230 if (instance->IsHeroic())
231 {
237 }
238 }
std::uint32_t uint32
Definition: Define.h:108
@ IN_PROGRESS
Definition: InstanceScript.h:58
@ WORLDSTATE_SHOW_TIMER
Definition: instance_zulaman.cpp:35
@ WORLDSTATE_SHOW_ATTEMPTS
Definition: icecrown_citadel.h:570
@ WORLDSTATE_ATTEMPTS_REMAINING
Definition: icecrown_citadel.h:571
@ WORLDSTATE_ATTEMPTS_MAX
Definition: icecrown_citadel.h:572
@ WORLDSTATE_EXECUTION_TIME
Definition: icecrown_citadel.h:569
bool IsHeroic() const
Definition: Map.h:452

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.

542 {
544 {
545 Map::PlayerList const& players = instance->GetPlayers();
546 if (!players.IsEmpty())
547 if (Player* player = players.begin()->GetSource())
548 TeamIdInInstance = player->GetTeamId();
549 }
550
551 uint32 entry = data->id1;
552 switch (entry)
553 {
558 return 0;
559 break;
564 return 0;
565 break;
567 if (GameObjectTemplate const* go = sObjectMgr->GetGameObjectTemplate(GO_THE_SKYBREAKER_A))
568 if ((TeamIdInInstance == TEAM_ALLIANCE && data->mapid == go->moTransport.mapID) ||
569 (TeamIdInInstance == TEAM_HORDE && data->mapid != go->moTransport.mapID))
570 return entry;
571 return 0;
573 if ((TeamIdInInstance == TEAM_ALLIANCE && data->posX > 10.0f) ||
574 (TeamIdInInstance == TEAM_HORDE && data->posX < 10.0f))
575 return entry;
576 return 0;
578 if ((TeamIdInInstance == TEAM_ALLIANCE && data->posY < 2200.0f) || (TeamIdInInstance == TEAM_HORDE && data->posY > 2200.0f))
579 return 0;
580 break;
581 }
582
583 return entry;
584 }
@ NPC_ALLIANCE_GUNSHIP_CANNON
Definition: BattlegroundIC.h:46
@ NPC_HORDE_GUNSHIP_CANNON
Definition: BattlegroundIC.h:45
#define sObjectMgr
Definition: ObjectMgr.h:1640
@ NPC_HIGH_CAPTAIN_JUSTIN_BARTLETT
Definition: icecrown_citadel.h:244
@ NPC_SKY_REAVER_KORM_BLACKSCAR
Definition: icecrown_citadel.h:245
@ NPC_IGB_MURADIN_BRONZEBEARD
Definition: icecrown_citadel.h:227
@ NPC_SPIRE_FROSTWYRM
Definition: icecrown_citadel.h:376
@ NPC_ZAFOD_BOOMBOX
Definition: icecrown_citadel.h:243
@ NPC_SKYBREAKER_DECKHAND
Definition: icecrown_citadel.h:224
@ NPC_ORGRIMS_HAMMER_CREW
Definition: icecrown_citadel.h:225
@ GO_THE_SKYBREAKER_A
Definition: icecrown_citadel.h:411
@ TEAM_ALLIANCE
Definition: SharedDefines.h:760
@ TEAM_HORDE
Definition: SharedDefines.h:761
bool IsEmpty() const
Definition: LinkedList.h:97
FROM * GetSource() const
Definition: Reference.h:97
Definition: GameObjectData.h:32
Definition: Player.h:1056
PlayerList const & GetPlayers() const
Definition: Map.h:485
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.

927 {
928 switch (type)
929 {
931 return (IsBuffAvailable ? 1 : 0);
933 return WeeklyQuestId10;
936 return TO_BE_DECIDED;
938 return IN_PROGRESS;
940 return DONE;
941 return NOT_STARTED;
943 return (instance->IsHeroic() ? 1 : 0);
945 return (LichKingHeroicAvailable ? 1 : 0);
947 return FrostwyrmGUIDs.size();
949 return SpinestalkerTrash.size();
950 case DATA_RIMEFANG:
951 return RimefangTrash.size();
953 return ColdflameJetsState;
955 return TeamIdInInstance;
959 return HeroicAttempts;
961 return (IsSindragosaIntroDone ? 1 : 0);
962 default:
963 break;
964 }
965
966 return 0;
967 }
@ TO_BE_DECIDED
Definition: InstanceScript.h:62
@ DATA_TEAMID_IN_INSTANCE
Definition: trial_of_the_champion.h:45
@ PUTRICIDE_EVENT_FLAG_FESTERGUT_VALVE
Definition: icecrown_citadel.h:577
@ PUTRICIDE_EVENT_FLAG_TRAP_FINISHED
Definition: icecrown_citadel.h:580
@ PUTRICIDE_EVENT_FLAG_ROTFACE_VALVE
Definition: icecrown_citadel.h:578
@ PUTRICIDE_EVENT_FLAG_TRAP_INPROGRESS
Definition: icecrown_citadel.h:579
@ DATA_HEROIC_ATTEMPTS
Definition: icecrown_citadel.h:128
@ DATA_SINDRAGOSA_FROSTWYRMS
Definition: icecrown_citadel.h:122
@ DATA_WEEKLY_QUEST_ID
Definition: icecrown_citadel.h:143
@ DATA_LK_HC_AVAILABLE
Definition: icecrown_citadel.h:147
@ DATA_HAS_LIMITED_ATTEMPTS
Definition: icecrown_citadel.h:146
@ DATA_PUTRICIDE_TRAP_STATE
Definition: icecrown_citadel.h:145
@ DATA_BUFF_AVAILABLE
Definition: icecrown_citadel.h:142
@ DATA_RIMEFANG
Definition: icecrown_citadel.h:124
@ DATA_BLOOD_QUICKENING_STATE
Definition: icecrown_citadel.h:127
@ DATA_SINDRAGOSA_INTRO
Definition: icecrown_citadel.h:148
@ DATA_COLDFLAME_JETS
Definition: icecrown_citadel.h:125
@ DATA_SPINESTALKER
Definition: icecrown_citadel.h:123
std::set< ObjectGuid::LowType > SpinestalkerTrash
Definition: instance_icecrown_citadel.cpp:1998
std::set< ObjectGuid::LowType > RimefangTrash
Definition: instance_icecrown_citadel.cpp:1999
std::set< ObjectGuid::LowType > FrostwyrmGUIDs
Definition: instance_icecrown_citadel.cpp:1997

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.

587 {
589 {
590 Map::PlayerList const& players = instance->GetPlayers();
591 if (!players.IsEmpty())
592 if (Player* player = players.begin()->GetSource())
593 TeamIdInInstance = player->GetTeamId();
594 }
595
596 switch (entry)
597 {
603 return 0;
604 break;
610 return 0;
611 break;
612 }
613
614 return entry;
615 }
@ GO_GUNSHIP_ARMORY_H_10N
Definition: icecrown_citadel.h:404
@ GO_GUNSHIP_ARMORY_A_10H
Definition: icecrown_citadel.h:414
@ GO_GUNSHIP_ARMORY_A_25N
Definition: icecrown_citadel.h:413
@ GO_GUNSHIP_ARMORY_A_10N
Definition: icecrown_citadel.h:412
@ GO_GUNSHIP_ARMORY_H_25H
Definition: icecrown_citadel.h:407
@ GO_GUNSHIP_ARMORY_H_25N
Definition: icecrown_citadel.h:405
@ GO_GUNSHIP_ARMORY_A_25H
Definition: icecrown_citadel.h:415
@ GO_GUNSHIP_ARMORY_H_10H
Definition: icecrown_citadel.h:406

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.

970 {
971 switch (type)
972 {
976 return GunshipGUID;
978 return EnemyGunshipGUID;
987 case DATA_FESTERGUT:
988 return FestergutGUID;
989 case DATA_ROTFACE:
990 return RotfaceGUID;
994 return PutricideTableGUID;
996 return BloodCouncilGUIDs[0];
998 return BloodCouncilGUIDs[1];
1000 return BloodCouncilGUIDs[2];
1006 return CrokScourgebaneGUID;
1012 case DATA_SISTER_SVALNA:
1013 return SisterSvalnaGUID;
1017 return ValithriaLichKingGUID;
1019 return ValithriaTriggerGUID;
1023 return PutricadeTrapGUID;
1024 case DATA_SINDRAGOSA:
1025 return SindragosaGUID;
1026 case DATA_SPINESTALKER:
1027 return SpinestalkerGUID;
1028 case DATA_RIMEFANG:
1029 return RimefangGUID;
1030 case DATA_THE_LICH_KING:
1031 return TheLichKingGUID;
1035 return ArthasPlatformGUID;
1037 return TerenasMenethilGUID;
1038 default:
1039 break;
1040 }
1041
1042 return ObjectGuid::Empty;
1043 }
@ NPC_SINDRAGOSA_GAUNTLET
Definition: icecrown_citadel.h:341
@ NPC_PUTRICADES_TRAP
Definition: icecrown_citadel.h:349
@ GO_SAURFANG_S_DOOR
Definition: icecrown_citadel.h:418
@ GO_SCOURGE_TRANSPORTER_SAURFANG
Definition: icecrown_citadel.h:423
@ DATA_VALITHRIA_LICH_KING
Definition: icecrown_citadel.h:135
@ DATA_BLOOD_PRINCES_CONTROL
Definition: icecrown_citadel.h:121
@ DATA_PRINCE_TALDARAM_GUID
Definition: icecrown_citadel.h:119
@ DATA_PRINCE_VALANAR_GUID
Definition: icecrown_citadel.h:120
@ DATA_VALITHRIA_TRIGGER
Definition: icecrown_citadel.h:134
@ DATA_TERENAS_MENETHIL
Definition: icecrown_citadel.h:138
@ DATA_SISTER_SVALNA
Definition: icecrown_citadel.h:103
@ DATA_CROK_SCOURGEBANE
Definition: icecrown_citadel.h:129
@ DATA_SAURFANG_EVENT_NPC
Definition: icecrown_citadel.h:112
@ DATA_HIGHLORD_TIRION_FORDRING
Definition: icecrown_citadel.h:136
@ DATA_ENEMY_GUNSHIP
Definition: icecrown_citadel.h:139
@ DATA_CAPTAIN_RUPERT
Definition: icecrown_citadel.h:133
@ DATA_PUTRICIDE_TABLE
Definition: icecrown_citadel.h:115
@ DATA_CAPTAIN_ARNATH
Definition: icecrown_citadel.h:130
@ DATA_PRINCE_KELESETH_GUID
Definition: icecrown_citadel.h:118
@ DATA_CAPTAIN_GRONDEL
Definition: icecrown_citadel.h:132
@ DATA_CAPTAIN_BRANDON
Definition: icecrown_citadel.h:131
@ DATA_ARTHAS_PLATFORM
Definition: icecrown_citadel.h:137
static ObjectGuid const Empty
Definition: ObjectGuid.h:122
ObjectGuid SindragosaGauntletGUID
Definition: instance_icecrown_citadel.cpp:1979
ObjectGuid RimefangGUID
Definition: instance_icecrown_citadel.cpp:1982
ObjectGuid SpinestalkerGUID
Definition: instance_icecrown_citadel.cpp:1981
ObjectGuid BloodCouncilGUIDs[3]
Definition: instance_icecrown_citadel.cpp:1969
ObjectGuid TheLichKingGUID
Definition: instance_icecrown_citadel.cpp:1984
ObjectGuid TerenasMenethilGUID
Definition: instance_icecrown_citadel.cpp:1986
ObjectGuid DeathbringerSaurfangEventGUID
Definition: instance_icecrown_citadel.cpp:1956
ObjectGuid ValithriaDreamwalkerGUID
Definition: instance_icecrown_citadel.cpp:1975
ObjectGuid BloodCouncilControllerGUID
Definition: instance_icecrown_citadel.cpp:1970
ObjectGuid FestergutGUID
Definition: instance_icecrown_citadel.cpp:1965
ObjectGuid ValithriaLichKingGUID
Definition: instance_icecrown_citadel.cpp:1976
ObjectGuid HighlordTirionFordringGUID
Definition: instance_icecrown_citadel.cpp:1985
ObjectGuid BloodQueenLanaThelGUID
Definition: instance_icecrown_citadel.cpp:1971
ObjectGuid ArthasPlatformGUID
Definition: instance_icecrown_citadel.cpp:1987
ObjectGuid ProfessorPutricideGUID
Definition: instance_icecrown_citadel.cpp:1967
ObjectGuid CrokCaptainGUIDs[4]
Definition: instance_icecrown_citadel.cpp:1973
ObjectGuid DeathbringerSaurfangGUID
Definition: instance_icecrown_citadel.cpp:1954
ObjectGuid LadyDeathwhisperGUID
Definition: instance_icecrown_citadel.cpp:1949
ObjectGuid PutricadeTrapGUID
Definition: instance_icecrown_citadel.cpp:1978
ObjectGuid GunshipGUID
Definition: instance_icecrown_citadel.cpp:1951
ObjectGuid PutricideTableGUID
Definition: instance_icecrown_citadel.cpp:1968
ObjectGuid EnemyGunshipGUID
Definition: instance_icecrown_citadel.cpp:1952
ObjectGuid ValithriaTriggerGUID
Definition: instance_icecrown_citadel.cpp:1977
ObjectGuid SindragosaGUID
Definition: instance_icecrown_citadel.cpp:1980
ObjectGuid RotfaceGUID
Definition: instance_icecrown_citadel.cpp:1966
ObjectGuid SisterSvalnaGUID
Definition: instance_icecrown_citadel.cpp:1974
ObjectGuid SaurfangTeleportGUID
Definition: instance_icecrown_citadel.cpp:1958
ObjectGuid DeathbringerSaurfangDoorGUID
Definition: instance_icecrown_citadel.cpp:1955
ObjectGuid CrokScourgebaneGUID
Definition: instance_icecrown_citadel.cpp:1972

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
1046 {
1048 return;
1049 if (drop && HeroicAttempts)
1050 {
1053 SaveToDB();
1054 }
1055 if (HeroicAttempts)
1056 return;
1059 if (professor->IsAlive())
1060 professor->SetVisible(false);
1062 if (bq->IsAlive())
1063 bq->SetVisible(false);
1065 if (sindra->IsAlive())
1066 sindra->SetVisible(false);
1067 if (Creature* theLichKing = instance->GetCreature(TheLichKingGUID))
1068 if (theLichKing->IsAlive())
1069 theLichKing->SetVisible(false);
1070 }
Definition: Creature.h:46
void SaveToDB()
Definition: InstanceScript.cpp:40
void DoUpdateWorldState(uint32 worldstateId, uint32 worldstateValue)
Definition: InstanceScript.cpp:576
Creature * GetCreature(ObjectGuid const guid)
Definition: Map.cpp:3307
uint32 GetData(uint32 type) const override
Definition: instance_icecrown_citadel.cpp:926

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.

291 {
293 {
294 Map::PlayerList const& players = instance->GetPlayers();
295 if (!players.IsEmpty())
296 if (Player* player = players.begin()->GetSource())
297 TeamIdInInstance = player->GetTeamId();
298 }
299
300 // apply ICC buff to pets/summons
302 if (Unit* owner = creature->GetOwner())
303 if (Player* plr = owner->ToPlayer())
304 {
305 SpellAreaForAreaMapBounds saBounds = sSpellMgr->GetSpellAreaForAreaMapBounds(4812);
306 for (SpellAreaForAreaMap::const_iterator itr = saBounds.first; itr != saBounds.second; ++itr)
307 if ((itr->second->raceMask & plr->getRaceMask()) && !creature->HasAura(itr->second->spellId))
308 if (SpellInfo const* si = sSpellMgr->GetSpellInfo(itr->second->spellId))
310 creature->AddAura(itr->second->spellId, creature);
311 }
312
313 // fighting npcs in Rampart of Skulls
314 std::string name1("Skybreaker ");
315 std::string name2("Kor'kron ");
316 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))
318
319 // pussywizard: check weekly here, before possible UpdateEntry
320 // allow creating all of them, because after killing Marrowgar some have to appear, so just hide them
321 switch (creature->GetEntry())
322 {
330 for (uint8 i = 0; i < WeeklyNPCs; ++i)
331 if (WeeklyQuestData[i].creatureEntry == creature->GetEntry())
332 {
333 WeeklyQuestNpcGUID[i] = creature->GetGUID();
334 if (WeeklyQuestId10 != WeeklyQuestData[i].questId[0])
335 creature->SetVisible(false);
337 creature->SetVisible(false);
338 }
339 break;
340 }
341
342 switch (creature->GetEntry())
343 {
347 break;
351 break;
352 case NPC_TORTUNOK:
355 break;
359 break;
363 break;
366 creature->UpdateEntry(NPC_YILI);
367 break;
368 case NPC_VOL_GUK:
370 creature->UpdateEntry(NPC_JEDEBIA);
371 break;
375 break;
379
380 // Xinef: summon in case of instance unload
382 {
387 }
388 break;
390 LadyDeathwhisperGUID = creature->GetGUID();
391 break;
393 DeathbringerSaurfangGUID = creature->GetGUID();
394 break;
397 {
399 creature->LoadEquipment();
400 }
402 creature->LastUsedScriptID = creature->GetScriptId();
403 break;
406 break;
409 {
411 creature->LoadEquipment();
412 }
413 break;
417 break;
418 case NPC_FESTERGUT:
419 FestergutGUID = creature->GetGUID();
420 break;
421 case NPC_ROTFACE:
422 RotfaceGUID = creature->GetGUID();
423 break;
425 ProfessorPutricideGUID = creature->GetGUID();
427 creature->SetVisible(false);
428 break;
430 BloodCouncilGUIDs[0] = creature->GetGUID();
431 break;
433 BloodCouncilGUIDs[1] = creature->GetGUID();
434 break;
436 BloodCouncilGUIDs[2] = creature->GetGUID();
437 break;
440 break;
442 BloodQueenLanaThelGUID = creature->GetGUID();
444 creature->SetVisible(false);
445 break;
447 CrokScourgebaneGUID = creature->GetGUID();
448 break;
449 // we can only do this because there are no gaps in their entries
454 CrokCaptainGUIDs[creature->GetEntry() - NPC_CAPTAIN_ARNATH] = creature->GetGUID();
455 break;
457 SisterSvalnaGUID = creature->GetGUID();
458 break;
460 ValithriaDreamwalkerGUID = creature->GetGUID();
461 break;
463 ValithriaLichKingGUID = creature->GetGUID();
464 break;
466 ValithriaTriggerGUID = creature->GetGUID();
467 break;
469 PutricadeTrapGUID = creature->GetGUID();
470 break;
472 SindragosaGauntletGUID = creature->GetGUID();
473 break;
474 case NPC_SINDRAGOSA:
475 SindragosaGUID = creature->GetGUID();
477 creature->SetVisible(false);
478 break;
479 case NPC_SPINESTALKER:
480 SpinestalkerGUID = creature->GetGUID();
481 break;
482 case NPC_RIMEFANG:
483 RimefangGUID = creature->GetGUID();
484 break;
486 // Teleporter visual at center
488 creature->CastSpell(creature, SPELL_ARTHAS_TELEPORTER_CEREMONY, false);
489 break;
491 TheLichKingGUID = creature->GetGUID();
493 creature->SetVisible(false);
494 break;
497 break;
500 TerenasMenethilGUID = creature->GetGUID();
501 break;
504 creature->DespawnOrUnsummon(1);
505 break;
508 {
509 uint32 spellId = 0;
510 if (creature->GetPositionY() > 2790.0f && creature->GetPositionZ() > 420.0f)
511 spellId = BLOOD_BEAM_VISUAL_RHAND;
512 else if (creature->GetPositionY() < 2790.0f && creature->GetPositionZ() > 420.0f)
513 spellId = BLOOD_BEAM_VISUAL_LHAND;
514 else if (creature->GetPositionY() < 2790.0f && creature->GetPositionZ() < 420.0f)
515 spellId = BLOOD_BEAM_VISUAL_LLEG;
516 else
517 spellId = BLOOD_BEAM_VISUAL_RLEG;
518 creature->m_Events.AddEvent(new DelayedCastMincharEvent(creature, spellId), creature->m_Events.CalculateTime(1000));
519 }
520 break;
523 if (!creature->IsAlive())
524 creature->Respawn();
525 break;
526 default:
527 break;
528 }
529
531 }
std::uint8_t uint8
Definition: Define.h:110
@ NOTIFY_AI_RELOCATION
Definition: Object.h:63
@ UNIT_MASK_CONTROLABLE_GUARDIAN
Definition: Unit.h:683
@ UNIT_MASK_GUARDIAN
Definition: Unit.h:677
@ UNIT_MASK_MINION
Definition: Unit.h:676
@ 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
@ NPC_THE_LICH_KING
Definition: chapter5.cpp:240
@ NPC_PRINCE_TALDARAM
Definition: ahnkahet.h:41
@ NPC_RIMEFANG
Definition: pit_of_saron.h:71
@ NPC_SINDRAGOSA
Definition: pit_of_saron.h:72
@ NPC_THE_LICH_KING_VALITHRIA
Definition: icecrown_citadel.h:324
@ NPC_UVLUS_BANEFIRE
Definition: icecrown_citadel.h:171
@ NPC_MURADIN_BRONZEBEARD_DUMMY
Definition: icecrown_citadel.h:183
@ NPC_GREEN_DRAGON_COMBAT_TRIGGER
Definition: icecrown_citadel.h:315
@ NPC_CAPTAIN_BRANDON
Definition: icecrown_citadel.h:298
@ NPC_INFILTRATOR_MINCHAR_BQ
Definition: icecrown_citadel.h:197
@ NPC_TERENAS_MENETHIL_FROSTMOURNE
Definition: icecrown_citadel.h:355
@ NPC_SKYBREAKER_LIEUTENANT
Definition: icecrown_citadel.h:192
@ NPC_PRINCE_VALANAR
Definition: icecrown_citadel.h:282
@ NPC_YILI
Definition: icecrown_citadel.h:174
@ NPC_VALITHRIA_DREAMWALKER
Definition: icecrown_citadel.h:314
@ NPC_ALRIN_THE_AGILE
Definition: icecrown_citadel.h:196
@ NPC_ALLIANCE_COMMANDER
Definition: icecrown_citadel.h:166
@ NPC_TALAN_MOONSTRIKE
Definition: icecrown_citadel.h:170
@ NPC_ALANA_MOONSTRIKE
Definition: icecrown_citadel.h:168
@ NPC_UTHER_THE_LIGHTBRINGER_QUEST
Definition: icecrown_citadel.h:186
@ NPC_ALCHEMIST_ADRIANNA
Definition: icecrown_citadel.h:195
@ NPC_IKFIRUS_THE_VILE
Definition: icecrown_citadel.h:173
@ NPC_HIGH_OVERLORD_SAURFANG_DUMMY
Definition: icecrown_citadel.h:182
@ NPC_DEATHBRINGER_SAURFANG
Definition: icecrown_citadel.h:248
@ NPC_KING_VARIAN_WRYNN
Definition: icecrown_citadel.h:180
@ NPC_KOR_KRON_GENERAL
Definition: icecrown_citadel.h:165
@ NPC_BLOOD_ORB_CONTROLLER
Definition: icecrown_citadel.h:283
@ NPC_LADY_JAINA_PROUDMOORE_QUEST
Definition: icecrown_citadel.h:184
@ NPC_MURADIN_BRONZEBEARD_QUEST
Definition: icecrown_citadel.h:185
@ NPC_KOR_KRON_LIEUTENANT
Definition: icecrown_citadel.h:191
@ NPC_SE_SKYBREAKER_MARINE
Definition: icecrown_citadel.h:255
@ NPC_CAPTAIN_RUPERT
Definition: icecrown_citadel.h:300
@ NPC_FESTERGUT
Definition: icecrown_citadel.h:259
@ NPC_HARAGG_THE_UNSEEN
Definition: icecrown_citadel.h:177
@ NPC_INFILTRATOR_MINCHAR
Definition: icecrown_citadel.h:190
@ NPC_BLOOD_QUEEN_LANA_THEL
Definition: icecrown_citadel.h:293
@ NPC_HIGHLORD_TIRION_FORDRING_LK
Definition: icecrown_citadel.h:354
@ NPC_MALFUS_GRIMFROST
Definition: icecrown_citadel.h:172
@ NPC_JEDEBIA
Definition: icecrown_citadel.h:176
@ NPC_ROTFACE
Definition: icecrown_citadel.h:263
@ NPC_SE_HIGH_OVERLORD_SAURFANG
Definition: icecrown_citadel.h:253
@ NPC_MINCHAR_BEAM_STALKER
Definition: icecrown_citadel.h:199
@ NPC_LADY_SYLVANAS_WINDRUNNER_QUEST
Definition: icecrown_citadel.h:187
@ NPC_PROFESSOR_PUTRICIDE
Definition: icecrown_citadel.h:269
@ NPC_NIBY_THE_ALMIGHTY
Definition: icecrown_citadel.h:178
@ NPC_VOL_GUK
Definition: icecrown_citadel.h:175
@ NPC_CROK_SCOURGEBANE
Definition: icecrown_citadel.h:296
@ NPC_SE_KOR_KRON_REAVER
Definition: icecrown_citadel.h:254
@ NPC_TORTUNOK
Definition: icecrown_citadel.h:167
@ NPC_LADY_DEATHWHISPER
Definition: icecrown_citadel.h:208
@ NPC_GARROSH_HELLSCREAM
Definition: icecrown_citadel.h:179
@ NPC_SISTER_SVALNA
Definition: icecrown_citadel.h:310
@ NPC_SPINESTALKER
Definition: icecrown_citadel.h:332
@ NPC_GERARDO_THE_SUAVE
Definition: icecrown_citadel.h:169
@ NPC_PRINCE_KELESETH
Definition: icecrown_citadel.h:280
@ NPC_CAPTAIN_GRONDEL
Definition: icecrown_citadel.h:299
@ NPC_SE_MURADIN_BRONZEBEARD
Definition: icecrown_citadel.h:251
@ NPC_VALITHRIA_DREAMWALKER_QUEST
Definition: icecrown_citadel.h:200
@ NPC_TERENAS_MENETHIL_FROSTMOURNE_H
Definition: icecrown_citadel.h:357
@ NPC_CAPTAIN_ARNATH
Definition: icecrown_citadel.h:297
uint32 const WeeklyNPCs
Definition: icecrown_citadel.h:40
Position const UtherSpawnPos
Definition: instance_icecrown_citadel.cpp:149
@ BLOOD_BEAM_VISUAL_LHAND
Definition: instance_icecrown_citadel.cpp:62
@ BLOOD_BEAM_VISUAL_RHAND
Definition: instance_icecrown_citadel.cpp:61
@ BLOOD_BEAM_VISUAL_LLEG
Definition: instance_icecrown_citadel.cpp:63
@ BLOOD_BEAM_VISUAL_RLEG
Definition: instance_icecrown_citadel.cpp:64
Position const SylvanasSpawnPos
Definition: instance_icecrown_citadel.cpp:150
WeeklyQuest const WeeklyQuestData[WeeklyNPCs]
Definition: instance_icecrown_citadel.cpp:134
Position const MuradinSpawnPos
Definition: instance_icecrown_citadel.cpp:148
Position const JainaSpawnPos
Definition: instance_icecrown_citadel.cpp:147
void AddEvent(BasicEvent *Event, uint64 e_time, bool set_addtime=true)
Definition: EventProcessor.h:104
uint64 CalculateTime(uint64 t_offset) const
Definition: EventProcessor.cpp:159
void Respawn(bool force=false)
Definition: Creature.cpp:1974
void LoadEquipment(int8 id=1, bool force=false)
Definition: Creature.cpp:1746
uint32 GetScriptId() const
Definition: Creature.cpp:2964
CreatureData const * GetCreatureData() const
Definition: Creature.h:200
bool UpdateEntry(uint32 entry, const CreatureData *data=nullptr, bool changelevel=true, bool updateAI=false)
Definition: Creature.cpp:482
void DespawnOrUnsummon(Milliseconds msTimeToDespawn, Seconds forcedRespawnTimer)
Definition: Creature.cpp:2117
Player * ToPlayer()
Definition: Object.h:195
uint32 GetEntry() const
Definition: Object.h:109
static ObjectGuid GetGUID(Object const *o)
Definition: Object.h:106
uint32 LastUsedScriptID
Definition: Object.h:582
std::string const & GetName() const
Definition: Object.h:446
Transport * GetTransport() const
Definition: Object.h:585
void AddToNotify(uint16 f)
Definition: Object.cpp:2932
bool IsPlayer() const
Definition: ObjectGuid.h:170
float GetExactDist2d(const float x, const float y) const
Definition: Position.h:166
float GetPositionZ() const
Definition: Position.h:119
float GetPositionY() const
Definition: Position.h:118
void SetVisible(bool x)
Definition: Unit.cpp:14220
Unit * GetOwner() const
Definition: Unit.cpp:10599
bool CanHaveThreatList() const
Definition: Unit.cpp:14600
Aura * AddAura(uint32 spellId, Unit *target)
Definition: Unit.cpp:19127
bool IsAlive() const
Definition: Unit.h:1822
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
Definition: Unit.cpp:5636
EventProcessor m_Events
Definition: Unit.h:2108
SpellCastResult CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition: Unit.cpp:1169
ObjectGuid GetOwnerGUID() const
Definition: Unit.h:1828
uint32 HasUnitTypeMask(uint32 mask) const
Definition: Unit.h:1419
void OnCreatureCreate(Creature *creature) override
Definition: InstanceScript.cpp:57
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:2154
Definition: SpellInfo.h:314
Definition: instance_icecrown_citadel.cpp:176
ObjectGuid WeeklyQuestNpcGUID[WeeklyNPCs]
Definition: instance_icecrown_citadel.cpp:1938

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(), Unit::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_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, 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.

534 {
535 if (creature->GetEntry() == NPC_SINDRAGOSA)
537
539 }
void Clear()
Definition: ObjectGuid.h:140
void OnCreatureRemove(Creature *creature) override
Definition: InstanceScript.cpp:63

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.

691 {
693 {
694 Map::PlayerList const& players = instance->GetPlayers();
695 if (!players.IsEmpty())
696 if (Player* player = players.begin()->GetSource())
697 TeamIdInInstance = player->GetTeamId();
698 }
699
700 switch (go->GetEntry())
701 {
707 break;
708 case GO_GEIST_ALARM_1:
709 case GO_GEIST_ALARM_2:
710 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());
711 break;
713 case GO_ICEWALL:
729 case GO_ICE_WALL:
731 AddDoor(go);
732 break;
736 break;
737 // these 2 gates are functional only on 25man modes
740 if (instance->Is25ManRaid())
741 AddDoor(go);
742 break;
745 break;
749 break;
759 break;
762 AddDoor(go);
763 break;
769 break;
772 break;
773 case GO_PLAGUE_SIGIL:
774 PlagueSigilGUID = go->GetGUID();
777 break;
782 break;
787 break;
791 break;
793 PutricideGateGUIDs[0] = go->GetGUID();
796 else
798 break;
800 PutricideGateGUIDs[1] = go->GetGUID();
803 else
805 break;
807 PutricidePipeGUIDs[0] = go->GetGUID();
810 break;
812 PutricidePipeGUIDs[1] = go->GetGUID();
815 break;
820 break;
825 break;
826 case GO_DRINK_ME:
828 break;
834 go->SetLootRecipient(valithria);
836 break;
841 break;
843 // this enables movement at The Frozen Throne, when printed this value is 0.000000f
844 // however, when represented as integer client will accept only this value
847 break;
851 break;
854 break;
857 break;
860 break;
864 go->SetRespawnTime(7 * DAY);
865 break;
869 go->SetRespawnTime(7 * DAY);
870 break;
874 go->SetRespawnTime(7 * DAY);
875 break;
877 AddDoor(go);
881 break;
882 default:
883 break;
884 }
885 }
constexpr auto DAY
Definition: Common.h:51
uint32 urand(uint32 min, uint32 max)
Definition: Random.cpp:44
@ GO_STATE_ACTIVE_ALTERNATIVE
Definition: GameObjectData.h:692
@ GAMEOBJECT_PARENTROTATION
Definition: UpdateFields.h:400
@ GO_ICE_WALL
Definition: halls_of_reflection.h:100
@ GO_SINDRAGOSA_SHORTCUT_ENTRANCE_DOOR
Definition: icecrown_citadel.h:463
@ GO_SCIENTIST_AIRLOCK_DOOR_GREEN
Definition: icecrown_citadel.h:430
@ GO_SCOURGE_TRANSPORTER_LK
Definition: icecrown_citadel.h:470
@ GO_THE_SKYBREAKER_H
Definition: icecrown_citadel.h:403
@ GO_GREEN_PLAGUE_MONSTER_ENTRANCE
Definition: icecrown_citadel.h:427
@ GO_SCIENTIST_AIRLOCK_DOOR_COLLISION
Definition: icecrown_citadel.h:428
@ GO_ORGRIMS_HAMMER_A
Definition: icecrown_citadel.h:410
@ GO_DOODAD_ICECROWN_GREENTUBES02
Definition: icecrown_citadel.h:432
@ GO_DEATHBRINGER_S_CACHE_10N
Definition: icecrown_citadel.h:419
@ GO_CACHE_OF_THE_DREAMWALKER_25H
Definition: icecrown_citadel.h:459
@ GO_GAS_RELEASE_VALVE
Definition: icecrown_citadel.h:436
@ GO_FROZEN_LAVAMAN
Definition: icecrown_citadel.h:480
@ GO_BLOODWING_SIGIL
Definition: icecrown_citadel.h:447
@ GO_DEATHBRINGER_S_CACHE_25N
Definition: icecrown_citadel.h:420
@ GO_LADY_DEATHWHISPER_ELEVATOR
Definition: icecrown_citadel.h:399
@ GO_CACHE_OF_THE_DREAMWALKER_25N
Definition: icecrown_citadel.h:457
@ GO_BLOOD_ELF_COUNCIL_DOOR_RIGHT
Definition: icecrown_citadel.h:442
@ GO_SINDRAGOSA_SHORTCUT_EXIT_DOOR
Definition: icecrown_citadel.h:464
@ GO_DOODAD_ICECROWN_SNOWEDGEWARNING01
Definition: icecrown_citadel.h:479
@ GO_DOODAD_ICECROWN_ICEWALL02
Definition: icecrown_citadel.h:393
@ GO_ICEWALL
Definition: icecrown_citadel.h:394
@ GO_LAVAMAN_PILLARS_UNCHAINED
Definition: icecrown_citadel.h:482
@ GO_SPIRIT_ALARM_1
Definition: icecrown_citadel.h:385
@ GO_ORATORY_OF_THE_DAMNED_ENTRANCE
Definition: icecrown_citadel.h:398
@ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_04
Definition: icecrown_citadel.h:455
@ GO_SCIENTIST_AIRLOCK_DOOR_ORANGE
Definition: icecrown_citadel.h:429
@ GO_ARTHAS_PLATFORM
Definition: icecrown_citadel.h:471
@ GO_GEIST_ALARM_2
Definition: icecrown_citadel.h:390
@ GO_CACHE_OF_THE_DREAMWALKER_10N
Definition: icecrown_citadel.h:456
@ GO_GREEN_DRAGON_BOSS_EXIT
Definition: icecrown_citadel.h:451
@ GO_ORANGE_PLAGUE_MONSTER_ENTRANCE
Definition: icecrown_citadel.h:426
@ GO_PLAGUE_SIGIL
Definition: icecrown_citadel.h:435
@ GO_DOODAD_ICECROWN_BLOODPRINCE_DOOR_01
Definition: icecrown_citadel.h:445
@ GO_DEATHBRINGER_S_CACHE_10H
Definition: icecrown_citadel.h:421
@ GO_DOODAD_ICECROWN_THRONEFROSTYWIND01
Definition: icecrown_citadel.h:473
@ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_02
Definition: icecrown_citadel.h:453
@ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_03
Definition: icecrown_citadel.h:454
@ GO_SIGIL_OF_THE_FROSTWING
Definition: icecrown_citadel.h:467
@ GO_OOZE_RELEASE_VALVE
Definition: icecrown_citadel.h:437
@ GO_SCOURGE_TRANSPORTER_FIRST
Definition: icecrown_citadel.h:382
@ GO_SPIRIT_ALARM_3
Definition: icecrown_citadel.h:387
@ GO_SPIRIT_ALARM_2
Definition: icecrown_citadel.h:386
@ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_01
Definition: icecrown_citadel.h:452
@ GO_BLOOD_ELF_COUNCIL_DOOR
Definition: icecrown_citadel.h:441
@ GO_DOODAD_ICECROWN_ORANGETUBES02
Definition: icecrown_citadel.h:431
@ GO_DEATHBRINGER_S_CACHE_25H
Definition: icecrown_citadel.h:422
@ GO_GEIST_ALARM_1
Definition: icecrown_citadel.h:389
@ GO_DOODAD_ICECROWN_GRATE_01
Definition: icecrown_citadel.h:446
@ GO_LORD_MARROWGAR_S_ENTRANCE
Definition: icecrown_citadel.h:395
@ GO_SCIENTIST_ENTRANCE
Definition: icecrown_citadel.h:433
@ GO_LAVAMAN_PILLARS_CHAINED
Definition: icecrown_citadel.h:481
@ GO_DRINK_ME
Definition: icecrown_citadel.h:434
@ GO_CRIMSON_HALL_DOOR
Definition: icecrown_citadel.h:440
@ GO_DOODAD_ICECROWN_THRONEFROSTYEDGE01
Definition: icecrown_citadel.h:474
@ GO_CACHE_OF_THE_DREAMWALKER_10H
Definition: icecrown_citadel.h:458
@ GO_SPIRIT_ALARM_4
Definition: icecrown_citadel.h:388
@ GO_GREEN_DRAGON_BOSS_ENTRANCE
Definition: icecrown_citadel.h:450
@ GO_SINDRAGOSA_ENTRANCE_DOOR
Definition: icecrown_citadel.h:462
@ GO_ARTHAS_PRECIPICE
Definition: icecrown_citadel.h:472
@ 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
void SetGoState(GOState state)
Definition: GameObject.cpp:2477
void SetGameObjectFlag(GameObjectFlags flags)
Definition: GameObject.h:220
void SetRespawnTime(int32 respawn)
Definition: GameObject.cpp:1301
void SetLootRecipient(Creature *creature)
Definition: GameObject.cpp:2701
void RemoveGameObjectFlag(GameObjectFlags flags)
Definition: GameObject.h:221
void SetPosition(float x, float y, float z, float o)
Definition: GameObject.cpp:2917
void SetUInt32Value(uint16 index, uint32 value)
Definition: Object.cpp:650
float GetOrientation() const
Definition: Position.h:120
float GetPositionX() const
Definition: Position.h:117
void HandleGameObject(ObjectGuid guid, bool open, GameObject *go=nullptr)
Definition: InstanceScript.cpp:109
void AddDoor(GameObject *door, bool add=true)
Definition: InstanceScript.cpp:306
bool Is25ManRaid() const
Definition: Map.h:453
ObjectGuid LadyDeathwisperElevatorGUID
Definition: instance_icecrown_citadel.cpp:1950
ObjectGuid FrozenThroneWarningGUID
Definition: instance_icecrown_citadel.cpp:1991
ObjectGuid ScourgeTransporterFirstGUID
Definition: instance_icecrown_citadel.cpp:1946
ObjectGuid DeathbringersCacheGUID
Definition: instance_icecrown_citadel.cpp:1957
ObjectGuid PutricideEnteranceDoorGUID
Definition: instance_icecrown_citadel.cpp:1939
ObjectGuid FrostwingSigilGUID
Definition: instance_icecrown_citadel.cpp:1961
ObjectGuid ArthasPrecipiceGUID
Definition: instance_icecrown_citadel.cpp:1988
ObjectGuid PutricideCollisionGUID
Definition: instance_icecrown_citadel.cpp:1964
ObjectGuid GunshipArmoryGUID
Definition: instance_icecrown_citadel.cpp:1953
ObjectGuid FrozenThroneWindGUID
Definition: instance_icecrown_citadel.cpp:1990
ObjectGuid OozeReleaseValveGUID
Definition: instance_icecrown_citadel.cpp:1942
ObjectGuid GasReleaseValveGUID
Definition: instance_icecrown_citadel.cpp:1941
ObjectGuid PutricidePipeGUIDs[2]
Definition: instance_icecrown_citadel.cpp:1962
ObjectGuid FrozenThroneEdgeGUID
Definition: instance_icecrown_citadel.cpp:1989
ObjectGuid PillarsChainedGUID
Definition: instance_icecrown_citadel.cpp:1993
ObjectGuid FrozenBolvarGUID
Definition: instance_icecrown_citadel.cpp:1992
ObjectGuid PutricideGateGUIDs[2]
Definition: instance_icecrown_citadel.cpp:1963
ObjectGuid BloodwingSigilGUID
Definition: instance_icecrown_citadel.cpp:1960
ObjectGuid PlagueSigilGUID
Definition: instance_icecrown_citadel.cpp:1959
ObjectGuid PillarsUnchainedGUID
Definition: instance_icecrown_citadel.cpp:1994
void SetPositionTraps(GameObject *go)
Definition: instance_icecrown_citadel.cpp:1909

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.

888 {
889 switch (go->GetEntry())
890 {
892 case GO_ICEWALL:
910 //case GO_SINDRAGOSA_ENTRANCE_DOOR:
913 case GO_ICE_WALL:
915 RemoveDoor(go);
916 break;
920 break;
921 default:
922 break;
923 }
924 }
@ GO_ORGRIMS_HAMMER_H
Definition: icecrown_citadel.h:402
void RemoveDoor(GameObject *door)
Definition: InstanceScript.cpp:328

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.

241 {
242 if (newArea == 4890 /*Putricide's Laboratory of Alchemical Horrors and Fun*/ ||
243 newArea == 4891 /*The Sanctum of Blood*/ ||
244 newArea == 4889 /*The Frost Queen's Lair*/ ||
245 newArea == 4859 /*The Frozen Throne*/ ||
246 newArea == 4910 /*Frostmourne*/)
247 {
248 player->SendInitWorldStates(player->GetZoneId(), player->GetAreaId());
249 }
250 else
251 {
253 }
254 }
uint32 GetAreaId() const
Definition: Object.cpp:3108
uint32 GetZoneId() const
Definition: Object.cpp:3100
void SendUpdateWorldState(uint32 variable, uint32 value) const
Definition: PlayerUpdates.cpp:2197
void SendInitWorldStates(uint32 zone, uint32 area)
Definition: Player.cpp:8099

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.

257 {
259 TeamIdInInstance = player->GetTeamId();
260
261 // for professor putricide hc
264
266 SpawnGunship();
267
268 if (GetBossState(DATA_SINDRAGOSA) != DONE && IsSindragosaIntroDone && !GetCreature(DATA_SINDRAGOSA) && Events.GetTimeUntilEvent(EVENT_RESPAWN_SINDRAGOSA) == Milliseconds::max())
269 {
270 Events.ScheduleEvent(EVENT_RESPAWN_SINDRAGOSA, 30s);
271 }
272
273 if (IsBuffAvailable)
274 {
275 SpellAreaForAreaMapBounds saBounds = sSpellMgr->GetSpellAreaForAreaMapBounds(4812);
276 for (SpellAreaForAreaMap::const_iterator itr = saBounds.first; itr != saBounds.second; ++itr)
277 if ((itr->second->raceMask & player->getRaceMask()) && !player->HasAura(itr->second->spellId))
278 {
279 if (SpellInfo const* si = sSpellMgr->GetSpellInfo(itr->second->spellId))
280 {
282 {
283 DoCastSpellOnPlayer(player, itr->second->spellId, false, false);
284 }
285 }
286 }
287 }
288 }
Events
Definition: alterac_valley.cpp:53
@ SPELL_OOZE_VARIABLE
Definition: instance_icecrown_citadel.cpp:60
@ SPELL_GAS_VARIABLE
Definition: instance_icecrown_citadel.cpp:59
@ EVENT_RESPAWN_SINDRAGOSA
Definition: instance_icecrown_citadel.cpp:54
TeamId GetTeamId(bool original=false) const
Definition: Player.h:2072
uint32 getRaceMask() const
Definition: Unit.h:1437
Creature * GetCreature(uint32 type)
Definition: InstanceScript.cpp:99
void DoRemoveAurasDueToSpellOnPlayers(uint32 spell)
Definition: InstanceScript.cpp:638
void DoCastSpellOnPlayer(Player *player, uint32 spell, bool includePets, bool includeControlled)
Definition: InstanceScript.cpp:657
void SpawnGunship()
Definition: instance_icecrown_citadel.cpp:1244

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.

618 {
619 Creature* creature = unit->ToCreature();
620 if (!creature)
621 return;
622
623 // fighting npcs in Rampart of Skulls
624 std::string name1("Skybreaker ");
625 std::string name2("Kor'kron ");
626 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))
627 if (!creature->GetLootRecipient())
628 creature->m_Events.AddEvent(new RespawnEvent(*creature), creature->m_Events.CalculateTime(3000));
629
630 switch (creature->GetEntry())
631 {
638 crok->AI()->SetGUID(creature->GetGUID(), ACTION_VRYKUL_DEATH);
639 break;
641 if (FrostwyrmGUIDs.empty())
642 return;
643
644 if (creature->AI()->GetData(1/*DATA_FROSTWYRM_OWNER*/) == DATA_SPINESTALKER)
645 {
646 SpinestalkerTrash.erase(creature->GetSpawnId());
647 if (SpinestalkerTrash.empty())
648 if (Creature* spinestalk = instance->GetCreature(SpinestalkerGUID))
649 spinestalk->AI()->DoAction(ACTION_START_FROSTWYRM);
650 }
651 else
652 {
653 RimefangTrash.erase(creature->GetSpawnId());
654 if (RimefangTrash.empty())
655 if (Creature* spinestalk = instance->GetCreature(RimefangGUID))
656 spinestalk->AI()->DoAction(ACTION_START_FROSTWYRM);
657 }
658 break;
659 case NPC_RIMEFANG:
660 case NPC_SPINESTALKER:
661 {
663 return;
664
666 return;
667
668 FrostwyrmGUIDs.erase(creature->GetSpawnId());
669 if (FrostwyrmGUIDs.empty())
670 {
673 boss->AI()->DoAction(ACTION_START_FROSTWYRM);
674 }
675 break;
676 }
678 if (Creature* c = unit->SummonCreature(WORLD_TRIGGER, *unit, TEMPSUMMON_TIMED_DESPAWN, 10000))
679 {
680 c->CastSpell(c, VOID_ZONE_VISUAL, true);
682 unit->ToCreature()->DespawnOrUnsummon(3000);
683 }
684 break;
685 default:
686 break;
687 }
688 }
@ TEMPSUMMON_MANUAL_DESPAWN
Definition: Object.h:49
@ TEMPSUMMON_TIMED_DESPAWN
Definition: Object.h:44
#define WORLD_TRIGGER
Definition: Unit.h:36
@ NPC_YMIRJAR_DEATHBRINGER
Definition: pit_of_saron.h:104
@ NPC_YMIRJAR_BATTLE_MAIDEN
Definition: icecrown_citadel.h:305
@ NPC_YMIRJAR_WARLORD
Definition: icecrown_citadel.h:309
@ NPC_RISEN_DEATHSPEAKER_SERVANT
Definition: icecrown_citadel.h:218
@ NPC_YMIRJAR_HUNTRESS
Definition: icecrown_citadel.h:308
@ NPC_FROSTWING_WHELP
Definition: icecrown_citadel.h:335
@ NPC_YMIRJAR_FROSTBINDER
Definition: icecrown_citadel.h:307
@ NPC_DEATHSPEAKER_SERVANT
Definition: icecrown_citadel.h:217
@ ACTION_VRYKUL_DEATH
Definition: icecrown_citadel.h:537
@ ACTION_START_FROSTWYRM
Definition: icecrown_citadel.h:540
@ VOID_ZONE_VISUAL
Definition: instance_icecrown_citadel.cpp:65
Position const SindragosaSpawnPos
Definition: instance_icecrown_citadel.cpp:151
virtual uint32 GetData(uint32) const
Definition: UnitAI.h:202
Player * GetLootRecipient() const
Definition: Creature.cpp:1244
ObjectGuid::LowType GetSpawnId() const
Definition: Creature.h:67
CreatureAI * AI() const
Definition: Creature.h:136
Creature * ToCreature()
Definition: Object.h:197
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:2343
void LoadGrid(float x, float y)
Definition: Map.cpp:492
Definition: instance_icecrown_citadel.cpp:160

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(), Unit::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.

1803 {
1804 switch (eventId)
1805 {
1808 {
1809 if (GameObject* go = source->ToGameObject())
1810 if (MotionTransport* transport = go->ToMotionTransport())
1811 transport->UnloadNonStaticPassengers();
1812 source->AddObjectToRemoveList();
1813 }
1814 break;
1817 {
1818 captain->AI()->DoAction(ACTION_ENEMY_GUNSHIP_TALK);
1819 }
1820 [[fallthrough]];
1823 if (GameObject* go = source->ToGameObject())
1824 if (MotionTransport* transport = go->ToMotionTransport())
1825 transport->EnableMovement(false);
1826 break;
1828 if (GameObject* go = source->ToGameObject())
1829 if (MotionTransport* transport = go->ToMotionTransport())
1830 {
1831 transport->setActive(false);
1832 transport->EnableMovement(false);
1833 //After movement is stopped remove the backpack
1835 }
1837 captain->AI()->DoAction(ACTION_EXIT_SHIP);
1838 break;
1839
1840 case EVENT_QUAKE:
1842 warning->SetGoState(GO_STATE_ACTIVE);
1843 Events.ScheduleEvent(EVENT_QUAKE_SHATTER, 5s);
1844 break;
1847 {
1848 platform->SetDestructibleState(GO_DESTRUCTIBLE_DESTROYED);
1849 Events.ScheduleEvent(EVENT_REBUILD_PLATFORM, 1500ms);
1850 }
1851 break;
1852 case EVENT_TELEPORT_TO_FROSMOURNE: // Harvest Soul (normal mode)
1854 {
1855 terenas->AI()->DoAction(ACTION_FROSTMOURNE_INTRO);
1856 std::list<Creature*> triggers;
1858 if (!triggers.empty())
1859 {
1860 triggers.sort(Acore::ObjectDistanceOrderPred(terenas, false));
1861 Unit* visual = triggers.front();
1862 visual->CastSpell(visual, SPELL_FROSTMOURNE_TELEPORT_VISUAL, true);
1863 }
1864
1865 if (Creature* warden = instance->SummonCreature(NPC_SPIRIT_WARDEN, SpiritWardenSpawn, nullptr, 65000))
1866 {
1867 terenas->AI()->AttackStart(warden);
1868 warden->AddThreat(terenas, 300000.0f);
1869 }
1870 }
1871 break;
1874 {
1877 {
1879 for (uint8 i = 0; i < 2; ++i)
1881 go->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
1882 }
1883 else
1886 SaveToDB();
1887 }
1888 break;
1891 {
1894 {
1896 for (uint8 i = 0; i < 2; ++i)
1898 go->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
1899 }
1900 else
1903 SaveToDB();
1904 }
1905 break;
1906 }
1907 }
Position const TerenasSpawn
Definition: boss_the_lich_king.cpp:321
Position const SpiritWardenSpawn
Definition: boss_the_lich_king.cpp:323
@ NPC_SPIRIT_WARDEN
Definition: icecrown_citadel.h:356
@ NPC_IGB_HIGH_OVERLORD_SAURFANG
Definition: icecrown_citadel.h:226
@ NPC_WORLD_TRIGGER_INFINITE_AOI
Definition: icecrown_citadel.h:369
@ ACTION_FROSTMOURNE_INTRO
Definition: icecrown_citadel.h:544
@ ACTION_ENEMY_GUNSHIP_TALK
Definition: icecrown_citadel.h:519
@ ACTION_EXIT_SHIP
Definition: icecrown_citadel.h:520
@ SPELL_FROSTMOURNE_TELEPORT_VISUAL
Definition: icecrown_citadel.h:67
@ EVENT_QUAKE_SHATTER
Definition: instance_icecrown_citadel.cpp:51
@ EVENT_REBUILD_PLATFORM
Definition: instance_icecrown_citadel.cpp:52
@ EVENT_PLAYERS_GUNSHIP_SPAWN
Definition: instance_icecrown_citadel.cpp:35
@ EVENT_SECOND_REMORSELESS_WINTER
Definition: instance_icecrown_citadel.cpp:42
@ EVENT_ENEMY_GUNSHIP_DESPAWN
Definition: instance_icecrown_citadel.cpp:39
@ EVENT_TELEPORT_TO_FROSMOURNE
Definition: instance_icecrown_citadel.cpp:43
@ EVENT_PLAYERS_GUNSHIP_COMBAT
Definition: instance_icecrown_citadel.cpp:36
@ EVENT_ROTFACE_VALVE_USED
Definition: instance_icecrown_citadel.cpp:45
@ EVENT_FESTERGUT_VALVE_USED
Definition: instance_icecrown_citadel.cpp:44
@ EVENT_QUAKE
Definition: instance_icecrown_citadel.cpp:41
@ EVENT_ENEMY_GUNSHIP_COMBAT
Definition: instance_icecrown_citadel.cpp:38
@ EVENT_PLAYERS_GUNSHIP_SAURFANG
Definition: instance_icecrown_citadel.cpp:37
@ GO_DESTRUCTIBLE_DESTROYED
Definition: SharedDefines.h:1629
MotionTransport * ToMotionTransport()
Definition: GameObject.h:331
GameObject * ToGameObject()
Definition: Object.h:202
void AddObjectToRemoveList()
Definition: Object.cpp:2140
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
Definition: Object.cpp:2434
Definition: Transport.h:48
void RemoveBackPack()
Definition: instance_icecrown_citadel.cpp:1072

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_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.

1638 {
1639 data >> HeroicAttempts;
1640
1641 uint32 temp = 0;
1642 data >> temp;
1643
1644 if (temp == IN_PROGRESS)
1645 {
1647 }
1648 else
1649 {
1651 }
1652
1653 data >> BloodQuickeningState;
1654 data >> BloodQuickeningMinutes;
1655
1657 {
1658 Events.ScheduleEvent(EVENT_UPDATE_EXECUTION_TIME, 1min);
1661 }
1662
1663 data >> WeeklyQuestId10;
1664 data >> PutricideEventProgress;
1665 PutricideEventProgress &= ~PUTRICIDE_EVENT_FLAG_TRAP_INPROGRESS;
1667 data >> BloodPrinceTrashCount;
1668 data >> IsBuffAvailable;
1670 data >> IsSindragosaIntroDone;
1671 }
@ EVENT_UPDATE_EXECUTION_TIME
Definition: instance_icecrown_citadel.cpp:50
void SetData(uint32 type, uint32 data) override
Definition: instance_icecrown_citadel.cpp:1258

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
1073 {
1074 for (auto const& itr : instance->GetPlayers())
1075 if (Player* _player = itr.GetSource())
1076 _player->DestroyItemCount(ITEM_GOBLIN_ROCKET_PACK, _player->GetItemCount(ITEM_GOBLIN_ROCKET_PACK), true);
1077 }
@ ITEM_GOBLIN_ROCKET_PACK
Definition: icecrown_citadel.h:591

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.

1080 {
1081 if (!InstanceScript::SetBossState(type, state))
1082 return false;
1083
1084 switch (type)
1085 {
1087 if (state == DONE)
1088 {
1090 SetData(DATA_WEEKLY_QUEST_ID, 0); // show required hidden npcs
1092 transporter->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
1093 SaveToDB();
1094 }
1095 break;
1097 if (state == DONE)
1098 SpawnGunship();
1099 break;
1101 if (state == DONE)
1102 {
1104 {
1105 loot->SetLootRecipient(instance);
1106 loot->RemoveGameObjectFlag(GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN);
1107 }
1108 }
1109 else if (state == FAIL)
1110 Events.ScheduleEvent(EVENT_RESPAWN_GUNSHIP, 30s);
1111 break;
1113 switch (state)
1114 {
1115 case DONE:
1117 {
1119 loot->SetLootRecipient(deathbringer);
1120 loot->RemoveGameObjectFlag(GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN);
1121 }
1122 [[fallthrough]];
1123 case NOT_STARTED:
1125 {
1126 HandleGameObject(SaurfangTeleportGUID, true, teleporter);
1127 teleporter->RemoveGameObjectFlag(GO_FLAG_IN_USE);
1128 }
1129 break;
1130 default:
1131 break;
1132 }
1133 break;
1134 case DATA_FESTERGUT:
1135 if (state == DONE)
1136 {
1138 go->RemoveGameObjectFlag(GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE);
1140 HandleDropAttempt(false);
1141 }
1142 break;
1143 case DATA_ROTFACE:
1144 if (state == DONE)
1145 {
1147 go->RemoveGameObjectFlag(GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE);
1149 HandleDropAttempt(false);
1150 }
1151 break;
1155 if (state == DONE)
1157 else if (state == FAIL)
1159 if (state == DONE && !instance->IsHeroic() && LichKingHeroicAvailable)
1160 {
1162 SaveToDB();
1163 }
1164 break;
1167 if (state == DONE)
1169 else if (state == FAIL)
1171 if (state == DONE && !instance->IsHeroic() && LichKingHeroicAvailable)
1172 {
1174 SaveToDB();
1175 }
1176 break;
1178 if (state == DONE)
1179 SetData(DATA_WEEKLY_QUEST_ID, GetData(DATA_WEEKLY_QUEST_ID)); // will show weekly quest npc if necessary
1180 break;
1181 case DATA_SINDRAGOSA:
1183 if (state == DONE)
1185 else if (state == FAIL)
1186 {
1187 IsSindragosaIntroDone = true;
1189 if (instance->IsHeroic())
1190 {
1191 if (HeroicAttempts)
1192 {
1193 Events.ScheduleEvent(EVENT_RESPAWN_SINDRAGOSA, 30s);
1194 }
1195 }
1196 else
1197 {
1198 Events.ScheduleEvent(EVENT_RESPAWN_SINDRAGOSA, 30s);
1199 }
1200 }
1201 if (state == DONE && !instance->IsHeroic() && LichKingHeroicAvailable)
1202 {
1204 SaveToDB();
1205 }
1206 break;
1207 case DATA_THE_LICH_KING:
1208 {
1209 // dramatically increase visibility range during fight to seeing frostmourne room
1210 instance->SetVisibilityRange(state == IN_PROGRESS ? 500.0f : 200.0f);
1211
1212 if (state == FAIL)
1213 {
1214 Events.CancelEvent(EVENT_QUAKE_SHATTER);
1215 Events.CancelEvent(EVENT_REBUILD_PLATFORM);
1216
1218 }
1219
1220 if (state == DONE)
1221 {
1223 bolvar->SetRespawnTime(7 * DAY);
1225 pillars->SetRespawnTime(7 * DAY);
1227 pillars->SetRespawnTime(7 * DAY);
1228
1234 }
1235 break;
1236 }
1237 default:
1238 break;
1239 }
1240
1241 return true;
1242 }
static First const & RAND(First const &first, Second const &second, Rest const &... rest)
Definition: CreatureAIImpl.h:30
@ FAIL
Definition: InstanceScript.h:59
@ QUEST_RESIDUE_RENDEZVOUS_10
Definition: icecrown_citadel.h:553
@ QUEST_SECURING_THE_RAMPARTS_10
Definition: icecrown_citadel.h:551
@ QUEST_BLOOD_QUICKENING_10
Definition: icecrown_citadel.h:555
@ QUEST_DEPROGRAMMING_10
Definition: icecrown_citadel.h:549
@ QUEST_RESPITE_FOR_A_TORMENTED_SOUL_10
Definition: icecrown_citadel.h:557
@ EVENT_RESPAWN_GUNSHIP
Definition: instance_icecrown_citadel.cpp:53
@ GO_FLAG_IN_USE
Definition: SharedDefines.h:1603
virtual bool SetBossState(uint32 id, EncounterState state)
Definition: InstanceScript.cpp:350
void SetVisibilityRange(float range)
Definition: Map.h:352
void HandleDropAttempt(bool drop=true)
Definition: instance_icecrown_citadel.cpp:1045
void CheckLichKingAvailability()
Definition: instance_icecrown_citadel.cpp:1615

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.

1259 {
1260 switch (type)
1261 {
1263 IsBuffAvailable = !!data;
1264 if (!IsBuffAvailable)
1265 {
1266 instance->DoForAllPlayers([&](Player* player)
1267 {
1268 player->UpdateAreaDependentAuras(player->GetAreaId());
1269 for (Unit::ControlSet::const_iterator itr = player->m_Controlled.begin(); itr != player->m_Controlled.end(); ++itr)
1270 {
1271 Unit::AuraMap& am = (*itr)->GetOwnedAuras();
1272 for (Unit::AuraMap::iterator itra = am.begin(); itra != am.end();)
1273 switch (itra->second->GetId())
1274 {
1275 // Hellscream's Warsong
1276 case 73816:
1277 case 73818:
1278 case 73819:
1279 case 73820:
1280 case 73821:
1281 case 73822:
1282 // Strength of Wrynn
1283 case 73762:
1284 case 73824:
1285 case 73825:
1286 case 73826:
1287 case 73827:
1288 case 73828:
1289 (*itr)->RemoveOwnedAura(itra);
1290 break;
1291 default:
1292 ++itra;
1293 break;
1294 }
1295 }
1296 });
1297 }
1298 SaveToDB();
1299 break;
1301 for (uint8 i = 0; i < WeeklyNPCs; ++i)
1302 if (WeeklyQuestData[i].questId[0] == WeeklyQuestId10 && (WeeklyQuestData[i].creatureEntry != NPC_VALITHRIA_DREAMWALKER_QUEST || GetBossState(DATA_VALITHRIA_DREAMWALKER) == DONE) /*appears after killing valithria*/)
1303 if (WeeklyQuestNpcGUID[i])
1305 c->SetVisible(true);
1306 break;
1308 if (data == NOT_STARTED)
1309 {
1310 PutricideEventProgress &= ~PUTRICIDE_EVENT_FLAG_TRAP_INPROGRESS;
1313 {
1314 for (uint8 i = 0; i < 2; ++i)
1316 go->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
1317 }
1318 else
1319 {
1322 }
1323 SaveToDB();
1324 }
1325 else if (data == IN_PROGRESS)
1326 {
1331 SaveToDB();
1332 }
1333 else if (data == DONE)
1334 {
1335 PutricideEventProgress &= ~PUTRICIDE_EVENT_FLAG_TRAP_INPROGRESS;
1340 {
1341 for (uint8 i = 0; i < 2; ++i)
1343 go->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
1344 }
1345 else
1346 {
1349 }
1350 SaveToDB();
1351 }
1352 return;
1354 IsBonedEligible = !!data;
1355 break;
1357 IsOozeDanceEligible = !!data;
1358 break;
1360 IsNauseaEligible = !!data;
1361 break;
1363 IsOrbWhispererEligible = !!data;
1364 break;
1366 FrostwyrmGUIDs.insert(data);
1367 break;
1368 case DATA_SPINESTALKER:
1369 SpinestalkerTrash.insert(data);
1370 break;
1371 case DATA_RIMEFANG:
1372 RimefangTrash.insert(data);
1373 break;
1375 ColdflameJetsState = data;
1376 if (ColdflameJetsState == DONE)
1377 SaveToDB();
1378 break;
1380 {
1382 break;
1383 if (BloodQuickeningState == data)
1384 break;
1386 break;
1387
1388 switch (data)
1389 {
1390 case IN_PROGRESS:
1391 Events.ScheduleEvent(EVENT_UPDATE_EXECUTION_TIME, 1min);
1395 break;
1396 case DONE:
1400 break;
1401 default:
1402 break;
1403 }
1404
1405 BloodQuickeningState = data;
1406 SaveToDB();
1407 break;
1408 }
1410 {
1411 if (++BloodPrinceTrashCount >= 4)
1412 {
1415 }
1416 SaveToDB();
1417 break;
1418 }
1419 default:
1420 break;
1421 }
1422 }
@ DATA_ORB_WHISPERER_ACHIEVEMENT
Definition: icecrown_citadel.h:117
@ DATA_OOZE_DANCE_ACHIEVEMENT
Definition: icecrown_citadel.h:114
@ DATA_NAUSEA_ACHIEVEMENT
Definition: icecrown_citadel.h:116
@ DATA_BLOOD_PRINCE_TRASH
Definition: icecrown_citadel.h:108
@ DATA_BONED_ACHIEVEMENT
Definition: icecrown_citadel.h:113
@ DATA_BPC_TRASH_DIED
Definition: icecrown_citadel.h:150
void UpdateAreaDependentAuras(uint32 area_id)
Definition: PlayerUpdates.cpp:1821
ControlSet m_Controlled
Definition: Unit.h:1881
void DoForAllPlayers(std::function< void(Player *)> exec)
Definition: Map.cpp:3817
bool SetBossState(uint32 type, EncounterState state) override
Definition: instance_icecrown_citadel.cpp:1079

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
1910 {
1911 std::vector<Position> trapPositions;
1912
1913 switch (go->GetEntry())
1914 {
1915 case GO_SPIRIT_ALARM_1:
1916 trapPositions = GoSpiritAlarm_1;
1917 break;
1918 case GO_SPIRIT_ALARM_2:
1919 trapPositions = GoSpiritAlarm_2;
1920 break;
1921 case GO_SPIRIT_ALARM_3:
1922 trapPositions = GoSpiritAlarm_3;
1923 break;
1924 case GO_SPIRIT_ALARM_4:
1925 trapPositions = GoSpiritAlarm_4;
1926 break;
1927 default:
1928 return;
1929 }
1930
1932 }
std::vector< Position > GoSpiritAlarm_1
Definition: instance_icecrown_citadel.cpp:154
std::vector< Position > GoSpiritAlarm_4
Definition: instance_icecrown_citadel.cpp:157
std::vector< Position > GoSpiritAlarm_3
Definition: instance_icecrown_citadel.cpp:156
std::vector< Position > GoSpiritAlarm_2
Definition: instance_icecrown_citadel.cpp:155
auto SelectRandomContainerElement(C const &container) -> typename std::add_const< decltype(*std::begin(container))>::type &
Definition: Containers.h:135
void Relocate(float x, float y)
Definition: Position.h:73

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
1245 {
1246 if (!GunshipGUID && instance->HavePlayers())
1247 {
1250 if (MotionTransport* gunship = sTransportMgr->CreateTransport(gunshipEntry, 0, instance))
1251 {
1252 GunshipGUID = gunship->GetGUID();
1253 gunship->setActive(false);
1254 }
1255 }
1256 }
#define sTransportMgr
Definition: TransportMgr.h:163
bool HavePlayers() const
Definition: Map.h:476

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.

1688 {
1689 // Xinef: A Feast of Souls (24547) whispers
1690 if (LichKingRandomWhisperTimer <= diff)
1691 {
1693 Map::PlayerList const& players = instance->GetPlayers();
1694 if (!players.IsEmpty())
1695 if (Player* player = players.begin()->GetSource())
1696 if (player->GetQuestStatus(QUEST_A_FEAST_OF_SOULS) == QUEST_STATUS_INCOMPLETE)
1697 {
1698 uint8 id = urand(0, 15);
1699 std::string const& text = sCreatureTextMgr->GetLocalizedChatString(NPC_THE_LICH_KING_LH, 0, 20 + id, 0, LOCALE_enUS);
1700 WorldPacket data;
1702 player->PlayDirectSound(17235 + id);
1703 player->SendDirectMessage(&data);
1704 }
1705 }
1706 else
1708
1709 if (DarkwhisperElevatorTimer <= diff)
1710 {
1714 if (StaticTransport* trans = elevator->ToStaticTransport())
1715 {
1716 if (trans->GetGoState() == GO_STATE_READY && trans->GetPathProgress() == 0)
1717 trans->SetGoState(GO_STATE_ACTIVE);
1718 else if (trans->GetGoState() == GO_STATE_ACTIVE && trans->GetPathProgress() == trans->GetPauseTime())
1719 trans->SetGoState(GO_STATE_READY);
1720 }
1721 }
1722 else
1724
1725 if (Events.Empty())
1726 return;
1727
1728 Events.Update(diff);
1729
1730 while (uint32 eventId = Events.ExecuteEvent())
1731 {
1732 switch (eventId)
1733 {
1735 {
1738 {
1739 Events.ScheduleEvent(EVENT_UPDATE_EXECUTION_TIME, 1min);
1742 }
1743 else
1744 {
1748 bq->AI()->DoAction(ACTION_KILL_MINCHAR);
1749 }
1750 SaveToDB();
1751 break;
1752 }
1754 {
1756 platform->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED);
1758 edge->SetGoState(GO_STATE_ACTIVE);
1760 wind->SetGoState(GO_STATE_READY);
1762 warning->SetGoState(GO_STATE_READY);
1763 if (Creature* theLichKing = instance->GetCreature(TheLichKingGUID))
1764 theLichKing->AI()->DoAction(ACTION_RESTORE_LIGHT);
1765 break;
1766 }
1769 platform->SetDestructibleState(GO_DESTRUCTIBLE_REBUILDING, nullptr, true);
1771 edge->SetGoState(GO_STATE_READY);
1773 wind->SetGoState(GO_STATE_ACTIVE);
1774 break;
1776 SpawnGunship();
1777 break;
1780 {
1782 {
1783 sindragosa->setActive(true);
1784 sindragosa->SetDisableGravity(true);
1785 sindragosa->GetMotionMaster()->MovePath(NPC_SINDRAGOSA * 10, true);
1786
1787 if (TempSummon* summon = sindragosa->ToTempSummon())
1788 {
1789 summon->SetTempSummonType(TEMPSUMMON_DEAD_DESPAWN);
1790 }
1791 }
1792 }
1793 // Could happen more than once if more than one player enters before she respawns.
1794 Events.CancelEvent(EVENT_RESPAWN_SINDRAGOSA);
1795 break;
1796 default:
1797 break;
1798 }
1799 }
1800 }
@ LOCALE_enUS
Definition: Common.h:68
@ GO_STATE_READY
Definition: GameObjectData.h:691
@ TEMPSUMMON_DEAD_DESPAWN
Definition: Object.h:48
@ CHAT_TAG_NONE
Definition: Player.h:838
@ QUEST_STATUS_INCOMPLETE
Definition: QuestDef.h:103
#define sCreatureTextMgr
Definition: CreatureTextMgr.h:119
@ NPC_THE_LICH_KING_LH
Definition: icecrown_citadel.h:163
@ QUEST_A_FEAST_OF_SOULS
Definition: icecrown_citadel.h:563
@ ACTION_RESTORE_LIGHT
Definition: icecrown_citadel.h:543
@ ACTION_KILL_MINCHAR
Definition: icecrown_citadel.h:534
@ CHAT_MSG_MONSTER_WHISPER
Definition: SharedDefines.h:3167
@ LANG_UNIVERSAL
Definition: SharedDefines.h:735
@ GO_DESTRUCTIBLE_REBUILDING
Definition: SharedDefines.h:1630
@ GO_DESTRUCTIBLE_DAMAGED
Definition: SharedDefines.h:1628
static size_t BuildChatPacket(WorldPacket &data, ChatMsg chatType, Language language, ObjectGuid senderGUID, ObjectGuid receiverGUID, std::string_view message, uint8 chatTag, std::string const &senderName="", std::string const &receiverName="", uint32 achievementId=0, bool gmMessage=false, std::string const &channelName="")
Definition: Chat.cpp:201
Definition: TemporarySummon.h:40
StaticTransport * ToStaticTransport()
Definition: GameObject.h:328
Definition: Transport.h:112
TempSummon * ToTempSummon()
Definition: Unit.h:2414
Definition: WorldPacket.h:27

References ACTION_KILL_MINCHAR, ACTION_RESTORE_LIGHT, MapRefMgr::begin(), ChatHandler::BuildChatPacket(), CHAT_MSG_MONSTER_WHISPER, CHAT_TAG_NONE, DATA_LADY_DEATHWHISPER, DATA_SINDRAGOSA, DONE, ObjectGuid::Empty, 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(), LANG_UNIVERSAL, LOCALE_enUS, NPC_SINDRAGOSA, NPC_THE_LICH_KING_LH, QUEST_A_FEAST_OF_SOULS, QUEST_STATUS_INCOMPLETE, sCreatureTextMgr, 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.

1674 {
1675 data << HeroicAttempts << ' '
1676 << ColdflameJetsState << ' '
1677 << BloodQuickeningState << ' '
1678 << BloodQuickeningMinutes << ' '
1679 << WeeklyQuestId10 << ' '
1680 << PutricideEventProgress << ' '
1681 << uint32(LichKingHeroicAvailable ? 1 : 0) << ' '
1682 << BloodPrinceTrashCount << ' '
1683 << uint32(IsBuffAvailable ? 1 : 0) << ' '
1684 << uint32(IsSindragosaIntroDone ? 1 : 0);
1685 }

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

◆ 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().