Description
Droll is a JavaScript dice-rolling library. It accepts input in standard dice notation and works in both Node.js and browser environments.
An optional executable is also included in the package for use directly from the command line.
Installation
With npm (recommended)
npm install droll
Without npm
Download droll.js or droll.min.js
Usage
Node.js
var droll = require('droll');
var result = droll.roll('3d6+1');
console.log(result);Browser
<script src="droll.js"></script>
<script type="text/javascript">
var result = droll.roll('3d6+1');
console.log(result);
</script>Optional Executable
Droll ships with an optional executable that can be installed via npm like this
npm install droll -gAnd used from the command line like this
$ droll 3d6+1
6 + 5 + 5 + 1 = 17Public Methods
validate(formula)
- formula
StringThe dice formula in standard dice notation.
Returns true if formula is valid dice notation or false otherwise.
roll(formula)
- formula
StringThe dice formula in standard dice notation.
Rolls the dice defined by formula and returns a DrollResult object on success or false
otherwise.
The DrollResult object contains the following properties
- rolls
ArrayThe result of each die roll. - modifier
NumberThe optional modifier. The default is 0. - total
NumberThe sum of the rolls plus the modifier.
The DrollResult object also has a custom toString() method for pretty printing the result.
It returns strings that look like 6 + 5 + 5 + 1 = 17 or 4 + 2 - 1 = 5 or even just 7.
parse(formula)
- formula
StringThe dice formula in standard dice notation.
Parses formula into its component pieces and returns a DrollFormula object on success or false
otherwise.
The DrollFormula object contains the following properties
- numDice
NumberThe number of dice to roll. - numSides
NumberThe number of sides on each die. - modifier
NumberThe optional modifier. The default is 0. - minResult
NumberThe minimum result that can be returned by this formula. - maxResult
NumberThe maximum result that can be returned by this formula. - avgResult
NumberThe average result returned by this formula. ((max + min) / 2)