diff options
author | tlexii <none@none> | 2009-06-25 14:09:16 +0200 |
---|---|---|
committer | tlexii <none@none> | 2009-06-25 14:09:16 +0200 |
commit | bbc1578ab5e4039e9e496df417101262afde36a7 (patch) | |
tree | a9aa3b8c7f578961c5cc9d206f8055eed86dc449 /src | |
parent | d234b35a0c18d7f3b3120483ebe6845be22bead3 (diff) |
*Fix Conflagrate damage calculation formula
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/game/SpellEffects.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index ca7bb75dff6..e9a358a05c2 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -473,12 +473,9 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx) if(unitTarget->HasAuraState(AURA_STATE_IMMOLATE, m_spellInfo, m_caster)) damage += int32(damage*0.25f); } - // Conflagrate - consumes immolate + // Conflagrate - consumes immolate or shadowflame else if (m_spellInfo->TargetAuraState == AURA_STATE_IMMOLATE) { - // Glyph of Conflagrate - if (m_caster->HasAura(56235)) - break; // for caster applied auras only Unit::AuraEffectList const &mPeriodic = unitTarget->GetAurasByType(SPELL_AURA_PERIODIC_DAMAGE); for(Unit::AuraEffectList::const_iterator i = mPeriodic.begin(); i != mPeriodic.end(); ++i) @@ -486,7 +483,12 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx) if( (*i)->GetSpellProto()->SpellFamilyName == SPELLFAMILY_WARLOCK && ((*i)->GetSpellProto()->SpellFamilyFlags[0] & 4 || (*i)->GetSpellProto()->SpellFamilyFlags[2] & 2) && (*i)->GetCasterGUID()==m_caster->GetGUID() ) { - unitTarget->RemoveAurasDueToSpell((*i)->GetId(), m_caster->GetGUID()); + uint32 pdamage = (*i)->GetAmount() > 0 ? (*i)->GetAmount() : 0; + pdamage = m_caster->SpellDamageBonus(unitTarget, (*i)->GetSpellProto(), pdamage, DOT, (*i)->GetParentAura()->GetStackAmount()); + damage += pdamage * 4; // 4 ticks of 3 seconds = 12 secs + // Glyph of Conflagrate + if (!m_caster->HasAura(56235)) + unitTarget->RemoveAurasDueToSpell((*i)->GetId(), m_caster->GetGUID()); break; } } |