From c10ea614918ccbb6e0601117fd024a6e8c91a0b2 Mon Sep 17 00:00:00 2001 From: HelloKitty Date: Sat, 15 Sep 2018 11:00:20 -0500 Subject: Core/Spells: Include RealPointsPerLevel when determining if aura is negative (#22427) (cherry picked from commit 0d1eed5dabdc86e4a7ae2d5dfc8f5c17636f69a1) --- src/server/game/Spells/SpellInfo.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index 455ab86e36e..4d30c0e7958 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -4342,6 +4342,8 @@ bool _isPositiveEffectImpl(SpellInfo const* spellInfo, SpellEffectInfo const& ef visited.insert({ spellInfo, effect.EffectIndex }); + //We need scaling level info for some auras that compute bp 0 or positive but should be debuffs + float bpScalePerLevel = effect.RealPointsPerLevel; int32 bp = effect.CalcValue(); switch (spellInfo->SpellFamilyName) { @@ -4549,7 +4551,7 @@ bool _isPositiveEffectImpl(SpellInfo const* spellInfo, SpellEffectInfo const& ef case SPELL_AURA_MOD_INCREASE_HEALTH_PERCENT: case SPELL_AURA_MOD_TOTAL_STAT_PERCENTAGE: case SPELL_AURA_MOD_INCREASE_SWIM_SPEED: - if (bp < 0) + if (bp < 0 || bpScalePerLevel < 0) //TODO: What if both are 0? Should it be a buff or debuff? return false; break; case SPELL_AURA_MOD_ATTACKSPEED: // some buffs have negative bp, check both target and bp -- cgit v1.2.3