Last active
March 17, 2018 06:07
-
-
Save rmmh/9867759 to your computer and use it in GitHub Desktop.
PuzzleScript Demake of PUSH, from http://lonebot.net/games/push/
This file contains 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 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 PUSH | |
author lonebot - demake by rmmh | |
homepage http://lonebot.net/games/push/ | |
youtube UXlXgFDgXow | |
again_interval 0.1 | |
noaction | |
======== | |
OBJECTS | |
======== | |
Background . | |
#756C5E | |
Wall # | |
#635854 | |
StrongPlayer P | |
#E8D2AC #67453D Black #282D3C Red | |
11111 | |
02020 | |
40004 | |
43334 | |
33.33 | |
WeakPlayer | |
#E8D2AC #67453D Black #282D3C | |
11111 | |
02020 | |
.000. | |
.333. | |
33.33 | |
GibbedPlayer | |
Red | |
...0. | |
.0... | |
0..0. | |
..... | |
..0.0 | |
Rock * | |
#202020 #706249 #A6957B | |
.000. | |
02220 | |
02210 | |
01110 | |
.000. | |
RockDust (destroyed by a projectile) | |
#A6957B | |
...0. | |
.0... | |
0..0. | |
..... | |
..0.0 | |
Idol G | |
#945527 #C97536 #F4EF0B | |
.000. | |
01210 | |
.222. | |
.010. | |
01210 | |
Pit _ | |
Black #5A5349 | |
.1.1. | |
1000. | |
.000. | |
.0001 | |
..11. | |
PitFilled | |
Black #5A5349 #706249 | |
.1.1. | |
1222. | |
.222. | |
.2221 | |
..11. | |
PitPlayer | |
Black #5A5349 #E8D2AC #282D3C | |
.1.1. | |
1020. | |
.222. | |
.3331 | |
..11. | |
WeakGround x | |
#5A5349 | |
.0..0 | |
00..0 | |
..00. | |
00..0 | |
0.0.. | |
GunUSingle U | |
Black Grey Yellow | |
..0.. | |
12021 | |
11011 | |
11111 | |
.111. | |
GunDSingle D | |
Black Grey Yellow | |
.111. | |
11111 | |
11011 | |
12021 | |
..0.. | |
GunRSingle R | |
Black Grey Yellow | |
.111. | |
1112. | |
11000 | |
1112. | |
.111. | |
GunLSingle L | |
Black Grey Yellow | |
.111. | |
.2111 | |
00011 | |
.2111 | |
.111. | |
GunUMulti M | |
Black Grey Red | |
..0.. | |
.202. | |
12021 | |
12221 | |
.111. | |
GunLMulti N | |
Black Grey Red | |
..11. | |
.2221 | |
00021 | |
.2221 | |
..11. | |
GunRMulti O | |
Black Grey Red | |
.11.. | |
1222. | |
12000 | |
1222. | |
.11.. | |
Button T | |
#969283 #4A4A4A | |
.000. | |
01110 | |
01010 | |
01110 | |
.000. | |
ButtonPressed | |
#969283 #3A3A3A | |
.000. | |
01110 | |
01110 | |
01110 | |
.000. | |
ArrowU | |
Brown | |
..0.. | |
.000. | |
..0.. | |
..... | |
..... | |
ArrowR | |
Brown | |
..... | |
...0. | |
..000 | |
...0. | |
..... | |
ArrowL | |
Brown | |
..... | |
.0... | |
000.. | |
.0... | |
..... | |
ArrowD | |
Brown DarkBrown | |
..... | |
..... | |
..0.. | |
.000. | |
..0.. | |
Firing | |
Black | |
Fired | |
Brown | |
(used for linking buttons to guns, and for generic flags) | |
LinkA | |
Red | |
LinkB | |
Green | |
LinkC | |
Blue | |
LinkD | |
White | |
LinkE | |
Black | |
======= | |
LEGEND | |
======= | |
Player = StrongPlayer or WeakPlayer or GibbedPlayer | |
DeadPlayer = GibbedPlayer or PitPlayer | |
GunU = GunUSingle or GunUMulti | |
GunD = GunDSingle | |
GunL = GunLSingle or GunLMulti | |
GunR = GunRSingle or GunRMulti | |
MultiGun = GunUMulti or GunLMulti or GunRMulti | |
Gun = GunU or GunR or GunD or GunL | |
Movable = Rock or Gun | |
Q = StrongPlayer and WeakGround | |
Heavy = Movable or Player | |
Arrow = ArrowU or ArrowR or ArrowD or ArrowL | |
Link = LinkA or LinkB or LinkC or LinkD or LinkE | |
Blockers = Player or Wall or Idol or Movable | |
1 = Wall and LinkA | |
2 = Wall and LinkB | |
3 = Wall and LinkC | |
4 = Wall and LinkD | |
5 = Wall and LinkE | |
7 = GunRSingle and LinkE | |
8 = Button and LinkE | |
======= | |
SOUNDS | |
======= | |
Idol destroy 47224903 | |
Pit create 4141702 | |
PitPlayer create 19700104 | |
PitFilled create 87604304 | |
ButtonPressed create 25424301 | |
(using sfxN here to deal with bug where 'again' triggers sounds twice) | |
sfx0 36787702 (rock destroyed by arrow) | |
sfx1 59184504 (player explodes) | |
Arrow create 98842708 (arrow shot) | |
================ | |
COLLISIONLAYERS | |
================ | |
Link (move layer to top for debugging linkages) | |
Firing, Fired | |
Background | |
Pit, PitFilled, WeakGround, Button, ButtonPressed, PitPlayer, RockDust | |
Blockers | |
Arrow | |
====== | |
RULES | |
====== | |
(player can move an object only once) | |
[ > StrongPlayer | Movable | no Blockers ] -> [ > WeakPlayer | > Movable | ] | |
[ > Movable Link ] -> [ > Movable > Link ] | |
[ DeadPlayer ] -> cancel | |
(pit behaviors) | |
late [ Player Pit ] -> [ PitPlayer ] (falling into a pit kills you) | |
late [ Pit Rock ] -> [ PitFilled ] (they can be filled) | |
[ Player WeakGround ] -> [ Player WeakGround LinkA ] (mark WeakGround as visited) | |
late [ WeakGround LinkA no Player ] -> [ Pit ] (pits appear when you move off weakground) | |
(initialize gun linkages -- try linking on a line first) | |
[Wall Link] [Button no Link | ... | Gun no Link] -> [Wall] [Button Link | ... | Gun Link] | |
[Wall Link] [Button no Link] [Gun no Link] -> [Wall] [Button Link] [Gun Link] | |
(buttons cause linked gun to fire) | |
late [ Button Heavy LinkA ] [ Gun LinkA ] -> [ ButtonPressed Heavy ] [ Gun Firing ] again | |
late [ Button Heavy LinkB ] [ Gun LinkB ] -> [ ButtonPressed Heavy ] [ Gun Firing ] again | |
late [ Button Heavy LinkC ] [ Gun LinkC ] -> [ ButtonPressed Heavy ] [ Gun Firing ] again | |
late [ Button Heavy LinkD ] [ Gun LinkD ] -> [ ButtonPressed Heavy ] [ Gun Firing ] again | |
late [ Button Heavy LinkE ] [ Gun LinkE ] -> [ ButtonPressed Heavy ] [ Gun Firing ] again | |
( MultiGuns fire 3 shots. do this by cycling LinkB->LinkA->None ) | |
[ MultiGun Firing no Link ] -> [ MultiGun Firing LinkB ] | |
[ MultiGun Fired LinkB ] -> [ MultiGun Firing LinkA ] | |
[ MultiGun Fired LinkA ] -> [ MultiGun Firing ] | |
( create arrows ) | |
[ GunU Firing ] -> [ GunU ArrowU Fired ] | |
[ GunR Firing ] -> [ GunR ArrowR Fired ] | |
[ GunL Firing ] -> [ GunL ArrowL Fired ] | |
[ GunD Firing ] -> [ GunD ArrowD Fired ] | |
( move ) | |
[ ArrowL ] -> [ left ArrowL ] again | |
[ ArrowU ] -> [ up ArrowU ] again | |
[ ArrowR ] -> [ right ArrowR ] again | |
[ ArrowD ] -> [ down ArrowD ] again | |
late [ Arrow Rock ] -> [ RockDust ] sfx0 | |
late [ Arrow Player ] -> [ GibbedPlayer ] sfx1 | |
late [ Arrow Blockers ] -> [ Blockers ] sfx0 | |
(grabbing an idol) | |
[ DeadPlayer ] -> cancel | |
[ > Player | Idol ] -> [ Player | Pit ] | |
============== | |
WINCONDITIONS | |
============== | |
no Idol | |
======= | |
LEVELS | |
======= | |
message 1/20: You only get one push! | |
########### | |
#.........# | |
#......*..# | |
#.*.....*.# | |
#...***...# | |
#..**g*...# | |
#..*.*....# | |
#.........# | |
#...p...*.# | |
#.........# | |
########### | |
message 2/20: Mind the gap | |
########### | |
#**.......# | |
#*....*.*.# | |
#.........# | |
#...***...# | |
#...*g*...# | |
#...*_*...# | |
#*........# | |
#..*.p..*.# | |
#.........# | |
########### | |
message 3/20: Shaky footing | |
########### | |
#****g****# | |
#.*_..****# | |
#x********# | |
#.********# | |
#.x.xx...*# | |
#*******x*# | |
#......x.*# | |
#.********# | |
#p*.......# | |
########### | |
message 4/20: Firepower | |
1########## | |
#*...g...*# | |
#........*# | |
#*********# | |
#**.....*.# | |
#**.......# | |
#**_.p....# | |
#*t*...**.# | |
#**_...**.# | |
#**..u...*# | |
########### | |
message 5/20: Artillery | |
1########## | |
#**.....*.# | |
#*......**# | |
#...*g*...# | |
#.*.......# | |
#.........# | |
#*********# | |
#..*.**...# | |
#*......t.# | |
#..*.u...p# | |
########### | |
message 6/20: Traps | |
1########## | |
#t**.****.# | |
#.*...**g*# | |
#.x.....**# | |
#.**.*....# | |
#..*.*....# | |
#.**......# | |
#**.......# | |
#**p..*...# | |
#**..**.u*# | |
########### | |
message 7/20: Sequencing | |
12######### | |
#*********# | |
#*t****_..# | |
#*x*.d**..# | |
#.....**..# | |
#.....*...# | |
#t..._*...# | |
#r...**.g.# | |
#...***...# | |
#p..****..# | |
########### | |
message 8/20: Hamiltonian Cycle | |
(8/20 - 3 guns, order irrelevant) | |
123######## | |
#*....**.*# | |
#..***l**.# | |
#g****l***# | |
#*****l***# | |
#tx**xxxxx# | |
#xxxqxxx*t# | |
#xx*_**x_x# | |
#*x_xxxxx*# | |
#*xtx*x**_# | |
########### | |
message 9/20: Barrage | |
(9/20 -- 4 guns, all inline with triggers) | |
1234####### | |
#****x***_# | |
#***.tt.**# | |
#xg_.dd.**# | |
#*__......# | |
#_*__**.lt# | |
#_*..*..lt# | |
#.........# | |
#*p.......# | |
#**...*..*# | |
########### | |
message 10/20: Rotary | |
(10/20 -- 4 guns, mostly inline with triggers) | |
1234####### | |
#**_*...t.# | |
#*......d.# | |
#r......**# | |
#*.****..*# | |
#t.*.g**.*# | |
#..******x# | |
#....**_xt# | |
#.....p***# | |
#_.u*t._.l# | |
########### | |
message 11/20: Shooting Gallery | |
(11/20) | |
1234####### | |
#t..*..*_l# | |
#_.****.__# | |
#r.*x**.t*# | |
#******.**# | |
#**xtr_.*g# | |
#__.__..**# | |
#_......**# | |
#....p.u.*# | |
#**....t..# | |
########### | |
message 12/20: Co-op | |
(12/20: 2 players!) | |
1########## | |
#*t.._____# | |
#...._*g__# | |
#.r.._.*..# | |
#...._*.**# | |
#**_._.*.*# | |
#****_....# | |
#*..*_..**# | |
#*.**_..**# | |
#*p**_..p*# | |
########### | |
message 13/20: Rescue | |
12######### | |
#**...._.g# | |
#*.t..._*.# | |
#*...d._.*# | |
#*p..__*_*# | |
#*...__.u*# | |
#.*..._.t*# | |
#*...**_**# | |
#*..***.**# | |
#*.**....p# | |
########### | |
message 14/20: Friendly Fire | |
(14/20 -- corridor toggle triggers left-wall gun ) | |
12######### | |
#*********# | |
#*********# | |
#g*8...pl*# | |
#*********# | |
#7********# | |
#...***...# | |
#......p.t# | |
#....*.*..# | |
#.ut......# | |
########### | |
message 15/20: Interference | |
123######## | |
#**..*..**# | |
#*.......*# | |
#....p...*# | |
#t......**# | |
#r.**..**g# | |
#...*...**# | |
#..uup..**# | |
#*.......*# | |
#**tt...**# | |
########### | |
message 16/20: Machine guns | |
1########## | |
#*********# | |
#p..*g****# | |
#....*****# | |
#..*******# | |
#..**.*.**# | |
#***......# | |
#***.p....# | |
#....t.m..# | |
#_........# | |
########### | |
message 17/20: Trapped | |
(17/20 -- top toggle triggers magma) | |
123######## | |
#p**...n*g# | |
#*****..*_# | |
#******.**# | |
#***..t*.*# | |
#*7_*.....# | |
#8.x*....l# | |
#...xp...x# | |
#...u*.._t# | |
#*..t*...x# | |
########### | |
message 18/20: Crossfire | |
(18/20 -- modified to be more difficult) | |
12345###### | |
#_g.*_****# | |
#____**...# | |
#.....*...# | |
#rx.***.x.# | |
#t..*.*...# | |
#.px..*.pl# | |
#o.**.*x.*# | |
#t...*.x.t# | |
#.xtm*mtx.# | |
########### | |
message 19/20: Stylite | |
(19/20) | |
1########## | |
#*********# | |
#..*t***x*# | |
#p...*****# | |
#.r..*g***# | |
#.*_____*_# | |
#**_...___# | |
#*__p..___# | |
#*x_...__*# | |
#_*_______# | |
########### | |
message 20/20: Spinal Cannon | |
(20/20 -- inverted so I don't have to make an upwards magma gun) | |
1########## | |
#p.**g*_.p# | |
#....**x..# | |
#_*.._..**# | |
#.*..*...*# | |
#..*.x....# | |
#_x__*.._.# | |
#*.x_*x.._# | |
#*x..***..# | |
#*_.tm.*..# | |
########### | |
(finale -- pushes gold into pit, gold gets smashed, eyes bug out) | |
########### | |
#*.......*# | |
#....p....# | |
#._....._.# | |
#_...*..._# | |
#_..._..._# | |
#__._g_.__# | |
#_________# | |
#_________# | |
#*_______*# | |
########### | |
message Congratulations! | |
(Credits | |
Code: Yotam Frid | |
Art: Mati & Itamar Ernst | |
Music: Jason Lord | |
www.lonebot.net | |
Ludam Dare 28) | |
(blank level template() | |
########### | |
#.........# | |
#.........# | |
#.........# | |
#.........# | |
#.........# | |
#.........# | |
#.........# | |
#.........# | |
#.........# | |
########### | |
() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment