aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/Unit.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 568379b386b..a128f6119b2 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -9665,7 +9665,8 @@ uint32 Unit::SpellDamageBonus(Unit *pVictim, SpellEntry const *spellProto, uint3
// Glacier Rot
if (spellProto->SpellFamilyFlags[0] & 0x2 || spellProto->SpellFamilyFlags[1] & 0x6)
if (AuraEffect * aurEff = GetDummyAura(SPELLFAMILY_DEATHKNIGHT, 196, 0))
- DoneTotalMod *= (100.0f + aurEff->GetAmount()) / 100.0f;
+ if (pVictim->GetDiseasesByCaster(owner->GetGUID()) > 0)
+ DoneTotalMod *= (100.0f + aurEff->GetAmount()) / 100.0f;
// This is not a typo - Impurity has SPELLFAMILY_DRUID
if (AuraEffect * aurEff = GetDummyAura(SPELLFAMILY_DRUID, 1986, 0))
@@ -10704,6 +10705,19 @@ void Unit::MeleeDamageBonus(Unit *pVictim, uint32 *pdamage, WeaponAttackType att
}
}
+ // Custom scripted damage
+ if (spellProto)
+ switch(spellProto->SpellFamilyName)
+ {
+ case SPELLFAMILY_DEATHKNIGHT:
+ // Glacier Rot
+ if (spellProto->SpellFamilyFlags[0] & 0x2 || spellProto->SpellFamilyFlags[1] & 0x6)
+ if (AuraEffect * aurEff = GetDummyAura(SPELLFAMILY_DEATHKNIGHT, 196, 0))
+ if (pVictim->GetDiseasesByCaster(owner->GetGUID()) > 0)
+ DoneTotalMod *= (100.0f + aurEff->GetAmount()) / 100.0f;
+ break;
+ }
+
// ..taken
AuraEffectList const& mModDamagePercentTaken = pVictim->GetAurasByType(SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN);
for (AuraEffectList::const_iterator i = mModDamagePercentTaken.begin(); i != mModDamagePercentTaken.end(); ++i)