![]() |
TrinityCore
|
#include "SpellInfo.h"#include "Battleground.h"#include "Containers.h"#include "Corpse.h"#include "DB2Stores.h"#include "FlatSet.h"#include "GameTables.h"#include "InstanceScript.h"#include "Item.h"#include "ItemTemplate.h"#include "Log.h"#include "LootMgr.h"#include "Map.h"#include "ObjectAccessor.h"#include "Pet.h"#include "Player.h"#include "Random.h"#include "Spell.h"#include "SpellAuraEffects.h"#include "SpellMgr.h"#include "TraitMgr.h"#include "Vehicle.h"#include <boost/container/small_vector.hpp>#include <G3D/g3dmath.h>#include <bit>
Include dependency graph for SpellInfo.cpp:Go to the source code of this file.
Classes | |
| struct | SpellEffectInfo::ImmunityInfo |
Functions | |
| uint32 | GetTargetFlagMask (SpellTargetObjectTypes objType) |
| float | CalcPPMHasteMod (SpellProcsPerMinuteModEntry const *mod, Unit *caster) |
| float | CalcPPMCritMod (SpellProcsPerMinuteModEntry const *mod, Unit *caster) |
| float | CalcPPMItemLevelMod (SpellProcsPerMinuteModEntry const *mod, int32 itemLevel) |
| bool | _isPositiveTarget (SpellEffectInfo const &effect) |
| bool | _isPositiveEffectImpl (SpellInfo const *spellInfo, SpellEffectInfo const &effect, std::unordered_set< std::pair< SpellInfo const *, SpellEffIndex > > &visited) |
| bool _isPositiveEffectImpl | ( | SpellInfo const * | spellInfo, |
| SpellEffectInfo const & | effect, | ||
| std::unordered_set< std::pair< SpellInfo const *, SpellEffIndex > > & | visited | ||
| ) |
Definition at line 4623 of file SpellInfo.cpp.
References _isPositiveEffectImpl(), _isPositiveTarget(), Amplitude, SpellEffectInfo::ApplyAuraName, SpellEffectInfo::CalcValue(), ChainAmplitude, ChainTargets, ChangeCastTime, Cooldown, CritChance, SpellInfo::Difficulty, DISPEL_ENRAGE, DISPEL_INVISIBILITY, DISPEL_STEALTH, Duration, SpellEffectInfo::Effect, SpellEffectInfo::EffectAttributes, SpellEffectInfo::EffectIndex, SpellInfo::GetEffects(), SpellImplicitTargetInfo::GetTarget(), SpellInfo::HasAttribute(), EnumFlag< T >::HasFlag(), Hate, HealingAndDamage, SpellInfo::Id, SpellEffectInfo::IsAura(), SpellEffectInfo::IsEffect(), IsHarmful, SpellInfo::IsPassive(), SpellInfo::IsPositive(), SpellInfo::IsPositiveEffect(), SpellInfo::Mechanic, MECHANIC_BANDAGE, MECHANIC_IMMUNE_SHIELD, MECHANIC_INVULNERABILITY, MECHANIC_MOUNT, MECHANIC_SHIELD, SpellEffectInfo::MiscValue, Period, Points, PointsIndex0, PointsIndex1, PointsIndex2, PointsIndex3, PointsIndex4, PowerCost0, PowerCost1, PowerCost2, PowerCostOnMiss, SpellEffectInfo::RealPointsPerLevel, SPELL_ATTR0_AURA_IS_DEBUFF, SPELL_ATTR1_AURA_UNIQUE, SPELL_ATTR4_AURA_IS_BUFF, SPELL_AURA_ADD_FLAT_MODIFIER, SPELL_AURA_ADD_FLAT_MODIFIER_BY_SPELL_LABEL, SPELL_AURA_ADD_PCT_MODIFIER, SPELL_AURA_ADD_PCT_MODIFIER_BY_SPELL_LABEL, SPELL_AURA_ADD_TARGET_TRIGGER, SPELL_AURA_AOE_CHARM, SPELL_AURA_CHANNEL_DEATH_ITEM, SPELL_AURA_DAMAGE_SHIELD, SPELL_AURA_DUMMY, SPELL_AURA_EFFECT_IMMUNITY, SPELL_AURA_EMPATHY, SPELL_AURA_GHOST, SPELL_AURA_MECHANIC_IMMUNITY, SPELL_AURA_MELEE_ATTACK_POWER_ATTACKER_BONUS, SPELL_AURA_MOD_ATTACK_POWER, SPELL_AURA_MOD_ATTACK_POWER_PCT, SPELL_AURA_MOD_ATTACKER_MELEE_CRIT_CHANCE, SPELL_AURA_MOD_ATTACKER_MELEE_HIT_CHANCE, SPELL_AURA_MOD_ATTACKER_RANGED_HIT_CHANCE, SPELL_AURA_MOD_ATTACKER_SPELL_AND_WEAPON_CRIT_CHANCE, SPELL_AURA_MOD_ATTACKER_SPELL_HIT_CHANCE, SPELL_AURA_MOD_ATTACKSPEED, SPELL_AURA_MOD_CASTING_SLOW_NO_STACK, SPELL_AURA_MOD_CASTING_SPEED, SPELL_AURA_MOD_CHARGE_RECOVERY_BY_TYPE_MASK, SPELL_AURA_MOD_CHARM, SPELL_AURA_MOD_CONFUSE, SPELL_AURA_MOD_COOLDOWN, SPELL_AURA_MOD_CRIT_PCT, SPELL_AURA_MOD_DAMAGE_DONE, SPELL_AURA_MOD_DAMAGE_DONE_CREATURE, SPELL_AURA_MOD_DAMAGE_PERCENT_DONE, SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, SPELL_AURA_MOD_DAMAGE_TAKEN, SPELL_AURA_MOD_DECREASE_SPEED, SPELL_AURA_MOD_DETAUNT, SPELL_AURA_MOD_DETECT_RANGE, SPELL_AURA_MOD_DISARM, SPELL_AURA_MOD_DISARM_OFFHAND, SPELL_AURA_MOD_DISARM_RANGED, SPELL_AURA_MOD_DODGE_PERCENT, SPELL_AURA_MOD_FEAR, SPELL_AURA_MOD_HEALING, SPELL_AURA_MOD_HEALING_DONE, SPELL_AURA_MOD_HEALING_DONE_PERCENT, SPELL_AURA_MOD_HEALING_PCT, SPELL_AURA_MOD_HEALTH_REGEN_PERCENT, SPELL_AURA_MOD_HIT_CHANCE, SPELL_AURA_MOD_INCREASE_HEALTH, SPELL_AURA_MOD_INCREASE_HEALTH_PERCENT, SPELL_AURA_MOD_INCREASE_SPEED, SPELL_AURA_MOD_INCREASE_SWIM_SPEED, SPELL_AURA_MOD_LANGUAGE, SPELL_AURA_MOD_MECHANIC_DAMAGE_TAKEN_PERCENT, SPELL_AURA_MOD_MELEE_DAMAGE_TAKEN, SPELL_AURA_MOD_MELEE_DAMAGE_TAKEN_PCT, SPELL_AURA_MOD_MELEE_HASTE, SPELL_AURA_MOD_MELEE_HASTE_NO_REGEN, SPELL_AURA_MOD_MELEE_RANGED_CASTING_HASTE, SPELL_AURA_MOD_MELEE_RANGED_CASTING_SLOW_NO_STACK, SPELL_AURA_MOD_MELEE_RANGED_HASTE, SPELL_AURA_MOD_MELEE_RANGED_HASTE_NO_REGEN, SPELL_AURA_MOD_MELEE_SLOW_NO_STACK, SPELL_AURA_MOD_PACIFY, SPELL_AURA_MOD_PACIFY_SILENCE, SPELL_AURA_MOD_PARRY_PERCENT, SPELL_AURA_MOD_PERCENT_STAT, SPELL_AURA_MOD_POSSESS, SPELL_AURA_MOD_POWER_COST_SCHOOL, SPELL_AURA_MOD_POWER_COST_SCHOOL_PCT, SPELL_AURA_MOD_RANGED_ATTACK_POWER, SPELL_AURA_MOD_RANGED_HASTE, SPELL_AURA_MOD_RANGED_HASTE_NO_REGEN, SPELL_AURA_MOD_RANGED_SLOW_NO_STACK, SPELL_AURA_MOD_RATING, SPELL_AURA_MOD_RECOVERY_RATE_BY_SPELL_LABEL, SPELL_AURA_MOD_RESISTANCE, SPELL_AURA_MOD_RESISTANCE_PCT, SPELL_AURA_MOD_ROOT, SPELL_AURA_MOD_ROOT_2, SPELL_AURA_MOD_SHAPESHIFT, SPELL_AURA_MOD_SILENCE, SPELL_AURA_MOD_SKILL, SPELL_AURA_MOD_SKILL_2, SPELL_AURA_MOD_SPEED_ALWAYS, SPELL_AURA_MOD_SPELL_CRIT_CHANCE, SPELL_AURA_MOD_SPELL_DAMAGE_FROM_CASTER, SPELL_AURA_MOD_SPELL_HIT_CHANCE, SPELL_AURA_MOD_SPELL_SLOW_NO_STACK, SPELL_AURA_MOD_STALKED, SPELL_AURA_MOD_STAT, SPELL_AURA_MOD_STEALTH, SPELL_AURA_MOD_STUN, SPELL_AURA_MOD_TAUNT, SPELL_AURA_MOD_THREAT, SPELL_AURA_MOD_TOTAL_STAT_PERCENTAGE, SPELL_AURA_MOD_UNATTACKABLE, SPELL_AURA_MOD_WEAPON_CRIT_PERCENT, SPELL_AURA_OBS_MOD_HEALTH, SPELL_AURA_OBS_MOD_POWER, SPELL_AURA_OVERRIDE_CLASS_SCRIPTS, SPELL_AURA_PERIODIC_DAMAGE, SPELL_AURA_PERIODIC_DAMAGE_PERCENT, SPELL_AURA_PERIODIC_DUMMY, SPELL_AURA_PERIODIC_ENERGIZE, SPELL_AURA_PERIODIC_LEECH, SPELL_AURA_PERIODIC_MANA_LEECH, SPELL_AURA_PERIODIC_TRIGGER_SPELL, SPELL_AURA_PERIODIC_TRIGGER_SPELL_FROM_CLIENT, SPELL_AURA_PERIODIC_TRIGGER_SPELL_WITH_VALUE, SPELL_AURA_PERIODIC_WEAPON_PERCENT_DAMAGE, SPELL_AURA_POWER_BURN, SPELL_AURA_PREVENT_RESURRECTION, SPELL_AURA_PREVENTS_FLEEING, SPELL_AURA_PROC_TRIGGER_SPELL, SPELL_AURA_PROC_TRIGGER_SPELL_WITH_VALUE, SPELL_AURA_RANGED_ATTACK_POWER_ATTACKER_BONUS, SPELL_AURA_SCHOOL_HEAL_ABSORB, SPELL_AURA_SET_VEHICLE_ID, SPELL_AURA_TRANSFORM, SPELL_EFFECT_APPLY_AREA_AURA_ENEMY, SPELL_EFFECT_ATTACK_ME, SPELL_EFFECT_CHARGE, SPELL_EFFECT_DISPEL, SPELL_EFFECT_DISPEL_MECHANIC, SPELL_EFFECT_DISTRACT, SPELL_EFFECT_DURABILITY_DAMAGE, SPELL_EFFECT_DURABILITY_DAMAGE_PCT, SPELL_EFFECT_ENERGIZE, SPELL_EFFECT_ENERGIZE_PCT, SPELL_EFFECT_ENVIRONMENTAL_DAMAGE, SPELL_EFFECT_GAMEOBJECT_DAMAGE, SPELL_EFFECT_HEAL, SPELL_EFFECT_HEAL_MAX_HEALTH, SPELL_EFFECT_HEAL_MECHANICAL, SPELL_EFFECT_HEAL_PCT, SPELL_EFFECT_HEALTH_LEECH, SPELL_EFFECT_INSTAKILL, SPELL_EFFECT_INTERRUPT_CAST, SPELL_EFFECT_KNOCK_BACK, SPELL_EFFECT_LEARN_SPELL, SPELL_EFFECT_MODIFY_THREAT_PERCENT, SPELL_EFFECT_NORMALIZED_WEAPON_DMG, SPELL_EFFECT_PERSISTENT_AREA_AURA, SPELL_EFFECT_PICKPOCKET, SPELL_EFFECT_POWER_BURN, SPELL_EFFECT_POWER_DRAIN, SPELL_EFFECT_SCHOOL_DAMAGE, SPELL_EFFECT_SKILL_STEP, SPELL_EFFECT_STEAL_BENEFICIAL_BUFF, SPELL_EFFECT_TAMECREATURE, SPELL_EFFECT_THREAT, SPELL_EFFECT_WEAPON_DAMAGE, SPELL_EFFECT_WEAPON_DAMAGE_NOSCHOOL, SPELL_EFFECT_WEAPON_PERCENT_DAMAGE, SPELLFAMILY_GENERIC, SPELLFAMILY_ROGUE, SPELLFAMILY_WARRIOR, SpellInfo::SpellFamilyFlags, SpellInfo::SpellFamilyName, sSpellMgr, StartCooldown, SpellEffectInfo::TargetA, SpellEffectInfo::TargetB, and SpellEffectInfo::TriggerSpell.
Referenced by SpellInfo::_InitializeSpellPositivity(), and _isPositiveEffectImpl().
|
inline |
Definition at line 4614 of file SpellInfo.cpp.
References SpellImplicitTargetInfo::GetCheckType(), SpellEffectInfo::IsEffect(), TARGET_CHECK_ENEMY, SpellEffectInfo::TargetA, and SpellEffectInfo::TargetB.
Referenced by _isPositiveEffectImpl().
|
inline |
Definition at line 4320 of file SpellInfo.cpp.
References SpellProcsPerMinuteModEntry::Coeff, Player::m_activePlayerData, SpellProcsPerMinuteModEntry::Param, and Object::ToPlayer().
Referenced by SpellInfo::CalcProcPPM().
|
inline |
Definition at line 4294 of file SpellInfo.cpp.
References SpellProcsPerMinuteModEntry::Coeff, Unit::m_unitData, and SpellProcsPerMinuteModEntry::Param.
Referenced by SpellInfo::CalcProcPPM().
|
inline |
Definition at line 4347 of file SpellInfo.cpp.
References SpellProcsPerMinuteModEntry::Coeff, GetRandomPropertyPoints(), INVTYPE_CHEST, ITEM_QUALITY_RARE, and SpellProcsPerMinuteModEntry::Param.
Referenced by SpellInfo::CalcProcPPM().
| uint32 GetTargetFlagMask | ( | SpellTargetObjectTypes | objType | ) |
Definition at line 44 of file SpellInfo.cpp.
References TARGET_FLAG_CORPSE_ALLY, TARGET_FLAG_CORPSE_ENEMY, TARGET_FLAG_DEST_LOCATION, TARGET_FLAG_GAMEOBJECT, TARGET_FLAG_GAMEOBJECT_ITEM, TARGET_FLAG_ITEM, TARGET_FLAG_NONE, TARGET_FLAG_SOURCE_LOCATION, TARGET_FLAG_UNIT, TARGET_OBJECT_TYPE_CORPSE, TARGET_OBJECT_TYPE_CORPSE_ALLY, TARGET_OBJECT_TYPE_CORPSE_ENEMY, TARGET_OBJECT_TYPE_DEST, TARGET_OBJECT_TYPE_GOBJ, TARGET_OBJECT_TYPE_GOBJ_ITEM, TARGET_OBJECT_TYPE_ITEM, TARGET_OBJECT_TYPE_SRC, TARGET_OBJECT_TYPE_UNIT, and TARGET_OBJECT_TYPE_UNIT_AND_DEST.
Referenced by SpellEffectInfo::GetMissingTargetMask(), SpellEffectInfo::GetProvidedTargetMask(), and Spell::SelectSpellTargets().