Prevented evaluate crashing when given duff abilityMod strings

This commit is contained in:
Stefan Zermatten
2015-05-06 12:12:18 +02:00
parent 39f7548b8d
commit 84cdb12f98

View File

@@ -9,23 +9,27 @@ evaluate = function(charId, string){
} }
//ability modifiers //ability modifiers
var abilityMods = [ var abilityMods = [
"STRENGTHMOD", "strengthMod",
"DEXTERITYMOD", "dexterityMod",
"CONSTITUTIONMOD", "constitutionMod",
"INTELLIGENCEMOD", "intelligenceMod",
"WISDOMMOD", "wisdomMod",
"CHARISMAMOD", "charismaMod",
]; ];
if (_.contains(abilityMods, sub.toUpperCase())){ if (_.contains(abilityMods, sub)){
var slice = sub.slice(0, -3); var slice = sub.slice(0, -3);
return char.abilityMod(slice); try {
return char.abilityMod(slice);
} catch (e){
return sub;
}
} }
//class levels //class levels
if (/\w+levels?\b/gi.test(sub)){ if (/\w+levels?\b/gi.test(sub)){
//strip out "level" //strip out "level"
var className = sub.replace(/levels?\b/gi, ""); var className = sub.replace(/levels?\b/gi, "");
var cls = Classes.findOne({charId: charId, name: className}); var cls = Classes.findOne({charId: charId, name: className});
return cls && cls.level; return cls && cls.level || sub;
} }
//character level //character level
if (sub.toUpperCase() === "LEVEL"){ if (sub.toUpperCase() === "LEVEL"){