From a5adc77f04499f0c7b2134fccee556dd4ec22bed Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Wed, 5 Feb 2020 08:42:29 +0100 Subject: [PATCH] Core/Auras: moved SPELL_AURA_MOD_MELEE_DAMAGE_FROM_CASTER handling to MeleeDamageBonusDone --- src/server/game/Entities/Unit/Unit.cpp | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index ef8aad52fe3..27659620a5e 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -8001,10 +8001,19 @@ uint32 Unit::MeleeDamageBonusDone(Unit* victim, uint32 pdamage, WeaponAttackType if (spellProto) AddPct(DoneTotalMod, GetTotalAuraModifierByMiscValue(SPELL_AURA_MOD_DAMAGE_DONE_FOR_MECHANIC, spellProto->Mechanic)); - // Add SPELL_AURA_MOD_AUTOATTACK_DAMAGE percent bonus if (!spellProto) + { + // Add SPELL_AURA_MOD_AUTOATTACK_DAMAGE percent bonus AddPct(DoneTotalMod, GetTotalAuraModifier(SPELL_AURA_MOD_AUTOATTACK_DAMAGE)); + // Add SPELL_AURA_MOD_MELEE_DAMAGE_FROM_CASTER percent bonus + // This aura name is a bit misleading but it's actually only suposed to increase melee auto attack damage + AddPct(DoneTotalMod, victim->GetTotalAuraMultiplier(SPELL_AURA_MOD_MELEE_DAMAGE_FROM_CASTER, [this](AuraEffect const* effect)->bool + { + return effect->GetCasterGUID() == GetGUID(); + })); + } + // done scripted mod (take it from owner) // Unit* owner = GetOwner() ? GetOwner() : this; // AuraEffectList const& mOverrideClassScript = owner->GetAuraEffectsByType(SPELL_AURA_OVERRIDE_CLASS_SCRIPTS); @@ -8090,18 +8099,7 @@ uint32 Unit::MeleeDamageBonusTaken(Unit* attacker, uint32 pdamage, WeaponAttackT if (attType != RANGED_ATTACK) - { TakenTotalMod *= GetTotalAuraMultiplier(SPELL_AURA_MOD_MELEE_DAMAGE_TAKEN_PCT); - - if (!spellProto) - { - // This aura name is a bit misleading but it's actually only suposed to increase melee auto attack damage - TakenTotalMod *= GetTotalAuraMultiplier(SPELL_AURA_MOD_MELEE_DAMAGE_FROM_CASTER, [attacker](AuraEffect const* effect)->bool - { - return effect->GetCasterGUID() == attacker->GetGUID(); - }); - } - } else TakenTotalMod *= GetTotalAuraMultiplier(SPELL_AURA_MOD_RANGED_DAMAGE_TAKEN_PCT);