From ad175f11f6d6871c52f7d51e0de549c79f8642a2 Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Fri, 26 Feb 2021 23:33:56 +0100 Subject: [PATCH] Core/Spells: renamed SPELL_AURA_MOD_HEALING_FROM_TARGET_HEALTH to SPELL_AURA_MOD_HEALING_DONE_PCT_VERSUS_TARGET_HEALTH and make its implementation look a bit prettier --- src/server/game/Entities/Unit/Unit.cpp | 15 +++++++-------- src/server/game/Spells/Auras/SpellAuraDefines.h | 2 +- 2 files changed, 8 insertions(+), 9 deletions(-) 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,