games/kaintuck: per-leg river hazards from navigation research
#37 in Riparion/riparion-retro — merged 2026-06-12
Ingest Chapter 3 ("The Art of Navigation") of Baldwin's The Keelboat Age on Western Waters into RESEARCH_NAVIGATION.md and turn its §5–§8 hazard taxonomy into distinct per-leg behavior on the river phase.
Previously only the Natchez leg had its own hazard character; the other river legs all fell through to one generic phase-wide table, so the Ohio headwaters, the Grand Chain, the confluence boils, and the Chickasaw eddies all played identically.
What changed (data-only)
kaintuck.ron reuses the existing Town.hazards override and existing outcomes (sandbar/patch/bail/pirates + the spoilage/crew-grumble Specials) — no Rust, no new goods, no new minigames:
- Six new per-leg hazard tables, each keyed to the destination so the flavor lands where the hazard physically is:
- Wheeling / Marietta — upper-Ohio riffles & bars (sandbar weighted up, piracy near nil)
- Shawneetown — lower-Ohio snags / planters & sawyers (patch up to 17%)
- Cairo — confluence boils at the mouth of the Ohio (bail up to 11%)
- Grand Tower — the Grand Chain / Devil's Bake Oven ambush (pirates 14%, rock-snag patch 12%)
- Memphis — Chickasaw-bluff basin eddies (sandbar 15%)
- Retuned thresholds so each named danger dominates its stretch; folk-named, eyewitness-flavored messages.
- Enriched
falls-runsuccess/partial prose from James Hall's account. - Maysville / Cincinnati / Louisville stay on the phase-wide table.
Tests
golden_trace_is_stablere-pinned (0x617f_b5bc_5588_aa65); win/loss pattern across seeds unchanged, no new deaths.scenario_parsesandscenario_is_self_consistentstay green (arm counts, outcome refs, slugs, sort order validated).- All 41 kaintuck tests pass; per-leg distributions verified to sum to 100% via
print_leg_hazards.
Version bumped 0.1.10 → 0.1.11. Also reconciles RESEARCH_BOATMEN.md chapter number (Ch.3 → Ch.2) and cross-links the new navigation file.
🤖 Generated with Claude Code
Last updated 2026-06-13
Links to this note
Merged pull requests, newest first.