aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Spells')
-rw-r--r--src/server/game/Spells/Auras/SpellAuraEffects.cpp4
-rw-r--r--src/server/game/Spells/SpellInfo.cpp20
2 files changed, 10 insertions, 14 deletions
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
index 8eabf4d148a..3357b856a56 100644
--- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
@@ -5835,7 +5835,7 @@ void AuraEffect::HandlePeriodicDamageAurasTick(Unit* target, Unit* caster) const
damage = caster->SpellCriticalDamageBonus(m_spellInfo, damage, target);
int32 dmg = damage;
- caster->ApplyResilience(target, &dmg, crit);
+ caster->ApplyResilience(target, &dmg);
damage = dmg;
caster->CalcAbsorbResist(target, GetSpellInfo()->GetSchoolMask(), DOT, damage, &absorb, &resist, GetSpellInfo());
@@ -5902,7 +5902,7 @@ void AuraEffect::HandlePeriodicHealthLeechAuraTick(Unit* target, Unit* caster) c
}
int32 dmg = damage;
- caster->ApplyResilience(target, &dmg, crit);
+ caster->ApplyResilience(target, &dmg);
damage = dmg;
caster->CalcAbsorbResist(target, GetSpellInfo()->GetSchoolMask(), DOT, damage, &absorb, &resist, m_spellInfo);
diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp
index a094bf0603d..334f0cd80d5 100644
--- a/src/server/game/Spells/SpellInfo.cpp
+++ b/src/server/game/Spells/SpellInfo.cpp
@@ -613,22 +613,18 @@ bool SpellEffectInfo::HasMaxRadius() const
float SpellEffectInfo::CalcRadius(Unit* caster, Spell* spell) const
{
- if (!HasRadius())
- {
- if (HasMaxRadius())
- {
- //! Still not sure which to pick. Anyway at the current time (Patch 4.3.4) most of the spell effects
- //! have no radius mod per level, and RadiusMin is equal to RadiusMax.
- return MaxRadiusEntry->RadiusMin;
- }
+ const SpellRadiusEntry* entry = RadiusEntry;
+ if (!HasRadius() && HasMaxRadius())
+ entry = MaxRadiusEntry;
+
+ if (!entry)
return 0.0f;
- }
- float radius = RadiusEntry->RadiusMin;
+ float radius = entry->RadiusMin;
if (caster)
{
- radius += RadiusEntry->RadiusPerLevel * caster->getLevel();
- radius = std::min(radius, RadiusEntry->RadiusMax);
+ radius += entry->RadiusPerLevel * caster->getLevel();
+ radius = std::min(radius, entry->RadiusMax);
if (Player* modOwner = caster->GetSpellModOwner())
modOwner->ApplySpellMod(_spellInfo->Id, SPELLMOD_RADIUS, radius, spell);
}