TrinityCore
Loading...
Searching...
No Matches
CreatureAIImpl.h File Reference
#include "Random.h"
#include <type_traits>
#include <functional>
+ Include dependency graph for CreatureAIImpl.h:

Go to the source code of this file.

Classes

struct  AISpellInfoType
 

Macros

#define AI_DEFAULT_COOLDOWN   5000
 

Enumerations

enum  AITarget {
  AITARGET_SELF , AITARGET_VICTIM , AITARGET_ENEMY , AITARGET_ALLY ,
  AITARGET_BUFF , AITARGET_DEBUFF
}
 
enum  AICondition { AICOND_AGGRO , AICOND_COMBAT , AICOND_DIE }
 
enum  SelectTargetType : uint8 {
  SELECT_TARGET_DONTCARE = 0 , SELECT_TARGET_SELF , SELECT_TARGET_SINGLE_ENEMY , SELECT_TARGET_AOE_ENEMY ,
  SELECT_TARGET_ANY_ENEMY , SELECT_TARGET_SINGLE_FRIEND , SELECT_TARGET_AOE_FRIEND , SELECT_TARGET_ANY_FRIEND
}
 
enum  SelectEffect : uint8 { SELECT_EFFECT_DONTCARE = 0 , SELECT_EFFECT_DAMAGE , SELECT_EFFECT_HEALING , SELECT_EFFECT_AURA }
 

Functions

template<typename First , typename Second , typename... Rest>
First const & RAND (First const &first, Second const &second, Rest const &... rest)
 
AISpellInfoType * GetAISpellInfo (uint32 spellId, Difficulty difficulty)
 
TC_GAME_API bool InstanceHasScript (WorldObject const *obj, char const *scriptName)
 
template<class AI , class T >
AI * GetInstanceAI (T *obj, char const *scriptName)
 

Macro Definition Documentation

◆ AI_DEFAULT_COOLDOWN

#define AI_DEFAULT_COOLDOWN   5000

Definition at line 51 of file CreatureAIImpl.h.

Enumeration Type Documentation

◆ AICondition

Enumerator
AICOND_AGGRO 
AICOND_COMBAT 
AICOND_DIE 

Definition at line 44 of file CreatureAIImpl.h.

◆ AITarget

enum AITarget
Enumerator
AITARGET_SELF 
AITARGET_VICTIM 
AITARGET_ENEMY 
AITARGET_ALLY 
AITARGET_BUFF 
AITARGET_DEBUFF 

Definition at line 34 of file CreatureAIImpl.h.

◆ SelectEffect

Enumerator
SELECT_EFFECT_DONTCARE 
SELECT_EFFECT_DAMAGE 
SELECT_EFFECT_HEALING 
SELECT_EFFECT_AURA 

Definition at line 67 of file CreatureAIImpl.h.

◆ SelectTargetType

Enumerator
SELECT_TARGET_DONTCARE 
SELECT_TARGET_SELF 
SELECT_TARGET_SINGLE_ENEMY 
SELECT_TARGET_AOE_ENEMY 
SELECT_TARGET_ANY_ENEMY 
SELECT_TARGET_SINGLE_FRIEND 
SELECT_TARGET_AOE_FRIEND 
SELECT_TARGET_ANY_FRIEND 

Definition at line 54 of file CreatureAIImpl.h.

Function Documentation

◆ GetAISpellInfo()

◆ GetInstanceAI()

template<class AI , class T >
AI * GetInstanceAI ( T *  obj,
char const *  scriptName 
)

Definition at line 94 of file CreatureAIImpl.h.

References InstanceHasScript().

◆ InstanceHasScript()

◆ RAND()

template<typename First , typename Second , typename... Rest>
First const & RAND ( First const &  first,
Second const &  second,
Rest const &...  rest 
)
inline

Definition at line 28 of file CreatureAIImpl.h.

References urand().

Referenced by spell_sjonnir_periodic_summon::AfterApply(), boss_lady_deathwhisper::DoImproveCultist(), PartyTimeEmoteEvent::Execute(), boss_curator::boss_curatorAI::ExecuteEvent(), boss_eck::ExecuteEvent(), boss_nexusprince_shaffar::ExecuteEvent(), boss_gathios_the_shatterer::ExecuteEvent(), boss_fathomguard_sharkkis::ExecuteEvent(), spell_mimiron_rocket_strike::spell_mimiron_rocket_strike_SpellScript::FilterTargets(), npc_simon_bunny::npc_simon_bunnyAI::GenerateColorSequence(), spell_ayamiss_paralyze::HandleAfterHit(), Scripts::Kalimdor::Durotar::spell_voodoo::HandleDummy(), spell_borean_tundra_arcane_prisoner_rescue::HandleDummy(), spell_terokkar_fumping::HandleDummy(), spell_item_deviate_fish::HandleDummy(), spell_item_vanquished_clutches::HandleDummy(), Scripts::EasternKingdoms::Gilneas::Chapter1::spell_gilneas_knocking::HandleEffect(), spell_item_party_time::HandleEffectApply(), spell_shade_of_medivh_basic_primer::HandleHit(), spell_shade_of_medivh_signature_primer::HandleHit(), spell_volatile_foam_initial::HandleHit(), spell_item_dementia::HandlePeriodicDummy(), spell_dreamwalker_summon_dream_portal::HandleScript(), spell_dreamwalker_summon_nightmare_portal::HandleScript(), spell_apothecary_validate_area::HandleScript(), spell_winter_veil_mistletoe::HandleScript(), spell_summon_random_drakkari::HandleScript(), spell_borean_tundra_kodo_delivered::HandleScript(), spell_dragonblight_warsong_battle_standard::HandleScript(), spell_dragonblight_call_out_injured_soldier::HandleScript(), spell_lady_vashj_summon_wave_e_mob_trigger::HandleScript(), spell_the_lurker_below_spout::HandleScript(), spell_kaelthas_pure_nether_beam::HandleScript(), spell_item_goblin_weather_machine::HandleScript(), spell_hallow_end_wand::HandleScriptEffect(), spell_gift_of_the_harvester::HandleScriptEffect(), spell_terokkar_fumping_the_big_bone_worm::HandleSummon(), spell_nether_dragon_essence_1::spell_nether_dragon_essence_1_AuraScript::HandleTriggerSpell(), spell_borean_tundra_neural_needle::HandleWhisper(), npc_underbog_mushroom::InitializeAI(), instance_karazhan::instance_karazhan_InstanceMapScript::instance_karazhan_InstanceMapScript(), npc_baleful_beaming_eye::JustAppeared(), boss_anetheron::JustAppeared(), npc_doomfire_spirit::JustAppeared(), boss_rage_winterchill::JustAppeared(), npc_brood_of_anzu::JustAppeared(), npc_ethereal_apprentice::JustEngagedWith(), boss_sister_solena::JustEngagedWith(), boss_grobbulus::JustEngagedWith(), boss_warbringer_omrogg::JustEngagedWith(), boss_commander_sarannis::JustEngagedWith(), npc_necromancer::npc_necromancerAI::KilledUnit(), boss_warbringer_omrogg::KilledUnit(), boss_rokmora::KilledUnit(), npc_the_lich_king_escape_hor::npc_the_lich_king_escape_horAI::KilledUnit(), npc_grauf::MovementInform(), spell_brewfest_barker_bunny::OnApply(), spell_item_ashbringer::OnDummyEffect(), go_wind_stone::go_wind_stoneAI::OnGossipSelect(), spell_muru_transform_visual_missile_periodic::OnPeriodic(), spell_love_is_in_the_air_romantic_picnic::OnPeriodic(), spell_sjonnir_periodic_summon::OnPeriodic(), spell_summon_gauntlet_mobs_periodic::OnPeriodic(), spell_black_morass_time_rift_periodic::OnPeriodic(), boss_warbringer_omrogg::OnSpellCast(), spell_ichoron_splatter::PeriodicTick(), npc_violet_hold_teleportation_portal_elite::ScheduleTasks(), npc_violet_hold_teleportation_portal::SetData(), npc_cameron::SoundPicker(), boss_king_dred::SpellHit(), boss_thorim::boss_thorimAI::SummonWave(), spell_item_titanium_seal_of_dalaran_catch::TriggerEmote(), boss_guarm::UpdateAI(), boss_chromaggus::UpdateAI(), boss_majordomo::UpdateAI(), boss_apoko::UpdateAI(), npc_madrigosa::UpdateAI(), Scripts::EasternKingdoms::Westfall::npc_westfall_hobo_witness::UpdateAI(), boss_eye_of_cthun::eye_of_cthunAI::UpdateAI(), boss_novos::UpdateAI(), boss_trollgore::UpdateAI(), boss_ick::UpdateAI(), boss_grobbulus::UpdateAI(), boss_vx_001::boss_vx_001AI::UpdateAI(), npc_runic_colossus::npc_runic_colossusAI::UpdateAI(), npc_corruptor_tentacle::npc_corruptor_tentacleAI::UpdateAI(), boss_mekgineer_steamrigger::UpdateAI(), npc_claw::UpdateAI(), npc_millhouse_manastorm::UpdateAI(), npc_warden_mellichar::UpdateAI(), boss_commander_sarannis::UpdateAI(), boss_high_botanist_freywinn::UpdateAI(), boss_laj::UpdateAI(), boss_mechano_lord_capacitus::UpdateAI(), Scripts::Pandaria::TheWanderingIsle::npc_jaomin_ro::UpdateAI(), npc_pet_hunter_snake_trap::UpdateAI(), boss_anetheron::WaypointPathEnded(), boss_rage_winterchill::WaypointPathEnded(), and npc_toxic_sporebat::WaypointPathEnded().