![]() |
TrinityCore
|
#include <PlayerAI.h>
Inheritance diagram for PlayerAI:Classes | |
| struct | TargetedSpell |
Public Member Functions | |
| PlayerAI (Player *player) | |
| Creature * | GetCharmer () const |
| ChrSpecialization | 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 bool | CanAIAttack (Unit const *) const |
| virtual void | AttackStart (Unit *victim) |
| virtual void | UpdateAI (uint32 diff)=0 |
| virtual void | InitializeAI () |
| virtual void | Reset () |
| virtual void | OnCharmed (bool isNew) |
| virtual void | DoAction (int32 param) |
| virtual uint32 | GetData (uint32 id) const |
| virtual void | SetData (uint32 id, uint32 value) |
| virtual void | SetGUID (ObjectGuid const &guid, int32 id) |
| virtual ObjectGuid | GetGUID (int32 id) 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={}) |
| bool | DoSpellAttackIfReady (uint32 spellId) |
| virtual void | OnGameEvent (bool, uint16) |
| virtual std::string | GetDebugInfo () const |
Static Public Member Functions | |
| static bool | IsPlayerHealer (Player const *who) |
| static bool | IsPlayerRangedAttacker (Player const *who) |
Static Public Member Functions inherited from UnitAI | |
| static void | FillAISpellInfo () |
Protected Types | |
| enum | SpellTarget { TARGET_NONE , TARGET_VICTIM , TARGET_CHARMER , TARGET_SELF } |
| typedef std::pair< TargetedSpell, uint32 > | PossibleSpell |
| typedef std::vector< PossibleSpell > | PossibleSpellVector |
Protected Member Functions | |
| 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) |
| virtual Unit * | SelectAttackTarget () const |
| void | DoRangedAttackIfReady () |
| void | DoAutoAttackIfReady () |
| void | CancelAllShapeshifts () |
Protected Attributes | |
| Player *const | me |
Protected Attributes inherited from UnitAI | |
| Unit *const | me |
Private Attributes | |
| ChrSpecialization const | _selfSpec |
| bool const | _isSelfHealer |
| bool | _isSelfRangedAttacker |
Additional Inherited Members | |
Static Public Attributes inherited from UnitAI | |
| static std::unordered_map< std::pair< uint32, Difficulty >, AISpellInfoType > | AISpellInfo |
Definition at line 27 of file PlayerAI.h.
|
protected |
Definition at line 48 of file PlayerAI.h.
|
protected |
Definition at line 49 of file PlayerAI.h.
|
protected |
| Enumerator | |
|---|---|
| TARGET_NONE | |
| TARGET_VICTIM | |
| TARGET_CHARMER | |
| TARGET_SELF | |
Definition at line 54 of file PlayerAI.h.
|
explicit |
Definition at line 395 of file PlayerAI.cpp.
|
protected |
Definition at line 596 of file PlayerAI.cpp.
References AURA_REMOVE_BY_CANCEL, Unit::GetAuraEffectsByType(), Aura::GetSpellInfo(), SpellInfo::HasAttribute(), SpellInfo::IsPassive(), SpellInfo::IsPositive(), me, Unit::RemoveOwnedAura(), SPELL_ATTR0_NO_AURA_CANCEL, and SPELL_AURA_MOD_SHAPESHIFT.
|
protected |
Definition at line 590 of file PlayerAI.cpp.
References DoRangedAttackIfReady(), and IsRangedAttacker().
Referenced by SimpleCharmedPlayerAI::UpdateAI().
|
protected |
Definition at line 529 of file PlayerAI.cpp.
References SpellCastTargets::SetUnitTarget().
Referenced by SimpleCharmedPlayerAI::UpdateAI().
|
protected |
Definition at line 536 of file PlayerAI.cpp.
References Spell::CheckPetCast(), EQUIPMENT_SLOT_RANGED, Map::GetDifficultyID(), Player::GetItemByPos(), WorldObject::GetMap(), Item::GetTemplate(), Unit::GetVictim(), Unit::HasUnitState(), INVENTORY_SLOT_BAG_0, Unit::isAttackReady(), ITEM_SUBCLASS_WEAPON_BOW, ITEM_SUBCLASS_WEAPON_CROSSBOW, ITEM_SUBCLASS_WEAPON_GUN, ITEM_SUBCLASS_WEAPON_THROWN, ITEM_SUBCLASS_WEAPON_WAND, me, Spell::prepare(), RANGED_ATTACK, Unit::resetAttackTimer(), SpellCastTargets::SetUnitTarget(), SPELL_CAST_OK, SPELL_SHOOT, SPELL_SHOOT_WAND, SPELL_THROW, sSpellMgr, TRIGGERED_CAST_DIRECTLY, and UNIT_STATE_CASTING.
Referenced by DoAutoAttackIfReady().
| Creature * PlayerAI::GetCharmer | ( | ) | const |
Definition at line 402 of file PlayerAI.cpp.
References Unit::GetCharmerGUID(), ObjectAccessor::GetCreature(), ObjectGuid::IsCreature(), and me.
Referenced by KelThuzadCharmedPlayerAI::SelectAttackTarget(), and SimpleCharmedPlayerAI::UpdateAI().
| ChrSpecialization PlayerAI::GetSpec | ( | Player const * | who = nullptr | ) | const |
Definition at line 409 of file PlayerAI.cpp.
References _selfSpec, Player::GetPrimarySpecialization(), and me.
|
inline |
Definition at line 37 of file PlayerAI.h.
|
static |
Definition at line 414 of file PlayerAI.cpp.
References Player::GetPrimarySpecializationEntry(), ChrSpecializationEntry::GetRole(), and Healer.
Referenced by KelThuzadCharmedPlayerAI::CharmedPlayerTargetSelectPred::operator()().
|
static |
Definition at line 423 of file PlayerAI.cpp.
References ChrSpecializationEntry::GetFlags(), Player::GetPrimarySpecializationEntry(), and Ranged.
|
inline |
Definition at line 39 of file PlayerAI.h.
Referenced by DoAutoAttackIfReady(), and SimpleCharmedPlayerAI::UpdateAI().
|
protectedvirtual |
Reimplemented in SimpleCharmedPlayerAI, and KelThuzadCharmedPlayerAI.
Definition at line 619 of file PlayerAI.cpp.
References Unit::GetCharmer(), Unit::GetVictim(), and me.
|
protected |
Definition at line 497 of file PlayerAI.cpp.
References urand().
Referenced by SimpleCharmedPlayerAI::SelectAppropriateCastForSpec().
|
inlineprotected |
Definition at line 52 of file PlayerAI.h.
|
inlineprotected |
Definition at line 69 of file PlayerAI.h.
|
protected |
Definition at line 472 of file PlayerAI.cpp.
References Unit::GetCharmer(), Unit::GetVictim(), me, TARGET_CHARMER, TARGET_NONE, TARGET_SELF, TARGET_VICTIM, and VerifySpellCast().
|
protected |
Definition at line 432 of file PlayerAI.cpp.
References Spell::CanAutoCast(), Map::GetDifficultyID(), WorldObject::GetMap(), Unit::GetSpellHistory(), SpellHistory::HasGlobalCooldown(), Player::HasSpell(), me, sSpellMgr, and TRIGGERED_NONE.
Referenced by VerifySpellCast().
|
private |
Definition at line 90 of file PlayerAI.h.
|
private |
Definition at line 91 of file PlayerAI.h.
|
private |
Definition at line 89 of file PlayerAI.h.
Referenced by GetSpec().
|
protected |
Definition at line 51 of file PlayerAI.h.
Referenced by SimpleCharmedPlayerAI::CanAIAttack(), CancelAllShapeshifts(), player_overlord_brandAI::DamageDealt(), DoRangedAttackIfReady(), GetCharmer(), GetSpec(), player_overlord_brandAI::HealDone(), SimpleCharmedPlayerAI::OnCharmed(), BlackheartCharmedPlayerAI::OnCharmed(), SelectAttackTarget(), SimpleCharmedPlayerAI::SelectAttackTarget(), SimpleCharmedPlayerAI::UpdateAI(), VerifySpellCast(), and VerifySpellCast().