- fix typo in readme
- upgrade to dart 3.6.0
- add roll notation to support defining your own values.
1d[val1,val2,val3]
For example, to roll 2 dice of primes under 20, use:2d[2,3,5,7,11,13,17,19]
- Previously,
4d6 + 3d6 #s #f
would only count success/failures of the 3d6 rolls, since counting had higher priority than the plus operation. You could workaround that with parens(4d6 + 3d6) #s #f
In 7.0.3 and later, the counting operations now have the lowest priority.
- remove demo code accidentally added
- remove direct dependency on
meta
The roll results have changed significantly. Now, there's a RollSummary object that includes a tree of results from evaluating the dice expression. See the README for examples of how to traverse the graph.
- new API for registering roll listeners. see README.md
- analysis cleanup and dep upgrades
- propagate the roll metadata up to the top of the graph
- more readme fixes
- cleanup error handling / exceptions
- fix deprecation
- minor readme language changes
- dart 3.0 requirement
- upgrade deps
- clean up example documenation in README.md
- upgrade deps (lint)
- transfer repository to Adventuresmith org
- fix error messages with extraneous
'
- make examples in README less abstract
- add method for json encoding roll result
- add syntax for exploding/compounding/reroll once
4d6 !o
4d6 !!o
4d6 ro
- add syntax for success, failure, as well as crit success & failure.
4d6 #s=6
- plain
#
counts results and transforms the expression from rolls into a count. - but
#s
,#f
,#cs
,#cf
only add metadata to the roll result, and can be chained together.9d6! -= 3 #s>=5#f1#cs
-- roll 9d6 with exploding, drop any threes, count >=5 as success, 1s as failures, and 6 as critical success
- make RollResult aggregate all results for whole AST
- add compounding dice:
5d6!!
- add keep high/low:
2d20k
- add reroll:
10d4 r<=2
- allow exploding/compounding dice to have an rhs expression (>=,<=,=,<,>)
- remove
!!
as 'limited explosion' (make it compounding, like Roll20 dice notation) - fix syntax for exploding dice (2d6!, not 2d!6).
- remove exploding method from DiceRoller -- now it's part of the AST.
- dice rolls return RollResult
- clean up redundant parser config
- cleanup examples
- add syntax for
>=
and<=
for counts, drop, clamp - remove redundancy in parser defintion
- allow subtraction
- remove unused dev dependency
- fix typo in unit test
- increase test coverage -- test rollN and stats.
- add github actions, remove circleci
- add codecov
- cleanup petitparser usage -- generate AST so that parsing the dice expression can be separate from rolling dice.
- remove subtraction
- clean up add/mult -- don't collapse lists to ints
[1,4,5] + 2
=>[1,4,5,2]
[1,4,5] * 2
=>[2,8,10]
- remove subtraction -- like division, too many corner cases
- clean up error handling -- throw less often, less complex if/else statements.
- update linter and fix analysis
- fix circleci build
- minor analysis cleanup (dead code)
- upgrade deps & null safety
- more error handling
- downgrade petitparser
- library upgrades including sdk >2.7.0
- use unmodifiable view return types
- fix return types of stats objects
- replace use of stats library w/ implementation of welford's algorithm. see http://alias-i.com/lingpipe/docs/api/com/aliasi/stats/OnlineNormalEstimator.html
- make DiceParser.rollN an async generator returning stream of results
- allow lowercase for
-H
,-L
,C>
,C<
- back off petitparser dependency -- back off to 2.2.1, so that we don't have dependency on Dart 2.3.0 (current stable flutter is 2.3.0-dev)
- make code more idiomatic
- make log fields non-public
- upgrade mockito dep
- add drop equals/less-than/greater-than
- add cap/clamp
- add counting operation
- add exploding dice
- more logging and error handling cleanup
- more logging and error handling cleanup
- add dice stats to the parser
- logging & error handling cleanup
- more tests and cleanup examples
- fix typo in readme
- add drop high/low parsing
- fix readme example
- fix readme issues
- bump min dart SDK to 2.2.2
- cleanup parser code
- cleanup analysis problems
- add percentile and D66 dice
- handle missing A or X in AdX
- flesh out API docs
- reformat
- upgrade some dependencies
- upgrade to dart 2
- move args to dev_dependency, since it's just for the example
- added contributing/code-of-conduct docs
- change DiceRoller to output information about individual rolls, instead of just returning the sum.
- remove dependency on quiver, since not heavily using it
- various fixes as I figure out what I'm doing with Dart
- empty/null checking with quiver.strings
- Initial version, created by Steve Christensen