diff options
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index cfe1096930a..fa4b8ea9a4a 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -367,7 +367,7 @@ void Spell::EffectSchoolDMG(SpellEffIndex effIndex) // Shockwave else if (m_spellInfo->Id == 46968) { - int32 pct = unitCaster->CalculateSpellDamage(m_spellInfo, EFFECT_2); + int32 pct = unitCaster->CalculateSpellDamage(m_spellInfo->GetEffect(EFFECT_2)); if (pct > 0) damage += int32(CalculatePct(unitCaster->GetTotalAttackPowerValue(BASE_ATTACK), pct)); break; @@ -425,10 +425,10 @@ void Spell::EffectSchoolDMG(SpellEffIndex effIndex) // And multiply by amount of ticks to get damage potential pdamage *= aura->GetSpellInfo()->GetMaxTicks(); - int32 pct_dir = unitCaster->CalculateSpellDamage(m_spellInfo, EFFECT_1); + int32 pct_dir = unitCaster->CalculateSpellDamage(m_spellInfo->GetEffect(EFFECT_1)); damage += CalculatePct(pdamage, pct_dir); - int32 pct_dot = unitCaster->CalculateSpellDamage(m_spellInfo, EFFECT_2); + int32 pct_dot = unitCaster->CalculateSpellDamage(m_spellInfo->GetEffect(EFFECT_2)); int32 const dotBasePoints = CalculatePct(pdamage, pct_dot); ASSERT(m_spellInfo->GetMaxTicks() > 0); @@ -652,7 +652,7 @@ void Spell::EffectSchoolDMG(SpellEffIndex effIndex) float average = (minTotal + maxTotal) / 2; // Add main hand dps * effect[2] amount - int32 count = unitCaster->CalculateSpellDamage(m_spellInfo, EFFECT_2); + int32 count = unitCaster->CalculateSpellDamage(m_spellInfo->GetEffect(EFFECT_2)); damage += count * int32(average * IN_MILLISECONDS) / unitCaster->GetAttackTime(BASE_ATTACK); break; } @@ -1847,7 +1847,7 @@ void Spell::EffectOpenLock(SpellEffIndex effIndex) int32 reqSkillValue = 0; int32 skillValue; - SpellCastResult res = CanOpenLock(effIndex, lockId, skillId, reqSkillValue, skillValue); + SpellCastResult res = CanOpenLock(m_spellInfo->GetEffect(effIndex), lockId, skillId, reqSkillValue, skillValue); if (res != SPELL_CAST_OK) { SendCastResult(res); @@ -3039,11 +3039,11 @@ void Spell::EffectWeaponDmg(SpellEffIndex effIndex) unitCaster->CastSpell(unitTarget, 58567, true); if (Aura* aur = unitTarget->GetAura(58567, unitCaster->GetGUID())) - fixed_bonus += (aur->GetStackAmount() - 1) * CalculateDamage(EFFECT_2); // subtract 1 so fixed bonus is not applied twice + fixed_bonus += (aur->GetStackAmount() - 1) * CalculateDamage(m_spellInfo->GetEffect(EFFECT_2)); // subtract 1 so fixed bonus is not applied twice } else if (m_spellInfo->SpellFamilyFlags[0] & 0x8000000) // Mocking Blow { - if (unitTarget->IsImmunedToSpellEffect(m_spellInfo, EFFECT_1, unitCaster) || unitTarget->GetTypeId() == TYPEID_PLAYER) + if (unitTarget->IsImmunedToSpellEffect(m_spellInfo, m_spellInfo->GetEffect(EFFECT_1), unitCaster) || unitTarget->GetTypeId() == TYPEID_PLAYER) { m_damage = 0; return; @@ -3206,20 +3206,20 @@ void Spell::EffectWeaponDmg(SpellEffIndex effIndex) bool normalized = false; float weaponDamagePercentMod = 1.0f; - for (uint8 j = 0; j < MAX_SPELL_EFFECTS; ++j) + for (SpellEffectInfo const& spellEffectInfo : m_spellInfo->GetEffects()) { - switch (m_spellInfo->Effects[j].Effect) + switch (spellEffectInfo.Effect) { case SPELL_EFFECT_WEAPON_DAMAGE: case SPELL_EFFECT_WEAPON_DAMAGE_NOSCHOOL: - fixed_bonus += CalculateDamage(j); + fixed_bonus += CalculateDamage(spellEffectInfo); break; case SPELL_EFFECT_NORMALIZED_WEAPON_DMG: - fixed_bonus += CalculateDamage(j); + fixed_bonus += CalculateDamage(spellEffectInfo); normalized = true; break; case SPELL_EFFECT_WEAPON_PERCENT_DAMAGE: - ApplyPct(weaponDamagePercentMod, CalculateDamage(j)); + ApplyPct(weaponDamagePercentMod, CalculateDamage(spellEffectInfo)); break; default: break; // not weapon damage effect, just skip |