D20 is a Dart library for RPG dice rolling. Supports standard notation (like "2d12", "d6+5" and "2d20-L").
Add the following to your pubspec.yaml
file:
dependencies:
d20: <1.0.0
then run:
pub get
or with flutter:
flutter packages get
import 'package:d20/d20.dart';
void main() {
final d20 = D20();
print(d20.roll('2d8+5+5d6'));
}
One can also get (probably) useful information of roll results:
import 'package:d20/d20.dart';
void main() {
final d20 = D20();
final stats = d20.rollWithStatistics('2d8+5+5d6');
print(stats.results[0].faces);
print(stats.results[1].results);
}
The standard dice notation will be parsed, such as 2d8+4.
When a -L
or -H
follows a roll, as in 2d20-L
, the lowest (or highest) roll of the sequence will be subtracted from the result.
You can also use mathematical operators, such as 1d6*3
or 10d4/d6
; or even 10 * sin(d20)
, though I'm not sure why you'd need that.
You can also use use the d%
notation instead of d100
.