|
|
|
@ -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 })
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -1744,7 +1754,7 @@ export class PegasusActor extends Actor {
|
|
|
|
|
let effects = this.items.filter(item => item.type == 'effect')
|
|
|
|
|
for (let effect of effects) {
|
|
|
|
|
effect = duplicate(effect)
|
|
|
|
|
if (!effect.system.hindrance && !effect.system.statdice
|
|
|
|
|
if (!effect.system.hindrance && !effect.system.statdice && !effect.system.reducedicevalue
|
|
|
|
|
&& (effect.system.stataffected != "notapplicable" || effect.system.specaffected.length > 0)
|
|
|
|
|
&& effect.system.stataffected != "special"
|
|
|
|
|
&& effect.system.stataffected != "powerroll"
|
|
|
|
@ -2214,17 +2224,30 @@ export class PegasusActor extends Actor {
|
|
|
|
|
}
|
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
|
processVehicleStatEffects() {
|
|
|
|
|
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.level < 1) {
|
|
|
|
|
stat.level = 1
|
|
|
|
|
stat.bonuseffect = 0
|
|
|
|
|
}
|
|
|
|
|
if (stat.currentlevel > stat.bonuseffect+stat.level) {
|
|
|
|
|
stat.currentlevel = stat.bonuseffect+stat.level
|
|
|
|
|
}
|
|
|
|
|
this.update({ [`system.statistics.${statKey}`]: stat })
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|