diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 28f584df93..eff5fb77b4 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -7436,15 +7436,14 @@ float Unit::SpellHealingPctDone(Unit* victim, SpellInfo const* spellProto) const } } - AuraEffectList const& mHealingFromTargetHealthPct = owner->GetAuraEffectsByType(SPELL_AURA_MOD_HEALING_FROM_TARGET_HEALTH); - for (AuraEffectList::const_iterator i = mHealingFromTargetHealthPct.begin(); i != mHealingFromTargetHealthPct.end(); ++i) + float healthPctDiff = 100.0f - victim->GetHealthPct(); + for (AuraEffect const* healingDonePctVsTargetHealth : owner->GetAuraEffectsByType(SPELL_AURA_MOD_HEALING_DONE_PCT_VERSUS_TARGET_HEALTH)) { - if ((*i)->IsAffectingSpell(spellProto)) - { - uint32 masteryBonus = (*i)->GetAmount(); - float healthPct = 100.0f - victim->GetHealthPct(); - AddPct(DoneTotalMod, CalculatePct(masteryBonus, healthPct)); - } + if (!healingDonePctVsTargetHealth->IsAffectingSpell(spellProto)) + continue; + + uint32 maxBonus = healingDonePctVsTargetHealth->GetAmount(); + AddPct(DoneTotalMod, CalculatePct(maxBonus, healthPctDiff)); } return DoneTotalMod; diff --git a/src/server/game/Spells/Auras/SpellAuraDefines.h b/src/server/game/Spells/Auras/SpellAuraDefines.h index bf753c7781..8386f7c3f6 100644 --- a/src/server/game/Spells/Auras/SpellAuraDefines.h +++ b/src/server/game/Spells/Auras/SpellAuraDefines.h @@ -429,7 +429,7 @@ enum AuraType : uint32 SPELL_AURA_351 = 351, SPELL_AURA_352 = 352, SPELL_AURA_MOD_CAMOUFLAGE = 353, // NYI - SPELL_AURA_MOD_HEALING_FROM_TARGET_HEALTH = 354, // Restoration Shaman mastery - mod healing based on target's health (less = more healing) + SPELL_AURA_MOD_HEALING_DONE_PCT_VERSUS_TARGET_HEALTH = 354, // Restoration Shaman mastery - mod healing based on target's health (less = more healing) SPELL_AURA_355 = 355, SPELL_AURA_MOD_DAMAGE_FROM_MANA = 356, // Arcane Mage mastery - mod damage based on current mana SPELL_AURA_ENABLE_BOSS1_UNIT_FRAME = 357,