diff --git a/app/imports/api/creature/computation/ComputationMemo.js b/app/imports/api/creature/computation/ComputationMemo.js index 175852eb..160f6a1d 100644 --- a/app/imports/api/creature/computation/ComputationMemo.js +++ b/app/imports/api/creature/computation/ComputationMemo.js @@ -126,7 +126,12 @@ export default class ComputationMemo { targets.add(target); if (isSkillOperation(prop) && isAbility(target)){ let extras = this.skillsByAbility[statName] || []; - targets.add(...extras) + extras.forEach(ex =>{ + // Only pass on ability effects to skills and checks + if (ex.skillType === 'skill' || ex.skillType === 'check'){ + targets.add(ex) + } + }); } }); return targets; @@ -154,15 +159,6 @@ export default class ComputationMemo { } } -const skillOperations = [ - 'advantage', - 'disadvantage', - 'passiveAdd', - 'fail', - 'conditional', - 'rollBonus', -]; - function isAbility(prop){ return prop.type === 'attribute' && prop.attributeType === 'ability' @@ -172,6 +168,15 @@ function isSkillCheck(prop){ return includes(['skill', 'check', 'save', 'utility'], prop.skillType); } +const skillOperations = [ + 'advantage', + 'disadvantage', + 'passiveAdd', + 'fail', + 'conditional', + 'rollBonus', +]; + function isSkillOperation(prop){ return skillOperations.includes(prop.operation); }