TrinityCore
CreatureAI Class Reference

#include <CreatureAI.h>

Public Types

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

Public Member Functions

 CreatureAI (Creature *creature)
 
virtual ~CreatureAI ()
 
void Talk (uint8 id, WorldObject const *whisperTarget=nullptr)
 
void MoveInLineOfSight_Safe (Unit *who)
 == Reactions At ================================= More...
 
void TriggerAlert (Unit const *who) const
 
virtual void EnterEvadeMode (EvadeReason why=EVADE_REASON_OTHER)
 
virtual void JustEngagedWith (Unit *)
 
virtual void JustDied (Unit *)
 
virtual void KilledUnit (Unit *)
 
virtual void JustSummoned (Creature *)
 
virtual void IsSummonedBy (Unit *)
 
virtual void SummonedCreatureDespawn (Creature *)
 
virtual void SummonedCreatureDies (Creature *, Unit *)
 
virtual void JustSummonedGameobject (GameObject *)
 
virtual void SummonedGameobjectDespawn (GameObject *)
 
virtual void JustRegisteredDynObject (DynamicObject *)
 
virtual void JustUnregisteredDynObject (DynamicObject *)
 
virtual void JustRegisteredAreaTrigger (AreaTrigger *)
 
virtual void JustUnregisteredAreaTrigger (AreaTrigger *)
 
virtual void SpellHit (Unit *, SpellInfo const *)
 
virtual void SpellHit (GameObject *, SpellInfo const *)
 
virtual void SpellHitTarget (Unit *, SpellInfo const *)
 
virtual void SpellHitTarget (GameObject *, SpellInfo const *)
 
virtual bool IsEscorted () const
 
virtual void JustAppeared ()
 
virtual void MovementInform (uint32, uint32)
 
void OnCharmed (bool apply) override
 
virtual void OnSpellCastInterrupt (SpellInfo const *)
 
virtual void OnSuccessfulSpellCast (SpellInfo const *)
 
virtual void JustReachedHome ()
 
void DoZoneInCombat (Creature *creature=nullptr, float maxRangeToNearestTarget=250.0f)
 
virtual void ReceiveEmote (Player *, uint32)
 
virtual void OwnerAttackedBy (Unit *attacker)
 
virtual void OwnerAttacked (Unit *target)
 
virtual void CorpseRemoved (uint32 &)
 == Triggered Actions Requested ================== More...
 
virtual Optional< QuestGiverStatusGetDialogStatus (Player *player)
 == Gossip system ================================ More...
 
virtual bool GossipHello (Player *)
 
virtual bool GossipSelect (Player *, uint32, uint32)
 
virtual bool GossipSelectCode (Player *, uint32, uint32, char const *)
 
virtual void QuestAccept (Player *, Quest const *)
 
virtual void QuestReward (Player *, Quest const *, LootItemType, uint32)
 
virtual void WaypointPathStarted (uint32)
 == Waypoints system ============================= More...
 
virtual void WaypointStarted (uint32, uint32)
 
virtual void WaypointReached (uint32, uint32)
 
virtual void WaypointPathEnded (uint32, uint32)
 
virtual void PassengerBoarded (Unit *, int8, bool)
 == Fields ======================================= More...
 
virtual void OnSpellClick (Unit *, bool)
 
virtual bool CanSeeAlways (WorldObject const *)
 
virtual PlayerAIGetAIForCharmedPlayer (Player *)
 
virtual bool IsEscortNPC (bool) const
 
int32 VisualizeBoundary (uint32 duration, Unit *owner=nullptr, bool fill=false) const
 
virtual bool CheckInRoom ()
 
CreatureBoundary const * GetBoundary () const
 
void SetBoundary (CreatureBoundary const *boundary, bool negativeBoundaries=false)
 
bool IsInBoundary (Position const *who=nullptr) const
 
- 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 diff)=0
 
virtual void InitializeAI ()
 
virtual void Reset ()
 
virtual void DoAction (int32)
 
virtual uint32 GetData (uint32) const
 
virtual void SetData (uint32, uint32)
 
virtual void SetGUID (ObjectGuid const &, int32=0)
 
virtual ObjectGuid GetGUID (int32=0) const
 
UnitSelectTarget (SelectAggroTarget targetType, uint32 offset=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0)
 
template<class PREDICATE >
UnitSelectTarget (SelectAggroTarget targetType, uint32 offset, PREDICATE const &predicate)
 
void SelectTargetList (std::list< Unit *> &targetList, uint32 num, SelectAggroTarget targetType, uint32 offset=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0)
 
template<class PREDICATE >
void SelectTargetList (std::list< Unit *> &targetList, uint32 num, SelectAggroTarget targetType, uint32 offset, PREDICATE const &predicate)
 
virtual void JustEnteredCombat (Unit *)
 
virtual void JustExitedCombat ()
 
virtual void DamageDealt (Unit *, uint32 &, DamageEffectType)
 
virtual void DamageTaken (Unit *, uint32 &)
 
virtual void HealReceived (Unit *, uint32 &)
 
virtual void HealDone (Unit *, uint32 &)
 
virtual void SpellInterrupted (uint32, uint32)
 
void AttackStartCaster (Unit *victim, float dist)
 
void DoCast (uint32 spellId)
 
void DoCast (Unit *victim, uint32 spellId, CastSpellExtraArgs const &args={})
 
void DoCastSelf (uint32 spellId, CastSpellExtraArgs const &args={})
 
void DoCastVictim (uint32 spellId, CastSpellExtraArgs const &args={})
 
void DoCastAOE (uint32 spellId, CastSpellExtraArgs const &args={})
 
virtual bool ShouldSparWith (Unit const *) const
 
void DoMeleeAttackIfReady ()
 
bool DoSpellAttackIfReady (uint32 spellId)
 
virtual void OnGameEvent (bool, uint16)
 

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 ()
 
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
 
CreatureBoundary const * _boundary
 
bool _negateBoundary
 
- Protected Attributes inherited from UnitAI
Unit *const me
 

Private Member Functions

void _OnOwnerCombatInteraction (Unit *target)
 

Private Attributes

bool m_MoveInLineOfSight_locked
 

Additional Inherited Members

- Static Public Attributes inherited from UnitAI
static std::unordered_map< std::pair< uint32, Difficulty >, AISpellInfoTypeAISpellInfo
 

Member Enumeration Documentation

◆ EvadeReason

Enumerator
EVADE_REASON_NO_HOSTILES 
EVADE_REASON_BOUNDARY 
EVADE_REASON_NO_PATH 
EVADE_REASON_SEQUENCE_BREAK 
EVADE_REASON_OTHER 
62  {
63  EVADE_REASON_NO_HOSTILES, // the creature's threat list is empty
64  EVADE_REASON_BOUNDARY, // the creature has moved outside its evade boundary
65  EVADE_REASON_NO_PATH, // the creature was unable to reach its target for over 5 seconds
66  EVADE_REASON_SEQUENCE_BREAK, // this is a boss and the pre-requisite encounters for engaging it are not defeated yet
68  };
Definition: CreatureAI.h:66
Definition: CreatureAI.h:64
Definition: CreatureAI.h:67
Definition: CreatureAI.h:63
Definition: CreatureAI.h:65

Constructor & Destructor Documentation

◆ CreatureAI()

CreatureAI::CreatureAI ( Creature creature)
explicit
51  : UnitAI(creature), me(creature), _boundary(nullptr), _negateBoundary(false), m_MoveInLineOfSight_locked(false)
52 {
53 }
bool _negateBoundary
Definition: CreatureAI.h:230
bool m_MoveInLineOfSight_locked
Definition: CreatureAI.h:233
UnitAI(Unit *unit)
Definition: UnitAI.h:136
Creature *const me
Definition: CreatureAI.h:52
CreatureBoundary const * _boundary
Definition: CreatureAI.h:229

◆ ~CreatureAI()

CreatureAI::~CreatureAI ( )
virtual
56 {
57 }

Member Function Documentation

◆ _EnterEvadeMode()

bool CreatureAI::_EnterEvadeMode ( EvadeReason  why = EVADE_REASON_OTHER)
protected
222 {
223  if (!me->IsAlive())
224  return false;
225 
227 
228  // sometimes bosses stuck in combat?
230  me->CombatStop(true);
231  me->SetLootRecipient(nullptr);
234  me->SetCannotReachTarget(false);
236 
237  if (me->IsInEvadeMode())
238  return false;
239 
240  return true;
241 }
void ResetPlayerDamageReq()
Definition: Creature.h:323
bool IsInEvadeMode() const
Definition: Creature.h:147
void CombatStop(bool includingCast=false, bool mutualPvP=true)
Definition: Unit.cpp:5568
void SetLastDamagedTime(time_t val)
Definition: Creature.h:351
void DoNotReacquireTarget()
Definition: Creature.h:342
Creature *const me
Definition: CreatureAI.h:52
bool IsAlive() const
Definition: Unit.h:1217
ThreatManager & GetThreatManager()
Definition: Unit.h:1119
void SetCannotReachTarget(bool cannotReach)
Definition: Creature.h:290
void ClearAllThreat()
Definition: ThreatManager.cpp:455
void RemoveAurasOnEvade()
Definition: Unit.cpp:4077
void SetLootRecipient(Unit *unit, bool withGroup=true)
Definition: Creature.cpp:1360
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ _OnOwnerCombatInteraction()

void CreatureAI::_OnOwnerCombatInteraction ( Unit target)
private
136 {
137  if (!target || !me->IsAlive())
138  return;
139 
140  if (!me->HasReactState(REACT_PASSIVE) && me->CanStartAttack(target, true))
141  me->EngageWithTarget(target);
142 }
void EngageWithTarget(Unit *who)
Definition: Unit.cpp:7688
Definition: UnitDefines.h:370
Creature *const me
Definition: CreatureAI.h:52
bool IsAlive() const
Definition: Unit.h:1217
bool HasReactState(ReactStates state) const
Definition: Creature.h:112
bool CanStartAttack(Unit const *u, bool force) const
Definition: Creature.cpp:1984
+ Here is the call graph for this function:

◆ CanSeeAlways()

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

Reimplemented in GuardAI.

205 { return false; }

◆ CheckInRoom()

bool CreatureAI::CheckInRoom ( )
virtual

Reimplemented in boss_galvangar::boss_galvangarAI, and boss_drekthar::boss_drektharAI.

352 {
353  if (IsInBoundary())
354  return true;
355  else
356  {
358  return false;
359  }
360 }
virtual void EnterEvadeMode(EvadeReason why=EVADE_REASON_OTHER)
Definition: CreatureAI.cpp:168
bool IsInBoundary(Position const *who=nullptr) const
Definition: CreatureAI.cpp:324
Definition: CreatureAI.h:64
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CorpseRemoved()

virtual void CreatureAI::CorpseRemoved ( uint32 )
inlinevirtual

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

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

Reimplemented in SmartAI.

167 { }
+ Here is the caller graph for this function:

◆ DoSummon() [1/2]

Creature * CreatureAI::DoSummon ( uint32  entry,
Position const &  pos,
uint32  despawnTime = 30000,
TempSummonType  summonType = TEMPSUMMON_CORPSE_TIMED_DESPAWN 
)
protected
363 {
364  return me->SummonCreature(entry, pos, summonType, despawnTime);
365 }
Creature *const me
Definition: CreatureAI.h:52
TempSummon * SummonCreature(uint32 entry, Position const &pos, TempSummonType despawnType=TEMPSUMMON_MANUAL_DESPAWN, uint32 despawnTime=0, uint32 vehId=0, ObjectGuid privateObjectOwner=ObjectGuid::Empty)
Definition: Object.cpp:1878
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DoSummon() [2/2]

Creature * CreatureAI::DoSummon ( uint32  entry,
WorldObject obj,
float  radius = 5.0f,
uint32  despawnTime = 30000,
TempSummonType  summonType = TEMPSUMMON_CORPSE_TIMED_DESPAWN 
)
protected
368 {
369  Position pos = obj->GetRandomNearPosition(radius);
370  return me->SummonCreature(entry, pos, summonType, despawnTime);
371 }
Creature *const me
Definition: CreatureAI.h:52
Position GetRandomNearPosition(float radius)
Definition: Object.cpp:3040
TempSummon * SummonCreature(uint32 entry, Position const &pos, TempSummonType despawnType=TEMPSUMMON_MANUAL_DESPAWN, uint32 despawnTime=0, uint32 vehId=0, ObjectGuid privateObjectOwner=ObjectGuid::Empty)
Definition: Object.cpp:1878
Definition: Position.h:28
+ Here is the call graph for this function:

◆ DoSummonFlyer()

Creature * CreatureAI::DoSummonFlyer ( uint32  entry,
WorldObject obj,
float  flightZ,
float  radius = 5.0f,
uint32  despawnTime = 30000,
TempSummonType  summonType = TEMPSUMMON_CORPSE_TIMED_DESPAWN 
)
protected
374 {
375  Position pos = obj->GetRandomNearPosition(radius);
376  pos.m_positionZ += flightZ;
377  return me->SummonCreature(entry, pos, summonType, despawnTime);
378 }
Creature *const me
Definition: CreatureAI.h:52
Position GetRandomNearPosition(float radius)
Definition: Object.cpp:3040
float m_positionZ
Definition: Position.h:56
TempSummon * SummonCreature(uint32 entry, Position const &pos, TempSummonType despawnType=TEMPSUMMON_MANUAL_DESPAWN, uint32 despawnTime=0, uint32 vehId=0, ObjectGuid privateObjectOwner=ObjectGuid::Empty)
Definition: Object.cpp:1878
Definition: Position.h:28
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DoZoneInCombat()

void CreatureAI::DoZoneInCombat ( Creature creature = nullptr,
float  maxRangeToNearestTarget = 250.0f 
)
65 {
66  if (!creature)
67  creature = me;
68 
69  Map* map = creature->GetMap();
70  if (creature->CanHaveThreatList())
71  {
72  if (!map->IsDungeon()) //use IsDungeon instead of Instanceable, in case battlegrounds will be instantiated
73  {
74  TC_LOG_ERROR("misc", "DoZoneInCombat call for map that isn't an instance (creature entry = %d)", creature->GetTypeId() == TYPEID_UNIT ? creature->ToCreature()->GetEntry() : 0);
75  return;
76  }
77 
78  if (!creature->HasReactState(REACT_PASSIVE) && !creature->GetVictim())
79  {
80  if (Unit* nearTarget = creature->SelectNearestTarget(maxRangeToNearestTarget))
81  creature->AI()->AttackStart(nearTarget);
82  else if (creature->IsSummon())
83  {
84  if (Unit* summoner = creature->ToTempSummon()->GetSummoner())
85  {
86  if (creature->IsFriendlyTo(summoner))
87  {
88  Unit* target = summoner->getAttackerForHelper();
89  if (target && creature->IsHostileTo(target))
90  creature->AI()->AttackStart(target);
91  }
92  }
93  }
94  }
95 
96  // Intended duplicated check, the code above this should select a victim
97  // If it can't find a suitable attack target then we should error out.
98  if (!creature->HasReactState(REACT_PASSIVE) && !creature->GetVictim())
99  {
100  TC_LOG_ERROR("misc.dozoneincombat", "DoZoneInCombat called for creature that has empty threat list (creature entry = %u)", creature->GetEntry());
101  return;
102  }
103  }
104 
105  Map::PlayerList const& playerList = map->GetPlayers();
106  if (playerList.isEmpty())
107  return;
108 
109  for (Map::PlayerList::const_iterator itr = playerList.begin(); itr != playerList.end(); ++itr)
110  if (Player* player = itr->GetSource())
111  if (player->IsAlive())
112  creature->EngageWithTarget(player);
113 }
bool IsSummon() const
Definition: Unit.h:836
TypeID GetTypeId() const
Definition: Object.h:167
bool CanHaveThreatList() const
====================== THREAT & COMBAT ====================
Definition: Unit.h:1086
#define TC_LOG_ERROR(filterType__,...)
Definition: Log.h:186
Definition: ObjectGuid.h:39
void EngageWithTarget(Unit *who)
Definition: Unit.cpp:7688
bool IsDungeon() const
Definition: Map.cpp:4240
bool isEmpty() const
Definition: LinkedList.h:108
iterator begin()
Definition: MapRefManager.h:34
Definition: UnitDefines.h:370
TempSummon * ToTempSummon()
Definition: Unit.h:1795
Map * GetMap() const
Definition: Object.h:535
Unit * SelectNearestTarget(float dist=0, bool playerOnly=false) const
Definition: Creature.cpp:2405
CreatureAI * AI() const
Definition: Creature.h:156
Creature *const me
Definition: CreatureAI.h:52
PlayerList const & GetPlayers() const
Definition: Map.h:423
Unit * GetSummoner() const
Definition: TemporarySummon.cpp:37
Definition: LinkedList.h:147
Definition: Map.h:248
Unit * GetVictim() const
Definition: Unit.h:813
bool HasReactState(ReactStates state) const
Definition: Creature.h:112
bool IsFriendlyTo(WorldObject const *target) const
Definition: Object.cpp:2600
uint32 GetEntry() const
Definition: Object.h:155
Definition: MapRefManager.h:25
Creature * ToCreature()
Definition: Object.h:196
Unit * getAttackerForHelper() const
Definition: Unit.cpp:5377
bool IsHostileTo(WorldObject const *target) const
Definition: Object.cpp:2595
Definition: Unit.h:736
Definition: Player.h:1056
virtual void AttackStart(Unit *)
Definition: UnitAI.cpp:31
iterator end()
Definition: MapRefManager.h:35
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ EnterEvadeMode()

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

Reimplemented in npc_broken_frostmourne::npc_broken_frostmourneAI, npc_training_dummy::npc_training_dummyAI, npc_terenas_menethil::npc_terenas_menethilAI, npc_gunship_mage::npc_gunship_mageAI, npc_phantom_hallucination::npc_phantom_hallucinationAI, npc_phantom_mage::npc_phantom_mageAI, npc_razorscale_devouring_flame, npc_gauntlet_trash, npc_scion_of_eternity::npc_scion_of_eternityAI, npc_nexus_lord::npc_nexus_lordAI, npc_argent_captainAI, npc_caster_hover_disk::npc_caster_hover_diskAI, npc_the_lich_king_escape_hor::npc_the_lich_king_escape_horAI, npc_thorim_arena_phase::npc_thorim_arena_phaseAI, boss_aerial_command_unit::boss_aerial_command_unitAI, npc_meteor_strike_flame::npc_meteor_strike_flameAI, npc_muradin_bronzebeard_igb::npc_muradin_bronzebeard_igbAI, npc_akama_illidan, npc_meteor_strike_initial::npc_meteor_strike_initialAI, boss_vx_001::boss_vx_001AI, npc_ashtongue_spiritbinder, npc_tesla::npc_teslaAI, npc_ashtongue_elementalist, npc_gothik_trigger::npc_gothik_triggerAI, npc_high_overlord_saurfang_igb::npc_high_overlord_saurfang_igbAI, npc_ashtongue_rogue, npc_kelthuzad_guardian::npc_kelthuzad_guardianAI, npc_hadronox_foeAI, npc_ashtongue_sorcerer, boss_kiljaeden::boss_kiljaedenAI, boss_essence_of_anger, npc_gothik_minion_baseAI, npc_kelthuzad_minionAI, boss_malygos::boss_malygosAI, gunship_npc_AI, npc_highlord_darion_mograine::npc_highlord_darion_mograineAI, boss_the_lich_king::boss_the_lich_kingAI, boss_illidan_stormrage, boss_massive_jormungar::boss_massive_jormungarAI, npc_tirion_toc, npc_ember_of_alar::npc_ember_of_alarAI, boss_razorscale, boss_algalon_the_observer::boss_algalon_the_observerAI, boss_thorim::boss_thorimAI, boss_sathrovarr, boss_essence_of_desire, boss_voice_of_yogg_saron::boss_voice_of_yogg_saronAI, npc_anubarak_pet_template, boss_fjola::boss_fjolaAI, boss_twilight_halion::boss_twilight_halionAI, npc_hadronox_crusherPackAI, boss_gothik::boss_gothikAI, npc_ahune_bunny::npc_ahune_bunnyAI, boss_lady_deathwhisper::boss_lady_deathwhisperAI, npc_gatewatcher_petAI, npc_akama_shade, boss_essence_of_suffering, npc_hellfire_channeler::npc_hellfire_channelerAI, PalehoofMinionsBossAI, npc_icefang::npc_icefangAI, boss_midnight::boss_midnightAI, boss_drakkari_elemental::boss_drakkari_elementalAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, npc_alpha_beam::npc_alpha_beamAI, boss_four_horsemen_baseAI, boss_sindragosa::boss_sindragosaAI, npc_omega_stance::npc_omega_stanceAI, boss_northrend_beastsAI, IllidariCouncilBossAI, npc_blazing_monstrosity::npc_blazing_monstrosityAI, npc_baltharus_the_warborn_clone::npc_baltharus_the_warborn_cloneAI, boss_palehoof::boss_palehoofAI, boss_hadronox::boss_hadronoxAI, boss_muru::boss_muruAI, boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI, boss_blood_council_controller::boss_blood_council_controllerAI, boss_reliquary_of_souls, npc_mrfloppy::npc_mrfloppyAI, boss_kelthuzad::boss_kelthuzadAI, boss_halion::boss_halionAI, boss_garothi_worldbreaker, boss_shade_of_akama, npc_tournament_training_dummy::npc_tournament_training_dummyAI, boss_auriaya, boss_xt002::boss_xt002_AI, boss_baleroc, boss_krik_thir::boss_krik_thirAI, npc_firelands_molten_flamefather, npc_onyx_flamecaller::npc_onyx_flamecallerAI, boss_viscidus::boss_viscidusAI, npc_eyestalk::npc_eyestalkAI, npc_pet_gen_pandaren_monk::npc_pet_gen_pandaren_monkAI, boss_ahune::boss_ahuneAI, boss_bjarngrim::boss_bjarngrimAI, boss_entropius::boss_entropiusAI, npc_pet_mage_mirror_image::npc_pet_mage_mirror_imageAI, boss_jedoga_shadowseeker, boss_thaddius, boss_doomrel::boss_doomrelAI, boss_ick::boss_ickAI, boss_tyrannus::boss_tyrannusAI, boss_skadi::boss_skadiAI, boss_ossirian::boss_ossirianAI, boss_baltharus_the_warborn::boss_baltharus_the_warbornAI, npc_ancestral_wolf::npc_ancestral_wolfAI, boss_anub_arak::boss_anub_arakAI, boss_rotface::boss_rotfaceAI, boss_illidari_council, boss_kalecgos, boss_magtheridon::boss_magtheridonAI, boss_festergut::boss_festergutAI, boss_coren_direbrew, boss_jaraxxus, boss_mother_shahraz, boss_brutallus::boss_brutallusAI, boss_gurtogg_bloodboil, boss_teron_gorefiend, boss_nightbane::boss_nightbaneAI, boss_saviana_ragefire::boss_saviana_ragefireAI, npc_firelands_flame_archon, boss_ayamiss::boss_ayamissAI, npc_ruul_snowhoof::npc_ruul_snowhoofAI, hyjalAI, boss_apothecary_hummel::boss_apothecary_hummelAI, firelands_bossAI, npc_pet_gen_egbert::npc_pet_gen_egbertAI, boss_alizabal::boss_alizabalAI, boss_kirtonos_the_herald::boss_kirtonos_the_heraldAI, boss_general_zarithrian::boss_general_zarithrianAI, boss_gal_darah::boss_gal_darahAI, boss_amanitar, boss_moorabi::boss_moorabiAI, boss_attumen::boss_attumenAI, boss_noth::boss_nothAI, SmartAI, boss_skeram::boss_skeramAI, boss_occuthar::boss_occutharAI, boss_supremus, boss_najentus, boss_buru::boss_buruAI, CritterAI, boss_pit_lord_argaloth::boss_pit_lord_argalothAI, NullCreatureAI, PetAI, FollowerAI, npc_pet_pri_lightwell::npc_pet_pri_lightwellAI, EscortAI, PossessedAI, TotemAI, and GuardAI.

169 {
170  if (!_EnterEvadeMode(why))
171  return;
172 
173  TC_LOG_DEBUG("entities.unit", "Creature %u enters evade mode.", me->GetEntry());
174 
175  if (!me->GetVehicle()) // otherwise me will be in evade mode forever
176  {
177  if (Unit* owner = me->GetCharmerOrOwner())
178  {
179  me->GetMotionMaster()->Clear(false);
181  }
182  else
183  {
184  // Required to prevent attacking creatures that are evading and cause them to reenter combat
185  // Does not apply to MoveFollow
188  }
189  }
190 
191  Reset();
192 
193  if (me->IsVehicle()) // use the same sequence of addtoworld, aireset may remove all summons!
194  me->GetVehicleKit()->Reset(true);
195 }
void Clear(bool reset=true)
Definition: MotionMaster.cpp:110
void AddUnitState(uint32 f)
Definition: Unit.h:829
Vehicle * GetVehicleKit() const
Definition: Unit.h:1748
MotionMaster * GetMotionMaster()
Definition: Unit.h:1691
void MoveTargetedHome()
Definition: MotionMaster.cpp:204
Definition: Unit.h:257
Vehicle * GetVehicle() const
Definition: Unit.h:1749
bool _EnterEvadeMode(EvadeReason why=EVADE_REASON_OTHER)
Definition: CreatureAI.cpp:221
Creature *const me
Definition: CreatureAI.h:52
virtual float GetFollowAngle() const
Definition: Unit.h:1783
bool IsVehicle() const
Definition: Unit.h:841
void Reset(bool evading=false)
Reapplies immunities and reinstalls accessories. Only has effect for creatures.
Definition: Vehicle.cpp:137
Unit * GetCharmerOrOwner() const
Definition: Unit.cpp:5795
uint32 GetEntry() const
Definition: Object.h:155
#define TC_LOG_DEBUG(filterType__,...)
Definition: Log.h:177
#define PET_FOLLOW_DIST
Definition: PetDefines.h:79
Definition: MotionMaster.h:78
virtual void Reset()
Definition: UnitAI.h:145
Definition: Unit.h:736
void MoveFollow(Unit *target, float dist, float angle, MovementSlot slot=MOTION_SLOT_ACTIVE)
Definition: MotionMaster.cpp:238
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetAIForCharmedPlayer()

virtual PlayerAI* CreatureAI::GetAIForCharmedPlayer ( Player )
inlinevirtual

Reimplemented in boss_kelthuzad::boss_kelthuzadAI, and boss_blackheart_the_inciter_mc_dummy.

210 { return nullptr; }

◆ GetBoundary()

CreatureBoundary const* CreatureAI::GetBoundary ( ) const
inline
218 { return _boundary; }
CreatureBoundary const * _boundary
Definition: CreatureAI.h:229

◆ GetDialogStatus()

Optional< QuestGiverStatus > CreatureAI::GetDialogStatus ( Player player)
virtual

== Gossip system ================================

244 {
245  return {};
246 }
+ Here is the caller graph for this function:

◆ GossipHello()

virtual bool CreatureAI::GossipHello ( Player )
inlinevirtual

Reimplemented in npc_hidden_cultist::npc_hidden_cultistAI, npc_experience::npc_experienceAI, npc_wormhole::npc_wormholeAI, npc_highlord_darion_mograine::npc_highlord_darion_mograineAI, npc_sayge::npc_saygeAI, npc_arthas::npc_arthasAI, npc_prof_tailor::npc_prof_tailorAI, npc_thassarian::npc_thassarianAI, npc_prof_leather::npc_prof_leatherAI, npc_engineering_tele_trinket::npc_engineering_tele_trinketAI, npc_jaina_or_sylvanas_escape_hor::npc_jaina_or_sylvanas_escape_horAI, npc_alchemist_adrianna::npc_alchemist_adriannaAI, npc_brann_hos::npc_brann_hosAI, npc_colonel_jules::npc_colonel_julesAI, npc_taretha::npc_tarethaAI, npc_death_knight_initiate::npc_death_knight_initiateAI, npc_prof_blacksmith::npc_prof_blacksmithAI, npc_wyrmrest_defender::npc_wyrmrest_defenderAI, npc_essence_of_twin::npc_essence_of_twinAI, npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, npc_lokhtos_darkbargainer::npc_lokhtos_darkbargainerAI, npc_announcer_toc5::npc_announcer_toc5AI, npc_prof_alchemy::npc_prof_alchemyAI, npc_barnes::npc_barnesAI, npc_weegli_blastfuse::npc_weegli_blastfuseAI, npc_jaina_or_sylvanas_intro_hor::npc_jaina_or_sylvanas_intro_horAI, npc_sinclari_vh::npc_sinclariAI, npc_disciple_of_naralex::npc_disciple_of_naralexAI, npc_razael_and_lyana::npc_razael_and_lyanaAI, npc_iruk::npc_irukAI, npc_wg_queue::npc_wg_queueAI, boss_doomrel::boss_doomrelAI, npc_corastrasza::npc_corastraszaAI, npc_tyrande_whisperwind::npc_tyrande_whisperwindAI, npc_wg_spirit_guide::npc_wg_spirit_guideAI, npc_thrall::npc_thrallAI, npc_sergeant_bly::npc_sergeant_blyAI, SmartAI, npc_kalecgos::npc_kalecgosAI, npc_cairne_bloodhoof::npc_cairne_bloodhoofAI, npc_roxi_ramrocket::npc_roxi_ramrocketAI, npc_wg_demolisher_engineer::npc_wg_demolisher_engineerAI, npc_shadowfang_prisoner::npc_shadowfang_prisonerAI, npc_aged_dying_ancient_kodo::npc_aged_dying_ancient_kodoAI, npc_jaina_proudmoore::npc_jaina_proudmooreAI, boss_gloomrel::boss_gloomrelAI, npc_erozion::npc_erozionAI, npcs_ashyen_and_keleth::npcs_ashyen_and_kelethAI, npc_nat_pagle::npc_nat_pagleAI, and npc_innkeeper::npc_innkeeperAI.

178 { return false; }
+ Here is the caller graph for this function:

◆ GossipSelect()

virtual bool CreatureAI::GossipSelect ( Player ,
uint32  ,
uint32   
)
inlinevirtual

Reimplemented in npc_argent_squire_gruntling::npc_argent_squire_gruntlingAI, npc_hidden_cultist::npc_hidden_cultistAI, npc_experience::npc_experienceAI, npc_wormhole::npc_wormholeAI, npc_highlord_darion_mograine::npc_highlord_darion_mograineAI, npc_observation_ring_keeper::npc_observation_ring_keeperAI, npc_zafod_boombox::npc_zafod_boomboxAI, npc_sayge::npc_saygeAI, npc_lorekeeper::npc_lorekeeperAI, npc_prof_tailor::npc_prof_tailorAI, npc_muradin_bronzebeard_igb::npc_muradin_bronzebeard_igbAI, npc_brann_bronzebeard_ulduar_intro::npc_brann_bronzebeard_ulduar_introAI, npc_tirion_fordring_tft::npc_tirion_fordringAI, npc_arthas::npc_arthasAI, npc_thassarian::npc_thassarianAI, npc_prof_leather::npc_prof_leatherAI, npc_akama_illidan, npc_magister_aledis::npc_magister_aledisAI, npc_high_overlord_saurfang_igb::npc_high_overlord_saurfang_igbAI, npc_engineering_tele_trinket::npc_engineering_tele_trinketAI, npc_jaina_or_sylvanas_escape_hor::npc_jaina_or_sylvanas_escape_horAI, npc_muradin_bronzebeard_icc::npc_muradin_bronzebeard_iccAI, npc_grandmother::npc_grandmotherAI, npc_prof_blacksmith::npc_prof_blacksmithAI, npc_salanar_the_horseman::npc_salanar_the_horsemanAI, npc_lake_frog::npc_lake_frogAI, npc_brann_hos::npc_brann_hosAI, npc_barada::npc_baradaAI, npc_expedition_commander, npc_high_overlord_saurfang_icc::npc_high_overlord_saurfangAI, npc_death_knight_initiate::npc_death_knight_initiateAI, npc_taretha::npc_tarethaAI, npc_wyrmrest_defender::npc_wyrmrest_defenderAI, npc_alchemist_finklestein::npc_alchemist_finklesteinAI, npc_prof_alchemy::npc_prof_alchemyAI, npc_akama_shade, npc_brann_bronzebeard_keystone::npc_brann_bronzebeard_keystoneAI, npc_announcer_toc5::npc_announcer_toc5AI, npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, npc_lokhtos_darkbargainer::npc_lokhtos_darkbargainerAI, npc_jaina_or_sylvanas_intro_hor::npc_jaina_or_sylvanas_intro_horAI, boss_victor_nefarius::boss_victor_nefariusAI, npc_sinclari_vh::npc_sinclariAI, npc_razael_and_lyana::npc_razael_and_lyanaAI, npc_weegli_blastfuse::npc_weegli_blastfuseAI, npc_barnes::npc_barnesAI, npc_brann_bronzebeard_anraphet::npc_brann_bronzebeard_anraphetAI, npc_wg_queue::npc_wg_queueAI, npc_disciple_of_naralex::npc_disciple_of_naralexAI, npc_iruk::npc_irukAI, npc_crusade_recruit::npc_crusade_recruitAI, npc_corastrasza::npc_corastraszaAI, npc_barrett_toc, npc_wg_spirit_guide::npc_wg_spirit_guideAI, npc_engineer_spark_overgrind::npc_engineer_spark_overgrindAI, boss_doomrel::boss_doomrelAI, npc_morridune::npc_morriduneAI, boss_vaelastrasz::boss_vaelAI, npc_tyrande_whisperwind::npc_tyrande_whisperwindAI, boss_majordomo::boss_majordomoAI, npc_jaina_fos::npc_jaina_fosAI, SmartAI, npc_sergeant_bly::npc_sergeant_blyAI, npc_roxi_ramrocket::npc_roxi_ramrocketAI, npc_wg_demolisher_engineer::npc_wg_demolisher_engineerAI, npc_thrall::npc_thrallAI, npc_verdisa_beglaristrasz_eternos::npc_verdisa_beglaristrasz_eternosAI, npc_blastmaster_emi_shortfuse::npc_blastmaster_emi_shortfuseAI, npc_cairne_bloodhoof::npc_cairne_bloodhoofAI, boss_coren_direbrew, npc_shadowfang_prisoner::npc_shadowfang_prisonerAI, npc_innkeeper::npc_innkeeperAI, npc_kalecgos::npc_kalecgosAI, npc_voljin_zulaman::npc_voljin_zulamanAI, boss_apothecary_hummel::boss_apothecary_hummelAI, npc_sylvanas_fos::npc_sylvanas_fosAI, npc_injured_goblin::npc_injured_goblinAI, npcs_ashyen_and_keleth::npcs_ashyen_and_kelethAI, npc_jaina_proudmoore::npc_jaina_proudmooreAI, npc_erozion::npc_erozionAI, boss_gloomrel::boss_gloomrelAI, npc_tb_spirit_guide::npc_tb_spirit_guideAI, npc_beaten_corpse::npc_beaten_corpseAI, and npc_nat_pagle::npc_nat_pagleAI.

181 { return false; }
+ Here is the caller graph for this function:

◆ GossipSelectCode()

virtual bool CreatureAI::GossipSelectCode ( Player ,
uint32  ,
uint32  ,
char const *   
)
inlinevirtual

Reimplemented in SmartAI.

184 { return false; }
+ Here is the caller graph for this function:

◆ IsEscorted()

virtual bool CreatureAI::IsEscorted ( ) const
inlinevirtual

Reimplemented in EscortAI.

123 { return false; }
+ Here is the caller graph for this function:

◆ IsEscortNPC()

virtual bool CreatureAI::IsEscortNPC ( bool  ) const
inlinevirtual

Reimplemented in EscortAI.

213 { return false; }
+ Here is the caller graph for this function:

◆ IsInBoundary()

bool CreatureAI::IsInBoundary ( Position const *  who = nullptr) const
325 {
326  if (!_boundary)
327  return true;
328 
329  if (!who)
330  who = me;
331 
333 }
bool _negateBoundary
Definition: CreatureAI.h:230
static bool IsInBounds(CreatureBoundary const &boundary, Position const *who)
Definition: CreatureAI.cpp:335
Creature *const me
Definition: CreatureAI.h:52
CreatureBoundary const * _boundary
Definition: CreatureAI.h:229
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IsInBounds()

bool CreatureAI::IsInBounds ( CreatureBoundary const &  boundary,
Position const *  who 
)
static
336 {
337  for (AreaBoundary const* areaBoundary : boundary)
338  if (!areaBoundary->IsWithinBoundary(pos))
339  return false;
340 
341  return true;
342 }
Definition: AreaBoundary.h:23
+ Here is the caller graph for this function:

◆ IsSummonedBy()

virtual void CreatureAI::IsSummonedBy ( Unit )
inlinevirtual

Reimplemented in npc_imp_in_a_ball::npc_imp_in_a_ballAI, npc_risen_witch_doctor::npc_risen_witch_doctorAI, npc_raging_ghoul::npc_raging_ghoulAI, npc_escape_event_trash, npc_broken_frostmourne::npc_broken_frostmourneAI, npc_spirit_bomb::npc_spirit_bombAI, npc_terenas_menethil::npc_terenas_menethilAI, npc_yogg_saron_illusions::npc_yogg_saron_illusionsAI, npc_strangulate_vehicle::npc_strangulate_vehicleAI, npc_static_field::npc_static_fieldAI, npc_yogg_saron_keeper::npc_yogg_saron_keeperAI, npc_wyrmrest_skytalon::npc_wyrmrest_skytalonAI, npc_arcane_overload::npc_arcane_overloadAI, npc_valkyr_shadowguard::npc_valkyr_shadowguardAI, npc_scion_of_eternity::npc_scion_of_eternityAI, npc_raging_spirit::npc_raging_spiritAI, npc_living_ember::npc_living_emberAI, npc_constrictor_tentacle::npc_constrictor_tentacleAI, npc_living_inferno::npc_living_infernoAI, npc_combustion_consumption::npc_combustion_consumptionAI, npc_guardian_of_yogg_saron::npc_guardian_of_yogg_saronAI, npc_meteor_strike_flame::npc_meteor_strike_flameAI, npc_scarlet_miner::npc_scarlet_minerAI, npc_meteor_strike::npc_meteor_strikeAI, npc_meteor_strike_initial::npc_meteor_strike_initialAI, npc_oscillating_frequency_scanner_master_bunny::npc_oscillating_frequency_scanner_master_bunnyAI, npc_suppresser::npc_suppresserAI, npc_frostbrood_skytalon::npc_frostbrood_skytalonAI, npc_chains_of_woe::npc_chains_of_woeAI, npc_raz_the_crazed::npc_raz_the_crazedAI, npc_skadi_trashAI, npc_void_sentinel::npc_void_sentinelAI, npc_bone_spike::npc_bone_spikeAI, npc_dark_fiend::npc_dark_fiendAI, npc_spirit_shade::npc_spirit_shadeAI, npc_molten_barrage::npc_molten_barrageAI, npc_coldflame::npc_coldflameAI, npc_direbrew_minion, npc_devout_follower::npc_devout_followerAI, npc_big_ooze::npc_big_oozeAI, npc_alpha_beam::npc_alpha_beamAI, npc_ruby_emerald_amber_drake::npc_ruby_emerald_amber_drakeAI, npc_omega_stance::npc_omega_stanceAI, npc_shard_of_torment, npc_ice_block::npc_ice_blockAI, npc_rock_borer::npc_rock_borerAI, npc_little_ooze::npc_little_oozeAI, npc_pit_of_saron_icicle::npc_pit_of_saron_icicleAI, npc_corrupted_soul_fragment::npc_corrupted_soul_fragmentAI, npc_flash_freeze::npc_flash_freezeAI, npc_iron_roots::npc_iron_rootsAI, npc_firelands_magmakin, npc_image_belgaristrasz::npc_image_belgaristraszAI, npc_demon_chain::npc_demon_chainAI, npc_crystal_spike_trigger::npc_crystal_spike_triggerAI, npc_onyx_flamecaller::npc_onyx_flamecallerAI, boss_rend_blackhand::boss_rend_blackhandAI, npc_void_sentry::npc_void_sentryAI, npc_eyestalk::npc_eyestalkAI, boss_blackheart_the_inciter_mc_dummy, boss_attumen::boss_attumenAI, npc_infernal_attacker::npc_infernal_attackerAI, npc_frozen_orb, npc_blackfathom_deeps_event::npc_blackfathom_deeps_eventAI, npc_grobbulus_poison_cloud::npc_grobbulus_poison_cloudAI, boss_kirtonos_the_herald::boss_kirtonos_the_heraldAI, SmartAI, npc_danica_the_reclaimer, boss_nazan::boss_nazanAI, boss_darkmaster_gandling::boss_darkmaster_gandlingAI, npc_frost_tomb::npc_frost_tombAI, TriggerAI, npc_pet_pri_shadowfiend::npc_pet_pri_shadowfiendAI, and boss_gizrul_the_slavener::boss_gizrul_the_slavenerAI.

98 { }
+ Here is the caller graph for this function:

◆ JustAppeared()

◆ JustDied()

virtual void CreatureAI::JustDied ( Unit )
inlinevirtual

Reimplemented in npc_quel_delar_sword::npc_quel_delar_swordAI, npc_spiritual_reflection::npc_spiritual_reflectionAI, npc_toc_enh_shaman::npc_toc_enh_shamanAI, npc_magmoth_crusher::npc_magmoth_crusherAI, npc_spirit_warden::npc_spirit_wardenAI, npc_frostsworn_general::npc_frostsworn_generalAI, npc_bonker_togglevolt::npc_bonker_togglevoltAI, npc_the_lich_king_tirion_dawn::npc_the_lich_king_tirion_dawnAI, npc_mootoo_the_younger::npc_mootoo_the_youngerAI, npc_phantom_hallucination::npc_phantom_hallucinationAI, npc_enraged_spirit::npc_enraged_spiritAI, npc_flame_of_azzinoth, npc_ancient_rune_giant::npc_ancient_rune_giantAI, npc_scion_of_eternity::npc_scion_of_eternityAI, alliance_rifleman::alliance_riflemanAI, npc_influence_tentacle::npc_influence_tentacleAI, npc_raging_spirit::npc_raging_spiritAI, npc_runic_colossus::npc_runic_colossusAI, npc_nexus_lord::npc_nexus_lordAI, npc_phoenix_tk::npc_phoenix_tkAI, npc_living_ember::npc_living_emberAI, boss_romulo::boss_romuloAI, npc_living_inferno::npc_living_infernoAI, npc_gargoyle::npc_gargoyleAI, npc_giant_flesh_tentacle::flesh_tentacleAI, npc_argent_captainAI, npc_counselor_talbot::npc_counselor_talbotAI, npc_snaplasher::npc_snaplasherAI, npc_giant_eye_tentacle::giant_eye_tentacleAI, boss_master_engineer_telonicus::boss_master_engineer_telonicusAI, npc_illidari_spawn::npc_illidari_spawnAI, npc_storm_lasher::npc_storm_lasherAI, npc_guardian_of_yogg_saron::npc_guardian_of_yogg_saronAI, npc_frost_wyrm::npc_frost_wyrmAI, boss_julianne::boss_julianneAI, npc_thorim_pre_phase::npc_thorim_pre_phaseAI, npc_power_spark::npc_power_sparkAI, npc_giant_claw_tentacle::giant_claw_tentacleAI, npc_ancient_water_spirit::npc_ancient_water_spiritAI, boss_grand_astromancer_capernian::boss_grand_astromancer_capernianAI, npc_thassarian::npc_thassarianAI, boss_rouge_toc5::boss_rouge_toc5AI, boss_lord_sanguinar::boss_lord_sanguinarAI, npc_claw_tentacle::claw_tentacleAI, boss_malygos::boss_malygosAI, npc_gluttonous_abomination::npc_gluttonous_abominationAI, npc_ashtongue_spiritbinder, npc_torloth_the_magnificent::npc_torloth_the_magnificentAI, npc_hand_of_the_deceiver::npc_hand_of_the_deceiverAI, npc_blistering_zombie::npc_blistering_zombieAI, boss_yogg_saron::boss_yogg_saronAI, npc_colossus::npc_colossusAI, boss_elder_ironbranch::boss_elder_ironbranchAI, npc_hodir_mage::npc_hodir_mageAI, npc_eye_tentacle::eye_tentacleAI, boss_thaladred_the_darkener::boss_thaladred_the_darkenerAI, npc_ashtongue_elementalist, boss_bigbadwolf::boss_bigbadwolfAI, npc_gatewatcher_web_wrap::npc_gatewatcher_web_wrapAI, boss_hunter_toc5::boss_hunter_toc5AI, npc_darnavan::npc_darnavanAI, npc_skittering_infector::npc_skittering_infectorAI, npc_ros_dark_rider::npc_ros_dark_riderAI, npc_ashtongue_rogue, npc_mechanolift::npc_mechanoliftAI, boss_cthun::cthunAI, npc_hodir_druid::npc_hodir_druidAI, npc_pulsing_pumpkin::npc_pulsing_pumpkinAI, npc_rimefang::npc_rimefangAI, boss_elder_stonebark::boss_elder_stonebarkAI, npc_jaina_or_sylvanas_escape_hor::npc_jaina_or_sylvanas_escape_horAI, npc_greyheart_spellbinder::npc_greyheart_spellbinderAI, boss_flame_leviathan_safety_container::boss_flame_leviathan_safety_containerAI, npc_ashtongue_defender, npc_hodir_shaman::npc_hodir_shamanAI, boss_sister_svalna::boss_sister_svalnaAI, npc_kelthuzad_abomination::npc_kelthuzad_abominationAI, npc_barada::npc_baradaAI, boss_shaman_toc5::boss_shaman_toc5AI, npc_acolyte_of_vesperon::npc_acolyte_of_vesperonAI, boss_elder_brightleaf::boss_elder_brightleafAI, boss_crone::boss_croneAI, npc_hodir_priest::npc_hodir_priestAI, npc_gunship::npc_gunshipAI, npc_spinestalker::npc_spinestalkerAI, npc_ashtongue_sorcerer, npc_qiraj_war_spawn::npc_qiraj_war_spawnAI, boss_jormungarAI, npc_tainted_elemental::npc_tainted_elementalAI, npc_enslaved_soul, boss_kaelthas::boss_kaelthasAI, npc_acolyte_of_shadron::npc_acolyte_of_shadronAI, boss_leotheras_the_blind_demonform::boss_leotheras_the_blind_demonformAI, boss_illidan_stormrage, npc_riven_widow_cocoon::npc_riven_widow_cocoonAI, boss_kiljaeden::boss_kiljaedenAI, boss_faction_championsAI, npc_rotting_frost_giant::npc_rotting_frost_giantAI, npc_ymirjar_harpooner::npc_ymirjar_harpoonerAI, npc_ice_tomb::npc_ice_tombAI, npc_maxx_a_million_escort::npc_maxx_a_million_escortAI, boss_roar::boss_roarAI, boss_fathomguard_caribdis::boss_fathomguard_caribdisAI, npc_argent_soldier::npc_argent_soldierAI, npc_halion_controller::npc_halion_controllerAI, boss_freya::boss_freyaAI, gunship_npc_AI, npc_watcher_silthik::npc_watcher_silthikAI, boss_mage_toc5::boss_mage_toc5AI, npc_gothik_minion_baseAI, boss_headless_horseman::boss_headless_horsemanAI, npc_anub_ar_crusher::npc_anub_ar_crusherAI, npc_high_inquisitor_valroth::npc_high_inquisitor_valrothAI, boss_essence_of_anger, npc_felkael_phoenix::npc_felkael_phoenixAI, boss_grubbis::boss_grubbisAI, boss_voice_of_yogg_saron::boss_voice_of_yogg_saronAI, boss_the_lich_king::boss_the_lich_kingAI, boss_razorscale, npc_akama_shade, boss_krosh_firehand::boss_krosh_firehandAI, boss_stormcaller_brundir::boss_stormcaller_brundirAI, npc_watcher_narjil::npc_watcher_narjilAI, boss_sathrovarr, boss_tinhead::boss_tinheadAI, npc_bessy::npc_bessyAI, boss_fathomguard_tidalvess::boss_fathomguard_tidalvessAI, npc_void_sentinel::npc_void_sentinelAI, npc_memory::npc_memoryAI, npc_swarm_scarab::npc_swarm_scarabAI, npc_hellfire_sentry::npc_hellfire_sentryAI, BloodPrincesBossAI, npc_nesingwary_trapper::npc_nesingwary_trapperAI, npc_kurenai_captive::npc_kurenai_captiveAI, npc_xt002_heart::npc_xt002_heartAI, boss_archimonde::boss_archimondeAI, npc_blessed_banner::npc_blessed_bannerAI, boss_twilight_halion::boss_twilight_halionAI, npc_feral_defender, npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, boss_blindeye_the_seer::boss_blindeye_the_seerAI, npc_bone_spike::npc_bone_spikeAI, boss_mimiron::boss_mimironAI, boss_nefarian::boss_nefarianAI, boss_warrior_toc5::boss_warrior_toc5AI, npc_anubarak_pet_template, boss_alythess::boss_alythessAI, npc_watcher_gashra::npc_watcher_gashraAI, npc_snobold_vassal, npc_mistress_of_pain, npc_egg_pile::npc_egg_pileAI, npc_chained_spirit::npc_chained_spiritAI, npc_wg_give_promotion_credit::npc_wg_give_promotion_creditAI, npc_precious_icc::npc_precious_iccAI, boss_priestess_lackey_commonAI, boss_leotheras_the_blind::boss_leotheras_the_blindAI, npc_ahune_bunny::npc_ahune_bunnyAI, advisorbase_ai, boss_strawman::boss_strawmanAI, npc_stonekeepers::npc_stonekeepersAI, npc_nerubar_victim::npc_nerubar_victimAI, WorldBossAI, boss_kalecgos_human, npc_icefang::npc_icefangAI, boss_gothik::boss_gothikAI, boss_fathomguard_sharkkis::boss_fathomguard_sharkkisAI, npc_blackhand_incarcerator::npc_blackhand_incarceratorAI, PalehoofMinionsBossAI, npc_apothecary_baxter::npc_apothecary_baxterAI, npc_stinky_icc::npc_stinky_iccAI, npc_grauf::npc_graufAI, boss_kiggler_the_crazed::boss_kiggler_the_crazedAI, npc_arthas::npc_arthasAI, boss_runemaster_molgeim::boss_runemaster_molgeimAI, npc_hellfire_channeler::npc_hellfire_channelerAI, boss_lady_deathwhisper::boss_lady_deathwhisperAI, npc_fel_orc_convert::npc_fel_orc_convertAI, boss_saronite_animus::boss_saronite_animusAI, npc_son_of_flame::npc_son_of_flameAI, npc_tomb_creature::npc_tomb_creatureAI, BossAI, boss_flame_leviathan::boss_flame_leviathanAI, boss_four_horsemen_baseAI, npc_big_ooze::npc_big_oozeAI, npc_apothecary_frye::npc_apothecary_fryeAI, dummy_dragonAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, boss_blood_council_controller::boss_blood_council_controllerAI, npc_frozen_core::npc_frozen_coreAI, npc_shadowmoon_channeler::npc_shadowmoon_channelerAI, npc_sanctum_sentry, boss_professor_putricide::boss_professor_putricideAI, npc_weegli_blastfuse::npc_weegli_blastfuseAI, npc_isla_starmane::npc_isla_starmaneAI, boss_northrend_beastsAI, boss_anub_arak::boss_anub_arakAI, boss_black_knight::boss_black_knightAI, npc_iron_sludge::npc_iron_sludgeAI, boss_urom::boss_uromAI, boss_yauj::boss_yaujAI, boss_ymiron::boss_ymironAI, npc_glob_of_viscidus::npc_glob_of_viscidusAI, boss_volazj::boss_volazjAI, npc_baltharus_the_warborn_clone::npc_baltharus_the_warborn_cloneAI, npc_drakkari_scytheclaw::npc_drakkari_scytheclawAI, boss_netherspite::boss_netherspiteAI, npc_blazing_monstrosity::npc_blazing_monstrosityAI, npc_tito::npc_titoAI, npc_little_ooze::npc_little_oozeAI, boss_shade_of_akama, npc_fel_crystal::npc_fel_crystalAI, IllidariCouncilBossAI, boss_halion::boss_halionAI, npc_sironas::npc_sironasAI, boss_drakkari_elemental::boss_drakkari_elementalAI, boss_olm_the_summoner::boss_olm_the_summonerAI, boss_sindragosa::boss_sindragosaAI, boss_malchezaar::boss_malchezaarAI, boss_kelthuzad::boss_kelthuzadAI, boss_warbringer_omrogg::boss_warbringer_omroggAI, boss_palehoof::boss_palehoofAI, boss_reliquary_of_souls, boss_garothi_worldbreaker, boss_exarch_maladaar::boss_exarch_maladaarAI, npc_anubisath_sentinel::aqsentinelAI, npc_spectral_ghostly_citizen::npc_spectral_ghostly_citizenAI, boss_eregos::boss_eregosAI, boss_xt002::boss_xt002_AI, boss_prince_taldaram::boss_prince_taldaramAI, npc_amanitar_mushrooms, npc_webwrap::npc_webwrapAI, boss_vazruden::boss_vazrudenAI, npc_iron_roots::npc_iron_rootsAI, boss_lady_vashj::boss_lady_vashjAI, boss_priestess_delrissa::boss_priestess_delrissaAI, npc_lesser_doomguard::npc_lesser_doomguardAI, boss_anubarak_trial::boss_anubarak_trialAI, boss_general_vezax::boss_general_vezaxAI, boss_mal_ganis::boss_mal_ganisAI, boss_twin_baseAI, npc_muglash::npc_muglashAI, npc_buru_egg::npc_buru_eggAI, npc_faerlina_add::npc_faerlina_addAI, npc_towering_infernal::npc_towering_infernalAI, npc_demon_chain::npc_demon_chainAI, npc_drakkari_gutripper::npc_drakkari_gutripperAI, boss_bjarngrim::boss_bjarngrimAI, boss_skadi::boss_skadiAI, boss_svala::boss_svalaAI, boss_hydross_the_unstable::boss_hydross_the_unstableAI, boss_archaedas::boss_archaedasAI, boss_magtheridon::boss_magtheridonAI, boss_thaddius, npc_tempest_minion::npc_tempest_minionAI, boss_auriaya, boss_fathomlord_karathress::boss_fathomlord_karathressAI, boss_coren_direbrew, npc_pure_energy::npc_pure_energyAI, boss_viscidus::boss_viscidusAI, boss_attumen::boss_attumenAI, boss_baleroc, boss_sapphiron::boss_sapphironAI, boss_ahune::boss_ahuneAI, boss_steelbreaker::boss_steelbreakerAI, boss_rend_blackhand::boss_rend_blackhandAI, npc_firelands_molten_flamefather, boss_devourer_of_souls::boss_devourer_of_soulsAI, boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI, boss_jedoga_shadowseeker, boss_felmyst::boss_felmystAI, npc_void_sentry::npc_void_sentryAI, npc_arugal_voidwalker::npc_arugal_voidwalkerAI, boss_entropius::boss_entropiusAI, boss_tyrannus::boss_tyrannusAI, boss_shade_of_aran::boss_aranAI, boss_temple_guardian_anhuur::boss_temple_guardian_anhuurAI, boss_doomrel::boss_doomrelAI, boss_earthrager_ptah::boss_earthrager_ptahAI, boss_jaraxxus, npc_blackfathom_deeps_event::npc_blackfathom_deeps_eventAI, boss_vem::boss_vemAI, boss_sartharion::boss_sartharionAI, boss_ick::boss_ickAI, boss_warp_splinter::boss_warp_splinterAI, boss_illidari_council, boss_kelidan_the_breaker::boss_kelidan_the_breakerAI, boss_ossirian::boss_ossirianAI, boss_ingvar_the_plunderer::boss_ingvar_the_plundererAI, npc_kilrek::npc_kilrekAI, boss_dorothee::boss_dorotheeAI, boss_moroes::boss_moroesAI, boss_apothecary_hummel::boss_apothecary_hummelAI, boss_krik_thir::boss_krik_thirAI, boss_noth::boss_nothAI, boss_slad_ran::boss_slad_ranAI, npc_restless_soul::npc_restless_soulAI, boss_lord_marrowgar::boss_lord_marrowgarAI, boss_anraphet::boss_anraphetAI, boss_gurtogg_bloodboil, boss_ichoron::boss_ichoronAI, boss_trollgore::boss_trollgoreAI, boss_high_astromancer_solarian::boss_high_astromancer_solarianAI, boss_selin_fireheart::boss_selin_fireheartAI, boss_felblood_kaelthas::boss_felblood_kaelthasAI, boss_keleseth::boss_kelesethAI, boss_the_lurker_below::boss_the_lurker_belowAI, boss_high_priestess_azil::boss_high_priestess_azilAI, boss_teron_gorefiend, boss_gal_darah::boss_gal_darahAI, boss_varos::boss_varosAI, boss_warlord_kalithresh::boss_warlord_kalithreshAI, boss_ignis::boss_ignis_AI, npc_infernal_attacker::npc_infernal_attackerAI, boss_slabhide::boss_slabhideAI, boss_lieutenant_drake::boss_lieutenant_drakeAI, npc_medivh_bm::npc_medivh_bmAI, boss_mandokir::boss_mandokirAI, boss_morogrim_tidewalker::boss_morogrim_tidewalkerAI, npc_flamewaker_priest::npc_flamewaker_priestAI, boss_magus_telestra::boss_magus_telestraAI, boss_sacrolash::boss_sacrolashAI, boss_anubrekhan::boss_anubrekhanAI, npc_twilight_flame_caller::npc_twilight_flame_callerAI, boss_nightbane::boss_nightbaneAI, boss_rotface::boss_rotfaceAI, boss_kologarn::boss_kologarnAI, boss_volkhan::boss_volkhanAI, boss_talon_king_ikiss::boss_talon_king_ikissAI, npc_disciple_of_naralex::npc_disciple_of_naralexAI, boss_mother_shahraz, boss_nexusprince_shaffar::boss_nexusprince_shaffarAI, boss_pyroguard_emberseer::boss_pyroguard_emberseerAI, boss_novos::boss_novosAI, boss_festergut::boss_festergutAI, boss_drakos::boss_drakosAI, boss_ionar::boss_ionarAI, boss_grandmaster_vorpil::boss_grandmaster_vorpilAI, npc_millhouse_manastorm::npc_millhouse_manastormAI, boss_twinemperorsAI, npc_engineer_helice::npc_engineer_heliceAI, hyjalAI, boss_brutallus::boss_brutallusAI, npc_firelands_flame_archon, boss_ambassador_hellmaw::boss_ambassador_hellmawAI, npc_willix::npc_willixAI, boss_high_botanist_freywinn::boss_high_botanist_freywinnAI, boss_drakkari_colossus::boss_drakkari_colossusAI, boss_krystallus::boss_krystallusAI, npc_belnistrasz::npc_belnistraszAI, boss_skeram::boss_skeramAI, boss_sjonnir::boss_sjonnirAI, firelands_bossAI, boss_ozruk::boss_ozrukAI, boss_baltharus_the_warborn::boss_baltharus_the_warbornAI, boss_garfrost::boss_garfrostAI, boss_moorabi::boss_moorabiAI, npc_inner_demon::npc_inner_demonAI, boss_faerlina::boss_faerlinaAI, boss_high_king_maulgar::boss_high_king_maulgarAI, boss_baron_rivendare::boss_baron_rivendareAI, boss_dathrohan_balnazzar::boss_dathrohan_balnazzarAI, boss_warchief_kargath_bladefist::boss_warchief_kargath_bladefistAI, generic_boss_controllerAI, boss_gruul::boss_gruulAI, boss_cannon_master_willey::boss_cannon_master_willeyAI, boss_xevozz::boss_xevozzAI, boss_grand_warlock_nethekurse::boss_grand_warlock_nethekurseAI, boss_harbinger_skyriss::boss_harbinger_skyrissAI, boss_elder_nadox::boss_elder_nadoxAI, npc_apothecary_hanes::npc_Apothecary_HanesAI, boss_azgalor::boss_azgalorAI, boss_anomalus::boss_anomalusAI, boss_loken::boss_lokenAI, boss_omor_the_unscarred::boss_omor_the_unscarredAI, boss_anetheron::boss_anetheronAI, boss_watchkeeper_gargolmar::boss_watchkeeper_gargolmarAI, boss_silver_hand_bosses::boss_silver_hand_bossesAI, boss_amanitar, boss_kazrogal::boss_kazrogalAI, boss_heigan::boss_heiganAI, boss_ormorok::boss_ormorokAI, boss_salramm::boss_salrammAI, boss_general_zarithrian::boss_general_zarithrianAI, boss_tharon_ja::boss_tharon_jaAI, boss_razuvious::boss_razuviousAI, boss_terestian_illhoof::boss_terestianAI, boss_zuramat::boss_zuramatAI, boss_the_black_stalker::boss_the_black_stalkerAI, boss_shattered_executioner::boss_shattered_executionerAI, boss_rage_winterchill::boss_rage_winterchillAI, boss_king_dred::boss_king_dredAI, boss_bronjahm::boss_bronjahmAI, boss_keristrasza::boss_keristraszaAI, boss_doomlord_kazzak::boss_doomlordkazzakAI, boss_balinda::boss_balindaAI, boss_captain_skarloc::boss_captain_skarlocAI, boss_wrath_scryer_soccothrates::boss_wrath_scryer_soccothratesAI, boss_alizabal::boss_alizabalAI, boss_kirtonos_the_herald::boss_kirtonos_the_heraldAI, boss_darkweaver_syth::boss_darkweaver_sythAI, boss_epoch::boss_epochAI, boss_mekgineer_steamrigger::boss_mekgineer_steamriggerAI, boss_saviana_ragefire::boss_saviana_ragefireAI, boss_falric::boss_falricAI, boss_blackheart_the_inciter, boss_sartura::boss_sarturaAI, npc_frost_tomb::npc_frost_tombAI, boss_magmus::boss_magmusAI, boss_chrono_lord_deja::boss_chrono_lord_dejaAI, boss_epoch_hunter::boss_epoch_hunterAI, boss_erekem::boss_erekemAI, boss_mechano_lord_capacitus::boss_mechano_lord_capacitusAI, boss_anzu::boss_anzuAI, npc_maghar_captive::npc_maghar_captiveAI, boss_herod::boss_herodAI, boss_pathaleon_the_calculator::boss_pathaleon_the_calculatorAI, boss_magistrate_barthilas::boss_magistrate_barthilasAI, boss_razorgore::boss_razorgoreAI, boss_randolph_moloch, boss_kri::boss_kriAI, boss_murmur::boss_murmurAI, boss_gyth::boss_gythAI, boss_high_inquisitor_fairbanks::boss_high_inquisitor_fairbanksAI, SmartAI, boss_patchwerk::boss_patchwerkAI, boss_aeonus::boss_aeonusAI, boss_najentus, boss_nethermancer_sepethrea::boss_nethermancer_sepethreaAI, boss_nexus_commanders::boss_nexus_commandersAI, boss_maiden_of_grief::boss_maiden_of_griefAI, boss_doomwalker::boss_doomwalkerAI, boss_overlord_wyrmthalak::boss_overlordwyrmthalakAI, boss_meathook::boss_meathookAI, boss_occuthar::boss_occutharAI, boss_amnennar_the_coldbringer::boss_amnennar_the_coldbringerAI, boss_thorngrin_the_tender::boss_thorngrin_the_tenderAI, boss_kurinnaxx::boss_kurinnaxxAI, boss_rajaxx::boss_rajaxxAI, boss_zum_rah::boss_zum_rahAI, boss_commander_sarannis::boss_commander_sarannisAI, npc_omen::npc_omenAI, npc_wrathbone_flayer, boss_baroness_anastari::boss_baroness_anastariAI, boss_nerubenkan::boss_nerubenkanAI, boss_ramstein_the_gorger::boss_ramstein_the_gorgerAI, boss_hogger, boss_temporus::boss_temporusAI, boss_interrogator_vishas::boss_interrogator_vishasAI, boss_gatewatcher_iron_hand::boss_gatewatcher_iron_handAI, boss_pit_lord_argaloth::boss_pit_lord_argalothAI, boss_corla::boss_corlaAI, boss_marwyn::boss_marwynAI, boss_dalliah_the_doomsayer::boss_dalliah_the_doomsayerAI, npc_injured_goblin::npc_injured_goblinAI, boss_void_reaver::boss_void_reaverAI, boss_lord_valthalak::boss_lord_valthalakAI, boss_curator::boss_curatorAI, boss_princess_theradras::boss_ptheradrasAI, boss_emperor_dagran_thaurissan::boss_draganthaurissanAI, boss_arcanist_doan::boss_arcanist_doanAI, boss_bloodmage_thalnos::boss_bloodmage_thalnosAI, boss_ascendant_lord_obsidius::boss_ascendant_lord_obsidiusAI, boss_karsh_steelbender::boss_karsh_steelbenderAI, boss_darkmaster_gandling::boss_darkmaster_gandlingAI, boss_halycon::boss_halyconAI, boss_jindo_the_godbreaker::boss_jindo_the_godbreakerAI, boss_infinite_corruptor::boss_infinite_corruptorAI, celebras_the_cursed::celebras_the_cursedAI, boss_the_maker::boss_the_makerAI, boss_maleki_the_pallid::boss_maleki_the_pallidAI, boss_mordresh_fire_eye::boss_mordresh_fire_eyeAI, boss_beauty::boss_beautyAI, boss_gizrul_the_slavener::boss_gizrul_the_slavenerAI, boss_daakara::boss_daakaraAI, npc_webbed_creature::npc_webbed_creatureAI, boss_mennu_the_betrayer::boss_mennu_the_betrayerAI, boss_warmaster_voone::boss_warmastervooneAI, boss_jandice_barov::boss_jandicebarovAI, boss_nalorakk::boss_nalorakkAI, boss_glutton::boss_gluttonAI, boss_cyanigosa::boss_cyanigosaAI, boss_rokmar_the_crackler::boss_rokmar_the_cracklerAI, npc_pet_dk_ebon_gargoyle::npc_pet_dk_ebon_gargoyleAI, boss_hexlord_malacrass::boss_hex_lord_malacrassAI, boss_shadow_hunter_voshgajin::boss_shadowvoshAI, boss_urok_doomhowl::boss_urok_doomhowlAI, boss_venoxis::boss_venoxisAI, boss_zanzil::boss_zanzilAI, boss_romogg_bonecrusher::boss_romogg_bonecrusherAI, boss_the_beast::boss_thebeastAI, boss_maiden_of_virtue::boss_maiden_of_virtueAI, boss_janalai::boss_janalaiAI, boss_kilnara::boss_kilnaraAI, boss_gatewatcher_gyrokill::boss_gatewatcher_gyrokillAI, boss_drakkisath::boss_drakkisathAI, boss_mother_smolderweb::boss_mothersmolderwebAI, boss_azshir_the_sleepless::boss_azshir_the_sleeplessAI, boss_scorn::boss_scornAI, boss_halazzi::boss_halazziAI, boss_tuten_kash::boss_tuten_kashAI, boss_highlord_omokk::boss_highlordomokkAI, boss_pandemonius::boss_pandemoniusAI, boss_houndmaster_loksey::boss_houndmaster_lokseyAI, npc_dragonflayer_forge_master::npc_dragonflayer_forge_masterAI, boss_quagmirran::boss_quagmirranAI, boss_lord_overheat, boss_kelris::boss_kelrisAI, boss_hydromancer_thespia::boss_thespiaAI, boss_zereketh_the_unbound::boss_zereketh_the_unboundAI, quartermaster_zigris::boss_quatermasterzigrisAI, boss_grilek::boss_grilekAI, boss_hazzarah::boss_hazzarahAI, boss_renataki::boss_renatakiAI, boss_wushoolay::boss_wushoolayAI, boss_akilzon::boss_akilzonAI, FollowerAI, PossessedAI, CombatAI, EscortAI, GuardAI, and hyjal_trashAI.

91 { }
+ Here is the caller graph for this function:

◆ JustEngagedWith()

virtual void CreatureAI::JustEngagedWith ( Unit )
inlinevirtual

Reimplemented in npc_quel_delar_sword::npc_quel_delar_swordAI, npc_spring_rabbit::npc_spring_rabbitAI, npc_warmage_coldarra::npc_warmage_coldarraAI, npc_toc_retro_paladin::npc_toc_retro_paladinAI, npc_spiritual_reflection::npc_spiritual_reflectionAI, npc_frostsworn_general::npc_frostsworn_generalAI, npc_tortured_rifleman::npc_tortured_riflemanAI, npc_spectral_footman::npc_spectral_footmanAI, npc_shadowy_mercenary::npc_shadowy_mercenaryAI, npc_maiev, npc_yogg_saron_keeper::npc_yogg_saron_keeperAI, npc_gunship_boarding_leader::npc_gunship_boarding_leaderAI, npc_imprisoned_beryl_sorcerer::npc_imprisoned_beryl_sorcererAI, npc_phantom_mage::npc_phantom_mageAI, npc_ancient_rune_giant::npc_ancient_rune_giantAI, npc_ghostly_priest::npc_ghostly_priestAI, npc_enraged_spirit::npc_enraged_spiritAI, npc_beryl_sorcerer::npc_beryl_sorcererAI, npc_tonk_mine::npc_tonk_mineAI, alliance_rifleman::alliance_riflemanAI, npc_toc_hunter::npc_toc_hunterAI, npc_scion_of_eternity::npc_scion_of_eternityAI, npc_runic_colossus::npc_runic_colossusAI, npc_darkrune_sentinel, npc_steam_tonk::npc_steam_tonkAI, npc_darkrune_guardian, npc_argent_captainAI, npc_ancient_conservator::npc_ancient_conservatorAI, npc_mimiron_assault_bot::npc_mimiron_assault_botAI, npc_kael_flamestrike::npc_kael_flamestrikeAI, boss_romulo::boss_romuloAI, npc_darkrune_watcher, npc_giant_eye_tentacle::giant_eye_tentacleAI, npc_thorim_arena_phase::npc_thorim_arena_phaseAI, npc_toc_warlock::npc_toc_warlockAI, boss_master_engineer_telonicus::boss_master_engineer_telonicusAI, npc_illidari_spawn::npc_illidari_spawnAI, npc_frost_wyrm::npc_frost_wyrmAI, npc_guardian::npc_guardianAI, npc_muradin_bronzebeard_igb::npc_muradin_bronzebeard_igbAI, npc_giant_claw_tentacle::giant_claw_tentacleAI, npc_dark_nucleus::npc_dark_nucleusAI, boss_julianne::boss_julianneAI, boss_grand_astromancer_capernian::boss_grand_astromancer_capernianAI, npc_fel_stalker::npc_fel_stalkerAI, npc_garments_of_quests::npc_garments_of_questsAI, npc_lord_illidan_stormrage::npc_lord_illidan_stormrageAI, npc_claw_tentacle::claw_tentacleAI, boss_lord_sanguinar::boss_lord_sanguinarAI, npc_tesla::npc_teslaAI, npc_crypt_fiend::npc_crypt_fiendAI, npc_ashtongue_spiritbinder, npc_hand_of_the_deceiver::npc_hand_of_the_deceiverAI, boss_elder_ironbranch::boss_elder_ironbranchAI, npc_eye_tentacle::eye_tentacleAI, npc_anub_ar_necromancer::npc_anub_ar_necromancerAI, boss_warlord_salaris::boss_warlord_salarisAI, npc_darnavan::npc_darnavanAI, npc_ashtongue_elementalist, boss_thaladred_the_darkener::boss_thaladred_the_darkenerAI, violet_hold_trashAI, npc_banshee::npc_bansheeAI, npc_gothik_trigger::npc_gothik_triggerAI, boss_bigbadwolf::boss_bigbadwolfAI, npc_rimefang::npc_rimefangAI, npc_anub_ar_crypt_fiend::npc_anub_ar_crypt_fiendAI, npc_torloth_the_magnificent::npc_torloth_the_magnificentAI, npc_high_overlord_saurfang_igb::npc_high_overlord_saurfang_igbAI, npc_injured_patient::npc_injured_patientAI, npc_ashtongue_rogue, npc_ros_dark_rider::npc_ros_dark_riderAI, npc_anub_ar_champion::npc_anub_ar_championAI, npc_feugen::npc_feugenAI, boss_elder_stonebark::boss_elder_stonebarkAI, npc_pulsing_pumpkin::npc_pulsing_pumpkinAI, npc_necromancer::npc_necromancerAI, npc_doctor::npc_doctorAI, boss_sister_svalna::boss_sister_svalnaAI, npc_ashtongue_defender, npc_cyclone::npc_cycloneAI, boss_sara::boss_saraAI, boss_elder_brightleaf::boss_elder_brightleafAI, npc_greyheart_spellbinder::npc_greyheart_spellbinderAI, npc_life_spark::npc_life_sparkAI, npc_anubarak_spike::npc_anubarak_spikeAI, boss_crone::boss_croneAI, npc_ashtongue_sorcerer, npc_qiraj_war_spawn::npc_qiraj_war_spawnAI, npc_risen_archmage::npc_risen_archmageAI, npc_earthmender_wilda::npc_earthmender_wildaAI, npc_ghoul::npc_ghoulAI, npc_tainted_elemental::npc_tainted_elementalAI, npc_shadow_image::npc_shadow_imageAI, boss_kiljaeden::boss_kiljaedenAI, npc_arcane_sphere::npc_arcane_sphereAI, boss_leotheras_the_blind_demonform::boss_leotheras_the_blind_demonformAI, npc_violet_hold_teleportation_portal_commonAI, boss_shaman_toc5::boss_shaman_toc5AI, boss_faction_championsAI, npc_riven_widow_cocoon::npc_riven_widow_cocoonAI, npc_torturer_lecraft::npc_torturer_lecraftAI, boss_ellris_duskhallow::boss_ellris_duskhallowAI, boss_fathomguard_caribdis::boss_fathomguard_caribdisAI, npc_felkael_phoenix_egg::npc_felkael_phoenix_eggAI, npc_halion_controller::npc_halion_controllerAI, npc_raz_the_crazed::npc_raz_the_crazedAI, npc_kelthuzad_minionAI, npc_enchanted_elemental::npc_enchanted_elementalAI, boss_roar::boss_roarAI, boss_taerar::boss_taerarAI, npc_the_lich_king_controller::npc_the_lich_king_controllerAI, boss_thorim::boss_thorimAI, npc_taretha::npc_tarethaAI, npc_aran_elemental::water_elementalAI, npc_abomination::npc_abominationAI, npc_stalagg::npc_stalaggAI, npc_flame_patch_alar::npc_flame_patch_alarAI, boss_malygos::boss_malygosAI, npc_felmyst_trail::npc_felmyst_trailAI, npc_vesperon::npc_vesperonAI, npc_venture_co_straggler::npc_venture_co_stragglerAI, npc_zerekethvoidzone::npc_zerekethvoidzoneAI, boss_the_lich_king::boss_the_lich_kingAI, boss_cthun::cthunAI, npc_felmyst_vapor::npc_felmyst_vaporAI, boss_essence_of_anger, npc_crazed_mage::npc_crazed_mageAI, boss_krosh_firehand::boss_krosh_firehandAI, npc_ember_of_alar::npc_ember_of_alarAI, npc_high_inquisitor_valroth::npc_high_inquisitor_valrothAI, boss_voice_of_yogg_saron::boss_voice_of_yogg_saronAI, boss_headless_horseman::boss_headless_horsemanAI, npc_felkael_phoenix::npc_felkael_phoenixAI, boss_emeriss::boss_emerissAI, npc_geezle::npc_geezleAI, npc_shadron::npc_shadronAI, boss_fathomguard_tidalvess::boss_fathomguard_tidalvessAI, boss_stormcaller_brundir::boss_stormcaller_brundirAI, npc_hellfire_sentry::npc_hellfire_sentryAI, boss_illidan_stormrage, npc_skadi_trashAI, npc_image_of_medivh::npc_image_of_medivhAI, npc_void_sentinel::npc_void_sentinelAI, boss_tinhead::boss_tinheadAI, boss_sathrovarr, npc_nesingwary_trapper::npc_nesingwary_trapperAI, BloodPrincesBossAI, npc_kurenai_captive::npc_kurenai_captiveAI, npc_mad_prisoner::npc_mad_prisonerAI, npc_felkael_flamestrike::npc_felkael_flamestrikeAI, npc_solarium_priest::npc_solarium_priestAI, npc_giant_infernal::npc_giant_infernalAI, npc_hadronox_crusherPackAI, npc_blessed_banner::npc_blessed_bannerAI, boss_blindeye_the_seer::boss_blindeye_the_seerAI, boss_fjola::boss_fjolaAI, npc_tenebron::npc_tenebronAI, boss_nefarian::boss_nefarianAI, boss_twilight_halion::boss_twilight_halionAI, npc_stormforged_lieutenant::npc_stormforged_lieutenantAI, boss_mimiron::boss_mimironAI, npc_snobold_vassal, npc_omrogg_heads::npc_omrogg_headsAI, boss_essence_of_desire, boss_leotheras_the_blind::boss_leotheras_the_blindAI, npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, npc_mistress_of_pain, npc_scarlet_courier::npc_scarlet_courierAI, npc_dancing_flames::npc_dancing_flamesAI, npc_phase_hunter::npc_phase_hunterAI, boss_algalon_the_observer::boss_algalon_the_observerAI, npc_lesser_shadow_fissure::npc_lesser_shadow_fissureAI, boss_priestess_lackey_commonAI, boss_alythess::boss_alythessAI, npc_direbrew_antagonist, npc_blackhand_incarcerator::npc_blackhand_incarceratorAI, boss_lethon::boss_lethonAI, WorldBossAI, npc_nerubar_victim::npc_nerubar_victimAI, boss_strawman::boss_strawmanAI, npc_twilight_sadist::npc_twilight_sadistAI, boss_fathomguard_sharkkis::boss_fathomguard_sharkkisAI, npc_stonekeepers::npc_stonekeepersAI, boss_hodir::boss_hodirAI, npc_magwin::npc_magwinAI, boss_vazruden_the_herald::boss_vazruden_the_heraldAI, boss_razorscale, npc_icefang::npc_icefangAI, npc_yor::npc_yorAI, npc_avatar_of_martyred::npc_avatar_of_martyredAI, boss_essence_of_suffering, boss_kiggler_the_crazed::boss_kiggler_the_crazedAI, npc_arthas::npc_arthasAI, boss_midnight::boss_midnightAI, boss_freya::boss_freyaAI, PalehoofMinionsBossAI, npc_warden_mellichar::npc_warden_mellicharAI, npc_prince_taldaram_flame_sphere::npc_prince_taldaram_flame_sphereAI, npc_tomb_creature::npc_tomb_creatureAI, npc_hellfire_channeler::npc_hellfire_channelerAI, npc_annhylde_the_caller::npc_annhylde_the_callerAI, npc_fel_orc_convert::npc_fel_orc_convertAI, npc_water_globule::npc_water_globuleAI, BossAI, npc_gatewatcher_petAI, boss_gothik::boss_gothikAI, npc_ohgan::npc_ohganAI, npc_stinky_icc::npc_stinky_iccAI, npc_injured_draenei::npc_injured_draeneiAI, boss_runemaster_molgeim::boss_runemaster_molgeimAI, npc_coren_direbrew_sisters, npc_shadowmoon_channeler::npc_shadowmoon_channelerAI, boss_archimonde::boss_archimondeAI, npc_highborne_lamenter::npc_highborne_lamenterAI, boss_harbinger_skyriss_illusion::boss_harbinger_skyriss_illusionAI, boss_yauj::boss_yaujAI, npc_time_rift::npc_time_riftAI, boss_four_horsemen_baseAI, npc_sanctum_sentry, npc_chicken_cluck::npc_chicken_cluckAI, npc_ethereal_apprentice::npc_ethereal_apprenticeAI, npc_pet_gen_mojo::npc_pet_gen_mojoAI, npc_blazing_monstrosity::npc_blazing_monstrosityAI, boss_lady_deathwhisper::boss_lady_deathwhisperAI, npc_wg_queue::npc_wg_queueAI, boss_high_inquisitor_whitemane::boss_high_inquisitor_whitemaneAI, boss_muru::boss_muruAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, boss_flame_leviathan::boss_flame_leviathanAI, boss_ysondre::boss_ysondreAI, boss_malchezaar::boss_malchezaarAI, npc_erekem_guard::npc_erekem_guardAI, npc_archaedas_minions::npc_archaedas_minionsAI, boss_anubarak_trial::boss_anubarak_trialAI, boss_sindragosa::boss_sindragosaAI, npc_tito::npc_titoAI, npc_wounded_blood_elf::npc_wounded_blood_elfAI, boss_netherspite::boss_netherspiteAI, npc_twilight_torturer::npc_twilight_torturerAI, boss_blood_council_controller::boss_blood_council_controllerAI, npc_head::npc_headAI, boss_twin_baseAI, boss_olm_the_summoner::boss_olm_the_summonerAI, npc_sironas::npc_sironasAI, boss_lady_vashj::boss_lady_vashjAI, boss_archmage_arugal::boss_archmage_arugalAI, npc_baltharus_the_warborn_clone::npc_baltharus_the_warborn_cloneAI, boss_professor_putricide::boss_professor_putricideAI, IllidariCouncilBossAI, npc_voidtraveler::npc_voidtravelerAI, npc_daranelle::npc_daranelleAI, boss_dalronn_the_controller::boss_dalronn_the_controllerAI, boss_northrend_beastsAI, boss_halion::boss_halionAI, npc_creditmarker_visit_with_ancestors::npc_creditmarker_visit_with_ancestorsAI, npc_taskmaster_fizzule::npc_taskmaster_fizzuleAI, npc_spectral_ghostly_citizen::npc_spectral_ghostly_citizenAI, npc_sartura_royal_guard::npc_sartura_royal_guardAI, npc_anubisath_sentinel::aqsentinelAI, npc_steamrigger_mechanic::npc_steamrigger_mechanicAI, npc_OOX17::npc_OOX17AI, boss_vazruden::boss_vazrudenAI, npc_engineer_spark_overgrind::npc_engineer_spark_overgrindAI, generic_vehicleAI_toc5::generic_vehicleAI_toc5AI, npc_doomfire_targetting::npc_doomfire_targettingAI, boss_hadronox::boss_hadronoxAI, boss_eye_of_cthun::eye_of_cthunAI, boss_garothi_worldbreaker, boss_palehoof::boss_palehoofAI, npc_mrfloppy::npc_mrfloppyAI, npc_lesser_doomguard::npc_lesser_doomguardAI, npc_tempest_minion::npc_tempest_minionAI, boss_exarch_maladaar::boss_exarch_maladaarAI, npc_faerlina_add::npc_faerlina_addAI, boss_fathomlord_karathress::boss_fathomlord_karathressAI, npc_towering_infernal::npc_towering_infernalAI, npc_muglash::npc_muglashAI, boss_xt002::boss_xt002_AI, npc_ethereal_beacon::npc_ethereal_beaconAI, boss_kalecgos, npc_buru_egg::npc_buru_eggAI, npc_angered_soul_fragment, boss_grand_warlock_nethekurse::boss_grand_warlock_nethekurseAI, npc_skywing::npc_skywingAI, npc_guard_shattrath_faction, boss_bjarngrim::boss_bjarngrimAI, npc_focus_fire::npc_focus_fireAI, npc_nether_wraith::npc_nether_wraithAI, boss_warbringer_omrogg::boss_warbringer_omroggAI, npc_geist_ambusher::npc_geist_ambusherAI, npc_onyx_flamecaller::npc_onyx_flamecallerAI, boss_shade_of_aran::boss_aranAI, boss_chromaggus::boss_chromaggusAI, boss_vem::boss_vemAI, boss_skarvald_the_constructor::boss_skarvald_the_constructorAI, boss_volazj::boss_volazjAI, npc_dk_understudy::npc_dk_understudyAI, dummy_dragonAI, npc_ragin_flames::npc_ragin_flamesAI, boss_ahune::boss_ahuneAI, boss_rend_blackhand::boss_rend_blackhandAI, boss_nightbane::boss_nightbaneAI, npc_barnes::npc_barnesAI, boss_viscidus::boss_viscidusAI, npc_harbinger_of_flame::npc_harbinger_of_flameAI, npc_firelands_molten_flamefather, boss_temple_guardian_anhuur::boss_temple_guardian_anhuurAI, boss_earthrager_ptah::boss_earthrager_ptahAI, boss_felblood_kaelthas::boss_felblood_kaelthasAI, boss_krik_thir::boss_krik_thirAI, boss_sapphiron::boss_sapphironAI, boss_hydross_the_unstable::boss_hydross_the_unstableAI, npc_doomfire::npc_doomfireAI, boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI, npc_emily::npc_emilyAI, boss_warp_splinter::boss_warp_splinterAI, boss_alar::boss_alarAI, boss_svala::boss_svalaAI, boss_high_astromancer_solarian::boss_high_astromancer_solarianAI, boss_the_lurker_below::boss_the_lurker_belowAI, npc_archavon_warder::npc_archavon_warderAI, boss_laj::boss_lajAI, boss_priestess_delrissa::boss_priestess_delrissaAI, boss_sartharion::boss_sartharionAI, boss_ick::boss_ickAI, boss_dorothee::boss_dorotheeAI, npc_wisp_invis::npc_wisp_invisAI, boss_tyrannus::boss_tyrannusAI, boss_doomrel::boss_doomrelAI, boss_onyxia::boss_onyxiaAI, boss_morogrim_tidewalker::boss_morogrim_tidewalkerAI, npc_custodian_of_time::npc_custodian_of_timeAI, boss_jedoga_shadowseeker, npc_scarlet_trainee::npc_scarlet_traineeAI, boss_anraphet::boss_anraphetAI, boss_steelbreaker::boss_steelbreakerAI, boss_lord_marrowgar::boss_lord_marrowgarAI, boss_auriaya, npc_flamewaker_priest::npc_flamewaker_priestAI, boss_felmyst::boss_felmystAI, boss_anubrekhan::boss_anubrekhanAI, boss_moroes::boss_moroesAI, boss_devourer_of_souls::boss_devourer_of_soulsAI, boss_ingvar_the_plunderer::boss_ingvar_the_plundererAI, npc_twilight_flame_caller::npc_twilight_flame_callerAI, npc_underbog_mushroom::npc_underbog_mushroomAI, boss_high_priestess_azil::boss_high_priestess_azilAI, boss_twinemperorsAI, boss_lieutenant_drake::boss_lieutenant_drakeAI, npc_restless_soul::npc_restless_soulAI, boss_illidari_council, boss_magus_telestra::boss_magus_telestraAI, boss_ignis::boss_ignis_AI, npc_iceborn_protodrake::npc_iceborn_protodrakeAI, npc_medivh_bm::npc_medivh_bmAI, boss_slabhide::boss_slabhideAI, npc_flame_warder::npc_flame_warderAI, boss_ossirian::boss_ossirianAI, boss_keleseth::boss_kelesethAI, boss_ymiron::boss_ymironAI, npc_coilfang_waterelemental::npc_coilfang_waterelementalAI, boss_grandmaster_vorpil::boss_grandmaster_vorpilAI, boss_warlord_kalithresh::boss_warlord_kalithreshAI, boss_ayamiss::boss_ayamissAI, npc_unworthy_initiate::npc_unworthy_initiateAI, npc_inner_demon::npc_inner_demonAI, npc_disciple_of_naralex::npc_disciple_of_naralexAI, boss_selin_fireheart::boss_selin_fireheartAI, boss_sacrolash::boss_sacrolashAI, npc_gilthares::npc_giltharesAI, boss_general_vezax::boss_general_vezaxAI, boss_high_king_maulgar::boss_high_king_maulgarAI, boss_mandokir::boss_mandokirAI, npc_ancient_wisp::npc_ancient_wispAI, boss_skeram::boss_skeramAI, boss_anub_arak::boss_anub_arakAI, boss_jaraxxus, boss_urom::boss_uromAI, boss_dathrohan_balnazzar::boss_dathrohan_balnazzarAI, boss_cannon_master_willey::boss_cannon_master_willeyAI, boss_gurtogg_bloodboil, boss_rotface::boss_rotfaceAI, hyjalAI, boss_ionar::boss_ionarAI, boss_warchief_kargath_bladefist::boss_warchief_kargath_bladefistAI, boss_pyroguard_emberseer::boss_pyroguard_emberseerAI, boss_teron_gorefiend, netherspite_infernal::netherspite_infernalAI, boss_archaedas::boss_archaedasAI, npc_lady_sylvanas_windrunner::npc_lady_sylvanas_windrunnerAI, firelands_bossAI, boss_volkhan::boss_volkhanAI, boss_mother_shahraz, boss_baleroc, boss_drakkari_colossus::boss_drakkari_colossusAI, boss_razuvious::boss_razuviousAI, boss_kologarn::boss_kologarnAI, boss_noth::boss_nothAI, boss_scarlet_commander_mograine::boss_scarlet_commander_mograineAI, boss_brutallus::boss_brutallusAI, npc_willix::npc_willixAI, npc_commander_dawnforge::npc_commander_dawnforgeAI, boss_gal_darah::boss_gal_darahAI, boss_festergut::boss_festergutAI, boss_gluth::boss_gluthAI, boss_heigan::boss_heiganAI, boss_eregos::boss_eregosAI, npc_frost_warder, boss_ambassador_hellmaw::boss_ambassador_hellmawAI, boss_mal_ganis::boss_mal_ganisAI, boss_harbinger_skyriss::boss_harbinger_skyrissAI, npc_shadowfang_prisoner::npc_shadowfang_prisonerAI, npc_firelands_flame_archon, boss_prince_taldaram::boss_prince_taldaramAI, boss_wrath_scryer_soccothrates::boss_wrath_scryer_soccothratesAI, npc_guard_generic, generic_boss_controllerAI, npc_belnistrasz::npc_belnistraszAI, boss_mekgineer_steamrigger::boss_mekgineer_steamriggerAI, npc_deathstalker_erland::npc_deathstalker_erlandAI, boss_baltharus_the_warborn::boss_baltharus_the_warbornAI, boss_slad_ran::boss_slad_ranAI, boss_ragnaros::boss_ragnarosAI, boss_novos::boss_novosAI, boss_anomalus::boss_anomalusAI, boss_nexusprince_shaffar::boss_nexusprince_shaffarAI, boss_silver_hand_bosses::boss_silver_hand_bossesAI, boss_garfrost::boss_garfrostAI, boss_maexxna::boss_maexxnaAI, npc_sinkhole_kill_credit::npc_sinkhole_kill_creditAI, boss_gruul::boss_gruulAI, npc_nether_drake::npc_nether_drakeAI, boss_fankriss::boss_fankrissAI, boss_najentus, npc_professor_phizzlethorpe::npc_professor_phizzlethorpeAI, boss_loken::boss_lokenAI, boss_ichoron::boss_ichoronAI, boss_kelidan_the_breaker::boss_kelidan_the_breakerAI, boss_emalon::boss_emalonAI, boss_faerlina::boss_faerlinaAI, boss_magistrate_barthilas::boss_magistrate_barthilasAI, boss_bronjahm::boss_bronjahmAI, boss_sjonnir::boss_sjonnirAI, boss_vaelastrasz::boss_vaelAI, npc_draenei_survivor::npc_draenei_survivorAI, boss_patchwerk::boss_patchwerkAI, boss_alizabal::boss_alizabalAI, boss_ozruk::boss_ozrukAI, boss_trollgore::boss_trollgoreAI, boss_varos::boss_varosAI, boss_high_botanist_freywinn::boss_high_botanist_freywinnAI, npc_warp_splinter_treant::npc_warp_splinter_treantAI, boss_keristrasza::boss_keristraszaAI, boss_xevozz::boss_xevozzAI, boss_nazan::boss_nazanAI, boss_mr_smite::boss_mr_smiteAI, boss_sartura::boss_sarturaAI, boss_doomwalker::boss_doomwalkerAI, boss_azgalor::boss_azgalorAI, boss_captain_skarloc::boss_captain_skarlocAI, boss_amanitar, npc_tapoke_slim_jahn::npc_tapoke_slim_jahnAI, boss_general_zarithrian::boss_general_zarithrianAI, boss_tharon_ja::boss_tharon_jaAI, boss_shirrak_the_dead_watcher::boss_shirrak_the_dead_watcherAI, boss_darkweaver_syth::boss_darkweaver_sythAI, boss_the_black_stalker::boss_the_black_stalkerAI, boss_majordomo::boss_majordomoAI, boss_kirtonos_the_herald::boss_kirtonos_the_heraldAI, npc_maghar_captive::npc_maghar_captiveAI, boss_terestian_illhoof::boss_terestianAI, boss_rajaxx::boss_rajaxxAI, boss_saviana_ragefire::boss_saviana_ragefireAI, boss_moorabi::boss_moorabiAI, boss_doomlord_kazzak::boss_doomlordkazzakAI, boss_omor_the_unscarred::boss_omor_the_unscarredAI, boss_anetheron::boss_anetheronAI, boss_kazrogal::boss_kazrogalAI, boss_kri::boss_kriAI, boss_anzu::boss_anzuAI, boss_buru::boss_buruAI, boss_huhuran::boss_huhuranAI, boss_ormorok::boss_ormorokAI, boss_murmur::boss_murmurAI, boss_dalliah_the_doomsayer::boss_dalliah_the_doomsayerAI, npc_unkor_the_ruthless::npc_unkor_the_ruthlessAI, boss_vexallus::boss_vexallusAI, boss_epoch_hunter::boss_epoch_hunterAI, boss_high_inquisitor_fairbanks::boss_high_inquisitor_fairbanksAI, SmartAI, boss_talon_king_ikiss::boss_talon_king_ikissAI, boss_supremus, boss_rage_winterchill::boss_rage_winterchillAI, boss_ouro::boss_ouroAI, boss_drakos::boss_drakosAI, boss_blackheart_the_inciter, npc_wrathbone_flayer, npc_cairne_bloodhoof::npc_cairne_bloodhoofAI, boss_void_reaver::boss_void_reaverAI, boss_gyth::boss_gythAI, boss_elder_nadox::boss_elder_nadoxAI, boss_balinda::boss_balindaAI, boss_curator::boss_curatorAI, npc_stolen_soul::npc_stolen_soulAI, boss_herod::boss_herodAI, boss_darkmaster_gandling::boss_darkmaster_gandlingAI, npc_ruul_snowhoof::npc_ruul_snowhoofAI, boss_king_dred::boss_king_dredAI, boss_archavon::boss_archavonAI, npc_naga_distiller::npc_naga_distillerAI, boss_romogg_bonecrusher::boss_romogg_bonecrusherAI, boss_overlord_wyrmthalak::boss_overlordwyrmthalakAI, boss_watchkeeper_gargolmar::boss_watchkeeper_gargolmarAI, boss_mechano_lord_capacitus::boss_mechano_lord_capacitusAI, boss_pathaleon_the_calculator::boss_pathaleon_the_calculatorAI, boss_baroness_anastari::boss_baroness_anastariAI, boss_nerubenkan::boss_nerubenkanAI, boss_ramstein_the_gorger::boss_ramstein_the_gorgerAI, npc_jadespine_basilisk::npc_jadespine_basiliskAI, boss_zum_rah::boss_zum_rahAI, npc_omen::npc_omenAI, boss_falric::boss_falricAI, boss_loatheb::boss_loathebAI, boss_twilight_corrupter::boss_twilight_corrupterAI, boss_maiden_of_grief::boss_maiden_of_griefAI, boss_zuramat::boss_zuramatAI, npc_mageguard_dalaran::npc_mageguard_dalaranAI, boss_mennu_the_betrayer::boss_mennu_the_betrayerAI, boss_instructor_malicia::boss_instructormaliciaAI, npc_ymirjar_flamebearer::npc_ymirjar_flamebearerAI, boss_golemagg::boss_golemaggAI, boss_noxxion::boss_noxxionAI, boss_princess_theradras::boss_ptheradrasAI, npc_injured_goblin::npc_injured_goblinAI, boss_rokmar_the_crackler::boss_rokmar_the_cracklerAI, boss_hungarfen::boss_hungarfenAI, boss_randolph_moloch, boss_amnennar_the_coldbringer::boss_amnennar_the_coldbringerAI, boss_erekem::boss_erekemAI, boss_thorngrin_the_tender::boss_thorngrin_the_tenderAI, boss_nethermancer_sepethrea::boss_nethermancer_sepethreaAI, boss_vanndar::boss_vanndarAI, boss_timmy_the_cruel::boss_timmy_the_cruelAI, boss_hogger, boss_pandemonius::boss_pandemoniusAI, boss_hydromancer_thespia::boss_thespiaAI, boss_commander_sarannis::boss_commander_sarannisAI, boss_occuthar::boss_occutharAI, boss_sulfuron::boss_sulfuronAI, celebras_the_cursed::celebras_the_cursedAI, boss_landslide::boss_landslideAI, boss_maiden_of_virtue::boss_maiden_of_virtueAI, boss_kormok::boss_kormokAI, boss_ironaya::boss_ironayaAI, boss_eck::boss_eckAI, npc_dragonflayer_forge_master::npc_dragonflayer_forge_masterAI, npc_crystalcore_devastator::npc_crystalcore_devastatorAI, boss_gatewatcher_gyrokill::boss_gatewatcher_gyrokillAI, boss_lord_valthalak::boss_lord_valthalakAI, boss_magmadar::boss_magmadarAI, boss_interrogator_vishas::boss_interrogator_vishasAI, boss_postmaster_malown::boss_postmaster_malownAI, boss_krystallus::boss_krystallusAI, boss_galvangar::boss_galvangarAI, boss_jindo_the_godbreaker::boss_jindo_the_godbreakerAI, boss_chrono_lord_deja::boss_chrono_lord_dejaAI, boss_marwyn::boss_marwynAI, boss_drekthar::boss_drektharAI, boss_corla::boss_corlaAI, boss_halycon::boss_halyconAI, boss_epoch::boss_epochAI, boss_aeonus::boss_aeonusAI, boss_temporus::boss_temporusAI, boss_quagmirran::boss_quagmirranAI, boss_broggok::boss_broggokAI, boss_zereketh_the_unbound::boss_zereketh_the_unboundAI, boss_gatewatcher_iron_hand::boss_gatewatcher_iron_handAI, boss_baron_geddon::boss_baron_geddonAI, boss_arcanist_doan::boss_arcanist_doanAI, boss_bloodmage_thalnos::boss_bloodmage_thalnosAI, boss_maleki_the_pallid::boss_maleki_the_pallidAI, boss_infinite_corruptor::boss_infinite_corruptorAI, boss_salramm::boss_salrammAI, boss_ioc_horde_alliance::boss_ioc_horde_allianceAI, boss_koralon::boss_koralonAI, CasterAI, boss_gizrul_the_slavener::boss_gizrul_the_slavenerAI, boss_daakara::boss_daakaraAI, npc_webbed_creature::npc_webbed_creatureAI, boss_jandice_barov::boss_jandicebarovAI, npc_oox09hl::npc_oox09hlAI, boss_nalorakk::boss_nalorakkAI, boss_mordresh_fire_eye::boss_mordresh_fire_eyeAI, boss_beauty::boss_beautyAI, boss_ascendant_lord_obsidius::boss_ascendant_lord_obsidiusAI, boss_karsh_steelbender::boss_karsh_steelbenderAI, boss_emperor_dagran_thaurissan::boss_draganthaurissanAI, boss_garr::boss_garrAI, boss_hexlord_malacrass::boss_hex_lord_malacrassAI, boss_grobbulus::boss_grobbulusAI, boss_general_angerforge::boss_general_angerforgeAI, boss_lord_alexei_barov::boss_lordalexeibarovAI, boss_venoxis::boss_venoxisAI, boss_zanzil::boss_zanzilAI, npc_pet_hunter_snake_trap::npc_pet_hunter_snake_trapAI, boss_boss_ras_frostwhisper::boss_rasfrostAI, boss_aku_mai::boss_aku_maiAI, boss_shadow_hunter_voshgajin::boss_shadowvoshAI, boss_urok_doomhowl::boss_urok_doomhowlAI, boss_warmaster_voone::boss_warmastervooneAI, boss_doctor_theolen_krastinov::boss_theolenkrastinovAI, boss_vectus::boss_vectusAI, npc_the_scourge_cauldron::npc_the_scourge_cauldronAI, boss_janalai::boss_janalaiAI, boss_kilnara::boss_kilnaraAI, boss_meathook::boss_meathookAI, boss_glutton::boss_gluttonAI, boss_magmus::boss_magmusAI, boss_the_beast::boss_thebeastAI, boss_gehennas::boss_gehennasAI, boss_lucifron::boss_lucifronAI, boss_halazzi::boss_halazziAI, boss_toravon, boss_cyanigosa::boss_cyanigosaAI, boss_pit_lord_argaloth::boss_pit_lord_argalothAI, boss_moira_bronzebeard::boss_moira_bronzebeardAI, boss_mother_smolderweb::boss_mothersmolderwebAI, boss_broodlord::boss_broodlordAI, boss_azshir_the_sleepless::boss_azshir_the_sleeplessAI, boss_illucia_barov::boss_illuciabarovAI, boss_tuten_kash::boss_tuten_kashAI, boss_nexus_commanders::boss_nexus_commandersAI, boss_the_maker::boss_the_makerAI, boss_highlord_omokk::boss_highlordomokkAI, boss_death_knight_darkreaver::boss_death_knight_darkreaverAI, boss_lorekeeper_polkelt::boss_lorekeeperpolkeltAI, boss_the_ravenian::boss_theravenianAI, boss_high_interrogator_gerstahn::boss_high_interrogator_gerstahnAI, boss_drakkisath::boss_drakkisathAI, boss_shazzrah::boss_shazzrahAI, boss_houndmaster_loksey::boss_houndmaster_lokseyAI, boss_scorn::boss_scornAI, quartermaster_zigris::boss_quatermasterzigrisAI, boss_flamegor::boss_flamegorAI, boss_grilek::boss_grilekAI, boss_hazzarah::boss_hazzarahAI, boss_renataki::boss_renatakiAI, boss_wushoolay::boss_wushoolayAI, boss_kelris::boss_kelrisAI, boss_ambassador_flamelash::boss_ambassador_flamelashAI, boss_lord_overheat, boss_akilzon::boss_akilzonAI, boss_ebonroc::boss_ebonrocAI, boss_firemaw::boss_firemawAI, CombatAI, and boss_gelihast::boss_gelihastAI.

88 { }
+ Here is the caller graph for this function:

◆ JustReachedHome()

virtual void CreatureAI::JustReachedHome ( )
inlinevirtual

Reimplemented in boss_romulo::boss_romuloAI, npc_tirion_fordring_tft::npc_tirion_fordringAI, boss_julianne::boss_julianneAI, boss_rouge_toc5::boss_rouge_toc5AI, boss_bigbadwolf::boss_bigbadwolfAI, npc_rocket_propelled_warhead::npc_rocket_propelled_warheadAI, boss_sister_svalna::boss_sister_svalnaAI, npc_kelthuzad_guardian::npc_kelthuzad_guardianAI, boss_hunter_toc5::boss_hunter_toc5AI, boss_crone::boss_croneAI, boss_shaman_toc5::boss_shaman_toc5AI, boss_roar::boss_roarAI, boss_faction_championsAI, npc_the_lich_king_controller::npc_the_lich_king_controllerAI, BloodPrincesBossAI, boss_mage_toc5::boss_mage_toc5AI, boss_tinhead::boss_tinheadAI, boss_kaelthas::boss_kaelthasAI, boss_archimonde::boss_archimondeAI, boss_fjola::boss_fjolaAI, npc_egg_pile::npc_egg_pileAI, boss_nefarian::boss_nefarianAI, boss_strawman::boss_strawmanAI, boss_warrior_toc5::boss_warrior_toc5AI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, BossAI, boss_rimefang::boss_rimefangAI, boss_sindragosa::boss_sindragosaAI, boss_professor_putricide::boss_professor_putricideAI, npc_blazing_monstrosity::npc_blazing_monstrosityAI, boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI, boss_anubarak_trial::boss_anubarak_trialAI, boss_temple_guardian_anhuur::boss_temple_guardian_anhuurAI, boss_victor_nefarius::boss_victor_nefariusAI, boss_earthrager_ptah::boss_earthrager_ptahAI, npc_dk_understudy::npc_dk_understudyAI, npc_harbinger_of_flame::npc_harbinger_of_flameAI, boss_twin_baseAI, boss_anraphet::boss_anraphetAI, boss_lord_marrowgar::boss_lord_marrowgarAI, boss_dorothee::boss_dorotheeAI, boss_priestess_delrissa::boss_priestess_delrissaAI, boss_sartharion::boss_sartharionAI, boss_rotface::boss_rotfaceAI, boss_festergut::boss_festergutAI, boss_nightbane::boss_nightbaneAI, boss_scarlet_commander_mograine::boss_scarlet_commander_mograineAI, boss_anubrekhan::boss_anubrekhanAI, boss_ichoron::boss_ichoronAI, boss_xevozz::boss_xevozzAI, boss_faerlina::boss_faerlinaAI, boss_bronjahm::boss_bronjahmAI, boss_razuvious::boss_razuviousAI, boss_erekem::boss_erekemAI, SmartAI, boss_zuramat::boss_zuramatAI, boss_moragg::boss_moraggAI, and boss_lavanthor::boss_lavanthorAI.

140 { }
+ Here is the caller graph for this function:

◆ JustRegisteredAreaTrigger()

virtual void CreatureAI::JustRegisteredAreaTrigger ( AreaTrigger )
inlinevirtual
112 { }
+ Here is the caller graph for this function:

◆ JustRegisteredDynObject()

virtual void CreatureAI::JustRegisteredDynObject ( DynamicObject )
inlinevirtual
108 { }
+ Here is the caller graph for this function:

◆ JustSummoned()

virtual void CreatureAI::JustSummoned ( Creature )
inlinevirtual

Reimplemented in npc_toc_enh_shaman::npc_toc_enh_shamanAI, npc_illidan_db_target, npc_blade_of_azzinoth, npc_phoenix_egg_tk::npc_phoenix_egg_tkAI, npc_thorim_minibossAI, npc_the_lich_king_escape_hor::npc_the_lich_king_escape_horAI, boss_aerial_command_unit::boss_aerial_command_unitAI, boss_brain_of_yogg_saron::boss_brain_of_yogg_saronAI, npc_akama_illidan, boss_garaxxas::boss_garaxxasAI, npc_felfire_portal::npc_felfire_portalAI, npc_scarlet_miner_cart::npc_scarlet_miner_cartAI, boss_vx_001::boss_vx_001AI, npc_gothik_trigger::npc_gothik_triggerAI, npc_hand_of_the_deceiver::npc_hand_of_the_deceiverAI, npc_hodir_mage::npc_hodir_mageAI, boss_sara::boss_saraAI, npc_collapsing_star::npc_collapsing_starAI, npc_twilight_eggs::npc_twilight_eggsAI, boss_prince_valanar_icc::boss_prince_valanarAI, boss_leviathan_mk_ii::boss_leviathan_mk_iiAI, npc_necromancer::npc_necromancerAI, npc_risen_archmage::npc_risen_archmageAI, boss_prince_taldaram_icc::boss_prince_taldaramAI, boss_the_lich_king::boss_the_lich_kingAI, npc_earthmender_wilda::npc_earthmender_wildaAI, npc_violet_hold_teleportation_portal_commonAI, boss_jormungarAI, boss_kaelthas::boss_kaelthasAI, boss_prince_keleseth_icc::boss_prince_kelesethAI, boss_voice_of_yogg_saron::boss_voice_of_yogg_saronAI, boss_freya::boss_freyaAI, boss_thorim::boss_thorimAI, boss_kiljaeden::boss_kiljaedenAI, npc_creature_generator_akama, npc_the_lich_king_controller::npc_the_lich_king_controllerAI, npc_halion_controller::npc_halion_controllerAI, npc_wizzlecrank_shredder::npc_wizzlecrank_shredderAI, npc_colonel_jules::npc_colonel_julesAI, npc_bessy::npc_bessyAI, boss_massive_jormungar::boss_massive_jormungarAI, npc_kurenai_captive::npc_kurenai_captiveAI, npc_sinclari_vh::npc_sinclariAI, boss_illidan_stormrage, npc_blastmaster_emi_shortfuse::npc_blastmaster_emi_shortfuseAI, boss_lady_deathwhisper::boss_lady_deathwhisperAI, boss_razorscale, boss_archimonde::boss_archimondeAI, npc_kiljaeden_controller::npc_kiljaeden_controllerAI, boss_algalon_the_observer::boss_algalon_the_observerAI, npc_daegarn::npc_daegarnAI, npc_blessed_banner::npc_blessed_bannerAI, npc_announcer_toc5::npc_announcer_toc5AI, npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, boss_sindragosa::boss_sindragosaAI, boss_paletress::boss_paletressAI, boss_valithria_dreamwalker::boss_valithria_dreamwalkerAI, npc_precious_icc::npc_precious_iccAI, boss_toc_champion_controller::boss_toc_champion_controllerAI, npc_ahune_bunny::npc_ahune_bunnyAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, npc_brann_hos::npc_brann_hosAI, npc_tirion_toc, npc_akama_shade, boss_hadronox::boss_hadronoxAI, boss_vazruden_the_herald::boss_vazruden_the_heraldAI, npc_akuno::npc_akunoAI, WorldBossAI, npc_hellfire_channeler::npc_hellfire_channelerAI, npc_muru_portal::npc_muru_portalAI, boss_krick::boss_krickAI, npc_crystal_channel_target::npc_crystal_channel_targetAI, npc_warden_mellichar::npc_warden_mellicharAI, boss_gothik::boss_gothikAI, boss_midnight::boss_midnightAI, BossAI, npc_blazing_monstrosity::npc_blazing_monstrosityAI, boss_garothi_worldbreaker, boss_professor_putricide::boss_professor_putricideAI, boss_muru::boss_muruAI, npc_wounded_blood_elf::npc_wounded_blood_elfAI, npc_koltira_deathweaver::npc_koltira_deathweaverAI, npc_fiendish_portal::npc_fiendish_portalAI, boss_anubarak_trial::boss_anubarak_trialAI, boss_kelthuzad::boss_kelthuzadAI, npc_OOX17::npc_OOX17AI, boss_corborus::boss_corborusAI, boss_victor_nefarius::boss_victor_nefariusAI, npc_muglash::npc_muglashAI, boss_jedoga_shadowseeker, boss_felmyst::boss_felmystAI, boss_exarch_maladaar::boss_exarch_maladaarAI, npc_ethereal_beacon::npc_ethereal_beaconAI, boss_drakkari_colossus::boss_drakkari_colossusAI, boss_warbringer_omrogg::boss_warbringer_omroggAI, npc_buru_egg::npc_buru_eggAI, boss_palehoof::boss_palehoofAI, boss_kologarn::boss_kologarnAI, boss_grand_warlock_nethekurse::boss_grand_warlock_nethekurseAI, boss_volazj::boss_volazjAI, boss_ionar::boss_ionarAI, boss_novos::boss_novosAI, boss_volkhan::boss_volkhanAI, boss_hydross_the_unstable::boss_hydross_the_unstableAI, boss_trollgore::boss_trollgoreAI, boss_ymiron::boss_ymironAI, boss_slad_ran::boss_slad_ranAI, boss_skadi::boss_skadiAI, boss_rotface::boss_rotfaceAI, boss_alar::boss_alarAI, boss_ignis::boss_ignis_AI, boss_svala::boss_svalaAI, npc_void_sentry::npc_void_sentryAI, boss_onyxia::boss_onyxiaAI, boss_ichoron::boss_ichoronAI, boss_laj::boss_lajAI, boss_entropius::boss_entropiusAI, npc_firelands_molten_flamefather, boss_noth::boss_nothAI, npc_restless_soul::npc_restless_soulAI, boss_eregos::boss_eregosAI, npc_lady_sylvanas_windrunner::npc_lady_sylvanas_windrunnerAI, npc_disciple_of_naralex::npc_disciple_of_naralexAI, npc_twilight_flame_caller::npc_twilight_flame_callerAI, boss_attumen::boss_attumenAI, hyjalAI, boss_black_knight::boss_black_knightAI, boss_kirtonos_the_herald::boss_kirtonos_the_heraldAI, boss_baltharus_the_warborn::boss_baltharus_the_warbornAI, boss_warchief_kargath_bladefist::boss_warchief_kargath_bladefistAI, npc_maghar_captive::npc_maghar_captiveAI, boss_bronjahm::boss_bronjahmAI, boss_prince_taldaram::boss_prince_taldaramAI, boss_harbinger_skyriss::boss_harbinger_skyrissAI, npc_willix::npc_willixAI, boss_nexusprince_shaffar::boss_nexusprince_shaffarAI, npc_commander_dawnforge::npc_commander_dawnforgeAI, boss_amanitar, boss_anubrekhan::boss_anubrekhanAI, boss_sjonnir::boss_sjonnirAI, boss_darkweaver_syth::boss_darkweaver_sythAI, boss_baron_rivendare::boss_baron_rivendareAI, boss_moorabi::boss_moorabiAI, boss_xevozz::boss_xevozzAI, boss_shattered_executioner::boss_shattered_executionerAI, boss_general_zarithrian::boss_general_zarithrianAI, boss_omor_the_unscarred::boss_omor_the_unscarredAI, npc_tapoke_slim_jahn::npc_tapoke_slim_jahnAI, boss_ozruk::boss_ozrukAI, boss_nazan::boss_nazanAI, boss_ayamiss::boss_ayamissAI, boss_commander_sarannis::boss_commander_sarannisAI, boss_high_botanist_freywinn::boss_high_botanist_freywinnAI, npc_professor_phizzlethorpe::npc_professor_phizzlethorpeAI, boss_gal_darah::boss_gal_darahAI, SmartAI, boss_vexallus::boss_vexallusAI, boss_shirrak_the_dead_watcher::boss_shirrak_the_dead_watcherAI, boss_emalon::boss_emalonAI, boss_the_black_stalker::boss_the_black_stalkerAI, boss_occuthar::boss_occutharAI, boss_balinda::boss_balindaAI, boss_hogger, boss_skeram::boss_skeramAI, boss_randolph_moloch, npc_ruul_snowhoof::npc_ruul_snowhoofAI, boss_kormok::boss_kormokAI, boss_broggok::boss_broggokAI, npc_oox09hl::npc_oox09hlAI, npc_emily::npc_emilyAI, boss_jandice_barov::boss_jandicebarovAI, and boss_horAI.

97 { }
+ Here is the caller graph for this function:

◆ JustSummonedGameobject()

virtual void CreatureAI::JustSummonedGameobject ( GameObject )
inlinevirtual
104 { }
+ Here is the caller graph for this function:

◆ JustUnregisteredAreaTrigger()

virtual void CreatureAI::JustUnregisteredAreaTrigger ( AreaTrigger )
inlinevirtual
113 { }
+ Here is the caller graph for this function:

◆ JustUnregisteredDynObject()

virtual void CreatureAI::JustUnregisteredDynObject ( DynamicObject )
inlinevirtual
109 { }
+ Here is the caller graph for this function:

◆ KilledUnit()

virtual void CreatureAI::KilledUnit ( Unit )
inlinevirtual

Reimplemented in boss_romulo::boss_romuloAI, npc_argent_captainAI, npc_the_lich_king_escape_hor::npc_the_lich_king_escape_horAI, boss_aerial_command_unit::boss_aerial_command_unitAI, boss_julianne::boss_julianneAI, boss_vx_001::boss_vx_001AI, boss_elder_ironbranch::boss_elder_ironbranchAI, boss_bigbadwolf::boss_bigbadwolfAI, npc_feugen::npc_feugenAI, boss_elder_stonebark::boss_elder_stonebarkAI, boss_sister_svalna::boss_sister_svalnaAI, npc_necromancer::npc_necromancerAI, boss_leviathan_mk_ii::boss_leviathan_mk_iiAI, boss_sara::boss_saraAI, boss_elder_brightleaf::boss_elder_brightleafAI, boss_crone::boss_croneAI, boss_faction_championsAI, boss_kiljaeden::boss_kiljaedenAI, boss_leotheras_the_blind_demonform::boss_leotheras_the_blind_demonformAI, boss_kaelthas::boss_kaelthasAI, boss_malygos::boss_malygosAI, boss_roar::boss_roarAI, boss_the_lich_king::boss_the_lich_kingAI, npc_stalagg::npc_stalaggAI, boss_stormcaller_brundir::boss_stormcaller_brundirAI, boss_headless_horseman::boss_headless_horsemanAI, boss_thorim::boss_thorimAI, BloodPrincesBossAI, boss_illidan_stormrage, boss_tinhead::boss_tinheadAI, boss_emeriss::boss_emerissAI, boss_sathrovarr, boss_essence_of_desire, npc_bone_spike::npc_bone_spikeAI, boss_nefarian::boss_nefarianAI, npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, boss_twilight_halion::boss_twilight_halionAI, boss_priestess_lackey_commonAI, boss_alythess::boss_alythessAI, boss_archimonde::boss_archimondeAI, boss_lady_deathwhisper::boss_lady_deathwhisperAI, boss_strawman::boss_strawmanAI, boss_leotheras_the_blind::boss_leotheras_the_blindAI, boss_hodir::boss_hodirAI, boss_runemaster_molgeim::boss_runemaster_molgeimAI, npc_gravity_well::npc_gravity_wellAI, boss_midnight::boss_midnightAI, boss_essence_of_suffering, boss_gothik::boss_gothikAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, boss_krick::boss_krickAI, npc_ohgan::npc_ohganAI, boss_algalon_the_observer::boss_algalon_the_observerAI, boss_freya::boss_freyaAI, boss_four_horsemen_baseAI, dummy_dragonAI, boss_sindragosa::boss_sindragosaAI, boss_anub_arak::boss_anub_arakAI, boss_professor_putricide::boss_professor_putricideAI, boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI, boss_high_inquisitor_whitemane::boss_high_inquisitor_whitemaneAI, boss_volazj::boss_volazjAI, boss_ymiron::boss_ymironAI, IllidariCouncilBossAI, boss_palehoof::boss_palehoofAI, boss_malchezaar::boss_malchezaarAI, boss_kelthuzad::boss_kelthuzadAI, boss_prince_taldaram::boss_prince_taldaramAI, boss_garothi_worldbreaker, boss_archmage_arugal::boss_archmage_arugalAI, boss_mal_ganis::boss_mal_ganisAI, boss_exarch_maladaar::boss_exarch_maladaarAI, boss_xt002::boss_xt002_AI, boss_vazruden::boss_vazrudenAI, boss_lady_vashj::boss_lady_vashjAI, boss_warbringer_omrogg::boss_warbringer_omroggAI, boss_general_vezax::boss_general_vezaxAI, boss_priestess_delrissa::boss_priestess_delrissaAI, boss_kalecgos, npc_lesser_doomguard::npc_lesser_doomguardAI, boss_steelbreaker::boss_steelbreakerAI, boss_skadi::boss_skadiAI, npc_towering_infernal::npc_towering_infernalAI, boss_grand_warlock_nethekurse::boss_grand_warlock_nethekurseAI, boss_magtheridon::boss_magtheridonAI, boss_twin_baseAI, boss_bjarngrim::boss_bjarngrimAI, boss_svala::boss_svalaAI, boss_anubarak_trial::boss_anubarak_trialAI, boss_sartharion::boss_sartharionAI, boss_fathomlord_karathress::boss_fathomlord_karathressAI, boss_temple_guardian_anhuur::boss_temple_guardian_anhuurAI, boss_urom::boss_uromAI, boss_onyxia::boss_onyxiaAI, boss_ingvar_the_plunderer::boss_ingvar_the_plundererAI, boss_jedoga_shadowseeker, boss_baleroc, boss_tyrannus::boss_tyrannusAI, boss_hydross_the_unstable::boss_hydross_the_unstableAI, boss_felmyst::boss_felmystAI, boss_shade_of_aran::boss_aranAI, boss_lord_marrowgar::boss_lord_marrowgarAI, boss_jaraxxus, boss_anraphet::boss_anraphetAI, boss_warp_splinter::boss_warp_splinterAI, boss_trollgore::boss_trollgoreAI, boss_slad_ran::boss_slad_ranAI, boss_thaddius, boss_ignis::boss_ignis_AI, boss_auriaya, boss_devourer_of_souls::boss_devourer_of_soulsAI, boss_moroes::boss_moroesAI, boss_ossirian::boss_ossirianAI, boss_krik_thir::boss_krik_thirAI, boss_gal_darah::boss_gal_darahAI, boss_mandokir::boss_mandokirAI, boss_rotface::boss_rotfaceAI, boss_gurtogg_bloodboil, boss_ichoron::boss_ichoronAI, generic_boss_controllerAI, boss_magus_telestra::boss_magus_telestraAI, boss_high_astromancer_solarian::boss_high_astromancer_solarianAI, boss_noth::boss_nothAI, boss_festergut::boss_festergutAI, boss_kologarn::boss_kologarnAI, boss_teron_gorefiend, boss_volkhan::boss_volkhanAI, boss_lieutenant_drake::boss_lieutenant_drakeAI, boss_morogrim_tidewalker::boss_morogrim_tidewalkerAI, netherspite_infernal::netherspite_infernalAI, boss_warchief_kargath_bladefist::boss_warchief_kargath_bladefistAI, boss_twinemperorsAI, boss_talon_king_ikiss::boss_talon_king_ikissAI, boss_warlord_kalithresh::boss_warlord_kalithreshAI, boss_sacrolash::boss_sacrolashAI, boss_drakos::boss_drakosAI, boss_selin_fireheart::boss_selin_fireheartAI, boss_anubrekhan::boss_anubrekhanAI, boss_ionar::boss_ionarAI, boss_archaedas::boss_archaedasAI, boss_saviana_ragefire::boss_saviana_ragefireAI, boss_attumen::boss_attumenAI, boss_harbinger_skyriss::boss_harbinger_skyrissAI, boss_mother_shahraz, boss_krystallus::boss_krystallusAI, boss_nexusprince_shaffar::boss_nexusprince_shaffarAI, boss_sjonnir::boss_sjonnirAI, boss_baltharus_the_warborn::boss_baltharus_the_warbornAI, boss_novos::boss_novosAI, boss_grandmaster_vorpil::boss_grandmaster_vorpilAI, npc_millhouse_manastorm::npc_millhouse_manastormAI, boss_scarlet_commander_mograine::boss_scarlet_commander_mograineAI, boss_brutallus::boss_brutallusAI, boss_wrath_scryer_soccothrates::boss_wrath_scryer_soccothratesAI, boss_ambassador_hellmaw::boss_ambassador_hellmawAI, boss_high_botanist_freywinn::boss_high_botanist_freywinnAI, boss_ragnaros::boss_ragnarosAI, boss_loken::boss_lokenAI, boss_vaelastrasz::boss_vaelAI, boss_general_zarithrian::boss_general_zarithrianAI, boss_garfrost::boss_garfrostAI, boss_moorabi::boss_moorabiAI, boss_ormorok::boss_ormorokAI, boss_high_king_maulgar::boss_high_king_maulgarAI, boss_faerlina::boss_faerlinaAI, boss_salramm::boss_salrammAI, boss_zuramat::boss_zuramatAI, boss_gruul::boss_gruulAI, boss_xevozz::boss_xevozzAI, boss_kelidan_the_breaker::boss_kelidan_the_breakerAI, boss_bronjahm::boss_bronjahmAI, boss_keristrasza::boss_keristraszaAI, boss_alizabal::boss_alizabalAI, boss_elder_nadox::boss_elder_nadoxAI, boss_eregos::boss_eregosAI, boss_darkweaver_syth::boss_darkweaver_sythAI, boss_epoch::boss_epochAI, emerald_dragonAI, boss_buru::boss_buruAI, boss_mekgineer_steamrigger::boss_mekgineer_steamriggerAI, boss_watchkeeper_gargolmar::boss_watchkeeper_gargolmarAI, boss_falric::boss_falricAI, boss_sartura::boss_sarturaAI, boss_tharon_ja::boss_tharon_jaAI, boss_terestian_illhoof::boss_terestianAI, boss_azgalor::boss_azgalorAI, boss_captain_skarloc::boss_captain_skarlocAI, boss_dalliah_the_doomsayer::boss_dalliah_the_doomsayerAI, boss_aeonus::boss_aeonusAI, boss_anetheron::boss_anetheronAI, boss_heigan::boss_heiganAI, boss_razuvious::boss_razuviousAI, boss_kazrogal::boss_kazrogalAI, boss_omor_the_unscarred::boss_omor_the_unscarredAI, boss_nexus_commanders::boss_nexus_commandersAI, boss_doomlord_kazzak::boss_doomlordkazzakAI, SmartAI, boss_meathook::boss_meathookAI, boss_blackheart_the_inciter, boss_chrono_lord_deja::boss_chrono_lord_dejaAI, boss_epoch_hunter::boss_epoch_hunterAI, boss_mechano_lord_capacitus::boss_mechano_lord_capacitusAI, boss_rage_winterchill::boss_rage_winterchillAI, boss_erekem::boss_erekemAI, boss_herod::boss_herodAI, boss_pathaleon_the_calculator::boss_pathaleon_the_calculatorAI, boss_zum_rah::boss_zum_rahAI, boss_mennu_the_betrayer::boss_mennu_the_betrayerAI, boss_majordomo::boss_majordomoAI, boss_marwyn::boss_marwynAI, boss_patchwerk::boss_patchwerkAI, boss_nethermancer_sepethrea::boss_nethermancer_sepethreaAI, boss_najentus, boss_maiden_of_grief::boss_maiden_of_griefAI, boss_vexallus::boss_vexallusAI, boss_twilight_corrupter::boss_twilight_corrupterAI, boss_amnennar_the_coldbringer::boss_amnennar_the_coldbringerAI, boss_rokmar_the_crackler::boss_rokmar_the_cracklerAI, boss_thorngrin_the_tender::boss_thorngrin_the_tenderAI, boss_bloodmage_thalnos::boss_bloodmage_thalnosAI, boss_doomwalker::boss_doomwalkerAI, boss_commander_sarannis::boss_commander_sarannisAI, boss_gatewatcher_gyrokill::boss_gatewatcher_gyrokillAI, boss_skeram::boss_skeramAI, boss_postmaster_malown::boss_postmaster_malownAI, boss_temporus::boss_temporusAI, boss_daakara::boss_daakaraAI, boss_interrogator_vishas::boss_interrogator_vishasAI, boss_nalorakk::boss_nalorakkAI, boss_quagmirran::boss_quagmirranAI, boss_zereketh_the_unbound::boss_zereketh_the_unboundAI, boss_gatewatcher_iron_hand::boss_gatewatcher_iron_handAI, boss_corla::boss_corlaAI, boss_romogg_bonecrusher::boss_romogg_bonecrusherAI, boss_hexlord_malacrass::boss_hex_lord_malacrassAI, boss_venoxis::boss_venoxisAI, boss_zanzil::boss_zanzilAI, boss_void_reaver::boss_void_reaverAI, boss_curator::boss_curatorAI, boss_janalai::boss_janalaiAI, boss_kilnara::boss_kilnaraAI, boss_emperor_dagran_thaurissan::boss_draganthaurissanAI, boss_halazzi::boss_halazziAI, boss_ascendant_lord_obsidius::boss_ascendant_lord_obsidiusAI, boss_karsh_steelbender::boss_karsh_steelbenderAI, boss_pandemonius::boss_pandemoniusAI, boss_the_maker::boss_the_makerAI, boss_hydromancer_thespia::boss_thespiaAI, boss_glutton::boss_gluttonAI, boss_cyanigosa::boss_cyanigosaAI, boss_akilzon::boss_akilzonAI, boss_maiden_of_virtue::boss_maiden_of_virtueAI, PossessedAI, and PetAI.

94 { }
+ Here is the caller graph for this function:

◆ MoveInLineOfSight()

void CreatureAI::MoveInLineOfSight ( Unit who)
protectedvirtual

Reimplemented in npc_beryl_sorcerer::npc_beryl_sorcererAI, npc_tonk_mine::npc_tonk_mineAI, alliance_rifleman::alliance_riflemanAI, npc_phoenix_egg_tk::npc_phoenix_egg_tkAI, npc_runic_colossus::npc_runic_colossusAI, boss_romulo::boss_romuloAI, npc_kael_flamestrike::npc_kael_flamestrikeAI, boss_julianne::boss_julianneAI, npc_grizzlemaw_cw_trigger::npc_grizzlemaw_cw_triggerAI, npc_hodirs_fury::npc_hodirs_furyAI, npc_lord_illidan_stormrage::npc_lord_illidan_stormrageAI, npc_cw_area_trigger::npc_cw_area_triggerAI, npc_thorims_hammer::npc_thorims_hammerAI, npc_dkc1_gothik::npc_dkc1_gothikAI, npc_shield_generator_channel::npc_shield_generator_channelAI, npc_pulsing_pumpkin::npc_pulsing_pumpkinAI, npc_alexstraza_the_lifebinder::npc_alexstraza_the_lifebinderAI, npc_salanar_the_horseman::npc_salanar_the_horsemanAI, npc_anubarak_spike::npc_anubarak_spikeAI, npc_cyclone::npc_cycloneAI, npc_toxic_sporebat::npc_toxic_sporebatAI, npc_ashtongue_sorcerer, npc_the_etymidian::npc_the_etymidianAI, boss_malygos::boss_malygosAI, npc_a_special_surprise::npc_a_special_surpriseAI, npc_violet_hold_teleportation_portal_commonAI, npc_riven_widow_cocoon::npc_riven_widow_cocoonAI, npc_kelthuzad_minionAI, npc_felkael_phoenix_egg::npc_felkael_phoenix_eggAI, npc_enchanted_elemental::npc_enchanted_elementalAI, boss_roar::boss_roarAI, npc_flame_patch_alar::npc_flame_patch_alarAI, npc_elder_kekek::npc_elder_kekekAI, npc_felmyst_trail::npc_felmyst_trailAI, boss_kaelthas::boss_kaelthasAI, npc_odyn, boss_shade_of_aran::boss_aranAI, boss_headless_horseman::boss_headless_horsemanAI, boss_tinhead::boss_tinheadAI, npc_high_oracle_soo_roo::npc_high_oracle_soo_rooAI, npc_hadronox_crusherPackAI, npc_nesingwary_trapper::npc_nesingwary_trapperAI, boss_voice_of_yogg_saron::boss_voice_of_yogg_saronAI, npc_felkael_flamestrike::npc_felkael_flamestrikeAI, npc_blessed_banner::npc_blessed_bannerAI, npc_highlord_darion_mograine::npc_highlord_darion_mograineAI, npc_coilfang_ambusher::npc_coilfang_ambusherAI, boss_alythess::boss_alythessAI, npc_scorch_ground::npc_scorch_groundAI, npc_lesser_shadow_fissure::npc_lesser_shadow_fissureAI, npc_the_biggest_tree::npc_the_biggest_treeAI, npc_gatewatcher_petAI, npc_nerubar_victim::npc_nerubar_victimAI, boss_strawman::boss_strawmanAI, npc_twiggy_flathead::npc_twiggy_flatheadAI, advisorbase_ai, npc_prince_taldaram_flame_sphere::npc_prince_taldaram_flame_sphereAI, npc_annhylde_the_caller::npc_annhylde_the_callerAI, npc_water_globule::npc_water_globuleAI, npc_fel_orc_convert::npc_fel_orc_convertAI, npc_warden_mellichar::npc_warden_mellicharAI, npc_tooga::npc_toogaAI, npc_injured_draenei::npc_injured_draeneiAI, npc_tournament_training_dummy::npc_tournament_training_dummyAI, boss_twinemperorsAI, npc_archaedas_minions::npc_archaedas_minionsAI, npc_snowfall_glade_playmate::npc_snowfall_glade_playmateAI, boss_leotheras_the_blind::boss_leotheras_the_blindAI, npc_hive_zara_larva::npc_hive_zara_larvaAI, boss_lady_vashj::boss_lady_vashjAI, boss_brutallus::boss_brutallusAI, npc_daranelle::npc_daranelleAI, npc_creditmarker_visit_with_ancestors::npc_creditmarker_visit_with_ancestorsAI, npc_mrfloppy::npc_mrfloppyAI, npc_jungle_punch_target::npc_jungle_punch_targetAI, npc_steamrigger_mechanic::npc_steamrigger_mechanicAI, npc_lesser_doomguard::npc_lesser_doomguardAI, npc_towering_infernal::npc_towering_infernalAI, npc_amanitar_mushrooms, npc_doomfire_targetting::npc_doomfire_targettingAI, boss_anubarak_trial::boss_anubarak_trialAI, boss_ossirian::boss_ossirianAI, boss_exarch_maladaar::boss_exarch_maladaarAI, npc_skywing::npc_skywingAI, npc_khunok_the_behemoth::npc_khunok_the_behemothAI, npc_harbinger_of_flame::npc_harbinger_of_flameAI, npc_wisp_invis::npc_wisp_invisAI, boss_krik_thir::boss_krik_thirAI, boss_dorothee::boss_dorotheeAI, boss_alar::boss_alarAI, boss_svala::boss_svalaAI, boss_felblood_kaelthas::boss_felblood_kaelthasAI, boss_grand_warlock_nethekurse::boss_grand_warlock_nethekurseAI, boss_felmyst::boss_felmystAI, boss_novos::boss_novosAI, npc_doomfire::npc_doomfireAI, boss_the_lurker_below::boss_the_lurker_belowAI, npc_winterfin_playmate::npc_winterfin_playmateAI, npc_air_force_bots::npc_air_force_botsAI, npc_kservant::npc_kservantAI, boss_reliquary_of_souls, boss_coren_direbrew, boss_grandmaster_vorpil::boss_grandmaster_vorpilAI, npc_underbog_mushroom::npc_underbog_mushroomAI, hyjalAI, npc_captured_rageclaw::npc_captured_rageclawAI, npc_custodian_of_time::npc_custodian_of_timeAI, npc_andorhal_tower::npc_andorhal_towerAI, npc_guardian_pavilion::npc_guardian_pavilionAI, boss_wrath_scryer_soccothrates::boss_wrath_scryer_soccothratesAI, boss_loken::boss_lokenAI, netherspite_infernal::netherspite_infernalAI, npc_nether_drake::npc_nether_drakeAI, boss_harbinger_skyriss::boss_harbinger_skyrissAI, npc_medivh_bm::npc_medivh_bmAI, VehicleAI, SmartAI, boss_nexusprince_shaffar::boss_nexusprince_shaffarAI, npc_draenei_survivor::npc_draenei_survivorAI, boss_doomwalker::boss_doomwalkerAI, npc_warp_splinter_treant::npc_warp_splinter_treantAI, boss_temporus::boss_temporusAI, boss_watchkeeper_gargolmar::boss_watchkeeper_gargolmarAI, boss_magistrate_barthilas::boss_magistrate_barthilasAI, npc_pet_hunter_snake_trap::npc_pet_hunter_snake_trapAI, boss_ambassador_hellmaw::boss_ambassador_hellmawAI, npc_mageguard_dalaran::npc_mageguard_dalaranAI, boss_chrono_lord_deja::boss_chrono_lord_dejaAI, boss_aeonus::boss_aeonusAI, boss_cyanigosa::boss_cyanigosaAI, boss_talon_king_ikiss::boss_talon_king_ikissAI, npc_the_scourge_cauldron::npc_the_scourge_cauldronAI, npc_webbed_creature::npc_webbed_creatureAI, npc_aged_dying_ancient_kodo::npc_aged_dying_ancient_kodoAI, NullCreatureAI, PetAI, FollowerAI, EscortAI, PossessedAI, TotemAI, ReactorAI, and PassiveAI.

127 {
128  if (me->IsEngaged())
129  return;
130 
131  if (me->HasReactState(REACT_AGGRESSIVE) && me->CanStartAttack(who, false))
132  me->EngageWithTarget(who);
133 }
void EngageWithTarget(Unit *who)
Definition: Unit.cpp:7688
bool IsEngaged() const
Definition: Unit.h:1090
Definition: UnitDefines.h:372
Creature *const me
Definition: CreatureAI.h:52
bool HasReactState(ReactStates state) const
Definition: Creature.h:112
bool CanStartAttack(Unit const *u, bool force) const
Definition: Creature.cpp:1984
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MoveInLineOfSight_Safe()

void CreatureAI::MoveInLineOfSight_Safe ( Unit who)

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

118 {
119  if (m_MoveInLineOfSight_locked == true)
120  return;
122  MoveInLineOfSight(who);
124 }
bool m_MoveInLineOfSight_locked
Definition: CreatureAI.h:233
virtual void MoveInLineOfSight(Unit *)
Definition: CreatureAI.cpp:126
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MovementInform()

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

Reimplemented in npc_quel_delar_sword::npc_quel_delar_swordAI, npc_train_wrecker::npc_train_wreckerAI, npc_uther_quel_delar::npc_uther_quel_delarAI, npc_spirit_bomb::npc_spirit_bombAI, npc_turned_champion::npc_turned_championAI, npc_trapped_mammoth_calf::npc_trapped_mammoth_calfAI, npc_gunship_mage::npc_gunship_mageAI, npc_gunship_rocketeer::npc_gunship_rocketeerAI, npc_gunship_gunner::npc_gunship_gunnerAI, npc_illidan_db_target, npc_valkyr_shadowguard::npc_valkyr_shadowguardAI, npc_gunship_boarding_addAI, npc_leryssa::npc_leryssaAI, npc_shield_orb::npc_shield_orbAI, npc_melee_hover_disk::npc_melee_hover_diskAI, boss_aerial_command_unit::boss_aerial_command_unitAI, npc_counselor_talbot::npc_counselor_talbotAI, npc_the_lich_king_escape_hor::npc_the_lich_king_escape_horAI, npc_expedition_engineer, npc_tirion_fordring_tft::npc_tirion_fordringAI, npc_akama_illidan, npc_general_arlos::npc_general_arlosAI, npc_image_lich_king::npc_image_lich_kingAI, npc_ashtongue_broken, npc_king_jokkum_vehicle::npc_king_jokkum_vehicleAI, npc_ball_of_flame::npc_ball_of_flameAI, npc_expedition_trapper, boss_icehowl, npc_muradin_bronzebeard_icc::npc_muradin_bronzebeard_iccAI, npc_jaina_or_sylvanas_escape_hor::npc_jaina_or_sylvanas_escape_horAI, npc_blood_queen_lana_thel::npc_blood_queen_lana_thelAI, npc_darnavan::npc_darnavanAI, npc_brann_bronzebeard_algalon::npc_brann_bronzebeard_algalonAI, npc_expedition_defender, npc_suppresser::npc_suppresserAI, boss_dreadscale, boss_sister_svalna::boss_sister_svalnaAI, npc_rimefang::npc_rimefangAI, npc_mechanolift::npc_mechanoliftAI, boss_the_lich_king::boss_the_lich_kingAI, boss_leviathan_mk_ii::boss_leviathan_mk_iiAI, npc_wild_wyrm::npc_wild_wyrmAI, npc_toxic_sporebat::npc_toxic_sporebatAI, npc_spinestalker::npc_spinestalkerAI, npc_hadronox_foeAI, npc_frostbrood_skytalon::npc_frostbrood_skytalonAI, npc_high_overlord_saurfang_icc::npc_high_overlord_saurfangAI, npc_barada::npc_baradaAI, boss_malygos::boss_malygosAI, npc_fizzlebang_toc, npc_frost_sphere::npc_frost_sphereAI, npc_vics_flying_machine::npc_vics_flying_machineAI, npc_kelthuzad_minionAI, boss_illidan_stormrage, npc_valkyr_of_odyn, gunship_npc_AI, boss_kaelthas::boss_kaelthasAI, npc_unleashed_ballAI, boss_thorim::boss_thorimAI, npc_colonel_jules::npc_colonel_julesAI, npc_azure_saboteur::npc_azure_saboteurAI, npc_spectating_valarjar, boss_flame_leviathan::boss_flame_leviathanAI, npc_earthen_ring_flamecaller::npc_earthen_ring_flamecallerAI, npc_dragonmaw_peon::npc_dragonmaw_peonAI, npc_anubarak_anub_ar_assassin::npc_anubarak_anub_ar_assassinAI, npc_skadi_trashAI, npc_wounded_skirmisher::npc_wounded_skirmisherAI, npc_image_of_medivh::npc_image_of_medivhAI, npc_spectator::npc_spectatorAI, boss_headless_horseman::boss_headless_horsemanAI, boss_nefarian::boss_nefarianAI, boss_algalon_the_observer::boss_algalon_the_observerAI, npc_spirit_shade::npc_spirit_shadeAI, boss_essence_of_desire, npc_eye_of_acherus::npc_eye_of_acherusAI, npc_brann_bronzebeard_anraphet::npc_brann_bronzebeard_anraphetAI, npc_twilight_volunteer, npc_akama_shade, npc_scarlet_courier::npc_scarlet_courierAI, npc_hadronox_crusherPackAI, boss_razorscale, npc_living_mojo::npc_living_mojoAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, npc_enslaved_netherwing_drake::npc_enslaved_netherwing_drakeAI, npc_chained_spirit::npc_chained_spiritAI, npc_ingvar_throw_dummy::npc_ingvar_throw_dummyAI, npc_corki::npc_corkiAI, npc_molten_barrage::npc_molten_barrageAI, npc_grauf::npc_graufAI, boss_krick::boss_krickAI, boss_professor_putricide::boss_professor_putricideAI, npc_fel_guard_hound::npc_fel_guard_houndAI, boss_four_horsemen_baseAI, boss_sindragosa::boss_sindragosaAI, boss_gormok, npc_tooga::npc_toogaAI, boss_paletress::boss_paletressAI, npc_spark_of_ionar::npc_spark_of_ionarAI, npc_weegli_blastfuse::npc_weegli_blastfuseAI, npc_ruby_emerald_amber_drake::npc_ruby_emerald_amber_drakeAI, boss_essence_of_suffering, boss_lich_king_toc, boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI, npc_apothecary_genericAI, npc_annhylde_the_caller::npc_annhylde_the_callerAI, npc_glob_of_viscidus::npc_glob_of_viscidusAI, npc_freed_protodrake::npc_freed_protodrakeAI, npc_milos_gyro::npc_milos_gyro_AI, npc_barrett_toc, npc_enslaved_proto_drake::npc_enslaved_proto_drakeAI, boss_lord_marrowgar::boss_lord_marrowgarAI, boss_gluth::boss_gluthAI, npc_valarjar_paying_respect_to_odyn, boss_jedoga_shadowseeker, npc_mature_netherwing_drake::npc_mature_netherwing_drakeAI, npc_hive_zara_larva::npc_hive_zara_larvaAI, npc_ichor_globule::npc_ichor_globuleAI, boss_shade_of_akama, npc_corrupted_soul_fragment::npc_corrupted_soul_fragmentAI, boss_felmyst::boss_felmystAI, boss_kalecgos, boss_alar::boss_alarAI, boss_rend_blackhand::boss_rend_blackhandAI, npc_feasting_valarjar, npc_azure_ring_captain::npc_azure_ring_captainAI, npc_sharpbeak::npc_sharpbeak_AI, boss_onyxia::boss_onyxiaAI, npc_onyx_flamecaller::npc_onyx_flamecallerAI, npc_drakkari_invader::npc_drakkari_invaderAI, boss_nightbane::boss_nightbaneAI, boss_sapphiron::boss_sapphironAI, boss_volkhan::boss_volkhanAI, boss_eadric::boss_eadricAI, boss_twin_baseAI, dummy_dragonAI, boss_anraphet::boss_anraphetAI, boss_hadronox::boss_hadronoxAI, npc_zelfrax::npc_zelfraxAI, npc_verdisa_beglaristrasz_eternos::npc_verdisa_beglaristrasz_eternosAI, npc_voljin_zulaman::npc_voljin_zulamanAI, npc_released_offspring_harkoa::npc_released_offspring_harkoaAI, boss_the_lurker_below::boss_the_lurker_belowAI, boss_slabhide::boss_slabhideAI, npc_announcer_toc5::npc_announcer_toc5AI, boss_mr_smite::boss_mr_smiteAI, npc_snufflenose_gopher::npc_snufflenose_gopherAI, npc_commander_eligor_dawnbringer::npc_commander_eligor_dawnbringerAI, boss_jaraxxus, boss_high_priestess_azil::boss_high_priestess_azilAI, npc_sc_millhouse_manastorm::npc_sc_millhouse_manastormAI, boss_ymiron::boss_ymironAI, npc_mortimer_moloch, boss_warchief_kargath_bladefist::boss_warchief_kargath_bladefistAI, boss_garfrost::boss_garfrostAI, boss_selin_fireheart::boss_selin_fireheartAI, npc_unworthy_initiate::npc_unworthy_initiateAI, npc_belnistrasz::npc_belnistraszAI, boss_kirtonos_the_herald::boss_kirtonos_the_heraldAI, boss_alizabal::boss_alizabalAI, npc_warden_thelwater, npc_danica_the_reclaimer, SmartAI, npc_nether_drake::npc_nether_drakeAI, boss_ayamiss::boss_ayamissAI, boss_saviana_ragefire::boss_saviana_ragefireAI, boss_erekem::boss_erekemAI, npc_lazy_peon::npc_lazy_peonAI, npc_kalecgos::npc_kalecgosAI, npc_argent_valiant::npc_argent_valiantAI, npc_eagle_spirit::npc_eagle_spirit_AI, npc_omen::npc_omenAI, EscortAI, FollowerAI, and PetAI.

129 { }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ OnCharmed()

void CreatureAI::OnCharmed ( bool  apply)
overridevirtual

Implements UnitAI.

Reimplemented in npc_gunship_cannon::npc_gunship_cannonAI, npc_king_jokkum_vehicle::npc_king_jokkum_vehicleAI, npc_eye_of_acherus::npc_eye_of_acherusAI, npc_icefang::npc_icefangAI, npc_dk_understudy::npc_dk_understudyAI, and SmartAI.

37 {
38  if (apply)
39  {
40  me->NeedChangeAI = true;
41  me->IsAIEnabled = false;
42  }
43 }
bool IsAIEnabled
Definition: Unit.h:1744
R apply(R(*func)(Ts...), apply_tuple_type< Ts... > &&args)
Definition: advstd.h:37
Creature *const me
Definition: CreatureAI.h:52
bool NeedChangeAI
Definition: Unit.h:1744
+ Here is the caller graph for this function:

◆ OnSpellCastInterrupt()

virtual void CreatureAI::OnSpellCastInterrupt ( SpellInfo const *  )
inlinevirtual
134 { }
+ Here is the caller graph for this function:

◆ OnSpellClick()

virtual void CreatureAI::OnSpellClick ( Unit ,
bool   
)
inlinevirtual

Reimplemented in npc_descend_into_madness::npc_descend_into_madnessAI, npc_dream_portal::npc_dream_portalAI, boss_flame_leviathan_overload_device::boss_flame_leviathan_overload_deviceAI, SmartAI, and npc_whisperwind_lasher::npc_whisperwind_lasherAI.

203 { }
+ Here is the caller graph for this function:

◆ OnSuccessfulSpellCast()

virtual void CreatureAI::OnSuccessfulSpellCast ( SpellInfo const *  )
inlinevirtual

Reimplemented in boss_garothi_worldbreaker.

137 { }

◆ OwnerAttacked()

virtual void CreatureAI::OwnerAttacked ( Unit target)
inlinevirtual

Reimplemented in PetAI.

151 { _OnOwnerCombatInteraction(target); }
void _OnOwnerCombatInteraction(Unit *target)
Definition: CreatureAI.cpp:135

◆ OwnerAttackedBy()

virtual void CreatureAI::OwnerAttackedBy ( Unit attacker)
inlinevirtual

Reimplemented in PetAI.

148 { _OnOwnerCombatInteraction(attacker); }
void _OnOwnerCombatInteraction(Unit *target)
Definition: CreatureAI.cpp:135

◆ PassengerBoarded()

◆ QuestAccept()

virtual void CreatureAI::QuestAccept ( Player ,
Quest const *   
)
inlinevirtual

Reimplemented in npc_bonker_togglevolt::npc_bonker_togglevoltAI, npc_mootoo_the_younger::npc_mootoo_the_youngerAI, npc_doctor::npc_doctorAI, npc_earthmender_wilda::npc_earthmender_wildaAI, npc_lurgglbr::npc_lurgglbrAI, npc_maxx_a_million_escort::npc_maxx_a_million_escortAI, npc_wizzlecrank_shredder::npc_wizzlecrank_shredderAI, npc_kurenai_captive::npc_kurenai_captiveAI, npc_ranshalla::npc_ranshallaAI, npc_bessy::npc_bessyAI, npc_daegarn::npc_daegarnAI, npc_tooga::npc_toogaAI, npc_demolitionist_legoso::npc_demolitionist_legosoAI, npc_magwin::npc_magwinAI, npc_akuno::npc_akunoAI, npc_koltira_deathweaver::npc_koltira_deathweaverAI, npc_chicken_cluck::npc_chicken_cluckAI, npc_isla_starmane::npc_isla_starmaneAI, npc_wounded_blood_elf::npc_wounded_blood_elfAI, npc_apothecary_hanes::npc_Apothecary_HanesAI, npc_OOX17::npc_OOX17AI, npc_muglash::npc_muglashAI, npc_kayra_longmane::npc_kayra_longmaneAI, npc_maghar_captive::npc_maghar_captiveAI, npc_emily::npc_emilyAI, SmartAI, npc_danica_the_reclaimer, npc_engineer_helice::npc_engineer_heliceAI, npc_gilthares::npc_giltharesAI, npc_mikhail::npc_mikhailAI, npc_private_hendel::npc_private_hendelAI, npc_belnistrasz::npc_belnistraszAI, npc_ranger_lilatha::npc_ranger_lilathaAI, npc_deathstalker_erland::npc_deathstalker_erlandAI, npc_professor_phizzlethorpe::npc_professor_phizzlethorpeAI, npc_injured_goblin::npc_injured_goblinAI, npc_ruul_snowhoof::npc_ruul_snowhoofAI, npc_oox09hl::npc_oox09hlAI, and npc_willix::npc_willixAI.

187 { }
+ Here is the caller graph for this function:

◆ QuestReward()

virtual void CreatureAI::QuestReward ( Player ,
Quest const *  ,
LootItemType  ,
uint32   
)
inlinevirtual

Reimplemented in npc_the_etymidian::npc_the_etymidianAI, npc_rocknot::npc_rocknotAI, npc_chicken_cluck::npc_chicken_cluckAI, boss_apothecary_hummel::boss_apothecary_hummelAI, npc_lady_sylvanas_windrunner::npc_lady_sylvanas_windrunnerAI, and SmartAI.

190 { }
+ Here is the caller graph for this function:

◆ ReceiveEmote()

virtual void CreatureAI::ReceiveEmote ( Player ,
uint32   
)
inlinevirtual

◆ SetBoundary()

void CreatureAI::SetBoundary ( CreatureBoundary const *  boundary,
bool  negativeBoundaries = false 
)
345 {
346  _boundary = boundary;
347  _negateBoundary = negateBoundaries;
349 }
bool _negateBoundary
Definition: CreatureAI.h:230
Creature *const me
Definition: CreatureAI.h:52
void DoImmediateBoundaryCheck()
Definition: Creature.h:267
CreatureBoundary const * _boundary
Definition: CreatureAI.h:229
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SpellHit() [1/2]

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

Reimplemented in npc_shadowmoon_tuber_node::npc_shadowmoon_tuber_nodeAI, npc_sif::npc_sifAI, npc_imprisoned_beryl_sorcerer::npc_imprisoned_beryl_sorcererAI, npc_arcane_overload::npc_arcane_overloadAI, npc_beryl_sorcerer::npc_beryl_sorcererAI, npc_razorscale_harpoon_fire_state, npc_argent_captainAI, npc_crate_helper::npc_crate_helperAI, npc_tirion_fordring_tft::npc_tirion_fordringAI, boss_julianne::boss_julianneAI, npc_garments_of_quests::npc_garments_of_questsAI, npc_portal_eoe::npc_portal_eoeAI, boss_vx_001::boss_vx_001AI, npc_saurfang_event::npc_saurfang_eventAI, npc_toasty_fire::npc_toasty_fireAI, boss_yogg_saron::boss_yogg_saronAI, npc_storm_cloud::npc_storm_cloudAI, npc_muradin_bronzebeard_icc::npc_muradin_bronzebeard_iccAI, npc_gothik_trigger::npc_gothik_triggerAI, npc_pool_of_tar::npc_pool_of_tarAI, npc_rocket_propelled_warhead::npc_rocket_propelled_warheadAI, npc_feugen::npc_feugenAI, npc_injured_patient::npc_injured_patientAI, boss_sister_svalna::boss_sister_svalnaAI, npc_pulsing_pumpkin::npc_pulsing_pumpkinAI, boss_the_lich_king::boss_the_lich_kingAI, npc_living_constellation::npc_living_constellationAI, npc_salanar_the_horseman::npc_salanar_the_horsemanAI, npc_frostbrood_skytalon::npc_frostbrood_skytalonAI, npc_wild_wyrm::npc_wild_wyrmAI, npc_putricide_oozeAI, npc_cult_adherent::npc_cult_adherentAI, npc_high_overlord_saurfang_icc::npc_high_overlord_saurfangAI, npc_vics_flying_machine::npc_vics_flying_machineAI, boss_malygos::boss_malygosAI, npc_open_portal_target_toc, npc_torturer_lecraft::npc_torturer_lecraftAI, npc_cult_fanatic::npc_cult_fanaticAI, npc_stalagg::npc_stalaggAI, npc_venture_co_straggler::npc_venture_co_stragglerAI, boss_headless_horseman::boss_headless_horsemanAI, npc_earthen_ring_flamecaller::npc_earthen_ring_flamecallerAI, npc_wyrmrest_defender::npc_wyrmrest_defenderAI, BloodPrincesBossAI, boss_thorim::boss_thorimAI, npc_death_knight_initiate::npc_death_knight_initiateAI, npc_dragonmaw_peon::npc_dragonmaw_peonAI, boss_shade_of_aran::boss_aranAI, boss_razorscale, boss_twilight_halion::boss_twilight_halionAI, npc_wounded_skirmisher::npc_wounded_skirmisherAI, boss_sathrovarr, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, npc_grauf::npc_graufAI, npc_molten_golem::npc_molten_golemAI, npc_enslaved_netherwing_drake::npc_enslaved_netherwing_drakeAI, npc_akama_shade, npc_gatewatcher_petAI, boss_valithria_dreamwalker::boss_valithria_dreamwalkerAI, boss_strawman::boss_strawmanAI, boss_anub_arak::boss_anub_arakAI, advisorbase_ai, npc_muru_portal::npc_muru_portalAI, boss_flame_leviathan::boss_flame_leviathanAI, npc_jungle_punch_target::npc_jungle_punch_targetAI, boss_halion::boss_halionAI, npc_head::npc_headAI, npc_outhouse_bunny::npc_outhouse_bunnyAI, boss_krik_thir::boss_krik_thirAI, boss_urom::boss_uromAI, npc_archaedas_minions::npc_archaedas_minionsAI, boss_kelthuzad::boss_kelthuzadAI, npc_ruby_emerald_amber_drake::npc_ruby_emerald_amber_drakeAI, npc_mature_netherwing_drake::npc_mature_netherwing_drakeAI, npc_ichor_globule::npc_ichor_globuleAI, npc_spectral_ghostly_citizen::npc_spectral_ghostly_citizenAI, boss_shade_of_akama, npc_tournament_training_dummy::npc_tournament_training_dummyAI, npc_brunnhildar_prisoner::npc_brunnhildar_prisonerAI, npc_taskmaster_fizzule::npc_taskmaster_fizzuleAI, boss_attumen::boss_attumenAI, boss_alar::boss_alarAI, boss_felmyst::boss_felmystAI, boss_onyxia::boss_onyxiaAI, npc_wisp_invis::npc_wisp_invisAI, boss_magtheridon::boss_magtheridonAI, boss_gal_darah::boss_gal_darahAI, boss_twinemperorsAI, npc_infernal_attacker::npc_infernal_attackerAI, boss_scarlet_commander_mograine::boss_scarlet_commander_mograineAI, netherspite_infernal::netherspite_infernalAI, npc_wounded_milita::npc_wounded_militaAI, boss_viscidus::boss_viscidusAI, boss_warlord_kalithresh::boss_warlord_kalithreshAI, boss_ionar::boss_ionarAI, npc_restless_soul::npc_restless_soulAI, npc_captured_rageclaw::npc_captured_rageclawAI, npc_medivh_bm::npc_medivh_bmAI, boss_pyroguard_emberseer::boss_pyroguard_emberseerAI, boss_archaedas::boss_archaedasAI, boss_moorabi::boss_moorabiAI, boss_faerlina::boss_faerlinaAI, npc_nether_drake::npc_nether_drakeAI, boss_xevozz::boss_xevozzAI, boss_ossirian::boss_ossirianAI, npc_draenei_survivor::npc_draenei_survivorAI, SmartAI, boss_razuvious::boss_razuviousAI, boss_terestian_illhoof::boss_terestianAI, boss_najentus, npc_sinkhole_kill_credit::npc_sinkhole_kill_creditAI, npc_drakuru_shackles::npc_drakuru_shacklesAI, npc_omen::npc_omenAI, npc_lazy_peon::npc_lazy_peonAI, npc_crusade_persuaded::npc_crusade_persuadedAI, npc_aged_dying_ancient_kodo::npc_aged_dying_ancient_kodoAI, npc_pet_dk_ebon_gargoyle::npc_pet_dk_ebon_gargoyleAI, boss_ioc_horde_alliance::boss_ioc_horde_allianceAI, and npc_wounded_coldridge_mountaineer::npc_wounded_coldridge_mountaineerAI.

116 { }
+ Here is the caller graph for this function:

◆ SpellHit() [2/2]

virtual void CreatureAI::SpellHit ( GameObject ,
SpellInfo const *   
)
inlinevirtual
117 { }

◆ SpellHitTarget() [1/2]

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

Reimplemented in npc_unstable_sun_beam::npc_unstable_sun_beamAI, boss_sister_svalna::boss_sister_svalnaAI, npc_simon_bunny::npc_simon_bunnyAI, npc_vengeful_shade::npc_vengeful_shadeAI, boss_the_lich_king::boss_the_lich_kingAI, npc_anub_ar_skirmisher::npc_anub_ar_skirmisherAI, boss_sara::boss_saraAI, npc_putricide_oozeAI, boss_four_horsemen_sir::boss_four_horsemen_sirAI, npc_shadow_image::npc_shadow_imageAI, npc_haiphoon::npc_haiphoonAI, boss_headless_horseman::boss_headless_horsemanAI, boss_thorim::boss_thorimAI, boss_four_horsemen_thane::boss_four_horsemen_thaneAI, npc_kurenai_captive::npc_kurenai_captiveAI, boss_flame_leviathan::boss_flame_leviathanAI, boss_lady_deathwhisper::boss_lady_deathwhisperAI, boss_four_horsemen_baron::boss_four_horsemen_baronAI, boss_alythess::boss_alythessAI, boss_sindragosa::boss_sindragosaAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, boss_lethon::boss_lethonAI, boss_drakkari_elemental::boss_drakkari_elementalAI, boss_krik_thir::boss_krik_thirAI, npc_shard_of_torment, boss_onyxia::boss_onyxiaAI, boss_archmage_arugal::boss_archmage_arugalAI, boss_devourer_of_souls::boss_devourer_of_soulsAI, boss_svala::boss_svalaAI, boss_general_vezax::boss_general_vezaxAI, npc_azure_ring_captain::npc_azure_ring_captainAI, boss_sapphiron::boss_sapphironAI, boss_rotface::boss_rotfaceAI, boss_garfrost::boss_garfrostAI, boss_sacrolash::boss_sacrolashAI, boss_festergut::boss_festergutAI, boss_ymiron::boss_ymironAI, npc_maghar_captive::npc_maghar_captiveAI, boss_gruul::boss_gruulAI, boss_volazj::boss_volazjAI, boss_nazan::boss_nazanAI, SmartAI, and boss_grobbulus::boss_grobbulusAI.

120 { }
+ Here is the caller graph for this function:

◆ SpellHitTarget() [2/2]

virtual void CreatureAI::SpellHitTarget ( GameObject ,
SpellInfo const *   
)
inlinevirtual
121 { }

◆ SummonedCreatureDespawn()

◆ SummonedCreatureDies()

◆ SummonedGameobjectDespawn()

virtual void CreatureAI::SummonedGameobjectDespawn ( GameObject )
inlinevirtual
105 { }
+ Here is the caller graph for this function:

◆ Talk()

void CreatureAI::Talk ( uint8  id,
WorldObject const *  whisperTarget = nullptr 
)
60 {
61  sCreatureTextMgr->SendChat(me, id, whisperTarget);
62 }
Creature *const me
Definition: CreatureAI.h:52
#define sCreatureTextMgr
Definition: CreatureTextMgr.h:116

◆ TriggerAlert()

void CreatureAI::TriggerAlert ( Unit const *  who) const
146 {
147  // If there's no target, or target isn't a player do nothing
148  if (!who || who->GetTypeId() != TYPEID_PLAYER)
149  return;
150 
151  // If this unit isn't an NPC, is already distracted, is fighting, is confused, stunned or fleeing, do nothing
153  return;
154 
155  // Only alert for hostiles!
157  return;
158 
159  // Send alert sound (if any) for this creature
161 
162  // Face the unit (stealthed player) and set distracted state for 5 seconds
164  me->StopMoving();
165  me->SetFacingTo(me->GetAngle(who));
166 }
void SetFacingTo(float const ori, bool force=true)
Definition: Unit.cpp:12308
bool IsCivilian() const
Definition: Creature.h:96
Definition: SharedDefines.h:5666
TypeID GetTypeId() const
Definition: Object.h:167
float GetAngle(Position const *pos) const
Definition: Position.cpp:85
Definition: Unit.h:239
MotionMaster * GetMotionMaster()
Definition: Unit.h:1691
Definition: ObjectGuid.h:39
Definition: Unit.h:247
bool IsEngaged() const
Definition: Unit.h:1090
Definition: UnitDefines.h:370
Definition: Unit.h:248
Creature *const me
Definition: CreatureAI.h:52
bool HasUnitState(const uint32 f) const
Definition: Unit.h:830
bool _IsTargetAcceptable(Unit const *target) const
Definition: Creature.cpp:2539
Definition: Common.h:68
bool HasReactState(ReactStates state) const
Definition: Creature.h:112
void SendAIReaction(AiReaction reactionType)
Definition: Creature.cpp:2433
Definition: ObjectGuid.h:40
bool IsHostileTo(WorldObject const *target) const
Definition: Object.cpp:2595
Definition: Unit.h:243
void MoveDistract(uint32 time)
Definition: MotionMaster.cpp:679
void StopMoving()
Definition: Unit.cpp:9788
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ UpdateVictim()

bool CreatureAI::UpdateVictim ( )
protected
198 {
199  if (!me->IsEngaged())
200  return false;
201 
203  {
204  if (Unit* victim = me->SelectVictim())
205  if (!me->IsFocusing(nullptr, true) && victim != me->GetVictim())
206  AttackStart(victim);
207 
208  return me->GetVictim() != nullptr;
209  }
210  else if (!me->IsInCombat())
211  {
213  return false;
214  }
215  else if (me->GetVictim())
216  me->AttackStop();
217 
218  return true;
219 }
bool AttackStop()
Definition: Unit.cpp:5516
virtual void EnterEvadeMode(EvadeReason why=EVADE_REASON_OTHER)
Definition: CreatureAI.cpp:168
bool IsInCombat() const
Definition: Unit.h:1108
bool IsEngaged() const
Definition: Unit.h:1090
Definition: UnitDefines.h:370
Creature *const me
Definition: CreatureAI.h:52
bool IsFocusing(Spell const *focusSpell=nullptr, bool withDelay=false) override
Definition: Creature.cpp:3261
Definition: CreatureAI.h:63
Unit * GetVictim() const
Definition: Unit.h:813
bool HasReactState(ReactStates state) const
Definition: Creature.h:112
Unit * SelectVictim()
Definition: Creature.cpp:1229
Definition: Unit.h:736
virtual void AttackStart(Unit *)
Definition: UnitAI.cpp:31
+ Here is the call graph for this function:

◆ VisualizeBoundary()

int32 CreatureAI::VisualizeBoundary ( uint32  duration,
Unit owner = nullptr,
bool  fill = false 
) const
254 {
255  typedef std::pair<int32, int32> coordinate;
256 
257  if (!owner)
258  return -1;
259 
260  if (!_boundary || _boundary->empty())
262 
263  std::queue<coordinate> Q;
264  std::unordered_set<coordinate> alreadyChecked;
265  std::unordered_set<coordinate> outOfBounds;
266 
267  Position startPosition = owner->GetPosition();
268  if (!IsInBoundary(&startPosition))
269  { // fall back to creature position
270  startPosition = me->GetPosition();
271  if (!IsInBoundary(&startPosition))
272  { // fall back to creature home position
273  startPosition = me->GetHomePosition();
274  if (!IsInBoundary(&startPosition))
276  }
277  }
278  float spawnZ = startPosition.GetPositionZ() + BOUNDARY_VISUALIZE_SPAWN_HEIGHT;
279 
280  bool boundsWarning = false;
281  Q.push({ 0,0 });
282  while (!Q.empty())
283  {
284  coordinate front = Q.front();
285  bool hasOutOfBoundsNeighbor = false;
286  for (coordinate off : std::initializer_list<coordinate>{{1,0}, {0,1}, {-1,0}, {0,-1}})
287  {
288  coordinate next(front.first + off.first, front.second + off.second);
290  {
291  boundsWarning = true;
292  continue;
293  }
294  if (alreadyChecked.find(next) == alreadyChecked.end()) // never check a coordinate twice
295  {
296  Position nextPos(startPosition.GetPositionX() + next.first*BOUNDARY_VISUALIZE_STEP_SIZE, startPosition.GetPositionY() + next.second*BOUNDARY_VISUALIZE_STEP_SIZE, startPosition.GetPositionZ());
297  if (IsInBoundary(&nextPos))
298  Q.push(next);
299  else
300  {
301  outOfBounds.insert(next);
302  hasOutOfBoundsNeighbor = true;
303  }
304  alreadyChecked.insert(next);
305  }
306  else
307  if (outOfBounds.find(next) != outOfBounds.end())
308  hasOutOfBoundsNeighbor = true;
309  }
310  if (fill || hasOutOfBoundsNeighbor)
311  if (TempSummon* point = owner->SummonCreature(BOUNDARY_VISUALIZE_CREATURE, Position(startPosition.GetPositionX() + front.first*BOUNDARY_VISUALIZE_STEP_SIZE, startPosition.GetPositionY() + front.second*BOUNDARY_VISUALIZE_STEP_SIZE, spawnZ), TEMPSUMMON_TIMED_DESPAWN, duration * IN_MILLISECONDS))
312  {
313  point->SetObjectScale(BOUNDARY_VISUALIZE_CREATURE_SCALE);
314  point->AddUnitFlag(UNIT_FLAG_STUNNED);
315  point->SetImmuneToAll(true);
316  if (!hasOutOfBoundsNeighbor)
317  point->AddUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
318  }
319  Q.pop();
320  }
321  return boundsWarning ? LANG_CREATURE_MOVEMENT_MAYBE_UNBOUNDED : 0;
322 }
Definition: TemporarySummon.h:43
Definition: UnitDefines.h:144
Definition: Language.h:1153
const float BOUNDARY_VISUALIZE_SPAWN_HEIGHT
Definition: CreatureAI.cpp:252
const int8 BOUNDARY_VISUALIZE_STEP_SIZE
Definition: CreatureAI.cpp:250
const uint32 BOUNDARY_VISUALIZE_CREATURE
Definition: CreatureAI.cpp:248
float GetPositionY() const
Definition: Position.h:102
Creature *const me
Definition: CreatureAI.h:52
bool IsInBoundary(Position const *who=nullptr) const
Definition: CreatureAI.cpp:324
Definition: Language.h:1152
Definition: Common.h:68
void GetHomePosition(float &x, float &y, float &z, float &ori) const
Definition: Creature.h:295
Definition: UnitDefines.h:137
const float BOUNDARY_VISUALIZE_CREATURE_SCALE
Definition: CreatureAI.cpp:249
float GetPositionZ() const
Definition: Position.h:103
TempSummon * SummonCreature(uint32 entry, Position const &pos, TempSummonType despawnType=TEMPSUMMON_MANUAL_DESPAWN, uint32 despawnTime=0, uint32 vehId=0, ObjectGuid privateObjectOwner=ObjectGuid::Empty)
Definition: Object.cpp:1878
float GetPositionX() const
Definition: Position.h:101
CreatureBoundary const * _boundary
Definition: CreatureAI.h:229
Definition: Position.h:28
void GetPosition(float &x, float &y) const
Definition: Position.h:106
const int32 BOUNDARY_VISUALIZE_FAILSAFE_LIMIT
Definition: CreatureAI.cpp:251
Definition: ObjectDefines.h:61
Definition: Language.h:1154
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ WaypointPathEnded()

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

Reimplemented in SmartAI.

197 { }
+ Here is the caller graph for this function:

◆ WaypointPathStarted()

virtual void CreatureAI::WaypointPathStarted ( uint32  )
inlinevirtual

== Waypoints system =============================

Reimplemented in SmartAI.

194 { }
+ Here is the caller graph for this function:

◆ WaypointReached()

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

Reimplemented in npc_bonker_togglevolt::npc_bonker_togglevoltAI, npc_mootoo_the_younger::npc_mootoo_the_youngerAI, npc_gargoyle::npc_gargoyleAI, npc_scarlet_miner::npc_scarlet_minerAI, npc_frost_wyrm::npc_frost_wyrmAI, npc_fel_stalker::npc_fel_stalkerAI, npc_crok_scourgebane::npc_crok_scourgebaneAI, npc_crypt_fiend::npc_crypt_fiendAI, violet_hold_trashAI, npc_banshee::npc_bansheeAI, npc_thassarian::npc_thassarianAI, npc_necromancer::npc_necromancerAI, npc_demolitionist_legoso::npc_demolitionist_legosoAI, npc_ghoul::npc_ghoulAI, npc_earthmender_wilda::npc_earthmender_wildaAI, npc_lurgglbr::npc_lurgglbrAI, npc_maxx_a_million_escort::npc_maxx_a_million_escortAI, npc_taretha::npc_tarethaAI, npc_abomination::npc_abominationAI, npc_rocknot::npc_rocknotAI, npc_wizzlecrank_shredder::npc_wizzlecrank_shredderAI, npc_argent_soldier::npc_argent_soldierAI, npc_bessy::npc_bessyAI, npc_kurenai_captive::npc_kurenai_captiveAI, npc_highlord_darion_mograine::npc_highlord_darion_mograineAI, npc_giant_infernal::npc_giant_infernalAI, npc_arthas::npc_arthasAI, npc_magwin::npc_magwinAI, npc_ranshalla::npc_ranshallaAI, npc_akuno::npc_akunoAI, npc_brann_hos::npc_brann_hosAI, npc_plaguehound_tracker::npc_plaguehound_trackerAI, npc_wounded_blood_elf::npc_wounded_blood_elfAI, npc_isla_starmane::npc_isla_starmaneAI, npc_muglash::npc_muglashAI, npc_koltira_deathweaver::npc_koltira_deathweaverAI, npc_blastmaster_emi_shortfuse::npc_blastmaster_emi_shortfuseAI, npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, generic_vehicleAI_toc5::generic_vehicleAI_toc5AI, npc_morridune::npc_morriduneAI, npc_grimstone::npc_grimstoneAI, npc_apothecary_hanes::npc_Apothecary_HanesAI, npc_OOX17::npc_OOX17AI, npc_skywing::npc_skywingAI, npc_barnes::npc_barnesAI, npc_kayra_longmane::npc_kayra_longmaneAI, npc_ancestral_wolf::npc_ancestral_wolfAI, hyjalAI, npc_cameron, npc_maghar_captive::npc_maghar_captiveAI, boss_azgalor::boss_azgalorAI, npc_gilthares::npc_giltharesAI, boss_anetheron::boss_anetheronAI, npc_disciple_of_naralex::npc_disciple_of_naralexAI, boss_kazrogal::boss_kazrogalAI, boss_rage_winterchill::boss_rage_winterchillAI, npc_ruul_snowhoof::npc_ruul_snowhoofAI, npc_engineer_helice::npc_engineer_heliceAI, npc_oox09hl::npc_oox09hlAI, npc_kservant::npc_kservantAI, npc_shadowfang_prisoner::npc_shadowfang_prisonerAI, npc_tapoke_slim_jahn::npc_tapoke_slim_jahnAI, npc_custodian_of_time::npc_custodian_of_timeAI, npc_emily::npc_emilyAI, SmartAI, npc_professor_phizzlethorpe::npc_professor_phizzlethorpeAI, npc_ranger_lilatha::npc_ranger_lilathaAI, npc_deathstalker_erland::npc_deathstalker_erlandAI, npc_willix::npc_willixAI, and npc_injured_goblin::npc_injured_goblinAI.

196 { }
+ Here is the caller graph for this function:

◆ WaypointStarted()

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

Reimplemented in npc_crok_scourgebane::npc_crok_scourgebaneAI, npc_wizzlecrank_shredder::npc_wizzlecrank_shredderAI, npc_oox09hl::npc_oox09hlAI, and SmartAI.

195 { }
+ Here is the caller graph for this function:

Member Data Documentation

◆ _boundary

CreatureBoundary const* CreatureAI::_boundary
protected

◆ _negateBoundary

bool CreatureAI::_negateBoundary
protected

◆ m_MoveInLineOfSight_locked

bool CreatureAI::m_MoveInLineOfSight_locked
private

◆ me

Creature* const CreatureAI::me
protected

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