From 1ae8e7eca50d2d213a614ad45cefe6b6220e3161 Mon Sep 17 00:00:00 2001 From: lineagedr Date: Sun, 12 Sep 2021 20:28:23 +0300 Subject: [PATCH] fix(Core/Item): Luffa removing more than one bleed (#7752) --- src/server/game/Spells/SpellEffects.cpp | 10 ++++++++++ src/server/game/Spells/SpellMgr.cpp | 6 ++++++ 2 files changed, 16 insertions(+) diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index e8496a1df..00a6be2ea 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -5304,8 +5304,18 @@ void Spell::EffectDispelMechanic(SpellEffIndex effIndex) if (!aura->GetApplicationOfTarget(unitTarget->GetGUID())) continue; if (roll_chance_i(aura->CalcDispelChance(unitTarget, !unitTarget->IsFriendlyTo(m_caster)))) + { if ((aura->GetSpellInfo()->GetAllEffectsMechanicMask() & (1 << mechanic))) + { dispel_list.push(std::make_pair(aura->GetId(), aura->GetCasterGUID())); + + // spell only removes 1 bleed effect do not continue + if (m_spellInfo->Effects[effIndex].BasePoints == 1) + { + break; + } + } + } } for (; dispel_list.size(); dispel_list.pop()) diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index c47b7729f..1c19e704f 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -7336,6 +7336,12 @@ void SpellMgr::LoadDbcDataCorrections() spellInfo->EffectImplicitTargetB[EFFECT_0] = 0; }); + // Item: Luffa removes only 1 bleed effect + ApplySpellFix({ 23595 }, [](SpellEntry* spellInfo) + { + spellInfo->EffectBasePoints[EFFECT_0] = 1; + }); + for (uint32 i = 0; i < sSpellStore.GetNumRows(); ++i) { SpellEntry* spellInfo = (SpellEntry*)sSpellStore.LookupEntry(i);