Added calculation errors to attributes and toggles

This commit is contained in:
Thaum Rystra
2020-05-28 20:33:08 +02:00
parent cd413ba64f
commit 9236f3e477
9 changed files with 83 additions and 44 deletions

View File

@@ -2,13 +2,12 @@ import evaluateCalculation from '/imports/api/creature/computation/evaluateCalcu
export default class EffectAggregator{
constructor(stat, memo){
delete this.baseValueErrors;
if (stat.baseValueCalculation){
let {value, errors} = evaluateCalculation(stat.baseValueCalculation, memo);
this.statBaseValue = value;
if (errors.length){
this.baseValueErrors = errors;
} else {
delete this.baseValueErrors;
}
this.base = this.statBaseValue;
} else {

View File

@@ -31,6 +31,7 @@ function getAggregatorResult(stat, aggregator){
function combineAttribute(stat, aggregator){
stat.value = getAggregatorResult(stat, aggregator);
stat.baseValue = aggregator.statBaseValue;
stat.baseValueErrors = aggregator.baseValueErrors;
if (stat.attributeType === 'ability') {
stat.modifier = Math.floor((stat.value - 10) / 2);
}

View File

@@ -16,6 +16,7 @@ export default function computeToggle(toggle, memo){
toggle.computationDetails.busyComputing = true;
// Do work
delete toggle.errors;
if (toggle.enabled){
toggle.toggleResult = true;
} else if (toggle.disabled){
@@ -29,8 +30,6 @@ export default function computeToggle(toggle, memo){
toggle.toggleResult = value;
if (errors.length){
toggle.errors = errors;
} else {
delete toggle.errors;
}
}
toggle.computationDetails.computed = true;