Skip to content

Instantly share code, notes, and snippets.

@chz16
Last active July 12, 2022 20:53
Show Gist options
  • Save chz16/c666ff2174192c180a806144e8a38155 to your computer and use it in GitHub Desktop.
Save chz16/c666ff2174192c180a806144e8a38155 to your computer and use it in GitHub Desktop.
The Sorcerer's Detritus code
Play this game by pasting the script in http://www.puzzlescript.net/editor.html
(version 1.0.3
1.0.3 [2022-07-12]: forgot to edit the right side of 2 to match the adjustment to 3 oops
1.0.2 [2022-07-12]: removed a cheese solution from level 3 and removed a little unnecessary space
1.0.1 [2022-07-08]: added a checkpoint to the cutscene where you emerge from the sewers, so when you restart it's from the point of control
1.0.0 [2002-07-08]: original jam release
)
title The Sorcerer's Detritus
author CHz
homepage quiteajolt.com
noaction
run_rules_on_level_start
again_interval 0.05
========
OBJECTS
========
Background
#602010
InvisibleWall
transparent
Wall
#404040
WallUpBorder
#606060
00000
.....
.....
.....
.....
WallURBorder
#606060
....0
.....
.....
.....
.....
WallRightBorder
#606060
....0
....0
....0
....0
....0
WallDRBorder
#606060
.....
.....
.....
.....
....0
WallDownBorder
#606060
.....
.....
.....
.....
00000
WallDLBorder
#606060
.....
.....
.....
.....
0....
WallLeftBorder
#606060
0....
0....
0....
0....
0....
WallULBorder
#606060
0....
.....
.....
.....
.....
Player
Black White
.....
.000.
.000.
.111.
00000
UpBonkedPlayer
Black White
.000.
11111
00000
.....
.....
LeftBonkedPlayer
Black White
00...
00...
10...
11...
000..
RightBonkedPlayer
Black White
...00
...00
...01
...11
..000
Crate
Orange
00000
0...0
0...0
0...0
00000
BirdLeft
White Orange
.00..
100.0
.0000
.0000
..11.
BirdRight
White Orange
..00.
0.001
0000.
0000.
.11..
RabbitLeft
Brown Black DarkBrown
0.0..
000.0
01000
00000
00000
RabbitRight
Brown Black
..0.0
0.000
00010
00000
00000
FlowersLeft
Red Orange Green
.0...
0001.
.0111
..21.
..2..
FlowersRight
Red Orange Green
...0.
.1000
1110.
.12..
..2..
Key
yellow
.....
.....
..000
000.0
0.000
Lock
Black Gray
.111.
1...1
00000
00100
00000
ThinPlatform
#606060
00000
.....
.....
.....
.....
NormalExit
red
..0..
...0.
00000
...0.
..0..
InvisibleExit
transparent
LevelCounter1
LightBlue
.0...
00...
.0...
.0...
000..
LevelCounter2
LightBlue
00...
..0..
.0...
0....
000..
LevelCounter3
LightBlue
000..
..0..
000..
..0..
000..
LevelCounter4
LightBlue
0.0..
0.0..
000..
..0..
..0..
LevelCounter5
LightBlue
000..
0....
000..
..0..
000..
LevelCounter6
LightBlue
000..
0....
000..
0.0..
000..
LevelCounter7
LightBlue
000..
0.0..
..0..
..0..
..0..
LevelCounter8
LightBlue
000..
0.0..
000..
0.0..
000..
UpToken
green
LeftToken
green
RightToken
green
StartFallNextTurn
transparent
FallTime0Token
transparent
FallTime1Token
transparent
FallTime2Token
transparent
FallToken
transparent
FallCheckToken
green
Cutscene1Marker
transparent
Cutscene1Start
transparent
Cutscene1End
transparent
Cutscene2Marker
transparent
Cutscene2Start
transparent
Cutscene3Marker
transparent
Cutscene4Marker
transparent
Cutscene4Start
transparent
Cutscene4Phase1
transparent
Cutscene4Phase2
transparent
Cutscene4End
transparent
Cutscene4OffscreenMovement
transparent
Cutscene5Marker
transparent
Cutscene5Start
transparent
Cutscene6Marker
transparent
Cutscene6Phase1
transparent
Cutscene6Phase2
transparent
Cutscene6Phase3
transparent
Cutscene6Phase4
transparent
SoundTrigger1
transparent
SoundTrigger2
transparent
SoundTrigger3
transparent
SoundTrigger4
transparent
SoundTrigger5
transparent
SoundTrigger6
transparent
SoundTrigger7
transparent
Sky
#20FFFF
Sunset
#FF8000
Night
#202020
Cityscape1Marker
transparent
Cityscape2Marker
transparent
ManholeCover
#606060 #303030
.000.
00000
00100
00000
.000.
CutscenePlayer1
Black White
.....
.000.
.000.
.111.
00000
CutscenePlayer2
Black White
0....
0100.
0100.
0100.
0....
CutscenePlayer3
Black White
.....
00000
.111.
.000.
.000.
CutscenePlayer4
Black White
....0
.0010
.0010
.0010
....0
WindowCover1
#804000
WindowCover2
#804000
000..
000..
000..
000..
000..
LightBackground
#C04020
LightBackgroundRightGradient
#C04020
0....
0....
0....
00...
00...
LightBackgroundLeftGradient
#C04020
....0
....0
....0
...00
...00
Cityscape100
#804000
Cityscape101
#804000
Cityscape102
#804000
Cityscape103
#804000
Cityscape104
#804000
Cityscape105
#B0B0B0
Cityscape110
#804000
000..
000..
000..
000..
000..
Cityscape112
#804000 #004080
000..
00011
00011
00011
00011
Cityscape113
#804000 #004080
00011
00011
00011
00011
00011
Cityscape114
#804000 #004080 #108040
00000
00011
00011
00022
00022
Cityscape120
#A0A000
.....
.....
.....
..000
..000
Cityscape121
#A0A000
..000
..000
..000
..000
..000
Cityscape122
#A0A000 #004080
..000
11000
11000
11000
11000
Cityscape123
#A0A000 #004080
11000
11000
11000
11000
11000
Cityscape124
#A0A000 #004080 #108040
11000
11000
11000
22222
22222
Cityscape130
#A0A000
.....
.....
.....
00000
00000
Cityscape131
#A0A000
Cityscape133
#A0A000 #D05000
00001
00001
00001
00001
00001
Cityscape134
#A0A000 #D05000 #108040
00001
00001
00001
22222
22222
Cityscape135
#303030
Cityscape140
#A0A000
.....
.....
.....
0....
0....
Cityscape141
#A0A000
0....
0....
0....
0....
0....
Cityscape142
#A0A000 #800080
0....
0....
0....
0....
0...1
Cityscape143
#D05000
Cityscape144
#D05000 #108040
00000
00000
00000
11111
11111
Cityscape152
#800080
.....
.....
.....
.....
00000
Cityscape153
#800080
Cityscape154
#800080 #108040
00000
00000
00000
11111
11111
Cityscape161
#0000FF
.....
...00
...00
...00
...00
Cityscape162
#0000FF #800080
...00
...00
...00
...00
11111
Cityscape171
#0000FF
.....
00000
00000
00000
00000
Cityscape172
#0000FF #800080
00000
00000
00000
00000
10000
Cityscape173
#0000FF #800080
10000
10000
10000
10000
10000
Cityscape174
#0000FF #800080 #108040
10000
10000
10000
22222
22222
Cityscape181
#0000FF
.....
0000.
0000.
0000.
0000.
Cityscape182
#0000FF #800000
0000.
0000.
00111
00111
00111
Cityscape183
#0000FF #800000
00111
00111
00111
00111
00111
Cityscape184
#0000FF #800000 #108040
00111
00111
00111
22222
22222
Cityscape192
#800000
.....
.....
00000
00000
00000
Cityscape193
#800000
Cityscape194
#800000 #108040
00000
00000
00000
11111
11111
Cityscape200
transparent
Cityscape201
#303070
.....
.....
.....
....0
....0
Cityscape202
#303070 #800000
....0
....0
11111
11111
11111
Cityscape203
#800000
Cityscape204
#800000 #108040
00000
00000
00000
11111
11111
Cityscape205
#B0B0B0
Cityscape211
#303070
.....
.....
.....
00000
00000
Cityscape212
#303070 #800000
00000
00000
10000
10000
10000
Cityscape213
#303070 #800000
10000
10000
10000
10000
10000
Cityscape214
#303070 #800000 #108040
10000
10000
10000
22222
22222
Cityscape220
#606060
..000
..000
..000
..000
..000
Cityscape221
#606060 #303070
..000
..000
..000
11111
11111
Cityscape222
#303070
Cityscape224
#303070 #108040
00000
00000
00000
11111
11111
Cityscape230
#606060
Cityscape231
#606060 #303070
00000
00000
00000
10000
10000
Cityscape232
#606060 #303070
10000
10000
10000
10000
10000
Cityscape234
#606060 #303070 #108040
10000
10000
10000
22222
22222
Cityscape240
#606060
000..
000..
000..
000..
000..
Cityscape242
#606060 #904040
01111
01111
01111
01111
01111
Cityscape244
#606060 #904040 #108040
01111
01111
01111
22222
22222
Cityscape252
#904040
Cityscape254
#904040 #108040
00000
00000
00000
11111
11111
Cityscape262
#904040
00...
00...
00...
00...
00...
Cityscape263
#904040 #004080
00...
00...
00...
00111
00111
Cityscape264
#904040 #004080 #108040
00111
00111
00111
22222
22222
Cityscape265
#303030
Cityscape273
#004080
.....
.....
.....
00000
00000
Cityscape274
#004080 #108040
00000
00000
00000
11111
11111
Cityscape280
#606060
000..
000..
000..
000..
000..
Cityscape283
#606060 #004080
000..
000..
000..
00011
00011
Cityscape284
#606060 #004080 #108040
00011
00011
00011
00022
00022
Cityscape285
#B0B0B0 #804000
00011
00011
00011
00011
00011
Cityscape293
#004080
.....
.....
.....
0....
0....
Cityscape294
#004080 #108040
0....
0....
0....
11111
11111
Cityscape295
#804000
Timer0
transparent
Timer1
transparent
Timer2
transparent
Timer3
transparent
Timer4
transparent
Timer5
transparent
Timer6
transparent
Timer7
transparent
Timer8
transparent
Timer9
transparent
TimerDecrement
transparent
TimerStart
transparent
=======
LEGEND
=======
. = Background
# = Wall
% = InvisibleWall
P = Player
K = Key
L = Lock
E = NormalExit
! = InvisibleExit and LightBackground
- = ThinPlatform
O = Crate
① = LevelCounter1 and Wall
② = LevelCounter2 and Wall
③ = LevelCounter3 and Wall
④ = LevelCounter4 and Wall
⑤ = LevelCounter5 and Wall
⑥ = LevelCounter6 and Wall
⑦ = LevelCounter7 and Wall
⑧ = LevelCounter8 and Wall
A = Cityscape1Marker
B = SoundTrigger1 and Cityscape1Marker
C = SoundTrigger2 and Cityscape1Marker
D = SoundTrigger3 and Cityscape1Marker
E = Cityscape1Marker
F = SoundTrigger3 and Cityscape1Marker
G = Cityscape1Marker
H = SoundTrigger3 and Cityscape1Marker
I = Cityscape1Marker
J = LightBackground
K = Cutscene1Marker and Cutscene1Start and LightBackground
L = LightBackground
M = Cutscene2Marker and Cutscene2Start and LightBackground
N = Cutscene3Marker and SoundTrigger6
O = LightBackground
P = Cutscene4Marker and Cutscene4Start and LightBackground
Q = Cityscape2Marker
R = Cityscape2Marker and Cutscene5Marker
S = Cityscape1Marker and Cutscene6Marker
M = ManholeCover
W = CutscenePlayer1
X = CutscenePlayer2
Y = CutscenePlayer3
Z = CutscenePlayer4 and ManholeCover
CutscenePlayer = CutscenePlayer1 or CutscenePlayer2 or CutscenePlayer3 or CutscenePlayer4
SpinMarker = Cutscene1Marker or Cutscene2Marker
Detritus = BirdLeft or BirdRight or RabbitLeft or RabbitRight or FlowersLeft or FlowersRight
Object = Player or Detritus or Crate or Key
Exit = NormalExit or InvisibleExit
BonkedPlayer = UpBonkedPlayer or LeftBonkedPlayer or RightBonkedPlayer
MovementToken = UpToken or LeftToken or RightToken
FallTimeToken = FallTime0Token or FallTime1Token or FallTime2Token
0 = Timer0
1 = Timer1
2 = Timer2
3 = Timer3
4 = Timer4
5 = Timer5
6 = Timer6
7 = Timer7
8 = Timer8
9 = Timer9
$ = TimerStart
TimerDigit = Timer0 or Timer1 or Timer2 or Timer3 or Timer4 or Timer5 or Timer6 or Timer7 or Timer8 or Timer9
SoundTrigger = SoundTrigger1 or SoundTrigger2 or SoundTrigger3 or SoundTrigger4 or SoundTrigger5 or SoundTrigger6 or SoundTrigger7
=======
SOUNDS
=======
BonkedPlayer create 64135304
Detritus create 29784905
Lock destroy 81256700
Cutscene4OffscreenMovement destroy 29784905
SoundTrigger1 destroy 51577105 (door open)
SoundTrigger2 destroy 73601104 (door close)
SoundTrigger3 destroy 19826301 (hat flop)
SoundTrigger4 destroy 39444101 (big falling)
SoundTrigger5 destroy 42462702 (big landing)
SoundTrigger6 destroy 52242102 (manhole clank)
SoundTrigger7 destroy 61278503 (back in the window)
sfx0 24159104 (fall distance 1)
sfx1 7612104 (fall distance 2+)
================
COLLISIONLAYERS
================
Background
Sky, Sunset, Night, LightBackground, LightBackgroundLeftGradient, LightBackgroundRightGradient
Cityscape100, Cityscape101, Cityscape102, Cityscape103, Cityscape104, Cityscape105, Cityscape110, Cityscape112, Cityscape113, Cityscape114, Cityscape120, Cityscape121, Cityscape122, Cityscape123, Cityscape124, Cityscape130, Cityscape131, Cityscape133, Cityscape134, Cityscape135, Cityscape140, Cityscape141, Cityscape142, Cityscape143, Cityscape144, Cityscape152, Cityscape153, Cityscape154, Cityscape161, Cityscape162, Cityscape171, Cityscape172, Cityscape173, Cityscape174, Cityscape181, Cityscape182, Cityscape183, Cityscape184, Cityscape192, Cityscape193, Cityscape194
Cityscape200, Cityscape201, Cityscape202, Cityscape203, Cityscape204, Cityscape205, Cityscape211, Cityscape212, Cityscape213, Cityscape214, Cityscape220, Cityscape221, Cityscape222, Cityscape224, Cityscape230, Cityscape231, Cityscape232, Cityscape234, Cityscape240, Cityscape242, Cityscape244, Cityscape252, Cityscape254, Cityscape262, Cityscape263, Cityscape264, Cityscape265, Cityscape273, Cityscape274, Cityscape280, Cityscape283, Cityscape284, Cityscape285, Cityscape293, Cityscape294, Cityscape295
ManholeCover
CutscenePlayer
Cityscape1Marker, Cityscape2Marker
Cutscene1Marker, Cutscene2Marker, Cutscene3Marker, Cutscene4Marker, Cutscene5Marker, Cutscene6Marker
Cutscene1Start, Cutscene1End, Cutscene2Start, Cutscene4Start, Cutscene4Phase1, Cutscene4Phase2, Cutscene4End, Cutscene5Start, Cutscene6Phase1, Cutscene6Phase2, Cutscene6Phase3, Cutscene6Phase4
Cutscene4OffscreenMovement
SoundTrigger
TimerDigit
TimerDecrement
TimerStart
Exit
Object, BonkedPlayer, Wall, InvisibleWall, Lock
LevelCounter1, LevelCounter2, LevelCounter3, LevelCounter4, LevelCounter5, LevelCounter6, LevelCounter7, LevelCounter8
ThinPlatform
WallUpBorder
WallRightBorder
WallDownBorder
WallLeftBorder
WallURBorder
WallDRBorder
WallDLBorder
WallULBorder
MovementToken
StartFallNextTurn, FallTimeToken
FallCheckToken
FallToken
WindowCover1, WindowCover2
======
RULES
======
(================
LEVEL GENERATION
================)
(Draw internal borders on walls on level start)
UP [ Wall | no Wall ] -> [ Wall WallUpBorder | ]
RIGHT [ Wall | no Wall ] -> [ Wall WallRightBorder | ]
DOWN [ Wall | no Wall ] -> [ Wall WallDownBorder | ]
LEFT [ Wall | no Wall ] -> [ Wall WallLeftBorder | ]
RIGHT [ Wall | Wall WallUpBorder ] -> [ Wall WallURBorder | Wall WallUpBorder ]
RIGHT [ Wall WallUpBorder | Wall ] -> [ Wall WallUpBorder | Wall WallULBorder ]
RIGHT [ Wall | WallDownBorder ] -> [ Wall WallDRBorder | Wall WallDownBorder ]
RIGHT [ Wall WallDownBorder | Wall ] -> [ Wall WallDownBorder | Wall WallDLBorder ]
(==================
OBJECT INTERACTION
==================)
(Multipush)
[ > Object | Object ] -> [ > Object | > Object ]
(Keys open locks)
[ > Key | Lock ] -> [ | ]
(======
MOVING
======)
(If the player presses up, try moving them up one space, and if it was successful, spawn an object beneath them)
(This will also lift anything on top of the player)
UP [ > Player ] -> [ > Player UpToken ]
late DOWN [ Player | UpToken ] -> [ Player | random Detritus ]
(Track horizontal movements too)
LEFT [ > Player ] -> [ > Player LeftToken ]
RIGHT [ > Player ] -> [ > Player RightToken ]
(If the player couldn't move, play a little bonk animation)
late [ BonkedPlayer ] -> [ Player ]
late [ Player UpToken ] -> [ UpBonkedPlayer ] again
late [ Player LeftToken ] -> [ LeftBonkedPlayer ] again
late [ Player RightToken ] -> [ RightBonkedPlayer ] again
late [ MovementToken ] -> [ ]
(=======
GRAVITY
=======)
(Force an again turn to assert gravity)
[ moving Player ] -> [ moving Player ] again
(Assert gravity)
("no Player" on the first rule to prevent an object above the player from moving into the space previously occupied by the player on the same turn the player moves left or right)
DOWN [ stationary Object | no Player ] -> [ > Object | ] again
DOWN [ > Object | ThinPlatform ] -> [ Object | ThinPlatform ]
(The rest of this is for playing different sound effects when things land based on how far they fell, which was definitely more trouble than it was worth)
(After the player does a horizontal input, we set a flag that we're going to start fallling next turn. If we see that flag, then we set this to turn 0 and then mark the top of every stack of objects to see if it moves downward.)
[ StartFallNextTurn ] [ Object ] -> [ StartFallNextTurn ] [ Object FallToken ]
DOWN [ FallToken | FallToken no ThinPlatform ] -> [ FallToken | ]
[ StartFallNextTurn ] -> [ FallTime0Token ]
HORIZONTAL [ > Player ] -> [ > Player StartFallNextTurn ]
(If the marker for the top of the object stack is still on an object after movement, then that stack didn't move, so clear the flag and play a sound effect based on how many turns it took to fall.)
late [ FallTime0Token ] [ FallToken Object ] -> [ FallTime0Token ] [ Object ]
late [ FallTime1Token ] [ FallToken Object ] -> [ FallTime1Token ] [ Object ] sfx0
late [ FallTime2Token ] [ FallToken Object ] -> [ FallTime2Token ] [ Object ] sfx1
(Move the remaining markers down one so they're back on top of the stack again.)
late DOWN [ FallToken no Object | ] -> [ | FallToken ]
(Check if there are remaining fall markers. If not, remove the turn counter.)
late [ FallTimeToken ] -> [ FallTimeToken FallCheckToken ]
late [ FallToken ] [ FallCheckToken ] -> [ FallToken ] [ ]
late [ FallTimeToken FallCheckToken ] -> [ ]
(Advance the turn counter. We don't care about anything greater than 2.)
late [ FallTime1Token ] -> [ FallTime2Token ]
late [ FallTime0Token ] -> [ FallTime1Token ]
(====================
CUTSCENE BACKGROUNDS
====================)
(Cityscape 1)
[ Cityscape1Marker ] [ ] -> [ Cityscape1Marker ] [ Sky ]
DOWN [ Cityscape1Marker | | | | | ] -> [ Cityscape100 | Cityscape101 | Cityscape102 | Cityscape103 | Cityscape104 | Cityscape105 ]
RIGHT [ Cityscape100 | | | | ] -> [ Cityscape100 | Cityscape110 | Cityscape120 | Cityscape130 | Cityscape140 ]
RIGHT [ Cityscape101 | | | | | | | | ] -> [ Cityscape101 | Cityscape110 | Cityscape121 | Cityscape131 | Cityscape141 | | Cityscape161 | Cityscape171 | Cityscape181 ]
RIGHT [ Cityscape102 | | | | | | | | | ] -> [ Cityscape102 | Cityscape112 | Cityscape122 | Cityscape131 | Cityscape142 | Cityscape152 | Cityscape162 | Cityscape172 | Cityscape182 | Cityscape192 ]
RIGHT [ Cityscape103 | | | | | | | | | ] -> [ Cityscape103 WindowCover1 | Cityscape113 WindowCover2 | Cityscape123 | Cityscape133 | Cityscape143 | Cityscape153 | Cityscape153 | Cityscape173 | Cityscape183 | Cityscape193 ]
RIGHT [ Cityscape104 | | | | | | | | | ] -> [ Cityscape104 | Cityscape114 | Cityscape124 | Cityscape134 | Cityscape144 | Cityscape154 | Cityscape154 | Cityscape174 | Cityscape184 | Cityscape194 ]
RIGHT [ Cityscape105 | | | | | | | | | ] -> [ Cityscape105 | Cityscape105 | Cityscape105 | Cityscape135 | Cityscape105 | Cityscape105 | Cityscape105 | Cityscape105 | Cityscape105 | Cityscape105 ]
(Sewer intro/outro)
DOWN [ LightBackground | ] -> [ LightBackground | LightBackground ]
RIGHT [ | LightBackground | ] -> [ LightBackgroundLeftGradient | LightBackground | LightBackgroundRightGradient ]
(Cityscape 2)
[ Cityscape2Marker ] [ ] -> [ Cityscape2Marker ] [ Sky ]
DOWN [ Cityscape2Marker | | | | | ] -> [ Cityscape200 | Cityscape201 | Cityscape202 | Cityscape203 | Cityscape204 | Cityscape205 ]
RIGHT [ Cityscape200 | | | | | | | | ] -> [ Cityscape200 | | Cityscape220 | Cityscape230 | Cityscape240 | | | | Cityscape280 ]
RIGHT [ Cityscape201 | | | | | | | | ] -> [ Cityscape201 | Cityscape211 | Cityscape221 | Cityscape231 | Cityscape240 | | | | Cityscape280 ]
RIGHT [ Cityscape202 | | | | | | | | ] -> [ Cityscape202 | Cityscape212 | Cityscape222 | Cityscape232 | Cityscape242 | Cityscape252 | Cityscape262 | | Cityscape280 ]
RIGHT [ Cityscape203 | | | | | | | | | ] -> [ Cityscape203 | Cityscape213 | Cityscape222 | Cityscape232 | Cityscape242 | Cityscape252 | Cityscape263 | Cityscape273 | Cityscape283 | Cityscape293 ]
RIGHT [ Cityscape204 | | | | | | | | | ] -> [ Cityscape204 | Cityscape214 | Cityscape224 | Cityscape234 | Cityscape244 | Cityscape254 | Cityscape264 | Cityscape274 | Cityscape284 | Cityscape294 ]
RIGHT [ Cityscape205 | | | | | | | | | ] -> [ Cityscape205 | Cityscape205 | Cityscape205 | Cityscape205 | Cityscape205 | Cityscape205 | Cityscape265 | Cityscape205 | Cityscape285 | Cityscape295 ]
(===============
CUTSCENE EVENTS
===============)
(Play a sound whenever any of these are destroyed)
[ SoundTrigger ] -> [ ]
(Timer math -- autoadvance a level once it hits 0)
DOWN [ | TimerStart ] -> [ TimerDecrement | TimerStart ] again
startloop
DOWN [ | Timer0 TimerDecrement ] -> [ TimerDecrement | Timer9 ] again
[ Timer1 TimerDecrement ] -> [ Timer0 ] again
[ Timer2 TimerDecrement ] -> [ Timer1 ] again
[ Timer3 TimerDecrement ] -> [ Timer2 ] again
[ Timer4 TimerDecrement ] -> [ Timer3 ] again
[ Timer5 TimerDecrement ] -> [ Timer4 ] again
[ Timer6 TimerDecrement ] -> [ Timer5 ] again
[ Timer7 TimerDecrement ] -> [ Timer6 ] again
[ Timer8 TimerDecrement ] -> [ Timer7 ] again
[ Timer9 TimerDecrement ] -> [ Timer8 ] again
endloop
late [ TimerDecrement no TimerDigit ] -> win
(The big spinny)
DOWN [ SpinMarker ] [ stationary CutscenePlayer1 ] -> [ SpinMarker ] [ > CutscenePlayer2 ] again
DOWN [ SpinMarker ] [ stationary CutscenePlayer2 ] -> [ SpinMarker ] [ > CutscenePlayer3 ] again
DOWN [ SpinMarker ] [ stationary CutscenePlayer3 ] -> [ SpinMarker ] [ > CutscenePlayer4 ] again
DOWN [ SpinMarker ] [ stationary CutscenePlayer4 ] -> [ SpinMarker ] [ > CutscenePlayer1 ] again
(Spawn a player after the second falling screen starts and spawn a timer once that player hits the bottom)
[ Cutscene1Start ] -> [ CutscenePlayer1 Cutscene1End SoundTrigger4 ] again
DOWN [ Cutscene1End | ] -> [ | Cutscene1End ]
DOWN [ | CutscenePlayer Cutscene1End ] -> [ Timer8 | TimerStart ]
(Spawn a player after the third falling screen starts and spawn a timer once that player hits the floor)
[ Cutscene2Start ] -> [ CutscenePlayer1 SoundTrigger4 ]
late DOWN [ | CutscenePlayer1 | Wall ] -> [ Timer1 | Timer0 Player SoundTrigger5 | TimerStart Wall ] again
(Checkpoint the tutorial level after the sound effect plays)
late [ Cutscene3Marker ] -> [] checkpoint
(Rising phase 1 - play the spawn noise 10 times without showing anything)
random RIGHT [ Cutscene4Start ] [ | | ] -> [ Cutscene4Start ] [ | Cutscene4OffscreenMovement | ]
random RIGHT [ Cutscene4Start ] [ | | ] -> [ Cutscene4Start ] [ | Cutscene4OffscreenMovement | ]
random RIGHT [ Cutscene4Start ] [ | | ] -> [ Cutscene4Start ] [ | Cutscene4OffscreenMovement | ]
random RIGHT [ Cutscene4Start ] [ | | ] -> [ Cutscene4Start ] [ | Cutscene4OffscreenMovement | ]
random RIGHT [ Cutscene4Start ] [ | | ] -> [ Cutscene4Start ] [ | Cutscene4OffscreenMovement | ]
random RIGHT [ Cutscene4Start ] [ | | ] -> [ Cutscene4Start ] [ | Cutscene4OffscreenMovement | ]
random RIGHT [ Cutscene4Start ] [ | | ] -> [ Cutscene4Start ] [ | Cutscene4OffscreenMovement | ]
random RIGHT [ Cutscene4Start ] [ | | ] -> [ Cutscene4Start ] [ | Cutscene4OffscreenMovement | ]
random RIGHT [ Cutscene4Start ] [ | | ] -> [ Cutscene4Start ] [ | Cutscene4OffscreenMovement | ]
random RIGHT [ Cutscene4Start ] [ | | ] -> [ Cutscene4Start ] [ | Cutscene4OffscreenMovement | ]
[ Cutscene4Start ] -> [ Cutscene4Phase1 ]
random [ Cutscene4OffscreenMovement ] -> [ ] again
DOWN [ no Cutscene4OffscreenMovement | Cutscene4OffscreenMovement ] -> [ Cutscene4OffscreenMovement | ]
(Rising phase 2 - after we've played all the offscreen movement noises, place a player at the bottom and rise them to the top)
[ Cutscene4Phase2 CutscenePlayer1 ] -> [ Cutscene4Phase2 random Detritus ]
random DOWN [ Cutscene4Phase2 ] [ | CutscenePlayer1 ] -> [ Cutscene4Phase2 ] [ CutscenePlayer1 | random Detritus ] again
[ Cutscene4Phase1 no Cutscene4OffscreenMovement ] -> [ Cutscene4Phase1 CutscenePlayer1 ]
DOWN [ Cutscene4Phase1 ] [ CutscenePlayer1 | ] -> [ Cutscene4Phase1 ] [ | CutscenePlayer1 ]
[ Cutscene4Phase1 ] [ CutscenePlayer1 ] -> [ Cutscene4Phase2 ] [ CutscenePlayer1 ] again
(Rising phase 3 - after the player hits the top, play the sound 10 more times and then finish the level)
random RIGHT [ Cutscene4Phase2 Detritus ] [ | | ] -> [ Cutscene4Phase2 Detritus ] [ | Cutscene4OffscreenMovement | ]
random RIGHT [ Cutscene4Phase2 Detritus ] [ | | ] -> [ Cutscene4Phase2 Detritus ] [ | Cutscene4OffscreenMovement | ]
random RIGHT [ Cutscene4Phase2 Detritus ] [ | | ] -> [ Cutscene4Phase2 Detritus ] [ | Cutscene4OffscreenMovement | ]
random RIGHT [ Cutscene4Phase2 Detritus ] [ | | ] -> [ Cutscene4Phase2 Detritus ] [ | Cutscene4OffscreenMovement | ]
random RIGHT [ Cutscene4Phase2 Detritus ] [ | | ] -> [ Cutscene4Phase2 Detritus ] [ | Cutscene4OffscreenMovement | ]
random RIGHT [ Cutscene4Phase2 Detritus ] [ | | ] -> [ Cutscene4Phase2 Detritus ] [ | Cutscene4OffscreenMovement | ]
random RIGHT [ Cutscene4Phase2 Detritus ] [ | | ] -> [ Cutscene4Phase2 Detritus ] [ | Cutscene4OffscreenMovement | ]
random RIGHT [ Cutscene4Phase2 Detritus ] [ | | ] -> [ Cutscene4Phase2 Detritus ] [ | Cutscene4OffscreenMovement | ]
random RIGHT [ Cutscene4Phase2 Detritus ] [ | | ] -> [ Cutscene4Phase2 Detritus ] [ | Cutscene4OffscreenMovement | ]
random RIGHT [ Cutscene4Phase2 Detritus ] [ | | ] -> [ Cutscene4Phase2 Detritus ] [ | Cutscene4OffscreenMovement | ]
DOWN [ no Cutscene4OffscreenMovement | Cutscene4OffscreenMovement ] -> [ Cutscene4OffscreenMovement | ]
[ Cutscene4Phase2 Detritus ] -> [ Cutscene4End Detritus ]
[ Cutscene4End no Cutscene4OffscreenMovement ] -> win
(Return to city right side - play the sound 10 times again then show the player)
(Also spawn some exits on the left side)
DOWN [ Cutscene5Marker | ... | ] -> [ Cutscene5Marker InvisibleExit | ... | InvisibleExit ]
random [ Cutscene5Marker ] [ ] -> [ Cutscene5Marker ] [ Cutscene4OffscreenMovement ]
random [ Cutscene5Marker ] [ ] -> [ Cutscene5Marker ] [ Cutscene4OffscreenMovement ]
random [ Cutscene5Marker ] [ ] -> [ Cutscene5Marker ] [ Cutscene4OffscreenMovement ]
random [ Cutscene5Marker ] [ ] -> [ Cutscene5Marker ] [ Cutscene4OffscreenMovement ]
random [ Cutscene5Marker ] [ ] -> [ Cutscene5Marker ] [ Cutscene4OffscreenMovement ]
random [ Cutscene5Marker ] [ ] -> [ Cutscene5Marker ] [ Cutscene4OffscreenMovement ]
random [ Cutscene5Marker ] [ ] -> [ Cutscene5Marker ] [ Cutscene4OffscreenMovement ]
random [ Cutscene5Marker ] [ ] -> [ Cutscene5Marker ] [ Cutscene4OffscreenMovement ]
random [ Cutscene5Marker ] [ ] -> [ Cutscene5Marker ] [ Cutscene4OffscreenMovement ]
random [ Cutscene5Marker ] [ ] -> [ Cutscene5Marker ] [ Cutscene4OffscreenMovement ]
[ Cutscene5Marker ] -> [ Cutscene5Start ] again
DOWN [ Cutscene5Start ] [ ManholeCover | ] -> [ Cutscene5Start ] [ ManholeCover | Player ]
[ Cutscene5Start ] [ Cutscene4OffscreenMovement ] [ Player ] -> [ Cutscene5Start ] [ Cutscene4OffscreenMovement ] [ ]
[ Player ] [ Cutscene5Start ] -> [ Player ] [ ] checkpoint
(Return to city left side - after the player's in the apartment, elapse time and play some sounds)
DOWN [ Cutscene6Marker | ... | Player ] -> [ Cutscene6Marker | ... | SoundTrigger7 ]
DOWN [ SoundTrigger7 ] [ Cutscene6Marker | | | ] -> [ SoundTrigger7 ] [ Cutscene6Phase1 | Timer2 | Timer0 | TimerStart ] again
DOWN [ Sky ] [ Cutscene6Phase1 TimerDecrement | Timer9 | Timer9 | TimerStart ] -> [ Sunset ] [ Cutscene6Phase1 TimerDecrement | Timer9 | Timer9 | TimerStart ]
DOWN [ Cutscene6Phase1 TimerDecrement | Timer9 | Timer9 | TimerStart ] -> [ Cutscene6Phase2 | Timer2 | Timer0 | TimerStart ]
DOWN [ Sunset ] [ Cutscene6Phase2 TimerDecrement | Timer9 | Timer9 | TimerStart ] -> [ Night ] [ Cutscene6Phase2 TimerDecrement | Timer9 | Timer9 | TimerStart ]
DOWN [ Cutscene6Phase2 TimerDecrement | Timer9 | Timer9 | TimerStart ] -> [ Cutscene6Phase3 | Timer3 | Timer0 | TimerStart ]
DOWN [ Cutscene6Phase3 TimerDecrement | Timer9 | Timer9 | TimerStart ] -> [ Cutscene6Phase4 SoundTrigger1 | | Timer3 | TimerStart ]
==============
WINCONDITIONS
==============
some Player on Exit
=======
LEVELS
=======
(Hat falls out window)
A.........
..........
..........
.........3
...M.....0
.........$
B.........
..........
..........
.........1
...M.....0
.........$
C.........
..........
..........
..........
...M.....2
.........$
D.........
..........
..........
.W........
...M.....1
.........$
E.........
..........
..........
..X.......
...M.....1
.........$
F.........
..........
..........
..........
..YM.....1
.........$
G.........
..........
..........
..........
...Z.....1
.........$
H.........
..........
..........
..........
...M.....1
...W.....$
I.........
..........
..........
.........2
...M.....0
.........$
(Hat falls down sewer)
#J#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#8#
#$#
#K#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
(Hat lands in tutorial level)
#L############
#.#####.....##
#.#####.K...L.
#.#######-#.##
#..OO...#.####
#####-..#.####
#####...#.####
#####.--#8####
#####....$####
##############
#M############
#.#####.....##
#.#####.K...L.
#.#######-#.##
#..OO...#.####
#####-..#.####
#####...#.####
#####.--#.####
#####.....####
##############
#N############
#.#####.....##
#.#####.K...LE
#.#######-#.##
#P.OO...#.####
#####-..#.####
#####...#.####
#####.--#.####
#####.....####
##############
(Actual levels)
①######
#....#.
#..K.#.
#..###.
#....LE
#..####
#....##
P....##
#######
②#######
#.....##
#..K..##
P..-..LE
########
③######.
#..####.
#.....LE
##.##.##
##....##
##....##
P..K..##
##.##.##
##.##.##
#......#
########
④########
#.K....#.
#.#....#.
#.##...#.
#......#.
P......LE
#########
⑤#########
##.K.#####
##.#..####
##.##.####
#.......##
#.......##
#.......##
#.....-.#.
P.......LE
##########
⑥########.
#.......#.
P.K.....LE
###-..####
###...####
###...####
##########
⑦##############.
#.............#.
#.............##
#......#......#.
P..K...#......LE
####.-...-.#####
####.......#####
################
⑧########!#
###...###.#
#.....###.#
#.K...LLL.#
###...#####
#.....#####
#.K...#####
###...#####
#.....#####
#.K...#####
###...#####
P.....#####
###########
(Hat rising out of sewer)
#O#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#2#
#0#
#$#
#P#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
#.#
(Hat exits sewer - cityscape right)
Q.........
..........
..........
..........
......M..8
.........$
R.......%.
........%.
........%.
........%.
......M.%.
%%%%%%.%%.
S%........
.%........
.%........
..........
%%.......P
%%%-%%%%%%
message Showtime!
message [LATER]
message And now, watch me pull a rabbit out of my hat!
message ...
message ..........
message .....................
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment