Created
January 28, 2020 00:16
-
-
Save jcmiller11/2b218652bca6948823d2da4cbeb504ac to your computer and use it in GitHub Desktop.
Isometric Test (PuzzleScript Script)
This file contains hidden or 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 hidden or 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 Isometric Test | |
| author jcGyo | |
| homepage www.puzzlescript.net | |
| run_rules_on_level_start | |
| verbose_logging | |
| background_color lightblue | |
| ======== | |
| OBJECTS | |
| ======== | |
| Background | |
| lightblue | |
| Player | |
| transparent | |
| Player1StartPos | |
| transparent | |
| Player1 | |
| transparent | |
| Player2StartPos | |
| transparent | |
| Player2 | |
| transparent | |
| Player1DUL | |
| red | |
| ..... | |
| ..... | |
| ..000 | |
| .0000 | |
| .0000 | |
| Player1DUR | |
| red darkred black | |
| ..... | |
| ..... | |
| 1.... | |
| 11... | |
| 11... | |
| Player1DDL | |
| red darkred black | |
| .0000 | |
| .0222 | |
| ..022 | |
| ...00 | |
| ....0 | |
| Player1DDR | |
| red darkred black | |
| 0111. | |
| 00111 | |
| 20011 | |
| 00001 | |
| 00000 | |
| Player1UUL | |
| red | |
| ..... | |
| ..000 | |
| .0000 | |
| .0000 | |
| .0000 | |
| Player1UUR | |
| red darkred black | |
| ..... | |
| 1.... | |
| 11... | |
| 111.. | |
| 0111. | |
| Player1UDL | |
| red darkred black | |
| .0000 | |
| ...00 | |
| ...00 | |
| ....0 | |
| ..... | |
| Player1UDR | |
| red darkred black | |
| 00111 | |
| 00011 | |
| 00001 | |
| 00000 | |
| 0000. | |
| Player1RUL | |
| red | |
| ..... | |
| ..000 | |
| .0000 | |
| .0000 | |
| .0000 | |
| Player1RUR | |
| red darkred black | |
| ..... | |
| 1.... | |
| 21... | |
| 221.. | |
| 2211. | |
| Player1RDL | |
| red darkred black | |
| ..000 | |
| ....0 | |
| ....0 | |
| ..... | |
| ..... | |
| Player1RDR | |
| red darkred black | |
| 1211. | |
| 0111. | |
| 0011. | |
| 0001. | |
| .000. | |
| Player1LUL | |
| red darkred | |
| ..... | |
| .0001 | |
| 00001 | |
| 00001 | |
| 00001 | |
| Player1LUR | |
| red darkred black | |
| ..... | |
| ..... | |
| 1.... | |
| 1.... | |
| 111.. | |
| Player1LDL | |
| red darkred black | |
| .0001 | |
| ..000 | |
| ...00 | |
| ....0 | |
| ..... | |
| Player1LDR | |
| red darkred black | |
| 1111. | |
| 1111. | |
| 0111. | |
| 0011. | |
| 000.. | |
| Player2DUL | |
| red | |
| ..... | |
| ..... | |
| ..000 | |
| .0000 | |
| .0000 | |
| Player2DUR | |
| red darkred black | |
| ..... | |
| ..... | |
| 1.... | |
| 11... | |
| 11... | |
| Player2DDL | |
| red darkred black | |
| .0000 | |
| .0222 | |
| ..022 | |
| ...00 | |
| ....0 | |
| Player2DDR | |
| red darkred black | |
| 0111. | |
| 00111 | |
| 20011 | |
| 00001 | |
| 00000 | |
| Player2UUL | |
| red | |
| ..... | |
| ..000 | |
| .0000 | |
| .0000 | |
| .0000 | |
| Player2UUR | |
| red darkred black | |
| ..... | |
| 1.... | |
| 11... | |
| 111.. | |
| 0111. | |
| Player2UDL | |
| red darkred black | |
| .0000 | |
| ...00 | |
| ...00 | |
| ....0 | |
| ..... | |
| Player2UDR | |
| red darkred black | |
| 00111 | |
| 00011 | |
| 00001 | |
| 00000 | |
| 0000. | |
| Player2RUL | |
| red | |
| ..... | |
| ..000 | |
| .0000 | |
| .0000 | |
| .0000 | |
| Player2RUR | |
| red darkred black | |
| ..... | |
| 1.... | |
| 21... | |
| 221.. | |
| 2211. | |
| Player2RDL | |
| red darkred black | |
| ..000 | |
| ....0 | |
| ....0 | |
| ..... | |
| ..... | |
| Player2RDR | |
| red darkred black | |
| 1211. | |
| 0111. | |
| 0011. | |
| 0001. | |
| .000. | |
| Player2LUL | |
| red darkred | |
| ..... | |
| .0001 | |
| 00001 | |
| 00001 | |
| 00001 | |
| Player2LUR | |
| red darkred black | |
| ..... | |
| ..... | |
| 1.... | |
| 1.... | |
| 111.. | |
| Player2LDL | |
| red darkred black | |
| .0001 | |
| ..000 | |
| ...00 | |
| ....0 | |
| ..... | |
| Player2LDR | |
| red darkred black | |
| 1111. | |
| 1111. | |
| 0111. | |
| 0011. | |
| 000.. | |
| Ground1UL | |
| LIGHTGREEN GREEN | |
| 11111 | |
| 01111 | |
| 11101 | |
| 11111 | |
| 10111 | |
| Ground1UR | |
| darkbrown | |
| ..... | |
| 0.... | |
| 00... | |
| 000.. | |
| 0000. | |
| Ground1DL | |
| brown | |
| 00000 | |
| .0000 | |
| ..000 | |
| ...00 | |
| ....0 | |
| Ground1DR | |
| brown darkbrown | |
| 11111 | |
| 01111 | |
| 00111 | |
| 00011 | |
| 00001 | |
| Ground2UL | |
| GREEN LIGHTGREEN | |
| 11111 | |
| 01111 | |
| 11101 | |
| 11111 | |
| 10111 | |
| Ground2UR | |
| darkbrown | |
| ..... | |
| 0.... | |
| 00... | |
| 000.. | |
| 0000. | |
| Ground2DL | |
| brown | |
| 00000 | |
| .0000 | |
| ..000 | |
| ...00 | |
| ....0 | |
| Ground2DR | |
| brown darkbrown | |
| 11111 | |
| 01111 | |
| 00111 | |
| 00011 | |
| 00001 | |
| Crate1StartPos | |
| transparent | |
| Crate1 | |
| transparent | |
| Crate1UL | |
| lightgray | |
| Crate1UR | |
| grey darkgray | |
| ..... | |
| 1.... | |
| 11... | |
| 111.. | |
| 1111. | |
| Crate1DL | |
| grey darkgray | |
| 00000 | |
| .0000 | |
| ..000 | |
| ...00 | |
| ....0 | |
| Crate1DR | |
| grey darkgray | |
| 11111 | |
| 01111 | |
| 00111 | |
| 00011 | |
| 00001 | |
| Crate2StartPos | |
| transparent | |
| Crate2 | |
| transparent | |
| Crate2UL | |
| lightgray | |
| Crate2UR | |
| grey darkgray | |
| ..... | |
| 1.... | |
| 11... | |
| 111.. | |
| 1111. | |
| Crate2DL | |
| grey darkgray | |
| 00000 | |
| .0000 | |
| ..000 | |
| ...00 | |
| ....0 | |
| Crate2DR | |
| grey darkgray | |
| 11111 | |
| 01111 | |
| 00111 | |
| 00011 | |
| 00001 | |
| Base1 | |
| transparent | |
| Base2 | |
| transparent | |
| LadderDL | |
| Brown darkbrown | |
| 11111 | |
| .1... | |
| ..111 | |
| ...1. | |
| ....1 | |
| LadderDR | |
| Brown darkbrown | |
| 1.... | |
| .1... | |
| 111.. | |
| ...1. | |
| 11111 | |
| Bridge1 | |
| Black Darkbrown | |
| 00000 | |
| 10101 | |
| 10101 | |
| 10101 | |
| 00000 | |
| Bridge2 | |
| Black Darkbrown | |
| 00000 | |
| 10101 | |
| 10101 | |
| 10101 | |
| 00000 | |
| Bridge1StartPos | |
| transparent | |
| Bridge2StartPos | |
| transparent | |
| Ladder | |
| transparent | |
| Temp | |
| transparent | |
| Temp2 | |
| transparent | |
| UpMarker | |
| transparent | |
| RightMarker | |
| transparent | |
| DownMarker | |
| transparent | |
| LeftMarker | |
| transparent | |
| (REMOVEME: For temp win condition) | |
| FakeGoal | |
| yellow | |
| 0.0.0 | |
| .000. | |
| 00.00 | |
| .000. | |
| 0.0.0 | |
| FakeGoalStartPos | |
| transparent | |
| ======= | |
| LEGEND | |
| ======= | |
| # = Background | |
| . = Base1 | |
| ; = Base2 | |
| ↓ = DownMarker | |
| 1 = Player1StartPos | |
| 2 = Player2StartPos | |
| C = Crate1StartPos | |
| D = Crate2StartPos | |
| L = Ladder | |
| B = Bridge1StartPos | |
| G = Bridge2StartPos | |
| T = Bridge2StartPos and Base1 | |
| Z = FakeGoalStartPos | |
| Markers = UpMarker or RightMarker or DownMarker or LeftMarker | |
| PlayerUp = Player1UUL or Player1UUR or Player1UDL or Player1UDR or Player2UUL or Player2UUR or Player2UDL or Player2UDR | |
| PlayerDown = Player1DUL or Player1DUR or Player1DDL or Player1DDR or Player2DUL or Player2DUR or Player2DDL or Player2DDR | |
| PlayerRight = Player1RUL or Player1RUR or Player1RDL or Player1RDR or Player2RUL or Player2RUR or Player2RDL or Player2RDR | |
| PlayerLeft = Player1LUL or Player1LUR or Player1LDL or Player1LDR or Player2LUL or Player2LUR or Player2LDL or Player2LDR | |
| Quarter1UL = Player1UUL or Player1DUL or Player1RUL or Player1LUL or Crate1UL | |
| Quarter1UR = Player1UUR or Player1DUR or Player1RUR or Player1LUR or Crate1UR | |
| Quarter1DL = Player1UDL or Player1DDL or Player1RDL or Player1LDL or Crate1DL | |
| Quarter1DR = Player1UDR or Player1DDR or Player1RDR or Player1LDR or Crate1DR | |
| Quarter2UL = Player2UUL or Player2DUL or Player2RUL or Player2LUL or Crate2UL | |
| Quarter2UR = Player2UUR or Player2DUR or Player2RUR or Player2LUR or Crate2UR | |
| Quarter2DL = Player2UDL or Player2DDL or Player2RDL or Player2LDL or Crate2DL | |
| Quarter2DR = Player2UDR or Player2DDR or Player2RDR or Player2LDR or Crate2DR | |
| Quarters = Ground1UL or Ground1UR or Ground1DL or Ground1DR or Ground2UL or Ground2UR or Ground2DL or Ground2DR or PlayerUp or PlayerDown or PlayerLeft or PlayerRight | |
| Walkable1 = Ground1UL or Bridge1 | |
| Walkable2 = Ground2UL or Crate1UL or Bridge2 | |
| Movable1 = Crate1 or Player1 | |
| Movable2 = Crate2 or Player2 | |
| StartingPositions = Player1StartPos or Player2StartPos or Crate1StartPos or Crate2StartPos or Ladder or Bridge1StartPos or Bridge2StartPos or FakeGoalStartPos | |
| ======= | |
| SOUNDS | |
| ======= | |
| ================ | |
| COLLISIONLAYERS | |
| ================ | |
| Background | |
| StartingPositions | |
| Temp, Temp2 | |
| Player | |
| Base1,Base2 | |
| Ground1DR | |
| Ground1DL | |
| Ground1UR | |
| Ground1UL, Bridge1 | |
| FakeGoal | |
| Player1, Crate1 | |
| Ground2DR | |
| Quarter1DR | |
| Ground2DL | |
| LadderDR | |
| LadderDL | |
| Quarter1DL | |
| Ground2UR | |
| Quarter1UR | |
| Ground2UL | |
| Quarter1UL | |
| Bridge2 | |
| Player2, Crate2 | |
| Quarter2DR | |
| Quarter2DL | |
| Quarter2UR | |
| Quarter2UL | |
| Markers | |
| ====== | |
| RULES | |
| ====== | |
| (Player movement) | |
| (maybe replace with playerleft playerright etc. player objects instead of a separate marker?) | |
| [UP Player] [Markers] -> [UP Player] [UpMarker] | |
| [DOWN Player] [Markers] -> [DOWN Player] [DownMarker] | |
| [RIGHT Player] [Markers] -> [RIGHT Player] [RightMarker] | |
| [LEFT Player] [Markers] -> [LEFT Player] [LeftMarker] | |
| [> Player] [Player1] -> [> Player] [> Player1] | |
| [> Player] [Player2] -> [> Player] [> Player2] | |
| (Ladder movement) | |
| UP [UP Player1|LadderDR] -> [|temp LadderDR] | |
| RIGHT [|temp] -> [UP Player2|] | |
| DOWN [DOWN Player2|LadderDL no Walkable2] -> [|temp LadderDL] | |
| LEFT [|temp] -> [DOWN Player1|] | |
| (FIXME: hacky solution to making pushing against two boxes on top of a ladder work) | |
| LATE [Player2 LadderDL] -> cancel | |
| (Mark crates that have objects on top of them) | |
| RIGHT [Movable2|no Bridge2] -> [Movable2|temp] | |
| DOWN [temp|] -> [|temp2] | |
| (Push crates) | |
| startLoop | |
| [> Player1 | Crate1 no temp2] -> [> Player1 | > Crate1] | |
| (Push crates on 2nd layer) | |
| [> Player2 | Crate2] -> [> Player2 | > Crate2] | |
| (BREAK GEOMETRY) | |
| [> Player1 Bridge1| Bridge2] -> [Bridge1 > Player2|Bridge2] | |
| [> Player2 Bridge2| Bridge1] -> [Bridge2 > Player1|Bridge1] | |
| [> Crate1 Bridge1| Bridge2] -> [Bridge1 > Crate2|Bridge2] | |
| [> Crate2 Bridge2| Bridge1] -> [Bridge2 > Crate1|Bridge1] | |
| endLoop | |
| (FIXME: hacky solution to making pushing against two boxes on a bridge work) | |
| LATE [Player2 Crate1 Bridge2] -> cancel | |
| LATE [Movable2 Bridge1] -> cancel | |
| [temp2] -> [] | |
| (Stop movables from moving into illegal spots) | |
| [> Movable1 | No Walkable1] -> [Movable1 |] | |
| [> Movable2 | No Walkable2] -> [Movable2 |] | |
| (Rendering) | |
| [Quarters] -> [] | |
| (Player1) | |
| Late [Player1] [DownMarker] -> [Player1 Player1DDR] [DownMarker] | |
| Late DOWN [|Player1DDR] -> [Player1DUR|Player1DDR] | |
| Late RIGHT [|Player1DDR] -> [Player1DDL|Player1DDR] | |
| Late DOWN [|Player1DDL] -> [Player1DUL|Player1DDL] | |
| Late [Player1] [UpMarker] -> [Player1 Player1UDR] [UpMarker] | |
| Late DOWN [|Player1UDR] -> [Player1UUR|Player1UDR] | |
| Late RIGHT [|Player1UDR] -> [Player1UDL|Player1UDR] | |
| Late DOWN [|Player1UDL] -> [Player1UUL|Player1UDL] | |
| Late [Player1] [RightMarker] -> [Player1 Player1RDR] [RightMarker] | |
| Late DOWN [|Player1RDR] -> [Player1RUR|Player1RDR] | |
| Late RIGHT [|Player1RDR] -> [Player1RDL|Player1RDR] | |
| Late DOWN [|Player1RDL] -> [Player1RUL|Player1RDL] | |
| Late [Player1] [LeftMarker] -> [Player1 Player1LDR] [LeftMarker] | |
| Late DOWN [|Player1LDR] -> [Player1LUR|Player1LDR] | |
| Late RIGHT [|Player1LDR] -> [Player1LDL|Player1LDR] | |
| Late DOWN [|Player1LDL] -> [Player1LUL|Player1LDL] | |
| (Player2) | |
| Late [Player2] [DownMarker] -> [Player2 Player2DDR] [DownMarker] | |
| Late DOWN [|Player2DDR] -> [Player2DUR|Player2DDR] | |
| Late RIGHT [|Player2DDR] -> [Player2DDL|Player2DDR] | |
| Late DOWN [|Player2DDL] -> [Player2DUL|Player2DDL] | |
| Late [Player2] [UpMarker] -> [Player2 Player2UDR] [UpMarker] | |
| Late DOWN [|Player2UDR] -> [Player2UUR|Player2UDR] | |
| Late RIGHT [|Player2UDR] -> [Player2UDL|Player2UDR] | |
| Late DOWN [|Player2UDL] -> [Player2UUL|Player2UDL] | |
| Late [Player2] [RightMarker] -> [Player2 Player2RDR] [RightMarker] | |
| Late DOWN [|Player2RDR] -> [Player2RUR|Player2RDR] | |
| Late RIGHT [|Player2RDR] -> [Player2RDL|Player2RDR] | |
| Late DOWN [|Player2RDL] -> [Player2RUL|Player2RDL] | |
| Late [Player2] [LeftMarker] -> [Player2 Player2LDR] [LeftMarker] | |
| Late DOWN [|Player2LDR] -> [Player2LUR|Player2LDR] | |
| Late RIGHT [|Player2LDR] -> [Player2LDL|Player2LDR] | |
| Late DOWN [|Player2LDL] -> [Player2LUL|Player2LDL] | |
| (Ground) | |
| (Level 1) | |
| LATE [Base1 no Ground1DR] -> [Base1 Ground1DR] | |
| + LATE DOWN [| Ground1DR] -> [Ground1UR|Ground1DR] | |
| + LATE RIGHT [| Ground1DR] -> [Ground1DL|Ground1DR] | |
| + LATE DOWN [| Ground1DL] -> [Ground1UL|Ground1DL] | |
| (Level 2) | |
| LATE [Base2 no Ground1DR] -> [Base2 Ground1DR temp] | |
| + LATE DOWN [| Ground1DR temp] -> [Ground1UR|Ground1DR temp] | |
| + LATE RIGHT [| Ground1DR temp] -> [Ground1DL temp|Ground1DR] | |
| + LATE DOWN [| Ground1DL temp] -> [Ground2DR|Ground1DL] | |
| + LATE RIGHT [| Ground2DR] -> [Ground2DL|Ground2DR] | |
| + LATE DOWN [| Ground2DL] -> [Ground2UL|Ground2DL] | |
| + LATE DOWN [| Ground2DR] -> [Ground2UR|Ground2DR] | |
| (Crate1) | |
| Late [Crate1] -> [Crate1 Crate1DR] | |
| Late DOWN [| Crate1DR] -> [Crate1UR|Crate1DR] | |
| Late RIGHT [| Crate1DR] -> [Crate1DL|Crate1DR] | |
| Late DOWN [| Crate1DL] -> [Crate1UL|Crate1DL] | |
| (Crate2) | |
| Late [Crate2] -> [Crate2 Crate2DR] | |
| Late DOWN [| Crate2DR] -> [Crate2UR|Crate2DR] | |
| Late RIGHT [| Crate2DR] -> [Crate2DL|Crate2DR] | |
| Late DOWN [| Crate2DL] -> [Crate2UL|Crate2DL] | |
| (Setup) | |
| (REMOVEME: For temp win condition) | |
| RIGHT [ |FakeGoalStartPos] -> [temp|Base1] | |
| + DOWN [ |temp] -> [FakeGoal|] | |
| (Build ladders and bridges) | |
| [Ladder] -> [Ladder Base2] | |
| + RIGHT [|Ladder] -> [temp|] | |
| + DOWN [|temp] -> [temp2|] | |
| RIGHT [|temp2] -> [LadderDL|LadderDR] | |
| RIGHT [ |Bridge1StartPos] -> [temp|] | |
| + DOWN [ |temp] -> [Bridge1|] | |
| RIGHT [ |Bridge2StartPos] -> [temp|] | |
| + DOWN [ |temp] -> [temp2|] | |
| + RIGHT [ |temp2] -> [temp|] | |
| + DOWN [ |temp] -> [Bridge2|] | |
| (Place player) | |
| (Maybe can be simplified depending on how game starts?) | |
| [Player1StartPos] -> [Player1StartPos Base1 Player] | |
| + RIGHT [ |Player1StartPos] -> [temp|] | |
| + DOWN [ |temp] -> [Player1|] | |
| [Player2StartPos] -> [Player2StartPos Base2 Player] | |
| + RIGHT [ |Player2StartPos] -> [temp|] | |
| + DOWN [ |temp] -> [temp2|] | |
| + RIGHT [ |temp2] -> [temp|] | |
| + DOWN [ |temp] -> [Player2|] | |
| (Place crates) | |
| [Crate1StartPos] -> [Crate1StartPos Base1] | |
| + RIGHT [ |Crate1StartPos] -> [temp|] | |
| + DOWN [ |temp] -> [Crate1|] | |
| [Crate2StartPos] -> [Crate2StartPos Base2] | |
| + RIGHT [ |Crate2StartPos] -> [temp|] | |
| + DOWN [ |temp] -> [temp2|] | |
| + RIGHT [ |temp2] -> [temp|] | |
| + DOWN [ |temp] -> [Crate2|] | |
| ============== | |
| WINCONDITIONS | |
| ============== | |
| Some Player1 on FakeGoal | |
| ======= | |
| LEVELS | |
| ======= | |
| ↓################### | |
| #################### | |
| #################### | |
| ##...######........# | |
| ##.1.B##;;;.....;;;# | |
| ##..C##G;;;TTTTT;;;# | |
| ##...###;L;.....;L;# | |
| ##.................# | |
| ##..........C......# | |
| ##................Z# | |
| #################### | |
| ↓############## | |
| ############### | |
| ############### | |
| ###;;Z.######## | |
| ###;L..B####### | |
| ###....##G;;..# | |
| ##########;L..# | |
| ##########....# | |
| ##########....# | |
| #########B....# | |
| ###...;;;G....# | |
| ###...;L;###### | |
| ###......###### | |
| ###.1....###### | |
| ###......###### | |
| ############### | |
| ↓################### | |
| #################### | |
| ##############;;Z### | |
| ##..........##;;.### | |
| ##.;;;;.;;;;GG;L.### | |
| ##.;D;;.;;;;###..### | |
| ##.;;L;.;L;.######## | |
| ##..........B#.....# | |
| ##..CC...1..##T;;..# | |
| ##..........##.L;.## | |
| ##############....## | |
| #################### | |
| ↓##################### | |
| ###################### | |
| ###################### | |
| ##;;;;;;;;;;........Z# | |
| ##;;;;;;;;;;.........# | |
| ##;;;;;;;;;;.........# | |
| ##;;;D;;;;;;.........# | |
| ##;;;;;;;;;;.........# | |
| ##;;;;D;;;;;.C.......# | |
| ##;;;;;;;;;;...C.....# | |
| ##;;;;;;;;;;.........# | |
| ##;;L;;;;L;;..;;;;;;;# | |
| ##............;;;;;;;# | |
| ##............;;;;;;;# | |
| ##.......1....;;;;;;;# | |
| ##............;;;;;L;# | |
| ##...................# | |
| ##...................# | |
| ##...................# | |
| ###################### |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment