TrinityCore
Loading...
Searching...
No Matches
SpellInfo.cpp File Reference
#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)
 

Function Documentation

◆ _isPositiveEffectImpl()

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().

◆ _isPositiveTarget()

◆ CalcPPMCritMod()

float CalcPPMCritMod ( SpellProcsPerMinuteModEntry const *  mod,
Unit *  caster 
)
inline

◆ CalcPPMHasteMod()

float CalcPPMHasteMod ( SpellProcsPerMinuteModEntry const *  mod,
Unit *  caster 
)
inline

◆ CalcPPMItemLevelMod()

float CalcPPMItemLevelMod ( SpellProcsPerMinuteModEntry const *  mod,
int32  itemLevel 
)
inline

◆ GetTargetFlagMask()