AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
UnitAI Class Referenceabstract

#include "UnitAI.h"

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

Public Member Functions

 UnitAI (Unit *unit)
 
virtual ~UnitAI ()
 
virtual bool CanAIAttack (Unit const *) const
 
virtual void AttackStart (Unit *)
 
virtual void UpdateAI (uint32)=0
 
virtual void InitializeAI ()
 
virtual void Reset ()
 
virtual void OnCharmed (bool apply)=0
 
virtual void DoAction (int32)
 
virtual uint32 GetData (uint32) const
 
virtual void SetData (uint32, uint32)
 
virtual void SetGUID (ObjectGuid, int32=0)
 
virtual ObjectGuid GetGUID (int32=0) const
 
UnitSelectTarget (SelectTargetMethod targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0)
 
template<class PREDICATE >
UnitSelectTarget (SelectTargetMethod targetType, uint32 position, PREDICATE const &predicate)
 
void SelectTargetList (std::list< Unit * > &targetList, uint32 num, SelectTargetMethod targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0)
 
template<class PREDICATE >
void SelectTargetList (std::list< Unit * > &targetList, uint32 num, SelectTargetMethod targetType, uint32 position, PREDICATE const &predicate)
 
virtual void JustEnteredCombat (Unit *)
 Called when the unit enters combat (NOTE: Creature engage logic should NOT be here, but in JustEngagedWith, which happens once threat is established!)
 
virtual void JustExitedCombat ()
 Called when the unit leaves combat.
 
virtual void DamageDealt (Unit *, uint32 &, DamageEffectType)
 
virtual void DamageTaken (Unit *, uint32 &, DamageEffectType, SpellSchoolMask)
 
virtual void HealReceived (Unit *, uint32 &)
 
virtual void HealDone (Unit *, uint32 &)
 
void AttackStartCaster (Unit *victim, float dist)
 
SpellCastResult DoAddAuraToAllHostilePlayers (uint32 spellid)
 
SpellCastResult DoCast (uint32 spellId)
 
SpellCastResult DoCast (Unit *victim, uint32 spellId, bool triggered=false)
 
SpellCastResult DoCastSelf (uint32 spellId, bool triggered=false)
 
SpellCastResult DoCastToAllHostilePlayers (uint32 spellid, bool triggered=false)
 
SpellCastResult DoCastVictim (uint32 spellId, bool triggered=false)
 
SpellCastResult DoCastAOE (uint32 spellId, bool triggered=false)
 
SpellCastResult DoCastRandomTarget (uint32 spellId, uint32 threatTablePosition=0, float dist=0.0f, bool playerOnly=true, bool triggered=false)
 
SpellCastResult DoCastMaxThreat (uint32 spellId, uint32 threatTablePosition=0, float dist=0.0f, bool playerOnly=true, bool triggered=false)
 Cast spell on the max threat target, which may not always be the current victim.
 
float DoGetSpellMaxRange (uint32 spellId, bool positive=false)
 
void DoMeleeAttackIfReady ()
 
bool DoSpellAttackIfReady (uint32 spell)
 
void DoSpellAttackToRandomTargetIfReady (uint32 spell, uint32 threatTablePosition=0, float dist=0.f, bool playerOnly=true)
 
virtual void SummonMovementInform (Creature *, uint32, uint32)
 
virtual void sGossipHello (Player *)
 
virtual void sGossipSelect (Player *, uint32, uint32)
 
virtual void sGossipSelectCode (Player *, uint32, uint32, char const *)
 
virtual void sQuestAccept (Player *, Quest const *)
 
virtual void sQuestSelect (Player *, Quest const *)
 
virtual void sQuestComplete (Player *, Quest const *)
 
virtual void sQuestReward (Player *, Quest const *, uint32)
 
virtual void sOnGameEvent (bool, uint16)
 
virtual std::string GetDebugInfo () const
 

Static Public Member Functions

static void FillAISpellInfo ()
 

Static Public Attributes

static AISpellInfoTypeAISpellInfo
 

Protected Attributes

Unit *const me
 

Private Member Functions

ThreatMgrGetThreatMgr ()
 
void SortByDistance (std::list< Unit * > &list, bool ascending=true)
 

Detailed Description

Constructor & Destructor Documentation

◆ UnitAI()

UnitAI::UnitAI ( Unit unit)
inlineexplicit
186: me(unit) {}
Unit *const me
Definition: UnitAI.h:184

◆ ~UnitAI()

virtual UnitAI::~UnitAI ( )
inlinevirtual
187{}

Member Function Documentation

◆ AttackStart()

void UnitAI::AttackStart ( Unit victim)
virtual

Reimplemented in NPCStaveQuestAI, VehicleAI, PassiveAI, NullCreatureAI, ScriptedAI, FollowerAI, npc_chesspiece, npc_demon_chain, npc_janalai_firebomb::npc_janalai_firebombAI, npc_janalai_hatcher::npc_janalai_hatcherAI, npc_dark_iron_attack_mole_machine, npc_dark_iron_guzzler, npc_brewfest_super_brew_trigger, boss_headless_horseman_pumpkin, npc_pilgrims_bounty_chair, npc_taretha::npc_tarethaAI, npc_medivh_bm, npc_depth_charge::npc_depth_chargeAI, npc_amanitar_mushrooms, npc_toc5_player_vehicle::npc_toc5_player_vehicleAI, npc_pos_leader::npc_pos_leaderAI, boss_valithria_dreamwalker::boss_valithria_dreamwalkerAI, npc_the_lich_king_controller::npc_the_lich_king_controllerAI, npc_valithria_cloud::npc_valithria_cloudAI, npc_vortex_ride::npc_vortex_rideAI, npc_scion_of_eternity::npc_scion_of_eternityAI, npc_hover_disk::npc_hover_diskAI, npc_alexstrasza::npc_alexstraszaAI, npc_oculus_unstable_sphere::npc_oculus_unstable_sphereAI, npc_spark_of_ionar::npc_spark_of_ionarAI, npc_assembly_lightning::npc_assembly_lightningAI, boss_flame_leviathan_seat::boss_flame_leviathan_seatAI, npc_mimirons_inferno::npc_mimirons_infernoAI, boss_kologarn_arms::boss_kologarn_armsAI, npc_ulduar_vx001::npc_ulduar_vx001AI, npc_ulduar_proximity_mine::npc_ulduar_proximity_mineAI, npc_ulduar_emergency_fire_bot::npc_ulduar_emergency_fire_botAI, boss_thorim_sif::boss_thorim_sifAI, boss_thorim_lightning_orb::boss_thorim_lightning_orbAI, boss_thorim_sif_blizzard::boss_thorim_sif_blizzardAI, npc_xt002_heart::npc_xt002_heartAI, boss_yoggsaron_sara::boss_yoggsaron_saraAI, boss_yoggsaron_cloud::boss_yoggsaron_cloudAI, boss_yoggsaron::boss_yoggsaronAI, npc_ichor_globule::npc_ichor_globuleAI, npc_warmage_coldarra::npc_warmage_coldarraAI, npc_mageguard_dalaran::npc_mageguard_dalaranAI, npc_frosthound::npc_frosthoundAI, npc_wild_wyrm::npc_wild_wyrmAI, npc_icefang::npc_icefangAI, boss_reliquary_of_souls::boss_reliquary_of_soulsAI, boss_illidari_council::boss_illidari_councilAI, boss_vazruden_the_herald, npc_warden_mellichar::npc_warden_mellicharAI, npc_lord_illidan_stormrage::npc_lord_illidan_stormrageAI, npc_ritual_channeler::npc_ritual_channelerAI, PossessedAI, PetAI, boss_ragnaros::boss_ragnarosAI, npc_gunship_mage::npc_gunship_mageAI, npc_gunship_gunner::npc_gunship_gunnerAI, npc_green_dragon_combat_trigger::npc_green_dragon_combat_triggerAI, CasterAI, TotemAI, npc_av_marshal_or_warmaster::npc_av_marshal_or_warmasterAI, boss_drekthar::boss_drektharAI, boss_vanndar::boss_vanndarAI, boss_priestess_lackey_commonAI, npc_hive_zara_larva, npc_weegli_blastfuse::npc_weegli_blastfuseAI, npc_shadowpriest_sezziz::npc_shadowpriest_sezzizAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, npc_high_overlord_saurfang_igb::npc_high_overlord_saurfang_igbAI, npc_muradin_bronzebeard_igb::npc_muradin_bronzebeard_igbAI, boss_lady_deathwhisper::boss_lady_deathwhisperAI, npc_frostwing_vrykul::npc_frostwing_vrykulAI, boss_malygos::boss_malygosAI, npc_nexus_lord::npc_nexus_lordAI, boss_illidan_stormrage::boss_illidan_stormrageAI, boss_swamplord_muselek, ArcherAI, TurretAI, npc_escortAI, SmartAI, boss_nightbane, boss_dorothee, boss_roar, boss_strawman, boss_tinhead, boss_julianne, npc_koltira_deathweaver::npc_koltira_deathweaverAI, boss_brutallus::boss_brutallusAI, boss_kiljaeden::boss_kiljaedenAI, npc_daphne_stilwell::npc_daphne_stilwellAI, boss_halazzi::boss_halazziAI, npc_halazzi_lynx::npc_halazzi_lynxAI, boss_alyson_antille::boss_alyson_antilleAI, boss_gazakrothAI, boss_slither::boss_slitherAI, boss_nalorakk::boss_nalorakkAI, boss_zuljin::boss_zuljinAI, boss_veklor, npc_rizzle_sprysprocket::npc_rizzle_sprysprocketAI, npc_zelfrax::npc_zelfraxAI, npc_twilight_volunteer, boss_halion::boss_halionAI, boss_faction_championsAI, npc_snobold_vassal::npc_snobold_vassalAI, boss_jormungarAI, boss_icehowl::boss_icehowlAI, npc_ghostly_priest::npc_ghostly_priestAI, npc_phantom_mage::npc_phantom_mageAI, npc_shadowy_mercenary::npc_shadowy_mercenaryAI, npc_spectral_footman::npc_spectral_footmanAI, npc_tortured_rifleman::npc_tortured_riflemanAI, npc_living_mojo::npc_living_mojoAI, boss_prince_keleseth_icc::boss_prince_kelesethAI, npc_dark_nucleus::npc_dark_nucleusAI, npc_ball_of_flame::npc_ball_of_flameAI, npc_vengeful_shade::npc_vengeful_shadeAI, npc_raging_spirit::npc_raging_spiritAI, npc_suppresser::npc_suppresserAI, npc_icc_skybreaker_hierophant::npc_icc_skybreaker_hierophantAI, npc_icc_skybreaker_marksman::npc_icc_skybreaker_marksmanAI, npc_icc_skybreaker_vicar::npc_icc_skybreaker_vicarAI, npc_icc_skybreaker_luminary::npc_icc_skybreaker_luminaryAI, npc_icc_vengeful_fleshreaper::npc_icc_vengeful_fleshreaperAI, boss_four_horsemen::boss_four_horsemenAI, boss_kelthuzad_minion::boss_kelthuzad_minionAI, boss_magus_telestra::boss_magus_telestraAI, boss_urom::boss_uromAI, npc_hol_monument::npc_hol_monumentAI, boss_algalon_the_observer::boss_algalon_the_observerAI, boss_flame_leviathan::boss_flame_leviathanAI, npc_ulduar_hodir_priest::npc_ulduar_hodir_priestAI, npc_ulduar_hodir_druid::npc_ulduar_hodir_druidAI, npc_ulduar_hodir_shaman::npc_ulduar_hodir_shamanAI, npc_ulduar_hodir_mage::npc_ulduar_hodir_mageAI, boss_kologarn::boss_kologarnAI, boss_mimiron::boss_mimironAI, npc_ulduar_aerial_command_unit::npc_ulduar_aerial_command_unitAI, boss_razorscale::boss_razorscaleAI, npc_ulduar_arachnopod_destroyer::npc_ulduar_arachnopod_destroyerAI, boss_keleseth::boss_kelesethAI, boss_archavon::boss_archavonAI, boss_emalon::boss_emalonAI, boss_koralon::boss_koralonAI, boss_toravon::boss_toravonAI, violet_hold_trashAI, npc_q24545_wretched_ghoul::npc_q24545_wretched_ghoulAI, npc_ravenous_worg::npc_ravenous_worgAI, boss_ambassador_hellmaw, boss_high_nethermancer_zerevor::boss_high_nethermancer_zerevorAI, boss_lady_malande::boss_lady_malandeAI, boss_leotheras_the_blind::boss_leotheras_the_blindAI, boss_the_lurker_below::boss_the_lurker_belowAI, boss_olm_the_summoner, boss_kiggler_the_crazed, boss_krosh_firehand, boss_nazan, npc_millhouse_manastorm::npc_millhouse_manastormAI, boss_high_astromancer_solarian::boss_high_astromancer_solarianAI, boss_kaelthas::boss_kaelthasAI, npc_pet_dk_ebon_gargoyle::npc_pet_dk_ebon_gargoyleAI, and npc_pet_gen_gnomish_flame_turret.

29{
30 if (victim && me->Attack(victim, true))
31 me->GetMotionMaster()->MoveChase(victim);
32}
MotionMaster * GetMotionMaster()
Definition: Unit.h:2274
bool Attack(Unit *victim, bool meleeAttack)
Definition: Unit.cpp:10272
void MoveChase(Unit *target, std::optional< ChaseRange > dist={}, std::optional< ChaseAngle > angle={})
Definition: MotionMaster.cpp:299

References Unit::Attack(), Unit::GetMotionMaster(), me, and MotionMaster::MoveChase().

Referenced by ScriptedAI::AttackStart(), npc_green_dragon_combat_trigger::npc_green_dragon_combat_triggerAI::AttackStart(), boss_brutallus::boss_brutallusAI::AttackStart(), boss_halion::boss_halionAI::AttackStart(), boss_faction_championsAI::AttackStart(), npc_ravenous_worg::npc_ravenous_worgAI::AttackStart(), boss_kaelthas::boss_kaelthasAI::AttackStart(), npc_anubisath_sentinel::aqsentinelAI::CallBuddiesToAttack(), instance_ruins_of_ahnqiraj::instance_ruins_of_ahnqiraj_InstanceMapScript::CallNextRajaxxLeader(), Unit::CombatStart(), Spell::DoAllEffectOnTarget(), instance_stratholme::instance_stratholme_InstanceMapScript::DoSpawnPlaguedCritters(), boss_zuljin::boss_zuljinAI::EnterPhase(), AssistDelayEvent::Execute(), StartMovementEvent::Execute(), spell_random_aggro::HandleOnHit(), WorldSession::HandlePetActionHelper(), spell_the_lich_king_vile_spirit_move_target_search::spell_the_lich_king_vile_spirit_move_target_search_SpellScript::HandleScript(), spell_pursue::spell_pursue_SpellScript::HandleScript(), boss_hexlord_malacrass::boss_hex_lord_malacrassAI::JustEngagedWith(), npc_beryl_sorcerer::npc_beryl_sorcererAI::JustEngagedWith(), npc_toc_warlock::npc_toc_warlockAI::JustSummoned(), npc_toc_hunter::npc_toc_hunterAI::JustSummoned(), npc_toc_boomkin::npc_toc_boomkinAI::JustSummoned(), boss_maexxna::boss_maexxnaAI::JustSummoned(), npc_frosthound::npc_frosthoundAI::JustSummoned(), npc_daphne_stilwell::npc_daphne_stilwellAI::JustSummoned(), npc_battle_at_valhalas::npc_battle_at_valhalasAI::JustSummoned(), boss_urom::boss_uromAI::JustSummoned(), npc_hor_lich_king::npc_hor_lich_kingAI::JustSummoned(), WorldBossAI::JustSummoned(), npc_grimstone::npc_grimstoneAI::JustSummoned(), boss_gyth::boss_gythAI::JustSummoned(), boss_curator::JustSummoned(), boss_midnight::JustSummoned(), boss_nightbane::JustSummoned(), boss_sacrolash::boss_sacrolashAI::JustSummoned(), npc_demonic_vapor_trail::npc_demonic_vapor_trailAI::JustSummoned(), boss_halazzi::boss_halazziAI::JustSummoned(), boss_onyxia::JustSummoned(), boss_black_knight::boss_black_knightAI::JustSummoned(), boss_devourer_of_souls::boss_devourer_of_soulsAI::JustSummoned(), boss_deathbringer_saurfang::boss_deathbringer_saurfangAI::JustSummoned(), boss_lady_deathwhisper::boss_lady_deathwhisperAI::JustSummoned(), npc_precious_icc::npc_precious_iccAI::JustSummoned(), npc_the_lich_king_controller::npc_the_lich_king_controllerAI::JustSummoned(), npc_gluttonous_abomination::npc_gluttonous_abominationAI::JustSummoned(), boss_gluth::boss_gluthAI::JustSummoned(), boss_gothik::boss_gothikAI::JustSummoned(), boss_volkhan::boss_volkhanAI::JustSummoned(), boss_nexusprince_shaffar::JustSummoned(), npc_akama_illidan::npc_akama_illidanAI::JustSummoned(), npc_creature_generator_akama::npc_creature_generator_akamaAI::JustSummoned(), boss_the_black_stalker::JustSummoned(), boss_nethermancer_sepethrea::JustSummoned(), npc_nelson::npc_nelsonAI::JustSummoned(), boss_balinda::boss_balindaAI::JustSummoned(), npc_koltira_deathweaver::npc_koltira_deathweaverAI::JustSummoned(), npc_professor_phizzlethorpe::npc_professor_phizzlethorpeAI::JustSummoned(), npc_thrall_bfu::npc_thrall_bfuAI::JustSummoned(), npc_tapoke_slim_jahn::npc_tapoke_slim_jahnAI::JustSummoned(), boss_archimonde::boss_archimondeAI::JustSummoned(), npc_muglash::npc_muglashAI::JustSummoned(), npc_kaya_flathoof::npc_kaya_flathoofAI::JustSummoned(), npc_wizzlecrank_shredder::npc_wizzlecrank_shredderAI::JustSummoned(), npc_ame::npc_ameAI::JustSummoned(), npc_emily::npc_emilyAI::JustSummoned(), npc_deaths_door_fell_cannon_target_bunny::npc_deaths_door_fell_cannon_target_bunnyAI::JustSummoned(), npc_wounded_blood_elf::npc_wounded_blood_elfAI::JustSummoned(), npc_maghar_captive::npc_maghar_captiveAI::JustSummoned(), npc_kurenai_captive::npc_kurenai_captiveAI::JustSummoned(), npc_bessy::npc_bessyAI::JustSummoned(), npc_buru_egg::JustSummoned(), CreatureGroup::MemberEngagingTarget(), CreatureAI::MoveInLineOfSight(), npc_air_force_bots::npc_air_force_botsAI::MoveInLineOfSight(), npc_pet_mage_mirror_image::MySelectNextTarget(), npc_ulduar_expedition_commander::OnGossipSelect(), boss_azuregos::OnGossipSelect(), npc_bartleby::OnQuestAccept(), Acore::CallOfHelpCreatureInRangeDo::operator()(), Unit::PetSpellFail(), SmartScript::ProcessAction(), npc_heated_battle::npc_heated_battleAI::Reset(), Resurrect(), instance_naxxramas::instance_naxxramas_InstanceMapScript::SetBossState(), CreatureAI::SetGazeOn(), spell_putricide_ooze_channel::spell_putricide_ooze_channel_SpellScript::StartAttack(), brann_bronzebeard::brann_bronzebeardAI::SummonCreatures(), npc_artruis_the_hearthless::npc_artruis_the_hearthlessAI::SummonsAction(), Unit::TauntApply(), Unit::TauntFadeOut(), Pet::Update(), SimpleCharmedAI::UpdateAI(), npc_rookery_hatcher::npc_rookery_hatcherAI::UpdateAI(), npc_vaelastrasz_the_red::npc_vaelastrasz_the_redAI::UpdateAI(), npc_death_knight_initiate::npc_death_knight_initiateAI::UpdateAI(), boss_akilzon::boss_akilzonAI::UpdateAI(), npc_twiggy_flathead::npc_twiggy_flatheadAI::UpdateAI(), npc_freya_ward::npc_freya_wardAI::UpdateAI(), npc_hourglass_of_eternity::npc_hourglass_of_eternityAI::UpdateAI(), npc_llod_generic::npc_llod_genericAI::UpdateAI(), CreatureAI::UpdateVictim(), CreatureAI::UpdateVictimWithGaze(), and npc_cork_gizelton::npc_cork_gizeltonAI::WaypointReached().

◆ AttackStartCaster()

◆ CanAIAttack()

virtual bool UnitAI::CanAIAttack ( Unit const *  ) const
inlinevirtual

Reimplemented in boss_majordomo::boss_majordomoAI, boss_ick::boss_ickAI, boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, npc_gunship_mage::npc_gunship_mageAI, npc_gunship_rocketeer::npc_gunship_rocketeerAI, npc_ulduar_proximity_mine::npc_ulduar_proximity_mineAI, boss_talon_king_ikiss, boss_ambassador_hellmaw, boss_pathaleon_the_calculator, boss_hodir::boss_hodirAI, npc_ulduar_hodir_priest::npc_ulduar_hodir_priestAI, npc_ulduar_hodir_druid::npc_ulduar_hodir_druidAI, npc_ulduar_hodir_shaman::npc_ulduar_hodir_shamanAI, npc_ulduar_hodir_mage::npc_ulduar_hodir_mageAI, boss_razorgore::boss_razorgoreAI, boss_kalecgos::boss_kalecgosAI, boss_sathrovarr::boss_sathrovarrAI, boss_hazzarah, boss_jindo, boss_renataki::boss_renatakiAI, boss_anubarak_trial::boss_anubarak_trialAI, npc_swarm_scarab::npc_swarm_scarabAI, npc_nerubian_burrower::npc_nerubian_burrowerAI, boss_devourer_of_souls::boss_devourer_of_soulsAI, npc_high_overlord_saurfang_igb::npc_high_overlord_saurfang_igbAI, npc_muradin_bronzebeard_igb::npc_muradin_bronzebeard_igbAI, npc_igb_ship_crew::npc_igb_ship_crewAI, npc_gunship_boarding_addAI, npc_gunship_gunner::npc_gunship_gunnerAI, boss_lord_marrowgar, boss_professor_putricide::boss_professor_putricideAI, boss_sindragosa::boss_sindragosaAI, boss_the_lich_king::boss_the_lich_kingAI, npc_tirion_fordring_tft::npc_tirion_fordringAI, npc_shambling_horror_icc::npc_shambling_horror_iccAI, npc_raging_spirit::npc_raging_spiritAI, npc_terenas_menethil::npc_terenas_menethilAI, npc_icc_lk_checktarget::npc_icc_lk_checktargetAI, npc_lk_wicked_spirit::npc_lk_wicked_spiritAI, npc_green_dragon_combat_trigger::npc_green_dragon_combat_triggerAI, npc_risen_archmage::npc_risen_archmageAI, npc_crok_scourgebane::npc_crok_scourgebaneAI, npc_argent_captainAI, npc_frostwing_vrykul::npc_frostwing_vrykulAI, npc_icc_valkyr_herald::npc_icc_valkyr_heraldAI, npc_icc_severed_essence::npc_icc_severed_essenceAI, npc_icc_spire_frostwyrm, npc_ulduar_dark_rune_guardian::npc_ulduar_dark_rune_guardianAI, npc_ulduar_dark_rune_watcher::npc_ulduar_dark_rune_watcherAI, npc_ulduar_dark_rune_sentinel::npc_ulduar_dark_rune_sentinelAI, boss_thorim_arena_npcs::boss_thorim_arena_npcsAI, npc_q24545_wretched_ghoul::npc_q24545_wretched_ghoulAI, boss_illidan_stormrage::boss_illidan_stormrageAI, boss_nethermancer_sepethrea, boss_chromaggus::boss_chromaggusAI, boss_ragnaros::boss_ragnarosAI, npc_thrall_bfu::npc_thrall_bfuAI, npc_lady_sylvanas_windrunner_bfu::npc_lady_sylvanas_windrunner_bfuAI, boss_ouro, boss_murmur, TurretAI, SmartAI, boss_selin_fireheart::boss_selin_fireheartAI, boss_halion::boss_halionAI, boss_tyrannus::boss_tyrannusAI, npc_pos_freed_slave::npc_pos_freed_slaveAI, boss_flame_leviathan_defense_turret::boss_flame_leviathan_defense_turretAI, npc_mindless_ghoul::npc_mindless_ghoulAI, and npc_inner_demon::npc_inner_demonAI.

189{ return true; }

Referenced by npc_escortAI::AssistPlayerInCombatAgainst().

◆ DamageDealt()

◆ DamageTaken()

virtual void UnitAI::DamageTaken ( Unit ,
uint32 ,
DamageEffectType  ,
SpellSchoolMask   
)
inlinevirtual

Reimplemented in boss_eviscerator::boss_evisceratorAI, ScriptedAI, boss_mor_grayhoof, boss_jeklik, boss_renataki::boss_renatakiAI, boss_venoxis::boss_venoxisAI, boss_isalien, boss_kurinnaxx, boss_huhuran, boss_sartura, boss_garfrost::boss_garfrostAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, boss_professor_putricide::boss_professor_putricideAI, boss_eregos::boss_eregosAI, boss_yoggsaron_influence_tentacle::boss_yoggsaron_influence_tentacleAI, npc_your_inner_turmoil::npc_your_inner_turmoilAI, boss_freya_elder_stonebark::boss_freya_elder_stonebarkAI, boss_gyth::boss_gythAI, boss_lord_valthalak::boss_lord_valthalakAI, npc_blackhand_incarcerator::npc_blackhand_incarceratorAI, boss_quartermaster_zigris, boss_warmaster_voone::boss_warmastervooneAI, boss_nefarian, boss_razorgore::boss_razorgoreAI, boss_baron_geddon::boss_baron_geddonAI, boss_golemagg::boss_golemaggAI, npc_core_rager::npc_core_ragerAI, boss_majordomo::boss_majordomoAI, boss_ragnaros::boss_ragnarosAI, npc_mc_core_hound::npc_mc_core_houndAI, npc_chess_move_trigger, boss_attumen, boss_midnight, npc_netherspite_infernal, boss_julianne, boss_romulo, boss_felblood_kaelthas::boss_felblood_kaelthasAI, npc_mograine::npc_mograineAI, boss_high_inquisitor_whitemane::boss_high_inquisitor_whitemaneAI, boss_kormok, boss_apothecary_hummel::boss_apothecary_hummelAI, boss_kiljaeden::boss_kiljaedenAI, boss_muru::boss_muruAI, npc_bh_thalorien_dawnseeker::npc_bh_thalorien_dawnseekerAI, boss_halazzi::boss_halazziAI, npc_halazzi_lynx::npc_halazzi_lynxAI, boss_thekal::boss_thekalAI, npc_dark_iron_guzzler, npc_coren_direbrew, boss_headless_horseman, boss_headless_horseman_head, npc_pilgrims_bounty_chair, npc_ancient_wisp::npc_ancient_wispAI, npc_doomfire::npc_doomfireAI, npc_doomfire_targetting::npc_doomfire_targettingAI, boss_onyxia, boss_ayamiss, npc_anubisath_guardian, boss_eye_of_cthun, boss_ouro, npc_anubisath_sentinel::aqsentinelAI, npc_anubisath_defender, npc_amanitar_mushrooms, boss_elder_nadox, boss_volazj, boss_jedoga_shadowseeker, boss_taldaram, boss_sartharion::boss_sartharionAI, boss_eadric::boss_eadricAI, boss_paletress::boss_paletressAI, npc_argent_soldier::npc_argent_soldierAI, boss_black_knight::boss_black_knightAI, boss_grand_champion::boss_grand_championAI, npc_announcer_toc5::npc_announcer_toc5AI, npc_frost_sphere::npc_frost_sphereAI, npc_anubarak_spike::npc_anubarak_spikeAI, boss_bronjahm::boss_bronjahmAI, boss_ick::boss_ickAI, npc_pos_deathwhisper_necrolyte::npc_pos_deathwhisper_necrolyteAI, boss_drakkari_colossus::boss_drakkari_colossusAI, npc_gunship::npc_gunshipAI, npc_high_overlord_saurfang_igb::npc_high_overlord_saurfang_igbAI, npc_muradin_bronzebeard_igb::npc_muradin_bronzebeard_igbAI, npc_gunship_boarding_addAI, boss_lady_deathwhisper::boss_lady_deathwhisperAI, boss_sindragosa::boss_sindragosaAI, npc_shambling_horror_icc::npc_shambling_horror_iccAI, npc_valkyr_shadowguard::npc_valkyr_shadowguardAI, npc_terenas_menethil::npc_terenas_menethilAI, boss_valithria_dreamwalker::boss_valithria_dreamwalkerAI, npc_crok_scourgebane::npc_crok_scourgebaneAI, boss_gothik::boss_gothikAI, npc_tesla::npc_teslaAI, boss_malygos::boss_malygosAI, npc_vortex_ride::npc_vortex_rideAI, npc_power_spark::npc_power_sparkAI, npc_crystalline_frayer::npc_crystalline_frayerAI, npc_spark_of_ionar::npc_spark_of_ionarAI, brann_bronzebeard::brann_bronzebeardAI, boss_algalon_the_observer::boss_algalon_the_observerAI, npc_collapsing_star::npc_collapsing_starAI, npc_pool_of_tar::npc_pool_of_tarAI, boss_freya::boss_freyaAI, boss_hodir::boss_hodirAI, npc_ulduar_leviathan_mkii::npc_ulduar_leviathan_mkiiAI, npc_ulduar_vx001::npc_ulduar_vx001AI, npc_ulduar_aerial_command_unit::npc_ulduar_aerial_command_unitAI, boss_razorscale::boss_razorscaleAI, npc_xt002_heart::npc_xt002_heartAI, npc_xt002_boombot::npc_xt002_boombotAI, boss_yoggsaron_immortal_guardian::boss_yoggsaron_immortal_guardianAI, npc_ulduar_arachnopod_destroyer::npc_ulduar_arachnopod_destroyerAI, boss_ingvar_the_plunderer::boss_ingvar_the_plundererAI, npc_vrykul_skeleton::npc_vrykul_skeletonAI, npc_tournament_training_dummy::npc_tournament_training_dummyAI, npc_still_at_it_trigger::npc_still_at_it_triggerAI, npc_overlord_drakuru_betrayal::npc_overlord_drakuru_betrayalAI, boss_illidan_stormrage::boss_illidan_stormrageAI, npc_akama_illidan::npc_akama_illidanAI, boss_essence_of_suffering::boss_essence_of_sufferingAI, boss_essence_of_desire::boss_essence_of_desireAI, boss_vazruden, npc_shattered_hand_scout, npc_millhouse_manastorm::npc_millhouse_manastormAI, boss_commander_sarannis, boss_alar::boss_alarAI, npc_magister_aledis, boss_ysondre::boss_ysondreAI, boss_lethon::boss_lethonAI, boss_emeriss::boss_emerissAI, boss_taerar::boss_taerarAI, npc_training_dummy::npc_training_dummyAI, npc_hor_leader_second::npc_hor_leader_secondAI, npc_ice_tomb::npc_ice_tombAI, npc_blistering_zombie::npc_blistering_zombieAI, npc_tapoke_slim_jahn::npc_tapoke_slim_jahnAI, npc_molten_golem::npc_molten_golemAI, npc_dark_nucleus::npc_dark_nucleusAI, npc_centrifuge_construct::npc_centrifuge_constructAI, BossAI, boss_viscidus, npc_garr_firesworn::npc_garr_fireswornAI, npc_death_knight_initiate::npc_death_knight_initiateAI, boss_kalecgos::boss_kalecgosAI, boss_buru, boss_twinemperorsAI, npc_tiger_matriarch::npc_tiger_matriarchAI, boss_halion::boss_halionAI, boss_twilight_halion::boss_twilight_halionAI, boss_prince_keleseth_icc::boss_prince_kelesethAI, boss_prince_taldaram_icc::boss_prince_taldaramAI, boss_prince_valanar_icc::boss_prince_valanarAI, boss_the_lich_king::boss_the_lich_kingAI, npc_ulduar_iron_construct::npc_ulduar_iron_constructAI, npc_warden_mellichar::npc_warden_mellicharAI, npc_artorius::npc_artoriusAI, npc_franklin::npc_franklinAI, SmartAI, hyjal_trashAI, npc_unkor_the_ruthless::npc_unkor_the_ruthlessAI, npc_ulduar_flash_freeze::npc_ulduar_flash_freezeAI, npc_bartleby::npc_bartlebyAI, npc_calvin_montague::npc_calvin_montagueAI, boss_yoggsaron_crusher_tentacle::boss_yoggsaron_crusher_tentacleAI, boss_thorim_start_npcs::boss_thorim_start_npcsAI, npc_heated_battle::npc_heated_battleAI, npc_infra_green_bomber_generic::npc_infra_green_bomber_genericAI, boss_brutallus::boss_brutallusAI, boss_kalec::boss_kalecAI, boss_sathrovarr::boss_sathrovarrAI, boss_mal_ganis::boss_mal_ganisAI, boss_bug_trio, boss_hadronox::boss_hadronoxAI, boss_razuvious::boss_razuviousAI, boss_flame_leviathan_defense_turret::boss_flame_leviathan_defense_turretAI, boss_kologarn::boss_kologarnAI, boss_kologarn_arms::boss_kologarn_armsAI, boss_thorim::boss_thorimAI, boss_yoggsaron_sara::boss_yoggsaron_saraAI, boss_yoggsaron_brain::boss_yoggsaron_brainAI, npc_wild_wyrm::npc_wild_wyrmAI, and npc_inner_demon::npc_inner_demonAI.

356{}

Referenced by Unit::DealDamage().

◆ DoAction()

virtual void UnitAI::DoAction ( int32  )
inlinevirtual

Reimplemented in npc_grand_magister_rommath::npc_grand_magister_rommathAI, boss_twin_valkyrAI, npc_fos_leader::npc_fos_leaderAI, boss_falric::boss_falricAI, boss_marwyn::boss_marwynAI, npc_ghostly_priest::npc_ghostly_priestAI, npc_phantom_mage::npc_phantom_mageAI, npc_shadowy_mercenary::npc_shadowy_mercenaryAI, npc_spectral_footman::npc_spectral_footmanAI, npc_tortured_rifleman::npc_tortured_riflemanAI, npc_hor_lich_king::npc_hor_lich_kingAI, boss_krick::boss_krickAI, npc_pos_deathwhisper_necrolyte::npc_pos_deathwhisper_necrolyteAI, npc_icc_ice_sphere::npc_icc_ice_sphereAI, npc_icc_severed_essence::npc_icc_severed_essenceAI, npc_ulduar_toasty_fire::npc_ulduar_toasty_fireAI, npc_vh_void_sentry::npc_vh_void_sentryAI, npc_q24545_wretched_ghoul::npc_q24545_wretched_ghoulAI, boss_victor_nefarius::boss_victor_nefariusAI, npc_drakonid_spawner, boss_razorgore::boss_razorgoreAI, boss_majordomo::boss_majordomoAI, boss_ragnaros::boss_ragnarosAI, boss_julianne, boss_romulo, npc_dkc1_gothik::npc_dkc1_gothikAI, boss_kirtonos_the_herald::boss_kirtonos_the_heraldAI, boss_apothecary_hummel::boss_apothecary_hummelAI, npc_apothecary_genericAI, boss_jarien, boss_sothos, npc_eris_hevenfire::npc_eris_hevenfireAI, boss_mandokir::boss_mandokirAI, npc_chained_spirit, boss_thekal::boss_thekalAI, npc_coren_direbrew, npc_direbrew_antagonist, boss_ayamiss, boss_bug_trio, boss_eye_of_cthun, boss_twinemperorsAI, npc_thrall_warchief::npc_thrall_warchiefAI, boss_jedoga_shadowseeker, npc_twilight_volunteer, npc_taldaram_flamesphere, boss_taldaram, boss_baltharus_the_warborn::boss_baltharus_the_warbornAI, npc_xerestrasza::npc_xerestraszaAI, npc_halion_controller::npc_halion_controllerAI, npc_orb_carrier::npc_orb_carrierAI, boss_prince_keleseth_icc::boss_prince_kelesethAI, boss_prince_taldaram_icc::boss_prince_taldaramAI, boss_prince_valanar_icc::boss_prince_valanarAI, npc_ball_of_flame::npc_ball_of_flameAI, npc_kinetic_bomb::npc_kinetic_bombAI, boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, npc_high_overlord_saurfang_icc::npc_high_overlord_saurfangAI, npc_muradin_bronzebeard_icc::npc_muradin_bronzebeard_iccAI, npc_saurfang_event::npc_saurfang_eventAI, npc_high_overlord_saurfang_igb::npc_high_overlord_saurfang_igbAI, npc_muradin_bronzebeard_igb::npc_muradin_bronzebeard_igbAI, boss_lady_deathwhisper::boss_lady_deathwhisperAI, npc_bone_spike::npc_bone_spikeAI, boss_professor_putricide::boss_professor_putricideAI, npc_big_ooze::npc_big_oozeAI, boss_sindragosa::boss_sindragosaAI, npc_spinestalker::npc_spinestalkerAI, npc_rimefang::npc_rimefangAI, boss_the_lich_king::boss_the_lich_kingAI, npc_tirion_fordring_tft::npc_tirion_fordringAI, npc_strangulate_vehicle::npc_strangulate_vehicleAI, npc_terenas_menethil::npc_terenas_menethilAI, boss_valithria_dreamwalker::boss_valithria_dreamwalkerAI, npc_green_dragon_combat_trigger::npc_green_dragon_combat_triggerAI, npc_the_lich_king_controller::npc_the_lich_king_controllerAI, npc_risen_archmage::npc_risen_archmageAI, npc_frost_freeze_trap::npc_frost_freeze_trapAI, npc_crok_scourgebane::npc_crok_scourgebaneAI, boss_sister_svalna::boss_sister_svalnaAI, npc_argent_captainAI, npc_icc_spire_frostwyrm, npc_ioc_gunship_captain::npc_ioc_gunship_captainAI, brann_bronzebeard::brann_bronzebeardAI, boss_algalon_the_observer::boss_algalon_the_observerAI, npc_brann_bronzebeard_algalon::npc_brann_bronzebeard_algalonAI, npc_living_constellation::npc_living_constellationAI, boss_flame_leviathan::boss_flame_leviathanAI, npc_ulduar_vx001::npc_ulduar_vx001AI, npc_ulduar_flames_initial::npc_ulduar_flames_initialAI, boss_broggok, boss_magtheridon, boss_grand_warlock_nethekurse, npc_simon_bunny::npc_simon_bunnyAI, npc_artorius::npc_artoriusAI, npc_nelson::npc_nelsonAI, boss_midnight, boss_cthun, npc_hor_leader::npc_hor_leaderAI, npc_hor_leader_second::npc_hor_leader_secondAI, boss_high_king_maulgar, boss_pathaleon_the_calculator, npc_pos_martin_or_gorkun_second::npc_pos_martin_or_gorkun_secondAI, npc_pos_leader_second::npc_pos_leader_secondAI, boss_sartharion_dragonAI, TotemAI, boss_ambassador_flamelash::boss_ambassador_flamelashAI, npc_chesspiece, npc_highlord_darion_mograine::npc_highlord_darion_mograineAI, npc_madrigosa::npc_madrigosaAI, boss_sacrolash::boss_sacrolashAI, boss_alythess::boss_alythessAI, boss_felmyst::boss_felmystAI, boss_kalecgos::boss_kalecgosAI, boss_sathrovarr::boss_sathrovarrAI, boss_kiljaeden::boss_kiljaedenAI, npc_kalecgos_kj::npc_kalecgos_kjAI, npc_costumed_orphan_matron, npc_hallows_end_soh, boss_headless_horseman, npc_pilgrims_bounty_chair, boss_infinite_corruptor::boss_infinite_corruptorAI, npc_arthas::npc_arthasAI, npc_cos_stratholme_citizien::npc_cos_stratholme_citizienAI, npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, npc_medivh_bm, boss_onyxia, boss_hadronox::boss_hadronoxAI, npc_anub_ar_crusher::npc_anub_ar_crusherAI, boss_sartharion::boss_sartharionAI, npc_twilight_summon::npc_twilight_summonAI, boss_paletress::boss_paletressAI, boss_black_knight::boss_black_knightAI, npc_black_knight_skeletal_gryphon::npc_black_knight_skeletal_gryphonAI, boss_grand_champion::boss_grand_championAI, boss_anubarak_trial::boss_anubarak_trialAI, npc_swarm_scarab::npc_swarm_scarabAI, npc_anubarak_spike::npc_anubarak_spikeAI, npc_snobold_vassal::npc_snobold_vassalAI, boss_gormok::boss_gormokAI, boss_jormungarAI, npc_concentrated_ball::npc_concentrated_ballAI, boss_tharon_ja::boss_tharon_jaAI, boss_tyrannus::boss_tyrannusAI, boss_drakkari_colossus::boss_drakkari_colossusAI, boss_drakkari_elemental::boss_drakkari_elementalAI, npc_living_mojo::npc_living_mojoAI, npc_icc_blood_beast::npc_icc_blood_beastAI, npc_icc_gauntlet_controller::npc_icc_gauntlet_controllerAI, npc_icc_putricades_trap::npc_icc_putricades_trapAI, boss_kelthuzad_minion::boss_kelthuzad_minionAI, boss_sapphiron::boss_sapphironAI, boss_thaddius::boss_thaddiusAI, boss_thaddius_summon::boss_thaddius_summonAI, npc_power_spark::npc_power_sparkAI, npc_hover_disk::npc_hover_diskAI, npc_spark_of_ionar::npc_spark_of_ionarAI, boss_volkhan::boss_volkhanAI, npc_molten_golem::npc_molten_golemAI, boss_sjonnir::boss_sjonnirAI, boss_steelbreaker::boss_steelbreakerAI, boss_auriaya::boss_auriayaAI, npc_auriaya_feral_defender::npc_auriaya_feral_defenderAI, npc_freya_ward::npc_freya_wardAI, npc_mimirons_inferno::npc_mimirons_infernoAI, boss_freya::boss_freyaAI, boss_freya_summons::boss_freya_summonsAI, boss_vezax::boss_vezaxAI, boss_kologarn::boss_kologarnAI, npc_ulduar_aerial_command_unit::npc_ulduar_aerial_command_unitAI, npc_ulduar_bot_summon_trigger::npc_ulduar_bot_summon_triggerAI, boss_thorim::boss_thorimAI, boss_thorim_sif::boss_thorim_sifAI, boss_thorim_ancient_rune_giant::boss_thorim_ancient_rune_giantAI, boss_xt002::boss_xt002AI, npc_xt002_heart::npc_xt002_heartAI, boss_yoggsaron_sara::boss_yoggsaron_saraAI, boss_yoggsaron_cloud::boss_yoggsaron_cloudAI, boss_yoggsaron::boss_yoggsaronAI, boss_yoggsaron_brain::boss_yoggsaron_brainAI, boss_yoggsaron_crusher_tentacle::boss_yoggsaron_crusher_tentacleAI, boss_yoggsaron_corruptor_tentacle::boss_yoggsaron_corruptor_tentacleAI, boss_yoggsaron_constrictor_tentacle::boss_yoggsaron_constrictor_tentacleAI, boss_yoggsaron_keeper::boss_yoggsaron_keeperAI, boss_skarvald_the_constructor::boss_skarvald_the_constructorAI, boss_dalronn_the_controller::boss_dalronn_the_controllerAI, boss_palehoof::boss_palehoofAI, npc_massive_jormungar::npc_massive_jormungarAI, npc_ferocious_rhino::npc_ferocious_rhinoAI, npc_ravenous_furbolg::npc_ravenous_furbolgAI, npc_frenzied_worgen::npc_frenzied_worgenAI, boss_skadi::boss_skadiAI, boss_skadi_grauf::boss_skadi_graufAI, boss_ichoron::boss_ichoronAI, npc_tirions_gambit_tirion::npc_tirions_gambit_tirionAI, boss_ambassador_hellmaw, boss_illidan_stormrage::boss_illidan_stormrageAI, npc_akama_illidan::npc_akama_illidanAI, boss_reliquary_of_souls::boss_reliquary_of_soulsAI, boss_essence_of_suffering::boss_essence_of_sufferingAI, boss_essence_of_desire::boss_essence_of_desireAI, boss_essence_of_anger::boss_essence_of_angerAI, boss_shade_of_akama::boss_shade_of_akamaAI, npc_akama_shade::npc_akamaAI, npc_creature_generator_akama::npc_creature_generator_akamaAI, boss_illidari_council::boss_illidari_councilAI, boss_illidari_council_memberAI, boss_the_lurker_below::boss_the_lurker_belowAI, boss_kelidan_the_breaker, boss_nazan, npc_pet_gen_argent_pony_bridle, npc_elder_clearwater::npc_elder_clearwaterAI, SmartAI, npc_stolen_soul, boss_ghazan, npc_scarlet_miner_cart::npc_scarlet_miner_cartAI, npc_brew_bubble, npc_taretha::npc_tarethaAI, npc_sergeant_bly::npc_sergeant_blyAI, npc_rocket_propelled_warhead::npc_rocket_propelled_warheadAI, and npc_spring_rabbit::npc_spring_rabbitAI.

201{}

Referenced by boss_algalon_the_observer::boss_algalon_the_observerAI::CallConstellations(), spell_the_lich_king_ice_burst_target_search::spell_the_lich_king_ice_burst_target_search_SpellScript::CheckTargetCount(), spell_algalon_big_bang::spell_algalon_big_bang_SpellScript::CheckTargets(), SummonList::DoAction(), boss_illidari_council::boss_illidari_councilAI::DoAction(), BattlegroundIC::HandleCapturedNodes(), spell_halion_twilight_division::spell_halion_twilight_division_SpellScript::HandleDummy(), spell_algalon_trigger_3_adds::spell_algalon_trigger_3_adds_SpellScript::HandleDummyEffect(), spell_kiljaeden_darkness::spell_kiljaeden_darkness_AuraScript::HandleRemove(), spell_taldaram_summon_flame_ball::spell_taldaram_summon_flame_ball_SpellScript::HandleScript(), spell_ayamiss_swarmer_swarm::HandleScript(), spell_xt002_gravity_bomb_damage::spell_xt002_gravity_bomb_damage_SpellScript::HandleScript(), spell_the_lich_king_quake::spell_the_lich_king_quake_SpellScript::HandleSendEvent(), boss_yoggsaron_sara::boss_yoggsaron_saraAI::InformCloud(), boss_drakkari_colossus::boss_drakkari_colossusAI::JustSummoned(), npc_brew_bubble::MoveInLineOfSight(), spell_pilgrims_bounty_serve_generic::OnAuraRemove(), go_palehoof_sphere::OnGossipHello(), npc_pet_gen_argent_pony_bridle::OnGossipSelect(), boss_majordomo::OnGossipSelect(), npc_highlord_darion_mograine::OnGossipSelect(), npc_arthas::OnGossipSelect(), npc_high_overlord_saurfang_icc::OnGossipSelect(), npc_muradin_bronzebeard_icc::OnGossipSelect(), brann_bronzebeard::OnGossipSelect(), npc_fos_leader::OnGossipSelect(), npc_hor_leader::OnGossipSelect(), npc_thrall_old_hillsbrad::OnGossipSelect(), npc_hor_leader_second::OnGossipSelect(), npc_tirions_gambit_tirion::OnGossipSelect(), npc_artorius::OnGossipSelect(), npc_nelson::OnGossipSelect(), spell_xt002_gravity_bomb_aura::spell_xt002_gravity_bomb_aura_AuraScript::OnPeriodic(), instance_ulduar::instance_ulduar_InstanceMapScript::OnPlayerEnter(), boss_apothecary_hummel::OnQuestReward(), npc_thrall_warchief::OnQuestReward(), npc_elder_clearwater::OnQuestReward(), FrostwingGauntletRespawner::operator()(), PretendToDie(), Resurrect(), instance_ahnkahet::instance_ahnkahet_InstanceScript::SetData(), boss_yoggsaron_immortal_guardian::boss_yoggsaron_immortal_guardianAI::SpellHit(), npc_pilgrims_bounty_chair::SpellHitTarget(), boss_zuramat::boss_zuramatAI::SummonedCreatureDespawn(), and boss_prince_valanar_icc::boss_prince_valanarAI::UpdateAI().

◆ DoAddAuraToAllHostilePlayers()

SpellCastResult UnitAI::DoAddAuraToAllHostilePlayers ( uint32  spellid)
136{
137 if (me->IsInCombat())
138 {
140 for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr)
141 {
142 if (Unit* unit = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid()))
143 {
144 if (unit->GetTypeId() == TYPEID_PLAYER)
145 {
146 me->AddAura(spellid, unit);
147 return SPELL_CAST_OK;
148 }
149 }
150 else
152 }
153 }
154
156}
@ TYPEID_PLAYER
Definition: ObjectGuid.h:38
@ SPELL_FAILED_CUSTOM_ERROR
Definition: SharedDefines.h:1093
@ SPELL_FAILED_BAD_TARGETS
Definition: SharedDefines.h:933
@ SPELL_CAST_OK
Definition: SharedDefines.h:1110
Unit * GetUnit(WorldObject const &, ObjectGuid const guid)
Definition: ObjectAccessor.cpp:204
std::list< HostileReference * > StorageType
Definition: ThreatMgr.h:148
ThreatContainer::StorageType const & GetThreatList() const
Definition: ThreatMgr.h:274
Definition: Unit.h:1302
Aura * AddAura(uint32 spellId, Unit *target)
Definition: Unit.cpp:19111
ThreatMgr & GetThreatMgr()
Definition: Unit.h:2157
bool IsInCombat() const
Definition: Unit.h:1700

References Unit::AddAura(), ThreatMgr::GetThreatList(), Unit::GetThreatMgr(), ObjectAccessor::GetUnit(), Unit::IsInCombat(), me, SPELL_CAST_OK, SPELL_FAILED_BAD_TARGETS, SPELL_FAILED_CUSTOM_ERROR, and TYPEID_PLAYER.

◆ DoCast() [1/2]

SpellCastResult UnitAI::DoCast ( uint32  spellId)
179{
180 Unit* target = nullptr;
181
182 switch (AISpellInfo[spellId].target)
183 {
184 default:
185 case AITARGET_SELF:
186 target = me;
187 break;
188 case AITARGET_VICTIM:
189 target = me->GetVictim();
190 break;
191 case AITARGET_ENEMY:
192 {
193 if (SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellId))
194 {
195 bool playerOnly = spellInfo->HasAttribute(SPELL_ATTR3_ONLY_ON_PLAYER);
196 target = SelectTarget(SelectTargetMethod::Random, 0, spellInfo->GetMaxRange(false), playerOnly);
197 }
198 break;
199 }
200 case AITARGET_ALLY:
201 target = me;
202 break;
203 case AITARGET_BUFF:
204 target = me;
205 break;
206 case AITARGET_DEBUFF:
207 {
208 if (SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellId))
209 {
210 bool playerOnly = spellInfo->HasAttribute(SPELL_ATTR3_ONLY_ON_PLAYER);
211 float range = spellInfo->GetMaxRange(false);
212
213 DefaultTargetSelector targetSelector(me, range, playerOnly, true, -(int32)spellId);
214 if (!(spellInfo->AuraInterruptFlags & AURA_INTERRUPT_FLAG_NOT_VICTIM)
215 && targetSelector(me->GetVictim()))
216 target = me->GetVictim();
217 else
218 target = SelectTarget(SelectTargetMethod::Random, 0, targetSelector);
219 }
220 break;
221 }
222 }
223
224 if (target)
225 me->CastSpell(target, spellId, false);
226
228}
std::int32_t int32
Definition: Define.h:104
@ AITARGET_ALLY
Definition: CreatureAIImpl.h:41
@ AITARGET_BUFF
Definition: CreatureAIImpl.h:42
@ AITARGET_SELF
Definition: CreatureAIImpl.h:38
@ AITARGET_VICTIM
Definition: CreatureAIImpl.h:39
@ AITARGET_ENEMY
Definition: CreatureAIImpl.h:40
@ AITARGET_DEBUFF
Definition: CreatureAIImpl.h:43
@ AURA_INTERRUPT_FLAG_NOT_VICTIM
Definition: SpellDefines.h:72
#define sSpellMgr
Definition: SpellMgr.h:825
@ SPELL_ATTR3_ONLY_ON_PLAYER
Definition: SharedDefines.h:473
Definition: UnitAI.h:43
Unit * SelectTarget(SelectTargetMethod targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0)
Definition: UnitAI.cpp:111
static AISpellInfoType * AISpellInfo
Definition: UnitAI.h:384
SpellCastResult CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition: Unit.cpp:1169
Unit * GetVictim() const
Definition: Unit.h:1398
Definition: SpellInfo.h:314

References AISpellInfo, AITARGET_ALLY, AITARGET_BUFF, AITARGET_DEBUFF, AITARGET_ENEMY, AITARGET_SELF, AITARGET_VICTIM, AURA_INTERRUPT_FLAG_NOT_VICTIM, Unit::CastSpell(), Unit::GetVictim(), me, SelectTarget(), SPELL_ATTR3_ONLY_ON_PLAYER, SPELL_FAILED_BAD_TARGETS, and sSpellMgr.

Referenced by npc_rizzle_sprysprocket::npc_rizzle_sprysprocketAI::AttackStart(), boss_victor_nefarius::boss_victor_nefariusAI::BeginEvent(), boss_ouro::CastGroundRupture(), boss_moira_bronzebeardAI::CastOnEmperorIfPossible(), boss_professor_putricide::boss_professor_putricideAI::ChangePhase(), boss_thekal::boss_thekalAI::CheckPhaseTransition(), boss_eviscerator::boss_evisceratorAI::DamageTaken(), boss_renataki::boss_renatakiAI::DamageTaken(), boss_deathbringer_saurfang::boss_deathbringer_saurfangAI::DamageTaken(), boss_gyth::boss_gythAI::DamageTaken(), boss_lord_valthalak::boss_lord_valthalakAI::DamageTaken(), boss_julianne::DamageTaken(), boss_kormok::DamageTaken(), boss_ysondre::boss_ysondreAI::DamageTaken(), boss_lethon::boss_lethonAI::DamageTaken(), boss_emeriss::boss_emerissAI::DamageTaken(), boss_taerar::boss_taerarAI::DamageTaken(), boss_professor_putricide::boss_professor_putricideAI::DoAction(), npc_ioc_gunship_captain::npc_ioc_gunship_captainAI::DoAction(), npc_simon_bunny::npc_simon_bunnyAI::DoAction(), DoCastMaxThreat(), DoCastRandomTarget(), DoCastSelf(), DoCastVictim(), npc_ranshalla::npc_ranshallaAI::DoChannelTorchSpell(), hyjalAI::DoOverrun(), boss_skeram::DoTeleport(), boss_halazzi::boss_halazziAI::EnterPhase(), boss_zuljin::boss_zuljinAI::EnterPhase(), boss_baron_geddon::boss_baron_geddonAI::ExecuteEvent(), boss_gehennas::boss_gehennasAI::ExecuteEvent(), boss_magmadar::boss_magmadarAI::ExecuteEvent(), boss_shazzrah::boss_shazzrahAI::ExecuteEvent(), boss_sulfuron::boss_sulfuronAI::ExecuteEvent(), boss_amanitar::ExecuteEvent(), boss_sartharion_tenebron::boss_sartharion_tenebronAI::ExecuteEvent(), boss_sartharion_shadron::boss_sartharion_shadronAI::ExecuteEvent(), boss_sartharion_vesperon::boss_sartharion_vesperonAI::ExecuteEvent(), emerald_dragonAI::ExecuteEvent(), boss_taerar::boss_taerarAI::ExecuteEvent(), npc_rocket_propelled_warhead::npc_rocket_propelled_warheadAI::FinishQuest(), npc_simon_bunny::npc_simon_bunnyAI::GivePunishment(), npc_simon_bunny::npc_simon_bunnyAI::GiveRewardForLevel(), npc_anachronos_the_ancient::npc_anachronos_the_ancientAI::HandleAnimation(), boss_janalai::boss_janalaiAI::HandleBombSequence(), npc_echo_of_medivh::HandleCheat(), boss_grand_warlock_nethekurse::IntroRP(), boss_attumen::IsSummonedBy(), npc_tiger_matriarch::npc_tiger_matriarchAI::IsSummonedBy(), npc_invisible_tractor_beam_source::IsSummonedBy(), npc_kilrek::JustDied(), npc_anubisath_sentinel::aqsentinelAI::JustDied(), npc_omen::npc_omenAI::JustDied(), boss_deathbringer_saurfang::boss_deathbringer_saurfangAI::JustDied(), CasterAI::JustEngagedWith(), boss_shade_of_aran::JustEngagedWith(), boss_terestian_illhoof::JustEngagedWith(), boss_bigbadwolf::JustEngagedWith(), boss_kormok::JustEngagedWith(), npc_healing_ward::JustEngagedWith(), npc_zealot_lorkhan::npc_zealot_lorkhanAI::JustEngagedWith(), npc_coren_direbrew_sisters::JustEngagedWith(), boss_lieutenant_drake::JustEngagedWith(), npc_obsidian_destroyer::JustEngagedWith(), npc_eye_tentacle::JustEngagedWith(), npc_anubisath_defender::JustEngagedWith(), npc_obsidian_eradicator::JustEngagedWith(), npc_obsidian_nullifier::JustEngagedWith(), npc_centrifuge_construct::npc_centrifuge_constructAI::JustEngagedWith(), boss_exarch_maladaar::JustEngagedWith(), boss_anzu::JustEngagedWith(), boss_talon_king_ikiss::JustEngagedWith(), boss_doomlord_kazzak::boss_doomlordkazzakAI::JustEngagedWith(), boss_doomwalker::boss_doomwalkerAI::JustEngagedWith(), boss_swamplord_muselek::JustEngagedWith(), npc_underbat::JustEngagedWith(), boss_gruul::JustEngagedWith(), boss_kiggler_the_crazed::JustEngagedWith(), boss_blindeye_the_seer::JustEngagedWith(), boss_harbinger_skyriss::JustEngagedWith(), boss_pathaleon_the_calculator::JustEngagedWith(), npc_maghar_captive::npc_maghar_captiveAI::JustEngagedWith(), npc_kurenai_captive::npc_kurenai_captiveAI::JustEngagedWith(), boss_curator::JustEngagedWith(), npc_high_inquisitor_valroth::npc_high_inquisitor_valrothAI::JustEngagedWith(), npc_hivezara_stinger::JustEngagedWith(), boss_vem::JustEngagedWith(), boss_yauj::JustEngagedWith(), boss_fankriss::JustEngagedWith(), boss_twinemperorsAI::JustEngagedWith(), npc_vekniss_stinger::JustEngagedWith(), boss_deathbringer_saurfang::boss_deathbringer_saurfangAI::JustEngagedWith(), boss_erekem::boss_erekemAI::JustEngagedWith(), boss_deathbringer_saurfang::boss_deathbringer_saurfangAI::JustSummoned(), npc_drakuru_shackles::npc_drakuru_shacklesAI::LockRageclaw(), npc_depth_charge::npc_depth_chargeAI::MoveInLineOfSight(), npc_aged_dying_ancient_kodo::npc_aged_dying_ancient_kodoAI::MoveInLineOfSight(), npc_mageguard_dalaran::npc_mageguard_dalaranAI::MoveInLineOfSight(), npc_daranelle::npc_daranelleAI::MoveInLineOfSight(), npc_hive_zara_larva::MovementInform(), npc_frostbrood_skytalon::npc_frostbrood_skytalonAI::MovementInform(), npc_fel_guard_hound::npc_fel_guard_houndAI::MovementInform(), npc_chained_spirit::MovementInform(), npc_vics_flying_machine::npc_vics_flying_machineAI::MovementInform(), npc_akilzon_eagle::npc_akilzon_eagleAI::MovementInform(), boss_mandokir::boss_mandokirAI::OnTeleportUnreacheablePlayer(), npc_rocket_propelled_warhead::npc_rocket_propelled_warheadAI::PassengerBoarded(), npc_simon_bunny::npc_simon_bunnyAI::PlayColor(), npc_lake_frog::npc_lake_frogAI::ReceiveEmote(), npc_dancing_flames::npc_dancing_flamesAI::ReceiveEmote(), npc_plucky::npc_pluckyAI::ReceiveEmote(), boss_halazzi::boss_halazziAI::Reset(), npc_zulian_prowler::npc_zulian_prowlerAI::Reset(), npc_towering_infernal::npc_towering_infernalAI::Reset(), npc_lesser_doomguard::npc_lesser_doomguardAI::Reset(), hyjalAI::Reset(), npc_belnistrasz::npc_belnistraszAI::Reset(), npc_giant_eye_tentacle::Reset(), npc_draenei_survivor::npc_draenei_survivorAI::Reset(), npc_troll_volunteer::npc_troll_volunteerAI::Reset(), npc_plucky::npc_pluckyAI::Reset(), boss_deathbringer_saurfang::boss_deathbringer_saurfangAI::Reset(), npc_violet_hold_defense_system::Reset(), npc_hidden_cultist::npc_hidden_cultistAI::Reset(), npc_tournament_training_dummy::npc_tournament_training_dummyAI::Reset(), npc_blessed_banner::npc_blessed_bannerAI::Reset(), npc_captured_rageclaw::npc_captured_rageclawAI::Reset(), emerald_dragonAI::Reset(), npc_dancing_flames::npc_dancing_flamesAI::Reset(), boss_julianne::ScheduleCombat(), boss_nightbane::ScheduleGround(), boss_baroness_anastari::boss_baroness_anastariAI::SchedulePossession(), boss_commander_sarannis::ScheduleReinforcements(), boss_eye_of_cthun::ScheduleTask(), boss_attumen::ScheduleTasks(), boss_ayamiss::ScheduleTasks(), boss_cthun::ScheduleTasks(), boss_mandokir::boss_mandokirAI::SetGUID(), boss_murmur::SetGUID(), npc_lady_sylvanas_windrunner::npc_lady_sylvanas_windrunnerAI::SetGUID(), npc_kerlonian::npc_kerlonianAI::SetSleeping(), npc_lake_frog::npc_lake_frogAI::sGossipSelect(), boss_strawman::SpellHit(), npc_janalai_firebomb::npc_janalai_firebombAI::SpellHit(), npc_janalai_egg::npc_janalai_eggAI::SpellHit(), npc_argent_captainAI::SpellHit(), npc_frostbrood_skytalon::npc_frostbrood_skytalonAI::SpellHit(), npc_captured_rageclaw::npc_captured_rageclawAI::SpellHit(), npc_zuljin_vortex::npc_zuljin_vortexAI::SpellHit(), npc_forest_frog::npc_forest_frogAI::SpellHit(), npc_draenei_survivor::npc_draenei_survivorAI::SpellHit(), npc_aged_dying_ancient_kodo::npc_aged_dying_ancient_kodoAI::SpellHit(), npc_troll_volunteer::npc_troll_volunteerAI::SpellHit(), npc_wounded_skirmisher::SpellHit(), npc_tournament_training_dummy::npc_tournament_training_dummyAI::SpellHit(), npc_greengill_slave::npc_greengill_slaveAI::SpellHit(), npc_chesspiece::SpellHitTarget(), boss_darkmaster_gandling::boss_darkmaster_gandlingAI::SpellHitTarget(), boss_cthun::SummonedCreatureDies(), npc_drakuru_shackles::npc_drakuru_shacklesAI::UnlockRageclaw(), CombatAI::UpdateAI(), CasterAI::UpdateAI(), npc_av_marshal_or_warmaster::npc_av_marshal_or_warmasterAI::UpdateAI(), ironhand_guardian::ironhand_guardianAI::UpdateAI(), boss_anubshiah::boss_anubshiahAI::UpdateAI(), boss_emperor_dagran_thaurissan::boss_draganthaurissanAI::UpdateAI(), boss_hedrum::boss_hedrumAI::UpdateAI(), boss_high_interrogator_gerstahn::boss_high_interrogator_gerstahnAI::UpdateAI(), boss_okthor::boss_okthorAI::UpdateAI(), boss_doomrel::boss_doomrelAI::UpdateAI(), boss_gyth::boss_gythAI::UpdateAI(), boss_halycon::boss_halyconAI::UpdateAI(), boss_lord_valthalak::boss_lord_valthalakAI::UpdateAI(), boss_pyroguard_emberseer::boss_pyroguard_emberseerAI::UpdateAI(), npc_blackhand_incarcerator::npc_blackhand_incarceratorAI::UpdateAI(), boss_rend_blackhand::boss_rend_blackhandAI::UpdateAI(), npc_rookery_hatcher::npc_rookery_hatcherAI::UpdateAI(), boss_the_beast::boss_thebeastAI::UpdateAI(), npc_vaelastrasz_the_red::npc_vaelastrasz_the_redAI::UpdateAI(), boss_chromaggus::boss_chromaggusAI::UpdateAI(), boss_flamegor::boss_flamegorAI::UpdateAI(), boss_victor_nefarius::boss_victor_nefariusAI::UpdateAI(), boss_nefarian::UpdateAI(), boss_majordomo::boss_majordomoAI::UpdateAI(), npc_flamewaker_priest::npc_flamewaker_priestAI::UpdateAI(), npc_chesspiece::UpdateAI(), npc_cyclone::UpdateAI(), npc_scarlet_miner::npc_scarlet_minerAI::UpdateAI(), npc_high_inquisitor_valroth::npc_high_inquisitor_valrothAI::UpdateAI(), npc_highlord_darion_mograine::npc_highlord_darion_mograineAI::UpdateAI(), npc_valkyr_battle_maiden::npc_valkyr_battle_maidenAI::UpdateAI(), boss_high_inquisitor_whitemane::boss_high_inquisitor_whitemaneAI::UpdateAI(), boss_darkmaster_gandling::boss_darkmaster_gandlingAI::UpdateAI(), boss_felmyst::boss_felmystAI::UpdateAI(), npc_calvin_montague::npc_calvin_montagueAI::UpdateAI(), npc_lady_sylvanas_windrunner::npc_lady_sylvanas_windrunnerAI::UpdateAI(), npc_highborne_lamenter::npc_highborne_lamenterAI::UpdateAI(), npc_varian_wrynn::npc_varian_wrynnAI::UpdateAI(), npc_jaina_proudmoore_bfu::npc_jaina_proudmoore_bfuAI::UpdateAI(), boss_blight_worm::boss_blight_wormAI::UpdateAI(), npc_thrall_bfu::npc_thrall_bfuAI::UpdateAI(), npc_lady_sylvanas_windrunner_bfu::npc_lady_sylvanas_windrunner_bfuAI::UpdateAI(), boss_akilzon::boss_akilzonAI::UpdateAI(), boss_halazzi::boss_halazziAI::UpdateAI(), npc_halazzi_lynx::npc_halazzi_lynxAI::UpdateAI(), boss_hexlord_malacrass::boss_hex_lord_malacrassAI::UpdateAI(), boss_thurg::boss_thurgAI::UpdateAI(), boss_alyson_antille::boss_alyson_antilleAI::UpdateAI(), boss_slither::boss_slitherAI::UpdateAI(), boss_koragg::boss_koraggAI::UpdateAI(), boss_janalai::boss_janalaiAI::UpdateAI(), boss_nalorakk::boss_nalorakkAI::UpdateAI(), boss_zuljin::boss_zuljinAI::UpdateAI(), npc_forest_frog::npc_forest_frogAI::UpdateAI(), npc_harrison_jones::npc_harrison_jonesAI::UpdateAI(), boss_arlokk::boss_arlokkAI::UpdateAI(), boss_grilek::boss_grilekAI::UpdateAI(), boss_hakkar::boss_hakkarAI::UpdateAI(), boss_hazzarah::UpdateAI(), boss_jeklik::UpdateAI(), boss_mandokir::boss_mandokirAI::UpdateAI(), boss_marli::UpdateAI(), boss_renataki::boss_renatakiAI::UpdateAI(), boss_venoxis::boss_venoxisAI::UpdateAI(), boss_wushoolay::boss_wushoolayAI::UpdateAI(), npc_snowfall_glade_playmate::UpdateAI(), boss_anetheron::boss_anetheronAI::UpdateAI(), npc_towering_infernal::npc_towering_infernalAI::UpdateAI(), npc_ancient_wisp::npc_ancient_wispAI::UpdateAI(), boss_archimonde::boss_archimondeAI::UpdateAI(), boss_azgalor::boss_azgalorAI::UpdateAI(), npc_lesser_doomguard::npc_lesser_doomguardAI::UpdateAI(), boss_kazrogal::boss_kazrogalAI::UpdateAI(), boss_rage_winterchill::boss_rage_winterchillAI::UpdateAI(), npc_giant_infernal::npc_giant_infernalAI::UpdateAI(), npc_abomination::npc_abominationAI::UpdateAI(), npc_ghoul::npc_ghoulAI::UpdateAI(), npc_banshee::npc_bansheeAI::UpdateAI(), hyjalAI::UpdateAI(), npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI::UpdateAI(), boss_onyxia::UpdateAI(), npc_belnistrasz::npc_belnistraszAI::UpdateAI(), boss_skeram::UpdateAI(), npc_rizzle_sprysprocket::npc_rizzle_sprysprocketAI::UpdateAI(), npc_omen::npc_omenAI::UpdateAI(), npc_qiraj_war_spawn::npc_qiraj_war_spawnAI::UpdateAI(), npc_aquementas::npc_aquementasAI::UpdateAI(), npc_cairne_bloodhoof::npc_cairne_bloodhoofAI::UpdateAI(), npc_shadowpriest_sezziz::npc_shadowpriest_sezzizAI::UpdateAI(), boss_elder_nadox::UpdateAI(), boss_volazj::UpdateAI(), boss_jedoga_shadowseeker::UpdateAI(), boss_taldaram::UpdateAI(), boss_deathbringer_saurfang::boss_deathbringer_saurfangAI::UpdateAI(), boss_professor_putricide::boss_professor_putricideAI::UpdateAI(), npc_rotting_frost_giant::npc_rotting_frost_giantAI::UpdateAI(), npc_frost_freeze_trap::npc_frost_freeze_trapAI::UpdateAI(), boss_sister_svalna::boss_sister_svalnaAI::UpdateAI(), npc_captain_arnath::npc_captain_arnathAI::UpdateAI(), npc_captain_brandon::npc_captain_brandonAI::UpdateAI(), npc_captain_grondel::npc_captain_grondelAI::UpdateAI(), npc_captain_rupert::npc_captain_rupertAI::UpdateAI(), npc_ioc_gunship_captain::npc_ioc_gunship_captainAI::UpdateAI(), boss_urom::boss_uromAI::UpdateAI(), npc_vrykul_skeleton::npc_vrykul_skeletonAI::UpdateAI(), npc_enslaved_proto_drake::npc_enslaved_proto_drakeAI::UpdateAI(), boss_archavon::boss_archavonAI::UpdateAI(), npc_azure_invader::npc_azure_invaderAI::UpdateAI(), npc_azure_binder::npc_azure_binderAI::UpdateAI(), npc_azure_mage_slayer::npc_azure_mage_slayerAI::UpdateAI(), npc_azure_raider::npc_azure_raiderAI::UpdateAI(), npc_azure_stalker::npc_azure_stalkerAI::UpdateAI(), npc_azure_spellbreaker::npc_azure_spellbreakerAI::UpdateAI(), npc_azure_captain::npc_azure_captainAI::UpdateAI(), npc_azure_sorceror::npc_azure_sorcerorAI::UpdateAI(), npc_sinkhole_kill_credit::npc_sinkhole_kill_creditAI::UpdateAI(), npc_imprisoned_beryl_sorcerer::npc_imprisoned_beryl_sorcererAI::UpdateAI(), npc_minigob_manabonk::npc_minigob_manabonkAI::UpdateAI(), npc_dalaran_mage::npc_dalaran_mageAI::UpdateAI(), npc_dalaran_warrior::npc_dalaran_warriorAI::UpdateAI(), npc_venture_co_straggler::npc_venture_co_stragglerAI::UpdateAI(), npc_lake_frog::npc_lake_frogAI::UpdateAI(), npc_tournament_training_dummy::npc_tournament_training_dummyAI::UpdateAI(), npc_blessed_banner::npc_blessed_bannerAI::UpdateAI(), npc_nether_drake::npc_nether_drakeAI::UpdateAI(), npc_simon_bunny::npc_simon_bunnyAI::UpdateAI(), npc_oscillating_frequency_scanner_master_bunny::npc_oscillating_frequency_scanner_master_bunnyAI::UpdateAI(), npc_magister_aledis::UpdateAI(), npc_maghar_captive::npc_maghar_captiveAI::UpdateAI(), npc_phase_hunter::npc_phase_hunterAI::UpdateAI(), npc_mature_netherwing_drake::npc_mature_netherwing_drakeAI::UpdateAI(), npc_enslaved_netherwing_drake::npc_enslaved_netherwing_drakeAI::UpdateAI(), npc_torloth_the_magnificent::npc_torloth_the_magnificentAI::UpdateAI(), npc_illidari_spawn::npc_illidari_spawnAI::UpdateAI(), npc_unkor_the_ruthless::npc_unkor_the_ruthlessAI::UpdateAI(), guard_shattrath_scryer::guard_shattrath_scryerAI::UpdateAI(), guard_shattrath_aldor::guard_shattrath_aldorAI::UpdateAI(), npc_warmage_coldarra::npc_warmage_coldarraAI::UpdateAI(), npc_zulaman_hostage::npc_zulaman_hostageAI::UpdateAI(), npc_warmage_violetstand::UpdateAI(), npc_wg_spirit_guide::npc_wg_spirit_guideAI::UpdateAI(), npc_apothecary_hanes::npc_Apothecary_HanesAI::UpdateEscortAI(), npc_kurenai_captive::npc_kurenai_captiveAI::UpdateEscortAI(), boss_hexlord_malacrass::boss_hex_lord_malacrassAI::UseAbility(), npc_barnes::npc_barnesAI::WaypointReached(), npc_koltira_deathweaver::npc_koltira_deathweaverAI::WaypointReached(), npc_frost_wyrm::npc_frost_wyrmAI::WaypointReached(), npc_gargoyle::npc_gargoyleAI::WaypointReached(), hyjalAI::WaypointReached(), npc_custodian_of_time::npc_custodian_of_timeAI::WaypointReached(), and npc_isla_starmane::npc_isla_starmaneAI::WaypointReached().

◆ DoCast() [2/2]

SpellCastResult UnitAI::DoCast ( Unit victim,
uint32  spellId,
bool  triggered = false 
)
231{
232 if (!victim)
234
235 if (me->HasUnitState(UNIT_STATE_CASTING) && !triggered)
237
238 return me->CastSpell(victim, spellId, triggered);
239}
@ UNIT_STATE_CASTING
Definition: Unit.h:340
@ SPELL_FAILED_SPELL_IN_PROGRESS
Definition: SharedDefines.h:1026
bool HasUnitState(const uint32 f) const
Definition: Unit.h:1410

References Unit::CastSpell(), Unit::HasUnitState(), me, SPELL_FAILED_BAD_TARGETS, SPELL_FAILED_SPELL_IN_PROGRESS, and UNIT_STATE_CASTING.

◆ DoCastAOE()

SpellCastResult UnitAI::DoCastAOE ( uint32  spellId,
bool  triggered = false 
)
250{
251 if (!triggered && me->HasUnitState(UNIT_STATE_CASTING))
253
254 return me->CastSpell((Unit*)nullptr, spellId, triggered);
255}

References Unit::CastSpell(), Unit::HasUnitState(), me, SPELL_FAILED_SPELL_IN_PROGRESS, and UNIT_STATE_CASTING.

Referenced by boss_mor_grayhoof::CastRandomSpell(), boss_razorgore::boss_razorgoreAI::DamageTaken(), boss_golemagg::boss_golemaggAI::DamageTaken(), boss_midnight::DamageTaken(), npc_garr_firesworn::npc_garr_fireswornAI::DamageTaken(), boss_apothecary_hummel::boss_apothecary_hummelAI::DoAction(), npc_thrall_warchief::npc_thrall_warchiefAI::DoAction(), boss_sindragosa::boss_sindragosaAI::DoAction(), boss_icehowl::boss_icehowlAI::DoTrampleIfValid(), boss_ouro::Emerge(), boss_baron_geddon::boss_baron_geddonAI::ExecuteEvent(), boss_shazzrah::boss_shazzrahAI::ExecuteEvent(), boss_amanitar::ExecuteEvent(), boss_sartharion_shadron::boss_sartharion_shadronAI::ExecuteEvent(), npc_shade_of_jindo::IsSummonedBy(), boss_moam::JustDied(), boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI::JustDied(), boss_professor_putricide::boss_professor_putricideAI::JustDied(), boss_sindragosa::boss_sindragosaAI::JustDied(), boss_majordomo::boss_majordomoAI::JustEngagedWith(), boss_malchezaar::JustEngagedWith(), boss_bigbadwolf::JustEngagedWith(), boss_sothos::JustEngagedWith(), npc_vilebranch_speaker::JustEngagedWith(), boss_azuregos::boss_azuregosAI::JustEngagedWith(), boss_aeonus::JustEngagedWith(), boss_chrono_lord_deja::JustEngagedWith(), boss_temporus::JustEngagedWith(), boss_isalien::JustEngagedWith(), npc_anubisath_guardian::JustEngagedWith(), npc_obsidian_destroyer::JustEngagedWith(), npc_anubisath_defender::JustEngagedWith(), npc_obsidian_eradicator::JustEngagedWith(), npc_anubisath_warder::JustEngagedWith(), npc_obsidian_nullifier::JustEngagedWith(), npc_yor::JustEngagedWith(), boss_talon_king_ikiss::JustEngagedWith(), boss_ambassador_hellmaw::JustEngagedWith(), boss_blackheart_the_inciter::JustEngagedWith(), boss_grandmaster_vorpil::JustEngagedWith(), boss_doomwalker::boss_doomwalkerAI::JustEngagedWith(), boss_mekgineer_steamrigger::JustEngagedWith(), boss_hungarfen::JustEngagedWith(), boss_kiggler_the_crazed::JustEngagedWith(), boss_krosh_firehand::JustEngagedWith(), boss_kelidan_the_breaker::JustEngagedWith(), boss_dalliah_the_doomsayer::JustEngagedWith(), boss_zereketh_the_unbound::JustEngagedWith(), boss_high_botanist_freywinn::JustEngagedWith(), boss_laj::JustEngagedWith(), boss_thorngrin_the_tender::JustEngagedWith(), boss_warp_splinter::JustEngagedWith(), boss_mechano_lord_capacitus::JustEngagedWith(), boss_pathaleon_the_calculator::JustEngagedWith(), boss_vaelastrasz::boss_vaelAI::JustEngagedWith(), boss_maiden_of_virtue::JustEngagedWith(), boss_netherspite::JustEngagedWith(), boss_yauj::JustEngagedWith(), boss_veknilash::JustEngagedWith(), boss_murmur::JustEngagedWith(), boss_warchief_kargath_bladefist::JustEngagedWith(), boss_aeonus::JustReachedHome(), boss_aeonus::MoveInLineOfSight(), boss_chrono_lord_deja::MoveInLineOfSight(), boss_nefarian::MovementInform(), npc_shattered_hand_scout::MovementInform(), boss_majordomo::boss_majordomoAI::MovementInform(), boss_warchief_kargath_bladefist::MovementInform(), npc_shade_of_jindo::Reset(), npc_eye_tentacle::Reset(), npc_claw_tentacle::Reset(), npc_giant_claw_tentacle::Reset(), npc_giant_eye_tentacle::Reset(), boss_talon_king_ikiss::Reset(), boss_hungarfen::Reset(), boss_nightbane::ScheduleGround(), boss_ayamiss::ScheduleTasks(), boss_urom::boss_uromAI::SpellHit(), npc_frostbrood_skytalon::npc_frostbrood_skytalonAI::SpellHit(), npc_crusade_persuaded::npc_crusade_persuadedAI::SpellHit(), boss_majordomo::boss_majordomoAI::SummonedCreatureDies(), boss_fankriss::SummonWorms(), boss_drakkisath::boss_drakkisathAI::UpdateAI(), boss_victor_nefarius::boss_victor_nefariusAI::UpdateAI(), boss_nefarian::UpdateAI(), boss_vaelastrasz::boss_vaelAI::UpdateAI(), boss_garr::boss_garrAI::UpdateAI(), boss_majordomo::boss_majordomoAI::UpdateAI(), boss_ragnaros::boss_ragnarosAI::UpdateAI(), npc_chesspiece::UpdateAI(), npc_crusade_persuaded::npc_crusade_persuadedAI::UpdateAI(), boss_hakkar::boss_hakkarAI::UpdateAI(), boss_marli::UpdateAI(), boss_renataki::boss_renatakiAI::UpdateAI(), boss_wushoolay::boss_wushoolayAI::UpdateAI(), boss_kazrogal::boss_kazrogalAI::UpdateAI(), boss_onyxia::UpdateAI(), npc_onyxian_lair_guard::UpdateAI(), boss_buru::UpdateAI(), boss_moam::UpdateAI(), boss_ossirian::UpdateAI(), boss_huhuran::UpdateAI(), boss_skeram::UpdateAI(), boss_professor_putricide::boss_professor_putricideAI::UpdateAI(), npc_arthas_teleport_visual::npc_arthas_teleport_visualAI::UpdateAI(), boss_four_horsemen::boss_four_horsemenAI::UpdateAI(), npc_azure_captain::npc_azure_captainAI::UpdateAI(), npc_azure_sorceror::npc_azure_sorcerorAI::UpdateAI(), npc_violet_hold_defense_system::UpdateAI(), npc_magister_aledis::UpdateAI(), and npc_onyx_flamecaller::npc_onyx_flamecallerAI::UpdateEscortAI().

◆ DoCastMaxThreat()

SpellCastResult UnitAI::DoCastMaxThreat ( uint32  spellId,
uint32  threatTablePosition = 0,
float  dist = 0.0f,
bool  playerOnly = true,
bool  triggered = false 
)

Cast spell on the max threat target, which may not always be the current victim.

Parameters
uint32spellId Spell ID to cast.
uint32Threat table position.
floatdist Distance from caster to target.
boolplayerOnly Select players only, excludes pets and other npcs.
booltriggered Triggered cast (full triggered mask).
Returns
SpellCastResult
279{
280 if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, threatTablePosition, dist, playerOnly))
281 {
282 return DoCast(target, spellId, triggered);
283 }
284
286}
SpellCastResult DoCast(uint32 spellId)
Definition: UnitAI.cpp:178

References DoCast(), SelectTarget(), and SPELL_FAILED_BAD_TARGETS.

Referenced by boss_moroes::JustEngagedWith().

◆ DoCastRandomTarget()

SpellCastResult UnitAI::DoCastRandomTarget ( uint32  spellId,
uint32  threatTablePosition = 0,
float  dist = 0.0f,
bool  playerOnly = true,
bool  triggered = false 
)
258{
259 if (Unit* target = SelectTarget(SelectTargetMethod::Random, threatTablePosition, dist, playerOnly))
260 {
261 return DoCast(target, spellId, triggered);
262 }
263
265}

References DoCast(), SelectTarget(), and SPELL_FAILED_BAD_TARGETS.

Referenced by boss_broggok::DoAction(), boss_warmaster_voone::boss_warmastervooneAI::ExecuteEvent(), boss_sulfuron::boss_sulfuronAI::ExecuteEvent(), boss_servant_quarters::JustEngagedWith(), boss_dorothee::JustEngagedWith(), boss_strawman::JustEngagedWith(), boss_jarien::JustEngagedWith(), boss_sothos::JustEngagedWith(), boss_twilight_corrupter::JustEngagedWith(), npc_batrider::JustEngagedWith(), boss_azuregos::boss_azuregosAI::JustEngagedWith(), boss_isalien::JustEngagedWith(), npc_anubisath_guardian::JustEngagedWith(), npc_icc_spire_frostwyrm::JustEngagedWith(), boss_exarch_maladaar::JustEngagedWith(), boss_tavarok::JustEngagedWith(), boss_darkweaver_syth::JustEngagedWith(), boss_blackheart_the_inciter::JustEngagedWith(), boss_grandmaster_vorpil::JustEngagedWith(), boss_rokmar_the_crackler::JustEngagedWith(), boss_hydromancer_thespia::JustEngagedWith(), boss_mekgineer_steamrigger::JustEngagedWith(), boss_warlord_kalithresh::JustEngagedWith(), boss_ghazan::JustEngagedWith(), boss_the_black_stalker::JustEngagedWith(), boss_gruul::JustEngagedWith(), boss_olm_the_summoner::JustEngagedWith(), boss_the_maker::JustEngagedWith(), boss_omor_the_unscarred::JustEngagedWith(), boss_nazan::JustEngagedWith(), boss_harbinger_skyriss::JustEngagedWith(), boss_zereketh_the_unbound::JustEngagedWith(), boss_thorngrin_the_tender::JustEngagedWith(), boss_gatewatcher_gyrokill::JustEngagedWith(), boss_pathaleon_the_calculator::JustEngagedWith(), boss_maiden_of_virtue::JustEngagedWith(), boss_moroes::JustEngagedWith(), boss_netherspite::JustEngagedWith(), boss_veknilash::JustEngagedWith(), boss_pandemonius::JustEngagedWith(), boss_murmur::JustEngagedWith(), boss_grand_warlock_nethekurse::JustEngagedWith(), boss_nazan::MovementInform(), boss_malchezaar::Reset(), boss_high_king_maulgar::Reset(), boss_julianne::ScheduleCombat(), boss_nightbane::ScheduleFly(), boss_nightbane::ScheduleGround(), boss_netherspite::SwitchToBanishPhase(), boss_pyroguard_emberseer::boss_pyroguard_emberseerAI::UpdateAI(), boss_the_beast::boss_thebeastAI::UpdateAI(), boss_victor_nefarius::boss_victor_nefariusAI::UpdateAI(), boss_golemagg::boss_golemaggAI::UpdateAI(), boss_ragnaros::boss_ragnarosAI::UpdateAI(), boss_jeklik::UpdateAI(), boss_jindo::UpdateAI(), boss_marli::UpdateAI(), boss_huhuran::UpdateAI(), and boss_viscidus::UpdateAI().

◆ DoCastSelf()

SpellCastResult UnitAI::DoCastSelf ( uint32  spellId,
bool  triggered = false 
)
inline
369{ return DoCast(me, spellId, triggered); }

References DoCast(), and me.

Referenced by boss_hakkar::boss_hakkarAI::ApplyHakkarPowerStacks(), boss_moira_bronzebeardAI::CastOnEmperorIfPossible(), boss_mor_grayhoof::CastRandomSpell(), boss_thekal::boss_thekalAI::CheckPhaseTransition(), boss_mor_grayhoof::DamageTaken(), boss_kurinnaxx::DamageTaken(), boss_huhuran::DamageTaken(), boss_sartura::DamageTaken(), boss_quartermaster_zigris::DamageTaken(), boss_golemagg::boss_golemaggAI::DamageTaken(), npc_core_rager::npc_core_ragerAI::DamageTaken(), npc_mc_core_hound::npc_mc_core_houndAI::DamageTaken(), boss_apothecary_hummel::boss_apothecary_hummelAI::DamageTaken(), boss_thekal::boss_thekalAI::DamageTaken(), boss_ayamiss::DamageTaken(), npc_anubisath_guardian::DamageTaken(), boss_ouro::DamageTaken(), npc_anubisath_sentinel::aqsentinelAI::DamageTaken(), npc_anubisath_defender::DamageTaken(), npc_amanitar_mushrooms::DamageTaken(), boss_volazj::DamageTaken(), boss_sartharion::boss_sartharionAI::DamageTaken(), boss_vazruden::DamageTaken(), npc_millhouse_manastorm::npc_millhouse_manastormAI::DamageTaken(), boss_viscidus::DamageTaken(), npc_garr_firesworn::npc_garr_fireswornAI::DamageTaken(), boss_buru::DamageTaken(), boss_victor_nefarius::boss_victor_nefariusAI::DoAction(), boss_jarien::DoAction(), boss_sothos::DoAction(), boss_bug_trio::DoAction(), boss_twinemperorsAI::DoAction(), npc_twilight_volunteer::DoAction(), boss_taldaram::DoAction(), boss_broggok::DoAction(), boss_cthun::DoAction(), boss_pathaleon_the_calculator::DoAction(), boss_sartharion::boss_sartharionAI::DoAction(), boss_razorgore::boss_razorgoreAI::DoChangePhase(), boss_bug_trio::DoFinalSpell(), boss_ouro::Emerge(), boss_buru::EnterEvadeMode(), boss_nethermancer_sepethrea::EnterEvadeMode(), boss_ouro::EnterEvadeMode(), boss_warmaster_voone::boss_warmastervooneAI::ExecuteEvent(), boss_magmadar::boss_magmadarAI::ExecuteEvent(), boss_shazzrah::boss_shazzrahAI::ExecuteEvent(), boss_sulfuron::boss_sulfuronAI::ExecuteEvent(), boss_amanitar::ExecuteEvent(), boss_sartharion_vesperon::boss_sartharion_vesperonAI::ExecuteEvent(), npc_eye_of_acherus::InitializeAI(), npc_toxic_slime::InitializeAI(), boss_taldaram::InitializeAI(), boss_ambassador_hellmaw::InitializeAI(), npc_underbog_mushroom::InitializeAI(), boss_kormok::IsSummonedBy(), npc_shade_of_jindo::IsSummonedBy(), npc_taldaram_flamesphere::IsSummonedBy(), npc_raging_flames::IsSummonedBy(), npc_drakonid_spawner::IsSummonedBy(), boss_attumen::IsSummonedBy(), npc_demon_chain::IsSummonedBy(), npc_anubisath_guardian::JustDied(), npc_obsidian_destroyer::JustDied(), npc_anubisath_sentinel::aqsentinelAI::JustDied(), npc_anubisath_defender::JustDied(), boss_volazj::JustDied(), npc_taldaram_flamesphere::JustDied(), boss_nethermancer_sepethrea::JustDied(), npc_buru_egg::JustDied(), boss_garr::boss_garrAI::JustEngagedWith(), boss_majordomo::boss_majordomoAI::JustEngagedWith(), boss_servant_quarters::JustEngagedWith(), boss_terestian_illhoof::JustEngagedWith(), boss_dorothee::JustEngagedWith(), boss_roar::JustEngagedWith(), boss_tinhead::JustEngagedWith(), boss_sothos::JustEngagedWith(), boss_jeklik::JustEngagedWith(), boss_renataki::boss_renatakiAI::JustEngagedWith(), boss_thekal::boss_thekalAI::JustEngagedWith(), npc_zealot_lorkhan::npc_zealot_lorkhanAI::JustEngagedWith(), npc_zealot_zath::npc_zealot_zathAI::JustEngagedWith(), npc_coren_direbrew_sisters::JustEngagedWith(), boss_azuregos::boss_azuregosAI::JustEngagedWith(), boss_epoch_hunter::JustEngagedWith(), boss_lieutenant_drake::JustEngagedWith(), boss_aeonus::JustEngagedWith(), boss_temporus::JustEngagedWith(), npc_anubisath_guardian::JustEngagedWith(), npc_dirt_mound::JustEngagedWith(), npc_anubisath_defender::JustEngagedWith(), boss_volazj::JustEngagedWith(), boss_exarch_maladaar::JustEngagedWith(), boss_nexusprince_shaffar::JustEngagedWith(), boss_tavarok::JustEngagedWith(), boss_anzu::JustEngagedWith(), boss_ambassador_hellmaw::JustEngagedWith(), boss_blackheart_the_inciter::JustEngagedWith(), boss_grandmaster_vorpil::JustEngagedWith(), boss_doomlord_kazzak::boss_doomlordkazzakAI::JustEngagedWith(), boss_doomwalker::boss_doomwalkerAI::JustEngagedWith(), boss_mennu_the_betrayer::JustEngagedWith(), boss_quagmirran::JustEngagedWith(), boss_rokmar_the_crackler::JustEngagedWith(), boss_mekgineer_steamrigger::JustEngagedWith(), boss_warlord_kalithresh::JustEngagedWith(), boss_the_black_stalker::JustEngagedWith(), boss_gruul::JustEngagedWith(), boss_high_king_maulgar::JustEngagedWith(), boss_olm_the_summoner::JustEngagedWith(), boss_blindeye_the_seer::JustEngagedWith(), boss_krosh_firehand::JustEngagedWith(), boss_kelidan_the_breaker::JustEngagedWith(), boss_omor_the_unscarred::JustEngagedWith(), boss_dalliah_the_doomsayer::JustEngagedWith(), boss_high_botanist_freywinn::JustEngagedWith(), boss_laj::JustEngagedWith(), boss_thorngrin_the_tender::JustEngagedWith(), boss_gatewatcher_iron_hand::JustEngagedWith(), boss_mechano_lord_capacitus::JustEngagedWith(), boss_nethermancer_sepethrea::JustEngagedWith(), boss_pathaleon_the_calculator::JustEngagedWith(), boss_sartharion::boss_sartharionAI::JustEngagedWith(), boss_curator::JustEngagedWith(), boss_maiden_of_virtue::JustEngagedWith(), boss_moroes::JustEngagedWith(), boss_netherspite::JustEngagedWith(), npc_ohgan::npc_ohganAI::JustEngagedWith(), boss_buru::JustEngagedWith(), boss_ossirian::JustEngagedWith(), boss_twinemperorsAI::JustEngagedWith(), boss_pandemonius::JustEngagedWith(), boss_lethon::boss_lethonAI::JustEngagedWith(), boss_twilight_corrupter::KilledUnit(), boss_mandokir::boss_mandokirAI::KilledUnit(), boss_volazj::KilledUnit(), boss_doomlord_kazzak::boss_doomlordkazzakAI::KilledUnit(), npc_ouro_spawner::MoveInLineOfSight(), npc_icc_nerubar_broodkeeper::npc_icc_nerubar_broodkeeperAI::MoveInLineOfSight(), npc_shattered_hand_scout::MoveInLineOfSight(), npc_eye_of_acherus::MovementInform(), boss_ayamiss::MovementInform(), boss_bug_trio::MovementInform(), npc_twilight_volunteer::MovementInform(), boss_nazan::MovementInform(), boss_jedoga_shadowseeker::MovementInform(), boss_glob_of_viscidus::MovementInform(), npc_hive_zara_swarmer::PathEndReached(), boss_golemagg::boss_golemaggAI::Reset(), npc_core_rager::npc_core_ragerAI::Reset(), npc_chesspiece::Reset(), boss_curator::Reset(), boss_moroes::Reset(), boss_malchezaar::Reset(), boss_servant_quarters::Reset(), boss_jeklik::Reset(), npc_ouro_spawner::Reset(), npc_dirt_mound::Reset(), npc_amanitar_mushrooms::Reset(), npc_ahnkahar_nerubian::Reset(), boss_exarch_maladaar::Reset(), boss_darkweaver_syth::Reset(), boss_talon_king_ikiss::Reset(), boss_mennu_the_betrayer::Reset(), boss_rokmar_the_crackler::Reset(), boss_ghazan::Reset(), boss_hungarfen::Reset(), boss_high_king_maulgar::Reset(), boss_kelidan_the_breaker::Reset(), boss_omor_the_unscarred::Reset(), boss_watchkeeper_gargolmar::Reset(), boss_magtheridon::Reset(), boss_grand_warlock_nethekurse::Reset(), boss_harbinger_skyriss::Reset(), boss_laj::Reset(), boss_pathaleon_the_calculator::Reset(), boss_julianne::ScheduleCombat(), boss_magtheridon::ScheduleCombatEvents(), boss_baroness_anastari::boss_baroness_anastariAI::SchedulePossession(), boss_ayamiss::ScheduleTasks(), npc_warchief_portal::SetData(), npc_thassarian2::npc_thassarian2AI::sGossipHello(), npc_netherspite_infernal::SpellHit(), boss_viscidus::SpellHit(), boss_ouro::Submerge(), boss_cthun::SummonedCreatureDies(), boss_apothecary_hummel::boss_apothecary_hummelAI::SummonedCreatureDies(), boss_jedoga_shadowseeker::SummonedCreatureDies(), boss_terestian_illhoof::SummonKilrek(), boss_netherspite::SwitchToBanishPhase(), boss_netherspite::SwitchToPortalPhase(), boss_emperor_dagran_thaurissan::boss_draganthaurissanAI::UpdateAI(), boss_gorosh_the_dervish::boss_gorosh_the_dervishAI::UpdateAI(), boss_grizzle::boss_grizzleAI::UpdateAI(), boss_drakkisath::boss_drakkisathAI::UpdateAI(), boss_victor_nefarius::boss_victor_nefariusAI::UpdateAI(), boss_garr::boss_garrAI::UpdateAI(), boss_golemagg::boss_golemaggAI::UpdateAI(), boss_majordomo::boss_majordomoAI::UpdateAI(), boss_ragnaros::boss_ragnarosAI::UpdateAI(), npc_chesspiece::UpdateAI(), npc_eye_of_acherus::UpdateAI(), boss_darkmaster_gandling::boss_darkmaster_gandlingAI::UpdateAI(), boss_arlokk::boss_arlokkAI::UpdateAI(), boss_grilek::boss_grilekAI::UpdateAI(), boss_hakkar::boss_hakkarAI::UpdateAI(), boss_hazzarah::UpdateAI(), boss_jeklik::UpdateAI(), boss_jindo::UpdateAI(), boss_marli::UpdateAI(), boss_renataki::boss_renatakiAI::UpdateAI(), boss_venoxis::boss_venoxisAI::UpdateAI(), npc_coren_direbrew::UpdateAI(), npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI::UpdateAI(), npc_onyxian_lair_guard::UpdateAI(), boss_buru::UpdateAI(), boss_kurinnaxx::UpdateAI(), boss_moam::UpdateAI(), boss_ossirian::UpdateAI(), boss_huhuran::UpdateAI(), boss_sartura::UpdateAI(), npc_sartura_royal_guard::UpdateAI(), boss_viscidus::UpdateAI(), npc_sergeant_bly::npc_sergeant_blyAI::UpdateAI(), npc_weegli_blastfuse::npc_weegli_blastfuseAI::UpdateAI(), npc_amanitar_mushrooms::UpdateAI(), boss_elder_nadox::UpdateAI(), npc_ahnkahar_nerubian::UpdateAI(), boss_jedoga_shadowseeker::UpdateAI(), npc_taldaram_flamesphere::UpdateAI(), boss_taldaram::UpdateAI(), boss_sartharion::boss_sartharionAI::UpdateAI(), boss_rotface::boss_rotfaceAI::UpdateAI(), boss_noth::boss_nothAI::UpdateAI(), npc_counselor_talbot::npc_counselor_talbotAI::UpdateAI(), npc_pet_hunter_snake_trap::UpdateAI(), and npc_general_andorov::UpdateEscortAI().

◆ DoCastToAllHostilePlayers()

SpellCastResult UnitAI::DoCastToAllHostilePlayers ( uint32  spellid,
bool  triggered = false 
)
159{
160 if (me->IsInCombat())
161 {
163 for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr)
164 {
165 if (Unit* unit = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid()))
166 {
167 if (unit->GetTypeId() == TYPEID_PLAYER)
168 return me->CastSpell(unit, spellid, triggered);
169 }
170 else
172 }
173 }
174
176}

References Unit::CastSpell(), ThreatMgr::GetThreatList(), Unit::GetThreatMgr(), ObjectAccessor::GetUnit(), Unit::IsInCombat(), me, SPELL_FAILED_BAD_TARGETS, SPELL_FAILED_CUSTOM_ERROR, and TYPEID_PLAYER.

◆ DoCastVictim()

SpellCastResult UnitAI::DoCastVictim ( uint32  spellId,
bool  triggered = false 
)
242{
243 if (Unit* victim = me->GetVictim())
244 return DoCast(victim, spellId, triggered);
245
247}

References DoCast(), Unit::GetVictim(), me, and SPELL_FAILED_BAD_TARGETS.

Referenced by boss_mor_grayhoof::CastRandomSpell(), boss_thekal::boss_thekalAI::CheckPhaseTransition(), boss_apothecary_hummel::boss_apothecary_hummelAI::DoAction(), boss_broggok::DoAction(), boss_zuljin::boss_zuljinAI::DoMeleeAttackIfReady(), boss_ouro::Emerge(), boss_solakar_flamewreath::boss_solakar_flamewreathAI::ExecuteEvent(), boss_warmaster_voone::boss_warmastervooneAI::ExecuteEvent(), boss_gehennas::boss_gehennasAI::ExecuteEvent(), boss_lucifron::boss_lucifronAI::ExecuteEvent(), boss_magmadar::boss_magmadarAI::ExecuteEvent(), boss_shazzrah::boss_shazzrahAI::ExecuteEvent(), boss_sulfuron::boss_sulfuronAI::ExecuteEvent(), boss_amanitar::ExecuteEvent(), boss_sartharion_tenebron::boss_sartharion_tenebronAI::ExecuteEvent(), boss_sartharion_shadron::boss_sartharion_shadronAI::ExecuteEvent(), boss_sartharion_vesperon::boss_sartharion_vesperonAI::ExecuteEvent(), boss_ysondre::boss_ysondreAI::ExecuteEvent(), boss_emeriss::boss_emerissAI::ExecuteEvent(), boss_attumen::IsSummonedBy(), boss_malchezaar::JustEngagedWith(), boss_servant_quarters::JustEngagedWith(), npc_aran_elemental::JustEngagedWith(), npc_kilrek::JustEngagedWith(), npc_fiendish_imp::JustEngagedWith(), boss_terestian_illhoof::JustEngagedWith(), npc_tito::JustEngagedWith(), boss_roar::JustEngagedWith(), boss_strawman::JustEngagedWith(), boss_tinhead::JustEngagedWith(), boss_crone::JustEngagedWith(), boss_bigbadwolf::JustEngagedWith(), boss_kormok::JustEngagedWith(), boss_baroness_anastari::boss_baroness_anastariAI::JustEngagedWith(), boss_jarien::JustEngagedWith(), boss_sothos::JustEngagedWith(), boss_twilight_corrupter::JustEngagedWith(), npc_shade_of_jindo::JustEngagedWith(), npc_vilebranch_speaker::JustEngagedWith(), boss_thekal::boss_thekalAI::JustEngagedWith(), npc_zealot_lorkhan::npc_zealot_lorkhanAI::JustEngagedWith(), npc_zealot_zath::npc_zealot_zathAI::JustEngagedWith(), npc_hallows_end_soh::JustEngagedWith(), boss_azuregos::boss_azuregosAI::JustEngagedWith(), boss_epoch_hunter::JustEngagedWith(), boss_lieutenant_drake::JustEngagedWith(), boss_aeonus::JustEngagedWith(), boss_chrono_lord_deja::JustEngagedWith(), boss_temporus::JustEngagedWith(), npc_claw_tentacle::JustEngagedWith(), npc_icc_spire_frostwyrm::JustEngagedWith(), boss_nexusprince_shaffar::JustEngagedWith(), boss_tavarok::JustEngagedWith(), boss_ambassador_hellmaw::JustEngagedWith(), boss_doomlord_kazzak::boss_doomlordkazzakAI::JustEngagedWith(), boss_doomwalker::boss_doomwalkerAI::JustEngagedWith(), boss_mennu_the_betrayer::JustEngagedWith(), boss_quagmirran::JustEngagedWith(), boss_rokmar_the_crackler::JustEngagedWith(), boss_mekgineer_steamrigger::JustEngagedWith(), boss_warlord_kalithresh::JustEngagedWith(), boss_ghazan::JustEngagedWith(), boss_swamplord_muselek::JustEngagedWith(), boss_gruul::JustEngagedWith(), boss_high_king_maulgar::JustEngagedWith(), boss_olm_the_summoner::JustEngagedWith(), boss_kiggler_the_crazed::JustEngagedWith(), boss_krosh_firehand::JustEngagedWith(), boss_vazruden::JustEngagedWith(), boss_watchkeeper_gargolmar::JustEngagedWith(), boss_dalliah_the_doomsayer::JustEngagedWith(), boss_commander_sarannis::JustEngagedWith(), boss_laj::JustEngagedWith(), boss_gatewatcher_gyrokill::JustEngagedWith(), boss_gatewatcher_iron_hand::JustEngagedWith(), boss_mechano_lord_capacitus::JustEngagedWith(), boss_nethermancer_sepethrea::JustEngagedWith(), boss_curator::JustEngagedWith(), boss_midnight::JustEngagedWith(), boss_moroes::JustEngagedWith(), npc_ohgan::npc_ohganAI::JustEngagedWith(), boss_kri::JustEngagedWith(), boss_vem::JustEngagedWith(), boss_yauj::JustEngagedWith(), boss_fankriss::JustEngagedWith(), boss_veknilash::JustEngagedWith(), boss_veklor::JustEngagedWith(), boss_murmur::JustEngagedWith(), boss_grand_warlock_nethekurse::JustEngagedWith(), boss_porung::JustEngagedWith(), boss_ayamiss::MovementInform(), boss_nazan::MovementInform(), boss_servant_quarters::MovementInform(), boss_malchezaar::Reset(), npc_apothecary_baxter::Reset(), npc_stolen_soul::Reset(), boss_high_king_maulgar::Reset(), boss_magtheridon::ScheduleCombatEvents(), boss_nightbane::ScheduleFly(), boss_nightbane::ScheduleGround(), boss_attumen::ScheduleTasks(), boss_ayamiss::ScheduleTasks(), boss_archimonde::boss_archimondeAI::UnleashSoulCharge(), npc_daphne_stilwell::npc_daphne_stilwellAI::Update(), npc_av_marshal_or_warmaster::npc_av_marshal_or_warmasterAI::UpdateAI(), npc_water_elemental::npc_water_elementalAI::UpdateAI(), boss_balinda::boss_balindaAI::UpdateAI(), boss_drekthar::boss_drektharAI::UpdateAI(), boss_galvangar::boss_galvangarAI::UpdateAI(), boss_vanndar::boss_vanndarAI::UpdateAI(), npc_phalanx::npc_phalanxAI::UpdateAI(), boss_ambassador_flamelash::boss_ambassador_flamelashAI::UpdateAI(), boss_anubshiah::boss_anubshiahAI::UpdateAI(), boss_eviscerator::boss_evisceratorAI::UpdateAI(), boss_general_angerforge::boss_general_angerforgeAI::UpdateAI(), boss_gorosh_the_dervish::boss_gorosh_the_dervishAI::UpdateAI(), boss_grizzle::boss_grizzleAI::UpdateAI(), boss_hedrum::boss_hedrumAI::UpdateAI(), boss_high_interrogator_gerstahn::boss_high_interrogator_gerstahnAI::UpdateAI(), boss_magmus::boss_magmusAI::UpdateAI(), boss_moira_bronzebeardAI::UpdateAI(), boss_high_priestess_thaurissanAI::UpdateAI(), boss_doomrel::boss_doomrelAI::UpdateAI(), boss_drakkisath::boss_drakkisathAI::UpdateAI(), boss_gyth::boss_gythAI::UpdateAI(), boss_halycon::boss_halyconAI::UpdateAI(), boss_highlord_omokk::boss_highlordomokkAI::UpdateAI(), boss_lord_valthalak::boss_lord_valthalakAI::UpdateAI(), boss_overlord_wyrmthalak::boss_overlordwyrmthalakAI::UpdateAI(), npc_blackhand_incarcerator::npc_blackhand_incarceratorAI::UpdateAI(), boss_quartermaster_zigris::UpdateAI(), boss_rend_blackhand::boss_rend_blackhandAI::UpdateAI(), boss_the_beast::boss_thebeastAI::UpdateAI(), boss_urok_doomhowl::boss_urok_doomhowlAI::UpdateAI(), boss_broodlord::boss_broodlordAI::UpdateAI(), boss_chromaggus::boss_chromaggusAI::UpdateAI(), boss_ebonroc::boss_ebonrocAI::UpdateAI(), boss_firemaw::boss_firemawAI::UpdateAI(), boss_flamegor::boss_flamegorAI::UpdateAI(), boss_nefarian::UpdateAI(), boss_razorgore::boss_razorgoreAI::UpdateAI(), boss_vaelastrasz::boss_vaelAI::UpdateAI(), npc_core_rager::npc_core_ragerAI::UpdateAI(), boss_ragnaros::boss_ragnarosAI::UpdateAI(), npc_flamewaker_priest::npc_flamewaker_priestAI::UpdateAI(), npc_mc_core_hound::npc_mc_core_houndAI::UpdateAI(), npc_unworthy_initiate::npc_unworthy_initiateAI::UpdateAI(), npc_high_inquisitor_valroth::npc_high_inquisitor_valrothAI::UpdateAI(), npc_highlord_darion_mograine::npc_highlord_darion_mograineAI::UpdateAI(), boss_darkmaster_gandling::boss_darkmaster_gandlingAI::UpdateAI(), npc_sentinel_leader::UpdateAI(), npc_sentinel_infiltrator::UpdateAI(), npc_corporal_keeshan::npc_corporal_keeshanAI::UpdateAI(), npc_varian_wrynn::npc_varian_wrynnAI::UpdateAI(), npc_thrall_bfu::npc_thrall_bfuAI::UpdateAI(), npc_lady_sylvanas_windrunner_bfu::npc_lady_sylvanas_windrunner_bfuAI::UpdateAI(), boss_akilzon::boss_akilzonAI::UpdateAI(), boss_halazzi::boss_halazziAI::UpdateAI(), npc_halazzi_lynx::npc_halazzi_lynxAI::UpdateAI(), boss_thurg::boss_thurgAI::UpdateAI(), boss_gazakrothAI::UpdateAI(), boss_lord_raadan::boss_lord_raadanAI::UpdateAI(), boss_darkheart::boss_darkheartAI::UpdateAI(), boss_koragg::boss_koraggAI::UpdateAI(), npc_janalai_hatchling::npc_janalai_hatchlingAI::UpdateAI(), boss_nalorakk::boss_nalorakkAI::UpdateAI(), boss_arlokk::boss_arlokkAI::UpdateAI(), boss_gahzranka::boss_gahzrankaAI::UpdateAI(), boss_grilek::boss_grilekAI::UpdateAI(), boss_hakkar::boss_hakkarAI::UpdateAI(), boss_hazzarah::UpdateAI(), boss_jeklik::UpdateAI(), boss_jindo::UpdateAI(), boss_mandokir::boss_mandokirAI::UpdateAI(), boss_marli::UpdateAI(), boss_archimonde::boss_archimondeAI::UpdateAI(), boss_azgalor::boss_azgalorAI::UpdateAI(), boss_rage_winterchill::boss_rage_winterchillAI::UpdateAI(), npc_giant_infernal::npc_giant_infernalAI::UpdateAI(), npc_abomination::npc_abominationAI::UpdateAI(), npc_necromancer::npc_necromancerAI::UpdateAI(), npc_banshee::npc_bansheeAI::UpdateAI(), npc_crypt_fiend::npc_crypt_fiendAI::UpdateAI(), npc_fel_stalker::npc_fel_stalkerAI::UpdateAI(), npc_frost_wyrm::npc_frost_wyrmAI::UpdateAI(), npc_gargoyle::npc_gargoyleAI::UpdateAI(), boss_onyxia::UpdateAI(), npc_belnistrasz::npc_belnistraszAI::UpdateAI(), boss_buru::UpdateAI(), boss_kurinnaxx::UpdateAI(), boss_ossirian::UpdateAI(), boss_huhuran::UpdateAI(), boss_sartura::UpdateAI(), npc_sartura_royal_guard::UpdateAI(), boss_skeram::UpdateAI(), npc_death_ravager::npc_death_ravagerAI::UpdateAI(), npc_tiger_matriarch::npc_tiger_matriarchAI::UpdateAI(), npc_omen::npc_omenAI::UpdateAI(), npc_aquementas::npc_aquementasAI::UpdateAI(), npc_cairne_bloodhoof::npc_cairne_bloodhoofAI::UpdateAI(), npc_ame::npc_ameAI::UpdateAI(), npc_sergeant_bly::npc_sergeant_blyAI::UpdateAI(), npc_weegli_blastfuse::npc_weegli_blastfuseAI::UpdateAI(), npc_shadowpriest_sezziz::npc_shadowpriest_sezzizAI::UpdateAI(), boss_elder_nadox::UpdateAI(), boss_volazj::UpdateAI(), boss_sartharion::boss_sartharionAI::UpdateAI(), npc_twilight_summon::npc_twilight_summonAI::UpdateAI(), boss_deathbringer_saurfang::boss_deathbringer_saurfangAI::UpdateAI(), boss_lord_marrowgar::UpdateAI(), npc_rotting_frost_giant::npc_rotting_frost_giantAI::UpdateAI(), npc_crok_scourgebane::npc_crok_scourgebaneAI::UpdateAI(), npc_captain_arnath::npc_captain_arnathAI::UpdateAI(), npc_captain_brandon::npc_captain_brandonAI::UpdateAI(), npc_captain_grondel::npc_captain_grondelAI::UpdateAI(), boss_four_horsemen::boss_four_horsemenAI::UpdateAI(), boss_archavon::boss_archavonAI::UpdateAI(), npc_beryl_sorcerer::npc_beryl_sorcererAI::UpdateAI(), npc_counselor_talbot::npc_counselor_talbotAI::UpdateAI(), npc_torturer_lecraft::npc_torturer_lecraftAI::UpdateAI(), npc_venture_co_straggler::npc_venture_co_stragglerAI::UpdateAI(), boss_omor_the_unscarred::UpdateAI(), npc_nether_drake::npc_nether_drakeAI::UpdateAI(), npc_aeranas::npc_aeranasAI::UpdateAI(), npc_maghar_captive::npc_maghar_captiveAI::UpdateAI(), npc_mature_netherwing_drake::npc_mature_netherwing_drakeAI::UpdateAI(), npc_dragonmaw_peon::npc_dragonmaw_peonAI::UpdateAI(), npc_torloth_the_magnificent::npc_torloth_the_magnificentAI::UpdateAI(), npc_illidari_spawn::npc_illidari_spawnAI::UpdateAI(), npc_pet_hunter_snake_trap::UpdateAI(), npc_pet_shaman_earth_elemental::UpdateAI(), npc_general_andorov::UpdateEscortAI(), npc_onyx_flamecaller::npc_onyx_flamecallerAI::UpdateEscortAI(), and npc_kurenai_captive::npc_kurenai_captiveAI::UpdateEscortAI().

◆ DoGetSpellMaxRange()

float UnitAI::DoGetSpellMaxRange ( uint32  spellId,
bool  positive = false 
)
122{
123 SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellId);
124 return spellInfo ? spellInfo->GetMaxRange(positive) : 0;
125}
float GetMaxRange(bool positive=false, Unit *caster=nullptr, Spell *spell=nullptr) const
Definition: SpellInfo.cpp:2307

References SpellInfo::GetMaxRange(), and sSpellMgr.

◆ DoMeleeAttackIfReady()

void UnitAI::DoMeleeAttackIfReady ( )
41{
43 return;
44
45 Unit* victim = me->GetVictim();
46 if (!victim || !victim->IsInWorld())
47 return;
48
49 if (!me->IsWithinMeleeRange(victim))
50 return;
51
52 //Make sure our attack is ready and we aren't currently casting before checking distance
53 if (me->isAttackReady())
54 {
55 // xinef: prevent base and off attack in same time, delay attack at 0.2 sec
56 if (me->haveOffhandWeapon())
59
60 me->AttackerStateUpdate(victim);
62 }
63
65 {
66 // xinef: delay main hand attack if both will hit at the same time (players code)
69
72 }
73}
@ OFF_ATTACK
Definition: Unit.h:397
@ BASE_ATTACK
Definition: Unit.h:396
#define ATTACK_DISPLAY_DELAY
Definition: Unit.h:1250
bool IsInWorld() const
Definition: Object.h:101
bool haveOffhandWeapon() const
Definition: Unit.cpp:540
void setAttackTimer(WeaponAttackType type, int32 time)
Definition: Unit.h:1352
bool IsWithinMeleeRange(Unit const *obj, float dist=0.f) const
Definition: Unit.cpp:683
void AttackerStateUpdate(Unit *victim, WeaponAttackType attType=BASE_ATTACK, bool extra=false, bool ignoreCasting=false)
Definition: Unit.cpp:2527
int32 getAttackTimer(WeaponAttackType type) const
Definition: Unit.h:1354
bool isAttackReady(WeaponAttackType type=BASE_ATTACK) const
Definition: Unit.h:1355
void resetAttackTimer(WeaponAttackType type=BASE_ATTACK)
Definition: Unit.cpp:661

References ATTACK_DISPLAY_DELAY, Unit::AttackerStateUpdate(), BASE_ATTACK, Unit::getAttackTimer(), Unit::GetVictim(), Unit::HasUnitState(), Unit::haveOffhandWeapon(), Unit::isAttackReady(), Object::IsInWorld(), Unit::IsWithinMeleeRange(), me, OFF_ATTACK, Unit::resetAttackTimer(), Unit::setAttackTimer(), and UNIT_STATE_CASTING.

Referenced by PetAI::_doMeleeAttack(), boss_twin_valkyrAI::myDoMeleeAttackIfReady(), npc_razzashi_cobra_venoxis::npc_razzashi_cobra_venoxis_AI::UpdateAI(), boss_sartharion_dragonAI::UpdateAI(), CombatAI::UpdateAI(), ArcherAI::UpdateAI(), ReactorAI::UpdateAI(), ScriptedAI::UpdateAI(), BossAI::UpdateAI(), WorldBossAI::UpdateAI(), SmartAI::UpdateAI(), npc_av_marshal_or_warmaster::npc_av_marshal_or_warmasterAI::UpdateAI(), npc_water_elemental::npc_water_elementalAI::UpdateAI(), boss_balinda::boss_balindaAI::UpdateAI(), boss_drekthar::boss_drektharAI::UpdateAI(), boss_galvangar::boss_galvangarAI::UpdateAI(), boss_vanndar::boss_vanndarAI::UpdateAI(), npc_phalanx::npc_phalanxAI::UpdateAI(), boss_ambassador_flamelash::boss_ambassador_flamelashAI::UpdateAI(), boss_anubshiah::boss_anubshiahAI::UpdateAI(), boss_emperor_dagran_thaurissan::boss_draganthaurissanAI::UpdateAI(), boss_eviscerator::boss_evisceratorAI::UpdateAI(), boss_general_angerforge::boss_general_angerforgeAI::UpdateAI(), boss_gorosh_the_dervish::boss_gorosh_the_dervishAI::UpdateAI(), boss_grizzle::boss_grizzleAI::UpdateAI(), boss_hedrum::boss_hedrumAI::UpdateAI(), boss_high_interrogator_gerstahn::boss_high_interrogator_gerstahnAI::UpdateAI(), boss_magmus::boss_magmusAI::UpdateAI(), boss_moira_bronzebeardAI::UpdateAI(), boss_high_priestess_thaurissanAI::UpdateAI(), boss_okthor::boss_okthorAI::UpdateAI(), boss_doomrel::boss_doomrelAI::UpdateAI(), boss_drakkisath::boss_drakkisathAI::UpdateAI(), boss_gyth::boss_gythAI::UpdateAI(), boss_halycon::boss_halyconAI::UpdateAI(), boss_highlord_omokk::boss_highlordomokkAI::UpdateAI(), boss_lord_valthalak::boss_lord_valthalakAI::UpdateAI(), boss_mor_grayhoof::UpdateAI(), boss_overlord_wyrmthalak::boss_overlordwyrmthalakAI::UpdateAI(), boss_pyroguard_emberseer::boss_pyroguard_emberseerAI::UpdateAI(), npc_blackhand_incarcerator::npc_blackhand_incarceratorAI::UpdateAI(), boss_quartermaster_zigris::UpdateAI(), boss_rend_blackhand::boss_rend_blackhandAI::UpdateAI(), npc_rookery_hatcher::npc_rookery_hatcherAI::UpdateAI(), boss_solakar_flamewreath::boss_solakar_flamewreathAI::UpdateAI(), boss_the_beast::boss_thebeastAI::UpdateAI(), boss_urok_doomhowl::boss_urok_doomhowlAI::UpdateAI(), npc_vaelastrasz_the_red::npc_vaelastrasz_the_redAI::UpdateAI(), boss_broodlord::boss_broodlordAI::UpdateAI(), boss_chromaggus::boss_chromaggusAI::UpdateAI(), boss_ebonroc::boss_ebonrocAI::UpdateAI(), boss_firemaw::boss_firemawAI::UpdateAI(), boss_flamegor::boss_flamegorAI::UpdateAI(), boss_nefarian::UpdateAI(), boss_razorgore::boss_razorgoreAI::UpdateAI(), boss_vaelastrasz::boss_vaelAI::UpdateAI(), boss_garr::boss_garrAI::UpdateAI(), boss_golemagg::boss_golemaggAI::UpdateAI(), npc_core_rager::npc_core_ragerAI::UpdateAI(), boss_majordomo::boss_majordomoAI::UpdateAI(), boss_ragnaros::boss_ragnarosAI::UpdateAI(), npc_flamewaker_priest::npc_flamewaker_priestAI::UpdateAI(), npc_mc_core_hound::npc_mc_core_houndAI::UpdateAI(), boss_mr_smite::boss_mr_smiteAI::UpdateAI(), boss_curator::UpdateAI(), boss_attumen::UpdateAI(), boss_midnight::UpdateAI(), boss_moroes::UpdateAI(), boss_netherspite::UpdateAI(), boss_nightbane::UpdateAI(), npc_malchezaar_axe::UpdateAI(), boss_servant_quarters::UpdateAI(), npc_kilrek::UpdateAI(), npc_fiendish_imp::UpdateAI(), boss_terestian_illhoof::UpdateAI(), boss_dorothee::UpdateAI(), npc_tito::UpdateAI(), boss_roar::UpdateAI(), boss_strawman::UpdateAI(), boss_tinhead::UpdateAI(), boss_crone::UpdateAI(), boss_bigbadwolf::UpdateAI(), boss_julianne::UpdateAI(), boss_felblood_kaelthas::boss_felblood_kaelthasAI::UpdateAI(), boss_priestess_delrissa::boss_priestess_delrissaAI::UpdateAI(), boss_kagani_nightstrike::boss_kagani_nightstrikeAI::UpdateAI(), boss_ellris_duskhallow::boss_ellris_duskhallowAI::UpdateAI(), boss_eramas_brightblaze::boss_eramas_brightblazeAI::UpdateAI(), boss_yazzai::boss_yazzaiAI::UpdateAI(), boss_warlord_salaris::boss_warlord_salarisAI::UpdateAI(), boss_garaxxas::boss_garaxxasAI::UpdateAI(), boss_apoko::boss_apokoAI::UpdateAI(), boss_zelfan::boss_zelfanAI::UpdateAI(), boss_selin_fireheart::boss_selin_fireheartAI::UpdateAI(), boss_vexallus::boss_vexallusAI::UpdateAI(), npc_scarlet_ghoul::npc_scarlet_ghoulAI::UpdateAI(), npc_unworthy_initiate::npc_unworthy_initiateAI::UpdateAI(), npc_scarlet_courier::npc_scarlet_courierAI::UpdateAI(), npc_high_inquisitor_valroth::npc_high_inquisitor_valrothAI::UpdateAI(), npc_highlord_darion_mograine::npc_highlord_darion_mograineAI::UpdateAI(), npc_mograine::npc_mograineAI::UpdateAI(), boss_high_inquisitor_whitemane::boss_high_inquisitor_whitemaneAI::UpdateAI(), boss_darkmaster_gandling::boss_darkmaster_gandlingAI::UpdateAI(), boss_kirtonos_the_herald::boss_kirtonos_the_heraldAI::UpdateAI(), boss_kormok::UpdateAI(), npc_scholomance_occultist::npc_scholomance_occultistAI::UpdateAI(), boss_apothecary_hummel::boss_apothecary_hummelAI::UpdateAI(), npc_apothecary_baxter::UpdateAI(), boss_baroness_anastari::boss_baroness_anastariAI::UpdateAI(), boss_jarien::UpdateAI(), boss_sothos::UpdateAI(), boss_brutallus::boss_brutallusAI::UpdateAI(), boss_sacrolash::boss_sacrolashAI::UpdateAI(), boss_alythess::boss_alythessAI::UpdateAI(), boss_felmyst::boss_felmystAI::UpdateAI(), boss_kalecgos::boss_kalecgosAI::UpdateAI(), boss_kalec::boss_kalecAI::UpdateAI(), boss_sathrovarr::boss_sathrovarrAI::UpdateAI(), boss_kiljaeden::boss_kiljaedenAI::UpdateAI(), boss_entropius::boss_entropiusAI::UpdateAI(), boss_twilight_corrupter::UpdateAI(), npc_supervisor_raelen::UpdateAI(), npc_eastvale_peasent::UpdateAI(), npc_partygoer_pather::UpdateAI(), npc_partygoer::UpdateAI(), npc_sentinel_leader::UpdateAI(), npc_sentinel_infiltrator::UpdateAI(), npc_bh_thalorien_dawnseeker::npc_bh_thalorien_dawnseekerAI::UpdateAI(), npc_corporal_keeshan::npc_corporal_keeshanAI::UpdateAI(), pyrewood_ambush::pyrewood_ambushAI::UpdateAI(), npc_calvin_montague::npc_calvin_montagueAI::UpdateAI(), npc_lady_sylvanas_windrunner::npc_lady_sylvanas_windrunnerAI::UpdateAI(), npc_varian_wrynn::npc_varian_wrynnAI::UpdateAI(), npc_jaina_proudmoore_bfu::npc_jaina_proudmoore_bfuAI::UpdateAI(), boss_blight_worm::boss_blight_wormAI::UpdateAI(), npc_thrall_bfu::npc_thrall_bfuAI::UpdateAI(), npc_lady_sylvanas_windrunner_bfu::npc_lady_sylvanas_windrunner_bfuAI::UpdateAI(), boss_akilzon::boss_akilzonAI::UpdateAI(), boss_halazzi::boss_halazziAI::UpdateAI(), npc_halazzi_lynx::npc_halazzi_lynxAI::UpdateAI(), boss_hexlord_malacrass::boss_hex_lord_malacrassAI::UpdateAI(), boss_janalai::boss_janalaiAI::UpdateAI(), npc_janalai_hatchling::npc_janalai_hatchlingAI::UpdateAI(), boss_nalorakk::boss_nalorakkAI::UpdateAI(), boss_arlokk::boss_arlokkAI::UpdateAI(), npc_zulian_prowler::npc_zulian_prowlerAI::UpdateAI(), boss_gahzranka::boss_gahzrankaAI::UpdateAI(), boss_grilek::boss_grilekAI::UpdateAI(), boss_hakkar::boss_hakkarAI::UpdateAI(), boss_hazzarah::UpdateAI(), boss_jeklik::UpdateAI(), boss_jindo::UpdateAI(), npc_healing_ward::UpdateAI(), npc_shade_of_jindo::UpdateAI(), boss_mandokir::boss_mandokirAI::UpdateAI(), npc_ohgan::npc_ohganAI::UpdateAI(), npc_vilebranch_speaker::UpdateAI(), boss_marli::UpdateAI(), npc_spawn_of_marli::UpdateAI(), boss_renataki::boss_renatakiAI::UpdateAI(), boss_thekal::boss_thekalAI::UpdateAI(), npc_zealot_lorkhan::npc_zealot_lorkhanAI::UpdateAI(), npc_zealot_zath::npc_zealot_zathAI::UpdateAI(), boss_venoxis::boss_venoxisAI::UpdateAI(), boss_wushoolay::boss_wushoolayAI::UpdateAI(), npc_coren_direbrew::UpdateAI(), npc_coren_direbrew_sisters::UpdateAI(), npc_hallows_end_soh::UpdateAI(), boss_headless_horseman::UpdateAI(), boss_azuregos::boss_azuregosAI::UpdateAI(), boss_anetheron::boss_anetheronAI::UpdateAI(), npc_towering_infernal::npc_towering_infernalAI::UpdateAI(), boss_archimonde::boss_archimondeAI::UpdateAI(), boss_azgalor::boss_azgalorAI::UpdateAI(), npc_lesser_doomguard::npc_lesser_doomguardAI::UpdateAI(), boss_kazrogal::boss_kazrogalAI::UpdateAI(), boss_rage_winterchill::boss_rage_winterchillAI::UpdateAI(), npc_giant_infernal::npc_giant_infernalAI::UpdateAI(), npc_abomination::npc_abominationAI::UpdateAI(), npc_ghoul::npc_ghoulAI::UpdateAI(), npc_necromancer::npc_necromancerAI::UpdateAI(), npc_banshee::npc_bansheeAI::UpdateAI(), npc_crypt_fiend::npc_crypt_fiendAI::UpdateAI(), npc_fel_stalker::npc_fel_stalkerAI::UpdateAI(), alliance_rifleman::alliance_riflemanAI::UpdateAI(), hyjalAI::UpdateAI(), boss_epoch::boss_epochAI::UpdateAI(), boss_infinite_corruptor::boss_infinite_corruptorAI::UpdateAI(), boss_mal_ganis::boss_mal_ganisAI::UpdateAI(), boss_meathook::boss_meathookAI::UpdateAI(), boss_salramm::boss_salrammAI::UpdateAI(), npc_arthas::npc_arthasAI::UpdateAI(), boss_epoch_hunter::UpdateAI(), boss_lieutenant_drake::UpdateAI(), boss_isalien::UpdateAI(), boss_onyxia::UpdateAI(), npc_onyxian_lair_guard::UpdateAI(), npc_belnistrasz::npc_belnistraszAI::UpdateAI(), boss_ayamiss::UpdateAI(), boss_buru::UpdateAI(), boss_kurinnaxx::UpdateAI(), boss_moam::UpdateAI(), boss_ossirian::UpdateAI(), npc_anubisath_guardian::UpdateAI(), npc_hivezara_stinger::UpdateAI(), npc_obsidian_destroyer::UpdateAI(), boss_bug_trio::UpdateAI(), npc_claw_tentacle::UpdateAI(), boss_fankriss::UpdateAI(), boss_huhuran::UpdateAI(), boss_ouro::UpdateAI(), boss_sartura::UpdateAI(), npc_sartura_royal_guard::UpdateAI(), boss_skeram::UpdateAI(), boss_twinemperorsAI::UpdateAI(), boss_viscidus::UpdateAI(), npc_anubisath_defender::UpdateAI(), npc_vekniss_stinger::UpdateAI(), npc_obsidian_eradicator::UpdateAI(), npc_anubisath_warder::UpdateAI(), npc_obsidian_nullifier::UpdateAI(), npc_muglash::npc_muglashAI::UpdateAI(), npc_death_ravager::npc_death_ravagerAI::UpdateAI(), npc_murkdeep::npc_murkdeepAI::UpdateAI(), npc_rabid_thistle_bear::npc_rabid_thistle_bearAI::UpdateAI(), npc_tharnarian::npc_tharnarianAI::UpdateAI(), npc_tiger_matriarch::npc_tiger_matriarchAI::UpdateAI(), npc_omen::npc_omenAI::UpdateAI(), npc_shenthul::npc_shenthulAI::UpdateAI(), npc_qiraj_war_spawn::npc_qiraj_war_spawnAI::UpdateAI(), npc_aquementas::npc_aquementasAI::UpdateAI(), npc_taskmaster_fizzule::npc_taskmaster_fizzuleAI::UpdateAI(), npc_plucky::npc_pluckyAI::UpdateAI(), npc_cairne_bloodhoof::npc_cairne_bloodhoofAI::UpdateAI(), npc_sergeant_bly::npc_sergeant_blyAI::UpdateAI(), npc_weegli_blastfuse::npc_weegli_blastfuseAI::UpdateAI(), boss_elder_nadox::UpdateAI(), npc_ahnkahar_nerubian::UpdateAI(), boss_volazj::UpdateAI(), boss_jedoga_shadowseeker::UpdateAI(), npc_twilight_volunteer::UpdateAI(), boss_taldaram::UpdateAI(), boss_anub_arak::boss_anub_arakAI::UpdateAI(), boss_hadronox::boss_hadronoxAI::UpdateAI(), npc_anub_ar_crusher::npc_anub_ar_crusherAI::UpdateAI(), boss_krik_thir::boss_krik_thirAI::UpdateAI(), boss_sartharion::boss_sartharionAI::UpdateAI(), npc_twilight_summon::npc_twilight_summonAI::UpdateAI(), boss_baltharus_the_warborn::boss_baltharus_the_warbornAI::UpdateAI(), npc_baltharus_the_warborn_clone::npc_baltharus_the_warborn_cloneAI::UpdateAI(), boss_general_zarithrian::boss_general_zarithrianAI::UpdateAI(), boss_halion::boss_halionAI::UpdateAI(), boss_twilight_halion::boss_twilight_halionAI::UpdateAI(), boss_saviana_ragefire::boss_saviana_ragefireAI::UpdateAI(), boss_eadric::boss_eadricAI::UpdateAI(), boss_paletress::boss_paletressAI::UpdateAI(), npc_memory::npc_memoryAI::UpdateAI(), npc_argent_soldier::npc_argent_soldierAI::UpdateAI(), boss_black_knight::boss_black_knightAI::UpdateAI(), npc_black_knight_ghoul::npc_black_knight_ghoulAI::UpdateAI(), boss_grand_champion::boss_grand_championAI::UpdateAI(), boss_anubarak_trial::boss_anubarak_trialAI::UpdateAI(), npc_swarm_scarab::npc_swarm_scarabAI::UpdateAI(), npc_nerubian_burrower::npc_nerubian_burrowerAI::UpdateAI(), npc_toc_druid::npc_toc_druidAI::UpdateAI(), npc_toc_shaman::npc_toc_shamanAI::UpdateAI(), npc_toc_paladin::npc_toc_paladinAI::UpdateAI(), npc_toc_priest::npc_toc_priestAI::UpdateAI(), npc_toc_shadow_priest::npc_toc_shadow_priestAI::UpdateAI(), npc_toc_warlock::npc_toc_warlockAI::UpdateAI(), npc_toc_mage::npc_toc_mageAI::UpdateAI(), npc_toc_boomkin::npc_toc_boomkinAI::UpdateAI(), npc_toc_warrior::npc_toc_warriorAI::UpdateAI(), npc_toc_dk::npc_toc_dkAI::UpdateAI(), npc_toc_rogue::npc_toc_rogueAI::UpdateAI(), npc_toc_enh_shaman::npc_toc_enh_shamanAI::UpdateAI(), npc_toc_retro_paladin::npc_toc_retro_paladinAI::UpdateAI(), npc_toc_pet_warlock::npc_toc_pet_warlockAI::UpdateAI(), npc_toc_pet_hunter::npc_toc_pet_hunterAI::UpdateAI(), boss_jaraxxus::boss_jaraxxusAI::UpdateAI(), npc_fel_infernal::npc_fel_infernalAI::UpdateAI(), npc_mistress_of_pain::npc_mistress_of_painAI::UpdateAI(), npc_snobold_vassal::npc_snobold_vassalAI::UpdateAI(), boss_gormok::boss_gormokAI::UpdateAI(), boss_jormungarAI::UpdateAI(), boss_icehowl::boss_icehowlAI::UpdateAI(), boss_dred::boss_dredAI::UpdateAI(), boss_tharon_ja::boss_tharon_jaAI::UpdateAI(), boss_trollgore::boss_trollgoreAI::UpdateAI(), boss_bronjahm::boss_bronjahmAI::UpdateAI(), boss_devourer_of_souls::boss_devourer_of_soulsAI::UpdateAI(), npc_fos_leader::npc_fos_leaderAI::UpdateAI(), boss_falric::boss_falricAI::UpdateAI(), boss_marwyn::boss_marwynAI::UpdateAI(), npc_ghostly_priest::npc_ghostly_priestAI::UpdateAI(), npc_phantom_mage::npc_phantom_mageAI::UpdateAI(), npc_shadowy_mercenary::npc_shadowy_mercenaryAI::UpdateAI(), npc_spectral_footman::npc_spectral_footmanAI::UpdateAI(), boss_frostsworn_general::boss_frostsworn_generalAI::UpdateAI(), npc_hor_spiritual_reflection::npc_hor_spiritual_reflectionAI::UpdateAI(), npc_hor_leader_second::npc_hor_leader_secondAI::UpdateAI(), npc_hor_risen_witch_doctor::npc_hor_risen_witch_doctorAI::UpdateAI(), npc_hor_lumbering_abomination::npc_hor_lumbering_abominationAI::UpdateAI(), boss_garfrost::boss_garfrostAI::UpdateAI(), boss_ick::boss_ickAI::UpdateAI(), boss_tyrannus::boss_tyrannusAI::UpdateAI(), npc_pos_leader::npc_pos_leaderAI::UpdateAI(), npc_pos_deathwhisper_necrolyte::npc_pos_deathwhisper_necrolyteAI::UpdateAI(), npc_pos_martin_or_gorkun_second::npc_pos_martin_or_gorkun_secondAI::UpdateAI(), boss_drakkari_colossus::boss_drakkari_colossusAI::UpdateAI(), boss_drakkari_elemental::boss_drakkari_elementalAI::UpdateAI(), npc_living_mojo::npc_living_mojoAI::UpdateAI(), boss_eck::boss_eckAI::UpdateAI(), boss_gal_darah::boss_gal_darahAI::UpdateAI(), boss_moorabi::boss_moorabiAI::UpdateAI(), boss_slad_ran::boss_slad_ranAI::UpdateAI(), boss_prince_taldaram_icc::boss_prince_taldaramAI::UpdateAI(), boss_prince_valanar_icc::boss_prince_valanarAI::UpdateAI(), boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI::UpdateAI(), boss_deathbringer_saurfang::boss_deathbringer_saurfangAI::UpdateAI(), boss_festergut::boss_festergutAI::UpdateAI(), npc_stinky_icc::npc_stinky_iccAI::UpdateAI(), npc_high_overlord_saurfang_igb::npc_high_overlord_saurfang_igbAI::UpdateAI(), npc_muradin_bronzebeard_igb::npc_muradin_bronzebeard_igbAI::UpdateAI(), npc_gunship_boarding_leader::npc_gunship_boarding_leaderAI::UpdateAI(), npc_gunship_boarding_add::npc_gunship_boarding_add_realAI::UpdateAI(), boss_lady_deathwhisper::boss_lady_deathwhisperAI::UpdateAI(), npc_cult_fanatic::npc_cult_fanaticAI::UpdateAI(), npc_cult_adherent::npc_cult_adherentAI::UpdateAI(), npc_vengeful_shade::npc_vengeful_shadeAI::UpdateAI(), npc_darnavan::npc_darnavanAI::UpdateAI(), boss_lord_marrowgar::UpdateAI(), boss_professor_putricide::boss_professor_putricideAI::UpdateAI(), npc_putricide_oozeAI::UpdateAI(), boss_rotface::boss_rotfaceAI::UpdateAI(), npc_little_ooze::npc_little_oozeAI::UpdateAI(), npc_big_ooze::npc_big_oozeAI::UpdateAI(), npc_precious_icc::npc_precious_iccAI::UpdateAI(), boss_sindragosa::boss_sindragosaAI::UpdateAI(), npc_spinestalker::npc_spinestalkerAI::UpdateAI(), npc_rimefang::npc_rimefangAI::UpdateAI(), npc_sindragosa_trash::npc_sindragosa_trashAI::UpdateAI(), boss_the_lich_king::boss_the_lich_kingAI::UpdateAI(), npc_tirion_fordring_tft::npc_tirion_fordringAI::UpdateAI(), npc_shambling_horror_icc::npc_shambling_horror_iccAI::UpdateAI(), npc_raging_spirit::npc_raging_spiritAI::UpdateAI(), npc_terenas_menethil::npc_terenas_menethilAI::UpdateAI(), npc_spirit_warden::npc_spirit_wardenAI::UpdateAI(), npc_risen_archmage::npc_risen_archmageAI::UpdateAI(), npc_blazing_skeleton::npc_blazing_skeletonAI::UpdateAI(), npc_blistering_zombie::npc_blistering_zombieAI::UpdateAI(), npc_gluttonous_abomination::npc_gluttonous_abominationAI::UpdateAI(), npc_rotting_frost_giant::npc_rotting_frost_giantAI::UpdateAI(), npc_crok_scourgebane::npc_crok_scourgebaneAI::UpdateAI(), boss_sister_svalna::boss_sister_svalnaAI::UpdateAI(), npc_captain_arnath::npc_captain_arnathAI::UpdateAI(), npc_captain_brandon::npc_captain_brandonAI::UpdateAI(), npc_captain_grondel::npc_captain_grondelAI::UpdateAI(), npc_captain_rupert::npc_captain_rupertAI::UpdateAI(), npc_frostwing_vrykul::npc_frostwing_vrykulAI::UpdateAI(), npc_icc_skybreaker_hierophant::npc_icc_skybreaker_hierophantAI::UpdateAI(), npc_icc_skybreaker_vicar::npc_icc_skybreaker_vicarAI::UpdateAI(), npc_icc_skybreaker_luminary::npc_icc_skybreaker_luminaryAI::UpdateAI(), npc_icc_valkyr_herald::npc_icc_valkyr_heraldAI::UpdateAI(), npc_icc_severed_essence::npc_icc_severed_essenceAI::UpdateAI(), npc_icc_spire_frostwyrm::UpdateAI(), npc_icc_vengeful_fleshreaper::npc_icc_vengeful_fleshreaperAI::UpdateAI(), npc_icc_nerubar_broodkeeper::npc_icc_nerubar_broodkeeperAI::UpdateAI(), boss_isle_of_conquest::boss_isle_of_conquestAI::UpdateAI(), boss_anubrekhan::boss_anubrekhanAI::UpdateAI(), boss_faerlina::boss_faerlinaAI::UpdateAI(), boss_four_horsemen::boss_four_horsemenAI::UpdateAI(), boss_gluth::boss_gluthAI::UpdateAI(), boss_gothik::boss_gothikAI::UpdateAI(), npc_boss_gothik_minion::npc_boss_gothik_minionAI::UpdateAI(), boss_grobbulus::boss_grobbulusAI::UpdateAI(), boss_heigan::boss_heiganAI::UpdateAI(), boss_kelthuzad::boss_kelthuzadAI::UpdateAI(), boss_kelthuzad_minion::boss_kelthuzad_minionAI::UpdateAI(), boss_loatheb::boss_loathebAI::UpdateAI(), boss_maexxna::boss_maexxnaAI::UpdateAI(), boss_noth::boss_nothAI::UpdateAI(), boss_patchwerk::boss_patchwerkAI::UpdateAI(), boss_razuvious::boss_razuviousAI::UpdateAI(), boss_razuvious_minion::boss_razuvious_minionAI::UpdateAI(), boss_sapphiron::boss_sapphironAI::UpdateAI(), boss_thaddius::boss_thaddiusAI::UpdateAI(), boss_thaddius_summon::boss_thaddius_summonAI::UpdateAI(), boss_malygos::boss_malygosAI::UpdateAI(), npc_nexus_lord::npc_nexus_lordAI::UpdateAI(), boss_anomalus::boss_anomalusAI::UpdateAI(), boss_commander_stoutbeard::boss_commander_stoutbeardAI::UpdateAI(), boss_keristrasza::boss_keristraszaAI::UpdateAI(), boss_magus_telestra::boss_magus_telestraAI::UpdateAI(), boss_ormorok::boss_ormorokAI::UpdateAI(), boss_drakos::boss_drakosAI::UpdateAI(), boss_eregos::boss_eregosAI::UpdateAI(), boss_urom::boss_uromAI::UpdateAI(), boss_varos::boss_varosAI::UpdateAI(), npc_stormforged_lieutenant::npc_stormforged_lieutenantAI::UpdateAI(), boss_ionar::boss_ionarAI::UpdateAI(), boss_loken::boss_lokenAI::UpdateAI(), boss_volkhan::boss_volkhanAI::UpdateAI(), npc_molten_golem::npc_molten_golemAI::UpdateAI(), npc_hol_monument::npc_hol_monumentAI::UpdateAI(), boss_krystallus::boss_krystallusAI::UpdateAI(), boss_maiden_of_grief::boss_maiden_of_griefAI::UpdateAI(), boss_sjonnir::boss_sjonnirAI::UpdateAI(), boss_sjonnir_iron_sludge::boss_sjonnir_iron_sludgeAI::UpdateAI(), boss_algalon_the_observer::boss_algalon_the_observerAI::UpdateAI(), boss_steelbreaker::boss_steelbreakerAI::UpdateAI(), boss_runemaster_molgeim::boss_runemaster_molgeimAI::UpdateAI(), boss_stormcaller_brundir::boss_stormcaller_brundirAI::UpdateAI(), boss_auriaya::boss_auriayaAI::UpdateAI(), npc_auriaya_sanctum_sentry::npc_auriaya_sanctum_sentryAI::UpdateAI(), npc_auriaya_feral_defender::npc_auriaya_feral_defenderAI::UpdateAI(), boss_freya::boss_freyaAI::UpdateAI(), boss_freya_elder_stonebark::boss_freya_elder_stonebarkAI::UpdateAI(), boss_freya_elder_brightleaf::boss_freya_elder_brightleafAI::UpdateAI(), boss_freya_elder_ironbranch::boss_freya_elder_ironbranchAI::UpdateAI(), boss_freya_summons::boss_freya_summonsAI::UpdateAI(), boss_vezax::boss_vezaxAI::UpdateAI(), npc_ulduar_saronite_animus::npc_ulduar_saronite_animusAI::UpdateAI(), boss_hodir::boss_hodirAI::UpdateAI(), npc_ulduar_iron_construct::npc_ulduar_iron_constructAI::UpdateAI(), boss_ignis::boss_ignisAI::UpdateAI(), npc_ulduar_leviathan_mkii::npc_ulduar_leviathan_mkiiAI::UpdateAI(), boss_razorscale::boss_razorscaleAI::UpdateAI(), npc_ulduar_dark_rune_guardian::npc_ulduar_dark_rune_guardianAI::UpdateAI(), npc_ulduar_dark_rune_watcher::npc_ulduar_dark_rune_watcherAI::UpdateAI(), npc_ulduar_dark_rune_sentinel::npc_ulduar_dark_rune_sentinelAI::UpdateAI(), boss_thorim::boss_thorimAI::UpdateAI(), boss_thorim_start_npcs::boss_thorim_start_npcsAI::UpdateAI(), boss_thorim_gauntlet_npcs::boss_thorim_gauntlet_npcsAI::UpdateAI(), boss_thorim_runic_colossus::boss_thorim_runic_colossusAI::UpdateAI(), boss_thorim_ancient_rune_giant::boss_thorim_ancient_rune_giantAI::UpdateAI(), boss_thorim_arena_npcs::boss_thorim_arena_npcsAI::UpdateAI(), boss_xt002::boss_xt002AI::UpdateAI(), npc_xt002_pummeller::npc_xt002_pummellerAI::UpdateAI(), boss_yoggsaron_guardian_of_ys::boss_yoggsaron_guardian_of_ysAI::UpdateAI(), boss_yoggsaron_immortal_guardian::boss_yoggsaron_immortal_guardianAI::UpdateAI(), npc_ulduar_storm_tempered_keeper::npc_ulduar_storm_tempered_keeperAI::UpdateAI(), npc_ulduar_arachnopod_destroyer::npc_ulduar_arachnopod_destroyerAI::UpdateAI(), boss_ingvar_the_plunderer::boss_ingvar_the_plundererAI::UpdateAI(), boss_keleseth::boss_kelesethAI::UpdateAI(), npc_vrykul_skeleton::npc_vrykul_skeletonAI::UpdateAI(), boss_skarvald_the_constructor::boss_skarvald_the_constructorAI::UpdateAI(), boss_dalronn_the_controller::boss_dalronn_the_controllerAI::UpdateAI(), npc_enslaved_proto_drake::npc_enslaved_proto_drakeAI::UpdateAI(), boss_palehoof::boss_palehoofAI::UpdateAI(), npc_massive_jormungar::npc_massive_jormungarAI::UpdateAI(), npc_ferocious_rhino::npc_ferocious_rhinoAI::UpdateAI(), npc_ravenous_furbolg::npc_ravenous_furbolgAI::UpdateAI(), npc_frenzied_worgen::npc_frenzied_worgenAI::UpdateAI(), boss_skadi::boss_skadiAI::UpdateAI(), boss_svala::boss_svalaAI::UpdateAI(), boss_ymiron::boss_ymironAI::UpdateAI(), boss_archavon::boss_archavonAI::UpdateAI(), boss_emalon::boss_emalonAI::UpdateAI(), boss_koralon::boss_koralonAI::UpdateAI(), boss_toravon::boss_toravonAI::UpdateAI(), boss_cyanigosa::boss_cyanigosaAI::UpdateAI(), boss_erekem::boss_erekemAI::UpdateAI(), npc_erekem_guard::npc_erekem_guardAI::UpdateAI(), boss_lavanthor::boss_lavanthorAI::UpdateAI(), boss_moragg::boss_moraggAI::UpdateAI(), boss_xevozz::boss_xevozzAI::UpdateAI(), boss_zuramat::boss_zuramatAI::UpdateAI(), npc_azure_invader::npc_azure_invaderAI::UpdateAI(), npc_azure_binder::npc_azure_binderAI::UpdateAI(), npc_azure_mage_slayer::npc_azure_mage_slayerAI::UpdateAI(), npc_azure_raider::npc_azure_raiderAI::UpdateAI(), npc_azure_stalker::npc_azure_stalkerAI::UpdateAI(), npc_azure_spellbreaker::npc_azure_spellbreakerAI::UpdateAI(), npc_azure_captain::npc_azure_captainAI::UpdateAI(), npc_azure_sorceror::npc_azure_sorcerorAI::UpdateAI(), npc_beryl_sorcerer::npc_beryl_sorcererAI::UpdateAI(), npc_imprisoned_beryl_sorcerer::npc_imprisoned_beryl_sorcererAI::UpdateAI(), npc_hidden_cultist::npc_hidden_cultistAI::UpdateAI(), npc_bloodmage_laurith::npc_bloodmage_laurithAI::UpdateAI(), npc_thassarian2::npc_thassarian2AI::UpdateAI(), npc_counselor_talbot::npc_counselor_talbotAI::UpdateAI(), npc_dalaran_mage::npc_dalaran_mageAI::UpdateAI(), npc_dalaran_warrior::npc_dalaran_warriorAI::UpdateAI(), npc_q24545_vegard::npc_q24545_vegardAI::UpdateAI(), npc_commander_eligor_dawnbringer::npc_commander_eligor_dawnbringerAI::UpdateAI(), npc_torturer_lecraft::npc_torturer_lecraftAI::UpdateAI(), npc_wounded_skirmisher::UpdateAI(), npc_venture_co_straggler::npc_venture_co_stragglerAI::UpdateAI(), npc_your_inner_turmoil::npc_your_inner_turmoilAI::UpdateAI(), npc_iron_watcher::npc_iron_watcherAI::UpdateAI(), npc_overlord_drakuru_betrayal::npc_overlord_drakuru_betrayalAI::UpdateAI(), boss_exarch_maladaar::UpdateAI(), npc_stolen_soul::UpdateAI(), boss_nexusprince_shaffar::UpdateAI(), npc_yor::UpdateAI(), boss_anzu::UpdateAI(), boss_ambassador_hellmaw::UpdateAI(), boss_blackheart_the_inciter::UpdateAI(), boss_gurtogg_bloodboil::boss_gurtogg_bloodboilAI::UpdateAI(), boss_illidan_stormrage::boss_illidan_stormrageAI::UpdateAI(), boss_mother_shahraz::boss_shahrazAI::UpdateAI(), boss_essence_of_suffering::boss_essence_of_sufferingAI::UpdateAI(), boss_essence_of_desire::boss_essence_of_desireAI::UpdateAI(), boss_essence_of_anger::boss_essence_of_angerAI::UpdateAI(), boss_shade_of_akama::boss_shade_of_akamaAI::UpdateAI(), npc_akama_shade::npc_akamaAI::UpdateAI(), boss_supremus::boss_supremusAI::UpdateAI(), boss_teron_gorefiend::boss_teron_gorefiendAI::UpdateAI(), boss_najentus::boss_najentusAI::UpdateAI(), boss_gathios_the_shatterer::boss_gathios_the_shattererAI::UpdateAI(), boss_high_nethermancer_zerevor::boss_high_nethermancer_zerevorAI::UpdateAI(), boss_veras_darkshadow::boss_veras_darkshadowAI::UpdateAI(), boss_doomlord_kazzak::boss_doomlordkazzakAI::UpdateAI(), boss_doomwalker::boss_doomwalkerAI::UpdateAI(), boss_fathomlord_karathress::boss_fathomlord_karathressAI::UpdateAI(), boss_hydross_the_unstable::boss_hydross_the_unstableAI::UpdateAI(), boss_lady_vashj::boss_lady_vashjAI::UpdateAI(), boss_leotheras_the_blind::boss_leotheras_the_blindAI::UpdateAI(), npc_inner_demon::npc_inner_demonAI::UpdateAI(), boss_morogrim_tidewalker::boss_morogrim_tidewalkerAI::UpdateAI(), boss_ahune::UpdateAI(), boss_ghazan::UpdateAI(), boss_hungarfen::UpdateAI(), boss_the_black_stalker::UpdateAI(), npc_underbat::UpdateAI(), boss_gruul::UpdateAI(), boss_high_king_maulgar::UpdateAI(), boss_olm_the_summoner::UpdateAI(), boss_kiggler_the_crazed::UpdateAI(), boss_blindeye_the_seer::UpdateAI(), boss_krosh_firehand::UpdateAI(), boss_the_maker::UpdateAI(), boss_omor_the_unscarred::UpdateAI(), boss_nazan::UpdateAI(), boss_vazruden::UpdateAI(), boss_watchkeeper_gargolmar::UpdateAI(), boss_magtheridon::UpdateAI(), boss_grand_warlock_nethekurse::UpdateAI(), boss_warchief_kargath_bladefist::UpdateAI(), npc_millhouse_manastorm::npc_millhouse_manastormAI::UpdateAI(), boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::UpdateAI(), boss_kaelthas::boss_kaelthasAI::UpdateAI(), boss_void_reaver::boss_void_reaverAI::UpdateAI(), npc_raging_flames::UpdateAI(), npc_nether_drake::npc_nether_drakeAI::UpdateAI(), npc_aeranas::npc_aeranasAI::UpdateAI(), npc_fel_guard_hound::npc_fel_guard_houndAI::UpdateAI(), npc_magister_aledis::UpdateAI(), npc_maghar_captive::npc_maghar_captiveAI::UpdateAI(), npc_captain_saeed::npc_captain_saeedAI::UpdateAI(), npc_phase_hunter::npc_phase_hunterAI::UpdateAI(), npc_mature_netherwing_drake::npc_mature_netherwing_drakeAI::UpdateAI(), npc_enslaved_netherwing_drake::npc_enslaved_netherwing_drakeAI::UpdateAI(), npc_dragonmaw_peon::npc_dragonmaw_peonAI::UpdateAI(), npc_torloth_the_magnificent::npc_torloth_the_magnificentAI::UpdateAI(), npc_illidari_spawn::npc_illidari_spawnAI::UpdateAI(), npc_unkor_the_ruthless::npc_unkor_the_ruthlessAI::UpdateAI(), npc_pet_hunter_snake_trap::UpdateAI(), npc_pet_shaman_earth_elemental::UpdateAI(), npc_pet_shaman_fire_elemental::UpdateAI(), emerald_dragonAI::UpdateAI(), guard_shattrath_scryer::guard_shattrath_scryerAI::UpdateAI(), guard_shattrath_aldor::guard_shattrath_aldorAI::UpdateAI(), npc_artorius::npc_artoriusAI::UpdateAI(), npc_simone::npc_simoneAI::UpdateAI(), npc_nelson::npc_nelsonAI::UpdateAI(), npc_franklin::npc_franklinAI::UpdateAI(), npc_chicken_cluck::npc_chicken_cluckAI::UpdateAI(), npc_lord_gregor_lescovar::npc_lord_gregor_lescovarAI::UpdateAI(), npc_tyrion_spybot::npc_tyrion_spybotAI::UpdateAI(), boss_ichoron::boss_ichoronAI::UpdateAI(), npc_maxx_a_million_escort::npc_maxx_a_million_escortAI::UpdateAI(), AggressorAI::UpdateAI(), PossessedAI::UpdateAI(), npc_greengill_slave::npc_greengill_slaveAI::UpdateAI(), npc_marzon_silent_blade::npc_marzon_silent_bladeAI::UpdateAI(), boss_hexlord_addAI::UpdateAI(), npc_zelfrax::npc_zelfraxAI::UpdateAI(), npc_enraged_panther::npc_enraged_pantherAI::UpdateAI(), npc_hor_raging_ghoul::npc_hor_raging_ghoulAI::UpdateAI(), npc_centrifuge_construct::npc_centrifuge_constructAI::UpdateAI(), npc_xt002_life_spark::npc_xt002_life_sparkAI::UpdateAI(), boss_yoggsaron_crusher_tentacle::boss_yoggsaron_crusher_tentacleAI::UpdateAI(), npc_future_you::npc_future_youAI::UpdateAI(), npc_tallhorn_stag::npc_tallhorn_stagAI::UpdateAI(), npc_bushwhacker::npc_bushwhackerAI::UpdateAI(), npc_infernal_attacker::npc_infernal_attackerAI::UpdateAI(), npc_precious::npc_preciousAI::UpdateAI(), npc_escortAI::UpdateEscortAI(), npc_rinji::npc_rinjiAI::UpdateEscortAI(), npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI::UpdateEscortAI(), npc_general_andorov::UpdateEscortAI(), npc_cork_gizelton::npc_cork_gizeltonAI::UpdateEscortAI(), npc_wizzlecrank_shredder::npc_wizzlecrank_shredderAI::UpdateEscortAI(), npc_onyx_flamecaller::npc_onyx_flamecallerAI::UpdateEscortAI(), boss_bjarngrim::boss_bjarngrimAI::UpdateEscortAI(), npc_apothecary_hanes::npc_Apothecary_HanesAI::UpdateEscortAI(), npc_time_lost_proto_drake::npc_time_lost_proto_drakeAI::UpdateEscortAI(), npc_akama_illidan::npc_akama_illidanAI::UpdateEscortAI(), npc_kurenai_captive::npc_kurenai_captiveAI::UpdateEscortAI(), npc_isla_starmane::npc_isla_starmaneAI::UpdateEscortAI(), npc_bonker_togglevolt::npc_bonker_togglevoltAI::UpdateEscortAI(), npc_kerlonian::npc_kerlonianAI::UpdateFollowerAI(), npc_tooga::npc_toogaAI::UpdateFollowerAI(), npc_ringo::npc_ringoAI::UpdateFollowerAI(), and FollowerAI::UpdateFollowerAI().

◆ DoSpellAttackIfReady()

◆ DoSpellAttackToRandomTargetIfReady()

void UnitAI::DoSpellAttackToRandomTargetIfReady ( uint32  spell,
uint32  threatTablePosition = 0,
float  dist = 0.f,
bool  playerOnly = true 
)
94{
96 return;
97
98 if (SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spell))
99 {
100 if (Unit* target = SelectTarget(SelectTargetMethod::Random, threatTablePosition, dist, playerOnly))
101 {
102 if (me->IsWithinCombatRange(target, spellInfo->GetMaxRange(false)))
103 {
104 me->CastSpell(target, spell, false);
106 }
107 }
108 }
109}

References Unit::CastSpell(), Unit::HasUnitState(), Unit::isAttackReady(), Unit::IsWithinCombatRange(), me, Unit::resetAttackTimer(), SelectTarget(), sSpellMgr, and UNIT_STATE_CASTING.

Referenced by boss_ouro::DamageTaken().

◆ FillAISpellInfo()

void UnitAI::FillAISpellInfo ( )
static
291{
292 AISpellInfo = new AISpellInfoType[sSpellMgr->GetSpellInfoStoreSize()];
293
295 SpellInfo const* spellInfo;
296
297 for (uint32 i = 0; i < sSpellMgr->GetSpellInfoStoreSize(); ++i, ++AIInfo)
298 {
299 spellInfo = sSpellMgr->GetSpellInfo(i);
300 if (!spellInfo)
301 continue;
302
304 AIInfo->condition = AICOND_DIE;
305 else if (spellInfo->IsPassive() || spellInfo->GetDuration() == -1)
306 AIInfo->condition = AICOND_AGGRO;
307 else
308 AIInfo->condition = AICOND_COMBAT;
309
310 if (AIInfo->cooldown < spellInfo->RecoveryTime)
311 AIInfo->cooldown = spellInfo->RecoveryTime;
312
313 if (!spellInfo->GetMaxRange(false))
315 else
316 {
317 for (uint32 j = 0; j < MAX_SPELL_EFFECTS; ++j)
318 {
319 uint32 targetType = spellInfo->Effects[j].TargetA.GetTarget();
320
321 if (targetType == TARGET_UNIT_TARGET_ENEMY
322 || targetType == TARGET_DEST_TARGET_ENEMY)
324 else if (targetType == TARGET_UNIT_DEST_AREA_ENEMY)
326
327 if (spellInfo->Effects[j].Effect == SPELL_EFFECT_APPLY_AURA)
328 {
329 if (targetType == TARGET_UNIT_TARGET_ENEMY)
331 else if (spellInfo->IsPositive())
333 }
334 }
335 }
336 AIInfo->realCooldown = spellInfo->RecoveryTime + spellInfo->StartRecoveryTime;
337 AIInfo->maxRange = spellInfo->GetMaxRange(false) * 3 / 4;
338 }
339}
std::uint32_t uint32
Definition: Define.h:108
#define UPDATE_TARGET(a)
Definition: UnitAI.cpp:288
@ AICOND_COMBAT
Definition: CreatureAIImpl.h:49
@ AICOND_AGGRO
Definition: CreatureAIImpl.h:48
@ AICOND_DIE
Definition: CreatureAIImpl.h:50
#define MAX_SPELL_EFFECTS
Definition: DBCStructure.h:1635
@ SPELL_EFFECT_APPLY_AURA
Definition: SharedDefines.h:756
@ TARGET_UNIT_DEST_AREA_ENEMY
Definition: SharedDefines.h:1393
@ TARGET_DEST_TARGET_ENEMY
Definition: SharedDefines.h:1429
@ TARGET_UNIT_TARGET_ENEMY
Definition: SharedDefines.h:1387
@ SPELL_ATTR0_ALLOW_CAST_WHILE_DEAD
Definition: SharedDefines.h:377
Definition: CreatureAIImpl.h:56
uint32 realCooldown
Definition: CreatureAIImpl.h:62
uint32 cooldown
Definition: CreatureAIImpl.h:61
float maxRange
Definition: CreatureAIImpl.h:63
AICondition condition
Definition: CreatureAIImpl.h:60
uint32 RecoveryTime
Definition: SpellInfo.h:346
bool IsPassive() const
Definition: SpellInfo.cpp:1082
bool HasAttribute(SpellAttr0 attribute) const
Definition: SpellInfo.h:412
std::array< SpellEffectInfo, MAX_SPELL_EFFECTS > Effects
Definition: SpellInfo.h:391
int32 GetDuration() const
Definition: SpellInfo.cpp:2322
uint32 StartRecoveryTime
Definition: SpellInfo.h:349
bool IsPositive() const
Definition: SpellInfo.cpp:1221

References AICOND_AGGRO, AICOND_COMBAT, AICOND_DIE, AISpellInfo, AITARGET_BUFF, AITARGET_DEBUFF, AITARGET_ENEMY, AITARGET_SELF, AITARGET_VICTIM, AISpellInfoType::condition, AISpellInfoType::cooldown, SpellInfo::Effects, SpellInfo::GetDuration(), SpellInfo::GetMaxRange(), SpellInfo::HasAttribute(), SpellInfo::IsPassive(), SpellInfo::IsPositive(), MAX_SPELL_EFFECTS, AISpellInfoType::maxRange, AISpellInfoType::realCooldown, SpellInfo::RecoveryTime, SPELL_ATTR0_ALLOW_CAST_WHILE_DEAD, SPELL_EFFECT_APPLY_AURA, sSpellMgr, SpellInfo::StartRecoveryTime, TARGET_DEST_TARGET_ENEMY, TARGET_UNIT_DEST_AREA_ENEMY, TARGET_UNIT_TARGET_ENEMY, and UPDATE_TARGET.

Referenced by ScriptMgr::FillSpellSummary().

◆ GetData()

virtual uint32 UnitAI::GetData ( uint32  ) const
inlinevirtual

Reimplemented in npc_death_knight_initiate::npc_death_knight_initiateAI, boss_hadronox::boss_hadronoxAI, boss_krik_thir::boss_krik_thirAI, boss_dred::boss_dredAI, boss_novos::boss_novosAI, boss_slad_ran::boss_slad_ranAI, boss_anomalus::boss_anomalusAI, boss_magus_telestra::boss_magus_telestraAI, npc_captain_saeed::npc_captain_saeedAI, boss_sartharion::boss_sartharionAI, boss_keristrasza::boss_keristraszaAI, boss_devourer_of_souls::boss_devourer_of_soulsAI, npc_gunship::npc_gunshipAI, boss_vezax::boss_vezaxAI, boss_hodir::boss_hodirAI, boss_ignis::boss_ignisAI, boss_mimiron::boss_mimironAI, boss_razorscale::boss_razorscaleAI, npc_ulduar_harpoonfirestate::npc_ulduar_harpoonfirestateAI, SmartAI, boss_algalon_the_observer::boss_algalon_the_observerAI, boss_stormcaller_brundir::boss_stormcaller_brundirAI, boss_auriaya::boss_auriayaAI, boss_flame_leviathan::boss_flame_leviathanAI, boss_freya::boss_freyaAI, boss_kologarn::boss_kologarnAI, boss_thorim::boss_thorimAI, boss_xt002::boss_xt002AI, boss_yoggsaron_sara::boss_yoggsaron_saraAI, boss_yoggsaron::boss_yoggsaronAI, boss_yoggsaron_brain::boss_yoggsaron_brainAI, npc_pet_gen_argent_pony_bridle, npc_highlord_darion_mograine::npc_highlord_darion_mograineAI, boss_darkmaster_gandling::boss_darkmaster_gandlingAI, boss_entropius::boss_entropiusAI, npc_general_andorov, boss_elder_nadox, boss_jedoga_shadowseeker, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, boss_festergut::boss_festergutAI, boss_professor_putricide::boss_professor_putricideAI, boss_sindragosa::boss_sindragosaAI, npc_sindragosa_trash::npc_sindragosa_trashAI, boss_the_lich_king::boss_the_lich_kingAI, boss_valithria_dreamwalker::boss_valithria_dreamwalkerAI, npc_valithria_portal::npc_valithria_portalAI, npc_elder_clearwater::npc_elder_clearwaterAI, npc_wormhole::npc_wormholeAI, npc_hallows_end_soh, boss_gal_darah::boss_gal_darahAI, npc_living_constellation::npc_living_constellationAI, and npc_ulduar_vx001::npc_ulduar_vx001AI.

202{ return 0; }

Referenced by boss_algalon_the_observer::boss_algalon_the_observerAI::CallConstellations(), instance_ruins_of_ahnqiraj::instance_ruins_of_ahnqiraj_InstanceMapScript::CallNextRajaxxLeader(), instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::CheckAchievementCriteriaMeet(), spell_putricide_mutation_init::spell_putricide_mutation_init_SpellScript::CheckRequirementInternal(), spell_putricide_unstable_experiment::spell_putricide_unstable_experiment_SpellScript::HandleScript(), spell_putricide_mutated_transformation::spell_putricide_mutated_transformation_SpellScript::HandleSummon(), npc_risen_guardian::npc_risen_guardianAI::IsSummonedBy(), achievement_respect_your_elders::OnCheck(), achievement_hadronox_denied::OnCheck(), achievement_watch_him_die::OnCheck(), achievement_better_off_dred::OnCheck(), achievement_oh_novos::OnCheck(), achievement_share_the_love::OnCheck(), achievement_snakes_whyd_it_have_to_be_snakes::OnCheck(), achievement_flu_shot_shortage::OnCheck(), achievement_im_on_a_boat::OnCheck(), achievement_all_you_can_eat::OnCheck(), achievement_been_waiting_long_time::OnCheck(), achievement_neck_deep_in_vile::OnCheck(), achievement_portal_jockey::OnCheck(), achievement_chaos_theory::OnCheck(), achievement_split_personality::OnCheck(), achievement_algalon_he_feeds_on_your_tears::OnCheck(), achievement_algalon_herald_of_the_titans::OnCheck(), achievement_flame_leviathan_towers::OnCheck(), achievement_flame_leviathan_shutout::OnCheck(), achievement_freya_getting_back_to_nature::OnCheck(), achievement_freya_knock_on_wood::OnCheck(), achievement_smell_saronite::OnCheck(), achievement_shadowdodger::OnCheck(), achievement_cheese_the_freeze::OnCheck(), achievement_getting_cold_in_here::OnCheck(), achievement_i_could_say_that_this_cache_was_rare::OnCheck(), achievement_i_have_the_coolest_friends::OnCheck(), achievement_ignis_shattered::OnCheck(), achievement_mimiron_firefighter::OnCheck(), achievement_mimiron_set_up_us_the_bomb_11::OnCheck(), achievement_mimiron_set_up_us_the_bomb_12::OnCheck(), achievement_mimiron_set_up_us_the_bomb_13::OnCheck(), achievement_quick_shave::OnCheck(), achievement_yogg_saron_drive_me_crazy::OnCheck(), achievement_yogg_saron_kiss_and_make_up::OnCheck(), achievement_intense_cold::OnCheck(), npc_pet_gen_argent_pony_bridle::OnGossipHello(), npc_highlord_darion_mograine::OnGossipHello(), npc_captain_saeed::OnGossipHello(), npc_elder_clearwater::OnGossipHello(), npc_wormhole::OnGossipHello(), npc_death_knight_initiate::OnGossipSelect(), npc_elder_clearwater::OnQuestReward(), instance_icecrown_citadel::instance_icecrown_citadel_InstanceMapScript::OnUnitDeath(), OrderWhelpTargetSelector::operator()(), boss_valithria_dreamwalker::boss_valithria_dreamwalkerAI::SummonedCreatureDespawn(), and npc_ulduar_flames_initial::npc_ulduar_flames_initialAI::UpdateAI().

◆ GetDebugInfo()

std::string UnitAI::GetDebugInfo ( ) const
virtual
128{
129 std::stringstream sstr;
130 sstr << std::boolalpha
131 << "Me: " << (me ? me->GetDebugInfo() : "NULL");
132 return sstr.str();
133}
std::string GetDebugInfo() const override
Definition: Unit.cpp:21553

References Unit::GetDebugInfo(), and me.

◆ GetGUID()

◆ GetThreatMgr()

ThreatMgr & UnitAI::GetThreatMgr ( )
private
342{
343 return me->GetThreatMgr();
344}

References Unit::GetThreatMgr(), and me.

Referenced by SelectTarget(), and SelectTargetList().

◆ HealDone()

virtual void UnitAI::HealDone ( Unit ,
uint32  
)
inlinevirtual
362{}

Referenced by Unit::DealHeal().

◆ HealReceived()

virtual void UnitAI::HealReceived ( Unit ,
uint32  
)
inlinevirtual

◆ InitializeAI()

virtual void UnitAI::InitializeAI ( )
inlinevirtual

Reimplemented in CombatAI, CasterAI, SmartAI, npc_rookery_hatcher::npc_rookery_hatcherAI, boss_solakar_flamewreath::boss_solakar_flamewreathAI, boss_urok_doomhowl::boss_urok_doomhowlAI, boss_majordomo::boss_majordomoAI, boss_moroes, boss_felblood_kaelthas::boss_felblood_kaelthasAI, boss_priestess_delrissa::boss_priestess_delrissaAI, npc_eye_of_acherus, npc_scarlet_ghoul::npc_scarlet_ghoulAI, boss_kiljaeden::boss_kiljaedenAI, boss_twilight_corrupter, npc_lady_sylvanas_windrunner_bfu::npc_lady_sylvanas_windrunner_bfuAI, boss_captain_skarloc, boss_lieutenant_drake, boss_kurinnaxx, boss_moam, boss_ossirian, npc_general_andorov, boss_sartura, boss_glob_of_viscidus, npc_toxic_slime, npc_cork_gizelton::npc_cork_gizeltonAI, npc_troll_volunteer::npc_troll_volunteerAI, npc_sergeant_bly::npc_sergeant_blyAI, npc_weegli_blastfuse::npc_weegli_blastfuseAI, boss_volazj, boss_taldaram, boss_baltharus_the_warborn::boss_baltharus_the_warbornAI, npc_pos_deathwhisper_necrolyte::npc_pos_deathwhisper_necrolyteAI, boss_drakkari_colossus::boss_drakkari_colossusAI, boss_eck::boss_eckAI, boss_gal_darah::boss_gal_darahAI, boss_prince_keleseth_icc::boss_prince_kelesethAI, boss_prince_taldaram_icc::boss_prince_taldaramAI, boss_prince_valanar_icc::boss_prince_valanarAI, npc_spinestalker::npc_spinestalkerAI, npc_rimefang::npc_rimefangAI, npc_sindragosa_trash::npc_sindragosa_trashAI, npc_icc_nerubar_broodkeeper::npc_icc_nerubar_broodkeeperAI, boss_sapphiron::boss_sapphironAI, boss_malygos::boss_malygosAI, boss_flame_leviathan::boss_flame_leviathanAI, npc_ulduar_mimiron_rocket::npc_ulduar_mimiron_rocketAI, boss_razorscale::boss_razorscaleAI, npc_preparations_for_war_vehicle, npc_hourglass_of_eternity::npc_hourglass_of_eternityAI, npc_lord_arete::npc_lord_areteAI, npc_bushwhacker::npc_bushwhackerAI, boss_ambassador_hellmaw, boss_leotheras_the_blind::boss_leotheras_the_blindAI, boss_ghazan, npc_underbog_mushroom, boss_warchief_kargath_bladefist, npc_millhouse_manastorm::npc_millhouse_manastormAI, boss_dalliah_the_doomsayer, boss_wrath_scryer_soccothrates, npc_raging_flames, npc_pet_dk_ebon_gargoyle::npc_pet_dk_ebon_gargoyleAI, npc_pet_dk_army_of_the_dead::npc_pet_dk_army_of_the_deadAI, npc_pet_dk_dancing_rune_weapon::npc_pet_dk_dancing_rune_weaponAI, npc_pet_gen_valkyr_guardian, npc_pet_gen_imp_in_a_bottle, npc_pet_mage_mirror_image, npc_pet_pri_lightwell, npc_pet_shaman_earth_elemental, npc_pet_shaman_fire_elemental, npc_precious::npc_preciousAI, and npc_wormhole::npc_wormholeAI.

193{ if (!me->isDead()) Reset(); }
virtual void Reset()
Definition: UnitAI.h:195
bool isDead() const
Definition: Unit.h:1822

References Unit::isDead(), me, and Reset().

Referenced by Creature::AIM_Initialize(), CombatAI::InitializeAI(), npc_rookery_hatcher::npc_rookery_hatcherAI::InitializeAI(), boss_solakar_flamewreath::boss_solakar_flamewreathAI::InitializeAI(), boss_urok_doomhowl::boss_urok_doomhowlAI::InitializeAI(), boss_majordomo::boss_majordomoAI::InitializeAI(), boss_moroes::InitializeAI(), boss_felblood_kaelthas::boss_felblood_kaelthasAI::InitializeAI(), boss_priestess_delrissa::boss_priestess_delrissaAI::InitializeAI(), npc_scarlet_ghoul::npc_scarlet_ghoulAI::InitializeAI(), boss_kiljaeden::boss_kiljaedenAI::InitializeAI(), boss_twilight_corrupter::InitializeAI(), boss_captain_skarloc::InitializeAI(), npc_cork_gizelton::npc_cork_gizeltonAI::InitializeAI(), boss_volazj::InitializeAI(), boss_taldaram::InitializeAI(), boss_baltharus_the_warborn::boss_baltharus_the_warbornAI::InitializeAI(), boss_drakkari_colossus::boss_drakkari_colossusAI::InitializeAI(), boss_eck::boss_eckAI::InitializeAI(), boss_gal_darah::boss_gal_darahAI::InitializeAI(), boss_prince_keleseth_icc::boss_prince_kelesethAI::InitializeAI(), boss_prince_taldaram_icc::boss_prince_taldaramAI::InitializeAI(), boss_prince_valanar_icc::boss_prince_valanarAI::InitializeAI(), boss_sapphiron::boss_sapphironAI::InitializeAI(), boss_flame_leviathan::boss_flame_leviathanAI::InitializeAI(), npc_preparations_for_war_vehicle::InitializeAI(), boss_leotheras_the_blind::boss_leotheras_the_blindAI::InitializeAI(), boss_warchief_kargath_bladefist::InitializeAI(), npc_millhouse_manastorm::npc_millhouse_manastormAI::InitializeAI(), boss_dalliah_the_doomsayer::InitializeAI(), boss_wrath_scryer_soccothrates::InitializeAI(), npc_pet_dk_ebon_gargoyle::npc_pet_dk_ebon_gargoyleAI::InitializeAI(), npc_pet_dk_dancing_rune_weapon::npc_pet_dk_dancing_rune_weaponAI::InitializeAI(), npc_pet_gen_imp_in_a_bottle::InitializeAI(), and npc_pet_pri_lightwell::InitializeAI().

◆ JustEnteredCombat()

virtual void UnitAI::JustEnteredCombat ( Unit )
inlinevirtual

Called when the unit enters combat (NOTE: Creature engage logic should NOT be here, but in JustEngagedWith, which happens once threat is established!)

Todo:
Never invoked right now. Preparation for Combat Threat refactor
341{ }

◆ JustExitedCombat()

virtual void UnitAI::JustExitedCombat ( )
inlinevirtual

Called when the unit leaves combat.

Todo:
Never invoked right now. Preparation for Combat Threat refactor
348{ }

◆ OnCharmed()

◆ Reset()

virtual void UnitAI::Reset ( )
inlinevirtual

Reimplemented in npc_razzashi_cobra_venoxis::npc_razzashi_cobra_venoxis_AI, CombatAI, GuardAI, ScriptedAI, BossAI, WorldBossAI, npc_av_marshal_or_warmaster::npc_av_marshal_or_warmasterAI, npc_water_elemental::npc_water_elementalAI, boss_balinda::boss_balindaAI, boss_drekthar::boss_drektharAI, boss_galvangar::boss_galvangarAI, boss_vanndar::boss_vanndarAI, npc_grimstone::npc_grimstoneAI, npc_phalanx::npc_phalanxAI, npc_rocknot::npc_rocknotAI, boss_ambassador_flamelash::boss_ambassador_flamelashAI, boss_general_angerforge::boss_general_angerforgeAI, boss_high_interrogator_gerstahn::boss_high_interrogator_gerstahnAI, boss_magmus::boss_magmusAI, boss_doomrel::boss_doomrelAI, boss_gyth::boss_gythAI, boss_halycon::boss_halyconAI, boss_highlord_omokk::boss_highlordomokkAI, boss_lord_valthalak::boss_lord_valthalakAI, boss_mor_grayhoof, boss_overlord_wyrmthalak::boss_overlordwyrmthalakAI, boss_pyroguard_emberseer::boss_pyroguard_emberseerAI, npc_blackhand_incarcerator::npc_blackhand_incarceratorAI, boss_quartermaster_zigris, boss_rend_blackhand::boss_rend_blackhandAI, boss_solakar_flamewreath::boss_solakar_flamewreathAI, boss_the_beast::boss_thebeastAI, boss_chromaggus::boss_chromaggusAI, boss_victor_nefarius::boss_victor_nefariusAI, boss_nefarian, npc_corrupted_totem, boss_razorgore::boss_razorgoreAI, boss_vaelastrasz::boss_vaelAI, boss_baron_geddon::boss_baron_geddonAI, boss_garr::boss_garrAI, boss_golemagg::boss_golemaggAI, npc_core_rager::npc_core_ragerAI, boss_majordomo::boss_majordomoAI, boss_ragnaros::boss_ragnarosAI, npc_flamewaker_priest::npc_flamewaker_priestAI, npc_mc_core_hound::npc_mc_core_houndAI, npc_lava_spawn, boss_mr_smite::boss_mr_smiteAI, npc_echo_of_medivh, npc_chesspiece, boss_curator, boss_attumen, boss_midnight, boss_moroes, boss_netherspite, boss_nightbane, boss_malchezaar, boss_servant_quarters, boss_shade_of_aran, npc_aran_elemental, npc_kilrek, npc_demon_chain, npc_fiendish_portal, npc_fiendish_imp, boss_terestian_illhoof, boss_dorothee, npc_tito, boss_roar, boss_strawman, boss_tinhead, boss_crone, npc_cyclone, boss_bigbadwolf, boss_julianne, boss_romulo, npc_barnes::npc_barnesAI, npc_image_of_medivh::npc_image_of_medivhAI, boss_felblood_kaelthas::boss_felblood_kaelthasAI, boss_priestess_delrissa::boss_priestess_delrissaAI, boss_priestess_lackey_commonAI, boss_garaxxas::boss_garaxxasAI, boss_selin_fireheart::boss_selin_fireheartAI, boss_vexallus::boss_vexallusAI, npc_death_knight_initiate::npc_death_knight_initiateAI, npc_unworthy_initiate::npc_unworthy_initiateAI, npc_scarlet_miner::npc_scarlet_minerAI, npc_crusade_persuaded::npc_crusade_persuadedAI, npc_koltira_deathweaver::npc_koltira_deathweaverAI, npc_scarlet_courier::npc_scarlet_courierAI, npc_high_inquisitor_valroth::npc_high_inquisitor_valrothAI, npc_a_special_surprise::npc_a_special_surpriseAI, npc_highlord_darion_mograine::npc_highlord_darion_mograineAI, npc_valkyr_battle_maiden::npc_valkyr_battle_maidenAI, npc_scarlet_guard::npc_scarlet_guardAI, npc_mograine::npc_mograineAI, boss_high_inquisitor_whitemane::boss_high_inquisitor_whitemaneAI, npc_fairbanks::npc_fairbanksAI, boss_darkmaster_gandling::boss_darkmaster_gandlingAI, boss_kormok, boss_apothecary_hummel::boss_apothecary_hummelAI, npc_apothecary_baxter, boss_baroness_anastari::boss_baroness_anastariAI, boss_jarien, boss_sothos, boss_brutallus::boss_brutallusAI, boss_sacrolash::boss_sacrolashAI, boss_alythess::boss_alythessAI, boss_felmyst::boss_felmystAI, npc_demonic_vapor::npc_demonic_vaporAI, npc_demonic_vapor_trail::npc_demonic_vapor_trailAI, boss_kalecgos::boss_kalecgosAI, boss_kalec::boss_kalecAI, boss_sathrovarr::boss_sathrovarrAI, npc_kiljaeden_controller::npc_kiljaeden_controllerAI, boss_kiljaeden::boss_kiljaedenAI, npc_kalecgos_kj::npc_kalecgos_kjAI, boss_muru::boss_muruAI, boss_entropius::boss_entropiusAI, npc_singularity::npc_singularityAI, boss_twilight_corrupter, npc_eris_hevenfire::npc_eris_hevenfireAI, npc_supervisor_raelen, npc_eastvale_peasent, npc_partygoer_pather, npc_partygoer, npc_ranger_lilatha, npc_sentinel_leader, npc_sentinel_infiltrator, npc_rinji::npc_rinjiAI, npc_bh_thalorien_dawnseeker::npc_bh_thalorien_dawnseekerAI, npc_corporal_keeshan::npc_corporal_keeshanAI, npc_deathstalker_erland::npc_deathstalker_erlandAI, pyrewood_ambush::pyrewood_ambushAI, npc_bartleby::npc_bartlebyAI, npc_lord_gregor_lescovar::npc_lord_gregor_lescovarAI, npc_marzon_silent_blade::npc_marzon_silent_bladeAI, npc_tyrion_spybot::npc_tyrion_spybotAI, npc_calvin_montague::npc_calvin_montagueAI, npc_lady_sylvanas_windrunner::npc_lady_sylvanas_windrunnerAI, npc_highborne_lamenter::npc_highborne_lamenterAI, npc_varian_wrynn::npc_varian_wrynnAI, npc_jaina_proudmoore_bfu::npc_jaina_proudmoore_bfuAI, boss_blight_worm::boss_blight_wormAI, npc_thrall_bfu::npc_thrall_bfuAI, npc_lady_sylvanas_windrunner_bfu::npc_lady_sylvanas_windrunner_bfuAI, npc_the_scourge_cauldron::npc_the_scourge_cauldronAI, npc_daphne_stilwell::npc_daphne_stilwellAI, npc_tapoke_slim_jahn::npc_tapoke_slim_jahnAI, boss_akilzon::boss_akilzonAI, npc_akilzon_eagle::npc_akilzon_eagleAI, boss_halazzi::boss_halazziAI, npc_halazzi_lynx::npc_halazzi_lynxAI, boss_hexlord_addAI, boss_hexlord_malacrass::boss_hex_lord_malacrassAI, boss_thurg::boss_thurgAI, boss_alyson_antille::boss_alyson_antilleAI, boss_gazakrothAI, boss_lord_raadan::boss_lord_raadanAI, boss_darkheart::boss_darkheartAI, boss_slither::boss_slitherAI, boss_fenstalker::boss_fenstalkerAI, boss_koragg::boss_koraggAI, boss_janalai::boss_janalaiAI, npc_janalai_firebomb::npc_janalai_firebombAI, npc_janalai_hatcher::npc_janalai_hatcherAI, npc_janalai_hatchling::npc_janalai_hatchlingAI, npc_janalai_egg::npc_janalai_eggAI, boss_nalorakk::boss_nalorakkAI, boss_zuljin::boss_zuljinAI, npc_zuljin_vortex::npc_zuljin_vortexAI, npc_forest_frog::npc_forest_frogAI, npc_zulaman_hostage::npc_zulaman_hostageAI, npc_harrison_jones::npc_harrison_jonesAI, boss_arlokk::boss_arlokkAI, npc_zulian_prowler::npc_zulian_prowlerAI, boss_gahzranka::boss_gahzrankaAI, boss_grilek::boss_grilekAI, boss_hakkar::boss_hakkarAI, boss_jeklik, npc_batrider, npc_healing_ward, npc_shade_of_jindo, boss_mandokir::boss_mandokirAI, npc_ohgan::npc_ohganAI, npc_chained_spirit, npc_vilebranch_speaker, boss_marli, npc_spawn_of_marli, boss_renataki::boss_renatakiAI, boss_thekal::boss_thekalAI, npc_zealot_lorkhan::npc_zealot_lorkhanAI, npc_zealot_zath::npc_zealot_zathAI, boss_venoxis::boss_venoxisAI, npc_dark_iron_attack_generator, npc_dark_iron_attack_mole_machine, npc_dark_iron_guzzler, npc_brewfest_super_brew_trigger, npc_brew_bubble, npc_coren_direbrew, npc_direbrew_minion, npc_winterfin_playmate, npc_snowfall_glade_playmate, npc_the_biggest_tree, npc_high_oracle_soo_roo, npc_elder_kekek, npc_the_etymidian, npc_alexstraza_the_lifebinder, npc_costumed_orphan_matron, npc_soh_fire_trigger, npc_hallows_end_soh, npc_hallows_end_train_fire, boss_headless_horseman, boss_headless_horseman_head, boss_headless_horseman_pumpkin, npc_love_in_air_snivel, boss_azuregos::boss_azuregosAI, boss_anetheron::boss_anetheronAI, npc_towering_infernal::npc_towering_infernalAI, npc_ancient_wisp::npc_ancient_wispAI, npc_doomfire::npc_doomfireAI, npc_doomfire_targetting::npc_doomfire_targettingAI, boss_archimonde::boss_archimondeAI, boss_azgalor::boss_azgalorAI, npc_lesser_doomguard::npc_lesser_doomguardAI, boss_kazrogal::boss_kazrogalAI, boss_rage_winterchill::boss_rage_winterchillAI, npc_giant_infernal::npc_giant_infernalAI, npc_abomination::npc_abominationAI, npc_ghoul::npc_ghoulAI, npc_necromancer::npc_necromancerAI, npc_banshee::npc_bansheeAI, npc_crypt_fiend::npc_crypt_fiendAI, npc_fel_stalker::npc_fel_stalkerAI, npc_frost_wyrm::npc_frost_wyrmAI, npc_gargoyle::npc_gargoyleAI, alliance_rifleman::alliance_riflemanAI, hyjalAI, boss_epoch::boss_epochAI, boss_infinite_corruptor::boss_infinite_corruptorAI, boss_mal_ganis::boss_mal_ganisAI, boss_meathook::boss_meathookAI, boss_salramm::boss_salrammAI, npc_arthas::npc_arthasAI, npc_cos_stratholme_citizien::npc_cos_stratholme_citizienAI, boss_captain_skarloc, boss_epoch_hunter, boss_lieutenant_drake, npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, npc_taretha::npc_tarethaAI, npc_medivh_bm, npc_time_rift, boss_isalien, boss_onyxia, npc_belnistrasz::npc_belnistraszAI, boss_ayamiss, boss_kurinnaxx, boss_moam, boss_ossirian, npc_anubisath_guardian, npc_hivezara_stinger, npc_obsidian_destroyer, boss_bug_trio, boss_eye_of_cthun, boss_cthun, npc_eye_tentacle, npc_claw_tentacle, npc_giant_claw_tentacle, npc_giant_eye_tentacle, boss_fankriss, boss_huhuran, npc_ouro_spawner, boss_ouro, npc_dirt_mound, boss_sartura, npc_sartura_royal_guard, boss_skeram, boss_viscidus, npc_anubisath_sentinel::aqsentinelAI, npc_anubisath_defender, npc_vekniss_stinger, npc_obsidian_eradicator, npc_anubisath_warder, npc_obsidian_nullifier, npc_ahnqiraji_critter, npc_muglash::npc_muglashAI, npc_rizzle_sprysprocket::npc_rizzle_sprysprocketAI, npc_depth_charge::npc_depth_chargeAI, npc_draenei_survivor::npc_draenei_survivorAI, npc_injured_draenei::npc_injured_draeneiAI, npc_magwin::npc_magwinAI, npc_death_ravager::npc_death_ravagerAI, npc_stillpine_capitive::npc_stillpine_capitiveAI, npc_webbed_creature::npc_webbed_creatureAI, npc_murkdeep::npc_murkdeepAI, npc_kerlonian::npc_kerlonianAI, npc_prospector_remtravel::npc_prospector_remtravelAI, npc_rabid_thistle_bear::npc_rabid_thistle_bearAI, npc_tharnarian::npc_tharnarianAI, npc_troll_volunteer::npc_troll_volunteerAI, npc_clintar_spirit::npc_clintar_spiritAI, npc_giant_spotlight::npc_giant_spotlightAI, npc_shenthul::npc_shenthulAI, npc_thrall_warchief::npc_thrall_warchiefAI, npc_anachronos_the_ancient::npc_anachronos_the_ancientAI, npc_qiraj_war_spawn::npc_qiraj_war_spawnAI, npc_anachronos_quest_trigger::npc_anachronos_quest_triggerAI, npc_kaya_flathoof::npc_kaya_flathoofAI, npc_aquementas::npc_aquementasAI, npc_custodian_of_time::npc_custodian_of_timeAI, npc_tooga::npc_toogaAI, npc_gilthares::npc_giltharesAI, npc_taskmaster_fizzule::npc_taskmaster_fizzuleAI, npc_twiggy_flathead::npc_twiggy_flatheadAI, npc_wizzlecrank_shredder::npc_wizzlecrank_shredderAI, npc_lakota_windsong::npc_lakota_windsongAI, npc_paoka_swiftmountain::npc_paoka_swiftmountainAI, npc_plucky::npc_pluckyAI, npc_enraged_panther::npc_enraged_pantherAI, npc_cairne_bloodhoof::npc_cairne_bloodhoofAI, npc_ame::npc_ameAI, npc_ringo::npc_ringoAI, npc_ranshalla::npc_ranshallaAI, npc_sergeant_bly::npc_sergeant_blyAI, npc_weegli_blastfuse::npc_weegli_blastfuseAI, npc_shadowpriest_sezziz::npc_shadowpriest_sezzizAI, boss_amanitar, npc_amanitar_mushrooms, boss_elder_nadox, npc_ahnkahar_nerubian, boss_volazj, boss_jedoga_shadowseeker, boss_taldaram, boss_anub_arak::boss_anub_arakAI, boss_hadronox::boss_hadronoxAI, npc_anub_ar_crusher::npc_anub_ar_crusherAI, boss_krik_thir::boss_krik_thirAI, boss_sartharion::boss_sartharionAI, boss_sartharion_dragonAI, boss_sartharion_tenebron::boss_sartharion_tenebronAI, boss_sartharion_shadron::boss_sartharion_shadronAI, boss_sartharion_vesperon::boss_sartharion_vesperonAI, npc_twilight_summon::npc_twilight_summonAI, boss_baltharus_the_warborn::boss_baltharus_the_warbornAI, npc_xerestrasza::npc_xerestraszaAI, boss_general_zarithrian::boss_general_zarithrianAI, npc_onyx_flamecaller::npc_onyx_flamecallerAI, boss_halion::boss_halionAI, boss_twilight_halion::boss_twilight_halionAI, npc_halion_controller::npc_halion_controllerAI, boss_saviana_ragefire::boss_saviana_ragefireAI, boss_eadric::boss_eadricAI, boss_paletress::boss_paletressAI, npc_memory::npc_memoryAI, npc_argent_soldier::npc_argent_soldierAI, boss_black_knight::boss_black_knightAI, npc_black_knight_skeletal_gryphon::npc_black_knight_skeletal_gryphonAI, npc_black_knight_ghoul::npc_black_knight_ghoulAI, npc_toc5_player_vehicle::npc_toc5_player_vehicleAI, npc_toc5_grand_champion_minion::npc_toc5_grand_champion_minionAI, boss_grand_champion::boss_grand_championAI, npc_announcer_toc5::npc_announcer_toc5AI, boss_anubarak_trial::boss_anubarak_trialAI, npc_swarm_scarab::npc_swarm_scarabAI, npc_nerubian_burrower::npc_nerubian_burrowerAI, npc_anubarak_spike::npc_anubarak_spikeAI, boss_jaraxxus::boss_jaraxxusAI, npc_fel_infernal::npc_fel_infernalAI, npc_mistress_of_pain::npc_mistress_of_painAI, npc_snobold_vassal::npc_snobold_vassalAI, boss_gormok::boss_gormokAI, boss_dred::boss_dredAI, boss_novos::boss_novosAI, boss_tharon_ja::boss_tharon_jaAI, boss_trollgore::boss_trollgoreAI, boss_bronjahm::boss_bronjahmAI, npc_fos_corrupted_soul_fragment::npc_fos_corrupted_soul_fragmentAI, boss_devourer_of_souls::boss_devourer_of_soulsAI, npc_fos_leader::npc_fos_leaderAI, boss_falric::boss_falricAI, boss_marwyn::boss_marwynAI, npc_hor_leader::npc_hor_leaderAI, npc_ghostly_priest::npc_ghostly_priestAI, npc_phantom_mage::npc_phantom_mageAI, npc_shadowy_mercenary::npc_shadowy_mercenaryAI, npc_spectral_footman::npc_spectral_footmanAI, npc_tortured_rifleman::npc_tortured_riflemanAI, boss_frostsworn_general::boss_frostsworn_generalAI, npc_hor_spiritual_reflection::npc_hor_spiritual_reflectionAI, npc_hor_lich_king::npc_hor_lich_kingAI, npc_hor_leader_second::npc_hor_leader_secondAI, npc_hor_raging_ghoul::npc_hor_raging_ghoulAI, npc_hor_risen_witch_doctor::npc_hor_risen_witch_doctorAI, npc_hor_lumbering_abomination::npc_hor_lumbering_abominationAI, boss_garfrost::boss_garfrostAI, boss_ick::boss_ickAI, boss_tyrannus::boss_tyrannusAI, npc_pos_leader::npc_pos_leaderAI, npc_pos_deathwhisper_necrolyte::npc_pos_deathwhisper_necrolyteAI, npc_pos_after_first_boss::npc_pos_after_first_bossAI, boss_drakkari_colossus::boss_drakkari_colossusAI, boss_drakkari_elemental::boss_drakkari_elementalAI, npc_living_mojo::npc_living_mojoAI, boss_eck::boss_eckAI, boss_gal_darah::boss_gal_darahAI, boss_moorabi::boss_moorabiAI, boss_slad_ran::boss_slad_ranAI, boss_prince_keleseth_icc::boss_prince_kelesethAI, boss_prince_taldaram_icc::boss_prince_taldaramAI, boss_prince_valanar_icc::boss_prince_valanarAI, npc_blood_queen_lana_thel::npc_blood_queen_lana_thelAI, npc_dark_nucleus::npc_dark_nucleusAI, npc_kinetic_bomb::npc_kinetic_bombAI, boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, npc_high_overlord_saurfang_icc::npc_high_overlord_saurfangAI, npc_muradin_bronzebeard_icc::npc_muradin_bronzebeard_iccAI, boss_festergut::boss_festergutAI, npc_stinky_icc::npc_stinky_iccAI, boss_lady_deathwhisper::boss_lady_deathwhisperAI, npc_cult_fanatic::npc_cult_fanaticAI, npc_cult_adherent::npc_cult_adherentAI, npc_vengeful_shade::npc_vengeful_shadeAI, npc_darnavan::npc_darnavanAI, boss_lord_marrowgar, boss_professor_putricide::boss_professor_putricideAI, boss_rotface::boss_rotfaceAI, npc_precious_icc::npc_precious_iccAI, boss_sindragosa::boss_sindragosaAI, npc_spinestalker::npc_spinestalkerAI, npc_rimefang::npc_rimefangAI, npc_sindragosa_trash::npc_sindragosa_trashAI, boss_the_lich_king::boss_the_lich_kingAI, npc_tirion_fordring_tft::npc_tirion_fordringAI, npc_shambling_horror_icc::npc_shambling_horror_iccAI, npc_raging_spirit::npc_raging_spiritAI, npc_spirit_warden::npc_spirit_wardenAI, npc_lk_wicked_spirit::npc_lk_wicked_spiritAI, boss_valithria_dreamwalker::boss_valithria_dreamwalkerAI, npc_green_dragon_combat_trigger::npc_green_dragon_combat_triggerAI, npc_the_lich_king_controller::npc_the_lich_king_controllerAI, npc_risen_archmage::npc_risen_archmageAI, npc_valithria_cloud::npc_valithria_cloudAI, npc_blazing_skeleton::npc_blazing_skeletonAI, npc_gluttonous_abomination::npc_gluttonous_abominationAI, npc_highlord_tirion_fordring_lh::npc_highlord_tirion_fordringAI, npc_rotting_frost_giant::npc_rotting_frost_giantAI, npc_crok_scourgebane::npc_crok_scourgebaneAI, boss_sister_svalna::boss_sister_svalnaAI, npc_argent_captainAI, npc_captain_arnath::npc_captain_arnathAI, npc_captain_brandon::npc_captain_brandonAI, npc_captain_grondel::npc_captain_grondelAI, npc_captain_rupert::npc_captain_rupertAI, npc_frostwing_vrykul::npc_frostwing_vrykulAI, npc_impaling_spear::npc_impaling_spearAI, npc_arthas_teleport_visual::npc_arthas_teleport_visualAI, npc_icc_skybreaker_hierophant::npc_icc_skybreaker_hierophantAI, npc_icc_skybreaker_marksman::npc_icc_skybreaker_marksmanAI, npc_icc_skybreaker_vicar::npc_icc_skybreaker_vicarAI, npc_icc_skybreaker_luminary::npc_icc_skybreaker_luminaryAI, npc_icc_valkyr_herald::npc_icc_valkyr_heraldAI, npc_icc_spire_frostwyrm, npc_icc_vengeful_fleshreaper::npc_icc_vengeful_fleshreaperAI, npc_icc_nerubar_broodkeeper::npc_icc_nerubar_broodkeeperAI, npc_icc_gauntlet_controller::npc_icc_gauntlet_controllerAI, npc_icc_putricades_trap::npc_icc_putricades_trapAI, boss_isle_of_conquest::boss_isle_of_conquestAI, boss_anubrekhan::boss_anubrekhanAI, boss_faerlina::boss_faerlinaAI, boss_four_horsemen::boss_four_horsemenAI, boss_gluth::boss_gluthAI, boss_gothik::boss_gothikAI, npc_boss_gothik_minion::npc_boss_gothik_minionAI, boss_grobbulus::boss_grobbulusAI, boss_grobbulus_poison_cloud::boss_grobbulus_poison_cloudAI, boss_heigan::boss_heiganAI, boss_kelthuzad::boss_kelthuzadAI, boss_kelthuzad_minion::boss_kelthuzad_minionAI, boss_loatheb::boss_loathebAI, boss_maexxna::boss_maexxnaAI, boss_noth::boss_nothAI, boss_patchwerk::boss_patchwerkAI, boss_razuvious::boss_razuviousAI, boss_razuvious_minion::boss_razuvious_minionAI, boss_sapphiron::boss_sapphironAI, boss_thaddius::boss_thaddiusAI, boss_thaddius_summon::boss_thaddius_summonAI, boss_malygos::boss_malygosAI, boss_anomalus::boss_anomalusAI, boss_commander_stoutbeard::boss_commander_stoutbeardAI, boss_keristrasza::boss_keristraszaAI, boss_magus_telestra::boss_magus_telestraAI, boss_ormorok::boss_ormorokAI, npc_crystal_spike::npc_crystal_spikeAI, npc_crystalline_frayer::npc_crystalline_frayerAI, boss_drakos::boss_drakosAI, npc_oculus_unstable_sphere::npc_oculus_unstable_sphereAI, boss_eregos::boss_eregosAI, boss_urom::boss_uromAI, boss_varos::boss_varosAI, npc_centrifuge_construct::npc_centrifuge_constructAI, boss_bjarngrim::boss_bjarngrimAI, npc_stormforged_lieutenant::npc_stormforged_lieutenantAI, boss_ionar::boss_ionarAI, npc_spark_of_ionar::npc_spark_of_ionarAI, boss_loken::boss_lokenAI, boss_volkhan::boss_volkhanAI, npc_molten_golem::npc_molten_golemAI, npc_hol_monument::npc_hol_monumentAI, boss_krystallus::boss_krystallusAI, boss_maiden_of_grief::boss_maiden_of_griefAI, boss_sjonnir::boss_sjonnirAI, boss_sjonnir_iron_sludge::boss_sjonnir_iron_sludgeAI, brann_bronzebeard::brann_bronzebeardAI, dark_rune_protectors::dark_rune_protectorsAI, dark_rune_stormcaller::dark_rune_stormcallerAI, iron_golem_custodian::iron_golem_custodianAI, boss_algalon_the_observer::boss_algalon_the_observerAI, npc_living_constellation::npc_living_constellationAI, npc_algalon_worm_hole::npc_algalon_worm_holeAI, boss_steelbreaker::boss_steelbreakerAI, boss_runemaster_molgeim::boss_runemaster_molgeimAI, npc_assembly_lightning::npc_assembly_lightningAI, boss_stormcaller_brundir::boss_stormcaller_brundirAI, boss_auriaya::boss_auriayaAI, npc_auriaya_sanctum_sentry::npc_auriaya_sanctum_sentryAI, npc_auriaya_feral_defender::npc_auriaya_feral_defenderAI, boss_flame_leviathan::boss_flame_leviathanAI, boss_flame_leviathan_seat::boss_flame_leviathan_seatAI, npc_freya_ward::npc_freya_wardAI, npc_hodirs_fury::npc_hodirs_furyAI, npc_mimirons_inferno::npc_mimirons_infernoAI, npc_thorims_hammer::npc_thorims_hammerAI, npc_brann_radio::npc_brann_radioAI, npc_mechanolift::npc_mechanoliftAI, boss_freya::boss_freyaAI, boss_freya_elder_stonebark::boss_freya_elder_stonebarkAI, boss_freya_elder_brightleaf::boss_freya_elder_brightleafAI, boss_freya_elder_ironbranch::boss_freya_elder_ironbranchAI, boss_freya_lifebinder::boss_freya_lifebinderAI, boss_freya_healthy_spore::boss_freya_healthy_sporeAI, boss_freya_summons::boss_freya_summonsAI, boss_freya_nature_bomb::boss_freya_nature_bombAI, boss_vezax::boss_vezaxAI, boss_hodir::boss_hodirAI, npc_ulduar_iron_construct::npc_ulduar_iron_constructAI, boss_ignis::boss_ignisAI, boss_kologarn::boss_kologarnAI, boss_kologarn_arms::boss_kologarn_armsAI, boss_mimiron::boss_mimironAI, npc_ulduar_leviathan_mkii::npc_ulduar_leviathan_mkiiAI, npc_ulduar_vx001::npc_ulduar_vx001AI, npc_ulduar_aerial_command_unit::npc_ulduar_aerial_command_unitAI, npc_ulduar_mimiron_rocket::npc_ulduar_mimiron_rocketAI, npc_ulduar_bot_summon_trigger::npc_ulduar_bot_summon_triggerAI, boss_razorscale::boss_razorscaleAI, npc_ulduar_harpoonfirestate::npc_ulduar_harpoonfirestateAI, npc_ulduar_expedition_engineer::npc_ulduar_expedition_engineerAI, npc_ulduar_dark_rune_guardian::npc_ulduar_dark_rune_guardianAI, npc_ulduar_dark_rune_watcher::npc_ulduar_dark_rune_watcherAI, npc_ulduar_dark_rune_sentinel::npc_ulduar_dark_rune_sentinelAI, boss_thorim::boss_thorimAI, boss_thorim_sif::boss_thorim_sifAI, boss_thorim_lightning_orb::boss_thorim_lightning_orbAI, boss_thorim_trap::boss_thorim_trapAI, boss_thorim_sif_blizzard::boss_thorim_sif_blizzardAI, boss_thorim_pillar::boss_thorim_pillarAI, boss_thorim_start_npcs::boss_thorim_start_npcsAI, boss_thorim_gauntlet_npcs::boss_thorim_gauntlet_npcsAI, boss_thorim_runic_colossus::boss_thorim_runic_colossusAI, boss_thorim_ancient_rune_giant::boss_thorim_ancient_rune_giantAI, boss_thorim_arena_npcs::boss_thorim_arena_npcsAI, boss_xt002::boss_xt002AI, npc_xt002_scrapbot::npc_xt002_scrapbotAI, npc_xt002_pummeller::npc_xt002_pummellerAI, npc_xt002_boombot::npc_xt002_boombotAI, npc_xt002_life_spark::npc_xt002_life_sparkAI, boss_yoggsaron_sara::boss_yoggsaron_saraAI, boss_yoggsaron_cloud::boss_yoggsaron_cloudAI, boss_yoggsaron_guardian_of_ys::boss_yoggsaron_guardian_of_ysAI, boss_yoggsaron_brain::boss_yoggsaron_brainAI, boss_yoggsaron_crusher_tentacle::boss_yoggsaron_crusher_tentacleAI, boss_yoggsaron_immortal_guardian::boss_yoggsaron_immortal_guardianAI, boss_yoggsaron_lich_king::boss_yoggsaron_lich_kingAI, boss_yoggsaron_llane::boss_yoggsaron_llaneAI, boss_yoggsaron_neltharion::boss_yoggsaron_neltharionAI, boss_yoggsaron_voice::boss_yoggsaron_voiceAI, npc_ulduar_storm_tempered_keeper::npc_ulduar_storm_tempered_keeperAI, npc_ulduar_arachnopod_destroyer::npc_ulduar_arachnopod_destroyerAI, boss_ingvar_the_plunderer::boss_ingvar_the_plundererAI, boss_keleseth::boss_kelesethAI, npc_vrykul_skeleton::npc_vrykul_skeletonAI, boss_skarvald_the_constructor::boss_skarvald_the_constructorAI, boss_dalronn_the_controller::boss_dalronn_the_controllerAI, npc_dragonflayer_forge_master::npc_dragonflayer_forge_masterAI, npc_enslaved_proto_drake::npc_enslaved_proto_drakeAI, boss_palehoof::boss_palehoofAI, npc_massive_jormungar::npc_massive_jormungarAI, npc_ferocious_rhino::npc_ferocious_rhinoAI, npc_ravenous_furbolg::npc_ravenous_furbolgAI, npc_frenzied_worgen::npc_frenzied_worgenAI, boss_skadi::boss_skadiAI, boss_skadi_grauf::boss_skadi_graufAI, boss_svala::boss_svalaAI, boss_ymiron::boss_ymironAI, boss_archavon::boss_archavonAI, boss_emalon::boss_emalonAI, boss_koralon::boss_koralonAI, boss_toravon::boss_toravonAI, npc_frozen_orb::npc_frozen_orbAI, npc_frozen_orb_stalker::npc_frozen_orb_stalkerAI, boss_cyanigosa::boss_cyanigosaAI, boss_erekem::boss_erekemAI, npc_erekem_guard::npc_erekem_guardAI, boss_ichoron::boss_ichoronAI, boss_lavanthor::boss_lavanthorAI, boss_moragg::boss_moraggAI, boss_xevozz::boss_xevozzAI, boss_zuramat::boss_zuramatAI, npc_azure_invader::npc_azure_invaderAI, npc_azure_binder::npc_azure_binderAI, npc_azure_mage_slayer::npc_azure_mage_slayerAI, npc_azure_raider::npc_azure_raiderAI, npc_azure_stalker::npc_azure_stalkerAI, npc_azure_spellbreaker::npc_azure_spellbreakerAI, npc_azure_captain::npc_azure_captainAI, npc_azure_sorceror::npc_azure_sorcerorAI, npc_violet_hold_defense_system, npc_sinkhole_kill_credit::npc_sinkhole_kill_creditAI, npc_lurgglbr::npc_lurgglbrAI, npc_beryl_sorcerer::npc_beryl_sorcererAI, npc_captured_beryl_sorcerer::npc_captured_beryl_sorcererAI, npc_imprisoned_beryl_sorcerer::npc_imprisoned_beryl_sorcererAI, npc_mootoo_the_younger::npc_mootoo_the_youngerAI, npc_bonker_togglevolt::npc_bonker_togglevoltAI, npc_valiance_keep_cannoneer::npc_valiance_keep_cannoneerAI, npc_warmage_coldarra::npc_warmage_coldarraAI, npc_hidden_cultist::npc_hidden_cultistAI, npc_bloodmage_laurith::npc_bloodmage_laurithAI, npc_thassarian::npc_thassarianAI, npc_thassarian2::npc_thassarian2AI, npc_counselor_talbot::npc_counselor_talbotAI, npc_warmage_violetstand, npc_shandy_dalaran::npc_shandy_dalaranAI, npc_mageguard_dalaran::npc_mageguard_dalaranAI, npc_minigob_manabonk::npc_minigob_manabonkAI, npc_dalaran_mage::npc_dalaran_mageAI, npc_dalaran_warrior::npc_dalaran_warriorAI, npc_conversing_with_the_depths_trigger::npc_conversing_with_the_depths_triggerAI, npc_future_you::npc_future_youAI, npc_injured_7th_legion_soldier::npc_injured_7th_legion_soldierAI, npc_heated_battle::npc_heated_battleAI, npc_q24545_lich_king::npc_q24545_lich_kingAI, npc_q24545_wretched_ghoul::npc_q24545_wretched_ghoulAI, npc_commander_eligor_dawnbringer::npc_commander_eligor_dawnbringerAI, npc_torturer_lecraft::npc_torturer_lecraftAI, npc_emily::npc_emilyAI, npc_mrfloppy::npc_mrfloppyAI, npc_tallhorn_stag::npc_tallhorn_stagAI, npc_amberpine_woodsman::npc_amberpine_woodsmanAI, npc_wounded_skirmisher, npc_venture_co_straggler::npc_venture_co_stragglerAI, npc_lake_frog::npc_lake_frogAI, npc_your_inner_turmoil::npc_your_inner_turmoilAI, npc_apothecary_hanes::npc_Apothecary_HanesAI, npc_plaguehound_tracker::npc_plaguehound_trackerAI, npc_battle_at_valhalas::npc_battle_at_valhalasAI, npc_llod_generic::npc_llod_genericAI, npc_tirions_gambit_tirion::npc_tirions_gambit_tirionAI, npc_tournament_training_dummy::npc_tournament_training_dummyAI, npc_blessed_banner::npc_blessed_bannerAI, npc_artruis_the_hearthless::npc_artruis_the_hearthlessAI, npc_still_at_it_trigger::npc_still_at_it_triggerAI, npc_engineer_helice::npc_engineer_heliceAI, npc_jungle_punch_target::npc_jungle_punch_targetAI, npc_iron_watcher::npc_iron_watcherAI, npc_time_lost_proto_drake::npc_time_lost_proto_drakeAI, npc_wild_wyrm::npc_wild_wyrmAI, npc_brunnhildar_prisoner::npc_brunnhildar_prisonerAI, npc_freed_protodrake::npc_freed_protodrakeAI, npc_overlord_drakuru_betrayal::npc_overlord_drakuru_betrayalAI, npc_drakuru_shackles::npc_drakuru_shacklesAI, npc_captured_rageclaw::npc_captured_rageclawAI, npc_released_offspring_harkoa::npc_released_offspring_harkoaAI, npc_crusade_recruit::npc_crusade_recruitAI, npc_storm_cloud::npc_storm_cloudAI, boss_exarch_maladaar, npc_stolen_soul, boss_shirrak_the_dead_watcher, boss_nexusprince_shaffar, npc_yor, boss_tavarok, boss_anzu, npc_anzu_spirit, boss_darkweaver_syth, boss_talon_king_ikiss, boss_ambassador_hellmaw, boss_blackheart_the_inciter, boss_grandmaster_vorpil, npc_voidtraveler, boss_murmur, boss_gurtogg_bloodboil::boss_gurtogg_bloodboilAI, boss_illidan_stormrage::boss_illidan_stormrageAI, npc_akama_illidan::npc_akama_illidanAI, boss_mother_shahraz::boss_shahrazAI, boss_reliquary_of_souls::boss_reliquary_of_soulsAI, boss_essence_of_suffering::boss_essence_of_sufferingAI, boss_essence_of_desire::boss_essence_of_desireAI, boss_essence_of_anger::boss_essence_of_angerAI, boss_shade_of_akama::boss_shade_of_akamaAI, npc_akama_shade::npc_akamaAI, npc_creature_generator_akama::npc_creature_generator_akamaAI, boss_supremus::boss_supremusAI, boss_teron_gorefiend::boss_teron_gorefiendAI, boss_najentus::boss_najentusAI, boss_illidari_council::boss_illidari_councilAI, boss_illidari_council_memberAI, boss_doomlord_kazzak::boss_doomlordkazzakAI, boss_doomwalker::boss_doomwalkerAI, boss_fathomlord_karathress::boss_fathomlord_karathressAI, boss_hydross_the_unstable::boss_hydross_the_unstableAI, boss_lady_vashj::boss_lady_vashjAI, boss_leotheras_the_blind::boss_leotheras_the_blindAI, boss_the_lurker_below::boss_the_lurker_belowAI, boss_morogrim_tidewalker::boss_morogrim_tidewalkerAI, boss_mennu_the_betrayer, boss_quagmirran, boss_rokmar_the_crackler, boss_warlord_kalithresh, boss_ghazan, boss_hungarfen, boss_swamplord_muselek, npc_underbat, boss_gruul, boss_high_king_maulgar, boss_olm_the_summoner, boss_kiggler_the_crazed, boss_blindeye_the_seer, boss_krosh_firehand, boss_broggok, boss_kelidan_the_breaker, boss_the_maker, boss_omor_the_unscarred, boss_vazruden_the_herald, boss_nazan, boss_vazruden, boss_watchkeeper_gargolmar, boss_magtheridon, boss_grand_warlock_nethekurse, npc_shattered_hand_scout, boss_warchief_kargath_bladefist, npc_millhouse_manastorm::npc_millhouse_manastormAI, npc_warden_mellichar::npc_warden_mellicharAI, boss_dalliah_the_doomsayer, boss_harbinger_skyriss, boss_wrath_scryer_soccothrates, boss_commander_sarannis, boss_laj, boss_thorngrin_the_tender, boss_alar::boss_alarAI, boss_high_astromancer_solarian::boss_high_astromancer_solarianAI, boss_kaelthas::boss_kaelthasAI, boss_void_reaver::boss_void_reaverAI, npc_raging_flames, boss_pathaleon_the_calculator, npc_deaths_door_fell_cannon_target_bunny::npc_deaths_door_fell_cannon_target_bunnyAI, npc_deaths_fel_cannon::npc_deaths_fel_cannonAI, npc_nether_drake::npc_nether_drakeAI, npc_daranelle::npc_daranelleAI, npc_oscillating_frequency_scanner_master_bunny::npc_oscillating_frequency_scanner_master_bunnyAI, npc_aeranas::npc_aeranasAI, npc_ancestral_wolf::npc_ancestral_wolfAI, npc_wounded_blood_elf::npc_wounded_blood_elfAI, npc_fel_guard_hound::npc_fel_guard_houndAI, npc_magister_aledis, npc_maghar_captive::npc_maghar_captiveAI, npc_creditmarker_visit_with_ancestors::npc_creditmarker_visit_with_ancestorsAI, npc_kurenai_captive::npc_kurenai_captiveAI, npc_captain_saeed::npc_captain_saeedAI, npc_commander_dawnforge::npc_commander_dawnforgeAI, npc_phase_hunter::npc_phase_hunterAI, npc_bessy::npc_bessyAI, npc_maxx_a_million_escort::npc_maxx_a_million_escortAI, npc_invis_infernal_caster::npc_invis_infernal_casterAI, npc_infernal_attacker::npc_infernal_attackerAI, npc_mature_netherwing_drake::npc_mature_netherwing_drakeAI, npc_enslaved_netherwing_drake::npc_enslaved_netherwing_drakeAI, npc_dragonmaw_peon::npc_dragonmaw_peonAI, npc_torloth_the_magnificent::npc_torloth_the_magnificentAI, npc_lord_illidan_stormrage::npc_lord_illidan_stormrageAI, npc_illidari_spawn::npc_illidari_spawnAI, npc_enraged_spirit::npc_enraged_spiritAI, npc_shadowmoon_tuber_node::npc_shadowmoon_tuber_nodeAI, npc_kservant::npc_kservantAI, npc_unkor_the_ruthless::npc_unkor_the_ruthlessAI, npc_isla_starmane::npc_isla_starmaneAI, npc_pet_dk_ebon_gargoyle::npc_pet_dk_ebon_gargoyleAI, npc_pet_gen_argent_pony_bridle, npc_pet_gen_gnomish_flame_turret, npc_pet_gen_toxic_wasteling, npc_pet_hunter_snake_trap, npc_pet_mage_mirror_image, npc_pet_pri_shadowfiend, emerald_dragonAI, npc_dream_fog::npc_dream_fogAI, boss_ysondre::boss_ysondreAI, boss_lethon::boss_lethonAI, boss_emeriss::boss_emerissAI, boss_taerar::boss_taerarAI, guard_shattrath_scryer::guard_shattrath_scryerAI, guard_shattrath_aldor::guard_shattrath_aldorAI, generic_creature::generic_creatureAI, npc_artorius::npc_artoriusAI, npc_precious::npc_preciousAI, npc_simone::npc_simoneAI, npc_nelson::npc_nelsonAI, npc_franklin::npc_franklinAI, npc_training_dummy::npc_training_dummyAI, npc_target_dummy::npc_target_dummyAI, npc_air_force_bots::npc_air_force_botsAI, npc_chicken_cluck::npc_chicken_cluckAI, npc_dancing_flames::npc_dancing_flamesAI, npc_doctor::npc_doctorAI, npc_injured_patient::npc_injured_patientAI, npc_garments_of_quests::npc_garments_of_questsAI, npc_guardian::npc_guardianAI, npc_steam_tonk::npc_steam_tonkAI, npc_firework::npc_fireworkAI, npc_spring_rabbit::npc_spring_rabbitAI, and npc_arcanite_dragonling.

195{};

Referenced by CreatureAI::EnterEvadeMode(), ValithriaDespawner::Execute(), InitializeAI(), CreatureAI::JustRespawned(), npc_infra_green_bomber_generic::npc_infra_green_bomber_genericAI::npc_infra_green_bomber_genericAI(), FrostwingGauntletRespawner::operator()(), ValithriaDespawner::operator()(), npc_time_lost_proto_drake::npc_time_lost_proto_drakeAI::Reset(), npc_pet_pri_shadowfiend::Reset(), and Creature::Respawn().

◆ SelectTarget() [1/2]

template<class PREDICATE >
Unit * UnitAI::SelectTarget ( SelectTargetMethod  targetType,
uint32  position,
PREDICATE const &  predicate 
)
inline
223 {
224 ThreatMgr& mgr = GetThreatMgr();
225 // shortcut: if we ignore the first <offset> elements, and there are at most <offset> elements, then we ignore ALL elements
226 if (mgr.GetThreatListSize() <= position)
227 return nullptr;
228
229 std::list<Unit*> targetList;
230 SelectTargetList(targetList, mgr.GetThreatListSize(), targetType, position, predicate);
231
232 // maybe nothing fulfills the predicate
233 if (targetList.empty())
234 return nullptr;
235
236 switch (targetType)
237 {
238 case SelectTargetMethod::MaxThreat:
239 case SelectTargetMethod::MinThreat:
240 case SelectTargetMethod::MaxDistance:
241 case SelectTargetMethod::MinDistance:
242 return targetList.front();
243 case SelectTargetMethod::Random:
245 default:
246 return nullptr;
247 }
248 }
auto SelectRandomContainerElement(C const &container) -> typename std::add_const< decltype(*std::begin(container))>::type &
Definition: Containers.h:135
ThreatMgr & GetThreatMgr()
Definition: UnitAI.cpp:341
void SelectTargetList(std::list< Unit * > &targetList, uint32 num, SelectTargetMethod targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0)
Definition: UnitAI.cpp:116
Definition: ThreatMgr.h:204
float GetThreatListSize() const
Definition: ThreatMgr.h:222

References ThreatMgr::GetThreatListSize(), GetThreatMgr(), Acore::Containers::SelectRandomContainerElement(), and SelectTargetList().

◆ SelectTarget() [2/2]

Unit * UnitAI::SelectTarget ( SelectTargetMethod  targetType,
uint32  position = 0,
float  dist = 0.0f,
bool  playerOnly = false,
bool  withTank = true,
int32  aura = 0 
)
112{
113 return SelectTarget(targetType, position, DefaultTargetSelector(me, dist, playerOnly, withTank, aura));
114}

References me, and SelectTarget().

Referenced by WorldBossAI::_JustEngagedWith(), boss_victor_nefarius::boss_victor_nefariusAI::BeginEvent(), boss_mor_grayhoof::CastRandomSpell(), npc_dirt_mound::ChaseNewTarget(), boss_buru::ChaseNewVictim(), boss_thekal::boss_thekalAI::CheckPhaseTransition(), npc_ghostly_priest::npc_ghostly_priestAI::DoAction(), npc_phantom_mage::npc_phantom_mageAI::DoAction(), npc_shadowy_mercenary::npc_shadowy_mercenaryAI::DoAction(), npc_spectral_footman::npc_spectral_footmanAI::DoAction(), npc_tortured_rifleman::npc_tortured_riflemanAI::DoAction(), boss_ayamiss::DoAction(), boss_deathbringer_saurfang::boss_deathbringer_saurfangAI::DoAction(), DoCast(), boss_archimonde::boss_archimondeAI::DoCastDoomfire(), DoCastMaxThreat(), DoCastRandomTarget(), DoSpellAttackToRandomTargetIfReady(), boss_ouro::Emerge(), boss_zuljin::boss_zuljinAI::EnterPhase(), StartMovementEvent::Execute(), boss_baron_geddon::boss_baron_geddonAI::ExecuteEvent(), boss_gehennas::boss_gehennasAI::ExecuteEvent(), boss_magmadar::boss_magmadarAI::ExecuteEvent(), boss_shazzrah::boss_shazzrahAI::ExecuteEvent(), boss_amanitar::ExecuteEvent(), boss_sartharion_tenebron::boss_sartharion_tenebronAI::ExecuteEvent(), boss_sartharion_shadron::boss_sartharion_shadronAI::ExecuteEvent(), boss_sartharion_vesperon::boss_sartharion_vesperonAI::ExecuteEvent(), npc_dream_fog::npc_dream_fogAI::GetRandomUnitFromDragonThreatList(), SmartScript::GetTargets(), spell_shadowblink::HandleDummy(), boss_ragnaros::boss_ragnarosAI::HandleEmerge(), boss_sartharion_dragonAI::JustEngagedWith(), npc_malchezaar_axe::JustEngagedWith(), boss_servant_quarters::JustEngagedWith(), boss_terestian_illhoof::JustEngagedWith(), boss_bigbadwolf::JustEngagedWith(), npc_coren_direbrew_sisters::JustEngagedWith(), npc_hallows_end_soh::JustEngagedWith(), boss_lieutenant_drake::JustEngagedWith(), npc_eye_tentacle::JustEngagedWith(), npc_anubisath_defender::JustEngagedWith(), boss_exarch_maladaar::JustEngagedWith(), boss_anzu::JustEngagedWith(), boss_talon_king_ikiss::JustEngagedWith(), boss_doomlord_kazzak::boss_doomlordkazzakAI::JustEngagedWith(), boss_doomwalker::boss_doomwalkerAI::JustEngagedWith(), boss_hungarfen::JustEngagedWith(), boss_swamplord_muselek::JustEngagedWith(), npc_underbat::JustEngagedWith(), boss_gruul::JustEngagedWith(), boss_kiggler_the_crazed::JustEngagedWith(), boss_watchkeeper_gargolmar::JustEngagedWith(), boss_harbinger_skyriss::JustEngagedWith(), boss_pathaleon_the_calculator::JustEngagedWith(), boss_curator::JustEngagedWith(), npc_hivezara_stinger::JustEngagedWith(), boss_vem::JustEngagedWith(), boss_fankriss::JustEngagedWith(), npc_vekniss_stinger::JustEngagedWith(), boss_maexxna::boss_maexxnaAI::JustSummoned(), boss_ingvar_the_plunderer::boss_ingvar_the_plundererAI::JustSummoned(), WorldBossAI::JustSummoned(), boss_vexallus::boss_vexallusAI::JustSummoned(), boss_sacrolash::boss_sacrolashAI::JustSummoned(), npc_demonic_vapor_trail::npc_demonic_vapor_trailAI::JustSummoned(), boss_jindo::JustSummoned(), npc_necromancer::npc_necromancerAI::JustSummoned(), boss_gal_darah::boss_gal_darahAI::JustSummoned(), boss_prince_taldaram_icc::boss_prince_taldaramAI::JustSummoned(), boss_deathbringer_saurfang::boss_deathbringer_saurfangAI::JustSummoned(), boss_lady_deathwhisper::boss_lady_deathwhisperAI::JustSummoned(), npc_precious_icc::npc_precious_iccAI::JustSummoned(), boss_gothik::boss_gothikAI::JustSummoned(), boss_volkhan::boss_volkhanAI::JustSummoned(), boss_algalon_the_observer::boss_algalon_the_observerAI::JustSummoned(), boss_supremus::boss_supremusAI::JustSummoned(), boss_the_black_stalker::JustSummoned(), boss_balinda::boss_balindaAI::JustSummoned(), boss_shade_of_aran::Reset(), npc_giant_eye_tentacle::Reset(), npc_swarm_scarab::npc_swarm_scarabAI::Reset(), boss_magtheridon::Reset(), boss_nightbane::ScheduleGround(), boss_baroness_anastari::boss_baroness_anastariAI::SchedulePossession(), boss_eye_of_cthun::ScheduleTask(), boss_attumen::ScheduleTasks(), boss_ayamiss::ScheduleTasks(), boss_cthun::ScheduleTasks(), npc_anubarak_spike::npc_anubarak_spikeAI::SelectNewTarget(), SelectTarget(), spell_marrowgar_coldflame::spell_marrowgar_coldflame_SpellScript::SelectTarget(), npc_black_knight_ghoul::npc_black_knight_ghoulAI::SpellHitTarget(), boss_darkmaster_gandling::boss_darkmaster_gandlingAI::SpellHitTarget(), boss_anubshiah::boss_anubshiahAI::UpdateAI(), boss_emperor_dagran_thaurissan::boss_draganthaurissanAI::UpdateAI(), boss_high_interrogator_gerstahn::boss_high_interrogator_gerstahnAI::UpdateAI(), boss_okthor::boss_okthorAI::UpdateAI(), boss_doomrel::boss_doomrelAI::UpdateAI(), boss_overlord_wyrmthalak::boss_overlordwyrmthalakAI::UpdateAI(), npc_blackhand_incarcerator::npc_blackhand_incarceratorAI::UpdateAI(), boss_the_beast::boss_thebeastAI::UpdateAI(), boss_nefarian::UpdateAI(), boss_vaelastrasz::boss_vaelAI::UpdateAI(), boss_majordomo::boss_majordomoAI::UpdateAI(), boss_ragnaros::boss_ragnarosAI::UpdateAI(), npc_flamewaker_priest::npc_flamewaker_priestAI::UpdateAI(), boss_felblood_kaelthas::boss_felblood_kaelthasAI::UpdateAI(), boss_priestess_delrissa::boss_priestess_delrissaAI::UpdateAI(), boss_kagani_nightstrike::boss_kagani_nightstrikeAI::UpdateAI(), boss_ellris_duskhallow::boss_ellris_duskhallowAI::UpdateAI(), boss_yazzai::boss_yazzaiAI::UpdateAI(), boss_apoko::boss_apokoAI::UpdateAI(), boss_zelfan::boss_zelfanAI::UpdateAI(), boss_selin_fireheart::boss_selin_fireheartAI::UpdateAI(), boss_vexallus::boss_vexallusAI::UpdateAI(), boss_darkmaster_gandling::boss_darkmaster_gandlingAI::UpdateAI(), boss_kirtonos_the_herald::boss_kirtonos_the_heraldAI::UpdateAI(), npc_scholomance_occultist::npc_scholomance_occultistAI::UpdateAI(), boss_brutallus::boss_brutallusAI::UpdateAI(), boss_sacrolash::boss_sacrolashAI::UpdateAI(), boss_alythess::boss_alythessAI::UpdateAI(), boss_felmyst::boss_felmystAI::UpdateAI(), boss_kiljaeden::boss_kiljaedenAI::UpdateAI(), boss_entropius::boss_entropiusAI::UpdateAI(), npc_jaina_proudmoore_bfu::npc_jaina_proudmoore_bfuAI::UpdateAI(), boss_blight_worm::boss_blight_wormAI::UpdateAI(), boss_akilzon::boss_akilzonAI::UpdateAI(), npc_akilzon_eagle::npc_akilzon_eagleAI::UpdateAI(), boss_halazzi::boss_halazziAI::UpdateAI(), boss_hexlord_malacrass::boss_hex_lord_malacrassAI::UpdateAI(), boss_alyson_antille::boss_alyson_antilleAI::UpdateAI(), boss_slither::boss_slitherAI::UpdateAI(), boss_koragg::boss_koraggAI::UpdateAI(), boss_janalai::boss_janalaiAI::UpdateAI(), boss_nalorakk::boss_nalorakkAI::UpdateAI(), boss_zuljin::boss_zuljinAI::UpdateAI(), boss_arlokk::boss_arlokkAI::UpdateAI(), npc_zulian_prowler::npc_zulian_prowlerAI::UpdateAI(), boss_grilek::boss_grilekAI::UpdateAI(), boss_hakkar::boss_hakkarAI::UpdateAI(), boss_hazzarah::UpdateAI(), boss_jeklik::UpdateAI(), boss_mandokir::boss_mandokirAI::UpdateAI(), boss_marli::UpdateAI(), boss_renataki::boss_renatakiAI::UpdateAI(), boss_venoxis::boss_venoxisAI::UpdateAI(), boss_wushoolay::boss_wushoolayAI::UpdateAI(), boss_headless_horseman::UpdateAI(), boss_anetheron::boss_anetheronAI::UpdateAI(), boss_archimonde::boss_archimondeAI::UpdateAI(), boss_azgalor::boss_azgalorAI::UpdateAI(), npc_lesser_doomguard::npc_lesser_doomguardAI::UpdateAI(), boss_rage_winterchill::boss_rage_winterchillAI::UpdateAI(), npc_gargoyle::npc_gargoyleAI::UpdateAI(), hyjalAI::UpdateAI(), boss_epoch::boss_epochAI::UpdateAI(), boss_infinite_corruptor::boss_infinite_corruptorAI::UpdateAI(), boss_mal_ganis::boss_mal_ganisAI::UpdateAI(), boss_meathook::boss_meathookAI::UpdateAI(), npc_arthas::npc_arthasAI::UpdateAI(), boss_onyxia::UpdateAI(), boss_kurinnaxx::UpdateAI(), boss_sartura::UpdateAI(), npc_sartura_royal_guard::UpdateAI(), boss_skeram::UpdateAI(), npc_omen::npc_omenAI::UpdateAI(), npc_cairne_bloodhoof::npc_cairne_bloodhoofAI::UpdateAI(), boss_volazj::UpdateAI(), boss_jedoga_shadowseeker::UpdateAI(), boss_taldaram::UpdateAI(), boss_anub_arak::boss_anub_arakAI::UpdateAI(), boss_hadronox::boss_hadronoxAI::UpdateAI(), boss_krik_thir::boss_krik_thirAI::UpdateAI(), boss_baltharus_the_warborn::boss_baltharus_the_warbornAI::UpdateAI(), npc_baltharus_the_warborn_clone::npc_baltharus_the_warborn_cloneAI::UpdateAI(), boss_halion::boss_halionAI::UpdateAI(), boss_twilight_halion::boss_twilight_halionAI::UpdateAI(), boss_eadric::boss_eadricAI::UpdateAI(), boss_paletress::boss_paletressAI::UpdateAI(), npc_memory::npc_memoryAI::UpdateAI(), npc_argent_soldier::npc_argent_soldierAI::UpdateAI(), boss_black_knight::boss_black_knightAI::UpdateAI(), boss_grand_champion::boss_grand_championAI::UpdateAI(), npc_nerubian_burrower::npc_nerubian_burrowerAI::UpdateAI(), npc_toc_shaman::npc_toc_shamanAI::UpdateAI(), npc_toc_paladin::npc_toc_paladinAI::UpdateAI(), npc_toc_priest::npc_toc_priestAI::UpdateAI(), npc_toc_shadow_priest::npc_toc_shadow_priestAI::UpdateAI(), npc_toc_warlock::npc_toc_warlockAI::UpdateAI(), npc_toc_mage::npc_toc_mageAI::UpdateAI(), npc_toc_hunter::npc_toc_hunterAI::UpdateAI(), npc_toc_boomkin::npc_toc_boomkinAI::UpdateAI(), npc_toc_rogue::npc_toc_rogueAI::UpdateAI(), npc_toc_enh_shaman::npc_toc_enh_shamanAI::UpdateAI(), npc_toc_retro_paladin::npc_toc_retro_paladinAI::UpdateAI(), boss_jaraxxus::boss_jaraxxusAI::UpdateAI(), npc_fel_infernal::npc_fel_infernalAI::UpdateAI(), npc_mistress_of_pain::npc_mistress_of_painAI::UpdateAI(), boss_jormungarAI::UpdateAI(), boss_icehowl::boss_icehowlAI::UpdateAI(), boss_novos::boss_novosAI::UpdateAI(), boss_tharon_ja::boss_tharon_jaAI::UpdateAI(), boss_bronjahm::boss_bronjahmAI::UpdateAI(), boss_devourer_of_souls::boss_devourer_of_soulsAI::UpdateAI(), boss_garfrost::boss_garfrostAI::UpdateAI(), boss_ick::boss_ickAI::UpdateAI(), boss_tyrannus::boss_tyrannusAI::UpdateAI(), npc_pos_deathwhisper_necrolyte::npc_pos_deathwhisper_necrolyteAI::UpdateAI(), boss_eck::boss_eckAI::UpdateAI(), boss_gal_darah::boss_gal_darahAI::UpdateAI(), boss_prince_valanar_icc::boss_prince_valanarAI::UpdateAI(), boss_festergut::boss_festergutAI::UpdateAI(), boss_lady_deathwhisper::boss_lady_deathwhisperAI::UpdateAI(), npc_cult_adherent::npc_cult_adherentAI::UpdateAI(), boss_lord_marrowgar::UpdateAI(), boss_professor_putricide::boss_professor_putricideAI::UpdateAI(), boss_rotface::boss_rotfaceAI::UpdateAI(), boss_sindragosa::boss_sindragosaAI::UpdateAI(), npc_rimefang::npc_rimefangAI::UpdateAI(), boss_the_lich_king::boss_the_lich_kingAI::UpdateAI(), npc_risen_archmage::npc_risen_archmageAI::UpdateAI(), npc_rotting_frost_giant::npc_rotting_frost_giantAI::UpdateAI(), boss_sister_svalna::boss_sister_svalnaAI::UpdateAI(), npc_captain_arnath::npc_captain_arnathAI::UpdateAI(), npc_captain_brandon::npc_captain_brandonAI::UpdateAI(), npc_captain_grondel::npc_captain_grondelAI::UpdateAI(), npc_captain_rupert::npc_captain_rupertAI::UpdateAI(), npc_frostwing_vrykul::npc_frostwing_vrykulAI::UpdateAI(), npc_icc_valkyr_herald::npc_icc_valkyr_heraldAI::UpdateAI(), npc_icc_nerubar_broodkeeper::npc_icc_nerubar_broodkeeperAI::UpdateAI(), boss_isle_of_conquest::boss_isle_of_conquestAI::UpdateAI(), boss_anubrekhan::boss_anubrekhanAI::UpdateAI(), boss_faerlina::boss_faerlinaAI::UpdateAI(), boss_gothik::boss_gothikAI::UpdateAI(), boss_grobbulus::boss_grobbulusAI::UpdateAI(), boss_kelthuzad::boss_kelthuzadAI::UpdateAI(), boss_maexxna::boss_maexxnaAI::UpdateAI(), boss_razuvious::boss_razuviousAI::UpdateAI(), boss_sapphiron::boss_sapphironAI::UpdateAI(), boss_thaddius::boss_thaddiusAI::UpdateAI(), boss_thaddius_summon::boss_thaddius_summonAI::UpdateAI(), boss_malygos::boss_malygosAI::UpdateAI(), boss_anomalus::boss_anomalusAI::UpdateAI(), boss_commander_stoutbeard::boss_commander_stoutbeardAI::UpdateAI(), boss_keristrasza::boss_keristraszaAI::UpdateAI(), boss_magus_telestra::boss_magus_telestraAI::UpdateAI(), boss_ormorok::boss_ormorokAI::UpdateAI(), boss_eregos::boss_eregosAI::UpdateAI(), boss_urom::boss_uromAI::UpdateAI(), boss_varos::boss_varosAI::UpdateAI(), boss_ionar::boss_ionarAI::UpdateAI(), npc_hol_monument::npc_hol_monumentAI::UpdateAI(), boss_krystallus::boss_krystallusAI::UpdateAI(), boss_maiden_of_grief::boss_maiden_of_griefAI::UpdateAI(), boss_sjonnir::boss_sjonnirAI::UpdateAI(), boss_steelbreaker::boss_steelbreakerAI::UpdateAI(), boss_runemaster_molgeim::boss_runemaster_molgeimAI::UpdateAI(), boss_stormcaller_brundir::boss_stormcaller_brundirAI::UpdateAI(), boss_freya::boss_freyaAI::UpdateAI(), boss_freya_elder_ironbranch::boss_freya_elder_ironbranchAI::UpdateAI(), boss_freya_summons::boss_freya_summonsAI::UpdateAI(), boss_hodir::boss_hodirAI::UpdateAI(), boss_kologarn::boss_kologarnAI::UpdateAI(), npc_ulduar_leviathan_mkii::npc_ulduar_leviathan_mkiiAI::UpdateAI(), npc_ulduar_aerial_command_unit::npc_ulduar_aerial_command_unitAI::UpdateAI(), boss_razorscale::boss_razorscaleAI::UpdateAI(), boss_thorim::boss_thorimAI::UpdateAI(), boss_thorim_start_npcs::boss_thorim_start_npcsAI::UpdateAI(), boss_thorim_gauntlet_npcs::boss_thorim_gauntlet_npcsAI::UpdateAI(), boss_thorim_runic_colossus::boss_thorim_runic_colossusAI::UpdateAI(), boss_thorim_ancient_rune_giant::boss_thorim_ancient_rune_giantAI::UpdateAI(), boss_thorim_arena_npcs::boss_thorim_arena_npcsAI::UpdateAI(), boss_keleseth::boss_kelesethAI::UpdateAI(), boss_skarvald_the_constructor::boss_skarvald_the_constructorAI::UpdateAI(), boss_dalronn_the_controller::boss_dalronn_the_controllerAI::UpdateAI(), boss_palehoof::boss_palehoofAI::UpdateAI(), npc_massive_jormungar::npc_massive_jormungarAI::UpdateAI(), npc_ferocious_rhino::npc_ferocious_rhinoAI::UpdateAI(), boss_skadi::boss_skadiAI::UpdateAI(), boss_svala::boss_svalaAI::UpdateAI(), boss_archavon::boss_archavonAI::UpdateAI(), boss_emalon::boss_emalonAI::UpdateAI(), boss_toravon::boss_toravonAI::UpdateAI(), boss_cyanigosa::boss_cyanigosaAI::UpdateAI(), boss_erekem::boss_erekemAI::UpdateAI(), boss_moragg::boss_moraggAI::UpdateAI(), boss_zuramat::boss_zuramatAI::UpdateAI(), npc_azure_invader::npc_azure_invaderAI::UpdateAI(), npc_azure_binder::npc_azure_binderAI::UpdateAI(), npc_azure_mage_slayer::npc_azure_mage_slayerAI::UpdateAI(), npc_azure_stalker::npc_azure_stalkerAI::UpdateAI(), npc_azure_spellbreaker::npc_azure_spellbreakerAI::UpdateAI(), npc_azure_sorceror::npc_azure_sorcerorAI::UpdateAI(), boss_gurtogg_bloodboil::boss_gurtogg_bloodboilAI::UpdateAI(), boss_illidan_stormrage::boss_illidan_stormrageAI::UpdateAI(), boss_supremus::boss_supremusAI::UpdateAI(), boss_teron_gorefiend::boss_teron_gorefiendAI::UpdateAI(), boss_najentus::boss_najentusAI::UpdateAI(), boss_gathios_the_shatterer::boss_gathios_the_shattererAI::UpdateAI(), boss_high_nethermancer_zerevor::boss_high_nethermancer_zerevorAI::UpdateAI(), boss_lady_malande::boss_lady_malandeAI::UpdateAI(), boss_fathomlord_karathress::boss_fathomlord_karathressAI::UpdateAI(), boss_hydross_the_unstable::boss_hydross_the_unstableAI::UpdateAI(), boss_lady_vashj::boss_lady_vashjAI::UpdateAI(), boss_the_lurker_below::boss_the_lurker_belowAI::UpdateAI(), boss_ahune::UpdateAI(), boss_alar::boss_alarAI::UpdateAI(), boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::UpdateAI(), boss_kaelthas::boss_kaelthasAI::UpdateAI(), boss_void_reaver::boss_void_reaverAI::UpdateAI(), npc_illidari_spawn::npc_illidari_spawnAI::UpdateAI(), npc_zuljin_vortex::npc_zuljin_vortexAI::UpdateAI(), boss_bjarngrim::boss_bjarngrimAI::UpdateEscortAI(), and boss_hexlord_malacrass::boss_hex_lord_malacrassAI::UseAbility().

◆ SelectTargetList() [1/2]

template<class PREDICATE >
void UnitAI::SelectTargetList ( std::list< Unit * > &  targetList,
uint32  num,
SelectTargetMethod  targetType,
uint32  position,
PREDICATE const &  predicate 
)
inline
267 {
268 targetList.clear();
269 ThreatMgr& mgr = GetThreatMgr();
270 // shortcut: we're gonna ignore the first <offset> elements, and there's at most <offset> elements, so we ignore them all - nothing to do here
271 if (mgr.GetThreatListSize() <= position)
272 return;
273
274 if (targetType == SelectTargetMethod::MaxDistance || targetType == SelectTargetMethod::MinDistance)
275 {
276 for (ThreatReference const* ref : mgr.GetUnsortedThreatList())
277 {
278 if (ref->IsOffline())
279 continue;
280
281 targetList.push_back(ref->GetVictim());
282 }
283 }
284 else
285 {
286 Unit* currentVictim = mgr.GetCurrentVictim();
287 if (currentVictim)
288 targetList.push_back(currentVictim);
289
290 for (ThreatReference const* ref : mgr.GetSortedThreatList())
291 {
292 if (ref->IsOffline())
293 continue;
294
295 Unit* thisTarget = ref->GetVictim();
296 if (thisTarget != currentVictim)
297 targetList.push_back(thisTarget);
298 }
299 }
300
301 // shortcut: the list isn't gonna get any larger
302 if (targetList.size() <= position)
303 {
304 targetList.clear();
305 return;
306 }
307
308 // right now, list is unsorted for DISTANCE types - re-sort by SelectTargetMethod::MaxDistance
309 if (targetType == SelectTargetMethod::MaxDistance || targetType == SelectTargetMethod::MinDistance)
310 SortByDistance(targetList, targetType == SelectTargetMethod::MinDistance);
311
312 // now the list is MAX sorted, reverse for MIN types
313 if (targetType == SelectTargetMethod::MinThreat)
314 targetList.reverse();
315
316 // ignore the first <offset> elements
317 while (position)
318 {
319 targetList.pop_front();
320 --position;
321 }
322
323 // then finally filter by predicate
324 targetList.remove_if([&predicate](Unit* target) { return !predicate(target); });
325
326 if (targetList.size() <= num)
327 return;
328
329 if (targetType == SelectTargetMethod::Random)
330 Acore::Containers::RandomResize(targetList, num);
331 else
332 targetList.resize(num);
333 }
void RandomResize(C &container, std::size_t requestedSize)
Definition: Containers.h:81
void SortByDistance(std::list< Unit * > &list, bool ascending=true)
Definition: UnitAI.cpp:346
Definition: ThreatMgr.h:49
Acore::IteratorPair< std::list< ThreatReference * >::const_iterator > GetSortedThreatList() const
Definition: ThreatMgr.h:228
Acore::IteratorPair< std::list< ThreatReference * >::const_iterator > GetUnsortedThreatList() const
Definition: ThreatMgr.h:229
Unit * GetCurrentVictim() const
Definition: ThreatMgr.h:213

References ThreatMgr::GetCurrentVictim(), ThreatMgr::GetSortedThreatList(), ThreatMgr::GetThreatListSize(), GetThreatMgr(), ThreatMgr::GetUnsortedThreatList(), Unit::GetVictim(), Acore::Containers::RandomResize(), and SortByDistance().

◆ SelectTargetList() [2/2]

void UnitAI::SelectTargetList ( std::list< Unit * > &  targetList,
uint32  num,
SelectTargetMethod  targetType,
uint32  position = 0,
float  dist = 0.0f,
bool  playerOnly = false,
bool  withTank = true,
int32  aura = 0 
)

◆ SetData()

virtual void UnitAI::SetData ( uint32  ,
uint32   
)
inlinevirtual

Reimplemented in boss_svala::boss_svalaAI, npc_blackhand_incarcerator::npc_blackhand_incarceratorAI, boss_grand_warlock_nethekurse, boss_slad_ran::boss_slad_ranAI, boss_warbringer_omrogg, npc_eris_hevenfire::npc_eris_hevenfireAI, npc_cork_gizelton::npc_cork_gizeltonAI, boss_professor_putricide::boss_professor_putricideAI, npc_invis_infernal_caster::npc_invis_infernal_casterAI, npc_shadowmoon_tuber_node::npc_shadowmoon_tuber_nodeAI, SmartAI, ironhand_guardian::ironhand_guardianAI, npc_halion_controller::npc_halion_controllerAI, boss_hodir::boss_hodirAI, npc_ulduar_leviathan_mkii::npc_ulduar_leviathan_mkiiAI, npc_ulduar_vx001::npc_ulduar_vx001AI, npc_ulduar_aerial_command_unit::npc_ulduar_aerial_command_unitAI, npc_ulduar_harpoonfirestate::npc_ulduar_harpoonfirestateAI, boss_arlokk::boss_arlokkAI, boss_garfrost::boss_garfrostAI, boss_ignis::boss_ignisAI, npc_ulduar_expedition_engineer::npc_ulduar_expedition_engineerAI, boss_emperor_dagran_thaurissan::boss_draganthaurissanAI, boss_rend_blackhand::boss_rend_blackhandAI, boss_victor_nefarius::boss_victor_nefariusAI, boss_darkmaster_gandling::boss_darkmaster_gandlingAI, boss_entropius::boss_entropiusAI, npc_alexstraza_the_lifebinder, npc_dirt_mound, boss_sartharion::boss_sartharionAI, npc_saurfang_event::npc_saurfang_eventAI, boss_festergut::boss_festergutAI, npc_high_overlord_saurfang_igb::npc_high_overlord_saurfang_igbAI, npc_muradin_bronzebeard_igb::npc_muradin_bronzebeard_igbAI, gunship_npc_AI, npc_gunship_boarding_addAI, npc_sindragosa_trash::npc_sindragosa_trashAI, npc_highlord_tirion_fordring_lh::npc_highlord_tirion_fordringAI, npc_enslaved_proto_drake::npc_enslaved_proto_drakeAI, npc_q24545_lich_king::npc_q24545_lich_kingAI, npc_tirions_gambit_tirion::npc_tirions_gambit_tirionAI, boss_vazruden_the_herald, npc_warden_mellichar::npc_warden_mellicharAI, boss_kaelthas::boss_kaelthasAI, npc_bh_thalorien_dawnseeker::npc_bh_thalorien_dawnseekerAI, npc_pos_tyrannus_events::npc_pos_tyrannus_eventsAI, boss_teron_gorefiend::boss_teron_gorefiendAI, boss_volazj, boss_the_lich_king::boss_the_lich_kingAI, boss_the_beast::boss_thebeastAI, boss_dred::boss_dredAI, boss_novos::boss_novosAI, npc_pos_leader::npc_pos_leaderAI, boss_anomalus::boss_anomalusAI, boss_keristrasza::boss_keristraszaAI, npc_shandy_dalaran::npc_shandy_dalaranAI, npc_shattered_hand_scout, npc_warchief_portal, npc_simon_bunny::npc_simon_bunnyAI, boss_grand_champion::boss_grand_championAI, npc_argent_soldier::npc_argent_soldierAI, boss_pyroguard_emberseer::boss_pyroguard_emberseerAI, npc_supervisor_raelen, npc_eastvale_peasent, boss_thekal::boss_thekalAI, npc_idol_room_spawner::npc_idol_room_spawnerAI, npc_thassarian2::npc_thassarian2AI, boss_mimiron::boss_mimironAI, npc_ulduar_mimiron_rocket::npc_ulduar_mimiron_rocketAI, and npc_ulduar_magnetic_core::npc_ulduar_magnetic_coreAI.

203{}

Referenced by RestoreAttack::Execute(), spell_kiljaeden_sinister_reflection_clone::spell_kiljaeden_sinister_reflection_clone_SpellScript::FilterTargets(), spell_herald_volzaj_insanity::HandleAfterCast(), spell_kaelthas_resurrection::spell_kaelthas_resurrection_SpellScript::HandleBeforeCast(), npc_commandscript::HandleNpcSetDataCommand(), spell_putricide_unstable_experiment::spell_putricide_unstable_experiment_SpellScript::HandleScript(), spell_frostwarden_handler_focus_fire::spell_frostwarden_handler_focus_fire_SpellScript::HandleScript(), boss_muru::boss_muruAI::JustSummoned(), npc_risen_guardian::npc_risen_guardianAI::KilledUnit(), npc_shandy_dalaran::OnGossipSelect(), npc_eris_hevenfire::OnQuestAccept(), at_blackrock_stadium::OnTrigger(), spell_hodir_flash_freeze::spell_hodir_flash_freeze_AuraScript::PrepareAuraScript(), boss_mimiron::boss_mimironAI::UpdateAI(), npc_ulduar_aerial_command_unit::npc_ulduar_aerial_command_unitAI::UpdateAI(), and boss_razorscale::boss_razorscaleAI::UpdateAI().

◆ SetGUID()

virtual void UnitAI::SetGUID ( ObjectGuid  ,
int32  = 0 
)
inlinevirtual

Reimplemented in boss_mandokir::boss_mandokirAI, boss_razorgore::boss_razorgoreAI, npc_ohgan::npc_ohganAI, npc_chained_spirit, boss_ossirian, boss_chromaggus::boss_chromaggusAI, npc_coren_direbrew_sisters, npc_gunship::npc_gunshipAI, boss_ahune, npc_simon_bunny::npc_simon_bunnyAI, SmartAI, boss_ragnaros::boss_ragnarosAI, boss_murmur, npc_lady_sylvanas_windrunner::npc_lady_sylvanas_windrunnerAI, npc_putricide_oozeAI, npc_ice_tomb::npc_ice_tombAI, npc_crok_scourgebane::npc_crok_scourgebaneAI, npc_dream_fog::npc_dream_fogAI, boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI, npc_kernobee::npc_kernobeeAI, npc_scarlet_ghoul::npc_scarlet_ghoulAI, npc_unworthy_initiate_anchor::npc_unworthy_initiate_anchorAI, npc_scarlet_miner_cart::npc_scarlet_miner_cartAI, npc_eris_hevenfire::npc_eris_hevenfireAI, npc_ball_of_flame::npc_ball_of_flameAI, npc_valkyr_shadowguard::npc_valkyr_shadowguardAI, boss_maexxna_webwrap::boss_maexxna_webwrapAI, npc_bloodmage_laurith::npc_bloodmage_laurithAI, npc_q24545_lich_king::npc_q24545_lich_kingAI, npc_kurenai_captive::npc_kurenai_captiveAI, npc_cork_gizelton::npc_cork_gizeltonAI, npc_captain_saeed::npc_captain_saeedAI, and npc_tharnarian::npc_tharnarianAI.

204{}

Referenced by spell_blood_queen_bloodbolt::spell_blood_queen_bloodbolt_SpellScript::FilterTargets(), go_ossirian_crystal::go_ossirian_crystalAI::GossipHello(), spell_send_mug_target_picker::HandleDummy(), boss_prince_taldaram_icc::boss_prince_taldaramAI::JustSummoned(), boss_grandmaster_vorpil::JustSummoned(), emerald_dragonAI::JustSummoned(), npc_dkc1_gothik::npc_dkc1_gothikAI::MoveInLineOfSight(), npc_captain_saeed::OnGossipSelect(), npc_kernobee::OnQuestAccept(), npc_kurenai_captive::OnQuestAccept(), npc_eris_hevenfire::OnQuestAccept(), npc_cork_gizelton::OnQuestAccept(), npc_lady_sylvanas_windrunner::OnQuestReward(), npc_tharnarian::OnQuestReward(), and spell_the_lich_king_valkyr_target_search::spell_the_lich_king_valkyr_target_search_SpellScript::SelectTarget().

◆ sGossipHello()

◆ sGossipSelect()

◆ sGossipSelectCode()

virtual void UnitAI::sGossipSelectCode ( Player ,
uint32  ,
uint32  ,
char const *   
)
inlinevirtual

Reimplemented in SmartAI.

392{}

Referenced by WorldSession::HandleGossipSelectOptionOpcode().

◆ sOnGameEvent()

virtual void UnitAI::sOnGameEvent ( bool  ,
uint16   
)
inlinevirtual

Reimplemented in SmartAI, and npc_cameron.

397{}

◆ SortByDistance()

void UnitAI::SortByDistance ( std::list< Unit * > &  list,
bool  ascending = true 
)
private
347{
348 list.sort(Acore::ObjectDistanceOrderPred(me, ascending));
349}
Definition: Object.h:682

References me.

Referenced by SelectTargetList().

◆ sQuestAccept()

◆ sQuestComplete()

virtual void UnitAI::sQuestComplete ( Player ,
Quest const *   
)
inlinevirtual
395{}

◆ sQuestReward()

virtual void UnitAI::sQuestReward ( Player ,
Quest const *  ,
uint32   
)
inlinevirtual

Reimplemented in SmartAI.

396{}

Referenced by WorldSession::HandleQuestgiverChooseRewardOpcode().

◆ sQuestSelect()

virtual void UnitAI::sQuestSelect ( Player ,
Quest const *   
)
inlinevirtual
394{}

◆ SummonMovementInform()

virtual void UnitAI::SummonMovementInform ( Creature ,
uint32  ,
uint32   
)
inlinevirtual

Reimplemented in boss_razorgore::boss_razorgoreAI.

388{ }

◆ UpdateAI()

virtual void UnitAI::UpdateAI ( uint32  )
pure virtual

Implemented in npc_razzashi_cobra_venoxis::npc_razzashi_cobra_venoxis_AI, boss_sartharion_dragonAI, CombatAI, CasterAI, ArcherAI, TurretAI, VehicleAI, ReactorAI, TotemAI, SimpleCharmedAI, ScriptedAI, BossAI, WorldBossAI, npc_escortAI, SmartAI, npc_av_marshal_or_warmaster::npc_av_marshal_or_warmasterAI, npc_water_elemental::npc_water_elementalAI, boss_balinda::boss_balindaAI, boss_drekthar::boss_drektharAI, boss_galvangar::boss_galvangarAI, boss_vanndar::boss_vanndarAI, ironhand_guardian::ironhand_guardianAI, npc_phalanx::npc_phalanxAI, npc_rocknot::npc_rocknotAI, boss_ambassador_flamelash::boss_ambassador_flamelashAI, boss_anubshiah::boss_anubshiahAI, boss_emperor_dagran_thaurissan::boss_draganthaurissanAI, boss_eviscerator::boss_evisceratorAI, boss_general_angerforge::boss_general_angerforgeAI, boss_gorosh_the_dervish::boss_gorosh_the_dervishAI, boss_grizzle::boss_grizzleAI, boss_hedrum::boss_hedrumAI, boss_high_interrogator_gerstahn::boss_high_interrogator_gerstahnAI, boss_magmus::boss_magmusAI, boss_moira_bronzebeardAI, boss_high_priestess_thaurissanAI, boss_okthor::boss_okthorAI, boss_doomrel::boss_doomrelAI, boss_drakkisath::boss_drakkisathAI, boss_gyth::boss_gythAI, boss_halycon::boss_halyconAI, boss_highlord_omokk::boss_highlordomokkAI, boss_lord_valthalak::boss_lord_valthalakAI, boss_mor_grayhoof, boss_overlord_wyrmthalak::boss_overlordwyrmthalakAI, boss_pyroguard_emberseer::boss_pyroguard_emberseerAI, npc_blackhand_incarcerator::npc_blackhand_incarceratorAI, boss_quartermaster_zigris, boss_rend_blackhand::boss_rend_blackhandAI, npc_rookery_hatcher::npc_rookery_hatcherAI, boss_solakar_flamewreath::boss_solakar_flamewreathAI, boss_the_beast::boss_thebeastAI, boss_urok_doomhowl::boss_urok_doomhowlAI, npc_vaelastrasz_the_red::npc_vaelastrasz_the_redAI, boss_broodlord::boss_broodlordAI, boss_chromaggus::boss_chromaggusAI, boss_ebonroc::boss_ebonrocAI, boss_firemaw::boss_firemawAI, boss_flamegor::boss_flamegorAI, boss_victor_nefarius::boss_victor_nefariusAI, boss_nefarian, npc_corrupted_totem, npc_drakonid_spawner, boss_razorgore::boss_razorgoreAI, boss_vaelastrasz::boss_vaelAI, boss_garr::boss_garrAI, boss_golemagg::boss_golemaggAI, npc_core_rager::npc_core_ragerAI, boss_majordomo::boss_majordomoAI, boss_ragnaros::boss_ragnarosAI, npc_flamewaker_priest::npc_flamewaker_priestAI, npc_mc_core_hound::npc_mc_core_houndAI, npc_lava_spawn, boss_mr_smite::boss_mr_smiteAI, npc_kernobee::npc_kernobeeAI, npc_echo_of_medivh, npc_chesspiece, boss_curator, boss_attumen, boss_midnight, boss_moroes, boss_netherspite, boss_nightbane, npc_netherspite_infernal, npc_malchezaar_axe, boss_servant_quarters, boss_shade_of_aran, npc_aran_elemental, npc_kilrek, npc_fiendish_imp, boss_terestian_illhoof, boss_dorothee, npc_tito, boss_roar, boss_strawman, boss_tinhead, boss_crone, npc_cyclone, boss_bigbadwolf, boss_julianne, boss_romulo, npc_barnes::npc_barnesAI, npc_image_of_medivh::npc_image_of_medivhAI, boss_felblood_kaelthas::boss_felblood_kaelthasAI, boss_priestess_delrissa::boss_priestess_delrissaAI, boss_priestess_lackey_commonAI, boss_kagani_nightstrike::boss_kagani_nightstrikeAI, boss_ellris_duskhallow::boss_ellris_duskhallowAI, boss_eramas_brightblaze::boss_eramas_brightblazeAI, boss_yazzai::boss_yazzaiAI, boss_warlord_salaris::boss_warlord_salarisAI, boss_garaxxas::boss_garaxxasAI, boss_apoko::boss_apokoAI, boss_zelfan::boss_zelfanAI, boss_selin_fireheart::boss_selin_fireheartAI, boss_vexallus::boss_vexallusAI, npc_eye_of_acherus, npc_death_knight_initiate::npc_death_knight_initiateAI, npc_scarlet_ghoul::npc_scarlet_ghoulAI, npc_dkc1_gothik::npc_dkc1_gothikAI, npc_scarlet_cannon::npc_scarlet_cannonAI, npc_unworthy_initiate::npc_unworthy_initiateAI, npc_scarlet_miner::npc_scarlet_minerAI, npc_crusade_persuaded::npc_crusade_persuadedAI, npc_scarlet_courier::npc_scarlet_courierAI, npc_high_inquisitor_valroth::npc_high_inquisitor_valrothAI, npc_a_special_surprise::npc_a_special_surpriseAI, npc_highlord_darion_mograine::npc_highlord_darion_mograineAI, npc_valkyr_battle_maiden::npc_valkyr_battle_maidenAI, npc_mograine::npc_mograineAI, boss_high_inquisitor_whitemane::boss_high_inquisitor_whitemaneAI, boss_darkmaster_gandling::boss_darkmaster_gandlingAI, boss_kirtonos_the_herald::boss_kirtonos_the_heraldAI, boss_kormok, npc_scholomance_occultist::npc_scholomance_occultistAI, boss_apothecary_hummel::boss_apothecary_hummelAI, npc_apothecary_baxter, boss_baroness_anastari::boss_baroness_anastariAI, boss_jarien, boss_sothos, boss_brutallus::boss_brutallusAI, npc_madrigosa::npc_madrigosaAI, boss_sacrolash::boss_sacrolashAI, boss_alythess::boss_alythessAI, boss_felmyst::boss_felmystAI, npc_demonic_vapor_trail::npc_demonic_vapor_trailAI, boss_kalecgos::boss_kalecgosAI, boss_kalec::boss_kalecAI, boss_sathrovarr::boss_sathrovarrAI, npc_kiljaeden_controller::npc_kiljaeden_controllerAI, boss_kiljaeden::boss_kiljaedenAI, npc_kalecgos_kj::npc_kalecgos_kjAI, boss_muru::boss_muruAI, boss_entropius::boss_entropiusAI, npc_singularity::npc_singularityAI, npc_professor_phizzlethorpe::npc_professor_phizzlethorpeAI, boss_twilight_corrupter, npc_eris_hevenfire::npc_eris_hevenfireAI, npc_balance_of_light_and_shadow::npc_balance_of_light_and_shadowAI, npc_cameron, npc_supervisor_raelen, npc_eastvale_peasent, npc_partygoer_pather, npc_partygoer, npc_sentinel_leader, npc_sentinel_infiltrator, npc_bh_thalorien_dawnseeker::npc_bh_thalorien_dawnseekerAI, npc_grand_magister_rommath::npc_grand_magister_rommathAI, npc_corporal_keeshan::npc_corporal_keeshanAI, pyrewood_ambush::pyrewood_ambushAI, npc_ravenclaw_apparition::npc_ravenclaw_apparitionAI, npc_calvin_montague::npc_calvin_montagueAI, npc_lady_sylvanas_windrunner::npc_lady_sylvanas_windrunnerAI, npc_highborne_lamenter::npc_highborne_lamenterAI, npc_varian_wrynn::npc_varian_wrynnAI, npc_jaina_proudmoore_bfu::npc_jaina_proudmoore_bfuAI, boss_blight_worm::boss_blight_wormAI, npc_thrall_bfu::npc_thrall_bfuAI, npc_lady_sylvanas_windrunner_bfu::npc_lady_sylvanas_windrunner_bfuAI, boss_akilzon::boss_akilzonAI, npc_akilzon_eagle::npc_akilzon_eagleAI, boss_halazzi::boss_halazziAI, npc_halazzi_lynx::npc_halazzi_lynxAI, boss_hexlord_malacrass::boss_hex_lord_malacrassAI, boss_thurg::boss_thurgAI, boss_alyson_antille::boss_alyson_antilleAI, boss_gazakrothAI, boss_lord_raadan::boss_lord_raadanAI, boss_darkheart::boss_darkheartAI, boss_slither::boss_slitherAI, boss_fenstalker::boss_fenstalkerAI, boss_koragg::boss_koraggAI, boss_janalai::boss_janalaiAI, npc_janalai_hatcher::npc_janalai_hatcherAI, npc_janalai_hatchling::npc_janalai_hatchlingAI, boss_nalorakk::boss_nalorakkAI, boss_zuljin::boss_zuljinAI, npc_forest_frog::npc_forest_frogAI, npc_harrison_jones::npc_harrison_jonesAI, boss_arlokk::boss_arlokkAI, npc_zulian_prowler::npc_zulian_prowlerAI, boss_gahzranka::boss_gahzrankaAI, boss_grilek::boss_grilekAI, boss_hakkar::boss_hakkarAI, boss_hazzarah, boss_jeklik, npc_batrider, boss_jindo, npc_healing_ward, npc_shade_of_jindo, boss_mandokir::boss_mandokirAI, npc_ohgan::npc_ohganAI, npc_vilebranch_speaker, boss_marli, npc_spawn_of_marli, boss_renataki::boss_renatakiAI, boss_thekal::boss_thekalAI, npc_zealot_lorkhan::npc_zealot_lorkhanAI, npc_zealot_zath::npc_zealot_zathAI, boss_venoxis::boss_venoxisAI, boss_wushoolay::boss_wushoolayAI, npc_dark_iron_attack_generator, npc_dark_iron_attack_mole_machine, npc_dark_iron_guzzler, npc_brewfest_super_brew_trigger, npc_brew_bubble, npc_coren_direbrew, npc_coren_direbrew_sisters, npc_winterfin_playmate, npc_snowfall_glade_playmate, npc_the_biggest_tree, npc_high_oracle_soo_roo, npc_elder_kekek, npc_the_etymidian, npc_alexstraza_the_lifebinder, npc_costumed_orphan_matron, npc_hallows_end_soh, npc_hallows_end_train_fire, boss_headless_horseman, boss_headless_horseman_head, boss_headless_horseman_pumpkin, npc_love_in_air_supply_sentry, npc_love_in_air_snivel, npc_love_in_air_snivel_real, npc_midsummer_torch_target, npc_pilgrims_bounty_chair, boss_azuregos::boss_azuregosAI, boss_anetheron::boss_anetheronAI, npc_towering_infernal::npc_towering_infernalAI, npc_ancient_wisp::npc_ancient_wispAI, npc_doomfire_targetting::npc_doomfire_targettingAI, boss_archimonde::boss_archimondeAI, boss_azgalor::boss_azgalorAI, npc_lesser_doomguard::npc_lesser_doomguardAI, boss_kazrogal::boss_kazrogalAI, boss_rage_winterchill::boss_rage_winterchillAI, npc_giant_infernal::npc_giant_infernalAI, npc_abomination::npc_abominationAI, npc_ghoul::npc_ghoulAI, npc_necromancer::npc_necromancerAI, npc_banshee::npc_bansheeAI, npc_crypt_fiend::npc_crypt_fiendAI, npc_fel_stalker::npc_fel_stalkerAI, npc_frost_wyrm::npc_frost_wyrmAI, npc_gargoyle::npc_gargoyleAI, alliance_rifleman::alliance_riflemanAI, hyjal_trashAI, hyjalAI, boss_epoch::boss_epochAI, boss_infinite_corruptor::boss_infinite_corruptorAI, boss_mal_ganis::boss_mal_ganisAI, boss_meathook::boss_meathookAI, boss_salramm::boss_salrammAI, npc_arthas::npc_arthasAI, npc_cos_stratholme_citizien::npc_cos_stratholme_citizienAI, boss_captain_skarloc, boss_epoch_hunter, boss_lieutenant_drake, npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, npc_medivh_bm, npc_time_rift, boss_isalien, boss_onyxia, npc_onyxian_lair_guard, npc_belnistrasz::npc_belnistraszAI, boss_ayamiss, npc_hive_zara_larva, boss_buru, boss_kurinnaxx, boss_moam, boss_ossirian, npc_anubisath_guardian, boss_rajaxx, npc_hivezara_stinger, npc_obsidian_destroyer, boss_bug_trio, boss_eye_of_cthun, boss_cthun, npc_eye_tentacle, npc_claw_tentacle, npc_giant_claw_tentacle, npc_giant_eye_tentacle, boss_fankriss, boss_huhuran, boss_ouro, npc_dirt_mound, boss_sartura, npc_sartura_royal_guard, boss_skeram, boss_twinemperorsAI, boss_viscidus, boss_glob_of_viscidus, npc_anubisath_defender, npc_vekniss_stinger, npc_obsidian_eradicator, npc_anubisath_warder, npc_obsidian_nullifier, npc_ahnqiraji_critter, npc_muglash::npc_muglashAI, npc_rizzle_sprysprocket::npc_rizzle_sprysprocketAI, npc_depth_charge::npc_depth_chargeAI, npc_draenei_survivor::npc_draenei_survivorAI, npc_death_ravager::npc_death_ravagerAI, npc_stillpine_capitive::npc_stillpine_capitiveAI, npc_murkdeep::npc_murkdeepAI, npc_rabid_thistle_bear::npc_rabid_thistle_bearAI, npc_tharnarian::npc_tharnarianAI, npc_tiger_matriarch_credit::npc_tiger_matriarch_creditAI, npc_tiger_matriarch::npc_tiger_matriarchAI, npc_clintar_spirit::npc_clintar_spiritAI, npc_omen::npc_omenAI, npc_giant_spotlight::npc_giant_spotlightAI, npc_shenthul::npc_shenthulAI, npc_thrall_warchief::npc_thrall_warchiefAI, npc_anachronos_the_ancient::npc_anachronos_the_ancientAI, npc_qiraj_war_spawn::npc_qiraj_war_spawnAI, npc_anachronos_quest_trigger::npc_anachronos_quest_triggerAI, npc_aquementas::npc_aquementasAI, npc_custodian_of_time::npc_custodian_of_timeAI, npc_taskmaster_fizzule::npc_taskmaster_fizzuleAI, npc_twiggy_flathead::npc_twiggy_flatheadAI, npc_plucky::npc_pluckyAI, npc_cairne_bloodhoof::npc_cairne_bloodhoofAI, npc_ame::npc_ameAI, npc_sergeant_bly::npc_sergeant_blyAI, npc_weegli_blastfuse::npc_weegli_blastfuseAI, npc_shadowpriest_sezziz::npc_shadowpriest_sezzizAI, npc_amanitar_mushrooms, boss_elder_nadox, npc_ahnkahar_nerubian, boss_volazj, boss_jedoga_shadowseeker, npc_twilight_volunteer, npc_taldaram_flamesphere, boss_taldaram, boss_anub_arak::boss_anub_arakAI, boss_hadronox::boss_hadronoxAI, npc_anub_ar_crusher::npc_anub_ar_crusherAI, boss_krik_thir::boss_krik_thirAI, boss_sartharion::boss_sartharionAI, npc_twilight_summon::npc_twilight_summonAI, boss_baltharus_the_warborn::boss_baltharus_the_warbornAI, npc_baltharus_the_warborn_clone::npc_baltharus_the_warborn_cloneAI, npc_xerestrasza::npc_xerestraszaAI, boss_general_zarithrian::boss_general_zarithrianAI, boss_halion::boss_halionAI, boss_twilight_halion::boss_twilight_halionAI, npc_halion_controller::npc_halion_controllerAI, boss_saviana_ragefire::boss_saviana_ragefireAI, boss_eadric::boss_eadricAI, boss_paletress::boss_paletressAI, npc_memory::npc_memoryAI, npc_argent_soldier::npc_argent_soldierAI, boss_black_knight::boss_black_knightAI, npc_black_knight_ghoul::npc_black_knight_ghoulAI, npc_toc5_player_vehicle::npc_toc5_player_vehicleAI, npc_toc5_grand_champion_minion::npc_toc5_grand_champion_minionAI, boss_grand_champion::boss_grand_championAI, boss_anubarak_trial::boss_anubarak_trialAI, npc_swarm_scarab::npc_swarm_scarabAI, npc_frost_sphere::npc_frost_sphereAI, npc_nerubian_burrower::npc_nerubian_burrowerAI, npc_anubarak_spike::npc_anubarak_spikeAI, boss_faction_championsAI, npc_toc_druid::npc_toc_druidAI, npc_toc_shaman::npc_toc_shamanAI, npc_toc_paladin::npc_toc_paladinAI, npc_toc_priest::npc_toc_priestAI, npc_toc_shadow_priest::npc_toc_shadow_priestAI, npc_toc_warlock::npc_toc_warlockAI, npc_toc_mage::npc_toc_mageAI, npc_toc_hunter::npc_toc_hunterAI, npc_toc_boomkin::npc_toc_boomkinAI, npc_toc_warrior::npc_toc_warriorAI, npc_toc_dk::npc_toc_dkAI, npc_toc_rogue::npc_toc_rogueAI, npc_toc_enh_shaman::npc_toc_enh_shamanAI, npc_toc_retro_paladin::npc_toc_retro_paladinAI, npc_toc_pet_warlock::npc_toc_pet_warlockAI, npc_toc_pet_hunter::npc_toc_pet_hunterAI, boss_jaraxxus::boss_jaraxxusAI, npc_fel_infernal::npc_fel_infernalAI, npc_mistress_of_pain::npc_mistress_of_painAI, npc_snobold_vassal::npc_snobold_vassalAI, boss_gormok::boss_gormokAI, boss_jormungarAI, boss_icehowl::boss_icehowlAI, boss_twin_valkyrAI, boss_dred::boss_dredAI, boss_novos::boss_novosAI, boss_tharon_ja::boss_tharon_jaAI, boss_trollgore::boss_trollgoreAI, boss_bronjahm::boss_bronjahmAI, npc_fos_corrupted_soul_fragment::npc_fos_corrupted_soul_fragmentAI, boss_devourer_of_souls::boss_devourer_of_soulsAI, npc_fos_leader::npc_fos_leaderAI, boss_falric::boss_falricAI, boss_marwyn::boss_marwynAI, npc_hor_leader::npc_hor_leaderAI, npc_ghostly_priest::npc_ghostly_priestAI, npc_phantom_mage::npc_phantom_mageAI, npc_phantom_hallucination::npc_phantom_hallucinationAI, npc_shadowy_mercenary::npc_shadowy_mercenaryAI, npc_spectral_footman::npc_spectral_footmanAI, npc_tortured_rifleman::npc_tortured_riflemanAI, boss_frostsworn_general::boss_frostsworn_generalAI, npc_hor_spiritual_reflection::npc_hor_spiritual_reflectionAI, npc_hor_lich_king::npc_hor_lich_kingAI, npc_hor_leader_second::npc_hor_leader_secondAI, npc_hor_risen_witch_doctor::npc_hor_risen_witch_doctorAI, npc_hor_lumbering_abomination::npc_hor_lumbering_abominationAI, boss_garfrost::boss_garfrostAI, boss_ick::boss_ickAI, boss_krick::boss_krickAI, boss_tyrannus::boss_tyrannusAI, npc_pos_leader::npc_pos_leaderAI, npc_pos_deathwhisper_necrolyte::npc_pos_deathwhisper_necrolyteAI, npc_pos_after_first_boss::npc_pos_after_first_bossAI, npc_pos_tyrannus_events::npc_pos_tyrannus_eventsAI, npc_pos_icicle_trigger::npc_pos_icicle_triggerAI, npc_pos_collapsing_icicle::npc_pos_collapsing_icicleAI, npc_pos_martin_or_gorkun_second::npc_pos_martin_or_gorkun_secondAI, npc_pos_leader_second::npc_pos_leader_secondAI, boss_drakkari_colossus::boss_drakkari_colossusAI, boss_drakkari_elemental::boss_drakkari_elementalAI, npc_living_mojo::npc_living_mojoAI, boss_eck::boss_eckAI, boss_gal_darah::boss_gal_darahAI, boss_moorabi::boss_moorabiAI, boss_slad_ran::boss_slad_ranAI, boss_prince_keleseth_icc::boss_prince_kelesethAI, boss_prince_taldaram_icc::boss_prince_taldaramAI, boss_prince_valanar_icc::boss_prince_valanarAI, npc_blood_queen_lana_thel::npc_blood_queen_lana_thelAI, npc_dark_nucleus::npc_dark_nucleusAI, npc_kinetic_bomb::npc_kinetic_bombAI, boss_blood_queen_lana_thel::boss_blood_queen_lana_thelAI, boss_deathbringer_saurfang::boss_deathbringer_saurfangAI, npc_high_overlord_saurfang_icc::npc_high_overlord_saurfangAI, npc_muradin_bronzebeard_icc::npc_muradin_bronzebeard_iccAI, npc_icc_blood_beast::npc_icc_blood_beastAI, boss_festergut::boss_festergutAI, npc_stinky_icc::npc_stinky_iccAI, npc_high_overlord_saurfang_igb::npc_high_overlord_saurfang_igbAI, npc_muradin_bronzebeard_igb::npc_muradin_bronzebeard_igbAI, npc_gunship_boarding_addAI, npc_gunship_boarding_leader::npc_gunship_boarding_leaderAI, npc_gunship_boarding_add::npc_gunship_boarding_add_realAI, npc_gunship_mage::npc_gunship_mageAI, npc_gunship_gunner::npc_gunship_gunnerAI, boss_lady_deathwhisper::boss_lady_deathwhisperAI, npc_cult_fanatic::npc_cult_fanaticAI, npc_cult_adherent::npc_cult_adherentAI, npc_vengeful_shade::npc_vengeful_shadeAI, npc_darnavan::npc_darnavanAI, boss_lord_marrowgar, npc_coldflame::npc_coldflameAI, npc_bone_spike::npc_bone_spikeAI, boss_professor_putricide::boss_professor_putricideAI, npc_putricide_oozeAI, boss_rotface::boss_rotfaceAI, npc_little_ooze::npc_little_oozeAI, npc_big_ooze::npc_big_oozeAI, npc_precious_icc::npc_precious_iccAI, boss_sindragosa::boss_sindragosaAI, npc_ice_tomb::npc_ice_tombAI, npc_spinestalker::npc_spinestalkerAI, npc_rimefang::npc_rimefangAI, npc_sindragosa_trash::npc_sindragosa_trashAI, boss_the_lich_king::boss_the_lich_kingAI, npc_tirion_fordring_tft::npc_tirion_fordringAI, npc_shambling_horror_icc::npc_shambling_horror_iccAI, npc_icc_ice_sphere::npc_icc_ice_sphereAI, npc_raging_spirit::npc_raging_spiritAI, npc_valkyr_shadowguard::npc_valkyr_shadowguardAI, npc_strangulate_vehicle::npc_strangulate_vehicleAI, npc_terenas_menethil::npc_terenas_menethilAI, npc_spirit_warden::npc_spirit_wardenAI, npc_lk_spirit_bomb::npc_lk_spirit_bombAI, boss_valithria_dreamwalker::boss_valithria_dreamwalkerAI, npc_green_dragon_combat_trigger::npc_green_dragon_combat_triggerAI, npc_the_lich_king_controller::npc_the_lich_king_controllerAI, npc_risen_archmage::npc_risen_archmageAI, npc_valithria_cloud::npc_valithria_cloudAI, npc_blazing_skeleton::npc_blazing_skeletonAI, npc_blistering_zombie::npc_blistering_zombieAI, npc_gluttonous_abomination::npc_gluttonous_abominationAI, npc_highlord_tirion_fordring_lh::npc_highlord_tirion_fordringAI, npc_rotting_frost_giant::npc_rotting_frost_giantAI, npc_frost_freeze_trap::npc_frost_freeze_trapAI, npc_crok_scourgebane::npc_crok_scourgebaneAI, boss_sister_svalna::boss_sister_svalnaAI, npc_captain_arnath::npc_captain_arnathAI, npc_captain_brandon::npc_captain_brandonAI, npc_captain_grondel::npc_captain_grondelAI, npc_captain_rupert::npc_captain_rupertAI, npc_frostwing_vrykul::npc_frostwing_vrykulAI, npc_impaling_spear::npc_impaling_spearAI, npc_arthas_teleport_visual::npc_arthas_teleport_visualAI, npc_icc_skybreaker_hierophant::npc_icc_skybreaker_hierophantAI, npc_icc_skybreaker_marksman::npc_icc_skybreaker_marksmanAI, npc_icc_skybreaker_vicar::npc_icc_skybreaker_vicarAI, npc_icc_skybreaker_luminary::npc_icc_skybreaker_luminaryAI, npc_icc_valkyr_herald::npc_icc_valkyr_heraldAI, npc_icc_severed_essence::npc_icc_severed_essenceAI, npc_icc_spire_frostwyrm, npc_icc_vengeful_fleshreaper::npc_icc_vengeful_fleshreaperAI, npc_icc_nerubar_broodkeeper::npc_icc_nerubar_broodkeeperAI, npc_icc_gauntlet_controller::npc_icc_gauntlet_controllerAI, npc_icc_putricades_trap::npc_icc_putricades_trapAI, npc_isle_of_conquest_turret::npc_isle_of_conquest_turretAI, npc_ioc_gunship_captain::npc_ioc_gunship_captainAI, boss_isle_of_conquest::boss_isle_of_conquestAI, boss_anubrekhan::boss_anubrekhanAI, boss_faerlina::boss_faerlinaAI, boss_four_horsemen::boss_four_horsemenAI, boss_gluth::boss_gluthAI, boss_gothik::boss_gothikAI, npc_boss_gothik_minion::npc_boss_gothik_minionAI, boss_grobbulus::boss_grobbulusAI, boss_grobbulus_poison_cloud::boss_grobbulus_poison_cloudAI, boss_heigan::boss_heiganAI, boss_kelthuzad::boss_kelthuzadAI, boss_kelthuzad_minion::boss_kelthuzad_minionAI, boss_loatheb::boss_loathebAI, boss_maexxna::boss_maexxnaAI, boss_noth::boss_nothAI, boss_patchwerk::boss_patchwerkAI, boss_razuvious::boss_razuviousAI, boss_razuvious_minion::boss_razuvious_minionAI, boss_sapphiron::boss_sapphironAI, boss_thaddius::boss_thaddiusAI, boss_thaddius_summon::boss_thaddius_summonAI, boss_naxxramas_misc::boss_naxxramas_miscAI, boss_malygos::boss_malygosAI, npc_vortex_ride::npc_vortex_rideAI, npc_power_spark::npc_power_sparkAI, npc_nexus_lord::npc_nexus_lordAI, npc_scion_of_eternity::npc_scion_of_eternityAI, npc_hover_disk::npc_hover_diskAI, npc_alexstrasza::npc_alexstraszaAI, boss_anomalus::boss_anomalusAI, boss_commander_stoutbeard::boss_commander_stoutbeardAI, boss_keristrasza::boss_keristraszaAI, boss_magus_telestra::boss_magus_telestraAI, boss_ormorok::boss_ormorokAI, npc_crystal_spike::npc_crystal_spikeAI, npc_crystalline_frayer::npc_crystalline_frayerAI, boss_drakos::boss_drakosAI, npc_oculus_unstable_sphere::npc_oculus_unstable_sphereAI, boss_eregos::boss_eregosAI, boss_urom::boss_uromAI, boss_varos::boss_varosAI, npc_oculus_drakegiver::npc_oculus_drakegiverAI, npc_oculus_drake::npc_oculus_drakeAI, npc_stormforged_lieutenant::npc_stormforged_lieutenantAI, boss_ionar::boss_ionarAI, boss_loken::boss_lokenAI, boss_volkhan::boss_volkhanAI, npc_molten_golem::npc_molten_golemAI, npc_hol_monument::npc_hol_monumentAI, boss_krystallus::boss_krystallusAI, boss_maiden_of_grief::boss_maiden_of_griefAI, boss_sjonnir::boss_sjonnirAI, boss_sjonnir_iron_sludge::boss_sjonnir_iron_sludgeAI, boss_sjonnir_malformed_ooze::boss_sjonnir_malformed_oozeAI, dark_rune_protectors::dark_rune_protectorsAI, dark_rune_stormcaller::dark_rune_stormcallerAI, iron_golem_custodian::iron_golem_custodianAI, boss_algalon_the_observer::boss_algalon_the_observerAI, npc_brann_bronzebeard_algalon::npc_brann_bronzebeard_algalonAI, npc_living_constellation::npc_living_constellationAI, npc_algalon_worm_hole::npc_algalon_worm_holeAI, boss_steelbreaker::boss_steelbreakerAI, boss_runemaster_molgeim::boss_runemaster_molgeimAI, boss_stormcaller_brundir::boss_stormcaller_brundirAI, boss_auriaya::boss_auriayaAI, npc_auriaya_sanctum_sentry::npc_auriaya_sanctum_sentryAI, npc_auriaya_feral_defender::npc_auriaya_feral_defenderAI, boss_flame_leviathan::boss_flame_leviathanAI, boss_flame_leviathan_seat::boss_flame_leviathan_seatAI, boss_flame_leviathan_defense_turret::boss_flame_leviathan_defense_turretAI, npc_freya_ward::npc_freya_wardAI, npc_hodirs_fury::npc_hodirs_furyAI, npc_mimirons_inferno::npc_mimirons_infernoAI, npc_thorims_hammer::npc_thorims_hammerAI, npc_storm_beacon_spawn::npc_storm_beacon_spawnAI, boss_flame_leviathan_safety_container::boss_flame_leviathan_safety_containerAI, npc_mechanolift::npc_mechanoliftAI, boss_freya::boss_freyaAI, boss_freya_elder_stonebark::boss_freya_elder_stonebarkAI, boss_freya_elder_brightleaf::boss_freya_elder_brightleafAI, boss_freya_elder_ironbranch::boss_freya_elder_ironbranchAI, boss_freya_lifebinder::boss_freya_lifebinderAI, boss_freya_healthy_spore::boss_freya_healthy_sporeAI, boss_freya_summons::boss_freya_summonsAI, boss_freya_nature_bomb::boss_freya_nature_bombAI, boss_vezax::boss_vezaxAI, npc_ulduar_saronite_animus::npc_ulduar_saronite_animusAI, boss_hodir::boss_hodirAI, npc_ulduar_icicle::npc_ulduar_icicleAI, npc_ulduar_flash_freeze::npc_ulduar_flash_freezeAI, npc_ulduar_hodir_priest::npc_ulduar_hodir_priestAI, npc_ulduar_hodir_druid::npc_ulduar_hodir_druidAI, npc_ulduar_hodir_shaman::npc_ulduar_hodir_shamanAI, npc_ulduar_hodir_mage::npc_ulduar_hodir_mageAI, npc_ulduar_iron_construct::npc_ulduar_iron_constructAI, boss_ignis::boss_ignisAI, boss_kologarn::boss_kologarnAI, boss_kologarn_eyebeam::boss_kologarn_eyebeamAI, boss_mimiron::boss_mimironAI, npc_ulduar_leviathan_mkii::npc_ulduar_leviathan_mkiiAI, npc_ulduar_vx001::npc_ulduar_vx001AI, npc_ulduar_aerial_command_unit::npc_ulduar_aerial_command_unitAI, npc_ulduar_proximity_mine::npc_ulduar_proximity_mineAI, npc_ulduar_magnetic_core::npc_ulduar_magnetic_coreAI, npc_ulduar_bot_summon_trigger::npc_ulduar_bot_summon_triggerAI, npc_ulduar_flames_initial::npc_ulduar_flames_initialAI, npc_ulduar_emergency_fire_bot::npc_ulduar_emergency_fire_botAI, boss_razorscale::boss_razorscaleAI, npc_ulduar_expedition_engineer::npc_ulduar_expedition_engineerAI, npc_ulduar_dark_rune_guardian::npc_ulduar_dark_rune_guardianAI, npc_ulduar_dark_rune_watcher::npc_ulduar_dark_rune_watcherAI, npc_ulduar_dark_rune_sentinel::npc_ulduar_dark_rune_sentinelAI, boss_thorim::boss_thorimAI, boss_thorim_sif::boss_thorim_sifAI, boss_thorim_trap::boss_thorim_trapAI, boss_thorim_pillar::boss_thorim_pillarAI, boss_thorim_start_npcs::boss_thorim_start_npcsAI, boss_thorim_gauntlet_npcs::boss_thorim_gauntlet_npcsAI, boss_thorim_runic_colossus::boss_thorim_runic_colossusAI, boss_thorim_ancient_rune_giant::boss_thorim_ancient_rune_giantAI, boss_thorim_arena_npcs::boss_thorim_arena_npcsAI, boss_xt002::boss_xt002AI, npc_xt002_heart::npc_xt002_heartAI, npc_xt002_pummeller::npc_xt002_pummellerAI, boss_yoggsaron_sara::boss_yoggsaron_saraAI, boss_yoggsaron_guardian_of_ys::boss_yoggsaron_guardian_of_ysAI, boss_yoggsaron::boss_yoggsaronAI, boss_yoggsaron_brain::boss_yoggsaron_brainAI, boss_yoggsaron_death_orb::boss_yoggsaron_death_orbAI, boss_yoggsaron_constrictor_tentacle::boss_yoggsaron_constrictor_tentacleAI, boss_yoggsaron_keeper::boss_yoggsaron_keeperAI, boss_yoggsaron_immortal_guardian::boss_yoggsaron_immortal_guardianAI, boss_yoggsaron_lich_king::boss_yoggsaron_lich_kingAI, boss_yoggsaron_llane::boss_yoggsaron_llaneAI, boss_yoggsaron_neltharion::boss_yoggsaron_neltharionAI, boss_yoggsaron_voice::boss_yoggsaron_voiceAI, npc_ulduar_storm_tempered_keeper::npc_ulduar_storm_tempered_keeperAI, npc_ulduar_arachnopod_destroyer::npc_ulduar_arachnopod_destroyerAI, boss_ingvar_the_plunderer::boss_ingvar_the_plundererAI, boss_keleseth::boss_kelesethAI, npc_vrykul_skeleton::npc_vrykul_skeletonAI, boss_skarvald_the_constructor::boss_skarvald_the_constructorAI, boss_dalronn_the_controller::boss_dalronn_the_controllerAI, npc_enslaved_proto_drake::npc_enslaved_proto_drakeAI, boss_palehoof::boss_palehoofAI, npc_massive_jormungar::npc_massive_jormungarAI, npc_ferocious_rhino::npc_ferocious_rhinoAI, npc_ravenous_furbolg::npc_ravenous_furbolgAI, npc_frenzied_worgen::npc_frenzied_worgenAI, boss_skadi::boss_skadiAI, boss_skadi_grauf::boss_skadi_graufAI, boss_svala::boss_svalaAI, boss_ymiron::boss_ymironAI, boss_archavon::boss_archavonAI, boss_emalon::boss_emalonAI, boss_koralon::boss_koralonAI, boss_toravon::boss_toravonAI, npc_frozen_orb::npc_frozen_orbAI, boss_cyanigosa::boss_cyanigosaAI, boss_erekem::boss_erekemAI, npc_erekem_guard::npc_erekem_guardAI, boss_lavanthor::boss_lavanthorAI, boss_moragg::boss_moraggAI, boss_xevozz::boss_xevozzAI, boss_zuramat::boss_zuramatAI, npc_vh_void_sentry::npc_vh_void_sentryAI, npc_vh_teleportation_portal::npc_vh_teleportation_portalAI, violet_hold_trashAI, npc_azure_invader::npc_azure_invaderAI, npc_azure_binder::npc_azure_binderAI, npc_azure_mage_slayer::npc_azure_mage_slayerAI, npc_azure_raider::npc_azure_raiderAI, npc_azure_stalker::npc_azure_stalkerAI, npc_azure_spellbreaker::npc_azure_spellbreakerAI, npc_azure_captain::npc_azure_captainAI, npc_azure_sorceror::npc_azure_sorcerorAI, npc_azure_saboteur::npc_azure_saboteurAI, npc_violet_hold_defense_system, npc_sinkhole_kill_credit::npc_sinkhole_kill_creditAI, npc_lurgglbr::npc_lurgglbrAI, npc_beryl_sorcerer::npc_beryl_sorcererAI, npc_captured_beryl_sorcerer::npc_captured_beryl_sorcererAI, npc_imprisoned_beryl_sorcerer::npc_imprisoned_beryl_sorcererAI, npc_valiance_keep_cannoneer::npc_valiance_keep_cannoneerAI, npc_hidden_cultist::npc_hidden_cultistAI, npc_bloodmage_laurith::npc_bloodmage_laurithAI, npc_thassarian::npc_thassarianAI, npc_thassarian2::npc_thassarian2AI, npc_counselor_talbot::npc_counselor_talbotAI, npc_preparations_for_war_vehicle, npc_shandy_dalaran::npc_shandy_dalaranAI, npc_archmage_landalock::npc_archmage_landalockAI, npc_minigob_manabonk::npc_minigob_manabonkAI, npc_dalaran_mage::npc_dalaran_mageAI, npc_dalaran_warrior::npc_dalaran_warriorAI, npc_conversing_with_the_depths_trigger::npc_conversing_with_the_depths_triggerAI, npc_hourglass_of_eternity::npc_hourglass_of_eternityAI, npc_wintergarde_gryphon, npc_q24545_lich_king::npc_q24545_lich_kingAI, npc_q24545_vegard::npc_q24545_vegardAI, npc_commander_eligor_dawnbringer::npc_commander_eligor_dawnbringerAI, npc_torturer_lecraft::npc_torturer_lecraftAI, npc_ravenous_worg::npc_ravenous_worgAI, npc_amberpine_woodsman::npc_amberpine_woodsmanAI, npc_wounded_skirmisher, npc_venture_co_straggler::npc_venture_co_stragglerAI, npc_lake_frog::npc_lake_frogAI, npc_your_inner_turmoil::npc_your_inner_turmoilAI, npc_battle_at_valhalas::npc_battle_at_valhalasAI, npc_llod_generic::npc_llod_genericAI, npc_lord_arete::npc_lord_areteAI, npc_boneguard_footman::npc_boneguard_footmanAI, npc_infra_green_bomber_generic::npc_infra_green_bomber_genericAI, npc_tournament_training_dummy::npc_tournament_training_dummyAI, npc_blessed_banner::npc_blessed_bannerAI, npc_frostbrood_skytalon::npc_frostbrood_skytalonAI, npc_artruis_the_hearthless::npc_artruis_the_hearthlessAI, npc_still_at_it_trigger::npc_still_at_it_triggerAI, npc_jungle_punch_target::npc_jungle_punch_targetAI, npc_frosthound::npc_frosthoundAI, npc_iron_watcher::npc_iron_watcherAI, npc_wild_wyrm::npc_wild_wyrmAI, npc_freed_protodrake::npc_freed_protodrakeAI, npc_icefang::npc_icefangAI, npc_hyldsmeet_protodrake::npc_hyldsmeet_protodrakeAI, npc_wg_queue::npc_wg_queueAI, npc_wg_siege_machine::npc_wg_siege_machineAI, npc_feedin_da_goolz::npc_feedin_da_goolzAI, npc_overlord_drakuru_betrayal::npc_overlord_drakuru_betrayalAI, npc_drakuru_shackles::npc_drakuru_shacklesAI, npc_crusade_recruit::npc_crusade_recruitAI, boss_exarch_maladaar, npc_stolen_soul, boss_shirrak_the_dead_watcher, boss_nexusprince_shaffar, npc_yor, boss_anzu, npc_anzu_spirit, boss_ambassador_hellmaw, boss_blackheart_the_inciter, npc_voidtraveler, boss_gurtogg_bloodboil::boss_gurtogg_bloodboilAI, boss_illidan_stormrage::boss_illidan_stormrageAI, boss_mother_shahraz::boss_shahrazAI, boss_reliquary_of_souls::boss_reliquary_of_soulsAI, boss_essence_of_suffering::boss_essence_of_sufferingAI, boss_essence_of_desire::boss_essence_of_desireAI, boss_essence_of_anger::boss_essence_of_angerAI, boss_shade_of_akama::boss_shade_of_akamaAI, npc_akama_shade::npc_akamaAI, npc_creature_generator_akama::npc_creature_generator_akamaAI, boss_supremus::boss_supremusAI, boss_teron_gorefiend::boss_teron_gorefiendAI, boss_najentus::boss_najentusAI, boss_gathios_the_shatterer::boss_gathios_the_shattererAI, boss_high_nethermancer_zerevor::boss_high_nethermancer_zerevorAI, boss_lady_malande::boss_lady_malandeAI, boss_veras_darkshadow::boss_veras_darkshadowAI, boss_doomlord_kazzak::boss_doomlordkazzakAI, boss_doomwalker::boss_doomwalkerAI, boss_fathomlord_karathress::boss_fathomlord_karathressAI, boss_hydross_the_unstable::boss_hydross_the_unstableAI, boss_lady_vashj::boss_lady_vashjAI, boss_leotheras_the_blind::boss_leotheras_the_blindAI, npc_inner_demon::npc_inner_demonAI, boss_the_lurker_below::boss_the_lurker_belowAI, boss_morogrim_tidewalker::boss_morogrim_tidewalkerAI, boss_ahune, boss_ghazan, boss_hungarfen, npc_underbog_mushroom, boss_the_black_stalker, npc_underbat, boss_gruul, boss_high_king_maulgar, boss_olm_the_summoner, boss_kiggler_the_crazed, boss_blindeye_the_seer, boss_krosh_firehand, boss_the_maker, boss_omor_the_unscarred, boss_nazan, boss_vazruden, boss_watchkeeper_gargolmar, boss_magtheridon, boss_grand_warlock_nethekurse, npc_shattered_hand_scout, boss_warbringer_omrogg, boss_warchief_kargath_bladefist, npc_warchief_portal, npc_millhouse_manastorm::npc_millhouse_manastormAI, npc_warden_mellichar::npc_warden_mellicharAI, boss_wrath_scryer_soccothrates, boss_alar::boss_alarAI, boss_high_astromancer_solarian::boss_high_astromancer_solarianAI, boss_kaelthas::boss_kaelthasAI, boss_void_reaver::boss_void_reaverAI, npc_raging_flames, npc_deaths_door_fell_cannon_target_bunny::npc_deaths_door_fell_cannon_target_bunnyAI, npc_nether_drake::npc_nether_drakeAI, npc_simon_bunny::npc_simon_bunnyAI, npc_oscillating_frequency_scanner_master_bunny::npc_oscillating_frequency_scanner_master_bunnyAI, npc_aeranas::npc_aeranasAI, npc_fel_guard_hound::npc_fel_guard_houndAI, npc_magister_aledis, npc_maghar_captive::npc_maghar_captiveAI, npc_captain_saeed::npc_captain_saeedAI, npc_commander_dawnforge::npc_commander_dawnforgeAI, npc_phase_hunter::npc_phase_hunterAI, npc_invis_infernal_caster::npc_invis_infernal_casterAI, npc_mature_netherwing_drake::npc_mature_netherwing_drakeAI, npc_enslaved_netherwing_drake::npc_enslaved_netherwing_drakeAI, npc_dragonmaw_peon::npc_dragonmaw_peonAI, npc_torloth_the_magnificent::npc_torloth_the_magnificentAI, npc_lord_illidan_stormrage::npc_lord_illidan_stormrageAI, npc_illidari_spawn::npc_illidari_spawnAI, npc_enraged_spirit::npc_enraged_spiritAI, npc_shadowmoon_tuber_node::npc_shadowmoon_tuber_nodeAI, npc_unkor_the_ruthless::npc_unkor_the_ruthlessAI, npc_pet_dk_ebon_gargoyle::npc_pet_dk_ebon_gargoyleAI, npc_pet_gen_soul_trader_beacon, npc_pet_gen_argent_pony_bridle, npc_pet_gen_target_following_bomb, npc_pet_gen_valkyr_guardian, npc_pet_gen_imp_in_a_bottle, npc_pet_gen_wind_rider_cub, npc_pet_gen_plump_turkey, npc_pet_gen_toxic_wasteling, npc_pet_gen_fetch_ball, npc_pet_darting_hatchling, npc_pet_hunter_snake_trap, npc_pet_mage_mirror_image, npc_pet_shaman_earth_elemental, npc_pet_shaman_fire_elemental, emerald_dragonAI, npc_dream_fog::npc_dream_fogAI, boss_taerar::boss_taerarAI, guard_shattrath_scryer::guard_shattrath_scryerAI, guard_shattrath_aldor::guard_shattrath_aldorAI, generic_creature::generic_creatureAI, trigger_periodic::trigger_periodicAI, npc_artorius::npc_artoriusAI, npc_simone::npc_simoneAI, npc_nelson::npc_nelsonAI, npc_franklin::npc_franklinAI, npc_elder_clearwater::npc_elder_clearwaterAI, npc_riggle_bassbait::npc_riggle_bassbaitAI, npc_training_dummy::npc_training_dummyAI, npc_target_dummy::npc_target_dummyAI, npc_chicken_cluck::npc_chicken_cluckAI, npc_dancing_flames::npc_dancing_flamesAI, npc_doctor::npc_doctorAI, npc_injured_patient::npc_injured_patientAI, npc_garments_of_quests::npc_garments_of_questsAI, npc_spring_rabbit::npc_spring_rabbitAI, npc_arcanite_dragonling, npc_crashin_thrashin_robot, npc_koltira_deathweaver::npc_koltira_deathweaverAI, npc_lord_gregor_lescovar::npc_lord_gregor_lescovarAI, npc_tyrion_spybot::npc_tyrion_spybotAI, npc_black_knight_skeletal_gryphon::npc_black_knight_skeletal_gryphonAI, boss_ichoron::boss_ichoronAI, npc_ichor_globule::npc_ichor_globuleAI, npc_warmage_coldarra::npc_warmage_coldarraAI, npc_engineer_helice::npc_engineer_heliceAI, npc_maxx_a_million_escort::npc_maxx_a_million_escortAI, AggressorAI, PassiveAI, PossessedAI, NullCreatureAI, CritterAI, PetAI, FollowerAI, npc_demonic_vapor::npc_demonic_vaporAI, npc_greengill_slave::npc_greengill_slaveAI, npc_marzon_silent_blade::npc_marzon_silent_bladeAI, boss_hexlord_addAI, npc_janalai_firebomb::npc_janalai_firebombAI, npc_janalai_egg::npc_janalai_eggAI, npc_zuljin_vortex::npc_zuljin_vortexAI, npc_zulaman_hostage::npc_zulaman_hostageAI, npc_chained_spirit, npc_buru_egg, npc_injured_draenei::npc_injured_draeneiAI, npc_zelfrax::npc_zelfraxAI, npc_enraged_panther::npc_enraged_pantherAI, npc_orb_carrier::npc_orb_carrierAI, npc_announcer_toc5::npc_announcer_toc5AI, npc_concentrated_ball::npc_concentrated_ballAI, npc_hor_raging_ghoul::npc_hor_raging_ghoulAI, npc_gunship_rocketeer::npc_gunship_rocketeerAI, npc_suppresser::npc_suppresserAI, npc_tesla::npc_teslaAI, npc_centrifuge_construct::npc_centrifuge_constructAI, npc_spark_of_ionar::npc_spark_of_ionarAI, boss_sjonnir_dwarf::boss_sjonnir_dwarfAI, npc_assembly_lightning::npc_assembly_lightningAI, boss_kologarn_arms::boss_kologarn_armsAI, npc_ulduar_mimiron_rocket::npc_ulduar_mimiron_rocketAI, npc_xt002_scrapbot::npc_xt002_scrapbotAI, npc_xt002_boombot::npc_xt002_boombotAI, npc_xt002_life_spark::npc_xt002_life_sparkAI, boss_yoggsaron_crusher_tentacle::boss_yoggsaron_crusher_tentacleAI, boss_yoggsaron_corruptor_tentacle::boss_yoggsaron_corruptor_tentacleAI, npc_ulduar_snow_mound::npc_ulduar_snow_moundAI, npc_frost_tomb::npc_frost_tombAI, npc_warmage_violetstand, npc_mageguard_dalaran::npc_mageguard_dalaranAI, npc_future_you::npc_future_youAI, npc_q24545_vegard_dummy::npc_q24545_vegard_dummyAI, npc_mrfloppy::npc_mrfloppyAI, npc_tallhorn_stag::npc_tallhorn_stagAI, npc_bushwhacker::npc_bushwhackerAI, npc_brunnhildar_prisoner::npc_brunnhildar_prisonerAI, npc_wg_spirit_guide::npc_wg_spirit_guideAI, boss_illidari_council::boss_illidari_councilAI, boss_vazruden_the_herald, npc_deaths_fel_cannon::npc_deaths_fel_cannonAI, npc_infernal_attacker::npc_infernal_attackerAI, npc_pet_gen_gnomish_flame_turret, npc_precious::npc_preciousAI, and npc_guardian::npc_guardianAI.

Referenced by Creature::Update(), and npc_gunship_mage::npc_gunship_mageAI::UpdateAI().

Member Data Documentation

◆ AISpellInfo

◆ me