Skip to content

Instantly share code, notes, and snippets.

@nvh
Created December 18, 2023 21:10
Show Gist options
  • Save nvh/f22ae487f5bb2a8d36114c995df54455 to your computer and use it in GitHub Desktop.
Save nvh/f22ae487f5bb2a8d36114c995df54455 to your computer and use it in GitHub Desktop.
Pusher (PuzzleScript Script)
Play this game by pasting the script in http://www.puzzlescript.net/editor.html
title Pusher
author Niels & Ruud
homepage www.puzzlescript.net
( verbose_logging )
========
OBJECTS
========
Outside
black
Background
lightgray
Target
yellow orange
1...1
.000.
.010.
.000.
1...1
Wall
darkgreen
Player
red purple darkblue lightblue darkred
.111.
12221
13231
.222.
04.44
Crate
lightbrown brown darkbrown
11111
12221
12.11
12111
11111
Button
blue lightblue purple
.000.
01112
01112
01112
.222.
Pusher
lightgray gray darkgray darkblue
.....
.333.
.333.
.333.
.....
( Rail )
( lightgray gray )
( 00100 )
( 00100 )
( 11111 )
( 00100 )
( 00100 )
HorizontalRail
lightgray gray
00000
00000
11111
00000
00000
VerticalRail
lightgray gray
00100
00100
00100
00100
00100
HorizontalPushSource
lightgray gray
00000
00000
11111
00000
00000
VerticalPushSource
lightgray gray
00100
00100
00100
00100
00100
ButtonTarget
darkgray darkgreen
10001
00000
00000
00000
10001
ButtonSource
lightgray
=======
LEGEND
=======
Rail = HorizontalRail or VerticalRail
PushSource = HorizontalPushSource or VerticalPushSource
. = Background
# = Wall
P = Player
* = Crate
@ = Crate and Target
O = Target
B = Button
& = Pusher
- = HorizontalRail
/ = VerticalRail
C = Crate and HorizontalRail
Y = Pusher and VerticalPushSource
% = Pusher and HorizontalPushSource
1 = VerticalPushSource
_ = HorizontalPushSource
T = ButtonTarget
S = ButtonSource
$ = Button and ButtonSource
x = Outside
Weight = Crate or Player or Wall or Pusher
=======
SOUNDS
=======
================
COLLISIONLAYERS
================
Background
Target, Rail, PushSource, ButtonTarget, ButtonSource, Outside
Player, Wall, Crate, Pusher, Button
======
RULES
======
[ > Player | Crate ] -> [ > Player | > Crate ]
[ > Crate | Button | ButtonTarget ] -> [ > Crate | > Button | ButtonTarget ]
[ > Player | Button | ButtonTarget ] -> [ > Player | > Button | ButtonTarget ]
[ PushSource Pusher | Rail | ... | > Button | ButtonTarget ] -> [ PushSource > Pusher | Rail | ... | > Button | ButtonTarget ]
[ PushSource | Pusher Rail | ... | ButtonSource moving Player | Button ButtonTarget ] -> [ PushSource | < Pusher Rail | ... | ButtonSource moving Player | < Button ButtonTarget ]
[ > Pusher | Crate ] -> [ > Pusher | > Crate ]
[ > Pusher | Crate | Crate ] -> [ > Pusher | > Crate | > Crate ]
[ > Pusher | Crate | Crate | Crate ] -> [ > Pusher | > Crate | > Crate | > Crate ]
[ > Pusher | Crate | Crate | Crate | Crate ] -> [ > Pusher | > Crate | > Crate | > Crate | > Crate ]
[ > Pusher | Crate | Crate | Crate | Crate | Crate] -> [ > Pusher | > Crate | > Crate | > Crate | > Crate | > Crate ]
==============
WINCONDITIONS
==============
all Target on Crate
=======
LEVELS
=======
( ########### )
( T$.......-% )
( %C*PO..*.$T )
( #.........# )
( ########### )
xx####x
###..#x
#..P*##
T$*-%O#
#O#####
###xxxx
xxxxxxxxx####x
x#########..#x
x#....Y.....#x
##..##/####.#x
#..*.##T.O#.#x
#O#....$..#.#x
#.##..P...#.#x
#%-#..*.$T#.#x
#.#T$....#-%#x
#.#...$..##.#x
#.....T#....##
#.#####/###..#
#......Y.....#
#..###########
####xxxxxxxxxx
.####.....
.#..#.....
.#*.#.....
##..######
#.....#..#
T$.P-%..*#
#O....#.O#
##########
..####Y#
###.../#
T$..*O-%
####P###
...#...#
...###$#
......T.
.....#######
.....#.....#
######.###.#
#.....*..#.#
T$*O-%.OP#.#
#O..*....#.#
##.#.#####.#
.#.........#
.###########
.##Y#####
.#./....#
.#..%C.$T
.#..#..O#
.#..##.##
#T$*P-%#.
#..*##.#.
#O.$...#.
##OT...#.
.#######.
######.
#....#.
#**..#.
#.#*.#.
#.#.##.
#.#..#.
#.##.#.
#....##
#..#.P#
%-@@.$T
####O#.
...#O#.
...#O#.
...###.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment