Implemented text field functionality
Character text fields now work. Slightly modified versions will be needed for Spells, features, etc.
This commit is contained in:
36
rpg-docs/Model/Utility/evaluateString.js
Normal file
36
rpg-docs/Model/Utility/evaluateString.js
Normal file
@@ -0,0 +1,36 @@
|
||||
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;
|
||||
}
|
||||
Reference in New Issue
Block a user