aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-11-10 11:36:29 +0100
committerShauren <shauren.trinity@gmail.com>2023-11-10 11:36:29 +0100
commitc18d0000e8468ce89e46db510778f5ba00541555 (patch)
tree674e1a2c9f416e45f85a4babf22856c060752940 /src
parentdd1847bd8ff36618500ead2b734cb0e087905066 (diff)
Core/Spells: Fixed Conflagrate direct damage not benefitting from talents that increase its damage and DoT benefitting twice from damage done mods
Diffstat (limited to 'src')
-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());