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
65 lines
4.8 KiB
TypeScript
65 lines
4.8 KiB
TypeScript
import { IMPOSSIBLE, VersionInfo } from '@start9labs/start-sdk'
|
||
|
||
export const current = VersionInfo.of({
|
||
// `<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
|
||
// action. The downstream half moves only for packaging-only changes, and RESETS to `:0` when the
|
||
// 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: {
|
||
en_US:
|
||
'Bundles Station Master v0.7.1, four fixes from playtesting. A train restricted to empties can ' +
|
||
'couple its caboose again — a caboose carries the crew, not freight, so it was never a load. ' +
|
||
'The end of a Day now stops and says so, with the standings and how long is left, instead of ' +
|
||
'passing between one click and the next. A Timetabled train may be thrown away to a Department ' +
|
||
'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:
|
||
'Incluye Station Master v0.7.1, cuatro correcciones surgidas de las partidas de prueba. Un tren ' +
|
||
'limitado a vagones vacíos vuelve a poder enganchar su furgón de cola: lleva a la tripulación, ' +
|
||
'no carga, así que nunca fue una carga. El final de cada Día se detiene y lo anuncia, con la ' +
|
||
'clasificación y lo que queda por jugar, en vez de pasar entre un clic y el siguiente. Un tren ' +
|
||
'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:
|
||
'Enthält Station Master v0.7.1 mit vier Korrekturen aus dem Spieltest. Ein Zug, der nur Leerwagen ' +
|
||
'aufnehmen darf, kann seinen Kabuse wieder ankuppeln — ein Kabuse trägt die Mannschaft, keine ' +
|
||
'Fracht, war also nie eine Ladung. Das Ende eines Tages hält jetzt an und sagt es, mit dem Stand ' +
|
||
'und der verbleibenden Zeit, statt zwischen zwei Klicks zu verstreichen. Ein fahrplanmäßiger Zug ' +
|
||
'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:
|
||
'Zawiera Station Master v0.7.1 z czterema poprawkami z testów. Pociąg ograniczony do pustych ' +
|
||
'wagonów znowu może podpiąć swój służbowy — wiezie załogę, nie ładunek, więc nigdy ' +
|
||
'ładunkiem nie był. Koniec Dnia zatrzymuje się i to ogłasza, z wynikami i tym, ile zostało, ' +
|
||
'zamiast przemykać między jednym kliknięciem a drugim. Pociąg rozkładowy można odrzucić na ' +
|
||
'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:
|
||
'Inclut Station Master v0.7.1, quatre corrections issues des parties d’essai. Un train limité aux ' +
|
||
'wagons vides peut de nouveau atteler son fourgon de queue : il transporte l’équipe, pas du fret, ' +
|
||
'il n’a donc jamais été un chargement. La fin d’une Journée s’arrête et l’annonce, avec le ' +
|
||
'classement et ce qu’il reste à jouer, au lieu de passer entre deux clics. Un train à horaire ' +
|
||
'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: {
|
||
// 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 }) => {},
|
||
down: IMPOSSIBLE,
|
||
},
|
||
})
|