TrinityCore
Loading...
Searching...
No Matches
SpellEffectInfo Class Reference

#include <SpellInfo.h>

Classes

struct  ImmunityInfo
 
struct  ScalingInfo
 
struct  StaticData
 

Public Member Functions

 SpellEffectInfo ()
 
 SpellEffectInfo (SpellInfo const *spellInfo, SpellEffectEntry const &effect)
 
 SpellEffectInfo (SpellEffectInfo const &)=delete
 
 SpellEffectInfo (SpellEffectInfo &&) noexcept
 
SpellEffectInfo & operator= (SpellEffectInfo const &)=delete
 
SpellEffectInfo & operator= (SpellEffectInfo &&) noexcept
 
 ~SpellEffectInfo ()
 
bool IsEffect () const
 
bool IsEffect (SpellEffects effectName) const
 
bool IsAura () const
 
bool IsAura (AuraType aura) const
 
bool IsTargetingArea () const
 
bool IsAreaAuraEffect () const
 
bool IsUnitOwnedAuraEffect () const
 
uint32 GetPeriodicTickCount () const
 
int32 CalcValueAsInt (WorldObject const *caster=nullptr, SpellEffectValue const *basePoints=nullptr, Unit const *target=nullptr, float *variance=nullptr, uint32 castItemId=0, int32 itemLevel=-1) const
 
SpellEffectValue CalcValue (WorldObject const *caster=nullptr, SpellEffectValue const *basePoints=nullptr, Unit const *target=nullptr, float *variance=nullptr, uint32 castItemId=0, int32 itemLevel=-1) const
 
SpellEffectValue CalcBaseValue (WorldObject const *caster, Unit const *target, uint32 itemId, int32 itemLevel) const
 
float CalcValueMultiplier (WorldObject *caster, Spell *spell=nullptr) const
 
float CalcDamageMultiplier (WorldObject *caster, Spell *spell=nullptr) const
 
bool HasRadius (SpellTargetIndex targetIndex) const
 
SpellRange CalcRadius (WorldObject const *caster=nullptr, SpellTargetIndex targetIndex=SpellTargetIndex::TargetA, Spell *spell=nullptr) const
 
uint32 GetProvidedTargetMask () const
 
uint32 GetMissingTargetMask (bool srcSet=false, bool dstSet=false, uint32 mask=0) const
 
SpellEffectImplicitTargetTypes GetImplicitTargetType () const
 
SpellTargetObjectTypes GetUsedTargetObjectType () const
 
ExpectedStatType GetScalingExpectedStat () const
 
ImmunityInfo const * GetImmunityInfo () const
 

Public Attributes

SpellEffIndex EffectIndex
 
SpellEffects Effect
 
AuraType ApplyAuraName
 
uint32 ApplyAuraPeriod
 
float BasePoints
 
float RealPointsPerLevel
 
float PointsPerResource
 
float Amplitude
 
float ChainAmplitude
 
float BonusCoefficient
 
int32 MiscValue
 
int32 MiscValueB
 
Mechanics Mechanic
 
float PositionFacing
 
SpellImplicitTargetInfo TargetA
 
SpellImplicitTargetInfo TargetB
 
SpellRadiusEntry const * TargetARadiusEntry
 
SpellRadiusEntry const * TargetBRadiusEntry
 
int32 ChainTargets
 
uint32 ItemType
 
uint32 TriggerSpell
 
flag128 SpellClassMask
 
float BonusCoefficientFromAP
 
std::shared_ptr< std::vector< Condition > > ImplicitTargetConditions
 
EnumFlag< SpellEffectAttributes > EffectAttributes
 
struct SpellEffectInfo::ScalingInfo Scaling
 

Static Public Attributes

static constexpr SpellEffectValue MinValue = -2000000000.0
 
static constexpr SpellEffectValue MaxValue = 2000000000.0
 

Private Attributes

SpellInfo const * _spellInfo
 
std::unique_ptr< ImmunityInfo > _immunityInfo
 

Static Private Attributes

static std::array< StaticData, TOTAL_SPELL_EFFECTS > _data
 

Friends

class SpellInfo
 

Detailed Description

Definition at line 209 of file SpellInfo.h.

Constructor & Destructor Documentation

◆ SpellEffectInfo() [1/4]

SpellEffectInfo::SpellEffectInfo ( )
explicit

Definition at line 403 of file SpellInfo.cpp.

◆ SpellEffectInfo() [2/4]

SpellEffectInfo::SpellEffectInfo ( SpellInfo const *  spellInfo,
SpellEffectEntry const &  effect 
)
explicit

Definition at line 412 of file SpellInfo.cpp.

References _immunityInfo, _spellInfo, Amplitude, ApplyAuraName, ApplyAuraPeriod, ASSERT, BasePoints, BonusCoefficient, SpellEffectEntry::BonusCoefficientFromAP, BonusCoefficientFromAP, ChainAmplitude, ChainTargets, SpellEffectInfo::ScalingInfo::Class, SpellEffectEntry::Coefficient, SpellEffectInfo::ScalingInfo::Coefficient, SpellEffectEntry::Effect, Effect, SpellEffectEntry::EffectAmplitude, EffectAttributes, SpellEffectEntry::EffectAura, SpellEffectEntry::EffectAuraPeriod, SpellEffectEntry::EffectBasePoints, SpellEffectEntry::EffectBonusCoefficient, SpellEffectEntry::EffectChainAmplitude, SpellEffectEntry::EffectChainTargets, SpellEffectEntry::EffectIndex, EffectIndex, SpellEffectEntry::EffectItemType, SpellEffectEntry::EffectMechanic, SpellEffectEntry::EffectMiscValue, SpellEffectEntry::EffectPointsPerResource, SpellEffectEntry::EffectPosFacing, SpellEffectEntry::EffectRadiusIndex, SpellEffectEntry::EffectRealPointsPerLevel, SpellEffectEntry::EffectSpellClassMask, SpellEffectEntry::EffectTriggerSpell, SpellEffectEntry::GetEffectAttributes(), SpellEffectEntry::ImplicitTarget, ImplicitTargetConditions, ItemType, Mechanic, MiscValue, MiscValueB, PointsPerResource, PositionFacing, RealPointsPerLevel, SpellEffectEntry::ResourceCoefficient, SpellEffectInfo::ScalingInfo::ResourceCoefficient, Scaling, SpellEffectEntry::ScalingClass, SpellClassMask, sSpellRadiusStore, TargetA, TargetARadiusEntry, TargetB, TargetBRadiusEntry, TriggerSpell, SpellEffectEntry::Variance, and SpellEffectInfo::ScalingInfo::Variance.

◆ SpellEffectInfo() [3/4]

SpellEffectInfo::SpellEffectInfo ( SpellEffectInfo const &  )
delete

◆ SpellEffectInfo() [4/4]

SpellEffectInfo::SpellEffectInfo ( SpellEffectInfo &&  )
defaultnoexcept

◆ ~SpellEffectInfo()

SpellEffectInfo::~SpellEffectInfo ( )
default

Member Function Documentation

◆ CalcBaseValue()

◆ CalcDamageMultiplier()

float SpellEffectInfo::CalcDamageMultiplier ( WorldObject *  caster,
Spell *  spell = nullptr 
) const

◆ CalcRadius()

SpellRange SpellEffectInfo::CalcRadius ( WorldObject const *  caster = nullptr,
SpellTargetIndex  targetIndex = SpellTargetIndex::TargetA,
Spell *  spell = nullptr 
) const

Definition at line 783 of file SpellInfo.cpp.

References _spellInfo, Spell::CanIncreaseRangeByMovement(), WorldObject::GetSpellModOwner(), SpellImplicitTargetInfo::GetTarget(), SpellInfo::HasAttribute(), HasRadius(), SpellRange::Max, SpellRange::Min, SpellRadiusEntry::Radius, Radius, SpellRadiusEntry::RadiusMax, SpellRadiusEntry::RadiusMin, SpellRadiusEntry::RadiusPerLevel, rand_norm(), SPELL_ATTR9_NO_MOVEMENT_RADIUS_BONUS, TARGET_DEST_CASTER_RANDOM, TARGET_DEST_DEST_RANDOM, TARGET_DEST_TARGET_RANDOM, TargetA, TargetARadiusEntry, TargetB, TargetB, TargetBRadiusEntry, and Object::ToUnit().

Referenced by spell_krystallus_shatter_effect::CalculateDamage(), spell_gruul_shatter_effect::CalculateDamage(), Spell::EffectAddFarsight(), Spell::EffectPersistentAA(), Spell::EffectScriptEffect(), Spell::EffectSummonType(), Spell::EffectTransmitted(), spell_mage_ring_of_frost_freeze::FilterTargets(), spell_garr_separation_anxiety::HandleDummyTick(), spell_majordomo_separation_anxiety::HandleDummyTick(), spell_pri_angelic_feather_trigger::HandleEffectDummy(), spell_vehicle_throw_passenger::spell_vehicle_throw_passenger_SpellScript::HandleScript(), spell_grizzly_hills_escape_from_silverbrook_summon_worgen::ModDest(), Spell::SelectImplicitAreaTargets(), Spell::SelectImplicitCasterDestTargets(), Spell::SelectImplicitConeTargets(), Spell::SelectImplicitDestDestTargets(), Spell::SelectImplicitLineTargets(), Spell::SelectImplicitNearbyTargets(), Spell::SelectImplicitTargetDestTargets(), and spell_hor_evasion::spell_hor_evasion_SpellScript::SetDest().

◆ CalcValue()

SpellEffectValue SpellEffectInfo::CalcValue ( WorldObject const *  caster = nullptr,
SpellEffectValue const *  basePoints = nullptr,
Unit const *  target = nullptr,
float *  variance = nullptr,
uint32  castItemId = 0,
int32  itemLevel = -1 
) const

Definition at line 521 of file SpellInfo.cpp.

References _spellInfo, ApplyAuraName, WorldObject::ApplyEffectModifiers(), SpellInfo::BaseLevel, BonusCoefficient, CalcBaseValue(), SpellEffectInfo::ScalingInfo::Coefficient, Effect, TraitDefinitionEffectPointsEntry::EffectIndex, EffectIndex, frand(), Unit::GetLevel(), Unit::GetPower(), GetScalingExpectedStat(), TraitMgr::GetTraitDefinitionEffectPointModifiers(), SpellInfo::HasAttribute(), SpellInfo::Id, SpellInfo::MaxLevel, MaxValue, MinValue, Multiply, None, PointsPerResource, POWER_COMBO_POINTS, RealPointsPerLevel, SpellEffectInfo::ScalingInfo::ResourceCoefficient, Scaling, sDB2Manager, Set, SPELL_ATTR8_MASTERY_AFFECTS_POINTS, SPELL_AURA_DAMAGE_SHIELD, SPELL_AURA_OBS_MOD_HEALTH, SPELL_AURA_OBS_MOD_POWER, SPELL_AURA_PERIODIC_DAMAGE, SPELL_AURA_PERIODIC_DAMAGE_PERCENT, SPELL_AURA_PERIODIC_ENERGIZE, SPELL_AURA_PERIODIC_HEAL, SPELL_AURA_PERIODIC_HEALTH_FUNNEL, SPELL_AURA_PERIODIC_LEECH, SPELL_AURA_PERIODIC_MANA_LEECH, SPELL_AURA_PERIODIC_WEAPON_PERCENT_DAMAGE, SPELL_AURA_POWER_BURN, SPELL_AURA_PROC_TRIGGER_DAMAGE, SPELL_EFFECT_APPLY_AREA_AURA_ENEMY, SPELL_EFFECT_APPLY_AREA_AURA_FRIEND, SPELL_EFFECT_APPLY_AREA_AURA_OWNER, SPELL_EFFECT_APPLY_AREA_AURA_PARTY, SPELL_EFFECT_APPLY_AREA_AURA_PET, SPELL_EFFECT_APPLY_AREA_AURA_RAID, SPELL_EFFECT_APPLY_AREA_AURA_SUMMONS, SPELL_EFFECT_APPLY_AURA, SPELL_EFFECT_APPLY_AURA_ON_PET, SPELL_EFFECT_ENERGIZE, SPELL_EFFECT_ENVIRONMENTAL_DAMAGE, SPELL_EFFECT_HEAL, SPELL_EFFECT_HEAL_MAX_HEALTH, SPELL_EFFECT_HEAL_MECHANICAL, SPELL_EFFECT_HEALTH_LEECH, SPELL_EFFECT_NORMALIZED_WEAPON_DMG, SPELL_EFFECT_PERSISTENT_AREA_AURA, SPELL_EFFECT_POWER_BURN, SPELL_EFFECT_POWER_DRAIN, SPELL_EFFECT_SCHOOL_DAMAGE, SPELL_EFFECT_WEAPON_DAMAGE, SPELL_EFFECT_WEAPON_DAMAGE_NOSCHOOL, SPELL_EFFECT_WEAPON_PERCENT_DAMAGE, SpellInfo::SpellLevel, Object::ToPlayer(), Object::ToUnit(), and SpellEffectInfo::ScalingInfo::Variance.

Referenced by _isPositiveEffectImpl(), spell_warl_shadowburn::CalcCritChance(), spell_dk_improved_death_strike::CalcHealIncrease(), spell_dk_improved_death_strike::CalcPowerCostReduction(), spell_gen_gift_of_naaru::CalculateAmount(), AuraEffect::CalculateAmount(), spell_hun_pet_scaling_01::spell_hun_pet_scaling_01_AuraScript::CalculateAttackPowerAmount(), spell_warl_seed_of_corruption_dummy_aura::CalculateBuffer(), Spell::CalculateDamage(), spell_hun_pet_scaling_01::spell_hun_pet_scaling_01_AuraScript::CalculateDamageDoneAmount(), spell_hun_pet_scaling_01::spell_hun_pet_scaling_01_AuraScript::CalculateStaminaAmount(), CalcValueAsInt(), spell_item_grips_of_forsaken_sanity::CheckHealth(), spell_dk_rime::CheckProc(), spell_gen_proc_below_pct_damaged::CheckProc(), spell_item_crystal_spire_of_karabor::CheckProc(), Spell::EffectSummonType(), spell_pal_ardent_defender::HandleAbsorb(), spell_warr_colossus_smash::HandleAfterCast(), spell_warl_unstable_affliction::HandleDispel(), spell_leotheras_the_blind_chaos_blast::HandleDummy(), spell_pri_evangelism::HandleDummy(), spell_hun_concussive_shot::HandleDuration(), spell_akilzon_electrical_overload::HandleEffect(), spell_dru_thorns_of_iron_damage::HandleEffectHit(), spell_dru_twin_moonfire::HandleEffectHit(), spell_pri_harsh_discipline::HandleEffectHit(), spell_pri_power_leech_passive::HandleOnProc(), spell_dk_soul_reaper::HandleOnTick(), spell_igb_rocket_pack::HandleRemove(), spell_dru_wild_growth_aura::HandleTickUpdate(), spell_putricide_mutated_plague::HandleTriggerSpell(), spell_dk_anti_magic_shell::Load(), spell_pri_guardian_spirit::Load(), SpellMgr::LoadSpellPetAuras(), at_dh_inner_demon::OnInitialize(), areatrigger_pri_divine_star::OnInitialize(), spell_putricide_mutated_plague::OnRemove(), spell_blood_queen_pact_of_the_darkfallen_dmg::PeriodicTick(), spell_pri_atonement::TriggerAtonementHealOnTargets(), Scripts::QuelThalas::MurderRow::KystiaManaheart::boss_kystia_manaheart_nibbles::UpdateAI(), spell_dh_chaos_theory::Validate(), spell_dh_darkglare_boon::Validate(), and spell_sholazar_lifeblood_dummy::Validate().

◆ CalcValueAsInt()

int32 SpellEffectInfo::CalcValueAsInt ( WorldObject const *  caster = nullptr,
SpellEffectValue const *  basePoints = nullptr,
Unit const *  target = nullptr,
float *  variance = nullptr,
uint32  castItemId = 0,
int32  itemLevel = -1 
) const

Definition at line 516 of file SpellInfo.cpp.

References CalcValue().

Referenced by spell_valkyr_essences::Absorb(), Spell::CanOpenLock(), spell_pri_prayer_of_mending_SpellScriptBase::CastPrayerOfMendingAura(), spell_baleroc_decimating_strike::ChangeDamage(), Spell::CheckItems(), spell_dru_flower_walk_heal::FilterTargets(), spell_pri_power_word_radiance::FilterTargets(), spell_edna_refracting_beam_selector::FilterTargets(), spell_dru_wild_growth::FilterTargets(), spell_pri_divine_word_sanctuary_heal::FilterTargets(), spell_pri_holy_word_salvation::HandleApplyBuffs(), spell_pri_evangelism::HandleCast(), spell_gen_oracle_wolvar_reputation::HandleDummy(), spell_dk_blood_bond_periodic::HandleDummyTick(), spell_dru_pulverize::HandleEffectHit(), spell_pri_void_volley::HandleEffectHit(), spell_warr_improved_whirlwind::HandleHit(), spell_garothi_fel_bombardment_periodic::HandlePeriodic(), spell_torghast_uncontrolled_darkness_proc::HandleProc(), spell_pri_holy_words::HandleProc(), spell_pri_dispersing_light::HandleProc(), spell_putricide_clear_aura_effect_value::HandleScript(), spell_icehowl_arctic_breath::HandleScriptEffect(), spell_quest_portal_with_condition::HandleScriptEffect(), spell_gen_absorb0_hitlimit1::Load(), at_abyssal_portal_harbinger::OnCreate(), spell_putricide_mutated_plague::OnRemove(), spell_wintergrasp_tenacity_refresh::OnRemove(), spell_wintergrasp_tenacity_refresh::Refresh(), spell_garothi_fel_bombardment_periodic::Validate(), spell_garothi_annihilation_selector::Validate(), spell_volatile_foam_aura< SpellIdOnExpire >::Validate(), spell_occuthar_eyes_of_occuthar::spell_occuthar_eyes_of_occuthar_SpellScript::Validate(), Scripts::EasternKingdoms::Gilneas::Chapter1::spell_gilneas_knocking::Validate(), spell_maiden_of_virtue_rtk_sacred_ground::Validate(), spell_chapter1_emblazon_runeblade_effect::Validate(), spell_kalecgos_tap_check::Validate(), Scripts::EasternKingdoms::StormwindCity::spell_stormwind_harbor_to_boralus_transition::Validate(), spell_akilzon_eagle_swoop_primer::Validate(), spell_akilzon_electrical_overload_primer::Validate(), spell_akilzon_grab_passenger::Validate(), spell_love_is_in_the_air_heavily_perfumed::Validate(), spell_love_is_in_the_air_service_uniform::Validate(), spell_love_is_in_the_air_perfume_cologne_immune::Validate(), spell_pilgrims_bounty_feast_on::Validate(), spell_baleroc_decimating_strike::Validate(), spell_ahnkahet_yogg_saron_whisper::Validate(), spell_black_knight_ghoul_explode::Validate(), spell_black_knight_ghoul_explode_risen_ghoul::Validate(), spell_rotface_mutated_infection_aura::Validate(), spell_hodir_freeze::Validate(), spell_hodir_icicle::Validate(), spell_hodir_dispel_magic::Validate(), spell_hodir_melt_ice::Validate(), spell_borean_tundra_nerubar_web_random_unit_not_on_quest::Validate(), spell_borean_tundra_dispel_freed_soldier_debuff::Validate(), spell_borean_tundra_weakness_to_lightning_cast_on_master::Validate(), spell_borean_tundra_signal_alliance::Validate(), spell_borean_tundra_arcane_chains_character_force_cast::Validate(), spell_dragonblight_moti_hourglass_cast_see_invis_on_master::Validate(), spell_dragonblight_fill_blood_unholy_frost_gem::Validate(), spell_dragonblight_corrosive_spit::Validate(), spell_fjord_the_cleansing_on_death_cast_on_master::Validate(), spell_fjord_the_way_to_his_heart_reverse_cast::Validate(), spell_fjord_the_way_to_his_heart_quest_complete::Validate(), spell_icecrown_the_ocular_on_death::Validate(), spell_icecrown_summon_freed_crusader::Validate(), spell_icecrown_bested_trigger::Validate(), spell_sholazar_take_sputum_sample::Validate(), spell_sholazar_flight_to_sholazar::Validate(), spell_wintergrasp_tenacity_refresh::Validate(), spell_zuldrak_chains_of_the_scourge::Validate(), spell_the_lurker_below_spout_periodic::Validate(), spell_astromancer_wrath_of_the_astromancer::Validate(), spell_kaelthas_nether_vapor_lightning::Validate(), spell_shadowmoon_quest_credit_crazed_colossus::Validate(), spell_pet_gen_lich_pet_focus::Validate(), spell_pet_gen_toxic_wasteling_find_target::Validate(), spell_gen_cancel_aura::Validate(), spell_gen_cast_caster_to_target::Validate(), spell_gen_cast_target_to_target::Validate(), spell_gen_player_say::Validate(), spell_gen_whisper_to_controller::Validate(), spell_gen_eject_passenger::Validate(), spell_hun_masters_call::Validate(), spell_quest_portal_with_condition::Validate(), and spell_sanguine_feast_selector::Validate().

◆ CalcValueMultiplier()

◆ GetImmunityInfo()

ImmunityInfo const * SpellEffectInfo::GetImmunityInfo ( ) const
inline

◆ GetImplicitTargetType()

SpellEffectImplicitTargetTypes SpellEffectInfo::GetImplicitTargetType ( ) const

Definition at line 859 of file SpellInfo.cpp.

References _data, and Effect.

Referenced by Spell::SelectEffectTypeImplicitTargets().

◆ GetMissingTargetMask()

◆ GetPeriodicTickCount()

◆ GetProvidedTargetMask()

◆ GetScalingExpectedStat()

ExpectedStatType SpellEffectInfo::GetScalingExpectedStat ( ) const

Definition at line 869 of file SpellInfo.cpp.

References ApplyAuraName, ArmorConstant, CreatureSpellDamage, Effect, MiscValue, None, PlayerHealth, PlayerMana, PlayerPrimaryStat, PlayerSecondaryStat, POWER_MANA, SPELL_AURA_DAMAGE_SHIELD, SPELL_AURA_MANA_SHIELD, SPELL_AURA_MOD_ATTACK_POWER, SPELL_AURA_MOD_BASE_RESISTANCE, SPELL_AURA_MOD_BONUS_ARMOR, SPELL_AURA_MOD_DAMAGE_DONE, SPELL_AURA_MOD_DAMAGE_DONE_CREATURE, SPELL_AURA_MOD_DAMAGE_TAKEN, SPELL_AURA_MOD_FLAT_SPELL_DAMAGE_VERSUS, SPELL_AURA_MOD_HEALING, SPELL_AURA_MOD_HEALING_DONE, SPELL_AURA_MOD_HEALTH_REGEN_IN_COMBAT, SPELL_AURA_MOD_INCREASE_ENERGY, SPELL_AURA_MOD_INCREASE_HEALTH, SPELL_AURA_MOD_INCREASE_HEALTH_2, SPELL_AURA_MOD_MAX_HEALTH, SPELL_AURA_MOD_MAX_POWER, SPELL_AURA_MOD_MELEE_ATTACK_POWER_VERSUS, SPELL_AURA_MOD_POWER_COST_SCHOOL, SPELL_AURA_MOD_POWER_REGEN, SPELL_AURA_MOD_RANGED_ATTACK_POWER, SPELL_AURA_MOD_RANGED_ATTACK_POWER_VERSUS, SPELL_AURA_MOD_RATING, SPELL_AURA_MOD_REGEN, SPELL_AURA_MOD_RESISTANCE, SPELL_AURA_MOD_STAT, SPELL_AURA_MOD_TARGET_RESISTANCE, SPELL_AURA_PERIODIC_DAMAGE, SPELL_AURA_PERIODIC_ENERGIZE, SPELL_AURA_PERIODIC_HEAL, SPELL_AURA_PERIODIC_HEALTH_FUNNEL, SPELL_AURA_PERIODIC_LEECH, SPELL_AURA_PERIODIC_MANA_LEECH, SPELL_AURA_POWER_BURN, SPELL_AURA_PROC_TRIGGER_DAMAGE, SPELL_AURA_SCHOOL_ABSORB, SPELL_AURA_SCHOOL_HEAL_ABSORB, SPELL_EFFECT_APPLY_AREA_AURA_ENEMY, SPELL_EFFECT_APPLY_AREA_AURA_FRIEND, SPELL_EFFECT_APPLY_AREA_AURA_OWNER, SPELL_EFFECT_APPLY_AREA_AURA_PARTY, SPELL_EFFECT_APPLY_AREA_AURA_PARTY_NONRANDOM, SPELL_EFFECT_APPLY_AREA_AURA_PET, SPELL_EFFECT_APPLY_AREA_AURA_RAID, SPELL_EFFECT_APPLY_AREA_AURA_SUMMONS, SPELL_EFFECT_APPLY_AURA, SPELL_EFFECT_APPLY_AURA_ON_PET, SPELL_EFFECT_ENERGIZE, SPELL_EFFECT_ENVIRONMENTAL_DAMAGE, SPELL_EFFECT_HEAL, SPELL_EFFECT_HEAL_MECHANICAL, SPELL_EFFECT_HEALTH_LEECH, SPELL_EFFECT_PERSISTENT_AREA_AURA, SPELL_EFFECT_POWER_BURN, SPELL_EFFECT_POWER_DRAIN, SPELL_EFFECT_SCHOOL_DAMAGE, SPELL_EFFECT_WEAPON_DAMAGE, and SPELL_EFFECT_WEAPON_DAMAGE_NOSCHOOL.

Referenced by CalcBaseValue(), and CalcValue().

◆ GetUsedTargetObjectType()

SpellTargetObjectTypes SpellEffectInfo::GetUsedTargetObjectType ( ) const

Definition at line 864 of file SpellInfo.cpp.

References _data, and Effect.

Referenced by GetMissingTargetMask().

◆ HasRadius()

bool SpellEffectInfo::HasRadius ( SpellTargetIndex  targetIndex) const

◆ IsAreaAuraEffect()

◆ IsAura() [1/2]

◆ IsAura() [2/2]

bool SpellEffectInfo::IsAura ( AuraType  aura) const

Definition at line 470 of file SpellInfo.cpp.

References ApplyAuraName, and IsAura().

◆ IsEffect() [1/2]

◆ IsEffect() [2/2]

bool SpellEffectInfo::IsEffect ( SpellEffects  effectName) const

Definition at line 460 of file SpellInfo.cpp.

References Effect.

◆ IsTargetingArea()

bool SpellEffectInfo::IsTargetingArea ( ) const

Definition at line 475 of file SpellInfo.cpp.

References SpellImplicitTargetInfo::IsArea(), TargetA, and TargetB.

Referenced by Spell::DoEffectOnLaunchTarget().

◆ IsUnitOwnedAuraEffect()

bool SpellEffectInfo::IsUnitOwnedAuraEffect ( ) const

Definition at line 494 of file SpellInfo.cpp.

References Effect, IsAreaAuraEffect(), SPELL_EFFECT_APPLY_AURA, and SPELL_EFFECT_APPLY_AURA_ON_PET.

Referenced by IsAura().

◆ operator=() [1/2]

SpellEffectInfo & SpellEffectInfo::operator= ( SpellEffectInfo &&  )
defaultnoexcept

◆ operator=() [2/2]

SpellEffectInfo & SpellEffectInfo::operator= ( SpellEffectInfo const &  )
delete

Friends And Related Symbol Documentation

◆ SpellInfo

friend class SpellInfo
friend

Definition at line 211 of file SpellInfo.h.

Member Data Documentation

◆ _data

std::array< SpellEffectInfo::StaticData, TOTAL_SPELL_EFFECTS > SpellEffectInfo::_data
staticprivate

Definition at line 959 of file SpellInfo.h.

Referenced by GetImplicitTargetType(), and GetUsedTargetObjectType().

◆ _immunityInfo

std::unique_ptr<ImmunityInfo> SpellEffectInfo::_immunityInfo
private

Definition at line 299 of file SpellInfo.h.

Referenced by SpellEffectInfo().

◆ _spellInfo

SpellInfo const* SpellEffectInfo::_spellInfo
private

◆ Amplitude

float SpellEffectInfo::Amplitude

◆ ApplyAuraName

◆ ApplyAuraPeriod

◆ BasePoints

◆ BonusCoefficient

float SpellEffectInfo::BonusCoefficient

◆ BonusCoefficientFromAP

float SpellEffectInfo::BonusCoefficientFromAP

◆ ChainAmplitude

float SpellEffectInfo::ChainAmplitude

Definition at line 222 of file SpellInfo.h.

Referenced by CalcDamageMultiplier(), and SpellEffectInfo().

◆ ChainTargets

int32 SpellEffectInfo::ChainTargets

Definition at line 232 of file SpellInfo.h.

Referenced by Spell::SelectImplicitChainTargets(), and SpellEffectInfo().

◆ Effect

◆ EffectAttributes

◆ EffectIndex

SpellEffIndex SpellEffectInfo::EffectIndex

Definition at line 214 of file SpellInfo.h.

Referenced by _isPositiveEffectImpl(), Spell::CalculateDamage(), spell_warr_improved_whirlwind_cleave::CalculateDamage(), CalcValue(), Spell::DoEffectOnLaunchTarget(), Spell::DoSpellEffectHit(), Spell::EffectActivateObject(), Spell::EffectApplyAura(), Spell::EffectDispel(), Spell::EffectDispelMechanic(), Spell::EffectDummy(), Spell::EffectEnchantItemTmp(), Spell::EffectForceCast(), Spell::EffectForceCast2(), Spell::EffectInterruptCast(), Spell::EffectLeap(), Spell::EffectPersistentAA(), Spell::EffectSchoolDMG(), Spell::EffectSummonPersonalGameObject(), Spell::EffectTeleportUnits(), Spell::EffectTeleportUnitsWithVisualLoadingScreen(), Spell::EffectTeleUnitsFaceCaster(), Spell::EffectTriggerMissileSpell(), Spell::EffectTriggerRitualOfSummoning(), Spell::EffectTriggerSpell(), Spell::EffectWeaponDmg(), spell_warr_meat_cleaver_damage_bonus::HandleDamageBonus(), Spell::HandleEffects(), Unit::IsImmunedToSpellEffect(), Spell::SelectEffectImplicitTargets(), Spell::SelectEffectTypeImplicitTargets(), Spell::SelectImplicitAreaTargets(), Spell::SelectImplicitCasterDestTargets(), Spell::SelectImplicitCasterObjectTargets(), Spell::SelectImplicitChainTargets(), Spell::SelectImplicitChannelTargets(), Spell::SelectImplicitConeTargets(), Spell::SelectImplicitDestDestTargets(), Spell::SelectImplicitLineTargets(), Spell::SelectImplicitNearbyTargets(), Spell::SelectImplicitTargetDestTargets(), Spell::SelectImplicitTargetObjectTargets(), Spell::SelectImplicitTrajTargets(), and SpellEffectInfo().

◆ ImplicitTargetConditions

◆ ItemType

◆ MaxValue

constexpr SpellEffectValue SpellEffectInfo::MaxValue = 2000000000.0
staticconstexpr

◆ Mechanic

◆ MinValue

constexpr SpellEffectValue SpellEffectInfo::MinValue = -2000000000.0
staticconstexpr

◆ MiscValue

int32 SpellEffectInfo::MiscValue

Definition at line 224 of file SpellInfo.h.

Referenced by _isPositiveEffectImpl(), Spell::CanOpenLock(), Spell::EffectActivateGarrisonBuilding(), Spell::EffectActivateObject(), Spell::EffectAddGarrisonFollower(), Spell::EffectApplyEnchantIllusion(), Spell::EffectApplyGlyph(), Spell::EffectBind(), Spell::EffectCancelConversation(), Spell::EffectCastButtons(), Spell::EffectCreateAreaTrigger(), Spell::EffectCreateConversation(), Spell::EffectCreateGarrison(), Spell::EffectCreatePrivateConversation(), Spell::EffectCreatePrivateSceneObject(), Spell::EffectCreateSceneObject(), Spell::EffectCreateTamedPet(), Spell::EffectCreateTraitTreeConfig(), Spell::EffectDiscoverTaxi(), Spell::EffectDispel(), Spell::EffectDispelMechanic(), Spell::EffectDuel(), Spell::EffectDurabilityDamage(), Spell::EffectDurabilityDamagePCT(), Spell::EffectEnchantHeldItem(), Spell::EffectEnchantItemPerm(), Spell::EffectEnchantItemPrismatic(), Spell::EffectEnchantItemTmp(), Spell::EffectEnergize(), Spell::EffectEnergizePct(), Spell::EffectGameObjectSetDestructionState(), Spell::EffectGiveArtifactPower(), Spell::EffectGiveCurrency(), Spell::EffectGiveExperience(), Spell::EffectIncreaseCurrencyCap(), Spell::EffectJump(), Spell::EffectJumpCharge(), Spell::EffectJumpDest(), Spell::EffectKillCredit(), Spell::EffectKillCreditLabel(), Spell::EffectKillCreditPersonal(), Spell::EffectKnockBack(), Spell::EffectLaunchQuestChoice(), Spell::EffectLeapBack(), Spell::EffectLearnAzeriteEssencePower(), Spell::EffectLearnGarrisonBuilding(), Spell::EffectLearnSkill(), Spell::EffectLearnTransmogIllusion(), Spell::EffectLearnTransmogSet(), Spell::EffectLearnWarbandScene(), Spell::EffectModifyAuraStacks(), Spell::EffectModifyCooldowns(), Spell::EffectModifyCooldownsByCategory(), Spell::EffectModifySpellCharges(), Spell::EffectPlayMovie(), Spell::EffectPlayMusic(), Spell::EffectPlayScene(), Spell::EffectPlaySceneScriptPackage(), Spell::EffectPlaySound(), Spell::EffectPowerBurn(), Spell::EffectPowerDrain(), Spell::EffectPullTowards(), Spell::EffectPullTowardsDest(), Spell::EffectQuestClear(), Spell::EffectQuestComplete(), Spell::EffectQuestFail(), Spell::EffectQuestStart(), Spell::EffectRemoveAuraBySpellLabel(), Spell::EffectReputation(), Spell::EffectResurrectNew(), Spell::EffectSelfResurrect(), Spell::EffectSendChatMessage(), Spell::EffectSendEvent(), Spell::EffectSendTaxi(), Spell::EffectSetPlayerDataElementAccount(), Spell::EffectSetPlayerDataElementCharacter(), Spell::EffectSetPlayerDataFlagAccount(), Spell::EffectSetPlayerDataFlagCharacter(), Spell::EffectSkill(), Spell::EffectSkipCampaign(), Spell::EffectSkipQuestLine(), Spell::EffectStealBeneficialBuff(), Spell::EffectSummonObject(), Spell::EffectSummonObjectWild(), Spell::EffectSummonPersonalGameObject(), Spell::EffectSummonPet(), Spell::EffectSummonType(), Spell::EffectTeleportToReturnPoint(), Spell::EffectTeleportUnits(), Spell::EffectTeleportUnitsWithVisualLoadingScreen(), Spell::EffectTitanGrip(), Spell::EffectTransmitted(), Spell::EffectTriggerSpell(), npc_firework::GetFireworkGameObjectId(), GetScalingExpectedStat(), SpellMgr::LoadSpellInfoCorrections(), SpellEffectInfo(), and spell_warr_powerful_enrage::Validate().

◆ MiscValueB

◆ PointsPerResource

float SpellEffectInfo::PointsPerResource

Definition at line 220 of file SpellInfo.h.

Referenced by CalcValue(), spell_rog_ruthlessness::HandleProc(), and SpellEffectInfo().

◆ PositionFacing

◆ RealPointsPerLevel

float SpellEffectInfo::RealPointsPerLevel

Definition at line 219 of file SpellInfo.h.

Referenced by _isPositiveEffectImpl(), CalcValue(), and SpellEffectInfo().

◆ Scaling

◆ SpellClassMask

flag128 SpellEffectInfo::SpellClassMask

◆ TargetA

◆ TargetARadiusEntry

SpellRadiusEntry const* SpellEffectInfo::TargetARadiusEntry

◆ TargetB

◆ TargetBRadiusEntry

SpellRadiusEntry const* SpellEffectInfo::TargetBRadiusEntry

◆ TriggerSpell

uint32 SpellEffectInfo::TriggerSpell

Definition at line 234 of file SpellInfo.h.

Referenced by _isPositiveEffectImpl(), AuraEffect::CheckEffectProc(), spell_rotface_unstable_ooze_explosion::CheckTarget(), Spell::EffectApplyMountEquipment(), Spell::EffectCharge(), Spell::EffectChargeDest(), Spell::EffectFeedPet(), Spell::EffectForceCast(), Spell::EffectForceCast2(), Spell::EffectJump(), Spell::EffectJumpCharge(), Spell::EffectJumpDest(), Spell::EffectLearnPetSpell(), Spell::EffectLearnSpell(), Spell::EffectModifyAuraStacks(), Spell::EffectModifyCooldown(), Spell::EffectRemoveAura(), Spell::EffectResurrectWithAura(), Spell::EffectSummonRaFFriend(), Spell::EffectTriggerMissileSpell(), Spell::EffectTriggerRitualOfSummoning(), Spell::EffectTriggerSpell(), Spell::EffectUnlearnSpecialization(), AuraEffect::HandleAuraLinked(), spell_chapter1_emblazon_runeblade::HandleEffectPeriodic(), spell_oculus_ride_ruby_emerald_amber_drake_que::HandlePeriodic(), spell_igb_periodic_trigger_with_power_cost::HandlePeriodicTick(), AuraEffect::HandlePeriodicTriggerSpellAuraTick(), AuraEffect::HandlePeriodicTriggerSpellWithValueAuraTick(), spell_putricide_ooze_tank_protection::HandleProc(), spell_torghast_blade_of_the_lifetaker::HandleProc(), spell_torghast_touch_of_the_unseen::HandleProc(), spell_torghast_poisonous_spores::HandleProc(), spell_item_sephuzs_secret::HandleProc(), spell_mage_ethereal_blink::HandleProc(), spell_mage_radiant_spark::HandleProc(), spell_pri_divinity::HandleProc(), AuraEffect::HandleProcTriggerSpellAuraProc(), AuraEffect::HandleProcTriggerSpellWithValueAuraProc(), spell_halion_combustion_consumption_periodic::HandleTick(), spell_putricide_mutated_plague::HandleTriggerSpell(), AuraEffect::HandleTriggerSpellOnHealthPercent(), AuraEffect::HandleTriggerSpellOnPowerAmount(), AuraEffect::HandleTriggerSpellOnPowerPercent(), Player::LearnQuestRewardedSpells(), SpellMgr::LoadSpellInfoCorrections(), WorldObject::ModSpellDuration(), spell_anhuur_divine_reckoning::OnPeriodic(), spell_deathwhisper_dark_reckoning::OnPeriodic(), spell_the_lich_king_vile_spirits::OnPeriodic(), spell_moragg_ray::OnPeriodic(), spell_leotheras_the_blind_demon_link::OnPeriodic(), spell_broggok_poison_cloud::OnPeriodic(), spell_omor_the_unscarred_orbital_strike_whip::OnPeriodic(), spell_gen_impatient_mind::OnRemove(), spell_item_talisman_of_ascendance::OnRemove(), spell_item_jom_gabbar::OnRemove(), spell_item_battle_trance::OnRemove(), spell_item_world_queller_focus::OnRemove(), spell_item_brutal_kinship::OnRemove(), spell_mother_shahraz_saber_lash::OnTrigger(), spell_mother_shahraz_generic_periodic::OnTrigger(), spell_muru_negative_energy_periodic::PeriodicTick(), spell_jormungars_slime_pool::PeriodicTick(), spell_grobbulus_poison_cloud::PeriodicTick(), spell_tar_blaze::PeriodicTick(), spell_gen_aura_of_fear::PeriodicTick(), spell_hun_bleak_arrows::ReplaceAutoShot(), spell_hun_bleak_arrows::RestoreAutoShot(), Spell::SelectImplicitTrajTargets(), SpellEffectInfo(), spell_item_amalgams_seventh_spine_mana_restore::TriggerManaRestoration(), Scripts::EasternKingdoms::Westfall::spell_westfall_reaping_blows::Validate(), and spell_putricide_ooze_tank_protection::Validate().


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