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
206 : InstanceScript(map)
207 {
208 // pussywizard:
209 IsBuffAvailable = true;
210 WeeklyQuestId10 = 0;
215
223 IsBonedEligible = true;
224 IsOozeDanceEligible = true;
225 IsNauseaEligible = true;
231 IsSindragosaIntroDone = false;
232 }
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:125
DoorData const doorData[]
Definition instance_icecrown_citadel.cpp:93
BossBoundaryData const boundaries
Definition instance_icecrown_citadel.cpp:73
uint32 DarkwhisperElevatorTimer
Definition instance_icecrown_citadel.cpp:1910
uint32 PutricideEventProgress
Definition instance_icecrown_citadel.cpp:1905
bool IsBuffAvailable
Definition instance_icecrown_citadel.cpp:1901
bool IsNauseaEligible
Definition instance_icecrown_citadel.cpp:1971
uint32 BloodPrinceTrashCount
Definition instance_icecrown_citadel.cpp:1968
uint16 BloodQuickeningMinutes
Definition instance_icecrown_citadel.cpp:1967
bool LichKingHeroicAvailable
Definition instance_icecrown_citadel.cpp:1908
uint32 WeeklyQuestId10
Definition instance_icecrown_citadel.cpp:1902
bool IsOrbWhispererEligible
Definition instance_icecrown_citadel.cpp:1972
bool IsOozeDanceEligible
Definition instance_icecrown_citadel.cpp:1970
uint32 BloodQuickeningState
Definition instance_icecrown_citadel.cpp:1965
uint32 ColdflameJetsState
Definition instance_icecrown_citadel.cpp:1961
uint32 HeroicAttempts
Definition instance_icecrown_citadel.cpp:1966
bool IsBonedEligible
Definition instance_icecrown_citadel.cpp:1969
uint32 LichKingRandomWhisperTimer
Definition instance_icecrown_citadel.cpp:1909
bool IsSindragosaIntroDone
Definition instance_icecrown_citadel.cpp:1973

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.

1386 {
1387 switch (criteria_id)
1388 {
1389 case CRITERIA_BONED_10N:
1390 case CRITERIA_BONED_25N:
1391 case CRITERIA_BONED_10H:
1392 case CRITERIA_BONED_25H:
1393 return IsBonedEligible;
1398 return IsOozeDanceEligible;
1403 return IsNauseaEligible;
1409 // Only one criteria for both modes, need to do it like this
1411 return instance->ToInstanceMap()->GetMaxPlayers() == 10;
1413 return instance->ToInstanceMap()->GetMaxPlayers() == 25;
1414 default:
1415 break;
1416 }
1417
1418 return false;
1419 }
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
1486 {
1487 switch (bossId)
1488 {
1489 case DATA_THE_LICH_KING:
1491 {
1492 return false;
1493 }
1494 [[fallthrough]];
1497 return false;
1498 break;
1499 default:
1500 break;
1501 }
1502
1503 return true;
1504 }
@ 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
1507 {
1508 switch (bossId)
1509 {
1510 case DATA_THE_LICH_KING:
1512 {
1513 return false;
1514 }
1515 [[fallthrough]];
1516 case DATA_SINDRAGOSA:
1518 {
1519 return false;
1520 }
1522 {
1523 return false;
1524 }
1525 break;
1526 default:
1527 break;
1528 }
1529
1530 return true;
1531 }
@ 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
1577 {
1579 {
1581 {
1582 teleporter->SetGoState(GO_STATE_ACTIVE);
1583
1584 std::list<Creature*> stalkers;
1585 GetCreatureListWithEntryInGrid(stalkers, teleporter, NPC_INVISIBLE_STALKER, 100.0f);
1586 if (stalkers.empty())
1587 return;
1588
1589 stalkers.sort(Acore::ObjectDistanceOrderPred(teleporter));
1590 stalkers.front()->CastSpell((Unit*)nullptr, SPELL_ARTHAS_TELEPORTER_CEREMONY, false);
1591 stalkers.pop_front();
1592 for (std::list<Creature*>::iterator itr = stalkers.begin(); itr != stalkers.end(); ++itr)
1593 (*itr)->AI()->Reset();
1594 }
1595 }
1596 }
@ 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:700
Definition GameObject.h:120
GameObject * GetGameObject(ObjectGuid const guid)
Definition Map.cpp:2503
Definition Unit.h:636
@ 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:1948

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
1534 {
1535 switch (bossId)
1536 {
1537 case DATA_THE_LICH_KING:
1538 case DATA_SINDRAGOSA:
1543 case DATA_ROTFACE:
1544 case DATA_FESTERGUT:
1546 {
1547 return false;
1548 }
1549 [[fallthrough]];
1552 {
1553 return false;
1554 }
1555 [[fallthrough]];
1558 {
1559 return false;
1560 }
1561 [[fallthrough]];
1564 {
1565 return false;
1566 }
1567 [[fallthrough]];
1569 default:
1570 break;
1571 }
1572
1573 return true;
1574 }
@ 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
1465 {
1466 switch (bossId)
1467 {
1468 case DATA_THE_LICH_KING:
1470 {
1471 return false;
1472 }
1473 [[fallthrough]];
1476 return false;
1477 break;
1478 default:
1479 break;
1480 }
1481
1482 return true;
1483 }

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.

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

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.

235 {
236 packet.Worldstates.reserve(5);
239 packet.Worldstates.emplace_back(WORLD_STATE_ICECROWN_CITADEL_SHOW_ATTEMPTS, 1); // instance->IsHeroic() ? 1 : 0
242 }
@ 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.

540 {
541 uint32 entry = data->id1;
542 switch (entry)
543 {
548 return 0;
549 break;
554 return 0;
555 break;
557 if (GameObjectTemplate const* go = sObjectMgr->GetGameObjectTemplate(GO_THE_SKYBREAKER_A))
558 if ((GetTeamIdInInstance() == TEAM_ALLIANCE && data->mapid == go->moTransport.mapID) ||
559 (GetTeamIdInInstance() == TEAM_HORDE && data->mapid != go->moTransport.mapID))
560 return entry;
561 return 0;
563 if ((GetTeamIdInInstance() == TEAM_ALLIANCE && data->posX > 10.0f) ||
564 (GetTeamIdInInstance() == TEAM_HORDE && data->posX < 10.0f))
565 return entry;
566 return 0;
568 if ((GetTeamIdInInstance() == TEAM_ALLIANCE && data->posY < 2200.0f) || (GetTeamIdInInstance() == TEAM_HORDE && data->posY > 2200.0f))
569 return 0;
570 break;
571 }
572
573 return entry;
574 }
@ 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:1636
@ 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.

900 {
901 switch (type)
902 {
904 return (IsBuffAvailable ? 1 : 0);
906 return WeeklyQuestId10;
909 return TO_BE_DECIDED;
911 return IN_PROGRESS;
913 return DONE;
914 return NOT_STARTED;
916 return (instance->IsHeroic() ? 1 : 0);
918 return (LichKingHeroicAvailable ? 1 : 0);
920 return FrostwyrmGUIDs.size();
922 return SpinestalkerTrash.size();
923 case DATA_RIMEFANG:
924 return RimefangTrash.size();
926 return ColdflameJetsState;
928 return GetTeamIdInInstance();
932 return HeroicAttempts;
934 return (IsSindragosaIntroDone ? 1 : 0);
935 default:
936 break;
937 }
938
939 return 0;
940 }
@ 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:1963
std::set< ObjectGuid::LowType > RimefangTrash
Definition instance_icecrown_citadel.cpp:1964
std::set< ObjectGuid::LowType > FrostwyrmGUIDs
Definition instance_icecrown_citadel.cpp:1962
@ 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.

577 {
578 switch (entry)
579 {
585 return 0;
586 break;
592 return 0;
593 break;
594 }
595
596 return entry;
597 }
@ 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.

943 {
944 switch (type)
945 {
949 return GunshipGUID;
951 return EnemyGunshipGUID;
960 case DATA_FESTERGUT:
961 return FestergutGUID;
962 case DATA_ROTFACE:
963 return RotfaceGUID;
967 return PutricideTableGUID;
969 return BloodCouncilGUIDs[0];
971 return BloodCouncilGUIDs[1];
973 return BloodCouncilGUIDs[2];
979 return CrokScourgebaneGUID;
986 return SisterSvalnaGUID;
996 return PutricadeTrapGUID;
997 case DATA_SINDRAGOSA:
998 return SindragosaGUID;
1000 return SpinestalkerGUID;
1001 case DATA_RIMEFANG:
1002 return RimefangGUID;
1003 case DATA_THE_LICH_KING:
1004 return TheLichKingGUID;
1008 return ArthasPlatformGUID;
1010 return TerenasMenethilGUID;
1011 default:
1012 break;
1013 }
1014
1015 return ObjectGuid::Empty;
1016 }
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:1944
ObjectGuid RimefangGUID
Definition instance_icecrown_citadel.cpp:1947
ObjectGuid SpinestalkerGUID
Definition instance_icecrown_citadel.cpp:1946
ObjectGuid BloodCouncilGUIDs[3]
Definition instance_icecrown_citadel.cpp:1934
ObjectGuid TheLichKingGUID
Definition instance_icecrown_citadel.cpp:1949
ObjectGuid TerenasMenethilGUID
Definition instance_icecrown_citadel.cpp:1952
ObjectGuid DeathbringerSaurfangEventGUID
Definition instance_icecrown_citadel.cpp:1921
ObjectGuid ValithriaDreamwalkerGUID
Definition instance_icecrown_citadel.cpp:1940
ObjectGuid BloodCouncilControllerGUID
Definition instance_icecrown_citadel.cpp:1935
ObjectGuid FestergutGUID
Definition instance_icecrown_citadel.cpp:1930
ObjectGuid ValithriaLichKingGUID
Definition instance_icecrown_citadel.cpp:1941
ObjectGuid HighlordTirionFordringGUID
Definition instance_icecrown_citadel.cpp:1951
ObjectGuid BloodQueenLanaThelGUID
Definition instance_icecrown_citadel.cpp:1936
ObjectGuid ArthasPlatformGUID
Definition instance_icecrown_citadel.cpp:1953
ObjectGuid ProfessorPutricideGUID
Definition instance_icecrown_citadel.cpp:1932
ObjectGuid CrokCaptainGUIDs[4]
Definition instance_icecrown_citadel.cpp:1938
ObjectGuid DeathbringerSaurfangGUID
Definition instance_icecrown_citadel.cpp:1919
ObjectGuid LadyDeathwhisperGUID
Definition instance_icecrown_citadel.cpp:1914
ObjectGuid PutricadeTrapGUID
Definition instance_icecrown_citadel.cpp:1943
ObjectGuid GunshipGUID
Definition instance_icecrown_citadel.cpp:1916
ObjectGuid PutricideTableGUID
Definition instance_icecrown_citadel.cpp:1933
ObjectGuid EnemyGunshipGUID
Definition instance_icecrown_citadel.cpp:1917
ObjectGuid ValithriaTriggerGUID
Definition instance_icecrown_citadel.cpp:1942
ObjectGuid SindragosaGUID
Definition instance_icecrown_citadel.cpp:1945
ObjectGuid RotfaceGUID
Definition instance_icecrown_citadel.cpp:1931
ObjectGuid SisterSvalnaGUID
Definition instance_icecrown_citadel.cpp:1939
ObjectGuid SaurfangTeleportGUID
Definition instance_icecrown_citadel.cpp:1923
ObjectGuid DeathbringerSaurfangDoorGUID
Definition instance_icecrown_citadel.cpp:1920
ObjectGuid CrokScourgebaneGUID
Definition instance_icecrown_citadel.cpp:1937

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
1019 {
1021 return;
1022 if (drop && HeroicAttempts)
1023 {
1026 SaveToDB();
1027 }
1028 if (HeroicAttempts)
1029 return;
1032 if (professor->IsAlive())
1033 professor->SetVisible(false);
1035 if (bq->IsAlive())
1036 bq->SetVisible(false);
1038 if (sindra->IsAlive())
1039 sindra->SetVisible(false);
1040 if (Creature* theLichKing = instance->GetCreature(TheLichKingGUID))
1041 if (theLichKing->IsAlive())
1042 theLichKing->SetVisible(false);
1043 }
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:899

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.

293 {
294 // apply ICC buff to pets/summons
296 if (Unit* owner = creature->GetOwner())
297 if (Player* plr = owner->ToPlayer())
298 {
299 SpellAreaForAreaMapBounds saBounds = sSpellMgr->GetSpellAreaForAreaMapBounds(4812);
300 for (SpellAreaForAreaMap::const_iterator itr = saBounds.first; itr != saBounds.second; ++itr)
301 if ((itr->second->raceMask & plr->getRaceMask()) && !creature->HasAura(itr->second->spellId))
302 if (SpellInfo const* si = sSpellMgr->GetSpellInfo(itr->second->spellId))
304 creature->AddAura(itr->second->spellId, creature);
305 }
306
307 // fighting npcs in Rampart of Skulls
308 std::string name1("Skybreaker ");
309 std::string name2("Kor'kron ");
310 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))
312
313 // pussywizard: check weekly here, before possible UpdateEntry
314 // allow creating all of them, because after killing Marrowgar some have to appear, so just hide them
315 switch (creature->GetEntry())
316 {
324 for (uint8 i = 0; i < WeeklyNPCs; ++i)
325 if (WeeklyQuestData[i].creatureEntry == creature->GetEntry())
326 {
327 WeeklyQuestNpcGUID[i] = creature->GetGUID();
328 if (WeeklyQuestId10 != WeeklyQuestData[i].questId[0])
329 creature->SetVisible(false);
331 creature->SetVisible(false);
332 }
333 break;
334 }
335
336 switch (creature->GetEntry())
337 {
341 break;
345 break;
346 case NPC_TORTUNOK:
349 break;
353 break;
357 break;
360 creature->UpdateEntry(NPC_YILI);
361 break;
362 case NPC_VOL_GUK:
364 creature->UpdateEntry(NPC_JEDEBIA);
365 break;
369 break;
373
374 // Xinef: summon in case of instance unload
376 {
381 }
382 break;
384 LadyDeathwhisperGUID = creature->GetGUID();
385 break;
387 DeathbringerSaurfangGUID = creature->GetGUID();
388 break;
391 {
393 creature->LoadEquipment();
394 }
396 creature->LastUsedScriptID = creature->GetScriptId();
397 break;
400 break;
403 {
405 creature->LoadEquipment();
406 }
407 break;
411 break;
412 case NPC_FESTERGUT:
413 FestergutGUID = creature->GetGUID();
414 break;
415 case NPC_ROTFACE:
416 RotfaceGUID = creature->GetGUID();
417 break;
419 ProfessorPutricideGUID = creature->GetGUID();
421 creature->SetVisible(false);
422 break;
424 BloodCouncilGUIDs[0] = creature->GetGUID();
425 break;
427 BloodCouncilGUIDs[1] = creature->GetGUID();
428 break;
430 BloodCouncilGUIDs[2] = creature->GetGUID();
431 break;
434 break;
436 BloodQueenLanaThelGUID = creature->GetGUID();
438 creature->SetVisible(false);
439 break;
441 CrokScourgebaneGUID = creature->GetGUID();
442 break;
443 // we can only do this because there are no gaps in their entries
448 CrokCaptainGUIDs[creature->GetEntry() - NPC_CAPTAIN_ARNATH] = creature->GetGUID();
449 break;
451 SisterSvalnaGUID = creature->GetGUID();
452 break;
454 ValithriaDreamwalkerGUID = creature->GetGUID();
455 break;
457 ValithriaLichKingGUID = creature->GetGUID();
458 break;
460 TheLichKingLhGUID = creature->GetGUID();
461 break;
463 ValithriaTriggerGUID = creature->GetGUID();
464 break;
466 PutricadeTrapGUID = creature->GetGUID();
467 break;
469 SindragosaGauntletGUID = creature->GetGUID();
470 break;
471 case NPC_SINDRAGOSA:
472 SindragosaGUID = creature->GetGUID();
474 creature->SetVisible(false);
475 break;
476 case NPC_SPINESTALKER:
477 SpinestalkerGUID = creature->GetGUID();
478 break;
479 case NPC_RIMEFANG:
480 RimefangGUID = creature->GetGUID();
481 break;
483 // Teleporter visual at center
485 creature->CastSpell(creature, SPELL_ARTHAS_TELEPORTER_CEREMONY, false);
486 break;
488 TheLichKingGUID = creature->GetGUID();
490 creature->SetVisible(false);
491 break;
494 break;
497 TerenasMenethilGUID = creature->GetGUID();
498 break;
501 creature->DespawnOrUnsummon(1);
502 break;
505 {
506 uint32 spellId = 0;
507 if (creature->GetPositionY() > 2790.0f && creature->GetPositionZ() > 420.0f)
508 spellId = BLOOD_BEAM_VISUAL_RHAND;
509 else if (creature->GetPositionY() < 2790.0f && creature->GetPositionZ() > 420.0f)
510 spellId = BLOOD_BEAM_VISUAL_LHAND;
511 else if (creature->GetPositionY() < 2790.0f && creature->GetPositionZ() < 420.0f)
512 spellId = BLOOD_BEAM_VISUAL_LLEG;
513 else
514 spellId = BLOOD_BEAM_VISUAL_RLEG;
515 creature->m_Events.AddEvent(new DelayedCastMincharEvent(creature, spellId), creature->m_Events.CalculateTime(1000));
516 }
517 break;
520 if (!creature->IsAlive())
521 creature->Respawn();
522 break;
523 default:
524 break;
525 }
526
528
529 }
std::uint8_t uint8
Definition Define.h:109
@ NOTIFY_AI_RELOCATION
Definition Object.h:67
@ 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_CONTROLABLE_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:2044
void LoadEquipment(int8 id=1, bool force=false)
Definition Creature.cpp:1804
uint32 GetScriptId() const
Definition Creature.cpp:3060
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:2183
Definition instance_icecrown_citadel.cpp:183
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:201
uint32 GetEntry() const
Definition Object.h:115
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:112
Definition Player.h:1081
Definition SpellInfo.h:316
void SetVisible(bool x)
Definition Unit.cpp:14284
Unit * GetOwner() const
Definition Unit.cpp:10645
Aura * AddAura(uint32 spellId, Unit *target)
Definition Unit.cpp:18915
bool IsAlive() const
Definition Unit.h:1707
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
Definition Unit.cpp:5753
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:1178
ObjectGuid GetOwnerGUID() const
Definition Unit.h:684
uint32 HasUnitTypeMask(uint32 mask) const
Definition Unit.h:712
bool CanHaveThreatList(bool skipAliveCheck=false) const
Definition Unit.cpp:14666
uint32 LastUsedScriptID
Definition Object.h:594
std::string const & GetName() const
Definition Object.h:463
Transport * GetTransport() const
Definition Object.h:597
void AddToNotify(uint16 f)
Definition Object.cpp:2989
EventProcessor m_Events
Definition Object.h:639
@ 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:156
@ BLOOD_BEAM_VISUAL_LHAND
Definition instance_icecrown_citadel.cpp:62
@ BLOOD_BEAM_VISUAL_RHAND
Definition instance_icecrown_citadel.cpp:61
@ BLOOD_BEAM_VISUAL_LLEG
Definition instance_icecrown_citadel.cpp:63
@ BLOOD_BEAM_VISUAL_RLEG
Definition instance_icecrown_citadel.cpp:64
Position const SylvanasSpawnPos
Definition instance_icecrown_citadel.cpp:157
WeeklyQuest const WeeklyQuestData[WeeklyNPCs]
Definition instance_icecrown_citadel.cpp:141
Position const MuradinSpawnPos
Definition instance_icecrown_citadel.cpp:155
Position const JainaSpawnPos
Definition instance_icecrown_citadel.cpp:154
@ 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:1903
ObjectGuid TheLichKingLhGUID
Definition instance_icecrown_citadel.cpp:1950

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_CONTROLABLE_GUARDIAN, UNIT_MASK_GUARDIAN, UNIT_MASK_MINION, Creature::UpdateEntry(), UtherSpawnPos, ValithriaDreamwalkerGUID, ValithriaLichKingGUID, ValithriaTriggerGUID, WeeklyNPCs, WeeklyQuestData, WeeklyQuestId10, and WeeklyQuestNpcGUID.

