Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
icecrown_citadel.h
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6#ifndef ICECROWN_CITADEL_H_
7#define ICECROWN_CITADEL_H_
8
9#include "SpellScript.h"
10#include "Map.h"
11#include "Creature.h"
12#include "SpellMgr.h"
13
14#define ICCScriptName "instance_icecrown_citadel"
15
19
20// Defined in boss_valithria_dreamwalker.cpp
21extern Position const ValithriaSpawnPos;
22// Defined in boss_sindragosa.cpp
23extern Position const SindragosaSpawnPos;
24// Defined in boss_the_lich_king.cpp
25extern Position const TerenasSpawn;
26extern Position const TerenasSpawnHeroic;
27extern Position const SpiritWardenSpawn;
28
29// Shared spells used by more than one script
31{
34
35 // Deathbound Ward
37
38 // Residue Rendezvous
41
42 // The Lich King
45
46 // Shadowmourne questline
49};
50
61
108
110{
111 // At Light's Hammer
117 NPC_TORTUNOK = 37992, // Druid Armor H
118 NPC_ALANA_MOONSTRIKE = 37999, // Druid Armor A
119 NPC_GERARDO_THE_SUAVE = 37993, // Hunter Armor H
120 NPC_TALAN_MOONSTRIKE = 37998, // Hunter Armor A
121 NPC_UVLUS_BANEFIRE = 38284, // Mage Armor H
122 NPC_MALFUS_GRIMFROST = 38283, // Mage Armor A
123 NPC_IKFIRUS_THE_VILE = 37991, // Rogue Armor H
124 NPC_YILI = 37997, // Rogue Armor A
125 NPC_VOL_GUK = 38841, // Shaman Armor H
126 NPC_JEDEBIA = 38840, // Shaman Armor A
127 NPC_HARAGG_THE_UNSEEN = 38181, // Warlock Armor H
128 NPC_NIBY_THE_ALMIGHTY = 38182, // Warlock Armor N
132
133 // Weekly quests
144
145 // Lord Marrowgar
149
150 // Lady Deathwhisper
159
160 // Deathbringer Saurfang
163 NPC_SE_JAINA_PROUDMOORE = 37188, // SE means Saurfang Event
170
171 // Festergut
175
176 // Rotface
177 NPC_ROTFACE = 36627,
182
183 // Professor Putricide
193
194 // Blood Prince Council
206
207 // Blood-Queen Lana'thel
209
210 // Frostwing Halls gauntlet event
227
228 // Valithria Dreamwalker
244
245 // Sindragosa
254
255 // The Lich King
265 NPC_DEFILE = 38757,
274
275 // Generic
277};
278
280{
281 // Lower Spire Trash
286
287 // Lord Marrogar
289 GO_ICEWALL = 201911,
291
292 // Lady Deathwhisper
295
296 // Deathbringer Saurfang
303
304 // Professor Putricide
313 GO_DRINK_ME = 201584,
315
316 // Blood Prince Council
320
321 // Blood-Queen Lana'thel
325
326 // Valithria Dreamwalker
337
338 // Sindragosa
342 GO_ICE_WALL = 202396,
343 GO_ICE_BLOCK = 201722,
345
346 // The Lich King
360};
361
396
398{
399 // Festergut
403
404 // Rotface
409
410 // Blood-Queen Lana'thel
412
413 // Frostwing Halls gauntlet event
415
416 // Sindragosa
419
420 // The Lich King
423};
424
438
447
449{
451};
452
454{
455 public:
456 spell_trigger_spell_from_caster(char const* scriptName, uint32 triggerId) : SpellScriptLoader(scriptName), _triggerId(triggerId) { }
457
459 {
461
462 public:
464
465 bool Validate(SpellInfo const* /*spell*/) OVERRIDE
466 {
467 if (!sSpellMgr->GetSpellInfo(_triggerId))
468 return false;
469 return true;
470 }
471
473 {
475 }
476
481
483 };
484
489
490 private:
492};
493
494template<class AI>
496{
497 if (InstanceMap* instance = creature->GetMap()->ToInstanceMap())
498 if (instance->GetInstanceScript())
499 if (instance->GetScriptId() == sObjectMgr->GetScriptId(ICCScriptName))
500 return new AI(creature);
501 return NULL;
502}
503
504#endif // ICECROWN_CITADEL_H_
std::uint32_t uint32
Definition Define.h:77
#define OVERRIDE
Definition Define.h:60
#define sObjectMgr
Definition ObjectMgr.h:1617
#define sSpellMgr
Definition SpellMgr.h:744
#define SpellHitFn(F)
@ NPC_PRINCE_TALDARAM
Definition ahnkahet.h:37
uint32 const EncounterCount
DataTypes
CreaturesIds
GameObjectsIds
#define SPELL_BERSERK
Position const SindragosaSpawnPos
Position const TerenasSpawn
Position const TerenasSpawnHeroic
Position const SpiritWardenSpawn
Position const ValithriaSpawnPos
@ NPC_THE_LICH_KING
Definition chapter5.cpp:143
InstanceMap * ToInstanceMap()
Definition Map.h:440
HookList< HitHandler > AfterHit
Unit * GetHitUnit()
Unit * GetCaster()
SpellScriptLoader(const char *name)
void CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, uint64 originalCaster=0)
Map * GetMap() const
Definition Object.h:740
spell_trigger_spell_from_caster(char const *scriptName, uint32 triggerId)
SpellScript * GetSpellScript() const OVERRIDE
@ NPC_WORLD_TRIGGER
@ DATA_TEAM_IN_INSTANCE
@ GO_ICE_WALL
uint32 const MaxHeroicAttempts
@ NPC_THE_LICH_KING_VALITHRIA
@ NPC_FROST_BOMB
@ NPC_CULT_ADHERENT
@ NPC_IMPALING_SPEAR
@ NPC_UVLUS_BANEFIRE
@ NPC_GREEN_DRAGON_COMBAT_TRIGGER
@ NPC_BLOOD_BEAST
@ NPC_TEAR_GAS_TARGET_STALKER
@ NPC_CAPTAIN_BRANDON
@ NPC_ABOMINATION_WING_MAD_SCIENTIST_STALKER
@ NPC_RAGING_SPIRIT
@ NPC_INFILTRATOR_MINCHAR_BQ
@ NPC_COLDFLAME
@ NPC_TERENAS_MENETHIL_FROSTMOURNE
@ NPC_SKYBREAKER_LIEUTENANT
@ NPC_MUTATED_ABOMINATION_25
@ NPC_CHOKING_GAS_BOMB
@ NPC_MANA_VOID
@ NPC_CAPTAIN_GRONDEL_UNDEAD
@ NPC_KINETIC_BOMB
@ NPC_EMPOWERED_ADHERENT
@ NPC_MALLEABLE_OOZE_STALKER
@ NPC_PRINCE_VALANAR
@ NPC_SHOCK_VORTEX
@ NPC_RISEN_ARCHMAGE
@ NPC_YILI
@ NPC_BALL_OF_FLAME
@ NPC_VALITHRIA_DREAMWALKER
@ NPC_SUPPRESSER
@ NPC_NIGHTMARE_PORTAL_PRE_EFFECT
@ NPC_ALRIN_THE_AGILE
@ NPC_YMIRJAR_BATTLE_MAIDEN
@ NPC_OOZE_SPRAY_STALKER
@ NPC_ALLIANCE_COMMANDER
@ NPC_TALAN_MOONSTRIKE
@ NPC_ROTTING_FROST_GIANT_25
@ NPC_ALANA_MOONSTRIKE
@ NPC_FROSTMOURNE_TRIGGER
@ NPC_ALCHEMIST_ADRIANNA
@ NPC_CAPTAIN_BRANDON_UNDEAD
@ NPC_VALKYR_SHADOWGUARD
@ NPC_IKFIRUS_THE_VILE
@ NPC_GAS_DUMMY
@ NPC_DEATHBRINGER_SAURFANG
@ NPC_CAPTAIN_ARNATH_UNDEAD
@ NPC_SHAMBLING_HORROR
@ NPC_KING_VARIAN_WRYNN
@ NPC_KOR_KRON_GENERAL
@ NPC_SPIRIT_WARDEN
@ NPC_FROST_FREEZE_TRAP
@ NPC_SINDRAGOSA
@ NPC_BLOOD_ORB_CONTROLLER
@ NPC_YMIRJAR_WARLORD
@ NPC_FLOATING_TRIGGER
@ NPC_KOR_KRON_LIEUTENANT
@ NPC_SE_SKYBREAKER_MARINE
@ NPC_DEFORMED_FANATIC
@ NPC_CAPTAIN_RUPERT
@ NPC_ROTTING_FROST_GIANT_10
@ NPC_SPIRIT_BOMB
@ NPC_ICE_TOMB
@ NPC_FESTERGUT
@ NPC_HARAGG_THE_UNSEEN
@ NPC_INFILTRATOR_MINCHAR
@ NPC_BLAZING_SKELETON
@ NPC_WICKED_SPIRIT
@ NPC_VILE_GAS_STALKER
@ NPC_SE_JAINA_PROUDMOORE
@ NPC_FROSTWARDEN_HANDLER
@ NPC_BLOOD_QUEEN_LANA_THEL
@ NPC_VOLATILE_OOZE
@ NPC_STRANGULATE_VEHICLE
@ NPC_HIGHLORD_TIRION_FORDRING_LK
@ NPC_UNSTABLE_EXPLOSION_STALKER
@ NPC_REANIMATED_ADHERENT
@ NPC_NIGHTMARE_PORTAL
@ NPC_VILE_SPIRIT
@ NPC_HIGHLORD_BOLVAR_FORDRAGON_LH
@ NPC_DEFILE
@ NPC_CAPTAIN_RUPERT_UNDEAD
@ NPC_YMIRJAR_HUNTRESS
@ NPC_MALFUS_GRIMFROST
@ NPC_JEDEBIA
@ NPC_DREAM_PORTAL
@ NPC_ROTFACE
@ NPC_SE_HIGH_OVERLORD_SAURFANG
@ NPC_MINCHAR_BEAM_STALKER
@ NPC_PROFESSOR_PUTRICIDE
@ NPC_NIBY_THE_ALMIGHTY
@ NPC_PUDDLE_STALKER
@ NPC_SE_KING_VARIAN_WRYNN
@ NPC_VOL_GUK
@ NPC_CROK_SCOURGEBANE
@ NPC_BONE_SPIKE
@ NPC_ROT_WORM
@ NPC_SE_KOR_KRON_REAVER
@ NPC_TORTUNOK
@ NPC_GAS_CLOUD
@ NPC_LADY_DEATHWHISPER
@ NPC_BALL_OF_INFERNO_FLAME
@ NPC_WORLD_TRIGGER_INFINITE_AOI
@ NPC_GARROSH_HELLSCREAM
@ NPC_KINETIC_BOMB_TARGET
@ NPC_MUTATED_ABOMINATION_10
@ NPC_FROSTWING_WHELP
@ NPC_SISTER_SVALNA
@ NPC_SPINESTALKER
@ NPC_CULT_FANATIC
@ NPC_ICE_SPHERE
@ NPC_GROWING_OOZE_PUDDLE
@ NPC_REANIMATED_FANATIC
@ NPC_THE_LICH_KING_LH
@ NPC_GLUTTONOUS_ABOMINATION
@ NPC_LORD_MARROWGAR
@ NPC_YMIRJAR_FROSTBINDER
@ NPC_GERARDO_THE_SUAVE
@ NPC_PRINCE_KELESETH
@ NPC_CAPTAIN_GRONDEL
@ NPC_SE_MURADIN_BRONZEBEARD
@ NPC_VALITHRIA_DREAMWALKER_QUEST
@ NPC_TERENAS_MENETHIL_FROSTMOURNE_H
@ NPC_VENGEFUL_SHADE
@ NPC_CAPTAIN_ARNATH
@ NPC_INVISIBLE_STALKER
@ NPC_HIGHLORD_TIRION_FORDRING_LH
@ NPC_COLUMN_OF_FROST
@ NPC_DARK_NUCLEUS
@ NPC_BLISTERING_ZOMBIE
@ NPC_DREAM_PORTAL_PRE_EFFECT
@ NPC_DRUDGE_GHOUL
@ NPC_DEATHBOUND_WARD
CreatureAI * GetIcecrownCitadelAI(Creature *creature)
AchievementCriteriaIds
@ CRITERIA_BONED_25H
@ CRITERIA_BONED_10N
@ CRITERIA_NAUSEA_10H
@ CRITERIA_BONED_25N
@ CRITERIA_BONED_10H
@ CRITERIA_ONCE_BITTEN_TWICE_SHY_25V
@ CRITERIA_DANCES_WITH_OOZES_10H
@ CRITERIA_NAUSEA_10N
@ CRITERIA_NAUSEA_25N
@ CRITERIA_ONCE_BITTEN_TWICE_SHY_10V
@ CRITERIA_NAUSEA_25H
@ 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_CHANGE_PHASE
@ ACTION_ROTFACE_COMBAT
@ ACTION_VRYKUL_DEATH
@ ACTION_FESTERGUT_DEATH
@ ACTION_START_FROSTWYRM
@ ACTION_ROTFACE_DEATH
@ ACTION_RESTORE_LIGHT
@ ACTION_ROTFACE_OOZE
@ ACTION_FESTERGUT_GAS
@ ACTION_KILL_MINCHAR
@ ACTION_FESTERGUT_COMBAT
@ ACTION_TRIGGER_ASPHYXIATION
TeleporterSpells
@ ORATORY_OF_THE_DAMNED_TELEPORT
@ FROZEN_THRONE_TELEPORT
@ DEATHBRINGER_S_RISE_TELEPORT
@ SINDRAGOSA_S_LAIR_TELEPORT
@ LIGHT_S_HAMMER_TELEPORT
@ UPPER_SPIRE_TELEPORT
@ RAMPART_OF_SKULLS_TELEPORT
#define ICCScriptName
uint32 const WeeklyNPCs
SharedSpells
@ SPELL_GREEN_BLIGHT_RESIDUE
@ SPELL_UNSATED_CRAVING
@ SPELL_ORANGE_BLIGHT_RESIDUE
@ SPELL_SHADOWS_FATE
@ SPELL_ARTHAS_TELEPORTER_CEREMONY
@ SPELL_BERSERK2
@ SPELL_STONEFORM
@ SPELL_FROSTMOURNE_TELEPORT_VISUAL
WorldStatesICC
@ WORLDSTATE_SHOW_ATTEMPTS
@ WORLDSTATE_ATTEMPTS_REMAINING
@ WORLDSTATE_ATTEMPTS_MAX
@ WORLDSTATE_EXECUTION_TIME
@ WORLDSTATE_SHOW_TIMER
@ AREA_THE_FROZEN_THRONE
@ GO_SINDRAGOSA_SHORTCUT_ENTRANCE_DOOR
@ GO_SCIENTIST_AIRLOCK_DOOR_GREEN
@ GO_SCOURGE_TRANSPORTER_LK
@ GO_GREEN_PLAGUE_MONSTER_ENTRANCE
@ GO_SAURFANG_S_DOOR
@ GO_SCIENTIST_AIRLOCK_DOOR_COLLISION
@ GO_DOODAD_ICECROWN_GREENTUBES02
@ GO_DEATHBRINGER_S_CACHE_10N
@ GO_CACHE_OF_THE_DREAMWALKER_25H
@ GO_DOODAD_ICESHARD_STANDING01
@ GO_ICE_BLOCK
@ GO_DOODAD_ICESHARD_STANDING02
@ GO_FROZEN_LAVAMAN
@ GO_BLOODWING_SIGIL
@ GO_DEATHBRINGER_S_CACHE_25N
@ GO_LADY_DEATHWHISPER_ELEVATOR
@ GO_CACHE_OF_THE_DREAMWALKER_25N
@ GO_BLOOD_ELF_COUNCIL_DOOR_RIGHT
@ GO_SINDRAGOSA_SHORTCUT_EXIT_DOOR
@ GO_DOODAD_ICECROWN_SNOWEDGEWARNING01
@ GO_SCOURGE_TRANSPORTER_SAURFANG
@ GO_DOODAD_ICECROWN_ICEWALL02
@ GO_ICEWALL
@ GO_LAVAMAN_PILLARS_UNCHAINED
@ GO_SPIRIT_ALARM_1
@ GO_ORATORY_OF_THE_DAMNED_ENTRANCE
@ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_04
@ GO_SCIENTIST_AIRLOCK_DOOR_ORANGE
@ GO_DOODAD_ICESHARD_STANDING04
@ GO_ARTHAS_PLATFORM
@ GO_CACHE_OF_THE_DREAMWALKER_10N
@ GO_GREEN_DRAGON_BOSS_EXIT
@ GO_ORANGE_PLAGUE_MONSTER_ENTRANCE
@ GO_PLAGUE_SIGIL
@ GO_DOODAD_ICECROWN_BLOODPRINCE_DOOR_01
@ GO_DEATHBRINGER_S_CACHE_10H
@ GO_DOODAD_ICESHARD_STANDING03
@ GO_DOODAD_ICECROWN_THRONEFROSTYWIND01
@ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_02
@ GO_DOODAD_ICECROWN_ROOSTPORTCULLIS_03
@ GO_SIGIL_OF_THE_FROSTWING
@ GO_SPIRIT_ALARM_3
@ GO_SPIRIT_ALARM_2
@ 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_SCIENTIST_ENTRANCE
@ GO_LAVAMAN_PILLARS_CHAINED
@ GO_DRINK_ME
@ GO_CRIMSON_HALL_DOOR
@ GO_DOODAD_ICECROWN_THRONEFROSTYEDGE01
@ GO_CACHE_OF_THE_DREAMWALKER_10H
@ GO_SPIRIT_ALARM_4
@ GO_GREEN_DRAGON_BOSS_ENTRANCE
@ GO_SINDRAGOSA_ENTRANCE_DOOR
@ GO_ARTHAS_PRECIPICE
@ DATA_ORB_WHISPERER_ACHIEVEMENT
@ DATA_THE_LICH_KING
@ DATA_HEROIC_ATTEMPTS
@ DATA_GUNSHIP_EVENT
@ DATA_SINDRAGOSA_FROSTWYRMS
@ DATA_BLOOD_PRINCE_COUNCIL
@ DATA_DEATHBRINGER_SAURFANG
@ DATA_VALITHRIA_LICH_KING
@ DATA_OOZE_DANCE_ACHIEVEMENT
@ DATA_NAUSEA_ACHIEVEMENT
@ DATA_BLOOD_PRINCES_CONTROL
@ DATA_PRINCE_TALDARAM_GUID
@ DATA_PRINCE_VALANAR_GUID
@ DATA_VALITHRIA_TRIGGER
@ DATA_TERENAS_MENETHIL
@ DATA_SISTER_SVALNA
@ DATA_ROTFACE
@ DATA_CROK_SCOURGEBANE
@ DATA_SAURFANG_EVENT_NPC
@ DATA_VALITHRIA_DREAMWALKER
@ DATA_HIGHLORD_TIRION_FORDRING
@ DATA_SINDRAGOSA
@ DATA_LORD_MARROWGAR
@ DATA_BLOOD_QUICKENING_STATE
@ DATA_COLDFLAME_JETS
@ DATA_BLOOD_QUEEN_LANA_THEL
@ DATA_PROFESSOR_PUTRICIDE
@ DATA_CAPTAIN_RUPERT
@ DATA_PUTRICIDE_TABLE
@ DATA_CAPTAIN_ARNATH
@ DATA_FESTERGUT
@ DATA_SPINESTALKER
@ DATA_PRINCE_KELESETH_GUID
@ DATA_LADY_DEATHWHISPER
@ DATA_BONED_ACHIEVEMENT
@ DATA_CAPTAIN_GRONDEL
@ DATA_CAPTAIN_BRANDON
@ DATA_ARTHAS_PLATFORM
WeekliesICC
@ QUEST_DEPROGRAMMING_25
@ 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_DEPROGRAMMING_10
@ QUEST_BLOOD_QUICKENING_25
@ QUEST_RESIDUE_RENDEZVOUS_25
@ NPC_RIMEFANG
@ NPC_ICY_BLAST
@ NPC_YMIRJAR_DEATHBRINGER
@ DATA_RIMEFANG
SharedActions