-
Notifications
You must be signed in to change notification settings - Fork 1
[E-IRON-1] Implement @randsum/ironsworn action and progress rolls #972
Copy link
Copy link
Open
Labels
enhancementNew feature or requestNew feature or requestgame-packageA game-specific dice packageA game-specific dice packagephaseA phase within an epicA phase within an epic
Description
Part of #944
Phase 1: Implement Ironsworn action and progress rolls
Updated 2026-03-24: Game packages now use
.randsum.jsonspecs + codegen, not the removedcreateGameRoll/createMultiRollGameRollfactories. See existing game packages inpackages/games/for the pattern.
Scope
Implement Ironsworn's action roll (1d6 + stat vs 2d10) and progress roll (1d10 vs progress track score) as an ironsworn.randsum.json spec in packages/games/.
Acceptance Criteria
-
ironsworn.randsum.jsonspec defining action roll and progress roll - Codegen produces
src/ironsworn.generated.ts— accessible viaimport { roll } from '@randsum/games/ironsworn' - Action roll: rolls action die (1d6), two challenge dice (1d10 each)
- Adds
stat + addsto action die, caps at 10 - Result values:
STRONG_HIT(beats both),WEAK_HIT(beats one),MISS(beats neither) - Match flag:
isMatch: truewhen both challenge dice show same value - Progress roll: progress track score vs 2d10, same hit type logic, no action die
- Edge cases: action score exactly equals one challenge die (WEAK_HIT, not STRONG_HIT), action score cap of 10, both challenge dice tied (isMatch true)
- Ironsworn SRD (Creative Commons) cited in spec file header
Mechanics Reference
- Action score = d6 + stat + adds, capped at 10
- Strong Hit: action score > both challenge dice
- Weak Hit: action score > one challenge die
- Miss: action score <= both challenge dice
- Match: both challenge dice show the same value (independent of hit type)
- Comparison is strict greater-than — ties go to the challenge dice
Out of Scope
- Starforged (identical mechanics, reuses same spec)
- Oracle table consultation
- Momentum burn
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestgame-packageA game-specific dice packageA game-specific dice packagephaseA phase within an epicA phase within an epic