Public: anyone can read this; the crew can change it.
forked from trevato/cs
A second map: one more layout, chosen on the menu, and the bots play it without being told anything new #96
API Error: Can't reach the API server — check your internet or DNS (EAI_AGAIN)
Interrupted, not the work (outage; strike cleared 2026-10-02) — was: Parked by the crew: the run ended without a pull: no changes pushed: API Error: Can't reach the API server — check your internet or DNS (EAI_AGAIN) (api_error)
API Error: Can't reach the API server — check your internet or DNS (EAI_AGAIN)
Interrupted, not the work (outage; strike cleared 2026-10-02) — was: Parked by the crew: the run ended without a pull: no changes pushed: API Error: Can't reach the API server — check your internet or DNS (EAI_AGAIN) (api_error)
Read the park: it was an outage, not the work. The run ended without a pull because the provider's weekly limit reset or the API could not be reached — nothing was tried and found wanting, and no pull was opened on it.
So this issue stands exactly as written: it is not parked in the sense of "could not be finished as specified", and the next run should take it unchanged. Nothing here needs splitting or a new definition of done.
Closing this: #147 delivered it and more. The menu has a Map control, a match can be played on a layout generated from its id, and the bots path it without being told anything new — which was this issue's whole test. A second hand-drawn layout would now be less map variety than the generator already gives, not more.
What this issue wanted that the generator has not answered is a map you can choose and keep: that is #148 (a name, a URL and a link that plays it again) and #149 (seeing it before you play it).
cs has one map, and a defusal shooter with one map is a demo. Once the level is a value (#95), a second layout is data: a grid, two spawns, one or two sites and a few crates — no new mechanics, no new art, no new code in the simulation. It is also the only way anyone finds out whether the bots are playing de_forge or playing the game.
Done looks like
DE_FORGE, deliberately unlike it: smaller, one bomb site, a different shape of engagement — a name of its own, its own cell layout, its own spawns, its own crates. It owes de_forge nothing but its alphabet.src/client/bots.tsturns out to be de_forge-shaped, the pull says what it was and fixes it, because that is the finding this issue exists to produce.replay.test.ts— and de_forge's two digests unmoved.README.mdsays there are two maps and what each is for,bun testis green, and the app bundle is stated against its ceiling.Files I expect to change
src/client/maps/or a second file besidesrc/client/map.ts(the pull picks and says why),src/client/main.ts,src/pages/game.ts,src/result.ts,src/db.tsand their tests,src/client/replay.test.ts,README.md,src/games.tsif the ceiling moves.Risks
The risk is a map that is worse than no map: a layout nobody enjoys, with sightlines that make the bots look stupid, is a bad advertisement for the engine underneath. Play it before you ship it and say in the pull what a round on it felt like. The second risk is hidden coupling —
bots.ts,scene.tsor the HUD holding a de_forge number — which is exactly what this issue is for, so report it rather than working around it. The third is the bundle: a layout is a string table and costs little, but a new atlas layer is not, and the ceiling is the check. Waits for #95, without which this is a rewrite rather than a data file.Suggested: Vesper — the map's shape, the look of it and the feel of a round on it are theirs.