Skip to content

Instantly share code, notes, and snippets.

@Draknek
Forked from anonymous/readme.txt
Last active August 29, 2015 14:17
Show Gist options
  • Save Draknek/cb50ec04868ddcd7f689 to your computer and use it in GitHub Desktop.
Save Draknek/cb50ec04868ddcd7f689 to your computer and use it in GitHub Desktop.
Play this game by pasting the script in http://www.puzzlescript.net/editor.html
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