diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index c643b9c1c..4f869e503 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -8274,6 +8274,38 @@ uint32 Unit::SpellDamageBonus(Unit *pVictim, SpellEntry const *spellProto, uint3 } break; } + case SPELLFAMILY_DEATHKNIGHT: + { + // Icy Touch, Howling Blast and Frost Strike + if (spellProto->SpellFamilyFlags & UI64LIT(0x0000000600000002)) + { + // search disease + bool found = false; + Unit::AuraMap const& auras = pVictim->GetAuras(); + for(Unit::AuraMap::const_iterator itr = auras.begin(); itr!=auras.end(); ++itr) + { + if(itr->second->GetSpellProto()->Dispel == DISPEL_DISEASE) + { + found = true; + break; + } + } + if(!found) + break; + + // search for Glacier Rot dummy aura + Unit::AuraList const& dummyAuras = GetAurasByType(SPELL_AURA_DUMMY); + for(Unit::AuraList::const_iterator i = dummyAuras.begin(); i != dummyAuras.end(); ++i) + { + if ((*i)->GetSpellProto()->EffectMiscValue[(*i)->GetEffIndex()] == 7244) + { + DoneTotalMod *= ((*i)->GetModifier()->m_amount+100.0f) / 100.0f; + break; + } + } + } + break; + } default: break; }