From a6df4df5347d4643227c9652e0e54395960bf997 Mon Sep 17 00:00:00 2001 From: Stefan Zermatten Date: Tue, 2 Feb 2021 15:07:31 +0200 Subject: [PATCH] Fixed some fields not storing strings when compiling calculations --- .../api/creature/computation/computeEndStepProperty.js | 7 ++++++- .../api/creature/computation/computeInlineCalculations.js | 2 +- app/imports/api/properties/Damages.js | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/imports/api/creature/computation/computeEndStepProperty.js b/app/imports/api/creature/computation/computeEndStepProperty.js index cb143dbf..3319e9a8 100644 --- a/app/imports/api/creature/computation/computeEndStepProperty.js +++ b/app/imports/api/creature/computation/computeEndStepProperty.js @@ -1,4 +1,5 @@ import evaluateCalculation from '/imports/api/creature/computation/evaluateCalculation.js'; +import ConstantNode from '/imports/parser/parseTree/ConstantNode.js'; export default function computeEndStepProperty(prop, memo){ switch (prop.type){ @@ -85,7 +86,11 @@ function computePropertyField(prop, memo, fieldName, fn){ context, dependencies, } = evaluateCalculation(prop[fieldName], memo, fn); - prop[`${fieldName}Result`] = result.value; + if (result instanceof ConstantNode){ + prop[`${fieldName}Result`] = result.value; + } else { + prop[`${fieldName}Result`] = result.toString(); + } prop.dependencies.push(...dependencies); if (context.errors.length){ prop[`${fieldName}Errors`] = context.errors; diff --git a/app/imports/api/creature/computation/computeInlineCalculations.js b/app/imports/api/creature/computation/computeInlineCalculations.js index feb6ee19..879d5da1 100644 --- a/app/imports/api/creature/computation/computeInlineCalculations.js +++ b/app/imports/api/creature/computation/computeInlineCalculations.js @@ -22,7 +22,7 @@ function computeInlineCalcsForField(prop, memo, field){ } = evaluateCalculation(calculation, memo, 'compile'); let computation = { calculation, - result: result.value, + result: result.toString(), }; if (context.errors.length){ computation.errors = context.errors; diff --git a/app/imports/api/properties/Damages.js b/app/imports/api/properties/Damages.js index 2d736b0a..06b81fca 100644 --- a/app/imports/api/properties/Damages.js +++ b/app/imports/api/properties/Damages.js @@ -29,7 +29,7 @@ const DamageSchema = new SimpleSchema({ const ComputedOnlyDamageSchema = new SimpleSchema({ amountResult: { - type: SimpleSchema.Integer, + type: SimpleSchema.oneOf(String, SimpleSchema.Integer), optional: true, }, amountErrors: {