Last active
March 17, 2018 06:15
-
-
Save chz16/d9163b6ce2b6a6956632 to your computer and use it in GitHub Desktop.
Bal Ru's Curse cruelty-free demake code
This file contains hidden or 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 hidden or 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
(version 1.0) | |
title Bal Ru's Curse cruelty-free demake | |
author Creative Windows [cloned by CHz] | |
homepage quiteajolt.com | |
run_rules_on_level_start | |
======== | |
OBJECTS | |
======== | |
Background | |
Blue | |
Block1 | |
Black | |
..0.. | |
.000. | |
.000. | |
.000. | |
..0.. | |
Block2 | |
White | |
..0.. | |
.000. | |
.000. | |
.000. | |
..0.. | |
Block3 | |
Black | |
..... | |
.000. | |
00000 | |
.000. | |
..... | |
Block4 | |
White | |
..... | |
.000. | |
00000 | |
.000. | |
..... | |
Cursor | |
Orange | |
00.00 | |
0...0 | |
..... | |
0...0 | |
00.00 | |
LeftArrow | |
Orange | |
...0. | |
..00. | |
.000. | |
..00. | |
...0. | |
UpArrow | |
Orange | |
..... | |
..0.. | |
.000. | |
00000 | |
..... | |
RightArrow | |
Orange | |
.0... | |
.00.. | |
.000. | |
.00.. | |
.0... | |
DownArrow | |
Orange | |
..... | |
00000 | |
.000. | |
..0.. | |
..... | |
BlockStart | |
Transparent | |
BlockStorage | |
Transparent | |
WinToken | |
Transparent | |
======= | |
LEGEND | |
======= | |
. = Background | |
# = BlockStart | |
1 = Block1 | |
2 = Block2 | |
3 = Block3 | |
4 = Block4 | |
VertBlock = Block1 or Block2 | |
HorizBlock = Block3 or Block4 | |
Block = VertBlock or HorizBlock | |
@ = BlockStart and Cursor | |
Player = Cursor | |
Arrow = LeftArrow or UpArrow or RightArrow or DownArrow | |
- = BlockStorage | |
======= | |
SOUNDS | |
======= | |
EndLevel 39733503 | |
sfx0 13540905 (swap) | |
================ | |
COLLISIONLAYERS | |
================ | |
Background | |
BlockStorage WinToken | |
BlockStart Block | |
Arrow | |
Cursor | |
====== | |
RULES | |
====== | |
(================ | |
LEVEL GENERATION | |
================) | |
(Randomly place 4 of each block. I could make this nicer and generalize it to different grid sizes with a loop but nah.) | |
random [BlockStart] -> [Block1] | |
random [BlockStart] -> [Block1] | |
random [BlockStart] -> [Block1] | |
random [BlockStart] -> [Block1] | |
random [BlockStart] -> [Block2] | |
random [BlockStart] -> [Block2] | |
random [BlockStart] -> [Block2] | |
random [BlockStart] -> [Block2] | |
random [BlockStart] -> [Block3] | |
random [BlockStart] -> [Block3] | |
random [BlockStart] -> [Block3] | |
random [BlockStart] -> [Block3] | |
random [BlockStart] -> [Block4] | |
random [BlockStart] -> [Block4] | |
random [BlockStart] -> [Block4] | |
random [BlockStart] -> [Block4] | |
(=============== | |
PLAYER MOVEMENT | |
===============) | |
(If the player has arrows up but moves in a different direction, clear the arrows.) | |
[Arrow] [> Player | no Arrow] -> [] [> Player | no Arrow] | |
(Cancel movement if the player tries to move outside of the grid.) | |
[> Cursor | no Block] -> [Cursor | no Block] | |
(If the player moves in the direction of an arrow, swap the blocks and clear the arrows.) | |
[Arrow | > Cursor | Arrow] -> [ | > Cursor | Arrow] | |
[> Cursor Block | Arrow] [BlockStorage] -> [> Cursor | Arrow] [BlockStorage Block] | |
[> Cursor | Arrow Block] -> [> Cursor Block | Arrow] | |
[> Cursor | Arrow] [BlockStorage Block] -> [> Cursor | Arrow Block] [BlockStorage] | |
[> Cursor | Arrow] -> [ | Cursor] sfx0 (switch this rule with the one below it to keep the cursor active after the block moves) | |
([> Cursor | Arrow] -> [ | Action Cursor] sfx0) | |
(============== | |
PLAYER ACTIONS | |
==============) | |
(If the player doesn't have arrows up and hits action, then pop up the appropriate arrows.) | |
UP [no Arrow | Action Player VertBlock | no Arrow] -> [DownArrow | Player VertBlock | UpArrow] | |
[Arrow no Block] -> [] | |
RIGHT [no Arrow | Action Player HorizBlock | no Arrow] -> [LeftArrow | Player HorizBlock | RightArrow] | |
[Arrow no Block] -> [] | |
(If the player does have arrows up and hits action, then clear the arrows.) | |
[Action Player] [Arrow] -> [Action Player] [] | |
(============ | |
WIN CHECKING | |
============) | |
(Check that all four rows in the grid match the block to the left of them. If so, this will leave one WinToken on the playing field to match the win condition.) | |
[Block1 | | Block1 | Block1 | Block1 | Block1] -> [Block1 | WinToken | Block1 | Block1 | Block1 | Block1] | |
[Block2 | | Block2 | Block2 | Block2 | Block2] -> [Block2 | WinToken | Block2 | Block2 | Block2 | Block2] | |
[Block3 | | Block3 | Block3 | Block3 | Block3] -> [Block3 | WinToken | Block3 | Block3 | Block3 | Block3] | |
[Block4 | | Block4 | Block4 | Block4 | Block4] -> [Block4 | WinToken | Block4 | Block4 | Block4 | Block4] | |
DOWN [WinToken | WinToken | WinToken | WinToken | ] -> [WinToken | WinToken | WinToken | WinToken | WinToken] | |
[WinToken | Block] -> [ | Block] | |
============== | |
WINCONDITIONS | |
============== | |
Some WinToken | |
======= | |
LEVELS | |
======= | |
message Sort the blocks so each row of the grid only contains the type of block to its left. | |
message Move the cursor with the arrow keys and press X to select a block. Swap that block with one next to it using the arrow keys or hit X to cancel. | |
message Long blocks can only move horizontally, and tall blocks can only move vertically. | |
message Press R to reset with a new puzzle. | |
-....... | |
.1.@###. | |
.3.####. | |
.2.####. | |
.4.####. | |
........ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment