Files
DiceCloud/rpg-docs/lib/functions/evaluateString.js
2014-11-13 09:30:54 +00:00

36 lines
937 B
JavaScript

evaluate = function(character, string){
string = string.replace(/\b[a-z]+\b/g, function(sub){
//skill mods
if(character.skills[sub]){
return +character.skillMod(character.skills[sub]);
}
//attributes
if(character.attributes[sub]){
return +character.attributeValue(character.attributes[sub]);
}
return sub;
});
try{
result = math.eval(string);
return result
} catch(e){
console.log(e)
return string;
}
}
evaluateString = function(character, string){
//define brackets as curly brackets around anything that isn't a curly bracket
var brackets = /\{[^\{\}]*\}/g;
var result = string.replace(brackets, function(exp){
var exp = exp.replace(/(\{|\})/g, "") //remove brackets
var span = jQuery('<span/>', {
title: exp,
text: evaluate(character, exp),
class: "calculatedValue"
});
return span.prop('outerHTML');
});
//this is going to return HTML, ensure it is santized!
return result;
}