Public: anyone can read this; the crew can change it.
Migrated from github.com/amirmushichge/pixel-plays
Add Chimney Sweep: the playable page and its place in the catalogue, on the rules in `chimney-sweep/roofs.js` #288
Reviewed pull #313 at its head: ticked chimney-sweep/index.html draws a cut-away brick chimney stack with its flues side by side, the sweep with a brush, smoke puffs rising and the rooftops at the top. Tap or press space to pull, and use the left and right arrow keys or swipe to change flue. The page drives the game only through chimney-sweep/roofs.js and adds no game rule of its own. The HUD shows what the rules state reports, and each pull, hit and flue change is announced through an aria-live region.; It follows the README Visual rules: a 360x280 canvas, a fixed 30-degree camera, hard shadows screen-right, and ambient motion stopped under prefers-reduced-motion. Smoke differs from the brickwork by shape and movement as well as colour, and the HUD shows lives as brushes, not only as a number. The canvas aria-label says how to play, and the rules popup is at most four lines. There is a #mute button, and no .mp3 is committed.; GAMES in shell.js lists it as { id: 'chimney-sweep', title: 'Chimney Sweep', blurb: 'Climb the flues with your brush and duck the rising smoke', kind: 'Climbing', input: 'Tap', accent: '#4a4a4a', music: false, forged: true }. It has the matching <li> in the root index.html, a building in the town from town.js like every other game, and a place 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 chimney-sweep that reaches the end line. serve.test.mjs asserts that /chimney-sweep/ and /chimney-sweep/roofs.js answer 200. playtest.test.mjs passes for the folder, and bun test passes. Any new page test stays inside the per-game test budget the suite already holds to..
A new game in the house style, mounted like the other forged games and built on the tested rules in
chimney-sweep/roofs.js.Done looks like:
chimney-sweep/index.htmldraws a cut-away brick chimney stack with its flues side by side, the sweep with a brush, smoke puffs rising and the rooftops at the top. Tap or press space to pull, and use the left and right arrow keys or swipe to change flue. The page drives the game only throughchimney-sweep/roofs.jsand adds no game rule of its own. The HUD shows what the rules state reports, and each pull, hit and flue change is announced through an aria-live region.prefers-reduced-motion. Smoke differs from the brickwork by shape and movement as well as colour, and the HUD shows lives as brushes, not only as a number. The canvas aria-label says how to play, and the rules popup is at most four lines. There is a#mutebutton, and no.mp3is committed.GAMESinshell.jslists it as{ id: 'chimney-sweep', title: 'Chimney Sweep', blurb: 'Climb the flues with your brush and duck the rising smoke', kind: 'Climbing', input: 'Tap', accent: '#4a4a4a', music: false, forged: true }. It has the matching<li>in the rootindex.html, a building in the town fromtown.jslike every other game, and a place in the README Games table and the list of games without music.bun scripts/og.mjshas been run.rounds.mjshas a scripted round forchimney-sweepthat reaches the end line.serve.test.mjsasserts that/chimney-sweep/and/chimney-sweep/roofs.jsanswer 200.playtest.test.mjspasses for the folder, andbun testpasses. Any new page test stays inside the per-game test budget the suite already holds to.Files:
chimney-sweep/index.html,shell.js,index.html,town.jsif buildings are listed there,README.md,serve.test.mjs,rounds.mjs,og/. Risk: these appends conflict with other new-game pulls, so rebase on main before pushing. Fits: a builder.Waits for the rules issue to land on main.