@alvarocastro/roll
v1.0.2
Published
Library to parse and roll dices from an AdX dice notation string.
Downloads
16
Readme
Roll
Library to parse and roll dices from a string as an AdX
dice notation roll, like 1d6
, supporting simple transforms like 2d10+5
, or more complex like 1d8-1d6/2
.
Install
npm install -g @alvarocastro/roll
Usage
const roll = require('@alvarocastro/roll');
roll('1d6');
// => 3
roll('2d8');
// => 11
roll('1d3+1d6');
// => 7
roll('4+3d10/1d6');
// => 6.33333
roll(rollString[, rollCallback])
Returns the result of the parsed and rolled rollString
.
rollString
Type: String
Rolls to make in the form of AdX
supporting basic mathematical expressions.
rollCallback
Type: Function
Function called for every sub roll made, it receives the sub roll string as first parameter and an array of roll results as second parameter.
roll('2d6+1d8', (roll, results) => {
console.log(roll, results);
});
// => "2d6", [3, 4]
// => "1d8", [7]
Roll details
To get a detailed output of the roll being made, to check for duplicate rolls, "critical" rolls, etc. roll.detailed()
is provided.
const roll = require('@alvarocastro/roll');
roll.detailed('2d10+4');
// => {
// result: 17,
// rolls: [
// {
// roll: '2d10',
// result: [
// 7,
// 6
// ]
// }
// ]
// }
Contributing
Contributions are always welcome! Please run npm test
beforehand to ensure everything is ok.
Support
If you use this package please consider starring it :)
Related
- @alvarocastro/roll-cli - CLI version of this library.