187#define NECROTIC_PLAGUE_LK RAID_MODE<uint32>(70337, 73912, 73913, 73914)
188#define NECROTIC_PLAGUE_PLR RAID_MODE<uint32>(70338, 73785, 73786, 73787)
189#define REMORSELESS_WINTER_1 RAID_MODE<uint32>(68981, 74270, 74271, 74272)
190#define REMORSELESS_WINTER_2 RAID_MODE<uint32>(72259, 74273, 74274, 74275)
191#define SUMMON_VALKYR RAID_MODE<uint32>(69037, 74361, 69037, 74361)
192#define HARVEST_SOUL RAID_MODE<uint32>(68980, 74325, 74296, 74297)
193#define ENRAGE RAID_MODE<uint32>(72143, 72146, 72147, 72148)
295#define PHASE_TWO_THREE (events.IsInPhase(PHASE_TWO) ? PHASE_TWO : PHASE_THREE)
303 {432.0851f, -2123.673f, 864.6582f, 0.0f},
304 {457.8351f, -2123.423f, 841.1582f, 0.0f},
305 {465.0730f, -2123.470f, 840.8569f, 0.0f},
536 frostmourne->DespawnOrUnsummon();
577 tirion->DespawnOrUnsummon();
1037 summon->m_Events.KillAllEvents(
true);
1040 summon->CombatStop(
true);
1043 summon->GetMotionMaster()->MoveTargetedHome();
1054 std::list<Creature*> triggers;
1056 if (!triggers.empty())
1059 Creature* spawner = triggers.front();
1104 tirion->SetFacingToObject(
me);
1346 if (
Unit* summoner = summon->GetSummonerUnit())
1368 lichKing->AI()->JustSummoned(
me);
1374 lichKing->AI()->SummonedCreatureDespawn(
me);
1478 std::list<Creature*> triggers;
1481 if (triggers.empty())
1577 lichKing->AI()->JustSummoned(
me);
1587 if (
Unit* summoner = summ->GetSummonerUnit())
1595 lichKing->AI()->SummonedCreatureDespawn(
me);
1614 if (
Unit* summoner = summ->GetSummonerUnit())
1617 summoner->ExitVehicle(summoner);
1635 Position pos = lichKing->GetNearPosition(
rand_norm() * 5.0f + 7.5f, lichKing->GetAbsoluteAngle(
me));
1642 lichKing->AI()->SummonedCreatureDespawn(
me);
1716 warden->DespawnOrUnsummon(2s);
1765 lichKing->SetImmuneToNPC(
false);
1767 tirion->AI()->AttackStart(lichKing);
1841 float destX, destY, destZ;
2004 if (targets.size() < 2)
2040 if (caster->GetAI())
2117 if (targets.empty())
2166 if (unitList.empty())
2249 static Position const offset = {0.0f, 0.0f, 15.0f, 0.0f};
2256 static Position const offsetExtra = { 0.0f, 0.0f, 5.0f, 0.0f };
2298 if (targets.empty())
2302 if (targets.empty())
2406 Position offset = {0.0f, 0.0f, 15.0f, 0.0f};
2433 if (targets.empty())
2469 if (targets.empty())
2475 if (
Unit* summoner = summon->GetSummonerUnit())
2476 summoner->GetAI()->SetData(
DATA_VILE, 1);
2517 effect->RecalculateAmount(caster);
2522 canBeRecalculated =
true;
2525 amount =
int32(caster->GetHealthPct());
2578 spawner->RemoveAllAuras();
2580 std::list<Creature*> spirits;
2582 for (std::list<Creature*>::iterator itr = spirits.begin(); itr != spirits.end(); ++itr)
2584 (*itr)->m_Events.KillAllEvents(
true);
2586 (*itr)->AI()->EnterEvadeMode();
2620 if (!damageInfo || !damageInfo->
GetDamage())
2727 float randCoordX =
frand(-18.0f, 18.0f);
2728 float randCoordY =
frand(-18.0f, 18.0f);
@ TEMPSUMMON_MANUAL_DESPAWN
@ TEMPSUMMON_CORPSE_DESPAWN
float frand(float min, float max)
#define RegisterSpellAndAuraScriptPair(script_1, script_2)
#define RegisterSpellScript(spell_script)
#define RegisterSpellScriptWithArgs(spell_script, script_name,...)
void GetCreatureListWithEntryInGrid(Container &container, WorldObject *source, uint32 entry, float maxSearchRange)
@ TARGET_UNIT_SRC_AREA_ENTRY
@ TARGET_UNIT_SRC_AREA_ENEMY
@ EMOTE_ONESHOT_POINT_NO_SHEATHE
@ EMOTE_ONESHOT_TALK_NO_SHEATHE
@ SPELL_EFFECT_SCRIPT_EFFECT
@ SPELL_EFFECT_SEND_EVENT
@ SPELL_EFFECT_TELEPORT_UNITS
@ SPELL_EFFECT_APPLY_AURA
@ GO_DESTRUCTIBLE_REBUILDING
@ AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK
@ AURA_EFFECT_HANDLE_REAPPLY
@ AURA_EFFECT_HANDLE_REAL
@ AURA_REMOVE_BY_ENEMY_SPELL
@ SPELL_AURA_PERIODIC_DAMAGE
@ SPELL_AURA_CONTROL_VEHICLE
@ SPELL_AURA_PERIODIC_HEAL
@ SPELL_AURA_MOD_DAMAGE_PERCENT_DONE
@ SPELL_AURA_PERIODIC_DUMMY
@ TRIGGERED_FULL_MASK
Used when doing CastSpell with triggered == true.
@ TRIGGERED_IGNORE_CAST_IN_PROGRESS
Will not check if a current cast is in progress.
@ TRIGGERED_NONE
Not triggered.
#define BeforeSpellHitFn(F)
#define AuraEffectProcFn(F, I, N)
#define SpellEffectFn(F, I, N)
#define AuraEffectCalcAmountFn(F, I, N)
#define SpellObjectAreaTargetSelectFn(F, I, N)
#define AuraEffectPeriodicFn(F, I, N)
#define AuraEffectUpdatePeriodicFn(F, I, N)
#define AuraEffectApplyFn(F, I, N, M)
#define AuraEffectRemoveFn(F, I, N, M)
Position const TirionCharge
#define REMORSELESS_WINTER_1
@ EVENT_GROUP_VILE_SPIRITS
@ MUSIC_FURY_OF_FROSTMOURNE
@ EQUIP_BROKEN_FROSTMOURNE
@ EQUIP_ASHBRINGER_GLOWING
#define REMORSELESS_WINTER_2
@ GOSSIP_MENU_START_INTRO
Position const TirionSpawn
@ ACTION_BREAK_FROSTMOURNE
Position const TirionIntro
@ SPELL_RAGING_SPIRIT_VISUAL
@ SPELL_PAIN_AND_SUFFERING
@ SPELL_HARVEST_SOUL_VISUAL
@ SPELL_WINGS_OF_THE_DAMNED
@ SPELL_SHADOW_TRAP_VISUAL
@ SPELL_VALKYR_TARGET_SEARCH
@ SPELL_TRIGGER_VILE_SPIRIT_HEROIC
@ SPELL_TERENAS_LOSES_INSIDE
@ SPELL_SUMMON_BROKEN_FROSTMOURNE_2
@ SPELL_REMORSELESS_WINTER_2
@ SPELL_SUMMON_BROKEN_FROSTMOURNE
@ SPELL_EMOTE_QUESTION_NO_SHEATH
@ SPELL_MASS_RESURRECTION
@ SPELL_HARVEST_SOUL_TELEPORT
@ SPELL_SUMMON_ICE_SPHERE
@ SPELL_SUMMON_DRUDGE_GHOULS
@ SPELL_SUMMON_SHAMBLING_HORROR
@ SPELL_VILE_SPIRIT_MOVE_SEARCH
@ SPELL_SUMMON_VALKYR_PERIODIC
@ SPELL_SUMMON_SPIRIT_BOMB_2
@ SPELL_VILE_SPIRIT_DAMAGE_SEARCH
@ SPELL_NECROTIC_PLAGUE_JUMP
@ SPELL_MASS_RESURRECTION_REAL
@ SPELL_HARVEST_SOUL_VEHICLE
@ SPELL_BROKEN_FROSTMOURNE_KNOCK
@ SPELL_SUMMON_BROKEN_FROSTMOURNE_3
@ SPELL_RISEN_WITCH_DOCTOR_SPAWN
@ SPELL_RAGING_SPIRIT_VISUAL_CLONE
@ SPELL_SUMMON_SPIRIT_BOMB_1
@ SPELL_KILL_FROSTMOURNE_PLAYERS
@ SPELL_BROKEN_FROSTMOURNE
@ SPELL_SHADOW_TRAP_KNOCKBACK
@ SPELL_HARVEST_SOULS_TELEPORT
@ SPELL_HARVEST_SOUL_TELEPORT_BACK
@ SPELL_REMORSELESS_WINTER_1
@ SPELL_FURY_OF_FROSTMOURNE
@ SPELL_EJECT_ALL_PASSENGERS
@ SPELL_ICE_BURST_TARGET_SEARCH
@ SPELL_EMOTE_SHOUT_NO_SHEATH
@ SPELL_IN_FROSTMOURNE_ROOM
@ SPELL_EMOTE_SIT_NO_SHEATH
@ SPELL_HARVEST_SOUL_VALKYR
@ SPELL_FURY_OF_FROSTMOURNE_NO_REZ
Position const OutroPosition1
Position const TerenasSpawn
@ SAY_LK_FROSTMOURNE_ESCAPE
@ SAY_LK_REMORSELESS_WINTER
@ EMOTE_NECROTIC_PLAGUE_WARNING
@ SAY_LK_FROSTMOURNE_KILL
#define NECROTIC_PLAGUE_PLR
void AddSC_boss_the_lich_king()
#define NECROTIC_PLAGUE_LK
Position const TerenasSpawnHeroic
Position const CenterPosition
Position const OutroFlying
Position const LichKingIntro[3]
Position const SpiritWardenSpawn
@ EVENT_SUMMON_ICE_SPHERE
@ EVENT_OUTRO_TERENAS_TALK_1
@ EVENT_FROSTMOURNE_TALK_3
@ EVENT_SUMMON_SHAMBLING_HORROR
@ EVENT_MOVE_TO_LICH_KING
@ EVENT_FROSTMOURNE_TALK_1
@ EVENT_FROSTMOURNE_HEROIC
@ EVENT_OUTRO_TERENAS_TALK_2
@ EVENT_OUTRO_MOVE_CENTER
@ EVENT_SUMMON_RAGING_SPIRIT
@ EVENT_INTRO_CAST_FREEZE
@ EVENT_OUTRO_SUMMON_TERENAS
@ EVENT_SUMMON_RAGING_SPIRIT_2
@ EVENT_FROSTMOURNE_TALK_2
@ EVENT_PAIN_AND_SUFFERING
@ EVENT_SUMMON_DRUDGE_GHOUL
@ EVENT_OUTRO_SOUL_BARRAGE
uint32 GetTickNumber() const
SpellEffectInfo const & GetSpellEffectInfo() const
void SetAmount(int32 amount)
void PreventDefaultAction()
AuraApplication const * GetTargetApplication() const
HookList< EffectApplyHandler > AfterEffectRemove
HookList< EffectPeriodicHandler > OnEffectPeriodic
WorldObject * GetOwner() const
HookList< EffectApplyHandler > AfterEffectApply
HookList< EffectCalcAmountHandler > DoEffectCalcAmount
HookList< EffectUpdatePeriodicHandler > OnEffectUpdatePeriodic
AuraEffect * GetEffect(uint8 effIndex) const
ObjectGuid GetCasterGUID() const
HookList< AuraDispelHandler > OnDispel
HookList< AuraDispelHandler > AfterDispel
void Remove(AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
HookList< EffectProcHandler > OnEffectProc
Unit * GetUnitOwner() const
uint8 GetStackAmount() const
HookList< EffectApplyHandler > OnEffectApply
InstanceScript *const instance
void JustSummoned(Creature *summon) override
void _DespawnAtEvade(Seconds delayToRespawn=30s, Creature *who=nullptr)
bool CanAIAttack(Unit const *target) const override
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
void AttackStart(Unit *victim) override
== Triggered Actions Requested ==================
static void SendSound(Creature *source, uint32 sound, ChatMsg msgType, WorldObject const *whisperTarget=nullptr, CreatureTextRange range=TEXT_RANGE_NORMAL, Team team=TEAM_OTHER, bool gmOnly=false, uint32 keyBroadcastTextId=0, SoundKitPlayType playType=SoundKitPlayType::Normal)
void SetCombatPulseDelay(uint32 delay)
void SetImmuneToPC(bool apply) override
void GetHomePosition(float &x, float &y, float &z, float &ori) const
void LoadEquipment(int8 id=1, bool force=false)
void SetReactState(ReactStates st)
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
bool IsInEvadeMode() const
void Repeat(Milliseconds time)
void DelayEvents(Milliseconds delay)
void ScheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
bool IsInPhase(uint8 phase) const
void SetPhase(uint8 phase)
void RescheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
void AddEvent(BasicEvent *event, Milliseconds e_time, bool set_addtime=true)
Milliseconds CalculateTime(Milliseconds t_offset) const
ExactDistanceCheck(Unit *source, float dist)
bool operator()(WorldObject *unit)
bool operator()(GameObject *go)
FrozenThroneResetWorker()
void SetGoState(GOState state)
void SetDestructibleState(GameObjectDestructibleState state, WorldObject *attackerOrHealer=nullptr, bool setHealth=false)
virtual bool SetBossState(uint32 id, EncounterState state)
void DoCastSpellOnPlayers(uint32 spell, bool includePets=false, bool includeControlled=false)
virtual ObjectGuid GetGuidData(uint32 type) const override
EncounterState GetBossState(uint32 id) const
virtual bool CheckRequiredBosses(uint32, Player const *=nullptr) const
LichKingStartMovementEvent(Creature *summoner, Creature *owner)
bool Execute(uint64, uint32) override
void SetZoneMusic(uint32 zoneId, uint32 musicId)
void SetZoneWeather(uint32 zoneId, WeatherState weatherId, float intensity)
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)
void SetZoneOverrideLight(uint32 zoneId, uint32 areaLightId, uint32 overrideLightId, Milliseconds transitionTime)
void MoveRandom(float wanderDistance=0.0f, Optional< Milliseconds > duration={}, MovementSlot slot=MOTION_SLOT_DEFAULT)
void MovePoint(uint32 id, Position const &pos, bool generatePath=true, Optional< float > finalOrient={}, Optional< float > speed={}, MovementWalkRunSpeedSelectionMode speedSelectionMode=MovementWalkRunSpeedSelectionMode::Default, Optional< float > closeEnoughDistance={})
void MoveFollow(Unit *target, float dist, ChaseAngle angle, Optional< Milliseconds > duration={}, MovementSlot slot=MOTION_SLOT_ACTIVE)
void MoveFall(uint32 id=0)
NecroticPlagueTargetCheck(Unit const *obj, uint32 notAura1=0, uint32 notAura2=0)
bool operator()(Unit *unit) const
static ObjectGuid const Empty
static Creature * ToCreature(Object *o)
static Unit * ToUnit(Object *o)
static ObjectGuid GetGUID(Object const *o)
static Player * ToPlayer(Object *o)
DamageInfo * GetDamageInfo() const
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
WorldLocation * GetHitDest() const
Creature * GetHitCreature() const
int32 GetHitDamage() const
HookList< HitHandler > AfterHit
HookList< HitHandler > OnHit
HookList< EffectHandler > OnEffectHit
void PreventHitDefaultEffect(SpellEffIndex effIndex)
Unit * GetHitUnit() const
int32 GetEffectValue() const
SpellEffectInfo const & GetEffectInfo() const
HookList< EffectHandler > OnEffectHitTarget
HookList< BeforeHitHandler > BeforeHit
void SetHitDamage(int32 damage)
WorldLocation const * GetExplTargetDest() const
HookList< EffectHandler > OnEffectLaunch
SpellInfo const * GetSpellInfo() const
HookList< ObjectAreaTargetSelectHandler > OnObjectAreaTargetSelect
void DespawnEntry(uint32 entry)
void Summon(Creature const *summon)
void DoAction(int32 info, Predicate &&predicate, uint16 max=0)
void SetTempSummonType(TempSummonType type)
void AddThreat(Unit *target, float amount, SpellInfo const *spell=nullptr, bool ignoreModifiers=false, bool ignoreRedirects=false)
== AFFECT MY THREAT LIST ==
bool Execute(uint64, uint32) override
TriggerWickedSpirit(Creature *owner)
SpellCastResult DoCastSelf(uint32 spellId, CastSpellExtraArgs const &args={})
virtual uint32 GetData(uint32) const
SpellCastResult DoCastVictim(uint32 spellId, CastSpellExtraArgs const &args={})
Unit * SelectTarget(SelectTargetMethod targetType, uint32 offset=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0)
virtual void SetGUID(ObjectGuid const &, int32=0)
SpellCastResult DoCastAOE(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCast(uint32 spellId)
void ClearUnitState(uint32 f)
bool isTargetableForAttack(bool checkFakeDeath=true) const
void CombatStop(bool includingCast=false, bool mutualPvP=true, bool(*unitFilter)(Unit const *otherUnit)=nullptr)
void SetHealth(uint64 val)
void SetStandState(UnitStandStateType state, uint32 animKitID=0)
ThreatManager & GetThreatManager()
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true)
MotionMaster * GetMotionMaster()
void SetFacingToObject(WorldObject const *object, bool force=true)
void RemoveNpcFlag(NPCFlags flags)
TempSummon * ToTempSummon()
bool SetDisableGravity(bool disable, bool updateAnimTier=true)
void SetUninteractible(bool apply)
void SetSheath(SheathState sheathed)
void SetEmoteState(Emote emote)
uint64 GetMaxHealth() const
bool HasAuraType(AuraType auraType) const
bool SetWalk(bool enable)
void SetSpeedRate(UnitMoveType mtype, float rate)
void SetFacingTo(float const ori, bool force=true)
bool HasUnitState(const uint32 f) const
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
void HandleEmoteCommand(Emote emoteId, Player *target=nullptr, Trinity::IteratorPair< int32 const * > spellVisualKitIds={}, int32 sequenceVariation=0)
bool HealthBelowPctDamaged(int32 pct, uint32 damage) const
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
bool Execute(uint64, uint32) override
VileSpiritActivateEvent(Creature *owner)
InstanceScript * GetInstanceScript() const
void GetCreatureListWithEntryInGrid(Container &creatureContainer, uint32 entry, float maxSearchRange=250.0f) const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
TempSummon * SummonCreature(uint32 entry, Position const &pos, TempSummonType despawnType=TEMPSUMMON_MANUAL_DESPAWN, Milliseconds despawnTime=0s, uint32 vehId=0, uint32 spellId=0, ObjectGuid privateObjectOwner=ObjectGuid::Empty)
void setActive(bool isActiveObject)
void SetFarVisible(bool on)
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
void UpdateGroundPositionZ(float x, float y, float &z) const
void GetRandomPoint(Position const &srcPos, float distance, float &rand_x, float &rand_y, float &rand_z) const
achievement_been_waiting_long_time()
bool OnCheck(Player *, Unit *target) override
bool OnCheck(Player *, Unit *target) override
achievement_neck_deep_in_vile()
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleProc(AuraEffect *aurEff, ProcEventInfo &eventInfo)
void ChangeDamageAndGrow()
void CorrectRange(std::list< WorldObject * > &targets)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
void RelocateTransportOffset(SpellEffIndex)
void CheckTargetCount(std::list< WorldObject * > &unitList)
bool Validate(SpellInfo const *) override
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
void OnPeriodic(AuraEffect const *)
void OnUpdate(AuraEffect *aurEff)
void HandleScript(SpellEffIndex effIndex)
void HandleScript(SpellEffIndex effIndex)
bool Validate(SpellInfo const *) override
void CalculateBonus(AuraEffect const *, int32 &amount, bool &canBeRecalculated)
void OnPeriodic(AuraEffect const *)
void AfterDispel(AuraEffect const *aurEff, AuraEffectHandleModes)
void OnRemove(AuraEffect const *aurEff, AuraEffectHandleModes)
spell_the_lich_king_necrotic_plague_jump_aura()
void OnDispel(AuraEffect const *aurEff, AuraEffectHandleModes)
void OnApply(AuraEffect const *, AuraEffectHandleModes)
void SelectTarget(std::list< WorldObject * > &targets)
void CheckAura(SpellMissInfo missInfo)
spell_the_lich_king_necrotic_plague_jump()
bool Validate(SpellInfo const *) override
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
void FilterTargets(std::list< WorldObject * > &targets)
void HandleSendEvent(SpellEffIndex)
void HandleScript(SpellEffIndex effIndex)
void HandleScript(SpellEffIndex)
spell_the_lich_king_restore_soul()
InstanceScript * _instance
void RemoveAura(SpellMissInfo missInfo)
void CheckTargetCount(std::list< WorldObject * > &targets)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void OnPeriodic(AuraEffect const *)
void OnPeriodic(AuraEffect const *aurEff)
void ModDestHeight(SpellEffIndex)
void HandleScript(SpellEffIndex effIndex)
void ReplaceTarget(std::list< WorldObject * > &targets)
void HandleScript(SpellEffIndex effIndex)
bool Validate(SpellInfo const *) override
void SelectTarget(std::list< WorldObject * > &targets)
void CheckTargetCount(std::list< WorldObject * > &targets)
void SelectTarget(std::list< WorldObject * > &targets)
spell_the_lich_king_vile_spirit_move_target_search()
void HandleScript(SpellEffIndex effIndex)
void ModDestHeight(SpellEffIndex)
void OnPeriodic(AuraEffect const *aurEff)
spell_the_lich_king_vile_spirits()
@ WEATHER_STATE_BLACKSNOW
@ WEATHER_STATE_LIGHT_SNOW
@ LIGHT_S_HAMMER_TELEPORT
#define RegisterIcecrownCitadelCreatureAI(ai_name)
@ GO_DOODAD_ICESHARD_STANDING01
@ GO_DOODAD_ICESHARD_STANDING02
@ GO_DOODAD_ICESHARD_STANDING04
@ GO_DOODAD_ICESHARD_STANDING03
@ GO_DOODAD_ICECROWN_THRONEFROSTYWIND01
@ GO_DOODAD_ICECROWN_THRONEFROSTYEDGE01
@ ACTION_FROSTMOURNE_INTRO
@ DATA_HIGHLORD_TIRION_FORDRING
@ NPC_THE_LICH_KING_QUEST
@ NPC_FROSTMOURNE_TRIGGER
@ NPC_STRANGULATE_VEHICLE
@ NPC_HIGHLORD_TIRION_FORDRING_LK
@ NPC_WORLD_TRIGGER_INFINITE_AOI
@ NPC_TERENAS_MENETHIL_FROSTMOURNE_H
TC_GAME_API GameObject * GetGameObject(WorldObject const &u, ObjectGuid const &guid)
TC_GAME_API Player * GetPlayer(Map const *, ObjectGuid const &guid)
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
auto SelectRandomContainerElement(C const &container) -> typename std::add_const< decltype(*std::begin(container))>::type &
static void VisitGridObjects(WorldObject const *obj, T &visitor, float radius, bool dont_load=true)
float GetExactDist2d(const float x, const float y) const
float GetExactDist(float x, float y, float z) const
constexpr void GetPosition(float &x, float &y) const
constexpr void Relocate(float x, float y)
void RelocateOffset(Position const &offset)
void SetEquipmentSlots(bool loadDefault, int32 mainHand=EQUIP_NO_CHANGE, int32 offHand=EQUIP_NO_CHANGE, int32 ranged=EQUIP_NO_CHANGE)
void SetCombatMovement(bool allowMovement)
bool HealthAbovePct(uint32 pct) const
boss_the_lich_king(Creature *creature)
void SummonedCreatureDies(Creature *summon, Unit *) override
void MovementInform(uint32 type, uint32 pointId) override
void JustSummoned(Creature *summon) override
bool CanAIAttack(Unit const *target) const override
uint32 GetData(uint32 type) const override
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
void JustDied(Unit *killer) override
uint32 _vileSpiritExplosions
void KilledUnit(Unit *victim) override
void EnterEvadeMode(EvadeReason) override
void DoAction(int32 action) override
void UpdateAI(uint32 diff) override
void DamageTaken(Unit *, uint32 &, DamageEffectType, SpellInfo const *) override
void JustEngagedWith(Unit *target) override
uint32 _necroticPlagueStack
void SetData(uint32 type, uint32 value) override
void UpdateAI(uint32 diff) override
void EnterEvadeMode(EvadeReason) override
void IsSummonedBy(WorldObject *) override
npc_broken_frostmourne(Creature *creature)
void DoAction(int32 action) override
void DoAction(int32 action) override
void IsSummonedBy(WorldObject *) override
void UpdateAI(uint32 diff) override
InstanceScript * _instance
npc_raging_spirit(Creature *creature)
void JustDied(Unit *) override
void UpdateAI(uint32 diff) override
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
npc_shambling_horror_icc(Creature *creature)
void OnSpellFailed(SpellInfo const *spell) override
npc_spirit_bomb(Creature *creature)
void AttackStart(Unit *) override
== Triggered Actions Requested ==================
void MovementInform(uint32 type, uint32 point) override
void UpdateAI(uint32 diff) override
void IsSummonedBy(WorldObject *) override
npc_spirit_warden(Creature *creature)
InstanceScript * _instance
void JustDied(Unit *) override
void UpdateAI(uint32 diff) override
void IsSummonedBy(WorldObject *summonerWO) override
InstanceScript * _instance
void DoAction(int32 action) override
npc_strangulate_vehicle(Creature *creature)
void UpdateAI(uint32 diff) override
npc_terenas_menethil(Creature *creature)
void EnterEvadeMode(EvadeReason) override
bool CanAIAttack(Unit const *target) const override
void IsSummonedBy(WorldObject *) override
InstanceScript * _instance
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
void DoAction(int32 action) override
void UpdateAI(uint32 diff) override
npc_tirion_fordring_tft(Creature *creature)
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
void JustReachedHome() override
void UpdateAI(uint32 diff) override
bool OnGossipSelect(Player *, uint32 menuId, uint32 gossipListId) override
void MovementInform(uint32 type, uint32 id) override
void DoAction(int32 action) override
InstanceScript * _instance
void UpdateAI(uint32 diff) override
void SetGUID(ObjectGuid const &guid, int32) override
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
void MovementInform(uint32 type, uint32 id) override
npc_valkyr_shadowguard(Creature *creature)
void IsSummonedBy(WorldObject *) override
void ScheduleHeroicEvents()
ObjectGuid _grabbedPlayer
InstanceScript * _instance