◆ OnCreatureRemove()

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

Reimplemented from ZoneScript.

532 {
533 if (creature->GetEntry() == NPC_SINDRAGOSA)
535
537 }
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.

672 {
673 switch (go->GetEntry())
674 {
680 break;
681 case GO_GEIST_ALARM_1:
682 case GO_GEIST_ALARM_2:
683 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());
684 break;
686 case GO_ICEWALL:
702 case GO_ICE_WALL:
704 AddDoor(go);
705 break;
709 break;
710 // these 2 gates are functional only on 25man modes
713 if (instance->Is25ManRaid())
714 AddDoor(go);
715 break;
718 break;
722 break;
732 break;
735 AddDoor(go);
736 break;
742 break;
745 break;
746 case GO_PLAGUE_SIGIL:
747 PlagueSigilGUID = go->GetGUID();
750 break;
755 break;
760 break;
764 break;
766 PutricideGateGUIDs[0] = go->GetGUID();
769 else
771 break;
773 PutricideGateGUIDs[1] = go->GetGUID();
776 else
778 break;
780 PutricidePipeGUIDs[0] = go->GetGUID();
783 break;
785 PutricidePipeGUIDs[1] = go->GetGUID();
788 break;
793 break;
798 break;
799 case GO_DRINK_ME:
801 break;
807 go->SetLootRecipient(valithria);
809 break;
814 break;
816 // this enables movement at The Frozen Throne, when printed this value is 0.000000f
817 // however, when represented as integer client will accept only this value
820 break;
824 break;
827 break;
830 break;
833 break;
837 go->SetRespawnTime(7 * DAY);
838 break;
842 go->SetRespawnTime(7 * DAY);
843 break;
847 go->SetRespawnTime(7 * DAY);
848 break;
850 AddDoor(go);
854 break;
855 default:
856 break;
857 }
858 }
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:1915
ObjectGuid FrozenThroneWarningGUID
Definition instance_icecrown_citadel.cpp:1957
ObjectGuid ScourgeTransporterFirstGUID
Definition instance_icecrown_citadel.cpp:1911
ObjectGuid DeathbringersCacheGUID
Definition instance_icecrown_citadel.cpp:1922
ObjectGuid PutricideEnteranceDoorGUID
Definition instance_icecrown_citadel.cpp:1904
ObjectGuid FrostwingSigilGUID
Definition instance_icecrown_citadel.cpp:1926
ObjectGuid ArthasPrecipiceGUID
Definition instance_icecrown_citadel.cpp:1954
ObjectGuid PutricideCollisionGUID
Definition instance_icecrown_citadel.cpp:1929
ObjectGuid GunshipArmoryGUID
Definition instance_icecrown_citadel.cpp:1918
ObjectGuid FrozenThroneWindGUID
Definition instance_icecrown_citadel.cpp:1956
ObjectGuid OozeReleaseValveGUID
Definition instance_icecrown_citadel.cpp:1907
ObjectGuid GasReleaseValveGUID
Definition instance_icecrown_citadel.cpp:1906
ObjectGuid PutricidePipeGUIDs[2]
Definition instance_icecrown_citadel.cpp:1927
ObjectGuid FrozenThroneEdgeGUID
Definition instance_icecrown_citadel.cpp:1955
ObjectGuid PillarsChainedGUID
Definition instance_icecrown_citadel.cpp:1959
ObjectGuid FrozenBolvarGUID
Definition instance_icecrown_citadel.cpp:1958
ObjectGuid PutricideGateGUIDs[2]
Definition instance_icecrown_citadel.cpp:1928
ObjectGuid BloodwingSigilGUID
Definition instance_icecrown_citadel.cpp:1925
ObjectGuid PlagueSigilGUID
Definition instance_icecrown_citadel.cpp:1924
ObjectGuid PillarsUnchainedGUID
Definition instance_icecrown_citadel.cpp:1960
void SetPositionTraps(GameObject *go)
Definition instance_icecrown_citadel.cpp:1874

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.

861 {
862 switch (go->GetEntry())
863 {
865 case GO_ICEWALL:
883 //case GO_SINDRAGOSA_ENTRANCE_DOOR:
886 case GO_ICE_WALL:
888 RemoveDoor(go);
889 break;
893 break;
894 default:
895 break;
896 }
897 }
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.

245 {
246 if (newArea == 4890 /*Putricide's Laboratory of Alchemical Horrors and Fun*/ ||
247 newArea == 4891 /*The Sanctum of Blood*/ ||
248 newArea == 4889 /*The Frost Queen's Lair*/ ||
249 newArea == 4859 /*The Frozen Throne*/ ||
250 newArea == 4910 /*Frostmourne*/)
251 {
252 player->SendInitWorldStates(player->GetZoneId(), player->GetAreaId());
253 }
254 else
255 {
257 }
258 }
void SendUpdateWorldState(uint32 variable, uint32 value) const
Definition PlayerUpdates.cpp:2243
void SendInitWorldStates(uint32 zoneId, uint32 areaId)
Definition Player.cpp:8231
uint32 GetAreaId() const
Definition Object.cpp:3156
uint32 GetZoneId() const
Definition Object.cpp:3148

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

261 {
263 // for professor putricide hc
266
268 SpawnGunship();
269
270 if (GetBossState(DATA_SINDRAGOSA) != DONE && IsSindragosaIntroDone && !GetCreature(DATA_SINDRAGOSA) && Events.GetTimeUntilEvent(EVENT_RESPAWN_SINDRAGOSA) == Milliseconds::max())
271 {
272 Events.ScheduleEvent(EVENT_RESPAWN_SINDRAGOSA, 30s);
273 }
274
275 if (IsBuffAvailable)
276 {
277 SpellAreaForAreaMapBounds saBounds = sSpellMgr->GetSpellAreaForAreaMapBounds(4812);
278 for (SpellAreaForAreaMap::const_iterator itr = saBounds.first; itr != saBounds.second; ++itr)
279 if ((itr->second->raceMask & player->getRaceMask()) && !player->HasAura(itr->second->spellId))
280 {
281 if (SpellInfo const* si = sSpellMgr->GetSpellInfo(itr->second->spellId))
282 {
284 {
285 DoCastSpellOnPlayer(player, itr->second->spellId, false, false);
286 }
287 }
288 }
289 }
290 }
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:804
@ SPELL_OOZE_VARIABLE
Definition instance_icecrown_citadel.cpp:60
@ SPELL_GAS_VARIABLE
Definition instance_icecrown_citadel.cpp:59
@ EVENT_RESPAWN_SINDRAGOSA
Definition instance_icecrown_citadel.cpp:54
void SpawnGunship()
Definition instance_icecrown_citadel.cpp:1205

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.

600 {
601 Creature* creature = unit->ToCreature();
602 if (!creature)
603 return;
604
605 // fighting npcs in Rampart of Skulls
606 std::string name1("Skybreaker ");
607 std::string name2("Kor'kron ");
608 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))
609 if (!creature->GetLootRecipient())
610 creature->m_Events.AddEvent(new RespawnEvent(*creature), creature->m_Events.CalculateTime(3000));
611
612 switch (creature->GetEntry())
613 {
620 crok->AI()->SetGUID(creature->GetGUID(), ACTION_VRYKUL_DEATH);
621 break;
623 if (FrostwyrmGUIDs.empty())
624 return;
625
626 if (creature->AI()->GetData(1/*DATA_FROSTWYRM_OWNER*/) == DATA_SPINESTALKER)
627 {
628 SpinestalkerTrash.erase(creature->GetSpawnId());
629 if (SpinestalkerTrash.empty())
630 if (Creature* spinestalk = instance->GetCreature(SpinestalkerGUID))
631 spinestalk->AI()->DoAction(ACTION_START_FROSTWYRM);
632 }
633 else
634 {
635 RimefangTrash.erase(creature->GetSpawnId());
636 if (RimefangTrash.empty())
637 if (Creature* spinestalk = instance->GetCreature(RimefangGUID))
638 spinestalk->AI()->DoAction(ACTION_START_FROSTWYRM);
639 }
640 break;
641 case NPC_RIMEFANG:
642 case NPC_SPINESTALKER:
643 {
645 return;
646
648 return;
649
650 FrostwyrmGUIDs.erase(creature->GetSpawnId());
651 if (FrostwyrmGUIDs.empty())
652 {
654 boss->AI()->DoAction(ACTION_START_FROSTWYRM);
655 }
656 break;
657 }
659 if (Creature* c = unit->SummonCreature(WORLD_TRIGGER, *unit, TEMPSUMMON_TIMED_DESPAWN, 10000))
660 {
661 c->CastSpell(c, VOID_ZONE_VISUAL, true);
663 unit->ToCreature()->DespawnOrUnsummon(3000);
664 }
665 break;
666 default:
667 break;
668 }
669 }
@ TEMPSUMMON_MANUAL_DESPAWN
Definition Object.h:53
@ TEMPSUMMON_TIMED_DESPAWN
Definition Object.h:48
#define WORLD_TRIGGER
Definition Unit.h:37
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:205
Definition instance_icecrown_citadel.cpp:167
virtual uint32 GetData(uint32) const
Definition UnitAI.h:213
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:65
Position const SindragosaSpawnPos
Definition instance_icecrown_citadel.cpp:158
@ 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.

1762 {
1763 switch (eventId)
1764 {
1767 {
1768 if (GameObject* go = source->ToGameObject())
1769 if (MotionTransport* transport = go->ToMotionTransport())
1770 transport->UnloadNonStaticPassengers();
1771 source->AddObjectToRemoveList();
1772 }
1773 break;
1776 {
1777 captain->AI()->DoAction(ACTION_ENEMY_GUNSHIP_TALK);
1778 }
1779 [[fallthrough]];
1782 if (GameObject* go = source->ToGameObject())
1783 if (MotionTransport* transport = go->ToMotionTransport())
1784 transport->EnableMovement(false);
1785 break;
1787 if (GameObject* go = source->ToGameObject())
1788 if (MotionTransport* transport = go->ToMotionTransport())
1789 {
1790 transport->setActive(false);
1791 transport->EnableMovement(false);
1792 //After movement is stopped remove the backpack
1794 }
1796 captain->AI()->DoAction(ACTION_EXIT_SHIP);
1797 break;
1798
1799 case EVENT_QUAKE:
1801 warning->SetGoState(GO_STATE_ACTIVE);
1802 Events.ScheduleEvent(EVENT_QUAKE_SHATTER, 5s);
1803 break;
1806 {
1807 platform->SetDestructibleState(GO_DESTRUCTIBLE_DESTROYED);
1808 Events.ScheduleEvent(EVENT_REBUILD_PLATFORM, 1500ms);
1809 }
1810 break;
1811 case EVENT_TELEPORT_TO_FROSMOURNE: // Harvest Soul (normal mode)
1813 {
1814 terenas->AI()->DoAction(ACTION_FROSTMOURNE_INTRO);
1815 std::list<Creature*> triggers;
1817 if (!triggers.empty())
1818 {
1819 triggers.sort(Acore::ObjectDistanceOrderPred(terenas, false));
1820 Unit* visual = triggers.front();
1821 visual->CastSpell(visual, SPELL_FROSTMOURNE_TELEPORT_VISUAL, true);
1822 }
1823
1824 if (Creature* warden = instance->SummonCreature(NPC_SPIRIT_WARDEN, SpiritWardenSpawn, nullptr, 65000))
1825 {
1826 terenas->AI()->AttackStart(warden);
1827 warden->AddThreat(terenas, 300000.0f);
1828 }
1829 }
1830 break;
1833 {
1835 goGas->SetGameObjectFlag(GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE);
1836
1839 {
1841 for (uint8 i = 0; i < 2; ++i)
1843 go->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
1844 }
1845 else
1848 SaveToDB();
1849 }
1850 break;
1853 {
1855 goOoze->SetGameObjectFlag(GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE);
1856
1859 {
1861 for (uint8 i = 0; i < 2; ++i)
1863 go->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
1864 }
1865 else
1868 SaveToDB();
1869 }
1870 break;
1871 }
1872 }
@ GO_DESTRUCTIBLE_DESTROYED
Definition SharedDefines.h:1629
Position const TerenasSpawn
Definition boss_the_lich_king.cpp:321
Position const SpiritWardenSpawn
Definition boss_the_lich_king.cpp:323
MotionTransport * ToMotionTransport()
Definition GameObject.h:326
virtual void DoAction(int32)
Definition InstanceScript.h:274
Definition Transport.h:49
GameObject * ToGameObject()
Definition Object.h:213
void AddObjectToRemoveList()
Definition Object.cpp:2160
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
Definition Object.cpp: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:51
@ EVENT_REBUILD_PLATFORM
Definition instance_icecrown_citadel.cpp:52
@ EVENT_PLAYERS_GUNSHIP_SPAWN
Definition instance_icecrown_citadel.cpp:35
@ EVENT_SECOND_REMORSELESS_WINTER
Definition instance_icecrown_citadel.cpp:42
@ EVENT_ENEMY_GUNSHIP_DESPAWN
Definition instance_icecrown_citadel.cpp:39
@ EVENT_TELEPORT_TO_FROSMOURNE
Definition instance_icecrown_citadel.cpp:43
@ EVENT_PLAYERS_GUNSHIP_COMBAT
Definition instance_icecrown_citadel.cpp:36
@ EVENT_ROTFACE_VALVE_USED
Definition instance_icecrown_citadel.cpp:45
@ EVENT_FESTERGUT_VALVE_USED
Definition instance_icecrown_citadel.cpp:44
@ EVENT_QUAKE
Definition instance_icecrown_citadel.cpp:41
@ EVENT_ENEMY_GUNSHIP_COMBAT
Definition instance_icecrown_citadel.cpp:38
@ EVENT_PLAYERS_GUNSHIP_SAURFANG
Definition instance_icecrown_citadel.cpp:37
void RemoveBackPack()
Definition instance_icecrown_citadel.cpp:1045

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.

1599 {
1600 data >> HeroicAttempts;
1601
1602 uint32 temp = 0;
1603 data >> temp;
1604
1605 if (temp == IN_PROGRESS)
1606 {
1608 }
1609 else
1610 {
1612 }
1613
1614 data >> BloodQuickeningState;
1615 data >> BloodQuickeningMinutes;
1616
1618 {
1619 Events.ScheduleEvent(EVENT_UPDATE_EXECUTION_TIME, 1min);
1622 }
1623
1624 data >> WeeklyQuestId10;
1625 data >> PutricideEventProgress;
1626 PutricideEventProgress &= ~PUTRICIDE_EVENT_FLAG_TRAP_INPROGRESS;
1628 data >> BloodPrinceTrashCount;
1629 data >> IsBuffAvailable;
1630 data >> IsSindragosaIntroDone;
1632 }
@ EVENT_UPDATE_EXECUTION_TIME
Definition instance_icecrown_citadel.cpp:50
void SetData(uint32 type, uint32 data) override
Definition instance_icecrown_citadel.cpp:1219

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
1046 {
1047 for (auto const& itr : instance->GetPlayers())
1048 if (Player* _player = itr.GetSource())
1049 _player->DestroyItemCount(ITEM_GOBLIN_ROCKET_PACK, _player->GetItemCount(ITEM_GOBLIN_ROCKET_PACK), true);
1050 }
@ ITEM_GOBLIN_ROCKET_PACK
Definition icecrown_citadel.h:576
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.

