diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 9cae254ca..250edf301 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -4502,6 +4502,38 @@ void Spell::EffectWeaponDmg(uint32 i) } } } + break; + } + case SPELLFAMILY_DEATHKNIGHT: + { + // Blood Strike, Heart Strike, Obliterate + // Blood-Caked Strike, Scourge Strike + if (m_spellInfo->SpellFamilyFlags & UI64LIT(0x0002000001400000) || + m_spellInfo->SpellIconID == 1736 || m_spellInfo->SpellIconID == 3143) + { + uint32 count = 0; + Unit::AuraMap const& auras = unitTarget->GetAuras(); + for(Unit::AuraMap::const_iterator itr = auras.begin(); itr!=auras.end(); ++itr) + { + if(itr->second->GetSpellProto()->Dispel == DISPEL_DISEASE && + itr->second->GetCasterGUID() == m_caster->GetGUID() && + IsSpellLastAuraEffect(itr->second->GetSpellProto(), itr->second->GetEffIndex())) + ++count; + } + + if (count) + { + // Effect 1(for Blood-Caked Strike)/3(other) damage is bonus + double bonus = count * CalculateDamage(m_spellInfo->SpellIconID == 1736 ? 0 : 2, unitTarget) / 100.0f; + // Blood Strike, Blood-Caked Strike and Obliterate store bonus*2 + if (m_spellInfo->SpellFamilyFlags & UI64LIT(0x0002000000400000) || + m_spellInfo->SpellIconID == 1736) + bonus /= 2.0f; + + totalDamagePercentMod += bonus; + } + } + break; } } diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index bda48c5e6..aab351129 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "8311" + #define REVISION_NR "8312" #endif // __REVISION_NR_H__