diff options
author | Trisjdc <trisjdc@gmail.com> | 2014-06-16 01:32:19 +0100 |
---|---|---|
committer | Trisjdc <trisjdc@gmail.com> | 2014-06-16 01:32:19 +0100 |
commit | 0442ff5c991c351cd6da3c04d1768f756d09fe22 (patch) | |
tree | 48556dcbed7ad7019ee8ea49f07fd180c3c0ad09 /src/server/game/Spells/SpellEffects.cpp | |
parent | f27821486b0c38e0f92bc719c997f3e9435d7c59 (diff) | |
parent | 6b430db910c2cffe49dc1049661c111f164f94f5 (diff) |
Merge pull request #12284 from Unholychick/patch-mana
Core/Spells: Implement SPELL_ATTR7_CAN_RESTORE_SECONDARY_POWER
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 1b1730c9aaa..e47361cf049 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -1751,6 +1751,12 @@ void Spell::EffectEnergize(SpellEffIndex effIndex) Powers power = Powers(m_spellInfo->Effects[effIndex].MiscValue); + if (unitTarget->getPowerType() != power && !(m_spellInfo->AttributesEx7 & SPELL_ATTR7_CAN_RESTORE_SECONDARY_POWER)) + return; + + if (unitTarget->GetMaxPower(power) == 0) + return; + // Some level depends spells int level_multiplier = 0; int level_diff = 0; @@ -1796,9 +1802,6 @@ void Spell::EffectEnergize(SpellEffIndex effIndex) if (damage < 0) return; - if (unitTarget->GetMaxPower(power) == 0) - return; - m_caster->EnergizeBySpell(unitTarget, m_spellInfo->Id, damage, power); // Mad Alchemist's Potion @@ -1863,6 +1866,9 @@ void Spell::EffectEnergizePct(SpellEffIndex effIndex) Powers power = Powers(m_spellInfo->Effects[effIndex].MiscValue); + if (unitTarget->getPowerType() != power && !(m_spellInfo->AttributesEx7 & SPELL_ATTR7_CAN_RESTORE_SECONDARY_POWER)) + return; + uint32 maxPower = unitTarget->GetMaxPower(power); if (maxPower == 0) return; |