Updated Rules for Extra Trains (those that have to run full boxcars) #13

Closed
opened 2026-08-25 01:42:01 +00:00 by Jesse.Markowitz · 1 comment
Owner

I've redefined some of the extra trains that they have to run full boxcars (not just any crazy stuff) - military trains, circus trains, etc. If not loaded, then empty, and if none available, run without. Same thing with passenger trains like we do now.

Anyway, you only get credit for a circus or campaign train (one point per stop) if you have it fully loaded. Not much of a circus if all the cars are empty. Don't like it? Don't play the card until the classification yard rolls back to division.

I've redefined some of the extra trains that they have to run full boxcars (not just any crazy stuff) - military trains, circus trains, etc. If not loaded, then empty, and if none available, run without. Same thing with passenger trains like we do now. Anyway, you only get credit for a circus or campaign train (one point per stop) if you have it fully loaded. Not much of a circus if all the cars are empty. Don't like it? Don't play the card until the classification yard rolls back to division.
Author
Owner

Done in v0.7.4, commit 5e34c73. Shipped to phoenix.local as 0.7.4:0. Not on the 0.4.9
playtest line.

The rule as built

  • X17 Campaign, X18 Circus, X19 Military must run loaded — a preference ORDER, not a flat
    requirement, so it is asked of the Division Yard: an empty is refused only while the yard can still
    supply a loaded car this train would take, per category. Once it cannot, the empty is legal and the
    train may depart short. "If not loaded, then empty, and if none available, run without."
  • The per-stop point is earned once per Office Area, per your ruling: "in a multiplayer game,
    each player could score if the circus stops in their area." A Circus touring three districts is
    paid three times; one parked in the same district all game is paid once. The other half of your
    ruling — a recycled Extra scoring again — needed no code, because a train is made up onto a fresh
    tray each time.
  • Only when fully loaded: every non-caboose car, with a coach counting as loaded when occupied.
    That is what makes the rule work for the Campaign Train, which carries one coach and no freight —
    "fully loaded" is exactly "the candidate is aboard".
  • X17 now scores at all. It had stopThenExpedite and no scoring rule; your "credit for a circus
    or campaign train (one point per stop)" says it should have one.

Two bugs found doing it

  • emptiesOnly was enforced nowhere. It is declared on X13 Appleseed and rendered to the player
    as "(empties only)"
    by two separate screens — and acceptsCar never read it, so the Appleseed
    could be made up with loaded cars while its own card said otherwise. The same rule as this issue
    pointing the other way, so it would have been perverse to add one and leave the other.
  • A set-up out on the Mainline paid its point to player 0, whoever was playing. playerAtSeat
    needs a seat, off the grid there is none, and the fallback was 0. Scoping scoring to Office Areas
    — which is what your ruling says — removes that rather than patching it.

Two published replays stopped replaying under the new rules and were re-recorded. That is what
test/harness.test.ts exists to catch, and re-recording is what its comment prescribes.

Done in **v0.7.4**, commit `5e34c73`. Shipped to `phoenix.local` as `0.7.4:0`. Not on the 0.4.9 playtest line. ### The rule as built - **X17 Campaign, X18 Circus, X19 Military must run loaded** — a preference ORDER, not a flat requirement, so it is asked of the Division Yard: an empty is refused only while the yard can still supply a loaded car this train would take, per category. Once it cannot, the empty is legal and the train may depart short. "If not loaded, then empty, and if none available, run without." - **The per-stop point is earned once per Office Area**, per your ruling: "in a multiplayer game, each player could score if the circus stops in their area." A Circus touring three districts is paid three times; one parked in the same district all game is paid once. The other half of your ruling — a recycled Extra scoring again — needed no code, because a train is made up onto a fresh tray each time. - **Only when fully loaded**: every non-caboose car, with a coach counting as loaded when occupied. That is what makes the rule work for the Campaign Train, which carries one coach and no freight — "fully loaded" is exactly "the candidate is aboard". - **X17 now scores at all.** It had `stopThenExpedite` and no scoring rule; your "credit for a circus or campaign train (one point per stop)" says it should have one. ### Two bugs found doing it - **`emptiesOnly` was enforced nowhere.** It is declared on X13 Appleseed and *rendered to the player as "(empties only)"* by two separate screens — and `acceptsCar` never read it, so the Appleseed could be made up with loaded cars while its own card said otherwise. The same rule as this issue pointing the other way, so it would have been perverse to add one and leave the other. - **A set-up out on the Mainline paid its point to player 0**, whoever was playing. `playerAtSeat` needs a seat, off the grid there is none, and the fallback was `0`. Scoping scoring to Office Areas — which is what your ruling says — removes that rather than patching it. Two published replays stopped replaying under the new rules and were re-recorded. That is what `test/harness.test.ts` exists to catch, and re-recording is what its comment prescribes.
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Jesse.Markowitz/station-master#13