aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShocker <none@none>2010-09-02 06:02:51 +0300
committerShocker <none@none>2010-09-02 06:02:51 +0300
commitc8dfbdac35c9f74c7ec72f7a8d42d838b8c691a8 (patch)
tree3df280b0af6677a7d57b6c4167f52a355c25252d
parent96765bc6e04e667d06418d1a0cadc8600fdddb3e (diff)
Conflagrate direct & DoT damage shouldn't scale with duration increases of Immolate/Shadowflame, fixes issue 3376.
--HG-- branch : trunk
-rw-r--r--src/server/game/Spells/SpellEffects.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 749f858e212..ce0afca879f 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -525,10 +525,11 @@ void Spell::SpellDamageSchoolDmg(SpellEffIndex effIndex)
uint32 pdamage = aura->GetAmount() > 0 ? aura->GetAmount() : 0;
pdamage = m_caster->SpellDamageBonus(unitTarget, aura->GetSpellProto(), pdamage, DOT, aura->GetBase()->GetStackAmount());
uint32 pct_dir = m_caster->CalculateSpellDamage(unitTarget, m_spellInfo, (effIndex + 1));
- damage += pdamage * aura->GetTotalTicks() * pct_dir / 100;
+ uint8 baseTotalTicks = uint8(m_caster->CalcSpellDuration(aura->GetSpellProto()) / aura->GetSpellProto()->EffectAmplitude[0]);
+ damage += pdamage * baseTotalTicks * pct_dir / 100;
uint32 pct_dot = m_caster->CalculateSpellDamage(unitTarget, m_spellInfo, (effIndex + 2)) / 3;
- m_spellValue->EffectBasePoints[1] = SpellMgr::CalculateSpellEffectBaseAmount(pdamage * aura->GetTotalTicks() * pct_dot / 100, m_spellInfo, 1);
+ m_spellValue->EffectBasePoints[1] = SpellMgr::CalculateSpellEffectBaseAmount(pdamage * baseTotalTicks * pct_dot / 100, m_spellInfo, 1);
apply_direct_bonus = false;
// Glyph of Conflagrate