TrinityCore
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
UnitAura Class Reference

#include <SpellAuras.h>

+ Inheritance diagram for UnitAura:

Public Member Functions

void _ApplyForTarget (Unit *target, Unit *caster, AuraApplication *aurApp) override
 
void _UnapplyForTarget (Unit *target, Unit *caster, AuraApplication *aurApp) override
 
void Remove (AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT) override
 
void FillTargetMap (std::unordered_map< Unit *, uint8 > &targets, Unit *caster) override
 
void SetDiminishGroup (DiminishingGroup group)
 
DiminishingGroup GetDiminishGroup () const
 
void AddStaticApplication (Unit *target, uint8 effMask)
 
- Public Member Functions inherited from Aura
 Aura (AuraCreateInfo const &createInfo)
 
void _InitEffects (uint8 effMask, Unit *caster, int32 const *baseAmount)
 
void SaveCasterInfo (Unit *caster)
 
virtual ~Aura ()
 
SpellInfo const * GetSpellInfo () const
 
uint32 GetId () const
 
ObjectGuid GetCastItemGUID () const
 
ObjectGuid GetCasterGUID () const
 
UnitGetCaster () const
 
WorldObjectGetOwner () const
 
UnitGetUnitOwner () const
 
DynamicObjectGetDynobjOwner () const
 
AuraObjectType GetType () const
 
virtual void _ApplyForTarget (Unit *target, Unit *caster, AuraApplication *auraApp)
 
virtual void _UnapplyForTarget (Unit *target, Unit *caster, AuraApplication *auraApp)
 
void _Remove (AuraRemoveMode removeMode)
 
virtual void Remove (AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)=0
 
virtual void FillTargetMap (std::unordered_map< Unit *, uint8 > &targets, Unit *caster)=0
 
void UpdateTargetMap (Unit *caster, bool apply=true)
 
void _RegisterForTargets ()
 
void ApplyForTargets ()
 
void _ApplyEffectForTargets (uint8 effIndex)
 
void UpdateOwner (uint32 diff, WorldObject *owner)
 
void Update (uint32 diff, Unit *caster)
 
time_t GetApplyTime () const
 
int32 GetMaxDuration () const
 
void SetMaxDuration (int32 duration)
 
int32 CalcMaxDuration () const
 
int32 CalcMaxDuration (Unit *caster) const
 
int32 GetDuration () const
 
void SetDuration (int32 duration, bool withMods=false)
 
void RefreshDuration (bool withMods=false)
 
void RefreshTimers (bool resetPeriodicTimer)
 
bool IsExpired () const
 
bool IsPermanent () const
 
uint8 GetCharges () const
 
void SetCharges (uint8 charges)
 
uint8 CalcMaxCharges (Unit *caster) const
 
uint8 CalcMaxCharges () const
 
bool ModCharges (int32 num, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
 
bool DropCharge (AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
 
void ModChargesDelayed (int32 num, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
 
void DropChargeDelayed (uint32 delay, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
 
uint8 GetStackAmount () const
 
void SetStackAmount (uint8 num)
 
bool ModStackAmount (int32 num, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT, bool resetPeriodicTimer=true)
 
bool CanApplyResilience () const
 
void SetCanApplyResilience (bool val)
 
uint8 GetCasterLevel () const
 
float GetCritChance () const
 
void SetCritChance (float val)
 
float GetDonePct () const
 
void SetDonePct (float val)
 
bool HasMoreThanOneEffectForType (AuraType auraType) const
 
bool IsArea () const
 
bool IsPassive () const
 
bool IsDeathPersistent () const
 
bool IsRemovedOnShapeLost (Unit *target) const
 
bool CanBeSaved () const
 
bool IsRemoved () const
 
bool CanBeSentToClient () const
 
bool IsSingleTarget () const
 
bool IsSingleTargetWith (Aura const *aura) const
 
void SetIsSingleTarget (bool val)
 
void UnregisterSingleTarget ()
 
int32 CalcDispelChance (Unit const *auraTarget, bool offensive) const
 
void SetLoadedState (int32 maxduration, int32 duration, int32 charges, uint8 stackamount, uint8 recalculateMask, float critChance, bool applyResilience, int32 *amount)
 
bool CanPeriodicTickCrit (Unit const *caster) const
 
float CalcPeriodicCritChance (Unit const *caster) const
 
bool HasEffect (uint8 effIndex) const
 
bool HasEffectType (AuraType type) const
 
AuraEffectGetEffect (uint8 effIndex) const
 
uint8 GetEffectMask () const
 
void RecalculateAmountOfEffects ()
 
void HandleAllEffects (AuraApplication *aurApp, uint8 mode, bool apply)
 
ApplicationMap const & GetApplicationMap ()
 
void GetApplicationVector (std::vector< AuraApplication * > &applicationVector) const
 
AuraApplication const * GetApplicationOfTarget (ObjectGuid guid) const
 
AuraApplicationGetApplicationOfTarget (ObjectGuid guid)
 
bool IsAppliedOnTarget (ObjectGuid guid) const
 
void SetNeedClientUpdateForTargets () const
 
void HandleAuraSpecificMods (AuraApplication const *aurApp, Unit *caster, bool apply, bool onReapply)
 
bool CanBeAppliedOn (Unit *target)
 
bool CheckAreaTarget (Unit *target)
 
bool CanStackWith (Aura const *existingAura) const
 
bool IsProcOnCooldown (TimePoint now) const
 
void AddProcCooldown (TimePoint cooldownEnd)
 
void ResetProcCooldown ()
 
bool IsUsingCharges () const
 
void SetUsingCharges (bool val)
 
void PrepareProcToTrigger (AuraApplication *aurApp, ProcEventInfo &eventInfo, TimePoint now)
 
uint8 GetProcEffectMask (AuraApplication *aurApp, ProcEventInfo &eventInfo, TimePoint now) const
 
float CalcProcChance (SpellProcEntry const &procEntry, ProcEventInfo &eventInfo) const
 
void TriggerProcOnEvent (uint8 procEffectMask, AuraApplication *aurApp, ProcEventInfo &eventInfo)
 
void LoadScripts ()
 
bool CallScriptCheckAreaTargetHandlers (Unit *target)
 
void CallScriptDispel (DispelInfo *dispelInfo)
 
void CallScriptAfterDispel (DispelInfo *dispelInfo)
 
bool CallScriptEffectApplyHandlers (AuraEffect const *aurEff, AuraApplication const *aurApp, AuraEffectHandleModes mode)
 
bool CallScriptEffectRemoveHandlers (AuraEffect const *aurEff, AuraApplication const *aurApp, AuraEffectHandleModes mode)
 
void CallScriptAfterEffectApplyHandlers (AuraEffect const *aurEff, AuraApplication const *aurApp, AuraEffectHandleModes mode)
 
void CallScriptAfterEffectRemoveHandlers (AuraEffect const *aurEff, AuraApplication const *aurApp, AuraEffectHandleModes mode)
 
bool CallScriptEffectPeriodicHandlers (AuraEffect const *aurEff, AuraApplication const *aurApp)
 
void CallScriptEffectUpdatePeriodicHandlers (AuraEffect *aurEff)
 
void CallScriptEffectCalcAmountHandlers (AuraEffect const *aurEff, int32 &amount, bool &canBeRecalculated)
 
void CallScriptEffectCalcPeriodicHandlers (AuraEffect const *aurEff, bool &isPeriodic, int32 &amplitude)
 
void CallScriptEffectCalcSpellModHandlers (AuraEffect const *aurEff, SpellModifier *&spellMod)
 
void CallScriptEffectAbsorbHandlers (AuraEffect *aurEff, AuraApplication const *aurApp, DamageInfo &dmgInfo, uint32 &absorbAmount, bool &defaultPrevented)
 
void CallScriptEffectAfterAbsorbHandlers (AuraEffect *aurEff, AuraApplication const *aurApp, DamageInfo &dmgInfo, uint32 &absorbAmount)
 
void CallScriptEffectManaShieldHandlers (AuraEffect *aurEff, AuraApplication const *aurApp, DamageInfo &dmgInfo, uint32 &absorbAmount, bool &defaultPrevented)
 
void CallScriptEffectAfterManaShieldHandlers (AuraEffect *aurEff, AuraApplication const *aurApp, DamageInfo &dmgInfo, uint32 &absorbAmount)
 
void CallScriptEffectSplitHandlers (AuraEffect *aurEff, AuraApplication const *aurApp, DamageInfo &dmgInfo, uint32 &splitAmount)
 
bool CallScriptCheckProcHandlers (AuraApplication const *aurApp, ProcEventInfo &eventInfo)
 
bool CallScriptCheckEffectProcHandlers (AuraEffect const *aurEff, AuraApplication const *aurApp, ProcEventInfo &eventInfo)
 
bool CallScriptPrepareProcHandlers (AuraApplication const *aurApp, ProcEventInfo &eventInfo)
 
bool CallScriptProcHandlers (AuraApplication const *aurApp, ProcEventInfo &eventInfo)
 
void CallScriptAfterProcHandlers (AuraApplication const *aurApp, ProcEventInfo &eventInfo)
 
bool CallScriptEffectProcHandlers (AuraEffect const *aurEff, AuraApplication const *aurApp, ProcEventInfo &eventInfo)
 
void CallScriptAfterEffectProcHandlers (AuraEffect const *aurEff, AuraApplication const *aurApp, ProcEventInfo &eventInfo)
 
UnitAuraToUnitAura ()
 
UnitAura const * ToUnitAura () const
 
DynObjAuraToDynObjAura ()
 
DynObjAura const * ToDynObjAura () const
 
template<class Script >
ScriptGetScript (std::string const &scriptName) const
 
virtual std::string GetDebugInfo () const
 
Trinity::unique_weak_ptr< AuraGetWeakPtr () const
 
 Aura (Aura const &)=delete
 
 Aura (Aura &&)=delete
 
Auraoperator= (Aura const &)=delete
 
Auraoperator= (Aura &&)=delete
 

Protected Member Functions

 UnitAura (AuraCreateInfo const &createInfo)
 

Private Attributes

DiminishingGroup m_AuraDRGroup
 
std::unordered_map< ObjectGuid, uint8_staticApplications
 

Friends

AuraAura::Create (AuraCreateInfo &createInfo)
 

Additional Inherited Members

- Public Types inherited from Aura
typedef std::unordered_map< ObjectGuid, AuraApplication * > ApplicationMap
 
- Static Public Member Functions inherited from Aura
static uint8 BuildEffectMaskForOwner (SpellInfo const *spellProto, uint8 availableEffectMask, WorldObject *owner)
 
static AuraTryRefreshStackOrCreate (AuraCreateInfo &createInfo, bool updateEffectMask=true)
 
static AuraTryCreate (AuraCreateInfo &createInfo)
 
static AuraCreate (AuraCreateInfo &createInfo)
 
static int32 CalcMaxDuration (SpellInfo const *spellInfo, WorldObject *caster)
 
- Public Attributes inherited from Aura
std::vector< AuraScript * > m_loadedScripts
 
- Protected Attributes inherited from Aura
SpellInfo const *const m_spellInfo
 
ObjectGuid const m_casterGuid
 
ObjectGuid const m_castItemGuid
 
time_t const m_applyTime
 
WorldObject *const m_owner
 
int32 m_maxDuration
 
int32 m_duration
 
int32 m_timeCla
 
int32 m_updateTargetMapInterval
 
CasterInfo _casterInfo
 
uint8 m_procCharges
 
uint8 m_stackAmount
 
AuraEffectm_effects [MAX_SPELL_EFFECTS]
 
ApplicationMap m_applications
 
bool m_isRemoved:1
 
bool m_isSingleTarget:1
 
bool m_isUsingCharges:1
 
ChargeDropEventm_dropEvent
 
TimePoint m_procCooldown
 

Detailed Description

Definition at line 319 of file SpellAuras.h.

Constructor & Destructor Documentation

◆ UnitAura()

UnitAura::UnitAura ( AuraCreateInfo const &  createInfo)
explicitprotected

Definition at line 2562 of file SpellAuras.cpp.

+ Here is the call graph for this function:

Member Function Documentation

◆ _ApplyForTarget()

void UnitAura::_ApplyForTarget ( Unit target,
Unit caster,
AuraApplication aurApp 
)
overridevirtual

Reimplemented from Aura.

Definition at line 2571 of file SpellAuras.cpp.

+ Here is the call graph for this function:

◆ _UnapplyForTarget()

void UnitAura::_UnapplyForTarget ( Unit target,
Unit caster,
AuraApplication aurApp 
)
overridevirtual

Reimplemented from Aura.

Definition at line 2580 of file SpellAuras.cpp.

+ Here is the call graph for this function:

◆ AddStaticApplication()

void UnitAura::AddStaticApplication ( Unit target,
uint8  effMask 
)

Definition at line 2683 of file SpellAuras.cpp.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FillTargetMap()

void UnitAura::FillTargetMap ( std::unordered_map< Unit *, uint8 > &  targets,
Unit caster 
)
overridevirtual

Implements Aura.

Definition at line 2596 of file SpellAuras.cpp.

+ Here is the call graph for this function:

◆ GetDiminishGroup()

DiminishingGroup UnitAura::GetDiminishGroup ( ) const
inline

Definition at line 334 of file SpellAuras.h.

+ Here is the caller graph for this function:

◆ Remove()

void UnitAura::Remove ( AuraRemoveMode  removeMode = AURA_REMOVE_BY_DEFAULT)
overridevirtual

Implements Aura.

Definition at line 2589 of file SpellAuras.cpp.

+ Here is the call graph for this function:

◆ SetDiminishGroup()

void UnitAura::SetDiminishGroup ( DiminishingGroup  group)
inline

Definition at line 333 of file SpellAuras.h.

+ Here is the caller graph for this function:

Friends And Related Function Documentation

◆ Aura::Create

Aura * Aura::Create ( AuraCreateInfo createInfo)
friend

Member Data Documentation

◆ _staticApplications

std::unordered_map<ObjectGuid, uint8> UnitAura::_staticApplications
private

Definition at line 340 of file SpellAuras.h.

◆ m_AuraDRGroup

DiminishingGroup UnitAura::m_AuraDRGroup
private

Definition at line 339 of file SpellAuras.h.


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