Created
December 27, 2020 02:36
-
-
Save jseakle/08b9ca38596c7c928e65f6c2578fc0e1 to your computer and use it in GitHub Desktop.
Culprit (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 Culprit | |
author Jake Eakle | |
color_palette proteus_mellow | |
background_color Black | |
noaction | |
key_repeat_interval .5 | |
noundo | |
norestart | |
again_interval 1.2 | |
(same room, at first spill overwhelming, can't clean. then can clean, then smaller, then none, then all???) | |
======== | |
OBJECTS | |
======== | |
Wall | |
gray blue | |
00011 | |
01100 | |
00000 | |
00110 | |
00000 | |
Wall2 | |
gray blue | |
00000 | |
01100 | |
00000 | |
00011 | |
11000 | |
Player | |
#80B #20C #60C #A03 | |
.11.. | |
.002. | |
22301 | |
..00. | |
..1.1 | |
Jar | |
#A90 #EDE #DA0 | |
..... | |
20002 | |
.212. | |
21112 | |
22222 | |
SpillJar | |
#A90 #000 #DA0 | |
..... | |
20002 | |
.212. | |
21112 | |
22222 | |
Background | |
#000000 #0C0C0F #121808 #010201 | |
00000 | |
01010 | |
00000 | |
00000 | |
00100 | |
Spill11 | |
#C0C0C0 | |
..0.. | |
0..0. | |
.0... | |
....0 | |
.0.0. | |
Spill1a1 | |
#C0C0C0 | |
..0.. | |
0..0. | |
.0... | |
....0 | |
.0.0. | |
Spill21 | |
#C0C0C0 | |
....0 | |
.0... | |
...0. | |
..0.0 | |
0.... | |
Spill2a1 | |
#C0C0C0 | |
....0 | |
.0... | |
...0. | |
..0.0 | |
0.... | |
Spill31 | |
#C0C0C0 | |
..... | |
0.0.. | |
..... | |
.0..0 | |
0..0. | |
Spill3a1 | |
#C0C0C0 | |
..... | |
0.0.. | |
..... | |
.0..0 | |
0..0. | |
(lv2) | |
Spill12 | |
#C0C0C0 | |
..0.. | |
0..0. | |
.0... | |
....0 | |
.0.0. | |
Spill1a2 | |
#C0C0C0 | |
..0.. | |
0..0. | |
.0... | |
....0 | |
.0.0. | |
Spill22 | |
#C0C0C0 | |
....0 | |
.0... | |
...0. | |
..0.0 | |
0.... | |
Spill2a2 | |
#C0C0C0 | |
....0 | |
.0... | |
...0. | |
..0.0 | |
0.... | |
Spill32 | |
#C0C0C0 | |
..... | |
0.0.. | |
.0... | |
....0 | |
0..0. | |
Spill3a2 | |
#C0C0C0 | |
..... | |
0.0.. | |
.0... | |
....0 | |
0..0. | |
Jar2 | |
#A90 #EDE #DA0 | |
..... | |
20002 | |
.212. | |
21112 | |
22222 | |
SpillJar2 | |
#A90 #000 #DA0 | |
..... | |
20002 | |
.212. | |
21112 | |
22222 | |
(lv3) | |
Spill13 | |
#C0C0C0 | |
..0.. | |
0..0. | |
.0... | |
....0 | |
.0.0. | |
Spill1a3 | |
#C0C0C0 | |
..0.. | |
0..0. | |
.0... | |
....0 | |
.0.0. | |
Spill23 | |
#C0C0C0 | |
....0 | |
.0... | |
...0. | |
..0.0 | |
0.... | |
Spill2a3 | |
#C0C0C0 | |
....0 | |
.0... | |
...0. | |
..0.0 | |
0.... | |
Spill33 | |
#C0C0C0 | |
..... | |
0.0.. | |
..... | |
.0..0 | |
0..0. | |
Spill3a3 | |
#C0C0C0 | |
..... | |
0.0.. | |
..... | |
.0..0 | |
0..0. | |
Jar3 | |
#A90 #EDE #DA0 | |
..... | |
20002 | |
.212. | |
21112 | |
22222 | |
SpillJar3 | |
#A90 #000 #DA0 | |
..... | |
20002 | |
.212. | |
21112 | |
22222 | |
(lv4) | |
Spill14 | |
#C0C0C0 | |
..0.. | |
0..0. | |
.0... | |
....0 | |
.0.0. | |
Spill1a4 | |
#C0C0C0 | |
..0.. | |
0..0. | |
.0... | |
....0 | |
.0.0. | |
Spill24 | |
#C0C0C0 | |
....0 | |
.0... | |
...0. | |
..0.0 | |
0.... | |
Spill2a4 | |
#C0C0C0 | |
....0 | |
.0... | |
...0. | |
..0.0 | |
0.... | |
Spill34 | |
#C0C0C0 | |
..... | |
0.0.. | |
..... | |
.0..0 | |
0..0. | |
Spill3a4 | |
#C0C0C0 | |
..... | |
0.0.. | |
..... | |
.0..0 | |
0..0. | |
Jar4 | |
#A90 #EDE #DA0 | |
..... | |
20002 | |
.212. | |
21112 | |
22222 | |
Jar5 | |
#A90 #EDE #DA0 | |
..... | |
20002 | |
.212. | |
21112 | |
22222 | |
SpillJar4 | |
#A90 #000 #DA0 | |
..... | |
20002 | |
.212. | |
21112 | |
22222 | |
Jar6 | |
#A90 #EDE #DA0 | |
..... | |
20002 | |
.212. | |
21112 | |
22222 | |
SpillJar6 | |
#A90 #000 #DA0 | |
..... | |
20002 | |
.212. | |
21112 | |
22222 | |
SpillJar7 | |
#A90 #000 #DA0 | |
..... | |
20002 | |
.212. | |
21112 | |
22222 | |
Exit | |
White | |
..... | |
..... | |
..... | |
..... | |
..... | |
Toggle | |
White Green | |
..... | |
..... | |
..... | |
..... | |
..... | |
Toggle2 | |
White Green | |
..... | |
..... | |
..... | |
..... | |
..... | |
Toggle3 | |
White Green | |
..... | |
..... | |
..... | |
..... | |
..... | |
3Toggle | |
White Green | |
..... | |
..... | |
..... | |
..... | |
..... | |
3Toggle2 | |
White Green | |
..... | |
..... | |
..... | |
..... | |
..... | |
3Toggle3 | |
White Green | |
..... | |
..... | |
..... | |
..... | |
..... | |
3Toggle4 | |
White Green | |
..... | |
..... | |
..... | |
..... | |
..... | |
Empty | |
White | |
..... | |
..... | |
..... | |
..... | |
..... | |
Empty4 | |
White | |
..... | |
..... | |
..... | |
..... | |
..... | |
NoMess | |
White | |
..... | |
..... | |
..... | |
..... | |
..... | |
======= | |
LEGEND | |
======= | |
Spill1 = Spill11 or Spill21 or Spill31 | |
Spill2 = Spill12 or Spill22 or Spill32 | |
Spill3 = Spill13 or Spill23 or Spill33 | |
Spill4 = Spill14 or Spill24 or Spill34 | |
others1 = SPILL1A1 or SPILL2A1 or SPILL3A1 | |
others2 = SPILL1A2 or SPILL2A2 or SPILL3A2 | |
others3 = SPILL1A3 or SPILL2A3 or SPILL3A3 | |
others4 = SPILL1A4 or SPILL2A4 or SPILL3A4 | |
Walls = Wall or Wall2 | |
Jars = Jar or Jar or Jar2 or Jar3 or Jar4 or Jar5 or Jar6 | |
SpillJars = SpillJar or SpillJar2 or SpillJar3 or SpillJar4 or SpillJar6 or SpillJar7 | |
(Character equivalences for level creation.) | |
@ = Player | |
. = Background | |
# = Wall | |
3 = Wall2 | |
G = Wall | |
* = Jar | |
& = Jar2 | |
% = Jar3 | |
$ = Jar4 | |
` = Jar5 | |
p = Jar6 | |
e = Empty4 | |
! = Exit | |
t = Toggle2 | |
q = 3Toggle2 | |
m = Player and Empty4 | |
======= | |
SOUNDS | |
======= | |
Sfx1 73155703 (Web creation sound.) | |
Sfx2 56169902 (Web destruction sound.) | |
Sfx3 11025308 (Door open sound. I love it, sorry.) | |
Sfx4 85050702 (Death sound.) | |
sfx5 23117489 (Gem zapping Ant) | |
================ | |
COLLISIONLAYERS | |
================ | |
Background (Background.) | |
Exit Toggle Toggle2 Toggle3 3Toggle 3Toggle2 3Toggle3 3Toggle4 NoMess | |
Spill2 others2 Spill3 others3 Spill4 others4 Empty Empty4 | |
Wall Wall2 Player Jar Spill1 others1 Jars SpillJars (Foreground: yourself, and other things you cannot step on.) | |
====== | |
RULES | |
====== | |
[Toggle3] -> [Toggle] | |
[Toggle2] -> [Toggle3] | |
late [Toggle] -> [Toggle2] | |
[3Toggle3] -> [3Toggle4] | |
[3Toggle2] -> [3Toggle3] | |
[3Toggle] -> [3Toggle2] | |
[3Toggle4] -> [3Toggle] | |
[> Player | Exit] [Jars] -> message I'm very hungry... | |
(lv1) | |
[> Player | | Jar] -> [|Player | SpillJar] | |
[> Player | Jar] -> [Player | SpillJar] | |
late [Player | SpillJar |] -> [Player | SpillJar | random Spill1] | |
[Spill11 | No Spill1 ] -> [Spill1a1 |] | |
[Spill1a1 | No Spill1 ] -> [Spill11 | random Spill1] | |
[Spill21 | No Spill1 ] -> [Spill2a1 |] | |
Left Down [Spill2a1 | No Spill1 ] -> [Spill21 | random Spill1] | |
[Spill2a1 | No Spill1 ] -> [Spill21 | random Spill1] | |
[Spill31 | No Spill1 ] -> [Spill3a1 |] | |
Right [Spill3a1 | No Spill1 ] -> [Spill31 | random Spill1] | |
[Spill3a1 | No Spill1 ] -> [Spill31 | random Spill1] | |
[> Player | Spill1] -> [| random Spill1] | |
[> Player | others1] -> [| random Spill1] | |
(lv2) | |
[Toggle] [Spill12 | No Spill12 No Walls ] -> [Toggle] [Spill1a2 |] | |
[Spill1a2 | No Spill2 No Walls ] -> [Spill12 | random Spill2] | |
[Toggle] [Spill22 | No Spill2 No Walls ] -> [Toggle] [Spill2a2 |] | |
Left Down [Spill2a2 | No Spill2 No Walls ] -> [Spill22 | random Spill2] | |
[Spill2a2 | No Spill2 No Walls ] -> [Spill22 | random Spill2] | |
[Toggle] [Spill32 | No Spill2 No Walls ] -> [Toggle] [Spill3a2 |] | |
Right [Spill3a2 | No Spill2 No Walls ] -> [Spill32 | random Spill2] | |
[Spill3a2 | No Spill2 No Walls ] -> [Spill32 | random Spill2] | |
late [SpillJar2] [Player Exit] -> win | |
[> Player | | Jar2|] -> [|Player | SpillJar2 | random Spill2] | |
[> Player | Jar2|] -> [Player | SpillJar2 | random Spill2] | |
(lv4) | |
[Toggle] [Spill13 | No Spill13 No Walls ] -> [Toggle] [Spill1a3 |] | |
[Spill1a3 | No Spill3 No Walls ] -> [Spill13 | random Spill3] | |
[Toggle] [Spill23 | No Spill3 No Walls ] -> [Toggle] [Spill2a3 |] | |
Left Down [Spill2a3 | No Spill3 No Walls ] -> [Spill23 | random Spill3] | |
[Spill2a3 | No Spill3 No Walls ] -> [Spill23 | random Spill3] | |
[Toggle] [Spill33 | No Spill3 No Walls ] -> [Toggle] [Spill3a3 |] | |
Right [Spill3a3 | No Spill3 No Walls ] -> [Spill33 | random Spill3] | |
[Spill3a3 | No Spill3 No Walls ] -> [Spill33 | random Spill3] | |
late [SpillJar3] [Player Exit] -> win | |
[> Player | Spill3] -> [Empty|Player] | |
[> Player | others3] -> [Empty|Player] | |
[> Player | | Jar3|] -> [|Player | SpillJar3 | random Spill3] | |
[> Player | Jar3|] -> [Player | SpillJar3 | random Spill3] | |
(lv5) | |
[Wall2] -> [Wall2 Nomess] | |
[3Toggle] [Spill14 | No Spill14 No Walls No Empty4 No Jars No SpillJars] -> [3Toggle] [Spill1a4 |] | |
[Spill1a4 | No Spill4 No Walls No Empty4 No Jars No SpillJars ] -> [Spill14 | random Spill4] | |
[3Toggle] [Spill24 | No Spill4 No Walls No Empty4 No Jars No SpillJars ] -> [3Toggle] [Spill2a4 |] | |
Left Down [Spill2a4 | No Spill4 No Walls No Empty4 No Jars No SpillJars ] -> [Spill24 | random Spill4] | |
[Spill2a4 | No Spill4 No Walls No Empty4 No Jars No SpillJars ] -> [Spill24 | random Spill4] | |
[3Toggle] [Spill34 | No Spill4 No Walls No Empty4 No Jars No SpillJars ] -> [3Toggle] [Spill3a4 |] | |
Right [Spill3a4 | No Spill4 No Walls No Empty4 No Jars No SpillJars ] -> [Spill34 | random Spill4] | |
[Spill3a4 | No Spill4 No Walls No Empty4 No Jars No SpillJars ] -> [Spill34 | random Spill4] | |
[> Player | Spill4] -> [Empty4|Player Empty4] | |
[> Player | others4] -> [Empty4|Player Empty4] | |
[> Player | | Jar4||] -> [|Player | SpillJar4 | random Spill4 | random Spill4] | |
[> Player | Jar4||] -> [Player | SpillJar4 | random Spill4 | random Spill4] | |
[Spill4] [Wall2 NoMess] -> [Spill4] [Wall2] | |
late [SpillJar4] [NoMess] [Player Exit] -> win | |
(lv6) | |
[Wall2] -> [Wall2 Nomess] | |
[3Toggle] [Spill14 | No Spill14 No Walls No Empty4 No Jars No SpillJars] -> [3Toggle] [Spill1a4 |] | |
[Spill1a4 | No Spill4 No Walls No Empty4 No Jars No SpillJars ] -> [Spill14 | random Spill4] | |
[3Toggle] [Spill24 | No Spill4 No Walls No Empty4 No Jars No SpillJars ] -> [3Toggle] [Spill2a4 |] | |
Left Down [Spill2a4 | No Spill4 No Walls No Empty4 No Jars No SpillJars ] -> [Spill24 | random Spill4] | |
[Spill2a4 | No Spill4 No Walls No Empty4 No Jars No SpillJars ] -> [Spill24 | random Spill4] | |
[3Toggle] [Spill34 | No Spill4 No Walls No Empty4 No Jars No SpillJars ] -> [3Toggle] [Spill3a4 |] | |
Right [Spill3a4 | No Spill4 No Walls No Empty4 No Jars No SpillJars ] -> [Spill34 | random Spill4] | |
[Spill3a4 | No Spill4 No Walls No Empty4 No Jars No SpillJars ] -> [Spill34 | random Spill4] | |
[> Player | Spill4] -> [Empty4|Player Empty4] | |
[> Player | others4] -> [Empty4|Player Empty4] | |
[> Player | | Jar5|] -> [|Player | SpillJar4 | Spill24] | |
[> Player | Jar5|] -> [Player | SpillJar4 | Spill24 ] | |
[Spill4] [Wall2 NoMess] -> [Spill4] [Wall2] | |
late [SpillJar4] [NoMess] [Player Exit] -> win | |
(lv7) | |
[SpillJar6] -> win | |
[> Player | | Jar6] -> [|Player | SpillJar6 ] again | |
[> Player | Jar6] -> [Player | SpillJar6 ] again | |
(Player creates or destroys webs by pressing Action.) | |
([Action Player no Web] -> [Player Web] Sfx1 | |
[Action Player Web] -> [Player] Sfx2 | |
(Player pushes pushable objects.) | |
[> Player | Pushable] -> [> Player | > Pushable] | |
(Gems turn corners counterclockwise. Implemented in a simple gross way because the robust way is horrible) | |
[> Player | Gem | Blocking] -> [> Player | ^ Gem | Blocking] | |
[> Player | Gem | Pushable | Blocking] -> [> Player | ^ Gem | Pushable | Blocking] | |
[> Player | Gem | Pushable | Pushable | Blocking] -> [> Player | ^ Gem | Pushable | Pushable | Blocking] | |
(Code for propagating movement between webs and pushed objects. The + signs indicate that these rules are "grouped": they'll all keep happening, even out of order, until none of them can happen anymore. That means you can transfer movement from one pebble to another pebble, then from the second pebble to a web, then from that web to some adjacent web, then from THAT web to another pebble, etc.) | |
[> Sticky Web] -> [> Sticky > Web] | |
+[> Web Sticky] -> [> Web > Sticky] | |
+[> Pushable|Pushable] -> [> Pushable|> Pushable] | |
+[Moving Web|Web] -> [Moving Web|Moving Web] | |
(If a moving object hits an immovable object, cancel all movement.) | |
[> Blockable|Blocking] -> Cancel | |
(At end of turn, should we open doors? Put "Temp" on each door, then remove "Temp" if some switch is uncovered, then delete all switches and doors if Temp still remains.) | |
late[Door] -> [Temp Door] | |
late[Switch no Weight][Temp Door] -> [Switch][Door] | |
late[Temp Door][Switch] -> [Temp Door][] | |
late[Temp Door] -> [] Sfx3 | |
(At end of turn, kill player if adjacent to ant.) | |
late[Player|Ant] -> [DeadBug|Ant] Sfx4 | |
(Gem power!) | |
late[Gem | | Ant] -> [Gem | |] sfx5) | |
============== | |
WINCONDITIONS | |
============== | |
no Walls | |
======= | |
LEVELS | |
======= | |
Message I should probably find something to eat. | |
######.##3### | |
#3#.......### | |
###.......#3# | |
#...........3 | |
#.....*.....# | |
#...........# | |
3...........# | |
#3#.......#3# | |
###.......##3 | |
##3###@###### | |
Message That was last week. It should be okay to get some food. | |
######!##3### | |
#3#.......### | |
###.......#3# | |
#...........3 | |
#.....&.....# | |
#...........# | |
3t..........# | |
#3#.......#3# | |
###.......##3 | |
##3###@###### | |
Message "Better." But what difference did it make? | |
######!##3### | |
#3#.......### | |
###.......#3# | |
#...........3 | |
#.....*.....# | |
#...........# | |
3...........# | |
#3#.......#3# | |
###.......##3 | |
##3###@###### | |
Message None. Why not just let go? | |
message . . . | |
Message Because I am afraid. | |
######!##3### | |
#3#.......### | |
###.......#3# | |
#...........3 | |
#.....%.....# | |
#...........# | |
3t..........# | |
#3#.......#3# | |
###.......##3 | |
##3###@###### | |
Message It's not enough. How could it ever be enough? | |
######!##3### | |
#3#.......### | |
###.......#3# | |
#...........3 | |
#.....$.....# | |
#...........# | |
3q..........# | |
#3#.......#3# | |
###.......##3 | |
##3###@###### | |
Message If I work hard enough I will be allowed to eat. | |
######!##3### | |
#3#.e...e.### | |
###eee.eee#3# | |
#.e.e...e.e.3 | |
#e....`....e# | |
#.e.e...e.e.# | |
3q.eee.eee..# | |
#3#.e...e.#3# | |
###..e.e..##3 | |
##3###m###### | |
Message Sometimes, these accidents are strangely beautiful. | |
######!##3### | |
#3#.e...e.### | |
###eeeeeee#3# | |
#.e.ee.ee.e.3 | |
#e..e.`.e..e# | |
#.e.ee.ee.e.# | |
3q.eeeeeee..# | |
#3#.e...e.#3# | |
###..e.e..##3 | |
##3###m###### | |
(Message It feels safe to be calm) | |
(Message Sometimes things happen) | |
(Message Each time is unique and I must not let them pile up and merge) | |
(Message What I bring in determines much of how i spend my time here) | |
Message Space enough to begin to tell a new story. | |
Message Witness. Artist. Comrade. Pawn. Recipient. | |
######!##3### | |
#3#.e...e.### | |
###eeeeeee#3# | |
#.e.ee.ee.e.3 | |
#e..e.p.e..e# | |
#.e.ee.ee.e.# | |
3q.eeeeeee..# | |
#3#.e...e.#3# | |
###..e.e..##3 | |
##3###m###### | |
message Delicious |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment