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 (WorldPackets::WorldState::InitWorldStates &packet) 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 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 OnPlayerLeave (Player *)
 
virtual void OnPlayerInWaterStateUpdate (Player *, bool)
 
void HandleGameObject (ObjectGuid guid, bool open, GameObject *go=nullptr)
 
void DoUseDoorOrButton (ObjectGuid guid, uint32 withRestoreTime=0, bool useAlternativeState=false)
 
void DoRespawnGameObject (ObjectGuid guid, uint32 timeToDespawn=MINUTE)
 
void DoRespawnGameObject (uint32 type)
 
void DoRespawnCreature (ObjectGuid guid, bool force=false)
 
void DoRespawnCreature (uint32 type, bool force=false)
 
void DoUpdateWorldState (uint32 worldstateId, uint32 worldstateValue)
 
void DoSendNotifyToInstance (char const *format,...)
 
void DoUpdateAchievementCriteria (AchievementCriteriaTypes type, uint32 miscValue1=0, uint32 miscValue2=0, Unit *unit=nullptr)
 
void DoStartTimedAchievement (AchievementCriteriaTimedTypes type, uint32 entry)
 
void DoStopTimedAchievement (AchievementCriteriaTimedTypes type, uint32 entry)
 
void DoRemoveAurasDueToSpellOnPlayers (uint32 spell)
 
void DoCastSpellOnPlayers (uint32 spell)
 
void DoCastSpellOnPlayer (Player *player, uint32 spell, bool includePets, bool includeControlled)
 
bool ServerAllowsTwoSideGroups ()
 
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)
 
void SetCompletedEncountersMask (uint32 newMask, bool save)
 
uint32 GetCompletedEncounterMask () const
 
void SendEncounterUnit (uint32 type, Unit *unit=nullptr, uint8 param1=0, uint8 param2=0)
 
uint32 GetEncounterCount () const
 
void MarkAreaTriggerDone (uint32 id)
 
void ResetAreaTriggerDone (uint32 id)
 
bool IsAreaTriggerDone (uint32 id) const
 
virtual void DoAction (int32)
 
void DoForAllMinions (uint32 id, std::function< void(Creature *)> exec)
 
void StoreGameObjectState (ObjectGuid::LowType spawnId, uint8 state)
 
uint8 GetStoredGameObjectState (ObjectGuid::LowType spawnId) const
 
void LoadInstanceSavedGameobjectStateData ()
 
bool IsBossDone (uint32 bossId) const
 
bool AllBossesDone () const
 
bool AllBossesDone (std::initializer_list< uint32 > bossIds) const
 
TeamId GetTeamIdInInstance () const
 
void SetTeamIdInInstance (TeamId teamId)
 
bool IsTwoFactionInstance () const
 
- Public Member Functions inherited from ZoneScript
 ZoneScript ()
 
virtual ~ZoneScript ()
 
virtual void OnCreatureEvade (Creature *)
 
virtual void SetGuidData (uint32, ObjectGuid)
 
virtual uint64 GetData64 (uint32) const
 
virtual void SetData64 (uint32, uint64)
 

Protected Attributes

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

Additional Inherited Members

- Static Public Member Functions inherited from InstanceScript
static std::string GetBossStateName (uint8 state)
 
- Public Attributes inherited from InstanceScript
Mapinstance
 
TaskScheduler scheduler
 
- Protected Member Functions inherited from InstanceScript
void SetHeaders (std::string const &dataHeaders)
 
void SetBossNumber (uint32 number)
 
void SetPersistentDataCount (uint32 number)
 
void LoadBossBoundaries (BossBoundaryData const &data)
 
void LoadDoorData (DoorData const *data)
 
void LoadMinionData (MinionData const *data)
 
void LoadObjectData (ObjectData const *creatureData, ObjectData const *gameObjectData)
 
void LoadSummonData (ObjectData const *data)
 
void SetSummoner (Creature *creature)
 
void AddObject (Creature *obj, bool add=true)
 
void RemoveObject (Creature *obj)
 
void AddObject (GameObject *obj, bool add=true)
 
void RemoveObject (GameObject *obj)
 
void AddObject (WorldObject *obj, uint32 type, bool add=true)
 
void RemoveObject (WorldObject *obj, uint32 type)
 
void AddDoor (GameObject *door, bool add=true)
 
void RemoveDoor (GameObject *door)
 
void AddMinion (Creature *minion, bool add=true)
 
void RemoveMinion (Creature *minion)
 
void UpdateDoorState (GameObject *door)
 
void UpdateMinionState (Creature *minion, EncounterState state)
 
bool ReadSaveDataHeaders (std::istringstream &data)
 
void ReadSaveDataBossStates (std::istringstream &data)
 
void ReadSavePersistentData (std::istringstream &data)
 
void WriteSaveDataHeaders (std::ostringstream &data)
 
void WriteSaveDataBossStates (std::ostringstream &data)
 
void WritePersistentData (std::ostringstream &data)
 

Detailed Description

Constructor & Destructor Documentation

◆ instance_icecrown_citadel_InstanceMapScript()

instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::instance_icecrown_citadel_InstanceMapScript ( InstanceMap map)
inline
207 : InstanceScript(map)
208 {
209 // pussywizard:
210 IsBuffAvailable = true;
211 WeeklyQuestId10 = 0;
216
224 IsBonedEligible = true;
225 IsOozeDanceEligible = true;
226 IsNauseaEligible = true;
232 IsSindragosaIntroDone = false;
233 }
constexpr auto IN_MILLISECONDS
Definition Common.h:53
@ NOT_STARTED
Definition InstanceScript.h:58
#define DataHeader
Definition blackrock_depths.h:23
Definition InstanceScript.h:143
void SetBossNumber(uint32 number)
Definition InstanceScript.h:296
void SetPersistentDataCount(uint32 number)
Definition InstanceScript.h:297
void LoadDoorData(DoorData const *data)
Definition InstanceScript.cpp:176
void LoadBossBoundaries(BossBoundaryData const &data)
Definition InstanceScript.cpp:146
void SetHeaders(std::string const &dataHeaders)
Definition InstanceScript.cpp:153
void LoadObjectData(ObjectData const *creatureData, ObjectData const *gameObjectData)
Definition InstanceScript.cpp:188
@ MAX_ENCOUNTERS
Definition deadmines.h:30
uint32 const MaxHeroicAttempts
Definition icecrown_citadel.h:33
@ MAX_DATA_INDEXES
Definition icecrown_citadel.h:150
ObjectData const creatureData[]
Definition instance_icecrown_citadel.cpp:126
DoorData const doorData[]
Definition instance_icecrown_citadel.cpp:94
BossBoundaryData const boundaries
Definition instance_icecrown_citadel.cpp:74
uint32 DarkwhisperElevatorTimer
Definition instance_icecrown_citadel.cpp:1911
uint32 PutricideEventProgress
Definition instance_icecrown_citadel.cpp:1906
bool IsBuffAvailable
Definition instance_icecrown_citadel.cpp:1902
bool IsNauseaEligible
Definition instance_icecrown_citadel.cpp:1972
uint32 BloodPrinceTrashCount
Definition instance_icecrown_citadel.cpp:1969
uint16 BloodQuickeningMinutes
Definition instance_icecrown_citadel.cpp:1968
bool LichKingHeroicAvailable
Definition instance_icecrown_citadel.cpp:1909
uint32 WeeklyQuestId10
Definition instance_icecrown_citadel.cpp:1903
bool IsOrbWhispererEligible
Definition instance_icecrown_citadel.cpp:1973
bool IsOozeDanceEligible
Definition instance_icecrown_citadel.cpp:1971
uint32 BloodQuickeningState
Definition instance_icecrown_citadel.cpp:1966
uint32 ColdflameJetsState
Definition instance_icecrown_citadel.cpp:1962
uint32 HeroicAttempts
Definition instance_icecrown_citadel.cpp:1967
bool IsBonedEligible
Definition instance_icecrown_citadel.cpp:1970
uint32 LichKingRandomWhisperTimer
Definition instance_icecrown_citadel.cpp:1910
bool IsSindragosaIntroDone
Definition instance_icecrown_citadel.cpp:1974

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

1387 {
1388 switch (criteria_id)
1389 {
1390 case CRITERIA_BONED_10N:
1391 case CRITERIA_BONED_25N:
1392 case CRITERIA_BONED_10H:
1393 case CRITERIA_BONED_25H:
1394 return IsBonedEligible;
1399 return IsOozeDanceEligible;
1404 return IsNauseaEligible;
1410 // Only one criteria for both modes, need to do it like this
1412 return instance->ToInstanceMap()->GetMaxPlayers() == 10;
1414 return instance->ToInstanceMap()->GetMaxPlayers() == 25;
1415 default:
1416 break;
1417 }
1418
1419 return false;
1420 }
uint32 GetMaxPlayers() const
Definition Map.cpp:2398
Map * instance
Definition InstanceScript.h:149
InstanceMap * ToInstanceMap()
Definition Map.h:393
@ CRITERIA_BONED_25H
Definition icecrown_citadel.h:485
@ CRITERIA_BONED_10N
Definition icecrown_citadel.h:482
@ CRITERIA_NAUSEA_10H
Definition icecrown_citadel.h:496
@ CRITERIA_BONED_25N
Definition icecrown_citadel.h:483
@ CRITERIA_BONED_10H
Definition icecrown_citadel.h:484
@ CRITERIA_DANCES_WITH_OOZES_10H
Definition icecrown_citadel.h:490
@ CRITERIA_NAUSEA_10N
Definition icecrown_citadel.h:494
@ CRITERIA_NAUSEA_25N
Definition icecrown_citadel.h:495
@ CRITERIA_NAUSEA_25H
Definition icecrown_citadel.h:497
@ CRITERIA_ORB_WHISPERER_25H
Definition icecrown_citadel.h:503
@ CRITERIA_DANCES_WITH_OOZES_10N
Definition icecrown_citadel.h:488
@ CRITERIA_DANCES_WITH_OOZES_25H
Definition icecrown_citadel.h:491
@ CRITERIA_KILL_LANA_THEL_25M
Definition icecrown_citadel.h:507
@ CRITERIA_DANCES_WITH_OOZES_25N
Definition icecrown_citadel.h:489
@ CRITERIA_ORB_WHISPERER_25N
Definition icecrown_citadel.h:501
@ CRITERIA_KILL_LANA_THEL_10M
Definition icecrown_citadel.h:506
@ CRITERIA_ORB_WHISPERER_10N
Definition icecrown_citadel.h:500
@ CRITERIA_ORB_WHISPERER_10H
Definition icecrown_citadel.h:502

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, CRITERIA_ORB_WHISPERER_25N, InstanceMap::GetMaxPlayers(), InstanceScript::instance, IsBonedEligible, IsNauseaEligible, IsOozeDanceEligible, IsOrbWhispererEligible, and Map::ToInstanceMap().

◆ CheckCrimsonHalls()

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::CheckCrimsonHalls ( uint32  bossId) const
inline
1487 {
1488 switch (bossId)
1489 {
1490 case DATA_THE_LICH_KING:
1492 {
1493 return false;
1494 }
1495 [[fallthrough]];
1498 return false;
1499 break;
1500 default:
1501 break;
1502 }
1503
1504 return true;
1505 }
@ DONE
Definition InstanceScript.h:61
EncounterState GetBossState(uint32 id) const
Definition InstanceScript.h:242
@ DATA_THE_LICH_KING
Definition icecrown_citadel.h:98
@ DATA_BLOOD_PRINCE_COUNCIL
Definition icecrown_citadel.h:93
@ DATA_BLOOD_QUEEN_LANA_THEL
Definition icecrown_citadel.h:94

References DATA_BLOOD_PRINCE_COUNCIL, DATA_BLOOD_QUEEN_LANA_THEL, DATA_THE_LICH_KING, DONE, and InstanceScript::GetBossState().

Referenced by CheckRequiredBosses().

◆ CheckFrostwingHalls()

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::CheckFrostwingHalls ( uint32  bossId) const
inline
1508 {
1509 switch (bossId)
1510 {
1511 case DATA_THE_LICH_KING:
1513 {
1514 return false;
1515 }
1516 [[fallthrough]];
1517 case DATA_SINDRAGOSA:
1519 {
1520 return false;
1521 }
1523 {
1524 return false;
1525 }
1526 break;
1527 default:
1528 break;
1529 }
1530
1531 return true;
1532 }
@ DATA_SINDRAGOSA_GAUNTLET
Definition icecrown_citadel.h:99
@ DATA_VALITHRIA_DREAMWALKER
Definition icecrown_citadel.h:96
@ DATA_SINDRAGOSA
Definition icecrown_citadel.h:97

References DATA_SINDRAGOSA, DATA_SINDRAGOSA_GAUNTLET, DATA_THE_LICH_KING, DATA_VALITHRIA_DREAMWALKER, DONE, and InstanceScript::GetBossState().

Referenced by CheckRequiredBosses().

◆ CheckLichKingAvailability()

void instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::CheckLichKingAvailability ( )
inline
1578 {
1580 {
1582 {
1583 teleporter->SetGoState(GO_STATE_ACTIVE);
1584
1585 std::list<Creature*> stalkers;
1586 GetCreatureListWithEntryInGrid(stalkers, teleporter, NPC_INVISIBLE_STALKER, 100.0f);
1587 if (stalkers.empty())
1588 return;
1589
1590 stalkers.sort(Acore::ObjectDistanceOrderPred(teleporter));
1591 stalkers.front()->CastSpell((Unit*)nullptr, SPELL_ARTHAS_TELEPORTER_CEREMONY, false);
1592 stalkers.pop_front();
1593 for (std::list<Creature*>::iterator itr = stalkers.begin(); itr != stalkers.end(); ++itr)
1594 (*itr)->AI()->Reset();
1595 }
1596 }
1597 }
@ GO_STATE_ACTIVE
Definition GameObjectData.h:689
void GetCreatureListWithEntryInGrid(std::list< Creature * > &list, WorldObject *source, uint32 entry, float maxSearchRange)
Definition ScriptedCreature.cpp:875
Definition Object.h:701
Definition GameObject.h:120
GameObject * GetGameObject(ObjectGuid const guid)
Definition Map.cpp:2503
Definition Unit.h:620
@ NPC_INVISIBLE_STALKER
Definition icecrown_citadel.h:369
@ SPELL_ARTHAS_TELEPORTER_CEREMONY
Definition icecrown_citadel.h:58
@ DATA_PROFESSOR_PUTRICIDE
Definition icecrown_citadel.h:92
ObjectGuid TheLichKingTeleportGUID
Definition instance_icecrown_citadel.cpp:1949

References DATA_BLOOD_QUEEN_LANA_THEL, DATA_PROFESSOR_PUTRICIDE, DATA_SINDRAGOSA, DONE, InstanceScript::GetBossState(), GetCreatureListWithEntryInGrid(), Map::GetGameObject(), GO_STATE_ACTIVE, InstanceScript::instance, NPC_INVISIBLE_STALKER, SPELL_ARTHAS_TELEPORTER_CEREMONY, and TheLichKingTeleportGUID.

Referenced by SetBossState().

◆ CheckLowerSpire()

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::CheckLowerSpire ( uint32  bossId) const
inline
1535 {
1536 switch (bossId)
1537 {
1538 case DATA_THE_LICH_KING:
1539 case DATA_SINDRAGOSA:
1544 case DATA_ROTFACE:
1545 case DATA_FESTERGUT:
1547 {
1548 return false;
1549 }
1550 [[fallthrough]];
1553 {
1554 return false;
1555 }
1556 [[fallthrough]];
1559 {
1560 return false;
1561 }
1562 [[fallthrough]];
1565 {
1566 return false;
1567 }
1568 [[fallthrough]];
1570 default:
1571 break;
1572 }
1573
1574 return true;
1575 }
@ DATA_DEATHBRINGER_SAURFANG
Definition icecrown_citadel.h:89
@ DATA_ICECROWN_GUNSHIP_BATTLE
Definition icecrown_citadel.h:88
@ DATA_ROTFACE
Definition icecrown_citadel.h:91
@ DATA_LORD_MARROWGAR
Definition icecrown_citadel.h:86
@ DATA_FESTERGUT
Definition icecrown_citadel.h:90
@ DATA_LADY_DEATHWHISPER
Definition icecrown_citadel.h:87

References DATA_BLOOD_PRINCE_COUNCIL, DATA_BLOOD_QUEEN_LANA_THEL, DATA_DEATHBRINGER_SAURFANG, DATA_FESTERGUT, DATA_ICECROWN_GUNSHIP_BATTLE, DATA_LADY_DEATHWHISPER, DATA_LORD_MARROWGAR, DATA_PROFESSOR_PUTRICIDE, DATA_ROTFACE, DATA_SINDRAGOSA, DATA_THE_LICH_KING, DATA_VALITHRIA_DREAMWALKER, DONE, and InstanceScript::GetBossState().

Referenced by CheckRequiredBosses().

◆ CheckPlagueworks()

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::CheckPlagueworks ( uint32  bossId) const
inline
1466 {
1467 switch (bossId)
1468 {
1469 case DATA_THE_LICH_KING:
1471 {
1472 return false;
1473 }
1474 [[fallthrough]];
1477 return false;
1478 break;
1479 default:
1480 break;
1481 }
1482
1483 return true;
1484 }

References DATA_FESTERGUT, DATA_PROFESSOR_PUTRICIDE, DATA_ROTFACE, DATA_THE_LICH_KING, DONE, and InstanceScript::GetBossState().

Referenced by CheckRequiredBosses().

◆ CheckRequiredBosses()

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

Reimplemented from InstanceScript.

1423 {
1424 if (player && player->GetSession() && player->GetSession()->GetSecurity() >= SEC_MODERATOR)
1425 {
1426 return true;
1427 }
1428
1429 switch (bossId)
1430 {
1431 case DATA_THE_LICH_KING:
1432 if (!CheckPlagueworks(bossId))
1433 return false;
1434 if (!CheckCrimsonHalls(bossId))
1435 return false;
1436 if (!CheckFrostwingHalls(bossId))
1437 return false;
1438 break;
1439 case DATA_SINDRAGOSA:
1441 if (!CheckFrostwingHalls(bossId))
1442 return false;
1443 break;
1446 if (!CheckCrimsonHalls(bossId))
1447 return false;
1448 break;
1449 case DATA_FESTERGUT:
1450 case DATA_ROTFACE:
1452 if (!CheckPlagueworks(bossId))
1453 return false;
1454 break;
1455 default:
1456 break;
1457 }
1458
1459 if (!CheckLowerSpire(bossId))
1460 return false;
1461
1462 return true;
1463 }
@ SEC_MODERATOR
Definition Common.h:58
bool CheckFrostwingHalls(uint32 bossId) const
Definition instance_icecrown_citadel.cpp:1507
bool CheckLowerSpire(uint32 bossId) const
Definition instance_icecrown_citadel.cpp:1534
bool CheckCrimsonHalls(uint32 bossId) const
Definition instance_icecrown_citadel.cpp:1486
bool CheckPlagueworks(uint32 bossId) const
Definition instance_icecrown_citadel.cpp:1465

References CheckCrimsonHalls(), CheckFrostwingHalls(), CheckLowerSpire(), CheckPlagueworks(), 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 ( WorldPackets::WorldState::InitWorldStates packet)
inlineoverridevirtual

Reimplemented from InstanceScript.

236 {
237 packet.Worldstates.reserve(5);
240 packet.Worldstates.emplace_back(WORLD_STATE_ICECROWN_CITADEL_SHOW_ATTEMPTS, 1); // instance->IsHeroic() ? 1 : 0
243 }
@ IN_PROGRESS
Definition InstanceScript.h:59
@ WORLD_STATE_ICECROWN_CITADEL_ATTEMPTS_REMAINING
Definition WorldStateDefines.h:551
@ WORLD_STATE_ICECROWN_CITADEL_ATTEMPTS_MAX
Definition WorldStateDefines.h:552
@ WORLD_STATE_ICECROWN_CITADEL_EXECUTION_TIME
Definition WorldStateDefines.h:549
@ WORLD_STATE_ICECROWN_CITADEL_SHOW_ATTEMPTS
Definition WorldStateDefines.h:550
@ WORLD_STATE_ICECROWN_CITADEL_SHOW_TIMER
Definition WorldStateDefines.h:548
std::vector< WorldStateInfo > Worldstates
Definition WorldStatePackets.h:46

References BloodQuickeningMinutes, BloodQuickeningState, HeroicAttempts, IN_PROGRESS, MaxHeroicAttempts, WORLD_STATE_ICECROWN_CITADEL_ATTEMPTS_MAX, WORLD_STATE_ICECROWN_CITADEL_ATTEMPTS_REMAINING, WORLD_STATE_ICECROWN_CITADEL_EXECUTION_TIME, WORLD_STATE_ICECROWN_CITADEL_SHOW_ATTEMPTS, WORLD_STATE_ICECROWN_CITADEL_SHOW_TIMER, and WorldPackets::WorldState::InitWorldStates::Worldstates.

◆ GetCreatureEntry()

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

Reimplemented from ZoneScript.

541 {
542 uint32 entry = data->id1;
543 switch (entry)
544 {
549 return 0;
550 break;
555 return 0;
556 break;
558 if (GameObjectTemplate const* go = sObjectMgr->GetGameObjectTemplate(GO_THE_SKYBREAKER_A))
559 if ((GetTeamIdInInstance() == TEAM_ALLIANCE && data->mapid == go->moTransport.mapID) ||
560 (GetTeamIdInInstance() == TEAM_HORDE && data->mapid != go->moTransport.mapID))
561 return entry;
562 return 0;
564 if ((GetTeamIdInInstance() == TEAM_ALLIANCE && data->posX > 10.0f) ||
565 (GetTeamIdInInstance() == TEAM_HORDE && data->posX < 10.0f))
566 return entry;
567 return 0;
569 if ((GetTeamIdInInstance() == TEAM_ALLIANCE && data->posY < 2200.0f) || (GetTeamIdInInstance() == TEAM_HORDE && data->posY > 2200.0f))
570 return 0;
571 break;
572 }
573
574 return entry;
575 }
@ NPC_ALLIANCE_GUNSHIP_CANNON
Definition BattlegroundIC.h:47
@ NPC_HORDE_GUNSHIP_CANNON
Definition BattlegroundIC.h:46
std::uint32_t uint32
Definition Define.h:107
#define sObjectMgr
Definition ObjectMgr.h:1650
@ TEAM_ALLIANCE
Definition SharedDefines.h:760
@ TEAM_HORDE
Definition SharedDefines.h:761
TeamId GetTeamIdInInstance() const
Definition InstanceScript.h:289
@ NPC_HIGH_CAPTAIN_JUSTIN_BARTLETT
Definition icecrown_citadel.h:238
@ NPC_SKY_REAVER_KORM_BLACKSCAR
Definition icecrown_citadel.h:239
@ NPC_IGB_MURADIN_BRONZEBEARD
Definition icecrown_citadel.h:221
@ NPC_SPIRE_FROSTWYRM
Definition icecrown_citadel.h:370
@ NPC_ZAFOD_BOOMBOX
Definition icecrown_citadel.h:237
@ NPC_SKYBREAKER_DECKHAND
Definition icecrown_citadel.h:218
@ NPC_ORGRIMS_HAMMER_CREW
Definition icecrown_citadel.h:219
@ GO_THE_SKYBREAKER_A
Definition icecrown_citadel.h:405
Definition GameObjectData.h:31

References InstanceScript::GetTeamIdInInstance(), GO_THE_SKYBREAKER_A, CreatureData::id1, 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, and TEAM_HORDE.

◆ GetData()

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

Reimplemented from ZoneScript.

901 {
902 switch (type)
903 {
905 return (IsBuffAvailable ? 1 : 0);
907 return WeeklyQuestId10;
910 return TO_BE_DECIDED;
912 return IN_PROGRESS;
914 return DONE;
915 return NOT_STARTED;
917 return (instance->IsHeroic() ? 1 : 0);
919 return (LichKingHeroicAvailable ? 1 : 0);
921 return FrostwyrmGUIDs.size();
923 return SpinestalkerTrash.size();
924 case DATA_RIMEFANG:
925 return RimefangTrash.size();
927 return ColdflameJetsState;
929 return GetTeamIdInInstance();
933 return HeroicAttempts;
935 return (IsSindragosaIntroDone ? 1 : 0);
936 default:
937 break;
938 }
939
940 return 0;
941 }
@ TO_BE_DECIDED
Definition InstanceScript.h:63
bool IsHeroic() const
Definition Map.h:299
@ PUTRICIDE_EVENT_FLAG_FESTERGUT_VALVE
Definition icecrown_citadel.h:562
@ PUTRICIDE_EVENT_FLAG_TRAP_FINISHED
Definition icecrown_citadel.h:565
@ PUTRICIDE_EVENT_FLAG_ROTFACE_VALVE
Definition icecrown_citadel.h:563
@ PUTRICIDE_EVENT_FLAG_TRAP_INPROGRESS
Definition icecrown_citadel.h:564
@ DATA_HEROIC_ATTEMPTS
Definition icecrown_citadel.h:120
@ DATA_SINDRAGOSA_FROSTWYRMS
Definition icecrown_citadel.h:114
@ DATA_WEEKLY_QUEST_ID
Definition icecrown_citadel.h:137
@ DATA_LK_HC_AVAILABLE
Definition icecrown_citadel.h:141
@ DATA_HAS_LIMITED_ATTEMPTS
Definition icecrown_citadel.h:140
@ DATA_PUTRICIDE_TRAP_STATE
Definition icecrown_citadel.h:139
@ DATA_BUFF_AVAILABLE
Definition icecrown_citadel.h:136
@ DATA_RIMEFANG
Definition icecrown_citadel.h:116
@ DATA_BLOOD_QUICKENING_STATE
Definition icecrown_citadel.h:119
@ DATA_SINDRAGOSA_INTRO
Definition icecrown_citadel.h:142
@ DATA_COLDFLAME_JETS
Definition icecrown_citadel.h:117
@ DATA_SPINESTALKER
Definition icecrown_citadel.h:115
std::set< ObjectGuid::LowType > SpinestalkerTrash
Definition instance_icecrown_citadel.cpp:1964
std::set< ObjectGuid::LowType > RimefangTrash
Definition instance_icecrown_citadel.cpp:1965
std::set< ObjectGuid::LowType > FrostwyrmGUIDs
Definition instance_icecrown_citadel.cpp:1963
@ DATA_TEAMID_IN_INSTANCE
Definition trial_of_the_champion.h:44

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

578 {
579 switch (entry)
580 {
586 return 0;
587 break;
593 return 0;
594 break;
595 }
596
597 return entry;
598 }
@ GO_GUNSHIP_ARMORY_H_10N
Definition icecrown_citadel.h:398
@ GO_GUNSHIP_ARMORY_A_10H
Definition icecrown_citadel.h:408
@ GO_GUNSHIP_ARMORY_A_25N
Definition icecrown_citadel.h:407
@ GO_GUNSHIP_ARMORY_A_10N
Definition icecrown_citadel.h:406
@ GO_GUNSHIP_ARMORY_H_25H
Definition icecrown_citadel.h:401
@ GO_GUNSHIP_ARMORY_H_25N
Definition icecrown_citadel.h:399
@ GO_GUNSHIP_ARMORY_A_25H
Definition icecrown_citadel.h:409
@ GO_GUNSHIP_ARMORY_H_10H
Definition icecrown_citadel.h:400

References InstanceScript::GetTeamIdInInstance(), 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, TEAM_ALLIANCE, and TEAM_HORDE.

◆ GetGuidData()

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

Reimplemented from ZoneScript.

944 {
945 switch (type)
946 {
950 return GunshipGUID;
952 return EnemyGunshipGUID;
961 case DATA_FESTERGUT:
962 return FestergutGUID;
963 case DATA_ROTFACE:
964 return RotfaceGUID;
968 return PutricideTableGUID;
970 return BloodCouncilGUIDs[0];
972 return BloodCouncilGUIDs[1];
974 return BloodCouncilGUIDs[2];
980 return CrokScourgebaneGUID;
987 return SisterSvalnaGUID;
997 return PutricadeTrapGUID;
998 case DATA_SINDRAGOSA:
999 return SindragosaGUID;
1000 case DATA_SPINESTALKER:
1001 return SpinestalkerGUID;
1002 case DATA_RIMEFANG:
1003 return RimefangGUID;
1004 case DATA_THE_LICH_KING:
1005 return TheLichKingGUID;
1009 return ArthasPlatformGUID;
1011 return TerenasMenethilGUID;
1012 default:
1013 break;
1014 }
1015
1016 return ObjectGuid::Empty;
1017 }
static ObjectGuid const Empty
Definition ObjectGuid.h:120
@ NPC_SINDRAGOSA_GAUNTLET
Definition icecrown_citadel.h:335
@ NPC_PUTRICADES_TRAP
Definition icecrown_citadel.h:343
@ GO_SAURFANG_S_DOOR
Definition icecrown_citadel.h:412
@ GO_SCOURGE_TRANSPORTER_SAURFANG
Definition icecrown_citadel.h:417
@ DATA_VALITHRIA_LICH_KING
Definition icecrown_citadel.h:127
@ DATA_BLOOD_PRINCES_CONTROL
Definition icecrown_citadel.h:113
@ DATA_PRINCE_TALDARAM_GUID
Definition icecrown_citadel.h:111
@ DATA_PRINCE_VALANAR_GUID
Definition icecrown_citadel.h:112
@ DATA_VALITHRIA_TRIGGER
Definition icecrown_citadel.h:126
@ DATA_TERENAS_MENETHIL
Definition icecrown_citadel.h:130
@ DATA_SISTER_SVALNA
Definition icecrown_citadel.h:95
@ DATA_CROK_SCOURGEBANE
Definition icecrown_citadel.h:121
@ DATA_SAURFANG_EVENT_NPC
Definition icecrown_citadel.h:104
@ DATA_HIGHLORD_TIRION_FORDRING
Definition icecrown_citadel.h:128
@ DATA_ENEMY_GUNSHIP
Definition icecrown_citadel.h:131
@ DATA_CAPTAIN_RUPERT
Definition icecrown_citadel.h:125
@ DATA_PUTRICIDE_TABLE
Definition icecrown_citadel.h:107
@ DATA_CAPTAIN_ARNATH
Definition icecrown_citadel.h:122
@ DATA_PRINCE_KELESETH_GUID
Definition icecrown_citadel.h:110
@ DATA_CAPTAIN_GRONDEL
Definition icecrown_citadel.h:124
@ DATA_CAPTAIN_BRANDON
Definition icecrown_citadel.h:123
@ DATA_ARTHAS_PLATFORM
Definition icecrown_citadel.h:129
ObjectGuid SindragosaGauntletGUID
Definition instance_icecrown_citadel.cpp:1945
ObjectGuid RimefangGUID
Definition instance_icecrown_citadel.cpp:1948
ObjectGuid SpinestalkerGUID
Definition instance_icecrown_citadel.cpp:1947
ObjectGuid BloodCouncilGUIDs[3]
Definition instance_icecrown_citadel.cpp:1935
ObjectGuid TheLichKingGUID
Definition instance_icecrown_citadel.cpp:1950
ObjectGuid TerenasMenethilGUID
Definition instance_icecrown_citadel.cpp:1953
ObjectGuid DeathbringerSaurfangEventGUID
Definition instance_icecrown_citadel.cpp:1922
ObjectGuid ValithriaDreamwalkerGUID
Definition instance_icecrown_citadel.cpp:1941
ObjectGuid BloodCouncilControllerGUID
Definition instance_icecrown_citadel.cpp:1936
ObjectGuid FestergutGUID
Definition instance_icecrown_citadel.cpp:1931
ObjectGuid ValithriaLichKingGUID
Definition instance_icecrown_citadel.cpp:1942
ObjectGuid HighlordTirionFordringGUID
Definition instance_icecrown_citadel.cpp:1952
ObjectGuid BloodQueenLanaThelGUID
Definition instance_icecrown_citadel.cpp:1937
ObjectGuid ArthasPlatformGUID
Definition instance_icecrown_citadel.cpp:1954
ObjectGuid ProfessorPutricideGUID
Definition instance_icecrown_citadel.cpp:1933
ObjectGuid CrokCaptainGUIDs[4]
Definition instance_icecrown_citadel.cpp:1939
ObjectGuid DeathbringerSaurfangGUID
Definition instance_icecrown_citadel.cpp:1920
ObjectGuid LadyDeathwhisperGUID
Definition instance_icecrown_citadel.cpp:1915
ObjectGuid PutricadeTrapGUID
Definition instance_icecrown_citadel.cpp:1944
ObjectGuid GunshipGUID
Definition instance_icecrown_citadel.cpp:1917
ObjectGuid PutricideTableGUID
Definition instance_icecrown_citadel.cpp:1934
ObjectGuid EnemyGunshipGUID
Definition instance_icecrown_citadel.cpp:1918
ObjectGuid ValithriaTriggerGUID
Definition instance_icecrown_citadel.cpp:1943
ObjectGuid SindragosaGUID
Definition instance_icecrown_citadel.cpp:1946
ObjectGuid RotfaceGUID
Definition instance_icecrown_citadel.cpp:1932
ObjectGuid SisterSvalnaGUID
Definition instance_icecrown_citadel.cpp:1940
ObjectGuid SaurfangTeleportGUID
Definition instance_icecrown_citadel.cpp:1924
ObjectGuid DeathbringerSaurfangDoorGUID
Definition instance_icecrown_citadel.cpp:1921
ObjectGuid CrokScourgebaneGUID
Definition instance_icecrown_citadel.cpp:1938

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
1020 {
1022 return;
1023 if (drop && HeroicAttempts)
1024 {
1027 SaveToDB();
1028 }
1029 if (HeroicAttempts)
1030 return;
1033 if (professor->IsAlive())
1034 professor->SetVisible(false);
1036 if (bq->IsAlive())
1037 bq->SetVisible(false);
1039 if (sindra->IsAlive())
1040 sindra->SetVisible(false);
1041 if (Creature* theLichKing = instance->GetCreature(TheLichKingGUID))
1042 if (theLichKing->IsAlive())
1043 theLichKing->SetVisible(false);
1044 }
Definition Creature.h:43
void SaveToDB()
Definition InstanceScript.cpp:41
void DoUpdateWorldState(uint32 worldstateId, uint32 worldstateValue)
Definition InstanceScript.cpp:621
Creature * GetCreature(ObjectGuid const guid)
Definition Map.cpp:2498
uint32 GetData(uint32 type) const override
Definition instance_icecrown_citadel.cpp:900

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

Referenced by SetBossState().

◆ OnCreatureCreate()

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

Reimplemented from ZoneScript.

294 {
295 // apply ICC buff to pets/summons
297 if (Unit* owner = creature->GetOwner())
298 if (Player* plr = owner->ToPlayer())
299 {
300 SpellAreaForAreaMapBounds saBounds = sSpellMgr->GetSpellAreaForAreaMapBounds(4812);
301 for (SpellAreaForAreaMap::const_iterator itr = saBounds.first; itr != saBounds.second; ++itr)
302 if ((itr->second->raceMask & plr->getRaceMask()) && !creature->HasAura(itr->second->spellId))
303 if (SpellInfo const* si = sSpellMgr->GetSpellInfo(itr->second->spellId))
305 creature->AddAura(itr->second->spellId, creature);
306 }
307
308 // fighting npcs in Rampart of Skulls
309 std::string name1("Skybreaker ");
310 std::string name2("Kor'kron ");
311 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))
313
314 // pussywizard: check weekly here, before possible UpdateEntry
315 // allow creating all of them, because after killing Marrowgar some have to appear, so just hide them
316 switch (creature->GetEntry())
317 {
325 for (uint8 i = 0; i < WeeklyNPCs; ++i)
326 if (WeeklyQuestData[i].creatureEntry == creature->GetEntry())
327 {
328 WeeklyQuestNpcGUID[i] = creature->GetGUID();
329 if (WeeklyQuestId10 != WeeklyQuestData[i].questId[0])
330 creature->SetVisible(false);
332 creature->SetVisible(false);
333 }
334 break;
335 }
336
337 switch (creature->GetEntry())
338 {
342 break;
346 break;
347 case NPC_TORTUNOK:
350 break;
354 break;
358 break;
361 creature->UpdateEntry(NPC_YILI);
362 break;
363 case NPC_VOL_GUK:
365 creature->UpdateEntry(NPC_JEDEBIA);
366 break;
370 break;
374
375 // Xinef: summon in case of instance unload
377 {
382 }
383 break;
385 LadyDeathwhisperGUID = creature->GetGUID();
386 break;
388 DeathbringerSaurfangGUID = creature->GetGUID();
389 break;
392 {
394 creature->LoadEquipment();
395 }
397 creature->LastUsedScriptID = creature->GetScriptId();
398 break;
401 break;
404 {
406 creature->LoadEquipment();
407 }
408 break;
412 break;
413 case NPC_FESTERGUT:
414 FestergutGUID = creature->GetGUID();
415 break;
416 case NPC_ROTFACE:
417 RotfaceGUID = creature->GetGUID();
418 break;
420 ProfessorPutricideGUID = creature->GetGUID();
422 creature->SetVisible(false);
423 break;
425 BloodCouncilGUIDs[0] = creature->GetGUID();
426 break;
428 BloodCouncilGUIDs[1] = creature->GetGUID();
429 break;
431 BloodCouncilGUIDs[2] = creature->GetGUID();
432 break;
435 break;
437 BloodQueenLanaThelGUID = creature->GetGUID();
439 creature->SetVisible(false);
440 break;
442 CrokScourgebaneGUID = creature->GetGUID();
443 break;
444 // we can only do this because there are no gaps in their entries
449 CrokCaptainGUIDs[creature->GetEntry() - NPC_CAPTAIN_ARNATH] = creature->GetGUID();
450 break;
452 SisterSvalnaGUID = creature->GetGUID();
453 break;
455 ValithriaDreamwalkerGUID = creature->GetGUID();
456 break;
458 ValithriaLichKingGUID = creature->GetGUID();
459 break;
461 TheLichKingLhGUID = creature->GetGUID();
462 break;
464 ValithriaTriggerGUID = creature->GetGUID();
465 break;
467 PutricadeTrapGUID = creature->GetGUID();
468 break;
470 SindragosaGauntletGUID = creature->GetGUID();
471 break;
472 case NPC_SINDRAGOSA:
473 SindragosaGUID = creature->GetGUID();
475 creature->SetVisible(false);
476 break;
477 case NPC_SPINESTALKER:
478 SpinestalkerGUID = creature->GetGUID();
479 break;
480 case NPC_RIMEFANG:
481 RimefangGUID = creature->GetGUID();
482 break;
484 // Teleporter visual at center
486 creature->CastSpell(creature, SPELL_ARTHAS_TELEPORTER_CEREMONY, false);
487 break;
489 TheLichKingGUID = creature->GetGUID();
491 creature->SetVisible(false);
492 break;
495 break;
498 TerenasMenethilGUID = creature->GetGUID();
499 break;
502 creature->DespawnOrUnsummon(1);
503 break;
506 {
507 uint32 spellId = 0;
508 if (creature->GetPositionY() > 2790.0f && creature->GetPositionZ() > 420.0f)
509 spellId = BLOOD_BEAM_VISUAL_RHAND;
510 else if (creature->GetPositionY() < 2790.0f && creature->GetPositionZ() > 420.0f)
511 spellId = BLOOD_BEAM_VISUAL_LHAND;
512 else if (creature->GetPositionY() < 2790.0f && creature->GetPositionZ() < 420.0f)
513 spellId = BLOOD_BEAM_VISUAL_LLEG;
514 else
515 spellId = BLOOD_BEAM_VISUAL_RLEG;
516 creature->m_Events.AddEvent(new DelayedCastMincharEvent(creature, spellId), creature->m_Events.CalculateTime(1000));
517 }
518 break;
521 if (!creature->IsAlive())
522 creature->Respawn();
523 break;
524 default:
525 break;
526 }
527
529
530 }
std::uint8_t uint8
Definition Define.h:109
@ NOTIFY_AI_RELOCATION
Definition Object.h:68
@ 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
@ UNIT_MASK_CONTROLLABLE_GUARDIAN
Definition UnitDefines.h:164
@ UNIT_MASK_GUARDIAN
Definition UnitDefines.h:158
@ UNIT_MASK_MINION
Definition UnitDefines.h:157
@ NPC_PRINCE_TALDARAM
Definition ahnkahet.h:41
@ NPC_THE_LICH_KING
Definition chapter5.cpp:234
void Respawn(bool force=false)
Definition Creature.cpp:2038
void LoadEquipment(int8 id=1, bool force=false)
Definition Creature.cpp:1804
uint32 GetScriptId() const
Definition Creature.cpp:3058
CreatureData const * GetCreatureData() const
Definition Creature.h:210
bool UpdateEntry(uint32 entry, const CreatureData *data=nullptr, bool changelevel=true, bool updateAI=false)
Definition Creature.cpp:542
void DespawnOrUnsummon(Milliseconds msTimeToDespawn, Seconds forcedRespawnTimer)
Definition Creature.cpp:2177
Definition instance_icecrown_citadel.cpp:184
void AddEvent(BasicEvent *Event, uint64 e_time, bool set_addtime=true)
Definition EventProcessor.h:103
uint64 CalculateTime(uint64 t_offset) const
Definition EventProcessor.cpp:159
void OnCreatureCreate(Creature *creature) override
Definition InstanceScript.cpp:70
TempSummon * SummonCreature(uint32 entry, Position const &pos, SummonPropertiesEntry const *properties=nullptr, uint32 duration=0, WorldObject *summoner=nullptr, uint32 spellId=0, uint32 vehId=0, bool visibleBySummonerOnly=false)
Definition Object.cpp:2174
bool IsPlayer() const
Definition ObjectGuid.h:168
Player * ToPlayer()
Definition Object.h:202
uint32 GetEntry() const
Definition Object.h:116
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:113
Definition Player.h:1082
Definition SpellInfo.h:316
void SetVisible(bool x)
Definition Unit.cpp:14283
Unit * GetOwner() const
Definition Unit.cpp:10644
Aura * AddAura(uint32 spellId, Unit *target)
Definition Unit.cpp:18910
bool IsAlive() const
Definition Unit.h:1698
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
Definition Unit.cpp:5754
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:1179
ObjectGuid GetOwnerGUID() const
Definition Unit.h:668
uint32 HasUnitTypeMask(uint32 mask) const
Definition Unit.h:696
bool CanHaveThreatList(bool skipAliveCheck=false) const
Definition Unit.cpp:14665
uint32 LastUsedScriptID
Definition Object.h:595
std::string const & GetName() const
Definition Object.h:464
Transport * GetTransport() const
Definition Object.h:598
void AddToNotify(uint16 f)
Definition Object.cpp:2989
EventProcessor m_Events
Definition Object.h:640
@ NPC_THE_LICH_KING_VALITHRIA
Definition icecrown_citadel.h:318
@ NPC_UVLUS_BANEFIRE
Definition icecrown_citadel.h:165
@ NPC_MURADIN_BRONZEBEARD_DUMMY
Definition icecrown_citadel.h:177
@ NPC_GREEN_DRAGON_COMBAT_TRIGGER
Definition icecrown_citadel.h:309
@ NPC_CAPTAIN_BRANDON
Definition icecrown_citadel.h:292
@ NPC_INFILTRATOR_MINCHAR_BQ
Definition icecrown_citadel.h:191
@ NPC_TERENAS_MENETHIL_FROSTMOURNE
Definition icecrown_citadel.h:349
@ NPC_SKYBREAKER_LIEUTENANT
Definition icecrown_citadel.h:186
@ NPC_PRINCE_VALANAR
Definition icecrown_citadel.h:276
@ NPC_YILI
Definition icecrown_citadel.h:168
@ NPC_VALITHRIA_DREAMWALKER
Definition icecrown_citadel.h:308
@ NPC_ALRIN_THE_AGILE
Definition icecrown_citadel.h:190
@ NPC_ALLIANCE_COMMANDER
Definition icecrown_citadel.h:160
@ NPC_TALAN_MOONSTRIKE
Definition icecrown_citadel.h:164
@ NPC_ALANA_MOONSTRIKE
Definition icecrown_citadel.h:162
@ NPC_UTHER_THE_LIGHTBRINGER_QUEST
Definition icecrown_citadel.h:180
@ NPC_ALCHEMIST_ADRIANNA
Definition icecrown_citadel.h:189
@ NPC_IKFIRUS_THE_VILE
Definition icecrown_citadel.h:167
@ NPC_HIGH_OVERLORD_SAURFANG_DUMMY
Definition icecrown_citadel.h:176
@ NPC_DEATHBRINGER_SAURFANG
Definition icecrown_citadel.h:242
@ NPC_KING_VARIAN_WRYNN
Definition icecrown_citadel.h:174
@ NPC_KOR_KRON_GENERAL
Definition icecrown_citadel.h:159
@ NPC_BLOOD_ORB_CONTROLLER
Definition icecrown_citadel.h:277
@ NPC_LADY_JAINA_PROUDMOORE_QUEST
Definition icecrown_citadel.h:178
@ NPC_MURADIN_BRONZEBEARD_QUEST
Definition icecrown_citadel.h:179
@ NPC_KOR_KRON_LIEUTENANT
Definition icecrown_citadel.h:185
@ NPC_SE_SKYBREAKER_MARINE
Definition icecrown_citadel.h:249
@ NPC_CAPTAIN_RUPERT
Definition icecrown_citadel.h:294
@ NPC_FESTERGUT
Definition icecrown_citadel.h:253
@ NPC_HARAGG_THE_UNSEEN
Definition icecrown_citadel.h:171
@ NPC_INFILTRATOR_MINCHAR
Definition icecrown_citadel.h:184
@ NPC_BLOOD_QUEEN_LANA_THEL
Definition icecrown_citadel.h:287
@ NPC_HIGHLORD_TIRION_FORDRING_LK
Definition icecrown_citadel.h:348
@ NPC_MALFUS_GRIMFROST
Definition icecrown_citadel.h:166
@ NPC_JEDEBIA
Definition icecrown_citadel.h:170
@ NPC_ROTFACE
Definition icecrown_citadel.h:257
@ NPC_SE_HIGH_OVERLORD_SAURFANG
Definition icecrown_citadel.h:247
@ NPC_MINCHAR_BEAM_STALKER
Definition icecrown_citadel.h:193
@ NPC_LADY_SYLVANAS_WINDRUNNER_QUEST
Definition icecrown_citadel.h:181
@ NPC_PROFESSOR_PUTRICIDE
Definition icecrown_citadel.h:263
@ NPC_NIBY_THE_ALMIGHTY
Definition icecrown_citadel.h:172
@ NPC_VOL_GUK
Definition icecrown_citadel.h:169
@ NPC_CROK_SCOURGEBANE
Definition icecrown_citadel.h:290
@ NPC_SE_KOR_KRON_REAVER
Definition icecrown_citadel.h:248
@ NPC_TORTUNOK
Definition icecrown_citadel.h:161
@ NPC_LADY_DEATHWHISPER
Definition icecrown_citadel.h:202
@ NPC_GARROSH_HELLSCREAM
Definition icecrown_citadel.h:173
@ NPC_SISTER_SVALNA
Definition icecrown_citadel.h:304
@ NPC_SPINESTALKER
Definition icecrown_citadel.h:326
@ NPC_THE_LICH_KING_LH
Definition icecrown_citadel.h:157
@ NPC_GERARDO_THE_SUAVE
Definition icecrown_citadel.h:163
@ NPC_PRINCE_KELESETH
Definition icecrown_citadel.h:274
@ NPC_CAPTAIN_GRONDEL
Definition icecrown_citadel.h:293
@ NPC_SE_MURADIN_BRONZEBEARD
Definition icecrown_citadel.h:245
@ NPC_VALITHRIA_DREAMWALKER_QUEST
Definition icecrown_citadel.h:194
@ NPC_TERENAS_MENETHIL_FROSTMOURNE_H
Definition icecrown_citadel.h:351
@ NPC_CAPTAIN_ARNATH
Definition icecrown_citadel.h:291
uint32 const WeeklyNPCs
Definition icecrown_citadel.h:32
Position const UtherSpawnPos
Definition instance_icecrown_citadel.cpp:157
@ BLOOD_BEAM_VISUAL_LHAND
Definition instance_icecrown_citadel.cpp:63
@ BLOOD_BEAM_VISUAL_RHAND
Definition instance_icecrown_citadel.cpp:62
@ BLOOD_BEAM_VISUAL_LLEG
Definition instance_icecrown_citadel.cpp:64
@ BLOOD_BEAM_VISUAL_RLEG
Definition instance_icecrown_citadel.cpp:65
Position const SylvanasSpawnPos
Definition instance_icecrown_citadel.cpp:158
WeeklyQuest const WeeklyQuestData[WeeklyNPCs]
Definition instance_icecrown_citadel.cpp:142
Position const MuradinSpawnPos
Definition instance_icecrown_citadel.cpp:156
Position const JainaSpawnPos
Definition instance_icecrown_citadel.cpp:155
@ NPC_RIMEFANG
Definition pit_of_saron.h:71
@ NPC_SINDRAGOSA
Definition pit_of_saron.h:72
float GetExactDist2d(const float x, const float y) const
Definition Position.h:170
float GetPositionZ() const
Definition Position.h:123
float GetPositionY() const
Definition Position.h:122
ObjectGuid WeeklyQuestNpcGUID[WeeklyNPCs]
Definition instance_icecrown_citadel.cpp:1904
ObjectGuid TheLichKingLhGUID
Definition instance_icecrown_citadel.cpp:1951

References Unit::AddAura(), EventProcessor::AddEvent(), WorldObject::AddToNotify(), 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(), Position::GetPositionY(), Position::GetPositionZ(), Creature::GetScriptId(), InstanceScript::GetTeamIdInInstance(), WorldObject::GetTransport(), Unit::HasAura(), Unit::HasUnitTypeMask(), HeroicAttempts, HighlordTirionFordringGUID, InstanceScript::instance, Unit::IsAlive(), ObjectGuid::IsPlayer(), JainaSpawnPos, LadyDeathwhisperGUID, WorldObject::LastUsedScriptID, Creature::LoadEquipment(), WorldObject::m_Events, MuradinSpawnPos, NOTIFY_AI_RELOCATION, NPC_ALANA_MOONSTRIKE, NPC_ALCHEMIST_ADRIANNA, NPC_ALLIANCE_COMMANDER, NPC_ALRIN_THE_AGILE, NPC_BLOOD_ORB_CONTROLLER, NPC_BLOOD_QUEEN_LANA_THEL, NPC_CAPTAIN_ARNATH, NPC_CAPTAIN_BRANDON, NPC_CAPTAIN_GRONDEL, NPC_CAPTAIN_RUPERT, NPC_CROK_SCOURGEBANE, NPC_DEATHBRINGER_SAURFANG, NPC_FESTERGUT, NPC_GARROSH_HELLSCREAM, NPC_GERARDO_THE_SUAVE, NPC_GREEN_DRAGON_COMBAT_TRIGGER, NPC_HARAGG_THE_UNSEEN, NPC_HIGH_OVERLORD_SAURFANG_DUMMY, NPC_HIGHLORD_TIRION_FORDRING_LK, NPC_IKFIRUS_THE_VILE, NPC_INFILTRATOR_MINCHAR, NPC_INFILTRATOR_MINCHAR_BQ, NPC_INVISIBLE_STALKER, NPC_JEDEBIA, NPC_KING_VARIAN_WRYNN, NPC_KOR_KRON_GENERAL, NPC_KOR_KRON_LIEUTENANT, NPC_LADY_DEATHWHISPER, NPC_LADY_JAINA_PROUDMOORE_QUEST, NPC_LADY_SYLVANAS_WINDRUNNER_QUEST, NPC_MALFUS_GRIMFROST, NPC_MINCHAR_BEAM_STALKER, NPC_MURADIN_BRONZEBEARD_DUMMY, NPC_MURADIN_BRONZEBEARD_QUEST, NPC_NIBY_THE_ALMIGHTY, NPC_ORGRIMS_HAMMER_CREW, NPC_PRINCE_KELESETH, NPC_PRINCE_TALDARAM, NPC_PRINCE_VALANAR, NPC_PROFESSOR_PUTRICIDE, NPC_PUTRICADES_TRAP, NPC_RIMEFANG, NPC_ROTFACE, NPC_SE_HIGH_OVERLORD_SAURFANG, NPC_SE_KOR_KRON_REAVER, NPC_SE_MURADIN_BRONZEBEARD, NPC_SE_SKYBREAKER_MARINE, NPC_SINDRAGOSA, NPC_SINDRAGOSA_GAUNTLET, NPC_SISTER_SVALNA, NPC_SKYBREAKER_DECKHAND, NPC_SKYBREAKER_LIEUTENANT, NPC_SPINESTALKER, NPC_TALAN_MOONSTRIKE, NPC_TERENAS_MENETHIL_FROSTMOURNE, NPC_TERENAS_MENETHIL_FROSTMOURNE_H, NPC_THE_LICH_KING, NPC_THE_LICH_KING_LH, NPC_THE_LICH_KING_VALITHRIA, NPC_TORTUNOK, NPC_UTHER_THE_LIGHTBRINGER_QUEST, NPC_UVLUS_BANEFIRE, NPC_VALITHRIA_DREAMWALKER, NPC_VALITHRIA_DREAMWALKER_QUEST, NPC_VOL_GUK, NPC_YILI, InstanceScript::OnCreatureCreate(), ProfessorPutricideGUID, PutricadeTrapGUID, Creature::Respawn(), RimefangGUID, RotfaceGUID, Unit::SetVisible(), SindragosaGauntletGUID, SindragosaGUID, SisterSvalnaGUID, SPELL_ARTHAS_TELEPORTER_CEREMONY, SPELL_AURA_MOD_INCREASE_HEALTH_PERCENT, SpinestalkerGUID, sSpellMgr, Map::SummonCreature(), SylvanasSpawnPos, TEAM_ALLIANCE, TerenasMenethilGUID, TheLichKingGUID, TheLichKingLhGUID, Object::ToPlayer(), UNIT_MASK_CONTROLLABLE_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 ZoneScript.

533 {
534 if (creature->GetEntry() == NPC_SINDRAGOSA)
536
538 }
void OnCreatureRemove(Creature *creature) override
Definition InstanceScript.cpp:79
void Clear()
Definition ObjectGuid.h:138

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

673 {
674 switch (go->GetEntry())
675 {
681 break;
682 case GO_GEIST_ALARM_1:
683 case GO_GEIST_ALARM_2:
684 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());
685 break;
687 case GO_ICEWALL:
703 case GO_ICE_WALL:
705 AddDoor(go);
706 break;
710 break;
711 // these 2 gates are functional only on 25man modes
714 if (instance->Is25ManRaid())
715 AddDoor(go);
716 break;
719 break;
723 break;
733 break;
736 AddDoor(go);
737 break;
743 break;
746 break;
747 case GO_PLAGUE_SIGIL:
748 PlagueSigilGUID = go->GetGUID();
751 break;
756 break;
761 break;
765 break;
767 PutricideGateGUIDs[0] = go->GetGUID();
770 else
772 break;
774 PutricideGateGUIDs[1] = go->GetGUID();
777 else
779 break;
781 PutricidePipeGUIDs[0] = go->GetGUID();
784 break;
786 PutricidePipeGUIDs[1] = go->GetGUID();
789 break;
794 break;
799 break;
800 case GO_DRINK_ME:
802 break;
808 go->SetLootRecipient(valithria);
810 break;
815 break;
817 // this enables movement at The Frozen Throne, when printed this value is 0.000000f
818 // however, when represented as integer client will accept only this value
821 break;
825 break;
828 break;
831 break;
834 break;
838 go->SetRespawnTime(7 * DAY);
839 break;
843 go->SetRespawnTime(7 * DAY);
844 break;
848 go->SetRespawnTime(7 * DAY);
849 break;
851 AddDoor(go);
855 break;
856 default:
857 break;
858 }
859 }
constexpr auto DAY
Definition Common.h:49
@ GO_STATE_ACTIVE_ALTERNATIVE
Definition GameObjectData.h:691
uint32 urand(uint32 min, uint32 max)
Definition Random.cpp:44
@ 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
@ GAMEOBJECT_PARENTROTATION
Definition UpdateFields.h:400
void SetGoState(GOState state)
Definition GameObject.cpp:2462
void SetGameObjectFlag(GameObjectFlags flags)
Definition GameObject.h:217
void SetRespawnTime(int32 respawn)
Definition GameObject.cpp:1288
void SetLootRecipient(Creature *creature)
Definition GameObject.cpp:2631
void RemoveGameObjectFlag(GameObjectFlags flags)
Definition GameObject.h:218
void SetPosition(float x, float y, float z, float o)
Definition GameObject.cpp:2847
void HandleGameObject(ObjectGuid guid, bool open, GameObject *go=nullptr)
Definition InstanceScript.cpp:125
void AddDoor(GameObject *door, bool add=true)
Definition InstanceScript.cpp:331
bool Is25ManRaid() const
Definition Map.h:300
void SetUInt32Value(uint16 index, uint32 value)
Definition Object.cpp:650
@ GO_ICE_WALL
Definition halls_of_reflection.h:93
@ GO_SINDRAGOSA_SHORTCUT_ENTRANCE_DOOR
Definition icecrown_citadel.h:457
@ GO_SCIENTIST_AIRLOCK_DOOR_GREEN
Definition icecrown_citadel.h:424
@ GO_SCOURGE_TRANSPORTER_LK
Definition icecrown_citadel.h:464
@ GO_THE_SKYBREAKER_H
Definition icecrown_citadel.h:397
@ GO_GREEN_PLAGUE_MONSTER_ENTRANCE
Definition icecrown_citadel.h:421
@ GO_SCIENTIST_AIRLOCK_DOOR_COLLISION
Definition icecrown_citadel.h:422
@ GO_ORGRIMS_HAMMER_A
Definition icecrown_citadel.h:404
@ GO_DOODAD_ICECROWN_GREENTUBES02
Definition icecrown_citadel.h:426
@ GO_DEATHBRINGER_S_CACHE_10N
Definition icecrown_citadel.h:413
@ GO_CACHE_OF_THE_DREAMWALKER_25H
Definition icecrown_citadel.h:453
@ GO_GAS_RELEASE_VALVE
Definition icecrown_citadel.h:430
@ GO_FROZEN_LAVAMAN
Definition icecrown_citadel.h:474
@ GO_BLOODWING_SIGIL
Definition icecrown_citadel.h:441
@ GO_DEATHBRINGER_S_CACHE_25N
Definition icecrown_citadel.h:414
@ GO_LADY_DEATHWHISPER_ELEVATOR
Definition icecrown_citadel.h:393
@ GO_CACHE_OF_THE_DREAMWALKER_25N
Definition icecrown_citadel.h:451
@ GO_BLOOD_ELF_COUNCIL_DOOR_RIGHT
Definition icecrown_citadel.h:436
@ GO_SINDRAGOSA_SHORTCUT_EXIT_DOOR
Definition icecrown_citadel.h:458
@ GO_DOODAD_ICECROWN_SNOWEDGEWARNING01
Definition icecrown_citadel.h:473
@ GO_DOODAD_ICECROWN_ICEWALL02
Definition icecrown_citadel.h:387
@ GO_ICEWALL
Definition icecrown_citadel.h:388
@ GO_LAVAMAN_PILLARS_UNCHAINED
Definition icecrown_citadel.h:476
@ GO_SPIRIT_ALARM_1
Definition icecrown_citadel.h:379
@ GO_ORATORY_OF_THE_DAMNED_ENTRANCE
Definition icecrown_citadel.h:392
@ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_04
Definition icecrown_citadel.h:449
@ GO_SCIENTIST_AIRLOCK_DOOR_ORANGE
Definition icecrown_citadel.h:423
@ GO_ARTHAS_PLATFORM
Definition icecrown_citadel.h:465
@ GO_GEIST_ALARM_2
Definition icecrown_citadel.h:384
@ GO_CACHE_OF_THE_DREAMWALKER_10N
Definition icecrown_citadel.h:450
@ GO_GREEN_DRAGON_BOSS_EXIT
Definition icecrown_citadel.h:445
@ GO_ORANGE_PLAGUE_MONSTER_ENTRANCE
Definition icecrown_citadel.h:420
@ GO_PLAGUE_SIGIL
Definition icecrown_citadel.h:429
@ GO_DOODAD_ICECROWN_BLOODPRINCE_DOOR_01
Definition icecrown_citadel.h:439
@ GO_DEATHBRINGER_S_CACHE_10H
Definition icecrown_citadel.h:415
@ GO_DOODAD_ICECROWN_THRONEFROSTYWIND01
Definition icecrown_citadel.h:467
@ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_02
Definition icecrown_citadel.h:447
@ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_03
Definition icecrown_citadel.h:448
@ GO_SIGIL_OF_THE_FROSTWING
Definition icecrown_citadel.h:461
@ GO_OOZE_RELEASE_VALVE
Definition icecrown_citadel.h:431
@ GO_SCOURGE_TRANSPORTER_FIRST
Definition icecrown_citadel.h:376
@ GO_SPIRIT_ALARM_3
Definition icecrown_citadel.h:381
@ GO_SPIRIT_ALARM_2
Definition icecrown_citadel.h:380
@ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_01
Definition icecrown_citadel.h:446
@ GO_BLOOD_ELF_COUNCIL_DOOR
Definition icecrown_citadel.h:435
@ GO_DOODAD_ICECROWN_ORANGETUBES02
Definition icecrown_citadel.h:425
@ GO_DEATHBRINGER_S_CACHE_25H
Definition icecrown_citadel.h:416
@ GO_GEIST_ALARM_1
Definition icecrown_citadel.h:383
@ GO_DOODAD_ICECROWN_GRATE_01
Definition icecrown_citadel.h:440
@ GO_LORD_MARROWGAR_S_ENTRANCE
Definition icecrown_citadel.h:389
@ GO_SCIENTIST_ENTRANCE
Definition icecrown_citadel.h:427
@ GO_LAVAMAN_PILLARS_CHAINED
Definition icecrown_citadel.h:475
@ GO_DRINK_ME
Definition icecrown_citadel.h:428
@ GO_CRIMSON_HALL_DOOR
Definition icecrown_citadel.h:434
@ GO_DOODAD_ICECROWN_THRONEFROSTYEDGE01
Definition icecrown_citadel.h:468
@ GO_CACHE_OF_THE_DREAMWALKER_10H
Definition icecrown_citadel.h:452
@ GO_SPIRIT_ALARM_4
Definition icecrown_citadel.h:382
@ GO_GREEN_DRAGON_BOSS_ENTRANCE
Definition icecrown_citadel.h:444
@ GO_SINDRAGOSA_ENTRANCE_DOOR
Definition icecrown_citadel.h:456
@ GO_ARTHAS_PRECIPICE
Definition icecrown_citadel.h:466
float GetPositionX() const
Definition Position.h:121
ObjectGuid LadyDeathwisperElevatorGUID
Definition instance_icecrown_citadel.cpp:1916
ObjectGuid FrozenThroneWarningGUID
Definition instance_icecrown_citadel.cpp:1958
ObjectGuid ScourgeTransporterFirstGUID
Definition instance_icecrown_citadel.cpp:1912
ObjectGuid DeathbringersCacheGUID
Definition instance_icecrown_citadel.cpp:1923
ObjectGuid PutricideEnteranceDoorGUID
Definition instance_icecrown_citadel.cpp:1905
ObjectGuid FrostwingSigilGUID
Definition instance_icecrown_citadel.cpp:1927
ObjectGuid ArthasPrecipiceGUID
Definition instance_icecrown_citadel.cpp:1955
ObjectGuid PutricideCollisionGUID
Definition instance_icecrown_citadel.cpp:1930
ObjectGuid GunshipArmoryGUID
Definition instance_icecrown_citadel.cpp:1919
ObjectGuid FrozenThroneWindGUID
Definition instance_icecrown_citadel.cpp:1957
ObjectGuid OozeReleaseValveGUID
Definition instance_icecrown_citadel.cpp:1908
ObjectGuid GasReleaseValveGUID
Definition instance_icecrown_citadel.cpp:1907
ObjectGuid PutricidePipeGUIDs[2]
Definition instance_icecrown_citadel.cpp:1928
ObjectGuid FrozenThroneEdgeGUID
Definition instance_icecrown_citadel.cpp:1956
ObjectGuid PillarsChainedGUID
Definition instance_icecrown_citadel.cpp:1960
ObjectGuid FrozenBolvarGUID
Definition instance_icecrown_citadel.cpp:1959
ObjectGuid PutricideGateGUIDs[2]
Definition instance_icecrown_citadel.cpp:1929
ObjectGuid BloodwingSigilGUID
Definition instance_icecrown_citadel.cpp:1926
ObjectGuid PlagueSigilGUID
Definition instance_icecrown_citadel.cpp:1925
ObjectGuid PillarsUnchainedGUID
Definition instance_icecrown_citadel.cpp:1961
void SetPositionTraps(GameObject *go)
Definition instance_icecrown_citadel.cpp:1875