1053 {
1054 if (!InstanceScript::SetBossState(type, state))
1055 return false;
1056
1057 switch (type)
1058 {
1060 if (state == DONE)
1061 {
1063 SetData(DATA_WEEKLY_QUEST_ID, 0); // show required hidden npcs
1065 transporter->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
1066 SaveToDB();
1067 }
1068 break;
1070 if (state == DONE)
1071 SpawnGunship();
1072 break;
1074 if (state == DONE)
1075 {
1077 {
1078 loot->SetLootRecipient(instance);
1079 loot->RemoveGameObjectFlag(GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN);
1080 }
1081 }
1082 else if (state == FAIL)
1083 Events.ScheduleEvent(EVENT_RESPAWN_GUNSHIP, 30s);
1084 break;
1086 switch (state)
1087 {
1088 case DONE:
1090 {
1092 loot->SetLootRecipient(deathbringer);
1093 loot->RemoveGameObjectFlag(GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN);
1094 }
1095 [[fallthrough]];
1096 case NOT_STARTED:
1098 {
1099 HandleGameObject(SaurfangTeleportGUID, true, teleporter);
1100 teleporter->RemoveGameObjectFlag(GO_FLAG_IN_USE);
1101 }
1102 break;
1103 default:
1104 break;
1105 }
1106 break;
1107 case DATA_FESTERGUT:
1108 if (state == DONE)
1109 {
1111 go->RemoveGameObjectFlag(GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE);
1113 HandleDropAttempt(false);
1114 }
1115 break;
1116 case DATA_ROTFACE:
1117 if (state == DONE)
1118 {
1120 go->RemoveGameObjectFlag(GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE);
1122 HandleDropAttempt(false);
1123 }
1124 break;
1128 if (state == DONE)
1130 else if (state == FAIL)
1132 if (state == DONE && !instance->IsHeroic() && LichKingHeroicAvailable)
1133 {
1135 SaveToDB();
1136 }
1137 break;
1140 if (state == DONE)
1142 else if (state == FAIL)
1144 if (state == DONE && !instance->IsHeroic() && LichKingHeroicAvailable)
1145 {
1147 SaveToDB();
1148 }
1149 break;
1151 if (state == DONE)
1152 SetData(DATA_WEEKLY_QUEST_ID, GetData(DATA_WEEKLY_QUEST_ID)); // will show weekly quest npc if necessary
1153 break;
1154 case DATA_SINDRAGOSA:
1156 if (state == DONE)
1158 else if (state == FAIL)
1159 {
1160 IsSindragosaIntroDone = true;
1162 }
1163 if (state == DONE && !instance->IsHeroic() && LichKingHeroicAvailable)
1164 {
1166 SaveToDB();
1167 }
1168 break;
1169 case DATA_THE_LICH_KING:
1170 {
1171 // dramatically increase visibility range during fight to seeing frostmourne room
1172 instance->SetVisibilityRange(state == IN_PROGRESS ? 500.0f : 200.0f);
1173
1174 if (state == FAIL)
1175 {
1176 Events.CancelEvent(EVENT_QUAKE_SHATTER);
1177 Events.CancelEvent(EVENT_REBUILD_PLATFORM);
1178
1180 }
1181
1182 if (state == DONE)
1183 {
1185 bolvar->SetRespawnTime(7 * DAY);
1187 pillars->SetRespawnTime(7 * DAY);
1189 pillars->SetRespawnTime(7 * DAY);
1190
1195 }
1196 break;
1197 }
1198 default:
1199 break;
1200 }
1201
1202 return true;
1203 }
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:53
void HandleDropAttempt(bool drop=true)
Definition instance_icecrown_citadel.cpp:1018
void CheckLichKingAvailability()
Definition instance_icecrown_citadel.cpp:1576

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.

1220 {
1221 switch (type)
1222 {
1224 IsBuffAvailable = !!data;
1225 if (!IsBuffAvailable)
1226 {
1227 instance->DoForAllPlayers([&](Player* player)
1228 {
1229 player->UpdateAreaDependentAuras(player->GetAreaId());
1230 for (Unit::ControlSet::const_iterator itr = player->m_Controlled.begin(); itr != player->m_Controlled.end(); ++itr)
1231 {
1232 Unit::AuraMap& am = (*itr)->GetOwnedAuras();
1233 for (Unit::AuraMap::iterator itra = am.begin(); itra != am.end();)
1234 switch (itra->second->GetId())
1235 {
1236 // Hellscream's Warsong
1237 case 73816:
1238 case 73818:
1239 case 73819:
1240 case 73820:
1241 case 73821:
1242 case 73822:
1243 // Strength of Wrynn
1244 case 73762:
1245 case 73824:
1246 case 73825:
1247 case 73826:
1248 case 73827:
1249 case 73828:
1250 (*itr)->RemoveOwnedAura(itra);
1251 break;
1252 default:
1253 ++itra;
1254 break;
1255 }
1256 }
1257 });
1258 }
1259 SaveToDB();
1260 break;
1262 for (uint8 i = 0; i < WeeklyNPCs; ++i)
1263 if (WeeklyQuestData[i].questId[0] == WeeklyQuestId10 && (WeeklyQuestData[i].creatureEntry != NPC_VALITHRIA_DREAMWALKER_QUEST || GetBossState(DATA_VALITHRIA_DREAMWALKER) == DONE) /*appears after killing valithria*/)
1264 if (WeeklyQuestNpcGUID[i])
1266 c->SetVisible(true);
1267 break;
1269 if (data == NOT_STARTED)
1270 {
1271 PutricideEventProgress &= ~PUTRICIDE_EVENT_FLAG_TRAP_INPROGRESS;
1274 {
1275 for (uint8 i = 0; i < 2; ++i)
1277 go->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
1278 }
1279 else
1280 {
1283 }
1284 SaveToDB();
1285 }
1286 else if (data == IN_PROGRESS)
1287 {
1292 SaveToDB();
1293 }
1294 else if (data == DONE)
1295 {
1296 PutricideEventProgress &= ~PUTRICIDE_EVENT_FLAG_TRAP_INPROGRESS;
1301 {
1302 for (uint8 i = 0; i < 2; ++i)
1304 go->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
1305 }
1306 else
1307 {
1310 }
1311 SaveToDB();
1312 }
1313 return;
1315 IsBonedEligible = !!data;
1316 break;
1318 IsOozeDanceEligible = !!data;
1319 break;
1321 IsNauseaEligible = !!data;
1322 break;
1324 IsOrbWhispererEligible = !!data;
1325 break;
1327 FrostwyrmGUIDs.insert(data);
1328 break;
1329 case DATA_SPINESTALKER:
1330 SpinestalkerTrash.insert(data);
1331 break;
1332 case DATA_RIMEFANG:
1333 RimefangTrash.insert(data);
1334 break;
1336 ColdflameJetsState = data;
1337 if (ColdflameJetsState == DONE)
1338 SaveToDB();
1339 break;
1341 {
1343 break;
1344 if (BloodQuickeningState == data)
1345 break;
1347 break;
1348
1349 switch (data)
1350 {
1351 case IN_PROGRESS:
1352 Events.ScheduleEvent(EVENT_UPDATE_EXECUTION_TIME, 1min);
1356 break;
1357 case DONE:
1361 break;
1362 default:
1363 break;
1364 }
1365
1366 BloodQuickeningState = data;
1367 SaveToDB();
1368 break;
1369 }
1371 {
1372 if (++BloodPrinceTrashCount >= 4)
1373 {
1376 }
1377 SaveToDB();
1378 break;
1379 }
1380 default:
1381 break;
1382 }
1383 }
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:1990
std::multimap< uint32, Aura * > AuraMap
Definition Unit.h:641
@ 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:1052

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
1875 {
1876 std::vector<Position> trapPositions;
1877
1878 switch (go->GetEntry())
1879 {
1880 case GO_SPIRIT_ALARM_1:
1881 trapPositions = GoSpiritAlarm_1;
1882 break;
1883 case GO_SPIRIT_ALARM_2:
1884 trapPositions = GoSpiritAlarm_2;
1885 break;
1886 case GO_SPIRIT_ALARM_3:
1887 trapPositions = GoSpiritAlarm_3;
1888 break;
1889 case GO_SPIRIT_ALARM_4:
1890 trapPositions = GoSpiritAlarm_4;
1891 break;
1892 default:
1893 return;
1894 }
1895
1897 }
std::vector< Position > GoSpiritAlarm_1
Definition instance_icecrown_citadel.cpp:161
std::vector< Position > GoSpiritAlarm_4
Definition instance_icecrown_citadel.cpp:164
std::vector< Position > GoSpiritAlarm_3
Definition instance_icecrown_citadel.cpp:163
std::vector< Position > GoSpiritAlarm_2
Definition instance_icecrown_citadel.cpp:162
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
1206 {
1207 if (!GunshipGUID && instance->HavePlayers())
1208 {
1211 if (MotionTransport* gunship = sTransportMgr->CreateTransport(gunshipEntry, 0, instance))
1212 {
1213 GunshipGUID = gunship->GetGUID();
1214 gunship->setActive(false);
1215 }
1216 }
1217 }
#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.

1649 {
1650 // Xinef: A Feast of Souls (24547) whispers
1651 if (LichKingRandomWhisperTimer <= diff)
1652 {
1654 Map::PlayerList const& players = instance->GetPlayers();
1655 if (!players.IsEmpty())
1656 if (Player* player = players.begin()->GetSource())
1657 if (player->GetQuestStatus(QUEST_A_FEAST_OF_SOULS) == QUEST_STATUS_INCOMPLETE)
1658 {
1659 if (Creature* theLichKing = instance->GetCreature(TheLichKingLhGUID))
1660 {
1661 theLichKing->AI()->Talk(SAY_SOULS_LICH_KING_RAND_WHISPER, player);
1662 }
1663 }
1664 }
1665 else
1667
1668 if (DarkwhisperElevatorTimer <= diff)
1669 {
1673 if (StaticTransport* trans = elevator->ToStaticTransport())
1674 {
1675 if (trans->GetGoState() == GO_STATE_READY && trans->GetPathProgress() == 0)
1676 trans->SetGoState(GO_STATE_ACTIVE);
1677 else if (trans->GetGoState() == GO_STATE_ACTIVE && trans->GetPathProgress() == trans->GetPauseTime())
1678 trans->SetGoState(GO_STATE_READY);
1679 }
1680 }
1681 else
1683
1684 if (Events.Empty())
1685 return;
1686
1687 Events.Update(diff);
1688
1689 while (uint32 eventId = Events.ExecuteEvent())
1690 {
1691 switch (eventId)
1692 {
1694 {
1697 {
1698 Events.ScheduleEvent(EVENT_UPDATE_EXECUTION_TIME, 1min);
1701 }
1702 else
1703 {
1707 bq->AI()->DoAction(ACTION_KILL_MINCHAR);
1708 }
1709 SaveToDB();
1710 break;
1711 }
1713 {
1715 platform->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED);
1717 edge->SetGoState(GO_STATE_ACTIVE);
1719 wind->SetGoState(GO_STATE_READY);
1721 warning->SetGoState(GO_STATE_READY);
1722 if (Creature* theLichKing = instance->GetCreature(TheLichKingGUID))
1723 theLichKing->AI()->DoAction(ACTION_RESTORE_LIGHT);
1724 break;
1725 }
1728 platform->SetDestructibleState(GO_DESTRUCTIBLE_REBUILDING, nullptr, true);
1730 edge->SetGoState(GO_STATE_READY);
1732 wind->SetGoState(GO_STATE_ACTIVE);
1733 break;
1735 SpawnGunship();
1736 break;
1739 {
1741 {
1742 sindragosa->setActive(true);
1743 sindragosa->SetDisableGravity(true);
1744 sindragosa->GetMotionMaster()->MovePath(NPC_SINDRAGOSA * 10, true);
1745
1746 if (TempSummon* summon = sindragosa->ToTempSummon())
1747 {
1748 summon->SetTempSummonType(TEMPSUMMON_DEAD_DESPAWN);
1749 }
1750 }
1751 }
1752 // Could happen more than once if more than one player enters before she respawns.
1753 Events.CancelEvent(EVENT_RESPAWN_SINDRAGOSA);
1754 break;
1755 default:
1756 break;
1757 }
1758 }
1759 }
@ GO_STATE_READY
Definition GameObjectData.h:690
@ TEMPSUMMON_DEAD_DESPAWN
Definition Object.h:52
@ 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:702
@ 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:70

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: