aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp4
-rw-r--r--src/server/game/Spells/SpellEffects.cpp2
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());