TrinityCore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
CreatureAI Class Reference

#include <CreatureAI.h>

Public Types

enum  EvadeReason { EVADE_REASON_NO_HOSTILES, EVADE_REASON_BOUNDARY, EVADE_REASON_SEQUENCE_BREAK, EVADE_REASON_OTHER }
 

Public Member Functions

void Talk (uint8 id, WorldObject const *whisperTarget=nullptr)
 
 CreatureAI (Creature *creature)
 
virtual ~CreatureAI ()
 
void MoveInLineOfSight_Safe (Unit *who)
 == Reactions At ================================= More...
 
void TriggerAlert (Unit const *who) const
 
virtual bool CanRespawn ()
 
virtual void EnterEvadeMode (EvadeReason why=EVADE_REASON_OTHER)
 
virtual void EnterCombat (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 SpellHit (Unit *, SpellInfo const *)
 
virtual void SpellHitTarget (Unit *, SpellInfo const *)
 
virtual void AttackedBy (Unit *)
 
virtual bool IsEscorted () const
 
virtual void JustRespawned ()
 
virtual void MovementInform (uint32, uint32)
 
void OnCharmed (bool apply) override
 
virtual void JustReachedHome ()
 
void DoZoneInCombat (Creature *creature=NULL, float maxRangeToNearestTarget=50.0f)
 
virtual void ReceiveEmote (Player *, uint32)
 
virtual void OwnerAttackedBy (Unit *)
 
virtual void OwnerAttacked (Unit *)
 
virtual void CorpseRemoved (uint32 &)
 == Triggered Actions Requested ================== More...
 
virtual void PassengerBoarded (Unit *, int8, bool)
 == Fields ======================================= More...
 
virtual void OnSpellClick (Unit *, bool &)
 
virtual bool CanSeeAlways (WorldObject const *)
 
int32 VisualizeBoundary (uint32 duration, Unit *owner=nullptr, bool fill=false) const
 
virtual bool CheckInRoom ()
 
CreatureBoundary constGetBoundary () 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, int32=0)
 
virtual ObjectGuid GetGUID (int32=0) const
 
UnitSelectTarget (SelectAggroTarget targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, int32 aura=0)
 
template<class PREDICATE >
UnitSelectTarget (SelectAggroTarget targetType, uint32 position, PREDICATE const &predicate)
 
void SelectTargetList (std::list< Unit * > &targetList, uint32 num, SelectAggroTarget targetType, float dist=0.0f, bool playerOnly=false, int32 aura=0)
 
template<class PREDICATE >
void SelectTargetList (std::list< Unit * > &targetList, PREDICATE const &predicate, uint32 maxTargets, SelectAggroTarget targetType)
 
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, bool triggered=false)
 
void DoCastVictim (uint32 spellId, bool triggered=false)
 
void DoCastAOE (uint32 spellId, bool triggered=false)
 
void DoMeleeAttackIfReady ()
 
bool DoSpellAttackIfReady (uint32 spellId)
 
virtual void sGossipHello (Player *)
 
virtual void sGossipSelect (Player *, uint32, uint32)
 
virtual void sGossipSelectCode (Player *, uint32, uint32, char const *)
 
virtual void sQuestAccept (Player *, Quest const *)
 
virtual void sQuestSelect (Player *, Quest const *)
 
virtual void sQuestReward (Player *, Quest const *, uint32)
 
virtual bool sOnDummyEffect (Unit *, uint32, SpellEffIndex)
 
virtual void sOnGameEvent (bool, uint16)
 

Protected Member Functions

bool UpdateVictim ()
 
bool UpdateVictimWithGaze ()
 
void SetGazeOn (Unit *target)
 
CreatureDoSummon (uint32 entry, Position const &pos, uint32 despawnTime=30000, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
 
CreatureDoSummon (uint32 entry, WorldObject *obj, float radius=5.0f, uint32 despawnTime=30000, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
 
CreatureDoSummonFlyer (uint32 entry, WorldObject *obj, float flightZ, float radius=5.0f, uint32 despawnTime=30000, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
 
bool CheckBoundary (Position const *who=nullptr) const
 
void SetBoundary (CreatureBoundary const *boundary)
 
virtual void MoveInLineOfSight (Unit *)
 
bool _EnterEvadeMode (EvadeReason why=EVADE_REASON_OTHER)
 

Protected Attributes

Creature *const me
 
CreatureBoundary const_boundary
 
- Protected Attributes inherited from UnitAI
Unit *const me
 

Private Attributes

bool m_MoveInLineOfSight_locked
 

Additional Inherited Members

- Static Public Member Functions inherited from UnitAI
static void FillAISpellInfo ()
 
- Static Public Attributes inherited from UnitAI
static AISpellInfoTypeAISpellInfo
 

Member Enumeration Documentation

Enumerator
EVADE_REASON_NO_HOSTILES 
EVADE_REASON_BOUNDARY 
EVADE_REASON_SEQUENCE_BREAK 
EVADE_REASON_OTHER 
86  {
87  EVADE_REASON_NO_HOSTILES, // the creature's threat list is empty
88  EVADE_REASON_BOUNDARY, // the creature has moved outside its evade boundary
89  EVADE_REASON_SEQUENCE_BREAK, // this is a boss and the pre-requisite encounters for engaging it are not defeated yet
91  };
Definition: CreatureAI.h:89
Definition: CreatureAI.h:88
Definition: CreatureAI.h:90
Definition: CreatureAI.h:87

Constructor & Destructor Documentation

CreatureAI::CreatureAI ( Creature creature)
inlineexplicit
95 : UnitAI(creature), me(creature), _boundary(nullptr), m_MoveInLineOfSight_locked(false) { }
bool m_MoveInLineOfSight_locked
Definition: CreatureAI.h:202
UnitAI(Unit *unit)
Definition: UnitAI.h:123
Creature *const me
Definition: CreatureAI.h:71
CreatureBoundary const * _boundary
Definition: CreatureAI.h:199
virtual CreatureAI::~CreatureAI ( )
inlinevirtual
97 { }

Member Function Documentation

bool CreatureAI::_EnterEvadeMode ( EvadeReason  why = EVADE_REASON_OTHER)
protected
256 {
257  if (!me->IsAlive())
258  return false;
259 
260  // don't remove vehicle auras, passengers aren't supposed to drop off the vehicle
261  // don't remove clone caster on evade (to be verified)
263 
264  // sometimes bosses stuck in combat?
265  me->DeleteThreatList();
266  me->CombatStop(true);
271 
272  if (me->IsInEvadeMode())
273  return false;
274 
275  return true;
276 }
void ResetPlayerDamageReq()
Definition: Creature.h:696
void RemoveAllAurasExceptType(AuraType type)
Definition: Unit.cpp:3997
Definition: SpellAuraDefines.h:307
arena_t NULL
Definition: jemalloc_internal.h:624
bool IsInEvadeMode() const
Definition: Creature.h:520
void SetLootRecipient(Unit *unit)
Definition: Creature.cpp:993
Creature *const me
Definition: CreatureAI.h:71
Definition: SpellAuraDefines.h:296
bool IsAlive() const
Definition: Unit.h:1692
void SetLastDamagedTime(time_t val)
Definition: Unit.h:2217
void DeleteThreatList()
Definition: Unit.cpp:10700
bool LoadCreaturesAddon()
Definition: Creature.cpp:2214
void CombatStop(bool includingCast=false)
Definition: Unit.cpp:7371

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

virtual void CreatureAI::AttackedBy ( Unit )
inlinevirtual

Reimplemented in npc_private_hendel::npc_private_hendelAI, npc_tapoke_slim_jahn::npc_tapoke_slim_jahnAI, and PetAI.

136 { }

+ Here is the caller graph for this function:

virtual bool CreatureAI::CanRespawn ( )
inlinevirtual
108 { return true; }

+ Here is the caller graph for this function:

virtual bool CreatureAI::CanSeeAlways ( WorldObject const )
inlinevirtual

Reimplemented in GuardAI.

187 { return false; }
bool CreatureAI::CheckBoundary ( Position const who = nullptr) const
protected
354 {
355  if (!who)
356  who = me;
357 
358  if (_boundary)
359  for (CreatureBoundary::const_iterator it = _boundary->begin(); it != _boundary->end(); ++it)
360  if (!(*it)->IsWithinBoundary(who))
361  return false;
362 
363  return true;
364 }
Creature *const me
Definition: CreatureAI.h:71
CreatureBoundary const * _boundary
Definition: CreatureAI.h:199

+ Here is the caller graph for this function:

bool CreatureAI::CheckInRoom ( )
virtual

Reimplemented in boss_prince_valanar_icc::boss_prince_valanarAI, boss_prince_taldaram_icc::boss_prince_taldaramAI, boss_prince_keleseth_icc::boss_prince_kelesethAI, boss_galvangar::boss_galvangarAI, and boss_drekthar::boss_drektharAI.

367 {
368  if (CheckBoundary())
369  return true;
370  else
371  {
373  return false;
374  }
375 }
virtual void EnterEvadeMode(EvadeReason why=EVADE_REASON_OTHER)
Definition: CreatureAI.cpp:168
Definition: CreatureAI.h:88
bool CheckBoundary(Position const *who=nullptr) const
Definition: CreatureAI.cpp:353

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

virtual void CreatureAI::CorpseRemoved ( uint32 )
inlinevirtual

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

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

Reimplemented in SmartAI.

176 { }

+ Here is the caller graph for this function:

Creature * CreatureAI::DoSummon ( uint32  entry,
Position const pos,
uint32  despawnTime = 30000,
TempSummonType  summonType = TEMPSUMMON_CORPSE_TIMED_DESPAWN 
)
protected
378 {
379  return me->SummonCreature(entry, pos, summonType, despawnTime);
380 }
Creature *const me
Definition: CreatureAI.h:71
TempSummon * SummonCreature(uint32 id, Position const &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0) const
Definition: Object.cpp:2346

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Creature * CreatureAI::DoSummon ( uint32  entry,
WorldObject obj,
float  radius = 5.0f,
uint32  despawnTime = 30000,
TempSummonType  summonType = TEMPSUMMON_CORPSE_TIMED_DESPAWN 
)
protected
383 {
384  Position pos = obj->GetRandomNearPosition(radius);
385  return me->SummonCreature(entry, pos, summonType, despawnTime);
386 }
Creature *const me
Definition: CreatureAI.h:71
Position GetRandomNearPosition(float radius)
Definition: Object.cpp:2643
Definition: Position.h:27
TempSummon * SummonCreature(uint32 id, Position const &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0) const
Definition: Object.cpp:2346

+ Here is the call graph for this function:

Creature * CreatureAI::DoSummonFlyer ( uint32  entry,
WorldObject obj,
float  flightZ,
float  radius = 5.0f,
uint32  despawnTime = 30000,
TempSummonType  summonType = TEMPSUMMON_CORPSE_TIMED_DESPAWN 
)
protected
389 {
390  Position pos = obj->GetRandomNearPosition(radius);
391  pos.m_positionZ += flightZ;
392  return me->SummonCreature(entry, pos, summonType, despawnTime);
393 }
Creature *const me
Definition: CreatureAI.h:71
Position GetRandomNearPosition(float radius)
Definition: Object.cpp:2643
float m_positionZ
Definition: Position.h:54
Definition: Position.h:27
TempSummon * SummonCreature(uint32 id, Position const &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0) const
Definition: Object.cpp:2346

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void CreatureAI::DoZoneInCombat ( Creature creature = NULL,
float  maxRangeToNearestTarget = 50.0f 
)
48 {
49  if (!creature)
50  creature = me;
51 
52  if (!creature->CanHaveThreatList())
53  return;
54 
55  Map* map = creature->GetMap();
56  if (!map->IsDungeon()) //use IsDungeon instead of Instanceable, in case battlegrounds will be instantiated
57  {
58  TC_LOG_ERROR("misc", "DoZoneInCombat call for map that isn't an instance (creature entry = %d)", creature->GetTypeId() == TYPEID_UNIT ? creature->ToCreature()->GetEntry() : 0);
59  return;
60  }
61 
62  if (!creature->HasReactState(REACT_PASSIVE) && !creature->GetVictim())
63  {
64  if (Unit* nearTarget = creature->SelectNearestTarget(maxRangeToNearestTarget))
65  creature->AI()->AttackStart(nearTarget);
66  else if (creature->IsSummon())
67  {
68  if (Unit* summoner = creature->ToTempSummon()->GetSummoner())
69  {
70  Unit* target = summoner->getAttackerForHelper();
71  if (!target && summoner->CanHaveThreatList() && !summoner->getThreatManager().isThreatListEmpty())
72  target = summoner->getThreatManager().getHostilTarget();
73  if (target && (creature->IsFriendlyTo(summoner) || creature->IsHostileTo(target)))
74  creature->AI()->AttackStart(target);
75  }
76  }
77  }
78 
79  // Intended duplicated check, the code above this should select a victim
80  // If it can't find a suitable attack target then we should error out.
81  if (!creature->HasReactState(REACT_PASSIVE) && !creature->GetVictim())
82  {
83  TC_LOG_ERROR("misc", "DoZoneInCombat called for creature that has empty threat list (creature entry = %u)", creature->GetEntry());
84  return;
85  }
86 
87  Map::PlayerList const& playerList = map->GetPlayers();
88 
89  if (playerList.isEmpty())
90  return;
91 
92  for (Map::PlayerList::const_iterator itr = playerList.begin(); itr != playerList.end(); ++itr)
93  {
94  if (Player* player = itr->GetSource())
95  {
96  if (player->IsGameMaster())
97  continue;
98 
99  if (player->IsAlive())
100  {
101  creature->SetInCombatWith(player);
102  player->SetInCombatWith(creature);
103  creature->AddThreat(player, 0.0f);
104  }
105 
106  /* Causes certain things to never leave the threat list (Priest Lightwell, etc):
107  for (Unit::ControlList::const_iterator itr = player->m_Controlled.begin(); itr != player->m_Controlled.end(); ++itr)
108  {
109  creature->SetInCombatWith(*itr);
110  (*itr)->SetInCombatWith(creature);
111  creature->AddThreat(*itr, 0.0f);
112  }*/
113  }
114  }
115 }
void AddThreat(Unit *victim, float fThreat, SpellSchoolMask schoolMask=SPELL_SCHOOL_MASK_NORMAL, SpellInfo const *threatSpell=NULL)
Definition: Unit.cpp:10691
Map * GetMap() const
Definition: Object.h:543
Definition: Unit.h:1129
Unit * SelectNearestTarget(float dist=0, bool playerOnly=false) const
Definition: Creature.cpp:1944
Definition: ObjectGuid.h:32
bool HasReactState(ReactStates state) const
Definition: Creature.h:504
bool IsDungeon() const
Definition: Map.h:395
iterator begin()
Definition: MapRefManager.h:37
bool CanHaveThreatList(bool skipAliveCheck=false) const
Definition: Unit.cpp:10652
Unit * GetSummoner() const
Definition: TemporarySummon.cpp:37
Unit * getHostilTarget()
Definition: ThreatManager.cpp:459
TempSummon * ToTempSummon()
Definition: Unit.h:2206
Creature *const me
Definition: CreatureAI.h:71
TypeID GetTypeId() const
Definition: Object.h:113
Unit * GetVictim() const
Definition: Unit.h:1379
CreatureAI * AI() const
Definition: Creature.h:525
bool IsFriendlyTo(Unit const *unit) const
Definition: Unit.cpp:7170
Definition: LinkedList.h:141
bool isEmpty() const
Definition: LinkedList.h:102
Definition: Map.h:259
PlayerList const & GetPlayers() const
Definition: Map.h:433
Definition: MapRefManager.h:26
Creature * ToCreature()
Definition: Object.h:194
ThreatManager & getThreatManager()
Definition: Unit.h:1998
bool IsHostileTo(Unit const *unit) const
Definition: Unit.cpp:7165
Unit * getAttackerForHelper() const
Definition: Unit.cpp:7211
uint32 GetEntry() const
Definition: Object.h:107
#define TC_LOG_ERROR(filterType__,...)
Definition: Log.h:207
bool IsSummon() const
Definition: Unit.h:1401
Definition: Unit.h:1305
virtual void AttackStart(Unit *)
Definition: UnitAI.cpp:29
iterator end()
Definition: MapRefManager.h:38
void SetInCombatWith(Unit *enemy)
Definition: Unit.cpp:9840

+ Here is the call graph for this function:

virtual void CreatureAI::EnterCombat ( Unit )
inlinevirtual

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

114 { }
void CreatureAI::EnterEvadeMode ( EvadeReason  why = EVADE_REASON_OTHER)
virtual

Reimplemented in npc_pandaren_monk::npc_pandaren_monkAI, npc_broken_frostmourne::npc_broken_frostmourneAI, npc_gunship_mage::npc_gunship_mageAI, npc_terenas_menethil::npc_terenas_menethilAI, npc_phantom_hallucination::npc_phantom_hallucinationAI, npc_phantom_mage::npc_phantom_mageAI, npc_training_dummy::npc_training_dummyAI, npc_akama_illidan::npc_akama_illidanAI, 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, boss_maiev_shadowsong::boss_maievAI, 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_meteor_strike_initial::npc_meteor_strike_initialAI, boss_vx_001::boss_vx_001AI, npc_tesla::npc_teslaAI, boss_icehowl::boss_icehowlAI, npc_high_overlord_saurfang_igb::npc_high_overlord_saurfang_igbAI, boss_dreadscale::boss_dreadscaleAI, boss_kiljaeden::boss_kiljaedenAI, npc_highlord_darion_mograine::npc_highlord_darion_mograineAI, boss_malygos::boss_malygosAI, gunship_npc_AI, boss_the_lich_king::boss_the_lich_kingAI, npc_gothik_minion::npc_gothik_minionAI, boss_algalon_the_observer::boss_algalon_the_observerAI, boss_twilight_halion::boss_twilight_halionAI, npc_ember_of_alar::npc_ember_of_alarAI, boss_voice_of_yogg_saron::boss_voice_of_yogg_saronAI, boss_fjola::boss_fjolaAI, boss_illidari_councilAI, npc_icefang::npc_icefangAI, boss_drakkari_elemental::boss_drakkari_elementalAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, boss_halion::boss_halionAI, npc_alpha_beam::npc_alpha_beamAI, npc_omega_stance::npc_omega_stanceAI, boss_sindragosa::boss_sindragosaAI, npc_blazing_monstrosity::npc_blazing_monstrosityAI, boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI, npc_mrfloppy::npc_mrfloppyAI, npc_pet_mage_mirror_image::npc_pet_mage_mirror_imageAI, npc_tournament_training_dummy::npc_tournament_training_dummyAI, npc_onyx_flamecaller::npc_onyx_flamecallerAI, boss_doomrel::boss_doomrelAI, boss_viscidus::boss_viscidusAI, npc_eyestalk::npc_eyestalkAI, boss_bjarngrim::boss_bjarngrimAI, boss_tyrannus::boss_tyrannusAI, boss_kalecgos::boss_kalecgosAI, npc_ancestral_wolf::npc_ancestral_wolfAI, boss_gormok::boss_gormokAI, boss_ick::boss_ickAI, boss_ossirian::boss_ossirianAI, boss_rotface::boss_rotfaceAI, boss_entropius::boss_entropiusAI, boss_festergut::boss_festergutAI, boss_brutallus::boss_brutallusAI, boss_ayamiss::boss_ayamissAI, hyjalAI, boss_alizabal::boss_alizabalAI, boss_kirtonos_the_herald::boss_kirtonos_the_heraldAI, boss_attumen::boss_attumenAI, boss_noth::boss_nothAI, SmartAI, boss_skeram::boss_skeramAI, boss_occuthar::boss_occutharAI, boss_buru::boss_buruAI, CritterAI, npc_escortAI, boss_pit_lord_argaloth::boss_pit_lord_argalothAI, NullCreatureAI, boss_thorim::boss_thorimAI, PetAI, FollowerAI, npc_pet_pri_lightwell::npc_pet_pri_lightwellAI, 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 }
bool IsVehicle() const
Definition: Unit.h:1406
void Clear(bool reset=true)
Definition: MotionMaster.h:138
void AddUnitState(uint32 f)
Definition: Unit.h:1394
MotionMaster * GetMotionMaster()
Definition: Unit.h:2101
void MoveTargetedHome()
Definition: MotionMaster.cpp:201
#define TC_LOG_DEBUG(filterType__,...)
Definition: Log.h:198
Definition: MotionMaster.h:61
bool _EnterEvadeMode(EvadeReason why=EVADE_REASON_OTHER)
Definition: CreatureAI.cpp:255
Creature *const me
Definition: CreatureAI.h:71
Unit * GetCharmerOrOwner() const
Definition: Unit.cpp:7627
void Reset(bool evading=false)
Reapplies immunities and reinstalls accessories. Only has effect for creatures.
Definition: Vehicle.cpp:141
Definition: Unit.h:571
Vehicle * GetVehicle() const
Definition: Unit.h:2166
#define PET_FOLLOW_DIST
Definition: PetDefines.h:77
uint32 GetEntry() const
Definition: Object.h:107
virtual void Reset()
Definition: UnitAI.h:132
Definition: Unit.h:1305
virtual float GetFollowAngle() const
Definition: Unit.h:2194
Vehicle * GetVehicleKit() const
Definition: Unit.h:2165
void MoveFollow(Unit *target, float dist, float angle, MovementSlot slot=MOTION_SLOT_ACTIVE)
Definition: MotionMaster.cpp:265

+ Here is the call graph for this function:

CreatureBoundary const* CreatureAI::GetBoundary ( ) const
inline
192 { return _boundary; }
CreatureBoundary const * _boundary
Definition: CreatureAI.h:199
virtual bool CreatureAI::IsEscorted ( ) const
inlinevirtual

Reimplemented in npc_escortAI.

137 { return false; }
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_static_field::npc_static_fieldAI, npc_strangulate_vehicle::npc_strangulate_vehicleAI, 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_constrictor_tentacle::npc_constrictor_tentacleAI, npc_living_ember::npc_living_emberAI, npc_living_inferno::npc_living_infernoAI, npc_guardian_of_yogg_saron::npc_guardian_of_yogg_saronAI, npc_combustion_consumption::npc_combustion_consumptionAI, npc_scarlet_miner::npc_scarlet_minerAI, npc_meteor_strike_flame::npc_meteor_strike_flameAI, 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_bone_spike::npc_bone_spikeAI, npc_spirit_shade::npc_spirit_shadeAI, npc_nether_portal::npc_nether_portalAI, npc_molten_barrage::npc_molten_barrageAI, npc_coldflame::npc_coldflameAI, npc_devout_follower::npc_devout_followerAI, npc_alpha_beam::npc_alpha_beamAI, npc_big_ooze::npc_big_oozeAI, npc_ruby_emerald_amber_drake::npc_ruby_emerald_amber_drakeAI, npc_omega_stance::npc_omega_stanceAI, npc_rock_borer::npc_rock_borerAI, npc_infernal_volcano::npc_infernal_volcanoAI, npc_ice_block::npc_ice_blockAI, npc_little_ooze::npc_little_oozeAI, npc_iron_roots::npc_iron_rootsAI, npc_onyx_flamecaller::npc_onyx_flamecallerAI, npc_corrupted_soul_fragment::npc_corrupted_soul_fragmentAI, npc_flash_freeze::npc_flash_freezeAI, npc_image_belgaristrasz::npc_image_belgaristraszAI, npc_crystal_spike_trigger::npc_crystal_spike_triggerAI, npc_void_sentry::npc_void_sentryAI, npc_eyestalk::npc_eyestalkAI, npc_infernal_attacker::npc_infernal_attackerAI, npc_grobbulus_poison_cloud::npc_grobbulus_poison_cloudAI, boss_kirtonos_the_herald::boss_kirtonos_the_heraldAI, SmartAI, boss_nazan::boss_nazanAI, npc_frost_tomb::npc_frost_tombAI, boss_darkmaster_gandling::boss_darkmaster_gandlingAI, TriggerAI, and boss_gizrul_the_slavener::boss_gizrul_the_slavenerAI.

124 { }

+ Here is the caller graph for this function:

virtual void CreatureAI::JustDied ( Unit )
inlinevirtual

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

117 { }

+ Here is the caller graph for this function:

virtual void CreatureAI::JustReachedHome ( )
inlinevirtual

Reimplemented in npc_valkyr_shadowguard::npc_valkyr_shadowguardAI, boss_romulo::boss_romuloAI, npc_tirion_fordring_tft::npc_tirion_fordringAI, boss_julianne::boss_julianneAI, boss_rouge_toc5::boss_rouge_toc5AI, boss_icehowl::boss_icehowlAI, boss_bigbadwolf::boss_bigbadwolfAI, boss_prince_valanar_icc::boss_prince_valanarAI, boss_sister_svalna::boss_sister_svalnaAI, boss_hunter_toc5::boss_hunter_toc5AI, boss_dreadscale::boss_dreadscaleAI, npc_massive_jormungar::npc_massive_jormungarAI, boss_crone::boss_croneAI, boss_shaman_toc5::boss_shaman_toc5AI, boss_prince_taldaram_icc::boss_prince_taldaramAI, npc_halion_controller::npc_halion_controllerAI, npc_the_lich_king_controller::npc_the_lich_king_controllerAI, boss_roar::boss_roarAI, npc_ferocious_rhino::npc_ferocious_rhinoAI, boss_faction_championsAI, npc_green_dragon_combat_trigger::npc_green_dragon_combat_triggerAI, boss_the_lich_king::boss_the_lich_kingAI, boss_jormungarAI, npc_hellfire_channeler::npc_hellfire_channelerAI, boss_mage_toc5::boss_mage_toc5AI, boss_tinhead::boss_tinheadAI, npc_frenzied_worgen::npc_frenzied_worgenAI, boss_kaelthas::boss_kaelthasAI, boss_archimonde::boss_archimondeAI, boss_fjola::boss_fjolaAI, boss_prince_keleseth_icc::boss_prince_kelesethAI, npc_egg_pile::npc_egg_pileAI, boss_nefarian::boss_nefarianAI, boss_strawman::boss_strawmanAI, BossAI, boss_warrior_toc5::boss_warrior_toc5AI, boss_lady_deathwhisper::boss_lady_deathwhisperAI, npc_ravenous_furbolg::npc_ravenous_furbolgAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, 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_magtheridon::boss_magtheridonAI, boss_blood_council_controller::boss_blood_council_controllerAI, generic_halionAI, boss_palehoof::boss_palehoofAI, boss_anubarak_trial::boss_anubarak_trialAI, boss_skadi::boss_skadiAI, boss_volkhan::boss_volkhanAI, boss_temple_guardian_anhuur::boss_temple_guardian_anhuurAI, boss_gormok::boss_gormokAI, boss_victor_nefarius::boss_victor_nefariusAI, boss_earthrager_ptah::boss_earthrager_ptahAI, npc_harbinger_of_flame::npc_harbinger_of_flameAI, boss_twin_baseAI, npc_dk_understudy::npc_dk_understudyAI, 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_saviana_ragefire::boss_saviana_ragefireAI, boss_general_zarithrian::boss_general_zarithrianAI, boss_jaraxxus::boss_jaraxxusAI, boss_scarlet_commander_mograine::boss_scarlet_commander_mograineAI, boss_anubrekhan::boss_anubrekhanAI, boss_ichoron::boss_ichoronAI, boss_gal_darah::boss_gal_darahAI, boss_xevozz::boss_xevozzAI, boss_faerlina::boss_faerlinaAI, boss_bronjahm::boss_bronjahmAI, boss_razuvious::boss_razuviousAI, boss_erekem::boss_erekemAI, boss_zuramat::boss_zuramatAI, SmartAI, boss_moragg::boss_moraggAI, and boss_lavanthor::boss_lavanthorAI.

148 { }

+ Here is the caller graph for this function:

virtual void CreatureAI::JustSummoned ( Creature )
inlinevirtual

Reimplemented in npc_toc_enh_shaman::npc_toc_enh_shamanAI, npc_phoenix_egg_tk::npc_phoenix_egg_tkAI, 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, 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_hand_of_the_deceiver::npc_hand_of_the_deceiverAI, boss_prince_valanar_icc::boss_prince_valanarAI, npc_hodir_mage::npc_hodir_mageAI, npc_mole_machine_trigger::npc_mole_machine_triggerAI, boss_sara::boss_saraAI, npc_collapsing_star::npc_collapsing_starAI, npc_twilight_eggs::npc_twilight_eggsAI, npc_colonel_jules::npc_colonel_julesAI, npc_earthmender_wilda::npc_earthmender_wildaAI, boss_leviathan_mk_ii::boss_leviathan_mk_iiAI, npc_necromancer::npc_necromancerAI, npc_risen_archmage::npc_risen_archmageAI, boss_the_lich_king::boss_the_lich_kingAI, boss_prince_taldaram_icc::boss_prince_taldaramAI, npc_violet_hold_teleportation_portal_commonAI, npc_creature_generator_akama::npc_creature_generator_akamaAI, npc_akuno::npc_akunoAI, npc_expedition_commander::npc_expedition_commanderAI, boss_kaelthas::boss_kaelthasAI, npc_the_lich_king_controller::npc_the_lich_king_controllerAI, boss_freya::boss_freyaAI, boss_voice_of_yogg_saron::boss_voice_of_yogg_saronAI, npc_halion_controller::npc_halion_controllerAI, npc_wizzlecrank_shredder::npc_wizzlecrank_shredderAI, boss_kiljaeden::boss_kiljaedenAI, npc_bessy::npc_bessyAI, npc_hellfire_channeler::npc_hellfire_channelerAI, npc_kurenai_captive::npc_kurenai_captiveAI, boss_illidan_stormrage::boss_illidan_stormrageAI, npc_sinclari_vh::npc_sinclariAI, npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, npc_blastmaster_emi_shortfuse::npc_blastmaster_emi_shortfuseAI, boss_archimonde::boss_archimondeAI, npc_blessed_banner::npc_blessed_bannerAI, boss_algalon_the_observer::boss_algalon_the_observerAI, boss_prince_keleseth_icc::boss_prince_kelesethAI, npc_kiljaeden_controller::npc_kiljaeden_controllerAI, npc_OOX17::npc_OOX17AI, npc_announcer_toc5::npc_announcer_toc5AI, boss_valithria_dreamwalker::boss_valithria_dreamwalkerAI, boss_paletress::boss_paletressAI, npc_brann_hos::npc_brann_hosAI, boss_lady_deathwhisper::boss_lady_deathwhisperAI, boss_sindragosa::boss_sindragosaAI, npc_fizzlebang_toc::npc_fizzlebang_tocAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, WorldBossAI, npc_nether_portal::npc_nether_portalAI, npc_precious_icc::npc_precious_iccAI, boss_vazruden_the_herald::boss_vazruden_the_heraldAI, npc_daegarn::npc_daegarnAI, boss_anub_arak::boss_anub_arakAI, npc_crystal_channel_target::npc_crystal_channel_targetAI, BossAI, npc_warden_mellichar::npc_warden_mellicharAI, boss_terestian_illhoof::boss_terestianAI, npc_muru_portal::npc_muru_portalAI, boss_krick::boss_krickAI, npc_blazing_monstrosity::npc_blazing_monstrosityAI, boss_professor_putricide::boss_professor_putricideAI, npc_koltira_deathweaver::npc_koltira_deathweaverAI, npc_infernal_volcano::npc_infernal_volcanoAI, npc_wounded_blood_elf::npc_wounded_blood_elfAI, boss_skadi::boss_skadiAI, boss_anubarak_trial::boss_anubarak_trialAI, boss_nightbane::boss_nightbaneAI, boss_corborus::boss_corborusAI, boss_victor_nefarius::boss_victor_nefariusAI, boss_horAI, boss_exarch_maladaar::boss_exarch_maladaarAI, npc_ethereal_beacon::npc_ethereal_beaconAI, boss_felmyst::boss_felmystAI, boss_muru::boss_muruAI, boss_drakkari_colossus::boss_drakkari_colossusAI, boss_gothik::boss_gothikAI, npc_muglash::npc_muglashAI, boss_warbringer_omrogg::boss_warbringer_omroggAI, npc_buru_egg::npc_buru_eggAI, boss_kologarn::boss_kologarnAI, boss_grand_warlock_nethekurse::boss_grand_warlock_nethekurseAI, npc_disciple_of_naralex::npc_disciple_of_naralexAI, npc_fiendish_portal::npc_fiendish_portalAI, boss_ionar::boss_ionarAI, boss_volkhan::boss_volkhanAI, boss_volazj::boss_volazjAI, boss_hydross_the_unstable::boss_hydross_the_unstableAI, boss_novos::boss_novosAI, boss_ymiron::boss_ymironAI, boss_slad_ran::boss_slad_ranAI, boss_trollgore::boss_trollgoreAI, npc_void_sentry::npc_void_sentryAI, boss_ignis::boss_ignis_AI, boss_svala::boss_svalaAI, boss_onyxia::boss_onyxiaAI, boss_laj::boss_lajAI, boss_rotface::boss_rotfaceAI, boss_ichoron::boss_ichoronAI, boss_krik_thir::boss_krik_thirAI, ScriptedAI, boss_noth::boss_nothAI, boss_eregos::boss_eregosAI, npc_lady_sylvanas_windrunner::npc_lady_sylvanas_windrunnerAI, npc_maghar_captive::npc_maghar_captiveAI, npc_restless_soul::npc_restless_soulAI, boss_alar::boss_alarAI, boss_auriaya::boss_auriayaAI, npc_twilight_flame_caller::npc_twilight_flame_callerAI, boss_baltharus_the_warborn::boss_baltharus_the_warbornAI, hyjalAI, boss_black_knight::boss_black_knightAI, boss_kirtonos_the_herald::boss_kirtonos_the_heraldAI, boss_warchief_kargath_bladefist::boss_warchief_kargath_bladefistAI, boss_entropius::boss_entropiusAI, boss_bronjahm::boss_bronjahmAI, boss_harbinger_skyriss::boss_harbinger_skyrissAI, npc_willix::npc_willixAI, boss_general_zarithrian::boss_general_zarithrianAI, boss_nexusprince_shaffar::boss_nexusprince_shaffarAI, npc_commander_dawnforge::npc_commander_dawnforgeAI, boss_anubrekhan::boss_anubrekhanAI, boss_darkweaver_syth::boss_darkweaver_sythAI, boss_baron_rivendare::boss_baron_rivendareAI, boss_sjonnir::boss_sjonnirAI, boss_prince_taldaram::boss_prince_taldaramAI, boss_xevozz::boss_xevozzAI, npc_tapoke_slim_jahn::npc_tapoke_slim_jahnAI, boss_omor_the_unscarred::boss_omor_the_unscarredAI, boss_shattered_executioner::boss_shattered_executionerAI, npc_professor_phizzlethorpe::npc_professor_phizzlethorpeAI, boss_ozruk::boss_ozrukAI, boss_nazan::boss_nazanAI, boss_vexallus::boss_vexallusAI, boss_ayamiss::boss_ayamissAI, boss_commander_sarannis::boss_commander_sarannisAI, boss_high_botanist_freywinn::boss_high_botanist_freywinnAI, boss_gluth::boss_gluthAI, boss_shirrak_the_dead_watcher::boss_shirrak_the_dead_watcherAI, boss_the_black_stalker::boss_the_black_stalkerAI, SmartAI, boss_emalon::boss_emalonAI, boss_balinda::boss_balindaAI, boss_occuthar::boss_occutharAI, boss_skeram::boss_skeramAI, npc_ruul_snowhoof::npc_ruul_snowhoofAI, boss_kormok::boss_kormokAI, npc_oox09hl::npc_oox09hlAI, npc_emily::npc_emilyAI, boss_broggok::boss_broggokAI, and boss_jandice_barov::boss_jandicebarovAI.

123 { }

+ Here is the caller graph for this function:

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

120 { }

+ Here is the caller graph for this function:

void CreatureAI::MoveInLineOfSight ( Unit who)
protectedvirtual

Reimplemented in npc_cage_trap_trigger::cage_trap_triggerAI, npc_training_dummy::npc_training_dummyAI, npc_beryl_sorcerer::npc_beryl_sorcererAI, npc_akama_illidan::npc_akama_illidanAI, alliance_rifleman::alliance_riflemanAI, npc_tonk_mine::npc_tonk_mineAI, npc_phoenix_egg_tk::npc_phoenix_egg_tkAI, npc_dark_nucleus::npc_dark_nucleusAI, boss_romulo::boss_romuloAI, npc_kael_flamestrike::npc_kael_flamestrikeAI, boss_maiev_shadowsong::boss_maievAI, npc_lord_illidan_stormrage::npc_lord_illidan_stormrageAI, boss_julianne::boss_julianneAI, npc_grizzlemaw_cw_trigger::npc_grizzlemaw_cw_triggerAI, npc_hodirs_fury::npc_hodirs_furyAI, npc_cw_area_trigger::npc_cw_area_triggerAI, npc_thorims_hammer::npc_thorims_hammerAI, npc_dkc1_gothik::npc_dkc1_gothikAI, npc_pulsing_pumpkin::npc_pulsing_pumpkinAI, npc_shield_generator_channel::npc_shield_generator_channelAI, npc_alexstraza_the_lifebinder::npc_alexstraza_the_lifebinderAI, npc_salanar_the_horseman::npc_salanar_the_horsemanAI, npc_cyclone::npc_cycloneAI, npc_anubarak_spike::npc_anubarak_spikeAI, npc_toxic_sporebat::npc_toxic_sporebatAI, npc_nexus_drake_hatchling::npc_nexus_drake_hatchlingAI, npc_a_special_surprise::npc_a_special_surpriseAI, boss_malygos::boss_malygosAI, npc_the_etymidian::npc_the_etymidianAI, npc_violet_hold_teleportation_portal_commonAI, npc_expedition_commander::npc_expedition_commanderAI, npc_felkael_phoenix_egg::npc_felkael_phoenix_eggAI, npc_enchanted_elemental::npc_enchanted_elementalAI, boss_roar::boss_roarAI, npc_felmyst_trail::npc_felmyst_trailAI, npc_elder_kekek::npc_elder_kekekAI, boss_illidan_stormrage::boss_illidan_stormrageAI, boss_kaelthas::boss_kaelthasAI, npc_flame_patch_alar::npc_flame_patch_alarAI, npc_jedogas_aufseher_trigger::npc_jedogas_aufseher_triggerAI, boss_headless_horseman::boss_headless_horsemanAI, npc_tooga::npc_toogaAI, boss_tinhead::boss_tinheadAI, npc_high_oracle_soo_roo::npc_high_oracle_soo_rooAI, npc_felkael_flamestrike::npc_felkael_flamestrikeAI, npc_highlord_darion_mograine::npc_highlord_darion_mograineAI, npc_blessed_banner::npc_blessed_bannerAI, boss_voice_of_yogg_saron::boss_voice_of_yogg_saronAI, npc_nesingwary_trapper::npc_nesingwary_trapperAI, npc_kservant::npc_kservantAI, npc_jedoga_initiand::npc_jedoga_initiandAI, boss_alythess::boss_alythessAI, npc_jungle_punch_target::npc_jungle_punch_targetAI, npc_coilfang_ambusher::npc_coilfang_ambusherAI, npc_scorch_ground::npc_scorch_groundAI, npc_lesser_shadow_fissure::npc_lesser_shadow_fissureAI, npc_the_biggest_tree::npc_the_biggest_treeAI, npc_twiggy_flathead::npc_twiggy_flatheadAI, boss_strawman::boss_strawmanAI, npc_nerubar_victim::npc_nerubar_victimAI, advisorbase_ai, boss_magtheridon::boss_magtheridonAI, boss_kalecgos::boss_kalecgosAI, npc_fel_orc_convert::npc_fel_orc_convertAI, npc_water_globule::npc_water_globuleAI, npc_annhylde_the_caller::npc_annhylde_the_callerAI, npc_tournament_training_dummy::npc_tournament_training_dummyAI, npc_warden_mellichar::npc_warden_mellicharAI, npc_injured_draenei::npc_injured_draeneiAI, npc_prince_taldaram_flame_sphere::npc_prince_taldaram_flame_sphereAI, boss_twinemperorsAI, boss_teron_gorefiend::boss_teron_gorefiendAI, npc_archaedas_minions::npc_archaedas_minionsAI, npc_illidari_council::npc_illidari_councilAI, npc_snowfall_glade_playmate::npc_snowfall_glade_playmateAI, boss_leotheras_the_blind::boss_leotheras_the_blindAI, boss_lady_vashj::boss_lady_vashjAI, npc_hive_zara_larva::npc_hive_zara_larvaAI, npc_custodian_of_time::npc_custodian_of_timeAI, boss_four_horsemen::boss_four_horsemenAI, boss_brutallus::boss_brutallusAI, npc_daranelle::npc_daranelleAI, npc_volcano::npc_volcanoAI, npc_mrfloppy::npc_mrfloppyAI, npc_creditmarker_visit_with_ancestors::npc_creditmarker_visit_with_ancestorsAI, npc_skywing::npc_skywingAI, npc_lesser_doomguard::npc_lesser_doomguardAI, npc_steamrigger_mechanic::npc_steamrigger_mechanicAI, npc_andorhal_tower::npc_andorhal_towerAI, npc_towering_infernal::npc_towering_infernalAI, npc_doomfire_targetting::npc_doomfire_targettingAI, boss_anubarak_trial::boss_anubarak_trialAI, boss_exarch_maladaar::boss_exarch_maladaarAI, boss_ossirian::boss_ossirianAI, npc_harbinger_of_flame::npc_harbinger_of_flameAI, npc_khunok_the_behemoth::npc_khunok_the_behemothAI, npc_wisp_invis::npc_wisp_invisAI, npc_air_force_bots::npc_air_force_botsAI, boss_nightbane::boss_nightbaneAI, boss_dorothee::boss_dorotheeAI, boss_reliquary_of_souls::boss_reliquary_of_soulsAI, boss_felblood_kaelthas::boss_felblood_kaelthasAI, boss_grand_warlock_nethekurse::boss_grand_warlock_nethekurseAI, boss_svala::boss_svalaAI, boss_felmyst::boss_felmystAI, npc_doomfire::npc_doomfireAI, npc_blood_elf_council_voice_trigger::npc_blood_elf_council_voice_triggerAI, npc_winterfin_playmate::npc_winterfin_playmateAI, boss_novos::boss_novosAI, npc_shadowy_construct::npc_shadowy_constructAI, boss_the_lurker_below::boss_the_lurker_belowAI, boss_jedoga_shadowseeker::boss_jedoga_shadowseekerAI, npc_demon_chain::npc_demon_chainAI, boss_alar::boss_alarAI, npc_abyssal::npc_abyssalAI, npc_the_scourge_cauldron::npc_the_scourge_cauldronAI, hyjalAI, boss_grandmaster_vorpil::boss_grandmaster_vorpilAI, npc_underbog_mushroom::npc_underbog_mushroomAI, npc_captured_rageclaw::npc_captured_rageclawAI, npc_guardian_pavilion::npc_guardian_pavilionAI, boss_loken::boss_lokenAI, boss_wrath_scryer_soccothrates::boss_wrath_scryer_soccothratesAI, netherspite_infernal::netherspite_infernalAI, npc_medivh_bm::npc_medivh_bmAI, npc_nether_drake::npc_nether_drakeAI, VehicleAI, boss_harbinger_skyriss::boss_harbinger_skyrissAI, npc_draenei_survivor::npc_draenei_survivorAI, boss_doomwalker::boss_doomwalkerAI, boss_nexusprince_shaffar::boss_nexusprince_shaffarAI, SmartAI, npc_warp_splinter_treant::npc_warp_splinter_treantAI, npc_doom_blossom::npc_doom_blossomAI, boss_temporus::boss_temporusAI, boss_watchkeeper_gargolmar::boss_watchkeeper_gargolmarAI, boss_magistrate_barthilas::boss_magistrate_barthilasAI, boss_ambassador_hellmaw::boss_ambassador_hellmawAI, npc_pet_hunter_snake_trap::npc_pet_hunter_snake_trapAI, boss_chrono_lord_deja::boss_chrono_lord_dejaAI, npc_mageguard_dalaran::npc_mageguard_dalaranAI, boss_aeonus::boss_aeonusAI, npc_mist::npc_mistAI, boss_talon_king_ikiss::boss_talon_king_ikissAI, boss_gluth::boss_gluthAI, boss_cyanigosa::boss_cyanigosaAI, npc_webbed_creature::npc_webbed_creatureAI, npc_aged_dying_ancient_kodo::npc_aged_dying_ancient_kodoAI, npc_escortAI, NullCreatureAI, PetAI, FollowerAI, PossessedAI, TotemAI, ReactorAI, and PassiveAI.

129 {
130  if (me->GetVictim())
131  return;
132 
133  if (me->GetCreatureType() == CREATURE_TYPE_NON_COMBAT_PET) // non-combat pets should just stand there and look good;)
134  return;
135 
136  if (me->CanStartAttack(who, false))
137  AttackStart(who);
138  //else if (who->GetVictim() && me->IsFriendlyTo(who)
139  // && me->IsWithinDistInMap(who, sWorld->getIntConfig(CONFIG_CREATURE_FAMILY_ASSISTANCE_RADIUS))
140  // && me->CanStartAttack(who->GetVictim(), true)) /// @todo if we use true, it will not attack it when it arrives
141  // me->GetMotionMaster()->MoveChase(who->GetVictim());
142 }
Definition: SharedDefines.h:3565
uint32 GetCreatureType() const
Definition: Unit.cpp:11248
Creature *const me
Definition: CreatureAI.h:71
Unit * GetVictim() const
Definition: Unit.h:1379
virtual void AttackStart(Unit *)
Definition: UnitAI.cpp:29
bool CanStartAttack(Unit const *u, bool force) const
Definition: Creature.cpp:1525

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void CreatureAI::MoveInLineOfSight_Safe ( Unit who)

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

120 {
121  if (m_MoveInLineOfSight_locked == true)
122  return;
124  MoveInLineOfSight(who);
126 }
bool m_MoveInLineOfSight_locked
Definition: CreatureAI.h:202
virtual void MoveInLineOfSight(Unit *)
Definition: CreatureAI.cpp:128

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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_trapped_mammoth_calf::npc_trapped_mammoth_calfAI, npc_spirit_bomb::npc_spirit_bombAI, npc_turned_champion::npc_turned_championAI, npc_gunship_mage::npc_gunship_mageAI, npc_gunship_rocketeer::npc_gunship_rocketeerAI, npc_gunship_gunner::npc_gunship_gunnerAI, npc_valkyr_shadowguard::npc_valkyr_shadowguardAI, npc_akama_illidan::npc_akama_illidanAI, npc_gunship_boarding_addAI, npc_leryssa::npc_leryssaAI, npc_shield_orb::npc_shield_orbAI, npc_counselor_talbot::npc_counselor_talbotAI, npc_melee_hover_disk::npc_melee_hover_diskAI, npc_general_arlos::npc_general_arlosAI, boss_aerial_command_unit::boss_aerial_command_unitAI, npc_the_lich_king_escape_hor::npc_the_lich_king_escape_horAI, npc_image_lich_king::npc_image_lich_kingAI, npc_ball_of_flame::npc_ball_of_flameAI, npc_tirion_fordring_tft::npc_tirion_fordringAI, npc_blood_queen_lana_thel::npc_blood_queen_lana_thelAI, npc_jaina_or_sylvanas_escape_hor::npc_jaina_or_sylvanas_escape_horAI, npc_vics_flying_machine::npc_vics_flying_machineAI, npc_muradin_bronzebeard_icc::npc_muradin_bronzebeard_iccAI, npc_brann_bronzebeard_algalon::npc_brann_bronzebeard_algalonAI, npc_darnavan::npc_darnavanAI, boss_icehowl::boss_icehowlAI, boss_sister_svalna::boss_sister_svalnaAI, npc_rimefang::npc_rimefangAI, npc_mechanolift::npc_mechanoliftAI, npc_colonel_jules::npc_colonel_julesAI, npc_palehoof_orb::npc_palehoof_orbAI, boss_the_lich_king::boss_the_lich_kingAI, boss_leviathan_mk_ii::boss_leviathan_mk_iiAI, npc_toxic_sporebat::npc_toxic_sporebatAI, npc_frostbrood_skytalon::npc_frostbrood_skytalonAI, boss_dreadscale::boss_dreadscaleAI, npc_stillpine_capitive::npc_stillpine_capitiveAI, npc_spinestalker::npc_spinestalkerAI, npc_high_overlord_saurfang_icc::npc_high_overlord_saurfangAI, boss_malygos::boss_malygosAI, npc_king_jokkum_vehicle::npc_king_jokkum_vehicleAI, npc_frost_sphere::npc_frost_sphereAI, gunship_npc_AI, npc_azure_saboteur::npc_azure_saboteurAI, boss_kaelthas::boss_kaelthasAI, npc_unleashed_ballAI, npc_barada::npc_baradaAI, npc_dragonmaw_peon::npc_dragonmaw_peonAI, boss_illidan_stormrage::boss_illidan_stormrageAI, npc_tooga::npc_toogaAI, npc_wounded_skirmisher::npc_wounded_skirmisherAI, npc_image_of_medivh::npc_image_of_medivhAI, boss_headless_horseman::boss_headless_horsemanAI, npc_spectator::npc_spectatorAI, boss_nefarian::boss_nefarianAI, boss_algalon_the_observer::boss_algalon_the_observerAI, npc_spirit_shade::npc_spirit_shadeAI, npc_brann_bronzebeard_anraphet::npc_brann_bronzebeard_anraphetAI, npc_jedoga_initiand::npc_jedoga_initiandAI, npc_scarlet_courier::npc_scarlet_courierAI, npc_eye_of_acherus::npc_eye_of_acherusAI, npc_enslaved_netherwing_drake::npc_enslaved_netherwing_drakeAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, npc_living_mojo::npc_living_mojoAI, npc_chained_spirit::npc_chained_spiritAI, npc_ingvar_throw_dummy::npc_ingvar_throw_dummyAI, boss_razorscale::boss_razorscaleAI, npc_fizzlebang_toc::npc_fizzlebang_tocAI, npc_molten_barrage::npc_molten_barrageAI, npc_corki::npc_corkiAI, boss_professor_putricide::boss_professor_putricideAI, boss_kalecgos::boss_kalecgosAI, npc_fel_guard_hound::npc_fel_guard_houndAI, npc_weegli_blastfuse::npc_weegli_blastfuseAI, boss_krick::boss_krickAI, boss_sindragosa::boss_sindragosaAI, boss_paletress::boss_paletressAI, npc_snobold_vassal::npc_snobold_vassalAI, npc_spark_of_ionar::npc_spark_of_ionarAI, npc_ruby_emerald_amber_drake::npc_ruby_emerald_amber_drakeAI, boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI, npc_annhylde_the_caller::npc_annhylde_the_callerAI, npc_glob_of_viscidus::npc_glob_of_viscidusAI, boss_lord_marrowgar::boss_lord_marrowgarAI, npc_freed_protodrake::npc_freed_protodrakeAI, npc_mature_netherwing_drake::npc_mature_netherwing_drakeAI, npc_hive_zara_larva::npc_hive_zara_larvaAI, npc_ichor_globule::npc_ichor_globuleAI, boss_lich_king_toc::boss_lich_king_tocAI, npc_zelfrax::npc_zelfraxAI, npc_enslaved_proto_drake::npc_enslaved_proto_drakeAI, npc_corrupted_soul_fragment::npc_corrupted_soul_fragmentAI, boss_felmyst::boss_felmystAI, boss_four_horsemen::boss_four_horsemenAI, boss_rend_blackhand::boss_rend_blackhandAI, npc_azure_ring_captain::npc_azure_ring_captainAI, boss_onyxia::boss_onyxiaAI, npc_drakkari_invader::npc_drakkari_invaderAI, dummy_dragonAI, boss_eadric::boss_eadricAI, boss_alar::boss_alarAI, boss_anraphet::boss_anraphetAI, boss_twin_baseAI, boss_nightbane::boss_nightbaneAI, 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, boss_sapphiron::boss_sapphironAI, npc_announcer_toc5::npc_announcer_toc5AI, boss_gormok::boss_gormokAI, boss_mr_smite::boss_mr_smiteAI, npc_snufflenose_gopher::npc_snufflenose_gopherAI, npc_commander_eligor_dawnbringer::npc_commander_eligor_dawnbringerAI, npc_sc_millhouse_manastorm::npc_sc_millhouse_manastormAI, boss_ymiron::boss_ymironAI, boss_selin_fireheart::boss_selin_fireheartAI, boss_high_priestess_azil::boss_high_priestess_azilAI, boss_warchief_kargath_bladefist::boss_warchief_kargath_bladefistAI, boss_garfrost::boss_garfrostAI, npc_belnistrasz::npc_belnistraszAI, npc_unworthy_initiate::npc_unworthy_initiateAI, boss_kirtonos_the_herald::boss_kirtonos_the_heraldAI, boss_alizabal::boss_alizabalAI, npc_kalecgos::npc_kalecgosAI, SmartAI, npc_nether_drake::npc_nether_drakeAI, boss_ayamiss::boss_ayamissAI, boss_saviana_ragefire::boss_saviana_ragefireAI, boss_erekem::boss_erekemAI, npc_escortAI, npc_lazy_peon::npc_lazy_peonAI, npc_argent_valiant::npc_argent_valiantAI, npc_omen::npc_omenAI, FollowerAI, and PetAI.

143 { }

+ Here is the caller graph for this function:

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.

33 {
34  //me->IsAIEnabled = !apply;*/
35  me->NeedChangeAI = true;
36  me->IsAIEnabled = false;
37 }
bool IsAIEnabled
Definition: Unit.h:2161
Creature *const me
Definition: CreatureAI.h:71
bool NeedChangeAI
Definition: Unit.h:2161

+ Here is the caller graph for this function:

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

Reimplemented in PetAI.

159 { }

+ Here is the caller graph for this function:

virtual void CreatureAI::OwnerAttackedBy ( Unit )
inlinevirtual

Reimplemented in PetAI.

156 { }

+ Here is the caller graph for this function:

void CreatureAI::SetBoundary ( CreatureBoundary const boundary)
inlineprotected
83 { _boundary = boundary; me->DoImmediateBoundaryCheck(); }
Creature *const me
Definition: CreatureAI.h:71
void DoImmediateBoundaryCheck()
Definition: Creature.h:643
CreatureBoundary const * _boundary
Definition: CreatureAI.h:199

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void CreatureAI::SetGazeOn ( Unit target)
protected
204 {
205  if (me->IsValidAttackTarget(target))
206  {
207  if (!me->IsFocusing(nullptr, true))
208  AttackStart(target);
210  }
211 }
Definition: Unit.h:1129
bool IsValidAttackTarget(Unit const *target) const
Definition: Unit.cpp:10002
Creature *const me
Definition: CreatureAI.h:71
bool IsFocusing(Spell const *focusSpell=nullptr, bool withDelay=false)
Definition: Creature.cpp:2747
void SetReactState(ReactStates st)
Definition: Creature.h:502
virtual void AttackStart(Unit *)
Definition: UnitAI.cpp:29

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Reimplemented in npc_blade_of_azzinoth::blade_of_azzinothAI, npc_shadowmoon_tuber_node::npc_shadowmoon_tuber_nodeAI, npc_imprisoned_beryl_sorcerer::npc_imprisoned_beryl_sorcererAI, npc_beryl_sorcerer::npc_beryl_sorcererAI, npc_arcane_overload::npc_arcane_overloadAI, npc_argent_captainAI, npc_crate_helper::npc_crate_helperAI, npc_tirion_fordring_tft::npc_tirion_fordringAI, boss_julianne::boss_julianneAI, npc_portal_eoe::npc_portal_eoeAI, npc_garments_of_quests::npc_garments_of_questsAI, boss_vx_001::boss_vx_001AI, npc_saurfang_event::npc_saurfang_eventAI, npc_vics_flying_machine::npc_vics_flying_machineAI, npc_toasty_fire::npc_toasty_fireAI, boss_yogg_saron::boss_yogg_saronAI, boss_prince_valanar_icc::boss_prince_valanarAI, npc_muradin_bronzebeard_icc::npc_muradin_bronzebeard_iccAI, npc_storm_cloud::npc_storm_cloudAI, npc_feugen::npc_feugenAI, npc_pool_of_tar::npc_pool_of_tarAI, 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_frostbrood_skytalon::npc_frostbrood_skytalonAI, npc_salanar_the_horseman::npc_salanar_the_horsemanAI, npc_cult_adherent::npc_cult_adherentAI, npc_putricide_oozeAI, npc_nexus_drake_hatchling::npc_nexus_drake_hatchlingAI, npc_high_overlord_saurfang_icc::npc_high_overlord_saurfangAI, npc_cult_fanatic::npc_cult_fanaticAI, boss_malygos::boss_malygosAI, boss_prince_taldaram_icc::boss_prince_taldaramAI, npc_torturer_lecraft::npc_torturer_lecraftAI, npc_venture_co_straggler::npc_venture_co_stragglerAI, npc_stalagg::npc_stalaggAI, boss_headless_horseman::boss_headless_horsemanAI, boss_illidan_stormrage::boss_illidan_stormrageAI, boss_essence_of_desire::boss_essence_of_desireAI, npc_wyrmrest_defender::npc_wyrmrest_defenderAI, npc_death_knight_initiate::npc_death_knight_initiateAI, boss_twilight_halion::boss_twilight_halionAI, npc_dragonmaw_peon::npc_dragonmaw_peonAI, npc_wounded_skirmisher::npc_wounded_skirmisherAI, boss_shade_of_aran::boss_aranAI, npc_jungle_punch_target::npc_jungle_punch_targetAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, boss_prince_keleseth_icc::boss_prince_kelesethAI, npc_akama_shade::npc_akamaAI, npc_molten_golem::npc_molten_golemAI, npc_dark_fiend::npc_dark_fiendAI, boss_valithria_dreamwalker::boss_valithria_dreamwalkerAI, boss_razorscale::boss_razorscaleAI, npc_enslaved_netherwing_drake::npc_enslaved_netherwing_drakeAI, boss_strawman::boss_strawmanAI, advisorbase_ai, boss_gothik::boss_gothikAI, npc_muru_portal::npc_muru_portalAI, boss_flame_leviathan::boss_flame_leviathanAI, npc_outhouse_bunny::npc_outhouse_bunnyAI, npc_head::npc_headAI, boss_urom::boss_uromAI, generic_halionAI, npc_archaedas_minions::npc_archaedas_minionsAI, boss_skadi::boss_skadiAI, npc_ruby_emerald_amber_drake::npc_ruby_emerald_amber_drakeAI, npc_ichor_globule::npc_ichor_globuleAI, npc_mature_netherwing_drake::npc_mature_netherwing_drakeAI, npc_tournament_training_dummy::npc_tournament_training_dummyAI, npc_taskmaster_fizzule::npc_taskmaster_fizzuleAI, npc_spectral_ghostly_citizen::npc_spectral_ghostly_citizenAI, boss_shade_of_akama::boss_shade_of_akamaAI, npc_brunnhildar_prisoner::npc_brunnhildar_prisonerAI, boss_razorscale_controller::boss_razorscale_controllerAI, boss_felmyst::boss_felmystAI, boss_onyxia::boss_onyxiaAI, boss_alar::boss_alarAI, npc_wisp_invis::npc_wisp_invisAI, ScriptedAI, boss_twinemperorsAI, boss_gal_darah::boss_gal_darahAI, boss_scarlet_commander_mograine::boss_scarlet_commander_mograineAI, npc_infernal_attacker::npc_infernal_attackerAI, npc_medivh_bm::npc_medivh_bmAI, netherspite_infernal::netherspite_infernalAI, boss_warlord_kalithresh::boss_warlord_kalithreshAI, boss_viscidus::boss_viscidusAI, boss_ionar::boss_ionarAI, npc_captured_rageclaw::npc_captured_rageclawAI, boss_pyroguard_emberseer::boss_pyroguard_emberseerAI, npc_restless_soul::npc_restless_soulAI, npc_nether_drake::npc_nether_drakeAI, boss_archaedas::boss_archaedasAI, boss_faerlina::boss_faerlinaAI, boss_xevozz::boss_xevozzAI, npc_abyssal::npc_abyssalAI, boss_moorabi::boss_moorabiAI, boss_attumen::boss_attumenAI, boss_ossirian::boss_ossirianAI, npc_draenei_survivor::npc_draenei_survivorAI, SmartAI, boss_razuvious::boss_razuviousAI, npc_omen::npc_omenAI, npc_sinkhole_kill_credit::npc_sinkhole_kill_creditAI, boss_najentus::boss_najentusAI, npc_drakuru_shackles::npc_drakuru_shacklesAI, npc_pet_dk_ebon_gargoyle::npc_pet_dk_ebon_gargoyleAI, npc_lazy_peon::npc_lazy_peonAI, npc_crusade_persuaded::npc_crusade_persuadedAI, npc_aged_dying_ancient_kodo::npc_aged_dying_ancient_kodoAI, npc_yenniku::npc_yennikuAI, and npc_greengill_slave::npc_greengill_slaveAI.

130 { }

+ Here is the caller graph for this function:

void CreatureAI::Talk ( uint8  id,
WorldObject const whisperTarget = nullptr 
)
43 {
44  sCreatureTextMgr->SendChat(me, id, whisperTarget);
45 }
Creature *const me
Definition: CreatureAI.h:71
#define sCreatureTextMgr
Definition: CreatureTextMgr.h:113
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 in combat, 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
163  me->SetFacingTo(me->GetAngle(who->GetPositionX(), who->GetPositionY()));
164  me->StopMoving();
166 }
Definition: Unit.h:562
Definition: SharedDefines.h:4353
Definition: Unit.h:1129
MotionMaster * GetMotionMaster()
Definition: Unit.h:2101
bool IsInCombat() const
Definition: Unit.h:1584
Definition: ObjectGuid.h:32
bool HasReactState(ReactStates state) const
Definition: Creature.h:504
Definition: Unit.h:561
Definition: Unit.h:557
Creature *const me
Definition: CreatureAI.h:71
TypeID GetTypeId() const
Definition: Object.h:113
bool _IsTargetAcceptable(const Unit *target) const
Definition: Creature.cpp:2127
Definition: Unit.h:553
float GetAngle(Position const *pos) const
Definition: Position.cpp:63
void SetFacingTo(float ori)
Definition: Unit.cpp:15777
void SendAIReaction(AiReaction reactionType)
Definition: Creature.cpp:2009
bool IsCivilian() const
Definition: Creature.h:495
Definition: ObjectGuid.h:33
Definition: Common.h:103
bool IsHostileTo(Unit const *unit) const
Definition: Unit.cpp:7165
bool HasUnitState(const uint32 f) const
Definition: Unit.h:1395
void MoveDistract(uint32 time)
Definition: MotionMaster.cpp:574
void StopMoving()
-------—End of Pet responses methods-------—
Definition: Unit.cpp:12743

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool CreatureAI::UpdateVictim ( )
protected
234 {
235  if (!me->IsInCombat())
236  return false;
237 
239  {
240  if (Unit* victim = me->SelectVictim())
241  if (!me->IsFocusing(nullptr, true))
242  AttackStart(victim);
243 
244  return me->GetVictim() != nullptr;
245  }
246  else if (me->getThreatManager().isThreatListEmpty())
247  {
249  return false;
250  }
251 
252  return true;
253 }
Definition: Unit.h:1129
virtual void EnterEvadeMode(EvadeReason why=EVADE_REASON_OTHER)
Definition: CreatureAI.cpp:168
bool IsInCombat() const
Definition: Unit.h:1584
bool HasReactState(ReactStates state) const
Definition: Creature.h:504
bool isThreatListEmpty() const
Definition: ThreatManager.h:220
Creature *const me
Definition: CreatureAI.h:71
Unit * GetVictim() const
Definition: Unit.h:1379
Definition: CreatureAI.h:87
Unit * SelectVictim()
Definition: Unit.cpp:10775
bool IsFocusing(Spell const *focusSpell=nullptr, bool withDelay=false)
Definition: Creature.cpp:2747
ThreatManager & getThreatManager()
Definition: Unit.h:1998
Definition: Unit.h:1305
virtual void AttackStart(Unit *)
Definition: UnitAI.cpp:29

+ Here is the call graph for this function:

bool CreatureAI::UpdateVictimWithGaze ( )
protected
214 {
215  if (!me->IsInCombat())
216  return false;
217 
219  {
220  if (me->GetVictim())
221  return true;
222  else
224  }
225 
226  if (Unit* victim = me->SelectVictim())
227  if (!me->IsFocusing(nullptr, true))
228  AttackStart(victim);
229 
230  return me->GetVictim() != nullptr;
231 }
Definition: Unit.h:1131
Definition: Unit.h:1129
bool IsInCombat() const
Definition: Unit.h:1584
bool HasReactState(ReactStates state) const
Definition: Creature.h:504
Creature *const me
Definition: CreatureAI.h:71
Unit * GetVictim() const
Definition: Unit.h:1379
Unit * SelectVictim()
Definition: Unit.cpp:10775
bool IsFocusing(Spell const *focusSpell=nullptr, bool withDelay=false)
Definition: Creature.cpp:2747
Definition: Unit.h:1305
void SetReactState(ReactStates st)
Definition: Creature.h:502
virtual void AttackStart(Unit *)
Definition: UnitAI.cpp:29

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int32 CreatureAI::VisualizeBoundary ( uint32  duration,
Unit owner = nullptr,
bool  fill = false 
) const
284 {
285  typedef std::pair<int32, int32> coordinate;
286 
287  if (!owner)
288  return -1;
289 
290  if (!_boundary || _boundary->empty())
292 
293  std::queue<coordinate> Q;
294  std::unordered_set<coordinate> alreadyChecked;
295  std::unordered_set<coordinate> outOfBounds;
296 
297  Position startPosition = owner->GetPosition();
298  if (!CheckBoundary(&startPosition)) // fall back to creature position
299  {
300  startPosition = me->GetPosition();
301  if (!CheckBoundary(&startPosition))
302  {
303  startPosition = me->GetHomePosition();
304  if (!CheckBoundary(&startPosition)) // fall back to creature home position
306  }
307  }
308  float spawnZ = startPosition.GetPositionZ() + BOUNDARY_VISUALIZE_SPAWN_HEIGHT;
309 
310  bool boundsWarning = false;
311  Q.push({ 0,0 });
312  while (!Q.empty())
313  {
314  coordinate front = Q.front();
315  bool hasOutOfBoundsNeighbor = false;
316  for (coordinate off : std::initializer_list<coordinate>{{1,0}, {0,1}, {-1,0}, {0,-1}})
317  {
318  coordinate next(front.first + off.first, front.second + off.second);
320  {
321  boundsWarning = true;
322  continue;
323  }
324  if (alreadyChecked.find(next) == alreadyChecked.end()) // never check a coordinate twice
325  {
326  Position nextPos(startPosition.GetPositionX() + next.first*BOUNDARY_VISUALIZE_STEP_SIZE, startPosition.GetPositionY() + next.second*BOUNDARY_VISUALIZE_STEP_SIZE, startPosition.GetPositionZ());
327  if (CheckBoundary(&nextPos))
328  Q.push(next);
329  else
330  {
331  outOfBounds.insert(next);
332  hasOutOfBoundsNeighbor = true;
333  }
334  alreadyChecked.insert(next);
335  }
336  else
337  if (outOfBounds.find(next) != outOfBounds.end())
338  hasOutOfBoundsNeighbor = true;
339  }
340  if (fill || hasOutOfBoundsNeighbor)
341  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))
342  {
343  point->SetObjectScale(BOUNDARY_VISUALIZE_CREATURE_SCALE);
345  if (!hasOutOfBoundsNeighbor)
347  }
348  Q.pop();
349  }
350  return boundsWarning ? LANG_CREATURE_MOVEMENT_MAYBE_UNBOUNDED : 0;
351 }
Definition: TemporarySummon.h:40
Definition: Language.h:1219
int next(int i, int n)
Definition: RecastContour.cpp:469
#define BOUNDARY_VISUALIZE_CREATURE_SCALE
Definition: CreatureAI.cpp:279
Definition: Unit.h:681
Creature *const me
Definition: CreatureAI.h:71
#define BOUNDARY_VISUALIZE_CREATURE
Definition: CreatureAI.cpp:278
Definition: Language.h:1218
float GetPositionY() const
Definition: Position.h:105
Definition: Object.h:56
void GetPosition(float &x, float &y) const
Definition: Position.h:109
float GetPositionZ() const
Definition: Position.h:106
#define BOUNDARY_VISUALIZE_SPAWN_HEIGHT
Definition: CreatureAI.cpp:282
#define BOUNDARY_VISUALIZE_FAILSAFE_LIMIT
Definition: CreatureAI.cpp:281
Definition: Unit.h:682
Definition: UpdateFields.h:109
CreatureBoundary const * _boundary
Definition: CreatureAI.h:199
Definition: Common.h:103
Definition: Unit.h:691
Definition: Position.h:27
#define BOUNDARY_VISUALIZE_STEP_SIZE
Definition: CreatureAI.cpp:280
float GetPositionX() const
Definition: Position.h:104
bool CheckBoundary(Position const *who=nullptr) const
Definition: CreatureAI.cpp:353
Definition: Unit.h:698
void GetHomePosition(float &x, float &y, float &z, float &ori) const
Definition: Creature.h:672
uint8 const Q[]
Definition: AuthenticationPackets.cpp:237
TempSummon * SummonCreature(uint32 id, Position const &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0) const
Definition: Object.cpp:2346
Definition: Language.h:1220

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

CreatureBoundary const* CreatureAI::_boundary
protected
bool CreatureAI::m_MoveInLineOfSight_locked
private
Creature* const CreatureAI::me
protected

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