Core/Spells: Check a few aura effects for determining if should be negative

Port From (https://github.com/TrinityCore/TrinityCore/commit/a8edacd20b8250785b649bba22f0e920815885b6)
This commit is contained in:
hondacrx
2022-02-27 23:28:57 -05:00
parent 738ef0b1d5
commit 353a12b010
+20 -5
View File
@@ -3502,8 +3502,7 @@ namespace Game.Spells
// non-positive aura use // non-positive aura use
switch (effect.ApplyAuraName) switch (effect.ApplyAuraName)
{ {
case AuraType.ModDamageDone: // dependent from basepoint sign (negative . negative) case AuraType.ModStat: // dependent from basepoint sign (negative -> negative)
case AuraType.ModStat:
case AuraType.ModSkill: case AuraType.ModSkill:
case AuraType.ModSkill2: case AuraType.ModSkill2:
case AuraType.ModDodgePercent: case AuraType.ModDodgePercent:
@@ -3520,17 +3519,21 @@ namespace Game.Spells
case AuraType.ModMeleeRangedHaste: case AuraType.ModMeleeRangedHaste:
case AuraType.ModCastingSpeedNotStack: case AuraType.ModCastingSpeedNotStack:
case AuraType.HasteSpells: case AuraType.HasteSpells:
case AuraType.ModResistance:
case AuraType.ModRecoveryRateBySpellLabel: case AuraType.ModRecoveryRateBySpellLabel:
case AuraType.ModDetectRange: case AuraType.ModDetectRange:
case AuraType.ModIncreaseHealthPercent: case AuraType.ModIncreaseHealthPercent:
case AuraType.ModTotalStatPercentage: case AuraType.ModTotalStatPercentage:
case AuraType.ModIncreaseSwimSpeed: case AuraType.ModIncreaseSwimSpeed:
case AuraType.ModPercentStat:
case AuraType.ModIncreaseHealth:
case AuraType.ModSpeedAlways:
if (bp < 0 || bpScalePerLevel < 0) //TODO: What if both are 0? Should it be a buff or debuff? if (bp < 0 || bpScalePerLevel < 0) //TODO: What if both are 0? Should it be a buff or debuff?
return false; return false;
break; break;
case AuraType.ModAttackspeed: // some buffs have negative bp, check both target and bp case AuraType.ModAttackspeed: // some buffs have negative bp, check both target and bp
case AuraType.ModMeleeHaste: case AuraType.ModMeleeHaste:
case AuraType.ModDamageDone:
case AuraType.ModResistance:
case AuraType.ModResistancePct: case AuraType.ModResistancePct:
case AuraType.ModRating: case AuraType.ModRating:
case AuraType.ModAttackPower: case AuraType.ModAttackPower:
@@ -3539,14 +3542,13 @@ namespace Game.Spells
case AuraType.ModSpeedSlowAll: case AuraType.ModSpeedSlowAll:
case AuraType.MeleeSlow: case AuraType.MeleeSlow:
case AuraType.ModAttackPowerPct: case AuraType.ModAttackPowerPct:
case AuraType.ModHealingDonePercent:
if (!_isPositiveTarget(effect) || bp < 0) if (!_isPositiveTarget(effect) || bp < 0)
return false; return false;
break; break;
case AuraType.ModDamageTaken: // dependent from basepoint sign (positive . negative) case AuraType.ModDamageTaken: // dependent from basepoint sign (positive . negative)
case AuraType.ModMeleeDamageTaken: case AuraType.ModMeleeDamageTaken:
case AuraType.ModMeleeDamageTakenPct: case AuraType.ModMeleeDamageTakenPct:
case AuraType.ModCooldown:
case AuraType.ModChargeCooldown:
case AuraType.ModPowerCostSchool: case AuraType.ModPowerCostSchool:
case AuraType.ModPowerCostSchoolPct: case AuraType.ModPowerCostSchoolPct:
case AuraType.ModMechanicDamageTakenPercent: case AuraType.ModMechanicDamageTakenPercent:
@@ -3616,6 +3618,19 @@ namespace Game.Spells
case AuraType.Dummy: case AuraType.Dummy:
case AuraType.PeriodicDummy: case AuraType.PeriodicDummy:
case AuraType.ModHealing: case AuraType.ModHealing:
case AuraType.ModWeaponCritPercent:
case AuraType.PowerBurn:
case AuraType.ModCooldown:
case AuraType.ModChargeCooldown:
case AuraType.ModIncreaseSpeed:
case AuraType.ModParryPercent:
case AuraType.SetVehicleId:
case AuraType.PeriodicEnergize:
case AuraType.EffectImmunity:
case AuraType.OverrideClassScripts:
case AuraType.ModShapeshift:
case AuraType.ModThreat:
case AuraType.ProcTriggerSpellWithValue:
// check target for positive and negative spells // check target for positive and negative spells
if (!_isPositiveTarget(effect)) if (!_isPositiveTarget(effect))
return false; return false;