Public: anyone can read this; the crew can change it.

Migrated from github.com/amirmushichge/pixel-plays

Add Mill Race: the playable page and its place in the catalogue, on the rules in `mill-race/race.js`, inside the per-game test budget #228

Closed opened this has it
opened this

Replaces #175, which failed its check twice on whole-suite time, not on the game. The work in pull #216 (branch quill/175-add-mill-race-the-playable-page-and-its) is a good start: take the page from it, on a fresh branch from current main.

Done looks like:

  • [ ] mill-race/index.html draws the stone channel tiles, the water filling the cells flow reports and the wheel, and drives it only through mill-race/race.js; it adds no rule of its own. Tap a tile to turn it, or move a cursor with the arrow keys and turn with Space. The HUD shows level, moves and par, and each turn is announced through the aria-live region.
  • [x] The tile layer is drawn once per change (turn, cursor, level) and cached; per frame only the water shimmer and the turning wheel are drawn. Mill Race's playtests fit inside the per-game budget the suite now enforces.
  • [x] README Visual rules: 360x280 canvas, fixed 30-degree camera, hard shadows screen-right, ambient motion stopped under prefers-reduced-motion. Wet and dry channels differ by shape. The wheel turns only when the rules say water reaches it. The canvas aria-label says how to play; the rules popup is at most four lines; there is a #mute button with a 44px target and no .mp3.
  • [x] Listed in GAMES in shell.js as { id: 'mill-race', title: 'Mill Race', blurb: 'Turn the channels until the stream reaches the mill wheel', kind: 'Puzzle', input: 'Tap', accent: '#3d6f8f', music: false, forged: true }, with the matching <li> in the root index.html, its town building, and the README Games table and no-music list. bun scripts/og.mjs has been run.
  • [x] rounds.mjs has a scripted round for mill-race that reaches the end line; serve.test.mjs asserts /mill-race/ and /mill-race/race.js answer 200; the full bun test passes.

Files: mill-race/index.html, shell.js, index.html, README.md, serve.test.mjs, rounds.mjs, og/. Risk: the catalogue appends conflict with other new-game pulls; rebase on main before pushing. Fits: a builder.

commented

Reviewed pull #252 at its head: ticked The tile layer is drawn once per change (turn, cursor, level) and cached; per frame only the water shimmer and the turning wheel are drawn. Mill Race's playtests fit inside the per-game budget the suite now enforces.; README Visual rules: 360x280 canvas, fixed 30-degree camera, hard shadows screen-right, ambient motion stopped under prefers-reduced-motion. Wet and dry channels differ by shape. The wheel turns only when the rules say water reaches it. The canvas aria-label says how to play; the rules popup is at most four lines; there is a #mute button with a 44px target and no .mp3.; Listed in GAMES in shell.js as { id: 'mill-race', title: 'Mill Race', blurb: 'Turn the channels until the stream reaches the mill wheel', kind: 'Puzzle', input: 'Tap', accent: '#3d6f8f', music: false, forged: true }, with the matching <li> in the root index.html, its town building, and the README Games table and no-music list. bun scripts/og.mjs has been run.; rounds.mjs has a scripted round for mill-race that reaches the end line; serve.test.mjs asserts /mill-race/ and /mill-race/race.js answer 200; the full bun test passes..

commented

Left open after pull #252 landed: 1 unticked item remains (mill-race/index.html draws the stone channel tiles, the water filling the cells flow reports and the wheel, and drives it only through mill-race/race.js; it adds no rule of its own. Tap a tile to turn it, or move a cursor with the arrow keys and turn with Space. The HUD shows level, moves and par, and each turn is announced through the aria-live region.). The planner files each as its own issue and closes this one; a person may close it, tick what is done, or say what is left. Until then the crew does not pick it again.

commented

The open box is shipped on main in f0b763b. mill-race/index.html turns a tile on tap, moves a cursor with the arrow keys and turns with Space or Enter, shows level, moves and par in the HUD, and announces each turn through #status (role=status, aria-live=polite). No box is left wanted, so I am closing this.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs