TrinityCore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boss_the_lich_king::boss_the_lich_kingAI Struct Reference

Public Member Functions

 boss_the_lich_kingAI (Creature *creature)
 
void Initialize ()
 
void Reset () override
 
void JustDied (Unit *) override
 
void EnterCombat (Unit *target) override
 
void JustReachedHome () override
 
bool CanAIAttack (Unit const *target) const override
 
void EnterEvadeMode (EvadeReason why) override
 
void KilledUnit (Unit *victim) override
 
void DoAction (int32 action) override
 
uint32 GetData (uint32 type) const override
 
void SetData (uint32 type, uint32 value) override
 
void DamageTaken (Unit *, uint32 &) override
 
void JustSummoned (Creature *summon) override
 
void SummonedCreatureDies (Creature *summon, Unit *) override
 
void SpellHit (Unit *, SpellInfo const *spell) override
 
void SpellHitTarget (Unit *, SpellInfo const *spell) override
 
void MovementInform (uint32 type, uint32 pointId) override
 
void UpdateAI (uint32 diff) override
 
- Public Member Functions inherited from BossAI
 BossAI (Creature *creature, uint32 bossId)
 
virtual ~BossAI ()
 
void SummonedCreatureDespawn (Creature *summon) override
 
virtual void ExecuteEvent (uint32)
 
virtual void ScheduleTasks ()
 
- Public Member Functions inherited from ScriptedAI
 ScriptedAI (Creature *creature)
 
virtual ~ScriptedAI ()
 
void AttackStartNoMove (Unit *target)
 
void OnPossess (bool)
 
void AttackStart (Unit *) override
 
void DoStartMovement (Unit *target, float distance=0.0f, float angle=0.0f)
 
void DoStartNoMovement (Unit *target)
 
void DoStopAttack ()
 
void DoCastSpell (Unit *target, SpellInfo const *spellInfo, bool triggered=false)
 
void DoPlaySoundToSet (WorldObject *source, uint32 soundId)
 
void DoResetThreat ()
 
float DoGetThreat (Unit *unit)
 
void DoModifyThreatPercent (Unit *unit, int32 pct)
 
void DoTeleportTo (float x, float y, float z, uint32 time=0)
 
void DoTeleportTo (float const pos[4])
 
void DoTeleportPlayer (Unit *unit, float x, float y, float z, float o)
 
void DoTeleportAll (float x, float y, float z, float o)
 
UnitDoSelectLowestHpFriendly (float range, uint32 minHPDiff=1)
 
std::list< Creature * > DoFindFriendlyCC (float range)
 
std::list< Creature * > DoFindFriendlyMissingBuff (float range, uint32 spellId)
 
PlayerGetPlayerAtMinimumRange (float minRange)
 
CreatureDoSpawnCreature (uint32 entry, float offsetX, float offsetY, float offsetZ, float angle, uint32 type, uint32 despawntime)
 
bool HealthBelowPct (uint32 pct) const
 
bool HealthAbovePct (uint32 pct) const
 
SpellInfo constSelectSpell (Unit *target, uint32 school, uint32 mechanic, SelectTargetType targets, float rangeMin, float rangeMax, SelectEffect effect)
 
void SetEquipmentSlots (bool loadDefault, int32 mainHand=EQUIP_NO_CHANGE, int32 offHand=EQUIP_NO_CHANGE, int32 ranged=EQUIP_NO_CHANGE)
 
void SetCombatMovement (bool allowMovement)
 
bool IsCombatMovementAllowed () const
 
bool IsHeroic () const
 
Difficulty GetDifficulty () const
 
bool Is25ManRaid () const
 
template<class T >
const T & DUNGEON_MODE (const T &normal5, const T &heroic10) const
 
template<class T >
const T & RAID_MODE (const T &normal10, const T &normal25) const
 
template<class T >
const T & RAID_MODE (const T &normal10, const T &normal25, const T &heroic10, const T &heroic25) const
 
- Public Member Functions inherited from CreatureAI
void Talk (uint8 id, WorldObject const *whisperTarget=nullptr)
 
 CreatureAI (Creature *creature)
 
virtual ~CreatureAI ()
 
void MoveInLineOfSight_Safe (Unit *who)
 == Reactions At ================================= More...
 
void TriggerAlert (Unit const *who) const
 
virtual bool CanRespawn ()
 
virtual void IsSummonedBy (Unit *)
 
virtual void AttackedBy (Unit *)
 
virtual bool IsEscorted () const
 
virtual void JustRespawned ()
 
void OnCharmed (bool apply) override
 
void DoZoneInCombat (Creature *creature=NULL, float maxRangeToNearestTarget=50.0f)
 
virtual void ReceiveEmote (Player *, uint32)
 
virtual void OwnerAttackedBy (Unit *)
 
virtual void OwnerAttacked (Unit *)
 
virtual void CorpseRemoved (uint32 &)
 == Triggered Actions Requested ================== More...
 
virtual void PassengerBoarded (Unit *, int8, bool)
 == Fields ======================================= More...
 
virtual void OnSpellClick (Unit *, bool &)
 
virtual bool CanSeeAlways (WorldObject const *)
 
int32 VisualizeBoundary (uint32 duration, Unit *owner=nullptr, bool fill=false) const
 
virtual bool CheckInRoom ()
 
CreatureBoundary constGetBoundary () const
 
- Public Member Functions inherited from UnitAI
 UnitAI (Unit *unit)
 
virtual ~UnitAI ()
 
virtual void InitializeAI ()
 
virtual void SetGUID (ObjectGuid, int32=0)
 
virtual ObjectGuid GetGUID (int32=0) const
 
UnitSelectTarget (SelectAggroTarget targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, int32 aura=0)
 
template<class PREDICATE >
UnitSelectTarget (SelectAggroTarget targetType, uint32 position, PREDICATE const &predicate)
 
void SelectTargetList (std::list< Unit * > &targetList, uint32 num, SelectAggroTarget targetType, float dist=0.0f, bool playerOnly=false, int32 aura=0)
 
template<class PREDICATE >
void SelectTargetList (std::list< Unit * > &targetList, PREDICATE const &predicate, uint32 maxTargets, SelectAggroTarget targetType)
 
virtual void DamageDealt (Unit *, uint32 &, DamageEffectType)
 
virtual void HealReceived (Unit *, uint32 &)
 
virtual void HealDone (Unit *, uint32 &)
 
virtual void SpellInterrupted (uint32, uint32)
 
void AttackStartCaster (Unit *victim, float dist)
 
void DoCast (uint32 spellId)
 
void DoCast (Unit *victim, uint32 spellId, bool triggered=false)
 
void DoCastVictim (uint32 spellId, bool triggered=false)
 
void DoCastAOE (uint32 spellId, bool triggered=false)
 
void DoMeleeAttackIfReady ()
 
bool DoSpellAttackIfReady (uint32 spellId)
 
virtual void sGossipHello (Player *)
 
virtual void sGossipSelect (Player *, uint32, uint32)
 
virtual void sGossipSelectCode (Player *, uint32, uint32, char const *)
 
virtual void sQuestAccept (Player *, Quest const *)
 
virtual void sQuestSelect (Player *, Quest const *)
 
virtual void sQuestReward (Player *, Quest const *, uint32)
 
virtual bool sOnDummyEffect (Unit *, uint32, SpellEffIndex)
 
virtual void sOnGameEvent (bool, uint16)
 

Private Attributes

uint32 _necroticPlagueStack
 
uint32 _vileSpiritExplosions
 

Additional Inherited Members

- Public Types inherited from CreatureAI
enum  EvadeReason { EVADE_REASON_NO_HOSTILES, EVADE_REASON_BOUNDARY, EVADE_REASON_SEQUENCE_BREAK, EVADE_REASON_OTHER }
 
- Static Public Member Functions inherited from UnitAI
static void FillAISpellInfo ()
 
- Public Attributes inherited from BossAI
InstanceScript *const instance
 
- Public Attributes inherited from ScriptedAI
bool IsFleeing
 
- Static Public Attributes inherited from UnitAI
static AISpellInfoTypeAISpellInfo
 
- Protected Member Functions inherited from BossAI
void _Reset ()
 
void _EnterCombat ()
 
void _JustDied ()
 
void _JustReachedHome ()
 
void _DespawnAtEvade ()
 
void TeleportCheaters ()
 
- Protected Member Functions inherited from CreatureAI
bool UpdateVictim ()
 
bool UpdateVictimWithGaze ()
 
void SetGazeOn (Unit *target)
 
CreatureDoSummon (uint32 entry, Position const &pos, uint32 despawnTime=30000, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
 
CreatureDoSummon (uint32 entry, WorldObject *obj, float radius=5.0f, uint32 despawnTime=30000, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
 
CreatureDoSummonFlyer (uint32 entry, WorldObject *obj, float flightZ, float radius=5.0f, uint32 despawnTime=30000, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
 
bool CheckBoundary (Position const *who=nullptr) const
 
void SetBoundary (CreatureBoundary const *boundary)
 
virtual void MoveInLineOfSight (Unit *)
 
bool _EnterEvadeMode (EvadeReason why=EVADE_REASON_OTHER)
 
- Protected Attributes inherited from BossAI
EventMap events
 
SummonList summons
 
TaskScheduler scheduler
 
- Protected Attributes inherited from CreatureAI
Creature *const me
 
CreatureBoundary const_boundary
 
- Protected Attributes inherited from UnitAI
Unit *const me
 

Constructor & Destructor Documentation

boss_the_lich_king::boss_the_lich_kingAI::boss_the_lich_kingAI ( Creature creature)
inline
485  : BossAI(creature, DATA_THE_LICH_KING)
486  {
487  Initialize();
488  }
void Initialize()
Definition: boss_the_lich_king.cpp:490
Definition: icecrown_citadel.h:87
BossAI(Creature *creature, uint32 bossId)
Definition: ScriptedCreature.cpp:444

+ Here is the call graph for this function:

Member Function Documentation

bool boss_the_lich_king::boss_the_lich_kingAI::CanAIAttack ( Unit const target) const
inlineoverridevirtual

Reimplemented from BossAI.

558  {
559  // The Lich King must not select targets in frostmourne room if he killed everyone outside
560  return !target->HasAura(SPELL_IN_FROSTMOURNE_ROOM) && BossAI::CanAIAttack(target);
561  }
bool CanAIAttack(Unit const *target) const override
Definition: ScriptedCreature.h:360
Definition: boss_the_lich_king.cpp:138

+ Here is the call graph for this function:

void boss_the_lich_king::boss_the_lich_kingAI::DamageTaken ( Unit ,
uint32  
)
inlineoverridevirtual

Reimplemented from ScriptedAI.

655  {
657  {
660  me->AttackStop();
662  return;
663  }
664 
666  {
669  me->AttackStop();
671  return;
672  }
673 
675  {
677  me->AttackStop();
678  events.Reset();
684  me->SetWalk(true);
694  // stop here. rest will get scheduled from MovementInform
695  return;
696  }
697  }
bool AttackStop()
Definition: Unit.cpp:7337
Definition: boss_the_lich_king.cpp:340
Map * GetMap() const
Definition: Object.h:543
void DespawnAll()
Definition: ScriptedCreature.cpp:66
void SetPhase(uint8 phase)
Definition: EventMap.cpp:27
void Reset()
Definition: EventMap.cpp:20
Definition: Unit.h:1129
Definition: boss_the_lich_king.cpp:235
MotionMaster * GetMotionMaster()
Definition: Unit.h:2101
Position const CenterPosition
Definition: boss_the_lich_king.cpp:287
bool HealthAbovePct(uint32 pct) const
Definition: ScriptedCreature.h:248
Definition: boss_the_lich_king.cpp:305
arena_t NULL
Definition: jemalloc_internal.h:624
Definition: boss_the_lich_king.cpp:280
void SetZoneMusic(uint32 zoneId, uint32 musicId)
Definition: Map.cpp:3905
Definition: boss_the_lich_king.cpp:277
Definition: boss_the_lich_king.cpp:159
Definition: boss_the_lich_king.cpp:304
bool IsInPhase(uint8 phase) const
Definition: EventMap.h:290
Definition: boss_the_lich_king.cpp:279
Definition: icecrown_citadel.h:524
Creature *const me
Definition: CreatureAI.h:71
void MovePoint(uint32 id, Position const &pos, bool generatePath=true)
Definition: MotionMaster.h:172
Definition: boss_the_lich_king.cpp:282
Definition: boss_the_lich_king.cpp:234
Definition: boss_the_lich_king.cpp:236
void ScheduleEvent(uint32 eventId, Milliseconds const &time, uint32 group=0, uint8 phase=0)
Definition: EventMap.h:123
SummonList summons
Definition: ScriptedCreature.h:372
Definition: boss_the_lich_king.cpp:199
Definition: boss_the_lich_king.cpp:237
Definition: boss_the_lich_king.cpp:238
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true)
Definition: Unit.cpp:2916
bool SetWalk(bool enable)
Definition: Unit.cpp:15800
EventMap events
Definition: ScriptedCreature.h:371
Definition: Unit.h:1305
Definition: boss_the_lich_king.cpp:278
void SetReactState(ReactStates st)
Definition: Creature.h:502
void CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition: Unit.cpp:869
Definition: Unit.h:460

+ Here is the call graph for this function:

void boss_the_lich_king::boss_the_lich_kingAI::DoAction ( int32  action)
inlineoverridevirtual

Reimplemented from UnitAI.

581  {
582  switch (action)
583  {
588  // schedule talks
591  break;
592  case ACTION_START_ATTACK:
594  break;
595  case ACTION_PLAY_MUSIC:
597  break;
600  break;
606  break;
607  case ACTION_FINISH_OUTRO:
610  break;
612  {
615  if (!IsHeroic())
617  break;
618  }
619  default:
620  break;
621  }
622  }
Definition: boss_the_lich_king.cpp:324
Definition: icecrown_citadel.h:494
Definition: boss_the_lich_king.cpp:168
Definition: boss_the_lich_king.cpp:326
Definition: Unit.h:207
Definition: boss_the_lich_king.cpp:253
void SetEquipmentSlots(bool loadDefault, int32 mainHand=EQUIP_NO_CHANGE, int32 offHand=EQUIP_NO_CHANGE, int32 ranged=EQUIP_NO_CHANGE)
Definition: ScriptedCreature.cpp:364
Map * GetMap() const
Definition: Object.h:543
Definition: boss_the_lich_king.cpp:252
Definition: boss_the_lich_king.cpp:330
void DoAction(int32 info, Predicate &predicate, uint16 max=0)
Definition: ScriptedCreature.h:104
Definition: boss_the_lich_king.cpp:246
arena_t NULL
Definition: jemalloc_internal.h:624
Definition: icecrown_citadel.h:87
bool IsHeroic() const
Definition: ScriptedCreature.h:268
Definition: icecrown_citadel.h:315
void SetZoneMusic(uint32 zoneId, uint32 musicId)
Definition: Map.cpp:3905
Definition: icecrown_citadel.h:524
Definition: boss_the_lich_king.cpp:327
Creature *const me
Definition: CreatureAI.h:71
Definition: boss_the_lich_king.cpp:282
Definition: InstanceScript.h:59
Definition: boss_the_lich_king.cpp:35
Definition: boss_the_lich_king.cpp:346
Definition: boss_the_lich_king.cpp:329
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
Definition: CreatureAI.cpp:42
Definition: boss_the_lich_king.cpp:341
void ScheduleEvent(uint32 eventId, Milliseconds const &time, uint32 group=0, uint8 phase=0)
Definition: EventMap.h:123
virtual bool SetBossState(uint32 id, EncounterState state)
Definition: InstanceScript.cpp:273
SummonList summons
Definition: ScriptedCreature.h:372
Definition: ScriptedCreature.h:126
Definition: boss_the_lich_king.cpp:195
Definition: boss_the_lich_king.cpp:322
void SetStandState(UnitStandStateType state, uint32 animKitID=0)
Definition: Unit.cpp:12772
EventMap events
Definition: ScriptedCreature.h:371
Will ignore aura scaling.
Definition: Unit.h:466
Definition: boss_the_lich_king.cpp:222
void SetZoneOverrideLight(uint32 zoneId, uint32 lightId, uint32 fadeInTime)
Definition: Map.cpp:3943
Definition: Unit.h:1305
void CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition: Unit.cpp:869
Definition: boss_the_lich_king.cpp:167
Definition: boss_the_lich_king.cpp:42
Definition: boss_the_lich_king.cpp:338
InstanceScript *const instance
Definition: ScriptedCreature.h:340

+ Here is the call graph for this function:

void boss_the_lich_king::boss_the_lich_kingAI::EnterCombat ( Unit target)
inlineoverridevirtual

Reimplemented from BossAI.

517  {
519  {
522  return;
523  }
524 
525  me->setActive(true);
526  DoZoneInCombat();
527 
534  if (IsHeroic())
536  }
void DoCastSpellOnPlayers(uint32 spell)
Definition: InstanceScript.cpp:558
void SetPhase(uint8 phase)
Definition: EventMap.cpp:27
Definition: boss_the_lich_king.cpp:270
void setActive(bool isActiveObject)
Definition: Object.cpp:1473
void DoZoneInCombat(Creature *creature=NULL, float maxRangeToNearestTarget=50.0f)
Definition: CreatureAI.cpp:47
Definition: boss_the_lich_king.cpp:209
Definition: icecrown_citadel.h:87
bool IsHeroic() const
Definition: ScriptedCreature.h:268
Definition: boss_the_lich_king.cpp:208
Definition: boss_the_lich_king.cpp:277
Player * ToPlayer()
Definition: Object.h:191
Creature *const me
Definition: CreatureAI.h:71
Definition: boss_the_lich_king.cpp:207
Definition: boss_the_lich_king.cpp:210
Definition: CreatureAI.h:90
uint32 urand(uint32 min, uint32 max)
Definition: Random.cpp:45
void EnterEvadeMode(EvadeReason why) override
Definition: boss_the_lich_king.cpp:563
void ScheduleEvent(uint32 eventId, Milliseconds const &time, uint32 group=0, uint8 phase=0)
Definition: EventMap.h:123
Definition: boss_the_lich_king.cpp:206
EventMap events
Definition: ScriptedCreature.h:371
virtual bool CheckRequiredBosses(uint32, Player const *=nullptr) const
Definition: InstanceScript.h:236
Definition: icecrown_citadel.h:63
InstanceScript *const instance
Definition: ScriptedCreature.h:340
Definition: boss_the_lich_king.cpp:226

+ Here is the call graph for this function:

void boss_the_lich_king::boss_the_lich_kingAI::EnterEvadeMode ( EvadeReason  why)
inlineoverridevirtual

Reimplemented from CreatureAI.

564  {
568  tirion->AI()->EnterEvadeMode();
572  }
Definition: icecrown_citadel.h:114
void DoCastAOE(uint32 spellId, bool triggered=false)
Definition: UnitAI.cpp:167
Definition: boss_the_lich_king.cpp:330
virtual void EnterEvadeMode(EvadeReason why=EVADE_REASON_OTHER)
Definition: CreatureAI.cpp:168
void DoAction(int32 info, Predicate &predicate, uint16 max=0)
Definition: ScriptedCreature.h:104
Definition: icecrown_citadel.h:87
Definition: icecrown_citadel.h:315
Definition: Creature.h:467
Definition: InstanceScript.h:60
Creature *const me
Definition: CreatureAI.h:71
virtual ObjectGuid GetGuidData(uint32 type) const override
Definition: InstanceScript.cpp:93
virtual bool SetBossState(uint32 id, EncounterState state)
Definition: InstanceScript.cpp:273
SummonList summons
Definition: ScriptedCreature.h:372
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
Definition: ObjectAccessor.cpp:174
Definition: ScriptedCreature.h:126
Definition: boss_the_lich_king.cpp:139
InstanceScript *const instance
Definition: ScriptedCreature.h:340

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uint32 boss_the_lich_king::boss_the_lich_kingAI::GetData ( uint32  type) const
inlineoverridevirtual

Reimplemented from UnitAI.

625  {
626  switch (type)
627  {
628  case DATA_PLAGUE_STACK:
629  return _necroticPlagueStack;
630  case DATA_VILE:
631  return _vileSpiritExplosions;
632  default:
633  break;
634  }
635 
636  return 0;
637  }
Definition: boss_the_lich_king.cpp:351
uint32 _necroticPlagueStack
Definition: boss_the_lich_king.cpp:1108
uint32 _vileSpiritExplosions
Definition: boss_the_lich_king.cpp:1109
Definition: boss_the_lich_king.cpp:352
void boss_the_lich_king::boss_the_lich_kingAI::Initialize ( void  )
inline
491  {
494  }
uint32 _necroticPlagueStack
Definition: boss_the_lich_king.cpp:1108
uint32 _vileSpiritExplosions
Definition: boss_the_lich_king.cpp:1109

+ Here is the caller graph for this function:

void boss_the_lich_king::boss_the_lich_kingAI::JustDied ( Unit )
inlineoverridevirtual

Reimplemented from BossAI.

506  {
507  _JustDied();
508  DoCastAOE(SPELL_PLAY_MOVIE, false);
509  me->SetDisableGravity(false);
512  if (Creature* frostmourne = me->FindNearestCreature(NPC_FROSTMOURNE_TRIGGER, 50.0f))
513  frostmourne->DespawnOrUnsummon();
514  }
void DoCastAOE(uint32 spellId, bool triggered=false)
Definition: UnitAI.cpp:167
MotionMaster * GetMotionMaster()
Definition: Unit.h:2101
Definition: Unit.h:254
void _JustDied()
Definition: ScriptedCreature.cpp:471
Definition: Unit.h:253
Definition: icecrown_citadel.h:319
Definition: Creature.h:467
bool SetDisableGravity(bool disable, bool packetOnly=false)
Definition: Unit.cpp:15818
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
Definition: Object.cpp:2443
void MoveFall(uint32 id=0)
Definition: MotionMaster.cpp:440
Definition: boss_the_lich_king.cpp:176
Creature *const me
Definition: CreatureAI.h:71
void RemoveByteFlag(uint16 index, uint8 offset, uint8 newFlag)
Definition: Object.cpp:1271
Definition: UpdateFields.h:124

+ Here is the call graph for this function:

void boss_the_lich_king::boss_the_lich_kingAI::JustReachedHome ( )
inlineoverridevirtual

Reimplemented from BossAI.

539  {
542 
543  // Reset The Frozen Throne gameobjects
546  me->VisitNearbyGridObject(333.0f, worker);
547 
548  // Restore Tirion's gossip only after The Lich King fully resets to prevent
549  // restarting the encounter while LK still runs back to spawn point
551  tirion->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
552 
553  // Reset any light override
555  }
Definition: Unit.h:735
Definition: icecrown_citadel.h:114
Map * GetMap() const
Definition: Object.h:543
Definition: icecrown_citadel.h:87
Definition: Creature.h:467
void VisitNearbyGridObject(float const &radius, NOTIFIER &notifier) const
Definition: Object.h:588
Definition: boss_the_lich_king.cpp:378
Definition: icecrown_citadel.h:524
Creature *const me
Definition: CreatureAI.h:71
virtual ObjectGuid GetGuidData(uint32 type) const override
Definition: InstanceScript.cpp:93
Definition: GridNotifiers.h:353
void _JustReachedHome()
Definition: ScriptedCreature.h:366
Definition: InstanceScript.h:58
virtual bool SetBossState(uint32 id, EncounterState state)
Definition: InstanceScript.cpp:273
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
Definition: ObjectAccessor.cpp:174
Definition: UpdateFields.h:135
void SetZoneOverrideLight(uint32 zoneId, uint32 lightId, uint32 fadeInTime)
Definition: Map.cpp:3943
InstanceScript *const instance
Definition: ScriptedCreature.h:340

+ Here is the call graph for this function:

void boss_the_lich_king::boss_the_lich_kingAI::JustSummoned ( Creature summon)
inlineoverridevirtual

Reimplemented from BossAI.

700  {
701  switch (summon->GetEntry())
702  {
704  case NPC_DRUDGE_GHOUL:
705  summon->CastSpell(summon, SPELL_RISEN_WITCH_DOCTOR_SPAWN, true);
706  summon->SetReactState(REACT_PASSIVE);
708  summon->m_Events.AddEvent(new StartMovementEvent(me, summon), summon->m_Events.CalculateTime(5000));
709  break;
710  case NPC_ICE_SPHERE:
711  {
712  if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))
713  {
714  summon->SetReactState(REACT_PASSIVE);
715  summon->CastSpell(summon, SPELL_ICE_SPHERE, false);
716  summon->CastSpell(summon, SPELL_ICE_BURST_TARGET_SEARCH, false);
717  summon->CastSpell(target, SPELL_ICE_PULSE, false);
719  summon->GetMotionMaster()->MoveFollow(target, 0.0f, 0.0f);
720  }
721  else
722  summon->DespawnOrUnsummon();
723  break;
724  }
725  case NPC_DEFILE:
726  summon->SetReactState(REACT_PASSIVE);
727  summon->CastSpell(summon, SPELL_DEFILE_AURA, false);
728  break;
730  {
731  summon->CastSpell((Unit*)NULL, SPELL_BROKEN_FROSTMOURNE, true);
732 
735 
737  return;
738  }
739  case NPC_VILE_SPIRIT:
740  {
741  summons.Summon(summon);
742  summon->SetReactState(REACT_PASSIVE);
743  summon->SetSpeed(MOVE_FLIGHT, 0.5f);
744  summon->GetMotionMaster()->MoveRandom(10.0f);
746  summon->m_Events.AddEvent(new VileSpiritActivateEvent(summon), summon->m_Events.CalculateTime(15000));
747  return;
748  }
750  summons.Summon(summon);
751  return;
752  default:
753  break;
754  }
755 
756  BossAI::JustSummoned(summon);
757  }
void DespawnOrUnsummon(uint32 msTimeToDespawn=0)
Definition: Creature.cpp:1774
EventProcessor m_Events
Definition: Unit.h:1948
Definition: Unit.h:605
void MoveRandom(float spawndist=0.0f)
Definition: MotionMaster.cpp:192
Map * GetMap() const
Definition: Object.h:543
Definition: boss_the_lich_king.cpp:170
Definition: Unit.h:565
Definition: Unit.h:1129
Definition: icecrown_citadel.h:311
void AddEvent(BasicEvent *Event, uint64 e_time, bool set_addtime=true)
Definition: EventProcessor.cpp:88
MotionMaster * GetMotionMaster()
Definition: Unit.h:2101
void Summon(Creature const *summon)
Definition: ScriptedCreature.h:92
arena_t NULL
Definition: jemalloc_internal.h:624
Definition: icecrown_citadel.h:315
Definition: icecrown_citadel.h:319
bool IsInPhase(uint8 phase) const
Definition: EventMap.h:290
Definition: icecrown_citadel.h:309
Definition: icecrown_citadel.h:524
void ClearUnitState(uint32 f)
Definition: Unit.h:1396
Creature *const me
Definition: CreatureAI.h:71
Definition: icecrown_citadel.h:307
Definition: boss_the_lich_king.cpp:282
Definition: icecrown_citadel.h:313
Definition: boss_the_lich_king.cpp:100
Definition: boss_the_lich_king.cpp:410
Definition: UnitAI.h:35
Unit * SelectTarget(SelectAggroTarget targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, int32 aura=0)
Definition: UnitAI.cpp:91
uint64 CalculateTime(uint64 t_offset) const
Definition: EventProcessor.cpp:95
Definition: boss_the_lich_king.cpp:111
Definition: SharedDefines.h:2561
void ScheduleEvent(uint32 eventId, Milliseconds const &time, uint32 group=0, uint8 phase=0)
Definition: EventMap.h:123
Definition: Weather.h:61
SummonList summons
Definition: ScriptedCreature.h:372
Definition: boss_the_lich_king.cpp:101
Definition: boss_the_lich_king.cpp:99
Definition: boss_the_lich_king.cpp:336
Definition: boss_the_lich_king.cpp:432
Definition: boss_the_lich_king.cpp:281
EventMap events
Definition: ScriptedCreature.h:371
void HandleEmoteCommand(uint32 anim_id)
Definition: Unit.cpp:1444
void SetSpeed(UnitMoveType mtype, float rate, bool forced=false)
Definition: Unit.cpp:10531
Definition: icecrown_citadel.h:308
uint32 GetEntry() const
Definition: Object.h:107
Definition: boss_the_lich_king.cpp:248
void SetZoneWeather(uint32 zoneId, WeatherState weatherId, float weatherGrade)
Definition: Map.cpp:3922
void JustSummoned(Creature *summon) override
Definition: ScriptedCreature.cpp:511
void SetZoneOverrideLight(uint32 zoneId, uint32 lightId, uint32 fadeInTime)
Definition: Map.cpp:3943
Definition: Unit.h:1305
void SetReactState(ReactStates st)
Definition: Creature.h:502
void CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition: Unit.cpp:869
Definition: boss_the_lich_king.cpp:84
void MoveFollow(Unit *target, float dist, float angle, MovementSlot slot=MOTION_SLOT_ACTIVE)
Definition: MotionMaster.cpp:265

+ Here is the call graph for this function:

void boss_the_lich_king::boss_the_lich_kingAI::KilledUnit ( Unit victim)
inlineoverridevirtual

Reimplemented from ScriptedAI.

575  {
576  if (victim->GetTypeId() == TYPEID_PLAYER && !me->IsInEvadeMode() && !events.IsInPhase(PHASE_OUTRO))
577  Talk(SAY_LK_KILL);
578  }
bool IsInEvadeMode() const
Definition: Creature.h:520
bool IsInPhase(uint8 phase) const
Definition: EventMap.h:290
Creature *const me
Definition: CreatureAI.h:71
TypeID GetTypeId() const
Definition: Object.h:113
Definition: boss_the_lich_king.cpp:282
Definition: boss_the_lich_king.cpp:44
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
Definition: CreatureAI.cpp:42
Definition: ObjectGuid.h:33
EventMap events
Definition: ScriptedCreature.h:371

+ Here is the call graph for this function:

void boss_the_lich_king::boss_the_lich_kingAI::MovementInform ( uint32  type,
uint32  pointId 
)
inlineoverridevirtual

Reimplemented from CreatureAI.

792  {
793  if (type != POINT_MOTION_TYPE)
794  return;
795 
796  switch (pointId)
797  {
798  case POINT_LK_INTRO_1:
799  // schedule for next update cycle, current update must finalize movement
801  break;
802  case POINT_LK_INTRO_2:
804  break;
805  case POINT_LK_INTRO_3:
807  tirion->AI()->DoAction(ACTION_CONTINUE_INTRO);
809  break;
810  case POINT_CENTER_1:
811  me->SetFacingTo(0.0f);
815  events.DelayEvents(62500, EVENT_GROUP_BERSERK); // delay berserk timer, its not ticking during phase transitions
824  break;
825  case POINT_CENTER_2:
826  me->SetFacingTo(0.0f);
831  events.DelayEvents(62500, EVENT_GROUP_BERSERK); // delay berserk timer, its not ticking during phase transitions
840  break;
841  case POINT_LK_OUTRO_1:
845  break;
846  case POINT_LK_OUTRO_2:
848  tirion->AI()->Talk(SAY_TIRION_OUTRO_2);
849  if (Creature* frostmourne = me->FindNearestCreature(NPC_FROSTMOURNE_TRIGGER, 50.0f))
850  frostmourne->AI()->DoAction(ACTION_SUMMON_TERENAS);
851  break;
852  default:
853  break;
854  }
855  }
Definition: boss_the_lich_king.cpp:61
Definition: boss_the_lich_king.cpp:38
Definition: icecrown_citadel.h:114
Definition: boss_the_lich_king.cpp:198
Definition: boss_the_lich_king.cpp:339
Definition: boss_the_lich_king.cpp:213
Map * GetMap() const
Definition: Object.h:543
Definition: boss_the_lich_king.cpp:276
Definition: boss_the_lich_king.cpp:215
Definition: boss_the_lich_king.cpp:308
Definition: boss_the_lich_king.cpp:95
Definition: boss_the_lich_king.cpp:270
Definition: boss_the_lich_king.cpp:241
Definition: boss_the_lich_king.cpp:312
void DespawnEntry(uint32 entry)
Definition: ScriptedCreature.cpp:49
Definition: boss_the_lich_king.cpp:305
Definition: boss_the_lich_king.cpp:280
Definition: boss_the_lich_king.cpp:328
bool IsHeroic() const
Definition: ScriptedCreature.h:268
void SetZoneMusic(uint32 zoneId, uint32 musicId)
Definition: Map.cpp:3905
Definition: icecrown_citadel.h:319
Definition: Creature.h:467
Definition: boss_the_lich_king.cpp:208
Definition: boss_the_lich_king.cpp:304
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
Definition: Object.cpp:2443
Definition: boss_the_lich_king.cpp:217
Definition: boss_the_lich_king.cpp:223
Definition: boss_the_lich_king.cpp:279
Definition: boss_the_lich_king.cpp:216
Definition: icecrown_citadel.h:524
Creature *const me
Definition: CreatureAI.h:71
Definition: boss_the_lich_king.cpp:225
Definition: boss_the_lich_king.cpp:282
Definition: boss_the_lich_king.cpp:224
virtual ObjectGuid GetGuidData(uint32 type) const override
Definition: InstanceScript.cpp:93
Definition: boss_the_lich_king.cpp:240
Definition: boss_the_lich_king.cpp:212
Definition: boss_the_lich_king.cpp:309
Definition: boss_the_lich_king.cpp:196
Definition: boss_the_lich_king.cpp:239
void DoCast(uint32 spellId)
Definition: UnitAI.cpp:101
void SetFacingTo(float ori)
Definition: Unit.cpp:15777
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
Definition: CreatureAI.cpp:42
void ScheduleEvent(uint32 eventId, Milliseconds const &time, uint32 group=0, uint8 phase=0)
Definition: EventMap.h:123
SummonList summons
Definition: ScriptedCreature.h:372
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
Definition: ObjectAccessor.cpp:174
Definition: boss_the_lich_king.cpp:214
Definition: boss_the_lich_king.cpp:271
Definition: icecrown_citadel.h:312
EventMap events
Definition: ScriptedCreature.h:371
Definition: boss_the_lich_king.cpp:218
Definition: boss_the_lich_king.cpp:307
Definition: boss_the_lich_king.cpp:315
Definition: boss_the_lich_king.cpp:278
Definition: boss_the_lich_king.cpp:323
Definition: MotionMaster.h:46
Definition: boss_the_lich_king.cpp:211
Definition: boss_the_lich_king.cpp:96
void DelayEvents(Milliseconds const &delay)
Definition: EventMap.h:219
InstanceScript *const instance
Definition: ScriptedCreature.h:340
Definition: boss_the_lich_king.cpp:197

+ Here is the call graph for this function:

void boss_the_lich_king::boss_the_lich_kingAI::Reset ( )
inlineoverridevirtual

Reimplemented from BossAI.

497  {
498  _Reset();
501  Initialize();
502  SetEquipmentSlots(true);
503  }
void SetEquipmentSlots(bool loadDefault, int32 mainHand=EQUIP_NO_CHANGE, int32 offHand=EQUIP_NO_CHANGE, int32 ranged=EQUIP_NO_CHANGE)
Definition: ScriptedCreature.cpp:364
Definition: boss_the_lich_king.cpp:276
void SetPhase(uint8 phase)
Definition: EventMap.cpp:27
Definition: Unit.h:1129
void Initialize()
Definition: boss_the_lich_king.cpp:490
Creature *const me
Definition: CreatureAI.h:71
void _Reset()
Definition: ScriptedCreature.cpp:457
EventMap events
Definition: ScriptedCreature.h:371
void SetReactState(ReactStates st)
Definition: Creature.h:502

+ Here is the call graph for this function:

void boss_the_lich_king::boss_the_lich_kingAI::SetData ( uint32  type,
uint32  value 
)
inlineoverridevirtual

Reimplemented from UnitAI.

640  {
641  switch (type)
642  {
643  case DATA_PLAGUE_STACK:
645  break;
646  case DATA_VILE:
648  break;
649  default:
650  break;
651  }
652  }
Definition: boss_the_lich_king.cpp:351
uint32 _necroticPlagueStack
Definition: boss_the_lich_king.cpp:1108
uint32 _vileSpiritExplosions
Definition: boss_the_lich_king.cpp:1109
Definition: boss_the_lich_king.cpp:352
T max(const T &x, const T &y)
Definition: g3dmath.h:320
const FieldDescriptor value
Definition: descriptor.h:1522

+ Here is the call graph for this function:

void boss_the_lich_king::boss_the_lich_kingAI::SpellHit ( Unit ,
SpellInfo const spell 
)
inlineoverridevirtual

Reimplemented from ScriptedAI.

777  {
778  if (spell->Id == SPELL_HARVESTED_SOUL && me->IsInCombat() && !IsHeroic())
780  }
Definition: boss_the_lich_king.cpp:43
bool IsInCombat() const
Definition: Unit.h:1584
bool IsHeroic() const
Definition: ScriptedCreature.h:268
Creature *const me
Definition: CreatureAI.h:71
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
Definition: CreatureAI.cpp:42
Definition: boss_the_lich_king.cpp:140

+ Here is the call graph for this function:

void boss_the_lich_king::boss_the_lich_kingAI::SpellHitTarget ( Unit ,
SpellInfo const spell 
)
inlineoverridevirtual

Reimplemented from ScriptedAI.

783  {
784  if (spell->Id == REMORSELESS_WINTER_1 || spell->Id == REMORSELESS_WINTER_2)
785  {
788  }
789  }
Definition: Weather.h:53
Map * GetMap() const
Definition: Object.h:543
#define REMORSELESS_WINTER_2
Definition: boss_the_lich_king.cpp:187
Definition: boss_the_lich_king.cpp:335
#define REMORSELESS_WINTER_1
Definition: boss_the_lich_king.cpp:186
Definition: icecrown_citadel.h:524
Creature *const me
Definition: CreatureAI.h:71
void SetZoneWeather(uint32 zoneId, WeatherState weatherId, float weatherGrade)
Definition: Map.cpp:3922
void SetZoneOverrideLight(uint32 zoneId, uint32 lightId, uint32 fadeInTime)
Definition: Map.cpp:3943

+ Here is the call graph for this function:

void boss_the_lich_king::boss_the_lich_kingAI::SummonedCreatureDies ( Creature summon,
Unit  
)
inlineoverridevirtual

Reimplemented from CreatureAI.

760  {
761  switch (summon->GetEntry())
762  {
764  case NPC_DRUDGE_GHOUL:
765  case NPC_ICE_SPHERE:
767  case NPC_RAGING_SPIRIT:
768  case NPC_VILE_SPIRIT:
770  break;
771  default:
772  break;
773  }
774  }
Definition: Object.h:58
Definition: icecrown_citadel.h:309
TempSummon * ToTempSummon()
Definition: Unit.h:2206
Definition: icecrown_citadel.h:307
Definition: icecrown_citadel.h:313
Definition: icecrown_citadel.h:310
Definition: icecrown_citadel.h:312
void SetTempSummonType(TempSummonType type)
Definition: TemporarySummon.cpp:232
Definition: icecrown_citadel.h:308
uint32 GetEntry() const
Definition: Object.h:107

+ Here is the call graph for this function:

void boss_the_lich_king::boss_the_lich_kingAI::UpdateAI ( uint32  diff)
inlineoverridevirtual

Reimplemented from BossAI.

858  {
859  // check phase first to prevent updating victim and entering evade mode when not wanted
861  if (!UpdateVictim())
862  return;
863 
864  events.Update(diff);
865 
866  // during Remorseless Winter phases The Lich King is channeling a spell, but we must continue casting other spells
868  return;
869 
870  while (uint32 eventId = events.ExecuteEvent())
871  {
872  switch (eventId)
873  {
874  case EVENT_INTRO_MOVE_1:
877  me->SetWalk(true);
879  break;
880  case EVENT_INTRO_MOVE_2:
882  break;
883  case EVENT_INTRO_MOVE_3:
885  break;
886  case EVENT_INTRO_TALK_1:
888  // for some reason blizz sends 2 emotes in row here so (we handle one in Talk)
894  break;
897  break;
898  case EVENT_INTRO_EMOTE_1:
900  break;
903  DoCastAOE(SPELL_ICE_LOCK, false);
905  break;
906  case EVENT_FINISH_INTRO:
907  me->SetWalk(false);
911  break;
916  break;
920  break;
921  case EVENT_INFEST:
924  break;
927  {
929  DoCast(target, SPELL_NECROTIC_PLAGUE);
930  }
932  break;
933  case EVENT_SHADOW_TRAP:
935  DoCast(target, SPELL_SHADOW_TRAP);
937  break;
938  case EVENT_SOUL_REAPER:
941  break;
942  case EVENT_DEFILE:
943  if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0.0f, true, -SPELL_HARVEST_SOUL_VALKYR))
944  {
946  DoCast(target, SPELL_DEFILE);
947  }
949  break;
950  case EVENT_HARVEST_SOUL:
953  DoCast(target, SPELL_HARVEST_SOUL);
955  break;
957  if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))
960  break;
964  break;
966  if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))
969  break;
970  case EVENT_QUAKE:
972  me->ClearUnitState(UNIT_STATE_CASTING); // clear state to ensure check in DoCastAOE passes
976  break;
977  case EVENT_QUAKE_2:
979  me->ClearUnitState(UNIT_STATE_CASTING); // clear state to ensure check in DoCastAOE passes
983  break;
984  case EVENT_SUMMON_VALKYR:
989  break;
990  case EVENT_START_ATTACK:
994  break;
995  case EVENT_VILE_SPIRITS:
999  break;
1000  case EVENT_HARVEST_SOULS:
1004  events.SetPhase(PHASE_FROSTMOURNE); // will stop running UpdateVictim (no evading)
1006  me->AttackStop();
1012  break;
1015  {
1016  terenas->AI()->DoAction(ACTION_FROSTMOURNE_INTRO);
1017  std::list<Creature*> triggers;
1019  if (!triggers.empty())
1020  {
1021  triggers.sort(Trinity::ObjectDistanceOrderPred(terenas, true));
1022  Creature* spawner = triggers.front();
1023  spawner->CastSpell(spawner, SPELL_SUMMON_SPIRIT_BOMB_1, true); // summons bombs randomly
1024  spawner->CastSpell(spawner, SPELL_SUMMON_SPIRIT_BOMB_2, true); // summons bombs on players
1025  spawner->m_Events.AddEvent(new TriggerWickedSpirit(spawner), spawner->m_Events.CalculateTime(3000));
1026  }
1027 
1028  for (SummonList::iterator i = summons.begin(); i != summons.end(); ++i)
1029  {
1030  Creature* summon = ObjectAccessor::GetCreature(*me, *i);
1031  if (summon && summon->GetEntry() == NPC_VILE_SPIRIT)
1032  {
1033  summon->m_Events.KillAllEvents(true);
1034  summon->m_Events.AddEvent(new VileSpiritActivateEvent(summon), summon->m_Events.CalculateTime(50000));
1035  summon->GetMotionMaster()->MoveRandom(10.0f);
1036  summon->SetReactState(REACT_PASSIVE);
1037  }
1038  }
1039  }
1040  break;
1041  case EVENT_OUTRO_TALK_1:
1044  break;
1045  case EVENT_OUTRO_TALK_2:
1048  break;
1051  break;
1052  case EVENT_OUTRO_TALK_3:
1054  me->SetFacingToObject(tirion);
1056  break;
1059  break;
1060  case EVENT_OUTRO_TALK_4:
1061  me->SetFacingTo(0.01745329f);
1063  break;
1068  break;
1069  case EVENT_OUTRO_TALK_5:
1072  tirion->AI()->DoAction(ACTION_OUTRO);
1073  break;
1074  case EVENT_OUTRO_TALK_6:
1077  tirion->SetFacingToObject(me);
1080  break;
1084  // set flight
1085  me->SetDisableGravity(true);
1088  break;
1089  case EVENT_OUTRO_TALK_7:
1091  break;
1092  case EVENT_OUTRO_TALK_8:
1094  break;
1095  case EVENT_BERSERK:
1098  break;
1099  default:
1100  break;
1101  }
1102  }
1103 
1105  }
Definition: boss_the_lich_king.cpp:48
Definition: icecrown_citadel.h:495
bool AttackStop()
Definition: Unit.cpp:7337
void KillAllEvents(bool force)
Definition: EventProcessor.cpp:61
Definition: boss_the_lich_king.cpp:116
Definition: boss_the_lich_king.cpp:39
EventProcessor m_Events
Definition: Unit.h:1948
Position const OutroFlying
Definition: boss_the_lich_king.cpp:297
Definition: boss_the_lich_king.cpp:98
Definition: icecrown_citadel.h:114
Definition: boss_the_lich_king.cpp:253
Definition: UnitAI.h:107
void DoCastAOE(uint32 spellId, bool triggered=false)
Definition: UnitAI.cpp:167
Definition: boss_the_lich_king.cpp:198
Definition: TemporarySummon.h:40
void MoveRandom(float spawndist=0.0f)
Definition: MotionMaster.cpp:192
Definition: boss_the_lich_king.cpp:339
TempSummon * SummonCreature(uint32 entry, Position const &pos, SummonPropertiesEntry const *properties=NULL, uint32 duration=0, Unit *summoner=NULL, uint32 spellId=0, uint32 vehId=0)
Definition: Object.cpp:2219
Definition: boss_the_lich_king.cpp:213
void SetEquipmentSlots(bool loadDefault, int32 mainHand=EQUIP_NO_CHANGE, int32 offHand=EQUIP_NO_CHANGE, int32 ranged=EQUIP_NO_CHANGE)
Definition: ScriptedCreature.cpp:364
bool UpdateVictim()
Definition: CreatureAI.cpp:233
Definition: Unit.h:1131
Definition: boss_the_lich_king.cpp:41
Definition: boss_the_lich_king.cpp:53
#define SUMMON_VALKYR
Definition: boss_the_lich_king.cpp:188
Map * GetMap() const
Definition: Object.h:543
Definition: boss_the_lich_king.cpp:325
Definition: boss_the_lich_king.cpp:276
Definition: Unit.h:565
Definition: boss_the_lich_king.cpp:215
Definition: boss_the_lich_king.cpp:252
Definition: boss_the_lich_king.cpp:162
Definition: boss_the_lich_king.cpp:308
void SetPhase(uint8 phase)
Definition: EventMap.cpp:27
iterator begin()
Definition: ScriptedCreature.h:57
Definition: Unit.h:1129
Definition: boss_the_lich_king.cpp:90
Definition: boss_the_lich_king.cpp:452
void AddEvent(BasicEvent *Event, uint64 e_time, bool set_addtime=true)
Definition: EventProcessor.cpp:88
Definition: boss_the_lich_king.cpp:172
Definition: boss_the_lich_king.cpp:241
Definition: boss_the_lich_king.cpp:51
Definition: boss_the_lich_king.cpp:235
Definition: boss_the_lich_king.cpp:312
MotionMaster * GetMotionMaster()
Definition: Unit.h:2101
Definition: Unit.h:254
Position const CenterPosition
Definition: boss_the_lich_king.cpp:287
Definition: boss_the_lich_king.cpp:85
Definition: boss_the_lich_king.cpp:153
Definition: boss_the_lich_king.cpp:161
Definition: boss_the_lich_king.cpp:209
Definition: boss_the_lich_king.cpp:246
Definition: boss_the_lich_king.cpp:45
Definition: boss_the_lich_king.cpp:46
Definition: boss_the_lich_king.cpp:47
arena_t NULL
Definition: jemalloc_internal.h:624
TC_GAME_API void GetCreatureListWithEntryInGrid(std::list< Creature * > &list, WorldObject *source, uint32 entry, float maxSearchRange)
Definition: ScriptedCreature.cpp:621
Definition: boss_the_lich_king.cpp:49
Definition: Object.h:668
Definition: boss_the_lich_king.cpp:83
Definition: boss_the_lich_king.cpp:203
Definition: boss_the_lich_king.cpp:280
Definition: Unit.h:253
void SetZoneMusic(uint32 zoneId, uint32 musicId)
Definition: Map.cpp:3905
Definition: Creature.h:467
Definition: boss_the_lich_king.cpp:131
Definition: boss_the_lich_king.cpp:208
bool SetDisableGravity(bool disable, bool packetOnly=false)
Definition: Unit.cpp:15818
Definition: boss_the_lich_king.cpp:277
Definition: boss_the_lich_king.cpp:107
Definition: boss_the_lich_king.cpp:200
Definition: boss_the_lich_king.cpp:217
bool IsInPhase(uint8 phase) const
Definition: EventMap.h:290
#define NECROTIC_PLAGUE_LK
Definition: boss_the_lich_king.cpp:184
Definition: boss_the_lich_king.cpp:169
Definition: boss_the_lich_king.cpp:223
Definition: Unit.h:681
Definition: boss_the_lich_king.cpp:279
Definition: boss_the_lich_king.cpp:216
Definition: boss_the_lich_king.cpp:80
void SetByteFlag(uint16 index, uint8 offset, uint8 newFlag)
Definition: Object.cpp:1252
Definition: boss_the_lich_king.cpp:97
Definition: icecrown_citadel.h:524
void ClearUnitState(uint32 f)
Definition: Unit.h:1396
Creature *const me
Definition: CreatureAI.h:71
Definition: icecrown_citadel.h:43
void MovePoint(uint32 id, Position const &pos, bool generatePath=true)
Definition: MotionMaster.h:172
Definition: boss_the_lich_king.cpp:225
Definition: boss_the_lich_king.cpp:207
Definition: boss_the_lich_king.cpp:282
Definition: boss_the_lich_king.cpp:210
Definition: boss_the_lich_king.cpp:132
Definition: boss_the_lich_king.cpp:115
void SetFacingToObject(WorldObject const *object)
Definition: Unit.cpp:15787
Definition: icecrown_citadel.h:313
Definition: boss_the_lich_king.cpp:224
virtual ObjectGuid GetGuidData(uint32 type) const override
Definition: InstanceScript.cpp:93
Definition: boss_the_lich_king.cpp:40
Definition: UnitAI.h:35
Definition: boss_the_lich_king.cpp:240
Definition: boss_the_lich_king.cpp:212
Definition: boss_the_lich_king.cpp:309
Definition: boss_the_lich_king.cpp:54
uint32 urand(uint32 min, uint32 max)
Definition: Random.cpp:45
Definition: UnitAI.h:93
#define NECROTIC_PLAGUE_PLR
Definition: boss_the_lich_king.cpp:185
Unit * SelectTarget(SelectAggroTarget targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, int32 aura=0)
Definition: UnitAI.cpp:91
uint32_t uint32
Definition: Define.h:150
Definition: boss_the_lich_king.cpp:234
uint64 CalculateTime(uint64 t_offset) const
Definition: EventProcessor.cpp:95
Definition: boss_the_lich_king.cpp:196
Definition: boss_the_lich_king.cpp:239
Definition: boss_the_lich_king.cpp:236
Definition: icecrown_citadel.h:317
void DoCast(uint32 spellId)
Definition: UnitAI.cpp:101
void SetFacingTo(float ori)
Definition: Unit.cpp:15777
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
Definition: CreatureAI.cpp:42
Definition: boss_the_lich_king.cpp:341
Definition: boss_the_lich_king.cpp:103
Definition: SharedDefines.h:4245
Definition: icecrown_citadel.h:306
#define PHASE_TWO_THREE
Definition: boss_the_lich_king.cpp:285
virtual void SetSheath(SheathState sheathed)
Definition: Unit.h:1463
void ScheduleEvent(uint32 eventId, Milliseconds const &time, uint32 group=0, uint8 phase=0)
Definition: EventMap.h:123
Definition: boss_the_lich_king.cpp:154
SummonList summons
Definition: ScriptedCreature.h:372
Definition: boss_the_lich_king.cpp:199
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
Definition: ObjectAccessor.cpp:174
Position const LichKingIntro[3]
Definition: boss_the_lich_king.cpp:290
void Update(uint32 time)
Definition: EventMap.h:54
void RescheduleEvent(uint32 eventId, Milliseconds const &time, uint32 group=0, uint8 phase=0)
Definition: EventMap.h:146
Position const TerenasSpawnHeroic
Definition: boss_the_lich_king.cpp:299
void RemoveFlag(uint16 index, uint32 oldFlag)
Definition: Object.cpp:1214
Definition: boss_the_lich_king.cpp:237
Definition: boss_the_lich_king.cpp:86
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
Definition: Unit.cpp:3586
Definition: boss_the_lich_king.cpp:37
Definition: boss_the_lich_king.cpp:343
Definition: boss_the_lich_king.cpp:238
Definition: boss_the_lich_king.cpp:110
Definition: boss_the_lich_king.cpp:79
Definition: boss_the_lich_king.cpp:214
Definition: boss_the_lich_king.cpp:195
Definition: boss_the_lich_king.cpp:271
Definition: UpdateFields.h:109
uint32 ExecuteEvent()
Definition: EventMap.cpp:46
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)
Definition: CreatureTextMgr.cpp:296
Definition: boss_the_lich_king.cpp:206
Definition: boss_the_lich_king.cpp:432
bool SetWalk(bool enable)
Definition: Unit.cpp:15800
Definition: UpdateFields.h:124
void DoMeleeAttackIfReady()
Definition: UnitAI.cpp:49
bool HasUnitState(const uint32 f) const
Definition: Unit.h:1395
Definition: boss_the_lich_king.cpp:281
Definition: boss_the_lich_king.cpp:87
EventMap events
Definition: ScriptedCreature.h:371
void HandleEmoteCommand(uint32 anim_id)
Definition: Unit.cpp:1444
Definition: boss_the_lich_king.cpp:202
Will ignore aura scaling.
Definition: Unit.h:466
Definition: boss_the_lich_king.cpp:233
Definition: boss_the_lich_king.cpp:218
uint32 GetEntry() const
Definition: Object.h:107
Definition: boss_the_lich_king.cpp:77
void DoCastVictim(uint32 spellId, bool triggered=false)
Definition: UnitAI.cpp:159
Definition: boss_the_lich_king.cpp:248
Definition: boss_the_lich_king.cpp:160
Definition: boss_the_lich_king.cpp:307
Definition: boss_the_lich_king.cpp:52
Definition: boss_the_lich_king.cpp:222
Definition: boss_the_lich_king.cpp:50
Definition: boss_the_lich_king.cpp:55
Definition: boss_the_lich_king.cpp:315
Definition: SharedDefines.h:2509
StorageType::iterator iterator
Definition: ScriptedCreature.h:45
Definition: boss_the_lich_king.cpp:355
Definition: Unit.h:299
Definition: SharedDefines.h:2510
Definition: Unit.h:1305
Definition: boss_the_lich_king.cpp:278
Definition: boss_the_lich_king.cpp:127
void SetReactState(ReactStates st)
Definition: Creature.h:502
void CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition: Unit.cpp:869
Definition: boss_the_lich_king.cpp:211
void DelayEvents(Milliseconds const &delay)
Definition: EventMap.h:219
Definition: boss_the_lich_king.cpp:36
InstanceScript *const instance
Definition: ScriptedCreature.h:340
Definition: Unit.h:460
Definition: boss_the_lich_king.cpp:197
iterator end()
Definition: ScriptedCreature.h:67
Definition: CreatureAI.h:64
Definition: boss_the_lich_king.cpp:226

+ Here is the call graph for this function:

Member Data Documentation

uint32 boss_the_lich_king::boss_the_lich_kingAI::_necroticPlagueStack
private
uint32 boss_the_lich_king::boss_the_lich_kingAI::_vileSpiritExplosions
private

The documentation for this struct was generated from the following file: