33#include <unordered_set>
254 professorPutricide->AI()->JustSummoned(creature);
651 go->
SetLootRecipient(valithria->GetLootRecipient(), valithria->GetLootRecipientGroup());
852 boss->DespawnOrUnsummon();
884 elevator->SetLevel(0);
901 else if (state ==
FAIL)
912 loot->SetLootRecipient(deathbringer->GetLootRecipient(), deathbringer->GetLootRecipientGroup());
975 else if (state ==
DONE)
982 else if (state ==
DONE)
998 else if (state ==
DONE)
1013 else if (state ==
DONE)
1016 bolvar->SetRespawnTime(7 *
DAY);
1018 pillars->SetRespawnTime(7 *
DAY);
1020 pillars->SetRespawnTime(7 *
DAY);
1152 switch (criteria_id)
1331 std::list<Creature*> stalkers;
1333 if (stalkers.empty())
1338 stalkers.pop_front();
1339 for (std::list<Creature*>::iterator itr = stalkers.begin(); itr != stalkers.end(); ++itr)
1340 (*itr)->AI()->Reset();
1449 transport->EnableMovement(
false);
1456 transport->EnableMovement(
false);
1474 std::list<Creature*> triggers;
1476 if (!triggers.empty())
1479 Unit* visual = triggers.front();
1485 terenas->AI()->AttackStart(warden);
1486 warden->GetThreatManager().AddThreat(terenas, 300000.0f,
nullptr,
true,
true);
@ NPC_ALLIANCE_GUNSHIP_CANNON
@ NPC_HORDE_GUNSHIP_CANNON
@ GO_DESTRUCTIBLE_DESTROYED
@ GO_DESTRUCTIBLE_REBUILDING
@ GO_DESTRUCTIBLE_DAMAGED
@ GAMEOBJECT_PARENTROTATION
uint32 const EncounterCount
Position const SindragosaSpawnPos
Position const TerenasSpawn
Position const SpiritWardenSpawn
Position const ValithriaSpawnPos
void SetReactState(ReactStates st)
ObjectGuid::LowType GetSpawnId() const
void SetCorpseDelay(uint32 delay, bool ignoreCorpseDecayRatio=false)
void SetGoState(GOState state)
void RemoveFlag(GameObjectFlags flags)
void SetLootRecipient(Unit *unit, Group *group=nullptr)
void SetFlag(GameObjectFlags flags)
void SetRespawnTime(int32 respawn)
void SetLevel(uint32 level)
Transport * ToTransport()
uint32 GetMaxPlayers() const
Team GetTeamInInstance() const
void SetBossNumber(uint32 number)
virtual bool SetBossState(uint32 id, EncounterState state)
void DoRemoveAurasDueToSpellOnPlayers(uint32 spell, bool includePets=false, bool includeControlled=false)
void HandleGameObject(ObjectGuid guid, bool open, GameObject *go=nullptr)
void DoCastSpellOnPlayer(Player *player, uint32 spell, bool includePets=false, bool includeControlled=false)
EncounterState GetBossState(uint32 id) const
virtual void AddDoor(GameObject *door, bool add)
void LoadDoorData(DoorData const *data)
void DoRemoveAurasDueToSpellOnPlayer(Player *player, uint32 spell, bool includePets=false, bool includeControlled=false)
void LoadBossBoundaries(BossBoundaryData const &data)
bool _SkipCheckRequiredBosses(Player const *player=nullptr) const
void DoUpdateWorldState(uint32 worldstateId, uint32 worldstateValue)
void SetHeaders(std::string const &dataHeaders)
bool SpawnGroupSpawn(uint32 groupId, bool ignoreRespawn=false, bool force=false, std::vector< WorldObject * > *spawnedObjects=nullptr)
void LoadGrid(float x, float y)
uint8 GetSpawnMode() const
GameObject * GetGameObject(ObjectGuid const &guid)
bool IsSpawnGroupActive(uint32 groupId) const
InstanceMap * ToInstanceMap()
TempSummon * SummonCreature(uint32 entry, Position const &pos, SummonPropertiesEntry const *properties=nullptr, uint32 duration=0, WorldObject *summoner=nullptr, uint32 spellId=0, uint32 vehId=0, ObjectGuid privateObjectOwner=ObjectGuid::Empty)
Creature * GetCreature(ObjectGuid const &guid)
static ObjectGuid const Empty
static Creature * ToCreature(Object *o)
static GameObject * ToGameObject(Object *o)
static ObjectGuid GetGUID(Object const *o)
void SetUInt32Value(uint16 index, uint32 value)
virtual uint32 GetData(uint32) const
virtual void SetGUID(ObjectGuid const &, int32=0)
void SetControlled(bool apply, UnitState state)
ObjectGuid GetOwnerGUID() const override
bool SetDisableGravity(bool disable, bool updateAnimTier=true)
void SetEmoteState(Emote emote)
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
void AddObjectToRemoveList()
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
std::vector< WorldStateInfo > Worldstates
instance_icecrown_citadel()
InstanceScript * GetInstanceScript(InstanceMap *map) const override
@ SPELL_STRENGHT_OF_WRYNN
@ SPELL_ARTHAS_TELEPORTER_CEREMONY
@ SPELL_FROSTMOURNE_TELEPORT_VISUAL
@ SPELL_HELLSCREAMS_WARSONG
uint32 const MaxHeroicAttempts
@ GO_SINDRAGOSA_SHORTCUT_ENTRANCE_DOOR
@ GO_SCIENTIST_AIRLOCK_DOOR_GREEN
@ GO_SCOURGE_TRANSPORTER_LICHKING
@ GO_GREEN_PLAGUE_MONSTER_ENTRANCE
@ GO_SCIENTIST_AIRLOCK_DOOR_COLLISION
@ GO_DOODAD_ICECROWN_GREENTUBES02
@ GO_DEATHBRINGER_S_CACHE_10N
@ GO_CACHE_OF_THE_DREAMWALKER_25H
@ GO_SCOURGE_TRANSPORTER_LIGHTSHAMMER
@ GO_GUNSHIP_ARMORY_H_10N
@ GO_SCOURGE_TRANSPORTER_RAMPART
@ GO_DEATHBRINGER_S_CACHE_25N
@ GO_LADY_DEATHWHISPER_ELEVATOR
@ GO_CACHE_OF_THE_DREAMWALKER_25N
@ GO_BLOOD_ELF_COUNCIL_DOOR_RIGHT
@ GO_GUNSHIP_ARMORY_A_10H
@ GO_SINDRAGOSA_SHORTCUT_EXIT_DOOR
@ GO_DOODAD_ICECROWN_SNOWEDGEWARNING01
@ GO_GUNSHIP_ARMORY_A_25N
@ GO_SCOURGE_TRANSPORTER_UPPERSPIRE
@ GO_DOODAD_ICECROWN_ICEWALL02
@ GO_GUNSHIP_ARMORY_A_10N
@ GO_GUNSHIP_ARMORY_H_25H
@ GO_LAVAMAN_PILLARS_UNCHAINED
@ GO_GUNSHIP_ARMORY_H_25N
@ GO_ORATORY_OF_THE_DAMNED_ENTRANCE
@ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_04
@ GO_GUNSHIP_ARMORY_A_25H
@ GO_SCIENTIST_AIRLOCK_DOOR_ORANGE
@ GO_CACHE_OF_THE_DREAMWALKER_10N
@ GO_GREEN_DRAGON_BOSS_EXIT
@ GO_ORANGE_PLAGUE_MONSTER_ENTRANCE
@ GO_SCOURGE_TRANSPORTER_ORATORY
@ GO_DOODAD_ICECROWN_BLOODPRINCE_DOOR_01
@ GO_DEATHBRINGER_S_CACHE_10H
@ GO_DOODAD_ICECROWN_THRONEFROSTYWIND01
@ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_02
@ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_03
@ GO_SIGIL_OF_THE_FROSTWING
@ GO_SCOURGE_TRANSPORTER_SINDRAGOSA
@ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_01
@ GO_BLOOD_ELF_COUNCIL_DOOR
@ GO_DOODAD_ICECROWN_ORANGETUBES02
@ GO_DEATHBRINGER_S_CACHE_25H
@ GO_DOODAD_ICECROWN_GRATE_01
@ GO_LORD_MARROWGAR_S_ENTRANCE
@ GO_LAVAMAN_PILLARS_CHAINED
@ GO_SCOURGE_TRANSPORTER_DEATHBRINGER
@ GO_DOODAD_ICECROWN_THRONEFROSTYEDGE01
@ GO_GUNSHIP_ARMORY_H_10H
@ GO_CACHE_OF_THE_DREAMWALKER_10H
@ GO_GREEN_DRAGON_BOSS_ENTRANCE
@ GO_SINDRAGOSA_ENTRANCE_DOOR
@ WORLDSTATE_SHOW_ATTEMPTS
@ WORLDSTATE_ATTEMPTS_REMAINING
@ WORLDSTATE_ATTEMPTS_MAX
@ WORLDSTATE_EXECUTION_TIME
@ CRITERIA_ONCE_BITTEN_TWICE_SHY_25V
@ CRITERIA_DANCES_WITH_OOZES_10H
@ CRITERIA_ONCE_BITTEN_TWICE_SHY_10V
@ CRITERIA_ORB_WHISPERER_25H
@ CRITERIA_DANCES_WITH_OOZES_10N
@ CRITERIA_DANCES_WITH_OOZES_25H
@ CRITERIA_KILL_LANA_THEL_25M
@ CRITERIA_ONCE_BITTEN_TWICE_SHY_10N
@ CRITERIA_DANCES_WITH_OOZES_25N
@ CRITERIA_ORB_WHISPERER_25N
@ CRITERIA_KILL_LANA_THEL_10M
@ CRITERIA_ORB_WHISPERER_10N
@ CRITERIA_ORB_WHISPERER_10H
@ CRITERIA_ONCE_BITTEN_TWICE_SHY_25N
@ ACTION_FROSTMOURNE_INTRO
@ ACTION_ENEMY_GUNSHIP_TALK
@ DATA_ORB_WHISPERER_ACHIEVEMENT
@ DATA_SINDRAGOSA_FROSTWYRMS
@ DATA_BLOOD_PRINCE_COUNCIL_INTRO
@ DATA_BLOOD_PRINCE_COUNCIL
@ DATA_DEATHBRINGER_SAURFANG
@ DATA_BLOOD_QUEEN_LANA_THEL_COUNCIL
also used by conditions
@ DATA_VALITHRIA_LICH_KING
@ DATA_OOZE_DANCE_ACHIEVEMENT
@ DATA_NAUSEA_ACHIEVEMENT
@ DATA_BLOOD_PRINCES_CONTROL
@ DATA_ICECROWN_GUNSHIP_BATTLE
@ DATA_SAURFANG_EVENT_NPC
@ DATA_VALITHRIA_DREAMWALKER
@ DATA_HIGHLORD_TIRION_FORDRING
@ DATA_UPPERSPIRE_TELE_ACT
@ DATA_BLOOD_QUICKENING_STATE
@ DATA_BLOOD_QUEEN_LANA_THEL
@ DATA_PROFESSOR_PUTRICIDE
@ DATA_NERUBAR_BROODKEEPER_EVENT
@ NPC_THE_LICH_KING_VALITHRIA
@ NPC_HIGH_CAPTAIN_JUSTIN_BARTLETT
@ NPC_GREEN_DRAGON_COMBAT_TRIGGER
@ NPC_INFILTRATOR_MINCHAR_BQ
@ NPC_TERENAS_MENETHIL_FROSTMOURNE
@ NPC_SKY_REAVER_KORM_BLACKSCAR
@ NPC_SKYBREAKER_LIEUTENANT
@ NPC_IGB_MURADIN_BRONZEBEARD
@ NPC_VALITHRIA_DREAMWALKER
@ NPC_YMIRJAR_BATTLE_MAIDEN
@ NPC_BLOOD_QUEEN_LANA_THEL_COUNCIL
@ NPC_ROTTING_FROST_GIANT_25
@ NPC_UTHER_THE_LIGHTBRINGER_QUEST
@ NPC_DEATHBRINGER_SAURFANG
@ NPC_BLOOD_ORB_CONTROLLER
@ NPC_LADY_JAINA_PROUDMOORE_QUEST
@ NPC_MURADIN_BRONZEBEARD_QUEST
@ NPC_KOR_KRON_LIEUTENANT
@ NPC_SE_SKYBREAKER_MARINE
@ NPC_ROTTING_FROST_GIANT_10
@ NPC_INFILTRATOR_MINCHAR
@ NPC_BLOOD_QUEEN_LANA_THEL
@ NPC_HIGHLORD_TIRION_FORDRING_LK
@ NPC_SE_HIGH_OVERLORD_SAURFANG
@ NPC_MINCHAR_BEAM_STALKER
@ NPC_LADY_SYLVANAS_WINDRUNNER_QUEST
@ NPC_PROFESSOR_PUTRICIDE
@ NPC_IGB_HIGH_OVERLORD_SAURFANG
@ NPC_WORLD_TRIGGER_INFINITE_AOI
@ NPC_SKYBREAKER_DECKHAND
@ NPC_ORGRIMS_HAMMER_CREW
@ NPC_YMIRJAR_FROSTBINDER
@ NPC_SE_MURADIN_BRONZEBEARD
@ NPC_VALITHRIA_DREAMWALKER_QUEST
@ NPC_TERENAS_MENETHIL_FROSTMOURNE_H
@ NPC_NERUBAR_BROODKEEPER
@ QUEST_SECURING_THE_RAMPARTS_25
@ QUEST_RESIDUE_RENDEZVOUS_10
@ QUEST_SECURING_THE_RAMPARTS_10
@ QUEST_BLOOD_QUICKENING_10
@ QUEST_RESPITE_FOR_A_TORNMENTED_SOUL_10
@ QUEST_RESPITE_FOR_A_TORNMENTED_SOUL_25
@ QUEST_BLOOD_QUICKENING_25
@ QUEST_RESIDUE_RENDEZVOUS_25
Position const UtherSpawnPos
@ SPAWN_GROUP_ALLIANCE_ROS
void AddSC_instance_icecrown_citadel()
DoorData const doorData[]
Position const SylvanasSpawnPos
@ EVENT_UPDATE_EXECUTION_TIME
BossBoundaryData const boundaries
WeeklyQuest const WeeklyQuestData[WeeklyNPCs]
@ EVENT_PLAYERS_GUNSHIP_SPAWN
@ EVENT_SECOND_REMORSELESS_WINTER
@ EVENT_ENEMY_GUNSHIP_DESPAWN
@ EVENT_PLAYERS_GUNSHIP_COMBAT
@ EVENT_TELEPORT_TO_FROSTMOURNE
@ EVENT_ENEMY_GUNSHIP_COMBAT
@ EVENT_PLAYERS_GUNSHIP_SAURFANG
Position const MuradinSpawnPos
Position const JainaSpawnPos
@ NPC_YMIRJAR_DEATHBRINGER
float GetExactDist2d(const float x, const float y) const
float GetPositionX() const
float GetPositionY() const
bool CheckAchievementCriteriaMeet(uint32 criteria_id, Player const *, Unit const *, uint32) override
ObjectGuid TeleporterSindragosaGUID
void ProcessEvent(WorldObject *source, uint32 eventId) override
std::array< GuidVector, 2 > nerubarBroodkeepersGUIDs
ObjectGuid LadyDeathwisperElevatorGUID
ObjectGuid FrozenThroneWarningGUID
std::unordered_set< ObjectGuid::LowType > FrostwyrmGUIDs
uint32 GetData(uint32 type) const override
void SetData(uint32 type, uint32 data) override
ObjectGuid DeathbringersCacheGUID
ObjectGuid TeleporterDeathBringerGUID
void OnCreatureRemove(Creature *creature) override
ObjectGuid SpinestalkerGUID
void HandleHeroicAttempts()
ObjectGuid LordMarrowgarGUID
ObjectGuid FrostwingSigilGUID
instance_icecrown_citadel_InstanceMapScript(InstanceMap *map)
ObjectGuid BloodCouncilGUIDs[3]
ObjectGuid TheLichKingGUID
uint32 GetGameObjectEntry(ObjectGuid::LowType, uint32 entry) override
void OnPlayerEnter(Player *player) override
bool CheckFrostwingHalls(uint32 bossId) const
ObjectGuid TeleporterLightsHammerGUID
ObjectGuid BloodQueenLanaThelCouncilGUID
ObjectGuid ArthasPrecipiceGUID
ObjectGuid PutricideCollisionGUID
bool SetBossState(uint32 type, EncounterState state) override
uint16 BloodQuickeningMinutes
ObjectGuid TerenasMenethilGUID
ObjectGuid DeathbringerSaurfangEventGUID
ObjectGuid GunshipArmoryGUID
void SetData64(uint32 type, uint64 data) override
ObjectGuid ValithriaDreamwalkerGUID
ObjectGuid BloodCouncilControllerGUID
bool IsOrbWhispererEligible
ObjectGuid FrozenThroneWindGUID
uint32 UpperSpireTeleporterActiveState
ObjectGuid ValithriaLichKingGUID
ObjectGuid HighlordTirionFordringGUID
bool CheckLowerSpire(uint32 bossId) const
uint32 BloodQuickeningState
std::unordered_set< ObjectGuid::LowType > SpinestalkerTrash
ObjectGuid BloodQueenLanaThelGUID
uint32 ColdflameJetsState
void OnUnitDeath(Unit *unit) override
ObjectGuid TeleporterOratoryGUID
ObjectGuid ArthasPlatformGUID
ObjectGuid TeleporterUpperSpireGUID
ObjectGuid TheLichKingTeleportGUID
ObjectGuid ProfessorPutricideGUID
void OnPlayerLeave(Player *player) override
ObjectGuid CrokCaptainGUIDs[4]
bool CheckCrimsonHalls(uint32 bossId) const
void WriteSaveDataMore(std::ostringstream &data) override
ObjectGuid DeathbringerSaurfangGUID
std::unordered_set< ObjectGuid::LowType > RimefangTrash
ObjectGuid PutricidePipeGUIDs[2]
ObjectGuid LadyDeahtwhisperGUID
ObjectGuid TeleporterLichKingGUID
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates &packet) override
ObjectGuid FrozenThroneEdgeGUID
uint32 GetCreatureEntry(ObjectGuid::LowType, CreatureData const *data) override
ObjectGuid PillarsChainedGUID
void OnCreatureCreate(Creature *creature) override
void OnGameObjectCreate(GameObject *go) override
void ReadSaveDataMore(std::istringstream &data) override
void CheckLichKingAvailability()
ObjectGuid PutricideTableGUID
void SetTeleporterState(GameObject *go, bool usable)
ObjectGuid GetGuidData(uint32 type) const override
ObjectGuid EnemyGunshipGUID
ObjectGuid FrozenBolvarGUID
ObjectGuid PutricideGateGUIDs[2]
ObjectGuid ValithriaTriggerGUID
ObjectGuid BloodwingSigilGUID
ObjectGuid SindragosaGUID
void OnGameObjectRemove(GameObject *go) override
bool CheckRequiredBosses(uint32 bossId, Player const *player=nullptr) const override
ObjectGuid PlagueSigilGUID
ObjectGuid SisterSvalnaGUID
ObjectGuid TeleporterRampartsGUID
bool CheckPlagueworks(uint32 bossId) const
ObjectGuid PillarsUnchainedGUID
ObjectGuid DeathbringerSaurfangDoorGUID
ObjectGuid CrokScourgebaneGUID
void Update(uint32 diff) override