diff --git a/rpg-docs/lib/dice/roll.js b/rpg-docs/lib/dice/roll.js new file mode 100644 index 00000000..fd233b92 --- /dev/null +++ b/rpg-docs/lib/dice/roll.js @@ -0,0 +1,21 @@ +roll = function(n, d){ + var result = []; + if (!isNaN(n)){ + //if only provided 1 argument, it is the dice to roll + if (d === undefined){ + d = n; + n = 1; + } + //hard limit the number of dice rolled + if (n > 500){ + console.warn(n + " > 500, cannot lift that many dice to roll them"); + return; + } + for (var i = 0; i < n; i++){ + var roll = Math.floor(Random.fraction() * d + 1); + result.push(roll); + } + return result; + } + return result; +}; diff --git a/rpg-docs/lib/functions/dice.js b/rpg-docs/lib/functions/dice.js deleted file mode 100644 index ed2969bb..00000000 --- a/rpg-docs/lib/functions/dice.js +++ /dev/null @@ -1,44 +0,0 @@ -roll = function(n, d){ - if (!isNaN(n)){ - //first digit is a number - if (d === undefined){ - d = n; - n = 1; - } - if (n > 500){ - console.log(n + " > 500, cannot lift that many dice to roll them"); - return; - } - var result = {sum: 0, rolls: []}; - for (var i = 0; i < n; i++){ - var roll = Math.floor(Random.fraction() * d + 1); - result.sum += roll; - result.rolls.push(roll); - } - return result; - } - console.log("rolling dice failed for inputs: ", n, d); - return {sum: 0, rolls: []}; -}; - -rollDropLow = function(n, d, drop){ - var r = roll(n, d); - r.rolls.sort(function(a, b){return a - b;}); //sort ascending - r.rolls.splice(0, drop); //remove the lowest elements - r.sum = 0; - for (var i = 0, l = r.rolls.length; i , l ; i++){ - sum += r.rolls[i]; - } - return r; -}; - -rollDropHigh = function(n, d, drop){ - var r = roll(n, d); - r.rolls.sort(function(a, b){return b - a;}); //sort descending - r.rolls.splice(0, drop); //remove the highest elements - r.sum = 0; - for (var i = 0, l = r.rolls.length; i , l ; i++){ - sum += r.rolls[i]; - } - return r; -};