aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/Unit.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index c7ec4527fd6..545cb941ce5 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -10306,15 +10306,18 @@ void Unit::MeleeDamageBonus(Unit *pVictim, uint32 *pdamage,WeaponAttackType attT
if (spellProto)
{
// Mod damage from spell mechanic
- uint32 mechanicMask = GetAllSpellMechanicMask(spellProto);
+ uint32 mechanicMask = GetAllSpellMechanicMask(m_spellInfo);
+
+ // Shred, Maul - "Effects which increase Bleed damage also increase Shred damage"
+ if (m_spellInfo->SpellFamilyName == SPELLFAMILY_DRUID && m_spellInfo->SpellFamilyFlags[0] & 0x00008800)
+ mechanicMask |= (1<<MECHANIC_BLEED);
+
if (mechanicMask)
{
- AuraEffectList const& mDamageDoneMechanic = pVictim->GetAurasByType(SPELL_AURA_MOD_MECHANIC_DAMAGE_TAKEN_PERCENT);
- for (AuraEffectList::const_iterator i = mDamageDoneMechanic.begin(); i != mDamageDoneMechanic.end(); ++i)
- if((mechanicMask & uint32(1<<((*i)->GetMiscValue())))
- // Shred - "Effects which increase Bleed damage also increase Shred damage"
- || ((*i)->GetMiscValue() == MECHANIC_BLEED && spellProto->SpellFamilyName == SPELLFAMILY_DRUID && spellProto->SpellFamilyFlags[0] & 0x8000))
- TakenTotalMod *= ((*i)->GetAmount()+100.0f)/100.0f;
+ Unit::AuraEffectList const& mDamageDoneMechanic = unitTarget->GetAurasByType(SPELL_AURA_MOD_MECHANIC_DAMAGE_TAKEN_PERCENT);
+ for(Unit::AuraEffectList::const_iterator i = mDamageDoneMechanic.begin();i != mDamageDoneMechanic.end(); ++i)
+ if(mechanicMask & uint32(1<<((*i)->GetMiscValue())))
+ totalDamagePercentMod *= ((*i)->GetAmount()+100.0f)/100.0f;
}
}