32#include <unordered_set>
233 professorPutricide->AI()->JustSummoned(creature);
835 else if (state ==
FAIL)
846 loot->SetTapList(deathbringer->GetTapList());
938 bolvar->SetRespawnTime(7 *
DAY);
940 pillars->SetRespawnTime(7 *
DAY);
942 pillars->SetRespawnTime(7 *
DAY);
1036 switch (criteria_id)
1215 std::list<Creature*> stalkers;
1217 if (stalkers.empty())
1222 stalkers.pop_front();
1223 for (std::list<Creature*>::iterator itr = stalkers.begin(); itr != stalkers.end(); ++itr)
1224 (*itr)->AI()->Reset();
1296 transport->EnableMovement(
false);
1303 transport->EnableMovement(
false);
1321 std::list<Creature*> triggers;
1323 if (!triggers.empty())
1326 Unit* visual = triggers.front();
1332 terenas->AI()->AttackStart(warden);
1333 warden->GetThreatManager().AddThreat(terenas, 300000.0f,
nullptr,
true,
true);
@ GO_DESTRUCTIBLE_DESTROYED
@ GO_DESTRUCTIBLE_REBUILDING
@ GO_DESTRUCTIBLE_DAMAGED
@ GO_STATE_TRANSPORT_ACTIVE
uint32 const EncounterCount
Position const SindragosaSpawnPos
Position const TerenasSpawn
Position const SpiritWardenSpawn
void SetReactState(ReactStates st)
ObjectGuid::LowType GetSpawnId() const
void SetCorpseDelay(uint32 delay, bool ignoreCorpseDecayRatio=false)
void SetGoState(GOState state)
void RemoveFlag(GameObjectFlags flags)
void HandleCustomTypeCommand(GameObjectTypeBase::CustomCommand const &command) const
void SetFlag(GameObjectFlags flags)
void SetRespawnTime(int32 respawn)
Transport * ToTransport()
void SetTapList(GuidUnorderedSet tapList)
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 LoadDungeonEncounterData(T const &encounters)
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 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)
TempSummon * SummonCreature(uint32 entry, Position const &pos, SummonPropertiesEntry const *properties=nullptr, Milliseconds duration=0ms, WorldObject *summoner=nullptr, uint32 spellId=0, uint32 vehId=0, ObjectGuid privateObjectOwner=ObjectGuid::Empty, SmoothPhasingInfo const *smoothPhasingInfo=nullptr)
GameObject * GetGameObject(ObjectGuid const &guid)
bool IsSpawnGroupActive(uint32 groupId) const
InstanceMap * ToInstanceMap()
Creature * GetCreature(ObjectGuid const &guid)
LowType GetCounter() const
static ObjectGuid const Empty
static Creature * ToCreature(Object *o)
static GameObject * ToGameObject(Object *o)
static ObjectGuid GetGUID(Object const *o)
virtual uint32 GetData(uint32 id) const
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
instance_icecrown_citadel()
InstanceScript * GetInstanceScript(InstanceMap *map) const override
@ SPELL_STRENGHT_OF_WRYNN
@ SPELL_ARTHAS_TELEPORTER_CEREMONY
@ SPELL_FROSTMOURNE_TELEPORT_VISUAL
@ SPELL_HELLSCREAMS_WARSONG
@ 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
@ 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_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_IGB_MURADIN_BRONZEBEARD
@ NPC_VALITHRIA_DREAMWALKER
@ NPC_YMIRJAR_BATTLE_MAIDEN
@ NPC_BLOOD_QUEEN_LANA_THEL_COUNCIL
@ 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_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
Position const UtherSpawnPos
@ SPAWN_GROUP_ALLIANCE_ROS
void AddSC_instance_icecrown_citadel()
DoorData const doorData[]
Position const SylvanasSpawnPos
BossBoundaryData const boundaries
@ 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
DungeonEncounterData const encounters[]
Position const JainaSpawnPos
@ NPC_ALLIANCE_GUNSHIP_CANNON
@ NPC_HORDE_GUNSHIP_CANNON
@ NPC_YMIRJAR_DEATHBRINGER
constexpr float GetPositionX() const
constexpr float GetPositionY() const
float GetExactDist2d(const float x, const float y) const
bool CheckAchievementCriteriaMeet(uint32 criteria_id, Player const *, Unit const *, uint32) override
ObjectGuid TeleporterSindragosaGUID
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
ObjectGuid LordMarrowgarGUID
ObjectGuid FrostwingSigilGUID
instance_icecrown_citadel_InstanceMapScript(InstanceMap *map)
void ProcessEvent(WorldObject *source, uint32 eventId, WorldObject *) override
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
ObjectGuid TerenasMenethilGUID
ObjectGuid DeathbringerSaurfangEventGUID
ObjectGuid GunshipArmoryGUID
void SetGuidData(uint32 type, ObjectGuid guid) override
ObjectGuid ValithriaDreamwalkerGUID
ObjectGuid BloodCouncilControllerGUID
bool IsOrbWhispererEligible
ObjectGuid FrozenThroneWindGUID
uint32 UpperSpireTeleporterActiveState
ObjectGuid ValithriaLichKingGUID
ObjectGuid HighlordTirionFordringGUID
void AfterDataLoad() override
bool CheckLowerSpire(uint32 bossId) const
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
ObjectGuid DeathbringerSaurfangGUID
std::unordered_set< ObjectGuid::LowType > RimefangTrash
ObjectGuid PutricidePipeGUIDs[2]
ObjectGuid LadyDeahtwhisperGUID
ObjectGuid TeleporterLichKingGUID
ObjectGuid FrozenThroneEdgeGUID
uint32 GetCreatureEntry(ObjectGuid::LowType, CreatureData const *data) override
ObjectGuid PillarsChainedGUID
void OnCreatureCreate(Creature *creature) override
void OnGameObjectCreate(GameObject *go) 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