From eb22ea3af309b1431fd2fb8918eec7cd31173c73 Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Wed, 7 Apr 2021 12:31:52 +0200 Subject: [PATCH] Core/Units: added a missing check for SPELL_ATTR10_IGNORE_POSITIVE_DAMAGE_TAKEN_MODS when checking for SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN --- src/server/game/Entities/Unit/Unit.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 800dff138f0..7db24481a8f 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -6880,7 +6880,16 @@ uint32 Unit::SpellDamageBonusTaken(Unit* caster, SpellInfo const* spellProto, ui { // from positive and negative SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN // multiplicative bonus, for example Dispersion + Shadowform (0.10*0.85=0.085) - TakenTotalMod *= GetTotalAuraMultiplierByMiscMask(SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, spellProto->GetSchoolMask()); + TakenTotalMod *= GetTotalAuraMultiplier(SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, [spellProto](AuraEffect const* aurEff) + { + if (spellProto->HasAttribute(SPELL_ATTR10_IGNORE_POSITIVE_DAMAGE_TAKEN_MODS) && aurEff->GetAmount() > 0) + return false; + + if ((aurEff->GetMiscValue() & spellProto->GetSchoolMask()) != 0) + return true; + + return false; + }); // From caster spells if (caster)