Skip to content

Instantly share code, notes, and snippets.

@JackLance
Created October 11, 2018 19:57
Show Gist options
  • Select an option

  • Save JackLance/d320e4be5ae0f8415e4990c444a73470 to your computer and use it in GitHub Desktop.

Select an option

Save JackLance/d320e4be5ae0f8415e4990c444a73470 to your computer and use it in GitHub Desktop.
Coping Mechanisms (PuzzleScript Script)
Play this game by pasting the script in http://www.puzzlescript.net/editor.html
title Coping Mechanisms
author Jack Lance
run_rules_on_level_start
========
OBJECTS
========
background
white
select
transparent
during
darkbrown
00.00
0...0
.....
0...0
00.00
destroy
red
00.00
0...0
.....
0...0
00.00
hinge
grey
00.00
0...0
.....
0...0
00.00
make
blue
00.00
0...0
.....
0...0
00.00
move
purple
00.00
0...0
.....
0...0
00.00
bad
black
.....
..0..
..0..
.000.
.000.
zone
lightblue
active
yellow LIGHTBROWN orange brown
.000.
01112
01112
01112
.222.
ad
yellow LIGHTBROWN orange brown
.....
.....
.....
.....
01112
au
yellow LIGHTBROWN orange brown
01112
.....
.....
.....
.....
ar
yellow LIGHTBROWN orange brown
....0
....1
....1
....1
....2
al
yellow LIGHTBROWN orange brown
0....
1....
1....
1....
2....
blob
LIGHTBROWN orange brown
.000.
01112
01112
01112
.222.
cd
LIGHTBROWN orange brown
.....
.....
.....
.....
01112
cu
LIGHTBROWN orange brown
01112
.....
.....
.....
.....
cr
LIGHTBROWN orange brown
....0
....1
....1
....1
....2
cl
LIGHTBROWN orange brown
0....
1....
1....
1....
2....
md
green
.....
.....
.....
.....
00000
mu
green
00000
.....
.....
.....
.....
mr
green
....0
....0
....0
....0
....0
ml
green
0....
0....
0....
0....
0....
hd
darkgrey
.....
.....
.....
.....
.000.
hu
darkgrey
.000.
.....
.....
.....
.....
hr
darkgrey
.....
....0
....0
....0
.....
hl
darkgrey
.....
0....
0....
0....
.....
block x
black
unsupported
transparent
cant
transparent
goal g
red
..0..
.0.0.
0...0
.0.0.
..0..
(checka
transparent
checkb
transparent
froma
transparent
fromb
transparent)
=======
LEGEND
=======
. = Background
player = select or make or move or during or hinge or destroy
P = move
0 = blob
1 = blob and cd
2 = blob and hd
3 = blob and cr
4 = blob and cd and cr
5 = blob and hd and cr
6 = blob and hr
7 = blob and cd and hr
8 = blob and hd and hr
xu = cu or hu
xd = cd or hd
xl = cl or hl
xr = cr or hr
cx = cu or cl or cd or cr
hx = hu or hl or hd or hr
mx = mu or ml or md or mr
ax = au or al or ad or ar
z = zone
q = make
- = bad
=======
SOUNDS
=======
================
COLLISIONLAYERS
================
Background
zone
blob
cd,
cl,
cr,
cu,
active
al
ar
ad
au
hd, md
hl, ml
hr, mr
hu, mu
Player, block
goal
unsupported
cant
bad
======
RULES
======
[action make no zone][blob] -> [move][blob]
[action make zone no blob] -> [during blob zone]
[action make zone blob] -> [hinge zone blob]
[> hinge | no zone no block] -> [ | make]
[> during | no zone no block] -> [ | make]
up [up hinge cu| ] -> [ cu |hinge ]
down [down hinge cd| ] -> [ cd |hinge ]
left [left hinge cl| ] -> [ cl |hinge ]
right [right hinge cr| ] -> [ cr |hinge ]
up [up hinge | blob] -> [ hu |make hd blob]
down [down hinge | blob] -> [ hd |make hu blob]
left [left hinge | blob] -> [ hl |make hr blob]
right [right hinge | blob] -> [ hr |make hl blob]
up [up hinge | no blob] -> [ hu |during hd blob]
down [down hinge | no blob] -> [ hd |during hu blob]
left [left hinge | no blob] -> [ hl |during hr blob]
right [right hinge | no blob] -> [ hr |during hl blob]
[action hinge] -> [destroy]
[action destroy] -> [make]
up [up during blob no cu| blob] -> [ blob hu| hd make blob]
down [down during blob no cd| blob] -> [ blob hd| hu make blob]
left [left during blob no cl| blob] -> [ blob hl| hr make blob]
right [right during blob no cr| blob] -> [ blob hr| hl make blob]
up [up during | no blob no block zone] -> [cu | cd blob during zone]
down [down during | no blob no block zone] -> [cd | cu blob during zone]
left [left during | no blob no block zone] -> [cl | cr blob during zone]
right [right during | no blob no block zone] -> [cr | cl blob during zone]
late [destroy blob] -> [destroy]
late [destroy hx] -> [destroy]
late [destroy cx] -> [destroy]
late right [xr | destroy] -> [ | destroy]
late left [xl | destroy] -> [ | destroy]
late down [xd | destroy] -> [ | destroy]
late up [xu | destroy] -> [ | destroy]
late [during no zone] -> [make]
[action during] -> [make]
[action select blob] -> [move blob]
[action move blob] -> [select blob]
[select blob unsupported] -> [down select blob unsupported]
[select][blob unsupported] -> [select ][down blob]
up [hu | ] -> [hu | hd]
down [hd | ] -> [hd | hu]
left [hl | ] -> [hl | hr]
right [hr | ] -> [hr | hl]
up [cu | ] -> [cu | cd]
down [cd | ] -> [cd | cu]
left [cl | ] -> [cl | cr]
right [cr | ] -> [cr | cl]
[xu] -> [up xu]
[xl] -> [left xl]
[xr] -> [right xr]
[xd] -> [down xd]
[cant] -> []
up [up select][blob | block] -> [up select][blob cant | block]
left [left select][blob | block] -> [left select][blob cant | block]
down [down select][blob | block] -> [down select][blob cant | block]
right [right select][blob | block] -> [right select][blob cant | block]
startloop
[ blob > cx | blob cant] -> [ blob > cx cant| blob cant]
up [up select][blob | cant] -> [up select][blob cant | cant]
left [left select][blob | cant] -> [left select][blob cant | cant]
down [down select][blob | cant] -> [down select][blob cant | cant]
right [right select][blob | cant] -> [right select][blob cant | cant]
endloop
[> select blob no cant] -> [> select > blob]
[select cant] -> [stationary select cant]
startloop
[moving blob > cx | blob] -> [moving blob > cx| moving blob]
[> blob > hu | blob] -> [> blob > mu | > blob]
+[> blob > hl | blob] -> [> blob > ml | > blob]
+[> blob > hd | blob] -> [> blob > md | > blob]
+[> blob > hr | blob] -> [> blob > mr | > blob]
[> blob | blob] -> [> blob | > blob]
[< blob > hu | blob] -> [< blob > mu | < blob]
[< blob > hl | blob] -> [< blob > ml | < blob]
[< blob > hd | blob] -> [< blob > md | < blob]
[< blob > hr | blob] -> [< blob > mr | < blob]
[no cl right blob up hu] -> [right blob up mu]
[no cl right blob down hd] -> [right blob down md]
[no cr left blob up hu] -> [left blob up mu]
[no cr left blob down hd] -> [left blob down md]
[no cd up blob left hl] -> [up blob left ml]
[no cd up blob right hr] -> [up blob right mr]
[no cu down blob left hl] -> [down blob left ml]
[no cu down blob right hr] -> [down blob right mr]
[> mx | < hl] -> [> mx | < ml]
[> mx | < hd] -> [> mx | < md]
[> mx | < hr] -> [> mx | < mr]
[> mx | < hu] -> [> mx | < mu]
[right select][stationary blob mx no cr] -> [right select][right blob mx]
[left select][stationary blob mx no cl] -> [left select][left blob mx]
[down select][stationary blob mx no cd] -> [down select][down blob mx]
[up select][stationary blob mx no cu] -> [up select][up blob mx]
endloop
[> blob | block] -> cancel
[hx] -> [stationary hx]
[moving select][md] -> [moving select][moving hd]
[moving select][mu] -> [moving select][moving hu]
[moving select][ml] -> [moving select][moving hl]
[moving select][mr] -> [moving select][moving hr]
[stationary select][md] -> [stationary select][down hd]
[stationary select][mu] -> [stationary select][down hu]
[stationary select][ml] -> [stationary select][down hl]
[stationary select][mr] -> [stationary select][down hr]
[cx] -> [stationary cx]
[moving blob cx] -> [moving blob moving cx]
late [blob] -> [blob unsupported]
late down [blob unsupported|block] -> [blob | block]
startloop
late up [blob xu unsupported | no unsupported] -> [blob xu | ]
late down [blob xd unsupported | no unsupported] -> [blob xd | ]
late left [blob xl unsupported | no unsupported] -> [blob xl | ]
late right [blob xr unsupported | no unsupported] -> [blob xr | ]
late down [blob unsupported|blob no unsupported] -> [blob | blob]
endloop
late [blob unsupported] -> again
late [ax] -> []
late [active] -> []
late [select blob] -> [select blob active]
startloop
late [active cl] -> [active cl al]
late [active cr] -> [active cr ar]
late [active cd] -> [active cd ad]
late [active cu] -> [active cu au]
late up [au | blob] -> [au | blob active]
late down [ad | blob] -> [ad | blob active]
late left [al | blob] -> [al | blob active]
late right [ar | blob] -> [ar | blob active]
endloop
[blob bad] -> restart
==============
WINCONDITIONS
==============
all goal on blob
no unsupported
=======
LEVELS
=======
message WARMUP 1/3
message Action to select the robot, and move it to the exit without hitting any spikes
xxxxxxxxx
x.......x
x1..p...x
x0......x
xxxxx...x
x.......x
x.......x
x.......x
xx.xxx.xx
x.......x
x....g..x
x.....--x
xxxxxxxxx
message WARMUP 2/3
message Select which component you would like to move, and action to deselect
xxxxxxxxxxxxxx
xp.1x........x
x.71x........x
x.10x........x
x.0xx........x
x..x.........x
x..x..xxxxxx.x
x..x........gx
x..xx........x
x...x........x
x...xxx......x
x.....xxx....x
x............x
x.........xxxx
x.........xxxx
xxxxxxxxxxxxxx
message WARMUP 3/3
message In levels with multiple bots, you only need to get one to the exit
xxxxxxxxxxxxxxx
x.............x
x...p.........x
x...........g.x
x.............x
x.11...x......x
x.2630.x......x
x.30..1x......x
xxx.360x....xxx
xxxxxxxxxxxxxxx
message LEVEL 1/4
message Draw your robot's design in the blue zone
message Press action and move around to start drawing a component, and action again to finish
message Press action on a component and move to draw a hinge
message Lastly, press action OUTSIDE THE BLUE ZONE TO PLAY with your designed robot
message You can also press action in hinge mode to go to erase mode; basically, whatever you want to do, press action a bunch and you'll probably get to it. (It'll be easier once you get used to it.)
xxxxxxxxxxx
x.........x
x...q...g.x
x.........x
xzzzz.....x
xzzzz.....x
xzzzz.....x
xzzzz.....x
xxxxxxxxxxx
message LEVEL 2/4
xxxxxxxxxxxxx
x.....zzzzzzx
x...q.zzzzzzx
x.....zzzzzzx
x.....zzzzzzx
x.....xxxxxxx
x..........gx
x...........x
x...........x
x...........x
x...........x
x------.....x
xxxxxxxxxxxxx
(xxxxxxxxxxxxxxx
xxxxxxxxxx....x
xxxxxxxxxx..x.x
xxxxxxxxxx..x.x
xxxxxxxxxx..x.x
xzzzzz.q....x.x
xzzzzz......x.x
xzzzzz......x.x
xzzzzz......x.x
xzzzzz------xgx
xxxxxxxxxxxxxxx)
message LEVEL 3/4
xxxxxxxxxx
x..zzzzzzx
x..zzzzzzx
x..zzzzzzx
xq.zzzzzzx
x..zzzzzzx
x..xxxxxxx
x..xx....x
x..xx..x.x
x..xx..x.x
x..xx..x.x
x......x.x
x......x.x
x......xgx
xxxxxxxxxx
message LEVEL 4/4
xxxxxxxxx
xzzzzz..x
xzzzzz..x
xzzzzzq.x
xzzzzz..x
xzzzzz..x
xxxxxx..x
x.......x
xxxxxx..x
x.......x
xxxxxx..x
x.......x
xxxxxx..x
x.......x
xxxxxx..x
x.......x
xxxxxx..x
x.......x
xxxxxx..x
x....g..x
xxxxxx--x
(xxxxxxxxxxxxxx
xzzzzzzzxxxxxx
xzzzzzzzxxxxxx
xzzzzzzzxxxxxx
xzzzzzzzxxxxxx
xzzzzzzz....xx
xzzzzzzzq...xx
xxxxxxxxx...xx
xxxxxxxxx...xx
xxxxxxxxx...xx
xxxxxxxxx...xx
xxxxxxxxx...xx
xxxxxxxxx...xx
xxxxxxxxx....x
xxxxxxxxx...gx
xxxxxxxxx---xx
xxxxxxxxxxxxxx)
(
xxxxxxxxxxxxxxxxxxxxxxx
x..q..zzzzzx..........x
x.....zzzzzx..........x
x.....zzzzzx..........x
x.....zzzzzx..........x
x.....zzzzzx..........x
x.....zzzzzx..........x
x.....zzzzzx..........x
x.....zzzzzx..........x
x.....zzzzzxg.........x
x.....xxxxxxxxxxx.....x
x.....................x
x.....................x
x.....................x
x---------------------x)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment