Roll Defiance Dice
defy_rollRoll up to three times to challenge a landed fortune, holding selected dice between throws to shape the result. Increase debt with each roll, then resolve the defiance.
Instructions
Roll (or re-roll) the five defiance dice, Yahtzee-style, when a player wants to fight a landed fortune from call_the_hand.
Call once to make the first roll (keep=None or []), then optionally
call again up to two more times to re-roll, keeping whichever dice the
player wants to hold between rolls. Up to three rolls total; call
defy_resolve once the player is satisfied with the dice (or after the
third roll) to lock in the result and deal debt.
keep: the die face values (1-6) to hold onto from the current dice
before rolling the rest fresh — e.g. keep=[6, 6] to hold two sixes.
Must be a subset of what's actually currently showing (raises
ValueError otherwise), and must be empty/None on the very first roll of
a ritual (there are no dice to keep yet).
Not idempotent: mutates shared dice/roll-count state across calls
within one defiance ritual; each extra roll taken also means more debt
dealt later at defy_resolve. Returns a dict with dice (sorted current
values), rolls_taken, rolls_remaining, and current_pattern/current_bend
if the dice already match a scoring pattern (three of a kind, small
straight, full house, or five of a kind — see defy_resolve).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| keep | No |