aboutsummaryrefslogtreecommitdiff
path: root/src/game/SpellEffects.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/SpellEffects.cpp')
-rw-r--r--src/game/SpellEffects.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp
index 29c48cb7251..a53cf65898e 100644
--- a/src/game/SpellEffects.cpp
+++ b/src/game/SpellEffects.cpp
@@ -841,15 +841,24 @@ void Spell::EffectDummy(uint32 i)
switch (m_spellInfo->Id)
{
- case 12850: damage *= 0.2f; break;
- case 12162: damage *= 0.4f; break;
- case 12868: damage *= 0.6f; break;
+ case 12162: damage *= 0.16f; break; // Rank 1
+ case 12850: damage *= 0.32f; break; // Rank 2
+ case 12868: damage *= 0.48f; break; // Rank 3
default:
sLog.outError("Spell::EffectDummy: Spell %u not handled in DW",m_spellInfo->Id);
return;
};
- int32 deepWoundsDotBasePoints0 = int32(damage / 4);
+ // get remaining damage of old Deep Wound aura
+ AuraEffect* deepWound = unitTarget->GetAuraEffect(12721, 0);
+ if(deepWound)
+ {
+ int32 remainingTicks = deepWound->GetParentAura()->GetAuraDuration() / deepWound->GetAuraAmplitude();
+ damage += remainingTicks * deepWound->GetAmount();
+ }
+
+ // 1 tick/sec * 6 sec = 6 ticks
+ int32 deepWoundsDotBasePoints0 = int32(damage / 6);
m_caster->CastCustomSpell(unitTarget, 12721, &deepWoundsDotBasePoints0, NULL, NULL, true, NULL);
return;
}