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

Public Member Functions

 instance_icecrown_citadel_InstanceMapScript (InstanceMap *map)
 
void FillInitialWorldStates (WorldPacket &data) override
 
void OnPlayerAreaUpdate (Player *player, uint32, uint32 newArea) override
 
void OnPlayerEnter (Player *player) override
 
void OnCreatureCreate (Creature *creature) override
 
void OnCreatureRemove (Creature *creature) override
 
uint32 GetCreatureEntry (ObjectGuid::LowType, CreatureData const *data) override
 
uint32 GetGameObjectEntry (ObjectGuid::LowType, uint32 entry) override
 
void OnUnitDeath (Unit *unit) override
 
void OnGameObjectCreate (GameObject *go) override
 
void OnGameObjectRemove (GameObject *go) override
 
uint32 GetData (uint32 type) const override
 
ObjectGuid GetGuidData (uint32 type) const override
 
void HandleDropAttempt (bool drop=true)
 
void RemoveBackPack ()
 
bool SetBossState (uint32 type, EncounterState state) override
 
void SpawnGunship ()
 
void SetData (uint32 type, uint32 data) override
 
bool CheckAchievementCriteriaMeet (uint32 criteria_id, Player const *, Unit const *, uint32) override
 
bool CheckRequiredBosses (uint32 bossId, Player const *) const override
 
bool CheckPlagueworks (uint32 bossId) const
 
bool CheckCrimsonHalls (uint32 bossId) const
 
bool CheckFrostwingHalls (uint32 bossId) const
 
bool CheckLowerSpire (uint32 bossId) const
 
void CheckLichKingAvailability ()
 
void ReadSaveDataMore (std::istringstream &data) override
 
void WriteSaveDataMore (std::ostringstream &data) override
 
void Update (uint32 diff) override
 
void ProcessEvent (WorldObject *source, uint32 eventId) override
 
void SetPositionTraps (GameObject *go)
 
- Public Member Functions inherited from InstanceScript
 InstanceScript (Map *map)
 
 ~InstanceScript () override
 
virtual void Initialize ()
 
virtual void Load (char const *data)
 
virtual void CreatureLooted (Creature *, LootType)
 
virtual std::string GetSaveData ()
 
void SaveToDB ()
 
virtual void Update (uint32)
 
virtual bool IsEncounterInProgress () const
 
void OnCreatureCreate (Creature *creature) override
 
void OnCreatureRemove (Creature *creature) override
 
void OnGameObjectCreate (GameObject *go) override
 
void OnGameObjectRemove (GameObject *go) override
 
ObjectGuid GetObjectGuid (uint32 type) const
 
ObjectGuid GetGuidData (uint32 type) const override
 
CreatureGetCreature (uint32 type)
 
GameObjectGetGameObject (uint32 type)
 
virtual void OnPlayerEnter (Player *)
 
virtual void OnPlayerAreaUpdate (Player *, uint32, uint32)
 
void HandleGameObject (ObjectGuid guid, bool open, GameObject *go=nullptr)
 
void DoUseDoorOrButton (ObjectGuid guid, uint32 withRestoreTime=0, bool useAlternativeState=false)
 
void DoRespawnGameObject (ObjectGuid guid, uint32 timeToDespawn=MINUTE)
 
void DoRespawnCreature (ObjectGuid guid, bool force=false)
 
void DoRespawnCreature (uint32 type, bool force=false)
 
void DoUpdateWorldState (uint32 worldstateId, uint32 worldstateValue)
 
void DoSendNotifyToInstance (char const *format,...)
 
void DoUpdateAchievementCriteria (AchievementCriteriaTypes type, uint32 miscValue1=0, uint32 miscValue2=0, Unit *unit=nullptr)
 
void DoStartTimedAchievement (AchievementCriteriaTimedTypes type, uint32 entry)
 
void DoStopTimedAchievement (AchievementCriteriaTimedTypes type, uint32 entry)
 
void DoRemoveAurasDueToSpellOnPlayers (uint32 spell)
 
void DoCastSpellOnPlayers (uint32 spell)
 
void DoCastSpellOnPlayer (Player *player, uint32 spell, bool includePets, bool includeControlled)
 
bool ServerAllowsTwoSideGroups ()
 
virtual bool SetBossState (uint32 id, EncounterState state)
 
EncounterState GetBossState (uint32 id) const
 
CreatureBoundary const * GetBossBoundary (uint32 id) const
 
BossInfo const * GetBossInfo (uint32 id) const
 
uint32 GetPersistentData (uint32 index) const
 
void StorePersistentData (uint32 index, uint32 data)
 
virtual bool CheckAchievementCriteriaMeet (uint32, Player const *, Unit const *=nullptr, uint32=0)
 
virtual bool CheckRequiredBosses (uint32, Player const *=nullptr) const
 
void SetCompletedEncountersMask (uint32 newMask, bool save)
 
uint32 GetCompletedEncounterMask () const
 
void SendEncounterUnit (uint32 type, Unit *unit=nullptr, uint8 param1=0, uint8 param2=0)
 
virtual void FillInitialWorldStates (WorldPacket &)
 
uint32 GetEncounterCount () const
 
void MarkAreaTriggerDone (uint32 id)
 
void ResetAreaTriggerDone (uint32 id)
 
bool IsAreaTriggerDone (uint32 id) const
 
virtual void DoAction (int32)
 
- Public Member Functions inherited from ZoneScript
 ZoneScript ()
 
virtual ~ZoneScript ()
 
virtual uint32 GetCreatureEntry (ObjectGuid::LowType, CreatureData const *data)
 
virtual uint32 GetGameObjectEntry (ObjectGuid::LowType, uint32 entry)
 
virtual void OnCreatureCreate (Creature *)
 
virtual void OnCreatureRemove (Creature *)
 
virtual void OnGameObjectCreate (GameObject *)
 
virtual void OnGameObjectRemove (GameObject *)
 
virtual void OnUnitDeath (Unit *)
 
virtual void OnCreatureEvade (Creature *)
 
virtual ObjectGuid GetGuidData (uint32) const
 
virtual void SetGuidData (uint32, ObjectGuid)
 
virtual uint64 GetData64 (uint32) const
 
virtual void SetData64 (uint32, uint64)
 
virtual uint32 GetData (uint32) const
 
virtual void SetData (uint32, uint32)
 
virtual void ProcessEvent (WorldObject *, uint32)
 

Protected Attributes

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

Additional Inherited Members

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

Detailed Description

Constructor & Destructor Documentation

◆ instance_icecrown_citadel_InstanceMapScript()

instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::instance_icecrown_citadel_InstanceMapScript ( InstanceMap map)
inline
190 : InstanceScript(map)
191 {
192 // pussywizard:
193 IsBuffAvailable = true;
194 WeeklyQuestId10 = 0;
199
206 IsBonedEligible = true;
207 IsOozeDanceEligible = true;
208 IsNauseaEligible = true;
214 }
constexpr auto IN_MILLISECONDS
Definition: Common.h:62
@ NOT_STARTED
Definition: InstanceScript.h:56
#define DataHeader
Definition: blackrock_depths.h:23
@ MAX_ENCOUNTERS
Definition: deadmines.h:30
uint32 const MaxHeroicAttempts
Definition: icecrown_citadel.h:40
DoorData const doorData[]
Definition: instance_icecrown_citadel.cpp:86
BossBoundaryData const boundaries
Definition: instance_icecrown_citadel.cpp:66
@ TEAM_NEUTRAL
Definition: SharedDefines.h:734
Definition: InstanceScript.h:140
void SetBossNumber(uint32 number)
Definition: InstanceScript.h:265
void LoadDoorData(DoorData const *data)
Definition: InstanceScript.cpp:160
void LoadBossBoundaries(BossBoundaryData const &data)
Definition: InstanceScript.cpp:130
void SetHeaders(std::string const &dataHeaders)
Definition: InstanceScript.cpp:137
uint32 DarkwhisperElevatorTimer
Definition: instance_icecrown_citadel.cpp:1883
uint32 PutricideEventProgress
Definition: instance_icecrown_citadel.cpp:1878
bool IsBuffAvailable
Definition: instance_icecrown_citadel.cpp:1874
bool IsNauseaEligible
Definition: instance_icecrown_citadel.cpp:1944
uint32 BloodPrinceTrashCount
Definition: instance_icecrown_citadel.cpp:1941
uint16 BloodQuickeningMinutes
Definition: instance_icecrown_citadel.cpp:1940
bool LichKingHeroicAvailable
Definition: instance_icecrown_citadel.cpp:1881
uint32 WeeklyQuestId10
Definition: instance_icecrown_citadel.cpp:1875
bool IsOrbWhispererEligible
Definition: instance_icecrown_citadel.cpp:1945
bool IsOozeDanceEligible
Definition: instance_icecrown_citadel.cpp:1943
uint32 BloodQuickeningState
Definition: instance_icecrown_citadel.cpp:1938
uint32 ColdflameJetsState
Definition: instance_icecrown_citadel.cpp:1934
uint32 HeroicAttempts
Definition: instance_icecrown_citadel.cpp:1939
TeamId TeamIdInInstance
Definition: instance_icecrown_citadel.cpp:1933
bool IsBonedEligible
Definition: instance_icecrown_citadel.cpp:1942
uint32 LichKingRandomWhisperTimer
Definition: instance_icecrown_citadel.cpp:1882

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

Member Function Documentation

◆ CheckAchievementCriteriaMeet()

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

Reimplemented from InstanceScript.

1388 {
1389 switch (criteria_id)
1390 {
1391 case CRITERIA_BONED_10N:
1392 case CRITERIA_BONED_25N:
1393 case CRITERIA_BONED_10H:
1394 case CRITERIA_BONED_25H:
1395 return IsBonedEligible;
1400 return IsOozeDanceEligible;
1405 return IsNauseaEligible;
1411 // Only one criteria for both modes, need to do it like this
1413 return instance->ToInstanceMap()->GetMaxPlayers() == 10;
1415 return instance->ToInstanceMap()->GetMaxPlayers() == 25;
1416 default:
1417 break;
1418 }
1419
1420 return false;
1421 }
@ CRITERIA_BONED_25H
Definition: icecrown_citadel.h:483
@ CRITERIA_BONED_10N
Definition: icecrown_citadel.h:480
@ CRITERIA_NAUSEA_10H
Definition: icecrown_citadel.h:494
@ CRITERIA_BONED_25N
Definition: icecrown_citadel.h:481
@ CRITERIA_BONED_10H
Definition: icecrown_citadel.h:482
@ CRITERIA_DANCES_WITH_OOZES_10H
Definition: icecrown_citadel.h:488
@ CRITERIA_NAUSEA_10N
Definition: icecrown_citadel.h:492
@ CRITERIA_NAUSEA_25N
Definition: icecrown_citadel.h:493
@ CRITERIA_NAUSEA_25H
Definition: icecrown_citadel.h:495
@ CRITERIA_ORB_WHISPERER_25H
Definition: icecrown_citadel.h:501
@ CRITERIA_DANCES_WITH_OOZES_10N
Definition: icecrown_citadel.h:486
@ CRITERIA_DANCES_WITH_OOZES_25H
Definition: icecrown_citadel.h:489
@ CRITERIA_KILL_LANA_THEL_25M
Definition: icecrown_citadel.h:505
@ CRITERIA_DANCES_WITH_OOZES_25N
Definition: icecrown_citadel.h:487
@ CRITERIA_ORB_WHISPERER_25N
Definition: icecrown_citadel.h:499
@ CRITERIA_KILL_LANA_THEL_10M
Definition: icecrown_citadel.h:504
@ CRITERIA_ORB_WHISPERER_10N
Definition: icecrown_citadel.h:498
@ CRITERIA_ORB_WHISPERER_10H
Definition: icecrown_citadel.h:500
Map * instance
Definition: InstanceScript.h:146
InstanceMap * ToInstanceMap()
Definition: Map.h:544
uint32 GetMaxPlayers() const
Definition: Map.cpp:3193

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

◆ CheckCrimsonHalls()

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::CheckCrimsonHalls ( uint32  bossId) const
inline
1483 {
1484 switch (bossId)
1485 {
1486 case DATA_THE_LICH_KING:
1488 {
1489 return false;
1490 }
1491 [[fallthrough]];
1494 return false;
1495 break;
1496 default:
1497 break;
1498 }
1499
1500 return true;
1501 }
@ DONE
Definition: InstanceScript.h:59
@ DATA_THE_LICH_KING
Definition: icecrown_citadel.h:105
@ DATA_BLOOD_PRINCE_COUNCIL
Definition: icecrown_citadel.h:100
@ DATA_BLOOD_QUEEN_LANA_THEL
Definition: icecrown_citadel.h:101
EncounterState GetBossState(uint32 id) const
Definition: InstanceScript.h:230

References DATA_BLOOD_PRINCE_COUNCIL, DATA_BLOOD_QUEEN_LANA_THEL, DATA_THE_LICH_KING, and DONE.

◆ CheckFrostwingHalls()

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::CheckFrostwingHalls ( uint32  bossId) const
inline
1504 {
1505 switch (bossId)
1506 {
1507 case DATA_THE_LICH_KING:
1509 {
1510 return false;
1511 }
1512 [[fallthrough]];
1513 case DATA_SINDRAGOSA:
1515 {
1516 return false;
1517 }
1519 {
1520 return false;
1521 }
1522 break;
1523 default:
1524 break;
1525 }
1526
1527 return true;
1528 }
@ DATA_SINDRAGOSA_GAUNTLET
Definition: icecrown_citadel.h:106
@ DATA_VALITHRIA_DREAMWALKER
Definition: icecrown_citadel.h:103
@ DATA_SINDRAGOSA
Definition: icecrown_citadel.h:104

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

◆ CheckLichKingAvailability()

void instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::CheckLichKingAvailability ( )
inline
1574 {
1576 {
1578 {
1579 teleporter->SetGoState(GO_STATE_ACTIVE);
1580
1581 std::list<Creature*> stalkers;
1582 GetCreatureListWithEntryInGrid(stalkers, teleporter, NPC_INVISIBLE_STALKER, 100.0f);
1583 if (stalkers.empty())
1584 return;
1585
1586 stalkers.sort(Acore::ObjectDistanceOrderPred(teleporter));
1587 stalkers.front()->CastSpell((Unit*)nullptr, SPELL_ARTHAS_TELEPORTER_CEREMONY, false);
1588 stalkers.pop_front();
1589 for (std::list<Creature*>::iterator itr = stalkers.begin(); itr != stalkers.end(); ++itr)
1590 (*itr)->AI()->Reset();
1591 }
1592 }
1593 }
void GetCreatureListWithEntryInGrid(std::list< Creature * > &list, WorldObject *source, uint32 entry, float maxSearchRange)
Definition: ScriptedCreature.cpp:775
@ GO_STATE_ACTIVE
Definition: GameObjectData.h:690
@ NPC_INVISIBLE_STALKER
Definition: icecrown_citadel.h:367
@ SPELL_ARTHAS_TELEPORTER_CEREMONY
Definition: icecrown_citadel.h:65
@ DATA_PROFESSOR_PUTRICIDE
Definition: icecrown_citadel.h:99
Definition: GameObject.h:122
Definition: Object.h:681
Definition: Unit.h:1290
GameObject * GetGameObject(ObjectGuid const guid)
Definition: Map.cpp:3298
ObjectGuid TheLichKingTeleportGUID
Definition: instance_icecrown_citadel.cpp:1921

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

Referenced by SetBossState().

◆ CheckLowerSpire()

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::CheckLowerSpire ( uint32  bossId) const
inline
1531 {
1532 switch (bossId)
1533 {
1534 case DATA_THE_LICH_KING:
1535 case DATA_SINDRAGOSA:
1540 case DATA_ROTFACE:
1541 case DATA_FESTERGUT:
1543 {
1544 return false;
1545 }
1546 [[fallthrough]];
1549 {
1550 return false;
1551 }
1552 [[fallthrough]];
1555 {
1556 return false;
1557 }
1558 [[fallthrough]];
1561 {
1562 return false;
1563 }
1564 [[fallthrough]];
1566 default:
1567 break;
1568 }
1569
1570 return true;
1571 }
@ DATA_DEATHBRINGER_SAURFANG
Definition: icecrown_citadel.h:96
@ DATA_ICECROWN_GUNSHIP_BATTLE
Definition: icecrown_citadel.h:95
@ DATA_ROTFACE
Definition: icecrown_citadel.h:98
@ DATA_LORD_MARROWGAR
Definition: icecrown_citadel.h:93
@ DATA_FESTERGUT
Definition: icecrown_citadel.h:97
@ DATA_LADY_DEATHWHISPER
Definition: icecrown_citadel.h:94

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

◆ CheckPlagueworks()

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::CheckPlagueworks ( uint32  bossId) const
inline
1462 {
1463 switch (bossId)
1464 {
1465 case DATA_THE_LICH_KING:
1467 {
1468 return false;
1469 }
1470 [[fallthrough]];
1473 return false;
1474 break;
1475 default:
1476 break;
1477 }
1478
1479 return true;
1480 }

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

◆ CheckRequiredBosses()

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

Reimplemented from InstanceScript.

1424 {
1425 switch (bossId)
1426 {
1427 case DATA_THE_LICH_KING:
1428 if (!CheckPlagueworks(bossId))
1429 return false;
1430 if (!CheckCrimsonHalls(bossId))
1431 return false;
1432 if (!CheckFrostwingHalls(bossId))
1433 return false;
1434 break;
1435 case DATA_SINDRAGOSA:
1437 if (!CheckFrostwingHalls(bossId))
1438 return false;
1439 break;
1442 if (!CheckCrimsonHalls(bossId))
1443 return false;
1444 break;
1445 case DATA_FESTERGUT:
1446 case DATA_ROTFACE:
1448 if (!CheckPlagueworks(bossId))
1449 return false;
1450 break;
1451 default:
1452 break;
1453 }
1454
1455 if (!CheckLowerSpire(bossId))
1456 return false;
1457
1458 return true;
1459 }
bool CheckFrostwingHalls(uint32 bossId) const
Definition: instance_icecrown_citadel.cpp:1503
bool CheckLowerSpire(uint32 bossId) const
Definition: instance_icecrown_citadel.cpp:1530
bool CheckCrimsonHalls(uint32 bossId) const
Definition: instance_icecrown_citadel.cpp:1482
bool CheckPlagueworks(uint32 bossId) const
Definition: instance_icecrown_citadel.cpp:1461

References DATA_BLOOD_PRINCE_COUNCIL, DATA_BLOOD_QUEEN_LANA_THEL, DATA_FESTERGUT, DATA_PROFESSOR_PUTRICIDE, DATA_ROTFACE, DATA_SINDRAGOSA, DATA_THE_LICH_KING, and DATA_VALITHRIA_DREAMWALKER.

◆ FillInitialWorldStates()

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

Reimplemented from InstanceScript.

217 {
218 if (instance->IsHeroic())
219 {
225 }
226 }
std::uint32_t uint32
Definition: Define.h:108
@ IN_PROGRESS
Definition: InstanceScript.h:57
@ WORLDSTATE_SHOW_TIMER
Definition: instance_zulaman.cpp:35
@ WORLDSTATE_SHOW_ATTEMPTS
Definition: icecrown_citadel.h:562
@ WORLDSTATE_ATTEMPTS_REMAINING
Definition: icecrown_citadel.h:563
@ WORLDSTATE_ATTEMPTS_MAX
Definition: icecrown_citadel.h:564
@ WORLDSTATE_EXECUTION_TIME
Definition: icecrown_citadel.h:561
bool IsHeroic() const
Definition: Map.h:451

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

◆ GetCreatureEntry()

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

Reimplemented from ZoneScript.

521 {
523 {
524 Map::PlayerList const& players = instance->GetPlayers();
525 if (!players.IsEmpty())
526 if (Player* player = players.begin()->GetSource())
527 TeamIdInInstance = player->GetTeamId();
528 }
529
530 uint32 entry = data->id1;
531 switch (entry)
532 {
537 return 0;
538 break;
543 return 0;
544 break;
546 if (GameObjectTemplate const* go = sObjectMgr->GetGameObjectTemplate(GO_THE_SKYBREAKER_A))
547 if ((TeamIdInInstance == TEAM_ALLIANCE && data->mapid == go->moTransport.mapID) ||
548 (TeamIdInInstance == TEAM_HORDE && data->mapid != go->moTransport.mapID))
549 return entry;
550 return 0;
552 if ((TeamIdInInstance == TEAM_ALLIANCE && data->posX > 10.0f) ||
553 (TeamIdInInstance == TEAM_HORDE && data->posX < 10.0f))
554 return entry;
555 return 0;
557 if ((TeamIdInInstance == TEAM_ALLIANCE && data->posY < 2200.0f) || (TeamIdInInstance == TEAM_HORDE && data->posY > 2200.0f))
558 return 0;
559 break;
560 }
561
562 return entry;
563 }
@ NPC_ALLIANCE_GUNSHIP_CANNON
Definition: BattlegroundIC.h:46
@ NPC_HORDE_GUNSHIP_CANNON
Definition: BattlegroundIC.h:45
#define sObjectMgr
Definition: ObjectMgr.h:1640
@ NPC_HIGH_CAPTAIN_JUSTIN_BARTLETT
Definition: icecrown_citadel.h:236
@ NPC_SKY_REAVER_KORM_BLACKSCAR
Definition: icecrown_citadel.h:237
@ NPC_IGB_MURADIN_BRONZEBEARD
Definition: icecrown_citadel.h:219
@ NPC_SPIRE_FROSTWYRM
Definition: icecrown_citadel.h:368
@ NPC_ZAFOD_BOOMBOX
Definition: icecrown_citadel.h:235
@ NPC_SKYBREAKER_DECKHAND
Definition: icecrown_citadel.h:216
@ NPC_ORGRIMS_HAMMER_CREW
Definition: icecrown_citadel.h:217
@ GO_THE_SKYBREAKER_A
Definition: icecrown_citadel.h:403
@ TEAM_ALLIANCE
Definition: SharedDefines.h:732
@ TEAM_HORDE
Definition: SharedDefines.h:733
bool IsEmpty() const
Definition: LinkedList.h:97
FROM * GetSource() const
Definition: Reference.h:97
Definition: GameObjectData.h:32
Definition: Player.h:1046
PlayerList const & GetPlayers() const
Definition: Map.h:484
Definition: MapRefMgr.h:26
iterator begin()
Definition: MapRefMgr.h:36

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

◆ GetData()

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

Reimplemented from ZoneScript.

906 {
907 switch (type)
908 {
910 return (IsBuffAvailable ? 1 : 0);
912 return WeeklyQuestId10;
915 return TO_BE_DECIDED;
917 return IN_PROGRESS;
919 return DONE;
920 return NOT_STARTED;
922 return (instance->IsHeroic() ? 1 : 0);
924 return (LichKingHeroicAvailable ? 1 : 0);
926 return FrostwyrmGUIDs.size();
928 return SpinestalkerTrash.size();
929 case DATA_RIMEFANG:
930 return RimefangTrash.size();
932 return ColdflameJetsState;
934 return TeamIdInInstance;
938 return HeroicAttempts;
939 default:
940 break;
941 }
942
943 return 0;
944 }
@ TO_BE_DECIDED
Definition: InstanceScript.h:61
@ DATA_TEAMID_IN_INSTANCE
Definition: trial_of_the_champion.h:45
@ PUTRICIDE_EVENT_FLAG_FESTERGUT_VALVE
Definition: icecrown_citadel.h:569
@ PUTRICIDE_EVENT_FLAG_TRAP_FINISHED
Definition: icecrown_citadel.h:572
@ PUTRICIDE_EVENT_FLAG_ROTFACE_VALVE
Definition: icecrown_citadel.h:570
@ PUTRICIDE_EVENT_FLAG_TRAP_INPROGRESS
Definition: icecrown_citadel.h:571
@ DATA_HEROIC_ATTEMPTS
Definition: icecrown_citadel.h:127
@ DATA_SINDRAGOSA_FROSTWYRMS
Definition: icecrown_citadel.h:121
@ DATA_WEEKLY_QUEST_ID
Definition: icecrown_citadel.h:142
@ DATA_LK_HC_AVAILABLE
Definition: icecrown_citadel.h:146
@ DATA_HAS_LIMITED_ATTEMPTS
Definition: icecrown_citadel.h:145
@ DATA_PUTRICIDE_TRAP_STATE
Definition: icecrown_citadel.h:144
@ DATA_BUFF_AVAILABLE
Definition: icecrown_citadel.h:141
@ DATA_RIMEFANG
Definition: icecrown_citadel.h:123
@ DATA_BLOOD_QUICKENING_STATE
Definition: icecrown_citadel.h:126
@ DATA_COLDFLAME_JETS
Definition: icecrown_citadel.h:124
@ DATA_SPINESTALKER
Definition: icecrown_citadel.h:122
std::set< ObjectGuid::LowType > SpinestalkerTrash
Definition: instance_icecrown_citadel.cpp:1936
std::set< ObjectGuid::LowType > RimefangTrash
Definition: instance_icecrown_citadel.cpp:1937
std::set< ObjectGuid::LowType > FrostwyrmGUIDs
Definition: instance_icecrown_citadel.cpp:1935

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_SPINESTALKER, DATA_TEAMID_IN_INSTANCE, DATA_WEEKLY_QUEST_ID, DONE, FrostwyrmGUIDs, HeroicAttempts, IN_PROGRESS, InstanceScript::instance, IsBuffAvailable, Map::IsHeroic(), LichKingHeroicAvailable, NOT_STARTED, PUTRICIDE_EVENT_FLAG_FESTERGUT_VALVE, PUTRICIDE_EVENT_FLAG_ROTFACE_VALVE, PUTRICIDE_EVENT_FLAG_TRAP_FINISHED, PUTRICIDE_EVENT_FLAG_TRAP_INPROGRESS, PutricideEventProgress, RimefangTrash, SpinestalkerTrash, TeamIdInInstance, TO_BE_DECIDED, and WeeklyQuestId10.

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

