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

Constructor & Destructor Documentation

◆ CreatureAI()

CreatureAI::CreatureAI ( Creature creature)
inlineexplicit
101: UnitAI(creature), me(creature), _boundary(nullptr), _negateBoundary(false), m_MoveInLineOfSight_locked(false) { }
CreatureBoundary const * _boundary
Definition CreatureAI.h:235
bool _negateBoundary
Definition CreatureAI.h:236
bool m_MoveInLineOfSight_locked
Definition CreatureAI.h:239
Creature *const me
Definition CreatureAI.h:72
Definition UnitAI.h:197

◆ ~CreatureAI()

CreatureAI::~CreatureAI ( )
inlineoverride
103{}

Member Function Documentation

◆ _EnterEvadeMode()

bool CreatureAI::_EnterEvadeMode ( EvadeReason  why = EVADE_REASON_OTHER)
protected
306{
307 if (!me->IsAlive())
308 {
309 return false;
310 }
311
312 // don't remove vehicle auras, passengers aren't supposed to drop off the vehicle
313 // don't remove clone caster on evade (to be verified)
315
316 me->ClearComboPointHolders(); // Remove all combo points targeting this unit
317 // sometimes bosses stuck in combat?
319 me->CombatStop(true);
320 me->LoadCreaturesAddon(true);
321 me->SetLootRecipient(nullptr);
325
326 if (ZoneScript* zoneScript = me->GetZoneScript() ? me->GetZoneScript() : (ZoneScript*)me->GetInstanceScript())
327 zoneScript->OnCreatureEvade(me);
328
329 if (me->IsInEvadeMode())
330 {
331 return false;
332 }
333 else if (CreatureGroup* formation = me->GetFormation())
334 {
335 formation->MemberEvaded(me);
336 }
337
338 if (TempSummon* summon = me->ToTempSummon())
339 {
340 if (WorldObject* summoner = summon->GetSummoner())
341 {
342 if (summoner->ToCreature() && summoner->ToCreature()->IsAIEnabled)
343 {
344 summoner->ToCreature()->AI()->SummonedCreatureEvade(me);
345 }
346 else if (summoner->ToGameObject() && summoner->ToGameObject()->AI())
347 {
348 summoner->ToGameObject()->AI()->SummonedCreatureEvade(me);
349 }
350 }
351 }
352
353 return true;
354}
Definition CreatureGroups.h:90
bool LoadCreaturesAddon(bool reload=false)
Definition Creature.cpp:2713
void SetLootRecipient(Unit *unit, bool withGroup=true)
Definition Creature.cpp:1326
void SetCannotReachTarget(ObjectGuid const &target=ObjectGuid::Empty)
Definition Creature.cpp:3675
CreatureGroup const * GetFormation() const
Definition Creature.h:357
void ResetPlayerDamageReq()
Definition Creature.cpp:3842
void ClearLastLeashExtensionTimePtr()
Definition Creature.cpp:3718
bool IsInEvadeMode() const
Definition Creature.h:135
Definition TemporarySummon.h:40
void ClearAllThreat()
Definition ThreatMgr.cpp:417
void RemoveEvadeAuras()
Definition Unit.cpp:5470
void CombatStop(bool includingCast=false)
Definition Unit.cpp:10480
bool IsAlive() const
Definition Unit.h:1698
TempSummon * ToTempSummon()
Definition Unit.h:686
void ClearComboPointHolders()
Definition Unit.cpp:16952
ThreatMgr & GetThreatMgr()
Definition Unit.h:896
Definition Object.h:411
ZoneScript * GetZoneScript() const
Definition Object.h:543
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.

223{ }

◆ CanAlwaysBeDetectable()

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

Reimplemented in boss_renataki::boss_renatakiAI.

208{ return false; }

◆ CanBeSeen()

◆ CanRespawn()

virtual bool CreatureAI::CanRespawn ( )
inlinevirtual

Reimplemented in BossAI, and SmartAI.

117{ return true; }

Referenced by Creature::Respawn().

◆ CanSeeAlways()

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

Reimplemented in boss_renataki::boss_renatakiAI.

205{ 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.

518{
519 if (IsInBoundary())
520 return true;
521 else
522 {
524 return false;
525 }
526}
bool IsInBoundary(Position const *who=nullptr) const
Definition CreatureAI.cpp:497
virtual void EnterEvadeMode(EvadeReason why=EVADE_REASON_OTHER)
Definition CreatureAI.cpp:210

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, and SmartAI.

193{}

Referenced by Creature::RemoveCorpse().

◆ DoSummon() [1/2]

Creature * CreatureAI::DoSummon ( uint32  entry,
Position const &  pos,
uint32  despawnTime = 30000,
TempSummonType  summonType = TEMPSUMMON_CORPSE_TIMED_DESPAWN 
)
protected
536{
537 return me->SummonCreature(entry, pos, summonType, despawnTime);
538}
TempSummon * SummonCreature(uint32 id, const Position &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0, SummonPropertiesEntry const *properties=nullptr, bool visibleBySummonerOnly=false) const
Definition Object.cpp:2368

References 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
541{
542 Position pos = obj->GetRandomNearPosition(radius);
543 return me->SummonCreature(entry, pos, summonType, despawnTime);
544}
Position GetRandomNearPosition(float radius)
Definition Object.cpp:2748
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
547{
548 Position pos = obj->GetRandomNearPosition(radius);
549 pos.m_positionZ += flightZ;
550 return me->SummonCreature(entry, pos, summonType, despawnTime);
551}
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 
)
109{
110 if (!creature)
111 {
112 creature = me;
113 }
114
115 if (creature->IsInEvadeMode())
116 {
117 return;
118 }
119
120 Map* map = creature->GetMap();
121 if (!map->IsDungeon()) //use IsDungeon instead of Instanceable, in case battlegrounds will be instantiated
122 {
123 LOG_ERROR("entities.unit.ai", "DoZoneInCombat call for map {} that isn't a dungeon (creature entry = {})", map->GetId(), creature->IsCreature() ? creature->ToCreature()->GetEntry() : 0);
124 return;
125 }
126
127 Map::PlayerList const& playerList = map->GetPlayers();
128 if (playerList.IsEmpty())
129 {
130 return;
131 }
132
133 for (Map::PlayerList::const_iterator itr = playerList.begin(); itr != playerList.end(); ++itr)
134 {
135 if (Player* player = itr->GetSource())
136 {
137 if (!IsValidCombatTarget(creature, player))
138 {
139 continue;
140 }
141
142 if (!creature->IsWithinDistInMap(player, maxRangeToNearestTarget))
143 {
144 continue;
145 }
146
147 creature->SetInCombatWith(player);
148 player->SetInCombatWith(creature);
149
150 if (creature->CanHaveThreatList())
151 {
152 creature->AddThreat(player, 0.0f);
153 }
154 }
155 }
156}
bool IsValidCombatTarget(Creature *source, Player *target)
Definition CreatureAI.cpp:78
#define LOG_ERROR(filterType__,...)
Definition Log.h:157
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:156
bool IsDungeon() const
Definition Map.h:295
uint32 GetId() const
Definition Map.h:229
PlayerList const & GetPlayers() const
Definition Map.h:333
uint32 GetEntry() const
Definition Object.h:116
bool IsCreature() const
Definition Object.h:205
Creature * ToCreature()
Definition Object.h:206
Definition Player.h:1082
void AddThreat(Unit *victim, float fThreat, SpellSchoolMask schoolMask=SPELL_SCHOOL_MASK_NORMAL, SpellInfo const *threatSpell=nullptr)
Definition Unit.cpp:14704
void SetInCombatWith(Unit *enemy, uint32 duration=0)
Definition Unit.cpp:13625
bool CanHaveThreatList(bool skipAliveCheck=false) const
Definition Unit.cpp:14665
Map * GetMap() const
Definition Object.h:537
bool IsWithinDistInMap(WorldObject const *obj, float dist2compare, bool is3D=true, bool useBoundingRadius=true) const
Definition Object.cpp:1332

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_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_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_amanitar_mushrooms, 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.

211{
212 if (!_EnterEvadeMode(why))
213 return;
214
215 LOG_DEBUG("entities.unit", "Creature {} enters evade mode.", me->GetEntry());
216
217 if (!me->GetVehicle()) // otherwise me will be in evade mode forever
218 {
219 if (Unit* owner = me->GetCharmerOrOwner())
220 {
221 me->GetMotionMaster()->Clear(false);
223 }
224 else
225 {
226 // Required to prevent attacking creatures that are evading and cause them to reenter combat
227 // Does not apply to MoveFollow
230 }
231 }
232
233 Reset();
234 if (me->IsVehicle()) // use the same sequence of addtoworld, aireset may remove all summons!
235 {
236 me->GetVehicleKit()->Reset(true);
237 }
238
239 sScriptMgr->OnUnitEnterEvadeMode(me, why);
240
241 // despawn bosses at reset - only verified tbc/woltk bosses with this reset type
242 CreatureTemplate const* cInfo = sObjectMgr->GetCreatureTemplate(me->GetEntry());
244 {
246 }
247}
@ CREATURE_FLAG_EXTRA_HARD_RESET
Definition CreatureData.h:76
#define LOG_DEBUG(filterType__,...)
Definition Log.h:169
@ MOTION_SLOT_ACTIVE
Definition MotionMaster.h:64
#define sObjectMgr
Definition ObjectMgr.h:1650
#define PET_FOLLOW_DIST
Definition PetDefines.h:202
#define sScriptMgr
Definition ScriptMgr.h:727
@ UNIT_STATE_EVADE
Definition UnitDefines.h:191
bool _EnterEvadeMode(EvadeReason why=EVADE_REASON_OTHER)
Definition CreatureAI.cpp:305
void DespawnOnEvade(Seconds respawnDelay=20s)
Definition Creature.cpp:2185
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:409
void Clear(bool reset=true)
Definition MotionMaster.h:167
virtual void Reset()
Definition UnitAI.h:210
Definition Unit.h:620
bool IsVehicle() const
Definition Unit.h:750
Vehicle * GetVehicle() const
Definition Unit.h:1830
MotionMaster * GetMotionMaster()
Definition Unit.h:1664
void AddUnitState(uint32 f)
Definition Unit.h:690
Unit * GetCharmerOrOwner() const
Definition Unit.h:1211
virtual float GetFollowAngle() const
Definition Unit.h:1800
Vehicle * GetVehicleKit() const
Definition Unit.h:1829
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_crusade_persuaded::npc_crusade_persuadedAI::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
217{ return _boundary; }

References _boundary.

◆ GetSummoner()

WorldObject * CreatureAI::GetSummoner ( ) const

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

71{
72 if (TempSummon* summon = me->ToTempSummon())
73 return summon->GetSummoner();
74
75 return nullptr;
76}

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.

151{ return false; }

◆ IsInBoundary()

bool CreatureAI::IsInBoundary ( Position const *  who = nullptr) const
498{
499 if (!_boundary)
500 return true;
501
502 if (!who)
503 who = me;
504
506}
static bool IsInBounds(CreatureBoundary const &boundary, Position const *who)
Definition CreatureAI.cpp:508

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
509{
510 for (AreaBoundary const* areaBoundary : boundary)
511 if (!areaBoundary->IsWithinBoundary(pos))
512 return false;
513
514 return true;
515}
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_gen_fetch_ball, npc_spirit_shade::npc_spirit_shadeAI, npc_venomhide_hatchling::npc_venomhide_hatchlingAI, and npc_arcanite_dragonling.

135{}

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, 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::npc_pet_dk_ghoulAI, boss_taerar::boss_taerarAI, 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.

128{}

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, 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_crusade_persuaded::npc_crusade_persuadedAI, 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, npc_amanitar_mushrooms, 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.

125{}

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_rocket_propelled_warhead::npc_rocket_propelled_warheadAI, 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.

165{}

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_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_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, 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.

134{}

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

131{}

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

◆ MoveBackwardsChecks()

void CreatureAI::MoveBackwardsChecks ( )
374{
375 Unit *victim = me->GetVictim();
376
377 if (!victim || !me->IsFreeToMove() || me->HasUnitMovementFlag(MOVEMENTFLAG_ROOT) ||
378 (!victim->IsPlayer() && !victim->IsPet()))
379 {
380 return;
381 }
382
383 float moveDist = me->GetMeleeRange(victim) / 2;
384
385 me->GetMotionMaster()->MoveBackwards(victim, moveDist);
386}
@ MOVEMENTFLAG_ROOT
Definition UnitDefines.h:376
bool IsFreeToMove()
Definition Creature.cpp:940
void MoveBackwards(Unit *target, float dist)
Definition MotionMaster.cpp:334
bool IsPlayer() const
Definition Object.h:201
bool IsPet() const
Definition Unit.h:747
bool HasUnitMovementFlag(uint32 f) const
Definition Unit.h:729
Unit * GetVictim() const
Definition Unit.h:846
float GetMeleeRange(Unit const *target) const
Definition Unit.cpp:680

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

Referenced by Creature::Update().

◆ MoveCircleChecks()

void CreatureAI::MoveCircleChecks ( )
357{
358 Unit *victim = me->GetVictim();
359
360 if (
361 !victim ||
363 !me->IsWithinMeleeRange(victim) || me == victim->GetVictim() ||
364 (!victim->IsPlayer() && !victim->IsPet()) // only player & pets to save CPU
365 )
366 {
367 return;
368 }
369
371}
void MoveCircleTarget(Unit *target)
Definition MotionMaster.cpp:386
bool IsWithinMeleeRange(Unit const *obj, float dist=0.f) const
Definition Unit.cpp:665

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

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.

172{
173 if (me->IsEngaged())
174 return;
175
176 // pussywizard: civilian, non-combat pet or any other NOT HOSTILE TO ANYONE (!)
178 if (me->GetCreatureType() == CREATURE_TYPE_NON_COMBAT_PET || // nothing more to do, return
179 !who->IsInCombat() || // if not in combat, nothing more to do
180 !me->IsWithinDist(who, ATTACK_DISTANCE, true, false)) // if in combat and in dist - neutral to all can actually assist other creatures
181 return;
182
184 AttackStart(who);
185}
#define ATTACK_DISTANCE
Definition ObjectDefines.h:25
@ CREATURE_TYPE_NON_COMBAT_PET
Definition SharedDefines.h:2639
@ REACT_AGGRESSIVE
Definition Unit.h:551
bool CanStartAttack(Unit const *u) const
Definition Creature.cpp:1914
bool HasReactState(ReactStates state) const
Definition Creature.h:97
bool IsMoveInLineOfSightDisabled()
Definition Creature.h:280
virtual void AttackStart(Unit *)
Definition UnitAI.cpp:27
bool IsEngaged() const
Definition Unit.h:874
uint32 GetCreatureType() const
Definition Unit.cpp:15233
bool IsInCombat() const
Definition Unit.h:877
bool IsWithinDist(WorldObject const *obj, float dist2compare, bool is3D=true, bool useBoundingRadius=true) const
Definition Object.cpp:1327

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 =================================

161{
163 {
164 return;
165 }
169}
virtual void MoveInLineOfSight(Unit *)
Definition CreatureAI.cpp:171

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, 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::npc_pet_dk_ebon_gargoyleAI, 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.

157{}

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

◆ OnAuraRemove()

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

Reimplemented in boss_high_nethermancer_zerevor.

228{ }

Referenced by Unit::_UnapplyAura().

◆ OnCharmed()

◆ OnSpellClick()

◆ OnTeleportUnreacheablePlayer()

virtual bool CreatureAI::OnTeleportUnreacheablePlayer ( Player )
inlinevirtual

Reimplemented in boss_mandokir::boss_mandokirAI.

225{ return false; }

◆ OwnerAttacked()

virtual void CreatureAI::OwnerAttacked ( Unit )
inlinevirtual

Reimplemented in PetAI, and npc_pet_gen_valkyr_guardian.

176{}

◆ OwnerAttackedBy()

virtual void CreatureAI::OwnerAttackedBy ( Unit )
inlinevirtual

Reimplemented in PetAI, and npc_scarlet_ghoul::npc_scarlet_ghoulAI.

173{}

Referenced by Unit::DealDamage().

◆ PassengerBoarded()

◆ PathEndReached()

◆ PetStopAttack()

virtual void CreatureAI::PetStopAttack ( )
inlinevirtual

Reimplemented in PetAI.

210{ }

Referenced by Pet::Update().

◆ ReceiveEmote()

◆ SetBoundary()

◆ SetGazeOn()

void CreatureAI::SetGazeOn ( Unit target)
protected
256{
257 if (me->IsValidAttackTarget(target))
258 {
259 AttackStart(target);
261 }
262}
@ 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:13922

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

Referenced by boss_gluth::boss_gluthAI::MoveInLineOfSight(), npc_pet_dk_ebon_gargoyle::npc_pet_dk_ebon_gargoyleAI::MySelectNextTarget(), and npc_pet_dk_ebon_gargoyle::npc_pet_dk_ebon_gargoyleAI::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, 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_rocket_propelled_warhead::npc_rocket_propelled_warheadAI, npc_death_knight_initiate::npc_death_knight_initiateAI, npc_crusade_persuaded::npc_crusade_persuadedAI, 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, 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_midsummer_torch_target, 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.

144{}

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, 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_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, and npc_pet_gen_fetch_ball.

147{}

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

137{}

◆ SummonedCreatureDespawnAll()

virtual void CreatureAI::SummonedCreatureDespawnAll ( )
inlinevirtual

Reimplemented in BossAI.

139{}

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_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, boss_amanitar, and boss_jedoga_shadowseeker.

138{}

Referenced by boss_selin_fireheart::SummonedCreatureDies(), and boss_amanitar::SummonedCreatureDies().

◆ SummonedCreatureEvade()

virtual void CreatureAI::SummonedCreatureEvade ( Creature )
inlinevirtual

Reimplemented in npc_amanishi_tempest, and SmartAI.

141{}

◆ Talk() [1/2]

void CreatureAI::Talk ( uint8  id,
Milliseconds  delay 
)
inline
97{ 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.
53{
54 if (delay > Seconds::zero())
55 {
56 me->m_Events.AddEventAtOffset([this, id, target]()
57 {
58 sCreatureTextMgr->SendChat(me, id, target);
59 }, delay);
60 }
61 else
62 {
63 sCreatureTextMgr->SendChat(me, id, target);
64 }
65}
#define sCreatureTextMgr
Definition CreatureTextMgr.h:119
void AddEventAtOffset(BasicEvent *event, Milliseconds offset)
Definition EventProcessor.h:107
EventProcessor m_Events
Definition Object.h:640

References EventProcessor::AddEventAtOffset(), 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_q12096_q12092_bark::HandleDummy(), spell_q12589_shoot_rjr::HandleDummy(), spell_herald_volzaj_insanity::HandleDummyEffect(), 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(), npc_jungle_punch_target::npc_jungle_punch_targetAI::proceedCwEvent(), 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_thrall_bfu::npc_thrall_bfuAI::SpawnWave(), 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(), 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
189{
190 // If there's no target, or target isn't a player do nothing
191 if (!who || !who->IsPlayer())
192 return;
193 // If this unit isn't an NPC, is already distracted, is in combat, is confused, stunned or fleeing, do nothing
195 return;
196 // Only alert for hostiles!
198 return;
199 // Only alert if target is within line of sight
200 if (!me->IsWithinLOSInMap(who))
201 return;
202 // Send alert sound (if any) for this creature
204 // Face the unit (stealthed player) and set distracted state for 5 seconds
205 me->SetFacingTo(me->GetAngle(who->GetPositionX(), who->GetPositionY()));
206 me->StopMoving();
208}
constexpr auto IN_MILLISECONDS
Definition Common.h:53
@ AI_REACTION_ALERT
Definition SharedDefines.h:3240
@ 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:2559
bool IsCivilian() const
Definition Creature.h:75
void SendAIReaction(AiReaction reactionType)
Definition Creature.cpp:2420
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:798
void SetFacingTo(float ori)
Definition Unit.cpp:20327
void StopMoving()
Definition Unit.cpp:16683
bool HasUnitState(const uint32 f) const
Definition Unit.h:691
bool IsHostileTo(Unit const *unit) const
Definition Unit.cpp:10276
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:1358
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
283{
284 if (!me->IsEngaged())
285 return false;
286
288 {
289 if (Unit* victim = me->SelectVictim())
290 AttackStart(victim);
291 return me->GetVictim();
292 }
293 // xinef: if we have any victim, just return true
294 else if (me->GetVictim() && me->GetExactDist(me->GetVictim()) < 30.0f)
295 return true;
296 else if (me->GetThreatMgr().isThreatListEmpty())
297 {
299 return false;
300 }
301
302 return true;
303}
Unit * SelectVictim()
Definition Unit.cpp:14784
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(), 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_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_taldaram::UpdateAI(), boss_anub_arak::boss_anub_arakAI::UpdateAI(), boss_hadronox::boss_hadronoxAI::UpdateAI(), npc_anub_ar_crusher::npc_anub_ar_crusherAI::UpdateAI(), boss_krik_thir::boss_krik_thirAI::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_slad_ran::boss_slad_ranAI::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

◆ VisualizeBoundary()

int32 CreatureAI::VisualizeBoundary ( uint32  duration,
Unit owner = nullptr,
bool  fill = false,
bool  checkZ = false 
) const
389{
390 static constexpr float BOUNDARY_STEP = 5.0f;
391 static constexpr uint32 BOUNDARY_VISUALIZE_CREATURE = 21659; // Floaty Flavor Eye
392 static constexpr float BOUNDARY_VISUALIZE_CREATURE_SCALE = 0.25f;
393 static constexpr uint32 BOUNDARY_MAX_SPAWNS = 8000;
394 static constexpr float BOUNDARY_MAX_DISTANCE = MAX_SEARCHER_DISTANCE;
395
396 float boundaryStep = fill && checkZ ? BOUNDARY_STEP * 2 : BOUNDARY_STEP;
397
398 Position const boundaryDirections[6] = {
399 {boundaryStep, 0, 0 },
400 {-boundaryStep, 0, 0 },
401 {0, boundaryStep, 0 },
402 {0, -boundaryStep, 0 },
403 {0, 0, boundaryStep },
404 {0, 0, -boundaryStep}
405 };
406
407 if (!owner)
408 return -1;
409
410 if (!_boundary || _boundary->empty())
412
413 Position startPosition = owner->GetPosition();
414 if (!IsInBoundary(&startPosition)) // fall back to creature position
415 {
416 startPosition = me->GetPosition();
417 if (!IsInBoundary(&startPosition)) // fall back to creature home position
418 {
419 startPosition = me->GetHomePosition();
420 if (!IsInBoundary(&startPosition))
422 }
423 }
424
425 // Helper to spawn visualization creature
426 auto spawnVisualizationCreature = [owner, duration, checkZ](Position const& pos)
427 {
428 if (TempSummon* summon =
429 owner->SummonCreature(BOUNDARY_VISUALIZE_CREATURE, pos, TEMPSUMMON_TIMED_DESPAWN, duration))
430 {
431 summon->SetObjectScale(BOUNDARY_VISUALIZE_CREATURE_SCALE);
432 summon->SetUnitFlag(UNIT_FLAG_STUNNED);
433 summon->SetImmuneToAll(true);
434 summon->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE_2);
435 if (!checkZ)
436 summon->SetDisableGravity(false);
437 }
438 };
439
440 struct PositionHash
441 {
442 std::size_t operator()(Position const& pos) const
443 {
444 // Convert to fixed precision coordinates.
445 // We lose precision here, but we don't care about the exact position
446 int32 x = int32(pos.m_positionX);
447 int32 y = int32(pos.m_positionY);
448 int32 z = int32(pos.m_positionZ);
449
450 return std::hash<int32_t>()(x) ^ std::hash<int32_t>()(y) ^ std::hash<int32_t>()(z);
451 }
452 };
453
454 std::unordered_set<Position, PositionHash> visited;
455 std::queue<Position> queue;
456 queue.push(startPosition);
457 visited.insert(startPosition);
458 uint8 maxDirections = checkZ ? 6 : 4;
459 uint32 spawns = 0;
460
461 while (!queue.empty())
462 {
463 Position currentPosition = queue.front();
464 queue.pop();
465
466 for (uint8 i = 0; i < maxDirections; ++i)
467 {
468 Position const& direction = boundaryDirections[i];
469 Position nextPosition = currentPosition;
470 nextPosition.RelocateOffset(direction);
471
472 if (startPosition.GetExactDist(&nextPosition) > BOUNDARY_MAX_DISTANCE)
473 break;
474
475 if (visited.find(nextPosition) != visited.end())
476 continue; // already visited
477
478 visited.insert(nextPosition);
479
480 bool isInBoundary = IsInBoundary(&nextPosition);
481
482 if ((isInBoundary && fill) || !isInBoundary)
483 {
484 spawnVisualizationCreature(currentPosition);
485 ++spawns;
486 if (spawns > BOUNDARY_MAX_SPAWNS)
488 }
489
490 if (isInBoundary)
491 queue.push(nextPosition); // continue visiting
492 }
493 }
494 return 0;
495}
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:1305
@ LANG_CREATURE_MOVEMENT_NOT_BOUNDED
Definition Language.h:1304
@ LANG_CREATURE_NO_INTERIOR_POINT_FOUND
Definition Language.h:1303
#define MAX_SEARCHER_DISTANCE
Definition ObjectDefines.h:33
@ TEMPSUMMON_TIMED_DESPAWN
Definition Object.h:49
@ UNIT_FLAG_STUNNED
Definition UnitDefines.h:268
@ UNIT_FLAG_NON_ATTACKABLE_2
Definition UnitDefines.h:266
void GetHomePosition(float &x, float &y, float &z, float &ori) const
Definition Creature.h:342
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(), 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(), npc_rocket_propelled_warhead::npc_rocket_propelled_warheadAI::FinishQuest(), 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::npc_pet_dk_army_of_the_deadAI::InitializeAI(), npc_pet_dk_dancing_rune_weapon::npc_pet_dk_dancing_rune_weaponAI::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_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::npc_pet_dk_ghoulAI::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(), npc_rocket_propelled_warhead::npc_rocket_propelled_warheadAI::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(), SmartAI::MoveAway(), 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::npc_pet_dk_risen_allyAI::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(), npc_rocket_propelled_warhead::npc_rocket_propelled_warheadAI::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_crusade_persuaded::npc_crusade_persuadedAI::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::SetCombatMove(), 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_crusade_persuaded::npc_crusade_persuadedAI::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_crusade_persuaded::npc_crusade_persuadedAI::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_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_talon_king_ikiss::boss_talon_king_ikiss(), boss_tavarok::boss_tavarok(), 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(), 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_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_high_nethermancer_zerevor::OnAuraRemove(), boss_selin_fireheart::OnPowerUpdate(), boss_nightbane::PathEndReached(), boss_jeklik::PathEndReached(), boss_kaelthas::PhaseEnchantedWeaponsExecute(), boss_alar::PretendToDie(), npc_corrupted_totem::Reset(), boss_malchezaar::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_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(), boss_alar::ScheduleAbilities(), boss_illidan_stormrage::ScheduleAbilities(), boss_razuvious_minion::boss_razuvious_minionAI::ScheduleAttackDummy(), boss_warbringer_omrogg::ScheduleBurningPhase(), boss_magtheridon::ScheduleCombatEvents(), 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(), 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(), 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(), 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(), 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_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(), and npc_dream_fog::npc_dream_fogAI::UpdateAI().


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