Created
June 27, 2020 08:10
-
-
Save variousauthors/e1298438beada0c676c1d25c954183ce to your computer and use it in GitHub Desktop.
Abandon (PuzzleScript Script)
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
title Abandon | |
author various authors | |
homepage www.puzzlescript.net | |
zoomscreen 18x9 | |
run_rules_on_level_start | |
======== | |
OBJECTS | |
======== | |
Background | |
black | |
Floor | |
#A87600 #AB770D | |
01010 | |
10011 | |
00100 | |
11001 | |
01010 | |
Target | |
DarkBlue | |
WallOuter | |
brown DARKBROWN | |
11111 | |
11111 | |
00000 | |
00000 | |
00000 | |
WallInner | |
brown DARKBROWN | |
11111 | |
11111 | |
11111 | |
11111 | |
11111 | |
WallZ | |
brown DARKBROWN | |
..... | |
..... | |
11111 | |
11111 | |
11111 | |
Player (camera) | |
TRANSPARENT | |
ConsoleCenter | |
TRANSPARENT | |
Engineer | |
blue | |
RobotNoPush | |
red | |
RobotPush | |
red | |
Controls | |
orange | |
VirtualControls | |
yellow | |
SourceZ | |
grey | |
..... | |
..... | |
..... | |
00000 | |
00000 | |
Source | |
GREY blue darkgrey | |
00100 | |
00000 | |
00000 | |
22222 | |
22222 | |
US | |
grey blue | |
..... | |
..... | |
..... | |
..... | |
..... | |
USZ | |
grey blue | |
..... | |
..... | |
..... | |
..1.. | |
..1.. | |
DS | |
LIGHTGRAY blue | |
..1.. | |
..1.. | |
..1.. | |
..... | |
..... | |
LS | |
grey blue | |
111.. | |
..... | |
..... | |
..... | |
..... | |
RS | |
grey blue | |
..111 | |
..... | |
..... | |
..... | |
..... | |
overload | |
red | |
..0.. | |
..... | |
..... | |
..... | |
..... | |
UIHorizontal | |
LIGHTGREEN | |
..... | |
..... | |
00000 | |
..... | |
..... | |
UIVertical | |
LIGHTGREEN | |
..0.. | |
..0.. | |
..0.. | |
..0.. | |
..0.. | |
UICornerTL | |
LIGHTGREEN | |
..... | |
..... | |
..000 | |
..0.. | |
..0.. | |
UICornerTR | |
LIGHTGREEN | |
..... | |
..... | |
000.. | |
..0.. | |
..0.. | |
UICornerBL | |
LIGHTGREEN | |
..0.. | |
..0.. | |
..000 | |
..... | |
..... | |
UICornerBR | |
LIGHTGREEN | |
..0.. | |
..0.. | |
000.. | |
..... | |
..... | |
VirtualHArm | |
LIGHTGREEN | |
VirtualVArm | |
LIGHTGREEN | |
VSource | |
LIGHTGREEN | |
VRobotNoPush | |
LIGHTGREEN | |
00.00 | |
0...0 | |
..... | |
0...0 | |
00.00 | |
VRobotPush | |
LIGHTGREEN | |
00.00 | |
0...0 | |
..... | |
0...0 | |
00.00 | |
HorizontalArm | |
DARKGRAY | |
00000 | |
00000 | |
00000 | |
00000 | |
00000 | |
VerticalArm | |
DARKGRAY | |
00000 | |
00000 | |
00000 | |
00000 | |
00000 | |
FirstTurn | |
TRANSPARENT | |
Shadow | |
TRANSPARENT | |
======= | |
LEGEND | |
======= | |
voidscape = Background | |
? = voidscape | |
' = voidscape | |
( lab ) | |
. = Floor | |
# = WallInner and Floor | |
% = WallOuter and Floor | |
A = RobotPush and Floor | |
S = Source and Floor | |
c = Controls and Floor | |
q = VirtualControls and Floor | |
[ = VerticalArm and Floor | |
] = HorizontalArm and Floor | |
( virtual console ) | |
| = UIVertical and voidscape | |
- = UIHorizontal and voidscape | |
⌜ = UICornerTL and voidscape | |
⌝ = UICornerTR and voidscape | |
⌞ = UICornerBL and voidscape | |
⌟ = UICornerBR and voidscape | |
* = ConsoleCenter and voidscape | |
B = VRobotPush and voidscape | |
Z = VSource and voidscape | |
{ = VirtualVArm and voidscape | |
} = VirtualHArm and voidscape | |
( objects ) | |
VRobot = VRobotNoPush or VRobotPush | |
Robot = RobotNoPush or RobotPush | |
ConcreteArm = HorizontalArm or VerticalArm | |
VirtualArm = VirtualHArm or VirtualVArm | |
Arm = HorizontalArm or VerticalArm | |
ComplexArm = VirtualArm or HorizontalArm | |
Overlays = DS or US or LS or RS | |
Pushable = Source or VSource | |
Pusher = Player or RobotPush or Arm or VRobotPush | |
Subject = Engineer or Robot | |
Wall = WallInner or WallOuter | |
UI = UIHorizontal or UIVertical or UICornerTL or UICornerTR or UICornerBL or UICornerBR | |
Camera = Player | |
Start = Player and Engineer and Floor | |
P = Start and FirstTurn | |
======= | |
SOUNDS | |
======= | |
================ | |
COLLISIONLAYERS | |
================ | |
voidscape | |
Floor | |
Target, Controls, VirtualControls, ConsoleCenter | |
Wall, Source, UI, Player, Arm, VirtualArm, VSource | |
Engineer, Robot, VRobot | |
SourceZ, WallZ | |
US | |
USZ | |
DS | |
LS | |
RS, FirstTurn | |
overload, Shadow | |
====== | |
RULES | |
====== | |
( NOTES ) | |
( something should happen if the player makes a loop ) | |
( I was thinking everything inside the loop is obliterated ) | |
( and replaced with traversable voidscape ) | |
( and a shocking sound effect plays ) | |
( but it should be impossible to make a loop for the first little while ) | |
( the game ends when the robot escapes like this ) | |
( and stands on the cliff outside overlooking the city ) | |
( should the flow that passes through walls appear over the walls? ) | |
( add virtual blocks that follow the concrete blocks ) | |
( add a virtual robot that follows the concrete robot ) | |
( when the player tries to disengage the console in a way ) | |
( that would create an illegal position for the robot ) | |
( cancel that shit ) | |
( while in the console, the robot is not a pusher ) | |
( the concrete arms control the virtual arms ) | |
( because the concrete arms might collide with something ) | |
( and this should cancel the virtual arms turn ) | |
( on every turn after the first ) | |
( we want the turn to cancel if the player did not move ) | |
( this is because the player controls decorators like the Engineer ) | |
( which do not interact with blocks on their own ) | |
( TODO the control pannels should be offset from the cage ) | |
( this is to prevent the concrete arms from colliding with the controls ) | |
[Player no FirstTurn no ConsoleCenter] -> [Player Shadow] | |
[FirstTurn] -> [] | |
late [Player Shadow] -> cancel | |
late [Shadow] -> [] | |
( the player pilotes the engineer ) | |
[> Player Engineer] -> [> Player > Engineer] | |
( TODO when the robot is free the player pilotes the robot directly ) | |
( before the robot is free the player pilotes the arms ) | |
horizontal [> Player Robot][HorizontalArm][VirtualHArm] -> [> Player Robot][> HorizontalArm][> VirtualHArm] | |
vertical [> Player Robot][VerticalArm][VirtualVArm] -> [> Player Robot][> VerticalArm][> VirtualVArm] | |
horizontal [> Player ConsoleCenter][HorizontalArm][VirtualHArm] -> [Player ConsoleCenter][> HorizontalArm][> VirtualHArm] | |
vertical [> Player ConsoleCenter][VerticalArm][VirtualVArm] -> [Player ConsoleCenter][> VerticalArm][> VirtualVArm] | |
( the arms control the robot and the virtual robot ) | |
[> Arm][Robot][VRobot] -> [> Arm][> Robot][> VRobot] | |
( --- SECTION: Virtual Console --- ) | |
( the engineer can activate and deactivate the robot ) | |
[action Player Engineer Controls] [Robot] -> [Engineer Controls] [Player Robot] | |
[action Player Robot] [Engineer] -> [Robot] [Player Engineer] | |
( the engineer can activate the virtual console ) | |
[action Player Engineer VirtualControls] [ConsoleCenter] [RobotPush] [VRobotPush] -> [Engineer VirtualControls] [Player ConsoleCenter] [RobotNoPush] [VRobotNoPush] | |
( the engineer can't deactivate the virtual console if the robot is in an illegal position ) | |
[action Player ConsoleCenter] [Engineer] [Robot Source] -> cancel | |
( the engineer can deactivate the virtual console ) | |
[action Player ConsoleCenter] [Engineer] [RobotNoPush] [VRobotNoPush] -> [ConsoleCenter] [Player Engineer] [RobotPush] [VRobotPush] | |
( --- SECTION: Pushing --- ) | |
( pushers can push ) | |
[ > Pusher | Pushable ] -> [ > Pusher | > Pushable ] | |
( NOTE: the robot is not a pusher when used via the console ) | |
( see "Virtual Console" above ) | |
( --- SECTION: Render --- ) | |
( clear the overlays ) | |
[ Overlays ] -> [] | |
[ overload ] -> [] | |
( render overlays ) | |
( adjacent sources transfer power ) | |
late right [ Source | Source ] -> [ Source RS | Source LS ] | |
late down [ Source | Source ] -> [ Source DS | Source US ] | |
( power transfers through walls ) | |
late right [ Source | Wall | Source ] -> [ Source RS | Wall RS LS | Source LS ] | |
late down [ Source | Wall | Source ] -> [ Source DS | Wall DS US | Source US ] | |
( overloads ) | |
late [ RS LS DS ] -> [ RS LS DS overload ] | |
late [ RS LS US ] -> [ RS LS US overload ] | |
late [ US DS LS ] -> [ US DS LS overload ] | |
late [ US DS RS ] -> [ US DS RS overload ] | |
( render Z ) | |
[ SourceZ ] -> [] | |
[ USZ ] -> [] | |
[ WallZ ] -> [] | |
late up [ Source | no SourceZ ] -> [ Source | SourceZ ] | |
late up [ Source US | SourceZ ] -> [ Source US | SourceZ USZ ] | |
late up [ Wall | no WallZ ] -> [ Wall | WallZ ] | |
late up [ Wall US | WallZ ] -> [ Wall US | WallZ USZ ] | |
============== | |
WINCONDITIONS | |
============== | |
======= | |
LEVELS | |
======= | |
############## | |
#............# | |
#.#%%%%%%%%#.# | |
#.#.S.S....#.# | |
#[#.A......#.# | |
#.#...S.SS.#.# | |
#.%%%%%%%%%%.# | |
#...]...CQ...# | |
#............# | |
#..S..P..S...# | |
#...S..#.S...# | |
#......#.....# | |
############## | |
?????????????? | |
?????????????? | |
?????????????? | |
??⌜--------⌝??? | |
??|'Z'Z''''|?? | |
?{|'B'*''''|?? | |
??|'''Z'ZZ'|?? | |
??⌞--------⌟?? | |
????}????????? | |
?????????????? | |
?????????????? | |
?????????????? | |
?????????????? | |
?????????????? | |
?????????????? | |
?????????????? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment