make turnout description more clear. fix curves from breaking running track.

This commit is contained in:
Jesse
2026-08-05 10:03:50 -04:00
parent 9c76b1a5e2
commit 1c321d4cea
9 changed files with 226 additions and 28 deletions
+41
View File
@@ -10,6 +10,47 @@ The target is 20 Revenue over 5 Days.
## Unreleased
### Turnouts say what they do, and a curve may not break the Running Track
**"Right-hand turnout, stem east, through west, diverges north at 45°"** is three pieces of jargon
and a compass reading, and none of it answers the only question being asked: *if my train comes in
from over there, where can it go?* Turnouts now read
> allows traffic from the east to travel west or turn to the south
and curves
> carries traffic from the west round to the south
everywhere they appear — on the card in hand, on the placement it would make, and on the card once it
is down. §A.1's rule falls out of the same sentence rather than needing a shouty clause of its own:
a train coming the other way, from the through end or the diverging one, may only leave by the stem,
so the two roads never join.
**A curve laid in the Running Track dead-ends the main.** A curve has ONE road — from an east or west
edge round to its 45° leg — so a card of it standing in the running row stops the through route at
that square and cuts the Office off from its own Limits. Nothing forbade it, and the bot did it: an
early trace shows it laying a `ne` curve at (0,−1), turning the west end of its own Running Track
into a stub. Every card that may stand in that row now has to carry the road across it —
`carriesThroughTrack` — which straights, turnouts, Limits signs, the Office and industries all do.
Reported as `BREAKS_RUNNING_TRACK` rather than `NOT_CONNECTED`, because it is a different mistake:
the card would join perfectly well and would still leave the main stopping dead at it.
**The crossover is confirmed, both hands.** A turnout that *"allows traffic from the east to travel
west or turn to the south"* joins the one directly beneath it that *"allows traffic from the west to
travel east or turn to the north"* — the two 45° legs are one continuous rail across the card edge.
It already worked; it now has a test that says so in those words, along with its mirror built from
the other hand, the mismatched pair that must NOT join, and a crew actually running down through it
onto the parallel track.
**Measured, and worth flagging:** barring curves from the running row cost the bot a good deal —
districts 28.0 → 19.7 cards, facilities 2.23 → 1.85, revenue about 2.0 → 0.8. The rule is right and
the bot was partly living off an illegal placement. Two tests needed widening rather than weakening
as a result: the unload regression sampled three deals and now samples twelve (unloads still happen,
34 across a 40-deal sweep, just not on those three), and the canvas bounds test now holds a straight
as well as a curve, since a curve alone is offered only one square once the running row is closed to
it.
### The Crew Tray is a train, and a train must be made up to leave
**§8.2 was not checked at all.** A train could highball onto the Mainline engine-last with its