Skip to content

Instantly share code, notes, and snippets.

@ClementSparrow
Created July 30, 2020 22:32
Show Gist options
  • Save ClementSparrow/f292e7bb428fb70a6a6ad34ac5e7903f to your computer and use it in GitHub Desktop.
Save ClementSparrow/f292e7bb428fb70a6a6ad34ac5e7903f to your computer and use it in GitHub Desktop.
Dr Jelly and Mr Slime (PuzzleScript Script)
Play this game by pasting the script in http://www.puzzlescript.net/editor.html
(bad pun suggestion for the title: s-witches (and use a witch for the player or the switches) )
(winterbeak: came up with this title, not sure if it's a bad pun or great one. "reflecting" is kind of what the mechanic is, but kind of not? can't find another word to portmanteau with ectoplasm, though. feel free to change
title Reflectoplasm - Working Title)
(Plurmorant: slime mode can be thought of as a flashback)
(NotAJumbleOfNumbers: the person in this is probably an amnesiac. the theming makes me think of a laboratory, but it could be something else. maybe he was part of a failed experiement? i don't know. and then there's the level with two people...)
(sftrabbit: The impression I get from the "story" now is that this is a scientist descending into their obsession to do great research and is gradually losing themselves.)
(title Slippery Memory)
title Dr Jelly and Mr Slime
author Thinky Collective
background_color #303040 (previously #333338)
text_color #ccb6f8 (could be anything else, previously just white)
run_rules_on_level_start
again_interval .08
(verbose_logging)
(let's start an actual dev log instead of one or two people putting a comment here every now and then like with gophers - ncr)
(#0 patrick: base game, all graphics are squares)
(#1 ncrecc: added level 3 and fake border tile, introduced this log (pat's fine with it))
(#2 bagenzo: added level 4 and the collectable)
(#3 TophWells: added level ? and fixed a movement bug )
(#4 Sky: Wanted to add a player3 but just made player2 switched to player1 again, find something interesting. :D )
(#5 blubberquark: Added a crate that slides over the overlay.)
(#6 [marcosd]: enhanced a bit the overlay sprite, put collectables over walls, added a level)
(#7 HRoll: made NoOverlayTile (needs better name) which is passable for P1 but doesn't leave the overlay trail, and a basic level for it)
(#8 winterbeak: added the ornament-shaped level. changed Player1 into Ghost, and Player2 into Human. changed Overlay into Slime. added ghost/human graphics, slime graphics, and border/wall/floor graphics. added a preview which shows you what the tiles are going to turn into when they are switched. fixed bug where crates can be pushed into the border. each level is now surrounded by a border. )
(#9 Plurmorant: added crate-blocks-human rule, name suggestion, and another crate level)
(#10 Draknek: added a buglist, fixed bug with crate sliding, made crate slide animate, added ending message, added a level)
(#11 noa: still changeable graphics for the switcher, goal, coin. added eyes to the ghost, slight texture to the walls. sounds for crate pushing, using the switcher, and removing walls as a ghost. slight color palette changes, old colors in brackets. added a level)
(#12 CHz: added a level, preserved player direction when switching between states)
(#13 NarrowAdder: added a trivial tutorialization level to teach crates pushing into flashback tokens. Level should go right before blubberquark's level)
(#14 zabel: added a level, added author line [copied from Gophers])
(#15 Elyot: Added the wall-counting numbers, added the first level using them. )
(#16 domcamus: Added a level using the new numbers mechanic.)
(#17 Jack Lance: Added a level and also added more words to this sentence because no one else just wrote "Added a level")
(#18 jackk: adjusted again interval, added slime overlay to collectibles, added 'pushable' appearance for the crate, added smoke & wall animations when activating switcher, added a level )
(#19 zaratustra: refactored the whole number tile code, added easy number level)
(#19.5 zaratustra jr.: added sfx2 for slime movement)
(#19 zaratustra: removed sfx2 for slime movement)
(#20 Justas: "Added a level")
(#20 Justas: replaced sfx0 with a more pleasant crate push sound and made number pushing emit sfx0)
(#21 NotAJumbleOfNumbers: Added some dangly story bits, because there weren't enough of them)
(#22 Henrique de Lima: Added GoalEnabled (should make the win condition more obvious to the player), reordered some number levels, created an easier level that uses the numbers mechanic)
(#23 Auroriax: Fixed the GoalEnabled rules to activate in the turn the victory condition is met, instead of the turn after. Added an early level. Resisted the urge to name all the levels, but added a coin message instead.)
(#24 jcGyo: Added "bump" animations when attempting an illegal move and another easy number level.)
(I didn't have time to beat every level and I'm terrified I broke some weird edge case when I had to futz with the movement rules to get the bumps working, msg me on discord if you find something that needs to work but doesn't)
(#25 Le Slo: Added a message, worked on the wall sprites (not the border), fixed unintentionally a bug, added a rule to have that bug again, made a level for that bug, had fun.)
(#26 Joel: Fixed a bug where you could push out numberblocks from borders/walls. Fixed another bug where certain number markers were not deleted, leading to incorrect counting when numbers were pushed. Added a level)
(#27 EPGAstudios: Changed the number count to update while in ghost mode. Put in a clarifying message about counters, and an easy tutorial level for counters. Fixed bug with four not working.)
(#28 knexator: Changed the title and lore since it seemed out of touch with the graphics, added another simple tutorial level for the counters.)
(#29 stevenjmiller: Added a level and then wrote about adding said level in the log.)
(#30 sftrabbit: Added a level towards the end - unsure about the difficulty, so please move if it makes sense.)
(#30 sftrabbit: Shuffled the intro "scanner" levels around based on existing comments and my own judgement.)
(#30 sftrabbit: Added enter/exit animations + sfx to give some continuity to the puzzles - if anyone adds another 2+ character level in addition to Blookerstein's, please only have one character animate in.)
(#30 sftrabbit: Added a final "cutscene" level with mega-slime (just like in Gophers). I leave it to someone else to figure what to do with it, but I put some ideas next to the level.)
(#31 Deusovi: Added another 'deductive' level after Elyot's. Switched Joel and stephenjmiller's levels.)
(#32 Pedro PSI: Added only small decorative details - wall border corners, plus a little tweak to the background tile pattern - do revert if you think it doesn't look good)
(#33 Grapefruit: Added a level in the middle that is meant to reinforce crate pushing and activating potions using crates.)
(#34 ThatScar: Continued work on the epilogue where sftrabbit had laid foundations, introducing the human and the SlimeWall logic to the level. Renamed Wall to SlimeWall)
(#35 ClementSparrow: Added a puzzle level and a "cutscene" level for the lore before the final level.)
(#36 minotalen: [fill this in, minotalen])
(known bugs and/or features - remove from this list when you either fix the issue or deliberately use it in a level)
(no code bugs exist currently!)
(minor issue - narrative consistency is lacking; all messages, including epilogue, could be reviewed and edited - ThatScar)
(minor issue - epilogue human sprites aren't as pretty as they could be - ThatScar)
========
OBJECTS
========
Background
#c7cbd7 #bbbeca
11011
11111
01010
11111
11011
( Old overlay sprites
( the placeholder graphic for this is
blue
00000
.....
00000
.....
00000
so feel free to change it and delete this comment )
Overlay (I believe this design is more indicative of the overlay's function, but also feel free to change it)
blue
.0.0.
0.0.0
.0.0.
0.0.0
.0.0.
)
( winterbeak: i did the slime, player, and ghost graphics, but feel free to tweak them somewhat if you feel like you can improve on them )
( SlimeMarker is the functional part of the slime. The rest of the slime sprites, as well as WallPreview and BackgroundPreview, are purely decorative, and will appear and disappear whenever SlimeMarker is added/removed )
SlimeMarker
transparent
SlimePoint
#a200ff #a70fff #9d00f7
.....
..1..
.000.
..2..
.....
SlimeLeft
#a200ff #a70fff #9d00f7
.....
110..
0000.
202..
.....
SlimeUp
#a200ff #a70fff #9d00f7
.102.
.002.
.100.
..0..
.....
SlimeRight
#a200ff #a70fff #9d00f7
.....
..011
.0000
..202
.....
SlimeDown
#a200ff #a70fff #9d00f7
.....
..0..
.102.
.002.
.100.
( noa: added eyes to the ghost - I think that makes it look a little more like one? )
GhostLeft
#f748e3 #a200ff #f754e5 #f23fde(bright main color previously #eb44f3, eyes use slime color)
.2...
2100.
20003
0103.
.3...
GhostUp
#f748e3 #a200ff #fa4de6 #f23fde
.222.
21010
.000.
.003.
..3..
GhostRight
#f748e3 #a200ff #fa4de6 #f23fde
...2.
.2010
20003
.0013
...3.
GhostDown
#f748e3 #a200ff #fa4de6 #f23fde
..2..
.200.
.000.
21013
.033.
( Human sprites
The L and R represent which arm is forward
Hair color is the same as the border color
Shirt color is the same as the wall color
Skin color has an odd pink tinge, as a connection to the ghost
)
HumanLeftL
#303040 #f283c4 #5918db
..22.
.100.
.100.
.100.
.22..
HumanLeftR
#303040 #f283c4 #5918db
.22..
.100.
.100.
.100.
..22.
HumanUpL
#303040 #f283c4 #5918db
.....
2111.
20002
.0002
.....
HumanUpR
#303040 #f283c4 #5918db
.....
.1112
20002
2000.
.....
HumanRightL
#303040 #f283c4 #5918db
..22.
.001.
.001.
.001.
.22..
HumanRightR
#303040 #f283c4 #5918db
.22..
.001.
.001.
.001.
..22.
HumanDownL
#303040 #f283c4 #5918db
.....
2000.
20002
.1112
.....
HumanDownR
#303040 #f283c4 #5918db
.....
.0002
20002
2111.
.....
(Illegal Move Bump Sprites)
HumanLeftLBump1
#303040 #f283c4 #5918db
22...
100..
100..
100..
.22..
HumanLeftLBump2
#303040 #f283c4 #5918db
22...
100..
100..
100..
22...
HumanLeftLBump3
#303040 #f283c4 #5918db
22...
100..
100..
100..
.22..
HumanLeftRBump1
#303040 #f283c4 #5918db
.22..
100..
100..
100..
22...
HumanLeftRBump2
#303040 #f283c4 #5918db
22...
100..
100..
100..
22...
HumanLeftRBump3
#303040 #f283c4 #5918db
.22..
100..
100..
100..
22...
HumanUpLBump1
#303040 #f283c4 #5918db
.1112
20002
2000.
.....
.....
HumanUpLBump2
#303040 #f283c4 #5918db
21112
20002
.000.
.....
.....
HumanUpLBump3
#303040 #f283c4 #5918db
.1112
20002
2000.
.....
.....
HumanUpRBump1
#303040 #f283c4 #5918db
2111.
20002
.0002
.....
.....
HumanUpRBump2
#303040 #f283c4 #5918db
21112
20002
.000.
.....
.....
HumanUpRBump3
#303040 #f283c4 #5918db
2111.
20002
.0002
.....
.....
HumanRightLBump1
#303040 #f283c4 #5918db
..22.
..001
..001
..001
...22
HumanRightLBump2
#303040 #f283c4 #5918db
...22
..001
..001
..001
...22
HumanRightLBump3
#303040 #f283c4 #5918db
..22.
..001
..001
..001
...22
HumanRightRBump1
#303040 #f283c4 #5918db
...22
..001
..001
..001
..22.
HumanRightRBump2
#303040 #f283c4 #5918db
...22
..001
..001
..001
...22
HumanRightRBump3
#303040 #f283c4 #5918db
...22
..001
..001
..001
..22.
HumanDownLBump1
#303040 #f283c4 #5918db
.....
.....
.0002
20002
2111.
HumanDownLBump2
#303040 #f283c4 #5918db
.....
.....
.000.
20002
21112
HumanDownLBump3
#303040 #f283c4 #5918db
.....
.....
.0002
20002
2111.
HumanDownRBump1
#303040 #f283c4 #5918db
.....
.....
2000.
20002
.1112
HumanDownRBump2
#303040 #f283c4 #5918db
.....
.....
.000.
20002
21112
HumanDownRBump3
#303040 #f283c4 #5918db
.....
.....
2000.
20002
.1112
GhostLeftBump1
#f748e3 red #f754e5 #f23fde
2....
100..
2003.
103..
3....
GhostLeftBump2
#f748e3 red #f754e5 #f23fde
2....
100..
2003.
103..
3....
GhostUpBump1
#f748e3 red #fa4de6 #f23fde
21210
.000.
.003.
..3..
.....
GhostUpBump2
#f748e3 red #fa4de6 #f23fde
21210
.000.
.003.
..3..
.....
GhostRightBump1
#f748e3 red #fa4de6 #f23fde
....2
..201
.2003
..001
....3
GhostRightBump2
#f748e3 red #fa4de6 #f23fde
....2
..201
.2003
..001
....3
GhostDownBump1
#f748e3 red #fa4de6 #f23fde
.....
..2..
.200.
.000.
21313
GhostDownBump2
#f748e3 red #fa4de6 #f23fde
.....
..2..
.200.
.000.
21313
( a flag, used so that putting the right arm forward isn't immediately cancelled by putting the left arm forward )
HasWalked
transparent
( a flag, just used to compress some aesthetic rules slightly )
TogglePlayerState
transparent
( what could switch between the ghost and player? a different sprite could tell more of a story. )
(Switcher
#f283c4 #f748e3 #e7a1d7
.001.
00001
01001
01111
.011.)
(changed it to a potion)
Switcher
#ea78d6 #e440c7 #ae1e95 #7f7f7f #1b1b1b #db7838 #9c3d00
.56..
.34..
1012.
0102.
1212.
( winterbeak: i kinda like the look of a solid blue wall. that's just personal preference, though. i'm imagining that it's some sort of gooey but firm ectoplasmic substance, different from the purple substance that the player creates.)
(Wall
#3928b9)
( noa: feel very free to revert to solid blue walls, but this feels even more like the description above for me, perhaps too grid-like in larger areas)
SlimeWall
#3d2bc4 #5918db
01100
11110
11110
01100
00000
(Le Slo: I added a layer on top to make it look more like ectoplasm, but now the floor looks dull in comparison, maybe this was too much? Feel free to change it)
EctoPlasm01
#5918db #3d2bc4 #7017ec
01111
11120
00112
12111
10100
EctoPlasm02
#3d2bc4 #7017ec #5918db
00022
00012
00201
01002
02002
EctoPlasm03
#3d2bc4 #7017ec #5918db
00012
02000
00020
02200
01200
EctoPlasm04
#3d2bc4 #5918db #7017ec
01001
00021
00100
21000
00011
CornerTL
#c7cbd7 #bbbeca #5918db
12...
2....
.....
.....
.....
CornerTR
#c7cbd7 #bbbeca #9047dc
...21
....2
.....
.....
.....
CornerBL
#c7cbd7 #bbbeca #3017bc
.....
.....
.....
2....
12...
CornerBR
#c7cbd7 #bbbeca #5918db
.....
.....
.....
....2
...21
(sprites for animating wall growth)
wall_1_grow
#8f07f4 #5918db
.....
..0..
.000.
..0..
.....
wall_2_grow
#6d16e0 #5918db
.....
.000.
.010.
.00..
.....
wall_3_grow
#4d24cd #5918db
.00..
0110.
0110.
.000.
.....
(sprites for animating wall shrinking)
wall_1_shrink
#4d24cd #5918db
.....
..0..
.000.
..0..
.....
wall_2_shrink
#6d16e0 #5918db
.....
.000.
.010.
.00..
.....
wall_3_shrink
#8f07f4 #5918db
.00..
0110.
0110.
.000.
.....
WallPreview
#9f77ef #a97ffc (prev. all #8c84c4)
00000
01110
01110
01110
00000
(01100
11110
11110
01100
00000)
BackgroundPreview
#ccb6f8 #c1a4fc (prev. #b2b9d3 #a3add1)
11011
11111
01010
11111
11011
(10101
00100
11111
00100
10101)
( still a placeholder? )
Goal
#97d745 #8dcd3c
10101
00000
10001
00000
10101
( The goal acts like a border to the ghost. )
GoalWall
#8dcd3c #3f996f
10101
00000
10001
00000
10101
( Should make it more obvious that the player is now able to complete the level )
GoalEnabled
#8dcd3c #b4eb6e #c1f57f
10101
00000
10001
00000
10101
GoalConditionMarker
transparent
(NotAJumbleOfNumbers: i thought recoloring these coins would make them look more like past memories, or something else more mysterious. honestly, it could probably be better than this.)
Collectable (grab all these before you can win)
#ffe642 #f8c032 #f8aa32 (Le Slo: I switched back to the previous because of the ectoplasm, previous next: #c652f8 #b632f8 #a622f8)
.....
.011.
.102.
.222.
.....
Collectable_Slimed (it can be hard to see that a tile is slimed when there is a collectable on it. this makes it easier )
#ffe642 #f8c032 #f8aa32 #d886a3 #cf6493 #cf4493
.....
.344.
.435.
.555.
.....
Border (the solid, dark grey walls that cannot be transformed)
#303040 (previously #333338)
BorderL
#524b63 #413b4f(previously #4e4f59)
0....
0....
0.1..
0....
0....
BorderU
#524b63 #413b4f
00000
.....
..1..
.....
.....
BorderR
#524b63 #413b4f
....0
....0
..1.0
....0
....0
BorderD
#524b63 #413b4f
.....
.....
..1..
.....
00000
(Little corners in wall borders // Pedro PSI)
BoLXU
#524b63 #413b4f
0.1..
..1..
111..
.....
.....
BoDXL
#524b63 #413b4f
.....
.....
111..
..1..
0.1..
BoUXR
#524b63 #413b4f
..1.0
..1..
..111
.....
.....
BoRXD
#524b63 #413b4f
.....
.....
..111
..1..
..1.0
BorderLkD
transparent
BorderUkL
transparent
BorderRkU
transparent
BorderDkR
transparent
BorderLkU
transparent
BorderUkR
transparent
BorderRkD
transparent
BorderDkL
transparent
(sprites for smoke animations)
smoke_start
gray lightgray
.....
.111.
.101.
.111.
.....
smoke_mid_1
gray lightgray
00000
00000
00100
00000
00000
smoke_mid_2
gray lightgray
11111
1...1
1...1
1...1
11111
smoke_mid_3
gray lightgray
.....
.....
.....
.....
.....
smoke_down_1
gray lightgray
00000
01100
1..11
.....
.....
smoke_down_2
gray lightgray
0.000
0000.
00.01
1111.
.....
smoke_down_3
gray lightgray
11.11
0.1.0
.0.0.
0.0.1
.1.1.
smoke_up_1
gray lightgray
.....
.....
11..1
00110
00000
smoke_up_2
gray lightgray
.....
.1111
10.00
0000.
0.000
smoke_up_3
gray lightgray
.1.1.
1.0.0
.0.0.
0.1.0
11.11
smoke_left_1
gray lightgray
..100
...10
...10
..100
..100
smoke_left_2
gray lightgray
.1000
.100.
.1.00
.1000
..1.0
smoke_left_3
gray lightgray
.0.01
1.0.1
.0.1.
1.0.1
.1.01
smoke_right_1
gray lightgray
001..
01...
01...
001..
001..
smoke_right_2
gray lightgray
0001.
.001.
00.1.
0001.
0.1..
smoke_right_3
gray lightgray
10.0.
1.0.1
.1.0.
1.0.1
10.1.
smoke_downleft_1
gray lightgray
..100
...10
....1
.....
.....
smoke_downleft_2
gray lightgray
.10.0
.1000
..10.
...11
.....
smoke_downleft_3
gray lightgray
10.0.
110.0
.1.0.
.10.0
..111
smoke_upleft_1
gray lightgray
.....
.....
....1
...10
..100
smoke_upleft_2
gray lightgray
.....
...11
..10.
.1000
.10.0
smoke_upleft_3
gray lightgray
..111
.10.0
.1.0.
110.0
10.0.
smoke_downright_1
gray lightgray
001..
01...
1....
.....
.....
smoke_downright_2
gray lightgray
0.01.
0001.
.01..
11...
.....
smoke_downright_3
gray lightgray
.0.01
0.011
.0.1.
0.01.
111..
smoke_upright_1
gray lightgray
.....
.....
1....
01...
001..
smoke_upright_2
gray lightgray
.....
11...
.01..
0001.
0.01.
smoke_upright_3
gray lightgray
111..
0.01.
.0.1.
0.011
.0.01
( crates )
Crate
#e26134 #d74431 (prev. all "brown")
00000
0...1
0...1
0...0
01100
Crate_moveable (to differentiate crate when it is pushable vs. when it is not)
#f36494 #e84691
00000
0...1
0...1
0...0
01100
CrateLeft
#e26134 #d74431
00000
0...1
0...1
0...0
01100
CrateRight
#e26134 #d74431
00000
0...1
0...1
0...0
01100
CrateUp
#e26134 #d74431
00000
0...1
0...1
0...0
01100
CrateDown
#e26134 #d74431
00000
0...1
0...1
0...0
01100
NoSlimeTile (terrain where slime isn't placed by ghost; graphics are placeholder)
#3f996f #24786f (previously all #909AB6)
0...0
.0.0.
..0..
.0.1.
0...1
(Counters (Elyot) )
( The shading is to try to make them look better when vertically adjacent, the chosen red and green shades are colour-blind safe... ish )
( They numbers turn green if they agree with the number of wall tiles in their row and column )
( All must be turned green to exit )
( They don't have to go at the top/sides of the grid, you could try putting them anywhere or even making them pushable )
( now they're pushable by the human )
bgwrong
#f33 #f55 #f77 #f99 #fbb #100 #200 #300 #500 #700
99999
88888
77777
66666
55555
bgcorrect
#0f3 #3f6 #6f9 #9fc #cff #031 #052 #073 #094 #0b5
99999
88888
77777
66666
55555
zero
#f33 #f55 #f77 #f99 #fbb #100 #200 #300 #500 #700
.444.
.3.3.
.2.2.
.1.1.
.000.
one
#f33 #f55 #f77 #f99 #fbb #100 #200 #300 #500 #700
.44..
..3..
..2..
..1..
.000.
two
#f33 #f55 #f77 #f99 #fbb #100 #200 #300 #500 #700
.44..
...3.
..2..
.1...
.000.
three
#f33 #f55 #f77 #f99 #fbb #100 #200 #300 #500 #700
.44..
...3.
..22.
...1.
.00..
four
#f33 #f55 #f77 #f99 #fbb #100 #200 #300 #500 #700
.4.4.
.3.3.
.222.
...1.
...0.
five
#f33 #f55 #f77 #f99 #fbb #100 #200 #300 #500 #700
.444.
.3...
.22..
...1.
.00..
six
#f33 #f55 #f77 #f99 #fbb #100 #200 #300 #500 #700
..44.
.3...
.222.
.1.1.
.000.
seven
#f33 #f55 #f77 #f99 #fbb #100 #200 #300 #500 #700
.444.
...3.
..2..
.1...
.0...
eight
#f33 #f55 #f77 #f99 #fbb #100 #200 #300 #500 #700
.444.
.3.3.
.222.
.1.1.
.000.
nine
#f33 #f55 #f77 #f99 #fbb #100 #200 #300 #500 #700
.444.
.3.3.
.222.
...1.
.00..
(prevents number sensors from looking forward)
numberblock
#f33 #f55 #f77 #f99 #fbb #100 #200 #300 #500 #700
.....
.999.
.888.
.777.
.....
zerocorrect
#0f3 #3f6 #6f9 #9fc #cff #031 #052 #073 #094 #0b5
.444.
.3.3.
.2.2.
.1.1.
.000.
onecorrect
#0f3 #3f6 #6f9 #9fc #cff #031 #052 #073 #094 #0b5
.44..
..3..
..2..
..1..
.000.
twocorrect
#0f3 #3f6 #6f9 #9fc #cff #031 #052 #073 #094 #0b5
.44..
...3.
..2..
.1...
.000.
threecorrect
#0f3 #3f6 #6f9 #9fc #cff #031 #052 #073 #094 #0b5
.44..
...3.
..22.
...1.
.00..
fourcorrect
#0f3 #3f6 #6f9 #9fc #cff #031 #052 #073 #094 #0b5
.4.4.
.3.3.
.222.
...1.
...0.
fivecorrect
#0f3 #3f6 #6f9 #9fc #cff #031 #052 #073 #094 #0b5
.444.
.3...
.22..
...1.
.00..
sixcorrect
#0f3 #3f6 #6f9 #9fc #cff #031 #052 #073 #094 #0b5
..44.
.3...
.222.
.1.1.
.000.
sevencorrect
#0f3 #3f6 #6f9 #9fc #cff #031 #052 #073 #094 #0b5
.444.
...3.
..2..
.1...
.0...
eightcorrect
#0f3 #3f6 #6f9 #9fc #cff #031 #052 #073 #094 #0b5
.444.
.3.3.
.222.
.1.1.
.000.
ninecorrect
#0f3 #3f6 #6f9 #9fc #cff #031 #052 #073 #094 #0b5
.444.
.3.3.
.222.
...1.
.00..
zerocount
transparent
onecount
transparent
twocount
transparent
threecount
transparent
fourcount
transparent
fivecount
transparent
sixcount
transparent
sevencount
transparent
eightcount
transparent
ninecount
transparent
tenpluscount
transparent
wallcounteru
transparent
wallcounterd
transparent
wallcounterl
transparent
wallcounterr
transparent
cornerTop
transparent
cornerBottom
transparent
Anim_Entry_0
transparent
Anim_Entry_0_C
#20202b #a35884 #3c1093
00011
00011
00011
00011
00011
Anim_Entry_0_U
#20202b #a35884 #3c1093
.....
.222.
2222.
0001.
00011
Anim_Entry_0_D
#20202b #a35884 #3c1093
00011
0001.
222..
222..
.....
Anim_Entry_0_L
#20202b #a35884 #3c1093
...00
...00
...00
...00
...00
Anim_Entry_0_R
#20202b #a35884 #3c1093
1....
1....
1....
1....
1....
Anim_Entry_0_LU
#20202b #a35884 #3c1093
.....
.....
.....
....0
...00
Anim_Entry_0_LD
#20202b #a35884 #3c1093
...00
....0
....2
.....
.....
Anim_Entry_1
transparent
Anim_Entry_1_C
#242431 #b86495 #4412a6
00011
00011
00011
00011
00011
Anim_Entry_1_U
#242431 #b86495 #4412a6
.....
.....
.222.
.222.
0001.
Anim_Entry_1_D
#242431 #b86495 #4412a6
0001.
222..
222..
.....
.....
Anim_Entry_1_L
#242431 #b86495 #4412a6
....0
....0
....0
....0
....0
Anim_Entry_2
transparent
Anim_Entry_2_C
#292936 #ce6fa7 #4c14ba
0001.
00011
00011
00011
0001.
Anim_Entry_2_U
#292936 #ce6fa7 #4c14ba
.....
.....
.....
..22.
.222.
Anim_Entry_2_D
#292936 #ce6fa7 #4c14ba
222..
.22..
.....
.....
.....
Anim_Entry_3
transparent
Anim_Entry_3_C
#2d2d3b #e17ab6 #5316cb
.001.
0001.
0001.
0001.
.001.
Anim_Entry_3_U
#2d2d3b #e17ab6 #5316cb
.....
.....
.....
.....
..22.
Anim_Entry_3_D
#2d2d3b #e17ab6 #5316cb
.22..
.....
.....
.....
.....
Anim_Exit_Goal_0
#8dcd3c #b4eb6e #c1f57f
10101
00000
10001
00000
10101
Anim_Exit_Goal_1
#8dcd3c #b4eb6e #c1f57f #151515 #242425
00400
00300
43334
00300
00400
Anim_Exit_Goal_2
#8dcd3c #b4eb6e #c1f57f #151515 #242425
04440
43334
43334
43334
04440
Anim_Exit_Goal_3
#8dcd3c #b4eb6e #c1f57f #151515 #242425
44444
43334
43334
43334
44444
Anim_Exit_HumanUp_0
#303040 #f283c4 #5918db
.....
.1112
20002
2000.
.....
Anim_Exit_HumanRight_0
#303040 #f283c4 #5918db
..22.
.001.
.001.
.001.
.22..
Anim_Exit_HumanDown_0
#303040 #f283c4 #5918db
.....
2000.
20002
.1112
.....
Anim_Exit_HumanLeft_0
#303040 #f283c4 #5918db
.22..
.100.
.100.
.100.
..22.
Anim_Exit_HumanUp_1
#303040 #f283c4 #5918db #754561 #212127
.....
.312.
.202.
.204.
.....
Anim_Exit_HumanRight_1
#303040 #f283c4 #5918db #754561 #212127
.....
.223.
.001.
.422.
.....
Anim_Exit_HumanDown_1
#303040 #f283c4 #5918db #754561 #212127
.....
.402.
.202.
.213.
.....
Anim_Exit_HumanLeft_1
#303040 #f283c4 #5918db #754561 #212127
.....
.224.
.100.
.322.
.....
Anim_Exit_Human_2
#492594
.....
.....
..0..
.....
.....
Anim_Exit_Human_3
#2d1d51
.....
.....
..0..
.....
.....
Anim_Exit_Human_4
#221935
.....
.....
..0..
.....
.....
Anim_Exit_Human_5
#18161c
.....
.....
..0..
.....
.....
Anim_Exit_Human_6
transparent
MegaSlime_C_U0
#bc57b2 #70486c #fb8fef #e87df1 #f38fef #d97ecf #cc72d1 #a200ff #fa96ef #f186ef
79847
74327
32425
51116
00000
MegaSlime_C_U1
#f490ef #fb8fef #f287ef #e177f1 #fa9eef #f79eef
25131
25102
10342
21011
13212
MegaSlime_C_U2
#fc7bed #fb76ec #f775ed #e871f2 #fb8fef #e894f2 #f89df0 #ed8cef #ed80f1 #fa96ef
54349
65943
59534
74456
48464
MegaSlime_C_U3
#e871f2 #b85de8 #fb8fef #d882eb #983ee2 #bf74eb #6c24dd #a961e8 #7830df
.....
.....
45678
01232
32203
MegaSlime_L1_U0
#bc57b2 #fb6feb #a200ff #d97ecf #fb8fef #f186ef
41542
11422
..134
...03
....0
MegaSlime_L1_U1
#fb6feb #fb8fef #f186ef #e177f1 #fa9eef #e9a3f2 #efb3f2 #e78cf2
.0561
.0174
01321
01211
10131
MegaSlime_L1_U2
#fb6feb #fb8fef #f095f0 #f0c9f2 #f4b3f2 #ebb2f2 #f095f0
....0
...00
...04
..043
..035
MegaSlime_L1_U3
#fd97f1 #8b4ae3 #fb6feb #bf74eb #6c24dd
.....
.....
..341
...20
....2
MegaSlime_L2_U0
#bc57b2 #fb6feb #a200ff #d97ecf #fb8fef #f186ef
...11
.....
.....
.....
.....
MegaSlime_L2_U1
#fb6feb #fb8fef
.....
.....
....0
...01
..011
MegaSlime_R1_U0
#bc57b2 #f186ef #a200ff #d97ecf #bc56b2 #e87eef #ce66c4
21546
22300
330..
30...
0....
MegaSlime_R1_U1
#fa9bef #f186ef #d961cc #d97ecf #bc56b2 #c369d1 #ce66c4 #e87df1
1714.
0174.
10152
17132
71746
MegaSlime_R1_U2
#fb6feb #fb8fef #e379f1 #f186ef #fa9bef
0....
00...
30...
110..
410..
MegaSlime_R1_U3
#fd97f1 #985ee6 #fb6feb #bf74eb #6c24dd
.....
.....
143..
02...
2....
MegaSlime_R2_U0
#bc57b2 #fb6feb #a200ff #d97ecf #fb8fef #f186ef
00...
.....
.....
.....
.....
MegaSlime_R2_U1
#bc57b2 #de74d3 #ce66c4
.....
.....
0....
20...
110..
MegaHuman_C_U0
#303040 #f283c4 #5918db
11111
11111
11111
11111
11111
MegaHuman_C_U1
#303040 #f283c4 #5918db
00000
00000
00000
00000
00000
MegaHuman_C_U2
#303040 #f283c4 #5918db
.....
.....
.....
00000
00000
MegaHuman_C_U3
transparent
MegaHuman_L1_U0
#303040 #f283c4 #5918db
20000
22111
..111
...11
.....
MegaHuman_L1_U1
#303040 #f283c4 #5918db
..000
22000
20000
20000
20000
MegaHuman_L1_U2
#303040 #f283c4 #5918db
.....
.....
.....
.....
...00
MegaHuman_L1_U3
transparent
MegaHuman_L2_U0
#303040 #f283c4 #5918db
..222
...22
.....
.....
.....
MegaHuman_L2_U1
#303040 #f283c4 #5918db
.....
...22
..222
..222
..222
MegaHuman_R1_U0
#303040 #f283c4 #5918db
00002
11122
111..
11...
.....
MegaHuman_R1_U1
#303040 #f283c4 #5918db
000..
00022
00002
00002
00002
MegaHuman_R1_U2
#303040 #f283c4 #5918db
.....
.....
.....
.....
00...
MegaHuman_R1_U3
transparent
MegaHuman_R2_U0
#303040 #f283c4 #5918db
222..
22...
.....
.....
.....
MegaHuman_R2_U1
#303040 #f283c4 #5918db
.....
22...
222..
222..
222..
OmegaLevelExit
black darkgray #c7cbd7 #bbbeca
.3210
.3210
.3210
.3210
.3210
MegaSlimeWallMarker
transparent
.....
.....
..0..
.....
.....
=======
LEGEND
=======
( these letters are a little confusing )
. = Background
# = SlimeWall
( changed p, q, r to animate it - for levels that start in slime mode, you see the human switch to slime at the start - sftrabbit )
p = Anim_Entry_0 and Switcher
r = Anim_Entry_0 and Switcher and SlimeWall
q = Anim_Entry_0
u = GhostRight (added this for the level where there's two players - we can imagine the other slime was there the whole time - sftrabbit)
j = HumanRightL (this is just for the very first level - sftrabbit)
s = Switcher
g = Goal
x = Border
c = Collectable
o = Collectable and SlimeWall
m = Crate
n = NoSlimeTile
b = NoSlimeTile and SlimeWall
t = Crate and Collectable
z = Crate and SlimeWall
0 = zero
1 = one
2 = two
3 = three
4 = four
5 = five
6 = six
7 = seven
8 = eight
9 = nine
& = border and numberblock
(Ŏ = zero and NoSlimeTile)
Ä = one and NoSlimeTile
Ɓ = two and NoSlimeTile
Ç = three and NoSlimeTile
Ð = four and NoSlimeTile
È = five and NoSlimeTile
(ƒ = six and NoSlimeTile)
(Ĝ = seven and NoSlimeTile)
(ƕ = eight and NoSlimeTile)
(ķ = nine and NoSlimeTile)
ꞎ = MegaSlime_C_U0 and SlimeWall
ᶆ = MegaSlime_L1_U0 and SlimeWall
ɳ = MegaSlime_R1_U0 and SlimeWall
ᶈ = MegaSlime_L2_U0 and SlimeWall
ʠ = MegaSlime_R2_U0 and SlimeWall
ᶉ = MegaSlime_L2_U1 and SlimeWall
ᶊ = MegaSlime_R2_U1 and SlimeWall
ƫ = MegaSlime_L1_U1 and SlimeWall
ᶙ = MegaSlime_C_U1 and SlimeWall
ᶌ = MegaSlime_R1_U1 and SlimeWall
ⱳ = MegaSlime_L1_U2 and SlimeWall
ᶍ = MegaSlime_R1_U2 and SlimeWall
ƴ = MegaSlime_C_U2 and SlimeWall
ᶎ = MegaSlime_C_U3 and SlimeWall
ᶚ = MegaSlime_L1_U3 and SlimeWall
ᶋ = MegaSlime_R1_U3 and SlimeWall
$ = SlimeWall and MegaSlimeWallMarker
Ω = OmegaLevelExit
/ = SlimeWall and NoSlimeTile and Collectable
GhostBump = GhostLeftBump1 or GhostLeftBump2 or GhostUpBump1 or GhostUpBump2 or GhostRightBump1 or GhostRightBump2 or GhostDownBump1 or GhostDownBump2
Ghost = GhostLeft or GhostUp or GhostRight or GhostDown or GhostBump
SlimeSprite = SlimePoint or SlimeLeft or SlimeUp or SlimeRight or SlimeDown
HumanLeft = HumanLeftL or HumanLeftR
HumanUp = HumanUpL or HumanUpR
HumanRight = HumanRightL or HumanRightR
HumanDown = HumanDownL or HumanDownR
HumanLeftBumpL = HumanLeftLBump1 or HumanLeftLBump2 or HumanLeftLBump3
HumanLeftBumpR = HumanLeftRBump1 or HumanLeftRBump2 or HumanLeftRBump3
HumanUpBumpL = HumanUpLBump1 or HumanUpLBump2 or HumanUpLBump3
HumanUpBumpR = HumanUpRBump1 or HumanUpRBump2 or HumanUpRBump3
HumanRightBumpL = HumanRightLBump1 or HumanRightLBump2 or HumanRightLBump3
HumanRightBumpR = HumanRightRBump1 or HumanRightRBump2 or HumanRightRBump3
HumanDownBumpL = HumanDownLBump1 or HumanDownLBump2 or HumanDownLBump3
HumanDownBumpR = HumanDownRBump1 or HumanDownRBump2 or HumanDownRBump3
HumanBumpL = HumanLeftBumpL or HumanUpBumpL or HumanRightBumpL or HumanDownBumpL
HumanBumpR = HumanLeftBumpR or HumanUpBumpR or HumanRightBumpR or HumanDownBumpR
HumanL = HumanLeftL or HumanUpL or HumanRightL or HumanDownL or HumanBumpL
HumanR = HumanLeftR or HumanUpR or HumanRightR or HumanDownR or HumanBumpR
Human = HumanL or HumanR
Player = Ghost or Human
CrateMoving = CrateLeft or CrateRight or CrateUp or CrateDown
smoke_1 = smoke_start or smoke_upleft_1 or smoke_up_1 or smoke_upright_1 or smoke_left_1 or smoke_mid_1 or smoke_right_1 or smoke_downleft_1 or smoke_down_1 or smoke_downright_1
wallGrow = wall_1_grow or wall_2_grow or wall_3_grow
count = zerocount or onecount or twocount or threecount or fourcount or fivecount or sixcount or sevencount or eightcount or ninecount or tenpluscount
number = zero or one or two or three or four or five or six or seven or eight or nine or numberblock
numberNoBlock = zero or one or two or three or four or five or six or seven or eight or nine
numbercorrect = zerocorrect or onecorrect or twocorrect or threecorrect or fourcorrect or fivecorrect or sixcorrect or sevencorrect or eightcorrect or ninecorrect
wallcounter = wallcounteru or wallcounterd or wallcounterl or wallcounterr
MovableNumber = number or numbercorrect
ObstructsNumber = Border or Crate or SlimeWall or MovableNumber
ObstructsCrate = Border or Crate or MovableNumber
ObstructsHuman = Border or Crate or MovableNumber or SlimeWall
ObstructsGhost = Border or Crate or MovableNumber or GoalWall
Ectoplasm = EctoPlasm01 or EctoPlasm02 or EctoPlasm03 or EctoPlasm04
corners = CornerTL or CornerTR or CornerBL or CornerBR
cornerMarkers = cornerTop or cornerBottom
Anim_Entry = Anim_Entry_0_C or Anim_Entry_0_U or Anim_Entry_0_D or Anim_Entry_0_L or Anim_Entry_0_R or Anim_Entry_0_LU or Anim_Entry_0_LD or Anim_Entry_1_C or Anim_Entry_1_U or Anim_Entry_1_D or Anim_Entry_1_L or Anim_Entry_2_C or Anim_Entry_2_U or Anim_Entry_2_D or Anim_Entry_3_C or Anim_Entry_3_U or Anim_Entry_3_D
Anim_Exit_Goal = Anim_Exit_Goal_0 or Anim_Exit_Goal_1 or Anim_Exit_Goal_2 or Anim_Exit_Goal_3
Anim_Exit_Human = Anim_Exit_HumanUp_0 or Anim_Exit_HumanUp_1 or Anim_Exit_HumanRight_0 or Anim_Exit_HumanRight_1 or Anim_Exit_HumanDown_0 or Anim_Exit_HumanDown_1 or Anim_Exit_HumanLeft_0 or Anim_Exit_HumanLeft_1 or Anim_Exit_Human_2 or Anim_Exit_Human_3 or Anim_Exit_Human_4 or Anim_Exit_Human_5 or Anim_Exit_Human_6
MegaSlime = MegaSlime_C_U0 or MegaSlime_L1_U0 or MegaSlime_R1_U0 or MegaSlime_L2_U0 or MegaSlime_R2_U0 or MegaSlime_L2_U1 or MegaSlime_R2_U1 or MegaSlime_L1_U1 or MegaSlime_C_U1 or MegaSlime_R1_U1 or MegaSlime_L1_U2 or MegaSlime_R1_U2 or MegaSlime_C_U2 or MegaSlime_C_U3 or MegaSlime_R1_U3 or MegaSlime_L1_U3
MegaHuman = MegaHuman_C_U0 or MegaHuman_L1_U0 or MegaHuman_R1_U0 or MegaHuman_L2_U0 or MegaHuman_R2_U0 or MegaHuman_L2_U1 or MegaHuman_R2_U1 or MegaHuman_L1_U1 or MegaHuman_C_U1 or MegaHuman_R1_U1 or MegaHuman_L1_U2 or MegaHuman_R1_U2 or MegaHuman_C_U2 or MegaHuman_C_U3 or MegaHuman_R1_U3 or MegaHuman_L1_U3
Mega = MegaSlime or MegaHuman
(SlimeWall Borders decoration)
BorderDeco = BorderL or BorderR or BorderU or BorderD
BoX = BoLXU or BoDXL or BoUXR or BoRXD
BoXL = BoLXU or BoDXL
BoXU = BoLXU or BoUXR
BoXR = BoUXR or BoRXD
BoXD = BoDXL or BoRXD
=======
SOUNDS
=======
Collectable destroy 85509507
BackgroundPreview create 87139507 (could perhaps be more subtle still)
sfx0 77471309 (switching between human and ghost)
sfx1 13053307 (pushing the crate)
sfx2 56721500
sfx3 94624704 (Human bump against wall)
sfx4 53709103 (Ghost bump)
sfx5 9608908 (Human bump agains ectoplasm)
sfx6 40971508 (Goal open)
sfx7 29705501 (Human fall into goal)
================
COLLISIONLAYERS
================
Background
OmegaLevelExit
Goal
GoalEnabled
GoalConditionMarker
Anim_Exit_Goal
HasWalked
wall_1_grow, wall_2_grow, wall_3_grow, wall_1_shrink, wall_2_shrink, wall_3_shrink
SlimeWall
Ectoplasm
cornerTL
cornerTR
cornerBL
cornerBR
Human, Border, bgwrong, bgcorrect
BackgroundPreview, WallPreview
BorderL
BorderU
BorderR
BorderD
BoLXU
BoUXR
BoDXL
BoRXD
BorderLkD
BorderUkL
BorderRkU
BorderDkR
BorderLkU
BorderUkR
BorderRkD
BorderDkL
SlimeMarker
SlimePoint
SlimeLeft
SlimeRight
SlimeUp
SlimeDown
Collectable
Collectable_Slimed
NoSlimeTile
Switcher
GoalWall
Ghost, Crate, CrateMoving,
TogglePlayerState
Crate_moveable
zero, one, two, three, four, five, six, seven, eight, nine, zerocorrect, onecorrect, twocorrect, threecorrect, fourcorrect, fivecorrect, sixcorrect, sevencorrect, eightcorrect, ninecorrect
smoke_start, smoke_mid_1, smoke_mid_2, smoke_mid_3, smoke_down_1, smoke_down_2, smoke_down_3, smoke_up_1, smoke_up_2, smoke_up_3, smoke_left_1, smoke_left_2, smoke_left_3, smoke_right_1, smoke_right_2, smoke_right_3, smoke_downleft_1, smoke_downleft_2, smoke_downleft_3, smoke_downright_1, smoke_downright_2, smoke_downright_3, smoke_upleft_1, smoke_upleft_2, smoke_upleft_3, smoke_upright_1, smoke_upright_2, smoke_upright_3
zerocount, onecount, twocount, threecount, fourcount, fivecount, sixcount, sevencount, eightcount, ninecount, tenpluscount
wallcounteru
wallcounterd
wallcounterl
wallcounterr
numberblock
cornerTop
cornerBottom
Anim_Entry_0 Anim_Entry_1 Anim_Entry_2 Anim_Entry_3
Anim_Entry
Anim_Exit_Human
Mega
MegaSlimeWallMarker
======
RULES
======
( THIS SECTION IS ALL AESTHETICS
if you'd like to add non-aesthetic rules here, that's fine, i'm just saying this so that you can skip reading it if it doesn't pertain to you)
(decorates the borders)
late left [Border no BorderL|no Border]-> [Border BorderL|]
late up [Border no BorderU|no Border]-> [Border BorderU|]
late right [Border no BorderR|no Border]-> [Border BorderR|]
late down [Border no BorderD|no Border]-> [Border BorderD|]
(corners)
late left [Border no BorderLkD|Border BorderD]->[Border BorderLkD|Border BorderD]
late up [Border no BorderUkL|Border BorderL]->[Border BorderUkL|Border BorderL]
late right [Border no BorderRkU|Border BorderU]->[Border BorderRkU|Border BorderU]
late down [Border no BorderDkR|Border BorderR]->[Border BorderDkR|Border BorderR]
late left [Border no BorderLkU|Border BorderU]->[Border BorderLkU|Border BorderU]
late up [Border no BorderUkR|Border BorderR]->[Border BorderUkR|Border BorderR]
late right [Border no BorderRkD|Border BorderD]->[Border BorderRkD|Border BorderD]
late down [Border no BorderDkL|Border BorderL]->[Border BorderDkL|Border BorderL]
late [Border BorderLkU BorderUkL no BoLxU]->[Border BorderLkU BorderUkL BoLxU]
late [Border BorderUkR BorderRkU no BoUxR]->[Border BorderUkR BorderRkU BoUxR]
late [Border BorderRkD BorderDkR no BoRxD]->[Border BorderRkD BorderDkR BoRxD]
late [Border BorderDkL BorderLkD no BoDxL]->[Border BorderDkL BorderLkD BoDxL]
late [BorderDeco no Border]->[no BorderDeco]
late [BoX no Border]->[no BoX]
(makes ghost face the direction of movement)
[ left Ghost ] -> [ left GhostLeft ]
[ up Ghost ] -> [ up GhostUp ]
[ right Ghost ] -> [ right GhostRight ]
[ down Ghost ] -> [ down GhostDown ]
(Illegal move "bump" animations)
(jcGyo: I had to futz with the movement rules a bit to get this working and it was pretty complex by the time I got to it, I reeeeeally hope I didn't break any weird edge cases.)
[HumanLeftLBump3] -> [HumanLeftL]
[HumanLeftLBump2] -> [HumanLeftLBump3] again
[HumanLeftLBump1] -> [HumanLeftLBump2] again
[HumanLeftRBump3] -> [HumanLeftR]
[HumanLeftRBump2] -> [HumanLeftRBump3] again
[HumanLeftRBump1] -> [HumanLeftRBump2] again
[HumanUpLBump3] -> [HumanUpL]
[HumanUpLBump2] -> [HumanUpLBump3] again
[HumanUpLBump1] -> [HumanUpLBump2] again
[HumanUpRBump3] -> [HumanUpR]
[HumanUpRBump2] -> [HumanUpRBump3] again
[HumanUpRBump1] -> [HumanUpRBump2] again
[HumanRightLBump3] -> [HumanRightL]
[HumanRightLBump2] -> [HumanRightLBump3] again
[HumanRightLBump1] -> [HumanRightLBump2] again
[HumanRightRBump3] -> [HumanRightR]
[HumanRightRBump2] -> [HumanRightRBump3] again
[HumanRightRBump1] -> [HumanRightRBump2] again
[HumanDownLBump3] -> [HumanDownL]
[HumanDownLBump2] -> [HumanDownLBump3] again
[HumanDownLBump1] -> [HumanDownLBump2] again
[HumanDownRBump3] -> [HumanDownR]
[HumanDownRBump2] -> [HumanDownRBump3] again
[HumanDownRBump1] -> [HumanDownRBump2] again
[GhostLeftBump2] -> [GhostLeft]
[GhostLeftBump1] -> [GhostLeftBump2] again
[GhostUpBump2] -> [GhostUp]
[GhostUpBump1] -> [GhostUpBump2] again
[GhostRightBump2] -> [GhostRight]
[GhostRightBump1] -> [GhostRightBump2] again
[GhostDownBump2] -> [GhostDown]
[GhostDownBump1] -> [GhostDownBump2] again
( THIS SECTION HAS LESS AESTHETICS )
(Interactions between Human and Crate, feel free to add)
[ > Human | Crate ] -> [ Human | Crate ]
(humans can't push crates but can push numbers)
[ > Human | no SlimeWall no border MovableNumber | no ObstructsNumber ] -> [ > Human | > MovableNumber | ] sfx1
[ > MovableNumber | ObstructsNumber ] -> [ MovableNumber | ObstructsNumber ]
[ > MovableNumber | MovableNumber ] -> [ MovableNumber | MovableNumber ]
(Crate can be bumped by one space)
[ > Ghost | Crate | No ObstructsCrate ] -> [ Ghost | > Crate | ] sfx1
(Human Bump)
LEFT [ left HumanL | stationary ObstructsHuman no Ectoplasm ] -> [ HumanLeftLBump1 | ObstructsHuman ] sfx3 again
LEFT [ left HumanR | stationary ObstructsHuman no Ectoplasm] -> [ HumanLeftRBump1 | ObstructsHuman ] sfx3 again
UP [ up HumanL | stationary ObstructsHuman no Ectoplasm] -> [ HumanUpLBump1 | ObstructsHuman ] sfx3 again
UP [ up HumanR | stationary ObstructsHuman no Ectoplasm] -> [ HumanUpRBump1 | ObstructsHuman ] sfx3 again
RIGHT [ right HumanL | stationary ObstructsHuman no Ectoplasm] -> [ HumanRightLBump1 | ObstructsHuman ] sfx3 again
RIGHT [ right HumanR | stationary ObstructsHuman no Ectoplasm] -> [ HumanRightRBump1 | ObstructsHuman ] sfx3 again
DOWN [ down HumanL | stationary ObstructsHuman no Ectoplasm] -> [ HumanDownLBump1 | ObstructsHuman ] sfx3 again
DOWN [ down HumanR | stationary ObstructsHuman no Ectoplasm] -> [ HumanDownRBump1 | ObstructsHuman ] sfx3 again
(Human Bump Ectoplasm)
LEFT [ left HumanL | stationary Ectoplasm ] -> [ HumanLeftLBump1 | Ectoplasm ] sfx5 again
LEFT [ left HumanR | stationary Ectoplasm ] -> [ HumanLeftRBump1 | Ectoplasm ] sfx5 again
UP [ up HumanL | stationary Ectoplasm ] -> [ HumanUpLBump1 | Ectoplasm ] sfx5 again
UP [ up HumanR | stationary Ectoplasm ] -> [ HumanUpRBump1 | Ectoplasm ] sfx5 again
RIGHT [ right HumanL | stationary Ectoplasm ] -> [ HumanRightLBump1 | Ectoplasm ] sfx5 again
RIGHT [ right HumanR | stationary Ectoplasm ] -> [ HumanRightRBump1 | Ectoplasm ] sfx5 again
DOWN [ down HumanL | stationary Ectoplasm ] -> [ HumanDownLBump1 | Ectoplasm ] sfx5 again
DOWN [ down HumanR | stationary Ectoplasm ] -> [ HumanDownRBump1 | Ectoplasm ] sfx5 again
(makes human face the direction of movement, and does the walking animation
note: walking into a wall adds movements to the undo queue. i tried fixing it for a while, but it's probably more work than what it's worth. besides, walking into a wall is kinda funny anyway
jcGyo: When I added the bump animations I think it fixed that, although if walking into a wall causes a player direction change that action still goes on the stack
)
[ left HumanL ] -> [ left HumanLeftR HasWalked ]
[ up HumanL ] -> [ up HumanUpR HasWalked ]
[ right HumanL ] -> [ right HumanRightR HasWalked ]
[ down HumanL ] -> [ down HumanDownR HasWalked ]
[ left HumanR no HasWalked ] -> [ left HumanLeftL ]
[ up HumanR no HasWalked ] -> [ up HumanUpL ]
[ right HumanR no HasWalked ] -> [ right HumanRightL ]
[ down HumanR no HasWalked ] -> [ down HumanDownL ]
[ HasWalked ] -> [ ]
(Ghost Bump)
LEFT [ left Ghost | stationary ObstructsGhost ] -> [ GhostLeftBump1 | ObstructsGhost ] sfx4 again
UP [ up Ghost | stationary ObstructsGhost ] -> [ GhostUpBump1 | ObstructsGhost ] sfx4 again
RIGHT [ right Ghost | stationary ObstructsGhost ] -> [ GhostRightBump1 | ObstructsGhost ] sfx4 again
DOWN [ down Ghost | stationary ObstructsGhost ] -> [ GhostDownBump1 | ObstructsGhost ] sfx4 again
(Crate slides over slime)
[ CrateLeft SlimeMarker ] -> [ left Crate SlimeMarker ]
[ CrateRight SlimeMarker ] -> [ right Crate SlimeMarker ]
[ CrateUp SlimeMarker ] -> [ up Crate SlimeMarker ]
[ CrateDown SlimeMarker ] -> [ down Crate SlimeMarker ]
[ > Crate | ObstructsCrate ] -> [ Crate | ObstructsCrate ]
left [ left Crate | ] -> [ | CrateLeft ]
right [ right Crate | ] -> [ | CrateRight ]
up [ up Crate | ] -> [ | CrateUp ]
down [ down Crate | ] -> [ | CrateDown ]
[ CrateMoving no SlimeMarker ] -> [ Crate ]
[ CrateMoving SlimeMarker ] -> again
( animate puff of smoke )
[smoke_mid_3]->[]
[smoke_mid_2]->[smoke_mid_3] again
[smoke_mid_1]->[smoke_mid_2] again
[smoke_down_3]->[]
[smoke_down_2]->[smoke_down_3] again
[smoke_down_1]->[smoke_down_2] again
[smoke_up_3]->[]
[smoke_up_2]->[smoke_up_3] again
[smoke_up_1]->[smoke_up_2] again
[smoke_left_3]->[]
[smoke_left_2]->[smoke_left_3] again
[smoke_left_1]->[smoke_left_2] again
[smoke_right_3]->[]
[smoke_right_2]->[smoke_right_3] again
[smoke_right_1]->[smoke_right_2] again
[smoke_downleft_3]->[]
[smoke_downleft_2]->[smoke_downleft_3] again
[smoke_downleft_1]->[smoke_downleft_2] again
[smoke_downright_3]->[]
[smoke_downright_2]->[smoke_downright_3] again
[smoke_downright_1]->[smoke_downright_2] again
[smoke_upleft_3]->[]
[smoke_upleft_2]->[smoke_upleft_3] again
[smoke_upleft_1]->[smoke_upleft_2] again
[smoke_upright_3]->[]
[smoke_upright_2]->[smoke_upright_3] again
[smoke_upright_1]->[smoke_upright_2] again
( initialize smoke cloud )
down [smoke_start | no border no smoke_1] -> [smoke_start | smoke_down_1]
up [smoke_start | no border no smoke_1] -> [smoke_start | smoke_up_1]
left [smoke_start | no border no smoke_1] -> [smoke_start | smoke_left_1]
right [smoke_start | no border no smoke_1] -> [smoke_start | smoke_right_1]
right [ no smoke_1 no border | smoke_down_1]->[smoke_downleft_1 | smoke_down_1]
up [no smoke_1 no border | smoke_left_1]->[smoke_downleft_1 | smoke_left_1]
right [no smoke_1 no border | smoke_up_1]->[smoke_upleft_1 | smoke_up_1]
down [ no smoke_1 no border | smoke_left_1]->[smoke_upleft_1 | smoke_left_1]
left [ no smoke_1 no border | smoke_down_1]->[smoke_downright_1 | smoke_down_1]
up [no smoke_1 no border | smoke_right_1]->[smoke_downright_1 | smoke_right_1]
left [ no smoke_1 no border | smoke_up_1]->[smoke_upright_1 | smoke_up_1]
down [no smoke_1 no border | smoke_right_1]->[smoke_upright_1 | smoke_right_1]
[smoke_start]->[smoke_mid_1] again
( MegaSlime transformation )
late [ Player Switcher ][ Mega ] -> [ Player Switcher ][ Mega Switcher ]
late [ MegaSlime_C_U0 Switcher ] -> [ MegaHuman_C_U0 smoke_start ]
late [ MegaSlime_L1_U0 Switcher ] -> [ MegaHuman_L1_U0 smoke_start ]
late [ MegaSlime_R1_U0 Switcher ] -> [ MegaHuman_R1_U0 smoke_start ]
late [ MegaSlime_L2_U0 Switcher ] -> [ MegaHuman_L2_U0 smoke_start ]
late [ MegaSlime_R2_U0 Switcher ] -> [ MegaHuman_R2_U0 smoke_start ]
late [ MegaSlime_L2_U1 Switcher ] -> [ MegaHuman_L2_U1 smoke_start ]
late [ MegaSlime_R2_U1 Switcher ] -> [ MegaHuman_R2_U1 smoke_start ]
late [ MegaSlime_L1_U1 Switcher ] -> [ MegaHuman_L1_U1 smoke_start ]
late [ MegaSlime_C_U1 Switcher ] -> [ MegaHuman_C_U1 smoke_start ]
late [ MegaSlime_R1_U1 Switcher ] -> [ MegaHuman_R1_U1 smoke_start ]
late [ MegaSlime_L1_U2 Switcher ] -> [ MegaHuman_L1_U2 smoke_start ]
late [ MegaSlime_R1_U2 Switcher ] -> [ MegaHuman_R1_U2 smoke_start ]
late [ MegaSlime_C_U2 Switcher ] -> [ MegaHuman_C_U2 smoke_start ]
late [ MegaSlime_C_U3 Switcher ] -> [ MegaHuman_C_U3 ]
late [ MegaSlime_L1_U3 Switcher ] -> [ MegaHuman_L1_U3 ]
late [ MegaSlime_R1_U3 Switcher ] -> [ MegaHuman_R1_U3 ]
late [ MegaHuman_C_U0 Switcher ] -> [ MegaSlime_C_U0 smoke_start ]
late [ MegaHuman_L1_U0 Switcher ] -> [ MegaSlime_L1_U0 smoke_start ]
late [ MegaHuman_R1_U0 Switcher ] -> [ MegaSlime_R1_U0 smoke_start ]
late [ MegaHuman_L2_U0 Switcher ] -> [ MegaSlime_L2_U0 smoke_start ]
late [ MegaHuman_R2_U0 Switcher ] -> [ MegaSlime_R2_U0 smoke_start ]
late [ MegaHuman_L2_U1 Switcher ] -> [ MegaSlime_L2_U1 smoke_start ]
late [ MegaHuman_R2_U1 Switcher ] -> [ MegaSlime_R2_U1 smoke_start ]
late [ MegaHuman_L1_U1 Switcher ] -> [ MegaSlime_L1_U1 smoke_start ]
late [ MegaHuman_C_U1 Switcher ] -> [ MegaSlime_C_U1 smoke_start ]
late [ MegaHuman_R1_U1 Switcher ] -> [ MegaSlime_R1_U1 smoke_start ]
late [ MegaHuman_L1_U2 Switcher ] -> [ MegaSlime_L1_U2 smoke_start ]
late [ MegaHuman_R1_U2 Switcher ] -> [ MegaSlime_R1_U2 smoke_start ]
late [ MegaHuman_C_U2 Switcher ] -> [ MegaSlime_C_U2 smoke_start ]
late [ MegaHuman_C_U3 Switcher ] -> [ MegaSlime_C_U3 smoke_start ]
late [ MegaHuman_L1_U3 Switcher ] -> [ MegaSlime_L1_U3 smoke_start ]
late [ MegaHuman_R1_U3 Switcher ] -> [ MegaSlime_R1_U3 smoke_start ]
late [ MegaSlime ] -> [ MegaSlime SlimeWall ]
late [ MegaHuman SlimeWall no MegaHuman_L1_U3 no MegaHuman_C_U3 no MegaHuman_R1_U3] -> [ MegaHuman ]
( switches from human to ghost )
late [ HumanRight Switcher ] -> [ GhostRight smoke_start ] sfx0
late [ HumanUp Switcher ] -> [ GhostUp smoke_start ] sfx0
late [ HumanLeft Switcher ] -> [ GhostLeft smoke_start ] sfx0
late [ HumanDown Switcher ] -> [ GhostDown smoke_start ] sfx0
( applies the slime, switching walls to empty tiles and vice versa )
late [ Ghost Switcher ] [ SlimeMarker SlimeWall ] -> [ Ghost Switcher ] [ wall_3_shrink] again
late [ Ghost Switcher ] [ SlimeMarker no SlimeWall ] -> [ Ghost Switcher ] [ Wall_1_grow] again
late [ Crate Switcher ] [ SlimeMarker SlimeWall ] -> [ Crate Switcher ] [ wall_3_shrink] again
late [ Crate Switcher ] [ SlimeMarker no SlimeWall ] -> [ Crate Switcher ] [ Wall_1_grow] again
late [ Crate Switcher ] [ ghost SlimeWall no wall_3_shrink] -> [Crate Switcher] [ghost wall_3_shrink]
( makes it so that a wall doesn't solidify on top of the player, if the switcher is activated with a crate )
late [ Ghost wall_1_grow ] -> [ Ghost ]
( switches from ghost to human )
late [ Crate Switcher ] [ Ghost TogglePlayerState ] -> [ smoke_start] [ Ghost TogglePlayerState smoke_start ] sfx0
late [ Ghost Switcher ] -> [ Ghost TogglePlayerState smoke_start ] sfx0
late [ GhostRight TogglePlayerState ] -> [ HumanRightL ]
late [ GhostUp TogglePlayerState ] -> [ HumanUpL ]
late [ GhostLeft TogglePlayerState ] -> [ HumanLeftL ]
late [ GhostDown TogglePlayerState ] -> [ HumanDownL ]
late [ Crate Switcher ] [ Ghost ] -> [ crate Switcher] [ Ghost TogglePlayerState ] again
( animate when there are new smokes )
late [smoke_start]->again
(locks and unlocks goal, to save the player from locking themselves)
late [ Goal ] [ Ghost ] -> [ Goal GoalWall ] [ Ghost ]
late [ GoalEnabled ] [ Ghost ] -> [ GoalEnabled GoalWall ] [ Ghost ]
late [ GoalWall ] [ Human ] -> [ ] [ Human ]
[ > Ghost | GoalWall ] -> [ Ghost | GoalWall]
( MegaSlime wall grow/shrink )
late [ MegaSlimeWallMarker | no MegaSlimeWallMarker no Border no Mega ] -> [ MegaSlimeWallMarker | MegaSlimeWallMarker ]
late random [ Ghost no SlimeMarker no NoSlimeTile no Switcher SlimeWall ][ SlimeWall | MegaSlimeWallMarker no SlimeWall ] -> [ Ghost SlimeWall ][ SlimeWall | SlimeWall MegaSlimeWallMarker ]
late random [ Ghost no SlimeMarker no NoSlimeTile no Switcher no SlimeWall ][ SlimeWall | MegaSlimeWallMarker no SlimeWall ] -> [ Ghost ][ | MegaSlimeWallMarker ]
( lays down slime beneath player )
late [ Ghost no SlimeMarker no NoSlimeTile no Switcher ] -> [ Ghost SlimeMarker ]
( does the graphics of the slime trail )
late left [ SlimeMarker | SlimeMarker ] -> [ SlimeMarker SlimeLeft | SlimeMarker SlimeRight ]
late up [ SlimeMarker | SlimeMarker ] -> [ SlimeMarker SlimeUp | SlimeMarker SlimeDown ]
( handles the "preview" that shows what tiles will become after the switch )
late [ SlimeMarker no SlimeWall ] -> [ SlimeMarker WallPreview ]
late [ SlimeMarker SlimeWall ] -> [ SlimeMarker SlimeWall BackgroundPreview ]
late [ SlimeMarker no SlimeUp no SlimeDown no SlimeLeft no SlimeRight no SlimePoint no ghost] -> [SlimeMarker SlimePoint]
(animate wall growth)
late [wall_3_grow]->[SlimeWall]
late [wall_2_grow]->[wall_3_grow] again
late [wall_1_grow]->[wall_2_grow] again
late [wall_1_shrink]->[]
late [wall_2_shrink]->[wall_1_shrink] again
late [wall_3_shrink]->[wall_2_shrink] again
( removes slime aesthetics as necessary )
late [ SlimeSprite no SlimeMarker ] -> [ ]
late [ WallPreview no SlimeMarker ] -> [ ]
late [ BackgroundPreview no SlimeMarker ] -> [ ]
( collects collectables )
late [ Human Collectable ] -> [ Human ]
( add slime marker to collectables )
late [Collectable_Slimed]->[]
late [SlimeMarker Collectable]->[SlimeMarker Collectable Collectable_Slimed]
( show other crate sprite when in ghost mode )
late [Crate_moveable]->[]
late [ghost][crate]->[ghost][crate Crate_moveable]
late [ghost][CrateMoving]->[ghost][CrateMoving Crate_moveable]
( numbers )
late [count] -> []
late [ zero ] -> [ zero zerocount]
late [ one ] -> [ one zerocount]
late [ two ] -> [ two zerocount]
late [ three ] -> [ three zerocount]
late [ four ] -> [ four zerocount]
late [ five ] -> [ five zerocount]
late [ six ] -> [ six zerocount]
late [ seven ] -> [ seven zerocount]
late [ eight ] -> [ eight zerocount]
late [ nine ] -> [ nine zerocount]
late [ zerocorrect ] -> [ zero zerocount]
late [ onecorrect ] -> [ one zerocount]
late [ twocorrect ] -> [ two zerocount]
late [ threecorrect ] -> [ three zerocount]
late [ fourcorrect ] -> [ four zerocount]
late [ fivecorrect ] -> [ five zerocount]
late [ sixcorrect ] -> [ six zerocount]
late [ sevencorrect ] -> [ seven zerocount]
late [ eightcorrect ] -> [ eight zerocount]
late [ ninecorrect ] -> [ nine zerocount]
(numbers now work like this: every turn, each slime wall sends four invisible counting markers in all directions, and numbers tally how many of these markers hit them)
(only the NumberBlock object and other numbers block these markers )
(I've updated this count to update based on what walls will be/won't be in place with the plasma switch. It's only a graphical change, but a good one, I think. -EPGA)
late [ WallPreview] -> [ WallPreview wallcounteru wallcounterd wallcounterl wallcounterr ]
late [ SlimeWall no BackgroundPreview ] -> [ SlimeWall wallcounteru wallcounterd wallcounterl wallcounterr ]
late [ wallGrow ] -> [ wallGrow wallcounteru wallcounterd wallcounterl wallcounterr ]
late left [ wallcounterl no number | no wallcounterl ] -> [ | wallcounterl ]
+ late right [ wallcounterr no number | no wallcounterr ] -> [ | wallcounterr ]
+ late up [ wallcounteru no number | no wallcounteru] -> [ | wallcounteru ]
+ late down [ wallcounterd no number | no wallcounterd ] -> [ | wallcounterd ]
+ late [ zerocount wallcounter ] -> [ onecount ]
+ late [ onecount wallcounter ] -> [ twocount ]
+ late [ twocount wallcounter ] -> [ threecount ]
+ late [ threecount wallcounter ] -> [ fourcount ]
+ late [ fourcount wallcounter ] -> [ fivecount ]
+ late [ fivecount wallcounter ] -> [ sixcount ]
+ late [ sixcount wallcounter ] -> [ sevencount ]
+ late [ sevencount wallcounter ] -> [ eightcount ]
+ late [ eightcount wallcounter ] -> [ ninecount ]
+ late [ ninecount wallcounter ] -> [ tenpluscount ]
+ late [ tenpluscount wallcounter ] -> [ tenpluscount ]
late [ zero zerocount ] -> [ zerocorrect ]
late [ one onecount ] -> [ onecorrect ]
late [ two twocount ] -> [ twocorrect ]
late [ three threecount ] -> [ threecorrect ]
late [ four fourcount ] -> [ fourcorrect ]
late [ five fivecount ] -> [ fivecorrect ]
late [ six sixcount ] -> [ sixcorrect ]
late [ seven sevencount ] -> [ sevencorrect ]
late [ eight eightcount ] -> [ eightcorrect ]
late [ nine ninecount ] -> [ ninecorrect ]
late [ bgcorrect ] -> [ ]
late [ bgwrong ] -> [ ]
late [numbercorrect ] -> [numbercorrect bgcorrect]
late [numberNoBlock ] -> [numberNoBlock bgwrong]
late [ wallcounter ] -> []
(late astethics)
(WIN CONDITIONS)
(Turns the goal into GoalEnabled when theres no Collectable or any numbers)
late [Goal] -> [Goal GoalConditionMarker]
late [Collectable] [Goal GoalConditionMarker] -> [Collectable] [Goal]
late [zero] [Goal GoalConditionMarker] -> [zero] [Goal]
late [one] [Goal GoalConditionMarker] -> [one] [Goal]
late [two] [Goal GoalConditionMarker] -> [two] [Goal]
late [three] [Goal GoalConditionMarker] -> [three] [Goal]
late [four] [Goal GoalConditionMarker] -> [four] [Goal]
late [five] [Goal GoalConditionMarker] -> [five] [Goal]
late [six] [Goal GoalConditionMarker] -> [six] [Goal]
late [seven] [Goal GoalConditionMarker] -> [seven] [Goal]
late [eight] [Goal GoalConditionMarker] -> [eight] [Goal]
late [nine] [Goal GoalConditionMarker] -> [nine] [Goal]
late [Goal GoalConditionMarker] -> [GoalEnabled]
late [Human OmegaLevelExit ] -> win (additional win condition that deviates from norm)
(Beautify the ectoplasm / wall)
late[SlimeWall no Ectoplasm] -> [SlimeWall random Ectoplasm]
late[Ectoplasm no SlimeWall] -> []
late [corners] -> []
late up [Ectoplasm | no Ectoplasm] -> [Ectoplasm cornerTop | ]
late down [Ectoplasm | no Ectoplasm] -> [Ectoplasm cornerBottom | ]
late right [Ectoplasm cornerTop | no Ectoplasm] -> [Ectoplasm cornerTop cornerTR | ]
late right [Ectoplasm cornerBottom | no Ectoplasm] -> [Ectoplasm cornerBottom cornerBR | ]
late left [Ectoplasm cornerTop | no Ectoplasm] -> [Ectoplasm cornerTL | ]
late left [Ectoplasm cornerBottom | no Ectoplasm] -> [Ectoplasm cornerBL | ]
late [cornerMarkers] -> []
(entry animation)
late [ Anim_Entry ] -> [ ]
late up [ | Anim_Entry_3 | ] -> [ Anim_Entry_3_D | HumanRightL Anim_Entry_3_C | Anim_Entry_3_U ] sfx3 again checkpoint (checkpoint avoids watching animation on restart)
late up [ | Anim_Entry_2 | ] -> [ Anim_Entry_2_D | Anim_Entry_3 Anim_Entry_2_C | Anim_Entry_2_U ] again
late up [ | Anim_Entry_1 | ] -> [ Anim_Entry_1_D | Anim_Entry_2 Anim_Entry_1_C | Anim_Entry_1_U ] again
late right [ | Anim_Entry_1_C ] -> [ Anim_Entry_1_L | Anim_Entry_1_C ] again
late up [ | Anim_Entry_0 | ] -> [ Anim_Entry_0_D | Anim_Entry_1 Anim_Entry_0_C | Anim_Entry_0_U ] again
late right [ | Anim_Entry_0_C | ] -> [ Anim_Entry_0_L | Anim_Entry_0_C | Anim_Entry_0_R ] again
late up [ | Anim_Entry_0_L | ] -> [ Anim_Entry_0_LD | Anim_Entry_0_L | Anim_Entry_0_LU ] again
(exit animation))
late [ Anim_Exit_Human_5 ] -> [ Anim_Exit_Human_6 ] again
late [ Anim_Exit_Human_4 ] -> [ Anim_Exit_Human_5 ] again
late [ Anim_Exit_Human_3 ] -> [ Anim_Exit_Human_4 ] again
late [ Anim_Exit_Human_2 ] -> [ Anim_Exit_Human_3 ] again
late [ Anim_Exit_HumanUp_1 ] -> [ Anim_Exit_Human_2 ] again
late [ Anim_Exit_HumanUp_0 ] -> [ Anim_Exit_HumanUp_1 ] again
late [ Anim_Exit_HumanRight_1 ] -> [ Anim_Exit_Human_2 ] again
late [ Anim_Exit_HumanRight_0 ] -> [ Anim_Exit_HumanRight_1 ] again
late [ Anim_Exit_HumanDown_1 ] -> [ Anim_Exit_Human_2 ] again
late [ Anim_Exit_HumanDown_0 ] -> [ Anim_Exit_HumanDown_1 ] again
late [ Anim_Exit_HumanLeft_1 ] -> [ Anim_Exit_Human_2 ] again
late [ Anim_Exit_HumanLeft_0 ] -> [ Anim_Exit_HumanLeft_1 ] again
late [ HumanUp Anim_Exit_Goal_3 ] -> [ Anim_Exit_HumanUp_0 Anim_Exit_Goal_3 ] sfx7 again
late [ HumanRight Anim_Exit_Goal_3 ] -> [ Anim_Exit_HumanRight_0 Anim_Exit_Goal_3 ] sfx7 again
late [ HumanDown Anim_Exit_Goal_3 ] -> [ Anim_Exit_HumanDown_0 Anim_Exit_Goal_3 ] sfx7 again
late [ HumanLeft Anim_Exit_Goal_3 ] -> [ Anim_Exit_HumanLeft_0 Anim_Exit_Goal_3 ] sfx7 again
late [ Human Anim_Exit_Goal_2 ] -> [ Human Anim_Exit_Goal_3 ] again
late [ Human Anim_Exit_Goal_1 ] -> [ Human Anim_Exit_Goal_2 ] again
late [ Human Anim_Exit_Goal_0 ] -> [ Human Anim_Exit_Goal_1 ] again
late [ Human GoalEnabled ] -> [ Human Anim_Exit_Goal_0 ] sfx6 again
==============
WINCONDITIONS
==============
any Anim_Exit_Human_6 (this used to be all Human on goal, but I changed it for my level - it shouldn't have broken anything, I hope - Blookerstien)
(Changed this to GoalEnabled instead of Goal - henrique)
(Since all the win conditions are now captured when switching Goal to GoalEnabled, I removed all of the redundant conditions from here. Also, since I made [ Human GoalEnabled ] animate, I've changed the win condition to the last frame of animation - sftrabbit)
(for the actual win conditions, find the WIN CONDITIONS comment in the Rule section)
=======
LEVELS
=======
( winterbeak: tentative lore messages. feel free to change. )
( notajumbleofnumbers: added some more lore messages. still not enough for my liking, so feel free to add/change )
(message Huh...? Where am I? More importantly, *who* am I?
message There's weird blue goop everywhere... And my skin's all pink...)
( knexator: completely changed the lore, it seems that the lore was referencing now lost graphics)
message I, Dr. Jelly, may seem to be a simple researcher
( feel free to tweak )
(If for any reason this level moves around, make sure to use j as the human for the first level and q for any others - sftrabbit)
(patrick)
xxxxxxxxx
x.......x
x...###.x
x...#...x
x.j.#g..x
x...#...x
x...###.x
x.......x
xxxxxxxxx
(message This pink orb looks slimy. I wonder what happens if I touch it...)
message But with the help of some non-FDA-approved drugs, I turn into Mr. Slime
( feel free to tweak )
(patrick)
(winterbeak: made it so that you start out human, and added a switcher. makes it less jarring that you're suddenly a ghost)
xxxxxxxxxxx
xs..###...x
x...###...x
x...###...x
xq..###..gx
x...###...x
x...###...x
xs..###...x
xxxxxxxxxxx
(message What?! Have I always had these... powers?)
(this should be a relatively early level)
(ncrecc)
xxxxxxxxx
xpgxxxs.x
x.#xxx#.x
x.#xxx#.x
x..xxx..x
x..xxx..x
x#.###.#x
x#.....#x
xxxxxxxxx
message As Mr. Slime, I turn all roadblocks into roads
(intro to backtracking)
(CHz)
xxxxxxxxxxx
x...x.#.#gx
x.s...#.##x
x.q.x.#...x
x.s...#.##x
x...x.#.#gx
xxxxxxxxxxx
message ...and all roads into roadblocks
("Goop Looping", feel free to tweak)
(Auroriax)
xxxxxxx
xxxsxxx
x#####x
x.xxx.x
x.xgx.x
x##p##x
x.xxx.x
xs.#.sx
xxxxxxx
(notajumbleofnumbers: there should be a message about the coin here)
(Auroriax: Added!)
(message Why are there... coins here? I really can't remember...
message But I feel an urge... to collect them!)
message Research funding! I can't let a coin go to waste
(introduction to the collectable)
(bagenzo)
xxxxxxxxxxxx
x....x.....x
x.p..s.g.c.x
x....x.....x
xx.xxxx.xxxx
x...#.#.#..x
x.c#.#.##c.x
x...x.#x#..x
xxxxxxxxxxxx
(compact level with more collectables)
(TophWells)
(CHz: this seemed much easier to me than the previous level by bagenzo, I feel like it should probably be moved earlier [or hardened if DRRDDRRUUU isn't intended])
(Elyot: didn't seem that easy to me, I missed the obvious thing I guess. Swapping order seems OK though. )
xxxxxxxxxxxxx
xx..pc.cs..xx
x..x.....x..x
x.cx.c#c.xc.x
x........x..x
xxxxc...gxxxx
xxxxxxxxxxxxx
(nano level, don't know where it should be)
(Sky Chan)
(noa: added another row of outer borders to "zoom out" a little)
xxxxxxxxx
xxxxxxxxx
xxsc#csxx
xx##g##xx
xxsq#csxx
xxxxxxxxx
xxxxxxxxx
(micro level, feel free to reorder it)
(marcosd)
xxxxxxxxx
x.o...o.x
x..o.o..x
xpo.s.ogx
x..o.o..x
x.o...o.x
xxxxxxxxx
(I wonder if we should move this to before Plurmorant's level, since that's the next time NoSlimeTile appears and it serves as a bit of a tutorial. - sftrabbit)
(intro to NoSlimeTile)
(HRoll)
xxxxxxxxxxxx
xp.#..#b...x
xg.nb.#....x
xbbbbbbbb.#x
xs.......#cx
xxxxxxxxxxxx
(slime collectables in the corners)
(jackk)
xxxxxxxxxxxx
xxxxxxxxx.xx
xxxxxo.xx..x
xxo.x...oxxx
xx...#.x.xxx
x.#.x.xc..xx
xg...p...sxx
x..c#.....xx
xx.x.#...xxx
xxo...x.oxxx
xxxx.oxxxxxx
xxxxxxxxxxxx
(ornament)
(winterbeak)
xxxxxxxxx
xxxxsxxxx
xxxxsxxxx
xxxocoxxx
xxococoxx
xpcococgx
xxococoxx
xxxocoxxx
xxxxsxxxx
xxxxxxxxx
(message Is that a crate?
message ...
message I've definitely seen that before.)
message Great, the lab can now afford some advanced equipment
message Like crates
(trivial tutorialization level, teaches crate and flashback token interaction)
(NarrowAdder)
xxxxxxxxxxxxxxxxx
x.s.xxxxsxxxxxsxx
x....m..s.xxxx.xx
x.q.xxx...xxx...x
x...xxx....m...gx
x...xxx...xxx...x
xxxxxxxxxxxxxxxxx
(introduction of the crate. is this too easy)
(took me a long time to discover the crate sliding mechanic, but its nice after you do -jackk)
(blubberquark)
xxxxxxxxxxx
x...XXX...x
xs..#.#...x
x.M.XXX#.#x
xp..XXX.#.x
x...XXX.g.x
xxxxxxxxxxx
(Lil easy cute (I hope) level.)
(jack lance)
(notajumbleofnumbers: i got pretty stuck on this level >.>)
(henrique: cute level, but definitely not easy lol, took me a while)
xxxxxxxxxx
xxxx....gx
xxx..m.xxx
xxxp...xxx
xs.....xxx
xxx...xxxx
xxxxxxxxxx
(simple level involving crates and coins)
(Grapefruit)
xxxxxxxxxxxxxxxx
x..............x
x.......c...cccx
xgp.m.c.c...cscx
x.....c.....cccx
x..............x
xxxxxxxxxxxxxxxx
(another crate level - could swap order of this and Plurmorant's level possibly)
(Draknek)
(CHz: I don't feel too strongly about this but I also feel like this may be better swapped with Plurmorant's)
xxxxxxxxxxx
xxsxxxxxxxx
x.....#...x
x.g.q.m.c.x
x.....#...x
xxsxxxxxxxx
xxxxxxxxxxx
(involved crate level)
(Plurmorant)
xxxxxxxxx
xg.#m#.cx
x.p#m#..x
x##xbx##x
x##xbx##x
x..#m#..x
xc.#m#.sx
xxxxxxxxx
(and another crate level - introduces using crate to clear a specific wall)
(noa)
xxxxxxxxxxxxx
xo.s..xxxxxxx
x.ggg.x.....x
xqgsg.##mc.sx
x.ggg.x.....x
xo.s..xxxxxxx
xxxxxxxxxxxxx
(builds on crate rule highlighted in noa's level)
(note from Jack Lance: this level seems impossible (at least it did to me) but it is in fact possible! Very nice level!)
(EPGA's note to self: did not solve this level, maybe I'll try again later.)
(note from deusovi: agreed, this level was very nice!)
(zabel)
xxxxxxx
x.....x
x.ccc.x
x.cot.x
x.pcc.x
x.....x
xxgxsxx
xxxxxxx
(Another crate level with a twist)
(Le Slo)
(In case you have doubts, this level has a solution - ClementSparrow)
xxxxxxxxxxx
xxxxxxxxxxx
xx..#.#..xx
xxp.cb.c.xx
xxg..b...xx
xxs..b.t.xx
xx...b...xx
xxxxxxxxxxx
xxxxxxxxxxx
(I wanted to make a variation on Le Slo's level but where you build yourself the slime wall, also inspired by zabel's level.
I'm not very satisfied with what I achieved, but I've spent enough time on this. Feel free to reorder and/or improve if you think it's too easy/hard at this point. - ClementSparrow)
xxxxxxxx
xu....sx
x..c..xx
x..cc.xx
x.c.n.xx
x..cc.xx
x.#mx.xx
xcg...xx
xxxxxxxx
(message Scanners? I guess it was inevitable for this lab to have them.
message [Number blocks can only see straight, but in all four directions.])
(message These scanners will help me measure how much goo Mr. Slime produces)
(changed the message again because we _are_ Mr Slime - sftrabbit)
(pre-pended the message about success/safety of research - ThatScar)
message The research has been very fruitful but is it safe?
message These scanners measure how slimy I've become!
(message Very!)
(yet another tutorial level for scanners - knexator)
(I think this is the ideal tutorial level for numbers - nothing except just figuring out how they operate. I agree with Joel's comment that zara's puzzle is a good one. I think a decent ordering is knexator, EPGA, zaratustra, jgGyo, henrique - so I've reordered them like that. - sftrabbit)
(knexator)
xxxxxxxxxxx
xp.......sx
xxx.....x.x
xxx.....xgx
xxx.....xxx
xxx.....xxx
xxxxxxxxxxx
xxx53143xxx
xxxxxxxxxxx
(message They are quite powerful, only red lead can block their view)
message The scanners are powerful - only red lead can block their view.
( I couldn't figure out how Number blocks worked until I looked at the code, so I added this. Please feel free to remove it, or change it to match the other "lore" messages. )
( Also the 3 levels below [Zaratustra's, Justas', and Elyot's levels] were originaly between HRoll & NarrowAdder's levels. I moved them down here with the other number levels, but feel free to move them back if anyone likes them better back there.)
(- Blookerstien)
(This is my level I added to be a better tutorial. -EPGA)
xxxxxxxxxxxxx
xxxxxxxxxs.gx
xxxxxxxxx.xxx
xxx.....x.xxx
xq.4.xx.3.xxx
xxx..sx...xxx
xxxxxxxxxxxxx
(numbers tutorial)
(Moved this earlier in the numbers puzzles because it's a nice sequence of isolated puzzles, but a little more complex than both knexator's and EPGA's - sftrabbit)
(zaratustra)
xxxxxxxxxxxxxx
x..3..&8....xx
x.....&.....gx
x....0...q..xx
x0....&....#sx
x.....&.....xx
x&&.&&&&&&&&xx
x2....&.....sx
x3....&.....xx
x7..........xx
x1....&.....xx
x0....&21312xx
xxxxxxxxxxxxxx
(Added extra border to zoom it out slightly, was a bit jarring amongst all the others. It was also after henrique's and I've moved it above because it feels like more a variation on the stuff that was happening in zaratustra's level. Happy for it to move back down if anyone feels otherwise. - sftrabbit)
(I was having a heck of a time understanding how the numbers worked so here's another easy one to help teach.)
(jcGyo)
xxxxxxxxx
xxxxxxxxx
xxs...sxx
xx.4.4.xx
xx..q..xx
xx.4.4.xx
xx....gxx
xxxxxxxxx
xxxxxxxxx
(I added this line for clarity. -EPGA)
(message These walls seem thick...)
(message Walls coated in red lead should block the scanner's view)
(message [Shaded red walls block scanner beams])
(I think zara's level is the best tutorial among the current early 3 (henrique, jcgyo, zara), since there are so many numbers active once you transform that it will be obvious what the rule is. I was a bit confused when first looking at henrique's level, perhaps because I didn't expect scanners to see through walls. But there was also a bug that I fixed that could have increased my confusion when first seeing scanners, so maybe only change the order if subsequent people feel the same way? -Joel)
(knexator: At the time of writing, this is level 23. If the last person can find a natural way to reorder the levels so the hardest one goes here, that would be nice. I vote for Joel's level for that place of honor :D )
(Agreed with Joel's comment so moved Zara's after knexator's and EPGA's which I think were added after Joel commented (and are simpler) - sftrabbit)
(easier numbers level because i had trouble figuring out the tutorial lol)
(henrique)
xxxxxxxxxxxxxx
xxxxx1xx1xxxxx
xx........sxxx
xx...&..x.gxxx
xx........#osx
xx..21xx1xxxxx
xxrcsxxxxxxxxx
xxxxxxxxxxxxxx
(With the addition of enter/exit animations - this level makes more "sense". The human falls in on the right side and the left slime was always there. The fun thing is when you switch at the end, the left slime turns into a human, so there's a kind of sadness to the fact we're leaving that human behind... - sftrabbit)
(Pretty silly level, has too many ideas that don't come together super well. But I had fun making it!)
(Blookerstien)
xxxxxxxxxxxxxxxxxxxxx
xxxx1000001xxxxxxxxxx
xxxx.......xxxxxx..xx
xx...nnnnnux.......xx
x..x.......x.m.xxx.xx
x.mxxxxxxxxx...xsx..x
x..xxxxxxxxx....m.p.x
xxxxxxxxxxxx...xb.xxx
xxxxxxxxxxxxxxxxgxxxx
xxxxxxxxxxxxxxxxxxxxx
(easy level using the new numbers mechanic alongside some other stuff)
(bateleur)
xxxxxxxxxxxx
xxxx1xxxxxxx
xx....x...xx
xxs...xsx.xx
x1..x.....xx
xx..q.....xx
x..........x
x.x.mxx.ox.x
x.g........x
xx........xx
xx........xx
xxxxxxxxxxxx
(a variation on Elyot's level that asks you to infer the order of the top row of numbers. may require pen and paper)
(feel free to reorder it!) (reordered it to be closer to Elyot's - henrique)
(Justas)
xxxxxxxxx
xxnnnnnxx
xxnnnnnxx
xxnnnnnnx
xxÄƁÇÐÈnx
xxnnnnnnx
xxxxxxxnx
x3....nnx
x4.....xx
x5.....xx
x2.n..nxx
x1.qs..xx
xxxxsgxxx
xxxxxxxxx
xxxxxxxxx
( First counter level I made. Intended to have a clean, deductive solve. )
( I designed this idea to work in a lot of interesting ways with the other elements (given walls, no slime tiles, coins, etc.))
( Definitely lots more that can be done with it. )
( Counters don't need to be on the edges either, they can be in the middle. )
( Somebody could add an interaction with crates. )
(Elyot)
(Feels a little out of place here? Maybe put later with other levels also using this mechanic)
( I did what this^ says, feel free to change it back. -Blookerstien)
xxxxxxxxxxxxxx
xx348154552xxx
x8.........sgx
x2....m....xxx
x3.........xxx
x4....m....xxx
x2.........xxx
x9.........xxx
x5.........xxx
x2.........xxx
x2p........xxx
xxxxxxxxxxxxxx
(Another deductive level. Currently placed right after Elyot's, but maybe should be moved? Not sure how hard it is.)
(The 2 clue isn't necessary here - it's just here for symmetry reasons. If anyone thinks it's more elegant without that, feel free to remove it.)
(Deusovi)
xxxxxxxxxxxxxx
xxxxxxxxx4xxxx
x1........sgxx
xx.c.......xxx
xx..3&.c...xxx
xx..&.....4xxx
xx7.......8xxx
xx5.....&..xxx
xx...c.&2..xxx
xx.......c.xxx
xqs........7xx
xxx5xxxxxxxxxx
xxxxxxxxxxxxxx
(I am not sure how hard this one is, but feel free to reorder it. -Joel)
(EPGA's note to self: did not solve this level, maybe I'll try again later.)
(I at least found it easier than stevenjmiller's - if anyone agrees, we could move it. - sftrabbit)
(Agreed - I've moved it. -Deusovi)
(Joel)
xxxxxxx
xg....x
x.....x
x.....x
x.....x
x.....x
x..m..x
x..p..x
x.111.x
x....sx
xxxxxxx
(escape)
(This is a reprise of Blookerstien's level with no puzzle, just for the pacing, and to contribute to the lore in a way that adds to what sftrabbit and ThatScar did for the last level.
The idea is that the slime-that-turned-human we left prisoneer in Blookerstien's level has mutated into the mega slime/human that we will see in the last level, and it escaped by breaking the wall with its mega-strength.
The message saying the technology is 'safe for human' then means 'for human only, not for slimes turned into humans'.
Maybe the messages should be edited so that players understand the irony of the situation, but that's not something I'm good at, plus I already spent too much time on this. -- ClementSparrow)
message That room again?! But... what happened here? Who broke the wall?
message ...and why do I have the strange feeling that I have already been in the other room behind the broken wall?
xxxxxxxxxxxxxxxxxxxxx
xxxx1000001xxxxxxxxxx
xxxx.......xxxxxx##xx
xx###nnnnn#########xx
x##x.......x#z#xxx#xx
x#mxxxxxxxxx###xmx##x
x#sxxxxxxxxx######u#x
xxxxxxxxxxxx###xn#xxx
xxxxxxxxxxxxxxxxgxxxx
xxxxxxxxxxxxxxxxxxxxx
(A level with a lot of interactions, feel free to reorder it. It is probably too late in the game currently. The trail mechanic is surprisingly versatile, I ran into a lot of trouble with unintended solutions when using the scanners without coins.)
(Deusovi's note to self: Didn't solve this one.)
(stevenjmiller)
xxxxxxxxxxxxxxxx
xxx.........xxxx
xxx...11.115xxxx
xxx.x0..3...100x
xxxgxxxxxxxxxxxx
xx...xxxxxx.o.xx
x.....xxxx..s..x
x.qss######.#m.x
x.....xxxx..s..x
xx...xxxxxx.o.xx
xxxxxxxxxxxxxxxx
(I think this is well suited for after stevenjmilller's - it's maybe a bit easier, but it builds on similar ideas. - sftrabbit)
(sftrabbit)
xxxxxxxxxxxxxxxxx
xxxxxxxxx#xxxxxxx
xxxxxxxxx#x#xxxxx
xxxxxxxxxxxxxxxxx
xxxxxxx.....xxx#x
xxxxxxx..021..x#x
xxxxxxx.&...&.xxx
xx....x.x&&xx.xxx
xx.x..........xxx
xq.x..xxx#xmxxxxx
xx.x..xxx###xxxxx
xs.g..gs..c.xxxxx
xxxxxxxxx...xxxxx
xxxxxxxxxxxxxxxxx
(There should be an ending cutscene level here, to wrap things up. I ran out of time so this will be left as an exercise to the next person - NotAJumbleOfNumbers)
(Here's a setting for the ending cutscene, following in the footsteps of What Gophers Go For - somebody could either turn it into a proper final puzzle or at least make something happen? Maybe if you collect all coins, the mouth opens and you go in - THE END. Or you get rid of all the goo around the mega slime and they live happily ever after? I leave this decision to someone else! - sftrabbit)
(I've finished up the level and did a plot twist even though I am not sure if that was a good idea. But somebody has to finish this before it gets to the end, you know :D Here goes! - ThatScar)
message After extensive testing and monitoring with sensors
message The technology is determined to be perfectly safe for humans
(I've made the level such that you cannot exit as slime but if you have any ideas, this level is easily altered)
(you could even make this into a hard puzzle but I think this should remain as a mere cutscene)
(just make sure to keep the dollar sign $ among the number signs #)
(sftrabbit + ThatScar [+ you, perhaps?])
xxxxxxxxxxxxxxxxx
x...#########.xxx
x..#########..xxx
x#####ᶚᶎᶋ#####xxx
x$####ⱳƴᶍ#####xxx
x####ᶉƫᶙᶌᶊ###.xxx
x..##ᶈᶆꞎɳʠ##..xxx
x...########..xxx
x.....####....xxx
xxxxxxxxxxxxxxxxx
xq..###....s##..Ω
x.s..##.....x#s.Ω
x..###..s...x...Ω
xxxxxxxxxxxxxxxxx
message But there are still so many avenues for further research!..
message Thanks for playing :)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment