![]() |
TrinityCore
|
#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 |
Definition at line 95 of file PlayerAI.h.
|
inline |
Definition at line 98 of file PlayerAI.h.
|
overrideprotectedvirtual |
Reimplemented from UnitAI.
Definition at line 625 of file PlayerAI.cpp.
References UnitAI::CanAIAttack(), Unit::GetCharmer(), Unit::HasBreakableByDamageCrowdControlAura(), WorldObject::IsValidAttackTarget(), and PlayerAI::me.
Referenced by BlackheartCharmedPlayerAI::CanAIAttack(), and UpdateAI().
|
overridevirtual |
Reimplemented from UnitAI.
Definition at line 1261 of file PlayerAI.cpp.
References Unit::AttackStop(), Unit::CastStop(), MotionMaster::Clear(), Unit::GetMotionMaster(), Position::GetPosition(), Unit::IsCharmed(), PlayerAI::me, MOTION_PRIORITY_NORMAL, MotionMaster::MovePoint(), UnitAI::OnCharmed(), and MotionMaster::Size().
|
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().
|
overrideprotectedvirtual |
Reimplemented from PlayerAI.
Definition at line 635 of file PlayerAI.cpp.
References Unit::GetCharmer(), Unit::GetVictim(), PlayerAI::me, and Random.
Referenced by UpdateAI().
|
overridevirtual |
Implements UnitAI.
Definition at line 1155 of file PlayerAI.cpp.
References _castCheckTimer, _chaseCloser, _forceFacing, _isFollowing, UnitAI::AttackStart(), UnitAI::AttackStartCaster(), Unit::AttackStop(), CanAIAttack(), CASTER_CHASE_DISTANCE, Unit::CastStop(), CHASE_MOTION_TYPE, PlayerAI::DoAutoAttackIfReady(), PlayerAI::DoCastAtTarget(), Position::GetAbsoluteAngle(), Unit::GetAuraEffectsByType(), PlayerAI::GetCharmer(), Object::GetGUID(), Unit::GetMotionMaster(), Position::GetOrientation(), Unit::GetVictim(), Unit::HasUnitState(), Creature::IsEngaged(), Creature::IsInEvadeMode(), PlayerAI::IsRangedAttacker(), Unit::IsStopped(), WorldObject::IsWithinLOSInMap(), Unit::KillSelf(), PlayerAI::me, MotionMaster::MoveFollow(), PET_FOLLOW_ANGLE, PET_FOLLOW_DIST, MotionMaster::Remove(), SelectAppropriateCastForSpec(), SelectAttackTarget(), Unit::SetFacingTo(), SPELL_AURA_MOD_CHARM, UNIT_STATE_CANNOT_TURN, UNIT_STATE_CASTING, and UNIT_STATE_CHASE.
|
private |
Definition at line 108 of file PlayerAI.h.
Referenced by UpdateAI().
|
private |
Definition at line 109 of file PlayerAI.h.
Referenced by UpdateAI().
|
private |
Definition at line 110 of file PlayerAI.h.
Referenced by UpdateAI().
|
private |
Definition at line 111 of file PlayerAI.h.
Referenced by UpdateAI().