From 43c08b176115505b76c027667047f9a5bfcc4e11 Mon Sep 17 00:00:00 2001 From: Keader Date: Thu, 15 Aug 2019 10:46:23 -0300 Subject: Core/Spells: Fixed some issues with Drain Soul Issue 1: Drain soul was always negative, but effect2 need be positive. Issue 2: Drain soul was interrupted if someone in your group die. Caused by negative effects proccing in creature. Issue 3: Since effect2 is positive, it was down-ranking in low level targets and should never happens (fixed before by ariel, transforming everything in negative in 2c8a6fb771a42169a1817149ab0a2a19912ebea7 but it's wrong) #MakeWarlockAfflictionGreatAgain --- src/server/game/Spells/SpellInfo.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index 9a3e8bc445b..f5c6f1d9f25 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -3278,7 +3278,7 @@ SpellInfo const* SpellInfo::GetAuraRankForLevel(uint8 level) const return this; // Client ignores spell with these attributes (sub_53D9D0) - if (HasAttribute(SPELL_ATTR0_NEGATIVE_1) || HasAttribute(SPELL_ATTR2_UNK3)) + if (HasAttribute(SPELL_ATTR0_NEGATIVE_1) || HasAttribute(SPELL_ATTR2_UNK3) || HasAttribute(SPELL_ATTR3_DRAIN_SOUL)) return this; bool needRankSelection = false; @@ -3511,7 +3511,6 @@ bool _isPositiveEffectImpl(SpellInfo const* spellInfo, uint8 effIndex, std::unor case SPELL_AURA_MOD_UNATTACKABLE: return true; case SPELL_AURA_SCHOOL_HEAL_ABSORB: - case SPELL_AURA_CHANNEL_DEATH_ITEM: case SPELL_AURA_EMPATHY: case SPELL_AURA_MOD_DAMAGE_FROM_CASTER: case SPELL_AURA_PREVENTS_FLEEING: @@ -3715,6 +3714,7 @@ bool _isPositiveEffectImpl(SpellInfo const* spellInfo, uint8 effIndex, std::unor return false; break; case SPELL_AURA_MOD_CONFUSE: + case SPELL_AURA_CHANNEL_DEATH_ITEM: case SPELL_AURA_MOD_ROOT: case SPELL_AURA_MOD_SILENCE: case SPELL_AURA_MOD_DETAUNT: -- cgit v1.2.3