AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
CreatureAI Class Reference

#include "CreatureAI.h"

Inheritance diagram for CreatureAI:
UnitAI AggressorAI ArcherAI CombatAI NullCreatureAI PassiveAI PetAI PossessedAI ReactorAI ScriptedAI SmartAI TotemAI TurretAI VehicleAI ironhand_guardian::ironhand_guardianAI npc_announcer_toc5::npc_announcer_toc5AI npc_batrider npc_beryl_sorcerer::npc_beryl_sorcererAI npc_brann_bronzebeard_algalon::npc_brann_bronzebeard_algalonAI npc_hyldsmeet_protodrake::npc_hyldsmeet_protodrakeAI npc_maredis_firestar::npc_maredis_firestarAI npc_mc_core_hound::npc_mc_core_houndAI npc_rookery_hatcher::npc_rookery_hatcherAI npc_vaelastrasz_the_red::npc_vaelastrasz_the_redAI npc_wounded_skirmisher

Public Types

enum  EvadeReason {
  EVADE_REASON_NO_HOSTILES ,
  EVADE_REASON_BOUNDARY ,
  EVADE_REASON_SEQUENCE_BREAK ,
  EVADE_REASON_NO_PATH ,
  EVADE_REASON_OTHER
}
 

Public Member Functions

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 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 SummonedCreatureEvade (Creature *)
 
virtual void SpellHit (Unit *, SpellInfo const *)
 
virtual void SpellHitTarget (Unit *, SpellInfo const *)
 
virtual void OnSpellCastFinished (SpellInfo const *, SpellFinishReason)
 
virtual void AttackedBy (Unit *)
 
virtual bool IsEscorted ()
 
virtual void JustRespawned ()
 
virtual void MovementInform (uint32, uint32)
 
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 ()
 
int32 VisualizeBoundary (uint32 duration, Unit *owner=nullptr, bool fill=false, bool checkZ=false) const
 
virtual bool CheckInRoom ()
 
CreatureBoundary const * GetBoundary () const
 
void SetBoundary (CreatureBoundary const *boundary, bool negativeBoundaries=false)
 
bool IsInBoundary (Position const *who=nullptr) const
 
virtual void CalculateThreat (Unit *, float &, SpellInfo const *)
 
virtual bool OnTeleportUnreacheablePlayer (Player *)
 
virtual void OnAuraRemove (AuraApplication *, AuraRemoveMode)
 
virtual void DistancingStarted ()
 
virtual void DistancingEnded ()
 
- Public Member Functions inherited from UnitAI
 UnitAI (Unit *unit)
 
virtual ~UnitAI ()
 
virtual bool CanAIAttack (Unit const *) const
 
virtual void AttackStart (Unit *)
 
virtual void UpdateAI (uint32)=0
 Use to start attacking a target. Called just before JustEngagedWith()
 
virtual void InitializeAI ()
 
virtual void Reset ()
 
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)
 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 DamageTaken (Unit *, uint32 &, DamageEffectType, SpellSchoolMask)
 Called at any Damage from any attacker (before damage apply)
 
virtual void HealReceived (Unit *, uint32 &)
 Called when the creature receives heal.
 
virtual void OnPowerUpdate (Powers, int32, int32, uint32)
 Called when the creature power updates.
 
virtual void HealDone (Unit *, uint32 &)
 Called when the unit heals.
 
virtual void OnCalculateMeleeDamageReceived (uint32 &, Unit *)
 Called during damage calculations.
 
virtual void OnCalculateSpellDamageReceived (int32 &, Unit *)
 
virtual void OnCalculatePeriodicTickReceived (uint32 &, Unit *)
 Called during calculation when receiving periodic healing or damage (DoT or HoT)
 
void AttackStartCaster (Unit *victim, float dist)
 
SpellCastResult DoAddAuraToAllHostilePlayers (uint32 spellid)
 
SpellCastResult DoCast (uint32 spellId)
 
SpellCastResult DoCast (Unit *victim, uint32 spellId, bool triggered=false)
 
SpellCastResult DoCastSelf (uint32 spellId, bool triggered=false)
 
SpellCastResult DoCastToAllHostilePlayers (uint32 spellid, bool triggered=false)
 To specify the caster as target if the spell is self-cast.
 
SpellCastResult DoCastVictim (uint32 spellId, bool triggered=false)
 
SpellCastResult DoCastAOE (uint32 spellId, bool triggered=false)
 
SpellCastResult DoCastRandomTarget (uint32 spellId, uint32 threatTablePosition=0, float dist=0.0f, bool playerOnly=true, bool triggered=false, bool withTank=true)
 Cast the spell on a random unit from the threat list.
 
SpellCastResult DoCastMaxThreat (uint32 spellId, uint32 threatTablePosition=0, float dist=0.0f, bool playerOnly=true, bool triggered=false)
 Cast spell on the top threat target, which may not be the current victim.
 
float DoGetSpellMaxRange (uint32 spellId, bool positive=false)
 
void DoMeleeAttackIfReady ()
 
bool DoSpellAttackIfReady (uint32 spell)
 
void DoSpellAttackToRandomTargetIfReady (uint32 spell, uint32 threatTablePosition=0, float dist=0.f, bool playerOnly=true)
 
virtual void SummonMovementInform (Creature *, uint32, uint32)
 Called when a summon reaches a waypoint or point movement finished.
 
virtual void sGossipHello (Player *)
 
virtual void sGossipSelect (Player *, uint32, uint32)
 
virtual void sGossipSelectCode (Player *, uint32, uint32, char const *)
 
virtual void sQuestAccept (Player *, Quest const *)
 
virtual void sQuestSelect (Player *, Quest const *)
 
virtual void sQuestComplete (Player *, Quest const *)
 
virtual void sQuestReward (Player *, Quest const *, uint32)
 
virtual void sOnGameEvent (bool, uint16)
 
virtual std::string GetDebugInfo () const
 

Static Public Member Functions

static bool IsInBounds (CreatureBoundary const &boundary, Position const *who)
 
- Static Public Member Functions inherited from UnitAI
static void FillAISpellInfo ()
 

Protected Member Functions

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

Creature *const me
 
EventMap events
 
TaskScheduler scheduler
 
CreatureBoundary const * _boundary
 
bool _negateBoundary
 
- Protected Attributes inherited from UnitAI
Unit *const me
 

Private Attributes

bool m_MoveInLineOfSight_locked
 

Additional Inherited Members

- Static Public Attributes inherited from UnitAI
static AISpellInfoTypeAISpellInfo
 

Detailed Description

Member Enumeration Documentation

◆ EvadeReason

Enumerator
EVADE_REASON_NO_HOSTILES 
EVADE_REASON_BOUNDARY 
EVADE_REASON_SEQUENCE_BREAK 
EVADE_REASON_NO_PATH 
EVADE_REASON_OTHER 
89 {
90 EVADE_REASON_NO_HOSTILES, // the creature's threat list is empty
91 EVADE_REASON_BOUNDARY, // the creature has moved outside its evade boundary
92 EVADE_REASON_SEQUENCE_BREAK, // this is a boss and the pre-requisite encounters for engaging it are not defeated yet
93 EVADE_REASON_NO_PATH, // the creature was unable to reach its target for over 5 seconds
95 };
@ EVADE_REASON_OTHER
Definition CreatureAI.h:94
@ EVADE_REASON_BOUNDARY
Definition CreatureAI.h:91
@ EVADE_REASON_NO_HOSTILES
Definition CreatureAI.h:90
@ EVADE_REASON_SEQUENCE_BREAK
Definition CreatureAI.h:92
@ EVADE_REASON_NO_PATH
Definition CreatureAI.h:93

Constructor & Destructor Documentation

◆ CreatureAI()

CreatureAI::CreatureAI ( Creature creature)
inlineexplicit
102: UnitAI(creature), me(creature), _boundary(nullptr), _negateBoundary(false), m_MoveInLineOfSight_locked(false) { }
CreatureBoundary const * _boundary
Definition CreatureAI.h:242
bool _negateBoundary
Definition CreatureAI.h:243
bool m_MoveInLineOfSight_locked
Definition CreatureAI.h:246
Creature *const me
Definition CreatureAI.h:73
Definition UnitAI.h:198

◆ ~CreatureAI()

CreatureAI::~CreatureAI ( )
inlineoverride
104{}

Member Function Documentation

◆ _EnterEvadeMode()

bool CreatureAI::_EnterEvadeMode ( EvadeReason  why = EVADE_REASON_OTHER)
protected
311{
312 if (!me->IsAlive())
313 {
314 return false;
315 }
316
317 // don't remove vehicle auras, passengers aren't supposed to drop off the vehicle
318 // don't remove clone caster on evade (to be verified)
320
321 me->ClearComboPointHolders(); // Remove all combo points targeting this unit
322 // sometimes bosses stuck in combat?
324 me->CombatStop(true);
325 me->LoadCreaturesAddon(true);
326 me->SetLootRecipient(nullptr);
330
331 if (ZoneScript* zoneScript = me->GetZoneScript() ? me->GetZoneScript() : (ZoneScript*)me->GetInstanceScript())
332 zoneScript->OnCreatureEvade(me);
333
334 if (me->IsInEvadeMode())
335 {
336 return false;
337 }
338 else if (CreatureGroup* formation = me->GetFormation())
339 {
340 formation->MemberEvaded(me);
341 }
342
343 if (TempSummon* summon = me->ToTempSummon())
344 {
345 if (WorldObject* summoner = summon->GetSummoner())
346 {
347 if (summoner->ToCreature() && summoner->ToCreature()->IsAIEnabled)
348 {
349 summoner->ToCreature()->AI()->SummonedCreatureEvade(me);
350 }
351 else if (summoner->ToGameObject() && summoner->ToGameObject()->AI())
352 {
353 summoner->ToGameObject()->AI()->SummonedCreatureEvade(me);
354 }
355 }
356 }
357
358 return true;
359}
Definition CreatureGroups.h:90
bool LoadCreaturesAddon(bool reload=false)
Definition Creature.cpp:2718
void SetLootRecipient(Unit *unit, bool withGroup=true)
Definition Creature.cpp:1331
void SetCannotReachTarget(ObjectGuid const &target=ObjectGuid::Empty)
Definition Creature.cpp:3676
CreatureGroup const * GetFormation() const
Definition Creature.h:358
void ResetPlayerDamageReq()
Definition Creature.cpp:3843
void ClearLastLeashExtensionTimePtr()
Definition Creature.cpp:3719
bool IsInEvadeMode() const
Definition Creature.h:135
Definition TemporarySummon.h:40
void ClearAllThreat()
Definition ThreatMgr.cpp:417
void RemoveEvadeAuras()
Definition Unit.cpp:5502
void CombatStop(bool includingCast=false)
Definition Unit.cpp:10531
bool IsAlive() const
Definition Unit.h:1710
TempSummon * ToTempSummon()
Definition Unit.h:686
void ClearComboPointHolders()
Definition Unit.cpp:17002
ThreatMgr & GetThreatMgr()
Definition Unit.h:900
Definition Object.h:472
ZoneScript * GetZoneScript() const
Definition Object.h:627
Definition ZoneScript.h:26

References ThreatMgr::ClearAllThreat(), Unit::ClearComboPointHolders(), Creature::ClearLastLeashExtensionTimePtr(), Unit::CombatStop(), Creature::GetFormation(), WorldObject::GetInstanceScript(), Unit::GetThreatMgr(), WorldObject::GetZoneScript(), Unit::IsAlive(), Creature::IsInEvadeMode(), Creature::LoadCreaturesAddon(), me, Unit::RemoveEvadeAuras(), Creature::ResetPlayerDamageReq(), Creature::SetCannotReachTarget(), Creature::SetLootRecipient(), and Unit::ToTempSummon().

Referenced by boss_eadric::boss_eadricAI::DamageTaken(), boss_paletress::boss_paletressAI::DamageTaken(), boss_yoggsaron_brain::boss_yoggsaron_brainAI::DamageTaken(), boss_jindo::EnterEvadeMode(), npc_argent_captainAI::EnterEvadeMode(), boss_kologarn::boss_kologarnAI::EnterEvadeMode(), npc_ulduar_vx001::npc_ulduar_vx001AI::EnterEvadeMode(), npc_ulduar_aerial_command_unit::npc_ulduar_aerial_command_unitAI::EnterEvadeMode(), boss_yoggsaron_sara::boss_yoggsaron_saraAI::EnterEvadeMode(), npc_tournament_training_dummy::npc_tournament_training_dummyAI::EnterEvadeMode(), npc_training_dummy::npc_training_dummyAI::EnterEvadeMode(), npc_target_dummy::npc_target_dummyAI::EnterEvadeMode(), EnterEvadeMode(), SmartAI::EnterEvadeMode(), and boss_algalon_the_observer::boss_algalon_the_observerAI::UpdateAI().

◆ AttackedBy()

virtual void CreatureAI::AttackedBy ( Unit )
inlinevirtual

◆ BeforeSpellClick()

virtual bool CreatureAI::BeforeSpellClick ( Unit )
inlinevirtual

◆ CalculateThreat()

virtual void CreatureAI::CalculateThreat ( Unit ,
float &  ,
SpellInfo const *   
)
inlinevirtual

Reimplemented in boss_mandokir::boss_mandokirAI.

227{ }

◆ CanAlwaysBeDetectable()

virtual bool CreatureAI::CanAlwaysBeDetectable ( WorldObject const *  )
inlinevirtual

Reimplemented in boss_renataki::boss_renatakiAI.

212{ return false; }

◆ CanBeSeen()

◆ CanRespawn()

virtual bool CreatureAI::CanRespawn ( )
inlinevirtual

Reimplemented in BossAI, and SmartAI.

118{ return true; }

Referenced by Creature::Respawn().

◆ CanSeeAlways()

virtual bool CreatureAI::CanSeeAlways ( WorldObject const *  )
inlinevirtual

Reimplemented in boss_renataki::boss_renatakiAI.

209{ return false; }

◆ CheckInRoom()

bool CreatureAI::CheckInRoom ( )
virtual

Reimplemented in boss_priestess_delrissa, boss_sacrolash, boss_kalecgos, boss_hakkar::boss_hakkarAI, boss_onyxia, boss_bug_trio, and boss_viscidus.

533{
534 if (IsInBoundary())
535 return true;
536 else
537 {
539 return false;
540 }
541}
bool IsInBoundary(Position const *who=nullptr) const
Definition CreatureAI.cpp:512
virtual void EnterEvadeMode(EvadeReason why=EVADE_REASON_OTHER)
Definition CreatureAI.cpp:215

References EnterEvadeMode(), EVADE_REASON_BOUNDARY, and IsInBoundary().

Referenced by Creature::Update().

◆ CorpseRemoved()

virtual void CreatureAI::CorpseRemoved ( uint32 )
inlinevirtual

== Triggered Actions Requested ==================

== State checks =================================

Reimplemented in npc_captain_saeed::npc_captain_saeedAI, npc_simone::npc_simoneAI, npc_pallid_horror, and SmartAI.

197{}

Referenced by Creature::RemoveCorpse().

◆ DistancingEnded()

virtual void CreatureAI::DistancingEnded ( )
inlinevirtual

Reimplemented in SmartAI.

235{}

◆ DistancingStarted()

virtual void CreatureAI::DistancingStarted ( )
inlinevirtual
234{}

◆ DoSummon() [1/2]

Creature * CreatureAI::DoSummon ( uint32  entry,
Position const &  pos,
uint32  despawnTime = 30000,
TempSummonType  summonType = TEMPSUMMON_CORPSE_TIMED_DESPAWN 
)
protected
551{
552 return me->SummonCreature(entry, pos, summonType, despawnTime);
553}
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:2334

References me, and WorldObject::SummonCreature().

Referenced by npc_blood_queen_lana_thel::npc_blood_queen_lana_thelAI::MoveInLineOfSight(), npc_gothik_trigger::npc_gothik_triggerAI::SpellHit(), npc_lady_sylvanas_windrunner::npc_lady_sylvanas_windrunnerAI::UpdateAI(), npc_toc_warlock::npc_toc_warlockAI::UpdateAI(), npc_toc_hunter::npc_toc_hunterAI::UpdateAI(), npc_vh_teleportation_portal::npc_vh_teleportation_portalAI::UpdateAI(), npc_blessed_banner::npc_blessed_bannerAI::UpdateAI(), and boss_ichoron::boss_ichoronAI::UpdateAI().

◆ DoSummon() [2/2]

Creature * CreatureAI::DoSummon ( uint32  entry,
WorldObject obj,
float  radius = 5.0f,
uint32  despawnTime = 30000,
TempSummonType  summonType = TEMPSUMMON_CORPSE_TIMED_DESPAWN 
)
protected
556{
557 Position pos = obj->GetRandomNearPosition(radius);
558 return me->SummonCreature(entry, pos, summonType, despawnTime);
559}
Position GetRandomNearPosition(float radius)
Definition Object.cpp:2728
Definition Position.h:27

References WorldObject::GetRandomNearPosition(), me, and WorldObject::SummonCreature().

◆ DoSummonFlyer()

Creature * CreatureAI::DoSummonFlyer ( uint32  entry,
WorldObject obj,
float  flightZ,
float  radius = 5.0f,
uint32  despawnTime = 30000,
TempSummonType  summonType = TEMPSUMMON_CORPSE_TIMED_DESPAWN 
)
protected
562{
563 Position pos = obj->GetRandomNearPosition(radius);
564 pos.m_positionZ += flightZ;
565 return me->SummonCreature(entry, pos, summonType, despawnTime);
566}
float m_positionZ
Definition Position.h:57

References WorldObject::GetRandomNearPosition(), Position::m_positionZ, me, and WorldObject::SummonCreature().

Referenced by boss_flame_leviathan::boss_flame_leviathanAI::UpdateAI().

◆ DoZoneInCombat()

void CreatureAI::DoZoneInCombat ( Creature creature = nullptr,
float  maxRangeToNearestTarget = 250.0f 
)
114{
115 if (!creature)
116 {
117 creature = me;
118 }
119
120 if (creature->IsInEvadeMode())
121 {
122 return;
123 }
124
125 Map* map = creature->GetMap();
126 if (!map->IsDungeon()) //use IsDungeon instead of Instanceable, in case battlegrounds will be instantiated
127 {
128 LOG_ERROR("entities.unit.ai", "DoZoneInCombat call for map {} that isn't a dungeon (creature entry = {})", map->GetId(), creature->IsCreature() ? creature->ToCreature()->GetEntry() : 0);
129 return;
130 }
131
132 Map::PlayerList const& playerList = map->GetPlayers();
133 if (playerList.IsEmpty())
134 {
135 return;
136 }
137
138 for (Map::PlayerList::const_iterator itr = playerList.begin(); itr != playerList.end(); ++itr)
139 {
140 if (Player* player = itr->GetSource())
141 {
142 if (!IsValidCombatTarget(creature, player))
143 {
144 continue;
145 }
146
147 if (!creature->IsWithinDistInMap(player, maxRangeToNearestTarget))
148 {
149 continue;
150 }
151
152 creature->SetInCombatWith(player);
153 player->SetInCombatWith(creature);
154
155 if (creature->CanHaveThreatList())
156 {
157 creature->AddThreat(player, 0.0f);
158 }
159 }
160 }
161}
bool IsValidCombatTarget(Creature *source, Player *target)
Definition CreatureAI.cpp:83
#define LOG_ERROR(filterType__,...)
Definition Log.h:158
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
Definition Map.h:160
bool IsDungeon() const
Definition Map.h:292
uint32 GetId() const
Definition Map.h:226
PlayerList const & GetPlayers() const
Definition Map.h:323
uint32 GetEntry() const
Definition Object.h:116
bool IsCreature() const
Definition Object.h:205
Creature * ToCreature()
Definition Object.h:206
Definition Player.h:1072
void AddThreat(Unit *victim, float fThreat, SpellSchoolMask schoolMask=SPELL_SCHOOL_MASK_NORMAL, SpellInfo const *threatSpell=nullptr)
Definition Unit.cpp:14754
void SetInCombatWith(Unit *enemy, uint32 duration=0)
Definition Unit.cpp:13675
bool CanHaveThreatList(bool skipAliveCheck=false) const
Definition Unit.cpp:14715
Map * GetMap() const
Definition Object.h:621
bool IsWithinDistInMap(WorldObject const *obj, float dist2compare, bool is3D=true, bool useBoundingRadius=true) const
Definition Object.cpp:1326

References Unit::AddThreat(), MapRefMgr::begin(), Unit::CanHaveThreatList(), MapRefMgr::end(), Object::GetEntry(), Map::GetId(), WorldObject::GetMap(), Map::GetPlayers(), Object::IsCreature(), Map::IsDungeon(), LinkedListHead::IsEmpty(), Creature::IsInEvadeMode(), IsValidCombatTarget(), WorldObject::IsWithinDistInMap(), LOG_ERROR, me, Unit::SetInCombatWith(), and Object::ToCreature().

Referenced by BossAI::_JustEngagedWith(), boss_apothecary_hummel::boss_apothecary_hummelAI::DoAction(), npc_apothecary_genericAI::DoAction(), npc_coren_direbrew::DoAction(), npc_direbrew_antagonist::DoAction(), boss_cthun::DoAction(), boss_pathaleon_the_calculator::DoAction(), boss_tyrannus::boss_tyrannusAI::DoAction(), boss_bug_trio::DoFinalSpell(), SummonList::DoZoneInCombat(), StartMovementEvent::Execute(), npc_rookery_hatcher::npc_rookery_hatcherAI::InitializeAI(), boss_solakar_flamewreath::boss_solakar_flamewreathAI::InitializeAI(), boss_urok_doomhowl::boss_urok_doomhowlAI::InitializeAI(), npc_shade_of_jindo::IsSummonedBy(), npc_raging_flames::IsSummonedBy(), boss_sartharion_dragonAI::JustEngagedWith(), npc_malchezaar_axe::JustEngagedWith(), boss_tenris_mirkblood::JustEngagedWith(), boss_terestian_illhoof::JustEngagedWith(), boss_crone::JustEngagedWith(), boss_bigbadwolf::JustEngagedWith(), boss_darkmaster_gandling::boss_darkmaster_gandlingAI::JustEngagedWith(), npc_akilzon_eagle::JustEngagedWith(), boss_zuljin::JustEngagedWith(), boss_mandokir::boss_mandokirAI::JustEngagedWith(), boss_cthun::JustEngagedWith(), npc_claw_tentacle::JustEngagedWith(), npc_giant_claw_tentacle::JustEngagedWith(), npc_giant_eye_tentacle::JustEngagedWith(), npc_dirt_mound::JustEngagedWith(), boss_anubarak_trial::boss_anubarak_trialAI::JustEngagedWith(), npc_swarm_scarab::npc_swarm_scarabAI::JustEngagedWith(), boss_jaraxxus::boss_jaraxxusAI::JustEngagedWith(), boss_twin_valkyrAI::JustEngagedWith(), boss_bronjahm::boss_bronjahmAI::JustEngagedWith(), boss_devourer_of_souls::boss_devourer_of_soulsAI::JustEngagedWith(), boss_garfrost::boss_garfrostAI::JustEngagedWith(), boss_ick::boss_ickAI::JustEngagedWith(), npc_cult_fanatic::npc_cult_fanaticAI::JustEngagedWith(), npc_cult_adherent::npc_cult_adherentAI::JustEngagedWith(), npc_darnavan::npc_darnavanAI::JustEngagedWith(), boss_lord_marrowgar::JustEngagedWith(), npc_argent_captainAI::JustEngagedWith(), boss_malygos::boss_malygosAI::JustEngagedWith(), npc_nexus_lord::npc_nexus_lordAI::JustEngagedWith(), boss_ignis::boss_ignisAI::JustEngagedWith(), boss_mimiron::boss_mimironAI::JustEngagedWith(), boss_cyanigosa::boss_cyanigosaAI::JustEngagedWith(), boss_ichoron::boss_ichoronAI::JustEngagedWith(), boss_lavanthor::boss_lavanthorAI::JustEngagedWith(), boss_moragg::boss_moraggAI::JustEngagedWith(), boss_xevozz::boss_xevozzAI::JustEngagedWith(), boss_zuramat::boss_zuramatAI::JustEngagedWith(), boss_curator::JustEngagedWith(), boss_moroes::JustEngagedWith(), boss_netherspite::JustEngagedWith(), boss_jeklik::JustEngagedWith(), npc_anubisath_sentinel::aqsentinelAI::JustEngagedWith(), boss_prince_keleseth_icc::boss_prince_kelesethAI::JustEngagedWith(), boss_prince_taldaram_icc::boss_prince_taldaramAI::JustEngagedWith(), boss_prince_valanar_icc::boss_prince_valanarAI::JustEngagedWith(), boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI::JustEngagedWith(), boss_deathbringer_saurfang::boss_deathbringer_saurfangAI::JustEngagedWith(), boss_festergut::boss_festergutAI::JustEngagedWith(), boss_lady_deathwhisper::boss_lady_deathwhisperAI::JustEngagedWith(), boss_professor_putricide::boss_professor_putricideAI::JustEngagedWith(), boss_rotface::boss_rotfaceAI::JustEngagedWith(), boss_erekem::boss_erekemAI::JustEngagedWith(), npc_erekem_guard::npc_erekem_guardAI::JustEngagedWith(), boss_eregos::boss_eregosAI::JustSummoned(), BossAI::JustSummoned(), boss_rend_blackhand::boss_rend_blackhandAI::JustSummoned(), boss_ragnaros::boss_ragnarosAI::JustSummoned(), boss_attumen::JustSummoned(), boss_kormok::JustSummoned(), boss_onyxia::JustSummoned(), boss_black_knight::boss_black_knightAI::JustSummoned(), boss_deathbringer_saurfang::boss_deathbringer_saurfangAI::JustSummoned(), npc_ahune_bunny::JustSummoned(), boss_grand_champion::boss_grand_championAI::MovementInform(), boss_sister_svalna::boss_sister_svalnaAI::MovementInform(), npc_pos_martin_or_gorkun_second::npc_pos_martin_or_gorkun_secondAI::npc_pos_martin_or_gorkun_secondAI(), boss_nefarian::PathEndReached(), npc_zuljin_vortex::Reset(), npc_direbrew_minion::Reset(), npc_eye_tentacle::Reset(), npc_swarm_scarab::npc_swarm_scarabAI::Reset(), npc_nerubian_burrower::npc_nerubian_burrowerAI::Reset(), npc_fel_infernal::npc_fel_infernalAI::Reset(), npc_mistress_of_pain::npc_mistress_of_painAI::Reset(), npc_anubarak_spike::npc_anubarak_spikeAI::SelectNewTarget(), npc_blackhand_incarcerator::npc_blackhand_incarceratorAI::SetData(), npc_ulduar_leviathan_mkii::npc_ulduar_leviathan_mkiiAI::SetData(), npc_ulduar_aerial_command_unit::npc_ulduar_aerial_command_unitAI::SetData(), Creature::SetInCombatWithZone(), npc_ulduar_iron_construct::npc_ulduar_iron_constructAI::SpellHit(), npc_icc_valkyr_herald::npc_icc_valkyr_heraldAI::SpellHitTarget(), boss_lord_valthalak::boss_lord_valthalakAI::StartFighting(), boss_heigan::boss_heiganAI::StartFightPhase(), npc_coren_direbrew::SummonSister(), Creature::Update(), boss_pyroguard_emberseer::boss_pyroguard_emberseerAI::UpdateAI(), boss_ragnaros::boss_ragnarosAI::UpdateAI(), boss_kirtonos_the_herald::boss_kirtonos_the_heraldAI::UpdateAI(), npc_memory::npc_memoryAI::UpdateAI(), npc_cult_fanatic::npc_cult_fanaticAI::UpdateAI(), npc_cult_adherent::npc_cult_adherentAI::UpdateAI(), npc_raging_spirit::npc_raging_spiritAI::UpdateAI(), boss_razorscale::boss_razorscaleAI::UpdateAI(), npc_ahune_bunny::UpdateAI(), boss_ichoron::boss_ichoronAI::UpdateAI(), and InstanceScript::UpdateMinionState().

◆ EnterEvadeMode()

void CreatureAI::EnterEvadeMode ( EvadeReason  why = EVADE_REASON_OTHER)
virtual

Reimplemented in boss_hakkar::boss_hakkarAI, boss_jindo, boss_dorothee, boss_roar, boss_strawman, boss_tinhead, boss_crone, boss_bigbadwolf, boss_julianne, boss_romulo, CritterAI, npc_av_marshal_or_warmaster::npc_av_marshal_or_warmasterAI, boss_drekthar::boss_drektharAI, boss_vanndar::boss_vanndarAI, boss_gyth::boss_gythAI, boss_rend_blackhand::boss_rend_blackhandAI, boss_ragnaros::boss_ragnarosAI, boss_attumen, boss_nightbane, boss_tenris_mirkblood, boss_priestess_lackey_commonAI, boss_kiljaeden, boss_entropius, npc_bh_thalorien_dawnseeker::npc_bh_thalorien_dawnseekerAI, npc_amanishi_tempest, boss_arlokk::boss_arlokkAI, boss_jeklik, boss_archimonde, npc_black_morass_summoned_add, boss_ayamiss, boss_buru, boss_bug_trio, boss_skeram, boss_twinemperorsAI, npc_cork_gizelton::npc_cork_gizeltonAI, npc_clintar_spirit::npc_clintar_spiritAI, npc_twiggy_flathead::npc_twiggy_flatheadAI, boss_amanitar, npc_twilight_volunteer, boss_anub_arak::boss_anub_arakAI, boss_halion::boss_halionAI, boss_black_knight::boss_black_knightAI, boss_bronjahm::boss_bronjahmAI, boss_devourer_of_souls::boss_devourer_of_soulsAI, boss_falric::boss_falricAI, boss_marwyn::boss_marwynAI, npc_ghostly_priest::npc_ghostly_priestAI, npc_phantom_mage::npc_phantom_mageAI, npc_phantom_hallucination::npc_phantom_hallucinationAI, npc_shadowy_mercenary::npc_shadowy_mercenaryAI, npc_spectral_footman::npc_spectral_footmanAI, npc_tortured_rifleman::npc_tortured_riflemanAI, boss_frostsworn_general::boss_frostsworn_generalAI, npc_hor_spiritual_reflection::npc_hor_spiritual_reflectionAI, boss_garfrost::boss_garfrostAI, boss_prince_keleseth_icc::boss_prince_kelesethAI, boss_prince_taldaram_icc::boss_prince_taldaramAI, boss_prince_valanar_icc::boss_prince_valanarAI, boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, boss_festergut::boss_festergutAI, boss_professor_putricide::boss_professor_putricideAI, boss_rotface::boss_rotfaceAI, boss_sindragosa::boss_sindragosaAI, boss_the_lich_king::boss_the_lich_kingAI, npc_tirion_fordring_tft::npc_tirion_fordringAI, npc_argent_captainAI, boss_kelthuzad::boss_kelthuzadAI, boss_noth::boss_nothAI, boss_thaddius_summon::boss_thaddius_summonAI, boss_malygos::boss_malygosAI, npc_crystalline_frayer, boss_urom::boss_uromAI, boss_varos::boss_varosAI, boss_algalon_the_observer::boss_algalon_the_observerAI, boss_ignis::boss_ignisAI, boss_kologarn::boss_kologarnAI, boss_mimiron::boss_mimironAI, npc_ulduar_leviathan_mkii::npc_ulduar_leviathan_mkiiAI, npc_ulduar_vx001::npc_ulduar_vx001AI, npc_ulduar_aerial_command_unit::npc_ulduar_aerial_command_unitAI, boss_razorscale::boss_razorscaleAI, boss_thorim::boss_thorimAI, boss_yoggsaron_sara::boss_yoggsaron_saraAI, npc_ulduar_arachnopod_destroyer::npc_ulduar_arachnopod_destroyerAI, boss_ingvar_the_plunderer, boss_svala::boss_svalaAI, boss_ymiron::boss_ymironAI, boss_cyanigosa::boss_cyanigosaAI, boss_erekem::boss_erekemAI, boss_ichoron::boss_ichoronAI, boss_lavanthor::boss_lavanthorAI, boss_moragg::boss_moraggAI, boss_xevozz::boss_xevozzAI, boss_zuramat::boss_zuramatAI, npc_tournament_training_dummy::npc_tournament_training_dummyAI, npc_wild_wyrm::npc_wild_wyrmAI, npc_overlord_drakuru_betrayal::npc_overlord_drakuru_betrayalAI, boss_shirrak_the_dead_watcher, boss_blackheart_the_inciter, boss_murmur, boss_illidan_stormrage, boss_illidari_council, boss_illidari_council_memberAI, boss_shade_of_akama, boss_fathomguard_sharkkis, boss_fathomguard_tidalvess, boss_fathomguard_caribdis, boss_the_lurker_below, boss_harbinger_skyriss, boss_alar, boss_nethermancer_sepethrea, npc_captain_saeed::npc_captain_saeedAI, npc_training_dummy::npc_training_dummyAI, npc_target_dummy::npc_target_dummyAI, BossAI, SmartAI, npc_green_dragon_combat_trigger::npc_green_dragon_combat_triggerAI, GuardAI, PossessedAI, NullCreatureAI, PetAI, TotemAI, npc_burning_spirit::npc_burning_spiritAI, boss_doomrel::boss_doomrelAI, npc_chesspiece, boss_midnight, boss_kirtonos_the_herald::boss_kirtonos_the_heraldAI, npc_lord_gregor_lescovar::npc_lord_gregor_lescovarAI, npc_marzon_silent_blade::npc_marzon_silent_bladeAI, npc_varian_wrynn::npc_varian_wrynnAI, npc_thrall_bfu::npc_thrall_bfuAI, boss_zuljin, npc_brain_wash_totem, npc_hallows_end_soh, boss_ouro, npc_dirt_mound, npc_sergeant_bly::npc_sergeant_blyAI, npc_onyx_flamecaller::npc_onyx_flamecallerAI, boss_twilight_halion::boss_twilight_halionAI, boss_grand_champion::boss_grand_championAI, boss_anubarak_trial::boss_anubarak_trialAI, boss_faction_championsAI, npc_toc_pet_warlock::npc_toc_pet_warlockAI, npc_toc_pet_hunter::npc_toc_pet_hunterAI, boss_jaraxxus::boss_jaraxxusAI, npc_fel_infernal::npc_fel_infernalAI, npc_mistress_of_pain::npc_mistress_of_painAI, boss_gormok::boss_gormokAI, boss_jormungarAI, boss_icehowl::boss_icehowlAI, boss_twin_valkyrAI, boss_tyrannus::boss_tyrannusAI, npc_pos_freed_slave::npc_pos_freed_slaveAI, npc_high_overlord_saurfang_igb::npc_high_overlord_saurfang_igbAI, npc_muradin_bronzebeard_igb::npc_muradin_bronzebeard_igbAI, gunship_npc_AI, npc_gunship_boarding_addAI, npc_little_ooze::npc_little_oozeAI, npc_big_ooze::npc_big_oozeAI, npc_terenas_menethil::npc_terenas_menethilAI, npc_valithria_cloud::npc_valithria_cloudAI, npc_gothik_trigger::npc_gothik_triggerAI, npc_tesla::npc_teslaAI, npc_assembly_lightning::npc_assembly_lightningAI, boss_flame_leviathan_seat::boss_flame_leviathan_seatAI, npc_ulduar_hodir_priest::npc_ulduar_hodir_priestAI, npc_ulduar_hodir_druid::npc_ulduar_hodir_druidAI, npc_ulduar_hodir_shaman::npc_ulduar_hodir_shamanAI, npc_ulduar_hodir_mage::npc_ulduar_hodir_mageAI, boss_thorim_lightning_orb::boss_thorim_lightning_orbAI, violet_hold_trashAI, npc_future_you::npc_future_youAI, npc_mrfloppy::npc_mrfloppyAI, npc_frosthound::npc_frosthoundAI, npc_icefang::npc_icefangAI, npc_parasitic_shadowfiend, npc_akama_shade, boss_ahune, boss_nazan, boss_vazruden, npc_raging_flames, npc_pet_gen_argent_pony_bridle, npc_pet_gen_toxic_wasteling, npc_pet_hunter_snake_trap, npc_pet_mage_mirror_image, npc_escortAI, FollowerAI, npc_vengeful_shade::npc_vengeful_shadeAI, and boss_kologarn_arms::boss_kologarn_armsAI.

216{
217 if (!_EnterEvadeMode(why))
218 return;
219
220 LOG_DEBUG("entities.unit", "Creature {} enters evade mode.", me->GetEntry());
221
222 if (!me->GetVehicle()) // otherwise me will be in evade mode forever
223 {
224 if (Unit* owner = me->GetCharmerOrOwner())
225 {
226 me->GetMotionMaster()->Clear(false);
228 }
229 else
230 {
231 // Required to prevent attacking creatures that are evading and cause them to reenter combat
232 // Does not apply to MoveFollow
235 }
236 }
237
238 Reset();
239 if (me->IsVehicle()) // use the same sequence of addtoworld, aireset may remove all summons!
240 {
241 me->GetVehicleKit()->Reset(true);
242 }
243
244 sScriptMgr->OnUnitEnterEvadeMode(me, why);
245
246 // despawn bosses at reset - only verified tbc/woltk bosses with this reset type
247 CreatureTemplate const* cInfo = sObjectMgr->GetCreatureTemplate(me->GetEntry());
249 {
251 }
252}
@ CREATURE_FLAG_EXTRA_HARD_RESET
Definition CreatureData.h:76
#define LOG_DEBUG(filterType__,...)
Definition Log.h:170
@ MOTION_SLOT_ACTIVE
Definition MotionMaster.h:64
#define sObjectMgr
Definition ObjectMgr.h:1650
#define PET_FOLLOW_DIST
Definition PetDefines.h:205
#define sScriptMgr
Definition ScriptMgr.h:728
@ UNIT_STATE_EVADE
Definition UnitDefines.h:191
bool _EnterEvadeMode(EvadeReason why=EVADE_REASON_OTHER)
Definition CreatureAI.cpp:310
void DespawnOnEvade(Seconds respawnDelay=20s)
Definition Creature.cpp:2188
void MoveTargetedHome(bool walk=false)
The unit will return this initial position (owner for pets and summoned creatures)....
Definition MotionMaster.cpp:259
void MoveFollow(Unit *target, float dist, float angle, MovementSlot slot=MOTION_SLOT_ACTIVE, bool inheritWalkState=true, bool inheritSpeed=true)
The unit will follow this target. Doesn't work with UNIT_FLAG_DISABLE_MOVE.
Definition MotionMaster.cpp:444
void Clear(bool reset=true)
Definition MotionMaster.h:167
virtual void Reset()
Definition UnitAI.h:211
Definition Unit.h:620
bool IsVehicle() const
Definition Unit.h:752
Vehicle * GetVehicle() const
Definition Unit.h:1842
MotionMaster * GetMotionMaster()
Definition Unit.h:1676
void AddUnitState(uint32 f)
Definition Unit.h:690
Unit * GetCharmerOrOwner() const
Definition Unit.h:1215
virtual float GetFollowAngle() const
Definition Unit.h:1812
Vehicle * GetVehicleKit() const
Definition Unit.h:1841
void Reset(bool evading=false)
Definition Vehicle.cpp:120
Definition CreatureData.h:186
bool HasFlagsExtra(uint32 flag) const
Definition CreatureData.h:283

References _EnterEvadeMode(), Unit::AddUnitState(), MotionMaster::Clear(), CREATURE_FLAG_EXTRA_HARD_RESET, Creature::DespawnOnEvade(), Unit::GetCharmerOrOwner(), Object::GetEntry(), Unit::GetFollowAngle(), Unit::GetMotionMaster(), Unit::GetVehicle(), Unit::GetVehicleKit(), CreatureTemplate::HasFlagsExtra(), Unit::IsVehicle(), LOG_DEBUG, me, MOTION_SLOT_ACTIVE, MotionMaster::MoveFollow(), MotionMaster::MoveTargetedHome(), PET_FOLLOW_DIST, UnitAI::Reset(), Vehicle::Reset(), sObjectMgr, sScriptMgr, and UNIT_STATE_EVADE.

Referenced by BossAI::_EnterEvadeMode(), CheckInRoom(), npc_battle_at_valhalas::npc_battle_at_valhalasAI::CheckSummons(), npc_simone::npc_simoneAI::CorpseRemoved(), npc_akama_shade::DamageTaken(), boss_mal_ganis::boss_mal_ganisAI::DamageTaken(), npc_eris_hevenfire::npc_eris_hevenfireAI::DoAction(), npc_high_overlord_saurfang_icc::npc_high_overlord_saurfangAI::DoAction(), npc_muradin_bronzebeard_icc::npc_muradin_bronzebeard_iccAI::DoAction(), boss_kelthuzad_minion::boss_kelthuzad_minionAI::DoAction(), npc_akama_illidan::DoAction(), boss_dorothee::EnterEvadeMode(), boss_roar::EnterEvadeMode(), boss_strawman::EnterEvadeMode(), boss_tinhead::EnterEvadeMode(), boss_crone::EnterEvadeMode(), boss_bigbadwolf::EnterEvadeMode(), boss_julianne::EnterEvadeMode(), boss_romulo::EnterEvadeMode(), CritterAI::EnterEvadeMode(), npc_av_marshal_or_warmaster::npc_av_marshal_or_warmasterAI::EnterEvadeMode(), boss_drekthar::boss_drektharAI::EnterEvadeMode(), boss_vanndar::boss_vanndarAI::EnterEvadeMode(), boss_priestess_lackey_commonAI::EnterEvadeMode(), boss_kiljaeden::EnterEvadeMode(), npc_bh_thalorien_dawnseeker::npc_bh_thalorien_dawnseekerAI::EnterEvadeMode(), npc_amanishi_tempest::EnterEvadeMode(), boss_skeram::EnterEvadeMode(), npc_twiggy_flathead::npc_twiggy_flatheadAI::EnterEvadeMode(), npc_twilight_volunteer::EnterEvadeMode(), boss_black_knight::boss_black_knightAI::EnterEvadeMode(), boss_bronjahm::boss_bronjahmAI::EnterEvadeMode(), boss_devourer_of_souls::boss_devourer_of_soulsAI::EnterEvadeMode(), boss_falric::boss_falricAI::EnterEvadeMode(), boss_marwyn::boss_marwynAI::EnterEvadeMode(), npc_ghostly_priest::npc_ghostly_priestAI::EnterEvadeMode(), npc_phantom_mage::npc_phantom_mageAI::EnterEvadeMode(), npc_phantom_hallucination::npc_phantom_hallucinationAI::EnterEvadeMode(), npc_shadowy_mercenary::npc_shadowy_mercenaryAI::EnterEvadeMode(), npc_spectral_footman::npc_spectral_footmanAI::EnterEvadeMode(), npc_tortured_rifleman::npc_tortured_riflemanAI::EnterEvadeMode(), boss_frostsworn_general::boss_frostsworn_generalAI::EnterEvadeMode(), npc_hor_spiritual_reflection::npc_hor_spiritual_reflectionAI::EnterEvadeMode(), boss_garfrost::boss_garfrostAI::EnterEvadeMode(), boss_prince_keleseth_icc::boss_prince_kelesethAI::EnterEvadeMode(), boss_prince_taldaram_icc::boss_prince_taldaramAI::EnterEvadeMode(), boss_festergut::boss_festergutAI::EnterEvadeMode(), boss_rotface::boss_rotfaceAI::EnterEvadeMode(), npc_tirion_fordring_tft::npc_tirion_fordringAI::EnterEvadeMode(), boss_kelthuzad::boss_kelthuzadAI::EnterEvadeMode(), boss_noth::boss_nothAI::EnterEvadeMode(), boss_thaddius_summon::boss_thaddius_summonAI::EnterEvadeMode(), boss_malygos::boss_malygosAI::EnterEvadeMode(), npc_crystalline_frayer::EnterEvadeMode(), boss_urom::boss_uromAI::EnterEvadeMode(), boss_varos::boss_varosAI::EnterEvadeMode(), boss_algalon_the_observer::boss_algalon_the_observerAI::EnterEvadeMode(), boss_ignis::boss_ignisAI::EnterEvadeMode(), boss_mimiron::boss_mimironAI::EnterEvadeMode(), npc_ulduar_leviathan_mkii::npc_ulduar_leviathan_mkiiAI::EnterEvadeMode(), boss_razorscale::boss_razorscaleAI::EnterEvadeMode(), boss_thorim::boss_thorimAI::EnterEvadeMode(), npc_ulduar_arachnopod_destroyer::npc_ulduar_arachnopod_destroyerAI::EnterEvadeMode(), boss_ingvar_the_plunderer::EnterEvadeMode(), boss_svala::boss_svalaAI::EnterEvadeMode(), boss_ymiron::boss_ymironAI::EnterEvadeMode(), boss_cyanigosa::boss_cyanigosaAI::EnterEvadeMode(), boss_erekem::boss_erekemAI::EnterEvadeMode(), boss_ichoron::boss_ichoronAI::EnterEvadeMode(), boss_lavanthor::boss_lavanthorAI::EnterEvadeMode(), boss_moragg::boss_moraggAI::EnterEvadeMode(), boss_xevozz::boss_xevozzAI::EnterEvadeMode(), boss_zuramat::boss_zuramatAI::EnterEvadeMode(), npc_wild_wyrm::npc_wild_wyrmAI::EnterEvadeMode(), npc_overlord_drakuru_betrayal::npc_overlord_drakuru_betrayalAI::EnterEvadeMode(), boss_shirrak_the_dead_watcher::EnterEvadeMode(), boss_blackheart_the_inciter::EnterEvadeMode(), boss_illidari_council_memberAI::EnterEvadeMode(), boss_fathomguard_sharkkis::EnterEvadeMode(), boss_fathomguard_tidalvess::EnterEvadeMode(), boss_fathomguard_caribdis::EnterEvadeMode(), boss_nethermancer_sepethrea::EnterEvadeMode(), npc_green_dragon_combat_trigger::npc_green_dragon_combat_triggerAI::EnterEvadeMode(), NPCStaveQuestAI::EvadeOnFeignDeath(), spell_illidari_council_empyreal_balance::HandleAfterCast(), ScriptedAI::IsInRoom(), npc_dragonflayer_forge_master::JustEngagedWith(), FrostwingGauntletRespawner::operator()(), Creature::SelectVictim(), npc_warden_mellichar::npc_warden_mellicharAI::SetData(), npc_aged_dying_ancient_kodo::npc_aged_dying_ancient_kodoAI::SpellHit(), npc_nether_drake::npc_nether_drakeAI::SpellHit(), npc_kiljaeden_controller::SummonedCreatureDies(), Unit::TauntFadeOut(), npc_av_marshal_or_warmaster::npc_av_marshal_or_warmasterAI::UpdateAI(), boss_drekthar::boss_drektharAI::UpdateAI(), boss_galvangar::boss_galvangarAI::UpdateAI(), boss_vanndar::boss_vanndarAI::UpdateAI(), npc_death_knight_initiate::npc_death_knight_initiateAI::UpdateAI(), npc_eris_hevenfire::npc_eris_hevenfireAI::UpdateAI(), npc_anachronos_the_ancient::npc_anachronos_the_ancientAI::UpdateAI(), npc_anachronos_quest_trigger::npc_anachronos_quest_triggerAI::UpdateAI(), npc_taskmaster_fizzule::npc_taskmaster_fizzuleAI::UpdateAI(), npc_plucky::npc_pluckyAI::UpdateAI(), boss_ick::boss_ickAI::UpdateAI(), npc_icc_gauntlet_controller::npc_icc_gauntlet_controllerAI::UpdateAI(), npc_icc_putricades_trap::npc_icc_putricades_trapAI::UpdateAI(), boss_volkhan::boss_volkhanAI::UpdateAI(), boss_algalon_the_observer::boss_algalon_the_observerAI::UpdateAI(), boss_flame_leviathan::boss_flame_leviathanAI::UpdateAI(), boss_hodir::boss_hodirAI::UpdateAI(), boss_xt002::boss_xt002AI::UpdateAI(), boss_palehoof::boss_palehoofAI::UpdateAI(), boss_skadi::boss_skadiAI::UpdateAI(), npc_sinkhole_kill_credit::npc_sinkhole_kill_creditAI::UpdateAI(), npc_battle_at_valhalas::npc_battle_at_valhalasAI::UpdateAI(), npc_warden_mellichar::npc_warden_mellicharAI::UpdateAI(), npc_magister_aledis::UpdateAI(), npc_lord_illidan_stormrage::npc_lord_illidan_stormrageAI::UpdateAI(), npc_unkor_the_ruthless::npc_unkor_the_ruthlessAI::UpdateAI(), npc_artorius::npc_artoriusAI::UpdateAI(), npc_simone::npc_simoneAI::UpdateAI(), npc_nelson::npc_nelsonAI::UpdateAI(), npc_franklin::npc_franklinAI::UpdateAI(), npc_chicken_cluck::npc_chicken_cluckAI::UpdateAI(), PassiveAI::UpdateAI(), InstanceScript::UpdateMinionState(), and UpdateVictim().

◆ GetBoundary()

CreatureBoundary const * CreatureAI::GetBoundary ( ) const
inline
221{ return _boundary; }

References _boundary.

◆ GetSummoner()

WorldObject * CreatureAI::GetSummoner ( ) const

Returns the summoner creature/object, if the creature is a temporary summon.

76{
77 if (TempSummon* summon = me->ToTempSummon())
78 return summon->GetSummoner();
79
80 return nullptr;
81}

References me, and Unit::ToTempSummon().

Referenced by npc_zuljin_vortex::ChangeToNewPlayer(), npc_janalai_hatcher::MovementInform(), npc_frost_tomb::npc_frost_tomb(), and npc_zuljin_vortex::Reset().

◆ IsEscorted()

virtual bool CreatureAI::IsEscorted ( )
inlinevirtual

Reimplemented in npc_escortAI, and SmartAI.

155{ return false; }

◆ IsInBoundary()

bool CreatureAI::IsInBoundary ( Position const *  who = nullptr) const
513{
514 if (!_boundary)
515 return true;
516
517 if (!who)
518 who = me;
519
521}
static bool IsInBounds(CreatureBoundary const &boundary, Position const *who)
Definition CreatureAI.cpp:523

References _boundary, _negateBoundary, IsInBounds(), and me.

Referenced by CheckInRoom(), boss_prince_valanar_icc::boss_prince_valanarAI::CheckRoom(), BossAI::TeleportCheaters(), and VisualizeBoundary().

◆ IsInBounds()

bool CreatureAI::IsInBounds ( CreatureBoundary const &  boundary,
Position const *  who 
)
static
524{
525 for (AreaBoundary const* areaBoundary : boundary)
526 if (!areaBoundary->IsWithinBoundary(pos))
527 return false;
528
529 return true;
530}
Definition AreaBoundary.h:24

Referenced by IsInBoundary().

◆ IsSummonedBy()

virtual void CreatureAI::IsSummonedBy ( WorldObject )
inlinevirtual

Reimplemented in boss_gyth::boss_gythAI, boss_lord_valthalak::boss_lord_valthalakAI, boss_rend_blackhand::boss_rend_blackhandAI, npc_corrupted_totem, boss_kormok, boss_jarien, boss_sothos, boss_gahzranka, npc_shade_of_jindo, npc_direbrew_minion, npc_hyjal_jaina::hyjalJainaAI, boss_aeonus, npc_clintar_spirit::npc_clintar_spiritAI, npc_taldaram_flamesphere, npc_onyx_flamecaller::npc_onyx_flamecallerAI, npc_living_inferno::npc_living_infernoAI, npc_kinetic_bomb::npc_kinetic_bombAI, npc_coldflame::npc_coldflameAI, npc_putricide_oozeAI, npc_big_ooze::npc_big_oozeAI, npc_raging_spirit::npc_raging_spiritAI, npc_lk_spirit_bomb::npc_lk_spirit_bombAI, npc_suppresser::npc_suppresserAI, npc_ulduar_saronite_vapors::npc_ulduar_saronite_vaporsAI, npc_anzu_spirit, npc_parasitic_shadowfiend, npc_blade_of_azzinoth, npc_flame_of_azzinoth, npc_supremus_punch_invisible_stalker, npc_raging_flames, npc_crashin_thrashin_robot, TriggerAI, SmartAI, npc_burning_spirit::npc_burning_spiritAI, npc_vaelastrasz_the_red::npc_vaelastrasz_the_redAI, npc_drakonid_spawner, boss_attumen, npc_demon_chain, npc_risen_guardian::npc_risen_guardianAI, npc_demonic_vapor, npc_tiger_matriarch::npc_tiger_matriarchAI, npc_bone_spike::npc_bone_spikeAI, npc_little_ooze::npc_little_oozeAI, npc_strangulate_vehicle::npc_strangulate_vehicleAI, boss_maexxna_webwrap::boss_maexxna_webwrapAI, npc_oculus_drake::npc_oculus_drakeAI, boss_kologarn_eyebeam::boss_kologarn_eyebeamAI, npc_wintergarde_gryphon, npc_spiritual_insight::npc_spiritual_insightAI, npc_infra_green_bomber_generic::npc_infra_green_bomber_genericAI, npc_frostbrood_skytalon::npc_frostbrood_skytalonAI, npc_maiev_illidan, npc_inner_demon, npc_invisible_tractor_beam_source, npc_oscillating_frequency_scanner_master_bunny::npc_oscillating_frequency_scanner_master_bunnyAI, npc_infernal_attacker::npc_infernal_attackerAI, npc_korkron_or_wildhammer, npc_kservant::npc_kservantAI, npc_pet_dk_ghoul, npc_pet_dk_army_of_the_dead, npc_pet_gen_fetch_ball, npc_spirit_shade::npc_spirit_shadeAI, npc_venomhide_hatchling::npc_venomhide_hatchlingAI, and npc_arcanite_dragonling.

136{}

Referenced by TempSummon::InitSummon().

◆ JustDied()

virtual void CreatureAI::JustDied ( Unit )
inlinevirtual

Reimplemented in NPCStaveQuestAI, PossessedAI, ScriptedAI, BossAI, WorldBossAI, npc_escortAI, FollowerAI, boss_balinda, boss_ambassador_flamelash::boss_ambassador_flamelashAI, boss_emperor_dagran_thaurissan::boss_draganthaurissanAI, boss_gyth::boss_gythAI, boss_halycon::boss_halyconAI, boss_highlord_omokk::boss_highlordomokkAI, boss_mor_grayhoof, boss_overlord_wyrmthalak::boss_overlordwyrmthalakAI, boss_pyroguard_emberseer::boss_pyroguard_emberseerAI, boss_quartermaster_zigris, boss_rend_blackhand::boss_rend_blackhandAI, boss_solakar_flamewreath::boss_solakar_flamewreathAI, boss_broodlord::boss_broodlordAI, boss_victor_nefarius::boss_victor_nefariusAI, boss_nefarian, npc_corrupted_totem, boss_razorgore::boss_razorgoreAI, boss_majordomo::boss_majordomoAI, boss_ragnaros::boss_ragnarosAI, npc_flamewaker_priest::npc_flamewaker_priestAI, npc_chesspiece, boss_attumen, boss_malchezaar, boss_servant_quarters, boss_shade_of_aran, npc_kilrek, npc_demon_chain, boss_terestian_illhoof, boss_dorothee, boss_roar, boss_strawman, boss_tinhead, boss_crone, boss_bigbadwolf, boss_julianne, boss_romulo, boss_priestess_delrissa, boss_priestess_lackey_commonAI, boss_vexallus, npc_highlord_darion_mograine::npc_highlord_darion_mograineAI, boss_darkmaster_gandling::boss_darkmaster_gandlingAI, boss_kirtonos_the_herald::boss_kirtonos_the_heraldAI, boss_kormok, boss_apothecary_hummel::boss_apothecary_hummelAI, npc_apothecary_frye, npc_apothecary_baxter, boss_baroness_anastari::boss_baroness_anastariAI, boss_sacrolash, boss_alythess, boss_kalec, boss_sathrovarr, npc_kiljaeden_controller, boss_kiljaeden, boss_entropius, npc_balance_of_light_and_shadow::npc_balance_of_light_and_shadowAI, npc_deathstalker_fearleia, npc_ravenclaw_apparition::npc_ravenclaw_apparitionAI, boss_akilzon, boss_zuljin, npc_zulaman_hostage::npc_zulaman_hostageAI, boss_arlokk::boss_arlokkAI, npc_zulian_prowler::npc_zulian_prowlerAI, boss_hakkar::boss_hakkarAI, boss_mandokir::boss_mandokirAI, npc_ohgan::npc_ohganAI, npc_chained_spirit, npc_vilebranch_speaker, boss_thekal, npc_zealot_lorkhan, npc_zealot_zath, npc_coren_direbrew, npc_hallows_end_soh, boss_headless_horseman, boss_azuregos::boss_azuregosAI, npc_hyjal_jaina::hyjalJainaAI, npc_hyjal_thrall::hyjalThrallAI, npc_hyjal_tyrande::hyjalTyrandeAI, boss_epoch::boss_epochAI, boss_infinite_corruptor::boss_infinite_corruptorAI, boss_mal_ganis::boss_mal_ganisAI, boss_meathook::boss_meathookAI, boss_salramm::boss_salrammAI, npc_arthas::npc_arthasAI, boss_captain_skarloc, boss_lieutenant_drake, boss_aeonus, boss_chrono_lord_deja, boss_temporus, npc_medivh_bm, boss_isalien, npc_belnistrasz::npc_belnistraszAI, boss_moam, npc_anubisath_guardian, boss_rajaxx, npc_obsidian_destroyer, boss_eye_of_cthun, npc_eye_tentacle, npc_claw_tentacle, npc_giant_claw_tentacle, npc_giant_eye_tentacle, boss_sartura, boss_skeram, npc_anubisath_sentinel::aqsentinelAI, npc_anubisath_defender, npc_ahnqiraji_critter, npc_muglash::npc_muglashAI, npc_clintar_spirit::npc_clintar_spiritAI, npc_omen::npc_omenAI, npc_qiraj_war_spawn::npc_qiraj_war_spawnAI, npc_ame::npc_ameAI, boss_amanitar, boss_elder_nadox, boss_volazj, boss_jedoga_shadowseeker, npc_taldaram_flamesphere, boss_taldaram, boss_sartharion::boss_sartharionAI, boss_sartharion_dragonAI, npc_living_inferno::npc_living_infernoAI, npc_memory::npc_memoryAI, npc_argent_soldier::npc_argent_soldierAI, boss_black_knight::boss_black_knightAI, npc_toc5_grand_champion_minion::npc_toc5_grand_champion_minionAI, boss_anubarak_trial::boss_anubarak_trialAI, npc_swarm_scarab::npc_swarm_scarabAI, npc_nerubian_burrower::npc_nerubian_burrowerAI, boss_faction_championsAI, boss_jaraxxus::boss_jaraxxusAI, npc_fel_infernal::npc_fel_infernalAI, npc_mistress_of_pain::npc_mistress_of_painAI, npc_snobold_vassal::npc_snobold_vassalAI, boss_gormok::boss_gormokAI, boss_jormungarAI, boss_icehowl::boss_icehowlAI, boss_twin_valkyrAI, boss_bronjahm::boss_bronjahmAI, boss_devourer_of_souls::boss_devourer_of_soulsAI, boss_falric::boss_falricAI, boss_marwyn::boss_marwynAI, npc_ghostly_priest::npc_ghostly_priestAI, npc_phantom_mage::npc_phantom_mageAI, npc_phantom_hallucination::npc_phantom_hallucinationAI, npc_shadowy_mercenary::npc_shadowy_mercenaryAI, npc_spectral_footman::npc_spectral_footmanAI, npc_tortured_rifleman::npc_tortured_riflemanAI, boss_frostsworn_general::boss_frostsworn_generalAI, npc_hor_spiritual_reflection::npc_hor_spiritual_reflectionAI, npc_hor_raging_ghoul::npc_hor_raging_ghoulAI, npc_hor_risen_witch_doctor::npc_hor_risen_witch_doctorAI, npc_hor_lumbering_abomination::npc_hor_lumbering_abominationAI, boss_garfrost::boss_garfrostAI, boss_ick::boss_ickAI, boss_tyrannus::boss_tyrannusAI, boss_drakkari_elemental::boss_drakkari_elementalAI, boss_prince_keleseth_icc::boss_prince_kelesethAI, boss_prince_taldaram_icc::boss_prince_taldaramAI, boss_prince_valanar_icc::boss_prince_valanarAI, npc_dark_nucleus::npc_dark_nucleusAI, boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, boss_festergut::boss_festergutAI, npc_stinky_icc::npc_stinky_iccAI, npc_gunship::npc_gunshipAI, gunship_npc_AI, boss_lord_marrowgar, npc_bone_spike::npc_bone_spikeAI, boss_professor_putricide::boss_professor_putricideAI, boss_rotface::boss_rotfaceAI, npc_little_ooze::npc_little_oozeAI, npc_big_ooze::npc_big_oozeAI, npc_precious_icc::npc_precious_iccAI, boss_sindragosa::boss_sindragosaAI, npc_ice_tomb::npc_ice_tombAI, npc_spinestalker::npc_spinestalkerAI, npc_rimefang::npc_rimefangAI, boss_the_lich_king::boss_the_lich_kingAI, npc_raging_spirit::npc_raging_spiritAI, npc_spirit_warden::npc_spirit_wardenAI, npc_lk_wicked_spirit::npc_lk_wicked_spiritAI, npc_gluttonous_abomination::npc_gluttonous_abominationAI, npc_rotting_frost_giant::npc_rotting_frost_giantAI, boss_sister_svalna::boss_sister_svalnaAI, npc_argent_captainAI, npc_icc_gauntlet_controller::npc_icc_gauntlet_controllerAI, npc_isle_of_conquest_turret::npc_isle_of_conquest_turretAI, npc_boss_gothik_minion::npc_boss_gothik_minionAI, boss_kelthuzad_minion::boss_kelthuzad_minionAI, boss_maexxna_webwrap::boss_maexxna_webwrapAI, boss_thaddius_summon::boss_thaddius_summonAI, npc_mr_bigglesworth, boss_malygos::boss_malygosAI, npc_nexus_lord::npc_nexus_lordAI, npc_eoe_wyrmrest_skytalon::npc_eoe_wyrmrest_skytalonAI, boss_drakos::boss_drakosAI, boss_eregos::boss_eregosAI, boss_urom::boss_uromAI, boss_varos::boss_varosAI, boss_bjarngrim::boss_bjarngrimAI, boss_ionar::boss_ionarAI, boss_loken::boss_lokenAI, boss_volkhan::boss_volkhanAI, boss_krystallus::boss_krystallusAI, boss_maiden_of_grief::boss_maiden_of_griefAI, boss_sjonnir::boss_sjonnirAI, boss_sjonnir_iron_sludge::boss_sjonnir_iron_sludgeAI, brann_bronzebeard::brann_bronzebeardAI, boss_steelbreaker::boss_steelbreakerAI, boss_runemaster_molgeim::boss_runemaster_molgeimAI, boss_stormcaller_brundir::boss_stormcaller_brundirAI, boss_auriaya::boss_auriayaAI, npc_auriaya_feral_defender::npc_auriaya_feral_defenderAI, boss_flame_leviathan::boss_flame_leviathanAI, boss_freya_iron_root::boss_freya_iron_rootAI, boss_freya_summons::boss_freya_summonsAI, boss_vezax::boss_vezaxAI, npc_ulduar_saronite_vapors::npc_ulduar_saronite_vaporsAI, npc_ulduar_saronite_animus::npc_ulduar_saronite_animusAI, npc_ulduar_hodir_priest::npc_ulduar_hodir_priestAI, npc_ulduar_hodir_druid::npc_ulduar_hodir_druidAI, npc_ulduar_hodir_shaman::npc_ulduar_hodir_shamanAI, npc_ulduar_hodir_mage::npc_ulduar_hodir_mageAI, npc_ulduar_iron_construct::npc_ulduar_iron_constructAI, boss_ignis::boss_ignisAI, boss_kologarn::boss_kologarnAI, boss_kologarn_arms::boss_kologarn_armsAI, boss_razorscale::boss_razorscaleAI, boss_thorim_start_npcs::boss_thorim_start_npcsAI, boss_thorim_runic_colossus::boss_thorim_runic_colossusAI, boss_thorim_ancient_rune_giant::boss_thorim_ancient_rune_giantAI, boss_xt002::boss_xt002AI, npc_xt002_heart::npc_xt002_heartAI, npc_xt002_boombot::npc_xt002_boombotAI, boss_yoggsaron_guardian_of_ys::boss_yoggsaron_guardian_of_ysAI, boss_yoggsaron::boss_yoggsaronAI, boss_yoggsaron_constrictor_tentacle::boss_yoggsaron_constrictor_tentacleAI, boss_yoggsaron_influence_tentacle::boss_yoggsaron_influence_tentacleAI, npc_ulduar_storm_tempered_keeper::npc_ulduar_storm_tempered_keeperAI, boss_ingvar_the_plunderer, boss_keleseth, boss_skarvald_the_constructor, boss_dalronn_the_controller, npc_dragonflayer_forge_master, boss_palehoof::boss_palehoofAI, npc_massive_jormungar::npc_massive_jormungarAI, npc_ferocious_rhino::npc_ferocious_rhinoAI, npc_ravenous_furbolg::npc_ravenous_furbolgAI, npc_frenzied_worgen::npc_frenzied_worgenAI, boss_skadi::boss_skadiAI, boss_svala::boss_svalaAI, boss_ymiron::boss_ymironAI, boss_archavon::boss_archavonAI, boss_emalon::boss_emalonAI, boss_koralon::boss_koralonAI, boss_toravon::boss_toravonAI, boss_cyanigosa::boss_cyanigosaAI, boss_erekem::boss_erekemAI, boss_ichoron::boss_ichoronAI, npc_ichor_globule::npc_ichor_globuleAI, boss_lavanthor::boss_lavanthorAI, boss_moragg::boss_moraggAI, boss_xevozz::boss_xevozzAI, boss_zuramat::boss_zuramatAI, npc_vh_void_sentry::npc_vh_void_sentryAI, npc_vh_teleportation_portal::npc_vh_teleportation_portalAI, violet_hold_trashAI, npc_mootoo_the_younger::npc_mootoo_the_youngerAI, npc_bonker_togglevolt::npc_bonker_togglevoltAI, npc_thassarian2::npc_thassarian2AI, npc_counselor_talbot::npc_counselor_talbotAI, npc_mindless_ghoul::npc_mindless_ghoulAI, npc_wintergarde_gryphon, npc_q24545_wretched_ghoul::npc_q24545_wretched_ghoulAI, npc_q24545_vegard::npc_q24545_vegardAI, npc_your_inner_turmoil::npc_your_inner_turmoilAI, npc_apothecary_hanes::npc_Apothecary_HanesAI, npc_blessed_banner::npc_blessed_bannerAI, npc_engineer_helice::npc_engineer_heliceAI, npc_frosthound::npc_frosthoundAI, npc_icefang::npc_icefangAI, boss_exarch_maladaar, npc_stolen_soul, boss_nexusprince_shaffar, boss_tavarok, boss_darkweaver_syth, boss_talon_king_ikiss, boss_ambassador_hellmaw, boss_blackheart_the_inciter, boss_grandmaster_vorpil, boss_illidari_council_memberAI, boss_essence_of_anger::boss_essence_of_angerAI, boss_doomlord_kazzak::boss_doomlordkazzakAI, boss_doomwalker, boss_fathomguard_sharkkis, boss_fathomguard_tidalvess, boss_fathomguard_caribdis, npc_inner_demon, boss_ahune, npc_frozen_core, npc_ahune_bunny, boss_mennu_the_betrayer, boss_hydromancer_thespia, boss_mekgineer_steamrigger, boss_warlord_kalithresh, boss_swamplord_muselek, boss_gruul, boss_high_king_maulgar, boss_olm_the_summoner, boss_kiggler_the_crazed, boss_blindeye_the_seer, boss_krosh_firehand, boss_kelidan_the_breaker, boss_the_maker, boss_omor_the_unscarred, boss_vazruden, boss_watchkeeper_gargolmar, boss_grand_warlock_nethekurse, npc_millhouse_manastorm::npc_millhouse_manastormAI, npc_warden_mellichar::npc_warden_mellicharAI, boss_dalliah_the_doomsayer, boss_harbinger_skyriss, boss_wrath_scryer_soccothrates, boss_zereketh_the_unbound, boss_commander_sarannis, boss_high_botanist_freywinn, boss_thorngrin_the_tender, boss_warp_splinter, advisor_baseAI, boss_gatewatcher_gyrokill, boss_gatewatcher_iron_hand, boss_mechano_lord_capacitus, boss_nethermancer_sepethrea, boss_pathaleon_the_calculator, npc_maghar_captive::npc_maghar_captiveAI, npc_kurenai_captive::npc_kurenai_captiveAI, npc_captain_saeed::npc_captain_saeedAI, npc_bessy::npc_bessyAI, npc_maxx_a_million_escort::npc_maxx_a_million_escortAI, npc_infernal_attacker::npc_infernal_attackerAI, npc_enslaved_netherwing_drake, npc_illidari_spawn::npc_illidari_spawnAI, npc_enraged_spirit::npc_enraged_spiritAI, npc_korkron_or_wildhammer, npc_isla_starmane::npc_isla_starmaneAI, npc_pet_dk_ghoul, boss_taerar::boss_taerarAI, npc_necropolis_health, npc_necrotic_shard, npc_cultist_engineer, npc_flameshocker, npc_pallid_horror, CombatAI, GuardAI, SmartAI, boss_lord_valthalak::boss_lord_valthalakAI, boss_curator, boss_maiden_of_virtue, boss_moroes, boss_netherspite, boss_felblood_kaelthas, boss_selin_fireheart, boss_jarien, boss_sothos, boss_brutallus, boss_felmyst, boss_halazzi, boss_janalai, boss_nalorakk, npc_amanishi_tempest, boss_jeklik, boss_marli, boss_venoxis, boss_anetheron, boss_azgalor, boss_kazrogal, boss_rage_winterchill, boss_epoch_hunter, npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, boss_ayamiss, boss_buru, npc_buru_egg, boss_kurinnaxx, npc_general_andorov, boss_bug_trio, boss_cthun, boss_twinemperorsAI, npc_webbed_creature::npc_webbed_creatureAI, npc_cork_gizelton::npc_cork_gizeltonAI, boss_anub_arak::boss_anub_arakAI, boss_hadronox::boss_hadronoxAI, boss_krik_thir::boss_krik_thirAI, boss_sartharion_tenebron::boss_sartharion_tenebronAI, boss_baltharus_the_warborn::boss_baltharus_the_warbornAI, boss_general_zarithrian::boss_general_zarithrianAI, boss_halion::boss_halionAI, boss_twilight_halion::boss_twilight_halionAI, boss_saviana_ragefire::boss_saviana_ragefireAI, boss_novos::boss_novosAI, boss_tharon_ja::boss_tharon_jaAI, boss_trollgore::boss_trollgoreAI, boss_eck::boss_eckAI, boss_gal_darah::boss_gal_darahAI, boss_moorabi::boss_moorabiAI, boss_slad_ran::boss_slad_ranAI, boss_lady_deathwhisper::boss_lady_deathwhisperAI, npc_darnavan::npc_darnavanAI, npc_four_car_garage::npc_four_car_garageAI, boss_anubrekhan::boss_anubrekhanAI, boss_faerlina::boss_faerlinaAI, boss_four_horsemen::boss_four_horsemenAI, boss_gluth::boss_gluthAI, boss_gothik::boss_gothikAI, boss_grobbulus::boss_grobbulusAI, boss_heigan::boss_heiganAI, boss_kelthuzad::boss_kelthuzadAI, boss_loatheb::boss_loathebAI, boss_maexxna::boss_maexxnaAI, boss_noth::boss_nothAI, boss_patchwerk::boss_patchwerkAI, boss_razuvious::boss_razuviousAI, boss_sapphiron::boss_sapphironAI, boss_thaddius::boss_thaddiusAI, npc_scion_of_eternity::npc_scion_of_eternityAI, boss_anomalus, boss_commander_stoutbeard, boss_keristrasza, boss_magus_telestra, boss_ormorok, boss_flame_leviathan_defense_turret::boss_flame_leviathan_defense_turretAI, boss_freya_elder_stonebark::boss_freya_elder_stonebarkAI, boss_freya_elder_brightleaf::boss_freya_elder_brightleafAI, boss_freya_elder_ironbranch::boss_freya_elder_ironbranchAI, npc_xt002_scrapbot::npc_xt002_scrapbotAI, npc_frost_tomb, npc_nerubar_victim::npc_nerubar_victimAI, boss_pandemonius, boss_gurtogg_bloodboil, boss_illidan_stormrage, boss_mother_shahraz, boss_reliquary_of_souls::boss_reliquary_of_soulsAI, boss_shade_of_akama, boss_teron_gorefiend, boss_najentus, boss_fathomlord_karathress, boss_hydross_the_unstable, boss_lady_vashj, boss_morogrim_tidewalker, boss_magtheridon, boss_porung, boss_warbringer_omrogg, boss_warchief_kargath_bladefist, boss_alar, boss_high_astromancer_solarian, boss_kaelthas, boss_void_reaver, npc_torloth_the_magnificent::npc_torloth_the_magnificentAI, and npc_simone::npc_simoneAI.

129{}

Referenced by boss_sindragosa::boss_sindragosaAI::SummonedCreatureDespawn(), and spell_igb_check_for_players::TriggerWipe().

◆ JustEngagedWith()

virtual void CreatureAI::JustEngagedWith ( Unit )
inlinevirtual

Called for reaction when initially engaged.

Reimplemented in boss_sartharion_dragonAI, CasterAI, CritterAI, ScriptedAI, BossAI, WorldBossAI, boss_balinda, boss_drekthar::boss_drektharAI, boss_galvangar::boss_galvangarAI, boss_vanndar::boss_vanndarAI, boss_ambassador_flamelash::boss_ambassador_flamelashAI, boss_anubshiah::boss_anubshiahAI, boss_emperor_dagran_thaurissan::boss_draganthaurissanAI, boss_eviscerator::boss_evisceratorAI, boss_general_angerforge::boss_general_angerforgeAI, boss_gorosh_the_dervish::boss_gorosh_the_dervishAI, boss_grizzle::boss_grizzleAI, boss_hedrum::boss_hedrumAI, boss_high_interrogator_gerstahn::boss_high_interrogator_gerstahnAI, boss_magmus::boss_magmusAI, boss_moira_bronzebeardAI, boss_high_priestess_thaurissanAI, boss_okthor::boss_okthorAI, boss_doomrel::boss_doomrelAI, boss_drakkisath::boss_drakkisathAI, boss_gyth::boss_gythAI, boss_halycon::boss_halyconAI, boss_highlord_omokk::boss_highlordomokkAI, boss_mor_grayhoof, boss_overlord_wyrmthalak::boss_overlordwyrmthalakAI, boss_pyroguard_emberseer::boss_pyroguard_emberseerAI, npc_blackhand_incarcerator::npc_blackhand_incarceratorAI, boss_rend_blackhand::boss_rend_blackhandAI, npc_rookery_hatcher::npc_rookery_hatcherAI, boss_solakar_flamewreath::boss_solakar_flamewreathAI, boss_the_beast::boss_thebeastAI, boss_urok_doomhowl::boss_urok_doomhowlAI, boss_warmaster_voone::boss_warmastervooneAI, boss_nefarian, boss_razorgore::boss_razorgoreAI, boss_baron_geddon::boss_baron_geddonAI, boss_garr::boss_garrAI, boss_gehennas::boss_gehennasAI, boss_lucifron::boss_lucifronAI, boss_magmadar::boss_magmadarAI, boss_majordomo::boss_majordomoAI, boss_ragnaros::boss_ragnarosAI, boss_shazzrah::boss_shazzrahAI, boss_sulfuron::boss_sulfuronAI, npc_flamewaker_priest::npc_flamewaker_priestAI, npc_lava_spawn, boss_mr_smite::boss_mr_smiteAI, boss_malchezaar, npc_netherspite_infernal, npc_malchezaar_axe, boss_servant_quarters, boss_shade_of_aran, boss_tenris_mirkblood, npc_kilrek, npc_demon_chain, boss_terestian_illhoof, boss_dorothee, npc_tito, boss_roar, boss_strawman, boss_tinhead, boss_crone, npc_cyclone, boss_bigbadwolf, boss_julianne, boss_romulo, npc_barnes::npc_barnesAI, npc_image_of_medivh::npc_image_of_medivhAI, boss_priestess_delrissa, boss_vexallus, npc_unworthy_initiate::npc_unworthy_initiateAI, npc_scarlet_courier::npc_scarlet_courierAI, npc_highlord_darion_mograine::npc_highlord_darion_mograineAI, boss_darkmaster_gandling::boss_darkmaster_gandlingAI, boss_kirtonos_the_herald::boss_kirtonos_the_heraldAI, boss_kormok, npc_scholomance_occultist::npc_scholomance_occultistAI, boss_baroness_anastari::boss_baroness_anastariAI, boss_jarien, boss_sothos, boss_kalec, boss_sathrovarr, boss_kiljaeden, boss_entropius, npc_sunblade_scout, npc_sunblade_arch_mage, npc_professor_phizzlethorpe::npc_professor_phizzlethorpeAI, boss_twilight_corrupter, npc_sentinel_leader, npc_sentinel_infiltrator, npc_greengill_slave::npc_greengill_slaveAI, npc_deathstalker_fearleia, npc_lady_sylvanas_windrunner::npc_lady_sylvanas_windrunnerAI, npc_highborne_lamenter::npc_highborne_lamenterAI, npc_the_scourge_cauldron::npc_the_scourge_cauldronAI, npc_tapoke_slim_jahn::npc_tapoke_slim_jahnAI, boss_akilzon, npc_akilzon_eagle, npc_janalai_hatcher, boss_zuljin, npc_forest_frog, npc_zulaman_hostage::npc_zulaman_hostageAI, npc_harrison_jones, npc_amanishi_tempest, npc_amanishi_scout, boss_arlokk::boss_arlokkAI, npc_zulian_prowler::npc_zulian_prowlerAI, boss_gahzranka, boss_grilek::boss_grilekAI, boss_hakkar::boss_hakkarAI, boss_hazzarah, npc_healing_ward, npc_shade_of_jindo, boss_mandokir::boss_mandokirAI, npc_vilebranch_speaker, npc_spawn_of_marli, boss_renataki::boss_renatakiAI, boss_thekal, npc_zealot_lorkhan, npc_zealot_zath, boss_venoxis, boss_wushoolay::boss_wushoolayAI, npc_dark_iron_attack_generator, npc_dark_iron_attack_mole_machine, npc_dark_iron_guzzler, npc_brewfest_super_brew_trigger, npc_coren_direbrew_sisters, npc_hallows_end_soh, boss_headless_horseman, boss_azuregos::boss_azuregosAI, npc_ancient_wisp, boss_archimonde, npc_hyjal_jaina::hyjalJainaAI, npc_hyjal_thrall::hyjalThrallAI, npc_hyjal_tyrande::hyjalTyrandeAI, npc_hyjal_ground_trash, npc_hyjal_gargoyle, npc_hyjal_frost_wyrm, boss_epoch::boss_epochAI, boss_infinite_corruptor::boss_infinite_corruptorAI, boss_mal_ganis::boss_mal_ganisAI, boss_meathook::boss_meathookAI, boss_salramm::boss_salrammAI, npc_arthas::npc_arthasAI, boss_captain_skarloc, boss_epoch_hunter, boss_lieutenant_drake, npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, boss_aeonus, boss_chrono_lord_deja, boss_temporus, boss_isalien, npc_onyxian_lair_guard, npc_anubisath_guardian, boss_rajaxx, npc_general_andorov, npc_obsidian_destroyer, boss_cthun, npc_eye_tentacle, npc_claw_tentacle, npc_giant_claw_tentacle, npc_giant_eye_tentacle, npc_dirt_mound, npc_sartura_royal_guard, boss_skeram, npc_anubisath_defender, npc_obsidian_eradicator, npc_anubisath_warder, npc_obsidian_nullifier, npc_ahnqiraji_critter, npc_muglash::npc_muglashAI, npc_rizzle_sprysprocket::npc_rizzle_sprysprocketAI, npc_depth_charge::npc_depth_chargeAI, npc_draenei_survivor::npc_draenei_survivorAI, npc_injured_draenei::npc_injured_draeneiAI, npc_webbed_creature::npc_webbed_creatureAI, npc_murkdeep::npc_murkdeepAI, npc_tiger_matriarch::npc_tiger_matriarchAI, npc_omen::npc_omenAI, npc_shenthul::npc_shenthulAI, npc_thrall_warchief::npc_thrall_warchiefAI, npc_qiraj_war_spawn::npc_qiraj_war_spawnAI, npc_custodian_of_time::npc_custodian_of_timeAI, npc_taskmaster_fizzule::npc_taskmaster_fizzuleAI, npc_twiggy_flathead::npc_twiggy_flatheadAI, boss_amanitar, boss_elder_nadox, boss_volazj, boss_jedoga_shadowseeker, boss_taldaram, boss_anub_arak::boss_anub_arakAI, boss_hadronox::boss_hadronoxAI, npc_anub_ar_crusher::npc_anub_ar_crusherAI, npc_baltharus_the_warborn_clone::npc_baltharus_the_warborn_cloneAI, npc_onyx_flamecaller::npc_onyx_flamecallerAI, boss_twilight_halion::boss_twilight_halionAI, boss_eadric::boss_eadricAI, boss_paletress::boss_paletressAI, npc_argent_soldier::npc_argent_soldierAI, npc_black_knight_ghoul::npc_black_knight_ghoulAI, npc_toc5_grand_champion_minion::npc_toc5_grand_champion_minionAI, boss_grand_champion::boss_grand_championAI, boss_anubarak_trial::boss_anubarak_trialAI, npc_swarm_scarab::npc_swarm_scarabAI, boss_faction_championsAI, boss_jaraxxus::boss_jaraxxusAI, npc_snobold_vassal::npc_snobold_vassalAI, boss_gormok::boss_gormokAI, boss_jormungarAI, boss_icehowl::boss_icehowlAI, boss_twin_valkyrAI, boss_bronjahm::boss_bronjahmAI, boss_devourer_of_souls::boss_devourer_of_soulsAI, boss_falric::boss_falricAI, boss_marwyn::boss_marwynAI, npc_ghostly_priest::npc_ghostly_priestAI, npc_phantom_mage::npc_phantom_mageAI, npc_shadowy_mercenary::npc_shadowy_mercenaryAI, npc_spectral_footman::npc_spectral_footmanAI, npc_tortured_rifleman::npc_tortured_riflemanAI, boss_frostsworn_general::boss_frostsworn_generalAI, npc_hor_spiritual_reflection::npc_hor_spiritual_reflectionAI, npc_hor_risen_witch_doctor::npc_hor_risen_witch_doctorAI, npc_hor_lumbering_abomination::npc_hor_lumbering_abominationAI, boss_garfrost::boss_garfrostAI, boss_ick::boss_ickAI, npc_pos_deathwhisper_necrolyte::npc_pos_deathwhisper_necrolyteAI, boss_drakkari_elemental::boss_drakkari_elementalAI, npc_stinky_icc::npc_stinky_iccAI, npc_high_overlord_saurfang_igb::npc_high_overlord_saurfang_igbAI, npc_muradin_bronzebeard_igb::npc_muradin_bronzebeard_igbAI, npc_gunship_boarding_leader::npc_gunship_boarding_leaderAI, npc_cult_fanatic::npc_cult_fanaticAI, npc_cult_adherent::npc_cult_adherentAI, npc_darnavan::npc_darnavanAI, boss_lord_marrowgar, npc_precious_icc::npc_precious_iccAI, npc_rimefang::npc_rimefangAI, npc_risen_archmage::npc_risen_archmageAI, boss_sister_svalna::boss_sister_svalnaAI, npc_argent_captainAI, npc_frostwing_vrykul::npc_frostwing_vrykulAI, npc_icc_skybreaker_hierophant::npc_icc_skybreaker_hierophantAI, npc_icc_skybreaker_marksman::npc_icc_skybreaker_marksmanAI, npc_icc_skybreaker_vicar::npc_icc_skybreaker_vicarAI, npc_icc_skybreaker_luminary::npc_icc_skybreaker_luminaryAI, npc_icc_valkyr_herald::npc_icc_valkyr_heraldAI, npc_icc_spire_frostwyrm, npc_icc_nerubar_broodkeeper::npc_icc_nerubar_broodkeeperAI, boss_isle_of_conquest::boss_isle_of_conquestAI, npc_boss_gothik_minion::npc_boss_gothik_minionAI, npc_gothik_trigger::npc_gothik_triggerAI, boss_kelthuzad_minion::boss_kelthuzad_minionAI, npc_tesla::npc_teslaAI, boss_malygos::boss_malygosAI, npc_nexus_lord::npc_nexus_lordAI, npc_crystalline_frayer, boss_drakos::boss_drakosAI, boss_eregos::boss_eregosAI, boss_urom::boss_uromAI, boss_varos::boss_varosAI, npc_centrifuge_construct::npc_centrifuge_constructAI, boss_bjarngrim::boss_bjarngrimAI, npc_stormforged_lieutenant::npc_stormforged_lieutenantAI, boss_ionar::boss_ionarAI, boss_loken::boss_lokenAI, boss_volkhan::boss_volkhanAI, npc_hol_monument::npc_hol_monumentAI, boss_krystallus::boss_krystallusAI, boss_maiden_of_grief::boss_maiden_of_griefAI, boss_sjonnir::boss_sjonnirAI, boss_sjonnir_iron_sludge::boss_sjonnir_iron_sludgeAI, boss_sjonnir_malformed_ooze::boss_sjonnir_malformed_oozeAI, dark_rune_protectors::dark_rune_protectorsAI, dark_rune_stormcaller::dark_rune_stormcallerAI, iron_golem_custodian::iron_golem_custodianAI, boss_algalon_the_observer::boss_algalon_the_observerAI, boss_auriaya::boss_auriayaAI, npc_auriaya_sanctum_sentry::npc_auriaya_sanctum_sentryAI, boss_flame_leviathan::boss_flame_leviathanAI, boss_freya::boss_freyaAI, boss_freya_elder_stonebark::boss_freya_elder_stonebarkAI, boss_freya_elder_brightleaf::boss_freya_elder_brightleafAI, boss_freya_elder_ironbranch::boss_freya_elder_ironbranchAI, boss_freya_summons::boss_freya_summonsAI, boss_vezax::boss_vezaxAI, boss_hodir::boss_hodirAI, boss_ignis::boss_ignisAI, boss_kologarn::boss_kologarnAI, boss_mimiron::boss_mimironAI, boss_razorscale::boss_razorscaleAI, boss_thorim::boss_thorimAI, boss_thorim_sif_blizzard::boss_thorim_sif_blizzardAI, boss_thorim_start_npcs::boss_thorim_start_npcsAI, boss_thorim_gauntlet_npcs::boss_thorim_gauntlet_npcsAI, boss_thorim_runic_colossus::boss_thorim_runic_colossusAI, boss_thorim_ancient_rune_giant::boss_thorim_ancient_rune_giantAI, boss_thorim_arena_npcs::boss_thorim_arena_npcsAI, boss_xt002::boss_xt002AI, boss_yoggsaron_keeper, npc_ulduar_storm_tempered_keeper::npc_ulduar_storm_tempered_keeperAI, boss_ingvar_the_plunderer, boss_keleseth, npc_dragonflayer_forge_master, boss_palehoof::boss_palehoofAI, npc_massive_jormungar::npc_massive_jormungarAI, npc_ferocious_rhino::npc_ferocious_rhinoAI, npc_ravenous_furbolg::npc_ravenous_furbolgAI, npc_frenzied_worgen::npc_frenzied_worgenAI, boss_skadi::boss_skadiAI, boss_skadi_grauf::boss_skadi_graufAI, boss_svala::boss_svalaAI, boss_ymiron::boss_ymironAI, boss_archavon::boss_archavonAI, boss_emalon::boss_emalonAI, boss_koralon::boss_koralonAI, boss_toravon::boss_toravonAI, npc_frozen_orb::npc_frozen_orbAI, boss_cyanigosa::boss_cyanigosaAI, boss_ichoron::boss_ichoronAI, boss_lavanthor::boss_lavanthorAI, boss_moragg::boss_moraggAI, boss_xevozz::boss_xevozzAI, boss_zuramat::boss_zuramatAI, npc_imprisoned_beryl_sorcerer::npc_imprisoned_beryl_sorcererAI, npc_warmage_coldarra::npc_warmage_coldarraAI, npc_counselor_talbot::npc_counselor_talbotAI, npc_mageguard_dalaran::npc_mageguard_dalaranAI, npc_dalaran_mage::npc_dalaran_mageAI, npc_dalaran_warrior::npc_dalaran_warriorAI, npc_emily::npc_emilyAI, npc_wounded_skirmisher, npc_blessed_banner::npc_blessed_bannerAI, npc_frosthound::npc_frosthoundAI, npc_time_lost_proto_drake::npc_time_lost_proto_drakeAI, npc_icefang::npc_icefangAI, npc_overlord_drakuru_betrayal::npc_overlord_drakuru_betrayalAI, boss_exarch_maladaar, boss_shirrak_the_dead_watcher, boss_nexusprince_shaffar, npc_yor, boss_tavarok, boss_anzu, boss_darkweaver_syth, boss_talon_king_ikiss, boss_ambassador_hellmaw, boss_blackheart_the_inciter, boss_grandmaster_vorpil, npc_akama_illidan, npc_maiev_illidan, npc_flame_of_azzinoth, boss_illidari_council_memberAI, boss_essence_of_suffering::boss_essence_of_sufferingAI, boss_essence_of_desire::boss_essence_of_desireAI, boss_essence_of_anger::boss_essence_of_angerAI, npc_akama_shade, boss_doomlord_kazzak::boss_doomlordkazzakAI, boss_doomwalker, boss_mennu_the_betrayer, boss_quagmirran, boss_rokmar_the_crackler, boss_hydromancer_thespia, boss_mekgineer_steamrigger, boss_warlord_kalithresh, boss_ghazan, boss_hungarfen, boss_swamplord_muselek, boss_the_black_stalker, npc_underbat, boss_gruul, boss_high_king_maulgar, boss_olm_the_summoner, boss_kiggler_the_crazed, boss_blindeye_the_seer, boss_krosh_firehand, boss_broggok, boss_kelidan_the_breaker, boss_the_maker, boss_omor_the_unscarred, boss_nazan, boss_vazruden, boss_watchkeeper_gargolmar, npc_millhouse_manastorm::npc_millhouse_manastormAI, npc_warden_mellichar::npc_warden_mellicharAI, boss_dalliah_the_doomsayer, boss_harbinger_skyriss, boss_wrath_scryer_soccothrates, boss_zereketh_the_unbound, boss_commander_sarannis, boss_high_botanist_freywinn, boss_thorngrin_the_tender, boss_warp_splinter, advisor_baseAI, boss_gatewatcher_gyrokill, boss_gatewatcher_iron_hand, boss_mechano_lord_capacitus, boss_nethermancer_sepethrea, boss_pathaleon_the_calculator, npc_nether_drake::npc_nether_drakeAI, npc_daranelle::npc_daranelleAI, npc_wounded_blood_elf::npc_wounded_blood_elfAI, npc_maghar_captive::npc_maghar_captiveAI, npc_creditmarker_visit_with_ancestors::npc_creditmarker_visit_with_ancestorsAI, npc_kurenai_captive::npc_kurenai_captiveAI, npc_commander_dawnforge::npc_commander_dawnforgeAI, npc_dragonmaw_peon::npc_dragonmaw_peonAI, npc_torloth_the_magnificent::npc_torloth_the_magnificentAI, npc_lord_illidan_stormrage::npc_lord_illidan_stormrageAI, npc_illidari_spawn::npc_illidari_spawnAI, npc_enraged_spirit::npc_enraged_spiritAI, npc_unkor_the_ruthless::npc_unkor_the_ruthlessAI, npc_isla_starmane::npc_isla_starmaneAI, npc_pet_shaman_earth_elemental, npc_pet_shaman_fire_elemental, npc_precious::npc_preciousAI, npc_chicken_cluck::npc_chicken_cluckAI, npc_dancing_flames::npc_dancing_flamesAI, npc_doctor::npc_doctorAI, npc_injured_patient::npc_injured_patientAI, npc_garments_of_quests::npc_garments_of_questsAI, npc_guardian::npc_guardianAI, npc_steam_tonk::npc_steam_tonkAI, npc_spring_rabbit::npc_spring_rabbitAI, npc_arcanite_dragonling, boss_ayamiss, npc_buru_egg, SmartAI, boss_sartharion::boss_sartharionAI, boss_thaddius_summon::boss_thaddius_summonAI, boss_the_lich_king::boss_the_lich_kingAI, npc_green_dragon_combat_trigger::npc_green_dragon_combat_triggerAI, CombatAI, boss_lord_valthalak::boss_lord_valthalakAI, boss_quartermaster_zigris, boss_broodlord::boss_broodlordAI, boss_chromaggus::boss_chromaggusAI, boss_ebonroc::boss_ebonrocAI, boss_firemaw::boss_firemawAI, boss_flamegor::boss_flamegorAI, boss_vaelastrasz::boss_vaelAI, boss_curator, boss_maiden_of_virtue, boss_midnight, boss_moroes, boss_netherspite, boss_nightbane, boss_felblood_kaelthas, boss_priestess_lackey_commonAI, boss_kagani_nightstrike, boss_ellris_duskhallow, boss_eramas_brightblaze, boss_yazzai, boss_warlord_salaris, boss_garaxxas, boss_apoko, boss_zelfan, boss_selin_fireheart, boss_brutallus, boss_sacrolash, boss_alythess, boss_felmyst, boss_kalecgos, boss_muru, npc_rinji::npc_rinjiAI, npc_deathstalker_erland::npc_deathstalker_erlandAI, npc_lord_gregor_lescovar::npc_lord_gregor_lescovarAI, npc_marzon_silent_blade::npc_marzon_silent_bladeAI, boss_halazzi, boss_hexlord_malacrass, boss_alyson_antille, boss_janalai, boss_nalorakk, boss_jeklik, npc_batrider, boss_jindo, npc_ohgan::npc_ohganAI, boss_marli, npc_direbrew_antagonist, boss_anetheron, boss_azgalor, boss_kazrogal, boss_rage_winterchill, boss_onyxia, npc_belnistrasz::npc_belnistraszAI, boss_buru, boss_kurinnaxx, boss_moam, boss_ossirian, npc_hivezara_stinger, boss_kri, boss_vem, boss_yauj, boss_eye_of_cthun, boss_fankriss, boss_huhuran, boss_ouro, boss_sartura, boss_twinemperorsAI, boss_veknilash, boss_veklor, boss_viscidus, npc_anubisath_sentinel::aqsentinelAI, npc_vekniss_stinger, npc_magwin::npc_magwinAI, npc_prospector_remtravel::npc_prospector_remtravelAI, npc_aquementas::npc_aquementasAI, npc_gilthares::npc_giltharesAI, boss_krik_thir::boss_krik_thirAI, boss_baltharus_the_warborn::boss_baltharus_the_warbornAI, boss_general_zarithrian::boss_general_zarithrianAI, boss_halion::boss_halionAI, boss_saviana_ragefire::boss_saviana_ragefireAI, boss_dred::boss_dredAI, boss_novos::boss_novosAI, boss_tharon_ja::boss_tharon_jaAI, boss_trollgore::boss_trollgoreAI, boss_drakkari_colossus::boss_drakkari_colossusAI, boss_eck::boss_eckAI, boss_gal_darah::boss_gal_darahAI, boss_moorabi::boss_moorabiAI, boss_slad_ran::boss_slad_ranAI, boss_prince_keleseth_icc::boss_prince_kelesethAI, boss_prince_taldaram_icc::boss_prince_taldaramAI, boss_prince_valanar_icc::boss_prince_valanarAI, boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, boss_festergut::boss_festergutAI, boss_lady_deathwhisper::boss_lady_deathwhisperAI, boss_professor_putricide::boss_professor_putricideAI, boss_rotface::boss_rotfaceAI, boss_sindragosa::boss_sindragosaAI, npc_sindragosa_trash::npc_sindragosa_trashAI, boss_anubrekhan::boss_anubrekhanAI, boss_faerlina::boss_faerlinaAI, boss_four_horsemen::boss_four_horsemenAI, boss_gluth::boss_gluthAI, boss_gothik::boss_gothikAI, boss_grobbulus::boss_grobbulusAI, boss_heigan::boss_heiganAI, boss_kelthuzad::boss_kelthuzadAI, boss_loatheb::boss_loathebAI, boss_maexxna::boss_maexxnaAI, boss_noth::boss_nothAI, boss_patchwerk::boss_patchwerkAI, boss_razuvious::boss_razuviousAI, boss_razuvious_minion::boss_razuvious_minionAI, boss_sapphiron::boss_sapphironAI, boss_thaddius::boss_thaddiusAI, boss_anomalus, boss_commander_stoutbeard, boss_keristrasza, boss_magus_telestra, boss_ormorok, boss_steelbreaker::boss_steelbreakerAI, boss_runemaster_molgeim::boss_runemaster_molgeimAI, boss_stormcaller_brundir::boss_stormcaller_brundirAI, boss_skarvald_the_constructor, boss_dalronn_the_controller, boss_erekem::boss_erekemAI, npc_erekem_guard::npc_erekem_guardAI, violet_hold_trashAI, npc_beryl_sorcerer::npc_beryl_sorcererAI, npc_torturer_lecraft::npc_torturer_lecraftAI, npc_mrfloppy::npc_mrfloppyAI, boss_pandemonius, boss_murmur, boss_gurtogg_bloodboil, boss_illidan_stormrage, boss_gathios_the_shatterer, boss_high_nethermancer_zerevor, boss_lady_malande, boss_veras_darkshadow, boss_mother_shahraz, boss_reliquary_of_souls::boss_reliquary_of_soulsAI, boss_supremus, boss_teron_gorefiend, boss_najentus, boss_fathomlord_karathress, boss_fathomguard_sharkkis, boss_fathomguard_tidalvess, boss_fathomguard_caribdis, boss_hydross_the_unstable, boss_lady_vashj, boss_the_lurker_below, boss_morogrim_tidewalker, boss_ahune, boss_magtheridon, boss_grand_warlock_nethekurse, boss_porung, boss_warbringer_omrogg, boss_warchief_kargath_bladefist, boss_alar, boss_high_astromancer_solarian, boss_void_reaver, npc_captain_saeed::npc_captain_saeedAI, boss_ysondre::boss_ysondreAI, boss_lethon::boss_lethonAI, boss_emeriss::boss_emerissAI, boss_taerar::boss_taerarAI, npc_artorius::npc_artoriusAI, npc_simone::npc_simoneAI, npc_nelson::npc_nelsonAI, and npc_franklin::npc_franklinAI.

126{}

Referenced by npc_batrider::JustEngagedWith(), and boss_taerar::boss_taerarAI::JustEngagedWith().

◆ JustReachedHome()

virtual void CreatureAI::JustReachedHome ( )
inlinevirtual

Reimplemented in BossAI, SmartAI, boss_victor_nefarius::boss_victor_nefariusAI, boss_majordomo::boss_majordomoAI, boss_moroes, boss_nightbane, boss_dorothee, boss_roar, boss_strawman, boss_tinhead, boss_crone, boss_bigbadwolf, boss_julianne, boss_romulo, npc_scholomance_occultist::npc_scholomance_occultistAI, boss_arlokk::boss_arlokkAI, boss_headless_horseman, npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, boss_aeonus, npc_weegli_blastfuse::npc_weegli_blastfuseAI, boss_baltharus_the_warborn::boss_baltharus_the_warbornAI, boss_saviana_ragefire::boss_saviana_ragefireAI, boss_anubarak_trial::boss_anubarak_trialAI, boss_jaraxxus::boss_jaraxxusAI, boss_gormok::boss_gormokAI, boss_jormungarAI, boss_icehowl::boss_icehowlAI, boss_twin_valkyrAI, boss_bronjahm::boss_bronjahmAI, boss_drakkari_colossus::boss_drakkari_colossusAI, boss_gal_darah::boss_gal_darahAI, boss_prince_keleseth_icc::boss_prince_kelesethAI, boss_prince_taldaram_icc::boss_prince_taldaramAI, boss_prince_valanar_icc::boss_prince_valanarAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, boss_festergut::boss_festergutAI, boss_lord_marrowgar, boss_professor_putricide::boss_professor_putricideAI, boss_rotface::boss_rotfaceAI, npc_spinestalker::npc_spinestalkerAI, npc_rimefang::npc_rimefangAI, npc_tirion_fordring_tft::npc_tirion_fordringAI, npc_green_dragon_combat_trigger::npc_green_dragon_combat_triggerAI, npc_icc_valkyr_herald::npc_icc_valkyr_heraldAI, npc_icc_spire_frostwyrm, npc_icc_vengeful_fleshreaper::npc_icc_vengeful_fleshreaperAI, npc_icc_gauntlet_controller::npc_icc_gauntlet_controllerAI, npc_icc_putricades_trap::npc_icc_putricades_trapAI, boss_kelthuzad_minion::boss_kelthuzad_minionAI, boss_algalon_the_observer::boss_algalon_the_observerAI, boss_steelbreaker::boss_steelbreakerAI, boss_runemaster_molgeim::boss_runemaster_molgeimAI, boss_stormcaller_brundir::boss_stormcaller_brundirAI, boss_auriaya::boss_auriayaAI, boss_flame_leviathan::boss_flame_leviathanAI, boss_freya::boss_freyaAI, boss_vezax::boss_vezaxAI, npc_ulduar_iron_construct::npc_ulduar_iron_constructAI, boss_ignis::boss_ignisAI, boss_mimiron::boss_mimironAI, boss_razorscale::boss_razorscaleAI, boss_thorim::boss_thorimAI, boss_xt002::boss_xt002AI, boss_palehoof::boss_palehoofAI, npc_massive_jormungar::npc_massive_jormungarAI, npc_ferocious_rhino::npc_ferocious_rhinoAI, npc_ravenous_furbolg::npc_ravenous_furbolgAI, npc_frenzied_worgen::npc_frenzied_worgenAI, violet_hold_trashAI, npc_akama_illidan, boss_fathomlord_karathress, boss_hydross_the_unstable, boss_ghazan, boss_grand_warlock_nethekurse, boss_alar, npc_mature_netherwing_drake::npc_mature_netherwing_drakeAI, and npc_precious::npc_preciousAI.

169{}

Referenced by HomeMovementGenerator< Creature >::DoFinalize(), npc_spinestalker::npc_spinestalkerAI::JustReachedHome(), npc_rimefang::npc_rimefangAI::JustReachedHome(), npc_tirion_fordring_tft::npc_tirion_fordringAI::JustReachedHome(), npc_icc_spire_frostwyrm::JustReachedHome(), and boss_mimiron::boss_mimironAI::JustReachedHome().

◆ JustRespawned()

◆ JustSummoned()

virtual void CreatureAI::JustSummoned ( Creature )
inlinevirtual

Reimplemented in ScriptedAI, npc_prospector_remtravel::npc_prospector_remtravelAI, boss_eydis::boss_eydisAI, boss_fjola::boss_fjolaAI, boss_ick::boss_ickAI, boss_drakos::boss_drakosAI, boss_varos::boss_varosAI, boss_exarch_maladaar, npc_toc_warlock::npc_toc_warlockAI, npc_toc_hunter::npc_toc_hunterAI, npc_toc_boomkin::npc_toc_boomkinAI, boss_ambassador_flamelash::boss_ambassador_flamelashAI, npc_highlord_darion_mograine::npc_highlord_darion_mograineAI, boss_darkmaster_gandling::boss_darkmaster_gandlingAI, boss_headless_horseman, boss_infinite_corruptor::boss_infinite_corruptorAI, boss_salramm::boss_salrammAI, npc_arthas::npc_arthasAI, boss_anubrekhan::boss_anubrekhanAI, boss_grobbulus::boss_grobbulusAI, boss_kelthuzad::boss_kelthuzadAI, boss_loatheb::boss_loathebAI, boss_maexxna::boss_maexxnaAI, boss_razuvious::boss_razuviousAI, boss_thaddius::boss_thaddiusAI, brann_bronzebeard::brann_bronzebeardAI, boss_auriaya::boss_auriayaAI, boss_flame_leviathan::boss_flame_leviathanAI, npc_freya_ward::npc_freya_wardAI, npc_mimirons_inferno::npc_mimirons_infernoAI, boss_freya::boss_freyaAI, boss_kologarn::boss_kologarnAI, boss_thorim::boss_thorimAI, boss_xt002::boss_xt002AI, npc_xt002_heart::npc_xt002_heartAI, boss_yoggsaron_cloud::boss_yoggsaron_cloudAI, boss_yoggsaron::boss_yoggsaronAI, boss_yoggsaron_brain::boss_yoggsaron_brainAI, boss_toravon::boss_toravonAI, npc_frozen_orb_stalker::npc_frozen_orb_stalkerAI, npc_frosthound::npc_frosthoundAI, npc_overlord_drakuru_betrayal::npc_overlord_drakuru_betrayalAI, SmartAI, boss_muru, npc_eris_hevenfire::npc_eris_hevenfireAI, npc_daphne_stilwell::npc_daphne_stilwellAI, npc_coren_direbrew, npc_time_rift, boss_ossirian, npc_ouro_spawner, npc_dirt_mound, boss_skeram, npc_battle_at_valhalas::npc_battle_at_valhalasAI, boss_mekgineer_steamrigger, npc_warchief_portal, npc_archmage_landalock::npc_archmage_landalockAI, boss_dalronn_the_controller, boss_eregos::boss_eregosAI, boss_urom::boss_uromAI, boss_ichoron::boss_ichoronAI, boss_xevozz::boss_xevozzAI, boss_zuramat::boss_zuramatAI, npc_vh_teleportation_portal::npc_vh_teleportation_portalAI, boss_twin_valkyrAI, npc_hor_lich_king::npc_hor_lich_kingAI, npc_pos_leader::npc_pos_leaderAI, npc_pos_martin_or_gorkun_second::npc_pos_martin_or_gorkun_secondAI, npc_icc_valkyr_herald::npc_icc_valkyr_heraldAI, boss_hodir::boss_hodirAI, boss_mimiron::boss_mimironAI, npc_ulduar_aerial_command_unit::npc_ulduar_aerial_command_unitAI, boss_razorscale::boss_razorscaleAI, npc_ulduar_storm_tempered_keeper::npc_ulduar_storm_tempered_keeperAI, boss_ingvar_the_plunderer, BossAI, WorldBossAI, npc_grimstone::npc_grimstoneAI, boss_gyth::boss_gythAI, boss_rend_blackhand::boss_rend_blackhandAI, boss_victor_nefarius::boss_victor_nefariusAI, boss_razorgore::boss_razorgoreAI, boss_majordomo::boss_majordomoAI, boss_ragnaros::boss_ragnarosAI, npc_echo_of_medivh, boss_curator, boss_attumen, boss_midnight, boss_nightbane, boss_priestess_delrissa, boss_priestess_lackey_commonAI, boss_vexallus, boss_kormok, boss_sacrolash, npc_demonic_vapor_trail, npc_kiljaeden_controller, boss_kiljaeden, npc_kalecgos_kj, npc_bh_thalorien_dawnseeker::npc_bh_thalorien_dawnseekerAI, npc_ravenclaw_apparition::npc_ravenclaw_apparitionAI, boss_halazzi, boss_janalai, npc_amanishi_tempest, boss_hazzarah, boss_jindo, boss_anetheron, boss_captain_skarloc, npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, npc_medivh_bm, boss_isalien, boss_onyxia, npc_hive_zara_larva, npc_general_andorov, boss_eye_of_cthun, boss_jedoga_shadowseeker, boss_taldaram, boss_anub_arak::boss_anub_arakAI, boss_hadronox::boss_hadronoxAI, npc_anub_ar_crusher::npc_anub_ar_crusherAI, boss_krik_thir::boss_krik_thirAI, boss_sartharion::boss_sartharionAI, boss_sartharion_dragonAI, boss_sartharion_tenebron::boss_sartharion_tenebronAI, boss_baltharus_the_warborn::boss_baltharus_the_warbornAI, boss_general_zarithrian::boss_general_zarithrianAI, boss_halion::boss_halionAI, boss_paletress::boss_paletressAI, boss_black_knight::boss_black_knightAI, boss_anubarak_trial::boss_anubarak_trialAI, boss_jaraxxus::boss_jaraxxusAI, boss_gormok::boss_gormokAI, boss_novos::boss_novosAI, boss_trollgore::boss_trollgoreAI, boss_bronjahm::boss_bronjahmAI, boss_devourer_of_souls::boss_devourer_of_soulsAI, boss_drakkari_colossus::boss_drakkari_colossusAI, boss_gal_darah::boss_gal_darahAI, boss_prince_keleseth_icc::boss_prince_kelesethAI, boss_prince_taldaram_icc::boss_prince_taldaramAI, boss_prince_valanar_icc::boss_prince_valanarAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, boss_lady_deathwhisper::boss_lady_deathwhisperAI, boss_professor_putricide::boss_professor_putricideAI, boss_rotface::boss_rotfaceAI, npc_precious_icc::npc_precious_iccAI, boss_sindragosa::boss_sindragosaAI, boss_the_lich_king::boss_the_lich_kingAI, boss_valithria_dreamwalker::boss_valithria_dreamwalkerAI, npc_the_lich_king_controller::npc_the_lich_king_controllerAI, npc_risen_archmage::npc_risen_archmageAI, npc_gluttonous_abomination::npc_gluttonous_abominationAI, npc_frostwing_vrykul::npc_frostwing_vrykulAI, npc_icc_gauntlet_controller::npc_icc_gauntlet_controllerAI, npc_icc_putricades_trap::npc_icc_putricades_trapAI, boss_gluth::boss_gluthAI, boss_gothik::boss_gothikAI, npc_gothik_trigger::npc_gothik_triggerAI, boss_noth::boss_nothAI, boss_malygos::boss_malygosAI, boss_anomalus, boss_magus_telestra, boss_ormorok, boss_volkhan::boss_volkhanAI, boss_algalon_the_observer::boss_algalon_the_observerAI, npc_collapsing_star::npc_collapsing_starAI, npc_algalon_worm_hole::npc_algalon_worm_holeAI, boss_vezax::boss_vezaxAI, boss_yoggsaron_sara::boss_yoggsaron_saraAI, boss_yoggsaron_keeper, boss_svala::boss_svalaAI, boss_emalon::boss_emalonAI, npc_q24545_lich_king::npc_q24545_lich_kingAI, npc_tirions_gambit_tirion::npc_tirions_gambit_tirionAI, boss_shirrak_the_dead_watcher, boss_nexusprince_shaffar, boss_grandmaster_vorpil, boss_gurtogg_bloodboil, boss_illidan_stormrage, npc_akama_illidan, npc_blade_of_azzinoth, npc_flame_of_azzinoth, boss_veras_darkshadow, boss_reliquary_of_souls::boss_reliquary_of_soulsAI, npc_akama_shade, npc_creature_generator_akama, boss_supremus, boss_teron_gorefiend, boss_fathomlord_karathress, boss_fathomguard_sharkkis, boss_fathomguard_tidalvess, boss_fathomguard_caribdis, boss_hydross_the_unstable, boss_lady_vashj, boss_morogrim_tidewalker, npc_ahune_bunny, boss_mennu_the_betrayer, boss_the_black_stalker, boss_olm_the_summoner, boss_omor_the_unscarred, boss_vazruden_the_herald, boss_warchief_kargath_bladefist, npc_warden_mellichar::npc_warden_mellicharAI, boss_harbinger_skyriss, boss_high_astromancer_solarian, boss_kaelthas, boss_mechano_lord_capacitus, boss_nethermancer_sepethrea, emerald_dragonAI, npc_nelson::npc_nelsonAI, npc_minion_spawner, npc_pallid_horror, boss_balinda, boss_vaelastrasz::boss_vaelAI, boss_terestian_illhoof, npc_professor_phizzlethorpe::npc_professor_phizzlethorpeAI, npc_rinji::npc_rinjiAI, npc_deathstalker_fearleia, npc_lady_sylvanas_windrunner::npc_lady_sylvanas_windrunnerAI, npc_thrall_bfu::npc_thrall_bfuAI, npc_tapoke_slim_jahn::npc_tapoke_slim_jahnAI, boss_archimonde, npc_muglash::npc_muglashAI, npc_kaya_flathoof::npc_kaya_flathoofAI, npc_wizzlecrank_shredder::npc_wizzlecrank_shredderAI, npc_ame::npc_ameAI, npc_emily::npc_emilyAI, npc_blessed_banner::npc_blessed_bannerAI, boss_broggok, npc_deaths_door_fell_cannon_target_bunny::npc_deaths_door_fell_cannon_target_bunnyAI, npc_wounded_blood_elf::npc_wounded_blood_elfAI, npc_maghar_captive::npc_maghar_captiveAI, npc_kurenai_captive::npc_kurenai_captiveAI, npc_commander_dawnforge::npc_commander_dawnforgeAI, npc_bessy::npc_bessyAI, npc_varian_wrynn::npc_varian_wrynnAI, boss_ayamiss, and npc_buru_egg.

135{}

Referenced by spell_hodir_flash_freeze_aura::HandleEffectPeriodic(), spell_putricide_mutated_transformation::HandleSummon(), TempSummon::InitSummon(), npc_claw_tentacle::npc_claw_tentacle(), npc_eye_tentacle::npc_eye_tentacle(), npc_giant_claw_tentacle::npc_giant_claw_tentacle(), and npc_giant_eye_tentacle::npc_giant_eye_tentacle().

◆ KilledUnit()

virtual void CreatureAI::KilledUnit ( Unit )
inlinevirtual

Reimplemented in PetAI, ScriptedAI, boss_emperor_dagran_thaurissan::boss_draganthaurissanAI, boss_midnight, boss_malchezaar, boss_shade_of_aran, boss_roar, boss_strawman, boss_tinhead, boss_crone, boss_bigbadwolf, npc_risen_guardian::npc_risen_guardianAI, boss_zuljin, boss_headless_horseman, boss_archimonde, boss_epoch::boss_epochAI, boss_mal_ganis::boss_mal_ganisAI, boss_meathook::boss_meathookAI, boss_salramm::boss_salrammAI, boss_captain_skarloc, npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, boss_ossirian, boss_sartura, boss_skeram, boss_anub_arak::boss_anub_arakAI, boss_krik_thir::boss_krik_thirAI, boss_baltharus_the_warborn::boss_baltharus_the_warbornAI, boss_general_zarithrian::boss_general_zarithrianAI, boss_saviana_ragefire::boss_saviana_ragefireAI, boss_faction_championsAI, boss_novos::boss_novosAI, boss_tharon_ja::boss_tharon_jaAI, boss_trollgore::boss_trollgoreAI, boss_gal_darah::boss_gal_darahAI, boss_moorabi::boss_moorabiAI, boss_slad_ran::boss_slad_ranAI, boss_commander_stoutbeard, boss_keristrasza, boss_magus_telestra, boss_ormorok, boss_drakos::boss_drakosAI, boss_eregos::boss_eregosAI, boss_urom::boss_uromAI, boss_krystallus::boss_krystallusAI, boss_maiden_of_grief::boss_maiden_of_griefAI, boss_sjonnir::boss_sjonnirAI, boss_freya_elder_stonebark::boss_freya_elder_stonebarkAI, boss_freya_elder_brightleaf::boss_freya_elder_brightleafAI, boss_freya_elder_ironbranch::boss_freya_elder_ironbranchAI, boss_kologarn::boss_kologarnAI, boss_ingvar_the_plunderer, boss_skarvald_the_constructor, boss_dalronn_the_controller, boss_skadi::boss_skadiAI, boss_ymiron::boss_ymironAI, boss_tavarok, boss_gurtogg_bloodboil, boss_illidan_stormrage, boss_illidari_council_memberAI, boss_mother_shahraz, boss_essence_of_suffering::boss_essence_of_sufferingAI, boss_essence_of_desire::boss_essence_of_desireAI, boss_essence_of_anger::boss_essence_of_angerAI, boss_fathomlord_karathress, boss_hydross_the_unstable, boss_lady_vashj, boss_morogrim_tidewalker, boss_mennu_the_betrayer, boss_swamplord_muselek, boss_gruul, boss_high_king_maulgar, boss_kelidan_the_breaker, boss_omor_the_unscarred, boss_vazruden, boss_watchkeeper_gargolmar, boss_magtheridon, boss_grand_warlock_nethekurse, npc_millhouse_manastorm::npc_millhouse_manastormAI, boss_void_reaver, boss_sartharion::boss_sartharionAI, boss_xevozz::boss_xevozzAI, boss_sathrovarr, boss_sartharion_dragonAI, PossessedAI, SmartAI, boss_nefarian, boss_vaelastrasz::boss_vaelAI, boss_majordomo::boss_majordomoAI, boss_ragnaros::boss_ragnarosAI, boss_curator, boss_maiden_of_virtue, boss_attumen, boss_moroes, boss_tenris_mirkblood, boss_terestian_illhoof, boss_julianne, boss_romulo, boss_priestess_delrissa, boss_priestess_lackey_commonAI, boss_selin_fireheart, boss_vexallus, boss_brutallus, boss_sacrolash, boss_alythess, boss_felmyst, boss_kalecgos, boss_kiljaeden, boss_twilight_corrupter, boss_halazzi, boss_hexlord_malacrass, boss_mandokir::boss_mandokirAI, npc_ohgan::npc_ohganAI, boss_azuregos::boss_azuregosAI, boss_anetheron, boss_azgalor, boss_kazrogal, boss_rage_winterchill, boss_epoch_hunter, boss_lieutenant_drake, boss_aeonus, boss_chrono_lord_deja, boss_temporus, boss_buru, npc_general_andorov, boss_twinemperorsAI, npc_tiger_matriarch::npc_tiger_matriarchAI, boss_elder_nadox, boss_volazj, boss_taldaram, boss_hadronox::boss_hadronoxAI, boss_halion::boss_halionAI, boss_twilight_halion::boss_twilight_halionAI, boss_black_knight::boss_black_knightAI, boss_devourer_of_souls::boss_devourer_of_soulsAI, boss_prince_keleseth_icc::boss_prince_kelesethAI, boss_prince_taldaram_icc::boss_prince_taldaramAI, boss_prince_valanar_icc::boss_prince_valanarAI, boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, boss_festergut::boss_festergutAI, boss_lady_deathwhisper::boss_lady_deathwhisperAI, boss_lord_marrowgar, boss_professor_putricide::boss_professor_putricideAI, boss_rotface::boss_rotfaceAI, boss_sindragosa::boss_sindragosaAI, boss_the_lich_king::boss_the_lich_kingAI, boss_sister_svalna::boss_sister_svalnaAI, npc_argent_captainAI, boss_anubrekhan::boss_anubrekhanAI, boss_malygos::boss_malygosAI, boss_bjarngrim::boss_bjarngrimAI, boss_ionar::boss_ionarAI, boss_loken::boss_lokenAI, boss_volkhan::boss_volkhanAI, boss_algalon_the_observer::boss_algalon_the_observerAI, boss_auriaya::boss_auriayaAI, boss_freya::boss_freyaAI, boss_ignis::boss_ignisAI, boss_razorscale::boss_razorscaleAI, boss_thorim::boss_thorimAI, boss_xt002::boss_xt002AI, boss_keleseth, boss_palehoof::boss_palehoofAI, boss_svala::boss_svalaAI, boss_cyanigosa::boss_cyanigosaAI, boss_erekem::boss_erekemAI, boss_ichoron::boss_ichoronAI, boss_zuramat::boss_zuramatAI, boss_exarch_maladaar, boss_nexusprince_shaffar, boss_pandemonius, boss_darkweaver_syth, boss_talon_king_ikiss, boss_ambassador_hellmaw, boss_blackheart_the_inciter, boss_grandmaster_vorpil, npc_akama_illidan, boss_teron_gorefiend, boss_najentus, boss_doomlord_kazzak::boss_doomlordkazzakAI, boss_doomwalker, boss_hydromancer_thespia, boss_mekgineer_steamrigger, boss_warlord_kalithresh, boss_the_maker, boss_warbringer_omrogg, boss_warchief_kargath_bladefist, boss_dalliah_the_doomsayer, boss_harbinger_skyriss, boss_wrath_scryer_soccothrates, boss_zereketh_the_unbound, boss_commander_sarannis, boss_high_botanist_freywinn, boss_thorngrin_the_tender, boss_warp_splinter, boss_high_astromancer_solarian, boss_kaelthas, boss_gatewatcher_gyrokill, boss_gatewatcher_iron_hand, boss_mechano_lord_capacitus, boss_nethermancer_sepethrea, boss_pathaleon_the_calculator, npc_netherspite_infernal, boss_akilzon, npc_dark_iron_guzzler, boss_jedoga_shadowseeker, boss_eadric::boss_eadricAI, boss_paletress::boss_paletressAI, boss_anubarak_trial::boss_anubarak_trialAI, boss_twin_valkyrAI, boss_bronjahm::boss_bronjahmAI, boss_falric::boss_falricAI, boss_marwyn::boss_marwynAI, boss_garfrost::boss_garfrostAI, boss_ick::boss_ickAI, boss_tyrannus::boss_tyrannusAI, boss_faerlina::boss_faerlinaAI, boss_four_horsemen::boss_four_horsemenAI, boss_gluth::boss_gluthAI, boss_gothik::boss_gothikAI, npc_boss_gothik_minion::npc_boss_gothik_minionAI, boss_grobbulus::boss_grobbulusAI, boss_grobbulus_poison_cloud::boss_grobbulus_poison_cloudAI, boss_heigan::boss_heiganAI, boss_kelthuzad::boss_kelthuzadAI, boss_kelthuzad_minion::boss_kelthuzad_minionAI, boss_loatheb::boss_loathebAI, boss_maexxna::boss_maexxnaAI, boss_noth::boss_nothAI, boss_patchwerk::boss_patchwerkAI, boss_razuvious::boss_razuviousAI, boss_razuvious_minion::boss_razuvious_minionAI, boss_sapphiron::boss_sapphironAI, boss_thaddius::boss_thaddiusAI, boss_thaddius_summon::boss_thaddius_summonAI, boss_steelbreaker::boss_steelbreakerAI, boss_runemaster_molgeim::boss_runemaster_molgeimAI, boss_stormcaller_brundir::boss_stormcaller_brundirAI, boss_flame_leviathan::boss_flame_leviathanAI, boss_flame_leviathan_defense_turret::boss_flame_leviathan_defense_turretAI, boss_vezax::boss_vezaxAI, boss_hodir::boss_hodirAI, npc_ulduar_leviathan_mkii::npc_ulduar_leviathan_mkiiAI, npc_ulduar_vx001::npc_ulduar_vx001AI, npc_ulduar_aerial_command_unit::npc_ulduar_aerial_command_unitAI, boss_yoggsaron_sara::boss_yoggsaron_saraAI, npc_q24545_vegard::npc_q24545_vegardAI, emerald_dragonAI, and boss_emeriss::boss_emerissAI.

132{}

Referenced by Unit::Kill(), boss_halazzi::KilledUnit(), and boss_hexlord_malacrass::KilledUnit().

◆ MoveBackwardsChecks()

void CreatureAI::MoveBackwardsChecks ( )

optimization, disable backwards movement for NPC vs NPC combat

384{
385 Unit *victim = me->GetVictim();
386
388 return;
389
393 if (!sWorld->getBoolConfig(CONFIG_CREATURE_REPOSITION_AGAINST_NPCS) && !victim->IsPlayer() && !victim->IsPet())
394 {
395 return;
396 }
397
398 float moveDist = me->GetMeleeRange(victim) / 2;
399
400 me->GetMotionMaster()->MoveBackwards(victim, moveDist);
401}
@ MOVEMENTFLAG_ROOT
Definition UnitDefines.h:378
@ CONFIG_CREATURE_REPOSITION_AGAINST_NPCS
Definition WorldConfig.h:81
bool IsFreeToMove()
Definition Creature.cpp:945
void MoveBackwards(Unit *target, float dist)
Definition MotionMaster.cpp:369
bool IsPlayer() const
Definition Object.h:201
bool IsPet() const
Definition Unit.h:749
bool HasUnitMovementFlag(uint32 f) const
Definition Unit.h:729
Unit * GetVictim() const
Definition Unit.h:850
float GetMeleeRange(Unit const *target) const
Definition Unit.cpp:684
#define sWorld
Definition World.h:317

References CONFIG_CREATURE_REPOSITION_AGAINST_NPCS, Unit::GetMeleeRange(), Unit::GetMotionMaster(), Unit::GetVictim(), Unit::HasUnitMovementFlag(), Creature::IsFreeToMove(), Unit::IsPet(), Object::IsPlayer(), me, MotionMaster::MoveBackwards(), MOVEMENTFLAG_ROOT, and sWorld.

Referenced by Creature::Update().

◆ MoveCircleChecks()

void CreatureAI::MoveCircleChecks ( )

optimization, disable circling movement for NPC vs NPC combat

362{
363 Unit *victim = me->GetVictim();
364
365 if (
366 !victim ||
368 !me->IsWithinMeleeRange(victim) || me == victim->GetVictim()
369 )
370 {
371 return;
372 }
373
377 if (!sWorld->getBoolConfig(CONFIG_CREATURE_REPOSITION_AGAINST_NPCS) && !victim->IsPlayer() && !victim->IsPet())
378 return;
379
381}
void MoveCircleTarget(Unit *target)
Definition MotionMaster.cpp:421
bool IsWithinMeleeRange(Unit const *obj, float dist=0.f) const
Definition Unit.cpp:666

References CONFIG_CREATURE_REPOSITION_AGAINST_NPCS, Unit::GetMotionMaster(), Unit::GetVictim(), Unit::HasUnitMovementFlag(), Creature::IsFreeToMove(), Unit::IsPet(), Object::IsPlayer(), Unit::IsWithinMeleeRange(), me, MotionMaster::MoveCircleTarget(), MOVEMENTFLAG_ROOT, and sWorld.

Referenced by Creature::Update().

◆ MoveInLineOfSight()

void CreatureAI::MoveInLineOfSight ( Unit who)
protectedvirtual

Reimplemented in VehicleAI, PassiveAI, PossessedAI, NullCreatureAI, PetAI, ReactorAI, FollowerAI, npc_netherspite_infernal, npc_demon_chain, npc_akilzon_eagle, npc_janalai_hatcher, npc_dark_iron_attack_generator, npc_dark_iron_attack_mole_machine, npc_dark_iron_guzzler, npc_brewfest_super_brew_trigger, npc_hallows_end_soh, boss_headless_horseman, boss_headless_horseman_pumpkin, npc_pilgrims_bounty_chair, npc_taretha::npc_tarethaAI, npc_injured_draenei::npc_injured_draeneiAI, boss_jedoga_shadowseeker, boss_jaraxxus::boss_jaraxxusAI, npc_snobold_vassal::npc_snobold_vassalAI, boss_gormok::boss_gormokAI, boss_novos::boss_novosAI, npc_pos_leader::npc_pos_leaderAI, npc_pos_deathwhisper_necrolyte::npc_pos_deathwhisper_necrolyteAI, boss_drakkari_colossus::boss_drakkari_colossusAI, npc_ball_of_flame::npc_ball_of_flameAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, npc_vengeful_shade::npc_vengeful_shadeAI, boss_valithria_dreamwalker::boss_valithria_dreamwalkerAI, npc_green_dragon_combat_trigger::npc_green_dragon_combat_triggerAI, npc_the_lich_king_controller::npc_the_lich_king_controllerAI, npc_valithria_cloud::npc_valithria_cloudAI, boss_malygos::boss_malygosAI, npc_vortex_ride::npc_vortex_rideAI, npc_scion_of_eternity::npc_scion_of_eternityAI, npc_hover_disk::npc_hover_diskAI, npc_alexstrasza::npc_alexstraszaAI, boss_drakos::boss_drakosAI, npc_oculus_unstable_sphere::npc_oculus_unstable_sphereAI, boss_eregos::boss_eregosAI, boss_urom::boss_uromAI, boss_varos::boss_varosAI, npc_spark_of_ionar::npc_spark_of_ionarAI, boss_loken::boss_lokenAI, boss_sjonnir_malformed_ooze::boss_sjonnir_malformed_oozeAI, npc_assembly_lightning::npc_assembly_lightningAI, boss_flame_leviathan::boss_flame_leviathanAI, npc_mimirons_inferno::npc_mimirons_infernoAI, boss_vezax::boss_vezaxAI, boss_hodir::boss_hodirAI, npc_ulduar_hodir_priest::npc_ulduar_hodir_priestAI, npc_ulduar_hodir_druid::npc_ulduar_hodir_druidAI, npc_ulduar_hodir_shaman::npc_ulduar_hodir_shamanAI, npc_ulduar_hodir_mage::npc_ulduar_hodir_mageAI, npc_ulduar_iron_construct::npc_ulduar_iron_constructAI, boss_ignis::boss_ignisAI, boss_kologarn_arms::boss_kologarn_armsAI, boss_mimiron::boss_mimironAI, npc_ulduar_leviathan_mkii::npc_ulduar_leviathan_mkiiAI, npc_ulduar_vx001::npc_ulduar_vx001AI, npc_ulduar_aerial_command_unit::npc_ulduar_aerial_command_unitAI, npc_ulduar_proximity_mine::npc_ulduar_proximity_mineAI, npc_ulduar_emergency_fire_bot::npc_ulduar_emergency_fire_botAI, boss_razorscale::boss_razorscaleAI, boss_thorim_sif::boss_thorim_sifAI, boss_thorim_lightning_orb::boss_thorim_lightning_orbAI, boss_thorim_sif_blizzard::boss_thorim_sif_blizzardAI, npc_xt002_heart::npc_xt002_heartAI, boss_yoggsaron_sara::boss_yoggsaron_saraAI, boss_yoggsaron_cloud::boss_yoggsaron_cloudAI, boss_cyanigosa::boss_cyanigosaAI, boss_erekem::boss_erekemAI, npc_erekem_guard::npc_erekem_guardAI, boss_ichoron::boss_ichoronAI, npc_ichor_globule::npc_ichor_globuleAI, boss_lavanthor::boss_lavanthorAI, boss_moragg::boss_moraggAI, boss_xevozz::boss_xevozzAI, boss_zuramat::boss_zuramatAI, npc_azure_saboteur::npc_azure_saboteurAI, npc_mrfloppy::npc_mrfloppyAI, npc_tournament_training_dummy::npc_tournament_training_dummyAI, npc_blessed_banner::npc_blessed_bannerAI, npc_wild_wyrm::npc_wild_wyrmAI, boss_illidari_council, npc_warden_mellichar::npc_warden_mellicharAI, boss_alar, npc_lord_illidan_stormrage::npc_lord_illidan_stormrageAI, npc_training_dummy::npc_training_dummyAI, npc_target_dummy::npc_target_dummyAI, npc_brew_bubble, boss_sartharion_dragonAI, TotemAI, npc_escortAI, SmartAI, boss_nightbane, npc_dkc1_gothik::npc_dkc1_gothikAI, npc_a_special_surprise::npc_a_special_surpriseAI, boss_muru, boss_twilight_corrupter, npc_grand_magister_rommath::npc_grand_magister_rommathAI, npc_the_scourge_cauldron::npc_the_scourge_cauldronAI, npc_andorhal_tower::npc_andorhal_towerAI, boss_nalorakk, npc_amanishi_lookout, npc_eagle_trash_aggro_trigger, npc_brewfest_keg_thrower, npc_brewfest_keg_reciver, npc_brewfest_bark_trigger, npc_coren_direbrew, npc_winterfin_playmate, npc_snowfall_glade_playmate, npc_the_biggest_tree, npc_high_oracle_soo_roo, npc_elder_kekek, npc_the_etymidian, npc_alexstraza_the_lifebinder, npc_cw_area_trigger::npc_cw_area_triggerAI, npc_grizzlemaw_cw_trigger::npc_grizzlemaw_cw_triggerAI, npc_love_in_air_supply_sentry, npc_love_in_air_snivel, npc_cos_stratholme_citizien::npc_cos_stratholme_citizienAI, boss_aeonus, boss_chrono_lord_deja, boss_temporus, npc_medivh_bm, boss_ossirian, npc_general_andorov, boss_eye_of_cthun, npc_ouro_spawner, npc_depth_charge::npc_depth_chargeAI, npc_draenei_survivor::npc_draenei_survivorAI, npc_kerlonian::npc_kerlonianAI, npc_aged_dying_ancient_kodo::npc_aged_dying_ancient_kodoAI, npc_custodian_of_time::npc_custodian_of_timeAI, npc_tooga::npc_toogaAI, npc_twiggy_flathead::npc_twiggy_flatheadAI, npc_ringo::npc_ringoAI, boss_anub_arak::boss_anub_arakAI, boss_krik_thir::boss_krik_thirAI, boss_anubarak_trial::boss_anubarak_trialAI, npc_living_mojo::npc_living_mojoAI, npc_blood_queen_lana_thel::npc_blood_queen_lana_thelAI, boss_lord_marrowgar, boss_professor_putricide::boss_professor_putricideAI, boss_sindragosa::boss_sindragosaAI, npc_icc_valkyr_herald::npc_icc_valkyr_heraldAI, npc_icc_vengeful_fleshreaper::npc_icc_vengeful_fleshreaperAI, npc_icc_nerubar_broodkeeper::npc_icc_nerubar_broodkeeperAI, boss_anubrekhan::boss_anubrekhanAI, boss_faerlina::boss_faerlinaAI, boss_gluth::boss_gluthAI, boss_kelthuzad::boss_kelthuzadAI, boss_kelthuzad_minion::boss_kelthuzad_minionAI, npc_hol_monument::npc_hol_monumentAI, npc_brann_radio::npc_brann_radioAI, boss_kologarn::boss_kologarnAI, npc_ulduar_expedition_commander::npc_ulduar_expedition_commanderAI, npc_ulduar_snow_mound, boss_palehoof::boss_palehoofAI, npc_massive_jormungar::npc_massive_jormungarAI, npc_ferocious_rhino::npc_ferocious_rhinoAI, npc_ravenous_furbolg::npc_ravenous_furbolgAI, npc_frenzied_worgen::npc_frenzied_worgenAI, violet_hold_trashAI, npc_khunok_the_behemoth::npc_khunok_the_behemothAI, npc_jenny, npc_captured_beryl_sorcerer::npc_captured_beryl_sorcererAI, npc_mageguard_dalaran::npc_mageguard_dalaranAI, npc_future_you::npc_future_youAI, npc_black_knight_graveyard::npc_black_knight_graveyardAI, npc_guardian_pavilion::npc_guardian_pavilionAI, npc_jungle_punch_target::npc_jungle_punch_targetAI, npc_overlord_drakuru_betrayal::npc_overlord_drakuru_betrayalAI, boss_exarch_maladaar, boss_nexusprince_shaffar, boss_talon_king_ikiss, boss_ambassador_hellmaw, boss_grandmaster_vorpil, boss_reliquary_of_souls::boss_reliquary_of_soulsAI, boss_doomwalker, boss_lady_vashj, boss_warlord_kalithresh, boss_watchkeeper_gargolmar, npc_shattered_hand_scout, boss_wrath_scryer_soccothrates, boss_thorngrin_the_tender, boss_kaelthas, npc_nether_drake::npc_nether_drakeAI, npc_daranelle::npc_daranelleAI, npc_ancestral_wolf::npc_ancestral_wolfAI, npc_creditmarker_visit_with_ancestors::npc_creditmarker_visit_with_ancestorsAI, npc_captain_saeed::npc_captain_saeedAI, npc_pet_hunter_snake_trap, and npc_air_force_bots::npc_air_force_botsAI.

177{
178 if (me->IsEngaged())
179 return;
180
181 // pussywizard: civilian, non-combat pet or any other NOT HOSTILE TO ANYONE (!)
183 if (me->GetCreatureType() == CREATURE_TYPE_NON_COMBAT_PET || // nothing more to do, return
184 !who->IsInCombat() || // if not in combat, nothing more to do
185 !me->IsWithinDist(who, ATTACK_DISTANCE, true, false)) // if in combat and in dist - neutral to all can actually assist other creatures
186 return;
187
189 AttackStart(who);
190}
#define ATTACK_DISTANCE
Definition ObjectDefines.h:25
@ CREATURE_TYPE_NON_COMBAT_PET
Definition SharedDefines.h:2650
@ REACT_AGGRESSIVE
Definition Unit.h:551
bool CanStartAttack(Unit const *u) const
Definition Creature.cpp:1919
bool HasReactState(ReactStates state) const
Definition Creature.h:97
bool IsMoveInLineOfSightDisabled()
Definition Creature.h:281
virtual void AttackStart(Unit *)
Definition UnitAI.cpp:27
bool IsEngaged() const
Definition Unit.h:878
uint32 GetCreatureType() const
Definition Unit.cpp:15283
bool IsInCombat() const
Definition Unit.h:881
bool IsWithinDist(WorldObject const *obj, float dist2compare, bool is3D=true, bool useBoundingRadius=true) const
Definition Object.cpp:1321

References ATTACK_DISTANCE, UnitAI::AttackStart(), Creature::CanStartAttack(), CREATURE_TYPE_NON_COMBAT_PET, Unit::GetCreatureType(), Creature::HasReactState(), Unit::IsEngaged(), Unit::IsInCombat(), Creature::IsMoveInLineOfSightDisabled(), WorldObject::IsWithinDist(), me, and REACT_AGGRESSIVE.

Referenced by boss_sartharion_dragonAI::MoveInLineOfSight(), boss_nightbane::MoveInLineOfSight(), npc_dkc1_gothik::npc_dkc1_gothikAI::MoveInLineOfSight(), boss_twilight_corrupter::MoveInLineOfSight(), boss_nalorakk::MoveInLineOfSight(), npc_cos_stratholme_citizien::npc_cos_stratholme_citizienAI::MoveInLineOfSight(), boss_aeonus::MoveInLineOfSight(), boss_chrono_lord_deja::MoveInLineOfSight(), boss_temporus::MoveInLineOfSight(), boss_ossirian::MoveInLineOfSight(), npc_general_andorov::MoveInLineOfSight(), npc_ouro_spawner::MoveInLineOfSight(), boss_anub_arak::boss_anub_arakAI::MoveInLineOfSight(), boss_anubarak_trial::boss_anubarak_trialAI::MoveInLineOfSight(), npc_living_mojo::npc_living_mojoAI::MoveInLineOfSight(), boss_lord_marrowgar::MoveInLineOfSight(), boss_professor_putricide::boss_professor_putricideAI::MoveInLineOfSight(), boss_sindragosa::boss_sindragosaAI::MoveInLineOfSight(), npc_icc_vengeful_fleshreaper::npc_icc_vengeful_fleshreaperAI::MoveInLineOfSight(), npc_icc_nerubar_broodkeeper::npc_icc_nerubar_broodkeeperAI::MoveInLineOfSight(), boss_anubrekhan::boss_anubrekhanAI::MoveInLineOfSight(), boss_faerlina::boss_faerlinaAI::MoveInLineOfSight(), boss_gluth::boss_gluthAI::MoveInLineOfSight(), boss_kelthuzad_minion::boss_kelthuzad_minionAI::MoveInLineOfSight(), npc_hol_monument::npc_hol_monumentAI::MoveInLineOfSight(), boss_kologarn::boss_kologarnAI::MoveInLineOfSight(), boss_palehoof::boss_palehoofAI::MoveInLineOfSight(), npc_massive_jormungar::npc_massive_jormungarAI::MoveInLineOfSight(), npc_ferocious_rhino::npc_ferocious_rhinoAI::MoveInLineOfSight(), npc_ravenous_furbolg::npc_ravenous_furbolgAI::MoveInLineOfSight(), npc_frenzied_worgen::npc_frenzied_worgenAI::MoveInLineOfSight(), violet_hold_trashAI::MoveInLineOfSight(), npc_khunok_the_behemoth::npc_khunok_the_behemothAI::MoveInLineOfSight(), npc_overlord_drakuru_betrayal::npc_overlord_drakuru_betrayalAI::MoveInLineOfSight(), boss_exarch_maladaar::MoveInLineOfSight(), boss_talon_king_ikiss::MoveInLineOfSight(), boss_ambassador_hellmaw::MoveInLineOfSight(), boss_grandmaster_vorpil::MoveInLineOfSight(), boss_lady_vashj::MoveInLineOfSight(), boss_warlord_kalithresh::MoveInLineOfSight(), boss_watchkeeper_gargolmar::MoveInLineOfSight(), boss_thorngrin_the_tender::MoveInLineOfSight(), npc_nether_drake::npc_nether_drakeAI::MoveInLineOfSight(), npc_daranelle::npc_daranelleAI::MoveInLineOfSight(), and MoveInLineOfSight_Safe().

◆ MoveInLineOfSight_Safe()

void CreatureAI::MoveInLineOfSight_Safe ( Unit who)

== Reactions At =================================

166{
168 {
169 return;
170 }
174}
virtual void MoveInLineOfSight(Unit *)
Definition CreatureAI.cpp:176

References m_MoveInLineOfSight_locked, and MoveInLineOfSight().

Referenced by CreatureUnitRelocationWorker().

◆ MovementInform()

virtual void CreatureAI::MovementInform ( uint32  ,
uint32   
)
inlinevirtual

Reimplemented in FollowerAI, npc_tooga::npc_toogaAI, npc_earthen_ring_flamecaller, SmartAI, boss_algalon_the_observer::boss_algalon_the_observerAI, npc_brann_bronzebeard_algalon::npc_brann_bronzebeard_algalonAI, npc_chesspiece, PetAI, npc_spirit_shade::npc_spirit_shadeAI, npc_forest_frog, npc_enslaved_netherwing_drake, CritterAI, boss_rend_blackhand::boss_rend_blackhandAI, boss_ebonroc::boss_ebonrocAI, boss_nefarian, boss_nightbane, boss_selin_fireheart, npc_unworthy_initiate::npc_unworthy_initiateAI, npc_koltira_deathweaver::npc_koltira_deathweaverAI, npc_scarlet_courier::npc_scarlet_courierAI, npc_acherus_necromancer::npc_acherus_necromancerAI, npc_gothik_the_harvester::npc_gothik_the_harvesterAI, boss_kirtonos_the_herald::boss_kirtonos_the_heraldAI, npc_sentinel_leader, npc_sentinel_infiltrator, npc_bh_thalorien_dawnseeker::npc_bh_thalorien_dawnseekerAI, boss_zuljin, npc_harrison_jones, npc_amanishi_lookout, boss_mandokir::boss_mandokirAI, boss_captain_skarloc, boss_onyxia, npc_belnistrasz::npc_belnistraszAI, boss_ayamiss, npc_hive_zara_larva, boss_bug_trio, npc_rizzle_sprysprocket::npc_rizzle_sprysprocketAI, npc_stillpine_capitive::npc_stillpine_capitiveAI, npc_troll_volunteer::npc_troll_volunteerAI, npc_twilight_volunteer, boss_taldaram, boss_eadric::boss_eadricAI, boss_paletress::boss_paletressAI, boss_grand_champion::boss_grand_championAI, npc_concentrated_ball::npc_concentrated_ballAI, npc_fos_leader_second::npc_fos_leader_secondAI, boss_garfrost::boss_garfrostAI, npc_pos_deathwhisper_necrolyte::npc_pos_deathwhisper_necrolyteAI, npc_pos_after_first_boss::npc_pos_after_first_bossAI, npc_pos_tyrannus_events::npc_pos_tyrannus_eventsAI, npc_pos_martin_or_gorkun_second::npc_pos_martin_or_gorkun_secondAI, npc_pos_leader_second::npc_pos_leader_secondAI, boss_eck::boss_eckAI, npc_blood_queen_lana_thel::npc_blood_queen_lana_thelAI, boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, npc_high_overlord_saurfang_icc::npc_high_overlord_saurfangAI, npc_muradin_bronzebeard_icc::npc_muradin_bronzebeard_iccAI, npc_darnavan::npc_darnavanAI, boss_lord_marrowgar, boss_professor_putricide::boss_professor_putricideAI, npc_tirion_fordring_tft::npc_tirion_fordringAI, npc_valkyr_shadowguard::npc_valkyr_shadowguardAI, boss_sister_svalna::boss_sister_svalnaAI, npc_icc_spire_frostwyrm, npc_icc_vengeful_fleshreaper::npc_icc_vengeful_fleshreaperAI, npc_icc_nerubar_broodkeeper::npc_icc_nerubar_broodkeeperAI, boss_four_horsemen::boss_four_horsemenAI, boss_razuvious::boss_razuviousAI, boss_sapphiron::boss_sapphironAI, boss_malygos::boss_malygosAI, npc_hover_disk::npc_hover_diskAI, npc_oculus_unstable_sphere::npc_oculus_unstable_sphereAI, npc_oculus_drake::npc_oculus_drakeAI, boss_volkhan::boss_volkhanAI, npc_ulduar_emergency_fire_bot::npc_ulduar_emergency_fire_botAI, boss_razorscale::boss_razorscaleAI, npc_enslaved_proto_drake, npc_wintergarde_gryphon, npc_commander_eligor_dawnbringer::npc_commander_eligor_dawnbringerAI, npc_frostbrood_skytalon::npc_frostbrood_skytalonAI, npc_vehicle_d16_propelled_delivery::npc_vehicle_d16_propelled_deliveryAI, boss_illidan_stormrage, npc_akama_illidan, boss_essence_of_suffering::boss_essence_of_sufferingAI, boss_essence_of_desire::boss_essence_of_desireAI, boss_lady_vashj, boss_vazruden_the_herald, boss_nazan, boss_alar, npc_nether_drake::npc_nether_drakeAI, npc_fel_guard_hound::npc_fel_guard_houndAI, npc_mature_netherwing_drake::npc_mature_netherwing_drakeAI, npc_korkron_or_wildhammer, npc_pet_gen_plump_turkey, npc_pet_gen_toxic_wasteling, npc_thassarian2::npc_thassarian2AI, npc_leryssa::npc_leryssaAI, boss_mr_smite::boss_mr_smiteAI, boss_servant_quarters, npc_scarlet_ghoul::npc_scarlet_ghoulAI, npc_highlord_darion_mograine::npc_highlord_darion_mograineAI, boss_felmyst, npc_hallows_end_soh, boss_headless_horseman, boss_lieutenant_drake, npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, boss_saviana_ragefire::boss_saviana_ragefireAI, boss_sindragosa::boss_sindragosaAI, npc_spinestalker::npc_spinestalkerAI, npc_rimefang::npc_rimefangAI, npc_lk_spirit_bomb::npc_lk_spirit_bombAI, boss_sjonnir_malformed_ooze::boss_sjonnir_malformed_oozeAI, boss_stormcaller_brundir::boss_stormcaller_brundirAI, npc_injured_7th_legion_soldier::npc_injured_7th_legion_soldierAI, boss_shade_of_akama, npc_akama_shade, npc_ashtongue_sorcerer, npc_shattered_hand_scout, boss_kaelthas, npc_pet_dk_ebon_gargoyle, boss_sartharion_dragonAI, boss_majordomo::boss_majordomoAI, npc_apothecary_genericAI, npc_chained_spirit, npc_omen::npc_omenAI, boss_jedoga_shadowseeker, gunship_npc_AI, npc_gunship_boarding_addAI, npc_gunship_mage::npc_gunship_mageAI, npc_gunship_gunner::npc_gunship_gunnerAI, npc_gunship_rocketeer::npc_gunship_rocketeerAI, boss_the_lich_king::boss_the_lich_kingAI, npc_wild_wyrm::npc_wild_wyrmAI, boss_ghazan, npc_burning_spirit::npc_burning_spiritAI, boss_kagani_nightstrike, npc_balance_of_light_and_shadow::npc_balance_of_light_and_shadowAI, npc_dark_iron_guzzler, npc_sergeant_bly::npc_sergeant_blyAI, npc_weegli_blastfuse::npc_weegli_blastfuseAI, npc_announcer_toc5::npc_announcer_toc5AI, npc_hor_lich_king::npc_hor_lich_kingAI, npc_hor_leader_second::npc_hor_leader_secondAI, npc_ball_of_flame::npc_ball_of_flameAI, npc_assembly_lightning::npc_assembly_lightningAI, npc_hodirs_fury::npc_hodirs_furyAI, npc_xt002_scrapbot::npc_xt002_scrapbotAI, npc_xt002_boombot::npc_xt002_boombotAI, npc_preparations_for_war_vehicle, npc_vics_flying_machine::npc_vics_flying_machineAI, npc_iron_watcher::npc_iron_watcherAI, npc_freed_protodrake::npc_freed_protodrakeAI, npc_released_offspring_harkoa::npc_released_offspring_harkoaAI, boss_warchief_kargath_bladefist, boss_ymiron::boss_ymironAI, npc_marzon_silent_blade::npc_marzon_silent_bladeAI, boss_glob_of_viscidus, boss_icehowl::boss_icehowlAI, npc_oculus_drakegiver::npc_oculus_drakegiverAI, boss_flame_leviathan_safety_container::boss_flame_leviathan_safety_containerAI, boss_skadi_grauf::boss_skadi_graufAI, npc_dragonmaw_peon::npc_dragonmaw_peonAI, dragonmaw_race_npc, ScriptedAI, npc_escortAI, npc_akilzon_eagle, npc_janalai_hatcher, and npc_attracted_reef_bull::npc_attracted_reef_bullAI.

161{}

Referenced by RotateMovementGenerator::Finalize(), EffectMovementGenerator::Finalize(), WaypointMovementGenerator< Creature >::MovementInform(), and SplineHandler::operator()().

◆ OnAuraRemove()

virtual void CreatureAI::OnAuraRemove ( AuraApplication ,
AuraRemoveMode   
)
inlinevirtual

Reimplemented in boss_taldaram, and boss_high_nethermancer_zerevor.

232{ }

Referenced by Unit::_UnapplyAura().

◆ OnCharmed()

◆ OnSpellCastFinished()

virtual void CreatureAI::OnSpellCastFinished ( SpellInfo const *  ,
SpellFinishReason   
)
inlinevirtual

Reimplemented in BossAI.

151{}

Referenced by Unit::InterruptSpell(), and BossAI::OnSpellCastFinished().

◆ OnSpellClick()

◆ OnTeleportUnreacheablePlayer()

virtual bool CreatureAI::OnTeleportUnreacheablePlayer ( Player )
inlinevirtual

Reimplemented in boss_mandokir::boss_mandokirAI.

229{ return false; }

◆ OwnerAttacked()

virtual void CreatureAI::OwnerAttacked ( Unit )
inlinevirtual

Reimplemented in PetAI, and npc_pet_gen_valkyr_guardian.

180{}

◆ OwnerAttackedBy()

virtual void CreatureAI::OwnerAttackedBy ( Unit )
inlinevirtual

Reimplemented in PetAI, and npc_scarlet_ghoul::npc_scarlet_ghoulAI.

177{}

Referenced by Unit::DealDamage().

◆ PassengerBoarded()

◆ PathEndReached()

◆ PetStopAttack()

virtual void CreatureAI::PetStopAttack ( )
inlinevirtual

Reimplemented in PetAI.

214{ }

Referenced by Pet::Update().

◆ ReceiveEmote()

◆ SetBoundary()

◆ SetGazeOn()

void CreatureAI::SetGazeOn ( Unit target)
protected
261{
262 if (me->IsValidAttackTarget(target))
263 {
264 AttackStart(target);
266 }
267}
@ REACT_PASSIVE
Definition Unit.h:549
void SetReactState(ReactStates state)
A creature can have 3 ReactStates : Agressive, Passive, Neutral.
Definition Creature.h:95
bool IsValidAttackTarget(Unit const *target, SpellInfo const *bySpell=nullptr) const
Definition Unit.cpp:13972

References UnitAI::AttackStart(), Unit::IsValidAttackTarget(), me, REACT_PASSIVE, and Creature::SetReactState().

Referenced by boss_gluth::boss_gluthAI::MoveInLineOfSight(), npc_pet_dk_ebon_gargoyle::MySelectNextTarget(), and npc_pet_dk_ebon_gargoyle::UpdateAI().

◆ SpellHit()

virtual void CreatureAI::SpellHit ( Unit ,
SpellInfo const *   
)
inlinevirtual

Reimplemented in TotemAI, ScriptedAI, npc_mistress_of_pain::npc_mistress_of_painAI, npc_kerlonian::npc_kerlonianAI, npc_ringo::npc_ringoAI, boss_pyroguard_emberseer::boss_pyroguard_emberseerAI, npc_netherspite_infernal, boss_terestian_illhoof, boss_strawman, boss_julianne, boss_halazzi, npc_harrison_jones, npc_crate_helper::npc_crate_helperAI, boss_buru, boss_ossirian, npc_omen::npc_omenAI, npc_taskmaster_fizzule::npc_taskmaster_fizzuleAI, boss_eadric::boss_eadricAI, npc_black_knight_ghoul::npc_black_knight_ghoulAI, boss_grand_champion::boss_grand_championAI, npc_frost_sphere::npc_frost_sphereAI, boss_prince_keleseth_icc::boss_prince_kelesethAI, boss_prince_taldaram_icc::boss_prince_taldaramAI, boss_prince_valanar_icc::boss_prince_valanarAI, npc_high_overlord_saurfang_icc::npc_high_overlord_saurfangAI, npc_muradin_bronzebeard_icc::npc_muradin_bronzebeard_iccAI, npc_saurfang_event::npc_saurfang_eventAI, npc_cult_fanatic::npc_cult_fanaticAI, npc_cult_adherent::npc_cult_adherentAI, npc_putricide_oozeAI, boss_the_lich_king::boss_the_lich_kingAI, npc_tirion_fordring_tft::npc_tirion_fordringAI, boss_valithria_dreamwalker::boss_valithria_dreamwalkerAI, npc_argent_captainAI, npc_gothik_trigger::npc_gothik_triggerAI, boss_malygos::boss_malygosAI, boss_urom::boss_uromAI, boss_ionar::boss_ionarAI, npc_ulduar_toasty_fire::npc_ulduar_toasty_fireAI, npc_ulduar_hodir_priest::npc_ulduar_hodir_priestAI, npc_ulduar_hodir_druid::npc_ulduar_hodir_druidAI, npc_ulduar_hodir_shaman::npc_ulduar_hodir_shamanAI, npc_ulduar_hodir_mage::npc_ulduar_hodir_mageAI, npc_ulduar_iron_construct::npc_ulduar_iron_constructAI, npc_ulduar_leviathan_mkii::npc_ulduar_leviathan_mkiiAI, npc_ulduar_vx001::npc_ulduar_vx001AI, npc_ulduar_aerial_command_unit::npc_ulduar_aerial_command_unitAI, npc_ulduar_flames_spread::npc_ulduar_flames_spreadAI, npc_ichor_globule::npc_ichor_globuleAI, npc_wintergarde_gryphon, npc_frostbrood_skytalon::npc_frostbrood_skytalonAI, npc_vics_flying_machine::npc_vics_flying_machineAI, npc_captured_rageclaw::npc_captured_rageclawAI, npc_maiev_illidan, boss_shade_of_akama, npc_infernal_attacker::npc_infernal_attackerAI, npc_shadowmoon_tuber_node::npc_shadowmoon_tuber_nodeAI, npc_artorius::npc_artoriusAI, npc_simone::npc_simoneAI, npc_nelson::npc_nelsonAI, npc_franklin::npc_franklinAI, npc_venomhide_hatchling::npc_venomhide_hatchlingAI, npc_necropolis, npc_necropolis_health, npc_necropolis_relay, boss_majordomo::boss_majordomoAI, boss_attumen, npc_balance_of_light_and_shadow::npc_balance_of_light_and_shadowAI, npc_dark_iron_guzzler, boss_headless_horseman, boss_headless_horseman_pumpkin, npc_pilgrims_bounty_chair, npc_pilgrims_bounty_plate, boss_veklor, npc_rabid_thistle_bear::npc_rabid_thistle_bearAI, npc_isle_of_conquest_turret::npc_isle_of_conquest_turretAI, boss_steelbreaker::boss_steelbreakerAI, boss_runemaster_molgeim::boss_runemaster_molgeimAI, boss_stormcaller_brundir::boss_stormcaller_brundirAI, npc_pool_of_tar::npc_pool_of_tarAI, boss_freya::boss_freyaAI, boss_hodir::boss_hodirAI, boss_mimiron::boss_mimironAI, boss_thorim_pillar::boss_thorim_pillarAI, boss_thorim_runic_colossus::boss_thorim_runic_colossusAI, boss_yoggsaron::boss_yoggsaronAI, npc_ulduar_keeper::npc_ulduar_keeperAI, npc_overlord_drakuru_betrayal::npc_overlord_drakuru_betrayalAI, npc_earthen_ring_flamecaller, npc_pet_darting_hatchling, npc_necropolis_proxy, npc_death_knight_initiate::npc_death_knight_initiateAI, boss_tenris_mirkblood, npc_forest_frog, npc_zulian_prowler::npc_zulian_prowlerAI, npc_midsummer_ribbon_pole_target, npc_draenei_survivor::npc_draenei_survivorAI, npc_aged_dying_ancient_kodo::npc_aged_dying_ancient_kodoAI, npc_troll_volunteer::npc_troll_volunteerAI, boss_jaraxxus::boss_jaraxxusAI, boss_sister_svalna::boss_sister_svalnaAI, boss_faerlina::boss_faerlinaAI, boss_razuvious::boss_razuviousAI, npc_living_constellation::npc_living_constellationAI, boss_ignis::boss_ignisAI, boss_razorscale::boss_razorscaleAI, npc_sinkhole_kill_credit::npc_sinkhole_kill_creditAI, npc_torturer_lecraft::npc_torturer_lecraftAI, npc_wounded_skirmisher, npc_venture_co_straggler::npc_venture_co_stragglerAI, npc_tournament_training_dummy::npc_tournament_training_dummyAI, npc_brunnhildar_prisoner::npc_brunnhildar_prisonerAI, npc_drakuru_shackles::npc_drakuru_shacklesAI, boss_kaelthas, advisor_baseAI, npc_deaths_door_fell_cannon_target_bunny::npc_deaths_door_fell_cannon_target_bunnyAI, npc_nether_drake::npc_nether_drakeAI, npc_enslaved_netherwing_drake, npc_dragonmaw_peon::npc_dragonmaw_peonAI, npc_injured_patient::npc_injured_patientAI, npc_garments_of_quests::npc_garments_of_questsAI, npc_necrotic_shard, PetAI, npc_greengill_slave::npc_greengill_slaveAI, npc_dark_iron_attack_generator, npc_soh_fire_trigger, npc_hallows_end_train_fire, boss_headless_horseman_head, npc_midsummer_bonfire, npc_cos_stratholme_citizien::npc_cos_stratholme_citizienAI, boss_viscidus, boss_magus_telestra, boss_flame_leviathan::boss_flame_leviathanAI, boss_thorim::boss_thorimAI, boss_yoggsaron_immortal_guardian::boss_yoggsaron_immortal_guardianAI, npc_attracted_reef_bull::npc_attracted_reef_bullAI, npc_still_at_it_trigger::npc_still_at_it_triggerAI, npc_jungle_punch_target::npc_jungle_punch_targetAI, npc_iron_watcher::npc_iron_watcherAI, npc_wild_wyrm::npc_wild_wyrmAI, npc_mature_netherwing_drake::npc_mature_netherwing_drakeAI, npc_beryl_sorcerer::npc_beryl_sorcererAI, npc_imprisoned_beryl_sorcerer::npc_imprisoned_beryl_sorcererAI, and SmartAI.

145{}

Referenced by Spell::DoAllEffectOnTarget().

◆ SpellHitTarget()

virtual void CreatureAI::SpellHitTarget ( Unit ,
SpellInfo const *   
)
inlinevirtual

Reimplemented in ScriptedAI, boss_black_knight::boss_black_knightAI, boss_bronjahm::boss_bronjahmAI, boss_garfrost::boss_garfrostAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, npc_vengeful_shade::npc_vengeful_shadeAI, npc_putricide_oozeAI, boss_the_lich_king::boss_the_lich_kingAI, npc_maghar_captive::npc_maghar_captiveAI, npc_kurenai_captive::npc_kurenai_captiveAI, npc_necropolis_relay, boss_quartermaster_zigris, npc_demonic_vapor_trail, boss_headless_horseman_head, boss_taldaram, boss_moorabi::boss_moorabiAI, boss_volkhan::boss_volkhanAI, boss_stormcaller_brundir::boss_stormcaller_brundirAI, boss_ymiron::boss_ymironAI, npc_necropolis_proxy, npc_necrotic_shard, npc_frostwing_vrykul::npc_frostwing_vrykulAI, boss_felmyst, boss_malchezaar, boss_onyxia, npc_black_knight_ghoul::npc_black_knight_ghoulAI, npc_nerubian_burrower::npc_nerubian_burrowerAI, boss_devourer_of_souls::boss_devourer_of_soulsAI, npc_hor_lich_king::npc_hor_lich_kingAI, boss_ick::boss_ickAI, npc_pos_collapsing_icicle::npc_pos_collapsing_icicleAI, npc_pos_leader_second::npc_pos_leader_secondAI, boss_festergut::boss_festergutAI, boss_lady_deathwhisper::boss_lady_deathwhisperAI, boss_lord_marrowgar, boss_rotface::boss_rotfaceAI, boss_sindragosa::boss_sindragosaAI, boss_sister_svalna::boss_sister_svalnaAI, npc_icc_valkyr_herald::npc_icc_valkyr_heraldAI, npc_oculus_drake::npc_oculus_drakeAI, boss_flame_leviathan::boss_flame_leviathanAI, boss_freya::boss_freyaAI, boss_vezax::boss_vezaxAI, boss_hodir::boss_hodirAI, npc_ulduar_hodir_shaman::npc_ulduar_hodir_shamanAI, npc_ulduar_proximity_mine::npc_ulduar_proximity_mineAI, npc_ulduar_rocket_strike_trigger::npc_ulduar_rocket_strike_triggerAI, boss_cyanigosa::boss_cyanigosaAI, npc_q24545_lich_king::npc_q24545_lich_kingAI, npc_simon_bunny::npc_simon_bunnyAI, boss_lethon::boss_lethonAI, SmartAI, npc_chesspiece, boss_darkmaster_gandling::boss_darkmaster_gandlingAI, boss_zuljin, boss_headless_horseman, npc_pilgrims_bounty_chair, boss_epoch::boss_epochAI, boss_ouro, npc_anubisath_sentinel::aqsentinelAI, boss_grobbulus::boss_grobbulusAI, boss_sapphiron::boss_sapphironAI, boss_thorim::boss_thorimAI, npc_xt002_heart::npc_xt002_heartAI, boss_yoggsaron_sara::boss_yoggsaron_saraAI, boss_yoggsaron_voice::boss_yoggsaron_voiceAI, boss_skadi_grauf::boss_skadi_graufAI, boss_emalon::boss_emalonAI, npc_overlord_drakuru_betrayal::npc_overlord_drakuru_betrayalAI, boss_shirrak_the_dead_watcher, npc_pet_gen_soul_trader_beacon, npc_pet_gen_fetch_ball, and npc_necropolis_health.

148{}

Referenced by Spell::DoAllEffectOnTarget().

◆ SummonedCreatureDespawn()

virtual void CreatureAI::SummonedCreatureDespawn ( Creature )
inlinevirtual

Reimplemented in ScriptedAI, boss_darkmaster_gandling::boss_darkmaster_gandlingAI, npc_arthas::npc_arthasAI, boss_gothik::boss_gothikAI, boss_flame_leviathan::boss_flame_leviathanAI, npc_freya_ward::npc_freya_wardAI, npc_mimirons_inferno::npc_mimirons_infernoAI, boss_kologarn::boss_kologarnAI, boss_xt002::boss_xt002AI, boss_rend_blackhand::boss_rend_blackhandAI, npc_cork_gizelton::npc_cork_gizeltonAI, boss_ichoron::boss_ichoronAI, boss_xevozz::boss_xevozzAI, boss_zuramat::boss_zuramatAI, npc_vh_void_sentry::npc_vh_void_sentryAI, boss_twin_valkyrAI, npc_hor_lich_king::npc_hor_lich_kingAI, npc_pos_leader::npc_pos_leaderAI, npc_pos_martin_or_gorkun_second::npc_pos_martin_or_gorkun_secondAI, boss_prince_taldaram_icc::boss_prince_taldaramAI, npc_icc_valkyr_herald::npc_icc_valkyr_heraldAI, boss_vezax::boss_vezaxAI, boss_hodir::boss_hodirAI, boss_mimiron::boss_mimironAI, npc_ulduar_aerial_command_unit::npc_ulduar_aerial_command_unitAI, BossAI, WorldBossAI, npc_echo_of_medivh, boss_kormok, npc_bh_thalorien_dawnseeker::npc_bh_thalorien_dawnseekerAI, npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, boss_ossirian, boss_amanitar, boss_drakkari_colossus::boss_drakkari_colossusAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, boss_lady_deathwhisper::boss_lady_deathwhisperAI, npc_precious_icc::npc_precious_iccAI, boss_sindragosa::boss_sindragosaAI, boss_valithria_dreamwalker::boss_valithria_dreamwalkerAI, npc_gothik_trigger::npc_gothik_triggerAI, boss_grobbulus::boss_grobbulusAI, npc_q24545_lich_king::npc_q24545_lich_kingAI, npc_tirions_gambit_tirion::npc_tirions_gambit_tirionAI, boss_nexusprince_shaffar, boss_supremus, boss_hydross_the_unstable, boss_vazruden_the_herald, npc_deathstalker_fearleia, and SmartAI.

138{}

◆ SummonedCreatureDespawnAll()

virtual void CreatureAI::SummonedCreatureDespawnAll ( )
inlinevirtual

Reimplemented in BossAI.

140{}

Referenced by Creature::DespawnOnEvade().

◆ SummonedCreatureDies()

virtual void CreatureAI::SummonedCreatureDies ( Creature ,
Unit  
)
inlinevirtual

Reimplemented in boss_rend_blackhand::boss_rend_blackhandAI, boss_priestess_delrissa, boss_moam, boss_anub_arak::boss_anub_arakAI, boss_sartharion_shadron::boss_sartharion_shadronAI, boss_sartharion_vesperon::boss_sartharion_vesperonAI, boss_loatheb::boss_loathebAI, boss_the_lurker_below, boss_taerar::boss_taerarAI, npc_nelson::npc_nelsonAI, npc_arthas::npc_arthasAI, boss_anubrekhan::boss_anubrekhanAI, boss_gluth::boss_gluthAI, boss_auriaya::boss_auriayaAI, boss_emalon::boss_emalonAI, boss_dorothee, npc_highlord_darion_mograine::npc_highlord_darion_mograineAI, npc_daphne_stilwell::npc_daphne_stilwellAI, npc_time_rift, boss_cthun, npc_cork_gizelton::npc_cork_gizeltonAI, npc_grimstone::npc_grimstoneAI, boss_victor_nefarius::boss_victor_nefariusAI, npc_drakonid_spawner, boss_majordomo::boss_majordomoAI, boss_ragnaros::boss_ragnarosAI, npc_koltira_deathweaver::npc_koltira_deathweaverAI, boss_apothecary_hummel::boss_apothecary_hummelAI, npc_kiljaeden_controller, npc_varian_wrynn::npc_varian_wrynnAI, npc_thrall_bfu::npc_thrall_bfuAI, boss_hazzarah, npc_coren_direbrew, npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, boss_elder_nadox, boss_krik_thir::boss_krik_thirAI, boss_drakkari_colossus::boss_drakkari_colossusAI, boss_the_lich_king::boss_the_lich_kingAI, npc_icc_gauntlet_controller::npc_icc_gauntlet_controllerAI, npc_icc_putricades_trap::npc_icc_putricades_trapAI, boss_anzu, npc_akama_illidan, boss_reliquary_of_souls::boss_reliquary_of_soulsAI, npc_creature_generator_akama, boss_the_black_stalker, boss_vazruden_the_herald, boss_warchief_kargath_bladefist, npc_warden_mellichar::npc_warden_mellicharAI, boss_high_botanist_freywinn, SmartAI, boss_selin_fireheart, boss_vexallus, boss_viscidus, and boss_jedoga_shadowseeker.

139{}

Referenced by boss_selin_fireheart::SummonedCreatureDies().

◆ SummonedCreatureEvade()

virtual void CreatureAI::SummonedCreatureEvade ( Creature )
inlinevirtual

Reimplemented in npc_amanishi_tempest, and SmartAI.

142{}

◆ Talk() [1/2]

void CreatureAI::Talk ( uint8  id,
Milliseconds  delay 
)
inline
98{ Talk(id, nullptr, delay); }
Talk
Definition hyjal.cpp:82

References Talk().

Referenced by Talk().

◆ Talk() [2/2]

void CreatureAI::Talk ( uint8  id,
WorldObject const *  target = nullptr,
Milliseconds  delay = 0s 
)

Causes the creature to talk/say the text assigned to their entry in the creature_text database table.

Parameters
uint8id Text ID from creature_text.
WorldObjecttarget The target of the speech, in case it has elements such as $n, where the target's name will be referrenced.
Millisecondsdelay Delay until the creature says the text line. Creatures will talk immediately by default.
54{
55 if (delay > Seconds::zero())
56 {
57 ObjectGuid targetGuid;
58
59 if (target)
60 targetGuid = target->GetGUID();
61
62 me->m_Events.AddEventAtOffset([this, id, targetGuid]()
63 {
64 // Target can be nullptr here, it will be handled inside the function.
65 sCreatureTextMgr->SendChat(me, id, ObjectAccessor::GetUnit(*me, targetGuid));
66 }, delay);
67 }
68 else
69 sCreatureTextMgr->SendChat(me, id, target);
70}
#define sCreatureTextMgr
Definition CreatureTextMgr.h:119
void AddEventAtOffset(BasicEvent *event, Milliseconds offset)
Definition EventProcessor.h:107
Definition ObjectGuid.h:118
EventProcessor m_Events
Definition Object.h:731
Unit * GetUnit(WorldObject const &, ObjectGuid const guid)
Definition ObjectAccessor.cpp:199

References EventProcessor::AddEventAtOffset(), Object::GetGUID(), ObjectAccessor::GetUnit(), WorldObject::m_Events, me, and sCreatureTextMgr.

Referenced by BattlegroundAV::ChangeMineOwner(), npc_still_at_it_trigger::npc_still_at_it_triggerAI::CheckAction(), npc_riggle_bassbait::npc_riggle_bassbaitAI::CheckTournamentState(), DelayedTalk::Execute(), UtherBatteredHiltEvent::Execute(), CaptainSurviveTalk::Execute(), ChargeRifts::Execute(), npc_anachronos_the_ancient::npc_anachronos_the_ancientAI::HandleAnimation(), spell_item_lil_xt::HandleDummy(), spell_q12096_q12092_dummy::HandleDummy(), spell_q12589_shoot_rjr::HandleDummy(), spell_herald_volzaj_insanity::HandleDummyEffect(), spell_chapter2_persuasive_strike::HandleHit(), spell_chapter5_return_to_capital::HandleHit(), spell_festergut_pungent_blight::HandleScript(), spell_rotface_large_ooze_combine::HandleScript(), spell_rotface_large_ooze_buff_combine::HandleScript(), spell_q13011_bear_flank_master::HandleScript(), spell_volazj_whisper::HandleScriptEffect(), spell_marrowgar_bone_spike_graveyard::HandleSpikes(), npc_mr_bigglesworth::JustDied(), boss_anubrekhan::boss_anubrekhanAI::JustSummoned(), npc_eris_hevenfire::npc_eris_hevenfireAI::JustSummoned(), boss_midnight::JustSummoned(), npc_maghar_captive::npc_maghar_captiveAI::JustSummoned(), npc_kurenai_captive::npc_kurenai_captiveAI::JustSummoned(), npc_love_in_air_supply_sentry::MoveInLineOfSight(), instance_blackrock_spire::instance_blackrock_spireMapScript::OnCreatureCreate(), go_main_chambers_access_panel::OnGossipHello(), npc_hyjal_jaina::OnGossipSelect(), npc_hyjal_thrall::OnGossipSelect(), boss_doomrel::OnGossipSelect(), boss_majordomo::OnGossipSelect(), npc_ulduar_keeper::OnGossipSelect(), npc_vekjik::OnGossipSelect(), npc_adventurous_dwarf::OnGossipSelect(), npc_daphne_stilwell::OnQuestAccept(), npc_kerlonian::OnQuestAccept(), npc_gilthares::OnQuestAccept(), npc_lakota_windsong::OnQuestAccept(), npc_paoka_swiftmountain::OnQuestAccept(), npc_engineer_helice::OnQuestAccept(), npc_maghar_captive::OnQuestAccept(), npc_deathstalker_erland::OnQuestAccept(), npc_kaya_flathoof::OnQuestAccept(), npc_wizzlecrank_shredder::OnQuestAccept(), npc_ame::OnQuestAccept(), npc_ranshalla::OnQuestAccept(), npc_mootoo_the_younger::OnQuestAccept(), npc_bonker_togglevolt::OnQuestAccept(), npc_emily::OnQuestAccept(), npc_bessy::OnQuestAccept(), npc_rocknot::OnQuestReward(), npc_riggle_bassbait::OnQuestReward(), spell_q12937_relief_for_the_fallen::OnRemove(), npc_jungle_punch_target::npc_jungle_punch_targetAI::proceedCwEvent(), SmartScript::ProcessAction(), instance_stratholme::instance_stratholme_InstanceMapScript::ProcessSlaughterEvent(), boss_yoggsaron_lich_king::boss_yoggsaron_lich_kingAI::Say(), boss_yoggsaron_llane::boss_yoggsaron_llaneAI::Say(), boss_yoggsaron_neltharion::boss_yoggsaron_neltharionAI::Say(), npc_still_at_it_trigger::npc_still_at_it_triggerAI::Start(), boss_anubrekhan::boss_anubrekhanAI::SummonedCreatureDies(), npc_barnes::npc_barnesAI::Talk(), npc_love_in_air_snivel_real::Talk(), instance_stratholme::instance_stratholme_InstanceMapScript::Update(), go_blood_drenched_door::go_blood_drenched_doorAI::UpdateAI(), npc_kalecgos_kj::UpdateAI(), npc_winterfin_playmate::UpdateAI(), npc_snowfall_glade_playmate::UpdateAI(), npc_the_biggest_tree::UpdateAI(), npc_high_oracle_soo_roo::UpdateAI(), npc_elder_kekek::UpdateAI(), npc_the_etymidian::UpdateAI(), npc_alexstraza_the_lifebinder::UpdateAI(), npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI::UpdateAI(), boss_prince_valanar_icc::boss_prince_valanarAI::UpdateAI(), npc_still_at_it_trigger::npc_still_at_it_triggerAI::UpdateAI(), npc_commander_dawnforge::npc_commander_dawnforgeAI::UpdateAI(), npc_tooga::npc_toogaAI::UpdateFollowerAI(), npc_ringo::npc_ringoAI::UpdateFollowerAI(), npc_ranger_lilatha::WaypointReached(), npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI::WaypointReached(), npc_ancestral_wolf::npc_ancestral_wolfAI::WaypointReached(), and npc_bessy::npc_bessyAI::WaypointReached().

◆ TriggerAlert()

void CreatureAI::TriggerAlert ( Unit const *  who) const
194{
195 // If there's no target, or target isn't a player do nothing
196 if (!who || !who->IsPlayer())
197 return;
198 // If this unit isn't an NPC, is already distracted, is in combat, is confused, stunned or fleeing, do nothing
200 return;
201 // Only alert for hostiles!
203 return;
204 // Only alert if target is within line of sight
205 if (!me->IsWithinLOSInMap(who))
206 return;
207 // Send alert sound (if any) for this creature
209 // Face the unit (stealthed player) and set distracted state for 5 seconds
210 me->SetFacingTo(me->GetAngle(who->GetPositionX(), who->GetPositionY()));
211 me->StopMoving();
213}
constexpr auto IN_MILLISECONDS
Definition Common.h:53
@ AI_REACTION_ALERT
Definition SharedDefines.h:3490
@ UNIT_STATE_DISTRACTED
Definition UnitDefines.h:182
@ UNIT_STATE_CONFUSED
Definition UnitDefines.h:181
@ UNIT_STATE_FLEEING
Definition UnitDefines.h:177
@ UNIT_STATE_STUNNED
Definition UnitDefines.h:173
bool _IsTargetAcceptable(Unit const *target) const
Definition Creature.cpp:2565
bool IsCivilian() const
Definition Creature.h:75
void SendAIReaction(AiReaction reactionType)
Definition Creature.cpp:2423
void MoveDistract(uint32 time)
Enable the target's distract movement. Doesn't work with UNIT_FLAG_DISABLE_MOVE and if the unit has M...
Definition MotionMaster.cpp:833
void SetFacingTo(float ori)
Definition Unit.cpp:20369
void StopMoving()
Definition Unit.cpp:16733
bool HasUnitState(const uint32 f) const
Definition Unit.h:691
bool IsHostileTo(Unit const *unit) const
Definition Unit.cpp:10306
bool IsWithinLOSInMap(WorldObject const *obj, VMAP::ModelIgnoreFlags ignoreFlags=VMAP::ModelIgnoreFlags::Nothing, LineOfSightChecks checks=LINEOFSIGHT_ALL_CHECKS, Optional< float > collisionHeight={ }, Optional< float > combatReach={ }) const
Definition Object.cpp:1352
float GetAngle(const Position *pos) const
Definition Position.cpp:78

References Creature::_IsTargetAcceptable(), AI_REACTION_ALERT, Position::GetAngle(), Unit::GetMotionMaster(), Position::GetPositionX(), Position::GetPositionY(), Creature::HasReactState(), Unit::HasUnitState(), IN_MILLISECONDS, Creature::IsCivilian(), Object::IsCreature(), Unit::IsEngaged(), Unit::IsHostileTo(), Object::IsPlayer(), WorldObject::IsWithinLOSInMap(), me, MotionMaster::MoveDistract(), REACT_PASSIVE, Creature::SendAIReaction(), Unit::SetFacingTo(), Unit::StopMoving(), UNIT_STATE_CONFUSED, UNIT_STATE_DISTRACTED, UNIT_STATE_FLEEING, and UNIT_STATE_STUNNED.

Referenced by CreatureUnitRelocationWorker().

◆ UpdateVictim()

bool CreatureAI::UpdateVictim ( )
protected
288{
289 if (!me->IsEngaged())
290 return false;
291
293 {
294 if (Unit* victim = me->SelectVictim())
295 AttackStart(victim);
296 return me->GetVictim();
297 }
298 // xinef: if we have any victim, just return true
299 else if (me->GetVictim() && me->GetExactDist(me->GetVictim()) < 30.0f)
300 return true;
301 else if (me->GetThreatMgr().isThreatListEmpty())
302 {
304 return false;
305 }
306
307 return true;
308}
Unit * SelectVictim()
Definition Unit.cpp:14834
bool isThreatListEmpty() const
Definition ThreatMgr.h:224
float GetExactDist(float x, float y, float z) const
Definition Position.h:182

References UnitAI::AttackStart(), EnterEvadeMode(), Position::GetExactDist(), Unit::GetThreatMgr(), Unit::GetVictim(), Creature::HasReactState(), Unit::IsEngaged(), ThreatMgr::isThreatListEmpty(), me, REACT_PASSIVE, and Creature::SelectVictim().

Referenced by SmartAI::JustReachedHome(), boss_four_horsemen::boss_four_horsemenAI::MovementInform(), npc_daphne_stilwell::npc_daphne_stilwellAI::Update(), npc_flameshocker::UpdateAI(), npc_pallid_horror::UpdateAI(), boss_sartharion_dragonAI::UpdateAI(), CombatAI::UpdateAI(), CasterAI::UpdateAI(), ArcherAI::UpdateAI(), TurretAI::UpdateAI(), ReactorAI::UpdateAI(), ScriptedAI::UpdateAI(), BossAI::UpdateAI(), WorldBossAI::UpdateAI(), SmartAI::UpdateAI(), npc_av_marshal_or_warmaster::npc_av_marshal_or_warmasterAI::UpdateAI(), boss_drekthar::boss_drektharAI::UpdateAI(), boss_galvangar::boss_galvangarAI::UpdateAI(), boss_vanndar::boss_vanndarAI::UpdateAI(), npc_phalanx::npc_phalanxAI::UpdateAI(), boss_ambassador_flamelash::boss_ambassador_flamelashAI::UpdateAI(), boss_anubshiah::boss_anubshiahAI::UpdateAI(), boss_emperor_dagran_thaurissan::boss_draganthaurissanAI::UpdateAI(), boss_eviscerator::boss_evisceratorAI::UpdateAI(), boss_general_angerforge::boss_general_angerforgeAI::UpdateAI(), boss_gorosh_the_dervish::boss_gorosh_the_dervishAI::UpdateAI(), boss_grizzle::boss_grizzleAI::UpdateAI(), boss_hedrum::boss_hedrumAI::UpdateAI(), boss_high_interrogator_gerstahn::boss_high_interrogator_gerstahnAI::UpdateAI(), boss_magmus::boss_magmusAI::UpdateAI(), boss_moira_bronzebeardAI::UpdateAI(), boss_high_priestess_thaurissanAI::UpdateAI(), boss_okthor::boss_okthorAI::UpdateAI(), boss_doomrel::boss_doomrelAI::UpdateAI(), boss_drakkisath::boss_drakkisathAI::UpdateAI(), boss_gyth::boss_gythAI::UpdateAI(), boss_halycon::boss_halyconAI::UpdateAI(), boss_highlord_omokk::boss_highlordomokkAI::UpdateAI(), boss_lord_valthalak::boss_lord_valthalakAI::UpdateAI(), boss_mor_grayhoof::UpdateAI(), boss_overlord_wyrmthalak::boss_overlordwyrmthalakAI::UpdateAI(), boss_pyroguard_emberseer::boss_pyroguard_emberseerAI::UpdateAI(), npc_blackhand_incarcerator::npc_blackhand_incarceratorAI::UpdateAI(), boss_quartermaster_zigris::UpdateAI(), boss_rend_blackhand::boss_rend_blackhandAI::UpdateAI(), npc_rookery_hatcher::npc_rookery_hatcherAI::UpdateAI(), boss_solakar_flamewreath::boss_solakar_flamewreathAI::UpdateAI(), boss_the_beast::boss_thebeastAI::UpdateAI(), boss_urok_doomhowl::boss_urok_doomhowlAI::UpdateAI(), npc_vaelastrasz_the_red::npc_vaelastrasz_the_redAI::UpdateAI(), boss_broodlord::boss_broodlordAI::UpdateAI(), boss_chromaggus::boss_chromaggusAI::UpdateAI(), boss_ebonroc::boss_ebonrocAI::UpdateAI(), boss_firemaw::boss_firemawAI::UpdateAI(), boss_flamegor::boss_flamegorAI::UpdateAI(), boss_victor_nefarius::boss_victor_nefariusAI::UpdateAI(), boss_nefarian::UpdateAI(), boss_razorgore::boss_razorgoreAI::UpdateAI(), boss_vaelastrasz::boss_vaelAI::UpdateAI(), boss_garr::boss_garrAI::UpdateAI(), boss_golemagg::boss_golemaggAI::UpdateAI(), npc_core_rager::npc_core_ragerAI::UpdateAI(), boss_majordomo::boss_majordomoAI::UpdateAI(), boss_ragnaros::boss_ragnarosAI::UpdateAI(), npc_flamewaker_priest::npc_flamewaker_priestAI::UpdateAI(), npc_mc_core_hound::npc_mc_core_houndAI::UpdateAI(), npc_lava_spawn::UpdateAI(), boss_mr_smite::boss_mr_smiteAI::UpdateAI(), boss_attumen::UpdateAI(), boss_midnight::UpdateAI(), boss_moroes::UpdateAI(), boss_netherspite::UpdateAI(), boss_nightbane::UpdateAI(), npc_malchezaar_axe::UpdateAI(), boss_servant_quarters::UpdateAI(), boss_shade_of_aran::UpdateAI(), npc_sanguine_spirit::UpdateAI(), npc_kilrek::UpdateAI(), npc_tito::UpdateAI(), boss_roar::UpdateAI(), boss_strawman::UpdateAI(), boss_tinhead::UpdateAI(), boss_crone::UpdateAI(), boss_bigbadwolf::UpdateAI(), boss_julianne::UpdateAI(), boss_romulo::UpdateAI(), boss_priestess_lackey_commonAI::UpdateAI(), npc_death_knight_initiate::npc_death_knight_initiateAI::UpdateAI(), npc_scarlet_ghoul::npc_scarlet_ghoulAI::UpdateAI(), npc_unworthy_initiate::npc_unworthy_initiateAI::UpdateAI(), npc_scarlet_courier::npc_scarlet_courierAI::UpdateAI(), npc_highlord_darion_mograine::npc_highlord_darion_mograineAI::UpdateAI(), boss_darkmaster_gandling::boss_darkmaster_gandlingAI::UpdateAI(), boss_kirtonos_the_herald::boss_kirtonos_the_heraldAI::UpdateAI(), boss_kormok::UpdateAI(), npc_scholomance_occultist::npc_scholomance_occultistAI::UpdateAI(), boss_apothecary_hummel::boss_apothecary_hummelAI::UpdateAI(), npc_apothecary_baxter::UpdateAI(), boss_baroness_anastari::boss_baroness_anastariAI::UpdateAI(), boss_jarien::UpdateAI(), boss_sothos::UpdateAI(), boss_felmyst::UpdateAI(), boss_kalec::UpdateAI(), boss_sathrovarr::UpdateAI(), boss_entropius::UpdateAI(), npc_sunblade_arch_mage::UpdateAI(), boss_twilight_corrupter::UpdateAI(), npc_supervisor_raelen::UpdateAI(), npc_eastvale_peasent::UpdateAI(), npc_partygoer_pather::UpdateAI(), npc_partygoer::UpdateAI(), npc_sentinel_leader::UpdateAI(), npc_sentinel_infiltrator::UpdateAI(), npc_bh_thalorien_dawnseeker::npc_bh_thalorien_dawnseekerAI::UpdateAI(), npc_corporal_keeshan::npc_corporal_keeshanAI::UpdateAI(), npc_lady_sylvanas_windrunner::npc_lady_sylvanas_windrunnerAI::UpdateAI(), npc_varian_wrynn::npc_varian_wrynnAI::UpdateAI(), boss_blight_worm::boss_blight_wormAI::UpdateAI(), npc_thrall_bfu::npc_thrall_bfuAI::UpdateAI(), boss_alyson_antille::UpdateAI(), boss_arlokk::boss_arlokkAI::UpdateAI(), npc_zulian_prowler::npc_zulian_prowlerAI::UpdateAI(), boss_grilek::boss_grilekAI::UpdateAI(), boss_hakkar::boss_hakkarAI::UpdateAI(), boss_hazzarah::UpdateAI(), boss_jindo::UpdateAI(), boss_mandokir::boss_mandokirAI::UpdateAI(), npc_ohgan::npc_ohganAI::UpdateAI(), npc_vilebranch_speaker::UpdateAI(), npc_spawn_of_marli::UpdateAI(), boss_renataki::boss_renatakiAI::UpdateAI(), boss_thekal::UpdateAI(), npc_zealot_lorkhan::UpdateAI(), npc_zealot_zath::UpdateAI(), boss_wushoolay::boss_wushoolayAI::UpdateAI(), npc_coren_direbrew::UpdateAI(), npc_hallows_end_soh::UpdateAI(), boss_headless_horseman::UpdateAI(), boss_azuregos::boss_azuregosAI::UpdateAI(), npc_hyjal_jaina::hyjalJainaAI::UpdateAI(), npc_hyjal_thrall::hyjalThrallAI::UpdateAI(), npc_hyjal_tyrande::hyjalTyrandeAI::UpdateAI(), npc_hyjal_ground_trash::UpdateAI(), npc_hyjal_gargoyle::UpdateAI(), npc_hyjal_frost_wyrm::UpdateAI(), boss_epoch::boss_epochAI::UpdateAI(), boss_infinite_corruptor::boss_infinite_corruptorAI::UpdateAI(), boss_mal_ganis::boss_mal_ganisAI::UpdateAI(), boss_meathook::boss_meathookAI::UpdateAI(), boss_salramm::boss_salrammAI::UpdateAI(), boss_lieutenant_drake::UpdateAI(), boss_isalien::UpdateAI(), boss_onyxia::UpdateAI(), npc_onyxian_lair_guard::UpdateAI(), npc_belnistrasz::npc_belnistraszAI::UpdateAI(), boss_buru::UpdateAI(), boss_moam::UpdateAI(), boss_ossirian::UpdateAI(), npc_anubisath_guardian::UpdateAI(), npc_hivezara_stinger::UpdateAI(), npc_obsidian_destroyer::UpdateAI(), boss_bug_trio::UpdateAI(), boss_cthun::UpdateAI(), npc_eye_tentacle::UpdateAI(), npc_claw_tentacle::UpdateAI(), npc_giant_claw_tentacle::UpdateAI(), npc_giant_eye_tentacle::UpdateAI(), boss_huhuran::UpdateAI(), boss_ouro::UpdateAI(), npc_dirt_mound::UpdateAI(), boss_sartura::UpdateAI(), npc_sartura_royal_guard::UpdateAI(), boss_skeram::UpdateAI(), boss_twinemperorsAI::UpdateAI(), boss_viscidus::UpdateAI(), npc_anubisath_defender::UpdateAI(), npc_vekniss_stinger::UpdateAI(), npc_anubisath_warder::UpdateAI(), npc_death_ravager::npc_death_ravagerAI::UpdateAI(), npc_murkdeep::npc_murkdeepAI::UpdateAI(), npc_rabid_thistle_bear::npc_rabid_thistle_bearAI::UpdateAI(), npc_tharnarian::npc_tharnarianAI::UpdateAI(), npc_tiger_matriarch::npc_tiger_matriarchAI::UpdateAI(), npc_omen::npc_omenAI::UpdateAI(), npc_shenthul::npc_shenthulAI::UpdateAI(), npc_qiraj_war_spawn::npc_qiraj_war_spawnAI::UpdateAI(), npc_aquementas::npc_aquementasAI::UpdateAI(), npc_taskmaster_fizzule::npc_taskmaster_fizzuleAI::UpdateAI(), npc_plucky::npc_pluckyAI::UpdateAI(), npc_cairne_bloodhoof::npc_cairne_bloodhoofAI::UpdateAI(), npc_ame::npc_ameAI::UpdateAI(), npc_sergeant_bly::npc_sergeant_blyAI::UpdateAI(), npc_weegli_blastfuse::npc_weegli_blastfuseAI::UpdateAI(), npc_shadowpriest_sezziz::npc_shadowpriest_sezzizAI::UpdateAI(), boss_elder_nadox::UpdateAI(), npc_ahnkahar_nerubian::UpdateAI(), boss_volazj::UpdateAI(), boss_jedoga_shadowseeker::UpdateAI(), npc_twilight_volunteer::UpdateAI(), boss_anub_arak::boss_anub_arakAI::UpdateAI(), boss_hadronox::boss_hadronoxAI::UpdateAI(), npc_anub_ar_crusher::npc_anub_ar_crusherAI::UpdateAI(), boss_sartharion::boss_sartharionAI::UpdateAI(), npc_twilight_summon::npc_twilight_summonAI::UpdateAI(), boss_baltharus_the_warborn::boss_baltharus_the_warbornAI::UpdateAI(), npc_baltharus_the_warborn_clone::npc_baltharus_the_warborn_cloneAI::UpdateAI(), boss_general_zarithrian::boss_general_zarithrianAI::UpdateAI(), boss_halion::boss_halionAI::UpdateAI(), boss_twilight_halion::boss_twilight_halionAI::UpdateAI(), boss_saviana_ragefire::boss_saviana_ragefireAI::UpdateAI(), boss_eadric::boss_eadricAI::UpdateAI(), boss_paletress::boss_paletressAI::UpdateAI(), npc_memory::npc_memoryAI::UpdateAI(), npc_argent_soldier::npc_argent_soldierAI::UpdateAI(), boss_black_knight::boss_black_knightAI::UpdateAI(), npc_black_knight_ghoul::npc_black_knight_ghoulAI::UpdateAI(), npc_toc5_grand_champion_minion::npc_toc5_grand_champion_minionAI::UpdateAI(), boss_grand_champion::boss_grand_championAI::UpdateAI(), boss_anubarak_trial::boss_anubarak_trialAI::UpdateAI(), npc_swarm_scarab::npc_swarm_scarabAI::UpdateAI(), npc_nerubian_burrower::npc_nerubian_burrowerAI::UpdateAI(), npc_toc_druid::npc_toc_druidAI::UpdateAI(), npc_toc_shaman::npc_toc_shamanAI::UpdateAI(), npc_toc_paladin::npc_toc_paladinAI::UpdateAI(), npc_toc_priest::npc_toc_priestAI::UpdateAI(), npc_toc_shadow_priest::npc_toc_shadow_priestAI::UpdateAI(), npc_toc_warlock::npc_toc_warlockAI::UpdateAI(), npc_toc_mage::npc_toc_mageAI::UpdateAI(), npc_toc_hunter::npc_toc_hunterAI::UpdateAI(), npc_toc_boomkin::npc_toc_boomkinAI::UpdateAI(), npc_toc_warrior::npc_toc_warriorAI::UpdateAI(), npc_toc_dk::npc_toc_dkAI::UpdateAI(), npc_toc_rogue::npc_toc_rogueAI::UpdateAI(), npc_toc_enh_shaman::npc_toc_enh_shamanAI::UpdateAI(), npc_toc_retro_paladin::npc_toc_retro_paladinAI::UpdateAI(), npc_toc_pet_warlock::npc_toc_pet_warlockAI::UpdateAI(), npc_toc_pet_hunter::npc_toc_pet_hunterAI::UpdateAI(), boss_jaraxxus::boss_jaraxxusAI::UpdateAI(), npc_fel_infernal::npc_fel_infernalAI::UpdateAI(), npc_mistress_of_pain::npc_mistress_of_painAI::UpdateAI(), boss_gormok::boss_gormokAI::UpdateAI(), boss_jormungarAI::UpdateAI(), boss_icehowl::boss_icehowlAI::UpdateAI(), boss_twin_valkyrAI::UpdateAI(), boss_dred::boss_dredAI::UpdateAI(), boss_novos::boss_novosAI::UpdateAI(), boss_tharon_ja::boss_tharon_jaAI::UpdateAI(), boss_trollgore::boss_trollgoreAI::UpdateAI(), boss_bronjahm::boss_bronjahmAI::UpdateAI(), boss_devourer_of_souls::boss_devourer_of_soulsAI::UpdateAI(), npc_fos_leader::npc_fos_leaderAI::UpdateAI(), boss_falric::boss_falricAI::UpdateAI(), boss_marwyn::boss_marwynAI::UpdateAI(), npc_ghostly_priest::npc_ghostly_priestAI::UpdateAI(), npc_phantom_mage::npc_phantom_mageAI::UpdateAI(), npc_shadowy_mercenary::npc_shadowy_mercenaryAI::UpdateAI(), npc_spectral_footman::npc_spectral_footmanAI::UpdateAI(), npc_tortured_rifleman::npc_tortured_riflemanAI::UpdateAI(), boss_frostsworn_general::boss_frostsworn_generalAI::UpdateAI(), npc_hor_spiritual_reflection::npc_hor_spiritual_reflectionAI::UpdateAI(), npc_hor_risen_witch_doctor::npc_hor_risen_witch_doctorAI::UpdateAI(), npc_hor_lumbering_abomination::npc_hor_lumbering_abominationAI::UpdateAI(), boss_garfrost::boss_garfrostAI::UpdateAI(), boss_ick::boss_ickAI::UpdateAI(), boss_tyrannus::boss_tyrannusAI::UpdateAI(), npc_pos_leader::npc_pos_leaderAI::UpdateAI(), npc_pos_deathwhisper_necrolyte::npc_pos_deathwhisper_necrolyteAI::UpdateAI(), npc_pos_martin_or_gorkun_second::npc_pos_martin_or_gorkun_secondAI::UpdateAI(), boss_drakkari_colossus::boss_drakkari_colossusAI::UpdateAI(), boss_drakkari_elemental::boss_drakkari_elementalAI::UpdateAI(), npc_living_mojo::npc_living_mojoAI::UpdateAI(), boss_eck::boss_eckAI::UpdateAI(), boss_gal_darah::boss_gal_darahAI::UpdateAI(), boss_moorabi::boss_moorabiAI::UpdateAI(), boss_prince_keleseth_icc::boss_prince_kelesethAI::UpdateAI(), boss_prince_taldaram_icc::boss_prince_taldaramAI::UpdateAI(), boss_prince_valanar_icc::boss_prince_valanarAI::UpdateAI(), npc_dark_nucleus::npc_dark_nucleusAI::UpdateAI(), boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI::UpdateAI(), boss_deathbringer_saurfang::boss_deathbringer_saurfangAI::UpdateAI(), boss_festergut::boss_festergutAI::UpdateAI(), npc_stinky_icc::npc_stinky_iccAI::UpdateAI(), npc_high_overlord_saurfang_igb::npc_high_overlord_saurfang_igbAI::UpdateAI(), npc_muradin_bronzebeard_igb::npc_muradin_bronzebeard_igbAI::UpdateAI(), npc_gunship_boarding_leader::npc_gunship_boarding_leaderAI::UpdateAI(), npc_gunship_boarding_add::npc_gunship_boarding_add_realAI::UpdateAI(), npc_gunship_gunner::npc_gunship_gunnerAI::UpdateAI(), boss_lady_deathwhisper::boss_lady_deathwhisperAI::UpdateAI(), npc_cult_fanatic::npc_cult_fanaticAI::UpdateAI(), npc_cult_adherent::npc_cult_adherentAI::UpdateAI(), npc_vengeful_shade::npc_vengeful_shadeAI::UpdateAI(), npc_darnavan::npc_darnavanAI::UpdateAI(), boss_lord_marrowgar::UpdateAI(), boss_professor_putricide::boss_professor_putricideAI::UpdateAI(), boss_rotface::boss_rotfaceAI::UpdateAI(), npc_little_ooze::npc_little_oozeAI::UpdateAI(), npc_big_ooze::npc_big_oozeAI::UpdateAI(), npc_precious_icc::npc_precious_iccAI::UpdateAI(), boss_sindragosa::boss_sindragosaAI::UpdateAI(), npc_spinestalker::npc_spinestalkerAI::UpdateAI(), npc_rimefang::npc_rimefangAI::UpdateAI(), npc_sindragosa_trash::npc_sindragosa_trashAI::UpdateAI(), boss_the_lich_king::boss_the_lich_kingAI::UpdateAI(), npc_tirion_fordring_tft::npc_tirion_fordringAI::UpdateAI(), npc_shambling_horror_icc::npc_shambling_horror_iccAI::UpdateAI(), npc_raging_spirit::npc_raging_spiritAI::UpdateAI(), npc_terenas_menethil::npc_terenas_menethilAI::UpdateAI(), npc_spirit_warden::npc_spirit_wardenAI::UpdateAI(), npc_risen_archmage::npc_risen_archmageAI::UpdateAI(), npc_blazing_skeleton::npc_blazing_skeletonAI::UpdateAI(), npc_blistering_zombie::npc_blistering_zombieAI::UpdateAI(), npc_gluttonous_abomination::npc_gluttonous_abominationAI::UpdateAI(), npc_rotting_frost_giant::npc_rotting_frost_giantAI::UpdateAI(), npc_crok_scourgebane::npc_crok_scourgebaneAI::UpdateAI(), boss_sister_svalna::boss_sister_svalnaAI::UpdateAI(), npc_captain_arnath::npc_captain_arnathAI::UpdateAI(), npc_captain_brandon::npc_captain_brandonAI::UpdateAI(), npc_captain_grondel::npc_captain_grondelAI::UpdateAI(), npc_captain_rupert::npc_captain_rupertAI::UpdateAI(), npc_frostwing_vrykul::npc_frostwing_vrykulAI::UpdateAI(), npc_icc_skybreaker_hierophant::npc_icc_skybreaker_hierophantAI::UpdateAI(), npc_icc_skybreaker_marksman::npc_icc_skybreaker_marksmanAI::UpdateAI(), npc_icc_skybreaker_vicar::npc_icc_skybreaker_vicarAI::UpdateAI(), npc_icc_skybreaker_luminary::npc_icc_skybreaker_luminaryAI::UpdateAI(), npc_icc_valkyr_herald::npc_icc_valkyr_heraldAI::UpdateAI(), npc_icc_severed_essence::npc_icc_severed_essenceAI::UpdateAI(), npc_icc_spire_frostwyrm::UpdateAI(), npc_icc_vengeful_fleshreaper::npc_icc_vengeful_fleshreaperAI::UpdateAI(), npc_icc_nerubar_broodkeeper::npc_icc_nerubar_broodkeeperAI::UpdateAI(), boss_isle_of_conquest::boss_isle_of_conquestAI::UpdateAI(), boss_four_horsemen::boss_four_horsemenAI::UpdateAI(), boss_gothik::boss_gothikAI::UpdateAI(), boss_grobbulus::boss_grobbulusAI::UpdateAI(), boss_heigan::boss_heiganAI::UpdateAI(), boss_kelthuzad::boss_kelthuzadAI::UpdateAI(), boss_kelthuzad_minion::boss_kelthuzad_minionAI::UpdateAI(), boss_loatheb::boss_loathebAI::UpdateAI(), boss_maexxna::boss_maexxnaAI::UpdateAI(), boss_noth::boss_nothAI::UpdateAI(), boss_patchwerk::boss_patchwerkAI::UpdateAI(), boss_razuvious_minion::boss_razuvious_minionAI::UpdateAI(), boss_sapphiron::boss_sapphironAI::UpdateAI(), boss_thaddius::boss_thaddiusAI::UpdateAI(), boss_thaddius_summon::boss_thaddius_summonAI::UpdateAI(), boss_malygos::boss_malygosAI::UpdateAI(), npc_nexus_lord::npc_nexus_lordAI::UpdateAI(), boss_anomalus::UpdateAI(), boss_keristrasza::UpdateAI(), boss_magus_telestra::UpdateAI(), boss_ormorok::UpdateAI(), npc_crystalline_frayer::UpdateAI(), boss_drakos::boss_drakosAI::UpdateAI(), boss_eregos::boss_eregosAI::UpdateAI(), boss_urom::boss_uromAI::UpdateAI(), boss_varos::boss_varosAI::UpdateAI(), npc_stormforged_lieutenant::npc_stormforged_lieutenantAI::UpdateAI(), boss_ionar::boss_ionarAI::UpdateAI(), boss_loken::boss_lokenAI::UpdateAI(), boss_volkhan::boss_volkhanAI::UpdateAI(), npc_molten_golem::npc_molten_golemAI::UpdateAI(), npc_hol_monument::npc_hol_monumentAI::UpdateAI(), boss_krystallus::boss_krystallusAI::UpdateAI(), boss_maiden_of_grief::boss_maiden_of_griefAI::UpdateAI(), boss_sjonnir::boss_sjonnirAI::UpdateAI(), boss_sjonnir_iron_sludge::boss_sjonnir_iron_sludgeAI::UpdateAI(), boss_algalon_the_observer::boss_algalon_the_observerAI::UpdateAI(), npc_brann_bronzebeard_algalon::npc_brann_bronzebeard_algalonAI::UpdateAI(), npc_living_constellation::npc_living_constellationAI::UpdateAI(), boss_steelbreaker::boss_steelbreakerAI::UpdateAI(), boss_runemaster_molgeim::boss_runemaster_molgeimAI::UpdateAI(), boss_stormcaller_brundir::boss_stormcaller_brundirAI::UpdateAI(), boss_auriaya::boss_auriayaAI::UpdateAI(), npc_auriaya_sanctum_sentry::npc_auriaya_sanctum_sentryAI::UpdateAI(), npc_auriaya_feral_defender::npc_auriaya_feral_defenderAI::UpdateAI(), boss_flame_leviathan::boss_flame_leviathanAI::UpdateAI(), boss_freya::boss_freyaAI::UpdateAI(), boss_freya_elder_stonebark::boss_freya_elder_stonebarkAI::UpdateAI(), boss_freya_elder_brightleaf::boss_freya_elder_brightleafAI::UpdateAI(), boss_freya_elder_ironbranch::boss_freya_elder_ironbranchAI::UpdateAI(), boss_freya_summons::boss_freya_summonsAI::UpdateAI(), boss_vezax::boss_vezaxAI::UpdateAI(), npc_ulduar_saronite_animus::npc_ulduar_saronite_animusAI::UpdateAI(), boss_hodir::boss_hodirAI::UpdateAI(), npc_ulduar_iron_construct::npc_ulduar_iron_constructAI::UpdateAI(), boss_ignis::boss_ignisAI::UpdateAI(), boss_kologarn::boss_kologarnAI::UpdateAI(), npc_ulduar_leviathan_mkii::npc_ulduar_leviathan_mkiiAI::UpdateAI(), npc_ulduar_aerial_command_unit::npc_ulduar_aerial_command_unitAI::UpdateAI(), boss_razorscale::boss_razorscaleAI::UpdateAI(), npc_ulduar_dark_rune_guardian::npc_ulduar_dark_rune_guardianAI::UpdateAI(), npc_ulduar_dark_rune_watcher::npc_ulduar_dark_rune_watcherAI::UpdateAI(), npc_ulduar_dark_rune_sentinel::npc_ulduar_dark_rune_sentinelAI::UpdateAI(), boss_thorim::boss_thorimAI::UpdateAI(), boss_thorim_start_npcs::boss_thorim_start_npcsAI::UpdateAI(), boss_thorim_gauntlet_npcs::boss_thorim_gauntlet_npcsAI::UpdateAI(), boss_thorim_runic_colossus::boss_thorim_runic_colossusAI::UpdateAI(), boss_thorim_ancient_rune_giant::boss_thorim_ancient_rune_giantAI::UpdateAI(), boss_thorim_arena_npcs::boss_thorim_arena_npcsAI::UpdateAI(), boss_xt002::boss_xt002AI::UpdateAI(), npc_xt002_pummeller::npc_xt002_pummellerAI::UpdateAI(), boss_yoggsaron_guardian_of_ys::boss_yoggsaron_guardian_of_ysAI::UpdateAI(), boss_yoggsaron_immortal_guardian::boss_yoggsaron_immortal_guardianAI::UpdateAI(), npc_ulduar_storm_tempered_keeper::npc_ulduar_storm_tempered_keeperAI::UpdateAI(), npc_ulduar_arachnopod_destroyer::npc_ulduar_arachnopod_destroyerAI::UpdateAI(), boss_ingvar_the_plunderer::UpdateAI(), npc_vrykul_skeleton::UpdateAI(), boss_skarvald_the_constructor::UpdateAI(), boss_dalronn_the_controller::UpdateAI(), npc_enslaved_proto_drake::UpdateAI(), boss_palehoof::boss_palehoofAI::UpdateAI(), npc_massive_jormungar::npc_massive_jormungarAI::UpdateAI(), npc_ferocious_rhino::npc_ferocious_rhinoAI::UpdateAI(), npc_ravenous_furbolg::npc_ravenous_furbolgAI::UpdateAI(), npc_frenzied_worgen::npc_frenzied_worgenAI::UpdateAI(), boss_skadi::boss_skadiAI::UpdateAI(), boss_svala::boss_svalaAI::UpdateAI(), boss_ymiron::boss_ymironAI::UpdateAI(), boss_archavon::boss_archavonAI::UpdateAI(), boss_emalon::boss_emalonAI::UpdateAI(), boss_koralon::boss_koralonAI::UpdateAI(), boss_toravon::boss_toravonAI::UpdateAI(), boss_cyanigosa::boss_cyanigosaAI::UpdateAI(), boss_erekem::boss_erekemAI::UpdateAI(), npc_erekem_guard::npc_erekem_guardAI::UpdateAI(), boss_lavanthor::boss_lavanthorAI::UpdateAI(), boss_moragg::boss_moraggAI::UpdateAI(), boss_xevozz::boss_xevozzAI::UpdateAI(), boss_zuramat::boss_zuramatAI::UpdateAI(), npc_azure_invader::npc_azure_invaderAI::UpdateAI(), npc_azure_binder::npc_azure_binderAI::UpdateAI(), npc_azure_mage_slayer::npc_azure_mage_slayerAI::UpdateAI(), npc_azure_raider::npc_azure_raiderAI::UpdateAI(), npc_azure_stalker::npc_azure_stalkerAI::UpdateAI(), npc_azure_spellbreaker::npc_azure_spellbreakerAI::UpdateAI(), npc_azure_captain::npc_azure_captainAI::UpdateAI(), npc_azure_sorceror::npc_azure_sorcerorAI::UpdateAI(), npc_lurgglbr::npc_lurgglbrAI::UpdateAI(), npc_beryl_sorcerer::npc_beryl_sorcererAI::UpdateAI(), npc_imprisoned_beryl_sorcerer::npc_imprisoned_beryl_sorcererAI::UpdateAI(), npc_valiance_keep_cannoneer::npc_valiance_keep_cannoneerAI::UpdateAI(), npc_hidden_cultist::npc_hidden_cultistAI::UpdateAI(), npc_bloodmage_laurith::npc_bloodmage_laurithAI::UpdateAI(), npc_thassarian2::npc_thassarian2AI::UpdateAI(), npc_counselor_talbot::npc_counselor_talbotAI::UpdateAI(), npc_dalaran_mage::npc_dalaran_mageAI::UpdateAI(), npc_dalaran_warrior::npc_dalaran_warriorAI::UpdateAI(), npc_q24545_vegard::npc_q24545_vegardAI::UpdateAI(), npc_torturer_lecraft::npc_torturer_lecraftAI::UpdateAI(), npc_amberpine_woodsman::npc_amberpine_woodsmanAI::UpdateAI(), npc_wounded_skirmisher::UpdateAI(), npc_venture_co_straggler::npc_venture_co_stragglerAI::UpdateAI(), npc_tournament_training_dummy::npc_tournament_training_dummyAI::UpdateAI(), npc_frosthound::npc_frosthoundAI::UpdateAI(), npc_iron_watcher::npc_iron_watcherAI::UpdateAI(), npc_icefang::npc_icefangAI::UpdateAI(), npc_overlord_drakuru_betrayal::npc_overlord_drakuru_betrayalAI::UpdateAI(), npc_crusade_recruit::npc_crusade_recruitAI::UpdateAI(), boss_exarch_maladaar::UpdateAI(), npc_stolen_soul::UpdateAI(), boss_shirrak_the_dead_watcher::UpdateAI(), boss_nexusprince_shaffar::UpdateAI(), npc_yor::UpdateAI(), boss_anzu::UpdateAI(), boss_ambassador_hellmaw::UpdateAI(), boss_blackheart_the_inciter::UpdateAI(), npc_akama_illidan::UpdateAI(), npc_maiev_illidan::UpdateAI(), npc_parasitic_shadowfiend::UpdateAI(), npc_flame_of_azzinoth::UpdateAI(), boss_gathios_the_shatterer::UpdateAI(), boss_high_nethermancer_zerevor::UpdateAI(), boss_lady_malande::UpdateAI(), boss_veras_darkshadow::UpdateAI(), boss_reliquary_of_souls::boss_reliquary_of_soulsAI::UpdateAI(), boss_essence_of_suffering::boss_essence_of_sufferingAI::UpdateAI(), boss_essence_of_desire::boss_essence_of_desireAI::UpdateAI(), boss_essence_of_anger::boss_essence_of_angerAI::UpdateAI(), npc_supremus_punch_invisible_stalker::UpdateAI(), boss_teron_gorefiend::UpdateAI(), boss_doomlord_kazzak::boss_doomlordkazzakAI::UpdateAI(), boss_doomwalker::UpdateAI(), boss_fathomguard_sharkkis::UpdateAI(), boss_fathomguard_tidalvess::UpdateAI(), boss_fathomguard_caribdis::UpdateAI(), boss_lady_vashj::UpdateAI(), boss_leotheras_the_blind::UpdateAI(), npc_inner_demon::UpdateAI(), boss_the_lurker_below::UpdateAI(), boss_ghazan::UpdateAI(), boss_hungarfen::UpdateAI(), boss_the_black_stalker::UpdateAI(), npc_underbat::UpdateAI(), boss_gruul::UpdateAI(), boss_high_king_maulgar::UpdateAI(), boss_olm_the_summoner::UpdateAI(), boss_kiggler_the_crazed::UpdateAI(), boss_blindeye_the_seer::UpdateAI(), boss_krosh_firehand::UpdateAI(), boss_omor_the_unscarred::UpdateAI(), boss_nazan::UpdateAI(), boss_vazruden::UpdateAI(), boss_watchkeeper_gargolmar::UpdateAI(), boss_magtheridon::UpdateAI(), boss_grand_warlock_nethekurse::UpdateAI(), boss_warbringer_omrogg::UpdateAI(), boss_warchief_kargath_bladefist::UpdateAI(), npc_millhouse_manastorm::npc_millhouse_manastormAI::UpdateAI(), boss_alar::UpdateAI(), advisor_baseAI::UpdateAI(), npc_raging_flames::UpdateAI(), npc_nether_drake::npc_nether_drakeAI::UpdateAI(), npc_aeranas::npc_aeranasAI::UpdateAI(), npc_fel_guard_hound::npc_fel_guard_houndAI::UpdateAI(), npc_magister_aledis::UpdateAI(), npc_maghar_captive::npc_maghar_captiveAI::UpdateAI(), npc_captain_saeed::npc_captain_saeedAI::UpdateAI(), npc_mature_netherwing_drake::npc_mature_netherwing_drakeAI::UpdateAI(), npc_enslaved_netherwing_drake::UpdateAI(), npc_dragonmaw_peon::npc_dragonmaw_peonAI::UpdateAI(), npc_illidari_spawn::npc_illidari_spawnAI::UpdateAI(), npc_unkor_the_ruthless::npc_unkor_the_ruthlessAI::UpdateAI(), npc_pet_gen_valkyr_guardian::UpdateAI(), npc_pet_hunter_snake_trap::UpdateAI(), npc_pet_shaman_earth_elemental::UpdateAI(), npc_pet_shaman_fire_elemental::UpdateAI(), emerald_dragonAI::UpdateAI(), npc_dream_fog::npc_dream_fogAI::UpdateAI(), guard_shattrath_scryer::guard_shattrath_scryerAI::UpdateAI(), guard_shattrath_aldor::guard_shattrath_aldorAI::UpdateAI(), npc_artorius::npc_artoriusAI::UpdateAI(), npc_simone::npc_simoneAI::UpdateAI(), npc_nelson::npc_nelsonAI::UpdateAI(), npc_franklin::npc_franklinAI::UpdateAI(), npc_training_dummy::npc_training_dummyAI::UpdateAI(), npc_chicken_cluck::npc_chicken_cluckAI::UpdateAI(), npc_lord_gregor_lescovar::npc_lord_gregor_lescovarAI::UpdateAI(), npc_tyrion_spybot::npc_tyrion_spybotAI::UpdateAI(), boss_ichoron::boss_ichoronAI::UpdateAI(), npc_warmage_coldarra::npc_warmage_coldarraAI::UpdateAI(), AggressorAI::UpdateAI(), npc_dark_fiend::UpdateAI(), npc_marzon_silent_blade::npc_marzon_silent_bladeAI::UpdateAI(), npc_zuljin_vortex::UpdateAI(), npc_batrider::UpdateAI(), npc_hor_raging_ghoul::npc_hor_raging_ghoulAI::UpdateAI(), npc_gunship_rocketeer::npc_gunship_rocketeerAI::UpdateAI(), npc_suppresser::npc_suppresserAI::UpdateAI(), npc_centrifuge_construct::npc_centrifuge_constructAI::UpdateAI(), boss_sjonnir_dwarf::boss_sjonnir_dwarfAI::UpdateAI(), npc_xt002_life_spark::npc_xt002_life_sparkAI::UpdateAI(), boss_yoggsaron_crusher_tentacle::boss_yoggsaron_crusher_tentacleAI::UpdateAI(), npc_future_you::npc_future_youAI::UpdateAI(), npc_mrfloppy::npc_mrfloppyAI::UpdateAI(), npc_bushwhacker::npc_bushwhackerAI::UpdateAI(), npc_infernal_attacker::npc_infernal_attackerAI::UpdateAI(), npc_precious::npc_preciousAI::UpdateAI(), npc_escortAI::UpdateEscortAI(), npc_rinji::npc_rinjiAI::UpdateEscortAI(), npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI::UpdateEscortAI(), npc_general_andorov::UpdateEscortAI(), npc_cork_gizelton::npc_cork_gizeltonAI::UpdateEscortAI(), npc_wizzlecrank_shredder::npc_wizzlecrank_shredderAI::UpdateEscortAI(), npc_onyx_flamecaller::npc_onyx_flamecallerAI::UpdateEscortAI(), boss_bjarngrim::boss_bjarngrimAI::UpdateEscortAI(), npc_apothecary_hanes::npc_Apothecary_HanesAI::UpdateEscortAI(), npc_time_lost_proto_drake::npc_time_lost_proto_drakeAI::UpdateEscortAI(), npc_kurenai_captive::npc_kurenai_captiveAI::UpdateEscortAI(), npc_isla_starmane::npc_isla_starmaneAI::UpdateEscortAI(), npc_bonker_togglevolt::npc_bonker_togglevoltAI::UpdateEscortAI(), npc_kerlonian::npc_kerlonianAI::UpdateFollowerAI(), npc_tooga::npc_toogaAI::UpdateFollowerAI(), npc_ringo::npc_ringoAI::UpdateFollowerAI(), and FollowerAI::UpdateFollowerAI().

◆ UpdateVictimWithGaze()

bool CreatureAI::UpdateVictimWithGaze ( )
protected
270{
271 if (!me->IsEngaged())
272 return false;
273
275 {
276 if (me->GetVictim())
277 return true;
278 else
280 }
281
282 if (Unit* victim = me->SelectVictim())
283 AttackStart(victim);
284 return me->GetVictim();
285}

References UnitAI::AttackStart(), Unit::GetVictim(), Creature::HasReactState(), Unit::IsEngaged(), me, REACT_AGGRESSIVE, REACT_PASSIVE, Creature::SelectVictim(), and Creature::SetReactState().

Referenced by boss_gluth::boss_gluthAI::UpdateAI(), and npc_pet_dk_ebon_gargoyle::UpdateAI().

◆ VisualizeBoundary()

int32 CreatureAI::VisualizeBoundary ( uint32  duration,
Unit owner = nullptr,
bool  fill = false,
bool  checkZ = false 
) const
404{
405 static constexpr float BOUNDARY_STEP = 5.0f;
406 static constexpr uint32 BOUNDARY_VISUALIZE_CREATURE = 21659; // Floaty Flavor Eye
407 static constexpr float BOUNDARY_VISUALIZE_CREATURE_SCALE = 0.25f;
408 static constexpr uint32 BOUNDARY_MAX_SPAWNS = 8000;
409 static constexpr float BOUNDARY_MAX_DISTANCE = MAX_SEARCHER_DISTANCE;
410
411 float boundaryStep = fill && checkZ ? BOUNDARY_STEP * 2 : BOUNDARY_STEP;
412
413 Position const boundaryDirections[6] = {
414 {boundaryStep, 0, 0 },
415 {-boundaryStep, 0, 0 },
416 {0, boundaryStep, 0 },
417 {0, -boundaryStep, 0 },
418 {0, 0, boundaryStep },
419 {0, 0, -boundaryStep}
420 };
421
422 if (!owner)
423 return -1;
424
425 if (!_boundary || _boundary->empty())
427
428 Position startPosition = owner->GetPosition();
429 if (!IsInBoundary(&startPosition)) // fall back to creature position
430 {
431 startPosition = me->GetPosition();
432 if (!IsInBoundary(&startPosition)) // fall back to creature home position
433 {
434 startPosition = me->GetHomePosition();
435 if (!IsInBoundary(&startPosition))
437 }
438 }
439
440 // Helper to spawn visualization creature
441 auto spawnVisualizationCreature = [owner, duration, checkZ](Position const& pos)
442 {
443 if (TempSummon* summon =
444 owner->SummonCreature(BOUNDARY_VISUALIZE_CREATURE, pos, TEMPSUMMON_TIMED_DESPAWN, duration))
445 {
446 summon->SetObjectScale(BOUNDARY_VISUALIZE_CREATURE_SCALE);
447 summon->SetUnitFlag(UNIT_FLAG_STUNNED);
448 summon->SetImmuneToAll(true);
449 summon->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE_2);
450 if (!checkZ)
451 summon->SetDisableGravity(false);
452 }
453 };
454
455 struct PositionHash
456 {
457 std::size_t operator()(Position const& pos) const
458 {
459 // Convert to fixed precision coordinates.
460 // We lose precision here, but we don't care about the exact position
461 int32 x = int32(pos.m_positionX);
462 int32 y = int32(pos.m_positionY);
463 int32 z = int32(pos.m_positionZ);
464
465 return std::hash<int32_t>()(x) ^ std::hash<int32_t>()(y) ^ std::hash<int32_t>()(z);
466 }
467 };
468
469 std::unordered_set<Position, PositionHash> visited;
470 std::queue<Position> queue;
471 queue.push(startPosition);
472 visited.insert(startPosition);
473 uint8 maxDirections = checkZ ? 6 : 4;
474 uint32 spawns = 0;
475
476 while (!queue.empty())
477 {
478 Position currentPosition = queue.front();
479 queue.pop();
480
481 for (uint8 i = 0; i < maxDirections; ++i)
482 {
483 Position const& direction = boundaryDirections[i];
484 Position nextPosition = currentPosition;
485 nextPosition.RelocateOffset(direction);
486
487 if (startPosition.GetExactDist(&nextPosition) > BOUNDARY_MAX_DISTANCE)
488 break;
489
490 if (visited.find(nextPosition) != visited.end())
491 continue; // already visited
492
493 visited.insert(nextPosition);
494
495 bool isInBoundary = IsInBoundary(&nextPosition);
496
497 if ((isInBoundary && fill) || !isInBoundary)
498 {
499 spawnVisualizationCreature(currentPosition);
500 ++spawns;
501 if (spawns > BOUNDARY_MAX_SPAWNS)
503 }
504
505 if (isInBoundary)
506 queue.push(nextPosition); // continue visiting
507 }
508 }
509 return 0;
510}
std::int32_t int32
Definition Define.h:103
std::uint8_t uint8
Definition Define.h:109
std::uint32_t uint32
Definition Define.h:107
@ LANG_CREATURE_MOVEMENT_MAYBE_UNBOUNDED
Definition Language.h:1314
@ LANG_CREATURE_MOVEMENT_NOT_BOUNDED
Definition Language.h:1313
@ LANG_CREATURE_NO_INTERIOR_POINT_FOUND
Definition Language.h:1312
#define MAX_SEARCHER_DISTANCE
Definition ObjectDefines.h:32
@ TEMPSUMMON_TIMED_DESPAWN
Definition Object.h:50
@ UNIT_FLAG_STUNNED
Definition UnitDefines.h:270
@ UNIT_FLAG_NON_ATTACKABLE_2
Definition UnitDefines.h:268
void GetHomePosition(float &x, float &y, float &z, float &ori) const
Definition Creature.h:343
void RelocateOffset(const Position &offset)
Definition Position.cpp:59
float m_positionX
Definition Position.h:55
float m_positionY
Definition Position.h:56
void GetPosition(float &x, float &y) const
Definition Position.h:126

References _boundary, Position::GetExactDist(), Creature::GetHomePosition(), Position::GetPosition(), IsInBoundary(), LANG_CREATURE_MOVEMENT_MAYBE_UNBOUNDED, LANG_CREATURE_MOVEMENT_NOT_BOUNDED, LANG_CREATURE_NO_INTERIOR_POINT_FOUND, Position::m_positionX, Position::m_positionY, Position::m_positionZ, MAX_SEARCHER_DISTANCE, me, Position::RelocateOffset(), WorldObject::SummonCreature(), TEMPSUMMON_TIMED_DESPAWN, UNIT_FLAG_NON_ATTACKABLE_2, and UNIT_FLAG_STUNNED.

Referenced by debug_commandscript::HandleDebugBoundaryCommand().

Member Data Documentation

◆ _boundary

CreatureBoundary const* CreatureAI::_boundary
protected

◆ _negateBoundary

bool CreatureAI::_negateBoundary
protected

Referenced by IsInBoundary(), and SetBoundary().

◆ events

EventMap CreatureAI::events
protected

◆ m_MoveInLineOfSight_locked

bool CreatureAI::m_MoveInLineOfSight_locked
private

Referenced by MoveInLineOfSight_Safe().

◆ me

Creature* const CreatureAI::me
protected

Referenced by PetAI::_canMeleeAttack(), _EnterEvadeMode(), PetAI::_needToStop(), PetAI::_stopAttack(), npc_love_in_air_snivel::AllowAction(), ArcherAI::ArcherAI(), SmartAI::AssistPlayerInCombatAgainst(), PetAI::AttackedBy(), npc_ritual_channeler::npc_ritual_channelerAI::AttackStart(), PossessedAI::AttackStart(), PetAI::AttackStart(), TotemAI::AttackStart(), ArcherAI::AttackStart(), TurretAI::AttackStart(), SmartAI::AttackStart(), npc_ravenous_worg::npc_ravenous_worgAI::AttackStart(), npc_salvaged_siege_engine::BeforeSpellClick(), boss_yoggsaron_brain::boss_yoggsaron_brainAI::boss_yoggsaron_brainAI(), boss_yoggsaron_death_orb::boss_yoggsaron_death_orbAI::boss_yoggsaron_death_orbAI(), boss_yoggsaron_influence_tentacle::boss_yoggsaron_influence_tentacleAI::boss_yoggsaron_influence_tentacleAI(), TurretAI::CanAIAttack(), SmartAI::CanAIAttack(), PetAI::CanAttack(), npc_wg_siege_machine::npc_wg_siege_machineAI::CanControlVehicle(), npc_still_at_it_trigger::npc_still_at_it_triggerAI::CheckAction(), SmartAI::CheckConditions(), VehicleAI::CheckConditions(), boss_skadi_grauf::boss_skadi_graufAI::CheckPlayers(), npc_q24545_lich_king::npc_q24545_lich_kingAI::CleanAll(), PetAI::ClearCharmInfoFlags(), boss_yoggsaron_influence_tentacle::boss_yoggsaron_influence_tentacleAI::DamageTaken(), npc_mc_core_hound::npc_mc_core_houndAI::DamageTaken(), npc_batrider::DamageTaken(), npc_announcer_toc5::npc_announcer_toc5AI::DamageTaken(), npc_frost_sphere::npc_frost_sphereAI::DamageTaken(), npc_gunship::npc_gunshipAI::DamageTaken(), npc_valkyr_shadowguard::npc_valkyr_shadowguardAI::DamageTaken(), npc_power_spark::npc_power_sparkAI::DamageTaken(), npc_collapsing_star::npc_collapsing_starAI::DamageTaken(), npc_xt002_boombot::npc_xt002_boombotAI::DamageTaken(), npc_hor_leader_second::npc_hor_leader_secondAI::DamageTaken(), npc_ice_tomb::npc_ice_tombAI::DamageTaken(), npc_death_knight_initiate::npc_death_knight_initiateAI::DamageTaken(), SmartAI::DamageTaken(), npc_ulduar_flash_freeze::npc_ulduar_flash_freezeAI::DamageTaken(), npc_heated_battle::npc_heated_battleAI::DamageTaken(), npc_infra_green_bomber_generic::npc_infra_green_bomber_genericAI::DamageTaken(), boss_yoggsaron_brain::boss_yoggsaron_brainAI::DamageTaken(), SmartAI::DistanceYourself(), npc_grand_magister_rommath::npc_grand_magister_rommathAI::DoAction(), npc_hor_lich_king::npc_hor_lich_kingAI::DoAction(), boss_krick::boss_krickAI::DoAction(), npc_ulduar_toasty_fire::npc_ulduar_toasty_fireAI::DoAction(), npc_amanishi_lookout::DoAction(), npc_orb_carrier::npc_orb_carrierAI::DoAction(), npc_kinetic_bomb::npc_kinetic_bombAI::DoAction(), npc_bone_spike::npc_bone_spikeAI::DoAction(), npc_strangulate_vehicle::npc_strangulate_vehicleAI::DoAction(), npc_brann_bronzebeard_algalon::npc_brann_bronzebeard_algalonAI::DoAction(), npc_shattrath_daily_quest::DoAction(), npc_hor_leader_second::npc_hor_leader_secondAI::DoAction(), npc_pos_martin_or_gorkun_second::npc_pos_martin_or_gorkun_secondAI::DoAction(), npc_pos_leader_second::npc_pos_leader_secondAI::DoAction(), npc_madrigosa::DoAction(), npc_kalecgos_kj::DoAction(), npc_pilgrims_bounty_chair::DoAction(), npc_icc_gauntlet_controller::npc_icc_gauntlet_controllerAI::DoAction(), npc_icc_putricades_trap::npc_icc_putricades_trapAI::DoAction(), npc_power_spark::npc_power_sparkAI::DoAction(), npc_hover_disk::npc_hover_diskAI::DoAction(), npc_ulduar_bot_summon_trigger::npc_ulduar_bot_summon_triggerAI::DoAction(), npc_xt002_heart::npc_xt002_heartAI::DoAction(), boss_yoggsaron_brain::boss_yoggsaron_brainAI::DoAction(), boss_yoggsaron_keeper::DoAction(), npc_ulduar_keeper::npc_ulduar_keeperAI::DoAction(), boss_skadi_grauf::boss_skadi_graufAI::DoAction(), npc_scarlet_miner_cart::npc_scarlet_miner_cartAI::DoAction(), PetAI::DoAttack(), DoSummon(), DoSummon(), npc_time_rift::DoSummonAtRift(), DoSummonFlyer(), DoZoneInCombat(), npc_ravenclaw_apparition::npc_ravenclaw_apparitionAI::EmoteCrowd(), SmartAI::EndPath(), CritterAI::EnterEvadeMode(), npc_black_morass_summoned_add::EnterEvadeMode(), EnterEvadeMode(), SmartAI::EnterEvadeMode(), TotemAI::EnterEvadeMode(), npc_pos_freed_slave::npc_pos_freed_slaveAI::EnterEvadeMode(), npc_pet_mage_mirror_image::EnterEvadeMode(), npc_xt002_boombot::npc_xt002_boombotAI::Explode(), npc_singularity::FindAndFollowTarget(), SmartAI::GenerateWayPointArray(), npc_ulduar_harpoonfirestate::npc_ulduar_harpoonfirestateAI::GetHarpoonGunIdForThisHFS(), npc_still_at_it_trigger::npc_still_at_it_triggerAI::GetManus(), npc_pilgrims_bounty_chair::GetPlate(), npc_spiritual_insight::npc_spiritual_insightAI::GetSpeachId(), npc_infra_green_bomber_generic::npc_infra_green_bomber_genericAI::GetSummoner(), GetSummoner(), npc_wintergarde_gryphon::getVillager(), npc_valkyr_shadowguard::npc_valkyr_shadowguardAI::GoSiphon(), PetAI::HandleReturnMovement(), npc_valkyr_shadowguard::npc_valkyr_shadowguardAI::HandleSpeedChangeIfNeeded(), npc_wounded_skirmisher::Initialize(), CombatAI::InitializeAI(), SmartAI::InitializeAI(), npc_ulduar_mimiron_rocket::npc_ulduar_mimiron_rocketAI::InitializeAI(), npc_preparations_for_war_vehicle::InitializeAI(), npc_pet_dk_army_of_the_dead::InitializeAI(), npc_pet_dk_dancing_rune_weapon::InitializeAI(), npc_pet_gen_imp_in_a_bottle::InitializeAI(), npc_pet_mage_mirror_image::InitializeAI(), npc_pet_pri_lightwell::InitializeAI(), SmartAI::IsEscortInvokerInRange(), npc_valkyr_shadowguard::npc_valkyr_shadowguardAI::IsHeroic(), npc_strangulate_vehicle::npc_strangulate_vehicleAI::IsHeroic(), IsInBoundary(), npc_taldaram_flamesphere::IsSummonedBy(), npc_kinetic_bomb::npc_kinetic_bombAI::IsSummonedBy(), npc_coldflame::npc_coldflameAI::IsSummonedBy(), npc_lk_spirit_bomb::npc_lk_spirit_bombAI::IsSummonedBy(), TriggerAI::IsSummonedBy(), npc_vaelastrasz_the_red::npc_vaelastrasz_the_redAI::IsSummonedBy(), npc_demonic_vapor::IsSummonedBy(), npc_bone_spike::npc_bone_spikeAI::IsSummonedBy(), npc_strangulate_vehicle::npc_strangulate_vehicleAI::IsSummonedBy(), npc_oculus_drake::npc_oculus_drakeAI::IsSummonedBy(), npc_wintergarde_gryphon::IsSummonedBy(), npc_spiritual_insight::npc_spiritual_insightAI::IsSummonedBy(), npc_infra_green_bomber_generic::npc_infra_green_bomber_genericAI::IsSummonedBy(), npc_frostbrood_skytalon::npc_frostbrood_skytalonAI::IsSummonedBy(), npc_pet_dk_ghoul::IsSummonedBy(), npc_pet_dk_army_of_the_dead::IsSummonedBy(), npc_pet_gen_fetch_ball::IsSummonedBy(), npc_spirit_shade::npc_spirit_shadeAI::IsSummonedBy(), PossessedAI::JustDied(), npc_balance_of_light_and_shadow::npc_balance_of_light_and_shadowAI::JustDied(), npc_gunship::npc_gunshipAI::JustDied(), npc_ice_tomb::npc_ice_tombAI::JustDied(), npc_isle_of_conquest_turret::npc_isle_of_conquest_turretAI::JustDied(), npc_boss_gothik_minion::npc_boss_gothik_minionAI::JustDied(), boss_maexxna_webwrap::boss_maexxna_webwrapAI::JustDied(), npc_mr_bigglesworth::JustDied(), npc_eoe_wyrmrest_skytalon::npc_eoe_wyrmrest_skytalonAI::JustDied(), boss_freya_iron_root::boss_freya_iron_rootAI::JustDied(), npc_ulduar_saronite_vapors::npc_ulduar_saronite_vaporsAI::JustDied(), npc_xt002_heart::npc_xt002_heartAI::JustDied(), npc_xt002_boombot::npc_xt002_boombotAI::JustDied(), boss_yoggsaron_influence_tentacle::boss_yoggsaron_influence_tentacleAI::JustDied(), npc_vh_void_sentry::npc_vh_void_sentryAI::JustDied(), npc_wintergarde_gryphon::JustDied(), npc_pet_dk_ghoul::JustDied(), CombatAI::JustDied(), npc_four_car_garage::npc_four_car_garageAI::JustDied(), npc_xt002_scrapbot::npc_xt002_scrapbotAI::JustDied(), npc_frost_tomb::JustDied(), npc_nerubar_victim::npc_nerubar_victimAI::JustDied(), CasterAI::JustEngagedWith(), CritterAI::JustEngagedWith(), npc_boss_gothik_minion::npc_boss_gothik_minionAI::JustEngagedWith(), boss_yoggsaron_keeper::JustEngagedWith(), boss_skadi_grauf::boss_skadi_graufAI::JustEngagedWith(), SmartAI::JustEngagedWith(), CombatAI::JustEngagedWith(), npc_beryl_sorcerer::npc_beryl_sorcererAI::JustEngagedWith(), SmartAI::JustReachedHome(), npc_icc_gauntlet_controller::npc_icc_gauntlet_controllerAI::JustReachedHome(), npc_icc_putricades_trap::npc_icc_putricades_trapAI::JustReachedHome(), SmartAI::JustRespawned(), npc_xt002_heart::npc_xt002_heartAI::JustSummoned(), npc_frozen_orb_stalker::npc_frozen_orb_stalkerAI::JustSummoned(), npc_ravenclaw_apparition::npc_ravenclaw_apparitionAI::JustSummoned(), npc_collapsing_star::npc_collapsing_starAI::JustSummoned(), npc_algalon_worm_hole::npc_algalon_worm_holeAI::JustSummoned(), PetAI::KilledUnit(), npc_boss_gothik_minion::npc_boss_gothik_minionAI::KilledUnit(), boss_grobbulus_poison_cloud::boss_grobbulus_poison_cloudAI::KilledUnit(), VehicleAI::LoadConditions(), npc_drakuru_shackles::npc_drakuru_shacklesAI::LockRageclaw(), MoveBackwardsChecks(), MoveCircleChecks(), MoveInLineOfSight(), npc_brew_bubble::MoveInLineOfSight(), SmartAI::MoveInLineOfSight(), npc_grand_magister_rommath::npc_grand_magister_rommathAI::MoveInLineOfSight(), npc_amanishi_lookout::MoveInLineOfSight(), npc_love_in_air_snivel::MoveInLineOfSight(), npc_ulduar_expedition_commander::npc_ulduar_expedition_commanderAI::MoveInLineOfSight(), SmartAI::MovementInform(), npc_brann_bronzebeard_algalon::npc_brann_bronzebeard_algalonAI::MovementInform(), PetAI::MovementInform(), npc_spirit_shade::npc_spirit_shadeAI::MovementInform(), npc_amanishi_lookout::MovementInform(), npc_concentrated_ball::npc_concentrated_ballAI::MovementInform(), npc_pos_tyrannus_events::npc_pos_tyrannus_eventsAI::MovementInform(), npc_pos_leader_second::npc_pos_leader_secondAI::MovementInform(), npc_valkyr_shadowguard::npc_valkyr_shadowguardAI::MovementInform(), npc_hover_disk::npc_hover_diskAI::MovementInform(), npc_oculus_drake::npc_oculus_drakeAI::MovementInform(), npc_frostbrood_skytalon::npc_frostbrood_skytalonAI::MovementInform(), npc_vehicle_d16_propelled_delivery::npc_vehicle_d16_propelled_deliveryAI::MovementInform(), npc_pet_gen_plump_turkey::MovementInform(), npc_injured_7th_legion_soldier::npc_injured_7th_legion_soldierAI::MovementInform(), npc_ashtongue_sorcerer::MovementInform(), npc_balance_of_light_and_shadow::npc_balance_of_light_and_shadowAI::MovementInform(), npc_announcer_toc5::npc_announcer_toc5AI::MovementInform(), npc_hor_lich_king::npc_hor_lich_kingAI::MovementInform(), npc_hor_leader_second::npc_hor_leader_secondAI::MovementInform(), npc_xt002_scrapbot::npc_xt002_scrapbotAI::MovementInform(), npc_vics_flying_machine::npc_vics_flying_machineAI::MovementInform(), npc_freed_protodrake::npc_freed_protodrakeAI::MovementInform(), boss_skadi_grauf::boss_skadi_graufAI::MovementInform(), npc_attracted_reef_bull::npc_attracted_reef_bullAI::MovementInform(), SmartAI::MovepointReached(), npc_concentrated_ball::npc_concentrated_ballAI::MoveToNextPoint(), npc_hor_leader_second::npc_hor_leader_secondAI::MoveToNextStopPoint(), npc_pet_mage_mirror_image::MySelectNextTarget(), npc_attracted_reef_bull::npc_attracted_reef_bullAI::npc_attracted_reef_bullAI(), npc_batrider::npc_batrider(), npc_boss_gothik_minion::npc_boss_gothik_minionAI::npc_boss_gothik_minionAI(), npc_concentrated_ball::npc_concentrated_ballAI::npc_concentrated_ballAI(), npc_fos_corrupted_soul_fragment::npc_fos_corrupted_soul_fragmentAI::npc_fos_corrupted_soul_fragmentAI(), npc_frost_freeze_trap::npc_frost_freeze_trapAI::npc_frost_freeze_trapAI(), npc_frost_sphere::npc_frost_sphereAI::npc_frost_sphereAI(), npc_frost_tomb::npc_frost_tomb(), npc_grand_magister_rommath::npc_grand_magister_rommathAI::npc_grand_magister_rommathAI(), npc_gunship::npc_gunshipAI::npc_gunshipAI(), npc_hor_leader_second::npc_hor_leader_secondAI::npc_hor_leader_secondAI(), npc_hor_leader::npc_hor_leaderAI::npc_hor_leaderAI(), npc_hor_lich_king::npc_hor_lich_kingAI::npc_hor_lich_kingAI(), npc_hover_disk::npc_hover_diskAI::npc_hover_diskAI(), npc_ice_tomb::npc_ice_tombAI::npc_ice_tombAI(), npc_kiljaeden_controller::npc_kiljaeden_controller(), npc_lk_spirit_bomb::npc_lk_spirit_bombAI::npc_lk_spirit_bombAI(), npc_nightbane_helper_target::npc_nightbane_helper_target(), npc_oculus_drake::npc_oculus_drakeAI::npc_oculus_drakeAI(), npc_pet_gen_moth::npc_pet_gen_moth(), npc_pet_gen_target_following_bomb::npc_pet_gen_target_following_bomb(), npc_pet_gen_wind_rider_cub::npc_pet_gen_wind_rider_cub(), npc_pilgrims_bounty_chair::npc_pilgrims_bounty_chair(), npc_pos_after_first_boss::npc_pos_after_first_bossAI::npc_pos_after_first_bossAI(), npc_pos_collapsing_icicle::npc_pos_collapsing_icicleAI::npc_pos_collapsing_icicleAI(), npc_pos_freed_slave::npc_pos_freed_slaveAI::npc_pos_freed_slaveAI(), npc_pos_icicle_trigger::npc_pos_icicle_triggerAI::npc_pos_icicle_triggerAI(), npc_pos_leader_second::npc_pos_leader_secondAI::npc_pos_leader_secondAI(), npc_pos_leader::npc_pos_leaderAI::npc_pos_leaderAI(), npc_pos_martin_or_gorkun_second::npc_pos_martin_or_gorkun_secondAI::npc_pos_martin_or_gorkun_secondAI(), npc_pos_tyrannus_events::npc_pos_tyrannus_eventsAI::npc_pos_tyrannus_eventsAI(), npc_power_spark::npc_power_sparkAI::npc_power_sparkAI(), npc_scarlet_miner_cart::npc_scarlet_miner_cartAI::npc_scarlet_miner_cartAI(), npc_ulduar_expedition_commander::npc_ulduar_expedition_commanderAI::npc_ulduar_expedition_commanderAI(), npc_ulduar_expedition_engineer::npc_ulduar_expedition_engineerAI::npc_ulduar_expedition_engineerAI(), npc_ulduar_flames_initial::npc_ulduar_flames_initialAI::npc_ulduar_flames_initialAI(), npc_ulduar_flash_freeze::npc_ulduar_flash_freezeAI::npc_ulduar_flash_freezeAI(), npc_ulduar_harpoonfirestate::npc_ulduar_harpoonfirestateAI::npc_ulduar_harpoonfirestateAI(), npc_ulduar_magnetic_core::npc_ulduar_magnetic_coreAI::npc_ulduar_magnetic_coreAI(), npc_ulduar_saronite_vapors::npc_ulduar_saronite_vaporsAI::npc_ulduar_saronite_vaporsAI(), npc_ulduar_toasty_fire::npc_ulduar_toasty_fireAI::npc_ulduar_toasty_fireAI(), npc_valkyr_shadowguard::npc_valkyr_shadowguardAI::npc_valkyr_shadowguardAI(), npc_vh_void_sentry::npc_vh_void_sentryAI::npc_vh_void_sentryAI(), npc_vortex_ride::npc_vortex_rideAI::npc_vortex_rideAI(), npc_xt002_heart::npc_xt002_heartAI::npc_xt002_heartAI(), npc_zafod_boombox::npc_zafod_boomboxAI::npc_zafod_boomboxAI(), NullCreatureAI::NullCreatureAI(), npc_vengeful_spirit::OnCharmed(), VehicleAI::OnCharmed(), OnCharmed(), SmartAI::OnCharmed(), npc_toc5_player_vehicle::npc_toc5_player_vehicleAI::OnCharmed(), npc_pet_dk_risen_ally::OnCharmed(), npc_valithria_portal::npc_valithria_portalAI::OnSpellClick(), boss_yoggsaron_descend_portal::boss_yoggsaron_descend_portalAI::OnSpellClick(), PetAI::OwnerAttacked(), PetAI::OwnerAttackedBy(), npc_vehicle_d16_propelled_delivery::npc_vehicle_d16_propelled_deliveryAI::PassengerBoarded(), npc_valkyr_shadowguard::npc_valkyr_shadowguardAI::PassengerBoarded(), npc_vortex_ride::npc_vortex_rideAI::PassengerBoarded(), npc_eoe_wyrmrest_skytalon::npc_eoe_wyrmrest_skytalonAI::PassengerBoarded(), npc_wintergarde_gryphon::PassengerBoarded(), npc_oculus_drake::npc_oculus_drakeAI::PassengerBoarded(), npc_vics_flying_machine::npc_vics_flying_machineAI::PassengerBoarded(), npc_scarlet_miner_cart::npc_scarlet_miner_cartAI::PassengerBoarded(), npc_pilgrims_bounty_chair::PassengerBoarded(), npc_toc5_player_vehicle::npc_toc5_player_vehicleAI::PassengerBoarded(), npc_four_car_garage::npc_four_car_garageAI::PassengerBoarded(), npc_hover_disk::npc_hover_diskAI::PassengerBoarded(), PassiveAI::PassiveAI(), SmartAI::PathEndReached(), SmartAI::PausePath(), PossessedAI::PossessedAI(), boss_yoggsaron_brain::boss_yoggsaron_brainAI::PrepareChamberIllusion(), boss_yoggsaron_brain::boss_yoggsaron_brainAI::PrepareIceCrownIllusion(), boss_yoggsaron_brain::boss_yoggsaron_brainAI::PrepareStormwindIllusion(), PetAI::ReceiveEmote(), npc_ulduar_flames_initial::npc_ulduar_flames_initialAI::RemoveAll(), boss_skadi_grauf::boss_skadi_graufAI::RemoveSkadi(), npc_death_knight_initiate::npc_death_knight_initiateAI::Reset(), npc_valkyr_battle_maiden::npc_valkyr_battle_maidenAI::Reset(), npc_demonic_vapor::Reset(), npc_demonic_vapor_trail::Reset(), npc_kiljaeden_controller::Reset(), npc_singularity::Reset(), npc_amanishi_lookout::Reset(), npc_batrider::Reset(), npc_brew_bubble::Reset(), npc_soh_fire_trigger::Reset(), npc_love_in_air_snivel::Reset(), npc_toc5_player_vehicle::npc_toc5_player_vehicleAI::Reset(), npc_announcer_toc5::npc_announcer_toc5AI::Reset(), npc_hor_leader::npc_hor_leaderAI::Reset(), npc_pos_leader::npc_pos_leaderAI::Reset(), npc_kinetic_bomb::npc_kinetic_bombAI::Reset(), npc_impaling_spear::npc_impaling_spearAI::Reset(), npc_boss_gothik_minion::npc_boss_gothik_minionAI::Reset(), boss_grobbulus_poison_cloud::boss_grobbulus_poison_cloudAI::Reset(), npc_crystal_spike::Reset(), boss_freya_lifebinder::boss_freya_lifebinderAI::Reset(), boss_freya_healthy_spore::boss_freya_healthy_sporeAI::Reset(), boss_freya_nature_bomb::boss_freya_nature_bombAI::Reset(), boss_kologarn_pit_kill_bunny::Reset(), npc_ulduar_mimiron_rocket::npc_ulduar_mimiron_rocketAI::Reset(), boss_thorim_pillar::boss_thorim_pillarAI::Reset(), npc_xt002_scrapbot::npc_xt002_scrapbotAI::Reset(), npc_xt002_boombot::npc_xt002_boombotAI::Reset(), boss_yoggsaron_voice::boss_yoggsaron_voiceAI::Reset(), boss_skadi_grauf::boss_skadi_graufAI::Reset(), npc_frozen_orb_stalker::npc_frozen_orb_stalkerAI::Reset(), npc_beryl_sorcerer::npc_beryl_sorcererAI::Reset(), npc_injured_7th_legion_soldier::npc_injured_7th_legion_soldierAI::Reset(), npc_heated_battle::npc_heated_battleAI::Reset(), npc_q24545_lich_king::npc_q24545_lich_kingAI::Reset(), npc_wounded_skirmisher::Reset(), npc_freed_protodrake::npc_freed_protodrakeAI::Reset(), npc_drakuru_shackles::npc_drakuru_shacklesAI::Reset(), npc_captured_rageclaw::npc_captured_rageclawAI::Reset(), npc_ashtongue_channeler::Reset(), SmartAI::ResumePath(), SmartAI::ReturnToLastOOCPos(), boss_yoggsaron_lich_king::boss_yoggsaron_lich_kingAI::Say(), boss_yoggsaron_llane::boss_yoggsaron_llaneAI::Say(), boss_skadi_grauf::boss_skadi_graufAI::SelectNextPos(), PetAI::SelectNextTarget(), npc_xt002_heart::npc_xt002_heartAI::SendEnergyToCorner(), SetBoundary(), SmartAI::SetCombatMovement(), SmartAI::SetCurrentRangeMode(), npc_ulduar_harpoonfirestate::npc_ulduar_harpoonfirestateAI::SetData(), npc_ulduar_expedition_engineer::npc_ulduar_expedition_engineerAI::SetData(), npc_q24545_lich_king::npc_q24545_lich_kingAI::SetData(), npc_pos_tyrannus_events::npc_pos_tyrannus_eventsAI::SetData(), npc_pos_leader::npc_pos_leaderAI::SetData(), npc_idol_room_spawner::npc_idol_room_spawnerAI::SetData(), npc_ulduar_mimiron_rocket::npc_ulduar_mimiron_rocketAI::SetData(), SmartAI::SetFly(), SmartAI::SetFollow(), SetGazeOn(), npc_gunship::npc_gunshipAI::SetGUID(), npc_q24545_lich_king::npc_q24545_lich_kingAI::SetGUID(), SmartAI::SetRun(), SmartAI::SetSwim(), npc_maredis_firestar::npc_maredis_firestarAI::sGossipHello(), npc_maredis_firestar::npc_maredis_firestarAI::sGossipSelect(), npc_zafod_boombox::npc_zafod_boomboxAI::sGossipSelect(), SmartAI::SmartAI(), boss_skadi_grauf::boss_skadi_graufAI::SpawnFlameTriggers(), boss_skadi_grauf::boss_skadi_graufAI::SpawnHelpers(), npc_frost_sphere::npc_frost_sphereAI::SpellHit(), npc_ulduar_flames_spread::npc_ulduar_flames_spreadAI::SpellHit(), npc_wintergarde_gryphon::SpellHit(), npc_frostbrood_skytalon::npc_frostbrood_skytalonAI::SpellHit(), npc_vics_flying_machine::npc_vics_flying_machineAI::SpellHit(), npc_captured_rageclaw::npc_captured_rageclawAI::SpellHit(), npc_balance_of_light_and_shadow::npc_balance_of_light_and_shadowAI::SpellHit(), npc_pilgrims_bounty_chair::SpellHit(), npc_pilgrims_bounty_plate::SpellHit(), npc_isle_of_conquest_turret::npc_isle_of_conquest_turretAI::SpellHit(), boss_thorim_pillar::boss_thorim_pillarAI::SpellHit(), npc_ulduar_keeper::npc_ulduar_keeperAI::SpellHit(), npc_death_knight_initiate::npc_death_knight_initiateAI::SpellHit(), npc_wounded_skirmisher::SpellHit(), npc_drakuru_shackles::npc_drakuru_shacklesAI::SpellHit(), PetAI::SpellHit(), npc_soh_fire_trigger::SpellHit(), npc_hallows_end_train_fire::SpellHit(), npc_attracted_reef_bull::npc_attracted_reef_bullAI::SpellHit(), npc_hor_lich_king::npc_hor_lich_kingAI::SpellHitTarget(), npc_pos_leader_second::npc_pos_leader_secondAI::SpellHitTarget(), npc_oculus_drake::npc_oculus_drakeAI::SpellHitTarget(), npc_ulduar_rocket_strike_trigger::npc_ulduar_rocket_strike_triggerAI::SpellHitTarget(), npc_xt002_heart::npc_xt002_heartAI::SpellHitTarget(), boss_yoggsaron_voice::boss_yoggsaron_voiceAI::SpellHitTarget(), boss_skadi_grauf::boss_skadi_graufAI::SpellHitTarget(), npc_pet_gen_fetch_ball::SpellHitTarget(), npc_icc_gauntlet_controller::npc_icc_gauntlet_controllerAI::SpidersMoveDown(), npc_infra_green_bomber_generic::npc_infra_green_bomber_genericAI::SpreadFire(), npc_ulduar_flames_initial::npc_ulduar_flames_initialAI::SpreadFlame(), SmartAI::StartPath(), SmartAI::StopFollow(), SmartAI::StopPath(), npc_icc_gauntlet_controller::npc_icc_gauntlet_controllerAI::SummonBroodling(), npc_ravenclaw_apparition::npc_ravenclaw_apparitionAI::SummonCrowd(), npc_time_rift::SummonedCreatureDies(), npc_kiljaeden_controller::SummonedCreatureDies(), npc_icc_gauntlet_controller::npc_icc_gauntlet_controllerAI::SummonedCreatureDies(), npc_icc_gauntlet_controller::npc_icc_gauntlet_controllerAI::SummonFrostwardens(), npc_xt002_heart::npc_xt002_heartAI::SummonPiles(), npc_icc_gauntlet_controller::npc_icc_gauntlet_controllerAI::SummonSpiders(), Talk(), trigger_periodic::trigger_periodicAI::trigger_periodicAI(), TriggerAlert(), TurretAI::TurretAI(), npc_drakuru_shackles::npc_drakuru_shacklesAI::UnlockRageclaw(), CombatAI::UpdateAI(), CasterAI::UpdateAI(), ArcherAI::UpdateAI(), TurretAI::UpdateAI(), VehicleAI::UpdateAI(), TotemAI::UpdateAI(), SmartAI::UpdateAI(), ironhand_guardian::ironhand_guardianAI::UpdateAI(), npc_rookery_hatcher::npc_rookery_hatcherAI::UpdateAI(), npc_vaelastrasz_the_red::npc_vaelastrasz_the_redAI::UpdateAI(), npc_mc_core_hound::npc_mc_core_houndAI::UpdateAI(), npc_kernobee::npc_kernobeeAI::UpdateAI(), npc_death_knight_initiate::npc_death_knight_initiateAI::UpdateAI(), npc_scarlet_cannon::npc_scarlet_cannonAI::UpdateAI(), npc_valkyr_battle_maiden::npc_valkyr_battle_maidenAI::UpdateAI(), npc_madrigosa::UpdateAI(), npc_demonic_vapor::UpdateAI(), npc_demonic_vapor_trail::UpdateAI(), npc_kalecgos_kj::UpdateAI(), npc_balance_of_light_and_shadow::npc_balance_of_light_and_shadowAI::UpdateAI(), npc_grand_magister_rommath::npc_grand_magister_rommathAI::UpdateAI(), npc_ravenclaw_apparition::npc_ravenclaw_apparitionAI::UpdateAI(), npc_brew_bubble::UpdateAI(), npc_hallows_end_train_fire::UpdateAI(), npc_pilgrims_bounty_chair::UpdateAI(), npc_time_rift::UpdateAI(), npc_taldaram_flamesphere::UpdateAI(), npc_halion_controller::npc_halion_controllerAI::UpdateAI(), npc_frost_sphere::npc_frost_sphereAI::UpdateAI(), npc_fos_corrupted_soul_fragment::npc_fos_corrupted_soul_fragmentAI::UpdateAI(), npc_hor_leader::npc_hor_leaderAI::UpdateAI(), npc_hor_lich_king::npc_hor_lich_kingAI::UpdateAI(), npc_hor_leader_second::npc_hor_leader_secondAI::UpdateAI(), boss_krick::boss_krickAI::UpdateAI(), npc_pos_leader::npc_pos_leaderAI::UpdateAI(), npc_pos_after_first_boss::npc_pos_after_first_bossAI::UpdateAI(), npc_pos_tyrannus_events::npc_pos_tyrannus_eventsAI::UpdateAI(), npc_pos_icicle_trigger::npc_pos_icicle_triggerAI::UpdateAI(), npc_pos_collapsing_icicle::npc_pos_collapsing_icicleAI::UpdateAI(), npc_pos_martin_or_gorkun_second::npc_pos_martin_or_gorkun_secondAI::UpdateAI(), npc_pos_leader_second::npc_pos_leader_secondAI::UpdateAI(), npc_kinetic_bomb::npc_kinetic_bombAI::UpdateAI(), npc_coldflame::npc_coldflameAI::UpdateAI(), npc_bone_spike::npc_bone_spikeAI::UpdateAI(), npc_ice_tomb::npc_ice_tombAI::UpdateAI(), npc_valkyr_shadowguard::npc_valkyr_shadowguardAI::UpdateAI(), npc_strangulate_vehicle::npc_strangulate_vehicleAI::UpdateAI(), npc_lk_spirit_bomb::npc_lk_spirit_bombAI::UpdateAI(), npc_frost_freeze_trap::npc_frost_freeze_trapAI::UpdateAI(), npc_impaling_spear::npc_impaling_spearAI::UpdateAI(), npc_icc_gauntlet_controller::npc_icc_gauntlet_controllerAI::UpdateAI(), npc_icc_putricades_trap::npc_icc_putricades_trapAI::UpdateAI(), npc_isle_of_conquest_turret::npc_isle_of_conquest_turretAI::UpdateAI(), npc_boss_gothik_minion::npc_boss_gothik_minionAI::UpdateAI(), boss_grobbulus_poison_cloud::boss_grobbulus_poison_cloudAI::UpdateAI(), npc_naxxramas_trigger::UpdateAI(), npc_vortex_ride::npc_vortex_rideAI::UpdateAI(), npc_power_spark::npc_power_sparkAI::UpdateAI(), npc_crystal_spike::UpdateAI(), npc_oculus_drake::npc_oculus_drakeAI::UpdateAI(), npc_brann_bronzebeard_algalon::npc_brann_bronzebeard_algalonAI::UpdateAI(), npc_algalon_worm_hole::npc_algalon_worm_holeAI::UpdateAI(), boss_freya_lifebinder::boss_freya_lifebinderAI::UpdateAI(), boss_freya_healthy_spore::boss_freya_healthy_sporeAI::UpdateAI(), boss_freya_nature_bomb::boss_freya_nature_bombAI::UpdateAI(), npc_ulduar_icicle::npc_ulduar_icicleAI::UpdateAI(), npc_ulduar_flash_freeze::npc_ulduar_flash_freezeAI::UpdateAI(), npc_ulduar_magnetic_core::npc_ulduar_magnetic_coreAI::UpdateAI(), npc_ulduar_bot_summon_trigger::npc_ulduar_bot_summon_triggerAI::UpdateAI(), npc_ulduar_flames_initial::npc_ulduar_flames_initialAI::UpdateAI(), npc_ulduar_expedition_engineer::npc_ulduar_expedition_engineerAI::UpdateAI(), boss_thorim_trap::boss_thorim_trapAI::UpdateAI(), npc_xt002_heart::npc_xt002_heartAI::UpdateAI(), boss_yoggsaron_death_orb::boss_yoggsaron_death_orbAI::UpdateAI(), boss_yoggsaron_voice::boss_yoggsaron_voiceAI::UpdateAI(), boss_skadi_grauf::boss_skadi_graufAI::UpdateAI(), npc_vh_void_sentry::npc_vh_void_sentryAI::UpdateAI(), npc_vh_teleportation_portal::npc_vh_teleportation_portalAI::UpdateAI(), npc_sinkhole_kill_credit::npc_sinkhole_kill_creditAI::UpdateAI(), npc_beryl_sorcerer::npc_beryl_sorcererAI::UpdateAI(), npc_preparations_for_war_vehicle::UpdateAI(), npc_wintergarde_gryphon::UpdateAI(), npc_q24545_lich_king::npc_q24545_lich_kingAI::UpdateAI(), npc_ravenous_worg::npc_ravenous_worgAI::UpdateAI(), npc_wounded_skirmisher::UpdateAI(), npc_llod_generic::npc_llod_genericAI::UpdateAI(), npc_infra_green_bomber_generic::npc_infra_green_bomber_genericAI::UpdateAI(), npc_frostbrood_skytalon::npc_frostbrood_skytalonAI::UpdateAI(), npc_still_at_it_trigger::npc_still_at_it_triggerAI::UpdateAI(), npc_freed_protodrake::npc_freed_protodrakeAI::UpdateAI(), npc_wg_siege_machine::npc_wg_siege_machineAI::UpdateAI(), npc_drakuru_shackles::npc_drakuru_shacklesAI::UpdateAI(), npc_pet_gen_target_following_bomb::UpdateAI(), npc_pet_gen_imp_in_a_bottle::UpdateAI(), npc_pet_gen_wind_rider_cub::UpdateAI(), npc_pet_gen_plump_turkey::UpdateAI(), npc_pet_gen_toxic_wasteling::UpdateAI(), npc_pet_gen_fetch_ball::UpdateAI(), npc_pet_darting_hatchling::UpdateAI(), npc_pet_mage_mirror_image::UpdateAI(), trigger_periodic::trigger_periodicAI::UpdateAI(), PassiveAI::UpdateAI(), PossessedAI::UpdateAI(), PetAI::UpdateAI(), npc_batrider::UpdateAI(), npc_orb_carrier::npc_orb_carrierAI::UpdateAI(), npc_concentrated_ball::npc_concentrated_ballAI::UpdateAI(), npc_gunship::npc_gunshipAI::UpdateAI(), boss_maexxna_webwrap::boss_maexxna_webwrapAI::UpdateAI(), npc_living_poison::UpdateAI(), npc_ulduar_mimiron_rocket::npc_ulduar_mimiron_rocketAI::UpdateAI(), npc_xt002_scrapbot::npc_xt002_scrapbotAI::UpdateAI(), npc_xt002_boombot::npc_xt002_boombotAI::UpdateAI(), npc_frost_tomb::UpdateAI(), npc_q24545_vegard_dummy::npc_q24545_vegard_dummyAI::UpdateAI(), PetAI::UpdateAllies(), npc_halion_controller::npc_halion_controllerAI::UpdateCorporeality(), SmartAI::UpdateDespawn(), SmartAI::UpdatePath(), UpdateVictim(), UpdateVictimWithGaze(), and VisualizeBoundary().

