0.7.1:0 — bundle Station Master v0.7.1
Four playtest fixes off the Gitea tracker. The submodule pin moves to v0.7.1 and the version follows it; the downstream digit resets to :0, since v0.7.0 only ended on :3 because three test packs were played before it was released. - An empties-only train may couple a caboose again — a caboose carries the crew, not freight. - The end of a Day is a modal carrying the standings, the Days left and the combined target, instead of passing between one click and the next inside the automatic phases. - A Timetabled train may be discarded to a Department pile for a rival to pick up, governed by a new discardTimetabled setting that appears in both the New Game dialog and the lobby, on by default. An Extra never may. - A blocked passenger platform now gives its reason, including the coach shortage and what ends it. No new version file and no migration: current.ts's migrations.up is empty and nothing is carried from 0.7.0. GAMES IN PROGRESS SURVIVE THIS UPDATE — all three engine-visible changes only widen what is legal, so every intent a 0.7.0 game recorded still replays, and the server resumes a save by replaying it rather than by comparing version strings (src/server/index.ts in the game repo). README.md and instructions.md both named 0.7.0 and carry the three user-visible changes now. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FLnYR4XtXQNamYJXGYT8oC
This commit is contained in:
@@ -13,11 +13,21 @@ 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 —
|
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.
|
the browser client, the lobby, and the intent/SSE API — as a single StartOS service.
|
||||||
|
|
||||||
**Bundled version: 0.7.0.** The lobby sets a game up from one of four game types (Solitaire, Co-op,
|
**Bundled version: 0.7.1.** Four playtest fixes on top of 0.7.0. An empties-only train may couple a
|
||||||
Competitive, Cutthroat) plus Custom, offers the whole rule set for reading before a seat is taken,
|
caboose again (a caboose carries the crew, so it is never a load); the end of a Day is a modal
|
||||||
and lets a player leave a lobby or a running game and come back to it. Sound, the timetable flash,
|
carrying the standings, the Days left and the combined target, because a Day turns over inside the
|
||||||
announcements and the just-drawn card badge reach a multiplayer client for the first time. None of
|
automatic phases and used to pass unremarked; a Timetabled train may be discarded to a Department
|
||||||
that changes anything this package does: the submodule pin is the version, and the service is the
|
pile for a rival to pick up, governed by a new `discardTimetabled` New Game setting that is on by
|
||||||
|
default, while an Extra never may; and a blocked passenger platform now reports its reason — the
|
||||||
|
coach shortage behind Gitea#2 is a ruled-in part of the game, and what was actually broken was the
|
||||||
|
silence. **Games in progress survive this update**: all three engine-visible changes only WIDEN what
|
||||||
|
is legal, so every intent a 0.7.0 game recorded still replays, and the server resumes a save by
|
||||||
|
replaying it rather than by comparing version strings.
|
||||||
|
|
||||||
|
0.7.0 remains the shape of the service: the lobby sets a game up from one of four game types
|
||||||
|
(Solitaire, Co-op, Competitive, Cutthroat) plus Custom, offers the whole rule set for reading before
|
||||||
|
a seat is taken, and lets a player leave a lobby or a running game and come back to it. None of this
|
||||||
|
changes anything the package itself does: the submodule pin is the version, and the service is the
|
||||||
same server it always was.
|
same server it always was.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -43,6 +43,18 @@ changing any of them marks the game **Custom**, which keeps the scoring of the t
|
|||||||
from. The seed, the number of players and the number of Days sit above the type and do not make a
|
from. The seed, the number of players and the number of Days sit above the type and do not make a
|
||||||
game Custom — the targets re-derive from them.
|
game Custom — the targets re-derive from them.
|
||||||
|
|
||||||
|
**What changed in 0.7.1.** Three things you will see at the table. The **end of a Day now stops and
|
||||||
|
says so** — a dialog with the standings, how many Days are left and the combined target, because a
|
||||||
|
Day used to turn over inside the phases that run themselves and pass between one click and the next.
|
||||||
|
A **Timetabled train may now be thrown away**: toss it face-up to a Department slot and a rival may
|
||||||
|
pick it up. That is a New Game setting (*A Timetabled train may be discarded*, on by default) — turn
|
||||||
|
it off and a train card can only ever be played onto the timetable. An **Extra is never discardable**
|
||||||
|
either way. And a **platform where nothing can be worked now tells you why** — no train for the
|
||||||
|
passengers waiting, a train whose card bars Porters, coaches already full, the same-district rule, or
|
||||||
|
the Division Yard being out of coaches, in which case it says how many are stranded in the
|
||||||
|
Classification Yard and what brings them back. Running out of coaches is part of the game, not a
|
||||||
|
fault; what was missing was the explanation.
|
||||||
|
|
||||||
**Leaving, and coming back.** Anyone may leave a lobby, and the host can clear a chair, so a
|
**Leaving, and coming back.** Anyone may leave a lobby, and the host can clear a chair, so a
|
||||||
mis-join or somebody who wanders off no longer blocks a table that cannot start until every seat is
|
mis-join or somebody who wanders off no longer blocks a table that cannot start until every seat is
|
||||||
taken. A **Leave game** button appears once a game is running: it keeps your seat and the table
|
taken. A **Leave game** button appears once a game is running: it keeps your seat and the table
|
||||||
|
|||||||
+47
-27
@@ -3,41 +3,61 @@ import { IMPOSSIBLE, VersionInfo } from '@start9labs/start-sdk'
|
|||||||
export const current = VersionInfo.of({
|
export const current = VersionInfo.of({
|
||||||
// `<upstream>:<downstream>` — the upstream half tracks the bundled Station Master tag exactly
|
// `<upstream>:<downstream>` — the upstream half tracks the bundled Station Master tag exactly
|
||||||
// (`versions.md`'s consistency checklist), so bumping the submodule pin and bumping this are one
|
// (`versions.md`'s consistency checklist), so bumping the submodule pin and bumping this are one
|
||||||
// action. The downstream half moves only for packaging-only changes.
|
// action. The downstream half moves only for packaging-only changes, and RESETS to `:0` when the
|
||||||
version: '0.7.0:3',
|
// upstream half moves — v0.7.0 ended on `:3` only because three test packs were played before it
|
||||||
|
// was released.
|
||||||
|
version: '0.7.1:0',
|
||||||
releaseNotes: {
|
releaseNotes: {
|
||||||
en_US:
|
en_US:
|
||||||
'Bundles Station Master v0.7.0. Setting a multiplayer game up is a different screen: pick a game ' +
|
'Bundles Station Master v0.7.1, four fixes from playtesting. A train restricted to empties can ' +
|
||||||
'type \u2014 Co-op, Competitive or Cutthroat \u2014 and every rule it sets is yours to change. Read a ' +
|
'couple its caboose again — a caboose carries the crew, not freight, so it was never a load. ' +
|
||||||
'game\u2019s whole rule set before taking a seat, leave a table or a running game and come back to ' +
|
'The end of a Day now stops and says so, with the standings and how long is left, instead of ' +
|
||||||
'it, and let the host clear a chair. Multiplayer games now have sound, say who else is at the ' +
|
'passing between one click and the next. A Timetabled train may be thrown away to a Department ' +
|
||||||
'table, and name the Superintendent.',
|
'slot for a rival to pick up, which is a New Game setting you can turn off; an Extra still ' +
|
||||||
|
'cannot. And a platform where nothing can be worked now says why, including when the coaches ' +
|
||||||
|
'have run out and what brings them back.',
|
||||||
es_ES:
|
es_ES:
|
||||||
'Incluye Station Master v0.7.0. Crear una partida multijugador es otra pantalla: elige un tipo de ' +
|
'Incluye Station Master v0.7.1, cuatro correcciones surgidas de las partidas de prueba. Un tren ' +
|
||||||
'partida \u2014 Cooperativa, Competitiva o A muerte \u2014 y cambia cualquiera de sus reglas. Lee todas ' +
|
'limitado a vagones vacíos vuelve a poder enganchar su furgón de cola: lleva a la tripulación, ' +
|
||||||
'las reglas antes de sentarte, sal de una mesa o de una partida en curso y vuelve cuando quieras, ' +
|
'no carga, así que nunca fue una carga. El final de cada Día se detiene y lo anuncia, con la ' +
|
||||||
'y el anfitri\u00f3n puede liberar una silla. El multijugador ya tiene sonido, dice qui\u00e9n est\u00e1 en la ' +
|
'clasificación y lo que queda por jugar, en vez de pasar entre un clic y el siguiente. Un tren ' +
|
||||||
'mesa y se\u00f1ala al Superintendente.',
|
'con horario puede descartarse a una casilla de Departamento para que otro lo recoja — es una ' +
|
||||||
|
'opción de partida nueva que puedes desactivar —; un Extra sigue sin poder. Y un andén donde no ' +
|
||||||
|
'se puede trabajar ahora explica por qué, incluso cuando se han agotado los coches y qué los ' +
|
||||||
|
'devuelve.',
|
||||||
de_DE:
|
de_DE:
|
||||||
'Enth\u00e4lt Station Master v0.7.0. Ein Mehrspielerspiel wird jetzt anders eingerichtet: W\u00e4hle einen ' +
|
'Enthält Station Master v0.7.1 mit vier Korrekturen aus dem Spieltest. Ein Zug, der nur Leerwagen ' +
|
||||||
'Spieltyp \u2014 Koop, Wettkampf oder Cutthroat \u2014 und \u00e4ndere jede seiner Regeln. Das ganze Regelwerk ' +
|
'aufnehmen darf, kann seinen Kabuse wieder ankuppeln — ein Kabuse trägt die Mannschaft, keine ' +
|
||||||
'ist vor dem Platznehmen lesbar, man kann einen Tisch oder ein laufendes Spiel verlassen und ' +
|
'Fracht, war also nie eine Ladung. Das Ende eines Tages hält jetzt an und sagt es, mit dem Stand ' +
|
||||||
'zur\u00fcckkehren, und der Gastgeber kann einen Platz r\u00e4umen. Mehrspielerpartien haben jetzt Ton, ' +
|
'und der verbleibenden Zeit, statt zwischen zwei Klicks zu verstreichen. Ein fahrplanmäßiger Zug ' +
|
||||||
'zeigen wer am Tisch ist und nennen den Superintendenten.',
|
'darf auf ein Abteilungsfeld abgeworfen werden, wo ein Mitspieler ihn aufnehmen kann — eine neue ' +
|
||||||
|
'Spieleinstellung, die sich abschalten lässt; ein Extrazug weiterhin nicht. Und ein Bahnsteig, an ' +
|
||||||
|
'dem nichts geht, nennt jetzt den Grund, auch wenn die Wagen ausgegangen sind und was sie ' +
|
||||||
|
'zurückbringt.',
|
||||||
pl_PL:
|
pl_PL:
|
||||||
'Zawiera Station Master v0.7.0. Tworzenie gry wieloosobowej wygl\u0105da inaczej: wybierz typ gry \u2014 ' +
|
'Zawiera Station Master v0.7.1 z czterema poprawkami z testów. Pociąg ograniczony do pustych ' +
|
||||||
'Kooperacja, Rywalizacja lub Cutthroat \u2014 i zmie\u0144 dowoln\u0105 z jego zasad. Przeczytaj ca\u0142y zestaw ' +
|
'wagonów znowu może podpiąć swój służbowy — wiezie załogę, nie ładunek, więc nigdy ' +
|
||||||
'zasad przed zaj\u0119ciem miejsca, opu\u015b\u0107 st\u00f3\u0142 lub trwaj\u0105c\u0105 gr\u0119 i wr\u00f3\u0107 do niej, a gospodarz ' +
|
'ładunkiem nie był. Koniec Dnia zatrzymuje się i to ogłasza, z wynikami i tym, ile zostało, ' +
|
||||||
'mo\u017ce zwolni\u0107 krzes\u0142o. Gra wieloosobowa ma teraz d\u017awi\u0119k, pokazuje kto jest przy stole i ' +
|
'zamiast przemykać między jednym kliknięciem a drugim. Pociąg rozkładowy można odrzucić na ' +
|
||||||
'wskazuje Superintendenta.',
|
'pole Wydziału, skąd weźmie go rywal — to nowe ustawienie gry, które można wyłączyć; ' +
|
||||||
|
'Dodatkowy nadal nie. A peron, na którym nic się nie da zrobić, mówi teraz dlaczego — także ' +
|
||||||
|
'wtedy, gdy skończyły się wagony, i co je przywraca.',
|
||||||
fr_FR:
|
fr_FR:
|
||||||
'Inclut Station Master v0.7.0. La cr\u00e9ation d\u2019une partie multijoueur a chang\u00e9 : choisissez un type ' +
|
'Inclut Station Master v0.7.1, quatre corrections issues des parties d’essai. Un train limité aux ' +
|
||||||
'de partie \u2014 Coop, Comp\u00e9titif ou Cutthroat \u2014 et modifiez chacune de ses r\u00e8gles. Lisez tout le ' +
|
'wagons vides peut de nouveau atteler son fourgon de queue : il transporte l’équipe, pas du fret, ' +
|
||||||
'r\u00e8glement avant de vous asseoir, quittez une table ou une partie en cours et revenez-y, et ' +
|
'il n’a donc jamais été un chargement. La fin d’une Journée s’arrête et l’annonce, avec le ' +
|
||||||
'l\u2019h\u00f4te peut lib\u00e9rer une chaise. Le multijoueur a maintenant du son, indique qui est \u00e0 la table ' +
|
'classement et ce qu’il reste à jouer, au lieu de passer entre deux clics. Un train à horaire ' +
|
||||||
'et nomme le Superintendent.',
|
'peut être jeté sur une case de Département où un rival peut le reprendre — un nouveau réglage ' +
|
||||||
|
'de partie, désactivable ; un Extra ne le peut toujours pas. Et un quai où rien ne peut être ' +
|
||||||
|
'fait en donne désormais la raison, y compris quand les voitures sont épuisées et ce qui les ' +
|
||||||
|
'ramène.',
|
||||||
},
|
},
|
||||||
migrations: {
|
migrations: {
|
||||||
|
// NOTHING TO CARRY FROM 0.7.0. The three engine-visible changes all WIDEN what is legal — a
|
||||||
|
// caboose may now be coupled by an empties-only train, and a Timetabled train may now be
|
||||||
|
// discarded — so every intent a 0.7.0 game recorded is still accepted. The server resumes a
|
||||||
|
// saved game by REPLAYING it rather than by comparing version strings (`src/server/index.ts`),
|
||||||
|
// so games in progress survive this update rather than being set aside.
|
||||||
up: async ({ effects }) => {},
|
up: async ({ effects }) => {},
|
||||||
down: IMPOSSIBLE,
|
down: IMPOSSIBLE,
|
||||||
},
|
},
|
||||||
|
|||||||
+1
-1
Submodule station-master updated: 06db36e5b5...441447648d
Reference in New Issue
Block a user