From 7430c2c795966195472316fb02e8caf8799fb5df Mon Sep 17 00:00:00 2001 From: Stefan Zermatten Date: Wed, 6 May 2015 12:12:18 +0200 Subject: [PATCH] Prevented evaluate crashing when given duff abilityMod strings --- rpg-docs/lib/functions/evaluate.js | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/rpg-docs/lib/functions/evaluate.js b/rpg-docs/lib/functions/evaluate.js index f735d74d..7e1d8adf 100644 --- a/rpg-docs/lib/functions/evaluate.js +++ b/rpg-docs/lib/functions/evaluate.js @@ -9,23 +9,27 @@ evaluate = function(charId, string){ } //ability modifiers var abilityMods = [ - "STRENGTHMOD", - "DEXTERITYMOD", - "CONSTITUTIONMOD", - "INTELLIGENCEMOD", - "WISDOMMOD", - "CHARISMAMOD", + "strengthMod", + "dexterityMod", + "constitutionMod", + "intelligenceMod", + "wisdomMod", + "charismaMod", ]; - if (_.contains(abilityMods, sub.toUpperCase())){ + if (_.contains(abilityMods, sub)){ var slice = sub.slice(0, -3); - return char.abilityMod(slice); + try { + return char.abilityMod(slice); + } catch (e){ + return sub; + } } //class levels if (/\w+levels?\b/gi.test(sub)){ //strip out "level" var className = sub.replace(/levels?\b/gi, ""); var cls = Classes.findOne({charId: charId, name: className}); - return cls && cls.level; + return cls && cls.level || sub; } //character level if (sub.toUpperCase() === "LEVEL"){