◆ scheduler

TaskScheduler CreatureAI::scheduler
protected

Referenced by BossAI::_JustDied(), BossAI::_Reset(), boss_marli::_schedulePhaseSpider(), boss_marli::_schedulePhaseTroll(), advisor_baseAI::advisor_baseAI(), boss_alar::boss_alar(), boss_anetheron::boss_anetheron(), boss_anzu::boss_anzu(), boss_apothecary_hummel::boss_apothecary_hummelAI::boss_apothecary_hummelAI(), boss_archimonde::boss_archimonde(), boss_azgalor::boss_azgalor(), boss_azuregos::boss_azuregosAI::boss_azuregosAI(), boss_balinda::boss_balinda(), boss_blackheart_the_inciter::boss_blackheart_the_inciter(), boss_captain_skarloc::boss_captain_skarloc(), boss_curator::boss_curator(), boss_darkweaver_syth::boss_darkweaver_syth(), boss_exarch_maladaar::boss_exarch_maladaar(), boss_fathomguard_sharkkis::boss_fathomguard_sharkkis(), boss_ghazan::boss_ghazan(), boss_grand_warlock_nethekurse::boss_grand_warlock_nethekurse(), boss_halazzi::boss_halazzi(), boss_hexlord_malacrass::boss_hexlord_malacrass(), boss_high_astromancer_solarian::boss_high_astromancer_solarian(), boss_high_king_maulgar::boss_high_king_maulgar(), boss_janalai::boss_janalai(), boss_kazrogal::boss_kazrogal(), boss_kelidan_the_breaker::boss_kelidan_the_breaker(), boss_kiljaeden::boss_kiljaeden(), boss_krik_thir::boss_krik_thirAI::boss_krik_thirAI(), boss_lady_vashj::boss_lady_vashj(), boss_magtheridon::boss_magtheridon(), boss_maiden_of_virtue::boss_maiden_of_virtue(), boss_mekgineer_steamrigger::boss_mekgineer_steamrigger(), boss_mennu_the_betrayer::boss_mennu_the_betrayer(), boss_moroes::boss_moroes(), boss_morogrim_tidewalker::boss_morogrim_tidewalker(), boss_murmur::boss_murmur(), boss_nexusprince_shaffar::boss_nexusprince_shaffar(), boss_omor_the_unscarred::boss_omor_the_unscarred(), boss_pandemonius::boss_pandemonius(), boss_quagmirran::boss_quagmirran(), boss_rage_winterchill::boss_rage_winterchill(), boss_rokmar_the_crackler::boss_rokmar_the_crackler(), boss_shirrak_the_dead_watcher::boss_shirrak_the_dead_watcher(), boss_supremus::boss_supremus(), boss_swamplord_muselek::boss_swamplord_muselek(), boss_taldaram::boss_taldaram(), boss_talon_king_ikiss::boss_talon_king_ikiss(), boss_tavarok::boss_tavarok(), boss_tenris_mirkblood::boss_tenris_mirkblood(), boss_terestian_illhoof::boss_terestian_illhoof(), boss_the_black_stalker::boss_the_black_stalker(), boss_the_maker::boss_the_maker(), boss_void_reaver::boss_void_reaver(), boss_warbringer_omrogg::boss_warbringer_omrogg(), boss_warchief_kargath_bladefist::boss_warchief_kargath_bladefist(), boss_watchkeeper_gargolmar::boss_watchkeeper_gargolmar(), boss_high_nethermancer_zerevor::CastDampenMagicIfPossible(), boss_thekal::CheckPhaseTransition(), boss_ouro::DamageTaken(), boss_freya::boss_freyaAI::DamageTaken(), boss_hodir::boss_hodirAI::DamageTaken(), boss_essence_of_suffering::boss_essence_of_sufferingAI::DamageTaken(), boss_essence_of_desire::boss_essence_of_desireAI::DamageTaken(), advisor_baseAI::DamageTaken(), boss_felblood_kaelthas::DamageTaken(), boss_viscidus::DamageTaken(), boss_leotheras_the_blind::DemonTime(), npc_drakonid_spawner::DoAction(), boss_nightbane::DoAction(), boss_apothecary_hummel::boss_apothecary_hummelAI::DoAction(), npc_harrison_jones::DoAction(), boss_twinemperorsAI::DoAction(), npc_thrall_warchief::npc_thrall_warchiefAI::DoAction(), boss_razuvious_minion::boss_razuvious_minionAI::DoAction(), boss_broggok::DoAction(), boss_magtheridon::DoAction(), boss_grand_warlock_nethekurse::DoAction(), boss_akilzon::DoAction(), boss_leotheras_the_blind::DoAction(), boss_pathaleon_the_calculator::DoAction(), boss_sacrolash::DoAction(), boss_alythess::DoAction(), boss_kalecgos::DoAction(), npc_ulduar_keeper::npc_ulduar_keeperAI::DoAction(), boss_illidan_stormrage::DoAction(), npc_maiev_illidan::DoAction(), npc_creature_generator_akama::DoAction(), boss_alar::DoDiveBomb(), npc_midsummer_ribbon_pole_target::DoFireworkChecks(), boss_leotheras_the_blind::ElfTime(), boss_ouro::Emerge(), npc_amanishi_tempest::EnterEvadeMode(), boss_halazzi::EnterPhase(), boss_zuljin::EnterPhase(), boss_kaelthas::ExecuteMiddleEvent(), npc_singularity::FindAndFollowTarget(), boss_felblood_kaelthas::GravityLapseSequence(), boss_venoxis::InitializeAI(), boss_glob_of_viscidus::InitializeAI(), npc_rancid_mushroom::InitializeAI(), boss_moroes::InitializeGuests(), boss_kaelthas::IntroduceNewAdvisor(), boss_grand_warlock_nethekurse::IntroRP(), npc_corrupted_totem::IsSummonedBy(), npc_parasitic_shadowfiend::IsSummonedBy(), npc_supremus_punch_invisible_stalker::IsSummonedBy(), npc_raging_flames::IsSummonedBy(), npc_drakonid_spawner::IsSummonedBy(), boss_attumen::IsSummonedBy(), npc_inner_demon::IsSummonedBy(), advisor_baseAI::JustDied(), npc_cultist_engineer::JustDied(), boss_malchezaar::JustEngagedWith(), npc_malchezaar_axe::JustEngagedWith(), boss_shade_of_aran::JustEngagedWith(), boss_terestian_illhoof::JustEngagedWith(), boss_priestess_delrissa::JustEngagedWith(), boss_kalec::JustEngagedWith(), boss_sathrovarr::JustEngagedWith(), npc_sunblade_scout::JustEngagedWith(), boss_akilzon::JustEngagedWith(), npc_amanishi_tempest::JustEngagedWith(), npc_amanishi_scout::JustEngagedWith(), boss_thekal::JustEngagedWith(), boss_venoxis::JustEngagedWith(), boss_azuregos::boss_azuregosAI::JustEngagedWith(), boss_archimonde::JustEngagedWith(), npc_hyjal_jaina::hyjalJainaAI::JustEngagedWith(), npc_hyjal_thrall::hyjalThrallAI::JustEngagedWith(), npc_hyjal_tyrande::hyjalTyrandeAI::JustEngagedWith(), npc_hyjal_ground_trash::JustEngagedWith(), npc_hyjal_gargoyle::JustEngagedWith(), npc_hyjal_frost_wyrm::JustEngagedWith(), boss_epoch_hunter::JustEngagedWith(), boss_lieutenant_drake::JustEngagedWith(), boss_aeonus::JustEngagedWith(), boss_chrono_lord_deja::JustEngagedWith(), boss_temporus::JustEngagedWith(), npc_obsidian_destroyer::JustEngagedWith(), npc_eye_tentacle::JustEngagedWith(), npc_claw_tentacle::JustEngagedWith(), npc_dirt_mound::JustEngagedWith(), npc_anubisath_defender::JustEngagedWith(), npc_obsidian_eradicator::JustEngagedWith(), npc_anubisath_warder::JustEngagedWith(), npc_obsidian_nullifier::JustEngagedWith(), boss_amanitar::JustEngagedWith(), boss_yoggsaron_keeper::JustEngagedWith(), boss_exarch_maladaar::JustEngagedWith(), boss_shirrak_the_dead_watcher::JustEngagedWith(), boss_nexusprince_shaffar::JustEngagedWith(), boss_tavarok::JustEngagedWith(), boss_anzu::JustEngagedWith(), boss_darkweaver_syth::JustEngagedWith(), boss_talon_king_ikiss::JustEngagedWith(), boss_ambassador_hellmaw::JustEngagedWith(), boss_blackheart_the_inciter::JustEngagedWith(), boss_grandmaster_vorpil::JustEngagedWith(), boss_essence_of_desire::boss_essence_of_desireAI::JustEngagedWith(), boss_doomlord_kazzak::boss_doomlordkazzakAI::JustEngagedWith(), boss_doomwalker::JustEngagedWith(), boss_mennu_the_betrayer::JustEngagedWith(), boss_quagmirran::JustEngagedWith(), boss_rokmar_the_crackler::JustEngagedWith(), boss_hydromancer_thespia::JustEngagedWith(), boss_mekgineer_steamrigger::JustEngagedWith(), boss_warlord_kalithresh::JustEngagedWith(), boss_ghazan::JustEngagedWith(), boss_swamplord_muselek::JustEngagedWith(), boss_the_black_stalker::JustEngagedWith(), boss_gruul::JustEngagedWith(), boss_high_king_maulgar::JustEngagedWith(), boss_kelidan_the_breaker::JustEngagedWith(), boss_the_maker::JustEngagedWith(), boss_omor_the_unscarred::JustEngagedWith(), boss_watchkeeper_gargolmar::JustEngagedWith(), boss_dalliah_the_doomsayer::JustEngagedWith(), boss_harbinger_skyriss::JustEngagedWith(), boss_zereketh_the_unbound::JustEngagedWith(), boss_high_botanist_freywinn::JustEngagedWith(), boss_thorngrin_the_tender::JustEngagedWith(), boss_warp_splinter::JustEngagedWith(), boss_gatewatcher_gyrokill::JustEngagedWith(), boss_gatewatcher_iron_hand::JustEngagedWith(), boss_mechano_lord_capacitus::JustEngagedWith(), boss_nethermancer_sepethrea::JustEngagedWith(), boss_pathaleon_the_calculator::JustEngagedWith(), boss_curator::JustEngagedWith(), boss_maiden_of_virtue::JustEngagedWith(), boss_midnight::JustEngagedWith(), boss_moroes::JustEngagedWith(), boss_netherspite::JustEngagedWith(), boss_priestess_lackey_commonAI::JustEngagedWith(), boss_kagani_nightstrike::JustEngagedWith(), boss_yazzai::JustEngagedWith(), boss_selin_fireheart::JustEngagedWith(), boss_sacrolash::JustEngagedWith(), boss_alythess::JustEngagedWith(), boss_kalecgos::JustEngagedWith(), boss_hexlord_malacrass::JustEngagedWith(), boss_janalai::JustEngagedWith(), boss_nalorakk::JustEngagedWith(), boss_marli::JustEngagedWith(), boss_anetheron::JustEngagedWith(), boss_azgalor::JustEngagedWith(), boss_kazrogal::JustEngagedWith(), boss_rage_winterchill::JustEngagedWith(), boss_kurinnaxx::JustEngagedWith(), npc_hivezara_stinger::JustEngagedWith(), boss_fankriss::JustEngagedWith(), boss_twinemperorsAI::JustEngagedWith(), boss_veknilash::JustEngagedWith(), boss_veklor::JustEngagedWith(), npc_vekniss_stinger::JustEngagedWith(), boss_krik_thir::boss_krik_thirAI::JustEngagedWith(), boss_faerlina::boss_faerlinaAI::JustEngagedWith(), boss_razuvious_minion::boss_razuvious_minionAI::JustEngagedWith(), boss_pandemonius::JustEngagedWith(), boss_murmur::JustEngagedWith(), boss_gurtogg_bloodboil::JustEngagedWith(), boss_supremus::JustEngagedWith(), boss_najentus::JustEngagedWith(), boss_fathomlord_karathress::JustEngagedWith(), boss_fathomguard_sharkkis::JustEngagedWith(), boss_hydross_the_unstable::JustEngagedWith(), boss_morogrim_tidewalker::JustEngagedWith(), boss_magtheridon::JustEngagedWith(), boss_grand_warlock_nethekurse::JustEngagedWith(), boss_porung::JustEngagedWith(), boss_warchief_kargath_bladefist::JustEngagedWith(), boss_alar::JustEngagedWith(), boss_high_astromancer_solarian::JustEngagedWith(), boss_void_reaver::JustEngagedWith(), boss_fathomlord_karathress::KilledUnit(), boss_hydross_the_unstable::KilledUnit(), boss_lady_vashj::KilledUnit(), boss_morogrim_tidewalker::KilledUnit(), boss_gruul::KilledUnit(), boss_high_king_maulgar::KilledUnit(), boss_omor_the_unscarred::KilledUnit(), boss_watchkeeper_gargolmar::KilledUnit(), boss_magtheridon::KilledUnit(), boss_void_reaver::KilledUnit(), boss_moroes::KilledUnit(), boss_anetheron::KilledUnit(), boss_azgalor::KilledUnit(), boss_kazrogal::KilledUnit(), boss_rage_winterchill::KilledUnit(), npc_midsummer_ribbon_pole_target::LocateRibbonPole(), boss_nightbane::MovementInform(), npc_koltira_deathweaver::npc_koltira_deathweaverAI::MovementInform(), npc_harrison_jones::MovementInform(), boss_ayamiss::MovementInform(), boss_illidan_stormrage::MovementInform(), boss_lady_vashj::MovementInform(), boss_alar::MovementInform(), boss_felmyst::MovementInform(), boss_shade_of_akama::MovementInform(), boss_kaelthas::MovementInform(), boss_warchief_kargath_bladefist::MovementInform(), npc_janalai_hatcher::MovementInform(), npc_janalai_hatcher::MoveToNewWaypoint(), npc_hyjal_frost_wyrm::npc_hyjal_frost_wyrm(), npc_hyjal_gargoyle::npc_hyjal_gargoyle(), npc_hyjal_ground_trash::npc_hyjal_ground_trash(), npc_inner_demon::npc_inner_demon(), npc_kiljaeden_controller::npc_kiljaeden_controller(), npc_midsummer_bonfire::npc_midsummer_bonfire(), npc_midsummer_ribbon_pole_target::npc_midsummer_ribbon_pole_target(), boss_taldaram::OnAuraRemove(), boss_high_nethermancer_zerevor::OnAuraRemove(), boss_selin_fireheart::OnPowerUpdate(), BossAI::OnSpellCastFinished(), boss_nightbane::PathEndReached(), boss_jeklik::PathEndReached(), boss_kaelthas::PhaseEnchantedWeaponsExecute(), boss_alar::PretendToDie(), npc_corrupted_totem::Reset(), boss_malchezaar::Reset(), npc_sanguine_spirit::Reset(), boss_felblood_kaelthas::Reset(), boss_priestess_delrissa::Reset(), boss_priestess_lackey_commonAI::Reset(), boss_vexallus::Reset(), npc_koltira_deathweaver::npc_koltira_deathweaverAI::Reset(), npc_kiljaeden_controller::Reset(), boss_kiljaeden::Reset(), boss_entropius::Reset(), npc_sunblade_scout::Reset(), boss_hexlord_malacrass::Reset(), boss_alyson_antille::Reset(), npc_janalai_hatcher::Reset(), npc_amanishi_tempest::Reset(), npc_amanishi_scout::Reset(), boss_thekal::Reset(), boss_azuregos::boss_azuregosAI::Reset(), boss_archimonde::Reset(), npc_hyjal_jaina::hyjalJainaAI::Reset(), npc_hyjal_thrall::hyjalThrallAI::Reset(), npc_hyjal_tyrande::hyjalTyrandeAI::Reset(), npc_hyjal_ground_trash::Reset(), npc_hyjal_gargoyle::Reset(), npc_hyjal_frost_wyrm::Reset(), boss_ayamiss::Reset(), npc_hivezara_stinger::Reset(), npc_obsidian_destroyer::Reset(), npc_eye_tentacle::Reset(), npc_claw_tentacle::Reset(), npc_giant_claw_tentacle::Reset(), npc_giant_eye_tentacle::Reset(), boss_ouro::Reset(), npc_anubisath_defender::Reset(), npc_vekniss_stinger::Reset(), npc_obsidian_eradicator::Reset(), npc_anubisath_warder::Reset(), npc_obsidian_nullifier::Reset(), npc_ahnqiraji_critter::Reset(), boss_taldaram::Reset(), boss_krik_thir::boss_krik_thirAI::Reset(), boss_razuvious_minion::boss_razuvious_minionAI::Reset(), boss_kologarn_pit_kill_bunny::Reset(), npc_ulduar_keeper::npc_ulduar_keeperAI::Reset(), npc_cosmetic_toy_plane::Reset(), boss_exarch_maladaar::Reset(), boss_anzu::Reset(), boss_talon_king_ikiss::Reset(), boss_illidan_stormrage::Reset(), npc_akama_illidan::Reset(), npc_maiev_illidan::Reset(), boss_high_nethermancer_zerevor::Reset(), boss_essence_of_suffering::boss_essence_of_sufferingAI::Reset(), boss_essence_of_desire::boss_essence_of_desireAI::Reset(), boss_essence_of_anger::boss_essence_of_angerAI::Reset(), npc_akama_shade::Reset(), npc_creature_generator_akama::Reset(), boss_doomlord_kazzak::boss_doomlordkazzakAI::Reset(), boss_doomwalker::Reset(), boss_fathomguard_sharkkis::Reset(), boss_lady_vashj::Reset(), boss_leotheras_the_blind::Reset(), boss_high_king_maulgar::Reset(), boss_omor_the_unscarred::Reset(), boss_watchkeeper_gargolmar::Reset(), boss_magtheridon::Reset(), boss_high_astromancer_solarian::Reset(), boss_kaelthas::Reset(), advisor_baseAI::Reset(), npc_raging_flames::Reset(), npc_enslaved_netherwing_drake::Reset(), npc_necrotic_shard::Reset(), npc_minion_spawner::Reset(), npc_cultist_engineer::Reset(), npc_flameshocker::Reset(), boss_alar::ScheduleAbilities(), boss_illidan_stormrage::ScheduleAbilities(), boss_razuvious_minion::boss_razuvious_minionAI::ScheduleAttackDummy(), boss_warbringer_omrogg::ScheduleBurningPhase(), boss_taldaram::ScheduleCombatEvents(), boss_magtheridon::ScheduleCombatEvents(), npc_necrotic_shard::ScheduleCultistSpawnTask(), npc_amanishi_tempest::ScheduleEvents(), npc_dream_fog::npc_dream_fogAI::ScheduleEvents(), boss_nightbane::ScheduleFly(), boss_nightbane::ScheduleGround(), boss_felmyst::ScheduleGroundAbilities(), boss_razuvious::boss_razuviousAI::ScheduleInteractWithDeathKnight(), boss_nightbane::ScheduleLand(), boss_alar::ScheduleMainSpellAttack(), npc_necrotic_shard::ScheduleMinionSpawnTask(), boss_warbringer_omrogg::ScheduleNonBurningPhase(), boss_supremus::SchedulePhase(), boss_commander_sarannis::ScheduleReinforcements(), boss_razuvious::boss_razuviousAI::ScheduleRP(), boss_the_lurker_below::SchedulerPhaseOne(), boss_the_lurker_below::SchedulerPhaseTwo(), boss_lady_vashj::ScheduleSpells(), boss_eye_of_cthun::ScheduleTask(), npc_giant_claw_tentacle::ScheduleTasks(), npc_necrotic_shard::ScheduleTasks(), npc_pallid_horror::ScheduleTasks(), boss_attumen::ScheduleTasks(), boss_ayamiss::ScheduleTasks(), boss_cthun::ScheduleTasks(), boss_laj::ScheduleTasks(), ScriptedAI::ScheduleTimedEvent(), boss_grand_warlock_nethekurse::SetData(), boss_warbringer_omrogg::SetData(), boss_thekal::SetData(), boss_hydross_the_unstable::SetForm(), npc_harrison_jones::sGossipSelect(), boss_nalorakk::ShapeShift(), npc_netherspite_infernal::SpellHit(), boss_terestian_illhoof::SpellHit(), npc_harrison_jones::SpellHit(), boss_attumen::SpellHit(), boss_faerlina::boss_faerlinaAI::SpellHit(), advisor_baseAI::SpellHit(), npc_enslaved_netherwing_drake::SpellHit(), npc_deathstalker_fearleia::sQuestAccept(), boss_felmyst::StartIntro(), npc_giant_claw_tentacle::Submerge(), boss_ouro::Submerge(), boss_cthun::SummonedCreatureDies(), npc_drakonid_spawner::SummonedCreatureDies(), npc_kiljaeden_controller::SummonedCreatureDies(), boss_warchief_kargath_bladefist::SummonedCreatureDies(), boss_netherspite::SwitchToBanishPhase(), boss_netherspite::SwitchToPortalPhase(), boss_nightbane::TriggerHealthTakeOff(), npc_flameshocker::UpdateAI(), npc_pallid_horror::UpdateAI(), BossAI::UpdateAI(), npc_drakonid_spawner::UpdateAI(), boss_attumen::UpdateAI(), boss_midnight::UpdateAI(), boss_moroes::UpdateAI(), boss_netherspite::UpdateAI(), boss_nightbane::UpdateAI(), npc_netherspite_infernal::UpdateAI(), npc_malchezaar_axe::UpdateAI(), boss_shade_of_aran::UpdateAI(), npc_sanguine_spirit::UpdateAI(), boss_priestess_lackey_commonAI::UpdateAI(), boss_apothecary_hummel::boss_apothecary_hummelAI::UpdateAI(), boss_felmyst::UpdateAI(), boss_kalec::UpdateAI(), boss_sathrovarr::UpdateAI(), npc_kiljaeden_controller::UpdateAI(), boss_entropius::UpdateAI(), npc_singularity::UpdateAI(), boss_alyson_antille::UpdateAI(), npc_janalai_hatcher::UpdateAI(), npc_harrison_jones::UpdateAI(), npc_amanishi_tempest::UpdateAI(), boss_thekal::UpdateAI(), npc_midsummer_ribbon_pole_target::UpdateAI(), boss_azuregos::boss_azuregosAI::UpdateAI(), npc_doomfire_spirit::UpdateAI(), npc_hyjal_jaina::hyjalJainaAI::UpdateAI(), npc_hyjal_thrall::hyjalThrallAI::UpdateAI(), npc_hyjal_tyrande::hyjalTyrandeAI::UpdateAI(), npc_hyjal_ground_trash::UpdateAI(), npc_hyjal_gargoyle::UpdateAI(), npc_hyjal_frost_wyrm::UpdateAI(), boss_lieutenant_drake::UpdateAI(), npc_hivezara_stinger::UpdateAI(), npc_obsidian_destroyer::UpdateAI(), boss_cthun::UpdateAI(), npc_eye_tentacle::UpdateAI(), npc_claw_tentacle::UpdateAI(), npc_giant_claw_tentacle::UpdateAI(), npc_giant_eye_tentacle::UpdateAI(), boss_ouro::UpdateAI(), npc_dirt_mound::UpdateAI(), boss_twinemperorsAI::UpdateAI(), boss_viscidus::UpdateAI(), boss_glob_of_viscidus::UpdateAI(), npc_anubisath_defender::UpdateAI(), npc_vekniss_stinger::UpdateAI(), npc_anubisath_warder::UpdateAI(), boss_anub_arak::boss_anub_arakAI::UpdateAI(), boss_razuvious_minion::boss_razuvious_minionAI::UpdateAI(), boss_freya::boss_freyaAI::UpdateAI(), boss_hodir::boss_hodirAI::UpdateAI(), boss_kologarn_pit_kill_bunny::UpdateAI(), boss_yoggsaron_keeper::UpdateAI(), npc_ulduar_keeper::npc_ulduar_keeperAI::UpdateAI(), npc_cosmetic_toy_plane::UpdateAI(), boss_exarch_maladaar::UpdateAI(), boss_shirrak_the_dead_watcher::UpdateAI(), boss_nexusprince_shaffar::UpdateAI(), boss_anzu::UpdateAI(), boss_ambassador_hellmaw::UpdateAI(), boss_blackheart_the_inciter::UpdateAI(), npc_akama_illidan::UpdateAI(), npc_maiev_illidan::UpdateAI(), npc_parasitic_shadowfiend::UpdateAI(), npc_flame_of_azzinoth::UpdateAI(), boss_illidari_council::UpdateAI(), boss_high_nethermancer_zerevor::UpdateAI(), boss_reliquary_of_souls::boss_reliquary_of_soulsAI::UpdateAI(), boss_essence_of_suffering::boss_essence_of_sufferingAI::UpdateAI(), boss_essence_of_desire::boss_essence_of_desireAI::UpdateAI(), boss_essence_of_anger::boss_essence_of_angerAI::UpdateAI(), boss_shade_of_akama::UpdateAI(), npc_akama_shade::UpdateAI(), npc_creature_generator_akama::UpdateAI(), npc_supremus_punch_invisible_stalker::UpdateAI(), boss_teron_gorefiend::UpdateAI(), boss_doomlord_kazzak::boss_doomlordkazzakAI::UpdateAI(), boss_doomwalker::UpdateAI(), boss_fathomguard_sharkkis::UpdateAI(), boss_lady_vashj::UpdateAI(), boss_leotheras_the_blind::UpdateAI(), npc_inner_demon::UpdateAI(), boss_the_lurker_below::UpdateAI(), npc_rancid_mushroom::UpdateAI(), boss_ghazan::UpdateAI(), boss_the_black_stalker::UpdateAI(), boss_gruul::UpdateAI(), boss_high_king_maulgar::UpdateAI(), boss_omor_the_unscarred::UpdateAI(), boss_watchkeeper_gargolmar::UpdateAI(), boss_magtheridon::UpdateAI(), boss_grand_warlock_nethekurse::UpdateAI(), boss_warbringer_omrogg::UpdateAI(), boss_warchief_kargath_bladefist::UpdateAI(), boss_alar::UpdateAI(), advisor_baseAI::UpdateAI(), npc_raging_flames::UpdateAI(), npc_enslaved_netherwing_drake::UpdateAI(), npc_dream_fog::npc_dream_fogAI::UpdateAI(), npc_herald_of_the_lich_king::UpdateAI(), npc_necrotic_shard::UpdateAI(), npc_minion_spawner::UpdateAI(), and npc_cultist_engineer::UpdateAI().


The documentation for this class was generated from the following files: