Skip to content

Instantly share code, notes, and snippets.

@raggy
Last active May 14, 2024 13:32
Show Gist options
  • Save raggy/9c2113ee5166aaaf02ce9cce8a379fbf to your computer and use it in GitHub Desktop.
Save raggy/9c2113ee5166aaaf02ce9cce8a379fbf to your computer and use it in GitHub Desktop.
Frog and Present (PuzzleScript Script)
Play this game by pasting the script in http://www.puzzlescript.net/editor.html
title Frog and Present
author Benjamin Davis
norepeat_action
run_rules_on_level_start
again_interval 0.033
background_color #7b2c46
(verbose_logging)
(debug)
========
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
yellow black
.....
.0.0.
..0..
.0.0.
.....
NoLand
transparent #db4e7c
.....
.0.0.
..0..
.0.0.
.....
FrogU
green lightgreen
0.1.0
01110
.111.
00100
.000.
FrogD
green lightgreen
.000.
00100
.111.
01110
0.1.0
FrogL
green lightgreen
00.0.
.1100
11110
.1100
00.0.
FrogR
green lightgreen
.0.00
0011.
01111
0011.
.0.00
FrogSinking
darkgreen
.....
.000.
.000.
.000.
.....
TongueU
#ff757c
..0..
..0..
..0..
..0..
..0..
TongueD
#ff757c
..0..
..0..
..0..
..0..
..0..
TongueL
#ff757c
.....
.....
00000
.....
.....
TongueR
#ff757c
.....
.....
00000
.....
.....
TongueExtendingU
#ff757c
.....
.....
..0..
..0..
..0..
TongueExtendingD
#ff757c
..0..
..0..
..0..
.....
.....
TongueExtendingL
#ff757c
.....
.....
..000
.....
.....
TongueExtendingR
#ff757c
.....
.....
000..
.....
.....
TongueRetractingU
#ff757c
.....
.....
..0..
..0..
..0..
TongueRetractingD
#ff757c
..0..
..0..
..0..
.....
.....
TongueRetractingL
#ff757c
.....
.....
..000
.....
.....
TongueRetractingR
#ff757c
.....
.....
000..
.....
.....
TongueConnectedU
#ff757c
.000.
..0..
..0..
..0..
..0..
TongueConnectedD
#ff757c
..0..
..0..
..0..
..0..
.000.
TongueConnectedL
#ff757c
.....
.....
00000
0....
.....
TongueConnectedR
#ff757c
.....
.....
00000
....0
.....
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.
Rock
#ff757c #db4e7c
.....
.00..
0001.
1011.
.....
Present
red lightred
00100
00100
11111
00100
00100
PresentSinking
#db4e7c
.....
.000.
.000.
.000.
.....
Raft
darkgreen
.000.
00000
00000
00000
.000.
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....
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
=======
Frog = FrogU or FrogD or FrogL or FrogR
Player = Frog
Tongue = TongueU or TongueD or TongueL or TongueR
TongueExtending = TongueExtendingU or TongueExtendingD or TongueExtendingL or TongueExtendingR
TongueRetracting = TongueRetractingU or TongueRetractingD or TongueRetractingL or TongueRetractingR
TongueConnected = TongueConnectedU or TongueConnectedD or TongueConnectedL or TongueConnectedR
Standable = Sand or Grass or CoconutInWater or Raft
MoveToken = MoveU or MoveD or MoveL or MoveR
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
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 Raft
Pullable = Rock or Coconut or Present
StopsCoconut = Rock or Coconut or Present
StopsFrog = Rock
StopsTongue = Rock or Coconut or Present
_ = Background
. = Grass
@ = FrogU and Grass and FogCleared
c = Coconut and Grass
r = Rock and Grass
p = Present and Grass
s = Quicksave and Grass
- = Sand
? = FrogU and Sand and FogCleared
n = Coconut and Sand
k = Rock and Sand
q = Quicksave and Sand
o = Rock
u = CoconutInWater
l = Raft
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
PresentSinking create 44471908
Player move 79293707
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
Count
Frog, FrogSinking, Tongue, TongueExtending, TongueRetracting, TongueConnected, Coconut, CoconutSinking, Rock, Present, PresentSinking
CoconutDec
Fog, FogSeed
MoveToken
======
RULES
======
( Rotate frog )
up [ > Frog ] -> [ > FrogU ]
down [ > Frog ] -> [ > FrogD ]
left [ > Frog ] -> [ > FrogL ]
right [ > Frog ] -> [ > FrogR ]
( Stop when you can't walk somewhere )
[ > Frog | no Standable ] -> [ Frog | ]
[ > Frog | StopsFrog ] -> [ Frog | StopsFrog ]
( 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
( Push coconuts )
[ > Frog | stationary Coconut ] -> [ > Frog | > Coconut ] sfx0
( Push present )
[ > Frog | stationary Present ] -> [ > Frog | > Present ] sfx0
( Keep movement from last turn )
[ MovesAgain MoveU ] -> [ up MovesAgain ]
[ MovesAgain MoveD ] -> [ down MovesAgain ]
[ MovesAgain MoveL ] -> [ left MovesAgain ]
[ MovesAgain MoveR ] -> [ right MovesAgain ]
( Raft collides with raft )
[ > Raft | Raft ] -> [ Raft | Raft ]
( Stop coconut if collided with raft )
([ stationary Raft > Coconut ] -> [ Raft Coconut ])
( Move coconut on raft )
[ > Raft Coconut CoconutDec ] -> [ > Raft > Coconut > CoconutDec ]
( Move present on raft )
[ > Raft Present ] -> [ > Raft > Present ]
( Raft collides with land )
[ > Raft | Land ] -> [ Raft | Land ]
( Stop frog when pushing piece on raft )
[ > Frog | > Coconut Raft ] -> [ Frog | > Coconut > Raft ]
[ > Frog | > Present Raft ] -> [ Frog | > Present > Raft ]
( Keep raft moving next turn )
up [ > Raft | no Standable ] -> [ > Raft > MoveU | ] again
down [ > Raft | no Standable ] -> [ > Raft > MoveD | ] again
left [ > Raft | no Standable ] -> [ > Raft > MoveL | ] again
right [ > Raft | no Standable ] -> [ > Raft > MoveR | ] again
( Collided coconut takes on movement )
[ > Coconut Standable | Coconut ] -> [ Coconut Standable | > Coconut ] again sfx1
( Move present and stop coconut )
[ > Coconut Standable | Present ] -> [ Coconut Standable | > Present ] 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 frog )
[ > Frog | stationary Coconut ] -> [ Frog | Coconut ]
( Extend tongue if room )
up [ stationary TongueExtendingU | no StopsTongue ] -> [ TongueU | action TongueExtendingU ] again
down [ stationary TongueExtendingD | no StopsTongue ] -> [ TongueD | action TongueExtendingD ] again
left [ stationary TongueExtendingL | no StopsTongue ] -> [ TongueL | action TongueExtendingL ] again
right [ stationary TongueExtendingR | no StopsTongue ] -> [ TongueR | action TongueExtendingR ] again
( Extending tongue attaches )
up [ stationary TongueExtendingU | StopsTongue ] -> [ action TongueConnectedU | StopsTongue ] again
down [ stationary TongueExtendingD | StopsTongue ] -> [ action TongueConnectedD | StopsTongue ] again
left [ stationary TongueExtendingL | StopsTongue ] -> [ action TongueConnectedL | StopsTongue ] again
right [ stationary TongueExtendingR | StopsTongue ] -> [ action TongueConnectedR | StopsTongue ] again
( Don't extent tongue forever )
up [ TongueU | TongueU | TongueU | TongueU | TongueU | TongueU | TongueU | action TongueExtendingU ] -> [ TongueU | TongueU | TongueU | TongueU | TongueU | TongueU | TongueU | stationary TongueExtendingU ] again
down [ TongueD | TongueD | TongueD | TongueD | TongueD | TongueD | TongueD | action TongueExtendingD] -> [ TongueD | TongueD | TongueD | TongueD | TongueD | TongueD | TongueD | stationary TongueExtendingD ] again
left [ TongueL | TongueL | TongueL | TongueL | TongueL | TongueL | TongueL | action TongueExtendingL ] -> [ TongueL | TongueL | TongueL | TongueL | TongueL | TongueL | TongueL | stationary TongueExtendingL ] again
right [ TongueR | TongueR | TongueR | TongueR | TongueR | TongueR | TongueR | action TongueExtendingR ] -> [ TongueR | TongueR | TongueR | TongueR | TongueR | TongueR | TongueR | stationary TongueExtendingR ] again
( Extending tongue reached edge of screen )
[ stationary TongueExtendingU ] -> [ action TongueRetractingU ] again
[ stationary TongueExtendingD ] -> [ action TongueRetractingD ] again
[ stationary TongueExtendingL ] -> [ action TongueRetractingL ] again
[ stationary TongueExtendingR ] -> [ action TongueRetractingR ] again
( Retract unconnected tongue )
up [ TongueU | stationary TongueRetractingU ] -> [ action TongueRetractingU | ] again
down [ TongueD | stationary TongueRetractingD ] -> [ action TongueRetractingD | ] again
left [ TongueL | stationary TongueRetractingL ] -> [ action TongueRetractingL | ] again
right [ TongueR | stationary TongueRetractingR ] -> [ action TongueRetractingR | ] again
( Finish retracting unconnected tongue )
up [ FrogU | stationary TongueRetractingU ] -> [ FrogU | ]
down [ FrogD | stationary TongueRetractingD ] -> [ FrogD | ]
left [ FrogL | stationary TongueRetractingL ] -> [ FrogL | ]
right [ FrogR | stationary TongueRetractingR ] -> [ FrogR | ]
(( Retract tongue connected to pullable )
up [ stationary TongueConnectedU | Pullable ] -> [ < TongueConnectedU | < Pullable ]
down [ stationary TongueConnectedD | Pullable ] -> [ < TongueConnectedD | < Pullable ]
left [ stationary TongueConnectedL | Pullable ] -> [ < TongueConnectedL | < Pullable ]
right [ stationary TongueConnectedR | Pullable ] -> [ < TongueConnectedR | < Pullable ]
[ moving Coconut CoconutDec ] -> [ moving Coconut moving CoconutDec ]
( Remove tongue section )
up [ TongueU | < TongueConnectedU ] -> [ | < TongueConnectedU ] again
down [ TongueD | < TongueConnectedD ] -> [ | < TongueConnectedD ] again
left [ TongueL | < TongueConnectedL ] -> [ | < TongueConnectedL ] again
right [ TongueR | < TongueConnectedR ] -> [ | < TongueConnectedR ] again
( Finish pulling )
up [ FrogU | < TongueConnectedU ] -> [ FrogU | ]
down [ FrogD | < TongueConnectedD ] -> [ FrogD | ]
left [ FrogL | < TongueConnectedL ] -> [ FrogL | ]
right [ FrogR | < TongueConnectedR ] -> [ FrogR | ])
( Mark piece to pull towards )
up [ stationary TongueConnectedU | Pullable ] -> [ < TongueConnectedU | < Pullable ]
down [ stationary TongueConnectedD | Pullable ] -> [ < TongueConnectedD | < Pullable ]
left [ stationary TongueConnectedL | Pullable ] -> [ < TongueConnectedL | < Pullable ]
right [ stationary TongueConnectedR | Pullable ] -> [ < TongueConnectedR | < Pullable ]
( Rocks don't get pulled )
[ > Rock ] -> [ Rock ]
( Coconuts and Presents on land don't get pulled )
[ TongueConnected | < Coconut no Raft ] -> [ TongueConnected | Coconut ]
[ TongueConnected | < Present no Raft ] -> [ TongueConnected | Present ]
( Move raft under pullable if possible )
[ > Pullable Raft | no Standable ] -> [ > Pullable > Raft | ]
( Raft can't move )
([ > Pullable stationary Raft | TongueConnected ] -> [ Pullable Raft | TongueConnected ])
( Move dot with coconut )
[ moving Coconut CoconutDec ] -> [ moving Coconut moving CoconutDec ]
[ stationary Coconut CoconutDec ] -> [ stationary Coconut stationary CoconutDec ]
( Move frog connected to piece that can't move )
up [ FrogU | ... | < TongueConnectedU | stationary Pullable ] -> [ > FrogU | ... | TongueConnectedU | Pullable ]
down [ FrogD | ... | < TongueConnectedD | stationary Pullable ] -> [ > FrogD | ... | TongueConnectedD | Pullable ]
left [ FrogL | ... | < TongueConnectedL | stationary Pullable ] -> [ > FrogL | ... | TongueConnectedL | Pullable ]
right [ FrogR | ... | < TongueConnectedR | stationary Pullable ] -> [ > FrogR | ... | TongueConnectedR | Pullable ]
( Remove tongue section )
up [ > FrogU | TongueU ] -> [ > FrogU | ] again
down [ > FrogD | TongueD ] -> [ > FrogD | ] again
left [ > FrogL | TongueL ] -> [ > FrogL | ] again
right [ > FrogR | TongueR ] -> [ > FrogR | ] again
( Finish pulling towards piece )
up [ > FrogU | TongueConnectedU ] -> [ > FrogU | ]
down [ > FrogD | TongueConnectedD ] -> [ > FrogD | ]
left [ > FrogL | TongueConnectedL ] -> [ > FrogL | ]
right [ > FrogR | TongueConnectedR ] -> [ > FrogR | ]
( Frog sinking )
[ > Frog no Standable | no TongueConnected no Standable ] -> again
( Move piece on raft towards frog )
( Remove tongue section )
up [ TongueU | < TongueConnectedU ] -> [ | < TongueConnectedU ] again
down [ TongueD | < TongueConnectedD ] -> [ | < TongueConnectedD ] again
left [ TongueL | < TongueConnectedL ] -> [ | < TongueConnectedL ] again
right [ TongueR | < TongueConnectedR ] -> [ | < TongueConnectedR ] again
( Finish pulling )
up [ FrogU | < TongueConnectedU ] -> [ FrogU | ]
down [ FrogD | < TongueConnectedD ] -> [ FrogD | ]
left [ FrogL | < TongueConnectedL ] -> [ FrogL | ]
right [ FrogR | < TongueConnectedR ] -> [ FrogR | ]
( Start to extend tongue from frog )
up [ action FrogU | no StopsTongue ] -> [ FrogU | TongueExtendingU ] again
down [ action FrogD | no StopsTongue ] -> [ FrogD | TongueExtendingD ] again
left [ action FrogL | no StopsTongue ] -> [ FrogL | TongueExtendingL ] again
right [ action FrogR | no StopsTongue ] -> [ FrogR | TongueExtendingR ] again
( Finish sinking )
[ FrogSinking ] -> [ ]
[ PresentSinking ] -> [ ]
( Present sinks if it stops in water )
[ > Present no Raft | no Standable ] -> again
[ stationary Present no standable ] -> [ PresentSinking ] again
( Frog sinks if it stops in water )
[ stationary Frog no standable ] -> [ FrogSinking ] again
( Checkpoint )
late [ Present Quicksave ] -> [ Present ] 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 | ]
( 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 | ]
==============
WINCONDITIONS
==============
=======
LEVELS
=======
__________________
__________________
_____..___________
_____.c......_____
_____...p..c._____
_____......___.@__
_____.._____....__
_____.._.___._____
________..________
_______.......____
_______.....r.____
_______.......____
_______...._______
___________s______
___________.._____
________....._____
________....______
________....______
__________________
__________________
__________________
__________________
________..________
________rc________
_________._.._____
________.._c._____
________r...._____
________.@.c._____
________....______
__________________
_________.________
________..._______
__________________
__________________
__________________
__________________
__________________
__________________
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment