dicetower
- rip-off of the Nearley calculator grammar with dice rolling added in
- a hubot bot that lets you talk to the Nearley grammar
const dicetower = require('dicetower');
dicetower.report('2d6 + 2dF + 2')
dicetower.report('(1d20)d20')
dicetower.report('2d4 * 1d[2 3 5 7 9 14]')
dicetower.report('2d4 * 1d[2 3 5 7 9 14]', true);
ok so what's this grammar thing?
I dunno. It's cool. It parses your string and does the calculation. You can
read it here. This is a
Nearley grammar.
Here's a full list of supported expressions
- parens
(3 + 1d4) * 2
- exponents
4^8
- multiplication
4 * 4
and division 4 / 1d2
- addition
1 + 1
and subtraction 2 - 2d4
- a range of mathematical functions and constants
sqrt(sin(5)) * pi
- unary negative numbers
-1 + 5
- floats and stuff
0.25 * .55
- dice
- regular dice
2d8
- fudge dice
4dF
- dice with arbitrary custom faces
2d[2 4 6 8 10]
- any value in a dice expression can be an expression
(1d6)d[1 2 3 4 2d4 2d8]
how do i hubot
I think this is how:
- you
npm install --save dicetower
in your hubot dir
- you add
'dicetower/lib/hubot_plugin'
to your external-scripts.json file