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)
 
WorldObjectGetSummoner () 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 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
 
UnitSelectTarget (SelectTargetMethod targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0)
 
template<class PREDICATE >
UnitSelectTarget (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 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)
 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

InstanceScriptinstance
 
EventMap events
 
bool first
 
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 AISpellInfoTypeAISpellInfo
 
- 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 _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;
219 }
Creature *const me
Definition CreatureAI.h:71
uint32 GetPersistentData(uint32 index) const
Definition InstanceScript.h:257
Definition PassiveAI.h:56
bool IsAIEnabled
Definition Unit.h:2097
InstanceScript * GetInstanceScript() const
Definition Object.cpp:1238
@ PERSISTENT_DATA_INTRO
Definition halls_of_reflection.h:114
InstanceScript * instance
Definition halls_of_reflection.cpp:221
bool first
Definition halls_of_reflection.cpp:223

References first, WorldObject::GetInstanceScript(), InstanceScript::GetPersistentData(), instance, Unit::IsAIEnabled, CreatureAI::me, and PERSISTENT_DATA_INTRO.

Member Function Documentation

◆ DoAction()

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

Reimplemented from UnitAI.

243 {
244 switch (actionId)
245 {
247 events.ScheduleEvent(EVENT_START_INTRO, 0ms);
248 break;
250 events.ScheduleEvent(EVENT_SKIP_INTRO, 0ms);
251 break;
252 }
253 }
@ 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:250

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.

227 {
228 shortver = false;
229 events.Reset();
231 if (first)
232 {
233 first = false;
234 events.ScheduleEvent(EVENT_PRE_INTRO_1, 10s);
235 events.ScheduleEvent(EVENT_PRE_INTRO_2, 11s);
236 events.ScheduleEvent(EVENT_EMOTE_LEADER_1, 16s);
237 events.ScheduleEvent(EVENT_TALK_LEADER_1, 16s);
238 events.ScheduleEvent(EVENT_PRE_INTRO_3, 19s);
239 }
240 }
@ EMOTE_ONESHOT_NONE
Definition SharedDefines.h:1900
@ UNIT_NPC_EMOTESTATE
Definition UpdateFields.h:140
void SetUInt32Value(uint16 index, uint32 value)
Definition Unit.cpp:17323
@ 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
bool shortver
Definition halls_of_reflection.cpp:224

References EMOTE_ONESHOT_NONE, EVENT_EMOTE_LEADER_1, EVENT_PRE_INTRO_1, EVENT_PRE_INTRO_2, EVENT_PRE_INTRO_3, EVENT_TALK_LEADER_1, first, CreatureAI::me, 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.

256 {
257 events.Update(diff);
258 switch (events.ExecuteEvent())
259 {
261 if (instance)
262 {
263
265 me->SetVisible(true);
266
267 }
268 break;
270 if (me->GetEntry() == NPC_JAINA_PART1)
273 break;
277 break;
280 break;
284 break;
286 shortver = false;
290 {
291 loralen->LoadEquipment(true);
292 loralen->SetVisible(true);
293 loralen->SetWalk(true);
294 loralen->GetMotionMaster()->MovePoint(0, LoralenMidleFollowPos);
295 }
296 // Begining of intro is differents between factions as the speech sequence and timers are differents.
297 if (me->GetEntry() == NPC_JAINA_PART1)
298 events.ScheduleEvent(EVENT_INTRO_A2_1, 10s);
299 else
300 {
301 events.ScheduleEvent(EVENT_INTRO_H2_2, 9s);
302 events.ScheduleEvent(EVENT_LORALEN_MOVE_1, 24s);
303 events.ScheduleEvent(EVENT_LORALEN_MOVE_2, 32s);
304 }
305 break;
306
307 case EVENT_SKIP_INTRO:
308 shortver = true;
312 loralen->GetMotionMaster()->MovePoint(0, LoralenFollowPos);
313 events.ScheduleEvent(EVENT_INTRO_LK_1, 0ms);
314 break;
315
316 // A2 Intro Events
317 case EVENT_INTRO_A2_1:
319 events.ScheduleEvent(EVENT_INTRO_A2_2, 5s);
320 break;
321 case EVENT_INTRO_A2_2:
323 events.ScheduleEvent(EVENT_INTRO_A2_3, 10s);
324 break;
325 case EVENT_INTRO_A2_3:
328 //DoCastSelf(SPELL_ARCANE_CAST_VISUAL);// the sniff is missing from the alliance
329 events.ScheduleEvent(EVENT_INTRO_A2_4, 10s);
330 break;
331 case EVENT_INTRO_A2_4:
332 if (Creature* uther = instance->GetCreature(NPC_UTHER))
333 {
334 uther->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
335 uther->SetVisible(true);
336 if (Aura* a = uther->AddAura(SPELL_SHADOWMOURNE_VISUAL, uther))
337 a->SetDuration(8000);
338 }
339 events.ScheduleEvent(EVENT_INTRO_A2_5, 2s);
340 break;
341 case EVENT_INTRO_A2_5:
342 if (Creature* uther = instance->GetCreature(NPC_UTHER))
343 {
344 uther->AI()->Talk(SAY_UTHER_INTRO_A2_1);
345 events.ScheduleEvent(EVENT_INTRO_A2_6, 3s);
346 }
347 break;
348 case EVENT_INTRO_A2_6:
350 events.ScheduleEvent(EVENT_INTRO_A2_7, 6s);
351 break;
352 case EVENT_INTRO_A2_7:
353 if (Creature* uther = instance->GetCreature(NPC_UTHER))
354 uther->AI()->Talk(SAY_UTHER_INTRO_A2_2);
355 events.ScheduleEvent(EVENT_INTRO_A2_8, 6500ms);
356 break;
357 case EVENT_INTRO_A2_8:
359 events.ScheduleEvent(EVENT_INTRO_A2_9, 2s);
360 break;
361 case EVENT_INTRO_A2_9:
362 if (Creature* uther = instance->GetCreature(NPC_UTHER))
363 uther->AI()->Talk(SAY_UTHER_INTRO_A2_3);
364 events.ScheduleEvent(EVENT_INTRO_A2_10, 9s);
365 break;
368 events.ScheduleEvent(EVENT_INTRO_A2_11, 5s);
369 break;
371 if (Creature* uther = instance->GetCreature(NPC_UTHER))
372 uther->AI()->Talk(SAY_UTHER_INTRO_A2_4);
373 events.ScheduleEvent(EVENT_INTRO_A2_12, 11s);
374 break;
377 events.ScheduleEvent(EVENT_INTRO_A2_13, 4s);
378 break;
380 if (Creature* uther = instance->GetCreature(NPC_UTHER))
381 uther->AI()->Talk(SAY_UTHER_INTRO_A2_5);
382 events.ScheduleEvent(EVENT_INTRO_A2_14, 12s + 500ms);
383 break;
386 events.ScheduleEvent(EVENT_INTRO_A2_15, 10s);
387 break;
389 if (Creature* uther = instance->GetCreature(NPC_UTHER))
390 uther->AI()->Talk(SAY_UTHER_INTRO_A2_6);
391 events.ScheduleEvent(EVENT_INTRO_A2_16, 24s);
392 break;
394 if (Creature* uther = instance->GetCreature(NPC_UTHER))
395 uther->AI()->Talk(SAY_UTHER_INTRO_A2_7);
396 events.ScheduleEvent(EVENT_INTRO_A2_17, 4s);
397 break;
400 events.ScheduleEvent(EVENT_INTRO_A2_18, 2s);
401 break;
403 if (Creature* uther = instance->GetCreature(NPC_UTHER))
404 {
405 uther->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
406 uther->AI()->Talk(SAY_UTHER_INTRO_A2_8);
407 }
408 events.ScheduleEvent(EVENT_INTRO_A2_19, 11s);
409 break;
412 events.ScheduleEvent(EVENT_INTRO_LK_1, 2s);
413 break;
414
415 // H2 Intro Events
418 loralen->GetMotionMaster()->MovePoint(0, LoralenFollowPos);
419 break;
420
423 loralen->HandleEmoteCommand(EMOTE_ONESHOT_KNEEL);
424 break;
425
426 case EVENT_INTRO_H2_2:
430 events.ScheduleEvent(EVENT_INTRO_H2_2_1, 7s + 500ms);
431 break;
432
436 events.ScheduleEvent(EVENT_INTRO_H2_3, 2s);
437 break;
438
439 case EVENT_INTRO_H2_3:
441 events.ScheduleEvent(EVENT_INTRO_H2_3_1, 5s);
442 break;
443
447 events.ScheduleEvent(EVENT_INTRO_H2_3_2, 3s);
448 break;
449
452 events.ScheduleEvent(EVENT_INTRO_H2_4, 2s);
453 break;
454 case EVENT_INTRO_H2_4:
455 if (Creature* uther = instance->GetCreature(NPC_UTHER))
456 {
457 uther->SetVisible(true);
458 if (Aura* a = uther->AddAura(SPELL_SHADOWMOURNE_VISUAL, uther))
459 a->SetDuration(8000);
460 }
461 events.ScheduleEvent(EVENT_INTRO_H2_5, 7s);
462 break;
463
464 case EVENT_INTRO_H2_5:
465 if (Creature* uther = instance->GetCreature(NPC_UTHER))
466 {
467 uther->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
468 uther->AI()->Talk(SAY_UTHER_INTRO_H2_1);
469 }
470 events.ScheduleEvent(EVENT_INTRO_H2_6, 11s);
471 break;
472 case EVENT_INTRO_H2_6:
475 events.ScheduleEvent(EVENT_INTRO_H2_7, 2s + 500ms);
476 break;
477 case EVENT_INTRO_H2_7:
478 if (Creature* uther = instance->GetCreature(NPC_UTHER))
479 {
480 uther->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
481 uther->AI()->Talk(SAY_UTHER_INTRO_H2_2);
482 }
483 events.ScheduleEvent(EVENT_INTRO_H2_8, 9s);//
484 break;
485 case EVENT_INTRO_H2_8:
488 events.ScheduleEvent(EVENT_INTRO_H2_9, 5s);
489 break;
490 case EVENT_INTRO_H2_9:
491 if (Creature* uther = instance->GetCreature(NPC_UTHER))
492 {
493 uther->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
494 uther->AI()->Talk(SAY_UTHER_INTRO_H2_3);
495 }
496 events.ScheduleEvent(EVENT_INTRO_H2_10, 20s);
497 break;
501 events.ScheduleEvent(EVENT_INTRO_H2_11, 3s);
502 break;
504 if (Creature* uther = instance->GetCreature(NPC_UTHER))
505 {
506 uther->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
507 uther->AI()->Talk(SAY_UTHER_INTRO_H2_4);
508 }
509 events.ScheduleEvent(EVENT_INTRO_H2_12, 21s + 500ms);
510 break;
514 events.ScheduleEvent(EVENT_INTRO_H2_13, 3s + 500ms);
515 break;
517 if (Creature* uther = instance->GetCreature(NPC_UTHER))
518 {
519 uther->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
520 uther->AI()->Talk(SAY_UTHER_INTRO_H2_5);
521 }
522 events.ScheduleEvent(EVENT_INTRO_H2_14, 12s + 500ms);
523 break;
525 if (Creature* uther = instance->GetCreature(NPC_UTHER))
526 {
527 uther->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
528 uther->AI()->Talk(SAY_UTHER_INTRO_H2_6);
529 }
530 events.ScheduleEvent(EVENT_INTRO_H2_15, 8s);
531 break;
535 events.ScheduleEvent(EVENT_INTRO_LK_1, 2s);
536 break;
537
538 // Remaining Intro Events common for both faction
539 case EVENT_INTRO_LK_1:
541 {
542
544 lichKing->SetVisible(true);
545
546 lichKing->GetMotionMaster()->MovePoint(0, LichKingMoveMidlelThronePos, FORCED_MOVEMENT_NONE, 0.f, false);
547
548 }
549
550 if (!shortver)
551 if (Creature* uther = instance->GetCreature(NPC_UTHER))
552 {
553 uther->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION);
554 if (me->GetEntry() == NPC_JAINA_PART1)
555
556 uther->AI()->Talk(SAY_UTHER_INTRO_A2_9);
557 else
558 uther->AI()->Talk(SAY_UTHER_INTRO_H2_7);
559
560 }
561 events.ScheduleEvent(EVENT_INTRO_LK_1_1, 9s);
562 events.ScheduleEvent(EVENT_INTRO_LK_1_2, 3s);
563 events.ScheduleEvent(EVENT_INTRO_LK_1_3, 6s);
564 events.ScheduleEvent(EVENT_INTRO_LK_2, 12s);
565 break;
566
569 {
570 lichKing->HandleEmoteCommand(EMOTE_ONESHOT_EXCLAMATION);
571 lichKing->AI()->Talk(SAY_LK_INTRO_1);
572 }
573 break;
574
576 if (!shortver)
577 if (Creature* uther = instance->GetCreature(NPC_UTHER))
578 {
579 uther->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_COWER);
580 uther->SetFacingTo(0.89f);
581 }
582 break;
583
586 break;
587
588 case EVENT_INTRO_LK_2:
589 if (!shortver)
591 {
592 lichKing->SetVisible(true);
593 lichKing->GetMotionMaster()->MovePoint(0, LichKingMoveThronePos, FORCED_MOVEMENT_NONE, 0.f, false);
594 }
595 events.ScheduleEvent(EVENT_INTRO_LK_2_1, 1s);
596 break;
597
599 if (!shortver)
600 if (Creature* uther = instance->GetCreature(NPC_UTHER))
601 {
602 uther->SendPlaySpellVisual(SPELL_UTHER_DESPAWN);
603 uther->CastSpell(uther, SPELL_UTHER_DESPAWN, true);
604 }
605 events.ScheduleEvent(EVENT_INTRO_LK_3, 2s);
606 break;
607
608 case EVENT_INTRO_LK_3:
609 if (!shortver)
610 if (Creature* uther = instance->GetCreature(NPC_UTHER))
611 uther->SetVisible(false);
612 events.ScheduleEvent(EVENT_INTRO_LK_4, 6s);
613 break;
614
615 case EVENT_INTRO_LK_4:
617 {
618 lichKing->HandleEmoteCommand(EMOTE_ONESHOT_QUESTION);
619 lichKing->AI()->Talk(SAY_LK_INTRO_2);
620 }
621 events.ScheduleEvent(EVENT_INTRO_LK_4_2, 10s);
622 break;
623
626 {
627 lichKing->LoadEquipment(1, true);
628 lichKing->SendMovementFlagUpdate();
629 lichKing->CastSpell(lichKing, SPELL_FROSTMOURNE_EQUIP);
631 events.ScheduleEvent(EVENT_INTRO_LK_4_3, 1750ms);
632 }
633 events.ScheduleEvent(EVENT_INTRO_LK_5, 6s);
634 break;
635
638 go->SetPhaseMask(2, true);
639 break;
640 case EVENT_INTRO_LK_5:
642 {
643 falric->UpdatePosition(5274.9f, 2039.2f, 709.319f, 5.4619f, true);
644 falric->StopMovingOnCurrentPos();
645 falric->SetVisible(true);
646 if (falric->IsAlive())
647 {
648 falric->GetMotionMaster()->MovePoint(0, FalricMovePos);
649 if (Aura* a = falric->AddAura(SPELL_SHADOWMOURNE_VISUAL, falric))
650 a->SetDuration(8000);
651 }
652 }
654 {
655 marwyn->UpdatePosition(5343.77f, 1973.86f, 709.319f, 2.35173f, true);
656 marwyn->StopMovingOnCurrentPos();
657 marwyn->SetVisible(true);
658 if (marwyn->IsAlive())
659 {
660 marwyn->GetMotionMaster()->MovePoint(0, MarwynMovePos);
661 if (Aura* a = marwyn->AddAura(SPELL_SHADOWMOURNE_VISUAL, marwyn))
662 a->SetDuration(8000);
663 }
664 }
665 events.ScheduleEvent(EVENT_INTRO_LK_5_1, 0s);
666 events.ScheduleEvent(EVENT_INTRO_LK_5_2, 7s);
667 events.ScheduleEvent(EVENT_INTRO_LK_5_3, 0s);
668 events.ScheduleEvent(EVENT_INTRO_LK_6, 11s);
669 break;
670
673 {
674 lichKing->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
675 lichKing->AI()->Talk(SAY_LK_INTRO_3);
676 }
677 break;
678
681 lichKing->GetMotionMaster()->MovePoint(0, LichKingMoveAwayPos, FORCED_MOVEMENT_NONE, 0.f, false);
682 break;
683
685 me->SetSpeed(MOVE_RUN, 1.6);
689 {
690 loralen->SetSheath(SHEATH_STATE_MELEE);
691 loralen->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_READY1H);
692 loralen->SetWalk(false);
693 loralen->LoadEquipment(true);
694 }
695 break;
696
697 case EVENT_INTRO_LK_6:
699 {
700 falric->HandleEmoteCommand(EMOTE_ONESHOT_BOW);
701 falric->AI()->Talk(SAY_FALRIC_INTRO_1);
702 }
703 events.ScheduleEvent(EVENT_INTRO_LK_7, 2s);
704 break;
705
706 case EVENT_INTRO_LK_7:
708 {
709 marwyn->HandleEmoteCommand(EMOTE_ONESHOT_BOW);
710 marwyn->AI()->Talk(SAY_MARWYN_INTRO_1);
711 }
712 events.ScheduleEvent(EVENT_INTRO_LK_8, 3s);
713 break;
714
715 case EVENT_INTRO_LK_8:
717 {
718 falric->AI()->Talk(SAY_FALRIC_INTRO_2);
721 }
722 events.ScheduleEvent(EVENT_INTRO_LK_9, 6s);
723 break;
724
725 case EVENT_INTRO_LK_9:
726 if (me->GetEntry() == NPC_JAINA_PART1)
727 {
729 }
730 else
731 {
735 }
737 loralen->GetMotionMaster()->MovePoint(0, LoralenFollowLk1, FORCED_MOVEMENT_NONE, 0.f, false);
738 events.ScheduleEvent(EVENT_INTRO_LK_10, 1s + 500ms);
739 break;
740
743 loralen->GetMotionMaster()->MovePoint(0, LoralenFollowLk2, FORCED_MOVEMENT_NONE, 0.f, false);
744 events.ScheduleEvent(EVENT_INTRO_LK_11, 2s);
745 break;
746
749 loralen->GetMotionMaster()->MovePoint(0, LoralenFollowLk3, FORCED_MOVEMENT_NONE, 0.f, false);
750 events.ScheduleEvent(EVENT_INTRO_LK_12, 5s + 500ms);
751 break;
752
755 lichKing->SetVisible(false);
757 loralen->GetMotionMaster()->MovePoint(0, LoralenFollowLkFinal, FORCED_MOVEMENT_NONE, 0.f, false);
758 events.ScheduleEvent(EVENT_INTRO_LK_13, 2s);
759 break;
761 me->SetVisible(false);
762 events.ScheduleEvent(EVENT_INTRO_END, 2s +500ms);
763 break;
764
765 case EVENT_INTRO_END:
768 events.ScheduleEvent(EVENT_INTRO_END_SET, 3s);
769 break;
772 {
773 loralen->UpdatePosition(5369.71289f, 2083.6330f, 707.695129f, 0.188739f, true);
774 loralen->StopMovingOnCurrentPos();
775 loralen->SetVisible(true);
776 loralen->KillSelf(loralen);
777 }
779 break;
780 }
781 }
@ DONE
Definition InstanceScript.h:61
@ FORCED_MOVEMENT_NONE
Definition MotionMaster.h:86
@ EMOTE_STATE_READY1H
Definition SharedDefines.h:1972
@ EMOTE_ONESHOT_KNEEL
Definition SharedDefines.h:1914
@ EMOTE_ONESHOT_EXCLAMATION
Definition SharedDefines.h:1905
@ EMOTE_ONESHOT_QUESTION
Definition SharedDefines.h:1906
@ EMOTE_STATE_COWER
Definition SharedDefines.h:2031
@ EMOTE_ONESHOT_READY1H
Definition SharedDefines.h:1938
@ EMOTE_ONESHOT_BOW
Definition SharedDefines.h:1902
@ EMOTE_STATE_READY2H
Definition SharedDefines.h:1976
@ EMOTE_ONESHOT_TALK
Definition SharedDefines.h:1901
@ 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:87
Definition Creature.h:47
Definition GameObject.h:120
Creature * GetCreature(uint32 type)
Definition InstanceScript.cpp:115
void HandleGameObject(ObjectGuid guid, bool open, GameObject *go=nullptr)
Open or close a GameObject by GUID.
Definition InstanceScript.cpp:125
GameObject * GetGameObject(uint32 type)
Definition InstanceScript.cpp:120
void MovePoint(uint32 id, const Position &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:240
uint32 GetEntry() const
Definition Object.h:117
SpellCastResult DoCastSelf(uint32 spellId, bool triggered=false)
Definition UnitAI.h:394
void SetVisible(bool x)
Definition Unit.cpp:11072
MotionMaster * GetMotionMaster()
Definition Unit.h:1758
virtual void SetSheath(SheathState sheathed)
Definition Unit.h:1777
void SetNpcFlag(NPCFlags flags)
Definition Unit.h:764
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
Definition Unit.cpp:5157
void SetSpeed(UnitMoveType mtype, float rate, bool forced=false)
Definition Unit.cpp:11270
void HandleEmoteCommand(uint32 emoteId)
Definition Unit.cpp:2172
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:340
const Position MoveThronePos
Definition halls_of_reflection.h:334
@ GO_FRONT_DOOR
Definition halls_of_reflection.h:89
@ GO_FROSTMOURNE
Definition halls_of_reflection.h:87
@ GO_ARTHAS_DOOR
Definition halls_of_reflection.h:90
const Position LoralenFollowPos
Definition halls_of_reflection.h:328
const Position LichKingMoveAwayPos
Definition halls_of_reflection.h:339
@ NPC_DARK_RANGER_LORALEN
Definition halls_of_reflection.h:63
@ NPC_LICH_KING_EVENT
Definition halls_of_reflection.h:54
const Position LoralenFollowLk3
Definition halls_of_reflection.h:331
const Position LichKingMoveThronePos
Definition halls_of_reflection.h:338
const Position MarwynMovePos
Definition halls_of_reflection.h:341
const Position LoralenFollowLkFinal
Definition halls_of_reflection.h:332
@ SPELL_FROSTMOURNE_SPAWN_SOUND
Definition halls_of_reflection.h:262
@ SPELL_UTHER_DESPAWN
Definition halls_of_reflection.h:267
@ SPELL_SUMMON_SOULS
Definition halls_of_reflection.h:269
@ SPELL_FROSTMOURNE_EQUIP
Definition halls_of_reflection.h:263
@ SPELL_SHADOWMOURNE_VISUAL
Definition halls_of_reflection.h:266
const Position LoralenFollowLk2
Definition halls_of_reflection.h:330
const Position LoralenFollowLk1
Definition halls_of_reflection.h:329
@ SAY_UTHER_INTRO_A2_4
Definition halls_of_reflection.h:141
@ SAY_LK_INTRO_2
Definition halls_of_reflection.h:171
@ SAY_UTHER_INTRO_H2_6
Definition halls_of_reflection.h:165
@ SAY_UTHER_INTRO_H2_4
Definition halls_of_reflection.h:162
@ SAY_UTHER_INTRO_A2_2
Definition halls_of_reflection.h:137
@ SAY_MARWYN_INTRO_1
Definition halls_of_reflection.h:174
@ SAY_JAINA_INTRO_10
Definition halls_of_reflection.h:147
@ SAY_JAINA_INTRO_9
Definition halls_of_reflection.h:144
@ SAY_UTHER_INTRO_H2_5
Definition halls_of_reflection.h:164
@ SAY_JAINA_INTRO_END
Definition halls_of_reflection.h:177
@ SAY_UTHER_INTRO_H2_3
Definition halls_of_reflection.h:160
@ SAY_FALRIC_INTRO_1
Definition halls_of_reflection.h:173
@ SAY_UTHER_INTRO_A2_5
Definition halls_of_reflection.h:143
@ SAY_SYLVANAS_INTRO_8
Definition halls_of_reflection.h:166
@ SAY_UTHER_INTRO_A2_8
Definition halls_of_reflection.h:148
@ SAY_UTHER_INTRO_A2_7
Definition halls_of_reflection.h:146
@ SAY_UTHER_INTRO_A2_1
Definition halls_of_reflection.h:135
@ SAY_LK_INTRO_1
Definition halls_of_reflection.h:170
@ SAY_UTHER_INTRO_A2_6
Definition halls_of_reflection.h:145
@ SAY_LK_INTRO_3
Definition halls_of_reflection.h:172
@ SAY_FALRIC_INTRO_2
Definition halls_of_reflection.h:175
@ SAY_UTHER_INTRO_A2_3
Definition halls_of_reflection.h:139
@ SAY_UTHER_INTRO_A2_9
Definition halls_of_reflection.h:150
@ SAY_UTHER_INTRO_H2_2
Definition halls_of_reflection.h:158
@ SAY_UTHER_INTRO_H2_7
Definition halls_of_reflection.h:167
@ SAY_SYLVANAS_INTRO_END
Definition halls_of_reflection.h:178
@ SAY_JAINA_INTRO_11
Definition halls_of_reflection.h:149
@ SAY_UTHER_INTRO_H2_1
Definition halls_of_reflection.h:156
@ SAY_SYLVANAS_INTRO_7
Definition halls_of_reflection.h:163
const Position LoralenMidleFollowPos
Definition halls_of_reflection.h:327
const Position SpawnPos
Definition halls_of_reflection.h:326
const Position LichKingMoveMidlelThronePos
Definition halls_of_reflection.h:337
@ ACTION_SHOW_TRASH
Definition halls_of_reflection.h:38
@ DATA_MARWYN
Definition halls_of_reflection.h:32
@ DATA_FALRIC
Definition halls_of_reflection.h:31
@ DATA_INTRO
Definition halls_of_reflection.h:30
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

◆ first

bool npc_hor_leader::npc_hor_leaderAI::first

Referenced by npc_hor_leaderAI(), and Reset().

◆ instance

InstanceScript* npc_hor_leader::npc_hor_leaderAI::instance

Referenced by npc_hor_leaderAI(), 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: