AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
npc_highlord_darion_mograine::npc_highlord_darion_mograineAI Struct Reference
Inheritance diagram for npc_highlord_darion_mograine::npc_highlord_darion_mograineAI:
ScriptedAI CreatureAI UnitAI

Public Member Functions

 npc_highlord_darion_mograineAI (Creature *creature)
 
void DoAction (int32 param) override
 
uint32 GetData (uint32 type) const override
 
void SendUpdateWorldState (uint32 id, uint32 state)
 
void SendInitialWorldStates ()
 
void JustSummoned (Creature *cr) override
 
void SummonedCreatureDies (Creature *creature, Unit *) override
 
void JustDied (Unit *) override
 
void FinishFight ()
 
void JustEngagedWith (Unit *) override
 Called for reaction when initially engaged.
 
void Reset () override
 
void JustRespawned () override
 
CreatureGetEntryFromSummons (uint32 entry)
 
void MovementInform (uint32 type, uint32 point) override
 
void UpdateAI (uint32 diff) override
 
- Public Member Functions inherited from ScriptedAI
 ScriptedAI (Creature *creature)
 
 ~ScriptedAI () override
 
void AttackStartNoMove (Unit *target)
 
void DamageTaken (Unit *, uint32 &, DamageEffectType, SpellSchoolMask) override
 
void UpdateAI (uint32 diff) override
 
void JustDied (Unit *) override
 
void KilledUnit (Unit *) override
 
void JustSummoned (Creature *) override
 
void SummonedCreatureDespawn (Creature *) override
 
void SpellHit (Unit *, SpellInfo const *) override
 
void SpellHitTarget (Unit *, SpellInfo const *) override
 
void MovementInform (uint32, uint32) override
 
void OnPossess (bool)
 
bool IsInRoom (const Position *pos, Axis axis, bool above)
 
void Reset () override
 
void JustEngagedWith (Unit *) override
 Called for reaction when initially engaged.
 
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 DoPlayMusic (uint32 soundId, bool zone)
 
void DoAddThreat (Unit *unit, float amount)
 
void DoModifyThreatByPercent (Unit *unit, int32 pct)
 
void DoResetThreat (Unit *unit)
 
void DoResetThreatList ()
 
float DoGetThreat (Unit *unit)
 
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 const * SelectSpell (Unit *target, uint32 school, uint32 mechanic, SelectTargetType targets, uint32 powerCostMin, uint32 powerCostMax, 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
 
virtual bool CheckEvadeIfOutOfCombatArea () 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
 
PlayerSelectTargetFromPlayerList (float maxdist, uint32 excludeAura=0, bool mustBeInLOS=false) const
 
- Public Member Functions inherited from CreatureAI
void Talk (uint8 id, WorldObject const *whisperTarget=nullptr, Milliseconds delay=0s)
 Causes the creature to talk/say the text assigned to their entry in the creature_text database table.
 
void Talk (uint8 id, Milliseconds delay)
 
 CreatureAI (Creature *creature)
 
 ~CreatureAI () override
 
void MoveCircleChecks ()
 
void MoveBackwardsChecks ()
 
void MoveInLineOfSight_Safe (Unit *who)
 == Reactions At =================================
 
void TriggerAlert (Unit const *who) const
 
virtual bool CanRespawn ()
 
virtual void EnterEvadeMode (EvadeReason why=EVADE_REASON_OTHER)
 
virtual void JustEngagedWith (Unit *)
 Called for reaction when initially engaged.
 
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 SpellHit (Unit *, SpellInfo const *)
 
virtual void SpellHitTarget (Unit *, SpellInfo const *)
 
virtual void AttackedBy (Unit *)
 
virtual bool IsEscorted ()
 
virtual void JustRespawned ()
 
virtual void MovementInform (uint32, uint32)
 
virtual void PathEndReached (uint32)
 
void OnCharmed (bool apply) override
 
virtual void JustReachedHome ()
 
void DoZoneInCombat (Creature *creature=nullptr, float maxRangeToNearestTarget=250.0f)
 
virtual void ReceiveEmote (Player *, uint32)
 
virtual void OwnerAttackedBy (Unit *)
 
virtual void OwnerAttacked (Unit *)
 
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 ()
 
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 *)
 
- Public Member Functions inherited from UnitAI
 UnitAI (Unit *unit)
 
virtual ~UnitAI ()
 
virtual bool CanAIAttack (Unit const *) const
 
virtual void AttackStart (Unit *)
 
virtual void UpdateAI (uint32)=0
 
virtual void InitializeAI ()
 
virtual void Reset ()
 
virtual void OnCharmed (bool apply)=0
 
virtual void DoAction (int32)
 
virtual uint32 GetData (uint32) const
 
virtual void SetData (uint32, uint32)
 
virtual void SetGUID (ObjectGuid, 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)
 
template<class PREDICATE >
void SelectTargetList (std::list< Unit * > &targetList, uint32 num, SelectTargetMethod targetType, uint32 position, PREDICATE const &predicate)
 
virtual void JustEnteredCombat (Unit *)
 Called when the unit enters combat (NOTE: Creature engage logic should NOT be here, but in JustEngagedWith, which happens once threat is established!)
 
virtual void JustExitedCombat ()
 Called when the unit leaves combat.
 
virtual void DamageDealt (Unit *, uint32 &, DamageEffectType)
 
virtual void DamageTaken (Unit *, uint32 &, DamageEffectType, SpellSchoolMask)
 
virtual void HealReceived (Unit *, uint32 &)
 
virtual void HealDone (Unit *, uint32 &)
 
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)
 
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)
 
SpellCastResult DoCastMaxThreat (uint32 spellId, uint32 threatTablePosition=0, float dist=0.0f, bool playerOnly=true, bool triggered=false)
 Cast spell on the max threat target, which may not always 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)
 
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

EventMap events
 
SummonList summons
 
uint32 startTimeRemaining
 
uint32 defendersRemaining
 
uint32 scourgeRemaining
 
uint8 battleStarted
 
bool resetExecuted
 
- Public Attributes inherited from ScriptedAI
Creatureme
 
bool IsFleeing
 

Additional Inherited Members

- Public Types inherited from ScriptedAI
enum class  Axis {
  AXIS_X ,
  AXIS_Y
}
 
- 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 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)
 
virtual void MoveInLineOfSight (Unit *)
 
bool _EnterEvadeMode (EvadeReason why=EVADE_REASON_OTHER)
 
- Protected Attributes inherited from CreatureAI
Creature *const me
 
EventMap events
 
CreatureBoundary const * _boundary
 
bool _negateBoundary
 
- Protected Attributes inherited from UnitAI
Unit *const me
 

Detailed Description

Constructor & Destructor Documentation

◆ npc_highlord_darion_mograineAI()

npc_highlord_darion_mograine::npc_highlord_darion_mograineAI::npc_highlord_darion_mograineAI ( Creature creature)
inline
366 : ScriptedAI(creature), summons(me)
367 {
369 me->SetCorpseDelay(3 * 60);
370 me->SetRespawnTime(3 * 60);
371 resetExecuted = false;
372 }
@ ENCOUNTER_STATE_NONE
Definition: chapter5.cpp:207
Definition: ScriptedCreature.h:192
Creature * me
Definition: ScriptedCreature.h:282
void SetRespawnTime(uint32 respawn)
Definition: Creature.cpp:3658
void SetCorpseDelay(uint32 delay)
Definition: Creature.h:72
SummonList summons
Definition: chapter5.cpp:375

References battleStarted, ENCOUNTER_STATE_NONE, ScriptedAI::me, resetExecuted, Creature::SetCorpseDelay(), and Creature::SetRespawnTime().

Member Function Documentation

◆ DoAction()

void npc_highlord_darion_mograine::npc_highlord_darion_mograineAI::DoAction ( int32  param)
inlineoverridevirtual

Reimplemented from UnitAI.

383 {
384 if (param == ACTION_START_EVENT && !startTimeRemaining && events.Empty())
385 {
387
391
393
394 events.Reset();
395 events.ScheduleEvent(EVENT_START_COUNTDOWN_1, 60s);
396 events.ScheduleEvent(EVENT_START_COUNTDOWN_2, 120s);
397 events.ScheduleEvent(EVENT_START_COUNTDOWN_3, 180s);
398 events.ScheduleEvent(EVENT_START_COUNTDOWN_4, 240s);
399 events.ScheduleEvent(EVENT_START_COUNTDOWN_5, 300s);
400 events.ScheduleEvent(EVENT_START_COUNTDOWN_6, 308s);
401 events.ScheduleEvent(EVENT_START_COUNTDOWN_7, 312s);
402 events.ScheduleEvent(EVENT_START_COUNTDOWN_8, 316s);
403 events.ScheduleEvent(EVENT_START_COUNTDOWN_9, 320s);
404 events.ScheduleEvent(EVENT_START_COUNTDOWN_10, 324s);
405 events.ScheduleEvent(EVENT_START_COUNTDOWN_11, 332s);
406 events.ScheduleEvent(EVENT_START_COUNTDOWN_12, 335s);
407 events.ScheduleEvent(EVENT_START_COUNTDOWN_13, 337s + 500ms);
408 events.ScheduleEvent(EVENT_START_COUNTDOWN_14, 345s);
409 }
410 }
@ EVENT_START_COUNTDOWN_3
Definition: chapter5.cpp:105
@ EVENT_START_COUNTDOWN_2
Definition: chapter5.cpp:104
@ EVENT_START_COUNTDOWN_7
Definition: chapter5.cpp:109
@ EVENT_START_COUNTDOWN_6
Definition: chapter5.cpp:108
@ ACTION_START_EVENT
Definition: chapter5.cpp:192
@ EVENT_START_COUNTDOWN_5
Definition: chapter5.cpp:107
@ EVENT_START_COUNTDOWN_10
Definition: chapter5.cpp:112
@ ENCOUNTER_TOTAL_SCOURGE
Definition: chapter5.cpp:198
@ EVENT_START_COUNTDOWN_13
Definition: chapter5.cpp:115
@ EVENT_START_COUNTDOWN_4
Definition: chapter5.cpp:106
@ EVENT_START_COUNTDOWN_8
Definition: chapter5.cpp:110
@ EVENT_START_COUNTDOWN_12
Definition: chapter5.cpp:114
@ EVENT_START_COUNTDOWN_11
Definition: chapter5.cpp:113
@ EVENT_START_COUNTDOWN_14
Definition: chapter5.cpp:116
@ EVENT_START_COUNTDOWN_1
Definition: chapter5.cpp:103
@ ENCOUNTER_TOTAL_DEFENDERS
Definition: chapter5.cpp:197
@ EVENT_START_COUNTDOWN_9
Definition: chapter5.cpp:111
@ ENCOUNTER_START_TIME
Definition: chapter5.cpp:196
@ SAY_LIGHT_OF_DAWN01
Definition: chapter5.cpp:26
events
Definition: boss_sartura.cpp:43
Talk
Definition: boss_fathomlord_karathress.cpp:23
void SendInitialWorldStates()
Definition: chapter5.cpp:442

References ACTION_START_EVENT, defendersRemaining, ENCOUNTER_START_TIME, ENCOUNTER_TOTAL_DEFENDERS, ENCOUNTER_TOTAL_SCOURGE, EVENT_START_COUNTDOWN_1, EVENT_START_COUNTDOWN_10, EVENT_START_COUNTDOWN_11, EVENT_START_COUNTDOWN_12, EVENT_START_COUNTDOWN_13, EVENT_START_COUNTDOWN_14, EVENT_START_COUNTDOWN_2, EVENT_START_COUNTDOWN_3, EVENT_START_COUNTDOWN_4, EVENT_START_COUNTDOWN_5, EVENT_START_COUNTDOWN_6, EVENT_START_COUNTDOWN_7, EVENT_START_COUNTDOWN_8, EVENT_START_COUNTDOWN_9, SAY_LIGHT_OF_DAWN01, scourgeRemaining, SendInitialWorldStates(), and startTimeRemaining.

◆ FinishFight()

void npc_highlord_darion_mograine::npc_highlord_darion_mograineAI::FinishFight ( )
inline
504 {
506 {
507 tirion->LoadEquipment(0, true);
508 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN25);
509 events.Reset();
510 events.ScheduleEvent(EVENT_FINISH_FIGHT_1, 10s);
511 events.ScheduleEvent(EVENT_FINISH_FIGHT_2, 20s);
512 events.ScheduleEvent(EVENT_FINISH_FIGHT_3, 22s);
513 events.ScheduleEvent(EVENT_FINISH_FIGHT_4, 23s);
514 events.ScheduleEvent(EVENT_FINISH_FIGHT_5, 24s);
515
516 tirion->SummonGameObject(GO_HOLY_LIGHTNING, 2254.84f, -5298.75f, 82.168f, 1.134f, 0, 0, 0.537102f, 0.843517f, 20);
517 tirion->SummonGameObject(GO_HOLY_LIGHTNING, 2296.24f, -5296.44f, 81.9964f, 5.3398f, 0, 0, 0.454395f, -0.8908f, 20);
518 tirion->SummonGameObject(GO_HOLY_LIGHTNING, 2314.29f, -5261.78f, 83.1349f, 3.05822f, 0, 0, 0.999131f, 0.0416735f, 20);
519 tirion->SummonGameObject(GO_HOLY_LIGHTNING, 2278.43f, -5270.14f, 81.7247f, 0.70988f, 0, 0, 0.347534f, 0.937667f, 20);
520 }
521 }
@ TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN
Definition: Object.h:43
@ GO_HOLY_LIGHTNING
Definition: chapter5.cpp:244
const Position LightOfDawnPos[]
Definition: chapter5.cpp:279
@ EVENT_FINISH_FIGHT_2
Definition: chapter5.cpp:125
@ EVENT_FINISH_FIGHT_4
Definition: chapter5.cpp:127
@ EVENT_FINISH_FIGHT_5
Definition: chapter5.cpp:128
@ EVENT_FINISH_FIGHT_3
Definition: chapter5.cpp:126
@ EVENT_FINISH_FIGHT_1
Definition: chapter5.cpp:124
@ SAY_LIGHT_OF_DAWN25
Definition: chapter5.cpp:35
@ NPC_HIGHLORD_TIRION_FORDRING
Definition: chapter5.cpp:236
Definition: Creature.h:46
TempSummon * SummonCreature(uint32 id, const Position &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0, SummonPropertiesEntry const *properties=nullptr, bool visibleBySummonerOnly=false) const
Definition: Object.cpp:2318

References EVENT_FINISH_FIGHT_1, EVENT_FINISH_FIGHT_2, EVENT_FINISH_FIGHT_3, EVENT_FINISH_FIGHT_4, EVENT_FINISH_FIGHT_5, GO_HOLY_LIGHTNING, LightOfDawnPos, ScriptedAI::me, NPC_HIGHLORD_TIRION_FORDRING, SAY_LIGHT_OF_DAWN25, WorldObject::SummonCreature(), and TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN.

Referenced by SummonedCreatureDies().

◆ GetData()

uint32 npc_highlord_darion_mograine::npc_highlord_darion_mograineAI::GetData ( uint32  type) const
inlineoverridevirtual

Reimplemented from UnitAI.

413 {
414 switch (type)
415 {
417 return defendersRemaining;
419 return scourgeRemaining;
421 return me->IsAlive() && (startTimeRemaining || battleStarted);
423 return me->IsAlive() && startTimeRemaining;
425 return startTimeRemaining;
428 }
429 return 0;
430 }
@ WORLD_STATE_COUNTDOWN_TIME
Definition: chapter5.cpp:204
@ WORLD_STATE_COUNTDOWN_ENABLE
Definition: chapter5.cpp:203
@ WORLD_STATE_SCOURGE_COUNT
Definition: chapter5.cpp:201
@ WORLD_STATE_DEFENDERS_COUNT
Definition: chapter5.cpp:200
@ WORLD_STATE_SOLDIERS_ENABLE
Definition: chapter5.cpp:202
@ WORLD_STATE_EVENT_BEGIN_ENABLE
Definition: chapter5.cpp:205
bool IsAlive() const
Definition: Unit.h:1808

References battleStarted, defendersRemaining, Unit::IsAlive(), ScriptedAI::me, scourgeRemaining, startTimeRemaining, WORLD_STATE_COUNTDOWN_ENABLE, WORLD_STATE_COUNTDOWN_TIME, WORLD_STATE_DEFENDERS_COUNT, WORLD_STATE_EVENT_BEGIN_ENABLE, WORLD_STATE_SCOURGE_COUNT, and WORLD_STATE_SOLDIERS_ENABLE.

Referenced by SendInitialWorldStates(), and SummonedCreatureDies().

◆ GetEntryFromSummons()

Creature * npc_highlord_darion_mograine::npc_highlord_darion_mograineAI::GetEntryFromSummons ( uint32  entry)
inline
566 {
567 for (SummonList::const_iterator itr = summons.begin(); itr != summons.end(); ++itr)
568 if (Creature* summon = ObjectAccessor::GetCreature(*me, *itr))
569 if (summon->GetEntry() == entry)
570 return summon;
571 return nullptr;
572 }
Creature * GetCreature(WorldObject const &u, ObjectGuid const guid)
Definition: ObjectAccessor.cpp:215
iterator begin()
Definition: ScriptedCreature.h:50
StorageType::const_iterator const_iterator
Definition: ScriptedCreature.h:39
iterator end()
Definition: ScriptedCreature.h:60

References SummonList::begin(), SummonList::end(), ObjectAccessor::GetCreature(), ScriptedAI::me, and summons.

Referenced by UpdateAI().

◆ JustDied()

void npc_highlord_darion_mograine::npc_highlord_darion_mograineAI::JustDied ( Unit )
inlineoverridevirtual

Reimplemented from ScriptedAI.

497 {
499 me->SetCorpseDelay(3 * 60);
500 me->SetRespawnTime(3 * 60);
501 }
void DespawnAll(uint32 delay=0)
Definition: ScriptedCreature.cpp:67

References SummonList::DespawnAll(), ScriptedAI::me, Creature::SetCorpseDelay(), Creature::SetRespawnTime(), and summons.

◆ JustEngagedWith()

void npc_highlord_darion_mograine::npc_highlord_darion_mograineAI::JustEngagedWith ( Unit )
inlineoverridevirtual

Called for reaction when initially engaged.

Reimplemented from ScriptedAI.

524 {
526 return;
527
528 events.RescheduleEvent(EVENT_SPELL_ANTI_MAGIC_ZONE, 15000);
529 events.RescheduleEvent(EVENT_SPELL_DEATH_STRIKE, 8000);
530 events.RescheduleEvent(EVENT_SPELL_DEATH_EMBRACE, 5000);
531 events.RescheduleEvent(EVENT_SPELL_UNHOLY_BLIGHT, 10000);
532 events.RescheduleEvent(EVENT_SPELL_TALK, 10000);
533 }
@ ENCOUNTER_STATE_FIGHT
Definition: chapter5.cpp:208
@ EVENT_SPELL_ANTI_MAGIC_ZONE
Definition: chapter5.cpp:118
@ EVENT_SPELL_UNHOLY_BLIGHT
Definition: chapter5.cpp:121
@ EVENT_SPELL_DEATH_STRIKE
Definition: chapter5.cpp:119
@ EVENT_SPELL_TALK
Definition: chapter5.cpp:122
@ EVENT_SPELL_DEATH_EMBRACE
Definition: chapter5.cpp:120

References battleStarted, ENCOUNTER_STATE_FIGHT, EVENT_SPELL_ANTI_MAGIC_ZONE, EVENT_SPELL_DEATH_EMBRACE, EVENT_SPELL_DEATH_STRIKE, EVENT_SPELL_TALK, and EVENT_SPELL_UNHOLY_BLIGHT.

◆ JustRespawned()

void npc_highlord_darion_mograine::npc_highlord_darion_mograineAI::JustRespawned ( )
inlineoverridevirtual

Reimplemented from CreatureAI.

545 {
546 events.Reset();
548
549 me->SetImmuneToAll(true);
552 me->SetVisible(true);
553 me->setActive(true);
554 me->SetWalk(false);
555
560
563 }
@ UNIT_STAND_STATE_STAND
Definition: Unit.h:53
@ UNIT_NPC_FLAG_GOSSIP
Definition: Unit.h:516
@ UNIT_NPC_FLAG_QUESTGIVER
Definition: Unit.h:517
bool SetWalk(bool enable) override
Definition: Creature.cpp:3081
void setActive(bool isActiveObject)
Definition: Object.cpp:1085
void SummonCreatureGroup(uint8 group, std::list< TempSummon * > *list=nullptr)
Definition: Object.cpp:2395
void SetVisible(bool x)
Definition: Unit.cpp:14129
void ReplaceAllNpcFlags(NPCFlags flags)
Definition: Unit.h:1649
void SetStandState(uint8 state)
Definition: Unit.cpp:16900
void SetImmuneToAll(bool apply, bool keepCombat=false)
Definition: Unit.h:1678

References battleStarted, defendersRemaining, SummonList::DespawnAll(), ENCOUNTER_STATE_NONE, ScriptedAI::me, Unit::ReplaceAllNpcFlags(), scourgeRemaining, SendInitialWorldStates(), WorldObject::setActive(), Unit::SetImmuneToAll(), Unit::SetStandState(), Unit::SetVisible(), Creature::SetWalk(), startTimeRemaining, WorldObject::SummonCreatureGroup(), summons, UNIT_NPC_FLAG_GOSSIP, UNIT_NPC_FLAG_QUESTGIVER, and UNIT_STAND_STATE_STAND.

Referenced by Reset().

◆ JustSummoned()

void npc_highlord_darion_mograine::npc_highlord_darion_mograineAI::JustSummoned ( Creature cr)
inlineoverridevirtual

Reimplemented from ScriptedAI.

453 {
454 summons.Summon(cr);
455
457 {
459 if (Unit* target = cr->SelectNearbyTarget(nullptr, 10.0f))
460 if (target->GetTypeId() == TYPEID_UNIT)
461 target->GetMotionMaster()->MoveCharge(pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), me->GetSpeed(MOVE_RUN));
463 }
464
466 {
468 cr->SetImmuneToAll(true);
471 }
472 }
uint32 urand(uint32 min, uint32 max)
Definition: Random.cpp:44
@ TYPEID_UNIT
Definition: ObjectGuid.h:37
@ UNIT_NPC_EMOTESTATE
Definition: UpdateFields.h:140
@ REACT_PASSIVE
Definition: Unit.h:1023
@ MOVE_RUN
Definition: Unit.h:379
const Position LightOfDawnFightPos[]
Definition: chapter5.cpp:299
@ ENCOUNTER_STATE_OUTRO
Definition: chapter5.cpp:209
@ NPC_DEFENDER_OF_THE_LIGHT
Definition: chapter5.cpp:215
@ EMOTE_STATE_READY1H
Definition: SharedDefines.h:1938
void Summon(Creature const *summon)
Definition: ScriptedCreature.h:90
void SetReactState(ReactStates st)
Definition: Creature.h:89
uint32 GetEntry() const
Definition: Object.h:109
void SetUInt32Value(uint16 index, uint32 value)
Definition: Object.cpp:650
Definition: Position.h:28
float GetPositionZ() const
Definition: Position.h:119
float GetPositionX() const
Definition: Position.h:117
float GetPositionY() const
Definition: Position.h:118
Definition: Unit.h:1290
float GetSpeed(UnitMoveType mtype) const
Definition: Unit.cpp:14318
Unit * SelectNearbyTarget(Unit *exclude=nullptr, float dist=NOMINAL_MELEE_RANGE) const
Definition: Unit.cpp:17155
MotionMaster * GetMotionMaster()
Definition: Unit.h:2262
void HandleEmoteCommand(uint32 emoteId)
Definition: Unit.cpp:1970
bool IsInCombat() const
Definition: Unit.h:1688
void MoveCharge(float x, float y, float z, float speed=SPEED_CHARGE, uint32 id=EVENT_CHARGE, const Movement::PointsArray *path=nullptr, bool generatePath=false, float orientation=0.0f, ObjectGuid targetGUID=ObjectGuid::Empty)
Definition: MotionMaster.cpp:586

References battleStarted, EMOTE_STATE_READY1H, ENCOUNTER_STATE_FIGHT, ENCOUNTER_STATE_OUTRO, Object::GetEntry(), Unit::GetMotionMaster(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), Unit::GetSpeed(), Unit::HandleEmoteCommand(), Unit::IsInCombat(), LightOfDawnFightPos, ScriptedAI::me, MOVE_RUN, MotionMaster::MoveCharge(), NPC_DEFENDER_OF_THE_LIGHT, NPC_HIGHLORD_TIRION_FORDRING, REACT_PASSIVE, Unit::SelectNearbyTarget(), Unit::SetImmuneToAll(), Creature::SetReactState(), Object::SetUInt32Value(), SummonList::Summon(), summons, TYPEID_UNIT, UNIT_NPC_EMOTESTATE, and urand().

◆ MovementInform()

void npc_highlord_darion_mograine::npc_highlord_darion_mograineAI::MovementInform ( uint32  type,
uint32  point 
)
inlineoverridevirtual

Reimplemented from ScriptedAI.

575 {
576 if (type == POINT_MOTION_TYPE && point == 2)
577 {
580 events.Reset();
581
582 events.ScheduleEvent(EVENT_OUTRO_SCENE_1, 2s);
583 events.ScheduleEvent(EVENT_OUTRO_SCENE_2, 19s);
584 events.ScheduleEvent(EVENT_OUTRO_SCENE_3, 38s);
585 events.ScheduleEvent(EVENT_OUTRO_SCENE_4, 50s);
586 events.ScheduleEvent(EVENT_OUTRO_SCENE_5, 62s);
587 events.ScheduleEvent(EVENT_OUTRO_SCENE_6, 68s);
588 events.ScheduleEvent(EVENT_OUTRO_SCENE_7, 71s);
589 events.ScheduleEvent(EVENT_OUTRO_SCENE_8, 72s);
590 events.ScheduleEvent(EVENT_OUTRO_SCENE_9, 74s);
591 events.ScheduleEvent(EVENT_OUTRO_SCENE_10, 77s);
592 events.ScheduleEvent(EVENT_OUTRO_SCENE_11, 79s);
593 events.ScheduleEvent(EVENT_OUTRO_SCENE_12, 82s);
594 events.ScheduleEvent(EVENT_OUTRO_SCENE_13, 85s);
595 events.ScheduleEvent(EVENT_OUTRO_SCENE_14, 92s);
596 events.ScheduleEvent(EVENT_OUTRO_SCENE_15, 98s);
597 events.ScheduleEvent(EVENT_OUTRO_SCENE_16, 105s);
598 events.ScheduleEvent(EVENT_OUTRO_SCENE_17, 120s);
599 events.ScheduleEvent(EVENT_OUTRO_SCENE_18, 131s);
600 events.ScheduleEvent(EVENT_OUTRO_SCENE_19, 158s);
601 }
602 }
@ POINT_MOTION_TYPE
Definition: MotionMaster.h:46
@ SPELL_THE_LIGHT_OF_DAWN
Definition: chapter5.cpp:263
@ EVENT_OUTRO_SCENE_19
Definition: chapter5.cpp:148
@ EVENT_OUTRO_SCENE_5
Definition: chapter5.cpp:134
@ EVENT_OUTRO_SCENE_7
Definition: chapter5.cpp:136
@ EVENT_OUTRO_SCENE_15
Definition: chapter5.cpp:144
@ EVENT_OUTRO_SCENE_18
Definition: chapter5.cpp:147
@ EVENT_OUTRO_SCENE_1
Definition: chapter5.cpp:130
@ EVENT_OUTRO_SCENE_3
Definition: chapter5.cpp:132
@ EVENT_OUTRO_SCENE_13
Definition: chapter5.cpp:142
@ EVENT_OUTRO_SCENE_11
Definition: chapter5.cpp:140
@ EVENT_OUTRO_SCENE_8
Definition: chapter5.cpp:137
@ EVENT_OUTRO_SCENE_12
Definition: chapter5.cpp:141
@ EVENT_OUTRO_SCENE_14
Definition: chapter5.cpp:143
@ EVENT_OUTRO_SCENE_2
Definition: chapter5.cpp:131
@ EVENT_OUTRO_SCENE_17
Definition: chapter5.cpp:146
@ EVENT_OUTRO_SCENE_6
Definition: chapter5.cpp:135
@ EVENT_OUTRO_SCENE_10
Definition: chapter5.cpp:139
@ EVENT_OUTRO_SCENE_4
Definition: chapter5.cpp:133
@ EVENT_OUTRO_SCENE_9
Definition: chapter5.cpp:138
@ EVENT_OUTRO_SCENE_16
Definition: chapter5.cpp:145
@ EMOTE_LIGHT_OF_DAWN05
Definition: chapter5.cpp:84
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
Definition: Unit.cpp:4835

References EMOTE_LIGHT_OF_DAWN05, EVENT_OUTRO_SCENE_1, EVENT_OUTRO_SCENE_10, EVENT_OUTRO_SCENE_11, EVENT_OUTRO_SCENE_12, EVENT_OUTRO_SCENE_13, EVENT_OUTRO_SCENE_14, EVENT_OUTRO_SCENE_15, EVENT_OUTRO_SCENE_16, EVENT_OUTRO_SCENE_17, EVENT_OUTRO_SCENE_18, EVENT_OUTRO_SCENE_19, EVENT_OUTRO_SCENE_2, EVENT_OUTRO_SCENE_3, EVENT_OUTRO_SCENE_4, EVENT_OUTRO_SCENE_5, EVENT_OUTRO_SCENE_6, EVENT_OUTRO_SCENE_7, EVENT_OUTRO_SCENE_8, EVENT_OUTRO_SCENE_9, ScriptedAI::me, POINT_MOTION_TYPE, Unit::RemoveAurasDueToSpell(), and SPELL_THE_LIGHT_OF_DAWN.

◆ Reset()

void npc_highlord_darion_mograine::npc_highlord_darion_mograineAI::Reset ( )
inlineoverridevirtual

Reimplemented from ScriptedAI.

536 {
537 if (resetExecuted)
538 return;
539
540 resetExecuted = true;
542 }
void JustRespawned() override
Definition: chapter5.cpp:544

References JustRespawned(), and resetExecuted.

◆ SendInitialWorldStates()

◆ SendUpdateWorldState()

void npc_highlord_darion_mograine::npc_highlord_darion_mograineAI::SendUpdateWorldState ( uint32  id,
uint32  state 
)
inline
433 {
434 Map::PlayerList const& players = me->GetMap()->GetPlayers();
435 if (!players.IsEmpty())
436 for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
437 if (Player* player = itr->GetSource())
438 if (player->GetPhaseMask() & 128) // Xinef: client skips players without chapter 5 aura anyway, speedup
439 player->SendUpdateWorldState(id, state);
440 }
bool IsEmpty() const
Definition: LinkedList.h:97
Definition: LinkedList.h:139
Map * GetMap() const
Definition: Object.h:517
Definition: Player.h:1046
PlayerList const & GetPlayers() const
Definition: Map.h:484
Definition: MapRefMgr.h:26
iterator begin()
Definition: MapRefMgr.h:36
iterator end()
Definition: MapRefMgr.h:37

References MapRefMgr::begin(), MapRefMgr::end(), WorldObject::GetMap(), Map::GetPlayers(), LinkedListHead::IsEmpty(), and ScriptedAI::me.

Referenced by SendInitialWorldStates(), SummonedCreatureDies(), and UpdateAI().

◆ SummonedCreatureDies()

void npc_highlord_darion_mograine::npc_highlord_darion_mograineAI::SummonedCreatureDies ( Creature creature,
Unit  
)
inlineoverridevirtual

Reimplemented from CreatureAI.

475 {
476 // Refill Armies and update counters
478 return;
479
480 me->m_Events.AddEvent(new DelayedSummonEvent(me, creature->GetEntry(), *creature), me->m_Events.CalculateTime(3000));
481 if (creature->GetEntry() >= NPC_RAMPAGING_ABOMINATION)
482 {
485 }
486 else
487 {
490
491 if (defendersRemaining == 200)
492 FinishFight();
493 }
494 }
@ NPC_RAMPAGING_ABOMINATION
Definition: chapter5.cpp:225
void AddEvent(BasicEvent *Event, uint64 e_time, bool set_addtime=true)
Definition: EventProcessor.h:105
uint64 CalculateTime(uint64 t_offset) const
Definition: EventProcessor.cpp:158
EventProcessor m_Events
Definition: Unit.h:2094
Definition: chapter5.cpp:314

References EventProcessor::AddEvent(), battleStarted, EventProcessor::CalculateTime(), defendersRemaining, ENCOUNTER_STATE_FIGHT, FinishFight(), GetData(), Object::GetEntry(), Unit::m_Events, ScriptedAI::me, NPC_RAMPAGING_ABOMINATION, scourgeRemaining, SendUpdateWorldState(), WORLD_STATE_DEFENDERS_COUNT, and WORLD_STATE_SCOURGE_COUNT.

◆ UpdateAI()

void npc_highlord_darion_mograine::npc_highlord_darion_mograineAI::UpdateAI ( uint32  diff)
inlineoverridevirtual

Reimplemented from ScriptedAI.

605 {
606 events.Update(diff);
607 uint32 eventId = events.ExecuteEvent();
608
609 switch (eventId)
610 {
613 break;
616 break;
619 break;
623 break;
627 Talk(SAY_LIGHT_OF_DAWN04); // Wrong order in DB!
631 break;
637 if (eventId == EVENT_START_COUNTDOWN_6)
638 {
641 }
642 else
645 break;
648 break;
651 break;
653 {
654 uint8 first = 1;
655 for (SummonList::const_iterator itr = summons.begin(); itr != summons.end(); ++itr)
656 {
657 if (Creature* summon = ObjectAccessor::GetCreature(*me, *itr))
658 {
659 Position pos = LightOfDawnPos[first];
660 summon->SetHomePosition(pos);
661 summon->GetMotionMaster()->MovePoint(1, pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), true, false);
662 }
663 first = first == 0 ? 1 : 0;
664 }
665 Position pos = LightOfDawnPos[first];
666 me->SetHomePosition(pos);
667 me->SetWalk(false);
668 me->GetMotionMaster()->MovePoint(1, pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), true, true);
670 break;
671 }
673 me->SetImmuneToAll(false);
675 return;
679 break;
681 {
687
689 {
690 orbaz->SetReactState(REACT_PASSIVE);
691 orbaz->AI()->Talk(EMOTE_LIGHT_OF_DAWN04);
692 orbaz->GetMotionMaster()->MovePoint(2, LightOfDawnPos[2], true, true);
693 orbaz->DespawnOrUnsummon(7000);
694 }
695
696 for (SummonList::const_iterator itr = summons.begin(); itr != summons.end(); ++itr)
697 if (Creature* summon = ObjectAccessor::GetCreature(*me, *itr))
698 {
699 summon->CombatStop(true);
700 summon->GetThreatMgr().ClearAllThreat();
701 summon->SetImmuneToAll(true);
702 summon->SetReactState(REACT_PASSIVE);
703 summon->GetMotionMaster()->Clear(false);
704 }
705 me->CombatStop(true);
707 me->SetImmuneToAll(true);
709 me->GetMotionMaster()->Clear(false);
710
711 // Position main stars
713
714 me->SummonCreature(NPC_DEFENDER_OF_THE_LIGHT, 2276.66f, -5273.60f, 81.86f, 5.14f, TEMPSUMMON_CORPSE_DESPAWN);
715 me->SummonCreature(NPC_DEFENDER_OF_THE_LIGHT, 2272.11f, -5279.08f, 82.01f, 5.69f, TEMPSUMMON_CORPSE_DESPAWN);
716 me->SummonCreature(NPC_DEFENDER_OF_THE_LIGHT, 2285.11f, -5276.73f, 82.08f, 4.23f, TEMPSUMMON_CORPSE_DESPAWN);
717 me->SummonCreature(NPC_DEFENDER_OF_THE_LIGHT, 2290.06f, -5286.41f, 82.51f, 3.16f, TEMPSUMMON_CORPSE_DESPAWN);
718 break;
719 }
722 {
723 koltira->SetWalk(true);
724 koltira->SetHomePosition(*koltira);
725 koltira->CastSpell(koltira, SPELL_THE_LIGHT_OF_DAWN, false);
726 koltira->GetMotionMaster()->MoveCharge(LightOfDawnPos[3].GetPositionX(), LightOfDawnPos[3].GetPositionY(), LightOfDawnPos[3].GetPositionZ(), 4.0f, 2);
727 }
728 break;
731 {
732 thassarin->SetWalk(true);
733 thassarin->SetHomePosition(*thassarin);
734 thassarin->CastSpell(thassarin, SPELL_THE_LIGHT_OF_DAWN, false);
735 thassarin->GetMotionMaster()->MoveCharge(LightOfDawnPos[4].GetPositionX(), LightOfDawnPos[4].GetPositionY(), LightOfDawnPos[4].GetPositionZ(), 4.0f, 2);
736 }
737 break;
739 me->SetWalk(true);
743 me->GetMotionMaster()->MoveCharge(LightOfDawnPos[5].GetPositionX(), LightOfDawnPos[5].GetPositionY(), LightOfDawnPos[5].GetPositionZ(), 4.0f, 2);
744
746 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN26);
747 break;
750 me->SetFacingTo(4.8f);
752 break;
755 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN28);
756 break;
759 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN29);
760 break;
763 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN30);
764 break;
768 break;
771 {
772 alex->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
773 alex->GetMotionMaster()->MovePoint(0, LightOfDawnPos[8].GetPositionX(), LightOfDawnPos[8].GetPositionY(), LightOfDawnPos[8].GetPositionZ());
774 alex->CastSpell(alex, SPELL_ALEXANDROS_MOGRAINE_SPAWN, true);
775 //alex->AI()->Talk(EMOTE_LIGHT_OF_DAWN06);
776 }
777 break;
780 {
781 alex->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
782 alex->AI()->Talk(SAY_LIGHT_OF_DAWN32);
783 me->SetFacingToObject(alex);
784 }
785 break;
788 break;
792 break;
795 {
796 darion->AI()->Talk(SAY_LIGHT_OF_DAWN35);
797 darion->SetWalk(false);
798 }
799 break;
802 {
803 //darion->AI()->Talk(EMOTE_LIGHT_OF_DAWN07);
804 darion->GetMotionMaster()->MovePoint(0, LightOfDawnPos[10].GetPositionX(), LightOfDawnPos[10].GetPositionY(), LightOfDawnPos[10].GetPositionZ());
805 }
806 break;
809 darion->AI()->Talk(EMOTE_LIGHT_OF_DAWN08);
810 break;
813 darion->AI()->Talk(SAY_LIGHT_OF_DAWN36);
814 break;
817 alex->AI()->Talk(SAY_LIGHT_OF_DAWN37);
818 break;
821 darion->AI()->Talk(SAY_LIGHT_OF_DAWN38);
822 break;
825 alex->AI()->Talk(SAY_LIGHT_OF_DAWN39);
826
828 tirion->GetMotionMaster()->MovePoint(0, LightOfDawnPos[11].GetPositionX(), LightOfDawnPos[11].GetPositionY(), LightOfDawnPos[11].GetPositionZ());
829 break;
832 darion->AI()->Talk(SAY_LIGHT_OF_DAWN40);
833 break;
836 alex->AI()->Talk(SAY_LIGHT_OF_DAWN41);
837
839 darion->DespawnOrUnsummon(3000);
840 break;
843 alex->AI()->Talk(SAY_LIGHT_OF_DAWN42);
844
845 events.Reset();
846 events.ScheduleEvent(EVENT_OUTRO_SCENE_20, 4s);
847 events.ScheduleEvent(EVENT_OUTRO_SCENE_21, 4s + 500ms);
848 events.ScheduleEvent(EVENT_OUTRO_SCENE_22, 7s);
849 events.ScheduleEvent(EVENT_OUTRO_SCENE_23, 9s);
850 events.ScheduleEvent(EVENT_OUTRO_SCENE_24, 14s);
851 events.ScheduleEvent(EVENT_OUTRO_SCENE_25, 21s + 200ms);
852 events.ScheduleEvent(EVENT_OUTRO_SCENE_26, 22s + 500ms);
853 events.ScheduleEvent(EVENT_OUTRO_SCENE_27, 24s);
854 events.ScheduleEvent(EVENT_OUTRO_SCENE_28, 28s);
855 events.ScheduleEvent(EVENT_OUTRO_SCENE_29, 34s);
856 events.ScheduleEvent(EVENT_OUTRO_SCENE_30, 36s);
857 events.ScheduleEvent(EVENT_OUTRO_SCENE_31, 51s);
858 events.ScheduleEvent(EVENT_OUTRO_SCENE_32, 68s);
859 events.ScheduleEvent(EVENT_OUTRO_SCENE_33, 73s);
860 events.ScheduleEvent(EVENT_OUTRO_SCENE_34, 76s);
861 events.ScheduleEvent(EVENT_OUTRO_SCENE_35, 77s);
862 events.ScheduleEvent(EVENT_OUTRO_SCENE_36, 81s);
863 break;
866 lk->AI()->Talk(SAY_LIGHT_OF_DAWN43);
867 break;
870 lk->CastSpell(lk, SPELL_ICEBOUND_VISAGE, true);
871 break;
874 {
875 lk->AI()->Talk(SAY_LIGHT_OF_DAWN45);
877 {
878 alex->RemoveAllAuras();
879 lk->CastSpell(alex, SPELL_SOUL_FEAST_ALEX, false);
880 }
881 }
882 break;
885 {
886 alex->DespawnOrUnsummon(5000);
887 alex->SetVisible(false);
888 }
889 break;
893 break;
896 lk->GetMotionMaster()->MovePoint(0, LightOfDawnPos[13].GetPositionX(), LightOfDawnPos[13].GetPositionY(), LightOfDawnPos[13].GetPositionZ());
897 break;
900 break;
903 {
904 lk->AI()->Talk(SAY_LIGHT_OF_DAWN46);
905 lk->CastSpell(me, SPELL_REBUKE, false);
906 }
907 break;
911 {
912 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN47);
914 tirion->SetFacingToObject(lk);
915 }
916 break;
919 {
920 lk->HandleEmoteCommand(EMOTE_ONESHOT_LAUGH);
921 lk->PlayDirectSound(14820);
922 }
923 break;
926 lk->AI()->Talk(SAY_LIGHT_OF_DAWN48);
927 break;
930 lk->AI()->Talk(SAY_LIGHT_OF_DAWN49);
931 break;
934 {
936 {
937 lk->CastSpell(lk, SPELL_SOUL_FEAST_TIRION, false);
938 tirion->AI()->Talk(EMOTE_LIGHT_OF_DAWN12);
939 }
940
941 for (SummonList::const_iterator itr = summons.begin(); itr != summons.end(); ++itr)
942 if (Creature* summon = ObjectAccessor::GetCreature(*me, *itr))
943 if (summon->GetEntry() <= NPC_RIMBLAT_EARTHSHATTER && summon->GetEntry() != NPC_HIGHLORD_TIRION_FORDRING)
944 {
945 float o = lk->GetAngle(summon);
946 summon->GetMotionMaster()->MovePoint(3, lk->GetPositionX() + 2.0f * cos(o), lk->GetPositionY() + 2.0f * std::sin(o), lk->GetPositionZ());
947 summon->ToTempSummon()->SetTempSummonType(TEMPSUMMON_MANUAL_DESPAWN);
948 }
949 }
950 break;
953 {
954 lk->AI()->Talk(SAY_LIGHT_OF_DAWN51);
955 lk->CastSpell(lk, SPELL_APOCALYPSE, true);
956 }
957 break;
959 for (SummonList::const_iterator itr = summons.begin(); itr != summons.end(); ++itr)
960 if (Creature* summon = ObjectAccessor::GetCreature(*me, *itr))
961 if (summon->GetEntry() <= NPC_RIMBLAT_EARTHSHATTER && summon->GetEntry() != NPC_HIGHLORD_TIRION_FORDRING)
962 Unit::Kill(summon, summon);
963 break;
966 break;
971 me->SetFacingToObject(tirion);
972
973 events.Reset();
974 events.ScheduleEvent(EVENT_OUTRO_SCENE_37, 1s);
975 events.ScheduleEvent(EVENT_OUTRO_SCENE_38, 5s);
976 events.ScheduleEvent(EVENT_OUTRO_SCENE_39, 7s);
977 events.ScheduleEvent(EVENT_OUTRO_SCENE_40, 9s);
978 events.ScheduleEvent(EVENT_OUTRO_SCENE_41, 13s);
979 events.ScheduleEvent(EVENT_OUTRO_SCENE_42, 16s);
980 events.ScheduleEvent(EVENT_OUTRO_SCENE_43, 17s);
981 events.ScheduleEvent(EVENT_OUTRO_SCENE_44, 19s);
982 events.ScheduleEvent(EVENT_OUTRO_SCENE_45, 25s);
983 events.ScheduleEvent(EVENT_OUTRO_SCENE_46, 32s);
984 events.ScheduleEvent(EVENT_OUTRO_SCENE_47, 42s);
985 events.ScheduleEvent(EVENT_OUTRO_SCENE_48, 52s);
986 events.ScheduleEvent(EVENT_OUTRO_SCENE_49, 54s);
987 events.ScheduleEvent(EVENT_OUTRO_SCENE_50, 58s);
988 events.ScheduleEvent(EVENT_OUTRO_SCENE_51, 65s);
989 events.ScheduleEvent(EVENT_OUTRO_SCENE_52, 70s);
990 events.ScheduleEvent(EVENT_OUTRO_SCENE_53, 84s);
991 break;
995 break;
998 {
999 tirion->RemoveAllAuras();
1000 tirion->CastSpell(me, SPELL_REBIRTH_OF_THE_ASHBRINGER, true);
1001 tirion->SummonGameObject(GO_LIGHT_OF_DAWN, tirion->GetPositionX(), tirion->GetPositionY(), tirion->GetPositionZ(), tirion->GetOrientation(), 0, 0, 0, 0, 180);
1002 tirion->LoadEquipment(1, true);
1003 }
1005 break;
1008 {
1009 tirion->RemoveAllAuras();
1010 tirion->HandleEmoteCommand(EMOTE_ONESHOT_ROAR);
1011 }
1012 break;
1015 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN54);
1016 break;
1019 lk->AI()->Talk(SAY_LIGHT_OF_DAWN55);
1020 break;
1023 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN56);
1024 break;
1027 {
1028 tirion->CastSpell(tirion, SPELL_TIRION_CHARGE, true);
1029 tirion->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
1030 tirion->SetImmuneToAll(true);
1031 }
1032 break;
1035 lk->AI()->Talk(SAY_LIGHT_OF_DAWN57);
1036 break;
1039 lk->AI()->Talk(SAY_LIGHT_OF_DAWN58);
1040 break;
1043 lk->AI()->Talk(SAY_LIGHT_OF_DAWN59);
1044 break;
1047 {
1048 lk->CastSpell(lk, SPELL_EXIT_TELEPORT_VISUAL, true);
1049 lk->DespawnOrUnsummon(1500);
1050 }
1051
1053 {
1054 float o = me->GetAngle(tirion);
1055 tirion->GetMotionMaster()->MovePoint(4, me->GetPositionX() + 2.0f * cos(o), me->GetPositionY() + 2.0f * std::sin(o), me->GetPositionZ(), false);
1056 tirion->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
1057 tirion->SetFaction(FACTION_FRIENDLY);
1058 }
1059 break;
1062 tirion->CastSpell(me, SPELL_LAY_ON_HANDS, false);
1064 break;
1067 {
1068 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN60);
1069 tirion->SetWalk(true);
1070 }
1071 break;
1074 tirion->GetMotionMaster()->MovePoint(4, LightOfDawnPos[14].GetPositionX(), LightOfDawnPos[14].GetPositionY(), LightOfDawnPos[14].GetPositionZ());
1075 break;
1078 tirion->GetMotionMaster()->MovePoint(4, LightOfDawnPos[15].GetPositionX(), LightOfDawnPos[15].GetPositionY(), LightOfDawnPos[15].GetPositionZ());
1079 break;
1082 {
1083 tirion->SetFacingToObject(me);
1084 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN61);
1085 }
1086 break;
1089 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN62);
1090
1091 events.Reset();
1092 events.ScheduleEvent(EVENT_OUTRO_SCENE_54, 6s);
1093 events.ScheduleEvent(EVENT_OUTRO_SCENE_55, 14s);
1094 events.ScheduleEvent(EVENT_OUTRO_SCENE_56, 27s);
1095 events.ScheduleEvent(EVENT_OUTRO_SCENE_57, 37s);
1096 events.ScheduleEvent(EVENT_OUTRO_SCENE_58, 44s);
1097 events.ScheduleEvent(EVENT_OUTRO_SCENE_59, 50s);
1098 events.ScheduleEvent(EVENT_OUTRO_SCENE_60, 63s);
1099 events.ScheduleEvent(EVENT_OUTRO_SCENE_61, 150s);
1100 break;
1103 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN63);
1104 break;
1107 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN64);
1108 break;
1111 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN65);
1112 break;
1115 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN66);
1116 break;
1119 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN67);
1120 break;
1124 break;
1126 {
1127 Map::PlayerList const& PlayerList = me->GetMap()->GetPlayers();
1128 if (!PlayerList.IsEmpty())
1129 {
1130 for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
1131 if (i->GetSource()->IsAlive() && me->IsWithinDistInMap(i->GetSource(), 100))
1132 i->GetSource()->CastSpell(i->GetSource(), SPELL_THE_LIGHT_OF_DAWN_Q, false);
1133 }
1135 break;
1136 }
1140 events.Reset();
1141 return;
1142 }
1143
1145 return;
1146
1147 if (!UpdateVictim())
1148 return;
1149
1150 switch (eventId)
1151 {
1154 events.RescheduleEvent(eventId, 25s, 30s);
1155 break;
1158 events.RescheduleEvent(eventId, 5s, 10s);
1159 break;
1162 events.RescheduleEvent(eventId, 15s, 20s);
1163 break;
1166 events.RescheduleEvent(eventId, 60s);
1167 break;
1168 case EVENT_SPELL_TALK:
1170 events.RescheduleEvent(eventId, 15s, 20s);
1171 break;
1172 }
1173
1175 }
std::uint8_t uint8
Definition: Define.h:110
std::uint32_t uint32
Definition: Define.h:108
@ EQUIP_UNEQUIP
Definition: CreatureAI.h:66
@ TEMPSUMMON_MANUAL_DESPAWN
Definition: Object.h:49
@ TEMPSUMMON_CORPSE_DESPAWN
Definition: Object.h:46
@ UNIT_VIRTUAL_ITEM_SLOT_ID
Definition: UpdateFields.h:116
@ UNIT_STAND_STATE_DEAD
Definition: Unit.h:60
@ UNIT_STAND_STATE_KNEEL
Definition: Unit.h:61
@ UNIT_NPC_FLAG_NONE
Definition: Unit.h:515
@ UNIT_FLAG_NOT_SELECTABLE
Definition: Unit.h:473
@ GO_LIGHT_OF_DAWN
Definition: chapter5.cpp:245
@ SPELL_TIRION_CHARGE
Definition: chapter5.cpp:273
@ SPELL_DEATH_EMBRACE
Definition: chapter5.cpp:258
@ SPELL_MOGRAINE_CHARGE
Definition: chapter5.cpp:267
@ SPELL_DEATH_STRIKE
Definition: chapter5.cpp:257
@ SPELL_THE_MIGHT_OF_MOGRAINE
Definition: chapter5.cpp:253
@ SPELL_SOUL_FEAST_TIRION
Definition: chapter5.cpp:269
@ SPELL_UNHOLY_BLIGHT
Definition: chapter5.cpp:260
@ SPELL_ICEBOUND_VISAGE
Definition: chapter5.cpp:265
@ SPELL_EXIT_TELEPORT_VISUAL
Definition: chapter5.cpp:274
@ SPELL_CAMERA_SHAKE_INIT
Definition: chapter5.cpp:251
@ SPELL_APOCALYPSE
Definition: chapter5.cpp:270
@ SPELL_ANTI_MAGIC_ZONE1
Definition: chapter5.cpp:256
@ SPELL_CAMERA_SHAKE
Definition: chapter5.cpp:252
@ SPELL_LAY_ON_HANDS
Definition: chapter5.cpp:275
@ SPELL_THROW_ASHBRINGER
Definition: chapter5.cpp:271
@ SPELL_SOUL_FEAST_ALEX
Definition: chapter5.cpp:266
@ SPELL_REBIRTH_OF_THE_ASHBRINGER
Definition: chapter5.cpp:272
@ SPELL_THE_LIGHT_OF_DAWN_Q
Definition: chapter5.cpp:276
@ SPELL_ALEXANDROS_MOGRAINE_SPAWN
Definition: chapter5.cpp:264
@ SPELL_REBUKE
Definition: chapter5.cpp:268
@ EVENT_OUTRO_SCENE_38
Definition: chapter5.cpp:167
@ EVENT_OUTRO_SCENE_23
Definition: chapter5.cpp:152
@ EVENT_OUTRO_SCENE_25
Definition: chapter5.cpp:154
@ EVENT_OUTRO_SCENE_30
Definition: chapter5.cpp:159
@ EVENT_OUTRO_SCENE_32
Definition: chapter5.cpp:161
@ EVENT_OUTRO_SCENE_60
Definition: chapter5.cpp:189
@ EVENT_OUTRO_SCENE_35
Definition: chapter5.cpp:164
@ EVENT_OUTRO_SCENE_55
Definition: chapter5.cpp:184
@ EVENT_OUTRO_SCENE_24
Definition: chapter5.cpp:153
@ EVENT_OUTRO_SCENE_61
Definition: chapter5.cpp:190
@ EVENT_OUTRO_SCENE_59
Definition: chapter5.cpp:188
@ EVENT_OUTRO_SCENE_40
Definition: chapter5.cpp:169
@ EVENT_OUTRO_SCENE_51
Definition: chapter5.cpp:180
@ EVENT_OUTRO_SCENE_36
Definition: chapter5.cpp:165
@ EVENT_OUTRO_SCENE_21
Definition: chapter5.cpp:150
@ EVENT_OUTRO_SCENE_48
Definition: chapter5.cpp:177
@ EVENT_OUTRO_SCENE_34
Definition: chapter5.cpp:163
@ EVENT_OUTRO_SCENE_29
Definition: chapter5.cpp:158
@ EVENT_OUTRO_SCENE_33
Definition: chapter5.cpp:162
@ EVENT_OUTRO_SCENE_57
Definition: chapter5.cpp:186
@ EVENT_OUTRO_SCENE_43
Definition: chapter5.cpp:172
@ ACTION_POSITION_NPCS
Definition: chapter5.cpp:194
@ EVENT_OUTRO_SCENE_47
Definition: chapter5.cpp:176
@ EVENT_OUTRO_SCENE_31
Definition: chapter5.cpp:160
@ EVENT_OUTRO_SCENE_58
Definition: chapter5.cpp:187
@ EVENT_OUTRO_SCENE_46
Definition: chapter5.cpp:175
@ EVENT_OUTRO_SCENE_52
Definition: chapter5.cpp:181
@ EVENT_OUTRO_SCENE_20
Definition: chapter5.cpp:149
@ EVENT_OUTRO_SCENE_26
Definition: chapter5.cpp:155
@ ACTION_PLAY_EMOTE
Definition: chapter5.cpp:193
@ EVENT_OUTRO_SCENE_22
Definition: chapter5.cpp:151
@ EVENT_OUTRO_SCENE_37
Definition: chapter5.cpp:166
@ EVENT_OUTRO_SCENE_56
Definition: chapter5.cpp:185
@ EVENT_OUTRO_SCENE_45
Definition: chapter5.cpp:174
@ EVENT_OUTRO_SCENE_54
Definition: chapter5.cpp:183
@ EVENT_OUTRO_SCENE_44
Definition: chapter5.cpp:173
@ EVENT_OUTRO_SCENE_49
Definition: chapter5.cpp:178
@ EVENT_OUTRO_SCENE_53
Definition: chapter5.cpp:182
@ EVENT_OUTRO_SCENE_27
Definition: chapter5.cpp:156
@ EVENT_OUTRO_SCENE_28
Definition: chapter5.cpp:157
@ EVENT_OUTRO_SCENE_42
Definition: chapter5.cpp:171
@ EVENT_OUTRO_SCENE_41
Definition: chapter5.cpp:170
@ EVENT_OUTRO_SCENE_39
Definition: chapter5.cpp:168
@ EVENT_OUTRO_SCENE_50
Definition: chapter5.cpp:179
@ SAY_LIGHT_OF_DAWN27
Definition: chapter5.cpp:37
@ SAY_LIGHT_OF_DAWN59
Definition: chapter5.cpp:69
@ SAY_LIGHT_OF_DAWN53
Definition: chapter5.cpp:63
@ SAY_LIGHT_OF_DAWN38
Definition: chapter5.cpp:48
@ SAY_LIGHT_OF_DAWN49
Definition: chapter5.cpp:59
@ SAY_LIGHT_OF_DAWN32
Definition: chapter5.cpp:42
@ SAY_LIGHT_OF_DAWN52
Definition: chapter5.cpp:62
@ SAY_LIGHT_OF_DAWN37
Definition: chapter5.cpp:47
@ SAY_LIGHT_OF_DAWN09
Definition: chapter5.cpp:34
@ SAY_LIGHT_OF_DAWN42
Definition: chapter5.cpp:52
@ SAY_LIGHT_OF_DAWN02
Definition: chapter5.cpp:27
@ SAY_LIGHT_OF_DAWN04
Definition: chapter5.cpp:29
@ SAY_LIGHT_OF_DAWN67
Definition: chapter5.cpp:77
@ EMOTE_LIGHT_OF_DAWN08
Definition: chapter5.cpp:87
@ SAY_LIGHT_OF_DAWN29
Definition: chapter5.cpp:39
@ SAY_LIGHT_OF_DAWN56
Definition: chapter5.cpp:66
@ SAY_LIGHT_OF_DAWN61
Definition: chapter5.cpp:71
@ SAY_LIGHT_OF_DAWN47
Definition: chapter5.cpp:57
@ SAY_LIGHT_OF_DAWN54
Definition: chapter5.cpp:64
@ SAY_LIGHT_OF_DAWN26
Definition: chapter5.cpp:36
@ SAY_LIGHT_OF_DAWN06
Definition: chapter5.cpp:31
@ SAY_LIGHT_OF_DAWN41
Definition: chapter5.cpp:51
@ SAY_LIGHT_OF_DAWN68
Definition: chapter5.cpp:78
@ SAY_LIGHT_OF_DAWN31
Definition: chapter5.cpp:41
@ SAY_LIGHT_OF_DAWN64
Definition: chapter5.cpp:74
@ SAY_LIGHT_OF_DAWN58
Definition: chapter5.cpp:68
@ SAY_LIGHT_OF_DAWN44
Definition: chapter5.cpp:54
@ SAY_LIGHT_OF_DAWN46
Definition: chapter5.cpp:56
@ EMOTE_LIGHT_OF_DAWN04
Definition: chapter5.cpp:83
@ SAY_LIGHT_OF_DAWN35
Definition: chapter5.cpp:45
@ SAY_LIGHT_OF_DAWN62
Definition: chapter5.cpp:72
@ SAY_LIGHT_OF_DAWN65
Definition: chapter5.cpp:75
@ SAY_LIGHT_OF_DAWN28
Definition: chapter5.cpp:38
@ SAY_LIGHT_OF_DAWN34
Definition: chapter5.cpp:44
@ SAY_LIGHT_OF_DAWN33
Definition: chapter5.cpp:43
@ SAY_LIGHT_OF_DAWN40
Definition: chapter5.cpp:50
@ SAY_LIGHT_OF_DAWN55
Definition: chapter5.cpp:65
@ SAY_LIGHT_OF_DAWN30
Definition: chapter5.cpp:40
@ SAY_LIGHT_OF_DAWN45
Definition: chapter5.cpp:55
@ SAY_LIGHT_OF_DAWN57
Definition: chapter5.cpp:67
@ SAY_LIGHT_OF_DAWN43
Definition: chapter5.cpp:53
@ SAY_LIGHT_OF_DAWN36
Definition: chapter5.cpp:46
@ SAY_LIGHT_OF_DAWN48
Definition: chapter5.cpp:58
@ EMOTE_LIGHT_OF_DAWN12
Definition: chapter5.cpp:91
@ SAY_LIGHT_OF_DAWN60
Definition: chapter5.cpp:70
@ SAY_LIGHT_OF_DAWN39
Definition: chapter5.cpp:49
@ SAY_LIGHT_OF_DAWN51
Definition: chapter5.cpp:61
@ SAY_LIGHT_OF_DAWN05
Definition: chapter5.cpp:30
@ SAY_LIGHT_OF_DAWN66
Definition: chapter5.cpp:76
@ SAY_LIGHT_OF_DAWN63
Definition: chapter5.cpp:73
@ NPC_THE_LICH_KING
Definition: chapter5.cpp:239
@ NPC_FLESH_BEHEMOTH
Definition: chapter5.cpp:228
@ NPC_ORBAZ_BLOODBANE
Definition: chapter5.cpp:232
@ NPC_DARION_MOGRAINE
Definition: chapter5.cpp:238
@ NPC_ACHERUS_GHOUL
Definition: chapter5.cpp:226
@ NPC_WARRIOR_OF_THE_FROZEN_WASTES
Definition: chapter5.cpp:227
@ NPC_THASSARIAN
Definition: chapter5.cpp:233
@ NPC_RIMBLAT_EARTHSHATTER
Definition: chapter5.cpp:222
@ NPC_HIGHLORD_ALEXANDROS_MOGRAINE
Definition: chapter5.cpp:237
@ NPC_KOLTIRA_DEATHWEAVER
Definition: chapter5.cpp:231
@ EMOTE_ONESHOT_LAUGH
Definition: SharedDefines.h:1875
@ EMOTE_ONESHOT_ROAR
Definition: SharedDefines.h:1879
@ EMOTE_STATE_READY2H
Definition: SharedDefines.h:1942
@ EMOTE_ONESHOT_NONE
Definition: SharedDefines.h:1866
@ FACTION_FRIENDLY
Definition: SharedDefines.h:173
void DoMeleeAttackIfReady()
Definition: UnitAI.cpp:40
SpellCastResult DoCastVictim(uint32 spellId, bool triggered=false)
Definition: UnitAI.cpp:241
SpellCastResult DoCast(uint32 spellId)
Definition: UnitAI.cpp:178
bool UpdateVictim()
Definition: CreatureAI.cpp:269
void DespawnEntry(uint32 entry)
Definition: ScriptedCreature.cpp:50
void DoAction(int32 info, uint16 max=0)
Definition: ScriptedCreature.h:104
void ClearAllThreat()
Definition: ThreatMgr.cpp:418
void SetHomePosition(float x, float y, float z, float o)
Definition: Creature.h:328
void DespawnOrUnsummon(Milliseconds msTimeToDespawn, Seconds forcedRespawnTimer)
Definition: Creature.cpp:2108
bool IsWithinDistInMap(WorldObject const *obj, float dist2compare, bool is3D=true, bool useBoundingRadius=true) const
Definition: Object.cpp:1321
float GetOrientation() const
Definition: Position.h:120
float GetAngle(const Position *pos) const
Definition: Position.cpp:77
void SetFacingTo(float ori)
Definition: Unit.cpp:20782
void CombatStop(bool includingCast=false)
Definition: Unit.cpp:10401
static void Kill(Unit *killer, Unit *victim, bool durabilityLoss=true, WeaponAttackType attackType=BASE_ATTACK, SpellInfo const *spellProto=nullptr, Spell const *spell=nullptr)
Definition: Unit.cpp:17862
void SetFacingToObject(WorldObject *object)
Definition: Unit.cpp:20792
SpellCastResult CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition: Unit.cpp:1169
void RemoveAllAuras()
Definition: Unit.cpp:5239
ThreatMgr & GetThreatMgr()
Definition: Unit.h:2145
void MovePoint(uint32 id, const Position &pos, bool generatePath=true, bool forceDestination=true)
Definition: MotionMaster.h:210
void Clear(bool reset=true)
Definition: MotionMaster.h:165
Creature * GetEntryFromSummons(uint32 entry)
Definition: chapter5.cpp:565

References ACTION_PLAY_EMOTE, ACTION_POSITION_NPCS, battleStarted, SummonList::begin(), MapRefMgr::begin(), Unit::CastSpell(), MotionMaster::Clear(), ThreatMgr::ClearAllThreat(), Unit::CombatStop(), SummonList::DespawnAll(), SummonList::DespawnEntry(), Creature::DespawnOrUnsummon(), SummonList::DoAction(), UnitAI::DoCast(), UnitAI::DoCastVictim(), UnitAI::DoMeleeAttackIfReady(), EMOTE_LIGHT_OF_DAWN04, EMOTE_LIGHT_OF_DAWN08, EMOTE_LIGHT_OF_DAWN12, EMOTE_ONESHOT_LAUGH, EMOTE_ONESHOT_NONE, EMOTE_ONESHOT_ROAR, EMOTE_STATE_READY2H, ENCOUNTER_STATE_FIGHT, ENCOUNTER_STATE_OUTRO, SummonList::end(), MapRefMgr::end(), EQUIP_UNEQUIP, EVENT_FINISH_FIGHT_1, EVENT_FINISH_FIGHT_2, EVENT_FINISH_FIGHT_3, EVENT_FINISH_FIGHT_4, EVENT_FINISH_FIGHT_5, EVENT_OUTRO_SCENE_1, EVENT_OUTRO_SCENE_10, EVENT_OUTRO_SCENE_11, EVENT_OUTRO_SCENE_12, EVENT_OUTRO_SCENE_13, EVENT_OUTRO_SCENE_14, EVENT_OUTRO_SCENE_15, EVENT_OUTRO_SCENE_16, EVENT_OUTRO_SCENE_17, EVENT_OUTRO_SCENE_18, EVENT_OUTRO_SCENE_19, EVENT_OUTRO_SCENE_2, EVENT_OUTRO_SCENE_20, EVENT_OUTRO_SCENE_21, EVENT_OUTRO_SCENE_22, EVENT_OUTRO_SCENE_23, EVENT_OUTRO_SCENE_24, EVENT_OUTRO_SCENE_25, EVENT_OUTRO_SCENE_26, EVENT_OUTRO_SCENE_27, EVENT_OUTRO_SCENE_28, EVENT_OUTRO_SCENE_29, EVENT_OUTRO_SCENE_3, EVENT_OUTRO_SCENE_30, EVENT_OUTRO_SCENE_31, EVENT_OUTRO_SCENE_32, EVENT_OUTRO_SCENE_33, EVENT_OUTRO_SCENE_34, EVENT_OUTRO_SCENE_35, EVENT_OUTRO_SCENE_36, EVENT_OUTRO_SCENE_37, EVENT_OUTRO_SCENE_38, EVENT_OUTRO_SCENE_39, EVENT_OUTRO_SCENE_4, EVENT_OUTRO_SCENE_40, EVENT_OUTRO_SCENE_41, EVENT_OUTRO_SCENE_42, EVENT_OUTRO_SCENE_43, EVENT_OUTRO_SCENE_44, EVENT_OUTRO_SCENE_45, EVENT_OUTRO_SCENE_46, EVENT_OUTRO_SCENE_47, EVENT_OUTRO_SCENE_48, EVENT_OUTRO_SCENE_49, EVENT_OUTRO_SCENE_5, EVENT_OUTRO_SCENE_50, EVENT_OUTRO_SCENE_51, EVENT_OUTRO_SCENE_52, EVENT_OUTRO_SCENE_53, EVENT_OUTRO_SCENE_54, EVENT_OUTRO_SCENE_55, EVENT_OUTRO_SCENE_56, EVENT_OUTRO_SCENE_57, EVENT_OUTRO_SCENE_58, EVENT_OUTRO_SCENE_59, EVENT_OUTRO_SCENE_6, EVENT_OUTRO_SCENE_60, EVENT_OUTRO_SCENE_61, EVENT_OUTRO_SCENE_7, EVENT_OUTRO_SCENE_8, EVENT_OUTRO_SCENE_9, EVENT_SPELL_ANTI_MAGIC_ZONE, EVENT_SPELL_DEATH_EMBRACE, EVENT_SPELL_DEATH_STRIKE, EVENT_SPELL_TALK, EVENT_SPELL_UNHOLY_BLIGHT, EVENT_START_COUNTDOWN_1, EVENT_START_COUNTDOWN_10, EVENT_START_COUNTDOWN_11, EVENT_START_COUNTDOWN_12, EVENT_START_COUNTDOWN_13, EVENT_START_COUNTDOWN_14, EVENT_START_COUNTDOWN_2, EVENT_START_COUNTDOWN_3, EVENT_START_COUNTDOWN_4, EVENT_START_COUNTDOWN_5, EVENT_START_COUNTDOWN_6, EVENT_START_COUNTDOWN_7, EVENT_START_COUNTDOWN_8, EVENT_START_COUNTDOWN_9, FACTION_FRIENDLY, Position::GetAngle(), ObjectAccessor::GetCreature(), GetEntryFromSummons(), WorldObject::GetMap(), Unit::GetMotionMaster(), Position::GetOrientation(), Map::GetPlayers(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), Unit::GetThreatMgr(), GO_LIGHT_OF_DAWN, LinkedListHead::IsEmpty(), WorldObject::IsWithinDistInMap(), Unit::Kill(), LightOfDawnPos, ScriptedAI::me, MotionMaster::MoveCharge(), MotionMaster::MovePoint(), NPC_ACHERUS_GHOUL, NPC_DARION_MOGRAINE, NPC_DEFENDER_OF_THE_LIGHT, NPC_FLESH_BEHEMOTH, NPC_HIGHLORD_ALEXANDROS_MOGRAINE, NPC_HIGHLORD_TIRION_FORDRING, NPC_KOLTIRA_DEATHWEAVER, NPC_ORBAZ_BLOODBANE, NPC_RAMPAGING_ABOMINATION, NPC_RIMBLAT_EARTHSHATTER, NPC_THASSARIAN, NPC_THE_LICH_KING, NPC_WARRIOR_OF_THE_FROZEN_WASTES, REACT_PASSIVE, Unit::RemoveAllAuras(), Unit::ReplaceAllNpcFlags(), SAY_LIGHT_OF_DAWN02, SAY_LIGHT_OF_DAWN04, SAY_LIGHT_OF_DAWN05, SAY_LIGHT_OF_DAWN06, SAY_LIGHT_OF_DAWN09, SAY_LIGHT_OF_DAWN26, SAY_LIGHT_OF_DAWN27, SAY_LIGHT_OF_DAWN28, SAY_LIGHT_OF_DAWN29, SAY_LIGHT_OF_DAWN30, SAY_LIGHT_OF_DAWN31, SAY_LIGHT_OF_DAWN32, SAY_LIGHT_OF_DAWN33, SAY_LIGHT_OF_DAWN34, SAY_LIGHT_OF_DAWN35, SAY_LIGHT_OF_DAWN36, SAY_LIGHT_OF_DAWN37, SAY_LIGHT_OF_DAWN38, SAY_LIGHT_OF_DAWN39, SAY_LIGHT_OF_DAWN40, SAY_LIGHT_OF_DAWN41, SAY_LIGHT_OF_DAWN42, SAY_LIGHT_OF_DAWN43, SAY_LIGHT_OF_DAWN44, SAY_LIGHT_OF_DAWN45, SAY_LIGHT_OF_DAWN46, SAY_LIGHT_OF_DAWN47, SAY_LIGHT_OF_DAWN48, SAY_LIGHT_OF_DAWN49, SAY_LIGHT_OF_DAWN51, SAY_LIGHT_OF_DAWN52, SAY_LIGHT_OF_DAWN53, SAY_LIGHT_OF_DAWN54, SAY_LIGHT_OF_DAWN55, SAY_LIGHT_OF_DAWN56, SAY_LIGHT_OF_DAWN57, SAY_LIGHT_OF_DAWN58, SAY_LIGHT_OF_DAWN59, SAY_LIGHT_OF_DAWN60, SAY_LIGHT_OF_DAWN61, SAY_LIGHT_OF_DAWN62, SAY_LIGHT_OF_DAWN63, SAY_LIGHT_OF_DAWN64, SAY_LIGHT_OF_DAWN65, SAY_LIGHT_OF_DAWN66, SAY_LIGHT_OF_DAWN67, SAY_LIGHT_OF_DAWN68, SendUpdateWorldState(), Unit::SetFacingTo(), Unit::SetFacingToObject(), Creature::SetHomePosition(), Unit::SetImmuneToAll(), Creature::SetReactState(), Unit::SetStandState(), Object::SetUInt32Value(), Creature::SetWalk(), SPELL_ALEXANDROS_MOGRAINE_SPAWN, SPELL_ANTI_MAGIC_ZONE1, SPELL_APOCALYPSE, SPELL_CAMERA_SHAKE, SPELL_CAMERA_SHAKE_INIT, SPELL_DEATH_EMBRACE, SPELL_DEATH_STRIKE, SPELL_EXIT_TELEPORT_VISUAL, SPELL_ICEBOUND_VISAGE, SPELL_LAY_ON_HANDS, SPELL_MOGRAINE_CHARGE, SPELL_REBIRTH_OF_THE_ASHBRINGER, SPELL_REBUKE, SPELL_SOUL_FEAST_ALEX, SPELL_SOUL_FEAST_TIRION, SPELL_THE_LIGHT_OF_DAWN, SPELL_THE_LIGHT_OF_DAWN_Q, SPELL_THE_MIGHT_OF_MOGRAINE, SPELL_THROW_ASHBRINGER, SPELL_TIRION_CHARGE, SPELL_UNHOLY_BLIGHT, WorldObject::SummonCreature(), WorldObject::SummonCreatureGroup(), summons, TEMPSUMMON_CORPSE_DESPAWN, TEMPSUMMON_MANUAL_DESPAWN, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, UNIT_FLAG_NOT_SELECTABLE, UNIT_NPC_EMOTESTATE, UNIT_NPC_FLAG_GOSSIP, UNIT_NPC_FLAG_NONE, UNIT_NPC_FLAG_QUESTGIVER, UNIT_STAND_STATE_DEAD, UNIT_STAND_STATE_KNEEL, UNIT_STAND_STATE_STAND, UNIT_VIRTUAL_ITEM_SLOT_ID, CreatureAI::UpdateVictim(), WORLD_STATE_COUNTDOWN_ENABLE, WORLD_STATE_COUNTDOWN_TIME, and WORLD_STATE_EVENT_BEGIN_ENABLE.

Member Data Documentation

◆ battleStarted

uint8 npc_highlord_darion_mograine::npc_highlord_darion_mograineAI::battleStarted

◆ defendersRemaining

uint32 npc_highlord_darion_mograine::npc_highlord_darion_mograineAI::defendersRemaining

◆ events

EventMap npc_highlord_darion_mograine::npc_highlord_darion_mograineAI::events

◆ resetExecuted

bool npc_highlord_darion_mograine::npc_highlord_darion_mograineAI::resetExecuted

◆ scourgeRemaining

uint32 npc_highlord_darion_mograine::npc_highlord_darion_mograineAI::scourgeRemaining

◆ startTimeRemaining

uint32 npc_highlord_darion_mograine::npc_highlord_darion_mograineAI::startTimeRemaining

Referenced by DoAction(), GetData(), and JustRespawned().

◆ summons

SummonList npc_highlord_darion_mograine::npc_highlord_darion_mograineAI::summons