◆ GetGameObjectEntry()

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

Reimplemented from ZoneScript.

566 {
568 {
569 Map::PlayerList const& players = instance->GetPlayers();
570 if (!players.IsEmpty())
571 if (Player* player = players.begin()->GetSource())
572 TeamIdInInstance = player->GetTeamId();
573 }
574
575 switch (entry)
576 {
582 return 0;
583 break;
589 return 0;
590 break;
591 }
592
593 return entry;
594 }
@ GO_GUNSHIP_ARMORY_H_10N
Definition: icecrown_citadel.h:396
@ GO_GUNSHIP_ARMORY_A_10H
Definition: icecrown_citadel.h:406
@ GO_GUNSHIP_ARMORY_A_25N
Definition: icecrown_citadel.h:405
@ GO_GUNSHIP_ARMORY_A_10N
Definition: icecrown_citadel.h:404
@ GO_GUNSHIP_ARMORY_H_25H
Definition: icecrown_citadel.h:399
@ GO_GUNSHIP_ARMORY_H_25N
Definition: icecrown_citadel.h:397
@ GO_GUNSHIP_ARMORY_A_25H
Definition: icecrown_citadel.h:407
@ GO_GUNSHIP_ARMORY_H_10H
Definition: icecrown_citadel.h:398

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

◆ GetGuidData()

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

Reimplemented from InstanceScript.

947 {
948 switch (type)
949 {
953 return GunshipGUID;
955 return EnemyGunshipGUID;
964 case DATA_FESTERGUT:
965 return FestergutGUID;
966 case DATA_ROTFACE:
967 return RotfaceGUID;
971 return PutricideTableGUID;
973 return BloodCouncilGUIDs[0];
975 return BloodCouncilGUIDs[1];
977 return BloodCouncilGUIDs[2];
983 return CrokScourgebaneGUID;
990 return SisterSvalnaGUID;
1000 return PutricadeTrapGUID;
1001 case DATA_SINDRAGOSA:
1002 return SindragosaGUID;
1003 case DATA_SPINESTALKER:
1004 return SpinestalkerGUID;
1005 case DATA_RIMEFANG:
1006 return RimefangGUID;
1007 case DATA_THE_LICH_KING:
1008 return TheLichKingGUID;
1012 return ArthasPlatformGUID;
1014 return TerenasMenethilGUID;
1015 default:
1016 break;
1017 }
1018
1019 return ObjectGuid::Empty;
1020 }
@ NPC_SINDRAGOSA_GAUNTLET
Definition: icecrown_citadel.h:333
@ NPC_PUTRICADES_TRAP
Definition: icecrown_citadel.h:341
@ GO_SAURFANG_S_DOOR
Definition: icecrown_citadel.h:410
@ GO_SCOURGE_TRANSPORTER_SAURFANG
Definition: icecrown_citadel.h:415
@ DATA_VALITHRIA_LICH_KING
Definition: icecrown_citadel.h:134
@ DATA_BLOOD_PRINCES_CONTROL
Definition: icecrown_citadel.h:120
@ DATA_PRINCE_TALDARAM_GUID
Definition: icecrown_citadel.h:118
@ DATA_PRINCE_VALANAR_GUID
Definition: icecrown_citadel.h:119
@ DATA_VALITHRIA_TRIGGER
Definition: icecrown_citadel.h:133
@ DATA_TERENAS_MENETHIL
Definition: icecrown_citadel.h:137
@ DATA_SISTER_SVALNA
Definition: icecrown_citadel.h:102
@ DATA_CROK_SCOURGEBANE
Definition: icecrown_citadel.h:128
@ DATA_SAURFANG_EVENT_NPC
Definition: icecrown_citadel.h:111
@ DATA_HIGHLORD_TIRION_FORDRING
Definition: icecrown_citadel.h:135
@ DATA_ENEMY_GUNSHIP
Definition: icecrown_citadel.h:138
@ DATA_CAPTAIN_RUPERT
Definition: icecrown_citadel.h:132
@ DATA_PUTRICIDE_TABLE
Definition: icecrown_citadel.h:114
@ DATA_CAPTAIN_ARNATH
Definition: icecrown_citadel.h:129
@ DATA_PRINCE_KELESETH_GUID
Definition: icecrown_citadel.h:117
@ DATA_CAPTAIN_GRONDEL
Definition: icecrown_citadel.h:131
@ DATA_CAPTAIN_BRANDON
Definition: icecrown_citadel.h:130
@ DATA_ARTHAS_PLATFORM
Definition: icecrown_citadel.h:136
static ObjectGuid const Empty
Definition: ObjectGuid.h:122
ObjectGuid SindragosaGauntletGUID
Definition: instance_icecrown_citadel.cpp:1917
ObjectGuid RimefangGUID
Definition: instance_icecrown_citadel.cpp:1920
ObjectGuid SpinestalkerGUID
Definition: instance_icecrown_citadel.cpp:1919
ObjectGuid BloodCouncilGUIDs[3]
Definition: instance_icecrown_citadel.cpp:1907
ObjectGuid TheLichKingGUID
Definition: instance_icecrown_citadel.cpp:1922
ObjectGuid TerenasMenethilGUID
Definition: instance_icecrown_citadel.cpp:1924
ObjectGuid DeathbringerSaurfangEventGUID
Definition: instance_icecrown_citadel.cpp:1894
ObjectGuid ValithriaDreamwalkerGUID
Definition: instance_icecrown_citadel.cpp:1913
ObjectGuid BloodCouncilControllerGUID
Definition: instance_icecrown_citadel.cpp:1908
ObjectGuid FestergutGUID
Definition: instance_icecrown_citadel.cpp:1903
ObjectGuid ValithriaLichKingGUID
Definition: instance_icecrown_citadel.cpp:1914
ObjectGuid HighlordTirionFordringGUID
Definition: instance_icecrown_citadel.cpp:1923
ObjectGuid BloodQueenLanaThelGUID
Definition: instance_icecrown_citadel.cpp:1909
ObjectGuid ArthasPlatformGUID
Definition: instance_icecrown_citadel.cpp:1925
ObjectGuid ProfessorPutricideGUID
Definition: instance_icecrown_citadel.cpp:1905
ObjectGuid CrokCaptainGUIDs[4]
Definition: instance_icecrown_citadel.cpp:1911
ObjectGuid DeathbringerSaurfangGUID
Definition: instance_icecrown_citadel.cpp:1892
ObjectGuid LadyDeathwhisperGUID
Definition: instance_icecrown_citadel.cpp:1887
ObjectGuid PutricadeTrapGUID
Definition: instance_icecrown_citadel.cpp:1916
ObjectGuid GunshipGUID
Definition: instance_icecrown_citadel.cpp:1889
ObjectGuid PutricideTableGUID
Definition: instance_icecrown_citadel.cpp:1906
ObjectGuid EnemyGunshipGUID
Definition: instance_icecrown_citadel.cpp:1890
ObjectGuid ValithriaTriggerGUID
Definition: instance_icecrown_citadel.cpp:1915
ObjectGuid SindragosaGUID
Definition: instance_icecrown_citadel.cpp:1918
ObjectGuid RotfaceGUID
Definition: instance_icecrown_citadel.cpp:1904
ObjectGuid SisterSvalnaGUID
Definition: instance_icecrown_citadel.cpp:1912
ObjectGuid SaurfangTeleportGUID
Definition: instance_icecrown_citadel.cpp:1896
ObjectGuid DeathbringerSaurfangDoorGUID
Definition: instance_icecrown_citadel.cpp:1893
ObjectGuid CrokScourgebaneGUID
Definition: instance_icecrown_citadel.cpp:1910

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
1023 {
1025 return;
1026 if (drop && HeroicAttempts)
1027 {
1030 SaveToDB();
1031 }
1032 if (HeroicAttempts)
1033 return;
1036 if (professor->IsAlive())
1037 professor->SetVisible(false);
1039 if (bq->IsAlive())
1040 bq->SetVisible(false);
1042 if (sindra->IsAlive())
1043 sindra->SetVisible(false);
1044 if (Creature* theLichKing = instance->GetCreature(TheLichKingGUID))
1045 if (theLichKing->IsAlive())
1046 theLichKing->SetVisible(false);
1047 }
Definition: Creature.h:46
void SaveToDB()
Definition: InstanceScript.cpp:41
void DoUpdateWorldState(uint32 worldstateId, uint32 worldstateValue)
Definition: InstanceScript.cpp:519
Creature * GetCreature(ObjectGuid const guid)
Definition: Map.cpp:3293
uint32 GetData(uint32 type) const override
Definition: instance_icecrown_citadel.cpp:905

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

Referenced by SetBossState().

◆ OnCreatureCreate()

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

Reimplemented from InstanceScript.

274 {
276 {
277 Map::PlayerList const& players = instance->GetPlayers();
278 if (!players.IsEmpty())
279 if (Player* player = players.begin()->GetSource())
280 TeamIdInInstance = player->GetTeamId();
281 }
282
283 // apply ICC buff to pets/summons
285 if (Unit* owner = creature->GetOwner())
286 if (Player* plr = owner->ToPlayer())
287 {
288 SpellAreaForAreaMapBounds saBounds = sSpellMgr->GetSpellAreaForAreaMapBounds(4812);
289 for (SpellAreaForAreaMap::const_iterator itr = saBounds.first; itr != saBounds.second; ++itr)
290 if ((itr->second->raceMask & plr->getRaceMask()) && !creature->HasAura(itr->second->spellId))
291 if (SpellInfo const* si = sSpellMgr->GetSpellInfo(itr->second->spellId))
293 creature->AddAura(itr->second->spellId, creature);
294 }
295
296 // fighting npcs in Rampart of Skulls
297 std::string name1("Skybreaker ");
298 std::string name2("Kor'kron ");
299 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))
301
302 // pussywizard: check weekly here, before possible UpdateEntry
303 // allow creating all of them, because after killing Marrowgar some have to appear, so just hide them
304 switch (creature->GetEntry())
305 {
313 for (uint8 i = 0; i < WeeklyNPCs; ++i)
314 if (WeeklyQuestData[i].creatureEntry == creature->GetEntry())
315 {
316 WeeklyQuestNpcGUID[i] = creature->GetGUID();
317 if (WeeklyQuestId10 != WeeklyQuestData[i].questId[0])
318 creature->SetVisible(false);
320 creature->SetVisible(false);
321 }
322 break;
323 }
324
325 switch (creature->GetEntry())
326 {
330 break;
334 break;
335 case NPC_TORTUNOK:
338 break;
342 break;
346 break;
349 creature->UpdateEntry(NPC_YILI);
350 break;
351 case NPC_VOL_GUK:
353 creature->UpdateEntry(NPC_JEDEBIA);
354 break;
358 break;
362
363 // Xinef: summon in case of instance unload
365 {
370 }
371 break;
373 LadyDeathwhisperGUID = creature->GetGUID();
374 break;
376 DeathbringerSaurfangGUID = creature->GetGUID();
377 break;
380 {
382 creature->LoadEquipment();
383 }
385 creature->LastUsedScriptID = creature->GetScriptId();
386 break;
389 break;
392 {
394 creature->LoadEquipment();
395 }
396 break;
400 break;
401 case NPC_FESTERGUT:
402 FestergutGUID = creature->GetGUID();
403 break;
404 case NPC_ROTFACE:
405 RotfaceGUID = creature->GetGUID();
406 break;
408 ProfessorPutricideGUID = creature->GetGUID();
410 creature->SetVisible(false);
411 break;
413 BloodCouncilGUIDs[0] = creature->GetGUID();
414 break;
416 BloodCouncilGUIDs[1] = creature->GetGUID();
417 break;
419 BloodCouncilGUIDs[2] = creature->GetGUID();
420 break;
423 break;
425 BloodQueenLanaThelGUID = creature->GetGUID();
427 creature->SetVisible(false);
428 break;
430 CrokScourgebaneGUID = creature->GetGUID();
431 break;
432 // we can only do this because there are no gaps in their entries
437 CrokCaptainGUIDs[creature->GetEntry() - NPC_CAPTAIN_ARNATH] = creature->GetGUID();
438 break;
440 SisterSvalnaGUID = creature->GetGUID();
441 break;
443 ValithriaDreamwalkerGUID = creature->GetGUID();
444 break;
446 ValithriaLichKingGUID = creature->GetGUID();
447 break;
449 ValithriaTriggerGUID = creature->GetGUID();
450 break;
452 PutricadeTrapGUID = creature->GetGUID();
453 break;
455 SindragosaGauntletGUID = creature->GetGUID();
456 break;
457 case NPC_SINDRAGOSA:
458 SindragosaGUID = creature->GetGUID();
460 creature->SetVisible(false);
461 break;
462 case NPC_SPINESTALKER:
463 SpinestalkerGUID = creature->GetGUID();
464 break;
465 case NPC_RIMEFANG:
466 RimefangGUID = creature->GetGUID();
467 break;
469 // Teleporter visual at center
471 creature->CastSpell(creature, SPELL_ARTHAS_TELEPORTER_CEREMONY, false);
472 break;
474 TheLichKingGUID = creature->GetGUID();
476 creature->SetVisible(false);
477 break;
480 break;
483 TerenasMenethilGUID = creature->GetGUID();
484 break;
487 creature->DespawnOrUnsummon(1);
488 break;
491 {
492 uint32 spellId = 0;
493 if (creature->GetPositionY() > 2790.0f && creature->GetPositionZ() > 420.0f)
494 spellId = BLOOD_BEAM_VISUAL_RHAND;
495 else if (creature->GetPositionY() < 2790.0f && creature->GetPositionZ() > 420.0f)
496 spellId = BLOOD_BEAM_VISUAL_LHAND;
497 else if (creature->GetPositionY() < 2790.0f && creature->GetPositionZ() < 420.0f)
498 spellId = BLOOD_BEAM_VISUAL_LLEG;
499 else
500 spellId = BLOOD_BEAM_VISUAL_RLEG;
501 creature->m_Events.AddEvent(new DelayedCastMincharEvent(creature, spellId), creature->m_Events.CalculateTime(1000));
502 }
503 break;
506 if (!creature->IsAlive())
507 creature->Respawn();
508 break;
509 default:
510 break;
511 }
512 }
std::uint8_t uint8
Definition: Define.h:110
@ NOTIFY_AI_RELOCATION
Definition: Object.h:63
@ UNIT_MASK_CONTROLABLE_GUARDIAN
Definition: Unit.h:683
@ UNIT_MASK_GUARDIAN
Definition: Unit.h:677
@ UNIT_MASK_MINION
Definition: Unit.h:676
@ SPELL_AURA_MOD_INCREASE_HEALTH_PERCENT
Definition: SpellAuraDefines.h:196
std::pair< SpellAreaForAreaMap::const_iterator, SpellAreaForAreaMap::const_iterator > SpellAreaForAreaMapBounds
Definition: SpellMgr.h:543
#define sSpellMgr
Definition: SpellMgr.h:818
@ NPC_THE_LICH_KING
Definition: chapter5.cpp:239
@ NPC_PRINCE_TALDARAM
Definition: ahnkahet.h:43
@ NPC_RIMEFANG
Definition: pit_of_saron.h:71
@ NPC_SINDRAGOSA
Definition: pit_of_saron.h:72
@ NPC_THE_LICH_KING_VALITHRIA
Definition: icecrown_citadel.h:316
@ NPC_UVLUS_BANEFIRE
Definition: icecrown_citadel.h:163
@ NPC_MURADIN_BRONZEBEARD_DUMMY
Definition: icecrown_citadel.h:175
@ NPC_GREEN_DRAGON_COMBAT_TRIGGER
Definition: icecrown_citadel.h:307
@ NPC_CAPTAIN_BRANDON
Definition: icecrown_citadel.h:290
@ NPC_INFILTRATOR_MINCHAR_BQ
Definition: icecrown_citadel.h:189
@ NPC_TERENAS_MENETHIL_FROSTMOURNE
Definition: icecrown_citadel.h:347
@ NPC_SKYBREAKER_LIEUTENANT
Definition: icecrown_citadel.h:184
@ NPC_PRINCE_VALANAR
Definition: icecrown_citadel.h:274
@ NPC_YILI
Definition: icecrown_citadel.h:166
@ NPC_VALITHRIA_DREAMWALKER
Definition: icecrown_citadel.h:306
@ NPC_ALRIN_THE_AGILE
Definition: icecrown_citadel.h:188
@ NPC_ALLIANCE_COMMANDER
Definition: icecrown_citadel.h:158
@ NPC_TALAN_MOONSTRIKE
Definition: icecrown_citadel.h:162
@ NPC_ALANA_MOONSTRIKE
Definition: icecrown_citadel.h:160
@ NPC_UTHER_THE_LIGHTBRINGER_QUEST
Definition: icecrown_citadel.h:178
@ NPC_ALCHEMIST_ADRIANNA
Definition: icecrown_citadel.h:187
@ NPC_IKFIRUS_THE_VILE
Definition: icecrown_citadel.h:165
@ NPC_HIGH_OVERLORD_SAURFANG_DUMMY
Definition: icecrown_citadel.h:174
@ NPC_DEATHBRINGER_SAURFANG
Definition: icecrown_citadel.h:240
@ NPC_KING_VARIAN_WRYNN
Definition: icecrown_citadel.h:172
@ NPC_KOR_KRON_GENERAL
Definition: icecrown_citadel.h:157
@ NPC_BLOOD_ORB_CONTROLLER
Definition: icecrown_citadel.h:275
@ NPC_LADY_JAINA_PROUDMOORE_QUEST
Definition: icecrown_citadel.h:176
@ NPC_MURADIN_BRONZEBEARD_QUEST
Definition: icecrown_citadel.h:177
@ NPC_KOR_KRON_LIEUTENANT
Definition: icecrown_citadel.h:183
@ NPC_SE_SKYBREAKER_MARINE
Definition: icecrown_citadel.h:247
@ NPC_CAPTAIN_RUPERT
Definition: icecrown_citadel.h:292
@ NPC_FESTERGUT
Definition: icecrown_citadel.h:251
@ NPC_HARAGG_THE_UNSEEN
Definition: icecrown_citadel.h:169
@ NPC_INFILTRATOR_MINCHAR
Definition: icecrown_citadel.h:182
@ NPC_BLOOD_QUEEN_LANA_THEL
Definition: icecrown_citadel.h:285
@ NPC_HIGHLORD_TIRION_FORDRING_LK
Definition: icecrown_citadel.h:346
@ NPC_MALFUS_GRIMFROST
Definition: icecrown_citadel.h:164
@ NPC_JEDEBIA
Definition: icecrown_citadel.h:168
@ NPC_ROTFACE
Definition: icecrown_citadel.h:255
@ NPC_SE_HIGH_OVERLORD_SAURFANG
Definition: icecrown_citadel.h:245
@ NPC_MINCHAR_BEAM_STALKER
Definition: icecrown_citadel.h:191
@ NPC_LADY_SYLVANAS_WINDRUNNER_QUEST
Definition: icecrown_citadel.h:179
@ NPC_PROFESSOR_PUTRICIDE
Definition: icecrown_citadel.h:261
@ NPC_NIBY_THE_ALMIGHTY
Definition: icecrown_citadel.h:170
@ NPC_VOL_GUK
Definition: icecrown_citadel.h:167
@ NPC_CROK_SCOURGEBANE
Definition: icecrown_citadel.h:288
@ NPC_SE_KOR_KRON_REAVER
Definition: icecrown_citadel.h:246
@ NPC_TORTUNOK
Definition: icecrown_citadel.h:159
@ NPC_LADY_DEATHWHISPER
Definition: icecrown_citadel.h:200
@ NPC_GARROSH_HELLSCREAM
Definition: icecrown_citadel.h:171
@ NPC_SISTER_SVALNA
Definition: icecrown_citadel.h:302
@ NPC_SPINESTALKER
Definition: icecrown_citadel.h:324
@ NPC_GERARDO_THE_SUAVE
Definition: icecrown_citadel.h:161
@ NPC_PRINCE_KELESETH
Definition: icecrown_citadel.h:272
@ NPC_CAPTAIN_GRONDEL
Definition: icecrown_citadel.h:291
@ NPC_SE_MURADIN_BRONZEBEARD
Definition: icecrown_citadel.h:243
@ NPC_VALITHRIA_DREAMWALKER_QUEST
Definition: icecrown_citadel.h:192
@ NPC_TERENAS_MENETHIL_FROSTMOURNE_H
Definition: icecrown_citadel.h:349
@ NPC_CAPTAIN_ARNATH
Definition: icecrown_citadel.h:289
uint32 const WeeklyNPCs
Definition: icecrown_citadel.h:39
Position const UtherSpawnPos
Definition: instance_icecrown_citadel.cpp:141
@ BLOOD_BEAM_VISUAL_LHAND
Definition: instance_icecrown_citadel.cpp:60
@ BLOOD_BEAM_VISUAL_RHAND
Definition: instance_icecrown_citadel.cpp:59
@ BLOOD_BEAM_VISUAL_LLEG
Definition: instance_icecrown_citadel.cpp:61
@ BLOOD_BEAM_VISUAL_RLEG
Definition: instance_icecrown_citadel.cpp:62
Position const SylvanasSpawnPos
Definition: instance_icecrown_citadel.cpp:142
WeeklyQuest const WeeklyQuestData[WeeklyNPCs]
Definition: instance_icecrown_citadel.cpp:126
Position const MuradinSpawnPos
Definition: instance_icecrown_citadel.cpp:140
Position const JainaSpawnPos
Definition: instance_icecrown_citadel.cpp:139
void AddEvent(BasicEvent *Event, uint64 e_time, bool set_addtime=true)
Definition: EventProcessor.h:105
uint64 CalculateTime(uint64 t_offset) const
Definition: EventProcessor.cpp:158
void Respawn(bool force=false)
Definition: Creature.cpp:2005
void LoadEquipment(int8 id=1, bool force=false)
Definition: Creature.cpp:1777
uint32 GetScriptId() const
Definition: Creature.cpp:2947
CreatureData const * GetCreatureData() const
Definition: Creature.h:198
bool UpdateEntry(uint32 entry, const CreatureData *data=nullptr, bool changelevel=true, bool updateAI=false)
Definition: Creature.cpp:483
void DespawnOrUnsummon(Milliseconds msTimeToDespawn, Seconds forcedRespawnTimer)
Definition: Creature.cpp:2108
Player * ToPlayer()
Definition: Object.h:195
uint32 GetEntry() const
Definition: Object.h:109
static ObjectGuid GetGUID(Object const *o)
Definition: Object.h:106
uint32 LastUsedScriptID
Definition: Object.h:582
std::string const & GetName() const
Definition: Object.h:446
Transport * GetTransport() const
Definition: Object.h:585
void AddToNotify(uint16 f)
Definition: Object.cpp:2907
bool IsPlayer() const
Definition: ObjectGuid.h:170
float GetExactDist2d(const float x, const float y) const
Definition: Position.h:166
float GetPositionZ() const
Definition: Position.h:119
float GetPositionY() const
Definition: Position.h:118
void SetVisible(bool x)
Definition: Unit.cpp:14129
Unit * GetOwner() const
Definition: Unit.cpp:10560
bool CanHaveThreatList() const
Definition: Unit.cpp:14509
Aura * AddAura(uint32 spellId, Unit *target)
Definition: Unit.cpp:19031
bool IsAlive() const
Definition: Unit.h:1808
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
Definition: Unit.cpp:5610
EventProcessor m_Events
Definition: Unit.h:2094
SpellCastResult CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition: Unit.cpp:1169
ObjectGuid GetOwnerGUID() const
Definition: Unit.h:1814
uint32 HasUnitTypeMask(uint32 mask) const
Definition: Unit.h:1407
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:2129
Definition: SpellInfo.h:314
Definition: instance_icecrown_citadel.cpp:167
ObjectGuid WeeklyQuestNpcGUID[WeeklyNPCs]
Definition: instance_icecrown_citadel.cpp:1876

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

◆ OnCreatureRemove()

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

Reimplemented from InstanceScript.

515 {
516 if (creature->GetEntry() == NPC_SINDRAGOSA)
518 }
void Clear()
Definition: ObjectGuid.h:140

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

◆ OnGameObjectCreate()

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

Reimplemented from InstanceScript.

670 {
672 {
673 Map::PlayerList const& players = instance->GetPlayers();
674 if (!players.IsEmpty())
675 if (Player* player = players.begin()->GetSource())
676 TeamIdInInstance = player->GetTeamId();
677 }
678
679 switch (go->GetEntry())
680 {
686 break;
687 case GO_GEIST_ALARM_1:
688 case GO_GEIST_ALARM_2:
689 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());
690 break;
692 case GO_ICEWALL:
708 case GO_ICE_WALL:
710 AddDoor(go, true);
711 break;
715 break;
716 // these 2 gates are functional only on 25man modes
719 if (instance->Is25ManRaid())
720 AddDoor(go, true);
721 break;
724 break;
728 break;
738 break;
741 AddDoor(go, true);
742 break;
748 break;
751 break;
752 case GO_PLAGUE_SIGIL:
753 PlagueSigilGUID = go->GetGUID();
756 break;
761 break;
766 break;
770 break;
772 PutricideGateGUIDs[0] = go->GetGUID();
775 else
777 break;
779 PutricideGateGUIDs[1] = go->GetGUID();
782 else
784 break;
786 PutricidePipeGUIDs[0] = go->GetGUID();
789 break;
791 PutricidePipeGUIDs[1] = go->GetGUID();
794 break;
799 break;
804 break;
805 case GO_DRINK_ME:
807 break;
813 go->SetLootRecipient(valithria);
815 break;
820 break;
822 // this enables movement at The Frozen Throne, when printed this value is 0.000000f
823 // however, when represented as integer client will accept only this value
826 break;
830 break;
833 break;
836 break;
839 break;
843 go->SetRespawnTime(7 * DAY);
844 break;
848 go->SetRespawnTime(7 * DAY);
849 break;
853 go->SetRespawnTime(7 * DAY);
854 break;
856 AddDoor(go, true);
860 break;
861 default:
862 break;
863 }
864 }
constexpr auto DAY
Definition: Common.h:58
uint32 urand(uint32 min, uint32 max)
Definition: Random.cpp:44
@ GO_STATE_ACTIVE_ALTERNATIVE
Definition: GameObjectData.h:692
@ GAMEOBJECT_PARENTROTATION
Definition: UpdateFields.h:400
@ GO_ICE_WALL
Definition: halls_of_reflection.h:98
@ GO_SINDRAGOSA_SHORTCUT_ENTRANCE_DOOR
Definition: icecrown_citadel.h:455
@ GO_SCIENTIST_AIRLOCK_DOOR_GREEN
Definition: icecrown_citadel.h:422
@ GO_SCOURGE_TRANSPORTER_LK
Definition: icecrown_citadel.h:462
@ GO_THE_SKYBREAKER_H
Definition: icecrown_citadel.h:395
@ GO_GREEN_PLAGUE_MONSTER_ENTRANCE
Definition: icecrown_citadel.h:419
@ GO_SCIENTIST_AIRLOCK_DOOR_COLLISION
Definition: icecrown_citadel.h:420
@ GO_ORGRIMS_HAMMER_A
Definition: icecrown_citadel.h:402
@ GO_DOODAD_ICECROWN_GREENTUBES02
Definition: icecrown_citadel.h:424
@ GO_DEATHBRINGER_S_CACHE_10N
Definition: icecrown_citadel.h:411
@ GO_CACHE_OF_THE_DREAMWALKER_25H
Definition: icecrown_citadel.h:451
@ GO_GAS_RELEASE_VALVE
Definition: icecrown_citadel.h:428
@ GO_FROZEN_LAVAMAN
Definition: icecrown_citadel.h:472
@ GO_BLOODWING_SIGIL
Definition: icecrown_citadel.h:439
@ GO_DEATHBRINGER_S_CACHE_25N
Definition: icecrown_citadel.h:412
@ GO_LADY_DEATHWHISPER_ELEVATOR
Definition: icecrown_citadel.h:391
@ GO_CACHE_OF_THE_DREAMWALKER_25N
Definition: icecrown_citadel.h:449
@ GO_BLOOD_ELF_COUNCIL_DOOR_RIGHT
Definition: icecrown_citadel.h:434
@ GO_SINDRAGOSA_SHORTCUT_EXIT_DOOR
Definition: icecrown_citadel.h:456
@ GO_DOODAD_ICECROWN_SNOWEDGEWARNING01
Definition: icecrown_citadel.h:471
@ GO_DOODAD_ICECROWN_ICEWALL02
Definition: icecrown_citadel.h:385
@ GO_ICEWALL
Definition: icecrown_citadel.h:386
@ GO_LAVAMAN_PILLARS_UNCHAINED
Definition: icecrown_citadel.h:474
@ GO_SPIRIT_ALARM_1
Definition: icecrown_citadel.h:377
@ GO_ORATORY_OF_THE_DAMNED_ENTRANCE
Definition: icecrown_citadel.h:390
@ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_04
Definition: icecrown_citadel.h:447
@ GO_SCIENTIST_AIRLOCK_DOOR_ORANGE
Definition: icecrown_citadel.h:421
@ GO_ARTHAS_PLATFORM
Definition: icecrown_citadel.h:463
@ GO_GEIST_ALARM_2
Definition: icecrown_citadel.h:382
@ GO_CACHE_OF_THE_DREAMWALKER_10N
Definition: icecrown_citadel.h:448
@ GO_GREEN_DRAGON_BOSS_EXIT
Definition: icecrown_citadel.h:443
@ GO_ORANGE_PLAGUE_MONSTER_ENTRANCE
Definition: icecrown_citadel.h:418
@ GO_PLAGUE_SIGIL
Definition: icecrown_citadel.h:427
@ GO_DOODAD_ICECROWN_BLOODPRINCE_DOOR_01
Definition: icecrown_citadel.h:437
@ GO_DEATHBRINGER_S_CACHE_10H
Definition: icecrown_citadel.h:413
@ GO_DOODAD_ICECROWN_THRONEFROSTYWIND01
Definition: icecrown_citadel.h:465
@ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_02
Definition: icecrown_citadel.h:445
@ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_03
Definition: icecrown_citadel.h:446
@ GO_SIGIL_OF_THE_FROSTWING
Definition: icecrown_citadel.h:459
@ GO_OOZE_RELEASE_VALVE
Definition: icecrown_citadel.h:429
@ GO_SCOURGE_TRANSPORTER_FIRST
Definition: icecrown_citadel.h:374
@ GO_SPIRIT_ALARM_3
Definition: icecrown_citadel.h:379
@ GO_SPIRIT_ALARM_2
Definition: icecrown_citadel.h:378
@ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_01
Definition: icecrown_citadel.h:444
@ GO_BLOOD_ELF_COUNCIL_DOOR
Definition: icecrown_citadel.h:433
@ GO_DOODAD_ICECROWN_ORANGETUBES02
Definition: icecrown_citadel.h:423
@ GO_DEATHBRINGER_S_CACHE_25H
Definition: icecrown_citadel.h:414
@ GO_GEIST_ALARM_1
Definition: icecrown_citadel.h:381
@ GO_DOODAD_ICECROWN_GRATE_01
Definition: icecrown_citadel.h:438
@ GO_LORD_MARROWGAR_S_ENTRANCE
Definition: icecrown_citadel.h:387
@ GO_SCIENTIST_ENTRANCE
Definition: icecrown_citadel.h:425
@ GO_LAVAMAN_PILLARS_CHAINED
Definition: icecrown_citadel.h:473
@ GO_DRINK_ME
Definition: icecrown_citadel.h:426
@ GO_CRIMSON_HALL_DOOR
Definition: icecrown_citadel.h:432
@ GO_DOODAD_ICECROWN_THRONEFROSTYEDGE01
Definition: icecrown_citadel.h:466
@ GO_CACHE_OF_THE_DREAMWALKER_10H
Definition: icecrown_citadel.h:450
@ GO_SPIRIT_ALARM_4
Definition: icecrown_citadel.h:380
@ GO_GREEN_DRAGON_BOSS_ENTRANCE
Definition: icecrown_citadel.h:442
@ GO_SINDRAGOSA_ENTRANCE_DOOR
Definition: icecrown_citadel.h:454
@ GO_ARTHAS_PRECIPICE
Definition: icecrown_citadel.h:464
@ GO_FLAG_INTERACT_COND
Definition: SharedDefines.h:1577
@ GO_FLAG_NODESPAWN
Definition: SharedDefines.h:1580
@ GO_FLAG_NOT_SELECTABLE
Definition: SharedDefines.h:1579
@ GO_FLAG_LOCKED
Definition: SharedDefines.h:1576
void SetGoState(GOState state)
Definition: GameObject.cpp:2467
void SetGameObjectFlag(GameObjectFlags flags)
Definition: GameObject.h:220
void SetRespawnTime(int32 respawn)
Definition: GameObject.cpp:1301
void SetLootRecipient(Creature *creature)
Definition: GameObject.cpp:2691
void RemoveGameObjectFlag(GameObjectFlags flags)
Definition: GameObject.h:221
void SetPosition(float x, float y, float z, float o)
Definition: GameObject.cpp:2907
void SetUInt32Value(uint16 index, uint32 value)
Definition: Object.cpp:650
float GetOrientation() const
Definition: Position.h:120
float GetPositionX() const
Definition: Position.h:117
void HandleGameObject(ObjectGuid guid, bool open, GameObject *go=nullptr)
Definition: InstanceScript.cpp:109
void AddDoor(GameObject *door, bool add)
Definition: InstanceScript.cpp:283
bool Is25ManRaid() const
Definition: Map.h:452
ObjectGuid LadyDeathwisperElevatorGUID
Definition: instance_icecrown_citadel.cpp:1888
ObjectGuid FrozenThroneWarningGUID
Definition: instance_icecrown_citadel.cpp:1929
ObjectGuid ScourgeTransporterFirstGUID
Definition: instance_icecrown_citadel.cpp:1884
ObjectGuid DeathbringersCacheGUID
Definition: instance_icecrown_citadel.cpp:1895
ObjectGuid PutricideEnteranceDoorGUID
Definition: instance_icecrown_citadel.cpp:1877
ObjectGuid FrostwingSigilGUID
Definition: instance_icecrown_citadel.cpp:1899
ObjectGuid ArthasPrecipiceGUID
Definition: instance_icecrown_citadel.cpp:1926
ObjectGuid PutricideCollisionGUID
Definition: instance_icecrown_citadel.cpp:1902
ObjectGuid GunshipArmoryGUID
Definition: instance_icecrown_citadel.cpp:1891
ObjectGuid FrozenThroneWindGUID
Definition: instance_icecrown_citadel.cpp:1928
ObjectGuid OozeReleaseValveGUID
Definition: instance_icecrown_citadel.cpp:1880
ObjectGuid GasReleaseValveGUID
Definition: instance_icecrown_citadel.cpp:1879
ObjectGuid PutricidePipeGUIDs[2]
Definition: instance_icecrown_citadel.cpp:1900
ObjectGuid FrozenThroneEdgeGUID
Definition: instance_icecrown_citadel.cpp:1927
ObjectGuid PillarsChainedGUID
Definition: instance_icecrown_citadel.cpp:1931
ObjectGuid FrozenBolvarGUID
Definition: instance_icecrown_citadel.cpp:1930
ObjectGuid PutricideGateGUIDs[2]
Definition: instance_icecrown_citadel.cpp:1901
ObjectGuid BloodwingSigilGUID
Definition: instance_icecrown_citadel.cpp:1898
ObjectGuid PlagueSigilGUID
Definition: instance_icecrown_citadel.cpp:1897
ObjectGuid PillarsUnchainedGUID
Definition: instance_icecrown_citadel.cpp:1932
void SetPositionTraps(GameObject *go)
Definition: instance_icecrown_citadel.cpp:1847

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

◆ OnGameObjectRemove()

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

Reimplemented from InstanceScript.

References InstanceScript::AddDoor(), 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, and GunshipGUID.

◆ OnPlayerAreaUpdate()

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

Reimplemented from InstanceScript.

229 {
230 if (newArea == 4890 /*Putricide's Laboratory of Alchemical Horrors and Fun*/ ||
231 newArea == 4891 /*The Sanctum of Blood*/ ||
232 newArea == 4889 /*The Frost Queen's Lair*/ ||
233 newArea == 4859 /*The Frozen Throne*/ ||
234 newArea == 4910 /*Frostmourne*/)
235 {
236 player->SendInitWorldStates(player->GetZoneId(), player->GetAreaId());
237 }
238 else
239 {
241 }
242 }
uint32 GetAreaId() const
Definition: Object.cpp:3083
uint32 GetZoneId() const
Definition: Object.cpp:3075
void SendUpdateWorldState(uint32 variable, uint32 value) const
Definition: PlayerUpdates.cpp:2194
void SendInitWorldStates(uint32 zone, uint32 area)
Definition: Player.cpp:8064

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

◆ OnPlayerEnter()

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

Reimplemented from InstanceScript.

245 {
247 TeamIdInInstance = player->GetTeamId();
248
249 // for professor putricide hc
252
254 SpawnGunship();
255
256 if (IsBuffAvailable)
257 {
258 SpellAreaForAreaMapBounds saBounds = sSpellMgr->GetSpellAreaForAreaMapBounds(4812);
259 for (SpellAreaForAreaMap::const_iterator itr = saBounds.first; itr != saBounds.second; ++itr)
260 if ((itr->second->raceMask & player->getRaceMask()) && !player->HasAura(itr->second->spellId))
261 {
262 if (SpellInfo const* si = sSpellMgr->GetSpellInfo(itr->second->spellId))
263 {
265 {
266 DoCastSpellOnPlayer(player, itr->second->spellId, false, false);
267 }
268 }
269 }
270 }
271 }
@ SPELL_OOZE_VARIABLE
Definition: instance_icecrown_citadel.cpp:58
@ SPELL_GAS_VARIABLE
Definition: instance_icecrown_citadel.cpp:57
TeamId GetTeamId(bool original=false) const
Definition: Player.h:2059
uint32 getRaceMask() const
Definition: Unit.h:1425
void DoRemoveAurasDueToSpellOnPlayers(uint32 spell)
Definition: InstanceScript.cpp:587
void DoCastSpellOnPlayer(Player *player, uint32 spell, bool includePets, bool includeControlled)
Definition: InstanceScript.cpp:615
void SpawnGunship()
Definition: instance_icecrown_citadel.cpp:1207

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

◆ OnUnitDeath()

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

Reimplemented from ZoneScript.

597 {
598 Creature* creature = unit->ToCreature();
599 if (!creature)
600 return;
601
602 // fighting npcs in Rampart of Skulls
603 std::string name1("Skybreaker ");
604 std::string name2("Kor'kron ");
605 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))
606 if (!creature->GetLootRecipient())
607 creature->m_Events.AddEvent(new RespawnEvent(*creature), creature->m_Events.CalculateTime(3000));
608
609 switch (creature->GetEntry())
610 {
617 crok->AI()->SetGUID(creature->GetGUID(), ACTION_VRYKUL_DEATH);
618 break;
620 if (FrostwyrmGUIDs.empty())
621 return;
622
623 if (creature->AI()->GetData(1/*DATA_FROSTWYRM_OWNER*/) == DATA_SPINESTALKER)
624 {
625 SpinestalkerTrash.erase(creature->GetSpawnId());
626 if (SpinestalkerTrash.empty())
627 if (Creature* spinestalk = instance->GetCreature(SpinestalkerGUID))
628 spinestalk->AI()->DoAction(ACTION_START_FROSTWYRM);
629 }
630 else
631 {
632 RimefangTrash.erase(creature->GetSpawnId());
633 if (RimefangTrash.empty())
634 if (Creature* spinestalk = instance->GetCreature(RimefangGUID))
635 spinestalk->AI()->DoAction(ACTION_START_FROSTWYRM);
636 }
637 break;
638 case NPC_RIMEFANG:
639 case NPC_SPINESTALKER:
640 {
642 return;
643
645 return;
646
647 FrostwyrmGUIDs.erase(creature->GetSpawnId());
648 if (FrostwyrmGUIDs.empty())
649 {
652 boss->AI()->DoAction(ACTION_START_FROSTWYRM);
653 }
654 break;
655 }
657 if (Creature* c = unit->SummonCreature(WORLD_TRIGGER, *unit, TEMPSUMMON_TIMED_DESPAWN, 10000))
658 {
659 c->CastSpell(c, VOID_ZONE_VISUAL, true);
661 unit->ToCreature()->DespawnOrUnsummon(3000);
662 }
663 break;
664 default:
665 break;
666 }
667 }
@ TEMPSUMMON_MANUAL_DESPAWN
Definition: Object.h:49
@ TEMPSUMMON_TIMED_DESPAWN
Definition: Object.h:44
#define WORLD_TRIGGER
Definition: Unit.h:36
@ NPC_YMIRJAR_DEATHBRINGER
Definition: pit_of_saron.h:104
Position const SindragosaSpawnPos
Definition: boss_sindragosa.cpp:166
@ NPC_YMIRJAR_BATTLE_MAIDEN
Definition: icecrown_citadel.h:297
@ NPC_YMIRJAR_WARLORD
Definition: icecrown_citadel.h:301
@ NPC_RISEN_DEATHSPEAKER_SERVANT
Definition: icecrown_citadel.h:210
@ NPC_YMIRJAR_HUNTRESS
Definition: icecrown_citadel.h:300
@ NPC_FROSTWING_WHELP
Definition: icecrown_citadel.h:327
@ NPC_YMIRJAR_FROSTBINDER
Definition: icecrown_citadel.h:299
@ NPC_DEATHSPEAKER_SERVANT
Definition: icecrown_citadel.h:209
@ ACTION_VRYKUL_DEATH
Definition: icecrown_citadel.h:529
@ ACTION_START_FROSTWYRM
Definition: icecrown_citadel.h:532
@ VOID_ZONE_VISUAL
Definition: instance_icecrown_citadel.cpp:63
virtual uint32 GetData(uint32) const
Definition: UnitAI.h:202
Player * GetLootRecipient() const
Definition: Creature.cpp:1278
ObjectGuid::LowType GetSpawnId() const
Definition: Creature.h:67
CreatureAI * AI() const
Definition: Creature.h:135
Creature * ToCreature()
Definition: Object.h:197
TempSummon * SummonCreature(uint32 id, const Position &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0, SummonPropertiesEntry const *properties=nullptr, bool visibleBySummonerOnly=false) const
Definition: Object.cpp:2318
void LoadGrid(float x, float y)
Definition: Map.cpp:494
Definition: instance_icecrown_citadel.cpp:151

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

◆ ProcessEvent()

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

Reimplemented from ZoneScript.

1741 {
1742 switch (eventId)
1743 {
1746 {
1747 if (GameObject* go = source->ToGameObject())
1748 if (MotionTransport* transport = go->ToMotionTransport())
1749 transport->UnloadNonStaticPassengers();
1750 source->AddObjectToRemoveList();
1751 }
1752 break;
1755 {
1756 captain->AI()->DoAction(ACTION_ENEMY_GUNSHIP_TALK);
1757 }
1758 [[fallthrough]];
1761 if (GameObject* go = source->ToGameObject())
1762 if (MotionTransport* transport = go->ToMotionTransport())
1763 transport->EnableMovement(false);
1764 break;
1766 if (GameObject* go = source->ToGameObject())
1767 if (MotionTransport* transport = go->ToMotionTransport())
1768 {
1769 transport->setActive(false);
1770 transport->EnableMovement(false);
1771 //After movement is stopped remove the backpack
1773 }
1775 captain->AI()->DoAction(ACTION_EXIT_SHIP);
1776 break;
1777
1778 case EVENT_QUAKE:
1780 warning->SetGoState(GO_STATE_ACTIVE);
1781 Events.ScheduleEvent(EVENT_QUAKE_SHATTER, 5s);
1782 break;
1785 {
1786 platform->SetDestructibleState(GO_DESTRUCTIBLE_DESTROYED);
1787 Events.ScheduleEvent(EVENT_REBUILD_PLATFORM, 1500ms);
1788 }
1789 break;
1790 case EVENT_TELEPORT_TO_FROSMOURNE: // Harvest Soul (normal mode)
1792 {
1793 terenas->AI()->DoAction(ACTION_FROSTMOURNE_INTRO);
1794 std::list<Creature*> triggers;
1796 if (!triggers.empty())
1797 {
1798 triggers.sort(Acore::ObjectDistanceOrderPred(terenas, false));
1799 Unit* visual = triggers.front();
1800 visual->CastSpell(visual, SPELL_FROSTMOURNE_TELEPORT_VISUAL, true);
1801 }
1802
1803 if (Creature* warden = instance->SummonCreature(NPC_SPIRIT_WARDEN, SpiritWardenSpawn, nullptr, 65000))
1804 {
1805 terenas->AI()->AttackStart(warden);
1806 warden->AddThreat(terenas, 300000.0f);
1807 }
1808 }
1809 break;
1812 {
1815 {
1817 for (uint8 i = 0; i < 2; ++i)
1819 go->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
1820 }
1821 else
1824 SaveToDB();
1825 }
1826 break;
1829 {
1832 {
1834 for (uint8 i = 0; i < 2; ++i)
1836 go->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
1837 }
1838 else
1841 SaveToDB();
1842 }
1843 break;
1844 }
1845 }
Events
Definition: alterac_valley.cpp:53
Position const TerenasSpawn
Definition: boss_the_lich_king.cpp:316
Position const SpiritWardenSpawn
Definition: boss_the_lich_king.cpp:318
@ NPC_SPIRIT_WARDEN
Definition: icecrown_citadel.h:348
@ NPC_IGB_HIGH_OVERLORD_SAURFANG
Definition: icecrown_citadel.h:218
@ NPC_WORLD_TRIGGER_INFINITE_AOI
Definition: icecrown_citadel.h:361
@ ACTION_FROSTMOURNE_INTRO
Definition: icecrown_citadel.h:536
@ ACTION_ENEMY_GUNSHIP_TALK
Definition: icecrown_citadel.h:511
@ ACTION_EXIT_SHIP
Definition: icecrown_citadel.h:512
@ SPELL_FROSTMOURNE_TELEPORT_VISUAL
Definition: icecrown_citadel.h:66
@ EVENT_QUAKE_SHATTER
Definition: instance_icecrown_citadel.cpp:50
@ EVENT_REBUILD_PLATFORM
Definition: instance_icecrown_citadel.cpp:51
@ EVENT_PLAYERS_GUNSHIP_SPAWN
Definition: instance_icecrown_citadel.cpp:34
@ EVENT_SECOND_REMORSELESS_WINTER
Definition: instance_icecrown_citadel.cpp:41
@ EVENT_ENEMY_GUNSHIP_DESPAWN
Definition: instance_icecrown_citadel.cpp:38
@ EVENT_TELEPORT_TO_FROSMOURNE
Definition: instance_icecrown_citadel.cpp:42
@ EVENT_PLAYERS_GUNSHIP_COMBAT
Definition: instance_icecrown_citadel.cpp:35
@ EVENT_ROTFACE_VALVE_USED
Definition: instance_icecrown_citadel.cpp:44
@ EVENT_FESTERGUT_VALVE_USED
Definition: instance_icecrown_citadel.cpp:43
@ EVENT_QUAKE
Definition: instance_icecrown_citadel.cpp:40
@ EVENT_ENEMY_GUNSHIP_COMBAT
Definition: instance_icecrown_citadel.cpp:37
@ EVENT_PLAYERS_GUNSHIP_SAURFANG
Definition: instance_icecrown_citadel.cpp:36
@ GO_DESTRUCTIBLE_DESTROYED
Definition: SharedDefines.h:1601
MotionTransport * ToMotionTransport()
Definition: GameObject.h:331
GameObject * ToGameObject()
Definition: Object.h:202
void AddObjectToRemoveList()
Definition: Object.cpp:2115
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
Definition: Object.cpp:2409
Definition: Transport.h:48
void RemoveBackPack()
Definition: instance_icecrown_citadel.cpp:1049

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

◆ ReadSaveDataMore()

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

Reimplemented from InstanceScript.

1596 {
1597 data >> HeroicAttempts;
1598
1599 uint32 temp = 0;
1600 data >> temp;
1601
1602 if (temp == IN_PROGRESS)
1603 {
1605 }
1606 else
1607 {
1609 }
1610
1611 data >> BloodQuickeningState;
1612 data >> BloodQuickeningMinutes;
1613
1615 {
1616 Events.ScheduleEvent(EVENT_UPDATE_EXECUTION_TIME, 1min);
1619 }
1620
1621 data >> WeeklyQuestId10;
1622 data >> PutricideEventProgress;
1623 PutricideEventProgress &= ~PUTRICIDE_EVENT_FLAG_TRAP_INPROGRESS;
1625 data >> BloodPrinceTrashCount;
1626 data >> IsBuffAvailable;
1628 }
@ EVENT_UPDATE_EXECUTION_TIME
Definition: instance_icecrown_citadel.cpp:49
void SetData(uint32 type, uint32 data) override
Definition: instance_icecrown_citadel.cpp:1221

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

◆ RemoveBackPack()

void instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::RemoveBackPack ( )
inline
1050 {
1051 for (auto const& itr : instance->GetPlayers())
1052 if (Player* _player = itr.GetSource())
1053 _player->DestroyItemCount(ITEM_GOBLIN_ROCKET_PACK, _player->GetItemCount(ITEM_GOBLIN_ROCKET_PACK), true);
1054 }
@ ITEM_GOBLIN_ROCKET_PACK
Definition: icecrown_citadel.h:583

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

◆ SetBossState()

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

Reimplemented from InstanceScript.

1057 {
1058 if (!InstanceScript::SetBossState(type, state))
1059 return false;
1060
1061 switch (type)
1062 {
1064 if (state == DONE)
1065 {
1067 SetData(DATA_WEEKLY_QUEST_ID, 0); // show required hidden npcs
1069 transporter->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
1070 SaveToDB();
1071 }
1072 break;
1074 if (state == DONE)
1075 SpawnGunship();
1076 break;
1078 if (state == DONE)
1079 {
1081 {
1082 loot->SetLootRecipient(instance);
1083 loot->RemoveGameObjectFlag(GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN);
1084 }
1085 }
1086 else if (state == FAIL)
1087 Events.ScheduleEvent(EVENT_RESPAWN_GUNSHIP, 30s);
1088 break;
1090 switch (state)
1091 {
1092 case DONE:
1094 {
1096 loot->SetLootRecipient(deathbringer);
1097 loot->RemoveGameObjectFlag(GO_FLAG_LOCKED | GO_FLAG_NOT_SELECTABLE | GO_FLAG_NODESPAWN);
1098 }
1099 [[fallthrough]];
1100 case NOT_STARTED:
1102 {
1103 HandleGameObject(SaurfangTeleportGUID, true, teleporter);
1104 teleporter->RemoveGameObjectFlag(GO_FLAG_IN_USE);
1105 }
1106 break;
1107 default:
1108 break;
1109 }
1110 break;
1111 case DATA_FESTERGUT:
1112 if (state == DONE)
1113 {
1115 go->RemoveGameObjectFlag(GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE);
1117 HandleDropAttempt(false);
1118 }
1119 break;
1120 case DATA_ROTFACE:
1121 if (state == DONE)
1122 {
1124 go->RemoveGameObjectFlag(GO_FLAG_INTERACT_COND | GO_FLAG_NOT_SELECTABLE);
1126 HandleDropAttempt(false);
1127 }
1128 break;
1132 if (state == DONE)
1134 else if (state == FAIL)
1136 if (state == DONE && !instance->IsHeroic() && LichKingHeroicAvailable)
1137 {
1139 SaveToDB();
1140 }
1141 break;
1144 if (state == DONE)
1146 else if (state == FAIL)
1148 if (state == DONE && !instance->IsHeroic() && LichKingHeroicAvailable)
1149 {
1151 SaveToDB();
1152 }
1153 break;
1155 if (state == DONE)
1156 SetData(DATA_WEEKLY_QUEST_ID, GetData(DATA_WEEKLY_QUEST_ID)); // will show weekly quest npc if necessary
1157 break;
1158 case DATA_SINDRAGOSA:
1160 if (state == DONE)
1162 else if (state == FAIL)
1164 if (state == DONE && !instance->IsHeroic() && LichKingHeroicAvailable)
1165 {
1167 SaveToDB();
1168 }
1169 break;
1170 case DATA_THE_LICH_KING:
1171 {
1172 // dramatically increase visibility range during fight to seeing frostmourne room
1173 instance->SetVisibilityRange(state == IN_PROGRESS ? 500.0f : 200.0f);
1174
1175 if (state == FAIL)
1176 {
1177 Events.CancelEvent(EVENT_QUAKE_SHATTER);
1178 Events.CancelEvent(EVENT_REBUILD_PLATFORM);
1179
1181 }
1182
1183 if (state == DONE)
1184 {
1186 bolvar->SetRespawnTime(7 * DAY);
1188 pillars->SetRespawnTime(7 * DAY);
1190 pillars->SetRespawnTime(7 * DAY);
1191
1197 }
1198 break;
1199 }
1200 default:
1201 break;
1202 }
1203
1204 return true;
1205 }
static First const & RAND(First const &first, Second const &second, Rest const &... rest)
Definition: CreatureAIImpl.h:30
@ FAIL
Definition: InstanceScript.h:58
@ QUEST_RESIDUE_RENDEZVOUS_10
Definition: icecrown_citadel.h:545
@ QUEST_SECURING_THE_RAMPARTS_10
Definition: icecrown_citadel.h:543
@ QUEST_BLOOD_QUICKENING_10
Definition: icecrown_citadel.h:547
@ QUEST_DEPROGRAMMING_10
Definition: icecrown_citadel.h:541
@ QUEST_RESPITE_FOR_A_TORMENTED_SOUL_10
Definition: icecrown_citadel.h:549
@ EVENT_RESPAWN_GUNSHIP
Definition: instance_icecrown_citadel.cpp:52
@ GO_FLAG_IN_USE
Definition: SharedDefines.h:1575
virtual bool SetBossState(uint32 id, EncounterState state)
Definition: InstanceScript.cpp:317
void SetVisibilityRange(float range)
Definition: Map.h:351
void HandleDropAttempt(bool drop=true)
Definition: instance_icecrown_citadel.cpp:1022
void CheckLichKingAvailability()
Definition: instance_icecrown_citadel.cpp:1573

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(), Position::GetPositionX(), Position::GetPositionY(), GO_FLAG_IN_USE, GO_FLAG_INTERACT_COND, GO_FLAG_LOCKED, GO_FLAG_NODESPAWN, GO_FLAG_NOT_SELECTABLE, GunshipArmoryGUID, HandleDropAttempt(), InstanceScript::HandleGameObject(), IN_PROGRESS, InstanceScript::instance, Map::IsHeroic(), JainaSpawnPos, LichKingHeroicAvailable, Map::LoadGrid(), MuradinSpawnPos, NOT_STARTED, NPC_LADY_JAINA_PROUDMOORE_QUEST, NPC_LADY_SYLVANAS_WINDRUNNER_QUEST, NPC_MURADIN_BRONZEBEARD_QUEST, NPC_UTHER_THE_LIGHTBRINGER_QUEST, OozeReleaseValveGUID, PillarsChainedGUID, PillarsUnchainedGUID, PlagueSigilGUID, PUTRICIDE_EVENT_FLAG_TRAP_FINISHED, PutricideEnteranceDoorGUID, PutricideEventProgress, QUEST_BLOOD_QUICKENING_10, QUEST_DEPROGRAMMING_10, QUEST_RESIDUE_RENDEZVOUS_10, QUEST_RESPITE_FOR_A_TORMENTED_SOUL_10, QUEST_SECURING_THE_RAMPARTS_10, RAND(), SaurfangTeleportGUID, InstanceScript::SaveToDB(), ScourgeTransporterFirstGUID, InstanceScript::SetBossState(), SetData(), Map::SetVisibilityRange(), SpawnGunship(), Map::SummonCreature(), SylvanasSpawnPos, UtherSpawnPos, and WeeklyQuestId10.

Referenced by SetData(), and SpawnGunship().

◆ SetData()

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

Reimplemented from ZoneScript.

1222 {
1223 switch (type)
1224 {
1226 IsBuffAvailable = !!data;
1227 if (!IsBuffAvailable)
1228 {
1229 instance->DoForAllPlayers([&](Player* player)
1230 {
1231 player->UpdateAreaDependentAuras(player->GetAreaId());
1232 for (Unit::ControlSet::const_iterator itr = player->m_Controlled.begin(); itr != player->m_Controlled.end(); ++itr)
1233 {
1234 Unit::AuraMap& am = (*itr)->GetOwnedAuras();
1235 for (Unit::AuraMap::iterator itra = am.begin(); itra != am.end();)
1236 switch (itra->second->GetId())
1237 {
1238 // Hellscream's Warsong
1239 case 73816:
1240 case 73818:
1241 case 73819:
1242 case 73820:
1243 case 73821:
1244 case 73822:
1245 // Strength of Wrynn
1246 case 73762:
1247 case 73824:
1248 case 73825:
1249 case 73826:
1250 case 73827:
1251 case 73828:
1252 (*itr)->RemoveOwnedAura(itra);
1253 break;
1254 default:
1255 ++itra;
1256 break;
1257 }
1258 }
1259 });
1260 }
1261 SaveToDB();
1262 break;
1264 for (uint8 i = 0; i < WeeklyNPCs; ++i)
1265 if (WeeklyQuestData[i].questId[0] == WeeklyQuestId10 && (WeeklyQuestData[i].creatureEntry != NPC_VALITHRIA_DREAMWALKER_QUEST || GetBossState(DATA_VALITHRIA_DREAMWALKER) == DONE) /*appears after killing valithria*/)
1266 if (WeeklyQuestNpcGUID[i])
1268 c->SetVisible(true);
1269 break;
1271 if (data == NOT_STARTED)
1272 {
1273 PutricideEventProgress &= ~PUTRICIDE_EVENT_FLAG_TRAP_INPROGRESS;
1276 {
1277 for (uint8 i = 0; i < 2; ++i)
1279 go->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
1280 }
1281 else
1282 {
1285 }
1286 SaveToDB();
1287 }
1288 else if (data == IN_PROGRESS)
1289 {
1294 SaveToDB();
1295 }
1296 else if (data == DONE)
1297 {
1298 PutricideEventProgress &= ~PUTRICIDE_EVENT_FLAG_TRAP_INPROGRESS;
1303 {
1304 for (uint8 i = 0; i < 2; ++i)
1306 go->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
1307 }
1308 else
1309 {
1312 }
1313 SaveToDB();
1314 }
1315 return;
1317 IsBonedEligible = !!data;
1318 break;
1320 IsOozeDanceEligible = !!data;
1321 break;
1323 IsNauseaEligible = !!data;
1324 break;
1326 IsOrbWhispererEligible = !!data;
1327 break;
1329 FrostwyrmGUIDs.insert(data);
1330 break;
1331 case DATA_SPINESTALKER:
1332 SpinestalkerTrash.insert(data);
1333 break;
1334 case DATA_RIMEFANG:
1335 RimefangTrash.insert(data);
1336 break;
1338 ColdflameJetsState = data;
1339 if (ColdflameJetsState == DONE)
1340 SaveToDB();
1341 break;
1343 {
1345 break;
1346 if (BloodQuickeningState == data)
1347 break;
1349 break;
1350
1351 switch (data)
1352 {
1353 case IN_PROGRESS:
1354 Events.ScheduleEvent(EVENT_UPDATE_EXECUTION_TIME, 1min);
1358 break;
1359 case DONE:
1363 break;
1364 default:
1365 break;
1366 }
1367
1368 BloodQuickeningState = data;
1369 SaveToDB();
1370 break;
1371 }
1373 {
1374 if (++BloodPrinceTrashCount >= 4)
1375 {
1378 }
1379 SaveToDB();
1380 break;
1381 }
1382 default:
1383 break;
1384 }
1385 }
@ DATA_ORB_WHISPERER_ACHIEVEMENT
Definition: icecrown_citadel.h:116
@ DATA_OOZE_DANCE_ACHIEVEMENT
Definition: icecrown_citadel.h:113
@ DATA_NAUSEA_ACHIEVEMENT
Definition: icecrown_citadel.h:115
@ DATA_BLOOD_PRINCE_TRASH
Definition: icecrown_citadel.h:107
@ DATA_BONED_ACHIEVEMENT
Definition: icecrown_citadel.h:112
@ DATA_BPC_TRASH_DIED
Definition: icecrown_citadel.h:148
void UpdateAreaDependentAuras(uint32 area_id)
Definition: PlayerUpdates.cpp:1818
ControlSet m_Controlled
Definition: Unit.h:1867
void DoForAllPlayers(std::function< void(Player *)> exec)
Definition: Map.cpp:3792
bool SetBossState(uint32 type, EncounterState state) override
Definition: instance_icecrown_citadel.cpp:1056

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

Referenced by SetBossState().

◆ SetPositionTraps()

void instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SetPositionTraps ( GameObject go)
inline
1848 {
1849 std::vector<Position> trapPositions;
1850
1851 switch (go->GetEntry())
1852 {
1853 case GO_SPIRIT_ALARM_1:
1854 trapPositions = GoSpiritAlarm_1;
1855 break;
1856 case GO_SPIRIT_ALARM_2:
1857 trapPositions = GoSpiritAlarm_2;
1858 break;
1859 case GO_SPIRIT_ALARM_3:
1860 trapPositions = GoSpiritAlarm_3;
1861 break;
1862 case GO_SPIRIT_ALARM_4:
1863 trapPositions = GoSpiritAlarm_4;
1864 break;
1865 default:
1866 return;
1867 }
1868
1870 }
std::vector< Position > GoSpiritAlarm_1
Definition: instance_icecrown_citadel.cpp:145
std::vector< Position > GoSpiritAlarm_4
Definition: instance_icecrown_citadel.cpp:148
std::vector< Position > GoSpiritAlarm_3
Definition: instance_icecrown_citadel.cpp:147
std::vector< Position > GoSpiritAlarm_2
Definition: instance_icecrown_citadel.cpp:146
auto SelectRandomContainerElement(C const &container) -> typename std::add_const< decltype(*std::begin(container))>::type &
Definition: Containers.h:135
void Relocate(float x, float y)
Definition: Position.h:73

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

Referenced by OnGameObjectCreate().

◆ SpawnGunship()

void instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SpawnGunship ( )
inline
1208 {
1209 if (!GunshipGUID && instance->HavePlayers())
1210 {
1213 if (MotionTransport* gunship = sTransportMgr->CreateTransport(gunshipEntry, 0, instance))
1214 {
1215 GunshipGUID = gunship->GetGUID();
1216 gunship->setActive(false);
1217 }
1218 }
1219 }
#define sTransportMgr
Definition: TransportMgr.h:163
bool HavePlayers() const
Definition: Map.h:475

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

Referenced by OnPlayerEnter(), and SetBossState().

◆ Update()

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

Reimplemented from InstanceScript.

1644 {
1645 // Xinef: A Feast of Souls (24547) whispers
1646 if (LichKingRandomWhisperTimer <= diff)
1647 {
1649 Map::PlayerList const& players = instance->GetPlayers();
1650 if (!players.IsEmpty())
1651 if (Player* player = players.begin()->GetSource())
1652 if (player->GetQuestStatus(QUEST_A_FEAST_OF_SOULS) == QUEST_STATUS_INCOMPLETE)
1653 {
1654 uint8 id = urand(0, 15);
1655 std::string const& text = sCreatureTextMgr->GetLocalizedChatString(NPC_THE_LICH_KING_LH, 0, 20 + id, 0, LOCALE_enUS);
1656 WorldPacket data;
1658 player->PlayDirectSound(17235 + id);
1659 player->SendDirectMessage(&data);
1660 }
1661 }
1662 else
1664
1665 if (DarkwhisperElevatorTimer <= diff)
1666 {
1670 if (StaticTransport* trans = elevator->ToStaticTransport())
1671 {
1672 if (trans->GetGoState() == GO_STATE_READY && trans->GetPathProgress() == 0)
1673 trans->SetGoState(GO_STATE_ACTIVE);
1674 else if (trans->GetGoState() == GO_STATE_ACTIVE && trans->GetPathProgress() == trans->GetPauseTime())
1675 trans->SetGoState(GO_STATE_READY);
1676 }
1677 }
1678 else
1680
1682 return;
1683
1684 Events.Update(diff);
1685
1686 while (uint32 eventId = Events.ExecuteEvent())
1687 {
1688 switch (eventId)
1689 {
1691 {
1694 {
1695 Events.ScheduleEvent(EVENT_UPDATE_EXECUTION_TIME, 1min);
1698 }
1699 else
1700 {
1704 bq->AI()->DoAction(ACTION_KILL_MINCHAR);
1705 }
1706 SaveToDB();
1707 break;
1708 }
1710 {
1712 platform->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED);
1714 edge->SetGoState(GO_STATE_ACTIVE);
1716 wind->SetGoState(GO_STATE_READY);
1718 warning->SetGoState(GO_STATE_READY);
1719 if (Creature* theLichKing = instance->GetCreature(TheLichKingGUID))
1720 theLichKing->AI()->DoAction(ACTION_RESTORE_LIGHT);
1721 break;
1722 }
1725 platform->SetDestructibleState(GO_DESTRUCTIBLE_REBUILDING, nullptr, true);
1727 edge->SetGoState(GO_STATE_READY);
1729 wind->SetGoState(GO_STATE_ACTIVE);
1730 break;
1732 SpawnGunship();
1733 break;
1734 default:
1735 break;
1736 }
1737 }
1738 }
@ LOCALE_enUS
Definition: Common.h:75
@ GO_STATE_READY
Definition: GameObjectData.h:691
@ CHAT_TAG_NONE
Definition: Player.h:838
@ QUEST_STATUS_INCOMPLETE
Definition: QuestDef.h:103
#define sCreatureTextMgr
Definition: CreatureTextMgr.h:119
@ NPC_THE_LICH_KING_LH
Definition: icecrown_citadel.h:155
@ QUEST_A_FEAST_OF_SOULS
Definition: icecrown_citadel.h:555
@ ACTION_RESTORE_LIGHT
Definition: icecrown_citadel.h:535
@ ACTION_KILL_MINCHAR
Definition: icecrown_citadel.h:526
@ CHAT_MSG_MONSTER_WHISPER
Definition: SharedDefines.h:3139
@ LANG_UNIVERSAL
Definition: SharedDefines.h:707
@ GO_DESTRUCTIBLE_REBUILDING
Definition: SharedDefines.h:1602
@ GO_DESTRUCTIBLE_DAMAGED
Definition: SharedDefines.h:1600
static size_t BuildChatPacket(WorldPacket &data, ChatMsg chatType, Language language, ObjectGuid senderGUID, ObjectGuid receiverGUID, std::string_view message, uint8 chatTag, std::string const &senderName="", std::string const &receiverName="", uint32 achievementId=0, bool gmMessage=false, std::string const &channelName="")
Definition: Chat.cpp:192
StaticTransport * ToStaticTransport()
Definition: GameObject.h:328
Definition: Transport.h:112
Definition: WorldPacket.h:27

References ACTION_KILL_MINCHAR, ACTION_RESTORE_LIGHT, MapRefMgr::begin(), ChatHandler::BuildChatPacket(), CHAT_MSG_MONSTER_WHISPER, CHAT_TAG_NONE, DATA_ICECROWN_GUNSHIP_BATTLE, DATA_LADY_DEATHWHISPER, DATA_THE_LICH_KING, DONE, ObjectGuid::Empty, EVENT_QUAKE_SHATTER, EVENT_REBUILD_PLATFORM, EVENT_RESPAWN_GUNSHIP, EVENT_UPDATE_EXECUTION_TIME, FAIL, Reference< TO, FROM >::GetSource(), GO_DESTRUCTIBLE_DAMAGED, GO_DESTRUCTIBLE_REBUILDING, GO_STATE_ACTIVE, GO_STATE_READY, IN_MILLISECONDS, IN_PROGRESS, LinkedListHead::IsEmpty(), LANG_UNIVERSAL, LOCALE_enUS, NPC_THE_LICH_KING_LH, QUEST_A_FEAST_OF_SOULS, QUEST_STATUS_INCOMPLETE, sCreatureTextMgr, GameObject::ToStaticTransport(), urand(), WORLDSTATE_EXECUTION_TIME, and WORLDSTATE_SHOW_TIMER.

◆ WriteSaveDataMore()

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

Reimplemented from InstanceScript.

1631 {
1632 data << HeroicAttempts << ' '
1633 << ColdflameJetsState << ' '
1634 << BloodQuickeningState << ' '
1635 << BloodQuickeningMinutes << ' '
1636 << WeeklyQuestId10 << ' '
1637 << PutricideEventProgress << ' '
1638 << uint32(LichKingHeroicAvailable ? 1 : 0) << ' '
1639 << BloodPrinceTrashCount << ' '
1640 << uint32(IsBuffAvailable ? 1 : 0);
1641 }

Member Data Documentation

◆ ArthasPlatformGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::ArthasPlatformGUID
protected

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ ArthasPrecipiceGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::ArthasPrecipiceGUID
protected

Referenced by OnGameObjectCreate().

◆ BloodCouncilControllerGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::BloodCouncilControllerGUID
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ BloodCouncilGUIDs

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

Referenced by GetGuidData(), and OnCreatureCreate().

◆ BloodPrinceTrashCount

uint32 instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::BloodPrinceTrashCount
protected

◆ BloodQueenLanaThelGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::BloodQueenLanaThelGUID
protected

◆ BloodQuickeningMinutes

uint16 instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::BloodQuickeningMinutes
protected

◆ BloodQuickeningState

uint32 instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::BloodQuickeningState
protected

◆ BloodwingSigilGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::BloodwingSigilGUID
protected

Referenced by OnGameObjectCreate(), and SetBossState().

◆ ColdflameJetsState

uint32 instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::ColdflameJetsState
protected

◆ CrokCaptainGUIDs

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

Referenced by GetGuidData(), and OnCreatureCreate().

◆ CrokScourgebaneGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::CrokScourgebaneGUID
protected

◆ DarkwhisperElevatorTimer

uint32 instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::DarkwhisperElevatorTimer
protected

◆ DeathbringerSaurfangDoorGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::DeathbringerSaurfangDoorGUID
protected

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ DeathbringerSaurfangEventGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::DeathbringerSaurfangEventGUID
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ DeathbringerSaurfangGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::DeathbringerSaurfangGUID
protected

◆ DeathbringersCacheGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::DeathbringersCacheGUID
protected

Referenced by OnGameObjectCreate(), and SetBossState().

◆ EnemyGunshipGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::EnemyGunshipGUID
protected

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ Events

EventMap instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::Events
protected

◆ FestergutGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::FestergutGUID
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ FrostwingSigilGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::FrostwingSigilGUID
protected

Referenced by OnGameObjectCreate(), and SetBossState().

◆ FrostwyrmGUIDs

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

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

◆ FrozenBolvarGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::FrozenBolvarGUID
protected

Referenced by OnGameObjectCreate(), and SetBossState().

◆ FrozenThroneEdgeGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::FrozenThroneEdgeGUID
protected

Referenced by OnGameObjectCreate().

◆ FrozenThroneWarningGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::FrozenThroneWarningGUID
protected

Referenced by OnGameObjectCreate().

◆ FrozenThroneWindGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::FrozenThroneWindGUID
protected

Referenced by OnGameObjectCreate().

◆ GasReleaseValveGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::GasReleaseValveGUID
protected

Referenced by OnGameObjectCreate(), and SetBossState().

◆ GunshipArmoryGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::GunshipArmoryGUID
protected

Referenced by OnGameObjectCreate(), and SetBossState().

◆ GunshipGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::GunshipGUID
protected

◆ HeroicAttempts

uint32 instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::HeroicAttempts
protected

◆ HighlordTirionFordringGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::HighlordTirionFordringGUID
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ IsBonedEligible

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::IsBonedEligible
protected

◆ IsBuffAvailable

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::IsBuffAvailable
protected

◆ IsNauseaEligible

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::IsNauseaEligible
protected

◆ IsOozeDanceEligible

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::IsOozeDanceEligible
protected

◆ IsOrbWhispererEligible

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::IsOrbWhispererEligible
protected

◆ LadyDeathwhisperGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::LadyDeathwhisperGUID
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ LadyDeathwisperElevatorGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::LadyDeathwisperElevatorGUID
protected

Referenced by OnGameObjectCreate().

◆ LichKingHeroicAvailable

bool instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::LichKingHeroicAvailable
protected

◆ LichKingRandomWhisperTimer

uint32 instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::LichKingRandomWhisperTimer
protected

◆ OozeReleaseValveGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::OozeReleaseValveGUID
protected

Referenced by OnGameObjectCreate(), and SetBossState().

◆ PillarsChainedGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::PillarsChainedGUID
protected

Referenced by OnGameObjectCreate(), and SetBossState().

◆ PillarsUnchainedGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::PillarsUnchainedGUID
protected

Referenced by OnGameObjectCreate(), and SetBossState().

◆ PlagueSigilGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::PlagueSigilGUID
protected

Referenced by OnGameObjectCreate(), and SetBossState().

◆ ProfessorPutricideGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::ProfessorPutricideGUID
protected

◆ PutricadeTrapGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::PutricadeTrapGUID
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ PutricideCollisionGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::PutricideCollisionGUID
protected

Referenced by OnGameObjectCreate(), and SetData().

◆ PutricideEnteranceDoorGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::PutricideEnteranceDoorGUID
protected

◆ PutricideEventProgress

uint32 instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::PutricideEventProgress
protected

◆ PutricideGateGUIDs

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

Referenced by OnGameObjectCreate(), and SetData().

◆ PutricidePipeGUIDs

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

Referenced by OnGameObjectCreate().

◆ PutricideTableGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::PutricideTableGUID
protected

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ RimefangGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::RimefangGUID
protected

◆ RimefangTrash

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

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

◆ RotfaceGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::RotfaceGUID
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ SaurfangTeleportGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SaurfangTeleportGUID
protected

◆ ScourgeTransporterFirstGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::ScourgeTransporterFirstGUID
protected

Referenced by OnGameObjectCreate(), and SetBossState().

◆ SindragosaGauntletGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SindragosaGauntletGUID
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ SindragosaGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SindragosaGUID
protected

◆ SisterSvalnaGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SisterSvalnaGUID
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ SpinestalkerGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::SpinestalkerGUID
protected

◆ SpinestalkerTrash

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

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

◆ TeamIdInInstance

TeamId instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::TeamIdInInstance
protected

◆ TerenasMenethilGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::TerenasMenethilGUID
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ TheLichKingGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::TheLichKingGUID
protected

◆ TheLichKingTeleportGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::TheLichKingTeleportGUID
protected

Referenced by OnGameObjectCreate().

◆ ValithriaDreamwalkerGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::ValithriaDreamwalkerGUID
protected

◆ ValithriaLichKingGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::ValithriaLichKingGUID
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ ValithriaTriggerGUID

ObjectGuid instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::ValithriaTriggerGUID
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ WeeklyQuestId10

uint32 instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::WeeklyQuestId10
protected

◆ WeeklyQuestNpcGUID

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

Referenced by OnCreatureCreate(), and SetData().