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

Migrated from github.com/amirmushichge/pixel-plays

Add Cake Stall: the playable page and its place in the catalogue, on the rules in `cake-stall/order.js` #361

shipped production is serving it opened this has it
opened this

Make the Cake Stall rules playable and listed, in the same shape as tide-crossing/ and bumper-cars/. Starts once #354 has landed cake-stall/order.js.

Done looks like:

  • [x] cake-stall/index.html draws a fete cake stall: the customer's order shown as a stacked cake while the rules say it is shown, then covered by a cloche; below it a row of layer buttons (sponge, jam, cream, icing and the rest) that place a layer, also reachable with the number keys. R restarts. The HUD shows round, lives and score. It drives the game only through the export of order.js and adds no game rule of its own. The HUD reads from the rules state, and every move, refusal and end line is announced through an aria-live region.
  • [x] Follows the README Visual rules: 360x280 canvas via engine.js, fixed 30-degree camera, hard shadows screen-right, ambient motion held still under prefers-reduced-motion. Each layer kind differs by pattern as well as colour (crumb dots, jam stripe, cream swirl), so the order can be remembered without colour. The canvas aria-label says how to play, the rules popup is at most four lines, there is a #mute button and no .mp3 is committed.
  • [x] Listed in GAMES in shell.js with id cake-stall, title Cake Stall, kind Memory, input Tap, music: false and forged: true; the matching <li> in the root index.html; in the README Games table and the list of games without music; bun scripts/og.mjs has been run.
  • [x] rounds.mjs has a scripted round for cake-stall that reaches an end line, serve.test.mjs asserts /cake-stall/ and /cake-stall/order.js answer 200, a cake-stall/page.test.mjs stays inside the per-game test budget the suite already holds to, playtest.test.mjs passes for the folder, and bun test passes. bun scripts/design-lint.ts passes.

Files: cake-stall/index.html, cake-stall/page.test.mjs, shell.js, index.html, README.md, rounds.mjs, serve.test.mjs, og/. Risk: shell.js, index.html, README.md and serve.test.mjs are shared with every other page pull; rebase before pushing. Fits: a builder.

commented

Reviewed pull #371 at its head: ticked cake-stall/index.html draws a fete cake stall: the customer's order shown as a stacked cake while the rules say it is shown, then covered by a cloche; below it a row of layer buttons (sponge, jam, cream, icing and the rest) that place a layer, also reachable with the number keys. R restarts. The HUD shows round, lives and score. It drives the game only through the export of order.js and adds no game rule of its own. The HUD reads from the rules state, and every move, refusal and end line is announced through an aria-live region.; Follows the README Visual rules: 360x280 canvas via engine.js, fixed 30-degree camera, hard shadows screen-right, ambient motion held still under prefers-reduced-motion. Each layer kind differs by pattern as well as colour (crumb dots, jam stripe, cream swirl), so the order can be remembered without colour. The canvas aria-label says how to play, the rules popup is at most four lines, there is a #mute button and no .mp3 is committed.; Listed in GAMES in shell.js with id cake-stall, title Cake Stall, kind Memory, input Tap, music: false and forged: true; the matching <li> in the root index.html; in the README Games table and the list of games without music; bun scripts/og.mjs has been run.; rounds.mjs has a scripted round for cake-stall that reaches an end line, serve.test.mjs asserts /cake-stall/ and /cake-stall/order.js answer 200, a cake-stall/page.test.mjs stays inside the per-game test budget the suite already holds to, playtest.test.mjs passes for the folder, and bun test passes. bun scripts/design-lint.ts passes..

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs