AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
npc_hor_leader::npc_hor_leaderAI Struct Reference
Inheritance diagram for npc_hor_leader::npc_hor_leaderAI:
NullCreatureAI CreatureAI UnitAI

Public Member Functions

 npc_hor_leaderAI (Creature *creature)
 
void Reset () override
 
void DoAction (int32 actionId) override
 
void UpdateAI (uint32 diff) override
 Use to start attacking a target. Called just before JustEngagedWith()
 
- Public Member Functions inherited from NullCreatureAI
 NullCreatureAI (Creature *c)
 
void MoveInLineOfSight (Unit *) override
 
void AttackStart (Unit *) override
 
void JustStartedThreateningMe (Unit *) override
 
void JustEnteredCombat (Unit *) override
 Called when the unit enters combat.
 
void UpdateAI (uint32) override
 Use to start attacking a target. Called just before JustEngagedWith()
 
void EnterEvadeMode (EvadeReason) override
 
void OnCharmed (bool) override
 Called when unit is charmed.
 
- Public Member Functions inherited from CreatureAI
void Talk (uint8 id, WorldObject const *whisperTarget=nullptr, Milliseconds delay=0ms)
 Causes the creature to talk/say the text assigned to their entry in the creature_text database table.
 
void Talk (uint8 id, Milliseconds delay)
 
WorldObject * GetSummoner () const
 Returns the summoner creature/object, if the creature is a temporary summon.
 
 CreatureAI (Creature *creature)
 
 ~CreatureAI () override
 
bool IsEngaged () const
 Check if creature is currently engaged in combat.
 
void MoveCircleChecks ()
 
void MoveBackwardsChecks ()
 
void MoveInLineOfSight_Safe (Unit *who)
 == Reactions At =================================
 
void TriggerAlert (Unit const *who) const
 
virtual bool CanRespawn ()
 
virtual bool IsEscortNPC (bool=true) const
 
virtual void JustEngagedWith (Unit *)
 Called for reaction when initially engaged - this happens after JustEnteredCombat.
 
void EngagementStart (Unit *who)
 
void EngagementOver ()
 
void JustExitedCombat () override
 Called when the unit leaves combat.
 
virtual void JustDied (Unit *)
 
virtual void KilledUnit (Unit *)
 
virtual void JustSummoned (Creature *)
 
virtual void IsSummonedBy (WorldObject *)
 
virtual void SummonedCreatureDespawn (Creature *)
 
virtual void SummonedCreatureDies (Creature *, Unit *)
 
virtual void SummonedCreatureDespawnAll ()
 
virtual void SummonedCreatureEvade (Creature *)
 
virtual void SpellHit (Unit *, SpellInfo const *)
 
virtual void SpellHitTarget (Unit *, SpellInfo const *)
 
virtual void OnSpellStart (SpellInfo const *)
 
virtual void OnSpellCast (SpellInfo const *)
 
virtual void OnSpellFailed (SpellInfo const *)
 
virtual void OnChannelFinished (SpellInfo const *)
 
virtual void AttackedBy (Unit *)
 
virtual bool IsEscorted ()
 
virtual void JustRespawned ()
 
virtual void MovementInform (uint32, uint32)
 
virtual void PathEndReached (uint32)
 
virtual void WaypointPathStarted (uint32)
 == Waypoints system =============================
 
virtual void WaypointStarted (uint32, uint32)
 
virtual void WaypointReached (uint32, uint32)
 
virtual void WaypointPathEnded (uint32, uint32)
 
virtual void JustReachedHome ()
 
void DoZoneInCombat (Creature *creature=nullptr, float maxRangeToNearestTarget=250.0f)
 
virtual void ReceiveEmote (Player *, uint32)
 
virtual void OwnerAttackedBy (Unit *attacker)
 
virtual void OwnerAttacked (Unit *target)
 
void OnOwnerCombatInteraction (Unit *target)
 
virtual void CorpseRemoved (uint32 &)
 == Triggered Actions Requested ==================
 
virtual void PassengerBoarded (Unit *, int8, bool)
 == Fields =======================================
 
virtual bool BeforeSpellClick (Unit *)
 
virtual void OnSpellClick (Unit *, bool &)
 
virtual bool CanSeeAlways (WorldObject const *)
 
virtual bool CanBeSeen (Player const *)
 
virtual bool CanAlwaysBeDetectable (WorldObject const *)
 
virtual void PetStopAttack ()
 
int32 VisualizeBoundary (uint32 duration, Unit *owner=nullptr, bool fill=false, bool checkZ=false) const
 
virtual bool CheckInRoom ()
 
CreatureBoundary const * GetBoundary () const
 
void SetBoundary (CreatureBoundary const *boundary, bool negativeBoundaries=false)
 
bool IsInBoundary (Position const *who=nullptr) const
 
virtual void CalculateThreat (Unit *, float &, SpellInfo const *)
 
virtual bool OnTeleportUnreacheablePlayer (Player *)
 
virtual void OnAuraRemove (AuraApplication *, AuraRemoveMode)
 
virtual void DistancingStarted ()
 
virtual void DistancingEnded ()
 
- Public Member Functions inherited from UnitAI
 UnitAI (Unit *unit)
 
virtual ~UnitAI ()
 
virtual bool CanAIAttack (Unit const *) const
 
virtual void InitializeAI ()
 
virtual uint32 GetData (uint32) const
 
virtual void SetData (uint32, uint32)
 
virtual void SetGUID (ObjectGuid const &, int32=0)
 
virtual ObjectGuid GetGUID (int32=0) const
 
Unit * SelectTarget (SelectTargetMethod targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0)
 
template<class PREDICATE >
Unit * SelectTarget (SelectTargetMethod targetType, uint32 position, PREDICATE const &predicate)
 
void SelectTargetList (std::list< Unit * > &targetList, uint32 num, SelectTargetMethod targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0)
 Select the best (up to) <num> targets (in <targetType> order) from the threat list that fulfill the following:
 
template<class PREDICATE >
void SelectTargetList (std::list< Unit * > &targetList, uint32 num, SelectTargetMethod targetType, uint32 position, PREDICATE const &predicate)
 
virtual void OnDespawn ()
 Called when the unit is about to be removed from the world (despawn, grid unload, corpse disappearing, player logging out etc.)
 
virtual void EvadeTimerExpired ()
 Called when evade timer expires (target unreachable for too long)
 
virtual void DamageDealt (Unit *, uint32 &, DamageEffectType, SpellSchoolMask)
 Called at any Damage to any victim (before damage apply)
 
virtual void DamageTaken (Unit *, uint32 &, DamageEffectType, SpellSchoolMask)
 Called at any Damage from any attacker (before damage apply)
 
virtual void HealReceived (Unit *, uint32 &)
 Called when the creature receives heal.
 
virtual void OnPowerUpdate (Powers, int32, int32, uint32)
 Called when the creature power updates.
 
virtual void HealDone (Unit *, uint32 &)
 Called when the unit heals.
 
virtual void OnCalculateMeleeDamageReceived (uint32 &, Unit *)
 Called during damage calculations.
 
virtual void OnCalculateSpellDamageReceived (int32 &, Unit *)
 
virtual void OnCalculatePeriodicTickReceived (uint32 &, Unit *)
 Called during calculation when receiving periodic healing or damage (DoT or HoT)
 
void AttackStartCaster (Unit *victim, float dist)
 
SpellCastResult DoAddAuraToAllHostilePlayers (uint32 spellid)
 
SpellCastResult DoCast (uint32 spellId)
 
SpellCastResult DoCast (Unit *victim, uint32 spellId, bool triggered=false)
 
SpellCastResult DoCastSelf (uint32 spellId, bool triggered=false)
 
SpellCastResult DoCastToAllHostilePlayers (uint32 spellid, bool triggered=false)
 To specify the caster as target if the spell is self-cast.
 
SpellCastResult DoCastVictim (uint32 spellId, bool triggered=false)
 
SpellCastResult DoCastAOE (uint32 spellId, bool triggered=false)
 
SpellCastResult DoCastRandomTarget (uint32 spellId, uint32 threatTablePosition=0, float dist=0.0f, bool playerOnly=true, bool triggered=false, bool withTank=true, int32 aura=0)
 Cast the spell on a random unit from the threat list.
 
SpellCastResult DoCastMaxThreat (uint32 spellId, uint32 threatTablePosition=0, float dist=0.0f, bool playerOnly=true, bool triggered=false)
 Cast spell on the top threat target, which may not be the current victim.
 
float DoGetSpellMaxRange (uint32 spellId, bool positive=false)
 
void DoMeleeAttackIfReady ()
 
bool DoSpellAttackIfReady (uint32 spell)
 
void DoSpellAttackToRandomTargetIfReady (uint32 spell, uint32 threatTablePosition=0, float dist=0.f, bool playerOnly=true)
 
virtual void SummonMovementInform (Creature *, uint32, uint32)
 Called when a summon reaches a waypoint or point movement finished.
 
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 sQuestComplete (Player *, Quest const *)
 
virtual void sQuestReward (Player *, Quest const *, uint32)
 
virtual void sOnGameEvent (bool, uint16)
 
virtual std::string GetDebugInfo () const
 

Public Attributes

InstanceScript * instance
 
EventMap events
 
bool shortver
 

Additional Inherited Members

- Public Types inherited from CreatureAI
enum  EvadeReason {
  EVADE_REASON_NO_HOSTILES ,
  EVADE_REASON_BOUNDARY ,
  EVADE_REASON_SEQUENCE_BREAK ,
  EVADE_REASON_NO_PATH ,
  EVADE_REASON_OTHER
}
 
- Static Public Member Functions inherited from NullCreatureAI
static int32 Permissible (Creature const *creature)
 
- Static Public Member Functions inherited from CreatureAI
static bool IsInBounds (CreatureBoundary const &boundary, Position const *who)
 
- Static Public Member Functions inherited from UnitAI
static void FillAISpellInfo ()
 
- Static Public Attributes inherited from UnitAI
static AISpellInfoType * AISpellInfo
 
- Protected Member Functions inherited from CreatureAI
bool UpdateVictim ()
 
bool UpdateVictimWithGaze ()
 
void SetGazeOn (Unit *target)
 
Creature * DoSummon (uint32 entry, Position const &pos, uint32 despawnTime=30000, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
 
Creature * DoSummon (uint32 entry, WorldObject *obj, float radius=5.0f, uint32 despawnTime=30000, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
 
Creature * DoSummonFlyer (uint32 entry, WorldObject *obj, float flightZ, float radius=5.0f, uint32 despawnTime=30000, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
 
bool _EnterEvadeMode (EvadeReason why=EVADE_REASON_OTHER)
 
- Protected Attributes inherited from CreatureAI
Creature *const me
 
EventMap events
 
TaskScheduler scheduler
 
CreatureBoundary const * _boundary
 
bool _negateBoundary
 
bool _isEngaged
 
- Protected Attributes inherited from UnitAI
Unit *const me
 

Detailed Description

Constructor & Destructor Documentation

◆ npc_hor_leaderAI()

npc_hor_leader::npc_hor_leaderAI::npc_hor_leaderAI ( Creature *  creature)
inline
213 : NullCreatureAI(creature)
214 {
216 if (!instance)
217 me->IsAIEnabled = false;
218 }
Creature *const me
Definition CreatureAI.h:71
Definition PassiveAI.h:56
bool IsAIEnabled
Definition Unit.h:2102
InstanceScript * GetInstanceScript() const
Definition Object.cpp:1247
InstanceScript * instance
Definition halls_of_reflection.cpp:220

References WorldObject::GetInstanceScript(), instance, Unit::IsAIEnabled, and CreatureAI::me.

Member Function Documentation

◆ DoAction()

void npc_hor_leader::npc_hor_leaderAI::DoAction ( int32  actionId)
inlineoverridevirtual

Reimplemented from UnitAI.

240 {
241 switch (actionId)
242 {
244 events.ScheduleEvent(EVENT_START_INTRO, 0ms);
245 break;
247 events.ScheduleEvent(EVENT_SKIP_INTRO, 0ms);
248 break;
249 }
250 }
@ ACTION_START_INTRO
Definition boss_nightbane.cpp:57
events
Definition boss_sartura.cpp:43
@ EVENT_START_INTRO
Definition halls_of_reflection.cpp:40
@ EVENT_SKIP_INTRO
Definition halls_of_reflection.cpp:41
@ ACTION_SKIP_INTRO
Definition halls_of_reflection.h:255

References ACTION_SKIP_INTRO, ACTION_START_INTRO, EVENT_SKIP_INTRO, and EVENT_START_INTRO.

◆ Reset()

void npc_hor_leader::npc_hor_leaderAI::Reset ( )
inlineoverridevirtual

Reimplemented from UnitAI.

225 {
226 shortver = false;
227 events.Reset();
230 {
231 events.ScheduleEvent(EVENT_PRE_INTRO_1, 10s);
232 events.ScheduleEvent(EVENT_PRE_INTRO_2, 11s);
233 events.ScheduleEvent(EVENT_EMOTE_LEADER_1, 16s);
234 events.ScheduleEvent(EVENT_TALK_LEADER_1, 16s);
235 events.ScheduleEvent(EVENT_PRE_INTRO_3, 19s);
236 }
237 }
@ EMOTE_ONESHOT_NONE
Definition SharedDefines.h:1898
@ UNIT_NPC_EMOTESTATE
Definition UpdateFields.h:140
uint32 GetPersistentData(uint32 index) const
Definition InstanceScript.h:257
void SetUInt32Value(uint16 index, uint32 value)
Definition Unit.cpp:16980
@ EVENT_PRE_INTRO_1
Definition halls_of_reflection.cpp:33
@ EVENT_PRE_INTRO_2
Definition halls_of_reflection.cpp:34
@ EVENT_EMOTE_LEADER_1
Definition halls_of_reflection.cpp:38
@ EVENT_TALK_LEADER_1
Definition halls_of_reflection.cpp:37
@ EVENT_PRE_INTRO_3
Definition halls_of_reflection.cpp:35
@ PERSISTENT_DATA_INTRO
Definition halls_of_reflection.h:119
bool shortver
Definition halls_of_reflection.cpp:222

References EMOTE_ONESHOT_NONE, EVENT_EMOTE_LEADER_1, EVENT_PRE_INTRO_1, EVENT_PRE_INTRO_2, EVENT_PRE_INTRO_3, EVENT_TALK_LEADER_1, InstanceScript::GetPersistentData(), instance, CreatureAI::me, PERSISTENT_DATA_INTRO, Unit::SetUInt32Value(), shortver, and UNIT_NPC_EMOTESTATE.

◆ UpdateAI()

void npc_hor_leader::npc_hor_leaderAI::UpdateAI ( uint32  )
inlineoverridevirtual

Use to start attacking a target. Called just before JustEngagedWith()

Implements UnitAI.

253 {
254 events.Update(diff);
255 switch (events.ExecuteEvent())
256 {
258 if (instance)
259 {
260
262 me->SetVisible(true);
263
264 }
265 break;
267 if (me->GetEntry() == NPC_JAINA_PART1)
270 break;
274 break;
277 break;
281 break;
283 shortver = false;
287 {
288 loralen->LoadEquipment(true);
289 loralen->SetVisible(true);
290 loralen->SetWalk(true);
291 loralen->GetMotionMaster()->MovePoint(0, LoralenMidleFollowPos);
292 }
293 // Begining of intro is differents between factions as the speech sequence and timers are differents.
294 if (me->GetEntry() == NPC_JAINA_PART1)
295 events.ScheduleEvent(EVENT_INTRO_A2_1, 10s);
296 else
297 {
298 events.ScheduleEvent(EVENT_INTRO_H2_2, 9s);
299 events.ScheduleEvent(EVENT_LORALEN_MOVE_1, 24s);
300 events.ScheduleEvent(EVENT_LORALEN_MOVE_2, 32s);
301 }
302 break;
303
304 case EVENT_SKIP_INTRO:
305 shortver = true;
309 loralen->GetMotionMaster()->MovePoint(0, LoralenFollowPos);
310 events.ScheduleEvent(EVENT_INTRO_LK_1, 0ms);
311 break;
312
313 // A2 Intro Events
314 case EVENT_INTRO_A2_1:
316 events.ScheduleEvent(EVENT_INTRO_A2_2, 5s);
317 break;
318 case EVENT_INTRO_A2_2:
320 events.ScheduleEvent(EVENT_INTRO_A2_3, 10s);
321 break;
322 case EVENT_INTRO_A2_3:
325 //DoCastSelf(SPELL_ARCANE_CAST_VISUAL);// the sniff is missing from the alliance
326 events.ScheduleEvent(EVENT_INTRO_A2_4, 10s);
327 break;
328 case EVENT_INTRO_A2_4:
329 if (Creature* uther = instance->GetCreature(NPC_UTHER))
330 {
331 uther->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
332 uther->SetVisible(true);
333 if (Aura* a = uther->AddAura(SPELL_SHADOWMOURNE_VISUAL, uther))
334 a->SetDuration(8000);
335 }
336 events.ScheduleEvent(EVENT_INTRO_A2_5, 2s);
337 break;
338 case EVENT_INTRO_A2_5:
339 if (Creature* uther = instance->GetCreature(NPC_UTHER))
340 {
341 uther->AI()->Talk(SAY_UTHER_INTRO_A2_1);
342 events.ScheduleEvent(EVENT_INTRO_A2_6, 3s);
343 }
344 break;
345 case EVENT_INTRO_A2_6:
347 events.ScheduleEvent(EVENT_INTRO_A2_7, 6s);
348 break;
349 case EVENT_INTRO_A2_7:
350 if (Creature* uther = instance->GetCreature(NPC_UTHER))
351 uther->AI()->Talk(SAY_UTHER_INTRO_A2_2);
352 events.ScheduleEvent(EVENT_INTRO_A2_8, 6500ms);
353 break;
354 case EVENT_INTRO_A2_8:
356 events.ScheduleEvent(EVENT_INTRO_A2_9, 2s);
357 break;
358 case EVENT_INTRO_A2_9:
359 if (Creature* uther = instance->GetCreature(NPC_UTHER))
360 uther->AI()->Talk(SAY_UTHER_INTRO_A2_3);
361 events.ScheduleEvent(EVENT_INTRO_A2_10, 9s);
362 break;
365 events.ScheduleEvent(EVENT_INTRO_A2_11, 5s);
366 break;
368 if (Creature* uther = instance->GetCreature(NPC_UTHER))
369 uther->AI()->Talk(SAY_UTHER_INTRO_A2_4);
370 events.ScheduleEvent(EVENT_INTRO_A2_12, 11s);
371 break;
374 events.ScheduleEvent(EVENT_INTRO_A2_13, 4s);
375 break;
377 if (Creature* uther = instance->GetCreature(NPC_UTHER))
378 uther->AI()->Talk(SAY_UTHER_INTRO_A2_5);
379 events.ScheduleEvent(EVENT_INTRO_A2_14, 12s + 500ms);
380 break;
383 events.ScheduleEvent(EVENT_INTRO_A2_15, 10s);
384 break;
386 if (Creature* uther = instance->GetCreature(NPC_UTHER))
387 uther->AI()->Talk(SAY_UTHER_INTRO_A2_6);
388 events.ScheduleEvent(EVENT_INTRO_A2_16, 24s);
389 break;
391 if (Creature* uther = instance->GetCreature(NPC_UTHER))
392 uther->AI()->Talk(SAY_UTHER_INTRO_A2_7);
393 events.ScheduleEvent(EVENT_INTRO_A2_17, 4s);
394 break;
397 events.ScheduleEvent(EVENT_INTRO_A2_18, 2s);
398 break;
400 if (Creature* uther = instance->GetCreature(NPC_UTHER))
401 {
402 uther->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
403 uther->AI()->Talk(SAY_UTHER_INTRO_A2_8);
404 }
405 events.ScheduleEvent(EVENT_INTRO_A2_19, 11s);
406 break;
409 events.ScheduleEvent(EVENT_INTRO_LK_1, 2s);
410 break;
411
412 // H2 Intro Events
415 loralen->GetMotionMaster()->MovePoint(0, LoralenFollowPos);
416 break;
417
420 loralen->HandleEmoteCommand(EMOTE_ONESHOT_KNEEL);
421 break;
422
423 case EVENT_INTRO_H2_2:
427 events.ScheduleEvent(EVENT_INTRO_H2_2_1, 7s + 500ms);
428 break;
429
433 events.ScheduleEvent(EVENT_INTRO_H2_3, 2s);
434 break;
435
436 case EVENT_INTRO_H2_3:
438 events.ScheduleEvent(EVENT_INTRO_H2_3_1, 5s);
439 break;
440
444 events.ScheduleEvent(EVENT_INTRO_H2_3_2, 3s);
445 break;
446
449 events.ScheduleEvent(EVENT_INTRO_H2_4, 2s);
450 break;
451 case EVENT_INTRO_H2_4:
452 if (Creature* uther = instance->GetCreature(NPC_UTHER))
453 {
454 uther->SetVisible(true);
455 if (Aura* a = uther->AddAura(SPELL_SHADOWMOURNE_VISUAL, uther))
456 a->SetDuration(8000);
457 }
458 events.ScheduleEvent(EVENT_INTRO_H2_5, 7s);
459 break;
460
461 case EVENT_INTRO_H2_5:
462 if (Creature* uther = instance->GetCreature(NPC_UTHER))
463 {
464 uther->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
465 uther->AI()->Talk(SAY_UTHER_INTRO_H2_1);
466 }
467 events.ScheduleEvent(EVENT_INTRO_H2_6, 11s);
468 break;
469 case EVENT_INTRO_H2_6:
472 events.ScheduleEvent(EVENT_INTRO_H2_7, 2s + 500ms);
473 break;
474 case EVENT_INTRO_H2_7:
475 if (Creature* uther = instance->GetCreature(NPC_UTHER))
476 {
477 uther->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
478 uther->AI()->Talk(SAY_UTHER_INTRO_H2_2);
479 }
480 events.ScheduleEvent(EVENT_INTRO_H2_8, 9s);//
481 break;
482 case EVENT_INTRO_H2_8:
485 events.ScheduleEvent(EVENT_INTRO_H2_9, 5s);
486 break;
487 case EVENT_INTRO_H2_9:
488 if (Creature* uther = instance->GetCreature(NPC_UTHER))
489 {
490 uther->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
491 uther->AI()->Talk(SAY_UTHER_INTRO_H2_3);
492 }
493 events.ScheduleEvent(EVENT_INTRO_H2_10, 20s);
494 break;
498 events.ScheduleEvent(EVENT_INTRO_H2_11, 3s);
499 break;
501 if (Creature* uther = instance->GetCreature(NPC_UTHER))
502 {
503 uther->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
504 uther->AI()->Talk(SAY_UTHER_INTRO_H2_4);
505 }
506 events.ScheduleEvent(EVENT_INTRO_H2_12, 21s + 500ms);
507 break;
511 events.ScheduleEvent(EVENT_INTRO_H2_13, 3s + 500ms);
512 break;
514 if (Creature* uther = instance->GetCreature(NPC_UTHER))
515 {
516 uther->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
517 uther->AI()->Talk(SAY_UTHER_INTRO_H2_5);
518 }
519 events.ScheduleEvent(EVENT_INTRO_H2_14, 12s + 500ms);
520 break;
522 if (Creature* uther = instance->GetCreature(NPC_UTHER))
523 {
524 uther->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
525 uther->AI()->Talk(SAY_UTHER_INTRO_H2_6);
526 }
527 events.ScheduleEvent(EVENT_INTRO_H2_15, 8s);
528 break;
532 events.ScheduleEvent(EVENT_INTRO_LK_1, 2s);
533 break;
534
535 // Remaining Intro Events common for both faction
536 case EVENT_INTRO_LK_1:
538 {
539
541 lichKing->SetVisible(true);
542
543 lichKing->GetMotionMaster()->MovePoint(0, LichKingMoveMidlelThronePos, FORCED_MOVEMENT_NONE, 0.f, false);
544
545 }
546
547 if (!shortver)
548 if (Creature* uther = instance->GetCreature(NPC_UTHER))
549 {
550 uther->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION);
551 if (me->GetEntry() == NPC_JAINA_PART1)
552
553 uther->AI()->Talk(SAY_UTHER_INTRO_A2_9);
554 else
555 uther->AI()->Talk(SAY_UTHER_INTRO_H2_7);
556
557 }
558 events.ScheduleEvent(EVENT_INTRO_LK_1_1, 9s);
559 events.ScheduleEvent(EVENT_INTRO_LK_1_2, 3s);
560 events.ScheduleEvent(EVENT_INTRO_LK_1_3, 6s);
561 events.ScheduleEvent(EVENT_INTRO_LK_2, 12s);
562 break;
563
566 {
567 lichKing->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION);
568 lichKing->AI()->Talk(SAY_LK_INTRO_1);
569 }
570 break;
571
573 if (!shortver)
574 if (Creature* uther = instance->GetCreature(NPC_UTHER))
575 {
576 uther->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_COWER);
577 uther->SetFacingTo(0.89f);
578 }
579 break;
580
583 break;
584
585 case EVENT_INTRO_LK_2:
586 if (!shortver)
588 {
589 lichKing->SetVisible(true);
590 lichKing->GetMotionMaster()->MovePoint(0, LichKingMoveThronePos, FORCED_MOVEMENT_NONE, 0.f, false);
591 }
592 events.ScheduleEvent(EVENT_INTRO_LK_2_1, 1s);
593 break;
594
596 if (!shortver)
597 if (Creature* uther = instance->GetCreature(NPC_UTHER))
598 {
599 uther->SendPlaySpellVisual(SPELL_UTHER_DESPAWN);
600 uther->CastSpell(uther, SPELL_UTHER_DESPAWN, true);
601 }
602 events.ScheduleEvent(EVENT_INTRO_LK_3, 2s);
603 break;
604
605 case EVENT_INTRO_LK_3:
606 if (!shortver)
607 if (Creature* uther = instance->GetCreature(NPC_UTHER))
608 uther->SetVisible(false);
609 events.ScheduleEvent(EVENT_INTRO_LK_4, 6s);
610 break;
611
612 case EVENT_INTRO_LK_4:
614 {
615 lichKing->HandleEmoteCommand(EMOTE_ONESHOT_QUESTION);
616 lichKing->AI()->Talk(SAY_LK_INTRO_2);
617 }
618 events.ScheduleEvent(EVENT_INTRO_LK_4_2, 10s);
619 break;
620
623 {
624 lichKing->LoadEquipment(1, true);
625 lichKing->SendMovementFlagUpdate();
626 lichKing->CastSpell(lichKing, SPELL_FROSTMOURNE_EQUIP);
628 events.ScheduleEvent(EVENT_INTRO_LK_4_3, 1750ms);
629 }
630 events.ScheduleEvent(EVENT_INTRO_LK_5, 6s);
631 break;
632
635 go->SetPhaseMask(2, true);
636 break;
637 case EVENT_INTRO_LK_5:
639 {
640 falric->UpdatePosition(5274.9f, 2039.2f, 709.319f, 5.4619f, true);
641 falric->StopMovingOnCurrentPos();
642 falric->SetVisible(true);
643 if (falric->IsAlive())
644 {
645 falric->GetMotionMaster()->MovePoint(0, FalricMovePos);
646 if (Aura* a = falric->AddAura(SPELL_SHADOWMOURNE_VISUAL, falric))
647 a->SetDuration(8000);
648 }
649 }
651 {
652 marwyn->UpdatePosition(5343.77f, 1973.86f, 709.319f, 2.35173f, true);
653 marwyn->StopMovingOnCurrentPos();
654 marwyn->SetVisible(true);
655 if (marwyn->IsAlive())
656 {
657 marwyn->GetMotionMaster()->MovePoint(0, MarwynMovePos);
658 if (Aura* a = marwyn->AddAura(SPELL_SHADOWMOURNE_VISUAL, marwyn))
659 a->SetDuration(8000);
660 }
661 }
662 events.ScheduleEvent(EVENT_INTRO_LK_5_1, 0s);
663 events.ScheduleEvent(EVENT_INTRO_LK_5_2, 7s);
664 events.ScheduleEvent(EVENT_INTRO_LK_5_3, 0s);
665 events.ScheduleEvent(EVENT_INTRO_LK_6, 11s);
666 break;
667
670 {
671 lichKing->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
672 lichKing->AI()->Talk(SAY_LK_INTRO_3);
673 }
674 break;
675
678 lichKing->GetMotionMaster()->MovePoint(0, LichKingMoveAwayPos, FORCED_MOVEMENT_NONE, 0.f, false);
679 break;
680
682 me->SetSpeed(MOVE_RUN, 1.6);
686 {
687 loralen->SetSheath(SHEATH_STATE_MELEE);
688 loralen->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_READY1H);
689 loralen->SetWalk(false);
690 loralen->LoadEquipment(true);
691 }
692 break;
693
694 case EVENT_INTRO_LK_6:
696 {
697 falric->HandleEmoteCommand(EMOTE_ONESHOT_BOW);
698 falric->AI()->Talk(SAY_FALRIC_INTRO_1);
699 }
700 events.ScheduleEvent(EVENT_INTRO_LK_7, 2s);
701 break;
702
703 case EVENT_INTRO_LK_7:
705 {
706 marwyn->HandleEmoteCommand(EMOTE_ONESHOT_BOW);
707 marwyn->AI()->Talk(SAY_MARWYN_INTRO_1);
708 }
709 events.ScheduleEvent(EVENT_INTRO_LK_8, 3s);
710 break;
711
712 case EVENT_INTRO_LK_8:
714 {
715 falric->AI()->Talk(SAY_FALRIC_INTRO_2);
718 }
719 events.ScheduleEvent(EVENT_INTRO_LK_9, 6s);
720 break;
721
722 case EVENT_INTRO_LK_9:
723 if (me->GetEntry() == NPC_JAINA_PART1)
724 {
726 }
727 else
728 {
732 }
734 loralen->GetMotionMaster()->MovePoint(0, LoralenFollowLk1, FORCED_MOVEMENT_NONE, 0.f, false);
735 events.ScheduleEvent(EVENT_INTRO_LK_10, 1s + 500ms);
736 break;
737
740 loralen->GetMotionMaster()->MovePoint(0, LoralenFollowLk2, FORCED_MOVEMENT_NONE, 0.f, false);
741 events.ScheduleEvent(EVENT_INTRO_LK_11, 2s);
742 break;
743
746 loralen->GetMotionMaster()->MovePoint(0, LoralenFollowLk3, FORCED_MOVEMENT_NONE, 0.f, false);
747 events.ScheduleEvent(EVENT_INTRO_LK_12, 5s + 500ms);
748 break;
749
752 lichKing->SetVisible(false);
754 loralen->GetMotionMaster()->MovePoint(0, LoralenFollowLkFinal, FORCED_MOVEMENT_NONE, 0.f, false);
755 events.ScheduleEvent(EVENT_INTRO_LK_13, 2s);
756 break;
758 me->SetVisible(false);
759 events.ScheduleEvent(EVENT_INTRO_END, 2s +500ms);
760 break;
761
762 case EVENT_INTRO_END:
765 events.ScheduleEvent(EVENT_INTRO_END_SET, 3s);
766 break;
769 {
770 loralen->UpdatePosition(5369.71289f, 2083.6330f, 707.695129f, 0.188739f, true);
771 loralen->StopMovingOnCurrentPos();
772 loralen->SetVisible(true);
773 loralen->KillSelf(loralen);
774 }
776 break;
777 }
778 }
@ DONE
Definition InstanceScript.h:61
@ FORCED_MOVEMENT_NONE
Definition MotionMaster.h:86
@ EMOTE_STATE_READY1H
Definition SharedDefines.h:1970
@ EMOTE_ONESHOT_KNEEL
Definition SharedDefines.h:1912
@ EMOTE_ONESHOT_EXCLAMATION
Definition SharedDefines.h:1903
@ EMOTE_ONESHOT_QUESTION
Definition SharedDefines.h:1904
@ EMOTE_STATE_COWER
Definition SharedDefines.h:2029
@ EMOTE_ONESHOT_READY1H
Definition SharedDefines.h:1936
@ EMOTE_ONESHOT_BOW
Definition SharedDefines.h:1900
@ EMOTE_STATE_READY2H
Definition SharedDefines.h:1974
@ EMOTE_ONESHOT_TALK
Definition SharedDefines.h:1899
@ UNIT_NPC_FLAG_GOSSIP
Definition UnitDefines.h:322
@ UNIT_NPC_FLAG_QUESTGIVER
Definition UnitDefines.h:323
@ SHEATH_STATE_UNARMED
Definition UnitDefines.h:129
@ SHEATH_STATE_MELEE
Definition UnitDefines.h:130
@ MOVE_RUN
Definition UnitDefines.h:357
Definition SpellAuras.h:88
Definition Creature.h:47
Definition GameObject.h:120
Creature * GetCreature(uint32 type)
Definition InstanceScript.cpp:120
void HandleGameObject(ObjectGuid guid, bool open, GameObject *go=nullptr)
Open or close a GameObject by GUID.
Definition InstanceScript.cpp:130
GameObject * GetGameObject(uint32 type)
Definition InstanceScript.cpp:125
void MovePoint(uint32 id, Position const &pos, ForcedMovement forcedMovement=FORCED_MOVEMENT_NONE, float speed=0.f, bool generatePath=true, bool forceDestination=true, std::optional< AnimTier > animTier=std::nullopt)
Definition MotionMaster.h:241
uint32 GetEntry() const
Definition Object.h:123
SpellCastResult DoCastSelf(uint32 spellId, bool triggered=false)
Definition UnitAI.h:399
void SetVisible(bool x)
Definition Unit.cpp:10854
MotionMaster * GetMotionMaster()
Definition Unit.h:1761
virtual void SetSheath(SheathState sheathed)
Definition Unit.h:1780
void SetNpcFlag(NPCFlags flags)
Definition Unit.h:765
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
Definition Unit.cpp:4936
void SetSpeed(UnitMoveType mtype, float rate, bool forced=false)
Definition Unit.cpp:11052
void HandleEmoteCommand(uint32 emoteId)
Definition Unit.cpp:2198
virtual void SetData(uint32, uint32)
Definition ZoneScript.h:52
@ NPC_UTHER
Definition culling_of_stratholme.h:58
@ SAY_JAINA_INTRO_4
Definition forge_of_souls.cpp:31
@ SAY_SYLVANAS_INTRO_3
Definition forge_of_souls.cpp:39
@ SAY_JAINA_INTRO_5
Definition forge_of_souls.cpp:32
@ SAY_SYLVANAS_INTRO_4
Definition forge_of_souls.cpp:40
@ SAY_JAINA_INTRO_6
Definition forge_of_souls.cpp:33
@ SAY_JAINA_INTRO_2
Definition forge_of_souls.cpp:29
@ SAY_JAINA_INTRO_1
Definition forge_of_souls.cpp:28
@ SAY_JAINA_INTRO_8
Definition forge_of_souls.cpp:35
@ SAY_SYLVANAS_INTRO_5
Definition forge_of_souls.cpp:41
@ SAY_SYLVANAS_INTRO_2
Definition forge_of_souls.cpp:38
@ SAY_SYLVANAS_INTRO_6
Definition forge_of_souls.cpp:42
@ SAY_JAINA_INTRO_7
Definition forge_of_souls.cpp:34
@ SAY_JAINA_INTRO_3
Definition forge_of_souls.cpp:30
@ SAY_SYLVANAS_INTRO_1
Definition forge_of_souls.cpp:37
@ NPC_JAINA_PART1
Definition forge_of_souls.h:47
@ EVENT_INTRO_H2_4
Definition halls_of_reflection.cpp:71
@ EVENT_INTRO_LK_2_1
Definition halls_of_reflection.cpp:92
@ EVENT_INTRO_A2_14
Definition halls_of_reflection.cpp:58
@ EVENT_INTRO_A2_18
Definition halls_of_reflection.cpp:62
@ EVENT_INTRO_H2_14
Definition halls_of_reflection.cpp:81
@ EVENT_INTRO_LK_2
Definition halls_of_reflection.cpp:91
@ EVENT_INTRO_LK_9
Definition halls_of_reflection.cpp:104
@ EVENT_INTRO_LK_4_3
Definition halls_of_reflection.cpp:96
@ EVENT_INTRO_LK_4
Definition halls_of_reflection.cpp:94
@ EVENT_INTRO_LK_1_3
Definition halls_of_reflection.cpp:90
@ EVENT_INTRO_A2_12
Definition halls_of_reflection.cpp:56
@ EVENT_INTRO_H2_15
Definition halls_of_reflection.cpp:82
@ EVENT_INTRO_LK_5_3
Definition halls_of_reflection.cpp:100
@ EVENT_INTRO_END_SET
Definition halls_of_reflection.cpp:111
@ EVENT_INTRO_LK_12
Definition halls_of_reflection.cpp:107
@ EVENT_INTRO_A2_11
Definition halls_of_reflection.cpp:55
@ EVENT_INTRO_A2_3
Definition halls_of_reflection.cpp:47
@ EVENT_INTRO_A2_8
Definition halls_of_reflection.cpp:52
@ EVENT_INTRO_H2_2
Definition halls_of_reflection.cpp:66
@ EVENT_INTRO_LK_4_2
Definition halls_of_reflection.cpp:95
@ EVENT_INTRO_A2_1
Definition halls_of_reflection.cpp:45
@ EVENT_INTRO_LK_8
Definition halls_of_reflection.cpp:103
@ EVENT_INTRO_A2_15
Definition halls_of_reflection.cpp:59
@ EVENT_INTRO_H2_13
Definition halls_of_reflection.cpp:80
@ EVENT_INTRO_LK_1_1
Definition halls_of_reflection.cpp:88
@ EVENT_INTRO_A2_9
Definition halls_of_reflection.cpp:53
@ EVENT_INTRO_LK_13
Definition halls_of_reflection.cpp:108
@ EVENT_INTRO_LK_1
Definition halls_of_reflection.cpp:87
@ EVENT_INTRO_H2_2_1
Definition halls_of_reflection.cpp:67
@ EVENT_INTRO_H2_3_2
Definition halls_of_reflection.cpp:70
@ EVENT_INTRO_LK_5
Definition halls_of_reflection.cpp:97
@ EVENT_LORALEN_MOVE_2
Definition halls_of_reflection.cpp:43
@ EVENT_INTRO_H2_9
Definition halls_of_reflection.cpp:76
@ EVENT_INTRO_LK_10
Definition halls_of_reflection.cpp:105
@ EVENT_INTRO_END
Definition halls_of_reflection.cpp:110
@ EVENT_INTRO_H2_11
Definition halls_of_reflection.cpp:78
@ EVENT_INTRO_A2_16
Definition halls_of_reflection.cpp:60
@ EVENT_INTRO_H2_3_1
Definition halls_of_reflection.cpp:69
@ EVENT_INTRO_A2_4
Definition halls_of_reflection.cpp:48
@ EVENT_INTRO_A2_5
Definition halls_of_reflection.cpp:49
@ EVENT_INTRO_H2_10
Definition halls_of_reflection.cpp:77
@ EVENT_INTRO_A2_17
Definition halls_of_reflection.cpp:61
@ EVENT_INTRO_LK_11
Definition halls_of_reflection.cpp:106
@ EVENT_INTRO_LK_5_2
Definition halls_of_reflection.cpp:99
@ EVENT_INTRO_LK_5_1
Definition halls_of_reflection.cpp:98
@ EVENT_INTRO_LK_7
Definition halls_of_reflection.cpp:102
@ EVENT_INTRO_H2_8
Definition halls_of_reflection.cpp:75
@ EVENT_INTRO_LK_3
Definition halls_of_reflection.cpp:93
@ EVENT_INTRO_H2_6
Definition halls_of_reflection.cpp:73
@ EVENT_INTRO_A2_13
Definition halls_of_reflection.cpp:57
@ EVENT_INTRO_A2_6
Definition halls_of_reflection.cpp:50
@ EVENT_INTRO_A2_2
Definition halls_of_reflection.cpp:46
@ EVENT_LORALEN_MOVE_1
Definition halls_of_reflection.cpp:42
@ EVENT_INTRO_A2_10
Definition halls_of_reflection.cpp:54
@ EVENT_INTRO_A2_19
Definition halls_of_reflection.cpp:63
@ EVENT_INTRO_A2_7
Definition halls_of_reflection.cpp:51
@ EVENT_INTRO_LK_6
Definition halls_of_reflection.cpp:101
@ EVENT_INTRO_H2_12
Definition halls_of_reflection.cpp:79
@ EVENT_INTRO_H2_5
Definition halls_of_reflection.cpp:72
@ EVENT_INTRO_H2_3
Definition halls_of_reflection.cpp:68
@ EVENT_INTRO_LK_1_2
Definition halls_of_reflection.cpp:89
@ EVENT_INTRO_H2_7
Definition halls_of_reflection.cpp:74
const Position FalricMovePos
Definition halls_of_reflection.h:343
const Position MoveThronePos
Definition halls_of_reflection.h:337
@ GO_FRONT_DOOR
Definition halls_of_reflection.h:94
@ GO_FROSTMOURNE
Definition halls_of_reflection.h:92
@ GO_ARTHAS_DOOR
Definition halls_of_reflection.h:95
const Position LoralenFollowPos
Definition halls_of_reflection.h:331
const Position LichKingMoveAwayPos
Definition halls_of_reflection.h:342
@ NPC_DARK_RANGER_LORALEN
Definition halls_of_reflection.h:68
@ NPC_LICH_KING_EVENT
Definition halls_of_reflection.h:59
const Position LoralenFollowLk3
Definition halls_of_reflection.h:334
const Position LichKingMoveThronePos
Definition halls_of_reflection.h:341
const Position MarwynMovePos
Definition halls_of_reflection.h:344
const Position LoralenFollowLkFinal
Definition halls_of_reflection.h:335
@ SPELL_FROSTMOURNE_SPAWN_SOUND
Definition halls_of_reflection.h:265
@ SPELL_UTHER_DESPAWN
Definition halls_of_reflection.h:270
@ SPELL_SUMMON_SOULS
Definition halls_of_reflection.h:272
@ SPELL_FROSTMOURNE_EQUIP
Definition halls_of_reflection.h:266
@ SPELL_SHADOWMOURNE_VISUAL
Definition halls_of_reflection.h:269
const Position LoralenFollowLk2
Definition halls_of_reflection.h:333
const Position LoralenFollowLk1
Definition halls_of_reflection.h:332
@ SAY_UTHER_INTRO_A2_4
Definition halls_of_reflection.h:146
@ SAY_LK_INTRO_2
Definition halls_of_reflection.h:176
@ SAY_UTHER_INTRO_H2_6
Definition halls_of_reflection.h:170
@ SAY_UTHER_INTRO_H2_4
Definition halls_of_reflection.h:167
@ SAY_UTHER_INTRO_A2_2
Definition halls_of_reflection.h:142
@ SAY_MARWYN_INTRO_1
Definition halls_of_reflection.h:179
@ SAY_JAINA_INTRO_10
Definition halls_of_reflection.h:152
@ SAY_JAINA_INTRO_9
Definition halls_of_reflection.h:149
@ SAY_UTHER_INTRO_H2_5
Definition halls_of_reflection.h:169
@ SAY_JAINA_INTRO_END
Definition halls_of_reflection.h:182
@ SAY_UTHER_INTRO_H2_3
Definition halls_of_reflection.h:165
@ SAY_FALRIC_INTRO_1
Definition halls_of_reflection.h:178
@ SAY_UTHER_INTRO_A2_5
Definition halls_of_reflection.h:148
@ SAY_SYLVANAS_INTRO_8
Definition halls_of_reflection.h:171
@ SAY_UTHER_INTRO_A2_8
Definition halls_of_reflection.h:153
@ SAY_UTHER_INTRO_A2_7
Definition halls_of_reflection.h:151
@ SAY_UTHER_INTRO_A2_1
Definition halls_of_reflection.h:140
@ SAY_LK_INTRO_1
Definition halls_of_reflection.h:175
@ SAY_UTHER_INTRO_A2_6
Definition halls_of_reflection.h:150
@ SAY_LK_INTRO_3
Definition halls_of_reflection.h:177
@ SAY_FALRIC_INTRO_2
Definition halls_of_reflection.h:180
@ SAY_UTHER_INTRO_A2_3
Definition halls_of_reflection.h:144
@ SAY_UTHER_INTRO_A2_9
Definition halls_of_reflection.h:155
@ SAY_UTHER_INTRO_H2_2
Definition halls_of_reflection.h:163
@ SAY_UTHER_INTRO_H2_7
Definition halls_of_reflection.h:172
@ SAY_SYLVANAS_INTRO_END
Definition halls_of_reflection.h:183
@ SAY_JAINA_INTRO_11
Definition halls_of_reflection.h:154
@ SAY_UTHER_INTRO_H2_1
Definition halls_of_reflection.h:161
@ SAY_SYLVANAS_INTRO_7
Definition halls_of_reflection.h:168
const Position LoralenMidleFollowPos
Definition halls_of_reflection.h:330
const Position SpawnPos
Definition halls_of_reflection.h:329
const Position LichKingMoveMidlelThronePos
Definition halls_of_reflection.h:340
@ ACTION_SHOW_TRASH
Definition halls_of_reflection.h:46
@ DATA_MARWYN
Definition halls_of_reflection.h:32
@ DATA_FALRIC
Definition halls_of_reflection.h:31
@ DATA_INTRO
Definition halls_of_reflection.h:37
Talk
Definition hyjal.cpp:82

References ACTION_SHOW_TRASH, DATA_FALRIC, DATA_INTRO, DATA_MARWYN, UnitAI::DoCastSelf(), DONE, EMOTE_ONESHOT_BOW, EMOTE_ONESHOT_EXCLAMATION, EMOTE_ONESHOT_KNEEL, EMOTE_ONESHOT_NONE, EMOTE_ONESHOT_QUESTION, EMOTE_ONESHOT_READY1H, EMOTE_ONESHOT_TALK, EMOTE_STATE_COWER, EMOTE_STATE_READY1H, EMOTE_STATE_READY2H, EVENT_EMOTE_LEADER_1, EVENT_INTRO_A2_1, EVENT_INTRO_A2_10, EVENT_INTRO_A2_11, EVENT_INTRO_A2_12, EVENT_INTRO_A2_13, EVENT_INTRO_A2_14, EVENT_INTRO_A2_15, EVENT_INTRO_A2_16, EVENT_INTRO_A2_17, EVENT_INTRO_A2_18, EVENT_INTRO_A2_19, EVENT_INTRO_A2_2, EVENT_INTRO_A2_3, EVENT_INTRO_A2_4, EVENT_INTRO_A2_5, EVENT_INTRO_A2_6, EVENT_INTRO_A2_7, EVENT_INTRO_A2_8, EVENT_INTRO_A2_9, EVENT_INTRO_END, EVENT_INTRO_END_SET, EVENT_INTRO_H2_10, EVENT_INTRO_H2_11, EVENT_INTRO_H2_12, EVENT_INTRO_H2_13, EVENT_INTRO_H2_14, EVENT_INTRO_H2_15, EVENT_INTRO_H2_2, EVENT_INTRO_H2_2_1, EVENT_INTRO_H2_3, EVENT_INTRO_H2_3_1, EVENT_INTRO_H2_3_2, EVENT_INTRO_H2_4, EVENT_INTRO_H2_5, EVENT_INTRO_H2_6, EVENT_INTRO_H2_7, EVENT_INTRO_H2_8, EVENT_INTRO_H2_9, EVENT_INTRO_LK_1, EVENT_INTRO_LK_10, EVENT_INTRO_LK_11, EVENT_INTRO_LK_12, EVENT_INTRO_LK_13, EVENT_INTRO_LK_1_1, EVENT_INTRO_LK_1_2, EVENT_INTRO_LK_1_3, EVENT_INTRO_LK_2, EVENT_INTRO_LK_2_1, EVENT_INTRO_LK_3, EVENT_INTRO_LK_4, EVENT_INTRO_LK_4_2, EVENT_INTRO_LK_4_3, EVENT_INTRO_LK_5, EVENT_INTRO_LK_5_1, EVENT_INTRO_LK_5_2, EVENT_INTRO_LK_5_3, EVENT_INTRO_LK_6, EVENT_INTRO_LK_7, EVENT_INTRO_LK_8, EVENT_INTRO_LK_9, EVENT_LORALEN_MOVE_1, EVENT_LORALEN_MOVE_2, EVENT_PRE_INTRO_1, EVENT_PRE_INTRO_2, EVENT_PRE_INTRO_3, EVENT_SKIP_INTRO, EVENT_START_INTRO, EVENT_TALK_LEADER_1, FalricMovePos, FORCED_MOVEMENT_NONE, InstanceScript::GetCreature(), Object::GetEntry(), InstanceScript::GetGameObject(), Unit::GetMotionMaster(), GO_ARTHAS_DOOR, GO_FRONT_DOOR, GO_FROSTMOURNE, Unit::HandleEmoteCommand(), InstanceScript::HandleGameObject(), instance, LichKingMoveAwayPos, LichKingMoveMidlelThronePos, LichKingMoveThronePos, LoralenFollowLk1, LoralenFollowLk2, LoralenFollowLk3, LoralenFollowLkFinal, LoralenFollowPos, LoralenMidleFollowPos, MarwynMovePos, CreatureAI::me, MOVE_RUN, MotionMaster::MovePoint(), MoveThronePos, NPC_DARK_RANGER_LORALEN, NPC_JAINA_PART1, NPC_LICH_KING_EVENT, NPC_UTHER, Unit::RemoveAurasDueToSpell(), SAY_FALRIC_INTRO_1, SAY_FALRIC_INTRO_2, SAY_JAINA_INTRO_1, SAY_JAINA_INTRO_10, SAY_JAINA_INTRO_11, SAY_JAINA_INTRO_2, SAY_JAINA_INTRO_3, SAY_JAINA_INTRO_4, SAY_JAINA_INTRO_5, SAY_JAINA_INTRO_6, SAY_JAINA_INTRO_7, SAY_JAINA_INTRO_8, SAY_JAINA_INTRO_9, SAY_JAINA_INTRO_END, SAY_LK_INTRO_1, SAY_LK_INTRO_2, SAY_LK_INTRO_3, SAY_MARWYN_INTRO_1, SAY_SYLVANAS_INTRO_1, SAY_SYLVANAS_INTRO_2, SAY_SYLVANAS_INTRO_3, SAY_SYLVANAS_INTRO_4, SAY_SYLVANAS_INTRO_5, SAY_SYLVANAS_INTRO_6, SAY_SYLVANAS_INTRO_7, SAY_SYLVANAS_INTRO_8, SAY_SYLVANAS_INTRO_END, SAY_UTHER_INTRO_A2_1, SAY_UTHER_INTRO_A2_2, SAY_UTHER_INTRO_A2_3, SAY_UTHER_INTRO_A2_4, SAY_UTHER_INTRO_A2_5, SAY_UTHER_INTRO_A2_6, SAY_UTHER_INTRO_A2_7, SAY_UTHER_INTRO_A2_8, SAY_UTHER_INTRO_A2_9, SAY_UTHER_INTRO_H2_1, SAY_UTHER_INTRO_H2_2, SAY_UTHER_INTRO_H2_3, SAY_UTHER_INTRO_H2_4, SAY_UTHER_INTRO_H2_5, SAY_UTHER_INTRO_H2_6, SAY_UTHER_INTRO_H2_7, ZoneScript::SetData(), Unit::SetNpcFlag(), Unit::SetSheath(), Unit::SetSpeed(), Unit::SetUInt32Value(), Unit::SetVisible(), SHEATH_STATE_MELEE, SHEATH_STATE_UNARMED, shortver, SpawnPos, SPELL_FROSTMOURNE_EQUIP, SPELL_FROSTMOURNE_SPAWN_SOUND, SPELL_SHADOWMOURNE_VISUAL, SPELL_SUMMON_SOULS, SPELL_UTHER_DESPAWN, UNIT_NPC_EMOTESTATE, UNIT_NPC_FLAG_GOSSIP, and UNIT_NPC_FLAG_QUESTGIVER.

Member Data Documentation

◆ events

EventMap npc_hor_leader::npc_hor_leaderAI::events

◆ instance

InstanceScript* npc_hor_leader::npc_hor_leaderAI::instance

Referenced by npc_hor_leaderAI(), Reset(), and UpdateAI().

◆ shortver

bool npc_hor_leader::npc_hor_leaderAI::shortver

Referenced by Reset(), and UpdateAI().


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