Cosmic Express Casual (PuzzleScript Script)
Play this game by pasting the script in http://www.puzzlescript.net/editor.html |
title Cosmic Express Casual | |
author Portponky | |
homepage https://cosmicexpressgame.com/ | |
color_palette pastel | |
noaction | |
again_interval 0.1 | |
key_repeat_interval 0.16 | |
(verbose_logging) | |
run_rules_on_level_start | |
======== | |
OBJECTS | |
======== | |
Player | |
lightgreen white | |
00000 | |
01110 | |
01110 | |
01110 | |
00000 | |
Delay | |
transparent | |
Delayed | |
transparent | |
WorldExitPoint | |
transparent | |
Tutorial | |
transparent | |
JunctionFrom | |
transparent | |
JunctionTo | |
transparent | |
TrainCartGap | |
red | |
Background | |
lightgreen green | |
01000 | |
00110 | |
10010 | |
10100 | |
01001 | |
OptionalObstacle | |
green lightgreen | |
10001 | |
00000 | |
00000 | |
00000 | |
10001 | |
PickupBG | |
lightgrey lightgreen | |
00000 | |
01110 | |
01110 | |
01110 | |
00000 | |
Water1 | |
blue white lightblue | |
20010 | |
02002 | |
12020 | |
00220 | |
02002 | |
Water2 | |
blue white lightblue | |
02000 | |
20210 | |
00202 | |
01022 | |
20200 | |
Mountain | |
darkbrown darkbrown | |
..0.. | |
.10.. | |
.000. | |
0000. | |
11001 | |
Forest | |
darkgreen brown | |
.000. | |
00000 | |
00000 | |
00100 | |
.111. | |
Beach | |
yellow white | |
00010 | |
01000 | |
00001 | |
00100 | |
10000 | |
Wormhole | |
white lightgrey | |
0..00 | |
0000. | |
.010. | |
.0000 | |
00..0 | |
Junction | |
lightgrey | |
(Player | |
yellow black | |
.000. | |
01010 | |
10001 | |
01110 | |
.000.) | |
FromD | |
grey darkbrown | |
..... | |
..... | |
1...1 | |
0...0 | |
0...0 | |
FromU | |
grey darkbrown | |
0...0 | |
0...0 | |
1...1 | |
..... | |
..... | |
FromL | |
grey darkbrown | |
001.. | |
..... | |
..... | |
..... | |
001.. | |
FromR | |
grey darkbrown | |
..100 | |
..... | |
..... | |
..... | |
..100 | |
VTrack | |
grey darkbrown | |
0...0 | |
0...0 | |
01110 | |
0...0 | |
0...0 | |
HTrack | |
grey darkbrown | |
00000 | |
..1.. | |
..1.. | |
..1.. | |
00000 | |
Crossing | |
grey grey | |
01110 | |
1...1 | |
1...1 | |
1...1 | |
01110 | |
(01010 | |
1...1 | |
0...0 | |
1...1 | |
01010) | |
DRTrack | |
grey darkbrown | |
...00 | |
..0.. | |
.01.. | |
0..1. | |
0...1 | |
DLTrack | |
grey darkbrown | |
00... | |
..0.. | |
..10. | |
.1..0 | |
1...0 | |
ULTrack | |
grey darkbrown | |
1...0 | |
.1..0 | |
..10. | |
..0.. | |
00... | |
URTrack | |
grey darkbrown | |
0...1 | |
0..1. | |
.01.. | |
..0.. | |
...00 | |
UTrain | |
red black darkred | |
.000. | |
01110 | |
00000 | |
00100 | |
00000 | |
RTrain | |
red black darkred | |
0000. | |
00010 | |
01010 | |
00010 | |
0000. | |
LTrain | |
red black darkred | |
.0000 | |
01000 | |
01010 | |
01000 | |
.0000 | |
DTrain | |
red black darkred | |
00000 | |
00100 | |
00000 | |
01110 | |
.000. | |
Cart | |
red black darkred | |
22222 | |
21112 | |
21112 | |
21112 | |
22222 | |
(Smoke1 | |
white | |
..0.. | |
.0.0. | |
0.0.0 | |
.0.0. | |
..0.. | |
Smoke2 | |
white | |
..... | |
.0.0. | |
..0.. | |
.0.0. | |
..... | |
Smoke3 | |
white | |
..... | |
..0.. | |
.0.0. | |
..0.. | |
.....) | |
BluePassengerWaiting | |
DarkBrown Blue DarkBrown DarkBlue | |
..0.. | |
.111. | |
21112 | |
23332 | |
.3.3. | |
BluePassengerOnCart | |
DarkBrown Blue DarkBrown DarkBlue | |
..... | |
..0.. | |
.111. | |
.111. | |
..... | |
BlueTarget | |
lightblue darkbrown | |
00000 | |
01110 | |
01110 | |
01110 | |
00000 | |
RedPassengerWaiting | |
DarkBrown Red DarkBrown DarkRed | |
..0.. | |
.111. | |
21112 | |
23332 | |
.3.3. | |
RedPassengerOnCart | |
DarkBrown Red DarkBrown DarkRed | |
..... | |
..0.. | |
.111. | |
.111. | |
..... | |
RedTarget | |
lightRed darkbrown | |
00000 | |
01110 | |
01110 | |
01110 | |
00000 | |
TopAndBottomWaiting | |
DarkBrown Yellow DarkBrown Orange | |
..0.. | |
.111. | |
21112 | |
23332 | |
.3.3. | |
BottomWaiting | |
DarkBrown Yellow DarkBrown Orange | |
..... | |
..... | |
2...2 | |
23332 | |
.3.3. | |
(TopAndBottomOnCart | |
DarkBrown Yellow DarkBrown Orange | |
..... | |
..0.. | |
.111. | |
.333. | |
.....) | |
TopOnCart | |
DarkBrown Yellow DarkBrown Orange | |
..... | |
..0.. | |
.111. | |
..... | |
..... | |
BottomOnCart | |
DarkBrown Yellow DarkBrown Orange | |
..... | |
..... | |
..... | |
.333. | |
..... | |
TopAndBottomTarget | |
lightBrown darkbrown | |
00000 | |
01110 | |
01110 | |
01110 | |
00000 | |
HangOn | |
DarkBrown Yellow DarkBrown Orange | |
2.0.2 | |
21112 | |
.111. | |
.333. | |
.3.3. | |
HangOnLeft | |
transparent | |
HangOnRight | |
transparent | |
HangOnBoth | |
transparent | |
HangOnGuess | |
transparent | |
Slime | |
DarkBrown brown DarkBrown lightbrown | |
..0.. | |
.111. | |
21112 | |
23332 | |
.3.3. | |
SlimeOnCart | |
DarkBrown Brown DarkBrown lightbrown | |
..... | |
..0.. | |
.111. | |
.111. | |
..... | |
SlimeTarget | |
orange darkbrown | |
00000 | |
01110 | |
01110 | |
01110 | |
00000 | |
Poop | |
transparent darkbrown | |
00000 | |
01110 | |
01110 | |
01110 | |
00000 | |
1StackPassenger | |
brown transparent | |
11111 | |
10111 | |
11111 | |
11111 | |
11111 | |
2StackPassenger | |
brown transparent | |
11111 | |
10111 | |
11111 | |
11101 | |
11111 | |
3StackPassenger | |
brown transparent | |
11111 | |
10101 | |
11111 | |
11101 | |
11111 | |
4StackPassenger | |
brown transparent | |
11111 | |
10101 | |
11111 | |
10101 | |
11111 | |
1StackTarget | |
white darkbrown | |
11111 | |
10111 | |
11111 | |
11111 | |
11111 | |
2StackTarget | |
white darkbrown | |
11111 | |
10111 | |
11111 | |
11101 | |
11111 | |
3StackTarget | |
white darkbrown | |
11111 | |
10101 | |
11111 | |
11101 | |
11111 | |
4StackTarget | |
white darkbrown | |
11111 | |
10101 | |
11111 | |
10101 | |
11111 | |
AnyTarget | |
darkbrown lightblue lightred | |
11112 | |
20002 | |
20002 | |
20002 | |
21111 | |
DoorVisible | |
darkbrown | |
NoDoor | |
transparent | |
DoorHidden | |
transparent | |
(Zero 0 | |
White Black | |
10011 | |
01101 | |
01101 | |
01101 | |
10011 | |
One 1 | |
White Black | |
10011 | |
11011 | |
11011 | |
11011 | |
10001 | |
Two 2 | |
White Black | |
10011 | |
11101 | |
11011 | |
10111 | |
10001 | |
Three 3 | |
White Black | |
10011 | |
11101 | |
11011 | |
11101 | |
10011 | |
Four 4 | |
White Black | |
10101 | |
10101 | |
10001 | |
11101 | |
11101 | |
Five 5 | |
White Black | |
10001 | |
10111 | |
10011 | |
11101 | |
10011 | |
Six 6 | |
White Black | |
11001 | |
10111 | |
10001 | |
10110 | |
11001 | |
Seven 7 | |
White Black | |
10001 | |
11101 | |
11011 | |
11011 | |
11011 | |
Eight 8 | |
White Black | |
11001 | |
10110 | |
11001 | |
10110 | |
11001 | |
Nine 9 | |
White Black | |
11001 | |
10110 | |
11000 | |
11110 | |
11001) | |
Black | |
black | |
======= | |
LEGEND | |
======= | |
. = Background | |
(M = Mountain) | |
% = Forest | |
(~ = Water1 | |
, = Beach) | |
(? = OptionalObstacle) | |
~ = Cart | |
# = Black | |
ConnectsL = DLTrack or ULTrack or HTrack or Crossing | |
ConnectsR = DRTrack or URTrack or HTrack or Crossing | |
ConnectsU = ULTrack or URTrack or VTrack or Crossing | |
ConnectsD = DLTrack or DRTrack or VTrack or Crossing | |
U = UTrain | |
D = DTrain | |
L = LTrain | |
R = RTrain | |
| = VTrack | |
- = HTrack | |
(═ = Junction and HTrack | |
║ = Junction and VTrack | |
╝ = Junction and ULTrack | |
╚ = Junction and URTrack | |
╗ = Junction and DLTrack | |
╔ = Junction and DRTrack) | |
* = BluePassengerWaiting and PickupBG | |
O = BlueTarget | |
@ = RedPassengerWaiting and PickupBG | |
! = RedTarget | |
(½ = TopAndBottomWaiting and PickupBG | |
y = TopAndBottomTarget) | |
HangOnTarget = TopAndBottomTarget | |
(h = HangOn and PickupBG | |
¾ = HangOnTarget) | |
(¹ = 1StackPassenger and PickupBG | |
² = 2StackPassenger and PickupBG | |
³ = 3StackPassenger and PickupBG | |
⁴ = 4StackPassenger and PickupBG | |
₁ = 1StackTarget | |
₂ = 2StackTarget | |
₃ = 3StackTarget | |
₄ = 4StackTarget) | |
s = Slime and PickupBG | |
b = SlimeTarget | |
→ = FromL | |
← = FromR | |
↑ = FromD | |
↓ = FromU | |
: = AnyTarget | |
W = Wormhole | |
+ = Crossing | |
PartTrack = FromD or FromU or FromL or FromR | |
Water = Water1 or Water2 | |
Track = VTrack or HTrack or URTrack or ULTrack or DRTrack or DLTrack or Crossing | |
Train = UTrain or DTrain or LTrain or RTrain | |
TrainOrCart = Train or Cart | |
StackTarget = 1StackTarget or 2StackTarget or 3StackTarget or 4StackTarget | |
StackPassenger = 1StackPassenger or 2StackPassenger or 3StackPassenger or 4StackPassenger | |
Target = BlueTarget or RedTarget or TopAndBottomTarget or HangOnTarget or 1StackTarget or 2StackTarget or 3StackTarget or 4StackTarget or SlimeTarget or AnyTarget | |
PassengerWaiting = BluePassengerWaiting or RedPassengerWaiting or TopAndBottomWaiting or BottomWaiting or HangOn or 1StackPassenger or 2StackPassenger or 3StackPassenger or 4StackPassenger or Slime | |
PassengerOnCart = BluePassengerOnCart or RedPassengerOnCart or TopOnCart or BottomOnCart or HangOnLeft or HangOnRight or HangOnBoth or HangOnGuess or 1StackPassenger or 2StackPassenger or 3StackPassenger or 4StackPassenger or SlimeOnCart or Poop | |
Passenger = PassengerWaiting or PassengerOnCart | |
(Number = 0 or 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9) | |
Solid = Mountain or Forest or Water or Black | |
Collides = Mountain or Forest or Train or Cart or Passenger or Wormhole or DoorVisible | |
HangOnMarker = HangOnLeft or HangOnRight or HangOnBoth or HangOnGuess | |
======= | |
SOUNDS | |
======= | |
SFX0 91301709 | |
SFX1 53409305 | |
SFX2 38557307 | |
SFX3 99431502 | |
EndLevel 78709508 | |
Train Move 88405308 | |
(Track Create 24611507) | |
(Undo 77031907) | |
(Track Destroy 77031907) | |
PassengerWaiting Destroy 77365107 | |
PassengerWaiting Create 18891907 | |
================ | |
COLLISIONLAYERS | |
================ | |
Background | |
Tutorial, Junction, JunctionFrom, JunctionTo, OptionalObstacle | |
Player, Beach | |
Track, Solid, Wormhole | |
Delayed, DoorVisible, NoDoor, DoorHidden | |
Train, Cart, PickupBG, TrainCartGap | |
Delay, WorldExitPoint, Target, PartTrack | |
Passenger | |
====== | |
RULES | |
====== | |
(open door) | |
[ passenger no target no poop ] [ stationary DoorVisible ] -> [ passenger ] [ action DoorVisible ] | |
[ stationary DoorVisible ] -> [ nodoor ] | |
[ action DoorVisible ] -> [ DoorVisible ] | |
[ nodoor poop ] -> [ nodoor ] | |
(door init) | |
[ black | track no doorvisible no nodoor no doorhidden | black ] -> [ black | track action doorhidden | black ] | |
[ action doorhidden track | no doorvisible no nodoor no doorhidden track ] -> [ action doorhidden track | action doorhidden track ] | |
(set up junctions) | |
[ Junction ] -> [ action Junction ] | |
[ JunctionFrom | action Junction ] -> [ JunctionFrom | Junction ] | |
[ action Junction | PartTrack ] -> [ action Junction | JunctionTo PartTrack ] | |
left [ action Junction ConnectsL | no JunctionTo ] -> [ Junction ConnectsL | JunctionFrom ] | |
right [ action Junction ConnectsR | no JunctionTo ] -> [ Junction ConnectsR | JunctionFrom ] | |
up [ action Junction ConnectsU | no JunctionTo ] -> [ Junction ConnectsU | JunctionFrom ] | |
down [ action Junction ConnectsD | no JunctionTo ] -> [ Junction ConnectsD | JunctionFrom ] | |
(spawn tracks under train) | |
left [ LTrain no Track no Wormhole | no Track ] -> [ LTrain < FromL | action FromR ] | |
right [ RTrain no Track no Wormhole | no Track ] -> [ RTrain < FromR | action FromL ] | |
up [ UTrain no Track no Wormhole | no Track ] -> [ UTrain < FromU | action FromD ] | |
down [ DTrain no Track no Wormhole | no Track ] -> [ DTrain < FromD | action FromU ] | |
startloop | |
[ TrainOrCart moving PartTrack | TrainOrCart no Track ] -> [ TrainOrCart > PartTrack | TrainOrCart ] | |
[ left FromU no Track ] -> [ left FromR ULTrack ] | |
[ right FromU no Track ] -> [ right FromL URTrack ] | |
[ down FromU no Track ] -> [ down FromU VTrack ] | |
[ left FromD no Track ] -> [ left FromR DLTrack ] | |
[ right FromD no Track ] -> [ right FromL DRTrack ] | |
[ up FromD no Track ] -> [ up FromD VTrack ] | |
[ up FromL no Track ] -> [ up FromD ULTrack ] | |
[ down FromL no Track ] -> [ down FromU DLTrack ] | |
[ right FromL no Track ] -> [ right FromL HTrack ] | |
[ up FromR no Track ] -> [ up FromD URTrack ] | |
[ down FromR no Track ] -> [ down FromU DRTrack ] | |
[ left FromR no Track ] -> [ left FromR HTrack ] | |
[ > PartTrack Track | no Solid ] -> [ Track | > PartTrack ] | |
[ > PartTrack Track ] -> [ Track ] | |
endloop | |
(spawn player) | |
[ Player ] [ action PartTrack ] -> [ Player ] [ stationary PartTrack ] | |
[ action PartTrack ] -> [ Player PartTrack ] | |
(lay track - init) | |
[ > Player no Wormhole | Passenger ] -> cancel | |
[ > Player no Wormhole | Target ] -> cancel | |
[ > Player no Wormhole | Solid ] -> cancel | |
[ > Player no Wormhole | Train ] -> cancel | |
[ > Player PartTrack | ] -> [ > Player > PartTrack | ] | |
[ > Player stationary PartTrack ] -> cancel | |
(lay track - check joining with existing track) | |
left [ > PartTrack > Player | FromL ] -> [ > PartTrack > Player | HTrack ] | |
left [ > PartTrack > Player | FromU ] -> [ > PartTrack > Player | URTrack ] | |
left [ > PartTrack > Player | FromD ] -> [ > PartTrack > Player | DRTrack ] | |
right [ > PartTrack > Player | FromR ] -> [ > PartTrack > Player | HTrack ] | |
right [ > PartTrack > Player | FromU ] -> [ > PartTrack > Player | ULTrack ] | |
right [ > PartTrack > Player | FromD ] -> [ > PartTrack > Player | DLTrack ] | |
up [ > PartTrack > Player | FromL ] -> [ > PartTrack > Player | DLTrack ] | |
up [ > PartTrack > Player | FromR ] -> [ > PartTrack > Player | DRTrack ] | |
up [ > PartTrack > Player | FromU ] -> [ > PartTrack > Player | VTrack ] | |
down [ > PartTrack > Player | FromL ] -> [ > PartTrack > Player | ULTrack ] | |
down [ > PartTrack > Player | FromR ] -> [ > PartTrack > Player | URTrack ] | |
down [ > PartTrack > Player | FromD ] -> [ > PartTrack > Player | VTrack ] | |
(wormholes - undo) | |
left [ > Player > FromL | Wormhole ] -> [ | Wormhole > Player > FromL ] | |
right [ > Player > FromR | Wormhole ] -> [ | Wormhole > Player > FromR ] | |
up [ > Player > FromU | Wormhole ] -> [ | Wormhole > Player > FromU ] | |
down [ > Player > FromD | Wormhole ] -> [ | Wormhole > Player > FromD ] | |
[ > Player > PartTrack Wormhole ] [ no Player Wormhole | Track ] -> [ Wormhole ] [ Wormhole | Player PartTrack Track ] | |
[ PartTrack ConnectsL no FromR ] -> [ FromL ] | |
[ PartTrack ConnectsR no FromL ] -> [ FromR ] | |
[ PartTrack ConnectsU no FromD ] -> [ FromU ] | |
[ PartTrack ConnectsD no FromU ] -> [ FromD ] | |
(wormholes - normal) | |
[ > Player > PartTrack | Wormhole ] [ no Player | Wormhole | Track ] -> cancel | |
[ > Player > PartTrack | Wormhole ] [ no Player | Wormhole | PartTrack ] -> cancel | |
late [ Player Wormhole ] -> again | |
[ Player FromL Wormhole ] -> [ Player right FromL Wormhole ] | |
[ Player FromR Wormhole ] -> [ Player left FromR Wormhole ] | |
[ Player FromU Wormhole ] -> [ Player down FromU Wormhole ] | |
[ Player FromD Wormhole ] -> [ Player up FromD Wormhole ] | |
[ Player > PartTrack Wormhole ] [ Wormhole no Player | ] -> [ Wormhole ] [ Wormhole | Player PartTrack ] | |
(junctions - undo normal) | |
[ > Player > PartTrack JunctionTo | Junction ] -> [ JunctionTo | action Junction Player PartTrack ] | |
[ action Junction Player PartTrack | JunctionFrom ] -> [ Junction > PartTrack | JunctionFrom Player ] | |
[ action Junction ] -> [ Junction ] | |
(junctions - undo backwards) | |
left [ > Player > FromL JunctionFrom | Junction ] -> [ JunctionFrom | action Junction Player FromL ] | |
right [ > Player > FromR JunctionFrom | Junction ] -> [ JunctionFrom | action Junction Player FromR ] | |
up [ > Player > FromU JunctionFrom | Junction ] -> [ JunctionFrom | action Junction Player FromU ] | |
down [ > Player > FromD JunctionFrom | Junction ] -> [ JunctionFrom | action Junction Player FromD ] | |
[ action Junction Player PartTrack | JunctionTo Track ] -> [ Junction | action JunctionTo Player PartTrack ] | |
left [ ConnectsL no Junction | action JunctionTo Player PartTrack ] -> [ ConnectsL | JunctionTo < Player < FromR ] | |
right [ ConnectsR no Junction | action JunctionTo Player PartTrack ] -> [ ConnectsR | JunctionTo < Player < FromL ] | |
up [ ConnectsU no Junction | action JunctionTo Player PartTrack ] -> [ ConnectsU | JunctionTo < Player < FromD ] | |
down [ ConnectsD no Junction | action JunctionTo Player PartTrack ] -> [ ConnectsD | JunctionTo < Player < FromU ] | |
[ action Junction ] -> [ Junction ] | |
[ action JunctionTo ] -> [ JunctionTo ] | |
(lay track - undo) | |
left [ > Player > FromL | Crossing ] -> [ | Crossing > Player > FromL ] | |
right [ > Player > FromR | Crossing ] -> [ | Crossing > Player > FromR ] | |
up [ > Player > FromU | Crossing ] -> [ | Crossing > Player > FromU ] | |
down [ > Player > FromD | Crossing ] -> [ | Crossing > Player > FromD ] | |
left [ left FromL | ConnectsL no Train ] -> [ | FromL ] | |
left [ left FromL | ConnectsU no Train ] -> [ | FromU ] | |
left [ left FromL | ConnectsD no Train ] -> [ | FromD ] | |
right [ right FromR | ConnectsR no Train ] -> [ | FromR ] | |
right [ right FromR | ConnectsU no Train ] -> [ | FromU ] | |
right [ right FromR | ConnectsD no Train ] -> [ | FromD ] | |
up [ up FromU | ConnectsL no Train ] -> [ | FromL ] | |
up [ up FromU | ConnectsR no Train ] -> [ | FromR ] | |
up [ up FromU | ConnectsU no Train ] -> [ | FromU ] | |
down [ down FromD | ConnectsL no Train ] -> [ | FromL ] | |
down [ down FromD | ConnectsR no Train ] -> [ | FromR ] | |
down [ down FromD | ConnectsD no Train ] -> [ | FromD ] | |
[ > Player no PartTrack | ] -> [ | Player ] | |
(junctions - fix up after undo) | |
[ JunctionTo no PartTrack no Track | Junction ] -> [ > JunctionTo | Junction ] | |
[ left JunctionTo ] -> [ JunctionTo FromL ] | |
[ right JunctionTo ] -> [ JunctionTo FromR ] | |
[ up JunctionTo ] -> [ JunctionTo FromU ] | |
[ down JunctionTo ] -> [ JunctionTo FromD ] | |
(lay track - create track beneath us) | |
[ left FromU no Track ] -> [ left FromR ULTrack ] | |
[ right FromU no Track ] -> [ right FromL URTrack ] | |
[ down FromU no Track ] -> [ down FromU VTrack ] | |
[ left FromD no Track ] -> [ left FromR DLTrack ] | |
[ right FromD no Track ] -> [ right FromL DRTrack ] | |
[ up FromD no Track ] -> [ up FromD VTrack ] | |
[ up FromL no Track ] -> [ up FromD ULTrack ] | |
[ down FromL no Track ] -> [ down FromU DLTrack ] | |
[ right FromL no Track ] -> [ right FromL HTrack ] | |
[ up FromR no Track ] -> [ up FromD URTrack ] | |
[ down FromR no Track ] -> [ down FromU DRTrack ] | |
[ left FromR no Track ] -> [ left FromR HTrack ] | |
(lay track - junctions going through the wrong way) | |
left [ JunctionTo ConnectsL | < Player < PartTrack ] -> [ Player PartTrack action JunctionTo ConnectsL | ] | |
right [ JunctionTo ConnectsR | < Player < PartTrack ] -> [ Player PartTrack action JunctionTo ConnectsR | ] | |
up [ JunctionTo ConnectsU | < Player < PartTrack ] -> [ Player PartTrack action JunctionTo ConnectsU | ] | |
down [ JunctionTo ConnectsD | < Player < PartTrack ] -> [ Player PartTrack action JunctionTo ConnectsD | ] | |
[ Player PartTrack action JunctionTo | Junction ] -> [ JunctionTo | Player PartTrack action Junction ] | |
[ Player PartTrack action Junction | JunctionFrom no Track ] -> [ > Player > PartTrack action Junction | JunctionFrom ] | |
[ Player PartTrack action Junction | JunctionFrom Track ] -> [ Junction | JunctionFrom Track ] again | |
[ left PartTrack action Junction ] -> [ left FromR Junction ] | |
[ right PartTrack action Junction ] -> [ right FromL Junction ] | |
[ up PartTrack action Junction ] -> [ up FromD Junction ] | |
[ down PartTrack action Junction ] -> [ down FromU Junction ] | |
(lay track - check joining with existing track) | |
startloop | |
[ > PartTrack > Player | ] -> [ | > PartTrack Player ] | |
[ Track FromL no ConnectsL ] -> cancel | |
[ Track FromR no ConnectsR ] -> cancel | |
[ Track FromU no ConnectsU ] -> cancel | |
[ Track FromD no ConnectsD ] -> cancel | |
[ Crossing > PartTrack Player ] -> [ Crossing > PartTrack > Player ] | |
[ > PartTrack stationary Player ] -> [ PartTrack Player ] | |
[ ConnectsL stationary PartTrack Player no FromL ] -> [ ConnectsL left FromR Player ] | |
[ ConnectsR stationary PartTrack Player no FromR ] -> [ ConnectsR right FromL Player ] | |
[ ConnectsU stationary PartTrack Player no FromU ] -> [ ConnectsU up FromD Player ] | |
[ ConnectsD stationary PartTrack Player no FromD ] -> [ ConnectsD down FromU Player ] | |
[ > PartTrack stationary Player ] -> [ > PartTrack > Player ] | |
endloop | |
[ > Player ] -> [ no PartTrack ] | |
(start train) | |
[ UTrain ] -> [ up UTrain ] | |
[ DTrain ] -> [ down DTrain ] | |
[ LTrain ] -> [ left LTrain ] | |
[ RTrain ] -> [ right RTrain ] | |
[ Player ] [ moving Train ] -> [ Player ] [ Train ] | |
[ Delay ] [ moving Train ] -> [ Delay ] [ Train ] | |
[ Delayed ] [ moving Train ] -> [ Delayed ] [ Train ] | |
[ Delay ] [ WorldExitPoint ] -> [ Delay ] [ action WorldExitPoint ] | |
[ Delayed ] [ WorldExitPoint ] -> [ Delayed ] [ action WorldExitPoint ] | |
[ > Train | Solid ] -> cancel | |
[ > Train | Passenger ] -> cancel | |
[ > Train | TrainOrCart ] -> cancel | |
[ > Train | DoorVisible ] -> cancel | |
[ moving Train ] [ DoorHidden ] -> [ moving Train ] [ DoorVisible ] | |
(train going through a junction should set the track to make that branch active) | |
[ Train Junction | Cart JunctionTo ] -> [ action Train Junction | Cart JunctionTo ] | |
[ action Train Junction | JunctionFrom ] -> [ > Train Junction | JunctionFrom ] | |
left [ up Train Junction | Cart JunctionTo ] -> [ up UTrain Junction ULTrack | Cart JunctionTo ] | |
left [ down Train Junction | Cart JunctionTo ] -> [ down DTrain Junction DLTrack | Cart JunctionTo ] | |
left [ right Train Junction | Cart JunctionTo ] -> [ right RTrain Junction HTrack | Cart JunctionTo ] | |
right [ up Train Junction | Cart JunctionTo ] -> [ up UTrain Junction URTrack | Cart JunctionTo ] | |
right [ down Train Junction | Cart JunctionTo ] -> [ down DTrain Junction DRTrack | Cart JunctionTo ] | |
right [ left Train Junction | Cart JunctionTo ] -> [ left LTrain Junction HTrack | Cart JunctionTo ] | |
up [ left Train Junction | Cart JunctionTo ] -> [ left LTrain Junction ULTrack | Cart JunctionTo ] | |
up [ right Train Junction | Cart JunctionTo ] -> [ right RTrain Junction URTrack | Cart JunctionTo ] | |
up [ down Train Junction | Cart JunctionTo ] -> [ down DTrain Junction VTrack | Cart JunctionTo ] | |
down [ left Train Junction | Cart JunctionTo ] -> [ left LTrain Junction DLTrack | Cart JunctionTo ] | |
down [ right Train Junction | Cart JunctionTo ] -> [ right RTrain Junction DRTrack | Cart JunctionTo ] | |
down [ up Train Junction | Cart JunctionTo ] -> [ up UTrain Junction VTrack | Cart JunctionTo ] | |
(train leaves world and should keep moving) | |
[ > Train Track | ] -> [ > Train action Track | ] | |
[ > Train stationary Track ] -> [ > Train Track WorldExitPoint ] | |
[ action Track ] -> [ Track ] | |
[ stationary WorldExitPoint TrainOrCart no PassengerOnCart ] -> [ WorldExitPoint TrainCartGap no PassengerOnCart ] again | |
(move train) | |
[ > Train | Wormhole ] [ no Train | Wormhole | ] -> [ TrainCartGap | Wormhole ] [ | Wormhole | action Train ] again | |
[ > Train | ] -> [ TrainCartGap | action Train ] again | |
(cart follows train) | |
startloop | |
left [ stationary TrainCartGap ConnectsL | stationary Cart ] -> [ > TrainCartGap ConnectsL | Cart ] | |
right [ stationary TrainCartGap ConnectsR | stationary Cart ] -> [ > TrainCartGap ConnectsR | Cart ] | |
up [ stationary TrainCartGap ConnectsU | stationary Cart ] -> [ > TrainCartGap ConnectsU | Cart ] | |
down [ stationary TrainCartGap ConnectsD | stationary Cart ] -> [ > TrainCartGap ConnectsD | Cart ] | |
left [ stationary TrainCartGap ConnectsL | Wormhole ] [ no TrainCartGap | Wormhole | stationary Cart ] -> [ > TrainCartGap ConnectsL | Wormhole ] [ no TrainCartGap | Wormhole | stationary Cart ] | |
right [ stationary TrainCartGap ConnectsR | Wormhole ] [ no TrainCartGap | Wormhole | stationary Cart ] -> [ > TrainCartGap ConnectsR | Wormhole ] [ no TrainCartGap | Wormhole | stationary Cart ] | |
up [ stationary TrainCartGap ConnectsU | Wormhole ] [ no TrainCartGap | Wormhole | stationary Cart ] -> [ > TrainCartGap ConnectsU | Wormhole ] [ no TrainCartGap | Wormhole | stationary Cart ] | |
down [ stationary TrainCartGap ConnectsD | Wormhole ] [ no TrainCartGap | Wormhole | stationary Cart ] -> [ > TrainCartGap ConnectsD | Wormhole ] [ no TrainCartGap | Wormhole | stationary Cart ] | |
[ stationary Cart HangOnGuess | < TrainCartGap ] -> [ Cart > HangOnGuess | < TrainCartGap ] | |
[ HangOn no HangOnTarget | > HangOnGuess ] -> [ HangOn | v HangOnGuess ] | |
left [ > HangOnGuess ConnectsL | no TrainCartGap ] -> [ right HangOnGuess ConnectsL | ] | |
right [ > HangOnGuess ConnectsR | no TrainCartGap ] -> [ left HangOnGuess ConnectsR | ] | |
up [ > HangOnGuess ConnectsU | no TrainCartGap ] -> [ down HangOnGuess ConnectsU | ] | |
down [ > HangOnGuess ConnectsD | no TrainCartGap ] -> [ up HangOnGuess ConnectsD | ] | |
[ HangOn no HangOnTarget | ^ HangOnGuess ] -> [ HangOn | HangOnLeft ] | |
[ HangOn no HangOnTarget | v HangOnGuess ] -> [ HangOn | HangOnRight ] | |
[ stationary Cart HangOnMarker | < TrainCartGap ] -> [ Cart > HangOnMarker | < TrainCartGap ] | |
[ stationary HangOn no HangOnTarget | moving HangOnMarker ] -> [ moving HangOn | HangOnMarker ] | |
[ > HangOn | HangOnLeft ] -> [ ^ HangOn | ^ HangOnLeft ] | |
[ > HangOn | HangOnRight ] -> [ v HangOn | v HangOnRight ] | |
[ > HangOn | Collides ] -> [ action HangOn | Collides ] | |
[ action HangOn | HangOnMarker ] -> [ HangOn | ] | |
[ > HangOn | no Collides ] -> [ | action HangOn ] | |
[ action HangOn | TrainCartGap ] -> [ HangOn | TrainCartGap ] | |
[ > HangOnMarker | Collides ] -> [ action HangOnMarker | Collides ] | |
[ action HangOnMarker ] [ action HangOn ] -> [] [ HangOn ] | |
[ action HangOn ] [ > HangOnMarker | no Collides ] -> [] [ > HangOnMarker | HangOn ] | |
[ stationary Cart HangOnMarker | < TrainCartGap ] -> [ Cart > HangOnMarker | < TrainCartGap ] | |
[ stationary HangOn no HangOnTarget | moving HangOnMarker ] -> [ moving HangOn | HangOnMarker ] | |
[ > HangOn | no Collides ] -> [ | HangOn ] | |
[ stationary Cart PassengerOnCart | < TrainCartGap ] -> [ TrainCartGap | action Cart PassengerOnCart ] | |
[ stationary Cart | < TrainCartGap ] -> [ TrainCartGap | action Cart ] | |
([ > TrainCartGap | Wormhole ] [ no TrainCartGap | Wormhole | action TrainOrCart ] -> [ | Wormhole ] [ | Wormhole | action TrainOrCart ]) | |
[ > TrainCartGap | Wormhole ] [ no TrainCartGap | Wormhole | stationary Cart PassengerOnCart ] -> [ action Cart PassengerOnCart | Wormhole ] [ | Wormhole | TrainCartGap ] | |
[ > TrainCartGap | Wormhole ] [ no TrainCartGap | Wormhole | stationary Cart ] -> [ action Cart | Wormhole ] [ | Wormhole | TrainCartGap ] | |
[ > TrainCartGap ] -> [ TrainCartGap ] | |
endloop | |
[ TrainCartGap ] -> [] | |
(train turns when entering corners) | |
[ action Train ConnectsL no RTrain no Crossing ] -> [ LTrain ConnectsL ] | |
[ action Train ConnectsR no LTrain no Crossing ] -> [ RTrain ConnectsR ] | |
[ action Train ConnectsU no DTrain no Crossing ] -> [ UTrain ConnectsU ] | |
[ action Train ConnectsD no UTrain no Crossing ] -> [ DTrain ConnectsD ] | |
(remove delay objects from previous turn) | |
[ Delay no PassengerWaiting no PassengerOnCart ] -> [] again | |
[ Delay ] -> [ Delay Delayed ] | |
(Passengers get on) | |
late [ HangOn no HangOnTarget | Cart no Passenger ] -> [ HangOn | Cart HangOnGuess ] again | |
late [ Passenger Delay no Cart no Target | Cart no Passenger | Passenger Delay no Cart no Target ] -> [ Passenger Delayed | Cart | Passenger Delayed ] again | |
late [ StackPassenger Delay no Cart no Target | Cart StackPassenger | StackPassenger Delay no Cart no Target ] -> [ StackPassenger Delayed | StackPassenger Cart | StackPassenger Delayed ] again | |
late [ TopAndBottomWaiting Delay no Cart no Target | Cart no PassengerOnCart ] -> [ BottomWaiting Delay | Cart TopOnCart ] again | |
(late [ TopAndBottomWaiting Delay no Cart no Target | Cart BottomOnCart ] -> [ BottomWaiting Delay | Cart TopAndBottomOnCart ] again) | |
late [ BottomWaiting Delay no Cart no Target | Cart no PassengerOnCart ] -> [ Delay | Cart BottomOnCart ] again | |
late [ BluePassengerWaiting Delay no Cart no Target | Cart no PassengerOnCart ] -> [ Delay | Cart BluePassengerOnCart ] again | |
late [ RedPassengerWaiting Delay no Cart no Target | Cart no PassengerOnCart ] -> [ Delay | Cart RedPassengerOnCart ] again | |
late [ Slime Delay no Cart no Target | Cart no PassengerOnCart ] -> [ Delay | Cart SlimeOnCart ] again | |
late [ Slime Delay no Cart no Target | Cart Poop ] -> [ Delay | Cart SlimeOnCart ] again | |
late [ 1StackPassenger Delay no Cart no Target | Cart 3StackPassenger ] -> [ Delay | Cart 4StackPassenger ] again | |
late [ 2StackPassenger Delay no Cart no Target | Cart 3StackPassenger ] -> [ 1StackPassenger Delay | Cart 4StackPassenger ] again | |
late [ 3StackPassenger Delay no Cart no Target | Cart 3StackPassenger ] -> [ 2StackPassenger Delay | Cart 4StackPassenger ] again | |
late [ 4StackPassenger Delay no Cart no Target | Cart 3StackPassenger ] -> [ 3StackPassenger Delay | Cart 4StackPassenger ] again | |
late [ 1StackPassenger Delay no Cart no Target | Cart 2StackPassenger ] -> [ Delay | Cart 3StackPassenger ] again | |
late [ 2StackPassenger Delay no Cart no Target | Cart 2StackPassenger ] -> [ 1StackPassenger Delay | Cart 3StackPassenger ] again | |
late [ 3StackPassenger Delay no Cart no Target | Cart 2StackPassenger ] -> [ 2StackPassenger Delay | Cart 3StackPassenger ] again | |
late [ 4StackPassenger Delay no Cart no Target | Cart 2StackPassenger ] -> [ 3StackPassenger Delay | Cart 3StackPassenger ] again | |
late [ 1StackPassenger Delay no Cart no Target | Cart 1StackPassenger ] -> [ Delay | Cart 2StackPassenger ] again | |
late [ 2StackPassenger Delay no Cart no Target | Cart 1StackPassenger ] -> [ 1StackPassenger Delay | Cart 2StackPassenger ] again | |
late [ 3StackPassenger Delay no Cart no Target | Cart 1StackPassenger ] -> [ 2StackPassenger Delay | Cart 2StackPassenger ] again | |
late [ 4StackPassenger Delay no Cart no Target | Cart 1StackPassenger ] -> [ 3StackPassenger Delay | Cart 2StackPassenger ] again | |
late [ 1StackPassenger Delay no Cart no Target | Cart no Passenger ] -> [ Delay | Cart 1StackPassenger ] again | |
late [ 2StackPassenger Delay no Cart no Target | Cart no Passenger ] -> [ 1StackPassenger Delay | Cart 1StackPassenger ] again | |
late [ 3StackPassenger Delay no Cart no Target | Cart no Passenger ] -> [ 2StackPassenger Delay | Cart 1StackPassenger ] again | |
late [ 4StackPassenger Delay no Cart no Target | Cart no Passenger ] -> [ 3StackPassenger Delay | Cart 1StackPassenger ] again | |
(mark passengers to get on next turn) | |
late [ PassengerWaiting no Cart no Delay no Delayed no Target no HangOn | Cart no PassengerOnCart ] -> [ PassengerWaiting Delay | Cart ] again | |
late [ StackPassenger no Cart no Delay no Delayed no Target no HangOn | Cart StackPassenger no 4StackPassenger ] -> [ StackPassenger Delay | Cart StackPassenger ] again | |
late [ Slime no Cart no Delay no Delayed no Target no HangOn | Cart Poop ] -> [ Slime Delay | Cart Poop ] again | |
(late [ TopAndBottomWaiting no Cart no Delay no Target | Cart BottomOnCart ] -> [ TopAndBottomWaiting Delay | Cart BottomOnCart ] again) | |
(passengers get off) | |
late [ HangOn HangonTarget | Cart HangOnMarker ] -> [ HangOn HangOnTarget | Cart Delay ] | |
late [ BottomOnCart Delay Cart | no PassengerWaiting TopAndBottomTarget ] -> [ Delay Cart | BottomWaiting TopAndBottomTarget ] again | |
late [ BluePassengerOnCart Delay Cart | no PassengerWaiting BlueTarget ] -> [ Delay Cart | BluePassengerWaiting BlueTarget ] again | |
late [ RedPassengerOnCart Delay Cart | no PassengerWaiting RedTarget ] -> [ Delay Cart | RedPassengerWaiting RedTarget ] again | |
late [ SlimeOnCart Delay Cart | no PassengerWaiting SlimeTarget ] -> [ Delay Cart Poop | Slime SlimeTarget ] again | |
late [ 1StackPassenger Delay Cart | no Passenger StackTarget ] -> [ Delay Cart | 1StackPassenger StackTarget ] again | |
late [ 1StackPassenger Delay Cart | 1StackPassenger no 1StackTarget no AnyTarget ] -> [ Delay Cart | 2StackPassenger ] again | |
late [ 1StackPassenger Delay Cart | 2StackPassenger no 1StackTarget no AnyTarget ] -> [ Delay Cart | 3StackPassenger ] again | |
late [ 1StackPassenger Delay Cart | 3StackPassenger no 1StackTarget no AnyTarget ] -> [ Delay Cart | 4StackPassenger ] again | |
late [ 2StackPassenger Delay Cart | no Passenger StackTarget ] -> [ 1StackPassenger Delay Cart | 1StackPassenger StackTarget ] again | |
late [ 2StackPassenger Delay Cart | 1StackPassenger no 1StackTarget no AnyTarget ] -> [ 1StackPassenger Delay Cart | 2StackPassenger ] again | |
late [ 2StackPassenger Delay Cart | 2StackPassenger no 1StackTarget no AnyTarget ] -> [ 1StackPassenger Delay Cart | 3StackPassenger ] again | |
late [ 2StackPassenger Delay Cart | 3StackPassenger no 1StackTarget no AnyTarget ] -> [ 1StackPassenger Delay Cart | 4StackPassenger ] again | |
late [ 3StackPassenger Delay Cart | no Passenger StackTarget ] -> [ 2StackPassenger Delay Cart | 1StackPassenger StackTarget ] again | |
late [ 3StackPassenger Delay Cart | 1StackPassenger no 1StackTarget no AnyTarget ] -> [ 2StackPassenger Delay Cart | 2StackPassenger ] again | |
late [ 3StackPassenger Delay Cart | 2StackPassenger no 1StackTarget no AnyTarget ] -> [ 2StackPassenger Delay Cart | 3StackPassenger ] again | |
late [ 3StackPassenger Delay Cart | 3StackPassenger no 1StackTarget no AnyTarget ] -> [ 2StackPassenger Delay Cart | 4StackPassenger ] again | |
late [ 4StackPassenger Delay Cart | no Passenger StackTarget ] -> [ 3StackPassenger Delay Cart | 1StackPassenger StackTarget ] again | |
late [ 4StackPassenger Delay Cart | 1StackPassenger no 1StackTarget no AnyTarget ] -> [ 3StackPassenger Delay Cart | 2StackPassenger ] again | |
late [ 4StackPassenger Delay Cart | 2StackPassenger no 1StackTarget no AnyTarget ] -> [ 3StackPassenger Delay Cart | 3StackPassenger ] again | |
late [ 4StackPassenger Delay Cart | 3StackPassenger no 1StackTarget no AnyTarget ] -> [ 3StackPassenger Delay Cart | 4StackPassenger ] again | |
late [ BluePassengerOnCart Delay Cart | no PassengerWaiting AnyTarget ] -> [ Delay Cart | BluePassengerWaiting AnyTarget ] again | |
late [ RedPassengerOnCart Delay Cart | no PassengerWaiting AnyTarget ] -> [ Delay Cart | RedPassengerWaiting AnyTarget ] again | |
late [ SlimeOnCart Delay Cart | no PassengerWaiting AnyTarget ] -> [ Delay Cart Poop | Slime AnyTarget ] again | |
late [ 1StackPassenger Delay Cart | no PassengerWaiting AnyTarget ] -> [ Delay Cart | 1StackPassenger AnyTarget ] again | |
late [ 2StackPassenger Delay Cart | no PassengerWaiting AnyTarget ] -> [ 1StackPassenger Delay Cart | 1StackPassenger AnyTarget ] again | |
late [ 3StackPassenger Delay Cart | no PassengerWaiting AnyTarget ] -> [ 2StackPassenger Delay Cart | 1StackPassenger AnyTarget ] again | |
late [ 4StackPassenger Delay Cart | no PassengerWaiting AnyTarget ] -> [ 3StackPassenger Delay Cart | 1StackPassenger AnyTarget ] again | |
late [ BottomOnCart Delay Cart | no PassengerWaiting AnyTarget ] -> [ Delay Cart | BottomWaiting AnyTarget ] again | |
late [ TopOnCart Delay Cart | BottomWaiting Target ] -> [ Delay Cart | TopAndBottomWaiting Target ] again | |
(late [ TopAndBottomOnCart Delay Cart | BottomWaiting Target ] -> [ BottomOnCart Delay Cart | TopAndBottomWaiting Target ] again) | |
(mark passengers to get off next turn) | |
late [ BluePassengerOnCart Cart no Delay | no PassengerWaiting BlueTarget ] -> [ BluePassengerOnCart Cart Delay | BlueTarget ] again | |
late [ RedPassengerOnCart Cart no Delay | no PassengerWaiting RedTarget ] -> [ RedPassengerOnCart Cart Delay | RedTarget ] again | |
late [ SlimeOnCart Cart no Delay | no PassengerWaiting SlimeTarget ] -> [ SlimeOnCart Cart Delay | SlimeTarget ] again | |
late [ BottomOnCart Cart no Delay | no PassengerWaiting TopAndBottomTarget ] -> [ BottomOnCart Cart Delay | TopAndBottomTarget ] again | |
(late [ TopAndBottomOnCart Cart no Delay | BottomWaiting Target ] -> [ TopAndBottomOnCart Cart Delay | BottomWaiting Target ] again) | |
late [ TopOnCart Cart no Delay | BottomWaiting Target ] -> [ TopOnCart Cart Delay | BottomWaiting Target ] again | |
late [ 1StackPassenger Cart no Delay no Delayed | 1StackTarget no Passenger ] -> [ 1StackPassenger Cart Delay | 1StackTarget ] again | |
late [ 1StackPassenger Cart no Delay no Delayed | 2StackTarget no 2StackPassenger ] -> [ 1StackPassenger Cart Delay | 2StackTarget ] again | |
late [ 1StackPassenger Cart no Delay no Delayed | 3StackTarget no 3StackPassenger ] -> [ 1StackPassenger Cart Delay | 3StackTarget ] again | |
late [ 1StackPassenger Cart no Delay no Delayed | 4StackTarget no 4StackPassenger ] -> [ 1StackPassenger Cart Delay | 4StackTarget ] again | |
late [ 2StackPassenger Cart no Delay no Delayed | 1StackTarget no Passenger ] -> [ 2StackPassenger Cart Delay | 1StackTarget ] again | |
late [ 2StackPassenger Cart no Delay no Delayed | 2StackTarget no 2StackPassenger ] -> [ 2StackPassenger Cart Delay | 2StackTarget ] again | |
late [ 2StackPassenger Cart no Delay no Delayed | 3StackTarget no 3StackPassenger ] -> [ 2StackPassenger Cart Delay | 3StackTarget ] again | |
late [ 2StackPassenger Cart no Delay no Delayed | 4StackTarget no 4StackPassenger ] -> [ 2StackPassenger Cart Delay | 4StackTarget ] again | |
late [ 3StackPassenger Cart no Delay no Delayed | 1StackTarget no Passenger ] -> [ 3StackPassenger Cart Delay | 1StackTarget ] again | |
late [ 3StackPassenger Cart no Delay no Delayed | 2StackTarget no 2StackPassenger ] -> [ 3StackPassenger Cart Delay | 2StackTarget ] again | |
late [ 3StackPassenger Cart no Delay no Delayed | 3StackTarget no 3StackPassenger ] -> [ 3StackPassenger Cart Delay | 3StackTarget ] again | |
late [ 3StackPassenger Cart no Delay no Delayed | 4StackTarget no 4StackPassenger ] -> [ 3StackPassenger Cart Delay | 4StackTarget ] again | |
late [ 4StackPassenger Cart no Delay no Delayed | 1StackTarget no Passenger ] -> [ 4StackPassenger Cart Delay | 1StackTarget ] again | |
late [ 4StackPassenger Cart no Delay no Delayed | 2StackTarget no 2StackPassenger ] -> [ 4StackPassenger Cart Delay | 2StackTarget ] again | |
late [ 4StackPassenger Cart no Delay no Delayed | 3StackTarget no 3StackPassenger ] -> [ 4StackPassenger Cart Delay | 3StackTarget ] again | |
late [ 4StackPassenger Cart no Delay no Delayed | 4StackTarget no 4StackPassenger ] -> [ 4StackPassenger Cart Delay | 4StackTarget ] again | |
late [ PassengerOnCart no Poop Cart no Delay | no PassengerWaiting AnyTarget ] -> [ PassengerOnCart Cart Delay | AnyTarget ] again | |
(passenger movement cleanup) | |
late [ Delayed no Delay ] -> [] again | |
late [ Delay Delayed ] -> [ Delayed ] again | |
(Train leaves world - trigger first level warning) | |
([ stationary WorldExitPoint Train ] [ Tutorial ] [ Passenger no Target ] -> message You have to take all the passengers to the blue station) | |
([ stationary WorldExitPoint Train ] -> [ WorldExitPoint ] again | |
[ WorldExitPoint Cart ] -> [ WorldExitPoint ] again | |
[ WorldExitPoint PassengerOnCart ] -> [ WorldExitPoint ] again) | |
============== | |
WINCONDITIONS | |
============== | |
No train | |
No cart | |
all passenger on target | |
no BottomWaiting | |
======= | |
LEVELS | |
======= | |
(Andromeda-like set) | |
(Similar in theme to early levels, but) | |
(introduces multi-car trains much earlier) | |
(because they are super fun) | |
(1. Same as usual) | |
##........## | |
##........## | |
##.@......## | |
~r→.......-- | |
##......!.## | |
##........## | |
##........## | |
(2. Two aliens now, but color coded so no ambiguity) | |
(Goal here is to practise drawing tracks) | |
##.*..o...## | |
##........## | |
~r→.......-- | |
##........## | |
##...@..!.## | |
(3. Two the same at once) | |
(The expectation is the train will be big enough. It is.) | |
(This expectation is wrong, but for now that's fine.) | |
###...**...## | |
###........## | |
###........## | |
~~r→.......-- | |
###........## | |
###........## | |
###...oo...## | |
(4. Two trips of two, careful packing) | |
(The objective is straightforward, but the track placement) | |
(is quite tightly packed. The long track feels rewarding.) | |
####...@@**### | |
~~r→........## | |
###.........## | |
###.........## | |
###.........## | |
###.........-- | |
####!!oo...### | |
(5. Have to hit side of alien to collect) | |
(The objective is to challenge the drive-thru design.) | |
#~####### | |
#d####### | |
.↓...o.## | |
.......## | |
....%%.## | |
....%%.## | |
.......-- | |
.....*.## | |
(6. Gotta go round the back) | |
(Presents a basic ordering problem.) | |
###...%%...## | |
###........## | |
###...!o...## | |
~~r→.......-- | |
###...*@...## | |
###........## | |
###...%%...## | |
(7. Drive-thru temptation) | |
(The obvious choice leads to a dead end) | |
###..*..### | |
##.......## | |
##...o...## | |
~r→..%...-- | |
##...!...## | |
##.......## | |
###..@..### | |
(8. Edge touches) | |
(A more direct drive-thru challenge) | |
##...*.*...## | |
##.........## | |
##.........## | |
~r→..%%%...-- | |
##.........## | |
##.........## | |
##...o.o...## | |
(9. Reward! lots to do!) | |
(A big project feels rewarding) | |
(The train is 3 but the aliens are grouped in 4s) | |
(so the initial solution may overlook this.) | |
####%****@@@@%## | |
####..........## | |
####..........## | |
####..........## | |
####..........## | |
~~~r→.........-- | |
####..........## | |
####..........## | |
####..........## | |
####..........## | |
####%oooo!!!!%## | |
(10. Andromeda 4 from original game with color hint) | |
(This is directly challenging the drive-thru design paradigm) | |
(though I don't need to tell you that? lol) | |
##........## | |
##...*@...## | |
##........## | |
~r→.......-- | |
##........## | |
##...o!...## | |
##........## | |
(11. Drive-thru proof with multi trains) | |
(The back routes are blocked to compensate for the added) | |
(complexity of the path.) | |
###....%%....## | |
###...**@@...## | |
###..........## | |
~~r→.........-- | |
###..........## | |
###...oo!!...## | |
###....%%....## | |
(12. Need to go behind when the front looks tempting) | |
(Now that the drive-thru paradigm is questioned, this challenges) | |
(the approach to the sequence) | |
##........## | |
##...*@...## | |
##........## | |
~r→.......-- | |
##........## | |
##...!o...## | |
##........## | |
(13. Need to go behind an exit) | |
(This is an easier one because things are getting tough) | |
##%......## | |
##*...%o.## | |
##.......## | |
~r→....%.-- | |
##.......## | |
##*...%o.## | |
##%......## | |
(14. Very simple dual exits) | |
(Solutions are very different but both easy.) | |
####.**..o.### | |
###.........## | |
~~r→........## | |
###.........-- | |
---.........## | |
###.........## | |
####.oo..*.### | |
(15. Non obvious exits) | |
(Once you see the aliens go in opposite exits,) | |
(the solution is very easy to implement.) | |
##.........## | |
##.........## | |
##...!..@..## | |
~r→........-- | |
##.........## | |
##.........## | |
##...!..@..## | |
message Thanks for playing! | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment