# `Srd.Dice.Rolls`
[🔗](https://github.com/autodidaddict/agentic-realms/tree/main/packages/srd_5e/blob/main/lib/srd/dice/rolls.ex#L1)

The SRD's standard rolls, named by intent.

Every function here returns a `Srd.Dice.Roll` and applies no meaning
to the roll. These are convenience functions so developers don't have
to memorize the SRD rules for dice rolling.

# `ability_score`

```elixir
@spec ability_score() :: Srd.Dice.Roll.t()
```

An ability score: **4d6**, drop the lowest.

# `attack`

```elixir
@spec attack(
  integer(),
  keyword()
) :: Srd.Dice.Roll.t()
```

An attack roll: **1d20** + _bonus_ (2d20 keep highest/lowest under advantage).

# `check`

```elixir
@spec check(
  integer(),
  keyword()
) :: Srd.Dice.Roll.t()
```

An ability check: **1d20** + _modifier_.

# `death_save`

```elixir
@spec death_save() :: Srd.Dice.Roll.t()
```

A death saving throw: **1d20**, no modifier.

# `initiative`

```elixir
@spec initiative(
  integer(),
  keyword()
) :: Srd.Dice.Roll.t()
```

An initiative roll: **1d20** + _Dex modifier_.

# `save`

```elixir
@spec save(
  integer(),
  keyword()
) :: Srd.Dice.Roll.t()
```

A saving throw: **1d20** + _bonus_.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
