Last active
January 27, 2023 15:11
-
-
Save raggy/a9484255ac909c424f664f1bd88d8d25 to your computer and use it in GitHub Desktop.
Hermit the Crab (PuzzleScript Script)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Play this game by pasting the script in http://www.puzzlescript.net/editor.html |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
title 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