AzeorthCore 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
273 : _spellInfo(nullptr), _effIndex(0), Effect(0), ApplyAuraName(0), Amplitude(0), DieSides(0),
@ MECHANIC_NONE
Definition: SharedDefines.h:1297
Mechanics Mechanic
Definition: SpellInfo.h:263
float BonusMultiplier
Definition: SpellInfo.h:260
float ValueMultiplier
Definition: SpellInfo.h:258
float PointsPerComboPoint
Definition: SpellInfo.h:257
int32 MiscValueB
Definition: SpellInfo.h:262
std::list< Condition * > * ImplicitTargetConditions
Definition: SpellInfo.h:271
uint32 TriggerSpell
Definition: SpellInfo.h:269
float DamageMultiplier
Definition: SpellInfo.h:259
uint32 Effect
Definition: SpellInfo.h:251
SpellInfo const * _spellInfo
Definition: SpellInfo.h:248
int32 MiscValue
Definition: SpellInfo.h:261
uint8 _effIndex
Definition: SpellInfo.h:249
uint32 ApplyAuraName
Definition: SpellInfo.h:252
int32 BasePoints
Definition: SpellInfo.h:256
uint32 ChainTarget
Definition: SpellInfo.h:267
float RealPointsPerLevel
Definition: SpellInfo.h:255
uint32 ItemType
Definition: SpellInfo.h:268
int32 DieSides
Definition: SpellInfo.h:254
SpellRadiusEntry const * RadiusEntry
Definition: SpellInfo.h:266
uint32 Amplitude
Definition: SpellInfo.h:253

◆ SpellEffectInfo() [2/2]

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

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
516{
517 if (DieSides == 0)
518 return value;
519 else
520 return value - 1;
521}

References DieSides.

◆ CalcDamageMultiplier()

float SpellEffectInfo::CalcDamageMultiplier ( Unit caster,
Spell spell = nullptr 
) const
532{
533 float multiplier = DamageMultiplier;
534 if (Player* modOwner = (caster ? caster->GetSpellModOwner() : nullptr))
535 modOwner->ApplySpellMod(_spellInfo->Id, SPELLMOD_DAMAGE_MULTIPLIER, multiplier, spell);
536 return multiplier;
537}
@ SPELLMOD_DAMAGE_MULTIPLIER
Definition: SpellDefines.h:97
Definition: Player.h:1046
Player * GetSpellModOwner() const
Definition: Unit.cpp:16681
uint32 Id
Definition: SpellInfo.h:318

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

◆ CalcRadius()

float SpellEffectInfo::CalcRadius ( Unit caster = nullptr,
Spell spell = nullptr 
) const
545{
546 if (!HasRadius())
547 return 0.0f;
548
549 float radius = RadiusEntry->RadiusMin;
550 if (caster)
551 {
552 radius += RadiusEntry->RadiusPerLevel * caster->GetLevel();
553 radius = std::min(radius, RadiusEntry->RadiusMax);
554 if (Player* modOwner = caster->GetSpellModOwner())
555 modOwner->ApplySpellMod(_spellInfo->Id, SPELLMOD_RADIUS, radius, spell);
556 }
557
558 return radius;
559}
@ SPELLMOD_RADIUS
Definition: SpellDefines.h:83
uint8 GetLevel() const
Definition: Unit.h:1421
bool HasRadius() const
Definition: SpellInfo.cpp:539
float RadiusPerLevel
Definition: DBCStructure.h:1749
float RadiusMax
Definition: DBCStructure.h:1750
float RadiusMin
Definition: DBCStructure.h:1748

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
408{
409 float basePointsPerLevel = RealPointsPerLevel;
410 int32 basePoints = bp ? *bp : BasePoints;
411 int32 randomPoints = int32(DieSides);
412
413 // base amount modification based on spell lvl vs caster lvl
414 // xinef: added basePointsPerLevel check
415 if (caster && basePointsPerLevel != 0.0f)
416 {
417 int32 level = int32(caster->GetLevel());
418 if (level > int32(_spellInfo->MaxLevel) && _spellInfo->MaxLevel > 0)
419 level = int32(_spellInfo->MaxLevel);
420 else if (level < int32(_spellInfo->BaseLevel))
421 level = int32(_spellInfo->BaseLevel);
422
423 // xinef: if base level is greater than spell level, reduce by base level (eg. pilgrims foods)
424 level -= int32(std::max(_spellInfo->BaseLevel, _spellInfo->SpellLevel));
425 basePoints += int32(level * basePointsPerLevel);
426 }
427
428 // roll in a range <1;EffectDieSides> as of patch 3.3.3
429 switch (randomPoints)
430 {
431 case 0:
432 break;
433 case 1:
434 basePoints += 1;
435 break; // range 1..1
436 default:
437 // range can have positive (1..rand) and negative (rand..1) values, so order its for irand
438 int32 randvalue = (randomPoints >= 1)
439 ? irand(1, randomPoints)
440 : irand(randomPoints, 1);
441
442 basePoints += randvalue;
443 break;
444 }
445
446 float value = float(basePoints);
447
448 // random damage
449 if (caster)
450 {
451 // bonus amount from combo points
452 if (uint8 comboPoints = caster->GetComboPoints())
453 {
454 value += PointsPerComboPoint * comboPoints;
455 }
456
457 value = caster->ApplyEffectModifiers(_spellInfo, _effIndex, value);
458
459 // amount multiplication based on caster's level
460 if (!caster->IsControlledByPlayer() &&
461 _spellInfo->SpellLevel && _spellInfo->SpellLevel != caster->GetLevel() &&
463 {
464 bool canEffectScale = false;
465 switch (Effect)
466 {
479 canEffectScale = true;
480 break;
481 default:
482 break;
483 }
484
485 switch (ApplyAuraName)
486 {
488 case SPELL_AURA_DUMMY:
496 canEffectScale = true;
497 break;
498 default:
499 break;
500 }
501
502 if (canEffectScale)
503 {
504 GtNPCManaCostScalerEntry const* spellScaler = sGtNPCManaCostScalerStore.LookupEntry(_spellInfo->SpellLevel - 1);
505 GtNPCManaCostScalerEntry const* casterScaler = sGtNPCManaCostScalerStore.LookupEntry(caster->GetLevel() - 1);
506 if (spellScaler && casterScaler)
507 value *= casterScaler->ratio / spellScaler->ratio;
508 }
509 }
510 }
511
512 return int32(value);
513}
std::int32_t int32
Definition: Define.h:104
std::uint8_t uint8
Definition: Define.h:110
int32 irand(int32 min, int32 max)
Definition: Random.cpp:37
DBCStorage< GtNPCManaCostScalerEntry > sGtNPCManaCostScalerStore(GtNPCManaCostScalerfmt)
@ 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
@ SPELL_EFFECT_DUMMY
Definition: SharedDefines.h:753
@ SPELL_EFFECT_SCRIPT_EFFECT
Definition: SharedDefines.h:827
@ SPELL_EFFECT_POWER_BURN
Definition: SharedDefines.h:812
@ SPELL_EFFECT_TRIGGER_MISSILE_SPELL_WITH_VALUE
Definition: SharedDefines.h:898
@ SPELL_EFFECT_TRIGGER_SPELL_WITH_VALUE
Definition: SharedDefines.h:892
@ SPELL_EFFECT_HEALTH_LEECH
Definition: SharedDefines.h:759
@ SPELL_EFFECT_WEAPON_DAMAGE
Definition: SharedDefines.h:808
@ SPELL_EFFECT_HEAL
Definition: SharedDefines.h:760
@ SPELL_EFFECT_NORMALIZED_WEAPON_DMG
Definition: SharedDefines.h:871
@ SPELL_EFFECT_POWER_DRAIN
Definition: SharedDefines.h:758
@ SPELL_EFFECT_SCHOOL_DAMAGE
Definition: SharedDefines.h:752
@ SPELL_EFFECT_FORCE_CAST_WITH_VALUE
Definition: SharedDefines.h:891
@ SPELL_ATTR0_SCALES_WITH_CREATURE_LEVEL
Definition: SharedDefines.h:373
uint32 BaseLevel
Definition: SpellInfo.h:357
uint32 MaxLevel
Definition: SpellInfo.h:356
uint32 SpellLevel
Definition: SpellInfo.h:358
bool HasAttribute(SpellAttr0 attribute) const
Definition: SpellInfo.h:412
Definition: DBCStructure.h:1058
float ratio
Definition: DBCStructure.h:1059

References _effIndex, _spellInfo, ApplyAuraName, Unit::ApplyEffectModifiers(), SpellInfo::BaseLevel, BasePoints, DieSides, Effect, Unit::GetComboPoints(), Unit::GetLevel(), SpellInfo::HasAttribute(), irand(), Unit::IsControlledByPlayer(), SpellInfo::MaxLevel, PointsPerComboPoint, GtNPCManaCostScalerEntry::ratio, RealPointsPerLevel, sGtNPCManaCostScalerStore, 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, and SpellInfo::SpellLevel.

◆ CalcValueMultiplier()

float SpellEffectInfo::CalcValueMultiplier ( Unit caster,
Spell spell = nullptr 
) const
524{
525 float multiplier = ValueMultiplier;
526 if (Player* modOwner = (caster ? caster->GetSpellModOwner() : nullptr))
527 modOwner->ApplySpellMod(_spellInfo->Id, SPELLMOD_VALUE_MULTIPLIER, multiplier, spell);
528 return multiplier;
529}
@ SPELLMOD_VALUE_MULTIPLIER
Definition: SpellDefines.h:104

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

◆ GetImplicitTargetType()

SpellEffectImplicitTargetTypes SpellEffectInfo::GetImplicitTargetType ( ) const
591{
592 return _data[Effect].ImplicitTargetType;
593}
static std::array< StaticData, TOTAL_SPELL_EFFECTS > _data
Definition: SpellInfo.h:310

References _data, and Effect.

◆ GetMissingTargetMask()

uint32 SpellEffectInfo::GetMissingTargetMask ( bool  srcSet = false,
bool  destSet = false,
uint32  mask = 0 
) const
567{
568 uint32 effImplicitTargetMask = GetTargetFlagMask(GetUsedTargetObjectType());
570
571 // remove all flags covered by effect target mask
572 if (providedTargetMask & TARGET_FLAG_UNIT_MASK)
573 effImplicitTargetMask &= ~(TARGET_FLAG_UNIT_MASK);
574 if (providedTargetMask & TARGET_FLAG_CORPSE_MASK)
575 effImplicitTargetMask &= ~(TARGET_FLAG_UNIT_MASK | TARGET_FLAG_CORPSE_MASK);
576 if (providedTargetMask & TARGET_FLAG_GAMEOBJECT_ITEM)
578 if (providedTargetMask & TARGET_FLAG_GAMEOBJECT)
579 effImplicitTargetMask &= ~(TARGET_FLAG_GAMEOBJECT | TARGET_FLAG_GAMEOBJECT_ITEM);
580 if (providedTargetMask & TARGET_FLAG_ITEM)
581 effImplicitTargetMask &= ~(TARGET_FLAG_ITEM | TARGET_FLAG_GAMEOBJECT_ITEM);
582 if (dstSet || providedTargetMask & TARGET_FLAG_DEST_LOCATION)
583 effImplicitTargetMask &= ~(TARGET_FLAG_DEST_LOCATION);
584 if (srcSet || providedTargetMask & TARGET_FLAG_SOURCE_LOCATION)
585 effImplicitTargetMask &= ~(TARGET_FLAG_SOURCE_LOCATION);
586
587 return effImplicitTargetMask;
588}
std::uint32_t uint32
Definition: Define.h:108
@ 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:29
SpellTargetObjectTypes GetObjectType() const
Definition: SpellInfo.cpp:78
SpellTargetObjectTypes GetUsedTargetObjectType() const
Definition: SpellInfo.cpp:595

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
596{
597 return _data[Effect].UsedTargetObjectType;
598}

References _data, and Effect.

Referenced by GetMissingTargetMask().

◆ HasRadius()

bool SpellEffectInfo::HasRadius ( ) const
540{
541 return RadiusEntry != nullptr;
542}

References RadiusEntry.

Referenced by CalcRadius().

◆ IsAreaAuraEffect()

bool SpellEffectInfo::IsAreaAuraEffect ( ) const
377{
384 return true;
385 return false;
386}
@ SPELL_EFFECT_APPLY_AREA_AURA_PARTY
Definition: SharedDefines.h:785
@ SPELL_EFFECT_APPLY_AREA_AURA_FRIEND
Definition: SharedDefines.h:878
@ SPELL_EFFECT_APPLY_AREA_AURA_PET
Definition: SharedDefines.h:869
@ SPELL_EFFECT_APPLY_AREA_AURA_RAID
Definition: SharedDefines.h:815
@ SPELL_EFFECT_APPLY_AREA_AURA_ENEMY
Definition: SharedDefines.h:879
@ SPELL_EFFECT_APPLY_AREA_AURA_OWNER
Definition: SharedDefines.h:893

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
362{
364}
@ SPELL_EFFECT_PERSISTENT_AREA_AURA
Definition: SharedDefines.h:777
bool IsUnitOwnedAuraEffect() const
Definition: SpellInfo.cpp:402

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

Referenced by IsAura().

◆ IsAura() [2/2]

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

References ApplyAuraName, and IsAura().

◆ IsEffect() [1/2]

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

References Effect.

◆ IsEffect() [2/2]

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

References Effect.

◆ IsFarDestTargetEffect()

bool SpellEffectInfo::IsFarDestTargetEffect ( ) const
398{
400}
@ SPELL_EFFECT_TELEPORT_UNITS
Definition: SharedDefines.h:755

References Effect, and SPELL_EFFECT_TELEPORT_UNITS.

◆ IsFarUnitTargetEffect()

bool SpellEffectInfo::IsFarUnitTargetEffect ( ) const
389{
394 /*|| (Effect == SPELL_EFFECT_SKIN_PLAYER_CORPSE) Xinef: This is not Far Unit Target Effect*/;
395}
@ SPELL_EFFECT_SUMMON_RAF_FRIEND
Definition: SharedDefines.h:902
@ SPELL_EFFECT_SUMMON_PLAYER
Definition: SharedDefines.h:835
@ SPELL_EFFECT_RESURRECT
Definition: SharedDefines.h:768
@ SPELL_EFFECT_RESURRECT_NEW
Definition: SharedDefines.h:863

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

◆ IsTargetingArea()

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

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

◆ IsUnitOwnedAuraEffect()

bool SpellEffectInfo::IsUnitOwnedAuraEffect ( ) const
403{
405}
@ SPELL_EFFECT_APPLY_AURA
Definition: SharedDefines.h:756
bool IsAreaAuraEffect() const
Definition: SpellInfo.cpp:376

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