Skip to content

Instantly share code, notes, and snippets.

Created June 3, 2014 14:56
Show Gist options
  • Save anonymous/1727420d3cc78d3f3384 to your computer and use it in GitHub Desktop.
Save anonymous/1727420d3cc78d3f3384 to your computer and use it in GitHub Desktop.
title
Play this game by pasting the script in http://www.puzzlescript.net/editor.html
title Cyber-Lasso
author Alan Hazelden
homepage www.draknek.org
norepeat_action
again_interval 0.05
verbose_logging
========
OBJECTS
========
Background
LIGHTGREEN GREEN
11111
01111
11101
11111
10111
Crate
DarkBlue
.....
.000.
.0.0.
.000.
.....
Wall
BROWN DARKBROWN
00010
11111
01000
11111
00010
PlayerNormal
DarkBrown Orange White Blue
.000.
.000.
22222
.333.
.3.3.
PlayerAiming
DarkBrown Yellow White Blue
.000.
.0001
22222
.333.
.3.3.
LassoAboveHead
Orange Yellow
.....
.000.
0...0
.000.
..1..
.....
Lasso
Orange
.000.
0...0
0...0
0...0
.000.
RopeH
Yellow
.....
.....
00000
.....
.....
RopeV
Yellow
..0..
..0..
..0..
..0..
..0..
RopeUL
Yellow
..0..
..0..
000..
.....
.....
RopeUR
Yellow
..0..
..0..
..000
.....
.....
RopeDL
Yellow
.....
.....
000..
..0..
..0..
RopeDR
Yellow
.....
.....
..000
..0..
..0..
Done
transparent
Here
transparent
U
transparent
D
transparent
L
transparent
R
transparent
(U
red
..0..
.0.0.
.....
.....
.....
D
red
.....
.....
.....
.0.0.
..0..
L
red
.....
.0...
0....
.0...
.....
R
red
.....
...0.
....0
...0.
.....)
=======
LEGEND
=======
Player = PlayerNormal or PlayerAiming
Direction = U or D or L or R
Rope = RopeH or RopeV or RopeUL or RopeUR or RopeDL or RopeDR
RopePullsL = RopeH or RopeUR or RopeDR
RopePullsR = RopeH or RopeUL or RopeDL
RopePullsU = RopeV or RopeDL or RopeDR
RopePullsD = RopeV or RopeUL or RopeUR
Solid = Wall or Crate
Chain = Rope or Lasso or Player
. = Background
# = Wall
P = PlayerNormal
* = Crate
=======
SOUNDS
=======
Crate MOVE 36772507
================
COLLISIONLAYERS
================
Background
Player, Wall, Crate
LassoAboveHead
Lasso, Rope
Direction, Done, Here
======
RULES
======
[ LassoAboveHead ] -> []
(Pressing action)
[ action PlayerNormal ] [ Lasso Crate ] -> [ PlayerNormal ] [ Lasso action Crate ] again
[ action PlayerAiming ] -> [ PlayerNormal ]
[ action PlayerNormal ] -> [ PlayerAiming ]
(Throwing lasso)
left [ > PlayerAiming | no Wall ] -> [ PlayerNormal | L action Lasso ] again
right [ > PlayerAiming | no Wall ] -> [ PlayerNormal | R action Lasso ] again
up [ > PlayerAiming | no Wall ] -> [ PlayerNormal | U action Lasso ] again
down [ > PlayerAiming | no Wall ] -> [ PlayerNormal | D action Lasso ] again
left [ L stationary Lasso | no Wall ] -> [ RopeH | L action Lasso ] again
right [ R stationary Lasso | no Wall ] -> [ RopeH | R action Lasso ] again
up [ U stationary Lasso | no Wall ] -> [ RopeV | U action Lasso ] again
down [ D stationary Lasso | no Wall ] -> [ RopeV | D action Lasso ] again
[ Lasso stationary Crate ] -> [ action Lasso Crate no Direction ]
(Moving while attached)
[ moving Player ] [ Lasso Crate ] [ Rope ] -> [ moving Player action Done ] [ moving Lasso action Crate ] [ moving Rope ]
[ moving Player | Lasso Crate ] -> [ moving Player action Done | moving Lasso action Crate ]
[ > Player | stationary Solid ] -> cancel
startloop
(Start loop)
left [ action Done | RopePullsL no Done ] -> [ < Done | RopePullsL Here ]
right [ action Done | RopePullsR no Done ] -> [ < Done | RopePullsR Here ]
up [ action Done | RopePullsU no Done ] -> [ < Done | RopePullsU Here ]
down [ action Done | RopePullsD no Done ] -> [ < Done | RopePullsD Here ]
[ action Done | Lasso no Done ] -> [ < Done | Lasso Here ]
(Check for collisions)
[ stationary Here > Chain | stationary Solid ] -> [ action Here > Chain | Solid ] (set 'action Here' on collision)
[ < Done | action Here > Chain ] -> cancel
[ action Here ] [ Done > Chain | moving Done ] -> cancel
[ action Here ] [ moving Done ] [ Chain no Done ] -> [ action Here ] [ moving Done ] [ moving Chain ] (update movement of future parts of the chain)
left [ moving Done down RopeUL | action Here ] -> cancel
left [ moving Done up RopeDL | action Here ] -> cancel
left [ moving Done down RopeH | action Here ] -> [ moving Done down RopeUR | action Here ]
left [ moving Done down RopeDL | action Here ] -> [ moving Done down RopeV | action Here ]
left [ moving Done up RopeH | action Here ] -> [ moving Done up RopeDR | action Here ]
left [ moving Done up RopeUL | action Here ] -> [ moving Done up RopeV | action Here ]
left [ moving Done down Chain | action Here < RopeH ] -> [ moving Done down Chain | action Here < RopeDL ]
left [ moving Done down Chain | action Here < RopeUR ] -> [ moving Done down Chain | action Here < RopeV ]
left [ moving Done up Chain | action Here < RopeH ] -> [ moving Done up Chain | action Here < RopeUL ]
left [ moving Done up Chain | action Here < RopeDR ] -> [ moving Done up Chain | action Here < RopeV ]
right [ moving Done down RopeUR | action Here ] -> cancel
right [ moving Done up RopeDR | action Here ] -> cancel
right [ moving Done down RopeH | action Here ] -> [ moving Done down RopeUL | action Here ]
right [ moving Done down RopeDR | action Here ] -> [ moving Done down RopeV | action Here ]
right [ moving Done up RopeH | action Here ] -> [ moving Done up RopeDL | action Here ]
right [ moving Done up RopeUR | action Here ] -> [ moving Done up RopeV | action Here ]
right [ moving Done down Chain | action Here < RopeH ] -> [ moving Done down Chain | action Here < RopeDR ]
right [ moving Done down Chain | action Here < RopeUL ] -> [ moving Done down Chain | action Here < RopeV ]
right [ moving Done up Chain | action Here < RopeH ] -> [ moving Done up Chain | action Here < RopeUR ]
right [ moving Done up Chain | action Here < RopeDL ] -> [ moving Done up Chain | action Here < RopeV ]
up [ moving Done left RopeUR | action Here ] -> cancel
up [ moving Done right RopeUL | action Here ] -> cancel
up [ moving Done left RopeV | action Here ] -> [ moving Done left RopeDR | action Here ]
up [ moving Done left RopeUL | action Here ] -> [ moving Done left RopeH | action Here ]
up [ moving Done right RopeV | action Here ] -> [ moving Done right RopeDL | action Here ]
up [ moving Done right RopeUR | action Here ] -> [ moving Done right RopeH | action Here ]
up [ moving Done left Chain | action Here < RopeV ] -> [ moving Done left Chain | action Here < RopeUL ]
up [ moving Done left Chain | action Here < RopeDR ] -> [ moving Done left Chain | action Here < RopeH ]
up [ moving Done right Chain | action Here < RopeV ] -> [ moving Done right Chain | action Here < RopeUR ]
up [ moving Done right Chain | action Here < RopeDL ] -> [ moving Done right Chain | action Here < RopeH ]
down [ moving Done left RopeDR | action Here ] -> cancel
down [ moving Done right RopeDL | action Here ] -> cancel
down [ moving Done left RopeV | action Here ] -> [ moving Done left RopeUR | action Here ]
down [ moving Done left RopeDL | action Here ] -> [ moving Done left RopeH | action Here ]
down [ moving Done right RopeV | action Here ] -> [ moving Done right RopeUL | action Here ]
down [ moving Done right RopeDR | action Here ] -> [ moving Done right RopeH | action Here ]
down [ moving Done left Chain | action Here < RopeV ] -> [ moving Done left Chain | action Here < RopeDL ]
down [ moving Done left Chain | action Here < RopeUR ] -> [ moving Done left Chain | action Here < RopeH ]
down [ moving Done right Chain | action Here < RopeV ] -> [ moving Done right Chain | action Here < RopeDR ]
down [ moving Done right Chain | action Here < RopeUL ] -> [ moving Done right Chain | action Here < RopeH ]
[ moving Done ] -> [ Done ]
[ Here ] -> [ action Done ]
(End loop)
endloop
[ Here ] -> []
[ Done ] -> []
([ left Chain ] -> [ L action Chain ]
[ right Chain ] -> [ R action Chain ]
[ up Chain ] -> [ U action Chain ]
[ down Chain ] -> [ D action Chain ]
[ Direction moving Crate ] -> [ Direction Crate ])
[ moving Lasso action Crate ] -> [ moving Lasso moving Crate ]
(Pull the end of the lasso towards the player by one tile)
[ stationary Lasso Direction ] -> [ Lasso ] again
left [ stationary Lasso | RopePullsL ] -> [ > Lasso | ] again
right [ stationary Lasso | RopePullsR ] -> [ > Lasso | ] again
up [ stationary Lasso | RopePullsU ] -> [ > Lasso | ] again
down [ stationary Lasso | RopePullsD ] -> [ > Lasso | ] again
[ stationary Lasso | Player ] -> [ | Player no Direction ]
[ moving Lasso stationary Crate ] -> [ moving Lasso moving Crate ]
[ Lasso Player ] -> [ Player ]
(Add graphics)
late up [ PlayerAiming | ] -> [ PlayerAiming | LassoAboveHead ]
==============
WINCONDITIONS
==============
=======
LEVELS
=======
##########
#........#
#.*......#
#......*.#
#....p...#
#........#
#.*....*.#
#........#
#........#
##########
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment