v0.4.9g — a caboose is not a load, a Day that says it ended, and a train you may throw away
The v0.7.1 bugfix set ported to the playtest line: Gitea#8, #10, #9 and #2. Reasoning, and what differs from main, in CHANGELOG.md. - Gitea#8: X22 Pee-Dee refused every caboose, including the one it was made up with. A caboose carries the crew, not freight, so it is never a load. - Gitea#10: a dialog when the Day rolls over, carrying the standings, the Days left and your Revenue against the target with the pace. Suppressed on the first frame, on Undo stepping back across a rollover, and on the Day the game ends. - Gitea#9, superseding Gitea#6 from v0.4.9f: a Timetabled train may be discarded, an Extra may not. This line takes the plain rule — main has it as a New Game setting. - Gitea#2: the shortage stays, by Jesse's ruling. A blocked platform now gives its reason instead of simply having no button. Three things are written for this line rather than ported: the Timetabled discard has no setting and no URL parameter, the Day-end dialog reads f.objective (this line's per-player target) where main reads its combined victory dials, and Frame gained the viewer index the dialog needs to mark your row. 636 tests pass; no published replay was retired. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FLnYR4XtXQNamYJXGYT8oC
This commit is contained in:
co-authored by
Claude Opus 5
parent
e255076b5c
commit
9735468d25
@@ -25,8 +25,43 @@ Queued 2026-08-22, from the v0.4.9e gameplay-testing report filed as Gitea issue
|
||||
Reasoning in `docs/rules/implications.md` §6.2.
|
||||
3. ~~**Gitea#7 — coach counts on four train cards**~~ — done in v0.4.9f. 1/2 Crack Limited 3 → 2,
|
||||
5/6 The Sparrow 2 → 3.
|
||||
4. **Gitea#2 — four porters, two passengers on the platform, and only one may be worked.**
|
||||
DIAGNOSED, AWAITING JESSE'S RULING — see Play Balance below.
|
||||
4. ~~**Gitea#2 — four porters, two passengers on the platform, and only one may be worked**~~ —
|
||||
RULED AND FIXED in v0.4.9g, though not the way the report implies. The engine is faithful to the
|
||||
written rules at every step; what bites is that BOTH directions of porter work move coaches
|
||||
one-way into a Classification Yard that comes back only when the Division Yard is bare of all ~60
|
||||
cars. **Jesse's ruling: the shortage stays** — "it is possible to run out, that's part of the
|
||||
strategy" — so the three balance options in Play Balance below are declined, not deferred. What
|
||||
was actually wrong is that the game said NOTHING: a Porter action that cannot be taken is simply
|
||||
absent from the menu, and the "why is nothing moving?" panel covered freight facilities only. That
|
||||
half is fixed.
|
||||
|
||||
Queued 2026-08-24, from the v0.4.9f gameplay-testing round.
|
||||
|
||||
5. ~~**Gitea#8 — the per-diem train could not couple a caboose**~~ — done in v0.4.9g. All six
|
||||
cabooses are minted `loaded: true` because §2.2's "coloured is loaded, white is empty" doubles as
|
||||
a PIECE COUNT in the supply table and there is no white caboose. X22 Pee-Dee, whose whole card is
|
||||
"may only pick up MTs", read that literally and refused every caboose including the one it was
|
||||
made up with — set it out and the train was stranded. A caboose carries the crew, not freight, so
|
||||
it is never a load.
|
||||
|
||||
6. ~~**Gitea#10 — a dialog when the Day rolls over**~~ — done in v0.4.9g. "Hard to keep track of
|
||||
time." Nothing on screen was wrong, but a Day turns over inside the phases that run themselves, so
|
||||
it passes between one click and the next and the phase banner is gone in 2.6 seconds. A modal
|
||||
stops and waits, and carries the standings, the Days left and your Revenue against the target.
|
||||
|
||||
7. ~~**Gitea#9 — a Timetabled train may be discarded**~~ — done in v0.4.9g, and it SUPERSEDES
|
||||
Gitea#6 (item 2 above), shipped three days earlier in v0.4.9f. A Timetabled train may be tossed
|
||||
face-up to a Department slot, where a rival may pick it up — which needed no machinery, since that
|
||||
is where every discard already goes. An Extra still may not: it never joins the timetable, so it
|
||||
can never be what jams it. **This line takes the plain rule**; on main it is a New Game setting,
|
||||
because Jesse's reasoning is about games run longer than five Days. Reasoning in
|
||||
`docs/rules/implications.md` §6.2.
|
||||
|
||||
Still open on the tracker and NOT in v0.4.9g — these are rules and content work rather than bugs, and
|
||||
none has been started on this line: **Gitea#1** (Kick — a new special card and its rules), **Gitea#5**
|
||||
(the Yard Office is not implemented), **Gitea#11** (allow extended play past the last Day, and update
|
||||
the summary/win screen), **Gitea#12** (Inspection Cards), **Gitea#13** (updated rules for Extra trains
|
||||
that have to run full boxcars), **Gitea#14** (update the card counts in the deck).
|
||||
|
||||
The rest of v0.4.9's plan (coordinate labels, the no-switching fix, the expedite rewrite, the
|
||||
`evaluateClearance` bug, the splash artwork) is built; see Done below.
|
||||
@@ -236,17 +271,26 @@ not read that drop as a deck problem.
|
||||
halves of every passenger cycle. Traced over the reported game, the coach pool runs from 8+/8−
|
||||
to 0+/1− by Day 5.
|
||||
|
||||
**Three ways out, and it is Jesse's call which:** (a) refill when the Division Yard is dry of
|
||||
the type-and-state being asked for rather than dry of everything; (b) the same trigger but
|
||||
return only the cars of that type; (c) leave the rules alone and raise the coach count in
|
||||
`ROLLING_STOCK_SUPPLY`. Measure (a) or (b) over 400 paired seeds before shipping.
|
||||
**RULED 2026-08-25 — the shortage stays, and none of the three is being built.** Jesse: "it is
|
||||
possible to run out, that's part of the strategy." For the record, the options were (a) refill
|
||||
when the Division Yard is dry of the type-and-state being asked for rather than dry of
|
||||
everything; (b) the same trigger but return only the cars of that type; (c) leave the rules
|
||||
alone and raise the coach count in `ROLLING_STOCK_SUPPLY`. All three are declined. What shipped
|
||||
in v0.4.9g instead is the EXPLANATION — see the item below. Running dry is a position to play
|
||||
out of, not a broken game, once the screen says so.
|
||||
|
||||
- [ ] **A blocked PASSENGER facility produces no impediment at all.** `impediments()`
|
||||
(`src/sim/narrate.ts`) opens with `if (!f || f.kind !== 'freight') continue`, so the "why
|
||||
nothing is moving" panel has never had anything to say about a platform. That is the second
|
||||
half of Gitea#2 and the half that is unambiguously a bug: the player was not merely blocked,
|
||||
he was given no reason — the button simply was not there. Worth fixing whichever way the
|
||||
supply question is settled.
|
||||
- [x] **A blocked PASSENGER facility produces no impediment at all — FIXED in v0.4.9g.**
|
||||
`impediments()` (`src/sim/narrate.ts`) opened with `if (!f || f.kind !== 'freight') continue`,
|
||||
so the "why nothing is moving" panel had never had anything to say about a platform. That was
|
||||
the second half of Gitea#2 and the half that was unambiguously a bug: the player was not merely
|
||||
blocked, he was given no reason — the button simply was not there. A platform now reports
|
||||
passengers with no train, a train the card bars Porters from working, full coaches, full red
|
||||
slots, the same-district rule, and the coach shortage itself — the last naming how many coaches
|
||||
are stranded in Classification and what brings them back. The reason comes from
|
||||
`passengerRefusal`, the engine's own predicate, so the panel cannot drift from the rule that
|
||||
actually refused. Fixing the label found a second defect: a Passenger Facility rides on the
|
||||
`office` card, so every passenger row would have read `facility 0,0` next to
|
||||
`mineTipple 1,-3`; it is named by its tier now.
|
||||
|
||||
Numbers chosen to fix a measured problem rather than taken from the design. Revisit once the victory
|
||||
target is settled and freight carries its intended share; read no balance conclusion from a revenue
|
||||
|
||||
Reference in New Issue
Block a user