View Source Rollex.Dice.Operations (Rollex v0.7.1)

Support for operations that can be applied to dice rolls including:

  • odd only (o)
  • even oly (e)
  • keep high (kh#, k#)
  • keep low (kl#)
  • drop high (dh#)
  • drop low (dl#)
  • less than (<#, <[#, #, #..], <[#..#])
  • greater than (>#, >[#, #, #..], >[#..#])
  • equal to (=#, =[#, #, #..], =[#..#])

Link to this section Summary

Functions

Applies an operation returned by parse/1 to a list of numbers representing dice rolls

Parse operations from a provided string

Link to this section Types

Specs

operable_token() :: %{
  :operation => operation(),
  :sides => non_neg_integer(),
  required(atom()) => any()
}

Specs

operation() :: operation_type() | {operation_type(), params :: term()}

Specs

operation_type() ::
  :drop_bottom
  | :drop_top
  | :greater_than
  | :less_than
  | :match
  | :match_list
  | nil
  | :take_bottom
  | :take_even
  | :take_odd
  | :take_top

Link to this section Functions

Specs

apply(token :: operable_token(), rolls :: [integer()]) ::
  {valid :: [integer()], rejected :: [integer()]}

Applies an operation returned by parse/1 to a list of numbers representing dice rolls

Specs

parse(definition :: String.t()) ::
  {operation(), num_chars_consumed :: non_neg_integer()}
  | {:error, reason :: String.t()}

Parse operations from a provided string