-
-
Save raggy/dec9365b3c6ee699b56a475c26e4cf9b to your computer and use it in GitHub Desktop.
Dungeon Express
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Play this game by pasting the script in http://www.puzzlescript.net/editor.html |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
title Dungeon Express | |
author B Davis | |
homepage http://benjamindav.is | |
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 | |
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 | |
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 | |
VillagerWaiting | |
DarkBrown Yellow DarkBrown Orange | |
..0.. | |
.111. | |
21112 | |
23332 | |
.3.3. | |
VillagerOnCart | |
DarkBrown Yellow DarkBrown Orange | |
..... | |
..0.. | |
.111. | |
.111. | |
..... | |
WarriorWaiting | |
DarkBrown LightBrown DarkBrown Orange LightGrey | |
4.0.. | |
4111. | |
21144 | |
.3344 | |
.3.3. | |
WarriorOnCart | |
DarkBrown LightBrown DarkBrown Orange LightGrey | |
4.... | |
4.0.. | |
0111. | |
.114. | |
..... | |
GoblinWaiting | |
DarkGreen Purple | |
..0.. | |
.111. | |
01110 | |
01110 | |
.0.0. | |
GoblinOnCart | |
DarkGreen Purple | |
..... | |
..0.. | |
.111. | |
.111. | |
..... | |
PassengerHurt | |
#FF0000 | |
..0.. | |
.000. | |
00000 | |
00000 | |
.0.0. | |
PassengerHurtDelay | |
transparent | |
DoorVisible | |
darkbrown | |
NoDoor | |
transparent | |
DoorHidden | |
transparent | |
Black | |
black | |
HumanNearby | |
transparent | |
MonsterNearby | |
transparent | |
MyTurn | |
transparent | |
NotMyTurn | |
transparent | |
JustMoved | |
transparent | |
Acted | |
transparent | |
MoveU | |
transparent | |
MoveD | |
transparent | |
MoveR | |
transparent | |
MoveL | |
transparent | |
Zero 0 | |
transparent transparent | |
10011 | |
01101 | |
01101 | |
01101 | |
10011 | |
One 1 | |
transparent transparent | |
10011 | |
11011 | |
11011 | |
11011 | |
10001 | |
Two 2 | |
transparent transparent | |
10011 | |
11101 | |
11011 | |
10111 | |
10001 | |
Three 3 | |
transparent transparent | |
10011 | |
11101 | |
11011 | |
11101 | |
10011 | |
Four 4 | |
transparent transparent | |
10101 | |
10101 | |
10001 | |
11101 | |
11101 | |
Five 5 | |
transparent transparent | |
10001 | |
10111 | |
10011 | |
11101 | |
10011 | |
Six 6 | |
transparent transparent | |
11001 | |
10111 | |
10001 | |
10110 | |
11001 | |
Seven 7 | |
transparent transparent | |
10001 | |
11101 | |
11011 | |
11011 | |
11011 | |
Eight 8 | |
transparent transparent | |
11001 | |
10110 | |
11001 | |
10110 | |
11001 | |
Nine 9 | |
transparent transparent | |
11001 | |
10110 | |
11000 | |
11110 | |
11001 | |
======= | |
LEGEND | |
======= | |
. = Background | |
% = Forest | |
~ = Cart and WarriorOnCart | |
G = GoblinWaiting | |
# = 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) | |
* = VillagerWaiting and PickupBG | |
→ = FromL | |
← = FromR | |
↑ = FromD | |
↓ = FromU | |
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 | |
HumanWaiting = VillagerWaiting or WarriorWaiting | |
HumanOnCart = VillagerOnCart or WarriorOnCart | |
Human = HumanWaiting or HumanOnCart | |
MonsterWaiting = GoblinWaiting | |
MonsterOnCart = GoblinOnCart | |
Monster = MonsterWaiting or MonsterOnCart | |
PassengerWaiting = HumanWaiting or MonsterWaiting | |
PassengerOnCart = HumanOnCart or MonsterOnCart | |
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 | |
MoveNextTurn = MoveU or MoveD or MoveR or MoveL | |
======= | |
SOUNDS | |
======= | |
SFX0 91301709 | |
SFX1 53409305 | |
SFX2 38557307 | |
SFX3 99431502 | |
SFX4 18891907 (exit cart) | |
SFX5 77365107 (enter cart) | |
EndLevel 78709508 | |
Train Move 88405308 | |
(Track Create 24611507) | |
(Undo 77031907) | |
(Track Destroy 77031907) | |
PassengerHurt Create 13054904 | |
================ | |
COLLISIONLAYERS | |
================ | |
Background | |
Tutorial, Junction, JunctionFrom, JunctionTo, OptionalObstacle | |
Player, Beach | |
Track, Solid, Wormhole | |
Delayed, DoorVisible, NoDoor, DoorHidden | |
Train, Cart, PickupBG, TrainCartGap | |
Delay, WorldExitPoint, PartTrack | |
Passenger, HumanNearby | |
PassengerHurt, PassengerHurtDelay | |
MonsterNearby | |
JustMoved | |
Acted | |
NotMyTurn, MyTurn, MoveNextTurn | |
Number | |
====== | |
RULES | |
====== | |
(open door) | |
[ Monster ][ DoorVisible ] -> [ Monster ][ action DoorVisible ] | |
[ Cart no HumanOnCart ][ DoorVisible ] -> [ Cart ][ action DoorVisible ] | |
[ stationary DoorVisible ] -> [ 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 | 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 ] | |
(Fighting) | |
[ PassengerHurtDelay ] -> [] | |
[ PassengerHurt ] -> [ PassengerHurtDelay ] again | |
(change to human's turn) | |
[ HumanWaiting NotMyTurn no PassengerHurt no PassengerHurtDelay ] -> [ action HumanWaiting NotMyTurn ] | |
[ action HumanWaiting NotMyTurn | MonsterWaiting no Acted ] -> [ HumanWaiting NotMyTurn | MonsterWaiting ] | |
[ action HumanWaiting NotMyTurn ] -> [ action HumanWaiting MyTurn ] | |
[ action HumanWaiting | MonsterWaiting Acted ] -> [ HumanWaiting | MonsterWaiting ] | |
[ action HumanWaiting ] -> [ HumanWaiting ] | |
(change to monster's turn) | |
[ MonsterWaiting NotMyTurn no PassengerHurt no PassengerHurtDelay ] -> [ action MonsterWaiting NotMyTurn ] | |
[ action MonsterWaiting NotMyTurn | HumanWaiting no Acted ] -> [ MonsterWaiting NotMyTurn | HumanWaiting ] | |
[ action MonsterWaiting NotMyTurn ] -> [ action MonsterWaiting MyTurn ] | |
[ action MonsterWaiting | HumanWaiting Acted ] -> [ MonsterWaiting | HumanWaiting ] | |
[ action MonsterWaiting ] -> [ MonsterWaiting ] | |
(change from passenger's turn) | |
[ PassengerHurt ] [ MyTurn ] -> [ PassengerHurt ] [ action MyTurn ] | |
[ PassengerHurtDelay ] [ MyTurn ] -> [ PassengerHurtDelay ] [ action MyTurn ] | |
[ PassengerWaiting stationary MyTurn Acted ] -> [ PassengerWaiting NotMyTurn ] | |
(finish combat when no enemies nearby) | |
[ HumanWaiting | MonsterWaiting ] -> [ action HumanWaiting | action MonsterWaiting ] | |
[ stationary PassengerWaiting MyTurn ] -> [ PassengerWaiting ] | |
[ stationary PassengerWaiting NotMyTurn ] -> [ PassengerWaiting ] | |
[ action PassengerWaiting ] -> [ PassengerWaiting ] | |
(finish combat when combatant died) | |
[ MyTurn no PassengerWaiting ] -> [] | |
[ NotMyTurn no PassengerWaiting ] -> [] | |
(monsters attacking a human) | |
up [ HumanWaiting NotMyTurn no PassengerHurt no PassengerHurtDelay | MonsterWaiting no Acted ] -> [ HumanWaiting NotMyTurn PassengerHurt | action MonsterWaiting Acted ] again | |
right [ HumanWaiting NotMyTurn no PassengerHurt no PassengerHurtDelay | MonsterWaiting no Acted ] -> [ HumanWaiting NotMyTurn PassengerHurt | action MonsterWaiting Acted ] again | |
down [ HumanWaiting NotMyTurn no PassengerHurt no PassengerHurtDelay | MonsterWaiting no Acted ] -> [ HumanWaiting NotMyTurn PassengerHurt | action MonsterWaiting Acted ] again | |
left [ HumanWaiting NotMyTurn no PassengerHurt no PassengerHurtDelay | MonsterWaiting no Acted ] -> [ HumanWaiting NotMyTurn PassengerHurt | action MonsterWaiting Acted ] again | |
(human retaliating against monsters) | |
up [ HumanWaiting MyTurn no Acted | MonsterWaiting ] -> [ action HumanWaiting MyTurn Acted | MonsterWaiting PassengerHurt ] again | |
right [ HumanWaiting MyTurn no Acted | MonsterWaiting ] -> [ action HumanWaiting MyTurn Acted | MonsterWaiting PassengerHurt ] again | |
down [ HumanWaiting MyTurn no Acted | MonsterWaiting ] -> [ action HumanWaiting MyTurn Acted | MonsterWaiting PassengerHurt ] again | |
left [ HumanWaiting MyTurn no Acted | MonsterWaiting ] -> [ action HumanWaiting MyTurn Acted | MonsterWaiting PassengerHurt ] again | |
(humans attacking a monster) | |
up [ MonsterWaiting NotMyTurn no PassengerHurt no PassengerHurtDelay | HumanWaiting no Acted ] -> [ MonsterWaiting NotMyTurn PassengerHurt | action HumanWaiting Acted ] again | |
right [ MonsterWaiting NotMyTurn no PassengerHurt no PassengerHurtDelay | HumanWaiting no Acted ] -> [ MonsterWaiting NotMyTurn PassengerHurt | action HumanWaiting Acted ] again | |
down [ MonsterWaiting NotMyTurn no PassengerHurt no PassengerHurtDelay | HumanWaiting no Acted ] -> [ MonsterWaiting NotMyTurn PassengerHurt | action HumanWaiting Acted ] again | |
left [ MonsterWaiting NotMyTurn no PassengerHurt no PassengerHurtDelay | HumanWaiting no Acted ] -> [ MonsterWaiting NotMyTurn PassengerHurt | action HumanWaiting Acted ] again | |
(monster retaliating against humans) | |
up [ MonsterWaiting MyTurn no Acted | HumanWaiting ] -> [ action MonsterWaiting MyTurn Acted | HumanWaiting PassengerHurt ] again | |
right [ MonsterWaiting MyTurn no Acted | HumanWaiting ] -> [ action MonsterWaiting MyTurn Acted | HumanWaiting PassengerHurt ] again | |
down [ MonsterWaiting MyTurn no Acted | HumanWaiting ] -> [ action MonsterWaiting MyTurn Acted | HumanWaiting PassengerHurt ] again | |
left [ MonsterWaiting MyTurn no Acted | HumanWaiting ] -> [ action MonsterWaiting MyTurn Acted | HumanWaiting PassengerHurt ] again | |
(count damage) | |
[ PassengerHurt 8 ] -> [ PassengerHurt 9 ] | |
[ PassengerHurt 7 ] -> [ PassengerHurt 8 ] | |
[ PassengerHurt 6 ] -> [ PassengerHurt 7 ] | |
[ PassengerHurt 5 ] -> [ PassengerHurt 6 ] | |
[ PassengerHurt 4 ] -> [ PassengerHurt 5 ] | |
[ PassengerHurt 3 ] -> [ PassengerHurt 4 ] | |
[ PassengerHurt 2 ] -> [ PassengerHurt 3 ] | |
[ PassengerHurt 1 ] -> [ PassengerHurt 2 ] | |
[ PassengerHurt no Number ] -> [ PassengerHurt 1 ] | |
(kill passengers when they lose too much hp) | |
[ WarriorWaiting 1 ] -> [ VillagerWaiting ] again | |
[ VillagerWaiting 1 ] -> [ action Background ] again | |
[ GoblinWaiting 1 ] -> [ action Background ] again | |
(queued move into space) | |
up [ MoveU PassengerWaiting | no PassengerHurtDelay ] -> [ | PassengerWaiting NotMyTurn ] again | |
down [ MoveD PassengerWaiting | no PassengerHurtDelay ] -> [ | PassengerWaiting NotMyTurn ] again | |
left [ MoveL PassengerWaiting | no PassengerHurtDelay ] -> [ | PassengerWaiting NotMyTurn ] again | |
right [ MoveR PassengerWaiting | no PassengerHurtDelay ] -> [ | PassengerWaiting NotMyTurn ] again | |
(move victor into space) | |
up [ action PassengerWaiting | action Background ] -> [ MoveU PassengerWaiting | Background ] again | |
down [ action PassengerWaiting | action Background ] -> [ MoveD PassengerWaiting | Background ] again | |
left [ action PassengerWaiting | action Background ] -> [ MoveL PassengerWaiting | Background ] again | |
right [ action PassengerWaiting | action Background ] -> [ MoveR PassengerWaiting | Background ] again | |
(clean up old combat) | |
[ MoveNextTurn ][ Number ] -> [ MoveNextTurn ][] | |
[ MoveNextTurn ][ MyTurn ] -> [ MoveNextTurn ][] | |
[ MoveNextTurn ][ NotMyTurn ] -> [ MoveNextTurn ][] | |
[ MoveNextTurn ][ Acted ] -> [ MoveNextTurn ][] | |
(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 ] | |
[ MyTurn ] [ moving Train ] -> [ MyTurn ] [ Train ] | |
[ NotMyTurn ] [ moving Train ] -> [ NotMyTurn ] [ Train ] | |
[ MoveNextTurn ] [ moving Train ] -> [ MoveNextTurn ] [ Train ] | |
[ Delay ] [ WorldExitPoint ] -> [ Delay ] [ action WorldExitPoint ] | |
[ Delayed ] [ WorldExitPoint ] -> [ Delayed ] [ action WorldExitPoint ] | |
[ JustMoved ] [ moving Train ] -> [ ] [ moving Train ] | |
[ > Train | Solid ] -> cancel | |
[ > Train | Passenger ] -> cancel | |
[ > Train | TrainOrCart ] -> cancel | |
[ > Train | DoorVisible ] -> cancel | |
[ moving Train ] [ DoorHidden ] -> [ moving Train ] [ DoorVisible ] | |
(clear damage after combat finishes) | |
[ moving Train ] [ Number ] -> [ moving Train ] [] | |
(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 ] -> [ 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 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 [ Passenger Delay no Cart | Cart no Passenger | Passenger Delay no Cart ] -> [ Passenger Delayed | Cart | Passenger Delayed ] again | |
late [ VillagerWaiting Delay no Cart | Cart no PassengerOnCart ] -> [ Delay | Cart VillagerOnCart JustMoved ] again sfx5 | |
late [ WarriorWaiting Delay no Cart | Cart no PassengerOnCart ] -> [ Delay | Cart WarriorOnCart JustMoved ] again sfx5 | |
late [ GoblinWaiting Delay no Cart | Cart no PassengerOnCart ] -> [ Delay | Cart GoblinOnCart JustMoved ] again sfx5 | |
(mark passengers to get on next turn) | |
late [ PassengerWaiting no Cart no Delay no Delayed no JustMoved | Cart no PassengerOnCart ] -> [ PassengerWaiting Delay | Cart ] again | |
(mark spaces adjacent to passengers) | |
late [ HumanWaiting | no TrainOrCart no PassengerWaiting no Solid ] -> [ HumanWaiting | HumanNearby ] | |
late [ MonsterWaiting | no TrainOrCart no PassengerWaiting no Solid ] -> [ MonsterWaiting | MonsterNearby ] | |
(humans get off) | |
late [ VillagerOnCart Delay | MonsterNearby ] -> [ Delay | VillagerWaiting JustMoved NotMyTurn ] again sfx4 | |
late [ WarriorOnCart Delay | MonsterNearby ] -> [ Delay | WarriorWaiting JustMoved NotMyTurn ] again sfx4 | |
(monsters get off) | |
late [ GoblinOnCart Delay | HumanNearby ] -> [ Delay | GoblinWaiting JustMoved NotMyTurn ] again sfx4 | |
(mark passengers to get off next turn) | |
late [ HumanOnCart no Delay no JustMoved | MonsterNearby ] -> [ HumanOnCart Delay | MonsterNearby ] again | |
late [ MonsterOnCart no Delay no JustMoved | HumanNearby ] -> [ MonsterOnCart Delay | HumanNearby ] again | |
(passenger movement cleanup) | |
late [ Delayed no Delay ] -> [] again | |
late [ Delay Delayed ] -> [ Delayed ] again | |
late [ HumanNearby ] -> [] | |
late [ MonsterNearby ] -> [] | |
============== | |
WINCONDITIONS | |
============== | |
(No train | |
No cart) | |
======= | |
LEVELS | |
======= | |
##...g...## | |
##.......## | |
~r→......-- | |
##.......## | |
##...%...## | |
message Thanks for playing! | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment