Skip to content

Instantly share code, notes, and snippets.

@nvh
Created December 17, 2023 18:13
Show Gist options
  • Save nvh/aec3153ff9d08819491d49e7aa8f8734 to your computer and use it in GitHub Desktop.
Save nvh/aec3153ff9d08819491d49e7aa8f8734 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 ]
[ > 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 ]
late [ ButtonSource NO Weight | Button ButtonTarget ] -> [ ButtonSource Button | ButtonTarget ]
late [ PushSource NO Weight | Pusher Rail | ... | ButtonTarget NO Button ] -> [ PushSource Pusher | Rail | ... | ButtonTarget NO Button ]
==============
WINCONDITIONS
==============
all Target on Crate
=======
LEVELS
=======
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