Gameplay testing on 0.4.9d returned six reports. Five are fixed; the sixth could not be reproduced and is written up in TODO.md with the two questions that would pin it down. TWO TRAINS AT ONE PLATFORM ANSWERED TO ONE BUTTON. `porter.board` and `porter.detrain` carried no tray, so there was one button per platform however many trains stood at it and the reducer filled the first empty coach on the A/D tracks. `check` and the reducer were not even asking the same question: `check` skipped a train whose card refuses passenger work and the reducer did not. Both intents now carry an optional `trayId`, one function resolves the train and the coach for check/execute/reduce alike, `legal.ts` offers one candidate per train, and the label names it. A LOAD COULD BE MADE AND BROKEN WITHOUT GOING ANYWHERE. A Freight House could unload the boxcar it had just loaded; a platform could detrain the passengers it had just boarded. Full Revenue at both ends for a movement that never happened. Jesse's rule: a load made anywhere in an Office Area may not be broken anywhere in that Office Area, ever — it has to be carried to another district. The load carries the seat that made it (`RollingStock.origin`), stripped by `pooled` at every yard push. Measured at -0.60 +/- 0.10 Revenue a game (t = -6.1) over 400 paired deals: 78 worse, 3 better, 319 unchanged — free Revenue coming off the board, not a nerf. THE GROCER'S WAREHOUSE SHIPPED AND THE REFINERY RECEIVED. Both were `flow: 'both'` on the reading that "Freight House" was a collective term for exactly those two, and therefore what §9.3 described. The engine has dealt a Freight House CARD since before v0.4.9, so §9.3 names it and the argument goes. The card set agrees: all three Refinery modifiers grant +1 outbound. Refinery outbound-only, Grocer's inbound-only, Freight House the one two-way industry — which leaves exactly the one same-district pairing the rule above refuses. NOT REPRODUCED: cars left behind when backing up over them. Five layouts tried, including cars spotted at an industry; every one couples the lot. Three are pinned in `apply.test.ts`. One way to create such cars was closed anyway — `flyingSwitch` wrote its cut past `carsOn`. Both published replays that had gone dead were re-recorded; a rules change retires a save, and `harness.test.ts` is what catches it. The same change ships as v0.4.9e on the 0.4.9 line, branched from the v0.4.9d commit — the engine files these fixes touch are identical across the two lines, so the patch applied cleanly both ways. Also carries the two "Queued 2026-08-22, from playing on StartOS" TODO items that were staged before this work started (Games in Progress readability, and getting back into a game after losing a browser). They are notes, and items 9-12 below them are numbered against them. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011nbvwWMef8CuEP6t5cgkTv
1433 lines
19 KiB
JSON
1433 lines
19 KiB
JSON
{
|
|
"seed": 1323473,
|
|
"title": "10 Revenue · seed 1323473",
|
|
"note": "10 Revenue over 5 Days · 2 train(s) on the timetable · 22 cards down · no collisions · played by developer",
|
|
"rules": {
|
|
"startingHand": "threeRandom",
|
|
"revenue": {
|
|
"passengerPerCoach": 1,
|
|
"freightPerLoad": 1,
|
|
"trainPerTransit": 0
|
|
}
|
|
},
|
|
"history": [
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c9"
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c116",
|
|
"placement": {
|
|
"row": 0,
|
|
"col": 1
|
|
},
|
|
"variant": 0
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c179",
|
|
"placement": {
|
|
"row": 0,
|
|
"col": -1
|
|
},
|
|
"variant": 0
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c143",
|
|
"placement": {
|
|
"row": -1,
|
|
"col": -1
|
|
},
|
|
"variant": 1
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray3",
|
|
"carType": "boxcar",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray3",
|
|
"carType": "boxcar",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray3",
|
|
"carType": "boxcar",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray3",
|
|
"carType": "caboose",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c121",
|
|
"placement": {
|
|
"row": -1,
|
|
"col": 0
|
|
},
|
|
"variant": 0
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c89",
|
|
"placement": {
|
|
"row": -1,
|
|
"col": 0
|
|
},
|
|
"variant": 0
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c28"
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c7"
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "freightAgent"
|
|
},
|
|
{
|
|
"type": "freightAgent.stockOutbound",
|
|
"at": {
|
|
"row": 0,
|
|
"col": 0
|
|
},
|
|
"carType": "coach"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c202",
|
|
"placement": {
|
|
"row": 0,
|
|
"col": -2
|
|
},
|
|
"variant": 0
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c203",
|
|
"placement": {
|
|
"row": -1,
|
|
"col": 1
|
|
},
|
|
"variant": 0
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c104",
|
|
"toSlot": 0
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c51",
|
|
"placement": {
|
|
"row": -1,
|
|
"col": 2
|
|
},
|
|
"variant": 0
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray3",
|
|
"carType": "hopper",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray3",
|
|
"carType": "hopper",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray3",
|
|
"carType": "hopper",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray3",
|
|
"carType": "caboose",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c72",
|
|
"toSlot": 1
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c22",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c16",
|
|
"toSlot": 0
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "switch"
|
|
},
|
|
{
|
|
"type": "switch.end"
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray2",
|
|
"carType": "hopper",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray2",
|
|
"carType": "coach",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 0
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c101",
|
|
"toSlot": 0
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c130",
|
|
"placement": {
|
|
"row": 0,
|
|
"col": 2
|
|
},
|
|
"variant": 0
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c150",
|
|
"placement": {
|
|
"row": -1,
|
|
"col": 3
|
|
},
|
|
"variant": 0
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c145",
|
|
"placement": {
|
|
"row": -2,
|
|
"col": 3
|
|
},
|
|
"variant": 1
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "porter.detrain",
|
|
"at": {
|
|
"row": 0,
|
|
"col": 0
|
|
},
|
|
"trayId": "tray2"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "switch"
|
|
},
|
|
{
|
|
"type": "switch.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "freightAgent"
|
|
},
|
|
{
|
|
"type": "freightAgent.clearInbound",
|
|
"at": {
|
|
"row": 0,
|
|
"col": 0
|
|
},
|
|
"index": 0
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c129",
|
|
"placement": {
|
|
"row": 0,
|
|
"col": 3
|
|
},
|
|
"variant": 0
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c151",
|
|
"placement": {
|
|
"row": -2,
|
|
"col": 4
|
|
},
|
|
"variant": 0
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray2",
|
|
"carType": "hopper",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray2",
|
|
"carType": "hopper",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray2",
|
|
"carType": "hopper",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray2",
|
|
"carType": "caboose",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c176",
|
|
"placement": {
|
|
"row": 0,
|
|
"col": -3
|
|
},
|
|
"variant": 0
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c16",
|
|
"toSlot": 1
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 1
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c93",
|
|
"toSlot": 1
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "switch"
|
|
},
|
|
{
|
|
"type": "switch.end"
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray3",
|
|
"carType": "hopper",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray3",
|
|
"carType": "coach",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c67",
|
|
"placement": {
|
|
"row": 1,
|
|
"col": 0
|
|
},
|
|
"variant": 0
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "freightAgent"
|
|
},
|
|
{
|
|
"type": "freightAgent.stockOutbound",
|
|
"at": {
|
|
"row": 0,
|
|
"col": 0
|
|
},
|
|
"carType": "coach"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c102",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "porter.detrain",
|
|
"at": {
|
|
"row": 0,
|
|
"col": 0
|
|
},
|
|
"trayId": "tray3"
|
|
},
|
|
{
|
|
"type": "porter.board",
|
|
"at": {
|
|
"row": 0,
|
|
"col": 0
|
|
},
|
|
"trayId": "tray3"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "switch"
|
|
},
|
|
{
|
|
"type": "switch.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "freightAgent"
|
|
},
|
|
{
|
|
"type": "freightAgent.clearInbound",
|
|
"at": {
|
|
"row": 0,
|
|
"col": 0
|
|
},
|
|
"index": 0
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "freightAgent"
|
|
},
|
|
{
|
|
"type": "freightAgent.stockOutbound",
|
|
"at": {
|
|
"row": 0,
|
|
"col": 0
|
|
},
|
|
"carType": "coach"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c172",
|
|
"placement": {
|
|
"row": -1,
|
|
"col": -2
|
|
},
|
|
"variant": 1
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c40",
|
|
"placement": {
|
|
"row": -1,
|
|
"col": -3
|
|
},
|
|
"variant": 0
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray3",
|
|
"carType": "tank",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray3",
|
|
"carType": "tank",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray3",
|
|
"carType": "tank",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray3",
|
|
"carType": "caboose",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c136",
|
|
"placement": {
|
|
"row": 0,
|
|
"col": -4
|
|
},
|
|
"variant": 0
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c118",
|
|
"placement": {
|
|
"row": 0,
|
|
"col": 4
|
|
},
|
|
"variant": 0
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c157",
|
|
"placement": {
|
|
"row": -3,
|
|
"col": 4
|
|
},
|
|
"variant": 1
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "switch"
|
|
},
|
|
{
|
|
"type": "switch.move",
|
|
"trayId": "tray3",
|
|
"to": {
|
|
"row": -1,
|
|
"col": -2
|
|
},
|
|
"reverse": true
|
|
},
|
|
{
|
|
"type": "switch.dropCars",
|
|
"trayId": "tray3",
|
|
"count": 1
|
|
},
|
|
{
|
|
"type": "switch.move",
|
|
"trayId": "tray3",
|
|
"to": {
|
|
"row": -1,
|
|
"col": 2
|
|
},
|
|
"reverse": false
|
|
},
|
|
{
|
|
"type": "switch.dropCars",
|
|
"trayId": "tray3",
|
|
"count": 1
|
|
},
|
|
{
|
|
"type": "switch.dropCars",
|
|
"trayId": "tray3",
|
|
"count": 1
|
|
},
|
|
{
|
|
"type": "switch.dropCars",
|
|
"trayId": "tray3",
|
|
"count": 1
|
|
},
|
|
{
|
|
"type": "switch.end"
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray2",
|
|
"carType": "tank",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray2",
|
|
"carType": "coach",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "laborer.beginUnload",
|
|
"at": {
|
|
"row": -1,
|
|
"col": 2
|
|
},
|
|
"carIndex": 0
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "switch"
|
|
},
|
|
{
|
|
"type": "switch.end"
|
|
},
|
|
{
|
|
"type": "laborer.advanceLoad",
|
|
"at": {
|
|
"row": -1,
|
|
"col": 2
|
|
},
|
|
"box": 2
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "switch"
|
|
},
|
|
{
|
|
"type": "switch.end"
|
|
},
|
|
{
|
|
"type": "laborer.advanceLoad",
|
|
"at": {
|
|
"row": -1,
|
|
"col": 2
|
|
},
|
|
"box": 1
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "switch"
|
|
},
|
|
{
|
|
"type": "switch.end"
|
|
},
|
|
{
|
|
"type": "porter.detrain",
|
|
"at": {
|
|
"row": 0,
|
|
"col": 0
|
|
},
|
|
"trayId": "tray2"
|
|
},
|
|
{
|
|
"type": "porter.board",
|
|
"at": {
|
|
"row": 0,
|
|
"col": 0
|
|
},
|
|
"trayId": "tray2"
|
|
},
|
|
{
|
|
"type": "laborer.advanceLoad",
|
|
"at": {
|
|
"row": -1,
|
|
"col": 2
|
|
},
|
|
"box": 0
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "switch"
|
|
},
|
|
{
|
|
"type": "switch.move",
|
|
"trayId": "tray2",
|
|
"to": {
|
|
"row": 0,
|
|
"col": 1
|
|
},
|
|
"reverse": false
|
|
},
|
|
{
|
|
"type": "switch.move",
|
|
"trayId": "tray2",
|
|
"to": {
|
|
"row": 0,
|
|
"col": 0
|
|
},
|
|
"reverse": true
|
|
},
|
|
{
|
|
"type": "switch.move",
|
|
"trayId": "tray2",
|
|
"to": {
|
|
"row": 0,
|
|
"col": 1
|
|
},
|
|
"reverse": false
|
|
},
|
|
{
|
|
"type": "switch.move",
|
|
"trayId": "tray2",
|
|
"to": {
|
|
"row": 0,
|
|
"col": 0
|
|
},
|
|
"reverse": true
|
|
},
|
|
{
|
|
"type": "switch.move",
|
|
"trayId": "tray2",
|
|
"to": {
|
|
"row": 0,
|
|
"col": 1
|
|
},
|
|
"reverse": false
|
|
},
|
|
{
|
|
"type": "switch.move",
|
|
"trayId": "tray2",
|
|
"to": {
|
|
"row": 0,
|
|
"col": 0
|
|
},
|
|
"reverse": true
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "freightAgent"
|
|
},
|
|
{
|
|
"type": "freightAgent.clearInbound",
|
|
"at": {
|
|
"row": 0,
|
|
"col": 0
|
|
},
|
|
"index": 0
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "freightAgent"
|
|
},
|
|
{
|
|
"type": "freightAgent.clearInbound",
|
|
"at": {
|
|
"row": -1,
|
|
"col": 2
|
|
},
|
|
"index": 0
|
|
},
|
|
{
|
|
"type": "laborer.beginUnload",
|
|
"at": {
|
|
"row": -1,
|
|
"col": 2
|
|
},
|
|
"carIndex": 1
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "freightAgent"
|
|
},
|
|
{
|
|
"type": "freightAgent.stockOutbound",
|
|
"at": {
|
|
"row": 0,
|
|
"col": 0
|
|
},
|
|
"carType": "coach"
|
|
},
|
|
{
|
|
"type": "laborer.advanceLoad",
|
|
"at": {
|
|
"row": -1,
|
|
"col": 2
|
|
},
|
|
"box": 2
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "switch"
|
|
},
|
|
{
|
|
"type": "switch.end"
|
|
},
|
|
{
|
|
"type": "laborer.advanceLoad",
|
|
"at": {
|
|
"row": -1,
|
|
"col": 2
|
|
},
|
|
"box": 1
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "switch"
|
|
},
|
|
{
|
|
"type": "switch.end"
|
|
},
|
|
{
|
|
"type": "laborer.advanceLoad",
|
|
"at": {
|
|
"row": -1,
|
|
"col": 2
|
|
},
|
|
"box": 0
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "freightAgent"
|
|
},
|
|
{
|
|
"type": "freightAgent.clearInbound",
|
|
"at": {
|
|
"row": -1,
|
|
"col": 2
|
|
},
|
|
"index": 0
|
|
},
|
|
{
|
|
"type": "laborer.beginUnload",
|
|
"at": {
|
|
"row": -1,
|
|
"col": 2
|
|
},
|
|
"carIndex": 2
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "switch"
|
|
},
|
|
{
|
|
"type": "switch.end"
|
|
},
|
|
{
|
|
"type": "laborer.advanceLoad",
|
|
"at": {
|
|
"row": -1,
|
|
"col": 2
|
|
},
|
|
"box": 2
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "switch"
|
|
},
|
|
{
|
|
"type": "switch.end"
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray2",
|
|
"carType": "tank",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray2",
|
|
"carType": "coach",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "laborer.advanceLoad",
|
|
"at": {
|
|
"row": -1,
|
|
"col": 2
|
|
},
|
|
"box": 1
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "switch"
|
|
},
|
|
{
|
|
"type": "switch.end"
|
|
},
|
|
{
|
|
"type": "laborer.advanceLoad",
|
|
"at": {
|
|
"row": -1,
|
|
"col": 2
|
|
},
|
|
"box": 0
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "freightAgent"
|
|
},
|
|
{
|
|
"type": "freightAgent.clearInbound",
|
|
"at": {
|
|
"row": -1,
|
|
"col": 2
|
|
},
|
|
"index": 0
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "switch"
|
|
},
|
|
{
|
|
"type": "switch.end"
|
|
},
|
|
{
|
|
"type": "porter.detrain",
|
|
"at": {
|
|
"row": 0,
|
|
"col": 0
|
|
},
|
|
"trayId": "tray2"
|
|
},
|
|
{
|
|
"type": "porter.board",
|
|
"at": {
|
|
"row": 0,
|
|
"col": 0
|
|
},
|
|
"trayId": "tray2"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "switch"
|
|
},
|
|
{
|
|
"type": "switch.move",
|
|
"trayId": "tray2",
|
|
"to": {
|
|
"row": 0,
|
|
"col": 1
|
|
},
|
|
"reverse": false
|
|
},
|
|
{
|
|
"type": "switch.move",
|
|
"trayId": "tray2",
|
|
"to": {
|
|
"row": 0,
|
|
"col": 0
|
|
},
|
|
"reverse": true
|
|
},
|
|
{
|
|
"type": "switch.move",
|
|
"trayId": "tray2",
|
|
"to": {
|
|
"row": 0,
|
|
"col": 1
|
|
},
|
|
"reverse": false
|
|
},
|
|
{
|
|
"type": "switch.move",
|
|
"trayId": "tray2",
|
|
"to": {
|
|
"row": 0,
|
|
"col": 0
|
|
},
|
|
"reverse": true
|
|
},
|
|
{
|
|
"type": "switch.move",
|
|
"trayId": "tray2",
|
|
"to": {
|
|
"row": 0,
|
|
"col": 1
|
|
},
|
|
"reverse": false
|
|
},
|
|
{
|
|
"type": "switch.move",
|
|
"trayId": "tray2",
|
|
"to": {
|
|
"row": 0,
|
|
"col": 0
|
|
},
|
|
"reverse": true
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "freightAgent"
|
|
},
|
|
{
|
|
"type": "freightAgent.clearInbound",
|
|
"at": {
|
|
"row": 0,
|
|
"col": 0
|
|
},
|
|
"index": 0
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "switch"
|
|
},
|
|
{
|
|
"type": "switch.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "switch"
|
|
},
|
|
{
|
|
"type": "switch.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
}
|
|
]
|
|
} |