diff options
author | Anubisss <none@none> | 2009-05-05 03:54:15 +0200 |
---|---|---|
committer | Anubisss <none@none> | 2009-05-05 03:54:15 +0200 |
commit | 59d14fceb2891702fcef223d6730d6d6b2945c93 (patch) | |
tree | 7a63e04dba53fc2d245a72af72ba957f6cfddd52 | |
parent | 92e393deb8ce5c573e31ce98ac8901a2ad4e8089 (diff) |
*Fix the spell power coefficient and the SpellFamilyFlags in Power Word: Shield, Ice Barrier and Shadow Ward.
--HG--
branch : trunk
-rw-r--r-- | src/game/SpellAuras.cpp | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index b3bc24ec17b..264a4c39aea 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -5630,26 +5630,36 @@ void AuraEffect::HandleSchoolAbsorb(bool apply, bool Real) switch(m_spellProto->SpellFamilyName) { case SPELLFAMILY_PRIEST: - if(m_spellProto->SpellFamilyFlags.IsEqual(0x1)) //PW:S + // PW: S + if(m_spellProto->SpellFamilyFlags.IsEqual(0x1, 0, 0x400)) { - //+30% from +healing bonus - DoneActualBenefit = caster->SpellBaseHealingBonus(GetSpellSchoolMask(m_spellProto)) * 0.3f; + // +80.68% from sp bonus + DoneActualBenefit = caster->SpellBaseHealingBonus(GetSpellSchoolMask(m_spellProto)) * 0.8068f; } break; case SPELLFAMILY_MAGE: - if(m_spellProto->SpellFamilyFlags.IsEqual(0x80100) || m_spellProto->SpellFamilyFlags.IsEqual(0x8) || m_spellProto->SpellFamilyFlags.IsEqual(0,0x1)) + // ice barrier + if(m_spellProto->SpellFamilyFlags.IsEqual(0, 0x1, 0x8)) + { + // +80.67% from sp bonus + DoneActualBenefit = caster->SpellBaseDamageBonus(GetSpellSchoolMask(m_spellProto)) * 0.8067f; + } + /* + TODO: find the correct spell power coefficient for frost ward and fire ward (if has) + // frost ward, fire ward + else if(m_spellProto->SpellFamilyFlags.IsEqual(0x100, 0, 0x8) || m_spellProto->SpellFamilyFlags.IsEqual(0x8, 0, 0x8)) { - //frost ward, fire ward, ice barrier //+10% from +spd bonus DoneActualBenefit = caster->SpellBaseDamageBonus(GetSpellSchoolMask(m_spellProto)) * 0.1f; } + */ break; case SPELLFAMILY_WARLOCK: - if(m_spellProto->SpellFamilyFlags.IsEqual(0,0,0x40)) + // shadow ward + if(m_spellProto->SpellFamilyFlags.IsEqual(0, 0, 0x40)) { - //shadow ward - //+10% from +spd bonus - DoneActualBenefit = caster->SpellBaseDamageBonus(GetSpellSchoolMask(m_spellProto)) * 0.1f; + // +30% from sp bonus + DoneActualBenefit = caster->SpellBaseDamageBonus(GetSpellSchoolMask(m_spellProto)) * 0.3f; } break; default: |