Oregon Trail: route snakebite, river ford, and ox-leg through SteadyHands

Oregon Trail: route snakebite, river ford, and ox-leg through SteadyHands

#16 in Riparion/riparion-retro — merged 2026-06-10

Summary

Wires the SteadyHands precision-trace minigame into three Oregon Trail catastrophes that were still pure stat hits in do_event. Each is about holding a hand steady under strain over a span of time, which fits SteadyHands and is distinct from the existing minigames (TimingBar = one clean instant, CrowdThreading = trace a route, QuickDraw = reaction speed). Follows the established Splint/Dose begin_*/resolve_*/screen pattern.

Event (do_event idx) SteadyHands fantasy Loss, graded by accuracy
Poisonous snakebite (11) hold the blade steady to draw the venom bullets −10; misc −= 5 + 6·drift; death if misc < 0 — a steady hand saves the medicine that keeps you alive
Wagon swamped fording a river (12) hold the wagon level against the current food −30, clothing −20; miles −= 8 + 24·drift
Ox injures its leg (2) hold the leg steady while wrapping it oxen −20; miles −= 8 + 24·drift

Changes

  • EngineMode::Steady; SteadyTask { Snakebite, Ford, OxLeg } + pending_steady; begin_steady/resolve_steady; the three do_event arms now pause into the minigame.
  • UI — new screens/steady.rs wrapper (per-task prompt/difficulty, salted per-encounter seed), app.rs dispatch, screens/mod.rs, and the steady_hands cargo feature.
  • Tests — seed-sweep launch of all three tasks, steady-vs-shaky cost, snakebite survive-vs-die, stale-double-tap guard; play driver updated. 38 engine tests pass; workspace checks clean.
  • Docs — checks the three off in TODO_OREGONTRAIL_MINIGAMES.md.

Note

The river ford previously consumed one rng.uniform() for its miles roll; grading by accuracy instead drops that draw, shifting the RNG stream for later same-fortnight events — the same kind of change the Splint/Fog/Climb conversions already made. Snakebite and ox-leg draw no rng, so their streams are undisturbed.

🤖 Generated with Claude Code

Last updated 2026-06-10