diff --git a/modules/pegasus-actor.js b/modules/pegasus-actor.js index 2da7f97..845ab44 100644 --- a/modules/pegasus-actor.js +++ b/modules/pegasus-actor.js @@ -1459,17 +1459,27 @@ export class PegasusActor extends Actor { if (this.system.biodata.noautobonus) { // If we are in "no-bonus mode return } - let effects = this.items.filter(effect => effect.type == "effect" && effect.system.genre == "positive" && effect.system.statdice) + let effectsPlus = this.items.filter(effect => effect.type == "effect" && effect.system.genre == "positive" && effect.system.statdice) + let effectsMinus = this.items.filter(effect => effect.type == "effect" && effect.system.genre == "negative" && effect.system.reducedicevalue) for (let statKey in this.system.statistics) { let stat = duplicate(this.system.statistics[statKey]) let bonus = 0 - for (let effect of effects) { + for (let effect of effectsPlus) { if (effect.system.stataffected == statKey) { bonus += Number(effect.system.effectlevel) } } + for (let effect of effectsMinus) { + if (effect.system.stataffected == statKey) { + bonus -= Number(effect.system.effectlevel) + } + } if (bonus != stat.bonuseffect) { stat.bonuseffect = bonus + if ( stat.bonuseffect + stat.value < 1) { + stat.value = 1 + stat.bonuseffect = 0 + } this.update({ [`system.statistics.${statKey}`]: stat }) } } @@ -2214,11 +2224,11 @@ export class PegasusActor extends Actor { } /* -------------------------------------------- */ processVehicleStatEffects() { - let bonus = 0 let effectsPlus = this.items.filter(effect => effect.type == "effect" && effect.system.genre == "positive" && effect.system.statdice) let effectsMinus = this.items.filter(effect => effect.type == "effect" && effect.system.genre == "negative" && effect.system.reducedicevalue) for (let statKey in this.system.statistics) { let stat = duplicate(this.system.statistics[statKey]) + let bonus = 0 for (let effect of effectsPlus) { if (effect.system.stataffected == statKey) { bonus += Number(effect.system.effectlevel) @@ -2231,6 +2241,10 @@ export class PegasusActor extends Actor { } if (bonus != stat.bonuseffect) { stat.bonuseffect = bonus + if ( stat.bonuseffect + stat.level < 1) { + stat.level = 1 + stat.bonuseffect = 0 + } if (stat.currentlevel > stat.bonuseffect+stat.level) { stat.currentlevel = stat.bonuseffect+stat.level }