Skip to content

Instantly share code, notes, and snippets.

@raggy
Last active January 27, 2023 15:11
Show Gist options
  • Save raggy/a9484255ac909c424f664f1bd88d8d25 to your computer and use it in GitHub Desktop.
Save raggy/a9484255ac909c424f664f1bd88d8d25 to your computer and use it in GitHub Desktop.
Hermit the Crab (PuzzleScript Script)
Play this game by pasting the script in http://www.puzzlescript.net/editor.html
title Hermit's New Home
author Benjamin Davis
norepeat_action
run_rules_on_level_start
again_interval 0.05
background_color #7b2c46
(verbose_logging)
(debug)
( ideas:
- big shell at the end, need to move it to sand to swap
names:
- travelling hermit
- hermit the crab
- hermit's new home
)
========
OBJECTS
========
Background
#d398c5 #d59ac7
(00011
11000
00000
00110
00000)
Sand
#ffc36e #ffc87b
00011
11000
00000
00110
00000
Grass
#ffab9f #ffb0a5
01011
00011
01100
01101
00000
Quicksave
transparent black
.....
.0.0.
..0..
.0.0.
.....
NoLand
transparent #db4e7c
.....
.0.0.
..0..
.0.0.
.....
Tutorial1
transparent black
..0..
..0..
..0..
..0..
..0..
CrabTop
#ff757c #fff3f7 white #db4e7c
.....
.....
.....
....1
...22
Crab
#ff757c #fff3f7 white #db4e7c
..112
.2221
30322
00000
0.0.0
CrabSquat
#ff757c #fff3f7 white #db4e7c
....1
...22
..112
.2221
30320
ChooseDirection
#ff757c #fff3f7 white #db4e7c
...1.
..22.
.112.
2221.
..22.
Shell
#ff757c #fff3f7 white #db4e7c
...1.
..22.
.112.
2221.
..22.
ShellBroken
#ff757c #fff3f7 white #db4e7c
.1...
...2.
.1..2
2.2..
...2.
ShellSinking
#db4e7c
.....
...0.
..00.
..00.
.....
BigShellSinking
#db4e7c
.00..
0000.
00000
00000
.000.
BigShellUL
#fff3f7 white
...01
...11
...11
...10
...01
BigShellUM
#fff3f7 white
1....
11...
00111
11111
11111
BigShellUR
#fff3f7 white
.....
.....
1....
11...
111..
BigShellML
#fff3f7 white
..111
.1111
.1101
.1011
..111
BigShellMM
#fff3f7 white
11111
11111
11111
11111
11111
BigShellMR
#fff3f7 white
000..
1111.
11111
11111
11111
BigShellDL
#fff3f7 white
.1111
11111
11111
.1111
..111
BigShellDM
#fff3f7 white
11111
11111
11111
11111
11111
BigShellDR
#fff3f7 white
11111
11111
1111.
1....
.....
BigShellULCrab
#fff3f7 white
...11
...11
...10
...01
..111
BigShellUMCrab
#fff3f7 white
11...
00111
11111
11111
11111
BigShellURCrab
#fff3f7 white
.....
.....
1....
11...
111..
BigShellMLCrab
#fff3f7 white
.1111
.1101
.1011
..111
.1111
BigShellMMCrab
#fff3f7 white
11111
11111
11111
11111
11111
BigShellMRCrab
#fff3f7 white
000..
1111.
11111
11111
11111
BigShellDLCrab
#fff3f7 white
11111
11111
.1111
..111
.....
BigShellDMCrab
#fff3f7 white
11111
11111
11111
1111.
.....
BigShellDRCrab
#ff757c #fff3f7 white #db4e7c
22222
2222.
2303.
00000
0.0.0
BigShellDRCrabStruggle
#ff757c #fff3f7 white #db4e7c
22222
22222
2222.
23030
0000.
BigShellDRCrabTrying
#ff757c #fff3f7 white #db4e7c
22222
22220
23030
0000.
0.0..
CrabDestination
#ff757c #fff3f7 white #db4e7c
...1.
..22.
.112.
2221.
..22.
CrabTired
#ff757c #db4e7c
.....
.....
.....
.000.
01010
Coconut
(#f78162) #ff757c
.000.
00000
00000
00000
.000.
CoconutDecULF
#db4e7c
.....
.0...
.....
.....
.....
CoconutDecURF
#db4e7c
.....
...0.
.....
.....
.....
CoconutDecULB
transparent
.....
.....
.....
...0.
.....
CoconutDecURB
transparent
.....
.....
.....
.0...
.....
CoconutDecDLF
#db4e7c
.....
.....
.....
.0...
.....
CoconutDecDRF
#db4e7c
.....
.....
.....
...0.
.....
CoconutDecDLB
transparent
.....
...0.
.....
.....
.....
CoconutDecDRB
transparent
.....
.0...
.....
.....
.....
CoconutSinking
#db4e7c
.....
.000.
.000.
.000.
.....
CoconutInWater
#db4e7c
.000.
00000
00000
00000
.000.
TreeTop
Brown LightGreen
...1.
1.1..
.111.
110.1
1.0..
Tree
Brown LightGreen
..0..
..0..
..0..
..00.
...00
Rock
#ff757c #db4e7c
.....
.00..
0001.
1011.
.....
TrailU
brown
..0..
..0..
..0..
..0..
..0..
TrailD
brown
..0..
..0..
..0..
..0..
..0..
TrailL
brown
.....
.....
00000
.....
.....
TrailR
brown
.....
.....
00000
.....
.....
TrailSU
darkgreen
..0..
..0..
..0..
..0..
..0..
TrailSD
darkgreen
..0..
..0..
..0..
..0..
..0..
TrailSL
darkgreen
.....
.....
00000
.....
.....
TrailSR
darkgreen
.....
.....
00000
.....
.....
BurrowU
orange
.0...
.0.0.
.....
.0.0.
...0.
BurrowD
orange
.0...
.0.0.
.....
.0.0.
...0.
BurrowL
orange
.....
.0.00
.....
00.0.
.....
BurrowR
orange
.....
.0.00
.....
00.0.
.....
MoveU
transparent
..0..
.000.
0.0.0
..0..
..0..
MoveD
transparent
..0..
..0..
0.0.0
.000.
..0..
MoveL
transparent
..0..
.0...
00000
.0...
..0..
MoveR
transparent
..0..
...0.
00000
...0.
..0..
CornerSUR
#ffc36e
....0
.....
.....
.....
.....
CornerSDR
#ffc36e
.....
.....
.....
.....
....0
CornerSUL
#ffc36e
0....
.....
.....
.....
.....
CornerSDL
#ffc36e
.....
.....
.....
.....
0....
CornerGUR
#ffab9f
....0
.....
.....
.....
.....
CornerGDR
#ffab9f
.....
.....
.....
.....
....0
CornerGUL
#ffab9f
0....
.....
.....
.....
.....
CornerGDL
#ffab9f
.....
.....
.....
.....
0....
CornerWUR
#d398c5
....0
.....
.....
.....
.....
CornerWDR
#d398c5
.....
.....
.....
.....
....0
CornerWUL
#d398c5
0....
.....
.....
.....
.....
CornerWDL
#d398c5
.....
.....
.....
.....
0....
ChoiceU
red darkred
..0..
.000.
.101.
..0..
..1..
ChoiceD
red darkred
..0..
..0..
.000.
.101.
..1..
ChoiceL
red darkred
.....
.0...
0000.
1011.
.1...
ChoiceR
red darkred
.....
...0.
.0000
.1101
...1.
Swap1
red
..0..
..0..
..0..
..0..
..0..
Swap2
red
.00..
0..0.
..0..
.0...
0000.
Swap3
red
.00..
0..0.
..0..
0..0.
.00..
Swap4
red
0..0.
0..0.
0000.
...0.
...0.
Count0
transparent
.....
.....
.....
.....
.....
Count1
transparent
0....
.....
.....
.....
.....
Count2
transparent
00...
.....
.....
.....
.....
Count3
transparent
000..
.....
.....
.....
.....
Count4
transparent
0000.
.....
.....
.....
.....
Count5
transparent
00000
.....
.....
.....
.....
Count6
transparent
00000
0....
.....
.....
.....
Count7
transparent
00000
00...
.....
.....
.....
Count8
transparent
00000
000..
.....
.....
.....
Count9
transparent
00000
0000.
.....
.....
.....
FogSeed
red
FogFullA
#d59ac7 #d79cc9
01101
01100
10011
00111
10111
FogFullB
#d59ac7 #d79cc9
10011
00000
00110
10110
10001
FogHalfA
#d59ac7 #d79cc9
.1.0.
0.1.0
.0.1.
0.1.1
.0.1.
FogHalfB
#d59ac7 #d79cc9
1.0.1
.0.0.
0.1.0
.0.1.
1.0.1
ClearFogExtra
transparent
ClearFogJoin
transparent
FogCleared
transparent
FogClearedBorder
transparent
=======
LEGEND
=======
Player = Crab or ChooseDirection
Standable = Sand or Grass or CoconutInWater
Trail = TrailU or TrailD or TrailL or TrailR or TrailSU or TrailSD or TrailSL or TrailSR
Burrow = BurrowU or BurrowD or BurrowL or BurrowR
MoveToken = MoveU or MoveD or MoveL or MoveR
Choice = ChoiceU or ChoiceD or ChoiceL or ChoiceR
Swap = Swap1 or Swap2 or Swap3 or Swap4
Corner = CornerSUR or CornerSDR or CornerSUL or CornerSDL or CornerGUR or CornerGDR or CornerGUL or CornerGDL or CornerWUR or CornerWDR or CornerWUL or CornerWDL
Land = Sand or Grass
CoconutDec = CoconutDecULF or CoconutDecURF or CoconutDecULB or CoconutDecURB or CoconutDecDLF or CoconutDecDRF or CoconutDecDLB or CoconutDecDRB
BigShell = BigShellML or BigShellMM or BigShellMR or BigShellDL or BigShellDM or BigShellDR or BigShellMLCrab or BigShellMMCrab or BigShellMRCrab or BigShellDLCrab or BigShellDMCrab or BigShellDRCrab or BigShellDRCrabStruggle or BigShellDRCrabTrying
BigShellM = BigShellML or BigShellMM or BigShellMR
BigShellNotDR = BigShellML or BigShellMM or BigShellMR or BigShellDL or BigShellDM
BigShellTop = BigShellUL or BigShellUM or BigShellUR or BigShellULCrab or BigShellUMCrab or BigShellURCrab
Count = Count0 or Count1 or Count2 or Count3 or Count4 or Count5 or Count6 or Count7 or Count8 or Count9
FogFull = FogFullA or FogFullB
FogHalf = FogHalfA or FogHalfB
Fog = FogFull or FogHalf
ConnectedFogArea = Standable or ClearFogJoin
MovesAgain = Coconut or Shell
StopsCoconut = Tree or Rock or Shell or Coconut or BigShell
StopsShell = Tree or Rock or Shell or Coconut
StopsCrab = Tree or Rock
StopsBurrow = Tree or Rock or Shell or Coconut or BigShell
_ = Background
. = Grass
@ = Crab and Grass and FogCleared
h = Shell and Grass
c = Coconut and Grass
r = Rock and Grass
s = Quicksave and Grass
b = BigShellDR and Grass
- = Sand
? = Crab and Sand and FogCleared
e = Shell and Sand
n = Coconut and Sand
k = Rock and Sand
q = Quicksave and Sand
1 = Tutorial1 and Sand
o = Rock
u = CoconutInWater
f = FogSeed
/ = ClearFogExtra
& = ClearFogJoin
x = NoLand
=======
SOUNDS
=======
(CoconutInWater create 20016508)
(CoconutInWater create 44550904)
(CoconutInWater create 9876108)
(CoconutInWater create 72607108)
(CoconutInWater create 52615908)
CoconutSinking create 83489908
BigShellSinking create 83489908
ShellSinking create 44471908
Player move 79293707
BigShellDRCrabStruggle create 35904104
BigShellDRCrabTrying create 56144907
CrabTired create 17852504
Restart 22176702
(Undo 45342901)
Undo 40378307
ShowMessage 1322509
CloseMessage 72487109
StartGame 39572908
( push coconut or shell )
sfx0 1847907
( coconut collides )
sfx1 95572707
( squat )
sfx2 41282507
( swap )
sfx3 62791108
( push big shell )
sfx4 56565302
( clear fog )
sfx5 48142508
( clear fog individual )
sfx6 81707908
( quick save )
sfx10 74793103
================
COLLISIONLAYERS
================
Background
ClearFogExtra, ClearFogJoin, NoLand
FogCleared, FogClearedBorder
Standable
CornerSUR, CornerGUR, CornerWUR
CornerSUL, CornerGUL, CornerWUL
CornerSDR, CornerGDR, CornerWDR
CornerSDL, CornerGDL, CornerWDL
Quicksave, Tutorial1, CrabTired
Trail, Burrow, Count
Player, CrabSquat, Shell, ShellBroken, ShellSinking, CrabDestination, Coconut, CoconutSinking, Tree, Rock, BigShell, BigShellSinking
CoconutDec
Swap
Choice
Fog, FogSeed
CrabTop, TreeTop, BigShellTop
MoveToken
======
RULES
======
( Remove old trails )
[ Trail ] -> [ ]
[ ShellBroken ] -> [ ]
( Stop when you can't walk somewhere )
[ > Crab | no Standable ] -> cancel
[ > Crab | StopsCrab ] -> cancel
( Reach destination )
[ Burrow ] -> [ ]
[ CrabDestination ] -> [ Crab ]
[ CrabSquat ] -> [ Crab ]
( Put dots on coconuts )
[ Coconut no CoconutDec ] -> [ Coconut CoconutDecULF ]
( Count down )
[ Count1 ] -> [ Count0 ]
[ Count2 ] -> [ Count1 ] again
[ Count3 ] -> [ Count2 ] again
[ Count4 ] -> [ Count3 ] again
[ Count5 ] -> [ Count4 ] again
[ Count6 ] -> [ Count5 ] again
[ Count7 ] -> [ Count6 ] again
[ Count8 ] -> [ Count7 ] again
[ Count9 ] -> [ Count8 ] again
( Animate crab in big shell )
[ BigShellDRCrab Count0 ] -> [ BigShellDRCrabStruggle Count3 ] again
[ BigShellDRCrabStruggle Count0 ] -> [ BigShellDRCrabTrying Count6 ] again
[ BigShellDRCrabTrying Count0 ] -> [ BigShellDR CrabTired Count6 ] again
[ CrabTired Count0 ] -> message "Oops-uh, well, thanks for playing!"
( Build big shell )
[ BigShellNotDR ] -> [ ]
left [ BigShellDR | ] -> [ BigShellDR | BigShellDM ]
left [ BigShellDRCrabStruggle | ] -> [ BigShellDRCrabStruggle | BigShellDM ]
left [ BigShellDM | ] -> [ BigShellDM | BigShellDL ]
up [ BigShellDL | ] -> [ BigShellDL | BigShellML ]
up [ BigShellDM | ] -> [ BigShellDM | BigShellMM ]
up [ BigShellDR | ] -> [ BigShellDR | BigShellMR ]
up [ BigShellDRCrabStruggle | ] -> [ BigShellDRCrabStruggle | BigShellMR ]
( BURROWING WITH ACTION ANY ON CURRENT ISLAND >>> )
( Mark all connected land tiles with shell or player )
[ ChooseDirection Sand ] -> [ ChooseDirection action Sand ]
[ action Sand | stationary Sand ] -> [ action Sand | action Sand ]
[ action Sand no Shell no BigShellDR no ChooseDirection ] -> [ stationary Sand ]
( Swap to big shell )
[ ChooseDirection ] [ action Sand BigShellDR ] -> [ Shell ] [ action Sand BigShellDRCrab Count6 ] sfx3 again
( Note swap order )
[ ChooseDirection ] -> [ action ChooseDirection ]
[ action ChooseDirection ] [ action Sand no Swap ] -> [ stationary ChooseDirection ] [ action Sand Swap1 ]
[ ChooseDirection ] -> [ action ChooseDirection ]
[ action ChooseDirection ] [ action Sand no Swap ] -> [ stationary ChooseDirection ] [ action Sand Swap2 ]
[ ChooseDirection ] -> [ action ChooseDirection ]
[ action ChooseDirection ] [ action Sand no Swap ] -> [ stationary ChooseDirection ] [ action Sand Swap3 ]
[ ChooseDirection ] -> [ action ChooseDirection ]
[ action ChooseDirection ] [ action Sand no Swap ] -> [ stationary ChooseDirection ] [ action Sand Swap4 ]
( Swap to next shell )
[ Swap1 ChooseDirection ] [ Swap2 Shell ] -> [ action Shell ] [ Crab ] sfx3
[ Swap2 ChooseDirection ] [ Swap3 Shell ] -> [ action Shell ] [ Crab ] sfx3
[ Swap3 ChooseDirection ] [ Swap4 Shell ] -> [ action Shell ] [ Crab ] sfx3
[ ChooseDirection ] [ Swap1 Shell ] -> [ action Shell ] [ Crab ] sfx3
( Clear tutorial1 if crab swaps shells )
([ action Shell ][ Tutorial1 ] -> [ action Shell ][ ])
[ action Shell ] -> [ stationary Shell ]
( If no shell to swap with, reappear )
[ ChooseDirection ] -> [ stationary Crab ] sfx2
( Clean up )
[ action Sand ] -> [ stationary Sand ]
[ Swap ] -> [ ]
( Queue swap )
[ action Crab Sand ] -> [ ChooseDirection Sand ] again
( Fail to queue swap )
[ action Crab no Sand ] -> [ CrabSquat ] again sfx2
( <<< BURROWING WITH ACTION ANY ON CURRENT ISLAND )
left [ BigShellDRCrab | ] -> [ BigShellDRCrab | BigShellDMCrab ]
left [ BigShellDRCrabTrying | ] -> [ BigShellDRCrabTrying | BigShellDMCrab ]
left [ BigShellDMCrab | ] -> [ BigShellDMCrab | BigShellDLCrab ]
up [ BigShellDLCrab | ] -> [ BigShellDLCrab | BigShellMLCrab ]
up [ BigShellDMCrab | ] -> [ BigShellDMCrab | BigShellMMCrab ]
up [ BigShellDRCrab | ] -> [ BigShellDRCrab | BigShellMRCrab ]
up [ BigShellDRCrab | ] -> [ BigShellDRCrab | BigShellMRCrab ]
up [ BigShellDRCrabTrying | ] -> [ BigShellDRCrabTrying | BigShellMRCrab ]
( BURROWING WITH ACTION >>>
( Calculate valid burrow directions )
[ action Crab ] -> [ ChooseDirection ]
up [ stationary ChooseDirection | Shell ] -> [ ChooseDirection | ChoiceU Shell ]
down [ stationary ChooseDirection | Shell ] -> [ ChooseDirection | ChoiceD Shell ]
left [ stationary ChooseDirection | Shell ] -> [ ChooseDirection | ChoiceL Shell ]
right [ stationary ChooseDirection | Shell ] -> [ ChooseDirection | ChoiceR Shell ]
up [ stationary ChooseDirection | | ... | Shell ] -> [ ChooseDirection | ChoiceU | ... | Shell ]
down [ stationary ChooseDirection | | ... | Shell ] -> [ ChooseDirection | ChoiceD | ... | Shell ]
left [ stationary ChooseDirection | | ... | Shell ] -> [ ChooseDirection | ChoiceL | ... | Shell ]
right [ stationary ChooseDirection | | ... | Shell ] -> [ ChooseDirection | ChoiceR | ... | Shell ]
( Chose direction manually )
[ orthogonal ChooseDirection | Choice ] -> [ orthogonal ChooseDirection | action Choice ]
( Choose direction automatically )
up [ stationary ChooseDirection | stationary ChoiceU ] -> [ > ChooseDirection | action ChoiceU ]
down [ stationary ChooseDirection | stationary ChoiceD ] -> [ > ChooseDirection | action ChoiceD ]
left [ stationary ChooseDirection | stationary ChoiceL ] -> [ > ChooseDirection | action ChoiceL ]
right [ stationary ChooseDirection | stationary ChoiceR ] -> [ > ChooseDirection | action ChoiceR ]
( More than one direction )
[ orthogonal ChooseDirection | stationary Choice ] -> [ ChooseDirection | Choice ]
[ action Choice ] -> [ Choice ]
( Invalid choice, return to shell )
[ > ChooseDirection | no Choice ] -> [ action ChooseDirection | ]
( Remove choices once moving )
[ moving ChooseDirection | Choice ] -> [ moving ChooseDirection | ]
( Return to current shell )
[ action ChooseDirection ] -> [ Crab ]
( Move to shell )
up [ > ChooseDirection | ] -> [ Shell | > BurrowU ] again
down [ > ChooseDirection | ] -> [ Shell | > BurrowD ] again
left [ > ChooseDirection | ] -> [ Shell | > BurrowL ] again
right [ > ChooseDirection | ] -> [ Shell | > BurrowR ] again
[ > Burrow Shell ] -> [ CrabDestination ]
+ [ > Burrow | ] -> [ Burrow | > Burrow ]
[ Burrow no Sand ] -> [ ]
<<< BURROWING WITH ACTION )
( >>> BURROWING WITH MOVEMENT
( Check for shell in line of sight of movement direction )
[ > Crab Background ] -> [ > Crab > Background ]
[ > Background | stationary Background no StopsBurrow ] -> [ > Background | > Background ]
+ [ > Background | Shell ] -> [ > Background | action Shell ]
+ [ action Shell ] [ > Background ] -> [ action Shell ] [ Background ]
[ > Background ] -> [ Background ]
( Found shell )
up [ > Crab ] [ action Shell ] -> [ Shell > BurrowU ] [ CrabDestination ] again
down [ > Crab ] [ action Shell ] -> [ Shell > BurrowD ] [ CrabDestination ] again
left [ > Crab ] [ action Shell ] -> [ Shell > BurrowL ] [ CrabDestination ] again
right [ > Crab ] [ action Shell ] -> [ Shell > BurrowR ] [ CrabDestination ] again
[ > Burrow | ] -> [ Burrow | > Burrow ]
+ [ > Burrow CrabDestination ] -> [ Burrow CrabDestination ]
[ Burrow no Sand ] -> [ ]
<<< BURROWING WITH MOVEMENT )
( Push shells )
[ > Crab | stationary Shell ] -> [ > Crab | > Shell ] sfx0
[ > Crab | stationary BigShell ] -> [ > Crab | > BigShell ] sfx4
( Shell that moves into water continues moving next turn )
(up [ > Shell | no Standable ] -> [ > Shell > MoveU | ] again
+ down [ > Shell | no Standable ] -> [ > Shell > MoveD | ] again
+ left [ > Shell | no Standable ] -> [ > Shell > MoveL | ] again
+ right [ > Shell | no Standable ] -> [ > Shell > MoveR | ] again)
( Big shell moves as one )
[ moving BigShell | stationary BigShell ] -> [ moving BigShell | moving BigShell ]
[ > BigShell | Coconut ] -> [ BigShell | > Coconut ]
[ > BigShell | Shell ] -> [ BigShell | > Shell ]
[ > BigShell | StopsShell ] -> [ BigShell | StopsShell ]
[ stationary BigShell | moving BigShell ] -> [ stationary BigShell | stationary BigShell ]
( Push coconuts )
[ > Crab | stationary Coconut ] -> [ > Crab | > Coconut ] sfx0
( Keep movement from last turn )
[ MovesAgain MoveU ] -> [ up MovesAgain ]
[ MovesAgain MoveD ] -> [ down MovesAgain ]
[ MovesAgain MoveL ] -> [ left MovesAgain ]
[ MovesAgain MoveR ] -> [ right MovesAgain ]
( Collided coconut takes on movement )
[ > Coconut Standable | Coconut ] -> [ Coconut Standable | > Coconut ] again sfx1
( Break shell and stop coconut )
([ > Coconut | Shell ] -> [ Coconut | ShellBroken ] again)
( Move shell and stop coconut )
[ > Coconut Standable | Shell ] -> [ Coconut Standable | > Shell ] again sfx1
( Stop a coconut )
[ > Coconut Standable | StopsCoconut ] -> [ Coconut Standable | StopsCoconut ] sfx1
( Coconut falls into water )
[ CoconutSinking ] -> [ CoconutInWater ]
[ Coconut no Standable ] -> [ stationary CoconutSinking no CoconutDec ] again
( Keep coconut rolling next turn )
up [ > Coconut | no StopsCoconut ] -> [ > Coconut > MoveU | ] again
down [ > Coconut | no StopsCoconut ] -> [ > Coconut > MoveD | ] again
left [ > Coconut | no StopsCoconut ] -> [ > Coconut > MoveL | ] again
right [ > Coconut | no StopsCoconut ] -> [ > Coconut > MoveR | ] again
( Coconut spots )
up [ > Coconut stationary CoconutDecULF ] -> [ > Coconut > CoconutDecULB ]
up [ > Coconut stationary CoconutDecULB ] -> [ > Coconut > CoconutDecDLB ]
up [ > Coconut stationary CoconutDecDLB ] -> [ > Coconut > CoconutDecDLF ]
up [ > Coconut stationary CoconutDecDLF ] -> [ > Coconut > CoconutDecULF ]
up [ > Coconut stationary CoconutDecURF ] -> [ > Coconut > CoconutDecURB ]
up [ > Coconut stationary CoconutDecURB ] -> [ > Coconut > CoconutDecDRB ]
up [ > Coconut stationary CoconutDecDRB ] -> [ > Coconut > CoconutDecDRF ]
up [ > Coconut stationary CoconutDecDRF ] -> [ > Coconut > CoconutDecURF ]
down [ > Coconut stationary CoconutDecULF ] -> [ > Coconut > CoconutDecDLF ]
down [ > Coconut stationary CoconutDecDLF ] -> [ > Coconut > CoconutDecDLB ]
down [ > Coconut stationary CoconutDecDLB ] -> [ > Coconut > CoconutDecULB ]
down [ > Coconut stationary CoconutDecULB ] -> [ > Coconut > CoconutDecULF ]
down [ > Coconut stationary CoconutDecURF ] -> [ > Coconut > CoconutDecDRF ]
down [ > Coconut stationary CoconutDecDRF ] -> [ > Coconut > CoconutDecDRB ]
down [ > Coconut stationary CoconutDecDRB ] -> [ > Coconut > CoconutDecURB ]
down [ > Coconut stationary CoconutDecURB ] -> [ > Coconut > CoconutDecURF ]
left [ > Coconut stationary CoconutDecULF ] -> [ > Coconut > CoconutDecDLF ]
left [ > Coconut stationary CoconutDecDLF ] -> [ > Coconut > CoconutDecDRF ]
left [ > Coconut stationary CoconutDecDRF ] -> [ > Coconut > CoconutDecURF ]
left [ > Coconut stationary CoconutDecURF ] -> [ > Coconut > CoconutDecULF ]
left [ > Coconut stationary CoconutDecULB ] -> [ > Coconut > CoconutDecDLB ]
left [ > Coconut stationary CoconutDecDLB ] -> [ > Coconut > CoconutDecDRB ]
left [ > Coconut stationary CoconutDecDRB ] -> [ > Coconut > CoconutDecURB ]
left [ > Coconut stationary CoconutDecURB ] -> [ > Coconut > CoconutDecULB ]
right [ > Coconut stationary CoconutDecULF ] -> [ > Coconut > CoconutDecURF ]
right [ > Coconut stationary CoconutDecURF ] -> [ > Coconut > CoconutDecDRF ]
right [ > Coconut stationary CoconutDecDRF ] -> [ > Coconut > CoconutDecDLF ]
right [ > Coconut stationary CoconutDecDLF ] -> [ > Coconut > CoconutDecULF ]
right [ > Coconut stationary CoconutDecULB ] -> [ > Coconut > CoconutDecURB ]
right [ > Coconut stationary CoconutDecURB ] -> [ > Coconut > CoconutDecDRB ]
right [ > Coconut stationary CoconutDecDRB ] -> [ > Coconut > CoconutDecDLB ]
right [ > Coconut stationary CoconutDecDLB ] -> [ > Coconut > CoconutDecULB ]
( Stop crab )
[ > Crab | stationary Coconut ] -> [ Crab | Coconut ]
( Finish sinking )
[ ShellSinking ] -> [ ]
[ BigShellSinking ] -> [ ]
( Shell sinks if it stops in water )
[ stationary Shell no standable ] -> [ ShellSinking ] again
[ stationary BigShell no standable ] -> [ action BigShell ]
[ stationary BigShell | action BigShell ] -> [ stationary BigShell | stationary BigShell ]
[ action BigShellMM ] -> [ BigShellSinking ] again
[ action BigShell ] -> [ ]
late [ Shell no standable ] -> again
late [ BigShell no standable ] -> again
( Move shell in water until it collides or lands )
up [ > Shell no Standable | no StopsShell ] -> [ TrailSU | > Shell ] again
down [ > Shell no Standable | no StopsShell ] -> [ TrailSD | > Shell ] again
left [ > Shell no Standable | no StopsShell ] -> [ TrailSL | > Shell ] again
right [ > Shell no Standable | no StopsShell ] -> [ TrailSR | > Shell ] again
( Shell collides )
[ > Shell | StopsShell ] -> [ Shell | StopsShell ]
( Shell lands )
[ no Standable | > Shell Standable ] -> [ | Shell Standable ]
( Shell moves off screen )
[ > Shell no Standable Background ] -> [> Shell > Background ]
[ > Background | Background ] -> [ Background | Background ]
[ up Shell up Background ] -> [ TrailSU Background ]
[ down Shell down Background ] -> [ TrailSD Background ]
[ left Shell left Background ] -> [ TrailSL Background ]
[ right Shell right Background ] -> [ TrailSR Background ]
( Create tops )
late [ TreeTop ] -> [ ]
late up [ Tree | ] -> [ Tree | TreeTop ]
late [ CrabTop ] -> [ ]
late up [ Crab | ] -> [ Crab | CrabTop ]
late [ BigShellTop ] -> [ ]
late up [ BigShellML | ] -> [ BigShellML | BigShellUL ]
late up [ BigShellMM | ] -> [ BigShellMM | BigShellUM ]
late up [ BigShellMR | ] -> [ BigShellMR | BigShellUR ]
late up [ BigShellMLCrab | ] -> [ BigShellMLCrab | BigShellULCrab ]
late up [ BigShellMMCrab | ] -> [ BigShellMMCrab | BigShellUMCrab ]
late up [ BigShellMRCrab | ] -> [ BigShellMRCrab | BigShellURCrab ]
( Checkpoint )
late [ Crab Quicksave ] -> [ Crab ] checkpoint sfx10
[ Corner ] -> [ ]
( Water corners )
up [ no Land | Land ] -> [ | up Land ]
left [ no Land | up Land ] -> [ | up Land CornerWDR ]
right [ no Land | up Land ] -> [ | up Land CornerWDL ]
down [ no Land | Land ] -> [ | down Land ]
left [ no Land | down Land ] -> [ | down Land CornerWUR ]
right [ no Land | down Land ] -> [ | down Land CornerWUL ]
[ moving Land ] -> [ Land ]
( Sand corners )
up [ Sand | no Sand ] -> [ Sand | up Background ]
left [ Sand | up Background ] -> [ Sand | up Background CornerSDR ]
right [ Sand | up Background ] -> [ Sand | up Background CornerSDL ]
down [ Sand | no Sand ] -> [ Sand | down Background ]
left [ Sand | down Background ] -> [ Sand | down Background CornerSUR ]
right [ Sand | down Background ] -> [ Sand | down Background CornerSUL ]
[ moving Background ] -> [ Background ]
( Grass corners )
up [ Grass | no Grass ] -> [ Grass | up Background ]
left [ Grass | up Background ] -> [ Grass | up Background CornerGDR ]
right [ Grass | up Background ] -> [ Grass | up Background CornerGDL ]
down [ Grass | no Grass ] -> [ Grass | down Background ]
left [ Grass | down Background ] -> [ Grass | down Background CornerGUR ]
right [ Grass | down Background ] -> [ Grass | down Background CornerGUL ]
[ moving Background ] -> [ Background ]
( Clean up )
up [ CornerWUR | CornerSDR ] -> [ CornerWUR | ]
up [ CornerWUL | CornerSDL ] -> [ CornerWUL | ]
down [ CornerWDR | CornerSUR ] -> [ CornerWDR | ]
down [ CornerWDL | CornerSUL ] -> [ CornerWDL | ]
up [ CornerWUR | CornerGDR ] -> [ CornerWUR | ]
up [ CornerWUL | CornerGDL ] -> [ CornerWUL | ]
down [ CornerWDR | CornerGUR ] -> [ CornerWDR | ]
down [ CornerWDL | CornerGUL ] -> [ CornerWDL | ]
( Tutorial 1 )
late [ Crab Tutorial1 ] -> [ Crab ] checkpoint message "Press X on sand to swap shells"
( Mark clear area around player )
[ ConnectedFogArea FogCleared | ConnectedFogArea no FogCleared ] -> [ ConnectedFogArea FogCleared | ConnectedFogArea action FogCleared ]
[ ConnectedFogArea FogCleared | ClearFogExtra no FogCleared ] -> [ ConnectedFogArea FogCleared | ClearFogExtra action FogCleared ]
[ ClearFogExtra FogCleared | ClearFogExtra no FogCleared ] -> [ ClearFogExtra FogCleared | ClearFogExtra action FogCleared ]
( Extend border twice )
[ action FogCleared | no FogCleared no FogClearedBorder ] -> [ action FogCleared | action FogClearedBorder ]
[ action FogClearedBorder | no FogCleared no FogClearedBorder ] -> [ action FogClearedBorder | FogClearedBorder ]
( SFX )
[ Land action FogCleared Fog ] -> sfx5
( Create starting fog )
[ FogSeed | ] -> [ action FogFullA | action FogFullB ]
[ action FogFullB | no Fog no FogCleared no FogClearedBorder ] -> [ action FogFullB | action FogFullA no FogCleared ]
+ [ action FogFullA | no Fog no FogCleared no FogClearedBorder ] -> [ action FogFullA | action FogFullB no FogCleared ]
( Peel back fog )
[ FogHalf FogCleared ] -> [ FogCleared ] again
[ FogHalf FogClearedBorder ] -> [ FogClearedBorder ] again
[ FogFullA | no Fog ] -> [ FogHalfA | ]
[ FogFullB | no Fog ] -> [ FogHalfB | ]
( Show big shell better through fog )
[ BigShellM FogFullA ] -> [ BigShellM FogHalfA ]
[ BigShellM FogFullB ] -> [ BigShellM FogHalfB ]
==============
WINCONDITIONS
==============
Some CrabTired
All CrabTired on Count0
=======
LEVELS
=======
( v2 wip )
f_________________._____________
_________...______@.____________
_________.c.r___..rc..__________
________.....s_.....r.__________
_______r......_.r....._x________
_______..c..r___...r____________
________....____.r._____________
________________..._____________
_______.s____o______....________
__..r._...__--_____..hc..___-___
_.......r.__---_x__.c.-..__--___
_........._o_--._x____-_s_/...__
_.c..r.r.___x_..b...o_-_x__.c.._
__.r.c.______o_.r.____o_x__chr._
___...._____.e.s.___---o___...._
___________..-h.____.kn___...___
_____os____...c.x___.h-_x_...___
____x...__x...r____.c.._xx...___
___.c....__x_____-_...__._x..___
___...h.._______e-_s___..._s____
____....._s_____--___s...c______
_____.____...._1kn___--...e-____
_________.chr._--_.___-k-..-____
________....c._o_c._____----____
________......_x_.._____________
________________________________
( v2 wip last level )
(f_________________.___________f_
_________...______..____________
_________...r___..r...__________
________......u.....r.__________
_______r......_.r....._x________
_______.....r___...r____________
________....____.r._____________
________u__u____..._____________
_______.._____o_____....________
__..r._...___--____......___-___
_.......r.___---x_u...-..__--___
_.........u_o_--.__u__-_.uu...__
_....r.r.____x_...b@o_o_x__...._
__.r..._______o_._______x__..r._
___....______.e.s___---____...._
______u_____..-h.___.kn___...___
_____o._____...c.x__..-_x_...___
____x...__x_...r___...._xx...___
___......__x_____-_...__._x..___
___......_______--u._u_...u.____
____.....u.u____--___.....______
_____.____....u-k-___--...--____
_________...r._--u.___-k-..-____
________......_o_.._____----____
f_______......_x_.._____________
_______________________________f)
( v1 )
(__________________._____________
_________...______@.____________
_________.c.r___..rc..__________
________.....s_.....r.__________
_______r......_.r.....__________
_______..c..r___...r.___________
________....____.r..___--_______
_____________o._....__...s_---__
_______.s_____._..__.r..___e.-__
__..r._...____.__._....__.c..-__
_.......r.___..b__..c.__....--__
_.........___._..s__..___...k___
_.c..r.r.___..._..._______.--___
__.r.c.___.....hc..______..-____
___....___.....c..-______s______
___________...____-__--_____--__
______s...___________-n-_/_--e-_
____.c....___________----&-----_
____...h.__o__________-n-&--n--_
_____...._q---_______---___---__
______..__-----o_---_q___s__-___
__________-1_--_---n_o__o.._____
__________--_-/_--e-___-..c.____
___________----_q-n--o_--.h.____
___________e--___---____nk..____
___________o____________---_____
________________________________)
(last level)
(__________________._____________
_________---______..____________
_________---k___..r...__________
________------u.....r.__________
_______k------_.r.....__________
_______-----k___...r.___________
________----____.r..___--_______
________u__u_o._....__...._---__
_______.._____._..__.r.._u_-.-__
__..r._...____.__._....__....-__
_.......r.___..b_u....__....--__
_.........u__._..@__..___...k___
_....r.r.___..._..._______.--___
__.r...___.....hc..______..-____
___....___.....c..-______.______
______u____...____-__--__u__--__
______....___________---_u_----_
____......___________----u-----_
____.....__o__________-e-u-----_
_____....u----_____u_---_u_---__
______..__-----o_---u-___.__-___
__________--_--_----_o__o.._____
__________--_-__----___-...h____
___________----u-----o_--...____
___________---___---____-k..____
___________o____________---_____
________________________________)
(last level halfway)
(__________________._____________
_________---______..____________
_________---k___..r...__________
________------u.....r.__________
_______k------_.r.....__________
_______-----k___...r.___________
________----____.r..___--_______
________u__u_o.u....__...._---__
_______.._____@_..__.r.._u_-.-__
__..r._...____.__._....__....-__
_.......r.___..b_u....__....--__
_.........u__._...__..___...k___
_....r.r.___..._..._______.--___
__.r...___.........______..-____
___....___...c....-______.______
______u____...____-__--__u__--__
______....___________---_u_----_
____......___________----u-----_
____.....__o__________-e-u-----_
_____....u----_____u_---_u_---__
______..__-----o_---u-___.__-___
__________--_--_----_o__o.._____
__________--_-__----___-...h____
___________----u-----o_--...____
___________---___---____-k..____
___________o____________---_____
________________________________)
(
( Intro to movement )
______________
______________
____---_______
____-k---_____
___--n-k-_____
___-k-?---____
____----k-____
____--k---____
_____--_______
______________
_____-________
____---_______
____-t--______
_____--_______
______________
( Coconut as obstacle )
______________
__..._________
_..x..________
_.....________
__..__________
_____----_____
____--n--k____
____k------___
_____---?--___
______-n-k-___
______---_____
______________
______________
______________
______________
______________
_______--_____
______--t-____
______----____
_______---____
________-_____
____....______
___.r.c.______
__.c..r.r.____
__...@.....___
__.......r.___
___..r._...___
________..____
______________
______________
( Shell as obstacle )
______________
____..@.______
__.c....______
__...h._______
___...._q---__
____..__-----_
_______------_
________--_-__
_________-_1__
___...___---k_
__..x._------_
__....__---e__
___..______-__
___________o__
______________
______________
______________
___---________
__-n-e-_______
_----n-_______
__--?--_______
__---_________
__--__x_______
______________
______________
______________
______________
______________
______________
______________
______________
______________
__---_________
_-e---________
_---n--__--___
__----__k---__
___--__--t--__
______----k-__
___--___---___
__--n-________
_-n---________
_--?-_________
______________
______________
______________
______________
______________
______________
______---_____
______nk..____
______-.h.____
______.@c.____
_______.._____
______________
______..______
______..._____
_____..x._____
______..______
______________
______________
______________
_____e._______
____--._______
____k...______
___--..@._____
___-..c.______
___-.-________
___---_.______
_______...____
_______.x..___
________..____
______________
______________
______________
______________)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment