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
 Use to start attacking a target. Called just before JustEngagedWith()
 
- Public Member Functions inherited from ScriptedAI
 ScriptedAI (Creature *creature)
 
 ~ScriptedAI () override
 
void AttackStartNoMove (Unit *target)
 
void DamageTaken (Unit *, uint32 &, DamageEffectType, SpellSchoolMask) override
 Called at any Damage from any attacker (before damage apply)
 
void UpdateAI (uint32 diff) override
 Use to start attacking a target. Called just before JustEngagedWith()
 
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 DoTeleportPlayer (Unit *unit, Position pos)
 
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 IsUniqueTimedEventDone (uint32 id) const
 
void SetUniqueTimedEventDone (uint32 id)
 
void ResetUniqueTimedEvent (uint32 id)
 
void ClearUniqueTimedEventsDone ()
 
void ScheduleTimedEvent (Milliseconds timerMin, Milliseconds timerMax, std::function< void()> exec, Milliseconds repeatMin, Milliseconds repeatMax=0s, uint32 uniqueId=0)
 
void ScheduleTimedEvent (Milliseconds timerMax, std::function< void()> exec, Milliseconds repeatMin, Milliseconds repeatMax=0s, uint32 uniqueId=0)
 
void ScheduleUniqueTimedEvent (Milliseconds timer, std::function< void()> exec, uint32 uniqueId)
 
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)
 
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
 
void SetInvincibility (bool apply)
 
bool IsInvincible () const
 
void SetAutoAttackAllowed (bool allow)
 
bool IsAutoAttackAllowed () 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)
 
WorldObjectGetSummoner () const
 Returns the summoner creature/object, if the creature is a temporary summon.
 
 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 IsSummonedBy (WorldObject *)
 
virtual void SummonedCreatureDespawnAll ()
 
virtual void SummonedCreatureEvade (Creature *)
 
virtual void AttackedBy (Unit *)
 
virtual bool IsEscorted ()
 
virtual void PathEndReached (uint32)
 
void OnCharmed (bool apply) override
 Called when unit is charmed.
 
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 *)
 
virtual void OnAuraRemove (AuraApplication *, AuraRemoveMode)
 
- Public Member Functions inherited from UnitAI
 UnitAI (Unit *unit)
 
virtual ~UnitAI ()
 
virtual bool CanAIAttack (Unit const *) const
 
virtual void InitializeAI ()
 
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)
 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 JustEnteredCombat (Unit *)
 Called when the unit enters combat.
 
virtual void JustExitedCombat ()
 Called when the unit leaves combat.
 
virtual void DamageDealt (Unit *, uint32 &, DamageEffectType, SpellSchoolMask)
 Called at any Damage to any victim (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

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

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
 
TaskScheduler scheduler
 
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
361 : ScriptedAI(creature), summons(me)
362 {
364 me->SetCorpseDelay(3 * 60);
365 me->SetRespawnTime(3 * 60);
366 resetExecuted = false;
367 }
@ ENCOUNTER_STATE_NONE
Definition chapter5.cpp:202
void SetRespawnTime(uint32 respawn)
Definition Creature.cpp:3792
void SetCorpseDelay(uint32 delay)
Definition Creature.h:70
Definition ScriptedCreature.h:190
Creature * me
Definition ScriptedCreature.h:280

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.

378 {
379 if (param == ACTION_START_EVENT && !startTimeRemaining && events.Empty())
380 {
382
386
388
389 events.Reset();
390 events.ScheduleEvent(EVENT_START_COUNTDOWN_1, 60s);
391 events.ScheduleEvent(EVENT_START_COUNTDOWN_2, 120s);
392 events.ScheduleEvent(EVENT_START_COUNTDOWN_3, 180s);
393 events.ScheduleEvent(EVENT_START_COUNTDOWN_4, 240s);
394 events.ScheduleEvent(EVENT_START_COUNTDOWN_5, 300s);
395 events.ScheduleEvent(EVENT_START_COUNTDOWN_6, 308s);
396 events.ScheduleEvent(EVENT_START_COUNTDOWN_7, 312s);
397 events.ScheduleEvent(EVENT_START_COUNTDOWN_8, 316s);
398 events.ScheduleEvent(EVENT_START_COUNTDOWN_9, 320s);
399 events.ScheduleEvent(EVENT_START_COUNTDOWN_10, 324s);
400 events.ScheduleEvent(EVENT_START_COUNTDOWN_11, 332s);
401 events.ScheduleEvent(EVENT_START_COUNTDOWN_12, 335s);
402 events.ScheduleEvent(EVENT_START_COUNTDOWN_13, 337s + 500ms);
403 events.ScheduleEvent(EVENT_START_COUNTDOWN_14, 345s);
404 }
405 }
events
Definition boss_sartura.cpp:43
@ EVENT_START_COUNTDOWN_3
Definition chapter5.cpp:107
@ EVENT_START_COUNTDOWN_2
Definition chapter5.cpp:106
@ EVENT_START_COUNTDOWN_7
Definition chapter5.cpp:111
@ EVENT_START_COUNTDOWN_6
Definition chapter5.cpp:110
@ ACTION_START_EVENT
Definition chapter5.cpp:194
@ EVENT_START_COUNTDOWN_5
Definition chapter5.cpp:109
@ EVENT_START_COUNTDOWN_10
Definition chapter5.cpp:114
@ ENCOUNTER_TOTAL_SCOURGE
Definition chapter5.cpp:200
@ EVENT_START_COUNTDOWN_13
Definition chapter5.cpp:117
@ EVENT_START_COUNTDOWN_4
Definition chapter5.cpp:108
@ EVENT_START_COUNTDOWN_8
Definition chapter5.cpp:112
@ EVENT_START_COUNTDOWN_12
Definition chapter5.cpp:116
@ EVENT_START_COUNTDOWN_11
Definition chapter5.cpp:115
@ EVENT_START_COUNTDOWN_14
Definition chapter5.cpp:118
@ EVENT_START_COUNTDOWN_1
Definition chapter5.cpp:105
@ ENCOUNTER_TOTAL_DEFENDERS
Definition chapter5.cpp:199
@ EVENT_START_COUNTDOWN_9
Definition chapter5.cpp:113
@ ENCOUNTER_START_TIME
Definition chapter5.cpp:198
@ SAY_LIGHT_OF_DAWN01
Definition chapter5.cpp:28
Talk
Definition hyjal.cpp:82
void SendInitialWorldStates()
Definition chapter5.cpp:437

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
499 {
501 {
502 tirion->LoadEquipment(0, true);
503 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN25);
504 events.Reset();
505 events.ScheduleEvent(EVENT_FINISH_FIGHT_1, 10s);
506 events.ScheduleEvent(EVENT_FINISH_FIGHT_2, 20s);
507 events.ScheduleEvent(EVENT_FINISH_FIGHT_3, 22s);
508 events.ScheduleEvent(EVENT_FINISH_FIGHT_4, 23s);
509 events.ScheduleEvent(EVENT_FINISH_FIGHT_5, 24s);
510
511 tirion->SummonGameObject(GO_HOLY_LIGHTNING, 2254.84f, -5298.75f, 82.168f, 1.134f, 0, 0, 0.537102f, 0.843517f, 20);
512 tirion->SummonGameObject(GO_HOLY_LIGHTNING, 2296.24f, -5296.44f, 81.9964f, 5.3398f, 0, 0, 0.454395f, -0.8908f, 20);
513 tirion->SummonGameObject(GO_HOLY_LIGHTNING, 2314.29f, -5261.78f, 83.1349f, 3.05822f, 0, 0, 0.999131f, 0.0416735f, 20);
514 tirion->SummonGameObject(GO_HOLY_LIGHTNING, 2278.43f, -5270.14f, 81.7247f, 0.70988f, 0, 0, 0.347534f, 0.937667f, 20);
515 }
516 }
@ TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN
Definition Object.h:47
@ GO_HOLY_LIGHTNING
Definition chapter5.cpp:239
const Position LightOfDawnPos[]
Definition chapter5.cpp:274
@ EVENT_FINISH_FIGHT_2
Definition chapter5.cpp:127
@ EVENT_FINISH_FIGHT_4
Definition chapter5.cpp:129
@ EVENT_FINISH_FIGHT_5
Definition chapter5.cpp:130
@ EVENT_FINISH_FIGHT_3
Definition chapter5.cpp:128
@ EVENT_FINISH_FIGHT_1
Definition chapter5.cpp:126
@ SAY_LIGHT_OF_DAWN25
Definition chapter5.cpp:37
@ NPC_HIGHLORD_TIRION_FORDRING
Definition chapter5.cpp:231
Definition Creature.h:43
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:2368

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.

408 {
409 switch (type)
410 {
412 return defendersRemaining;
414 return scourgeRemaining;
416 return me->IsAlive() && (startTimeRemaining || battleStarted);
418 return me->IsAlive() && startTimeRemaining;
420 return startTimeRemaining;
423 }
424 return 0;
425 }
@ WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_SOLDIERS_ENABLE
Definition WorldStateDefines.h:517
@ WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_EVENT_BEGIN_ENABLE
Definition WorldStateDefines.h:520
@ WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_DEFENDERS_COUNT
Definition WorldStateDefines.h:515
@ WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_COUNTDOWN_TIME
Definition WorldStateDefines.h:519
@ WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_COUNTDOWN_ENABLE
Definition WorldStateDefines.h:518
@ WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_SCOURGE_COUNT
Definition WorldStateDefines.h:516
bool IsAlive() const
Definition Unit.h:1707

References battleStarted, defendersRemaining, Unit::IsAlive(), ScriptedAI::me, scourgeRemaining, startTimeRemaining, WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_COUNTDOWN_ENABLE, WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_COUNTDOWN_TIME, WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_DEFENDERS_COUNT, WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_EVENT_BEGIN_ENABLE, WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_SCOURGE_COUNT, and WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_SOLDIERS_ENABLE.

Referenced by SendInitialWorldStates(), and SummonedCreatureDies().

◆ GetEntryFromSummons()

Creature * npc_highlord_darion_mograine::npc_highlord_darion_mograineAI::GetEntryFromSummons ( uint32  entry)
inline
561 {
562 for (SummonList::const_iterator itr = summons.begin(); itr != summons.end(); ++itr)
563 if (Creature* summon = ObjectAccessor::GetCreature(*me, *itr))
564 if (summon->GetEntry() == entry)
565 return summon;
566 return nullptr;
567 }
iterator begin()
Definition ScriptedCreature.h:48
StorageType::const_iterator const_iterator
Definition ScriptedCreature.h:37
iterator end()
Definition ScriptedCreature.h:58
Creature * GetCreature(WorldObject const &u, ObjectGuid const guid)
Definition ObjectAccessor.cpp:210

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 CreatureAI.

492 {
494 me->SetCorpseDelay(3 * 60);
495 me->SetRespawnTime(3 * 60);
496 }
void DespawnAll(uint32 delay=0)
Definition ScriptedCreature.cpp:71

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 CreatureAI.

519 {
521 return;
522
523 events.RescheduleEvent(EVENT_SPELL_ANTI_MAGIC_ZONE, 15000);
524 events.RescheduleEvent(EVENT_SPELL_DEATH_STRIKE, 8000);
525 events.RescheduleEvent(EVENT_SPELL_DEATH_EMBRACE, 5000);
526 events.RescheduleEvent(EVENT_SPELL_UNHOLY_BLIGHT, 10000);
527 events.RescheduleEvent(EVENT_SPELL_TALK, 10000);
528 }
@ ENCOUNTER_STATE_FIGHT
Definition chapter5.cpp:203
@ EVENT_SPELL_ANTI_MAGIC_ZONE
Definition chapter5.cpp:120
@ EVENT_SPELL_UNHOLY_BLIGHT
Definition chapter5.cpp:123
@ EVENT_SPELL_DEATH_STRIKE
Definition chapter5.cpp:121
@ EVENT_SPELL_TALK
Definition chapter5.cpp:124
@ EVENT_SPELL_DEATH_EMBRACE
Definition chapter5.cpp:122

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.

540 {
541 events.Reset();
543
544 me->SetImmuneToAll(true);
547 me->SetVisible(true);
548 me->setActive(true);
549 me->SetWalk(false);
550
555
558 }
@ UNIT_STAND_STATE_STAND
Definition UnitDefines.h:32
@ UNIT_NPC_FLAG_GOSSIP
Definition UnitDefines.h:315
@ UNIT_NPC_FLAG_QUESTGIVER
Definition UnitDefines.h:316
bool SetWalk(bool enable) override
Enable or disable the creature's walk mode by removing: MOVEMENTFLAG_WALKING. Infom also the client.
Definition Creature.cpp:3208
void SetVisible(bool x)
Definition Unit.cpp:14284
void ReplaceAllNpcFlags(NPCFlags flags)
Definition Unit.h:737
void SetStandState(uint8 state)
Definition Unit.cpp:16778
void SetImmuneToAll(bool apply, bool keepCombat=false)
Definition Unit.h:883
void setActive(bool isActiveObject)
Definition Object.cpp:1094
void SummonCreatureGroup(uint8 group, std::list< TempSummon * > *list=nullptr)
Definition Object.cpp:2445

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 CreatureAI.

448 {
449 summons.Summon(cr);
450
452 {
454 if (Unit* target = cr->SelectNearbyTarget(nullptr, 10.0f))
455 if (target->IsCreature())
456 target->GetMotionMaster()->MoveCharge(pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), me->GetSpeed(MOVE_RUN));
458 }
459
461 {
463 cr->SetImmuneToAll(true);
466 }
467 }
uint32 urand(uint32 min, uint32 max)
Definition Random.cpp:44
@ EMOTE_STATE_READY1H
Definition SharedDefines.h:1966
@ MOVE_RUN
Definition UnitDefines.h:350
@ REACT_PASSIVE
Definition Unit.h:548
@ UNIT_NPC_EMOTESTATE
Definition UpdateFields.h:140
const Position LightOfDawnFightPos[]
Definition chapter5.cpp:294
@ ENCOUNTER_STATE_OUTRO
Definition chapter5.cpp:204
@ NPC_DEFENDER_OF_THE_LIGHT
Definition chapter5.cpp:210
void SetReactState(ReactStates state)
A creature can have 3 ReactStates : Agressive, Passive, Neutral.
Definition Creature.h:95
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)
The unit will charge the target. Doesn't work with UNIT_FLAG_DISABLE_MOVE.
Definition MotionMaster.cpp:670
uint32 GetEntry() const
Definition Object.h:115
void Summon(Creature const *summon)
Definition ScriptedCreature.h:88
Definition Unit.h:636
float GetSpeed(UnitMoveType mtype) const
Definition Unit.cpp:14476
Unit * SelectNearbyTarget(Unit *exclude=nullptr, float dist=NOMINAL_MELEE_RANGE) const
Definition Unit.cpp:17036
MotionMaster * GetMotionMaster()
Definition Unit.h:1673
void SetUInt32Value(uint16 index, uint32 value)
Definition Unit.cpp:21372
void HandleEmoteCommand(uint32 emoteId)
Definition Unit.cpp:2011
bool IsInCombat() const
Definition Unit.h:893
Definition Position.h:27
float GetPositionZ() const
Definition Position.h:123
float GetPositionX() const
Definition Position.h:121
float GetPositionY() const
Definition Position.h:122

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(), Unit::SetUInt32Value(), SummonList::Summon(), summons, UNIT_NPC_EMOTESTATE, and urand().

◆ MovementInform()

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

Reimplemented from CreatureAI.

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

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 UnitAI.

531 {
532 if (resetExecuted)
533 return;
534
535 resetExecuted = true;
537 }
void JustRespawned() override
Definition chapter5.cpp:539

References JustRespawned(), and resetExecuted.

◆ SendInitialWorldStates()

void npc_highlord_darion_mograine::npc_highlord_darion_mograineAI::SendInitialWorldStates ( )
inline

References GetData(), SendUpdateWorldState(), WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_COUNTDOWN_ENABLE, WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_COUNTDOWN_TIME, WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_DEFENDERS_COUNT, WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_EVENT_BEGIN_ENABLE, WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_SCOURGE_COUNT, and WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_SOLDIERS_ENABLE.

Referenced by DoAction(), and JustRespawned().

◆ SendUpdateWorldState()

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

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.

470 {
471 // Refill Armies and update counters
473 return;
474
475 me->m_Events.AddEvent(new DelayedSummonEvent(me, creature->GetEntry(), *creature), me->m_Events.CalculateTime(3000));
476 if (creature->GetEntry() >= NPC_RAMPAGING_ABOMINATION)
477 {
480 }
481 else
482 {
485
486 if (defendersRemaining == 200)
487 FinishFight();
488 }
489 }
@ NPC_RAMPAGING_ABOMINATION
Definition chapter5.cpp:220
Definition chapter5.cpp:309
void AddEvent(BasicEvent *Event, uint64 e_time, bool set_addtime=true)
Definition EventProcessor.h:103
uint64 CalculateTime(uint64 t_offset) const
Definition EventProcessor.cpp:159
EventProcessor m_Events
Definition Object.h:639

References EventProcessor::AddEvent(), battleStarted, EventProcessor::CalculateTime(), defendersRemaining, ENCOUNTER_STATE_FIGHT, FinishFight(), GetData(), Object::GetEntry(), WorldObject::m_Events, ScriptedAI::me, NPC_RAMPAGING_ABOMINATION, scourgeRemaining, SendUpdateWorldState(), WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_DEFENDERS_COUNT, and WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_SCOURGE_COUNT.

◆ UpdateAI()

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

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

Implements UnitAI.

600 {
601 events.Update(diff);
602 uint32 eventId = events.ExecuteEvent();
603
604 switch (eventId)
605 {
608 break;
611 break;
614 break;
618 break;
622 Talk(SAY_LIGHT_OF_DAWN04); // Wrong order in DB!
626 break;
632 if (eventId == EVENT_START_COUNTDOWN_6)
633 {
636 }
637 else
640 break;
643 break;
646 break;
648 {
649 uint8 first = 1;
650 for (SummonList::const_iterator itr = summons.begin(); itr != summons.end(); ++itr)
651 {
652 if (Creature* summon = ObjectAccessor::GetCreature(*me, *itr))
653 {
654 Position pos = LightOfDawnPos[first];
655 summon->SetHomePosition(pos);
656 summon->GetMotionMaster()->MovePoint(1, pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), true, false);
657 }
658 first = first == 0 ? 1 : 0;
659 }
660 Position pos = LightOfDawnPos[first];
661 me->SetHomePosition(pos);
662 me->SetWalk(false);
663 me->GetMotionMaster()->MovePoint(1, pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), true, true);
665 break;
666 }
668 me->SetImmuneToAll(false);
670 return;
674 break;
676 {
682
684 {
685 orbaz->SetReactState(REACT_PASSIVE);
686 orbaz->AI()->Talk(EMOTE_LIGHT_OF_DAWN04);
687 orbaz->GetMotionMaster()->MovePoint(2, LightOfDawnPos[2], true, true);
688 orbaz->DespawnOrUnsummon(7000);
689 }
690
691 for (SummonList::const_iterator itr = summons.begin(); itr != summons.end(); ++itr)
692 if (Creature* summon = ObjectAccessor::GetCreature(*me, *itr))
693 {
694 summon->CombatStop(true);
695 summon->GetThreatMgr().ClearAllThreat();
696 summon->SetImmuneToAll(true);
697 summon->SetReactState(REACT_PASSIVE);
698 summon->GetMotionMaster()->Clear(false);
699 }
700 me->CombatStop(true);
702 me->SetImmuneToAll(true);
704 me->GetMotionMaster()->Clear(false);
705
706 // Position main stars
708
709 me->SummonCreature(NPC_DEFENDER_OF_THE_LIGHT, 2276.66f, -5273.60f, 81.86f, 5.14f, TEMPSUMMON_CORPSE_DESPAWN);
710 me->SummonCreature(NPC_DEFENDER_OF_THE_LIGHT, 2272.11f, -5279.08f, 82.01f, 5.69f, TEMPSUMMON_CORPSE_DESPAWN);
711 me->SummonCreature(NPC_DEFENDER_OF_THE_LIGHT, 2285.11f, -5276.73f, 82.08f, 4.23f, TEMPSUMMON_CORPSE_DESPAWN);
712 me->SummonCreature(NPC_DEFENDER_OF_THE_LIGHT, 2290.06f, -5286.41f, 82.51f, 3.16f, TEMPSUMMON_CORPSE_DESPAWN);
713 break;
714 }
717 {
718 koltira->SetWalk(true);
719 koltira->SetHomePosition(*koltira);
720 koltira->CastSpell(koltira, SPELL_THE_LIGHT_OF_DAWN, false);
721 koltira->GetMotionMaster()->MoveCharge(LightOfDawnPos[3].GetPositionX(), LightOfDawnPos[3].GetPositionY(), LightOfDawnPos[3].GetPositionZ(), 4.0f, 2);
722 }
723 break;
726 {
727 thassarin->SetWalk(true);
728 thassarin->SetHomePosition(*thassarin);
729 thassarin->CastSpell(thassarin, SPELL_THE_LIGHT_OF_DAWN, false);
730 thassarin->GetMotionMaster()->MoveCharge(LightOfDawnPos[4].GetPositionX(), LightOfDawnPos[4].GetPositionY(), LightOfDawnPos[4].GetPositionZ(), 4.0f, 2);
731 }
732 break;
734 me->SetWalk(true);
739
741 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN26);
742 break;
745 me->SetFacingTo(4.8f);
747 break;
750 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN28);
751 break;
754 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN29);
755 break;
758 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN30);
759 break;
763 break;
766 {
767 alex->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
768 alex->GetMotionMaster()->MovePoint(0, LightOfDawnPos[8].GetPositionX(), LightOfDawnPos[8].GetPositionY(), LightOfDawnPos[8].GetPositionZ());
769 alex->CastSpell(alex, SPELL_ALEXANDROS_MOGRAINE_SPAWN, true);
770 //alex->AI()->Talk(EMOTE_LIGHT_OF_DAWN06);
771 }
772 break;
775 {
776 alex->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
777 alex->AI()->Talk(SAY_LIGHT_OF_DAWN32);
778 me->SetFacingToObject(alex);
779 }
780 break;
783 break;
787 break;
790 {
791 darion->AI()->Talk(SAY_LIGHT_OF_DAWN35);
792 darion->SetWalk(false);
793 }
794 break;
797 {
798 //darion->AI()->Talk(EMOTE_LIGHT_OF_DAWN07);
799 darion->GetMotionMaster()->MovePoint(0, LightOfDawnPos[10].GetPositionX(), LightOfDawnPos[10].GetPositionY(), LightOfDawnPos[10].GetPositionZ());
800 }
801 break;
804 darion->AI()->Talk(EMOTE_LIGHT_OF_DAWN08);
805 break;
808 darion->AI()->Talk(SAY_LIGHT_OF_DAWN36);
809 break;
812 alex->AI()->Talk(SAY_LIGHT_OF_DAWN37);
813 break;
816 darion->AI()->Talk(SAY_LIGHT_OF_DAWN38);
817 break;
820 alex->AI()->Talk(SAY_LIGHT_OF_DAWN39);
821
823 tirion->GetMotionMaster()->MovePoint(0, LightOfDawnPos[11].GetPositionX(), LightOfDawnPos[11].GetPositionY(), LightOfDawnPos[11].GetPositionZ());
824 break;
827 darion->AI()->Talk(SAY_LIGHT_OF_DAWN40);
828 break;
831 alex->AI()->Talk(SAY_LIGHT_OF_DAWN41);
832
834 darion->DespawnOrUnsummon(3000);
835 break;
838 alex->AI()->Talk(SAY_LIGHT_OF_DAWN42);
839
840 events.Reset();
841 events.ScheduleEvent(EVENT_OUTRO_SCENE_20, 4s);
842 events.ScheduleEvent(EVENT_OUTRO_SCENE_21, 4s + 500ms);
843 events.ScheduleEvent(EVENT_OUTRO_SCENE_22, 7s);
844 events.ScheduleEvent(EVENT_OUTRO_SCENE_23, 9s);
845 events.ScheduleEvent(EVENT_OUTRO_SCENE_24, 14s);
846 events.ScheduleEvent(EVENT_OUTRO_SCENE_25, 21s + 200ms);
847 events.ScheduleEvent(EVENT_OUTRO_SCENE_26, 22s + 500ms);
848 events.ScheduleEvent(EVENT_OUTRO_SCENE_27, 24s);
849 events.ScheduleEvent(EVENT_OUTRO_SCENE_28, 28s);
850 events.ScheduleEvent(EVENT_OUTRO_SCENE_29, 34s);
851 events.ScheduleEvent(EVENT_OUTRO_SCENE_30, 36s);
852 events.ScheduleEvent(EVENT_OUTRO_SCENE_31, 51s);
853 events.ScheduleEvent(EVENT_OUTRO_SCENE_32, 68s);
854 events.ScheduleEvent(EVENT_OUTRO_SCENE_33, 73s);
855 events.ScheduleEvent(EVENT_OUTRO_SCENE_34, 76s);
856 events.ScheduleEvent(EVENT_OUTRO_SCENE_35, 77s);
857 events.ScheduleEvent(EVENT_OUTRO_SCENE_36, 81s);
858 break;
861 lk->AI()->Talk(SAY_LIGHT_OF_DAWN43);
862 break;
865 lk->CastSpell(lk, SPELL_ICEBOUND_VISAGE, true);
866 break;
869 {
870 lk->AI()->Talk(SAY_LIGHT_OF_DAWN45);
872 {
873 alex->RemoveAllAuras();
874 lk->CastSpell(alex, SPELL_SOUL_FEAST_ALEX, false);
875 }
876 }
877 break;
880 {
881 alex->DespawnOrUnsummon(5000);
882 alex->SetVisible(false);
883 }
884 break;
888 break;
891 lk->GetMotionMaster()->MovePoint(0, LightOfDawnPos[13].GetPositionX(), LightOfDawnPos[13].GetPositionY(), LightOfDawnPos[13].GetPositionZ());
892 break;
895 break;
898 {
899 lk->AI()->Talk(SAY_LIGHT_OF_DAWN46);
900 lk->CastSpell(me, SPELL_REBUKE, false);
901 }
902 break;
906 {
907 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN47);
909 tirion->SetFacingToObject(lk);
910 }
911 break;
914 {
915 lk->HandleEmoteCommand(EMOTE_ONESHOT_LAUGH);
916 lk->PlayDirectSound(14820);
917 }
918 break;
921 lk->AI()->Talk(SAY_LIGHT_OF_DAWN48);
922 break;
925 lk->AI()->Talk(SAY_LIGHT_OF_DAWN49);
926 break;
929 {
931 {
932 lk->CastSpell(lk, SPELL_SOUL_FEAST_TIRION, false);
933 tirion->AI()->Talk(EMOTE_LIGHT_OF_DAWN12);
934 }
935
936 for (SummonList::const_iterator itr = summons.begin(); itr != summons.end(); ++itr)
937 if (Creature* summon = ObjectAccessor::GetCreature(*me, *itr))
938 if (summon->GetEntry() <= NPC_RIMBLAT_EARTHSHATTER && summon->GetEntry() != NPC_HIGHLORD_TIRION_FORDRING)
939 {
940 float o = lk->GetAngle(summon);
941 summon->GetMotionMaster()->MovePoint(3, lk->GetPositionX() + 2.0f * cos(o), lk->GetPositionY() + 2.0f * std::sin(o), lk->GetPositionZ());
942 summon->ToTempSummon()->SetTempSummonType(TEMPSUMMON_MANUAL_DESPAWN);
943 }
944 }
945 break;
948 {
949 lk->AI()->Talk(SAY_LIGHT_OF_DAWN51);
950 lk->CastSpell(lk, SPELL_APOCALYPSE, true);
951 }
952 break;
954 for (SummonList::const_iterator itr = summons.begin(); itr != summons.end(); ++itr)
955 if (Creature* summon = ObjectAccessor::GetCreature(*me, *itr))
956 if (summon->GetEntry() <= NPC_RIMBLAT_EARTHSHATTER && summon->GetEntry() != NPC_HIGHLORD_TIRION_FORDRING)
957 Unit::Kill(summon, summon);
958 break;
961 break;
966 me->SetFacingToObject(tirion);
967
968 events.Reset();
969 events.ScheduleEvent(EVENT_OUTRO_SCENE_37, 1s);
970 events.ScheduleEvent(EVENT_OUTRO_SCENE_38, 5s);
971 events.ScheduleEvent(EVENT_OUTRO_SCENE_39, 7s);
972 events.ScheduleEvent(EVENT_OUTRO_SCENE_40, 9s);
973 events.ScheduleEvent(EVENT_OUTRO_SCENE_41, 13s);
974 events.ScheduleEvent(EVENT_OUTRO_SCENE_42, 16s);
975 events.ScheduleEvent(EVENT_OUTRO_SCENE_43, 17s);
976 events.ScheduleEvent(EVENT_OUTRO_SCENE_44, 19s);
977 events.ScheduleEvent(EVENT_OUTRO_SCENE_45, 25s);
978 events.ScheduleEvent(EVENT_OUTRO_SCENE_46, 32s);
979 events.ScheduleEvent(EVENT_OUTRO_SCENE_47, 42s);
980 events.ScheduleEvent(EVENT_OUTRO_SCENE_48, 52s);
981 events.ScheduleEvent(EVENT_OUTRO_SCENE_49, 54s);
982 events.ScheduleEvent(EVENT_OUTRO_SCENE_50, 58s);
983 events.ScheduleEvent(EVENT_OUTRO_SCENE_51, 65s);
984 events.ScheduleEvent(EVENT_OUTRO_SCENE_52, 70s);
985 events.ScheduleEvent(EVENT_OUTRO_SCENE_53, 84s);
986 break;
990 break;
993 {
994 tirion->RemoveAllAuras();
995 tirion->CastSpell(me, SPELL_REBIRTH_OF_THE_ASHBRINGER, true);
996 tirion->SummonGameObject(GO_LIGHT_OF_DAWN, tirion->GetPositionX(), tirion->GetPositionY(), tirion->GetPositionZ(), tirion->GetOrientation(), 0, 0, 0, 0, 180);
997 tirion->LoadEquipment(1, true);
998 }
1000 break;
1003 {
1004 tirion->RemoveAllAuras();
1005 tirion->HandleEmoteCommand(EMOTE_ONESHOT_ROAR);
1006 }
1007 break;
1010 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN54);
1011 break;
1014 lk->AI()->Talk(SAY_LIGHT_OF_DAWN55);
1015 break;
1018 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN56);
1019 break;
1022 {
1023 tirion->CastSpell(tirion, SPELL_TIRION_CHARGE, true);
1024 tirion->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
1025 tirion->SetImmuneToAll(true);
1026 }
1027 break;
1030 lk->AI()->Talk(SAY_LIGHT_OF_DAWN57);
1031 break;
1034 lk->AI()->Talk(SAY_LIGHT_OF_DAWN58);
1035 break;
1038 lk->AI()->Talk(SAY_LIGHT_OF_DAWN59);
1039 break;
1042 {
1043 lk->CastSpell(lk, SPELL_EXIT_TELEPORT_VISUAL, true);
1044 lk->DespawnOrUnsummon(1500);
1045 }
1046
1048 {
1049 float o = me->GetAngle(tirion);
1050 tirion->GetMotionMaster()->MovePoint(4, me->GetPositionX() + 2.0f * cos(o), me->GetPositionY() + 2.0f * std::sin(o), me->GetPositionZ(), false);
1051 tirion->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
1052 tirion->SetFaction(FACTION_FRIENDLY);
1053 }
1054 break;
1057 tirion->CastSpell(me, SPELL_LAY_ON_HANDS, false);
1059 break;
1062 {
1063 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN60);
1064 tirion->SetWalk(true);
1065 }
1066 break;
1069 tirion->GetMotionMaster()->MovePoint(4, LightOfDawnPos[14].GetPositionX(), LightOfDawnPos[14].GetPositionY(), LightOfDawnPos[14].GetPositionZ());
1070 break;
1073 tirion->GetMotionMaster()->MovePoint(4, LightOfDawnPos[15].GetPositionX(), LightOfDawnPos[15].GetPositionY(), LightOfDawnPos[15].GetPositionZ());
1074 break;
1077 {
1078 tirion->SetFacingToObject(me);
1079 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN61);
1080 }
1081 break;
1084 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN62);
1085
1086 events.Reset();
1087 events.ScheduleEvent(EVENT_OUTRO_SCENE_54, 6s);
1088 events.ScheduleEvent(EVENT_OUTRO_SCENE_55, 14s);
1089 events.ScheduleEvent(EVENT_OUTRO_SCENE_56, 27s);
1090 events.ScheduleEvent(EVENT_OUTRO_SCENE_57, 37s);
1091 events.ScheduleEvent(EVENT_OUTRO_SCENE_58, 44s);
1092 events.ScheduleEvent(EVENT_OUTRO_SCENE_59, 50s);
1093 events.ScheduleEvent(EVENT_OUTRO_SCENE_60, 63s);
1094 events.ScheduleEvent(EVENT_OUTRO_SCENE_61, 150s);
1095 break;
1098 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN63);
1099 break;
1102 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN64);
1103 break;
1106 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN65);
1107 break;
1110 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN66);
1111 break;
1114 tirion->AI()->Talk(SAY_LIGHT_OF_DAWN67);
1115 break;
1119 break;
1121 {
1122 Map::PlayerList const& PlayerList = me->GetMap()->GetPlayers();
1123 if (!PlayerList.IsEmpty())
1124 {
1125 for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
1126 if (i->GetSource()->IsAlive() && me->IsWithinDistInMap(i->GetSource(), 100))
1127 i->GetSource()->CastSpell(i->GetSource(), SPELL_THE_LIGHT_OF_DAWN_Q, false);
1128 }
1130 break;
1131 }
1135 events.Reset();
1136 return;
1137 }
1138
1140 return;
1141
1142 if (!UpdateVictim())
1143 return;
1144
1145 switch (eventId)
1146 {
1149 events.RescheduleEvent(eventId, 25s, 30s);
1150 break;
1153 events.RescheduleEvent(eventId, 5s, 10s);
1154 break;
1157 events.RescheduleEvent(eventId, 15s, 20s);
1158 break;
1161 events.RescheduleEvent(eventId, 60s);
1162 break;
1163 case EVENT_SPELL_TALK:
1165 events.RescheduleEvent(eventId, 15s, 20s);
1166 break;
1167 }
1168
1170 }
@ EQUIP_UNEQUIP
Definition CreatureAI.h:66
std::uint8_t uint8
Definition Define.h:109
std::uint32_t uint32
Definition Define.h:107
@ TEMPSUMMON_MANUAL_DESPAWN
Definition Object.h:53
@ TEMPSUMMON_CORPSE_DESPAWN
Definition Object.h:50
@ EMOTE_ONESHOT_LAUGH
Definition SharedDefines.h:1903
@ EMOTE_ONESHOT_ROAR
Definition SharedDefines.h:1907
@ EMOTE_STATE_READY2H
Definition SharedDefines.h:1970
@ EMOTE_ONESHOT_NONE
Definition SharedDefines.h:1894
@ FACTION_FRIENDLY
Definition SharedDefines.h:201
@ UNIT_STAND_STATE_DEAD
Definition UnitDefines.h:39
@ UNIT_STAND_STATE_KNEEL
Definition UnitDefines.h:40
@ UNIT_NPC_FLAG_NONE
Definition UnitDefines.h:314
@ UNIT_FLAG_NOT_SELECTABLE
Definition UnitDefines.h:275
@ UNIT_VIRTUAL_ITEM_SLOT_ID
Definition UpdateFields.h:116
@ GO_LIGHT_OF_DAWN
Definition chapter5.cpp:240
@ SPELL_TIRION_CHARGE
Definition chapter5.cpp:268
@ SPELL_DEATH_EMBRACE
Definition chapter5.cpp:253
@ SPELL_MOGRAINE_CHARGE
Definition chapter5.cpp:262
@ SPELL_DEATH_STRIKE
Definition chapter5.cpp:252
@ SPELL_THE_MIGHT_OF_MOGRAINE
Definition chapter5.cpp:248
@ SPELL_SOUL_FEAST_TIRION
Definition chapter5.cpp:264
@ SPELL_UNHOLY_BLIGHT
Definition chapter5.cpp:255
@ SPELL_ICEBOUND_VISAGE
Definition chapter5.cpp:260
@ SPELL_EXIT_TELEPORT_VISUAL
Definition chapter5.cpp:269
@ SPELL_CAMERA_SHAKE_INIT
Definition chapter5.cpp:246
@ SPELL_APOCALYPSE
Definition chapter5.cpp:265
@ SPELL_ANTI_MAGIC_ZONE1
Definition chapter5.cpp:251
@ SPELL_CAMERA_SHAKE
Definition chapter5.cpp:247
@ SPELL_LAY_ON_HANDS
Definition chapter5.cpp:270
@ SPELL_THROW_ASHBRINGER
Definition chapter5.cpp:266
@ SPELL_SOUL_FEAST_ALEX
Definition chapter5.cpp:261
@ SPELL_REBIRTH_OF_THE_ASHBRINGER
Definition chapter5.cpp:267
@ SPELL_THE_LIGHT_OF_DAWN_Q
Definition chapter5.cpp:271
@ SPELL_ALEXANDROS_MOGRAINE_SPAWN
Definition chapter5.cpp:259
@ SPELL_REBUKE
Definition chapter5.cpp:263
@ EVENT_OUTRO_SCENE_38
Definition chapter5.cpp:169
@ EVENT_OUTRO_SCENE_23
Definition chapter5.cpp:154
@ EVENT_OUTRO_SCENE_25
Definition chapter5.cpp:156
@ EVENT_OUTRO_SCENE_30
Definition chapter5.cpp:161
@ EVENT_OUTRO_SCENE_32
Definition chapter5.cpp:163
@ EVENT_OUTRO_SCENE_60
Definition chapter5.cpp:191
@ EVENT_OUTRO_SCENE_35
Definition chapter5.cpp:166
@ EVENT_OUTRO_SCENE_55
Definition chapter5.cpp:186
@ EVENT_OUTRO_SCENE_24
Definition chapter5.cpp:155
@ EVENT_OUTRO_SCENE_61
Definition chapter5.cpp:192
@ EVENT_OUTRO_SCENE_59
Definition chapter5.cpp:190
@ EVENT_OUTRO_SCENE_40
Definition chapter5.cpp:171
@ EVENT_OUTRO_SCENE_51
Definition chapter5.cpp:182
@ EVENT_OUTRO_SCENE_36
Definition chapter5.cpp:167
@ EVENT_OUTRO_SCENE_21
Definition chapter5.cpp:152
@ EVENT_OUTRO_SCENE_48
Definition chapter5.cpp:179
@ EVENT_OUTRO_SCENE_34
Definition chapter5.cpp:165
@ EVENT_OUTRO_SCENE_29
Definition chapter5.cpp:160
@ EVENT_OUTRO_SCENE_33
Definition chapter5.cpp:164
@ EVENT_OUTRO_SCENE_57
Definition chapter5.cpp:188
@ EVENT_OUTRO_SCENE_43
Definition chapter5.cpp:174
@ ACTION_POSITION_NPCS
Definition chapter5.cpp:196
@ EVENT_OUTRO_SCENE_47
Definition chapter5.cpp:178
@ EVENT_OUTRO_SCENE_31
Definition chapter5.cpp:162
@ EVENT_OUTRO_SCENE_58
Definition chapter5.cpp:189
@ EVENT_OUTRO_SCENE_46
Definition chapter5.cpp:177
@ EVENT_OUTRO_SCENE_52
Definition chapter5.cpp:183
@ EVENT_OUTRO_SCENE_20
Definition chapter5.cpp:151
@ EVENT_OUTRO_SCENE_26
Definition chapter5.cpp:157
@ ACTION_PLAY_EMOTE
Definition chapter5.cpp:195
@ EVENT_OUTRO_SCENE_22
Definition chapter5.cpp:153
@ EVENT_OUTRO_SCENE_37
Definition chapter5.cpp:168
@ EVENT_OUTRO_SCENE_56
Definition chapter5.cpp:187
@ EVENT_OUTRO_SCENE_45
Definition chapter5.cpp:176
@ EVENT_OUTRO_SCENE_54
Definition chapter5.cpp:185
@ EVENT_OUTRO_SCENE_44
Definition chapter5.cpp:175
@ EVENT_OUTRO_SCENE_49
Definition chapter5.cpp:180
@ EVENT_OUTRO_SCENE_53
Definition chapter5.cpp:184
@ EVENT_OUTRO_SCENE_27
Definition chapter5.cpp:158
@ EVENT_OUTRO_SCENE_28
Definition chapter5.cpp:159
@ EVENT_OUTRO_SCENE_42
Definition chapter5.cpp:173
@ EVENT_OUTRO_SCENE_41
Definition chapter5.cpp:172
@ EVENT_OUTRO_SCENE_39
Definition chapter5.cpp:170
@ EVENT_OUTRO_SCENE_50
Definition chapter5.cpp:181
@ SAY_LIGHT_OF_DAWN27
Definition chapter5.cpp:39
@ SAY_LIGHT_OF_DAWN59
Definition chapter5.cpp:71
@ SAY_LIGHT_OF_DAWN53
Definition chapter5.cpp:65
@ SAY_LIGHT_OF_DAWN38
Definition chapter5.cpp:50
@ SAY_LIGHT_OF_DAWN49
Definition chapter5.cpp:61
@ SAY_LIGHT_OF_DAWN32
Definition chapter5.cpp:44
@ SAY_LIGHT_OF_DAWN52
Definition chapter5.cpp:64
@ SAY_LIGHT_OF_DAWN37
Definition chapter5.cpp:49
@ SAY_LIGHT_OF_DAWN09
Definition chapter5.cpp:36
@ SAY_LIGHT_OF_DAWN42
Definition chapter5.cpp:54
@ SAY_LIGHT_OF_DAWN02
Definition chapter5.cpp:29
@ SAY_LIGHT_OF_DAWN04
Definition chapter5.cpp:31
@ SAY_LIGHT_OF_DAWN67
Definition chapter5.cpp:79
@ EMOTE_LIGHT_OF_DAWN08
Definition chapter5.cpp:89
@ SAY_LIGHT_OF_DAWN29
Definition chapter5.cpp:41
@ SAY_LIGHT_OF_DAWN56
Definition chapter5.cpp:68
@ SAY_LIGHT_OF_DAWN61
Definition chapter5.cpp:73
@ SAY_LIGHT_OF_DAWN47
Definition chapter5.cpp:59
@ SAY_LIGHT_OF_DAWN54
Definition chapter5.cpp:66
@ SAY_LIGHT_OF_DAWN26
Definition chapter5.cpp:38
@ SAY_LIGHT_OF_DAWN06
Definition chapter5.cpp:33
@ SAY_LIGHT_OF_DAWN41
Definition chapter5.cpp:53
@ SAY_LIGHT_OF_DAWN68
Definition chapter5.cpp:80
@ SAY_LIGHT_OF_DAWN31
Definition chapter5.cpp:43
@ SAY_LIGHT_OF_DAWN64
Definition chapter5.cpp:76
@ SAY_LIGHT_OF_DAWN58
Definition chapter5.cpp:70
@ SAY_LIGHT_OF_DAWN44
Definition chapter5.cpp:56
@ SAY_LIGHT_OF_DAWN46
Definition chapter5.cpp:58
@ EMOTE_LIGHT_OF_DAWN04
Definition chapter5.cpp:85
@ SAY_LIGHT_OF_DAWN35
Definition chapter5.cpp:47
@ SAY_LIGHT_OF_DAWN62
Definition chapter5.cpp:74
@ SAY_LIGHT_OF_DAWN65
Definition chapter5.cpp:77
@ SAY_LIGHT_OF_DAWN28
Definition chapter5.cpp:40
@ SAY_LIGHT_OF_DAWN34
Definition chapter5.cpp:46
@ SAY_LIGHT_OF_DAWN33
Definition chapter5.cpp:45
@ SAY_LIGHT_OF_DAWN40
Definition chapter5.cpp:52
@ SAY_LIGHT_OF_DAWN55
Definition chapter5.cpp:67
@ SAY_LIGHT_OF_DAWN30
Definition chapter5.cpp:42
@ SAY_LIGHT_OF_DAWN45
Definition chapter5.cpp:57
@ SAY_LIGHT_OF_DAWN57
Definition chapter5.cpp:69
@ SAY_LIGHT_OF_DAWN43
Definition chapter5.cpp:55
@ SAY_LIGHT_OF_DAWN36
Definition chapter5.cpp:48
@ SAY_LIGHT_OF_DAWN48
Definition chapter5.cpp:60
@ EMOTE_LIGHT_OF_DAWN12
Definition chapter5.cpp:93
@ SAY_LIGHT_OF_DAWN60
Definition chapter5.cpp:72
@ SAY_LIGHT_OF_DAWN39
Definition chapter5.cpp:51
@ SAY_LIGHT_OF_DAWN51
Definition chapter5.cpp:63
@ SAY_LIGHT_OF_DAWN05
Definition chapter5.cpp:32
@ SAY_LIGHT_OF_DAWN66
Definition chapter5.cpp:78
@ SAY_LIGHT_OF_DAWN63
Definition chapter5.cpp:75
@ NPC_THE_LICH_KING
Definition chapter5.cpp:234
@ NPC_FLESH_BEHEMOTH
Definition chapter5.cpp:223
@ NPC_ORBAZ_BLOODBANE
Definition chapter5.cpp:227
@ NPC_DARION_MOGRAINE
Definition chapter5.cpp:233
@ NPC_ACHERUS_GHOUL
Definition chapter5.cpp:221
@ NPC_WARRIOR_OF_THE_FROZEN_WASTES
Definition chapter5.cpp:222
@ NPC_THASSARIAN
Definition chapter5.cpp:228
@ NPC_RIMBLAT_EARTHSHATTER
Definition chapter5.cpp:217
@ NPC_HIGHLORD_ALEXANDROS_MOGRAINE
Definition chapter5.cpp:232
@ NPC_KOLTIRA_DEATHWEAVER
Definition chapter5.cpp:226
bool UpdateVictim()
Definition CreatureAI.cpp:280
void SetHomePosition(float x, float y, float z, float o)
Definition Creature.h:340
void DespawnOrUnsummon(Milliseconds msTimeToDespawn, Seconds forcedRespawnTimer)
Definition Creature.cpp:2183
void MovePoint(uint32 id, const Position &pos, bool generatePath=true, bool forceDestination=true)
Definition MotionMaster.h:213
void Clear(bool reset=true)
Definition MotionMaster.h:167
void DespawnEntry(uint32 entry)
Definition ScriptedCreature.cpp:54
void DoAction(int32 info, uint16 max=0)
Definition ScriptedCreature.h:102
void ClearAllThreat()
Definition ThreatMgr.cpp:417
void DoMeleeAttackIfReady()
Definition UnitAI.cpp:39
SpellCastResult DoCastVictim(uint32 spellId, bool triggered=false)
Definition UnitAI.cpp:240
SpellCastResult DoCast(uint32 spellId)
Definition UnitAI.cpp:177
void SetFacingTo(float ori)
Definition Unit.cpp:20581
void CombatStop(bool includingCast=false)
Definition Unit.cpp:10481
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:17754
void SetFacingToObject(WorldObject *object)
Definition Unit.cpp:20591
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:1178
void RemoveAllAuras()
Definition Unit.cpp:5351
ThreatMgr & GetThreatMgr()
Definition Unit.h:912
bool IsWithinDistInMap(WorldObject const *obj, float dist2compare, bool is3D=true, bool useBoundingRadius=true) const
Definition Object.cpp:1332
float GetOrientation() const
Definition Position.h:124
float GetAngle(const Position *pos) const
Definition Position.cpp:78
Creature * GetEntryFromSummons(uint32 entry)
Definition chapter5.cpp:560

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(), Unit::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_BATTLE_FOR_LIGHTS_HOPE_COUNTDOWN_ENABLE, WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_COUNTDOWN_TIME, and WORLD_STATE_BATTLE_FOR_LIGHTS_HOPE_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

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