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
273 : _spellInfo(nullptr), _effIndex(0), Effect(0), ApplyAuraName(0), Amplitude(0), DieSides(0),
@ MECHANIC_NONE
Definition: SharedDefines.h:1325
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 
)
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: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
520{
521 if (DieSides == 0)
522 return value;
523 else
524 return value - 1;
525}

References DieSides.

◆ CalcDamageMultiplier()

float SpellEffectInfo::CalcDamageMultiplier ( Unit caster,
Spell spell = nullptr 
) const
536{
537 float multiplier = DamageMultiplier;
538 if (Player* modOwner = (caster ? caster->GetSpellModOwner() : nullptr))
539 modOwner->ApplySpellMod(_spellInfo->Id, SPELLMOD_DAMAGE_MULTIPLIER, multiplier, spell);
540 return multiplier;
541}
@ SPELLMOD_DAMAGE_MULTIPLIER
Definition: SpellDefines.h:97
Definition: Player.h:1056
Player * GetSpellModOwner() const
Definition: Unit.cpp:16845
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
549{
550 if (!HasRadius())
551 return 0.0f;
552
553 float radius = RadiusEntry->RadiusMin;
554 if (caster)
555 {
556 radius += RadiusEntry->RadiusPerLevel * caster->GetLevel();
557 radius = std::min(radius, RadiusEntry->RadiusMax);
558 if (Player* modOwner = caster->GetSpellModOwner())
559 modOwner->ApplySpellMod(_spellInfo->Id, SPELLMOD_RADIUS, radius, spell);
560 }
561
562 return radius;
563}
@ SPELLMOD_RADIUS
Definition: SpellDefines.h:83
uint8 GetLevel() const
Definition: Unit.h:1432
bool HasRadius() const
Definition: SpellInfo.cpp:543
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
503 if (canEffectScale)
504 {
505 CreatureTemplate const* cInfo = caster->ToCreature()->GetCreatureTemplate();
506
507 CreatureBaseStats const* pCBS = sObjectMgr->GetCreatureBaseStats(caster->GetLevel(), caster->getClass());
508 float CBSPowerCreature = pCBS->BaseDamage[cInfo->expansion];
509 CreatureBaseStats const* spellCBS = sObjectMgr->GetCreatureBaseStats(_spellInfo->SpellLevel, caster->getClass());
510 float CBSPowerSpell = spellCBS->BaseDamage[cInfo->expansion];
511 value *= CBSPowerCreature / CBSPowerSpell;
512 }
513 }
514 }
515
516 return int32(value);
517}
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
#define sObjectMgr
Definition: ObjectMgr.h:1640
@ 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: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:176
uint32 expansion
Definition: CreatureData.h:190
Definition: CreatureData.h:292
float BaseDamage[MAX_EXPANSIONS]
Definition: CreatureData.h:298
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

References _effIndex, _spellInfo, ApplyAuraName, Unit::ApplyEffectModifiers(), CreatureBaseStats::BaseDamage, SpellInfo::BaseLevel, BasePoints, DieSides, Effect, 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, 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
528{
529 float multiplier = ValueMultiplier;
530 if (Player* modOwner = (caster ? caster->GetSpellModOwner() : nullptr))
531 modOwner->ApplySpellMod(_spellInfo->Id, SPELLMOD_VALUE_MULTIPLIER, multiplier, spell);
532 return multiplier;
533}
@ SPELLMOD_VALUE_MULTIPLIER
Definition: SpellDefines.h:104

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

◆ GetImplicitTargetType()

SpellEffectImplicitTargetTypes SpellEffectInfo::GetImplicitTargetType ( ) const
595{
596 return _data[Effect].ImplicitTargetType;
597}
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
571{
572 uint32 effImplicitTargetMask = GetTargetFlagMask(GetUsedTargetObjectType());
574
575 // remove all flags covered by effect target mask
576 if (providedTargetMask & TARGET_FLAG_UNIT_MASK)
577 effImplicitTargetMask &= ~(TARGET_FLAG_UNIT_MASK);
578 if (providedTargetMask & TARGET_FLAG_CORPSE_MASK)
579 effImplicitTargetMask &= ~(TARGET_FLAG_UNIT_MASK | TARGET_FLAG_CORPSE_MASK);
580 if (providedTargetMask & TARGET_FLAG_GAMEOBJECT_ITEM)
582 if (providedTargetMask & TARGET_FLAG_GAMEOBJECT)
583 effImplicitTargetMask &= ~(TARGET_FLAG_GAMEOBJECT | TARGET_FLAG_GAMEOBJECT_ITEM);
584 if (providedTargetMask & TARGET_FLAG_ITEM)
585 effImplicitTargetMask &= ~(TARGET_FLAG_ITEM | TARGET_FLAG_GAMEOBJECT_ITEM);
586 if (dstSet || providedTargetMask & TARGET_FLAG_DEST_LOCATION)
587 effImplicitTargetMask &= ~(TARGET_FLAG_DEST_LOCATION);
588 if (srcSet || providedTargetMask & TARGET_FLAG_SOURCE_LOCATION)
589 effImplicitTargetMask &= ~(TARGET_FLAG_SOURCE_LOCATION);
590
591 return effImplicitTargetMask;
592}
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:30
SpellTargetObjectTypes GetObjectType() const
Definition: SpellInfo.cpp:79
SpellTargetObjectTypes GetUsedTargetObjectType() const
Definition: SpellInfo.cpp:599

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
600{
601 return _data[Effect].UsedTargetObjectType;
602}

References _data, and Effect.

Referenced by GetMissingTargetMask().

◆ HasRadius()

bool SpellEffectInfo::HasRadius ( ) const
544{
545 return RadiusEntry != nullptr;
546}

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

◆ 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