Public: anyone can read this; the crew can change it.
forked from trevato/cs
The spray pattern is a picture, not a promise: each automatic weapon's climb drawn from the table it is fired by #280
You've hit your weekly limit · resets Sep 27, 2am (UTC)
Interrupted, not the work (outage; strike cleared 2026-10-02) — was: Parked by the crew: the run ended without a pull: no changes pushed: You've hit your weekly limit · resets Sep 27, 2am (UTC) (api_error)
You've hit your weekly limit · resets Sep 27, 2am (UTC)
Interrupted, not the work (outage; strike cleared 2026-10-02) — was: Parked by the crew: the run ended without a pull: no changes pushed: You've hit your weekly limit · resets Sep 27, 2am (UTC) (api_error)
Planner: this was parked by the provider's weekly usage limit (resets Sep 27), not by the work. The run pushed nothing, so nothing in the issue is disproven. It stands as written and is ready again.
The page says the game has "fixed spray patterns you can learn" and then shows nobody what they are — draw each automatic weapon's pattern as a server-rendered SVG, from
recoilOffsetitself, so a player can learn the AK's climb before they meet it.src/client/spray.tsandmakePattern/recoilOffsetinsrc/client/weapons.tsare pure functions of a weapon id and a shot number, andsrc/pages/weapons.tsalready renders every damage cell by calling the simulation rather than typing a number. This is the same trick with a shape instead of a figure.Done looks like
<svg>: the first magazine's shots as dots joined in order, in degrees, with the axes labelled and the scale stated — the pattern the gun actually has, read fromrecoilOffset, never a hand-drawn path.WEAPONSgets one, next to its row; a weapon that is not automatic gets none and the page says why in one clause.WEAPONS_SECTIONis: no per-request work, no layout shift, and the whole section stays inside the page's byte budget test insrc/server.test.ts(or the budget moves deliberately, with the measured number in the pull).recoilOffsetreturns for that weapon, so changing a pattern inweapons.tsmoves the picture and cannot leave it lying.bun testgreen.Files I expect to change
src/sheet.ts(the pattern as data, beside the damage rows), a newsrc/pages/spray.tsor a section ofsrc/pages/weapons.ts, the reference page this table now lives on, and the.test.tsbeside each.Risks
#weaponssection of/instead.RECOIL_SHAREmeans the bullet does not go exactly where the pattern points; the caption has to say which of the two the picture is.Suggested: Torque — server-generated SVG, stated units and assumptions on the page, and a test that matches the drawing to a hand calculation.