Created
February 4, 2021 20:50
-
-
Save ncrecc/f5c054f615797307a0743e2d1b4c7464 to your computer and use it in GitHub Desktop.
Project 5 (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 Project 5 | |
author Thinky Collective | |
homepage www.puzzlescript.net | |
verbose_logging | |
( DEV LOG ) | |
(#0 Le Slo: Created polarity mechanics between crates. all graphics are squares. Added a level.) | |
(#1 knexator: Added three very simple levels.) | |
(#2 pancelor: made placeholder graphics easier to parse visually; still placeholder tho. added swap powerup. added two levels.) | |
(#3 velleic: Added a simple level in the middle) | |
(#4 jcGyo: Fixed connected crates moving bug when the main one being pushed can't move) | |
(#5 Cantaloupe: Fix Swap overlap with Player bug when pushed into something which blocks it. Added two levels) | |
(#6 ncrecc: added, uhh, maybe more stuff than i should. added a lava/wicker mechanic, added a magnetic player mechanic, and fixed a movement bug when three same-polarity objects are in a line.) | |
(#7 ncrecc: added pins) | |
(#8 ncrecc: added 6 levels and remade the old wicker level. made it so magnetized player can consume swap blocks by pressing space while adjacent to them. probably some misc bugfixes related to fire) | |
======== | |
OBJECTS | |
======== | |
Background | |
GREEN | |
Target | |
transparent DarkBlue | |
00000 | |
01110 | |
01010 | |
01110 | |
00000 | |
Wall | |
BROWN | |
PlayerNeutral | |
transparent Orange | |
01110 | |
11111 | |
11111 | |
11111 | |
01110 | |
CrateNeutral (use sparingly) | |
Orange | |
CrateMinus | |
Blue | |
CratePlus | |
Red | |
Swap | |
transparent lightgreen | |
00000 | |
01110 | |
01110 | |
01110 | |
00000 | |
LevelBound | |
DARKGREY | |
PlayerMinus | |
transparent Blue | |
01110 | |
11111 | |
11111 | |
11111 | |
01110 | |
PlayerPlus | |
transparent Red | |
01110 | |
11111 | |
11111 | |
11111 | |
01110 | |
TempHorizontal | |
#ff00ff | |
..... | |
..... | |
00000 | |
..... | |
..... | |
TempVertical | |
#ff00ff | |
..0.. | |
..0.. | |
..0.. | |
..0.. | |
..0.. | |
Lava | |
Red Orange | |
00011 | |
01100 | |
10001 | |
00110 | |
11000 | |
Flame | |
Yellow Orange | |
..0.. | |
0.000 | |
00100 | |
01110 | |
.010. | |
Wicker | |
Darkbrown | |
00000 | |
0.0.0 | |
00.00 | |
0.0.0 | |
00000 | |
PinInactive (any crates/wicker on this will be immobile. active/inactive is purely visual cue to demonstrate it won't pin down the player) | |
Purple | |
..... | |
.0.0. | |
..... | |
.0.0. | |
..... | |
PinActive | |
Pink | |
..... | |
.0.0. | |
..... | |
.0.0. | |
..... | |
======= | |
LEGEND | |
======= | |
player = PlayerNeutral or PlayerMinus or PlayerPlus | |
. = Background | |
, = LevelBound | |
# = Wall | |
P = PlayerNeutral | |
q = PlayerNeutral and Target | |
O = Target | |
* = CratePlus | |
@ = CrateMinus | |
% = Swap | |
! = CratePlus and Target | |
$ = CrateMinus and Target | |
& = Swap and Target | |
b = PlayerMinus | |
d = PlayerPlus | |
+ = Lava | |
x = Wicker | |
: = PinInactive | |
; = PinActive and Wicker | |
? = Swap and Wall | |
" = PinActive and CrateMinus | |
Crate = CrateMinus or CratePlus or CrateNeutral or Wicker | |
Pushable = Crate or Swap | |
BlocksMovement = Crate or Wall | |
Minus = CrateMinus or PlayerMinus | |
Plus = CratePlus or PlayerPlus | |
Temp = TempHorizontal or TempVertical | |
Flammable = Swap or Player or Wicker | |
HeatConductor = CrateMinus or CratePlus or CrateMinus (the crates are steel. the player is organic. magnetic players (player-, player+) are either organic magnets (???), beings with steel skin and non-steel vital organs, or robots that explode in high heat) | |
Pin = PinInactive or PinActive | |
Heavy = CrateNeutral or CrateMinus or CratePlus | |
Light = Wicker or Swap | |
======= | |
SOUNDS | |
======= | |
Flame create 62546102 | |
PinActive create 55825507 | |
PinInactive create 56452307 | |
( 58682707 (magnet repel)) | |
( 22599907 (push crate)) | |
( 57745307 (push wicker)) | |
sfx1 12191303 (swap consume) | |
================ | |
COLLISIONLAYERS | |
================ | |
TempHorizontal | |
TempVertical | |
Background | |
Lava | |
Player, Wall, Crate, LevelBound | |
Swap | |
Target, Pin | |
Flame | |
====== | |
RULES | |
====== | |
startloop | |
[action PlayerPlus|Swap] -> [action PlayerMinus|] sfx1 | |
[action PlayerMinus|Swap] -> [action PlayerPlus|] sfx1 | |
endloop | |
[> Player | Wall] -> [Player | Wall] | |
[> Player | Pushable no Pin] -> [ > Player | > Pushable no Pin] | |
[> Swap | Swap no Pin] -> [> Swap | > Swap no Pin] | |
(Currently Swaps are able to phase through Walls, if that should not be allowed, replace LevelBound with Wall) | |
[> Swap | LevelBound] -> [Swap | LevelBound] | |
[> Swap | stationary Swap] -> [Swap | Swap] | |
[> Player | stationary Swap] -> [Player | Swap] | |
vertical [Minus|Minus|Minus] -> [Minus|Minus TempVertical|Minus] | |
vertical [Plus|Plus|Plus] -> [Plus|Plus TempVertical|Plus] | |
horizontal [Minus|Minus|Minus] -> [Minus|Minus TempHorizontal|Minus] | |
horizontal [Plus|Plus|Plus] -> [Plus|Plus TempHorizontal|Plus] | |
vertical [Minus no TempVertical | Minus no TempVertical] -> [< Minus | > Minus] | |
vertical [Minus TempVertical | Minus no TempVertical] -> [Minus TempVertical | > Minus] | |
horizontal [Minus no TempHorizontal | Minus no TempHorizontal ] -> [< Minus | > Minus] | |
horizontal [Minus TempHorizontal | Minus no TempHorizontal] -> [Minus TempHorizontal | > Minus] | |
vertical [Plus no TempVertical | Plus no TempVertical] -> [< Plus | > Plus] | |
vertical [Plus TempVertical | Plus no TempVertical] -> [Plus TempVertical | > Plus] | |
horizontal [Plus no TempHorizontal | Plus no TempHorizontal] -> [< Plus | > Plus] | |
horizontal [Plus TempHorizontal | Plus no TempHorizontal] -> [Plus TempHorizontal | > Plus] | |
[> Crate Pin] -> [Crate Pin] | |
[> Crate | Crate no Pin] -> [> Crate | > Crate no Pin] | |
[> Crate | stationary BlocksMovement] -> [Crate | BlocksMovement] | |
[moving Minus | stationary Plus] -> [moving Minus | moving Plus] | |
+[moving Plus | stationary Minus] -> [moving Plus | moving Minus] | |
[> Crate | Crate no Pin] -> [> Crate | > Crate no Pin] (kludge for wicker/cratesneutral being pushed by connected magnet blocks) | |
[> Crate | stationary BlocksMovement] -> [Crate | BlocksMovement] (aaa) | |
[Flame stationary HeatConductor Lava] -> [action Flame stationary HeatConductor Lava] | |
[Flame moving HeatConductor Lava] -> [moving Flame moving HeatConductor Lava] | |
[stationary Flame stationary HeatConductor|moving Flame] -> [action Flame HeatConductor|moving Flame] | |
[stationary Flame] -> [] | |
[> Crate Pin] -> [Crate Pin] | |
(if you uncomment this bit it should make it so that any magnets attracted to a magnet that's stuck on a pin, or any magnets attracted to *those* magnets, and so on, will be immobile. however it doesn't really line up with how magnets aren't rigid otherwise, e.g. if a magnet attached to a magnet makes a move that results in its attachment moving into a wall, that doesn't cancel the magnet's move, it just separates the magnets.) | |
( | |
[CratePlus Pin] -> [action CratePlus Pin] | |
[CrateMinus Pin] -> [action CrateMinus Pin] | |
startloop | |
[action CrateMinus|CratePlus] -> [action CrateMinus|action CratePlus] | |
[action CratePlus|CrateMinus] -> [action CratePlus|action CrateMinus] | |
endloop | |
) | |
late [CratePlus Swap] -> [CrateMinus] sfx1 | |
late [CrateMinus Swap] -> [CratePlus] sfx1 | |
late [PlayerPlus Swap] -> [PlayerMinus] sfx1 (how would this even happen?) | |
late [PlayerMinus Swap] -> [PlayerPlus] sfx1 | |
late[Minus | Minus] -> again | |
late[Plus | Plus] -> again | |
late [Flammable Lava] -> [Flame Lava] | |
late [HeatConductor Lava] -> [HeatConductor Flame Lava] | |
startloop | |
late [Flame|Flammable] -> [Flame|Flame] | |
late [Flame|HeatConductor] -> [Flame|HeatConductor Flame] | |
endloop | |
late [Flame] -> again | |
late [no Background] -> [Background] | |
late [Temp] -> [] | |
late [Crate PinInactive] -> [Crate PinActive] | |
late [PinActive no Crate] -> [PinInactive] | |
============== | |
WINCONDITIONS | |
============== | |
no Wicker | |
All Flame on HeatConductor (kludge; don't win until everything flammable is finished burning) | |
some Player | |
All Target on Crate | |
======= | |
LEVELS | |
======= | |
(Le Slo) | |
############ | |
#####p.##### | |
#*###..###@# | |
#..........# | |
#o#..@*..#o# | |
###......### | |
############ | |
(knexator) | |
####.. | |
#.o#.. | |
#..### | |
#!p..# | |
#..@.# | |
#..### | |
####.. | |
(knexator) | |
####.. | |
#.o#.. | |
#..### | |
#!p..# | |
#..*.# | |
#..### | |
####.. | |
(velleic) | |
#####.. | |
#.oo#.. | |
##.*### | |
#...*p# | |
#*...## | |
#o..##. | |
#####.. | |
(knexator) | |
........ | |
..@..*.. | |
...oo... | |
...oo... | |
..p..@.. | |
.*...... | |
(pancelor) | |
.#####.. | |
.#...### | |
##@..*o# | |
#...@p## | |
#..o###. | |
#.o.#... | |
#####... | |
(pancelor) | |
###.. | |
#o### | |
#.$.# | |
#@..# | |
#..p# | |
#%.## | |
#..#. | |
####. | |
(Cantaloupe) | |
######## | |
###....# | |
###*.p.# | |
###@#..# | |
###*#%.# | |
#o.o.o.# | |
######## | |
(Cantaloupe) | |
message requires Swap can phase through Wall | |
,,,,,,,,, | |
,#######, | |
,#....o#, | |
,#.#*#.#, | |
,#.#$#.#, | |
,#.###.#, | |
,#.p%%.#, | |
,#.....#, | |
,#######, | |
,,,,,,,,, | |
(ncrecc) | |
########## | |
#::::::::# | |
#:.....q:# | |
#:.::::::# | |
#:......:# | |
#::::::.:# | |
#:@.....:# | |
#::::::::# | |
########## | |
(ncrecc) | |
######### | |
#..:::::# | |
#..:...:# | |
#.@:@:."# | |
#p...:..o | |
#.@:@:.:# | |
#..:...:# | |
#..:::::# | |
######### | |
(ncrecc) | |
message "Oh no, lava! My only weakness!" | |
message "Well, that and my poor grasp on the laws of thermodynamics." | |
,#+++++++++ | |
,#++..o.+++ | |
##+.......+ | |
+++...o...+ | |
p@...@+.@.+ | |
+++...o...+ | |
##+++++++++ | |
(ncrecc) | |
message "Who left this firewood laying around?" | |
####### | |
##.p.## | |
##$.$## | |
#.....# | |
#..x..# | |
#.....# | |
#..+..# | |
####### | |
(ncrecc) | |
,###### | |
,#....# | |
##.@..# | |
#.x:xp# | |
#..@..# | |
++..;.# | |
+++...# | |
+++#### | |
message "I have to push the magnets!" | |
message "No, PlayerNeutral, you are the magnets." | |
message And then PlayerMinus was a magnet. | |
(ncrecc) | |
######### | |
#.......# | |
#...b...# | |
#.@.o.@.# | |
#.o.@.o.# | |
#.......# | |
######### | |
(ncrecc) | |
message "Hm, I wonder if I can still reach for those swap blocks..." | |
message (Press SPACE to consume adjacent swap blocks) | |
(this one's a little boring) | |
###?????### | |
#.........# | |
?..*.+.ob.? | |
?.*.o+*.o.? | |
#.........# | |
###?????### | |
(ncrecc; test) | |
( | |
######## | |
#x..p..# | |
#..*...# | |
#...:..# | |
#..@.@.# | |
#......# | |
#...@.@# | |
######## | |
) | |
####### | |
#.....# | |
#.....# | |
#.....# | |
#.....# | |
#.....# | |
####### |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment