Wire TimingBar into the splint and dosing catastrophes

Wire TimingBar into the splint and dosing catastrophes

#12 in Riparion/riparion-retro — merged 2026-06-09

What

Wires the shared minigames-kit TimingBar (a marker sweeps a track; tap as it crosses the zone) into two Oregon Trail catastrophes that were previously pure stat hits:

  • Daughter breaks her arm → set the bone with one clean strike. Dead-center barely costs time; a fumble loses more miles + misc.
  • Illness (mild / bad / serious) → measure out a dose of medicine. The illness's own toll lands either way, but a shaky pour spills extra medical supplies — which can be what tips a thin party into the pneumonia death. Wired through all three illness paths: poor eating, cold weather past the mountains, and blizzards.

How

  • illness() now rolls the severity (preserving the original RNG draws), stashes it in a new pending_illness field, and pauses for the dose game; resolve_dose applies the toll and calls advance(), so the existing Resume machinery carries on correctly whether the illness came from the event leg or a mountain pass.
  • New Mode::Splint / Mode::Dose, thin splint.rs / dose.rs screens over TimingBar, and the timing_bar feature added to the minigames-kit dep.
  • Same engine/UI split and pause→resolve pattern as the existing fog/climb/flee/gunfight minigames.

Notes

  • Like the earlier fog/climb/flee conversions, the splint change drops the two rng.uniform() draws the old inline event made (penalty is now accuracy-based), so the seeded RNG stream shifts from that fortnight on — consistent with how the other minigames were wired.
  • Bumps the oregon-trail crate to 0.1.3.

Tests

4 new engine tests (splint launch + cost grading + stale-tap guard; illness launches the dose + shaky pour wastes supplies) plus both new modes handled in the whole-journey smoke test. 34 passed, clippy clean.

🤖 Generated with Claude Code

Last updated 2026-06-10