Overhauled computations to allow for toggles :'( that sucked
This commit is contained in:
@@ -1,7 +1,25 @@
|
||||
import evaluateCalculation from '/imports/api/creature/computation/evaluateCalculation.js';
|
||||
import applyToggles from '/imports/api/creature/computation/applyToggles.js';
|
||||
|
||||
export default function computeEffect(effect, memo){
|
||||
if (effect.computationDetails.computed) return;
|
||||
if (effect.computationDetails.busyComputing){
|
||||
// Trying to compute this effect again while it is already computing.
|
||||
// We must be in a dependency loop.
|
||||
effect.computationDetails.computed = true;
|
||||
effect.result = NaN;
|
||||
effect.computationDetails.busyComputing = false;
|
||||
effect.computationDetails.error = 'dependencyLoop';
|
||||
if (Meteor.isClient) console.warn('dependencyLoop', effect);
|
||||
return;
|
||||
}
|
||||
// Before doing any work, mark this effect as busy
|
||||
effect.computationDetails.busyComputing = true;
|
||||
|
||||
// Apply any toggles
|
||||
applyToggles(effect, memo);
|
||||
|
||||
// Determine result of effect calculation
|
||||
if (!effect.calculation){
|
||||
if(effect.operation === 'add' || effect.operation === 'base'){
|
||||
effect.result = 0;
|
||||
@@ -16,4 +34,5 @@ export default function computeEffect(effect, memo){
|
||||
effect.result = evaluateCalculation(effect.calculation, memo);
|
||||
}
|
||||
effect.computationDetails.computed = true;
|
||||
effect.computationDetails.busyComputing = false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user