Add Sequence (order-memory) minigame and wire it into Oregon Trail

Add Sequence (order-memory) minigame and wire it into Oregon Trail

#22 in Riparion/riparion-retro — merged 2026-06-11

Summary

Adds Sequence, a Simon-style order-memory minigame, to minigames-kit, and wires it into Oregon Trail's wagon-wheel, ox-leg, and snakebite catastrophes.

A short ordered run of symbols flashes one at a time; the player taps them back in the same order. It fills the "ordered procedure / working memory" skill gap none of the existing four mechanics cover. Same kit contract as the others: feature-gated module, deterministic from seed, 20 ms tick counter, plain SequenceResult (correct_prefix / length / perfect) returned via on_complete, scoring left to the host.

minigames-kit

  • New sequence module + feature, pure unit-tested helpers (build_sequence, lit_slot, correct_prefix), and the Sequence component.
  • Standalone minigames-kit-sequence demo crate + just sequence recipe.
  • Glyph/button sizing adapts to the longest label so single-glyph shapes render large while word palettes (e.g. SPLINT) still fit. The flash stage sets opacity explicitly in both lit/gap branches (Dioxus patches style props individually — a lit style omitting opacity inherits the gap's opacity: 0, so only the first symbol would show).

Oregon Trail

  • Sequence now drives three events: wagon wheel (jack → block → bolt → seat), ox-leg (wrap → pad → bind), snakebite (tourniquet → lance → dress). Losses graded by how much of the order was fumbled; the snakebite keeps its death-if-no-medicine gate.
  • The wheel was a plain stat hit; ox-leg and snakebite were on SteadyHands. Moving all three here leaves the river ford as the lone steady-hand event (SteadyTask trimmed to Ford).
  • New thin screen wrapper, plus router / cover-art keys / image-key doc / engine-test updates.

Verification

  • cargo test: 48 kit tests + 48 oregon-trail engine tests pass (new sequence + grading + death-gate + stale-double-tap coverage).
  • cargo clippy -- -D warnings clean; both crates build to wasm.
  • Real browser runs (touch viewport, fresh wasm load): the standalone demo (flawless + slip paths), and the in-game snakebite event via save-injection — rendered → played → resolved with the right stat changes (AMMO 5000→4990, SUPPLIES 60→55) and the death gate intact.

🤖 Generated with Claude Code

Last updated 2026-06-11