aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Spells/SpellInfo.cpp25
1 files changed, 20 insertions, 5 deletions
diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp
index 2be70977ad9..65d5349c6fb 100644
--- a/src/server/game/Spells/SpellInfo.cpp
+++ b/src/server/game/Spells/SpellInfo.cpp
@@ -4561,8 +4561,7 @@ bool _isPositiveEffectImpl(SpellInfo const* spellInfo, SpellEffectInfo const& ef
// non-positive aura use
switch (effect.ApplyAuraName)
{
- case SPELL_AURA_MOD_DAMAGE_DONE: // dependent from basepoint sign (negative -> negative)
- case SPELL_AURA_MOD_STAT:
+ case SPELL_AURA_MOD_STAT: // dependent from basepoint sign (negative -> negative)
case SPELL_AURA_MOD_SKILL:
case SPELL_AURA_MOD_SKILL_2:
case SPELL_AURA_MOD_DODGE_PERCENT:
@@ -4579,17 +4578,21 @@ bool _isPositiveEffectImpl(SpellInfo const* spellInfo, SpellEffectInfo const& ef
case SPELL_AURA_MOD_MELEE_RANGED_HASTE:
case SPELL_AURA_MOD_CASTING_SPEED_NOT_STACK:
case SPELL_AURA_HASTE_SPELLS:
- case SPELL_AURA_MOD_RESISTANCE:
case SPELL_AURA_MOD_RECOVERY_RATE_BY_SPELL_LABEL:
case SPELL_AURA_MOD_DETECT_RANGE:
case SPELL_AURA_MOD_INCREASE_HEALTH_PERCENT:
case SPELL_AURA_MOD_TOTAL_STAT_PERCENTAGE:
case SPELL_AURA_MOD_INCREASE_SWIM_SPEED:
+ case SPELL_AURA_MOD_PERCENT_STAT:
+ case SPELL_AURA_MOD_INCREASE_HEALTH:
+ case SPELL_AURA_MOD_SPEED_ALWAYS:
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
case SPELL_AURA_MOD_MELEE_HASTE:
+ case SPELL_AURA_MOD_DAMAGE_DONE:
+ case SPELL_AURA_MOD_RESISTANCE:
case SPELL_AURA_MOD_RESISTANCE_PCT:
case SPELL_AURA_MOD_RATING:
case SPELL_AURA_MOD_ATTACK_POWER:
@@ -4598,14 +4601,13 @@ bool _isPositiveEffectImpl(SpellInfo const* spellInfo, SpellEffectInfo const& ef
case SPELL_AURA_MOD_SPEED_SLOW_ALL:
case SPELL_AURA_MELEE_SLOW:
case SPELL_AURA_MOD_ATTACK_POWER_PCT:
+ case SPELL_AURA_MOD_HEALING_DONE_PERCENT:
if (!_isPositiveTarget(effect) || bp < 0)
return false;
break;
case SPELL_AURA_MOD_DAMAGE_TAKEN: // dependent from basepoint sign (positive -> negative)
case SPELL_AURA_MOD_MELEE_DAMAGE_TAKEN:
case SPELL_AURA_MOD_MELEE_DAMAGE_TAKEN_PCT:
- case SPELL_AURA_MOD_COOLDOWN:
- case SPELL_AURA_MOD_CHARGE_COOLDOWN:
case SPELL_AURA_MOD_POWER_COST_SCHOOL:
case SPELL_AURA_MOD_POWER_COST_SCHOOL_PCT:
case SPELL_AURA_MOD_MECHANIC_DAMAGE_TAKEN_PERCENT:
@@ -4674,6 +4676,19 @@ bool _isPositiveEffectImpl(SpellInfo const* spellInfo, SpellEffectInfo const& ef
case SPELL_AURA_DUMMY:
case SPELL_AURA_PERIODIC_DUMMY:
case SPELL_AURA_MOD_HEALING:
+ case SPELL_AURA_MOD_WEAPON_CRIT_PERCENT:
+ case SPELL_AURA_POWER_BURN:
+ case SPELL_AURA_MOD_COOLDOWN:
+ case SPELL_AURA_MOD_CHARGE_COOLDOWN:
+ case SPELL_AURA_MOD_INCREASE_SPEED:
+ case SPELL_AURA_MOD_PARRY_PERCENT:
+ case SPELL_AURA_SET_VEHICLE_ID:
+ case SPELL_AURA_PERIODIC_ENERGIZE:
+ case SPELL_AURA_EFFECT_IMMUNITY:
+ case SPELL_AURA_OVERRIDE_CLASS_SCRIPTS:
+ case SPELL_AURA_MOD_SHAPESHIFT:
+ case SPELL_AURA_MOD_THREAT:
+ case SPELL_AURA_PROC_TRIGGER_SPELL_WITH_VALUE:
// check target for positive and negative spells
if (!_isPositiveTarget(effect))
return false;