AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
SpellEffectInfo Class Reference

#include "SpellInfo.h"

Classes

struct  StaticData
 

Public Member Functions

 SpellEffectInfo ()
 
 SpellEffectInfo (SpellEntry const *spellEntry, SpellInfo const *spellInfo, uint8 effIndex)
 
bool IsEffect () const
 
bool IsEffect (SpellEffects effectName) const
 
bool IsAura () const
 
bool IsAura (AuraType aura) const
 
bool IsTargetingArea () const
 
bool IsAreaAuraEffect () const
 
bool IsFarUnitTargetEffect () const
 
bool IsFarDestTargetEffect () const
 
bool IsUnitOwnedAuraEffect () const
 
int32 CalcValue (Unit const *caster=nullptr, int32 const *basePoints=nullptr, Unit const *target=nullptr) const
 
int32 CalcBaseValue (int32 value) const
 
float CalcValueMultiplier (Unit *caster, Spell *spell=nullptr) const
 
float CalcDamageMultiplier (Unit *caster, Spell *spell=nullptr) const
 
bool HasRadius () const
 
float CalcRadius (Unit *caster=nullptr, Spell *=nullptr) const
 
uint32 GetProvidedTargetMask () const
 
uint32 GetMissingTargetMask (bool srcSet=false, bool destSet=false, uint32 mask=0) const
 
SpellEffectImplicitTargetTypes GetImplicitTargetType () const
 
SpellTargetObjectTypes GetUsedTargetObjectType () const
 

Public Attributes

uint32 Effect
 
uint32 ApplyAuraName
 
uint32 Amplitude
 
int32 DieSides
 
float RealPointsPerLevel
 
int32 BasePoints
 
float PointsPerComboPoint
 
float ValueMultiplier
 
float DamageMultiplier
 
float BonusMultiplier
 
int32 MiscValue
 
int32 MiscValueB
 
Mechanics Mechanic
 
SpellImplicitTargetInfo TargetA
 
SpellImplicitTargetInfo TargetB
 
SpellRadiusEntry const * RadiusEntry
 
uint32 ChainTarget
 
uint32 ItemType
 
uint32 TriggerSpell
 
flag96 SpellClassMask
 
std::list< Condition * > * ImplicitTargetConditions
 

Private Attributes

SpellInfo const * _spellInfo
 
uint8 _effIndex
 

Static Private Attributes

static std::array< StaticData, TOTAL_SPELL_EFFECTS_data
 

Detailed Description

Constructor & Destructor Documentation

◆ SpellEffectInfo() [1/2]

SpellEffectInfo::SpellEffectInfo ( )
inline
275 : _spellInfo(nullptr), _effIndex(0), Effect(0), ApplyAuraName(0), Amplitude(0), DieSides(0),
@ MECHANIC_NONE
Definition: SharedDefines.h:1325
Mechanics Mechanic
Definition: SpellInfo.h:265
float BonusMultiplier
Definition: SpellInfo.h:262
float ValueMultiplier
Definition: SpellInfo.h:260
float PointsPerComboPoint
Definition: SpellInfo.h:259
int32 MiscValueB
Definition: SpellInfo.h:264
std::list< Condition * > * ImplicitTargetConditions
Definition: SpellInfo.h:273
uint32 TriggerSpell
Definition: SpellInfo.h:271
float DamageMultiplier
Definition: SpellInfo.h:261
uint32 Effect
Definition: SpellInfo.h:253
SpellInfo const * _spellInfo
Definition: SpellInfo.h:250
int32 MiscValue
Definition: SpellInfo.h:263
uint8 _effIndex
Definition: SpellInfo.h:251
uint32 ApplyAuraName
Definition: SpellInfo.h:254
int32 BasePoints
Definition: SpellInfo.h:258
uint32 ChainTarget
Definition: SpellInfo.h:269
float RealPointsPerLevel
Definition: SpellInfo.h:257
uint32 ItemType
Definition: SpellInfo.h:270
int32 DieSides
Definition: SpellInfo.h:256
SpellRadiusEntry const * RadiusEntry
Definition: SpellInfo.h:268
uint32 Amplitude
Definition: SpellInfo.h:255

◆ SpellEffectInfo() [2/2]

SpellEffectInfo::SpellEffectInfo ( SpellEntry const *  spellEntry,
SpellInfo const *  spellInfo,
uint8  effIndex 
)
326{
327 _spellInfo = spellInfo;
328 _effIndex = effIndex;
329 Effect = spellEntry->Effect[effIndex];
330 ApplyAuraName = spellEntry->EffectApplyAuraName[effIndex];
331 Amplitude = spellEntry->EffectAmplitude[effIndex];
332 DieSides = spellEntry->EffectDieSides[effIndex];
333 RealPointsPerLevel = spellEntry->EffectRealPointsPerLevel[effIndex];
334 BasePoints = spellEntry->EffectBasePoints[effIndex];
335 PointsPerComboPoint = spellEntry->EffectPointsPerComboPoint[effIndex];
336 ValueMultiplier = spellEntry->EffectValueMultiplier[effIndex];
337 DamageMultiplier = spellEntry->EffectDamageMultiplier[effIndex];
338 BonusMultiplier = spellEntry->EffectBonusMultiplier[effIndex];
339 MiscValue = spellEntry->EffectMiscValue[effIndex];
340 MiscValueB = spellEntry->EffectMiscValueB[effIndex];
341 Mechanic = Mechanics(spellEntry->EffectMechanic[effIndex]);
342 TargetA = SpellImplicitTargetInfo(spellEntry->EffectImplicitTargetA[effIndex]);
343 TargetB = SpellImplicitTargetInfo(spellEntry->EffectImplicitTargetB[effIndex]);
344 RadiusEntry = spellEntry->EffectRadiusIndex[effIndex] ? sSpellRadiusStore.LookupEntry(spellEntry->EffectRadiusIndex[effIndex]) : nullptr;
345 ChainTarget = spellEntry->EffectChainTarget[effIndex];
346 ItemType = spellEntry->EffectItemType[effIndex];
347 TriggerSpell = spellEntry->EffectTriggerSpell[effIndex];
348 SpellClassMask = spellEntry->EffectSpellClassMask[effIndex];
349 ImplicitTargetConditions = nullptr;
350}
DBCStorage< SpellRadiusEntry > sSpellRadiusStore(SpellRadiusfmt)
Mechanics
Definition: SharedDefines.h:1324
Definition: SpellInfo.h:217
flag96 SpellClassMask
Definition: SpellInfo.h:272
SpellImplicitTargetInfo TargetA
Definition: SpellInfo.h:266
SpellImplicitTargetInfo TargetB
Definition: SpellInfo.h:267

References _effIndex, _spellInfo, Amplitude, ApplyAuraName, BasePoints, BonusMultiplier, ChainTarget, DamageMultiplier, DieSides, Effect, SpellEntry::Effect, SpellEntry::EffectAmplitude, SpellEntry::EffectApplyAuraName, SpellEntry::EffectBasePoints, SpellEntry::EffectBonusMultiplier, SpellEntry::EffectChainTarget, SpellEntry::EffectDamageMultiplier, SpellEntry::EffectDieSides, SpellEntry::EffectImplicitTargetA, SpellEntry::EffectImplicitTargetB, SpellEntry::EffectItemType, SpellEntry::EffectMechanic, SpellEntry::EffectMiscValue, SpellEntry::EffectMiscValueB, SpellEntry::EffectPointsPerComboPoint, SpellEntry::EffectRadiusIndex, SpellEntry::EffectRealPointsPerLevel, SpellEntry::EffectSpellClassMask, SpellEntry::EffectTriggerSpell, SpellEntry::EffectValueMultiplier, ImplicitTargetConditions, ItemType, Mechanic, MiscValue, MiscValueB, PointsPerComboPoint, RadiusEntry, RealPointsPerLevel, SpellClassMask, sSpellRadiusStore, TargetA, TargetB, TriggerSpell, and ValueMultiplier.

Member Function Documentation

◆ CalcBaseValue()

int32 SpellEffectInfo::CalcBaseValue ( int32  value) const
523{
524 if (DieSides == 0)
525 return value;
526 else
527 return value - 1;
528}

References DieSides.

◆ CalcDamageMultiplier()

float SpellEffectInfo::CalcDamageMultiplier ( Unit caster,
Spell spell = nullptr 
) const
539{
540 float multiplier = DamageMultiplier;
541 if (Player* modOwner = (caster ? caster->GetSpellModOwner() : nullptr))
542 modOwner->ApplySpellMod(_spellInfo->Id, SPELLMOD_DAMAGE_MULTIPLIER, multiplier, spell);
543 return multiplier;
544}
@ SPELLMOD_DAMAGE_MULTIPLIER
Definition: SpellDefines.h:97
Definition: Player.h:1064
Player * GetSpellModOwner() const
Definition: Unit.cpp:16533
uint32 Id
Definition: SpellInfo.h:320

References _spellInfo, DamageMultiplier, Unit::GetSpellModOwner(), SpellInfo::Id, and SPELLMOD_DAMAGE_MULTIPLIER.

◆ CalcRadius()

float SpellEffectInfo::CalcRadius ( Unit caster = nullptr,
Spell spell = nullptr 
) const
552{
553 if (!HasRadius())
554 return 0.0f;
555
556 float radius = RadiusEntry->RadiusMin;
557 if (caster)
558 {
559 radius += RadiusEntry->RadiusPerLevel * caster->GetLevel();
560 radius = std::min(radius, RadiusEntry->RadiusMax);
561 if (Player* modOwner = caster->GetSpellModOwner())
562 modOwner->ApplySpellMod(_spellInfo->Id, SPELLMOD_RADIUS, radius, spell);
563 }
564
565 return radius;
566}
@ SPELLMOD_RADIUS
Definition: SpellDefines.h:83
uint8 GetLevel() const
Definition: Unit.h:855
bool HasRadius() const
Definition: SpellInfo.cpp:546
float RadiusPerLevel
Definition: DBCStructure.h:1788
float RadiusMax
Definition: DBCStructure.h:1789
float RadiusMin
Definition: DBCStructure.h:1787

References _spellInfo, Unit::GetLevel(), Unit::GetSpellModOwner(), HasRadius(), SpellInfo::Id, RadiusEntry, SpellRadiusEntry::RadiusMax, SpellRadiusEntry::RadiusMin, SpellRadiusEntry::RadiusPerLevel, and SPELLMOD_RADIUS.

◆ CalcValue()

int32 SpellEffectInfo::CalcValue ( Unit const *  caster = nullptr,
int32 const *  basePoints = nullptr,
Unit const *  target = nullptr 
) const
409{
410 float basePointsPerLevel = RealPointsPerLevel;
411 int32 basePoints = bp ? *bp : BasePoints;
412 int32 randomPoints = int32(DieSides);
413
414 // base amount modification based on spell lvl vs caster lvl
415 // xinef: added basePointsPerLevel check
416 if (caster && basePointsPerLevel != 0.0f)
417 {
418 int32 level = int32(caster->GetLevel());
419 if (level > int32(_spellInfo->MaxLevel) && _spellInfo->MaxLevel > 0)
420 level = int32(_spellInfo->MaxLevel);
421 else if (level < int32(_spellInfo->BaseLevel))
422 level = int32(_spellInfo->BaseLevel);
423
424 // xinef: if base level is greater than spell level, reduce by base level (eg. pilgrims foods)
425 level -= int32(std::max(_spellInfo->BaseLevel, _spellInfo->SpellLevel));
426 basePoints += int32(level * basePointsPerLevel);
427 }
428
429 // roll in a range <1;EffectDieSides> as of patch 3.3.3
430 switch (randomPoints)
431 {
432 case 0:
433 break;
434 case 1:
435 basePoints += 1;
436 break; // range 1..1
437 default:
438 // range can have positive (1..rand) and negative (rand..1) values, so order its for irand
439 int32 randvalue = (randomPoints >= 1)
440 ? irand(1, randomPoints)
441 : irand(randomPoints, 1);
442
443 basePoints += randvalue;
444 break;
445 }
446
447 float value = float(basePoints);
448
449 // random damage
450 if (caster)
451 {
452 // bonus amount from combo points
453 if (uint8 comboPoints = caster->GetComboPoints())
454 {
455 value += PointsPerComboPoint * comboPoints;
456 }
457
458 value = caster->ApplyEffectModifiers(_spellInfo, _effIndex, value);
459
460 // amount multiplication based on caster's level
461 if (!caster->IsControlledByPlayer() &&
462 _spellInfo->SpellLevel && _spellInfo->SpellLevel != caster->GetLevel() &&
464 {
465 bool canEffectScale = false;
466 switch (Effect)
467 {
480 canEffectScale = true;
481 break;
482 default:
483 break;
484 }
485
486 switch (ApplyAuraName)
487 {
489 case SPELL_AURA_DUMMY:
497 canEffectScale = true;
498 break;
499 default:
500 break;
501 }
502
504 canEffectScale = false;
505
506 if (canEffectScale)
507 {
508 CreatureTemplate const* cInfo = caster->ToCreature()->GetCreatureTemplate();
509
510 CreatureBaseStats const* pCBS = sObjectMgr->GetCreatureBaseStats(caster->GetLevel(), caster->getClass());
511 float CBSPowerCreature = pCBS->BaseDamage[cInfo->expansion];
512 CreatureBaseStats const* spellCBS = sObjectMgr->GetCreatureBaseStats(_spellInfo->SpellLevel, caster->getClass());
513 float CBSPowerSpell = spellCBS->BaseDamage[cInfo->expansion];
514 value *= CBSPowerCreature / CBSPowerSpell;
515 }
516 }
517 }
518
519 return int32(value);
520}
int32 irand(int32 min, int32 max)
Definition: Random.cpp:37
std::int32_t int32
Definition: Define.h:103
std::uint8_t uint8
Definition: Define.h:109
#define sObjectMgr
Definition: ObjectMgr.h:1623
@ SPELL_AURA_PERIODIC_DAMAGE
Definition: SpellAuraDefines.h:66
@ SPELL_AURA_DAMAGE_SHIELD
Definition: SpellAuraDefines.h:78
@ SPELL_AURA_PERIODIC_MANA_LEECH
Definition: SpellAuraDefines.h:127
@ SPELL_AURA_PERIODIC_HEAL
Definition: SpellAuraDefines.h:71
@ SPELL_AURA_DUMMY
Definition: SpellAuraDefines.h:67
@ SPELL_AURA_PERIODIC_TRIGGER_SPELL_WITH_VALUE
Definition: SpellAuraDefines.h:290
@ SPELL_AURA_SCHOOL_ABSORB
Definition: SpellAuraDefines.h:132
@ SPELL_AURA_PERIODIC_LEECH
Definition: SpellAuraDefines.h:116
@ SPELL_AURA_PROC_TRIGGER_DAMAGE
Definition: SpellAuraDefines.h:106
#define sSpellMgr
Definition: SpellMgr.h:825
@ SPELL_EFFECT_DUMMY
Definition: SharedDefines.h:781
@ SPELL_EFFECT_SCRIPT_EFFECT
Definition: SharedDefines.h:855
@ SPELL_EFFECT_POWER_BURN
Definition: SharedDefines.h:840
@ SPELL_EFFECT_TRIGGER_MISSILE_SPELL_WITH_VALUE
Definition: SharedDefines.h:926
@ SPELL_EFFECT_TRIGGER_SPELL_WITH_VALUE
Definition: SharedDefines.h:920
@ SPELL_EFFECT_HEALTH_LEECH
Definition: SharedDefines.h:787
@ SPELL_EFFECT_WEAPON_DAMAGE
Definition: SharedDefines.h:836
@ SPELL_EFFECT_HEAL
Definition: SharedDefines.h:788
@ SPELL_EFFECT_NORMALIZED_WEAPON_DMG
Definition: SharedDefines.h:899
@ SPELL_EFFECT_POWER_DRAIN
Definition: SharedDefines.h:786
@ SPELL_EFFECT_SCHOOL_DAMAGE
Definition: SharedDefines.h:780
@ SPELL_EFFECT_FORCE_CAST_WITH_VALUE
Definition: SharedDefines.h:919
@ SPELL_ATTR0_SCALES_WITH_CREATURE_LEVEL
Definition: SharedDefines.h:401
Definition: CreatureData.h:189
uint32 expansion
Definition: CreatureData.h:200
Definition: CreatureData.h:306
float BaseDamage[MAX_EXPANSIONS]
Definition: CreatureData.h:312
uint32 BaseLevel
Definition: SpellInfo.h:359
uint32 MaxLevel
Definition: SpellInfo.h:358
uint32 SpellLevel
Definition: SpellInfo.h:360
bool HasAttribute(SpellAttr0 attribute) const
Definition: SpellInfo.h:415
std::array< SpellEffectInfo, MAX_SPELL_EFFECTS > Effects
Definition: SpellInfo.h:393

References _effIndex, _spellInfo, ApplyAuraName, Unit::ApplyEffectModifiers(), CreatureBaseStats::BaseDamage, SpellInfo::BaseLevel, BasePoints, DieSides, Effect, SpellInfo::Effects, CreatureTemplate::expansion, Unit::getClass(), Unit::GetComboPoints(), Creature::GetCreatureTemplate(), Unit::GetLevel(), SpellInfo::HasAttribute(), irand(), Unit::IsControlledByPlayer(), SpellInfo::MaxLevel, PointsPerComboPoint, RealPointsPerLevel, sObjectMgr, SPELL_ATTR0_SCALES_WITH_CREATURE_LEVEL, SPELL_AURA_DAMAGE_SHIELD, SPELL_AURA_DUMMY, SPELL_AURA_PERIODIC_DAMAGE, SPELL_AURA_PERIODIC_HEAL, SPELL_AURA_PERIODIC_LEECH, SPELL_AURA_PERIODIC_MANA_LEECH, SPELL_AURA_PERIODIC_TRIGGER_SPELL_WITH_VALUE, SPELL_AURA_PROC_TRIGGER_DAMAGE, SPELL_AURA_SCHOOL_ABSORB, SPELL_EFFECT_DUMMY, SPELL_EFFECT_FORCE_CAST_WITH_VALUE, SPELL_EFFECT_HEAL, SPELL_EFFECT_HEALTH_LEECH, SPELL_EFFECT_NORMALIZED_WEAPON_DMG, SPELL_EFFECT_POWER_BURN, SPELL_EFFECT_POWER_DRAIN, SPELL_EFFECT_SCHOOL_DAMAGE, SPELL_EFFECT_SCRIPT_EFFECT, SPELL_EFFECT_TRIGGER_MISSILE_SPELL_WITH_VALUE, SPELL_EFFECT_TRIGGER_SPELL_WITH_VALUE, SPELL_EFFECT_WEAPON_DAMAGE, SpellInfo::SpellLevel, sSpellMgr, and Object::ToCreature().

Referenced by spell_dragonblight_corrosive_spit::AfterApply(), spell_dragonblight_corrosive_spit::PeriodicTick(), and spell_dragonblight_corrosive_spit::Validate().

◆ CalcValueMultiplier()

float SpellEffectInfo::CalcValueMultiplier ( Unit caster,
Spell spell = nullptr 
) const
531{
532 float multiplier = ValueMultiplier;
533 if (Player* modOwner = (caster ? caster->GetSpellModOwner() : nullptr))
534 modOwner->ApplySpellMod(_spellInfo->Id, SPELLMOD_VALUE_MULTIPLIER, multiplier, spell);
535 return multiplier;
536}
@ SPELLMOD_VALUE_MULTIPLIER
Definition: SpellDefines.h:104

References _spellInfo, Unit::GetSpellModOwner(), SpellInfo::Id, SPELLMOD_VALUE_MULTIPLIER, and ValueMultiplier.

◆ GetImplicitTargetType()

SpellEffectImplicitTargetTypes SpellEffectInfo::GetImplicitTargetType ( ) const
598{
599 return _data[Effect].ImplicitTargetType;
600}
static std::array< StaticData, TOTAL_SPELL_EFFECTS > _data
Definition: SpellInfo.h:312

References _data, and Effect.

◆ GetMissingTargetMask()

uint32 SpellEffectInfo::GetMissingTargetMask ( bool  srcSet = false,
bool  destSet = false,
uint32  mask = 0 
) const
574{
575 uint32 effImplicitTargetMask = GetTargetFlagMask(GetUsedTargetObjectType());
577
578 // remove all flags covered by effect target mask
579 if (providedTargetMask & TARGET_FLAG_UNIT_MASK)
580 effImplicitTargetMask &= ~(TARGET_FLAG_UNIT_MASK);
581 if (providedTargetMask & TARGET_FLAG_CORPSE_MASK)
582 effImplicitTargetMask &= ~(TARGET_FLAG_UNIT_MASK | TARGET_FLAG_CORPSE_MASK);
583 if (providedTargetMask & TARGET_FLAG_GAMEOBJECT_ITEM)
585 if (providedTargetMask & TARGET_FLAG_GAMEOBJECT)
586 effImplicitTargetMask &= ~(TARGET_FLAG_GAMEOBJECT | TARGET_FLAG_GAMEOBJECT_ITEM);
587 if (providedTargetMask & TARGET_FLAG_ITEM)
588 effImplicitTargetMask &= ~(TARGET_FLAG_ITEM | TARGET_FLAG_GAMEOBJECT_ITEM);
589 if (dstSet || providedTargetMask & TARGET_FLAG_DEST_LOCATION)
590 effImplicitTargetMask &= ~(TARGET_FLAG_DEST_LOCATION);
591 if (srcSet || providedTargetMask & TARGET_FLAG_SOURCE_LOCATION)
592 effImplicitTargetMask &= ~(TARGET_FLAG_SOURCE_LOCATION);
593
594 return effImplicitTargetMask;
595}
std::uint32_t uint32
Definition: Define.h:107
@ TARGET_FLAG_GAMEOBJECT
Definition: SpellInfo.h:57
@ TARGET_FLAG_ITEM
Definition: SpellInfo.h:50
@ TARGET_FLAG_GAMEOBJECT_ITEM
Definition: SpellInfo.h:60
@ TARGET_FLAG_DEST_LOCATION
Definition: SpellInfo.h:52
@ TARGET_FLAG_SOURCE_LOCATION
Definition: SpellInfo.h:51
@ TARGET_FLAG_UNIT_MASK
Definition: SpellInfo.h:68
@ TARGET_FLAG_CORPSE_MASK
Definition: SpellInfo.h:71
uint32 GetTargetFlagMask(SpellTargetObjectTypes objType)
Definition: SpellInfo.cpp:30
SpellTargetObjectTypes GetObjectType() const
Definition: SpellInfo.cpp:79
SpellTargetObjectTypes GetUsedTargetObjectType() const
Definition: SpellInfo.cpp:602

References SpellImplicitTargetInfo::GetObjectType(), GetTargetFlagMask(), GetUsedTargetObjectType(), TARGET_FLAG_CORPSE_MASK, TARGET_FLAG_DEST_LOCATION, TARGET_FLAG_GAMEOBJECT, TARGET_FLAG_GAMEOBJECT_ITEM, TARGET_FLAG_ITEM, TARGET_FLAG_SOURCE_LOCATION, TARGET_FLAG_UNIT_MASK, TargetA, and TargetB.

◆ GetProvidedTargetMask()

uint32 SpellEffectInfo::GetProvidedTargetMask ( ) const

◆ GetUsedTargetObjectType()

SpellTargetObjectTypes SpellEffectInfo::GetUsedTargetObjectType ( ) const
603{
604 return _data[Effect].UsedTargetObjectType;
605}

References _data, and Effect.

Referenced by GetMissingTargetMask().

◆ HasRadius()

bool SpellEffectInfo::HasRadius ( ) const
547{
548 return RadiusEntry != nullptr;
549}

References RadiusEntry.

Referenced by CalcRadius().

◆ IsAreaAuraEffect()

bool SpellEffectInfo::IsAreaAuraEffect ( ) const
378{
385 return true;
386 return false;
387}
@ SPELL_EFFECT_APPLY_AREA_AURA_PARTY
Definition: SharedDefines.h:813
@ SPELL_EFFECT_APPLY_AREA_AURA_FRIEND
Definition: SharedDefines.h:906
@ SPELL_EFFECT_APPLY_AREA_AURA_PET
Definition: SharedDefines.h:897
@ SPELL_EFFECT_APPLY_AREA_AURA_RAID
Definition: SharedDefines.h:843
@ SPELL_EFFECT_APPLY_AREA_AURA_ENEMY
Definition: SharedDefines.h:907
@ SPELL_EFFECT_APPLY_AREA_AURA_OWNER
Definition: SharedDefines.h:921

References Effect, 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, and SPELL_EFFECT_APPLY_AREA_AURA_RAID.

Referenced by IsUnitOwnedAuraEffect().

◆ IsAura() [1/2]

bool SpellEffectInfo::IsAura ( ) const
363{
365}
@ SPELL_EFFECT_PERSISTENT_AREA_AURA
Definition: SharedDefines.h:805
bool IsUnitOwnedAuraEffect() const
Definition: SpellInfo.cpp:403

References ApplyAuraName, Effect, IsUnitOwnedAuraEffect(), and SPELL_EFFECT_PERSISTENT_AREA_AURA.

Referenced by IsAura().

◆ IsAura() [2/2]

bool SpellEffectInfo::IsAura ( AuraType  aura) const
368{
369 return IsAura() && ApplyAuraName == uint32(aura);
370}
bool IsAura() const
Definition: SpellInfo.cpp:362

References ApplyAuraName, and IsAura().

◆ IsEffect() [1/2]

bool SpellEffectInfo::IsEffect ( ) const
353{
354 return Effect != 0;
355}

References Effect.

◆ IsEffect() [2/2]

bool SpellEffectInfo::IsEffect ( SpellEffects  effectName) const
358{
359 return Effect == effectName;
360}

References Effect.

◆ IsFarDestTargetEffect()

bool SpellEffectInfo::IsFarDestTargetEffect ( ) const
399{
401}
@ SPELL_EFFECT_TELEPORT_UNITS
Definition: SharedDefines.h:783

References Effect, and SPELL_EFFECT_TELEPORT_UNITS.

◆ IsFarUnitTargetEffect()

bool SpellEffectInfo::IsFarUnitTargetEffect ( ) const
390{
395 /*|| (Effect == SPELL_EFFECT_SKIN_PLAYER_CORPSE) Xinef: This is not Far Unit Target Effect*/;
396}
@ SPELL_EFFECT_SUMMON_RAF_FRIEND
Definition: SharedDefines.h:930
@ SPELL_EFFECT_SUMMON_PLAYER
Definition: SharedDefines.h:863
@ SPELL_EFFECT_RESURRECT
Definition: SharedDefines.h:796
@ SPELL_EFFECT_RESURRECT_NEW
Definition: SharedDefines.h:891

References Effect, SPELL_EFFECT_RESURRECT, SPELL_EFFECT_RESURRECT_NEW, SPELL_EFFECT_SUMMON_PLAYER, and SPELL_EFFECT_SUMMON_RAF_FRIEND.

◆ IsTargetingArea()

bool SpellEffectInfo::IsTargetingArea ( ) const
373{
374 return TargetA.IsArea() || TargetB.IsArea();
375}
bool IsArea() const
Definition: SpellInfo.cpp:64

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

◆ IsUnitOwnedAuraEffect()

bool SpellEffectInfo::IsUnitOwnedAuraEffect ( ) const
404{
406}
@ SPELL_EFFECT_APPLY_AURA
Definition: SharedDefines.h:784
bool IsAreaAuraEffect() const
Definition: SpellInfo.cpp:377

References Effect, IsAreaAuraEffect(), and SPELL_EFFECT_APPLY_AURA.

Referenced by IsAura().

Member Data Documentation

◆ _data

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

◆ _effIndex

uint8 SpellEffectInfo::_effIndex
private

Referenced by CalcValue(), and SpellEffectInfo().

◆ _spellInfo

SpellInfo const* SpellEffectInfo::_spellInfo
private

◆ Amplitude

uint32 SpellEffectInfo::Amplitude

Referenced by SpellEffectInfo().

◆ ApplyAuraName

uint32 SpellEffectInfo::ApplyAuraName

◆ BasePoints

int32 SpellEffectInfo::BasePoints

Referenced by CalcValue(), and SpellEffectInfo().

◆ BonusMultiplier

float SpellEffectInfo::BonusMultiplier

Referenced by SpellEffectInfo().

◆ ChainTarget

uint32 SpellEffectInfo::ChainTarget

Referenced by SpellEffectInfo().

◆ DamageMultiplier

float SpellEffectInfo::DamageMultiplier

◆ DieSides

int32 SpellEffectInfo::DieSides

◆ Effect

◆ ImplicitTargetConditions

std::list<Condition*>* SpellEffectInfo::ImplicitTargetConditions

Referenced by SpellEffectInfo().

◆ ItemType

uint32 SpellEffectInfo::ItemType

Referenced by SpellEffectInfo().

◆ Mechanic

Mechanics SpellEffectInfo::Mechanic

Referenced by SpellEffectInfo().

◆ MiscValue

int32 SpellEffectInfo::MiscValue

◆ MiscValueB

int32 SpellEffectInfo::MiscValueB

Referenced by SpellEffectInfo().

◆ PointsPerComboPoint

float SpellEffectInfo::PointsPerComboPoint

Referenced by CalcValue(), and SpellEffectInfo().

◆ RadiusEntry

SpellRadiusEntry const* SpellEffectInfo::RadiusEntry

◆ RealPointsPerLevel

float SpellEffectInfo::RealPointsPerLevel

Referenced by CalcValue(), and SpellEffectInfo().

◆ SpellClassMask

flag96 SpellEffectInfo::SpellClassMask

Referenced by SpellEffectInfo().

◆ TargetA

◆ TargetB

◆ TriggerSpell

uint32 SpellEffectInfo::TriggerSpell

Referenced by SpellEffectInfo().

◆ ValueMultiplier

float SpellEffectInfo::ValueMultiplier