Created
November 11, 2013 06:40
-
-
Save anonymous/7408913 to your computer and use it in GitHub Desktop.
title
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 Aperture Science Sokoban Testing Initiative | |
author Ed Turner | |
homepage www.thoughtcheckgames.com | |
again_interval 0.05 | |
key_repeat_interval 0.2 | |
======== | |
OBJECTS | |
======== | |
Background | |
Grey LightGrey | |
11111 | |
11111 | |
11111 | |
11111 | |
11111 | |
Hole | |
Black | |
Button | |
DarkGrey Red | |
..... | |
.000. | |
.010. | |
.000. | |
..... | |
WeighedButton | |
Red | |
..0.. | |
..... | |
0...0 | |
..... | |
..0.. | |
Door | |
Grey DarkGrey | |
11111 | |
00100 | |
00100 | |
00100 | |
11111 | |
DoorOpen | |
Red DarkGrey | |
11.11 | |
..... | |
..... | |
..... | |
11.11 | |
Target | |
White DarkGray LightBlue | |
.111. | |
12021 | |
10201 | |
12021 | |
.111. | |
Wall | |
Grey White | |
00000 | |
01110 | |
01110 | |
01110 | |
00000 | |
Metal | |
DarkGray LightGray | |
00000 | |
01010 | |
00000 | |
01010 | |
00000 | |
Sentry | |
White Blue Black | |
..0.. | |
.010. | |
.000. | |
.202. | |
2.2.2 | |
LaserH | |
Red | |
..... | |
..... | |
0.0.0 | |
..... | |
..... | |
LaserV | |
Red | |
..0.. | |
..... | |
..0.. | |
..... | |
..0.. | |
ChellD | |
Black LightBrown Orange White Blue | |
.000. | |
.111. | |
2032. | |
0402. | |
.2.2. | |
ChellU | |
Black LightBrown Orange White Blue | |
.000. | |
.101. | |
.2022 | |
.2223 | |
.2.2. | |
ChellR | |
Black LightBrown Orange White Blue | |
.000. | |
0111. | |
02230 | |
.2334 | |
.22.. | |
ChellL | |
Black LightBrown Orange White Blue | |
.000. | |
.1110 | |
03220 | |
4322. | |
..22. | |
Temp | |
Orange | |
..... | |
..0.. | |
.000. | |
..0.. | |
..... | |
Crate | |
Black DarkGray LightGray | |
11.11 | |
11011 | |
.000. | |
11011 | |
11.11 | |
BlueShot | |
Blue LightBlue | |
..... | |
..0.. | |
.010. | |
..0.. | |
..... | |
ShotD | |
Orange Yellow white | |
..2.. | |
..0.. | |
.010. | |
..0.. | |
..... | |
ShotU | |
Orange Yellow white | |
..... | |
..0.. | |
.010. | |
..0.. | |
..2.. | |
ShotR | |
Orange Yellow white | |
..... | |
..0.. | |
2010. | |
..0.. | |
..... | |
ShotL | |
Orange Yellow white | |
..... | |
..0.. | |
.0102 | |
..0.. | |
..... | |
OrPortU | |
Orange Yellow Grey White | |
22222 | |
23332 | |
23332 | |
23332 | |
00100 | |
OrPortD | |
Orange Yellow Grey White | |
00100 | |
23332 | |
23332 | |
23332 | |
22222 | |
OrPortL | |
Orange Yellow Grey White | |
22220 | |
23330 | |
23331 | |
23330 | |
22220 | |
OrPortR | |
Orange Yellow grey white | |
02222 | |
03332 | |
13332 | |
03332 | |
02222 | |
BlPortU | |
Blue LightBlue grey white | |
22222 | |
23332 | |
23332 | |
23332 | |
00100 | |
BlPortD | |
Blue LightBlue Grey White | |
00100 | |
23332 | |
23332 | |
23332 | |
22222 | |
BlPortL | |
Blue LightBlue Gray White | |
22220 | |
23330 | |
23331 | |
23330 | |
22220 | |
BlPortR | |
Blue LightBlue gray white | |
02222 | |
03332 | |
13332 | |
03332 | |
02222 | |
NextShotBlue | |
Orange | |
..... | |
..... | |
..... | |
..... | |
..... | |
======= | |
LEGEND | |
======= | |
Player = ChellU or ChellD or ChellR or ChellL | |
laser = LaserH or LaserV | |
Weight = Crate or Player | |
Solid = Crate or Metal or Door or player or sentry | |
LaserBlock = Crate or Metal or Door or Sentry or Wall or player | |
fizzler = crate or sentry | |
OrangePortal = OrPortU or OrPortD or OrPortR or OrPortL | |
BluePortal = BlPortU or BlPortD or BlPortR or BlPortL | |
Portal = OrangePortal or BluePortal | |
UPortal = OrPortU or BlPortU | |
DPortal = OrPortD or BlPortD | |
RPortal = OrPortR or BlPortR | |
LPortal = OrPortL or BlPortL | |
HPortal = RPortal or Lportal | |
VPortal = UPortal or DPortal | |
NotUPortal = DPortal or RPortal or LPortal | |
NotDPortal = UPortal or RPortal or LPortal | |
NotRPortal = Uportal or DPortal or LPortal | |
NotLPortal = Uportal or RPortal or DPortal | |
Shot = ShotU or ShotD or ShotL or ShotR | |
LaserBlock2 = Crate or Metal or Door or Sentry or Portal | |
. = Background | |
# = Wall | |
M = Metal | |
P = ChellD | |
* = Crate | |
@ = Crate and WeighedButton | |
D = Door | |
B = Button | |
O = Target and NextShotBlue | |
Q = Target and WeighedButton | |
H = Hole | |
1 = OrPortD | |
2 = BlPortR | |
S = Sentry | |
======= | |
SOUNDS | |
======= | |
sfx0 89899302 | |
sfx1 63061703 | |
temp create 87522305 | |
Shot create 65312101 | |
sfx2 39997307 | |
EndLevel 70025105 | |
sfx3 54287301 | |
================ | |
COLLISIONLAYERS | |
================ | |
Background | |
Button, DoorOpen, WeighedButton, NextShotBlue, hole | |
Player, Wall, Crate, Metal, Door, sentry, laser | |
Portal, target | |
Shot, | |
BlueShot, temp | |
====== | |
RULES | |
====== | |
(Portals can only be entered from one side) | |
down [ > solid | NotDPortal] -> [solid | NotDPortal] | |
up [ > solid | NotUPortal] -> [solid | NotUPortal] | |
right [ > solid | NotRPortal] -> [solid | NotRPortal] | |
left [ > solid | NotLPortal] -> [solid | NotLPortal] | |
down [ > player |solid | NotDPortal] -> [player |solid | NotDPortal] | |
up [ > player |solid | NotUPortal] -> [player |solid | NotUPortal] | |
right [ > player | solid | NotRPortal] -> [player |solid | NotRPortal] | |
left [ > player |solid | NotLPortal] -> [player |solid | NotLPortal] | |
down [ > player |solid|sentry | NotDPortal] -> [player |solid |sentry| NotDPortal] | |
up [ > player |solid |sentry| NotUPortal] -> [player |solid |sentry| NotUPortal] | |
right [ > player | solid |sentry| NotRPortal] -> [player |solid |sentry| NotRPortal] | |
left [ > player |solid |sentry| NotLPortal] -> [player |solid |sentry| NotLPortal] | |
[> player | portal temp] -> [player | portal temp] | |
[> player | Portal solid ]-> [player | portal solid] | |
(Orange Portal leads to Blue Portal) | |
late [Solid BluePortal] [temp] -> [BluePortal] [Solid] | |
late [Solid OrangePortal] [temp] -> [OrangePortal] [Solid] | |
[> Player | Orangeportal] [Blueportal] -> [ | temp Orangeportal] [Player Blueportal] | |
[ > Player | Solid |OrangePortal] [BluePortal] -> [ > player | | temp OrangePortal ] [BluePortal Solid] | |
[ > Player | Solid | Sentry| Orangeportal] [BluePortal] -> [> player | > solid | |temp Orangeportal ] [BluePortal Sentry] | |
[Solid BlPortU] -> [down solid BlPortU] | |
[Solid BlPortD] -> [up solid BlPortD] | |
[Solid BlPortR] -> [left solid BlPortR] | |
[Solid BlPortL] -> [right solid BlPortL] | |
(Blue Portal leads to Orange Portal) | |
[> Player | Blueportal] [Orangeportal] -> [ |temp Blueportal] [Player Orangeportal] | |
[ > Player | Solid |BluePortal] [OrangePortal] -> [ | player |temp BluePortal ] [OrangePortal Solid] | |
[ > Player | Solid | Sentry| Blueportal] [OrangePortal] -> [> player | > solid | |temp Blueportal ] [OrangePortal Sentry] | |
[Solid orPortU] -> [down solid OrPortU] | |
[Solid OrPortD] -> [up solid OrPortD] | |
[Solid ORPortR] -> [left solid OrPortR] | |
[Solid OrPortL] -> [right solid OrPortL] | |
late [temp] -> [] | |
(Basic Crate interactions) | |
[ > Player | Crate ] -> [ > Player | > Crate ] | |
[ > solid | sentry] -> [ > solid | > sentry ] | |
[ > Crate | Player ] -> [> Crate | > Player] | |
[ > sentry| Crate | Player] -> [> Sentry | > Crate | > Player ] | |
late [Crate Button] -> [Crate WeighedButton] sfx2 | |
late [WeighedButton no Crate no target] -> [Button] | |
late [Door] [Button Player] -> [DoorOpen] [Button Player] sfx2 | |
late [Door] [WeighedButton] -> [DoorOpen] [WeighedButton] | |
late [DoorOpen] [Button no Player] -> [Door] [Button] | |
[ fizzler target ] -> [target] sfx1 | |
[> solid | hole ] -> [ | hole ] sfx0 | |
(LAZARS!) | |
late [laser] -> [] | |
[ > Player | laser ] -> [ | Laser] sfx3 | |
[ > LaserBlock | laser ] -> [ > LaserBlock | ] | |
late horizontal [ Sentry no portal| no LaserBlock ] -> [Sentry | laserH ] | |
late horizontal [laserH no portal | no LaserBlock] -> [laserH | laserH ] | |
late vertical [ Sentry no portal| no LaserBlock ] -> [Sentry | laserV ] | |
late vertical [laserV no portal| no LaserBlock] -> [laserV | laserV ] | |
late horizontal [laserH|Player] -> [LaserH | ] sfx3 | |
late vertical [LaserV | Player] -> [LaserV | ] sfx3 | |
late [Laser Portal] [HPortal no LaserH] -> [Laser Portal] [ HPortal LaserH] | |
late [Laser Portal] [VPortal no LaserV] -> [Laser Portal] [VPortal LaserV] | |
late up [Dportal LaserV | no LaserBlock] -> [DPortal LaserV | LaserV] | |
late down [Uportal LaserV | no LaserBlock] -> [UPortal LaserV | LaserV] | |
late right [Lportal LaserH | no LaserBlock] -> [LPortal LaserH | LaserH] | |
late left [Rportal LaserH | no LaserBlock] -> [RPortal LaserH | LaserH] | |
late horizontal [laserH no portal | no LaserBlock] -> [laserH | laserH ] | |
late vertical [laserV no portal| no LaserBlock] -> [laserV | laserV ] | |
(Shooting Portals) | |
[action ChellD ] [Target no WeighedButton ] -> [ChellD ShotD] [Target no WeighedButton] | |
random down [ ShotD | Solid ] -> [ | Solid] | |
random down [ShotD | Portal ] -> [ShotD | Wall] | |
random down [ ShotD | Wall ] [target no nextshotblue] [OrangePortal] -> [ | OrPortD] [target NextShotBlue] [wall] | |
random down [ShotD | Wall ] [ target NextShotBlue] [BluePortal] -> [ | BlPortD] [target] [wall] | |
random down [ ShotD | Wall ] [target no NextShotBlue] -> [ | OrPortD] [target NextShotBlue] | |
random down [ShotD | Wall ] [target NextShotBlue] -> [ |BlPortD] [target] | |
random down [ ShotD | no Solid ] -> [ | ShotD ] again | |
[action ChellU ] [Target no WeighedButton ] -> [ChellU ShotU] [Target no WeighedButton] | |
random up [ ShotU | Solid ] -> [ | Solid] | |
random up [ShotU | Portal ] -> [ShotU | Wall] | |
random up [ ShotU | Wall ] [target no NextShotBlue] [OrangePortal] -> [ | OrPortU ] [target NextShotBlue] [wall] | |
random up [ShotU | Wall ] [target NextShotBlue] [BluePortal] -> [ | BlPortU] [Target ] [wall] | |
random up [ ShotU | Wall ] [target no nextshotblue] -> [ | OrPortU ] [target NextShotBlue] | |
random up [ShotU | Wall ] [target NextShotBlue] -> [ | BlPortU ] [target] | |
random up [ ShotU | no Solid ] -> [ | ShotU ] again | |
[action ChellR ] [Target no WeighedButton ] -> [ChellR ShotR] [Target no WeighedButton] | |
random right [ ShotR | Solid ] -> [ | Solid] | |
random right [ShotR | Portal ] -> [ShotR | Wall] | |
random right [ ShotR | Wall ] [Target no NextShotBlue] [OrangePortal]-> [ | OrPortR] [Target NextShotBlue] [Wall] | |
random right [ShotR | Wall ] [target NextShotBlue] [BluePortal] -> [ |BlPortR] [target] [Wall] | |
random right [ ShotR | Wall ] [target no nextshotblue] -> [ | OrPortR ] [Target NextShotBlue] | |
random right [ShotR | Wall ] [Target NextShotBlue] -> [ | BlPortR] [Target] | |
random Right [ ShotR | no Solid ] -> [ | ShotR ] again | |
[action ChellL ] [Target no WeighedButton ] -> [ChellL ShotL] [Target no WeighedButton] | |
random left [ ShotL | Solid ] -> [ | Solid] | |
random left [ShotL | Portal ] -> [ShotL | Wall] | |
random left [ ShotL | Wall ] [Target no NextShotBlue] [OrangePortal] -> [ | OrPortL ] [Target NextShotBlue] [wall] | |
random left [ShotL | Wall ] [Target NextShotBlue] [BluePortal]-> [ | BlPortL] [Target][Wall] | |
random left [ ShotL | Wall ] [Target no NextShotBlue] -> [ | OrPortL ] [Target NextShotBlue] | |
random left [ShotL | Wall ] [Target NextShotBlue] -> [ | BlPortL ] [Target] | |
random left [ ShotL | no Solid ] -> [ | ShotL ] again | |
) | |
(Making Blue shots look right, in an object-saving manner) | |
late [shot portal ] -> [portal] | |
[Shot] [NextShotBlue] -> [Shot BlueShot] [NextShotBlue] | |
late [BlueShot no Shot] -> [ ] | |
(Where are you facing?) | |
[right Player] -> [right ChellR] | |
[left Player] -> [left ChellL] | |
[up Player] -> [up ChellU] | |
[down Player] -> [down ChellD] | |
============== | |
WINCONDITIONS | |
============== | |
All Target on Player | |
======= | |
LEVELS | |
======= | |
Message Hello and, again, welcome. Aperture Science thanks you for your involuntary contribution to this testing intiative. | |
Message You have been provided with a non-functional Aperture Science Handheld Portal Device. Do not open, drop, or lick it. | |
Message Please proceed to the Aperture Science Level Evacuation Terminal. | |
h########## | |
h#.....#..# | |
h#.....#..# | |
##....*#..# | |
#p...**..Q# | |
##....*#..# | |
h########## | |
Message Well done, Test Subject. You licked less than | |
Message ZERO POINT ZERO ONE PERCENT | |
Message of your Aperture Science Handheld Portal Device. | |
.#####.... | |
##.Q.##... | |
##...##... | |
###d###### | |
#........# | |
#..b..*.p# | |
########## | |
Message Please note: Aperture Science Sokoban Crates are not crates. Do not attempt to open Aperture Science Sokoban Crates. | |
Message Any emplyee who suggests that Aperture Science Sokoban Crates are full of candy will be marked for immediate deletion. | |
########## | |
#..b..m..# | |
#...*.d..# | |
#..b*.m..# | |
#...*.m.Q# | |
#p.b..m..# | |
########## | |
Message Notice: Aperture Science Handheld Portal Device activation sequence started. | |
Message Please keep the Aperture Science Handheld Portal Device at least one meter from your eyes, genitals, and hands during the next two tests. | |
Message Blue and orange portals are linked through Aperture Science Quantum Tunnelling Side Effects. Try it out, Test Subject! | |
######### | |
#.....P.# | |
#..b....2 | |
#.......# | |
######### | |
#..#....# | |
#..#.*..# | |
#Q.D....# | |
######1## | |
Message If you feel a burning sensation when passing though the portal, please do not report feeling a burning sensation when passing through the portal. | |
Message If your Aperture Science Sokoban Crate appears to contain candy after passing through a portal, immediately do not open your Aperture Science Sokoban Crate. | |
Message You may wish to dispose of a dishonest Aperture Science Sokoban Crate. We have provided an Aperture Science permanent disposal pit for you, Test Subject. | |
############# | |
#hhbhhhh#...2 | |
#hh.hhhh#.*.# | |
#hh.hhhh#***# | |
#hh.hhhh#hhh# | |
#.......##### | |
#[email protected]...# | |
#....p..#..Q# | |
###1######### | |
Message Portal Device Active. Congratulations, Test Subject. | |
Message Due to a shortage in triggering mechanisms, your Aperture Science Handheld Portal Device will alternate blue and orange portals automatically. | |
Message Press X to fire a portal. | |
######## | |
#....P.# | |
#......# | |
#......# | |
#HHHHHH# | |
#......# | |
#O.....# | |
######## | |
Message Note that failure to properly utilize portals may create unwinnable situations. | |
Message In the event that you become trapped, do not panic. Do not attempt to move. Do not lick the Aperture Science Handheld Portal Device. | |
Message Press Z to undo or R to reset the level. | |
#####........ | |
#.O.#........ | |
#...#........ | |
###D######### | |
#.......#...# | |
#....B..D...# | |
#P......#.*.# | |
#.......#...# | |
############# | |
Message The Aperture Science Handheld Portal Device will not allow portals to form on metal surfaces. | |
Message Any Test Subject attempting to circumvent this Feature will be fatally irradiated and terminated without references. | |
MM###### | |
M......# | |
#*..b..# | |
#......# | |
#.##d### | |
#.#..H.# | |
#p#..Ho# | |
###mmm## | |
Message For your safety, test chambers have been supplied with fully-automated armed-response sentries. | |
Message Under no circumstances are you to act in an unsafe manner within view of these sentries. | |
########mmm | |
#p*.s...hhm | |
######..hhm | |
#...s.....# | |
mhh.......# | |
mhh......o# | |
mmm######## | |
Message Those sentries are quite expensive, you know. | |
Message Records now indicate that Test Subject has been censured for profligate waste of Aperture Science resources. | |
############ | |
#.......s..# | |
#.*........# | |
#...*......# | |
#.....s....# | |
#...#####..# | |
#...#####.o# | |
#...h.*.#mmm | |
#p..h...#... | |
#########... | |
Message Well done, Test Subject! You have completed all available test chambers in | |
Message ERROR: TIMING SUBROUTINE NOT FOUND | |
Message seconds! That might be the fastest time on record. | |
Message Please return to your isolated comfort station while we prepare additional tests. | |
Message We are done for now, Test Subject, but not for good. | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment