diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Spells/SpellInfo.cpp | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index a489ff9b60b..5e227bca7cc 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -3607,8 +3607,7 @@ bool _isPositiveEffectImpl(SpellInfo const* spellInfo, uint8 effIndex, std::unor // non-positive aura use switch (spellInfo->Effects[effIndex].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_DODGE_PERCENT: case SPELL_AURA_MOD_HEALING_PCT: @@ -3624,18 +3623,22 @@ bool _isPositiveEffectImpl(SpellInfo const* spellInfo, uint8 effIndex, std::unor 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_RESISTANCE_EXCLUSIVE: 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_HASTE_RANGED: + 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: @@ -3644,6 +3647,7 @@ bool _isPositiveEffectImpl(SpellInfo const* spellInfo, uint8 effIndex, std::unor 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(spellInfo, effIndex) || bp < 0) return false; break; @@ -3722,6 +3726,18 @@ bool _isPositiveEffectImpl(SpellInfo const* spellInfo, uint8 effIndex, std::unor 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_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(spellInfo, effIndex)) return false; |