References InstanceScript::AddDoor(), ArthasPlatformGUID, ArthasPrecipiceGUID, 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(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), 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(), 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(), TheLichKingTeleportGUID, urand(), and ValithriaDreamwalkerGUID.

◆ OnGameObjectRemove()

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

Reimplemented from ZoneScript.

862 {
863 switch (go->GetEntry())
864 {
866 case GO_ICEWALL:
884 //case GO_SINDRAGOSA_ENTRANCE_DOOR:
887 case GO_ICE_WALL:
889 RemoveDoor(go);
890 break;
894 break;
895 default:
896 break;
897 }
898 }
void RemoveDoor(GameObject *door)
Definition InstanceScript.cpp:353
@ GO_ORGRIMS_HAMMER_H
Definition icecrown_citadel.h:396

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.

246 {
248 newArea == AREA_THE_SANCTUM_OF_BLOOD ||
249 newArea == AREA_THE_FROST_QUEENS_LAIR ||
250 newArea == AREA_THE_FROZEN_THRONE ||
251 newArea == AREA_FROSTMOURNE)
252 {
253 player->SendInitWorldStates(player->GetZoneId(), player->GetAreaId());
254 }
255 else
256 {
258 }
259 }
@ AREA_FROSTMOURNE
Definition AreaDefines.h:178
@ AREA_THE_SANCTUM_OF_BLOOD
Definition AreaDefines.h:177
@ AREA_THE_FROZEN_THRONE
Definition AreaDefines.h:174
@ AREA_PUTRICIDES_LABORATORY_OF_ALCHEMICAL_HORRORS_AND_FUN
Definition AreaDefines.h:176
@ AREA_THE_FROST_QUEENS_LAIR
Definition AreaDefines.h:175
void SendUpdateWorldState(uint32 variable, uint32 value) const
Definition PlayerUpdates.cpp:2243
void SendInitWorldStates(uint32 zoneId, uint32 areaId)
Definition Player.cpp:8186
uint32 GetAreaId() const
Definition Object.cpp:3156
uint32 GetZoneId() const
Definition Object.cpp:3148

References AREA_FROSTMOURNE, AREA_PUTRICIDES_LABORATORY_OF_ALCHEMICAL_HORRORS_AND_FUN, AREA_THE_FROST_QUEENS_LAIR, AREA_THE_FROZEN_THRONE, AREA_THE_SANCTUM_OF_BLOOD, WorldObject::GetAreaId(), WorldObject::GetZoneId(), Player::SendInitWorldStates(), Player::SendUpdateWorldState(), and WORLD_STATE_ICECROWN_CITADEL_SHOW_ATTEMPTS.

◆ OnPlayerEnter()

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

Reimplemented from InstanceScript.

262 {
264 // for professor putricide hc
267
269 SpawnGunship();
270
271 if (GetBossState(DATA_SINDRAGOSA) != DONE && IsSindragosaIntroDone && !GetCreature(DATA_SINDRAGOSA) && Events.GetTimeUntilEvent(EVENT_RESPAWN_SINDRAGOSA) == Milliseconds::max())
272 {
273 Events.ScheduleEvent(EVENT_RESPAWN_SINDRAGOSA, 30s);
274 }
275
276 if (IsBuffAvailable)
277 {
278 SpellAreaForAreaMapBounds saBounds = sSpellMgr->GetSpellAreaForAreaMapBounds(4812);
279 for (SpellAreaForAreaMap::const_iterator itr = saBounds.first; itr != saBounds.second; ++itr)
280 if ((itr->second->raceMask & player->getRaceMask()) && !player->HasAura(itr->second->spellId))
281 {
282 if (SpellInfo const* si = sSpellMgr->GetSpellInfo(itr->second->spellId))
283 {
285 {
286 DoCastSpellOnPlayer(player, itr->second->spellId, false, false);
287 }
288 }
289 }
290 }
291 }
Events
Definition alterac_valley.cpp:53
Creature * GetCreature(uint32 type)
Definition InstanceScript.cpp:115
void DoRemoveAurasDueToSpellOnPlayers(uint32 spell)
Definition InstanceScript.cpp:683
virtual void OnPlayerEnter(Player *)
Definition InstanceScript.cpp:58
void DoCastSpellOnPlayer(Player *player, uint32 spell, bool includePets, bool includeControlled)
Definition InstanceScript.cpp:702
uint32 getRaceMask() const
Definition Unit.h:788
@ SPELL_OOZE_VARIABLE
Definition instance_icecrown_citadel.cpp:61
@ SPELL_GAS_VARIABLE
Definition instance_icecrown_citadel.cpp:60
@ EVENT_RESPAWN_SINDRAGOSA
Definition instance_icecrown_citadel.cpp:55
void SpawnGunship()
Definition instance_icecrown_citadel.cpp:1206

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

◆ OnUnitDeath()

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

Reimplemented from ZoneScript.

601 {
602 Creature* creature = unit->ToCreature();
603 if (!creature)
604 return;
605
606 // fighting npcs in Rampart of Skulls
607 std::string name1("Skybreaker ");
608 std::string name2("Kor'kron ");
609 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))
610 if (!creature->GetLootRecipient())
611 creature->m_Events.AddEvent(new RespawnEvent(*creature), creature->m_Events.CalculateTime(3000));
612
613 switch (creature->GetEntry())
614 {
621 crok->AI()->SetGUID(creature->GetGUID(), ACTION_VRYKUL_DEATH);
622 break;
624 if (FrostwyrmGUIDs.empty())
625 return;
626
627 if (creature->AI()->GetData(1/*DATA_FROSTWYRM_OWNER*/) == DATA_SPINESTALKER)
628 {
629 SpinestalkerTrash.erase(creature->GetSpawnId());
630 if (SpinestalkerTrash.empty())
631 if (Creature* spinestalk = instance->GetCreature(SpinestalkerGUID))
632 spinestalk->AI()->DoAction(ACTION_START_FROSTWYRM);
633 }
634 else
635 {
636 RimefangTrash.erase(creature->GetSpawnId());
637 if (RimefangTrash.empty())
638 if (Creature* spinestalk = instance->GetCreature(RimefangGUID))
639 spinestalk->AI()->DoAction(ACTION_START_FROSTWYRM);
640 }
641 break;
642 case NPC_RIMEFANG:
643 case NPC_SPINESTALKER:
644 {
646 return;
647
649 return;
650
651 FrostwyrmGUIDs.erase(creature->GetSpawnId());
652 if (FrostwyrmGUIDs.empty())
653 {
655 boss->AI()->DoAction(ACTION_START_FROSTWYRM);
656 }
657 break;
658 }
660 if (Creature* c = unit->SummonCreature(WORLD_TRIGGER, *unit, TEMPSUMMON_TIMED_DESPAWN, 10000))
661 {
662 c->CastSpell(c, VOID_ZONE_VISUAL, true);
664 unit->ToCreature()->DespawnOrUnsummon(3000);
665 }
666 break;
667 default:
668 break;
669 }
670 }
@ TEMPSUMMON_MANUAL_DESPAWN
Definition Object.h:54
@ TEMPSUMMON_TIMED_DESPAWN
Definition Object.h:49
#define WORLD_TRIGGER
Definition Unit.h:38
Player * GetLootRecipient() const
Definition Creature.cpp:1312
ObjectGuid::LowType GetSpawnId() const
Definition Creature.h:65
CreatureAI * AI() const
Definition Creature.h:141
Creature * ToCreature()
Definition Object.h:206
Definition instance_icecrown_citadel.cpp:168
virtual uint32 GetData(uint32) const
Definition UnitAI.h:217
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:2368
@ NPC_YMIRJAR_BATTLE_MAIDEN
Definition icecrown_citadel.h:299
@ NPC_YMIRJAR_WARLORD
Definition icecrown_citadel.h:303
@ NPC_RISEN_DEATHSPEAKER_SERVANT
Definition icecrown_citadel.h:212
@ NPC_YMIRJAR_HUNTRESS
Definition icecrown_citadel.h:302
@ NPC_FROSTWING_WHELP
Definition icecrown_citadel.h:329
@ NPC_YMIRJAR_FROSTBINDER
Definition icecrown_citadel.h:301
@ NPC_DEATHSPEAKER_SERVANT
Definition icecrown_citadel.h:211
@ ACTION_VRYKUL_DEATH
Definition icecrown_citadel.h:531
@ ACTION_START_FROSTWYRM
Definition icecrown_citadel.h:534
@ VOID_ZONE_VISUAL
Definition instance_icecrown_citadel.cpp:66
Position const SindragosaSpawnPos
Definition instance_icecrown_citadel.cpp:159
@ NPC_YMIRJAR_DEATHBRINGER
Definition pit_of_saron.h:104

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::GetPositionZ(), Creature::GetSpawnId(), WorldObject::GetTransport(), HeroicAttempts, InstanceScript::instance, WorldObject::m_Events, NPC_DEATHSPEAKER_SERVANT, NPC_FROSTWING_WHELP, NPC_RIMEFANG, NPC_RISEN_DEATHSPEAKER_SERVANT, NPC_SINDRAGOSA, NPC_SPINESTALKER, NPC_YMIRJAR_BATTLE_MAIDEN, NPC_YMIRJAR_DEATHBRINGER, NPC_YMIRJAR_FROSTBINDER, NPC_YMIRJAR_HUNTRESS, NPC_YMIRJAR_WARLORD, RimefangGUID, RimefangTrash, SindragosaSpawnPos, SpinestalkerGUID, SpinestalkerTrash, Map::SummonCreature(), WorldObject::SummonCreature(), TEMPSUMMON_MANUAL_DESPAWN, TEMPSUMMON_TIMED_DESPAWN, Object::ToCreature(), VOID_ZONE_VISUAL, and WORLD_TRIGGER.

◆ ProcessEvent()

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

Reimplemented from ZoneScript.

1763 {
1764 switch (eventId)
1765 {
1768 {
1769 if (GameObject* go = source->ToGameObject())
1770 if (MotionTransport* transport = go->ToMotionTransport())
1771 transport->UnloadNonStaticPassengers();
1772 source->AddObjectToRemoveList();
1773 }
1774 break;
1777 {
1778 captain->AI()->DoAction(ACTION_ENEMY_GUNSHIP_TALK);
1779 }
1780 [[fallthrough]];
1783 if (GameObject* go = source->ToGameObject())
1784 if (MotionTransport* transport = go->ToMotionTransport())
1785 transport->EnableMovement(false);
1786 break;
1788 if (GameObject* go = source->ToGameObject())
1789 if (MotionTransport* transport = go->ToMotionTransport())
1790 {
1791 transport->setActive(false);
1792 transport->EnableMovement(false);
1793 //After movement is stopped remove the backpack
1795 }
1797 captain->AI()->DoAction(ACTION_EXIT_SHIP);
1798 break;
1799
1800 case EVENT_QUAKE:
1802 warning->SetGoState(GO_STATE_ACTIVE);
1803 Events.ScheduleEvent(EVENT_QUAKE_SHATTER, 5s);
1804 break;
1807 {
1808 platform->SetDestructibleState(GO_DESTRUCTIBLE_DESTROYED);
1809 Events.ScheduleEvent(EVENT_REBUILD_PLATFORM, 1500ms);
1810 }
1811 break;
1812 case EVENT_TELEPORT_TO_FROSMOURNE: // Harvest Soul (normal mode)
1814 {
1815 terenas->AI()->DoAction(ACTION_FROSTMOURNE_INTRO);
1816 std::list<Creature*> triggers;
1818 if (!triggers.empty())
1819 {
1820 triggers.sort(Acore::ObjectDistanceOrderPred(terenas, false));
1821 Unit* visual = triggers.front();
1822 visual->CastSpell(visual, SPELL_FROSTMOURNE_TELEPORT_VISUAL, true);
1823 }
1824
1825 if (Creature* warden = instance->SummonCreature(NPC_SPIRIT_WARDEN, SpiritWardenSpawn, nullptr, 65000))
1826 {
1827 terenas->AI()->AttackStart(warden);
1828 warden->AddThreat(terenas, 300000.0f);
1829 }
1830 }
1831 break;
1834 {
1836 goGas->SetGameObjectFlag(GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE);
1837
1840 {
1842 for (uint8 i = 0; i < 2; ++i)
1844 go->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
1845 }
1846 else
1849 SaveToDB();
1850 }
1851 break;
1854 {
1856 goOoze->SetGameObjectFlag(GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE);
1857
1860 {
1862 for (uint8 i = 0; i < 2; ++i)
1864 go->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
1865 }
1866 else
1869 SaveToDB();
1870 }
1871 break;
1872 }
1873 }
@ GO_DESTRUCTIBLE_DESTROYED
Definition SharedDefines.h:1629
Position const TerenasSpawn
Definition boss_the_lich_king.cpp:322
Position const SpiritWardenSpawn
Definition boss_the_lich_king.cpp:324
MotionTransport * ToMotionTransport()
Definition GameObject.h:326
virtual void DoAction(int32)
Definition InstanceScript.h:274
Definition Transport.h:49
GameObject * ToGameObject()
Definition Object.h:214
void AddObjectToRemoveList()
Definition Object.cpp:2160
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
Definition Object.cpp:2459
@ NPC_SPIRIT_WARDEN
Definition icecrown_citadel.h:350
@ NPC_IGB_HIGH_OVERLORD_SAURFANG
Definition icecrown_citadel.h:220
@ NPC_WORLD_TRIGGER_INFINITE_AOI
Definition icecrown_citadel.h:363
@ ACTION_FROSTMOURNE_INTRO
Definition icecrown_citadel.h:538
@ ACTION_ENEMY_GUNSHIP_TALK
Definition icecrown_citadel.h:513
@ ACTION_EXIT_SHIP
Definition icecrown_citadel.h:514
@ SPELL_FROSTMOURNE_TELEPORT_VISUAL
Definition icecrown_citadel.h:59
@ EVENT_QUAKE_SHATTER
Definition instance_icecrown_citadel.cpp:52
@ EVENT_REBUILD_PLATFORM
Definition instance_icecrown_citadel.cpp:53
@ EVENT_PLAYERS_GUNSHIP_SPAWN
Definition instance_icecrown_citadel.cpp:36
@ EVENT_SECOND_REMORSELESS_WINTER
Definition instance_icecrown_citadel.cpp:43
@ EVENT_ENEMY_GUNSHIP_DESPAWN
Definition instance_icecrown_citadel.cpp:40
@ EVENT_TELEPORT_TO_FROSMOURNE
Definition instance_icecrown_citadel.cpp:44
@ EVENT_PLAYERS_GUNSHIP_COMBAT
Definition instance_icecrown_citadel.cpp:37
@ EVENT_ROTFACE_VALVE_USED
Definition instance_icecrown_citadel.cpp:46
@ EVENT_FESTERGUT_VALVE_USED
Definition instance_icecrown_citadel.cpp:45
@ EVENT_QUAKE
Definition instance_icecrown_citadel.cpp:42
@ EVENT_ENEMY_GUNSHIP_COMBAT
Definition instance_icecrown_citadel.cpp:39
@ EVENT_PLAYERS_GUNSHIP_SAURFANG
Definition instance_icecrown_citadel.cpp:38
void RemoveBackPack()
Definition instance_icecrown_citadel.cpp:1046

References ACTION_ENEMY_GUNSHIP_TALK, ACTION_EXIT_SHIP, ACTION_FROSTMOURNE_INTRO, WorldObject::AddObjectToRemoveList(), ArthasPlatformGUID, 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(), FrozenThroneWarningGUID, GasReleaseValveGUID, InstanceScript::GetBossState(), GetCreatureListWithEntryInGrid(), Map::GetGameObject(), InstanceScript::GetTeamIdInInstance(), GO_DESTRUCTIBLE_DESTROYED, GO_FLAG_INTERACT_COND, GO_FLAG_NOT_SELECTABLE, GO_STATE_ACTIVE, GO_STATE_ACTIVE_ALTERNATIVE, InstanceScript::HandleGameObject(), InstanceScript::instance, NPC_IGB_HIGH_OVERLORD_SAURFANG, NPC_IGB_MURADIN_BRONZEBEARD, NPC_SPIRIT_WARDEN, NPC_TERENAS_MENETHIL_FROSTMOURNE, NPC_WORLD_TRIGGER_INFINITE_AOI, OozeReleaseValveGUID, PUTRICIDE_EVENT_FLAG_FESTERGUT_VALVE, PUTRICIDE_EVENT_FLAG_ROTFACE_VALVE, PutricideCollisionGUID, PutricideEventProgress, PutricideGateGUIDs, PutricidePipeGUIDs, RemoveBackPack(), InstanceScript::SaveToDB(), SPELL_FROSTMOURNE_TELEPORT_VISUAL, SpiritWardenSpawn, Map::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.

1600 {
1601 data >> HeroicAttempts;
1602
1603 uint32 temp = 0;
1604 data >> temp;
1605
1606 if (temp == IN_PROGRESS)
1607 {
1609 }
1610 else
1611 {
1613 }
1614
1615 data >> BloodQuickeningState;
1616 data >> BloodQuickeningMinutes;
1617
1619 {
1620 Events.ScheduleEvent(EVENT_UPDATE_EXECUTION_TIME, 1min);
1623 }
1624
1625 data >> WeeklyQuestId10;
1626 data >> PutricideEventProgress;
1627 PutricideEventProgress &= ~PUTRICIDE_EVENT_FLAG_TRAP_INPROGRESS;
1629 data >> BloodPrinceTrashCount;
1630 data >> IsBuffAvailable;
1631 data >> IsSindragosaIntroDone;
1633 }
@ EVENT_UPDATE_EXECUTION_TIME
Definition instance_icecrown_citadel.cpp:51
void SetData(uint32 type, uint32 data) override
Definition instance_icecrown_citadel.cpp:1220

References BloodPrinceTrashCount, BloodQuickeningMinutes, BloodQuickeningState, ColdflameJetsState, DATA_BUFF_AVAILABLE, DONE, InstanceScript::DoUpdateWorldState(), EVENT_UPDATE_EXECUTION_TIME, HeroicAttempts, IN_PROGRESS, IsBuffAvailable, IsSindragosaIntroDone, LichKingHeroicAvailable, NOT_STARTED, PutricideEventProgress, SetData(), WeeklyQuestId10, WORLD_STATE_ICECROWN_CITADEL_EXECUTION_TIME, and WORLD_STATE_ICECROWN_CITADEL_SHOW_TIMER.

◆ RemoveBackPack()

void instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::RemoveBackPack ( )
inline
1047 {
1048 for (auto const& itr : instance->GetPlayers())
1049 if (Player* _player = itr.GetSource())
1050 _player->DestroyItemCount(ITEM_GOBLIN_ROCKET_PACK, _player->GetItemCount(ITEM_GOBLIN_ROCKET_PACK), true);
1051 }
@ ITEM_GOBLIN_ROCKET_PACK
Definition icecrown_citadel.h:570
HashMapHolder< Player >::MapType const & GetPlayers()
Definition ObjectAccessor.cpp:75

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

Referenced by ProcessEvent().

◆ SetBossState()

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

Reimplemented from InstanceScript.

1054 {
1055 if (!InstanceScript::SetBossState(type, state))
1056 return false;
1057
1058 switch (type)
1059 {
1061 if (state == DONE)
1062 {
1064 SetData(DATA_WEEKLY_QUEST_ID, 0); // show required hidden npcs
1066 transporter->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
1067 SaveToDB();
1068 }
1069 break;
1071 if (state == DONE)
1072 SpawnGunship();
1073 break;
1075 if (state == DONE)
1076 {
1078 {
1079 loot->SetLootRecipient(instance);
1080 loot->RemoveGameObjectFlag(GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN);
1081 }
1082 }
1083 else if (state == FAIL)
1084 Events.ScheduleEvent(EVENT_RESPAWN_GUNSHIP, 30s);
1085 break;
1087 switch (state)
1088 {
1089 case DONE:
1091 {
1093 loot->SetLootRecipient(deathbringer);
1094 loot->RemoveGameObjectFlag(GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN);
1095 }
1096 [[fallthrough]];
1097 case NOT_STARTED:
1099 {
1100 HandleGameObject(SaurfangTeleportGUID, true, teleporter);
1101 teleporter->RemoveGameObjectFlag(GO_FLAG_IN_USE);
1102 }
1103 break;
1104 default:
1105 break;
1106 }
1107 break;
1108 case DATA_FESTERGUT:
1109 if (state == DONE)
1110 {
1112 go->RemoveGameObjectFlag(GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE);
1114 HandleDropAttempt(false);
1115 }
1116 break;
1117 case DATA_ROTFACE:
1118 if (state == DONE)
1119 {
1121 go->RemoveGameObjectFlag(GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE);
1123 HandleDropAttempt(false);
1124 }
1125 break;
1129 if (state == DONE)
1131 else if (state == FAIL)
1133 if (state == DONE && !instance->IsHeroic() && LichKingHeroicAvailable)
1134 {
1136 SaveToDB();
1137 }
1138 break;
1141 if (state == DONE)
1143 else if (state == FAIL)
1145 if (state == DONE && !instance->IsHeroic() && LichKingHeroicAvailable)
1146 {
1148 SaveToDB();
1149 }
1150 break;
1152 if (state == DONE)
1153 SetData(DATA_WEEKLY_QUEST_ID, GetData(DATA_WEEKLY_QUEST_ID)); // will show weekly quest npc if necessary
1154 break;
1155 case DATA_SINDRAGOSA:
1157 if (state == DONE)
1159 else if (state == FAIL)
1160 {
1161 IsSindragosaIntroDone = true;
1163 }
1164 if (state == DONE && !instance->IsHeroic() && LichKingHeroicAvailable)
1165 {
1167 SaveToDB();
1168 }
1169 break;
1170 case DATA_THE_LICH_KING:
1171 {
1172 // dramatically increase visibility range during fight to seeing frostmourne room
1173 instance->SetVisibilityRange(state == IN_PROGRESS ? 500.0f : 200.0f);
1174
1175 if (state == FAIL)
1176 {
1177 Events.CancelEvent(EVENT_QUAKE_SHATTER);
1178 Events.CancelEvent(EVENT_REBUILD_PLATFORM);
1179
1181 }
1182
1183 if (state == DONE)
1184 {
1186 bolvar->SetRespawnTime(7 * DAY);
1188 pillars->SetRespawnTime(7 * DAY);
1190 pillars->SetRespawnTime(7 * DAY);
1191
1196 }
1197 break;
1198 }
1199 default:
1200 break;
1201 }
1202
1203 return true;
1204 }
static First const & RAND(First const &first, Second const &second, Rest const &... rest)
Definition CreatureAIImpl.h:25
@ FAIL
Definition InstanceScript.h:60
@ GO_FLAG_IN_USE
Definition SharedDefines.h:1603
virtual bool SetBossState(uint32 id, EncounterState state)
Definition InstanceScript.cpp:385
void SetVisibilityRange(float range)
Definition Map.h:196
@ QUEST_RESIDUE_RENDEZVOUS_10
Definition icecrown_citadel.h:547
@ QUEST_SECURING_THE_RAMPARTS_10
Definition icecrown_citadel.h:545
@ QUEST_BLOOD_QUICKENING_10
Definition icecrown_citadel.h:549
@ QUEST_DEPROGRAMMING_10
Definition icecrown_citadel.h:543
@ QUEST_RESPITE_FOR_A_TORMENTED_SOUL_10
Definition icecrown_citadel.h:551
@ EVENT_RESPAWN_GUNSHIP
Definition instance_icecrown_citadel.cpp:54
void HandleDropAttempt(bool drop=true)
Definition instance_icecrown_citadel.cpp:1019
void CheckLichKingAvailability()
Definition instance_icecrown_citadel.cpp:1577

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, FAIL, FrostwingSigilGUID, FrozenBolvarGUID, GasReleaseValveGUID, InstanceScript::GetBossState(), Map::GetCreature(), GetData(), Map::GetGameObject(), GO_FLAG_IN_USE, GO_FLAG_INTERACT_COND, GO_FLAG_LOCKED, GO_FLAG_NODESPAWN, GO_FLAG_NOT_SELECTABLE, GunshipArmoryGUID, HandleDropAttempt(), InstanceScript::HandleGameObject(), IN_PROGRESS, InstanceScript::instance, Map::IsHeroic(), IsSindragosaIntroDone, JainaSpawnPos, LichKingHeroicAvailable, 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.

1221 {
1222 switch (type)
1223 {
1225 IsBuffAvailable = !!data;
1226 if (!IsBuffAvailable)
1227 {
1228 instance->DoForAllPlayers([&](Player* player)
1229 {
1230 player->UpdateAreaDependentAuras(player->GetAreaId());
1231 for (Unit::ControlSet::const_iterator itr = player->m_Controlled.begin(); itr != player->m_Controlled.end(); ++itr)
1232 {
1233 Unit::AuraMap& am = (*itr)->GetOwnedAuras();
1234 for (Unit::AuraMap::iterator itra = am.begin(); itra != am.end();)
1235 switch (itra->second->GetId())
1236 {
1237 // Hellscream's Warsong
1238 case 73816:
1239 case 73818:
1240 case 73819:
1241 case 73820:
1242 case 73821:
1243 case 73822:
1244 // Strength of Wrynn
1245 case 73762:
1246 case 73824:
1247 case 73825:
1248 case 73826:
1249 case 73827:
1250 case 73828:
1251 (*itr)->RemoveOwnedAura(itra);
1252 break;
1253 default:
1254 ++itra;
1255 break;
1256 }
1257 }
1258 });
1259 }
1260 SaveToDB();
1261 break;
1263 for (uint8 i = 0; i < WeeklyNPCs; ++i)
1264 if (WeeklyQuestData[i].questId[0] == WeeklyQuestId10 && (WeeklyQuestData[i].creatureEntry != NPC_VALITHRIA_DREAMWALKER_QUEST || GetBossState(DATA_VALITHRIA_DREAMWALKER) == DONE) /*appears after killing valithria*/)
1265 if (WeeklyQuestNpcGUID[i])
1267 c->SetVisible(true);
1268 break;
1270 if (data == NOT_STARTED)
1271 {
1272 PutricideEventProgress &= ~PUTRICIDE_EVENT_FLAG_TRAP_INPROGRESS;
1275 {
1276 for (uint8 i = 0; i < 2; ++i)
1278 go->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
1279 }
1280 else
1281 {
1284 }
1285 SaveToDB();
1286 }
1287 else if (data == IN_PROGRESS)
1288 {
1293 SaveToDB();
1294 }
1295 else if (data == DONE)
1296 {
1297 PutricideEventProgress &= ~PUTRICIDE_EVENT_FLAG_TRAP_INPROGRESS;
1302 {
1303 for (uint8 i = 0; i < 2; ++i)
1305 go->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
1306 }
1307 else
1308 {
1311 }
1312 SaveToDB();
1313 }
1314 return;
1316 IsBonedEligible = !!data;
1317 break;
1319 IsOozeDanceEligible = !!data;
1320 break;
1322 IsNauseaEligible = !!data;
1323 break;
1325 IsOrbWhispererEligible = !!data;
1326 break;
1328 FrostwyrmGUIDs.insert(data);
1329 break;
1330 case DATA_SPINESTALKER:
1331 SpinestalkerTrash.insert(data);
1332 break;
1333 case DATA_RIMEFANG:
1334 RimefangTrash.insert(data);
1335 break;
1337 ColdflameJetsState = data;
1338 if (ColdflameJetsState == DONE)
1339 SaveToDB();
1340 break;
1342 {
1344 break;
1345 if (BloodQuickeningState == data)
1346 break;
1348 break;
1349
1350 switch (data)
1351 {
1352 case IN_PROGRESS:
1353 Events.ScheduleEvent(EVENT_UPDATE_EXECUTION_TIME, 1min);
1357 break;
1358 case DONE:
1362 break;
1363 default:
1364 break;
1365 }
1366
1367 BloodQuickeningState = data;
1368 SaveToDB();
1369 break;
1370 }
1372 {
1373 if (++BloodPrinceTrashCount >= 4)
1374 {
1377 }
1378 SaveToDB();
1379 break;
1380 }
1381 default:
1382 break;
1383 }
1384 }
void DoForAllPlayers(std::function< void(Player *)> exec)
Definition Map.cpp:3008
void UpdateAreaDependentAuras(uint32 area_id)
Definition PlayerUpdates.cpp:1867
ControlSet m_Controlled
Definition Unit.h:1981
std::multimap< uint32, Aura * > AuraMap
Definition Unit.h:625
@ DATA_ORB_WHISPERER_ACHIEVEMENT
Definition icecrown_citadel.h:109
@ DATA_OOZE_DANCE_ACHIEVEMENT
Definition icecrown_citadel.h:106
@ DATA_NAUSEA_ACHIEVEMENT
Definition icecrown_citadel.h:108
@ DATA_BLOOD_PRINCE_TRASH
Definition icecrown_citadel.h:100
@ DATA_BONED_ACHIEVEMENT
Definition icecrown_citadel.h:105
@ DATA_BPC_TRASH_DIED
Definition icecrown_citadel.h:144
bool SetBossState(uint32 type, EncounterState state) override
Definition instance_icecrown_citadel.cpp:1053

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, WORLD_STATE_ICECROWN_CITADEL_EXECUTION_TIME, and WORLD_STATE_ICECROWN_CITADEL_SHOW_TIMER.

Referenced by ReadSaveDataMore(), and SetBossState().

◆ SetPositionTraps()

void instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SetPositionTraps ( GameObject go)
inline
1876 {
1877 std::vector<Position> trapPositions;
1878
1879 switch (go->GetEntry())
1880 {
1881 case GO_SPIRIT_ALARM_1:
1882 trapPositions = GoSpiritAlarm_1;
1883 break;
1884 case GO_SPIRIT_ALARM_2:
1885 trapPositions = GoSpiritAlarm_2;
1886 break;
1887 case GO_SPIRIT_ALARM_3:
1888 trapPositions = GoSpiritAlarm_3;
1889 break;
1890 case GO_SPIRIT_ALARM_4:
1891 trapPositions = GoSpiritAlarm_4;
1892 break;
1893 default:
1894 return;
1895 }
1896
1898 }
std::vector< Position > GoSpiritAlarm_1
Definition instance_icecrown_citadel.cpp:162
std::vector< Position > GoSpiritAlarm_4
Definition instance_icecrown_citadel.cpp:165
std::vector< Position > GoSpiritAlarm_3
Definition instance_icecrown_citadel.cpp:164
std::vector< Position > GoSpiritAlarm_2
Definition instance_icecrown_citadel.cpp:163
auto SelectRandomContainerElement(C const &container) -> typename std::add_const< decltype(*std::begin(container))>::type &
Definition Containers.h:133
void Relocate(float x, float y)
Definition Position.h:77

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
1207 {
1208 if (!GunshipGUID && instance->HavePlayers())
1209 {
1212 if (MotionTransport* gunship = sTransportMgr->CreateTransport(gunshipEntry, 0, instance))
1213 {
1214 GunshipGUID = gunship->GetGUID();
1215 gunship->setActive(false);
1216 }
1217 }
1218 }
#define sTransportMgr
Definition TransportMgr.h:163
bool HavePlayers() const
Definition Map.h:324

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

Referenced by OnPlayerEnter(), SetBossState(), and Update().

◆ Update()

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

Reimplemented from InstanceScript.

1650 {
1651 // Xinef: A Feast of Souls (24547) whispers
1652 if (LichKingRandomWhisperTimer <= diff)
1653 {
1655 Map::PlayerList const& players = instance->GetPlayers();
1656 if (!players.IsEmpty())
1657 if (Player* player = players.begin()->GetSource())
1658 if (player->GetQuestStatus(QUEST_A_FEAST_OF_SOULS) == QUEST_STATUS_INCOMPLETE)
1659 {
1660 if (Creature* theLichKing = instance->GetCreature(TheLichKingLhGUID))
1661 {
1662 theLichKing->AI()->Talk(SAY_SOULS_LICH_KING_RAND_WHISPER, player);
1663 }
1664 }
1665 }
1666 else
1668
1669 if (DarkwhisperElevatorTimer <= diff)
1670 {
1674 if (StaticTransport* trans = elevator->ToStaticTransport())
1675 {
1676 if (trans->GetGoState() == GO_STATE_READY && trans->GetPathProgress() == 0)
1677 trans->SetGoState(GO_STATE_ACTIVE);
1678 else if (trans->GetGoState() == GO_STATE_ACTIVE && trans->GetPathProgress() == trans->GetPauseTime())
1679 trans->SetGoState(GO_STATE_READY);
1680 }
1681 }
1682 else
1684
1685 if (Events.Empty())
1686 return;
1687
1688 Events.Update(diff);
1689
1690 while (uint32 eventId = Events.ExecuteEvent())
1691 {
1692 switch (eventId)
1693 {
1695 {
1698 {
1699 Events.ScheduleEvent(EVENT_UPDATE_EXECUTION_TIME, 1min);
1702 }
1703 else
1704 {
1708 bq->AI()->DoAction(ACTION_KILL_MINCHAR);
1709 }
1710 SaveToDB();
1711 break;
1712 }
1714 {
1716 platform->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED);
1718 edge->SetGoState(GO_STATE_ACTIVE);
1720 wind->SetGoState(GO_STATE_READY);
1722 warning->SetGoState(GO_STATE_READY);
1723 if (Creature* theLichKing = instance->GetCreature(TheLichKingGUID))
1724 theLichKing->AI()->DoAction(ACTION_RESTORE_LIGHT);
1725 break;
1726 }
1729 platform->SetDestructibleState(GO_DESTRUCTIBLE_REBUILDING, nullptr, true);
1731 edge->SetGoState(GO_STATE_READY);
1733 wind->SetGoState(GO_STATE_ACTIVE);
1734 break;
1736 SpawnGunship();
1737 break;
1740 {
1742 {
1743 sindragosa->setActive(true);
1744 sindragosa->SetDisableGravity(true);
1745 sindragosa->GetMotionMaster()->MovePath(NPC_SINDRAGOSA * 10, true);
1746
1747 if (TempSummon* summon = sindragosa->ToTempSummon())
1748 {
1749 summon->SetTempSummonType(TEMPSUMMON_DEAD_DESPAWN);
1750 }
1751 }
1752 }
1753 // Could happen more than once if more than one player enters before she respawns.
1754 Events.CancelEvent(EVENT_RESPAWN_SINDRAGOSA);
1755 break;
1756 default:
1757 break;
1758 }
1759 }
1760 }
@ GO_STATE_READY
Definition GameObjectData.h:690
@ TEMPSUMMON_DEAD_DESPAWN
Definition Object.h:53
@ QUEST_STATUS_INCOMPLETE
Definition QuestDef.h:103
@ GO_DESTRUCTIBLE_REBUILDING
Definition SharedDefines.h:1630
@ GO_DESTRUCTIBLE_DAMAGED
Definition SharedDefines.h:1628
StaticTransport * ToStaticTransport()
Definition GameObject.h:323
bool IsEmpty() const
Definition LinkedList.h:97
Definition MapRefMgr.h:26
iterator begin()
Definition MapRefMgr.h:36
PlayerList const & GetPlayers() const
Definition Map.h:333
FROM * GetSource() const
Definition Reference.h:97
Definition Transport.h:113
Definition TemporarySummon.h:40
TempSummon * ToTempSummon()
Definition Unit.h:686
@ QUEST_A_FEAST_OF_SOULS
Definition icecrown_citadel.h:557
@ ACTION_RESTORE_LIGHT
Definition icecrown_citadel.h:537
@ ACTION_KILL_MINCHAR
Definition icecrown_citadel.h:528
@ SAY_SOULS_LICH_KING_RAND_WHISPER
Definition instance_icecrown_citadel.cpp:71

References ACTION_KILL_MINCHAR, ACTION_RESTORE_LIGHT, ArthasPlatformGUID, MapRefMgr::begin(), BloodQueenLanaThelGUID, BloodQuickeningMinutes, BloodQuickeningState, DarkwhisperElevatorTimer, DATA_LADY_DEATHWHISPER, DATA_SINDRAGOSA, DONE, InstanceScript::DoUpdateWorldState(), EVENT_QUAKE_SHATTER, EVENT_REBUILD_PLATFORM, EVENT_RESPAWN_GUNSHIP, EVENT_RESPAWN_SINDRAGOSA, EVENT_UPDATE_EXECUTION_TIME, FrozenThroneEdgeGUID, FrozenThroneWarningGUID, FrozenThroneWindGUID, InstanceScript::GetBossState(), Map::GetCreature(), InstanceScript::GetCreature(), Map::GetGameObject(), Map::GetPlayers(), Reference< TO, FROM >::GetSource(), GO_DESTRUCTIBLE_DAMAGED, GO_DESTRUCTIBLE_REBUILDING, GO_STATE_ACTIVE, GO_STATE_READY, IN_MILLISECONDS, InstanceScript::instance, LinkedListHead::IsEmpty(), LadyDeathwisperElevatorGUID, LichKingRandomWhisperTimer, NPC_SINDRAGOSA, QUEST_A_FEAST_OF_SOULS, QUEST_STATUS_INCOMPLETE, InstanceScript::SaveToDB(), SAY_SOULS_LICH_KING_RAND_WHISPER, SindragosaSpawnPos, SpawnGunship(), Map::SummonCreature(), TEMPSUMMON_DEAD_DESPAWN, TheLichKingGUID, TheLichKingLhGUID, GameObject::ToStaticTransport(), Unit::ToTempSummon(), urand(), WORLD_STATE_ICECROWN_CITADEL_EXECUTION_TIME, and WORLD_STATE_ICECROWN_CITADEL_SHOW_TIMER.

◆ WriteSaveDataMore()

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

Member Data Documentation

◆ ArthasPlatformGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::ArthasPlatformGUID
protected

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

◆ FrozenThroneWarningGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::FrozenThroneWarningGUID
protected

◆ FrozenThroneWindGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::FrozenThroneWindGUID
protected

Referenced by OnGameObjectCreate(), and Update().

◆ GasReleaseValveGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::GasReleaseValveGUID
protected

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

◆ 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

◆ 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

◆ 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

◆ PutricidePipeGUIDs

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

Referenced by OnGameObjectCreate(), and ProcessEvent().

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

◆ TerenasMenethilGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::TerenasMenethilGUID
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ TheLichKingGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::TheLichKingGUID
protected

◆ TheLichKingLhGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::TheLichKingLhGUID
protected

Referenced by OnCreatureCreate(), and Update().

◆ TheLichKingTeleportGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::TheLichKingTeleportGUID
protected

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


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