Created
April 25, 2019 05:12
-
-
Save ncrecc/e8a20685114d35a66d3199a0e9f0f9e2 to your computer and use it in GitHub Desktop.
Boulderban (PuzzleScript Script)
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 Boulderban | |
author ncrecc | |
homepage www.puzzlescript.net | |
verbose_logging | |
run_rules_on_level_start | |
again_interval 0 | |
======== | |
OBJECTS | |
======== | |
Background | |
Black | |
Dirt | |
Brown Darkbrown | |
01000 | |
00001 | |
00100 | |
10000 | |
00010 | |
Mud | |
Darkbrown Brown | |
01000 | |
00001 | |
00100 | |
10000 | |
00010 | |
Target | |
Darkblue | |
Wall | |
Lightgray Gray | |
00010 | |
11111 | |
01000 | |
11111 | |
00010 | |
Steel | |
lightgray Gray | |
10000 | |
00010 | |
00100 | |
01000 | |
00001 | |
DGuy | |
Brown Red Orange | |
.000. | |
.222. | |
11111 | |
.111. | |
.0.0. | |
UGuy | |
Brown Red Orange | |
.000. | |
.000. | |
11011 | |
.111. | |
.0.0. | |
LGuy | |
Brown Red Orange | |
.000. | |
.200. | |
1110. | |
.111. | |
.0..0 | |
RGuy | |
Brown Red Orange | |
.000. | |
.002. | |
.0111 | |
.111. | |
0..0. | |
Indicator | |
Darkgreen | |
Rock | |
Gray Darkgray | |
.001. | |
0001. | |
00001 | |
00011 | |
.111. | |
Gem1 | |
Lightblue Blue | |
..0.. | |
.111. | |
00000 | |
.111. | |
..0.. | |
Gem2 | |
Lightblue Blue | |
..1.. | |
.000. | |
11111 | |
.000. | |
..1.. | |
Explosion | |
Orange Red Yellow | |
.101. | |
10201 | |
02020 | |
10201 | |
.101. | |
CornerL | |
black | |
0.... | |
..... | |
..... | |
..... | |
..... | |
CornerR | |
black | |
....0 | |
..... | |
..... | |
..... | |
..... | |
SlipLeft | |
Red | |
..0.. | |
.0... | |
00000 | |
.0... | |
..0.. | |
SlipRight | |
Blue | |
..0.. | |
...0. | |
00000 | |
...0. | |
..0.. | |
======= | |
LEGEND | |
======= | |
. = Background | |
/ = Dirt | |
\ = Mud | |
# = Wall and SlipLeft | |
+ = Steel | |
P = DGuy | |
* = Rock and SlipLeft | |
@ = Rock and SlipLeft and Target | |
O = Target | |
$ = Gem1 and SlipLeft | |
Player = DGuy or UGuy or LGuy or RGuy | |
Corner = CornerL or CornerR | |
Gem = Gem1 or Gem2 | |
Faller = Rock or Gem | |
PlaceCorners = Wall or Mud | |
Slippery = Rock or Gem or PlaceCorners | |
Flat = Steel or Dirt | |
Solid = Flat or Slippery or Player | |
SlipMark = SlipLeft or SlipRight | |
Diggable = Dirt or Mud or Gem | |
Structural = Wall or Steel | |
======= | |
SOUNDS | |
======= | |
Rock MOVE 36772507 | |
================ | |
COLLISIONLAYERS | |
================ | |
Background | |
Indicator | |
Target | |
Player, Wall, Steel, Rock, Gem, Explosion, Dirt, Mud | |
CornerL | |
CornerR | |
SlipMark | |
====== | |
RULES | |
====== | |
(the only time player does not have a slipmark and the turn is not cancelled is at the very beginning of the level. this is initialization) | |
(place corners where they apply) | |
left [PlaceCorners|no Structural] -> [PlaceCorners CornerL|] | |
right [PlaceCorners|no Structural] -> [PlaceCorners CornerR|] | |
up [PlaceCorners Corner|Structural] -> [PlaceCorners|Structural] | |
(form a checkerboard pattern behind the scenes when the level first starts) | |
[Player no SlipMark] -> [Player left Background] | |
startloop | |
[left Background|stationary Background] -> [left Background|right Background] | |
[right Background|stationary Background] -> [right Background|left Background] | |
endloop | |
(turn gem1 into gem2 on every other checkerboard tile) | |
[Gem1 right Background] -> [Gem2] | |
(initialization ends) | |
[Player no SlipMark] -> [Player SlipRight] | |
[moving Background] -> [stationary Background] | |
(adjust player graphics to match direction) | |
[right Player] -> [right RGuy] | |
[left Player] -> [left LGuy] | |
[down Player] -> [down DGuy] | |
[up Player] -> [up UGuy] | |
(fallers fall or slip during the falling objects' turn) | |
[Faller] [Player SlipLeft] -> [down Faller] [Player SlipLeft] | |
(right-slipping fallers do so before left-slipping fallers. fallers seek to make sure the tile diagonally to them that they would normally fall onto is clear of solids) | |
down [> Faller|SlipRight Slippery] -> [> Faller ^ Background|SlipRight Slippery] | |
down [> Faller|SlipLeft Slippery] -> [> Faller v Background|SlipLeft Slippery] | |
horizontal [> Background|Solid] -> [action Background|Solid] | |
horizontal [> Background|] -> [> Background|down Background] | |
down [> Background|Solid] -> [action Background|Solid] | |
[action Background|horizontal Background] -> [action Background|action Background] | |
down [> Faller ^ Background|SlipRight Slippery] -> [^ Faller|SlipLeft Slippery] | |
down [> Faller v Background|SlipLeft Slippery] -> [v Faller|SlipRight Slippery] | |
[> Faller|Solid] -> [Faller|Solid] | |
[Player SlipLeft] -> [Player SlipRight] | |
[action Player no Indicator] -> [Player Indicator] | |
[action Player Indicator] -> [Player SlipLeft] | |
[> Player SlipRight] -> [> Player SlipLeft] | |
horizontal [> Player|Rock] -> [> Player|> Rock] | |
[> Player no Indicator|Diggable] -> [> Player|] | |
[> Player Indicator|Diggable] -> [Player|] | |
[> Player SlipMark] -> [> Player > SlipMark] (info moves with player) | |
(SLIPRIGHT indicates that it's the player's turn to move) | |
(SLIPLEFT indicates that it's the falling elements' turn to move) | |
[> Faller SlipMark] -> [> Faller > SlipMark] (slip info moves with fallers) | |
late [Indicator no Solid] -> [] | |
late [Player SlipLeft] [Gem1 no Indicator] -> [Player SlipLeft] [Gem2 Indicator] | |
late [Player SlipLeft] [Gem2 no Indicator] -> [Player SlipLeft] [Gem1 Indicator] | |
late [Gem Indicator] -> [Gem] | |
late [Player SlipLeft] -> again | |
============== | |
WINCONDITIONS | |
============== | |
All Target on Rock | |
Some Target | |
======= | |
LEVELS | |
======= | |
####### | |
#.....# | |
#..$..# | |
#..$..# | |
#..$.p# | |
#o.$..# | |
#..$..# | |
#.....# | |
####### | |
###### | |
#....# | |
#.#P.# | |
#.*@.# | |
#.O@.# | |
#....# | |
###### | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment