Three more from the v0.4.9e gameplay-testing round, filed as Gitea issues, plus two bugs found underneath them. Gitea#2 is diagnosed but NOT fixed: it needs a ruling, and the reasoning is in TODO.md under Play Balance. GITEA#4 — AN EXTRA STARTS WHERE THE PLAYER PUTS IT. Only one Division Point was ever offered, chosen by number parity. The number no longer decides an Extra's direction — the start does, which supersedes the recorded ruling that "the number decides, like everything else on the timetable". The two cannot both hold: an odd, westbound Extra placed at the WEST end would leave the Division on its first move having crossed nothing, and be paid for the run. Either end now runs the train away from itself; 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 it can never force a collision, a guaranteed one holds it there for another Stage, and a potential one is the Superintendent's to rule on — exactly evaluateClearance's `blocked` and `ask`, so nothing new decides collisions. Where an Extra may start is now a house rule (divisionPointsOnly / ownOffice / anyOffice, defaulting to what the engine already did). The legacy `atSeat` intent field still replays as it always meant. FOUND UNDERNEATH IT: an Extra started away from a Division Point ran empty. isBeingMadeUp tested position alone, so the Control Point start has been shipping since it was added with a train that could never be given a consist. Found by playing it, not by the tests, which had only asserted where the tray landed. FOUND UNDERNEATH IT: collide left the wrecks on the card. Destroyed trains kept their Transit entries, and evaluateClearance counts every transit as an occupant, so one rear-end collision permanently poisoned that Mainline card for every later train. THE MAINLINE CARDS WERE ROLLED, NOT DEALT — drawn from the nine types with replacement, so a Division could hold two Interchanges and Plains carried the weight of a card printed once. "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. Now dealt from the printed deck without replacement, verified over 1600 deals. This re-deals every seed: the published replays were re-recorded, and the saved games in docs/ are retired too — two of those were already dead before this release and nobody had noticed. GITEA#6 — A TRAIN CARD IS NEVER DISCARDED, Timetabled and Extra alike. The forced play needed no mechanism: 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 the corner cannot trap anyone. The bot needed no rule either. 400/400 games finished, revenue unmoved, trains scheduled 1.2 -> 1.3. The player is told on the card and on the button. GITEA#7 — COACH COUNTS. 1/2 Crack Limited 3 -> 2, 5/6 The Sparrow 2 -> 3. A change to the cards, so Trains3.pdf and the transcription keep the original numbers with a footnote while content.ts and the Home Deck reference carry what the game plays. CONTENT.TS COMMENT PASS — no data changed, only comments. Four were factually wrong, including an office table naming counts doubled long ago and a pointer to a DEALT_DECK_SIZE that has never existed. Every Enhancement row cited its implementation by line number and every citation had rotted; they name functions now. Card counts came out of the comments, since they move with play balance; source-sheet figures and dated measurements stayed. TODO.md gains an item for a card reference generated from content.ts, in six sections, so the documentation cannot disagree with the game. 715 tests pass, tsc clean, site builds.
1356 lines
18 KiB
JSON
1356 lines
18 KiB
JSON
{
|
|
"seed": 1466015,
|
|
"title": "9 Revenue · seed 1466015",
|
|
"note": "9 Revenue over 5 Days · 2 train(s) on the timetable · 10 cards down · no collisions · played by developer",
|
|
"rules": {
|
|
"startingHand": "threeRandom",
|
|
"revenue": {
|
|
"passengerPerCoach": 1,
|
|
"freightPerLoad": 1,
|
|
"trainPerTransit": 0
|
|
},
|
|
"extraStart": "anyOffice"
|
|
},
|
|
"history": [
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c13"
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c65",
|
|
"placement": {
|
|
"row": 1,
|
|
"col": 0
|
|
},
|
|
"variant": 0
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c183",
|
|
"placement": {
|
|
"row": 0,
|
|
"col": 1
|
|
},
|
|
"variant": 0
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "newTrain.startExtra",
|
|
"trainNumber": 14,
|
|
"start": {
|
|
"kind": "divisionPoint",
|
|
"side": "west"
|
|
}
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray3",
|
|
"carType": "reefer",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray3",
|
|
"carType": "reefer",
|
|
"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": "c187",
|
|
"placement": {
|
|
"row": 0,
|
|
"col": -1
|
|
},
|
|
"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": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c28"
|
|
},
|
|
{
|
|
"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": "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": "c73",
|
|
"toSlot": 0
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c6"
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c17"
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "newTrain.startExtra",
|
|
"trainNumber": 18,
|
|
"start": {
|
|
"kind": "divisionPoint",
|
|
"side": "west"
|
|
}
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray3",
|
|
"carType": "coach",
|
|
"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": "card.play",
|
|
"cardId": "c113",
|
|
"placement": {
|
|
"row": 0,
|
|
"col": -2
|
|
},
|
|
"variant": 0
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c86",
|
|
"placement": {
|
|
"row": 0,
|
|
"col": -2
|
|
},
|
|
"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.discard",
|
|
"cardId": "c159",
|
|
"toSlot": 1
|
|
},
|
|
{
|
|
"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": "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": "c111",
|
|
"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": "c117",
|
|
"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": "c100",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray3",
|
|
"carType": "coach",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray3",
|
|
"carType": "boxcar",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c11"
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c46",
|
|
"toSlot": 0
|
|
},
|
|
{
|
|
"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": "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.fromDepartment",
|
|
"slot": 0
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c74",
|
|
"toSlot": 0
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c83",
|
|
"toSlot": 1
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c140",
|
|
"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": "c46",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 2
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c94",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"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": "caboose",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c24",
|
|
"toSlot": 0
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c46",
|
|
"toSlot": 1
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 1
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c164",
|
|
"toSlot": 1
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray2",
|
|
"carType": "coach",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray2",
|
|
"carType": "boxcar",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.play",
|
|
"cardId": "c90",
|
|
"placement": {
|
|
"row": 0,
|
|
"col": 2
|
|
},
|
|
"variant": 0
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromHomeOffice"
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c46",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.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": "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.fromDepartment",
|
|
"slot": 2
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c53",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 2
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c46",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 2
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c53",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 2
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c46",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 2
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c53",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray2",
|
|
"carType": "boxcar",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray2",
|
|
"carType": "boxcar",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray2",
|
|
"carType": "caboose",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 2
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c46",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 2
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c53",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 2
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c46",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray3",
|
|
"carType": "coach",
|
|
"loaded": false
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray3",
|
|
"carType": "boxcar",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 2
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c53",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 2
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c46",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "porter.board",
|
|
"at": {
|
|
"row": 0,
|
|
"col": 0
|
|
},
|
|
"trayId": "tray3"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 2
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c53",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 2
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c46",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 2
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c53",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 2
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c46",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 2
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c53",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 2
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c46",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 2
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c53",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray3",
|
|
"carType": "boxcar",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray3",
|
|
"carType": "boxcar",
|
|
"loaded": false
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray3",
|
|
"carType": "caboose",
|
|
"loaded": true
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 2
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c46",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 2
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c53",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 2
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c46",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray2",
|
|
"carType": "coach",
|
|
"loaded": false
|
|
},
|
|
{
|
|
"type": "newTrain.placeCar",
|
|
"trayId": "tray2",
|
|
"carType": "boxcar",
|
|
"loaded": false
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 2
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c53",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 2
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c46",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "porter.board",
|
|
"at": {
|
|
"row": 0,
|
|
"col": 0
|
|
},
|
|
"trayId": "tray2"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 2
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c53",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 2
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c46",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 2
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c53",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
},
|
|
{
|
|
"type": "localOps.choose",
|
|
"option": "draw"
|
|
},
|
|
{
|
|
"type": "draw.fromDepartment",
|
|
"slot": 2
|
|
},
|
|
{
|
|
"type": "card.discard",
|
|
"cardId": "c46",
|
|
"toSlot": 2
|
|
},
|
|
{
|
|
"type": "draw.end"
|
|
},
|
|
{
|
|
"type": "loadUnload.end"
|
|
}
|
|
]
|
|
} |