v0.4.9f — an Extra starts where you put it, a train card is never discarded
The 0.6.2 change, ported to the playtest line. Three from the v0.4.9e gameplay-testing round — Gitea#4 extras did not start where the player said, #6 train cards could be discarded, #7 four train cards had the wrong coach counts — plus two bugs found underneath #4. Gitea#2 is diagnosed but NOT fixed; it needs a ruling, and the reasoning is in TODO.md. GITEA#4 — AN EXTRA STARTS WHERE THE PLAYER PUTS IT. Both Division Points are offered now, and the START decides the direction rather than the number: an odd westbound Extra placed at the WEST end would otherwise leave the Division on its first move having crossed nothing and be paid for the run. At an Interchange or a Control Point the player picks the direction. The Interchange start is a YARD, off the running line, which is what makes the Superintendent clause work — placing an Extra there can never force a collision, a guaranteed one holds it for another Stage, and a potential one is the Superintendent's to rule on, which are §8.1's two existing answers. Where an Extra may start is a new setting in the New Game dialog, defaulting to what the engine already did so this build does not change under its testers mid-line. FOUND UNDERNEATH IT, both already shipping: an Extra started away from a Division Point could never be given a consist and ran empty, so the Control Point start has been broken since it was added; and collide left destroyed trains' transits on the Mainline card, permanently poisoning that card for every later train. THE MAINLINE CARDS ARE DEALT FROM THE PRINTED DECK NOW, without replacement. They were drawn from the nine types with replacement, so a Division could hold two Interchanges — and "an Extra may start at the Interchange if one is on the board" only reads as a rule if the board holds at most one. This re-deals every seed, so both published replays were retired and re-recorded. GITEA#6 — A TRAIN CARD IS NEVER DISCARDED, Timetabled and Extra alike. No forcing mechanism was needed: nothing discardable plus a hand over the limit leaves exactly one legal way to end the turn, and playing a train is unconditionally legal, so a hand of four cannot trap anyone. The hand panel says so on the train, and the blocked end-turn button changes its wording. GITEA#7 — COACH COUNTS. 1/2 Crack Limited 3 -> 2, 5/6 The Sparrow 2 -> 3. WHAT DIFFERS FROM THE MAIN LINE. The car-placement round rotation test that accompanies #7 there arrived with the 0.6 multiplayer work and does not exist here, so there was nothing for the coach-count change to follow. src/web/main.ts and test/web.test.ts needed hand-resolution: this line's New Game dialog has neither the mode radios nor the victory dials, so only the Extra-start parts were taken. The content.ts comment pass came across whole; main's TODO documentation item did not, since this line keeps its own TODO. 623 tests pass, tsc clean, site builds.
This commit is contained in:
@@ -14,8 +14,22 @@ to Rules Questions.
|
||||
|
||||
## Next
|
||||
|
||||
Nothing scheduled at the moment — 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.
|
||||
Queued 2026-08-22, from the v0.4.9e gameplay-testing report filed as Gitea issues.
|
||||
|
||||
1. ~~**Gitea#4 — confirm that extra trains start properly**~~ — done in v0.4.9f. Either Division
|
||||
Point, the Interchange with a direction chosen there, a Control Point gated by a new `extraStart`
|
||||
setting, and the Superintendent's hold on the way out of the Interchange yard. Reasoning in
|
||||
`docs/rules/implications.md` §7.
|
||||
2. ~~**Gitea#6 — players may not discard train cards**~~ — done in v0.4.9f. Timetabled and Extra
|
||||
alike; the forced play falls out of the hand limit rather than needing a mechanism of its own.
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
---
|
||||
|
||||
@@ -208,6 +222,32 @@ not read that drop as a deck problem.
|
||||
|
||||
## Play Balance
|
||||
|
||||
- [ ] **Gitea#2 — passenger operations starve themselves of coaches, and the game says nothing.**
|
||||
Reported from v0.4.9e play: the Sparrow pulls into the Terminal with two loaded coaches, two
|
||||
passengers wait on the platform, four porters are unused, and only ONE of the four intended
|
||||
actions can be taken. Reproduced from the save: the Division Yard holds **1 empty coach and 0
|
||||
loaded**, while the Classification Yard holds **4 loaded and 4 empty** that cannot come back.
|
||||
|
||||
**The engine is not deviating from the rules.** §9.2 discards the white coach into the
|
||||
Classification Yard on boarding, draws the white coach from the Division Yard on de-training,
|
||||
and §2.2 returns the Classification Yard only when the Division Yard is empty — all three
|
||||
implemented exactly. The problem is the interaction: a single global refill condition over a
|
||||
pile holding six commodities with very different demand, where coaches are consumed by BOTH
|
||||
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.
|
||||
|
||||
- [ ] **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.
|
||||
|
||||
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
|
||||
number until the rules stop moving.
|
||||
|
||||
Reference in New Issue
Block a user