diff options
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 4 | ||||
| -rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index e0c3a42dedf..0f9250164b4 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -6862,6 +6862,10 @@ float Unit::SpellDamagePctDone(Unit* victim, SpellInfo const* spellProto, Damage // Drain Soul - If the target is at or below 25% health, Drain Soul causes four times the normal damage if (spellProto->SpellFamilyFlags[0] & 0x00004000 && !victim->HealthAbovePct(25)) DoneTotalMod *= 4; + + // Don't let Conflagrate double dip from damage done bonuses (from Immolate/Shadowflame and then for itself) + if (spellProto->SpellFamilyFlags[1] & 0x800000) + DoneTotalMod = 1.0f; break; case SPELLFAMILY_HUNTER: // Steady Shot diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index c9ab4bbc4b5..f5edb7324ef 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -420,7 +420,6 @@ void Spell::EffectSchoolDMG() { // Calculate damage of Immolate/Shadowflame tick int32 pdamage = aura->GetAmount(); - pdamage = unitTarget->SpellDamageBonusTaken(unitCaster, aura->GetSpellInfo(), pdamage, DOT); // And multiply by amount of ticks to get damage potential pdamage *= aura->GetSpellInfo()->GetMaxTicks(); @@ -434,7 +433,6 @@ void Spell::EffectSchoolDMG() ASSERT(m_spellInfo->GetMaxTicks() > 0); m_spellValue->EffectBasePoints[EFFECT_1] = dotBasePoints / m_spellInfo->GetMaxTicks(); - apply_direct_bonus = false; // Glyph of Conflagrate if (!unitCaster->HasAura(56235)) unitTarget->RemoveAurasDueToSpell(aura->GetId(), unitCaster->GetGUID()); |
