# D20

D20 is a Dart library for RPG dice rolling. Supports standard notation (like "2d12", "d6+5" and "2d20-L").

## Installation

Add the following to your `pubspec.yaml`

file:

```
dependencies:
d20: <1.0.0
```

then run:

```
pub get
```

or with flutter:

```
flutter packages get
```

## Usage

```
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);
}
```

## Supported notation

The standard dice notation will be parsed, such as 2d8+4.

### L and H subtraction

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.

### Operators

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.

### Percentile dice (d%)

You can also use use the `d%`

notation instead of `d100`

.