aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorKeader <keader.android@gmail.com>2019-08-15 10:46:23 -0300
committerKeader <keader.android@gmail.com>2019-08-15 10:46:23 -0300
commit43c08b176115505b76c027667047f9a5bfcc4e11 (patch)
tree89107b9a396ced67230e18dc972ebcae86baf32e /src/server
parentf7793e78000389315d53b22fb4e117d512c5a4d6 (diff)
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
Diffstat (limited to 'src/server')
-rw-r--r--src/server/game/Spells/SpellInfo.cpp4
1 files changed, 2 insertions, 2 deletions
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: