-
-
Save Draknek/cb50ec04868ddcd7f689 to your computer and use it in GitHub Desktop.
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 Demakebot and Co | |
author Alan Hazelden | |
homepage www.draknek.org | |
(verbose_logging) | |
again_interval 0.05 | |
======== | |
OBJECTS | |
======== | |
Background | |
#d6d78b | |
Wall | |
#293021 #272e1e #2a2f21 #2a2d25 #2a2d26 | |
01224 | |
01014 | |
02434 | |
20341 | |
23033 | |
ItemSlot | |
#293021 #272e1e #2a2f21 #2a2d25 #2a2d26 | |
01224 | |
01014 | |
02434 | |
20341 | |
23033 | |
PlayerNormal | |
White DarkBlue Blue | |
.000. | |
00000 | |
00100 | |
00000 | |
.000. | |
PlayerSucking | |
White DarkBlue Blue | |
.000. | |
00000 | |
01110 | |
00000 | |
.000. | |
Wood | |
Brown DarkBrown | |
00000 | |
01110 | |
01110 | |
01110 | |
00000 | |
Mesh | |
Grey LightGrey | |
10001 | |
0...0 | |
0...0 | |
0...0 | |
10001 | |
SuckRay | |
Blue | |
..... | |
..... | |
..0.. | |
..... | |
..... | |
SuckEnding | |
Blue | |
..... | |
.000. | |
.0.0. | |
.000. | |
..... | |
L | |
transparent | |
R | |
transparent | |
D | |
transparent | |
StartedLeft | |
transparent | |
StartedRight | |
transparent | |
StartedDoor | |
transparent | |
OnFloor | |
transparent | |
PipeLeft | |
Grey DarkGrey | |
00... | |
10000 | |
11111 | |
10000 | |
00... | |
PipeLeftRight | |
Grey DarkGrey | |
..... | |
00000 | |
11111 | |
00000 | |
..... | |
PipeLeftRightFull | |
Grey DarkGrey | |
00000 | |
01110 | |
11111 | |
01110 | |
00000 | |
PipeRight | |
Grey DarkGrey | |
...00 | |
00001 | |
11111 | |
00001 | |
...00 | |
InputBlock | |
Grey DarkGrey Green | |
11011 | |
10001 | |
00200 | |
10001 | |
11011 | |
SwitchLeft | |
DarkGrey DarkBrown | |
.000. | |
..1.. | |
.1... | |
..... | |
..... | |
SwitchDown | |
DarkGrey DarkBrown | |
.000. | |
..1.. | |
..1.. | |
..... | |
..... | |
SwitchRight | |
DarkGrey DarkBrown | |
.000. | |
..1.. | |
...1. | |
..... | |
..... | |
DoorV | |
DarkBrown DarkBlue | |
11111 | |
10001 | |
11111 | |
11011 | |
11111 | |
PlayerTarget | |
White | |
..... | |
.000. | |
.000. | |
.000. | |
..... | |
WoodTarget | |
Brown | |
..... | |
.000. | |
.000. | |
.000. | |
..... | |
HasPower | |
transparent | |
InvertPower | |
transparent | |
======= | |
LEGEND | |
======= | |
. = Background | |
# = Wall | |
P = PlayerNormal | |
w = Wood | |
@ = Mesh | |
? = ItemSlot | |
[ = PipeLeft | |
- = PipeLeftRight and Wall | |
] = PipeRight | |
! = InputBlock | |
/ = SwitchLeft and StartedLeft | |
\ = SwitchRight and StartedRight | |
$ = DoorV and StartedDoor | |
q = playertarget | |
m = woodtarget | |
StartedState = StartedLeft or StartedRight or StartedDoor | |
Target = PlayerTarget or WoodTarget | |
Door = DoorV | |
Switch = SwitchLeft or SwitchDown or SwitchRight | |
Player = PlayerNormal or PlayerSucking | |
Item = Wood | |
Pipe = PipeLeft or PipeRight or PipeLeftRight or PipeLeftRightFull | |
Solid = Item or Wood or Player or Mesh or Wall or Pipe or InputBlock or Door | |
Direction = L or R or D | |
Input = Switch or Target | |
======= | |
SOUNDS | |
======= | |
Wood MOVE 36772507 | |
================ | |
COLLISIONLAYERS | |
================ | |
Background | |
StartedState, HasPower | |
ItemSlot, SuckRay, SuckEnding, OnFloor, InvertPower | |
Switch, Target | |
Player, Item | |
Wall, InputBlock | |
Mesh, Pipe, Door | |
ItemSlot, Direction | |
====== | |
RULES | |
====== | |
(Power init) | |
[ Input ] -> [ action Input ] | |
[ StartedDoor Door | InputBlock ] -> [ StartedDoor Door | InputBlock InvertPower ] | |
(Power toggle) | |
[ action SwitchRight StartedLeft | InputBlock HasPower ] -> [ SwitchRight StartedRight | action InputBlock no HasPower ] | |
[ action SwitchLeft StartedRight | InputBlock HasPower ] -> [ SwitchLeft StartedLeft | action InputBlock no HasPower ] | |
[ action SwitchRight StartedLeft | InputBlock no HasPower ] -> [ SwitchRight StartedRight | action InputBlock HasPower ] | |
[ action SwitchLeft StartedRight | InputBlock no HasPower ] -> [ SwitchLeft StartedLeft | action InputBlock HasPower ] | |
[ action PlayerTarget Player | InputBlock ] -> [ PlayerTarget Player | action InputBlock HasPower ] | |
[ action PlayerTarget no Player | InputBlock ] -> [ PlayerTarget Player | action InputBlock no HasPower ] | |
(Power transfer) | |
[ action InputBlock HasPower ] [ stationary InputBlock no HasPower no InvertPower ] -> [ action InputBlock HasPower ] [ InputBlock HasPower ] | |
[ action InputBlock no HasPower ] [ stationary InputBlock HasPower no InvertPower ] -> [ action InputBlock no HasPower ] [ InputBlock no HasPower ] | |
[ action InputBlock HasPower ] [ stationary InputBlock no HasPower InvertPower ] -> [ action InputBlock HasPower ] [ InputBlock InvertPower no HasPower ] | |
[ action InputBlock no HasPower ] [ stationary InputBlock HasPower InvertPower ] -> [ action InputBlock no HasPower ] [ InputBlock InvertPower HasPower ] | |
(Power doors) | |
(toggle state) | |
[ action PlayerNormal ] -> [ PlayerSucking ] | |
[ action PlayerSucking ] -> [ PlayerNormal ] | |
(momentum) | |
[ L ] -> [ left L ] | |
[ R ] -> [ right R ] | |
[ D ] -> [ down D ] | |
[ > Direction Item no SuckRay | no Solid ] -> [ | Direction Item ] | |
[ > Direction Item no SuckRay | Solid ] -> [ Item | Solid ] | |
(throwing/sucking begin) | |
[ vertical PlayerSucking ] -> [ vertical PlayerNormal ] | |
(throwing) | |
left [ ItemSlot Item ] [ > PlayerSucking | no Solid ] -> [ ItemSlot ] [ PlayerNormal | left L Item ] | |
right [ ItemSlot Item ] [ > PlayerSucking | no Solid ] -> [ ItemSlot ] [ PlayerNormal | right R Item ] | |
(start sucking) | |
[ ItemSlot no Item ] [ left PlayerSucking ] -> [ ItemSlot ] [ PlayerNormal left L SuckRay ] | |
[ ItemSlot no Item ] [ right PlayerSucking ] -> [ ItemSlot ] [ PlayerNormal right R SuckRay ] | |
(continue sucking) | |
[ SuckEnding ] [ SuckRay ] -> [ SuckEnding ] [ no Direction ] | |
[ SuckEnding ] -> [ no Direction ] | |
left [ > Direction SuckRay no Item | Item ] -> [ SuckRay | R SuckRay Item ] | |
right [ > Direction SuckRay no Item | Item ] -> [ SuckRay | L SuckRay Item ] | |
[ SuckRay Item ] [ ItemSlot ] -> [ SuckEnding ] [ ItemSlot Item ] | |
[ > Direction SuckRay no Item | no Solid no SuckRay ] -> [ SuckRay | Direction SuckRay ] | |
[ > Direction SuckRay no Item | Mesh no SuckRay ] -> [ SuckRay | Mesh Direction SuckRay ] | |
[ > Direction SuckRay Item | Player ] [ ItemSlot ] -> [ | PlayerNormal no SuckRay ] [ ItemSlot Item ] | |
[ > Direction SuckRay no Item | Player ] -> [ | PlayerNormal no SuckRay ] | |
[ > Direction SuckRay Item | SuckRay ] -> [ | Direction SuckRay Item ] | |
[ > Direction SuckRay | SuckRay ] -> [ | Direction SuckRay ] | |
[ > Direction SuckRay Player | Solid no Item ] -> [ PlayerNormal | Solid ] | |
[ > Direction SuckRay no Item | Solid no Item ] -> [ action SuckRay | Solid ] | |
[ action SuckRay | stationary SuckRay ] -> [ action SuckRay | action SuckRay ] | |
[ action SuckRay ] -> [] | |
(throwing/sucking end) | |
(gravity) | |
startloop | |
down [ Item no SuckRay no Direction | Wall ] -> [ OnFloor Item | Wall ] | |
down [ Item no SuckRay no Direction | OnFloor ] -> [ OnFloor Item | OnFloor ] | |
[ Wood OnFloor | Wood no OnFloor no SuckRay ] -> [ Wood OnFloor | Wood OnFloor ] | |
[ Item Direction OnFloor ] -> [ Item OnFloor ] | |
[ Item no SuckRay no OnFloor no ItemSlot no Direction ] -> [ D Item ] | |
endloop | |
[ OnFloor ] -> [] | |
(pipes) | |
[ > Direction Player Pipe | no Pipe ] -> [ Pipe | Player ] | |
[ > Direction Player Pipe | Pipe ] -> [ Pipe | Direction Player Pipe ] | |
right [ > Player | PipeLeft ] -> [ | R Player PipeLeft ] | |
left [ > Player | PipeRight ] -> [ | L Player PipeRight ] | |
late [ Player Pipe ] -> [ Player PipeLeftRightFull ] | |
late right [ no Pipe | PipeLeftRightFull no Player ] -> [ | PipeLeft ] | |
late left [ no Pipe | PipeLeftRightFull no Player ] -> [ | PipeRight ] | |
late right [ PipeLeftRightFull no Player ] -> [ PipeLeftRight ] | |
(cleanup) | |
[ moving Direction ] -> [ Direction ] | |
[ Direction ] -> again | |
[ > Player | Solid ] -> cancel | |
(Switches) | |
right [ right Player | SwitchLeft ] -> [ > Player | SwitchDown ] | |
left [ left Player | SwitchRight ] -> [ > Player | SwitchDown ] | |
[ left Player SwitchDown ] -> [ left Player SwitchLeft ] | |
[ right Player SwitchDown ] -> [ right Player SwitchRight ] | |
[ R Item no SuckRay SwitchLeft ] -> [ R Item SwitchRight ] | |
[ L Item no SuckRay SwitchRight ] -> [ L Item SwitchLeft ] | |
============== | |
WINCONDITIONS | |
============== | |
======= | |
LEVELS | |
======= | |
?############ | |
######ww##### | |
######w###### | |
#.....w.....# | |
#.p.##w.....# | |
#...##......# | |
######.###### | |
############# |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment