0.8.0.16:0 — bundle Station Master v0.8.0.16
Three game releases at once, because the last package was 0.8.0.13:0: the Modifier limits ruling and the coach ratchet made legible (v0.8.0.14), the reference documents rewritten against the game as built (v0.8.0.15), and the Quickstart published where somebody handed this box can actually reach it (v0.8.0.16). GAMES ALREADY RUNNING ON THIS SERVER MAY NOT RESUME. One rule changed in v0.8.0.14 — a Modifier card may no longer be placed outside your Limits — and a game whose saved history contains such a move stops replaying at that move. The server names the move and leaves the save file alone, so a game worth finishing can be finished by putting 0.8.0.13:0 back. On the game this was tested against it stopped eleven moves from where the table had got to. README, instructions.md and the release notes in all five locales say so rather than burying it. The coach ratchet is NOT a rule change and is not presented as one. Coaches only travel one way — boarding discards the emptied coach into the Classification Yard, detraining draws a fresh empty out of the Division Yard, and Classification returns only when the Division Yard runs bare — so over one three-Day game every coach ended in Classification by Day 2 and nobody could board or get off anywhere thereafter. Running out of cars is part of the game; nothing on screen said any of it. A train made up short now reports what it wanted and why none is coming, and the yard panel warns while the shortage lasts. The Interchange stops advertising an action the game does not have. The card said cars could be sorted into any new order there, which has never been implemented, so the only thing it achieved was sending a player hunting for a button that was not there. What it really offers is the one place on the Mainline where an Extra may be made up and started; a consist is re-ordered at a Small Yard, which now shows the train each option would build, laid out west to east as the board draws it. A QUICKSTART SHIPS WITH THE PACKAGE and is linked from the splash page, so a tester who has never played has something to read that is not the repository. The rules and card references beside it were rewritten against the game as built — several had been describing a version a month old. Packaging is the submodule pin, the version and the words: no action, route, file model or interface changed, and the whole release is inside the bundled game. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MUizFYCMHRWhbWwXhp7WPR
This commit is contained in:
@@ -13,24 +13,44 @@ Station Master is a railroad operations board game with an authoritative multipl
|
||||
solitaire needs no server and is not what this package is for. This package runs that server —
|
||||
the browser client, the lobby, and the intent/SSE API — as a single StartOS service.
|
||||
|
||||
**Bundled version: 0.8.0.13.** Nine fixes from a live playtest of 0.8.0.12, almost all of them about
|
||||
what a player can see. The one that mattered moved a car: the Division Yard chips stayed clickable
|
||||
while a player's board was catching up on other people's turns, so a click submitted a real intent
|
||||
against a position several moves stale — they now obey the catch-up queue like every other control,
|
||||
and the yard counts beside them are read from the board on screen rather than the live game. The
|
||||
district picker gained a button for your own seat and is ordered west to east as the map draws it;
|
||||
the Fedora passing is announced and logged; a collision names whose district it was and who loses the
|
||||
5 Revenue; and a Depot that cannot take another passenger says which car it is short of instead of
|
||||
the action vanishing from the menu. v0.8.0.12 before it added the **Restore a Seat** action — see
|
||||
Actions below — for a player whose browser has lost the token that is their only identity.
|
||||
**Bundled version: 0.8.0.16.** Six fixes from a live playtest of 0.8.0.13, plus two follow-ups. One is a rules change and
|
||||
the rest are the game saying what it was already doing. The Sparrow running empty and a Depot that
|
||||
could not unload its passengers turned out to be the same thing: §9.2 sends an emptied coach to the
|
||||
Classification Yard and takes a fresh empty out of the Division Yard, and §2.2 returns Classification
|
||||
only when the Division Yard runs bare — so coaches travel one way. Measured over one three-Day game:
|
||||
sixteen coaches in the Division Yard at setup, none from Day 2 Stage 8 onward, fifteen piled in
|
||||
Classification while the Division Yard sat at 46-47 freight cars and stopped draining. The rule
|
||||
stands (Jesse's ruling, the same one Gitea#2 got); what changed is that a train made up short now
|
||||
reports what it wanted and why none is coming, and the yard panel warns while the shortage lasts.
|
||||
|
||||
**Games in progress resume normally on this one**, and it was checked the narrow way rather than
|
||||
assumed: `git diff v0.8.0.12..v0.8.0.13 -- src/engine/` is **two added lines** — a
|
||||
`superintendentChanged` variant on the `GameEvent` union, and the `events.push` that emits it. Both
|
||||
are additive. `check()`, `legal.ts` and every predicate are untouched, so no once-legal move became
|
||||
illegal, and events are derived by replaying a save rather than stored in one, so widening the union
|
||||
cannot invalidate anything on disk. (0.8.0.10 was the exception: it corrected a ruling and
|
||||
deliberately stranded games holding one. That warning does not apply here.)
|
||||
Also: a Small Yard sort shows the train each option would build, laid out west to east as the board
|
||||
draws it and saying whether the result may leave the Office, and may now leave cars ahead of the
|
||||
engine; making up a train names the train in the history; a switching turn keeps its first move,
|
||||
industry work, the sort and a closing summary instead of a line per move; and the Freight Agent,
|
||||
Porter and Laborer groups say what each role is for.
|
||||
|
||||
Two smaller releases ride along. **v0.8.0.15** stopped the Interchange advertising a car-sorting
|
||||
action it has never had — the text reached players on the board through `mainlineDescription`, which
|
||||
`view.ts` renders as a Mainline card's description, so a player could only go hunting for a button
|
||||
that was not there. What the card actually offers is the one place on the Mainline an Extra may be
|
||||
made up and started. That release also carries a **Quickstart for new players** and brings the four
|
||||
hand-written reference documents up to the game as it runs; they live in the game's `docs/` and are
|
||||
not served by the site. **v0.8.0.16** is a doc comment on the flag behind that card, which is the
|
||||
most likely source of the wrong sentence in the first place.
|
||||
|
||||
**GAMES IN PROGRESS MAY NOT RESUME ON THIS ONE**, and it was measured rather than assumed. A Modifier
|
||||
card may no longer be placed outside a player's Limits, which reverses an earlier ruling and is the
|
||||
one shape of change that strands a save: a predicate in `apply.ts` changed its answer, so a move that
|
||||
was legal when played is refused on replay. The Day 3 playtest save stops at intent 528 of 539 —
|
||||
`card.play c55 → (-2,4)` against a sign at column 3 — eleven moves short of where the table had got
|
||||
to. The file is left untouched and the server names the move it stopped at, so re-installing
|
||||
0.8.0.13 finishes a game worth finishing. (0.8.0.10 was the first release to do this, for the §8.1
|
||||
clearance correction.)
|
||||
|
||||
The rest of the engine diff strands nothing: `makeUpShort` and `switchingEnded` are new events,
|
||||
`trayMoved` and `consistSorted` gained fields, and `switch.sortConsist` gained an OPTIONAL `engineAt`
|
||||
whose absence means what every sort did before — so an older save replays to the same train. Events
|
||||
are derived by replaying a save rather than stored in one.
|
||||
|
||||
The paragraphs below were written for the 0.7.9.8 bump and still describe how a bump is checked.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user