Got tests running on single property character
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
import aggregate from '/imports/api/creature/computation/newEngine/computeComputation/computeVariable/aggregate/index.js';
|
||||
import computeVariableAsAttribute from '/imports/api/creature/computation/newEngine/computeComputation/computeVariableAsType/computeVariableAsAttribute.js';
|
||||
import computeVariableAsSkill from '/imports/api/creature/computation/newEngine/computeComputation/computeVariableAsType/computeVariableAsSkill.js';
|
||||
import computeVariableAsConstant from '/imports/api/creature/computation/newEngine/computeComputation/computeByType/computeVariable/computeVariableAsConstant.js';
|
||||
import computeVariableAsClass from '/imports/api/creature/computation/newEngine/computeComputation/computeVariable/computeVariableAsClass.js';
|
||||
import computeImplicitVariable from '/imports/api/creature/computation/newEngine/computeComputation/computeVariable/computeImplicitVariable.js';
|
||||
import aggregate from './computeVariable/aggregate/index.js';
|
||||
import computeVariableAsAttribute from './computeVariable/computeVariableAsAttribute.js';
|
||||
import computeVariableAsSkill from './computeVariable/computeVariableAsSkill.js';
|
||||
import computeVariableAsConstant from './computeVariable/computeVariableAsConstant.js';
|
||||
import computeVariableAsClass from './computeVariable/computeVariableAsClass.js';
|
||||
import computeImplicitVariable from './computeVariable/computeImplicitVariable.js';
|
||||
|
||||
export default function computeVariable(graph, node, scope){
|
||||
if (!node.data) node.data = {};
|
||||
@@ -16,6 +16,7 @@ export default function computeVariable(graph, node, scope){
|
||||
// Otherwise add an implicit variable to the scope
|
||||
scope[node.id] = computeImplicitVariable(node, scope);
|
||||
}
|
||||
console.log('computed variable ', node);
|
||||
}
|
||||
|
||||
function aggregateLinks(graph, node){
|
||||
@@ -40,13 +41,14 @@ function aggregateLinks(graph, node){
|
||||
|
||||
function combineAggregations(node, scope){
|
||||
combineMultiplierAggregator(node);
|
||||
node.overridenProps.forEach(prop => {
|
||||
node.data.overridenProps?.forEach(prop => {
|
||||
computeVariableProp(node, prop, scope);
|
||||
});
|
||||
computeVariableProp(node, node.definingProp, scope);
|
||||
computeVariableProp(node, node.data.definingProp, scope);
|
||||
}
|
||||
|
||||
function computeVariableProp(node, prop, scope){
|
||||
if (!prop) return;
|
||||
if (prop.type === 'attribute'){
|
||||
computeVariableAsAttribute(node, prop, scope)
|
||||
} else if (prop.type === 'skill'){
|
||||
@@ -61,6 +63,7 @@ function computeVariableProp(node, prop, scope){
|
||||
function combineMultiplierAggregator(node){
|
||||
// get a reference to the aggregator
|
||||
const aggregator = node.data.multiplierAggregator;
|
||||
if (!aggregator) return;
|
||||
|
||||
// Combine
|
||||
let value;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import getAggregatorResult from '/imports/api/creature/computation/newEngine/computeComputation/computeVariable/getAggregatorResult.js';
|
||||
import getAggregatorResult from './getAggregatorResult.js';
|
||||
|
||||
/*
|
||||
* Variables with effects, proficiencies, or damage multipliers but no defining
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import getAggregatorResult from '/imports/api/creature/computation/newEngine/computeComputation/computeVariable/getAggregatorResult.js';
|
||||
import getAggregatorResult from './getAggregatorResult.js';
|
||||
|
||||
export default function computeVariableAsAttribute(node, prop, scope){
|
||||
let result = getAggregatorResult(node);
|
||||
console.log('computing variable as attribure ', node);
|
||||
prop.total = result;
|
||||
prop.value = prop.total - (prop.damage || 0);
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ import { CompilationContext } from '/imports/parser/parser.js';
|
||||
import INLINE_CALCULATION_REGEX from '/imports/constants/INLINE_CALCULTION_REGEX.js';
|
||||
|
||||
export default function computeCalculations(node, scope){
|
||||
if (!node.data) return;
|
||||
// evaluate all the calculations
|
||||
node.data._computationDetails?.calculations?.forEach(calcObj => {
|
||||
evaluateCalculation(calcObj, scope)
|
||||
@@ -14,7 +15,7 @@ export default function computeCalculations(node, scope){
|
||||
function evaluateCalculation(calculation, scope){
|
||||
const context = new CompilationContext();
|
||||
const parseNode = calculation._parsedCalculation;
|
||||
const fn = calculation._parseLevel || 'reduce';
|
||||
const fn = calculation._parseLevel;
|
||||
const calculationScope = {...calculation._localScope, ...scope};
|
||||
calculation.value = parseNode[fn](calculationScope, context);
|
||||
calculation.errors = context.errors;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
export default function evaluateToggles(node){
|
||||
let prop = node.data;
|
||||
if (!prop) return;
|
||||
let toggles = prop._computationDetails?.toggleAncestors;
|
||||
if (!toggles) return;
|
||||
toggles.forEach(toggle => {
|
||||
|
||||
Reference in New Issue
Block a user