Files
DiceCloud/rpg-docs/lib/functions/dice.js
2015-04-22 12:44:25 +02:00

45 lines
1.0 KiB
JavaScript

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;
};