Creates dice pools using dice annotation known from RPG's and the like (3d6, 10d100, 8d12). Pools can be merged, and there are convenience methods for easily creating typical dice.
Install
npm install bitkompagniet-dice
API
Create a new pool:
var dice = require('bitkompagniet-dice');
var pool = dice.create('4d6'); // the pool will start rolled
Rolling and retrieving the value
The value of the pool is an array of the individual dice values.
var result = pool.roll(); // will return the new value
var value = pool.value(); // will be the same as above until we re-roll
Aggregates
var sum = pool.sum() // a single sum of all dice values
var avg = pool.average() // the average of all values
var med = pool.median() // the median value
var min = pool.min() // the lowest die value
var max = pool.max() // the highest die value
var sixes = pool.count(6) // number of 6's
var highs = pool.count([5, 6]) // number of 5's and 6's
Merging pools
var p1 = dice.create('10d6');
var p2 = dice.create('2d100');
var merged = p1.merge(p2); // 10d6 + 2d100
Special dice
If we want to create one or more dice that are not continuous in values starting from 1, we can create a pool of special dice:
// Create 10 dice with 6 sides, values 2, 4, 6, 2 sides with 8, and 10.
var pool = dice.specialDice([2, 4, 6, 8, 8, 10], 10);
Only numbered dice are allowed right now.
Future plans
- Accept pool definitions of numbers instead of annotations.
- Accept a compound of pools in
dice.create()
. - Allow non-numerical dice.