From 2d788f0c07a605342216c4e0597a54f2d8e8c2d5 Mon Sep 17 00:00:00 2001 From: Thaum Rystra Date: Fri, 15 May 2020 16:38:28 +0200 Subject: [PATCH] ability scores now pass on their skill effects to checks and skills --- .../creature/computation/ComputationMemo.js | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) 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); }