TrinityCore
Loading...
Searching...
No Matches
SimpleCharmedPlayerAI Class Reference

#include <PlayerAI.h>

+ Inheritance diagram for SimpleCharmedPlayerAI:

Public Member Functions

 SimpleCharmedPlayerAI (Player *player)
 
void UpdateAI (uint32 diff) override
 
void OnCharmed (bool isNew) override
 
- Public Member Functions inherited from PlayerAI
 PlayerAI (Player *player)
 
Creature * GetCharmer () const
 
uint8 GetSpec (Player const *who=nullptr) const
 
bool IsHealer (Player const *who=nullptr) const
 
bool IsRangedAttacker (Player const *who=nullptr) const
 
- Public Member Functions inherited from UnitAI
 UnitAI (Unit *unit)
 
virtual ~UnitAI ()
 
virtual void AttackStart (Unit *)
 
virtual void InitializeAI ()
 
virtual void Reset ()
 
virtual void DoAction (int32)
 
virtual uint32 GetData (uint32) const
 
virtual void SetData (uint32, uint32)
 
virtual void SetGUID (ObjectGuid const &, int32=0)
 
virtual ObjectGuid GetGUID (int32=0) const
 
Unit * SelectTarget (SelectTargetMethod targetType, uint32 offset=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0)
 
template<class PREDICATE >
Unit * SelectTarget (SelectTargetMethod targetType, uint32 offset, PREDICATE const &predicate)
 
void SelectTargetList (std::list< Unit * > &targetList, uint32 num, SelectTargetMethod targetType, uint32 offset=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0)
 
template<class PREDICATE >
void SelectTargetList (std::list< Unit * > &targetList, uint32 num, SelectTargetMethod targetType, uint32 offset, PREDICATE const &predicate)
 
virtual void JustEnteredCombat (Unit *)
 
virtual void JustExitedCombat ()
 
virtual void OnDespawn ()
 
virtual void DamageDealt (Unit *, uint32 &, DamageEffectType)
 
virtual void DamageTaken (Unit *, uint32 &, DamageEffectType, SpellInfo const *)
 
virtual void HealReceived (Unit *, uint32 &)
 
virtual void HealDone (Unit *, uint32 &)
 
virtual void SpellInterrupted (uint32, uint32)
 
void AttackStartCaster (Unit *victim, float dist)
 
SpellCastResult DoCast (uint32 spellId)
 
SpellCastResult DoCast (Unit *victim, uint32 spellId, CastSpellExtraArgs const &args={})
 
SpellCastResult DoCastSelf (uint32 spellId, CastSpellExtraArgs const &args={})
 
SpellCastResult DoCastVictim (uint32 spellId, CastSpellExtraArgs const &args={})
 
SpellCastResult DoCastAOE (uint32 spellId, CastSpellExtraArgs const &args={})
 
float DoGetSpellMaxRange (uint32 spellId, bool positive=false)
 
virtual bool ShouldSparWith (Unit const *) const
 
void DoMeleeAttackIfReady ()
 
bool DoSpellAttackIfReady (uint32 spellId)
 
virtual void OnGameEvent (bool, uint16)
 
virtual std::string GetDebugInfo () const
 

Protected Member Functions

bool CanAIAttack (Unit const *who) const override
 
Unit * SelectAttackTarget () const override
 
- Protected Member Functions inherited from PlayerAI
void SetIsRangedAttacker (bool state)
 
TargetedSpell VerifySpellCast (uint32 spellId, Unit *target)
 
TargetedSpell VerifySpellCast (uint32 spellId, SpellTarget target)
 
template<typename T >
void VerifyAndPushSpellCast (PossibleSpellVector &spells, uint32 spellId, T target, uint32 weight)
 
TargetedSpell SelectSpellCast (PossibleSpellVector &spells)
 
void DoCastAtTarget (TargetedSpell spell)
 
void DoRangedAttackIfReady ()
 
void DoAutoAttackIfReady ()
 
void CancelAllShapeshifts ()
 

Private Member Functions

TargetedSpell SelectAppropriateCastForSpec ()
 

Private Attributes

uint32 _castCheckTimer
 
bool _chaseCloser
 
bool _forceFacing
 
bool _isFollowing
 

Additional Inherited Members

- Static Public Member Functions inherited from UnitAI
static void FillAISpellInfo ()
 
- Static Public Attributes inherited from UnitAI
static AISpellInfoType * AISpellInfo
 
- Protected Types inherited from PlayerAI
enum  SpellTarget { TARGET_NONE , TARGET_VICTIM , TARGET_CHARMER , TARGET_SELF }
 
typedef std::pair< TargetedSpell, uint32 > PossibleSpell
 
typedef std::vector< PossibleSpell > PossibleSpellVector
 
- Protected Attributes inherited from PlayerAI
Player *const me
 
- Protected Attributes inherited from UnitAI
Unit *const me
 

Detailed Description

Definition at line 95 of file PlayerAI.h.

Constructor & Destructor Documentation

◆ SimpleCharmedPlayerAI()

SimpleCharmedPlayerAI::SimpleCharmedPlayerAI ( Player *  player)
inline

Definition at line 98 of file PlayerAI.h.

Member Function Documentation

◆ CanAIAttack()

bool SimpleCharmedPlayerAI::CanAIAttack ( Unit const *  who) const
overrideprotectedvirtual

◆ OnCharmed()

void SimpleCharmedPlayerAI::OnCharmed ( bool  isNew)
overridevirtual

◆ SelectAppropriateCastForSpec()

PlayerAI::TargetedSpell SimpleCharmedPlayerAI::SelectAppropriateCastForSpec ( )
private

Definition at line 646 of file PlayerAI.cpp.

References AURA_ARCANE_BLAST, AURA_BLOOD_PLAGUE, AURA_DECIMATION, AURA_ECLIPSE_LUNAR, AURA_FROST_FEVER, AURA_MAELSTROM_WEAPON, AURA_MOLTEN_CORE, AURA_STATE_FROZEN, PlayerAI::CancelAllShapeshifts(), CLASS_DEATH_KNIGHT, CLASS_DRUID, CLASS_HUNTER, CLASS_MAGE, CLASS_PALADIN, CLASS_PRIEST, CLASS_ROGUE, CLASS_SHAMAN, CLASS_WARLOCK, CLASS_WARRIOR, Unit::GetAura(), Unit::GetAuraApplicationOfRankedSpell(), PlayerAI::GetCharmer(), Unit::GetCharmer(), Unit::GetClass(), Unit::GetComboPoints(), UnitAI::GetGUID(), Object::GetGUID(), Unit::GetPowerType(), PlayerAI::GetSpec(), Unit::GetVictim(), Unit::HasAura(), Unit::HasAuraState(), Unit::HasUnitState(), Unit::IsWithinMeleeRange(), PlayerAI::me, POWER_MANA, PlayerAI::SelectSpellCast(), SPEC_DEATH_KNIGHT_BLOOD, SPEC_DEATH_KNIGHT_FROST, SPEC_DEATH_KNIGHT_UNHOLY, SPEC_DRUID_BALANCE, SPEC_DRUID_FERAL, SPEC_DRUID_RESTORATION, SPEC_HUNTER_BEAST_MASTERY, SPEC_HUNTER_MARKSMANSHIP, SPEC_HUNTER_SURVIVAL, SPEC_MAGE_ARCANE, SPEC_MAGE_FIRE, SPEC_MAGE_FROST, SPEC_PALADIN_HOLY, SPEC_PALADIN_PROTECTION, SPEC_PALADIN_RETRIBUTION, SPEC_PRIEST_DISCIPLINE, SPEC_PRIEST_HOLY, SPEC_PRIEST_SHADOW, SPEC_ROGUE_ASSASSINATION, SPEC_ROGUE_COMBAT, SPEC_ROGUE_SUBLETY, SPEC_SHAMAN_ELEMENTAL, SPEC_SHAMAN_ENHANCEMENT, SPEC_SHAMAN_RESTORATION, SPEC_WARLOCK_AFFLICTION, SPEC_WARLOCK_DEMONOLOGY, SPEC_WARLOCK_DESTRUCTION, SPEC_WARRIOR_ARMS, SPEC_WARRIOR_FURY, SPEC_WARRIOR_PROTECTION, SPELL_ADRENALINE_RUSH, SPELL_AIMED_SHOT, SPELL_ANTI_MAGIC_SHELL, SPELL_ANTI_MAGIC_ZONE, SPELL_ARCANE_BARRAGE, SPELL_ARCANE_BLAST, SPELL_ARCANE_MISSILES, SPELL_ARCANE_POWER, SPELL_ARCANE_SHOT, SPELL_AURA_MASTERY, SPELL_AVENGING_WRATH, SPELL_BARKSKIN, SPELL_BERSERK, SPELL_BLACK_ARROW, SPELL_BLADE_FLURRY, SPELL_BLADESTORM, SPELL_BLAST_WAVE, SPELL_BLESSING_OF_MIGHT, SPELL_BLIND, SPELL_BLOOD_STRIKE, SPELL_BLOODLUST, SPELL_BLOODRAGE, SPELL_BLOODTHIRST, SPELL_CAT_FORM, SPELL_CHAIN_LIGHTNING, SPELL_CHAOS_BOLT, SPELL_CHARGE, SPELL_CHIMERA_SHOT, SPELL_CLAW, SPELL_CLOAK_OF_SHADOWS, SPELL_COLD_BLOOD, SPELL_COLD_SNAP, SPELL_COMBUSTION, SPELL_CONCUSSION_BLOW, SPELL_CONFLAGRATE, SPELL_CONSECRATION, SPELL_CORRUPTION, SPELL_COUNTERSPELL, SPELL_CRUSADER_STRIKE, SPELL_CURSE_OF_AGONY, SPELL_DAMPEN_MAGIC, SPELL_DASH, SPELL_DEATH_AND_DECAY, SPELL_DEATH_COIL_DK, SPELL_DEATH_COIL_W, SPELL_DEATH_GRIP, SPELL_DEATH_STRIKE, SPELL_DEATH_WISH, SPELL_DEATHCHILL, SPELL_DEEP_FREEZE, SPELL_DEMO_SHOUT, SPELL_DEMON_CHARGE, SPELL_DESPERATE_PRAYER, SPELL_DETERRENCE, SPELL_DEVASTATE, SPELL_DEVOURING_PLAGUE, SPELL_DISARM, SPELL_DISMANTLE, SPELL_DISPERSION, SPELL_DIVINE_FAVOR, SPELL_DIVINE_HYMN, SPELL_DIVINE_ILLUMINATION, SPELL_DIVINE_PROTECTION, SPELL_DIVINE_SACRIFICE, SPELL_DIVINE_SHIELD, SPELL_DIVINE_SPIRIT, SPELL_DIVINE_STORM, SPELL_DRAGONS_BREATH, SPELL_DRAIN_SOUL, SPELL_EARTH_SHIELD, SPELL_EARTH_SHOCK, SPELL_ELEMENTAL_MASTERY, SPELL_EMPOWER_RUNE_WEAP, SPELL_ENRAGED_REGEN, SPELL_ENVENOM, SPELL_EVASION, SPELL_EVISCERATE, SPELL_EVOCATION, SPELL_EXECUTE, SPELL_EXPLOSIVE_SHOT, SPELL_EXPLOSIVE_TRAP, SPELL_FEAR, SPELL_FEAR_WARD, SPELL_FERAL_CHARGE_CAT, SPELL_FIRE_BLAST, SPELL_FIREBALL, SPELL_FLAME_SHOCK, SPELL_FLASH_HEAL, SPELL_FLASH_OF_LIGHT, SPELL_FREEZING_ARROW, SPELL_FROST_NOVA, SPELL_FROST_STRIKE, SPELL_FROSTBOLT, SPELL_GROUNDING_TOTEM, SPELL_GUARDIAN_SPIRIT, SPELL_HAMMER_OF_JUSTICE, SPELL_HAMMER_OF_RIGHTEOUS, SPELL_HAMMER_OF_WRATH, SPELL_HAND_OF_FREEDOM, SPELL_HAND_OF_PROTECTION, SPELL_HAND_OF_SACRIFICE, SPELL_HAUNT, SPELL_HEALING_TOUCH, SPELL_HEALING_WAVE, SPELL_HEART_STRIKE, SPELL_HEMORRHAGE, SPELL_HEROIC_FURY, SPELL_HEROISM, SPELL_HOLY_LIGHT, SPELL_HOLY_SHIELD, SPELL_HOLY_SHOCK, SPELL_HOWL_OF_TERROR, SPELL_HOWLING_BLAST, SPELL_HYMN_OF_HOPE, SPELL_HYSTERIA, SPELL_ICE_BLOCK, SPELL_ICE_LANCE, SPELL_ICEBORN_FORTITUDE, SPELL_ICY_TOUCH, SPELL_ICY_VEINS, SPELL_IMMOLATE, SPELL_IMMOLATION_AURA, SPELL_INCINERATE, SPELL_INNER_FOCUS, SPELL_INNERVATE, SPELL_INSECT_SWARM, SPELL_INTERCEPT, SPELL_INTIMIDATING_SHOUT, SPELL_JUDGEMENT, SPELL_KICK, SPELL_KILL_SHOT, SPELL_KILLING_SPREE, SPELL_LAST_STAND, SPELL_LAVA_BURST, SPELL_LAVA_LASH, SPELL_LAY_ON_HANDS, SPELL_LESSER_HEAL_WAVE, SPELL_LIFEBLOOM, SPELL_LIGHTNING_BOLT, SPELL_LIVING_BOMB, SPELL_MAIM, SPELL_MANA_SHIELD, SPELL_MANA_TIDE_TOTEM, SPELL_MANGLE_CAT, SPELL_MARK_OF_BLOOD, SPELL_METAMORPHOSIS, SPELL_MIND_BLAST, SPELL_MIND_FLAY, SPELL_MIND_FREEZE, SPELL_MIRROR_IMAGE, SPELL_MOONFIRE, SPELL_MOONKIN_FORM, SPELL_MORTAL_STRIKE, SPELL_MULTI_SHOT, SPELL_MUTILATE, SPELL_NATURE_SWIFTNESS, SPELL_NOURISH, SPELL_OBLITERATE, SPELL_PAIN_SUPPRESSION, SPELL_PENANCE, SPELL_PESTILENCE, SPELL_PIERCING_HOWL, SPELL_PLAGUE_STRIKE, SPELL_POWER_INFUSION, SPELL_POWER_WORD_FORT, SPELL_POWER_WORD_SHIELD, SPELL_PREPARATION, SPELL_PRESENCE_OF_MIND, SPELL_PSYCHIC_SCREAM, SPELL_PUMMEL, SPELL_RAKE, SPELL_RAPID_FIRE, SPELL_READINESS, SPELL_RECKLESSNESS, SPELL_REGROWTH, SPELL_REJUVENATION, SPELL_REND, SPELL_RENEW, SPELL_RETALIATION, SPELL_RIGHTEOUS_FURY, SPELL_RIP, SPELL_RUNE_TAP, SPELL_SAVAGE_ROAR, SPELL_SCOURGE_STRIKE, SPELL_SEED_OF_CORRUPTION, SPELL_SHA_NATURE_SWIFT, SPELL_SHADOW_BOLT, SPELL_SHADOW_DANCE, SPELL_SHADOW_PROTECTION, SPELL_SHADOW_WORD_DEATH, SPELL_SHADOW_WORD_PAIN, SPELL_SHADOWBURN, SPELL_SHADOWFORM, SPELL_SHADOWFURY, SPELL_SHADOWSTEP, SPELL_SHAMANISTIC_RAGE, SPELL_SHATTERING_THROW, SPELL_SHIELD_BASH, SPELL_SHIELD_BLOCK, SPELL_SHIELD_OF_RIGHTEOUS, SPELL_SHIELD_SLAM, SPELL_SHIELD_WALL, SPELL_SHOCKWAVE, SPELL_SILENCING_SHOT, SPELL_SINISTER_STRIKE, SPELL_SOUL_FIRE, SPELL_SPELL_REFLECTION, SPELL_SPELLSTEAL, SPELL_STARFALL, SPELL_STARFIRE, SPELL_STEADY_SHOT, SPELL_STORMSTRIKE, SPELL_STRANGULATE, SPELL_SUMMON_GARGOYLE, SPELL_SURVIVAL_INSTINCTS, SPELL_SWEEPING_STRIKES, SPELL_SWIFTMEND, SPELL_THUNDER_CLAP, SPELL_THUNDERSTORM, SPELL_TIDAL_FORCE, SPELL_TIGER_FURY, SPELL_TRANQUILITY, SPELL_TREE_OF_LIFE, SPELL_TYPHOON, SPELL_UNBREAKABLE_ARMOR, SPELL_UNSTABLE_AFFLICTION, SPELL_VAMPIRIC_BLOOD, SPELL_VAMPIRIC_TOUCH, SPELL_VANISH, SPELL_VIPER_STING, SPELL_WILD_GROWTH, SPELL_WRATH, PlayerAI::TARGET_CHARMER, PlayerAI::TARGET_NONE, PlayerAI::TARGET_SELF, PlayerAI::TARGET_VICTIM, UNIT_STATE_CASTING, and PlayerAI::VerifyAndPushSpellCast().

Referenced by UpdateAI().

◆ SelectAttackTarget()

Unit * SimpleCharmedPlayerAI::SelectAttackTarget ( ) const
overrideprotectedvirtual

Reimplemented from PlayerAI.

Definition at line 635 of file PlayerAI.cpp.

References Unit::GetCharmer(), Unit::GetVictim(), PlayerAI::me, and Random.

Referenced by UpdateAI().

◆ UpdateAI()

Member Data Documentation

◆ _castCheckTimer

uint32 SimpleCharmedPlayerAI::_castCheckTimer
private

Definition at line 108 of file PlayerAI.h.

Referenced by UpdateAI().

◆ _chaseCloser

bool SimpleCharmedPlayerAI::_chaseCloser
private

Definition at line 109 of file PlayerAI.h.

Referenced by UpdateAI().

◆ _forceFacing

bool SimpleCharmedPlayerAI::_forceFacing
private

Definition at line 110 of file PlayerAI.h.

Referenced by UpdateAI().

◆ _isFollowing

bool SimpleCharmedPlayerAI::_isFollowing
private

Definition at line 111 of file PlayerAI.h.

Referenced by UpdateAI().


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