Skip to content

Instantly share code, notes, and snippets.

@Draknek
Last active December 7, 2022 13:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Draknek/501b255199119288c3d8f7dba2b48494 to your computer and use it in GitHub Desktop.
Save Draknek/501b255199119288c3d8f7dba2b48494 to your computer and use it in GitHub Desktop.
Each Last Laugh for this Beached Raft
Play this game by pasting the script in http://www.puzzlescript.net/editor.html
title Each Last Laugh for this Beached Raft Craft
author Alan Hazelden
homepage alan.draknek.org
noaction
norepeat_action
run_rules_on_level_start
realtime_interval 0.1
again_interval 0.1
background_color #4e5e5e
text_color #9ee7d7
(verbose_logging)
========
OBJECTS
========
(
#9ee7d7
#6ac0bd
#5889a2
#462c4b
#724254
#c18c72
#fcebb6
#a9f05f
#5fad67
#4e5e5e
)
Background
#9ee7d7 #6ac0bd
11111
11101
11111
10111
11111
WaterAnimation1x1
#9ee7d7 #6ac0bd
11111
11101
11111
10111
11111
WaterAnimation1x2
#9ee7d7 #6ac0bd
11111
11101
11111
10111
11111
WaterAnimation1x3
#9ee7d7 #6ac0bd
11111
11101
11111
10111
11111
WaterAnimation1x4
#9ee7d7 #6ac0bd
11111
11101
11111
10111
11111
WaterAnimation1x5
#9ee7d7 #6ac0bd
11111
11101
11111
10111
11111
WaterAnimation1x6
#9ee7d7 #6ac0bd
11111
11101
11111
10111
11111
WaterAnimation1x7
#9ee7d7 #6ac0bd
11111
11101
11111
10111
11111
WaterAnimation1x8
#9ee7d7 #6ac0bd
11111
11101
11111
10111
11111
WaterAnimation2x1
#9ee7d7 #6ac0bd
11111
11111
11101
10111
11111
WaterAnimation2x2
#9ee7d7 #6ac0bd
11111
11111
11101
10111
11111
WaterAnimation2x3
#9ee7d7 #6ac0bd
11111
11111
11101
10111
11111
WaterAnimation2x4
#9ee7d7 #6ac0bd
11111
11111
11101
10111
11111
WaterAnimation2x5
#9ee7d7 #6ac0bd
11111
11111
11101
10111
11111
WaterAnimation2x6
#9ee7d7 #6ac0bd
11111
11111
11101
10111
11111
WaterAnimation2x7
#9ee7d7 #6ac0bd
11111
11111
11101
10111
11111
WaterAnimation2x8
#9ee7d7 #6ac0bd
11111
11111
11101
10111
11111
WaterAnimation3x1
#9ee7d7 #6ac0bd
11111
11101
10111
11111
11111
WaterAnimation3x2
#9ee7d7 #6ac0bd
11111
11101
10111
11111
11111
WaterAnimation3x3
#9ee7d7 #6ac0bd
11111
11101
10111
11111
11111
WaterAnimation3x4
#9ee7d7 #6ac0bd
11111
11101
10111
11111
11111
WaterAnimation3x5
#9ee7d7 #6ac0bd
11111
11101
10111
11111
11111
WaterAnimation3x6
#9ee7d7 #6ac0bd
11111
11101
10111
11111
11111
WaterAnimation3x7
#9ee7d7 #6ac0bd
11111
11101
10111
11111
11111
WaterAnimation3x8
#9ee7d7 #6ac0bd
11111
11101
10111
11111
11111
Target
#462c4b transparent transparent transparent
.111.
10201
12021
10201
.111.
Land
#fcebb6 #fcebb6
11111
01111
11101
11111
10111
NormalPlayer
(#462c4b
.000.
.000.
00000
.000.
.0.0.)
#462c4b #5fad67 #4e5e5e
..0..
.111.
01110
02220
.2.2.
PlayerRight
#462c4b #5fad67 #4e5e5e
...0.
..111
..111
..222
..2.2
PlayerRightArms
#462c4b #5fad67 #4e5e5e
.....
0....
.....
0....
.....
PlayerLeft
#462c4b #5fad67 #4e5e5e
.0...
111..
111..
222..
2.2..
PlayerLeftArms
#462c4b #5fad67 #4e5e5e
.....
....0
.....
....0
.....
PlayerUp
#462c4b #5fad67 #4e5e5e
.111.
.111.
.222.
.2.2.
.....
PlayerUpArms
#462c4b #5fad67 #4e5e5e
.....
.....
.....
.....
.0.0.
PlayerDown
#462c4b #5fad67 #4e5e5e
.....
..0..
.111.
.111.
.0.0.
PlayerDownArms
#462c4b #5fad67 #4e5e5e
.0.0.
.....
.....
.....
.....
Raft
#724254 #c18c72
101.1
10101
10101
10101
10.01
RaftOnLand
#724254 #c18c72
101.1
10101
10101
10101
10.01
LappingShoreN
#6ac0bd
.000.
.....
.....
.....
.....
LappingShoreE
transparent
LappingShoreS
transparent
LappingShoreW
#6ac0bd
.....
0....
0....
0....
.....
AddLandLUD
#fcebb6
0....
.....
.....
.....
0....
AddLandLU
#fcebb6
0....
.....
.....
.....
.....
AddLandLD
#fcebb6
.....
.....
.....
.....
0....
AddLandRUD
#fcebb6
....0
.....
.....
.....
....0
AddLandRU
#fcebb6
....0
.....
.....
.....
.....
AddLandRD
#fcebb6
.....
.....
.....
.....
....0
RemoveLandLUD
#6ac0bd
0....
.....
.....
.....
0....
RemoveLandLU
#6ac0bd
0....
.....
.....
.....
.....
RemoveLandLD
#6ac0bd
.....
.....
.....
.....
0....
RemoveLandRUD
#6ac0bd
....0
.....
.....
.....
....0
RemoveLandRU
#6ac0bd
....0
.....
.....
.....
.....
RemoveLandRD
#6ac0bd
.....
.....
.....
.....
....0
Dragging
transparent
West
transparent
East
transparent
North
transparent
South
transparent
Savepoint
transparent
InvisiblePlayer
transparent
=======
LEGEND
=======
Player = NormalPlayer or InvisiblePlayer or PlayerLeft or PlayerRight or PlayerUp or PlayerDown
PlayerMoving = PlayerLeft or PlayerRight or PlayerUp or PlayerDown
PlayerArms = PlayerLeftArms or PlayerRightArms or PlayerUpArms or PlayerDownArms
WaterAnimation = WaterAnimation1x1 or WaterAnimation1x2 or WaterAnimation1x3 or WaterAnimation1x4 or WaterAnimation1x5 or WaterAnimation1x6 or WaterAnimation1x7 or WaterAnimation1x8 or WaterAnimation2x1 or WaterAnimation2x2 or WaterAnimation2x3 or WaterAnimation2x4 or WaterAnimation2x5 or WaterAnimation2x6 or WaterAnimation2x7 or WaterAnimation2x8 or WaterAnimation3x1 or WaterAnimation3x2 or WaterAnimation3x3 or WaterAnimation3x4 or WaterAnimation3x5 or WaterAnimation3x6 or WaterAnimation3x7 or WaterAnimation3x8
. = Background and WaterAnimation1x1
_ = Raft and WaterAnimation1x1
# = Land
P = NormalPlayer and Land
x = Target and Land
? = Savepoint
LappingShore = LappingShoreN or LappingShoreE or LappingShoreS or LappingShoreW
AddLandL = AddLandLUD or AddLandLU or AddLandLD
AddLandR = AddLandRUD or AddLandRU or AddLandRD
RemoveLandL = RemoveLandLUD or RemoveLandLU or RemoveLandLD
RemoveLandR = RemoveLandRUD or RemoveLandRU or RemoveLandRD
CanStand = Land or Raft
Carryable = NormalPlayer
Floats = Raft
Direction = north or south or east or west
=======
SOUNDS
=======
Player move 22101707
sfx0 60997509 ( 19705309) (raft move)
sfx1 7807507 (35948907) (drag raft)
sfx2 89357909 (push raft)
endlevel 42879509
undo 63611507
restart 42109302 (92365102) ( 87995102)
================
COLLISIONLAYERS
================
Background
Land, Savepoint, WaterAnimation
AddLandL, RemoveLandL
AddLandR, RemoveLandR
LappingShore
Raft, RaftOnLand
Target
Player
Direction, Dragging
PlayerArms
======
RULES
======
[ stationary NormalPlayer ] [ stationary WaterAnimation1x1 ] -> [ NormalPlayer ] [ action WaterAnimation1x2 ]
[ stationary NormalPlayer ] [ stationary WaterAnimation1x2 ] -> [ NormalPlayer ] [ action WaterAnimation1x3 ]
[ stationary NormalPlayer ] [ stationary WaterAnimation1x3 ] -> [ NormalPlayer ] [ action WaterAnimation1x4 ]
[ stationary NormalPlayer ] [ stationary WaterAnimation1x4 ] -> [ NormalPlayer ] [ action WaterAnimation1x5 ]
[ stationary NormalPlayer ] [ stationary WaterAnimation1x5 ] -> [ NormalPlayer ] [ action WaterAnimation1x6 ]
[ stationary NormalPlayer ] [ stationary WaterAnimation1x6 ] -> [ NormalPlayer ] [ action WaterAnimation1x7 ]
[ stationary NormalPlayer ] [ stationary WaterAnimation1x7 ] -> [ NormalPlayer ] [ action WaterAnimation1x8 ]
[ stationary NormalPlayer ] [ stationary WaterAnimation1x8 ] -> [ NormalPlayer ] [ action WaterAnimation2x1 ]
[ stationary NormalPlayer ] [ stationary WaterAnimation2x1 ] -> [ NormalPlayer ] [ action WaterAnimation2x2 ]
[ stationary NormalPlayer ] [ stationary WaterAnimation2x2 ] -> [ NormalPlayer ] [ action WaterAnimation2x3 ]
[ stationary NormalPlayer ] [ stationary WaterAnimation2x3 ] -> [ NormalPlayer ] [ action WaterAnimation2x4 ]
[ stationary NormalPlayer ] [ stationary WaterAnimation2x4 ] -> [ NormalPlayer ] [ action WaterAnimation2x5 ]
[ stationary NormalPlayer ] [ stationary WaterAnimation2x5 ] -> [ NormalPlayer ] [ action WaterAnimation2x6 ]
[ stationary NormalPlayer ] [ stationary WaterAnimation2x6 ] -> [ NormalPlayer ] [ action WaterAnimation2x7 ]
[ stationary NormalPlayer ] [ stationary WaterAnimation2x7 ] -> [ NormalPlayer ] [ action WaterAnimation2x8 ]
[ stationary NormalPlayer ] [ stationary WaterAnimation2x8 ] -> [ NormalPlayer ] [ action WaterAnimation3x1 ]
[ stationary NormalPlayer ] [ stationary WaterAnimation3x1 ] -> [ NormalPlayer ] [ action WaterAnimation3x2 ]
[ stationary NormalPlayer ] [ stationary WaterAnimation3x2 ] -> [ NormalPlayer ] [ action WaterAnimation3x3 ]
[ stationary NormalPlayer ] [ stationary WaterAnimation3x3 ] -> [ NormalPlayer ] [ action WaterAnimation3x4 ]
[ stationary NormalPlayer ] [ stationary WaterAnimation3x4 ] -> [ NormalPlayer ] [ action WaterAnimation3x5 ]
[ stationary NormalPlayer ] [ stationary WaterAnimation3x5 ] -> [ NormalPlayer ] [ action WaterAnimation3x6 ]
[ stationary NormalPlayer ] [ stationary WaterAnimation3x6 ] -> [ NormalPlayer ] [ action WaterAnimation3x7 ]
[ stationary NormalPlayer ] [ stationary WaterAnimation3x7 ] -> [ NormalPlayer ] [ action WaterAnimation3x8 ]
[ stationary NormalPlayer ] [ stationary WaterAnimation3x8 ] -> [ NormalPlayer ] [ action WaterAnimation1x1 ]
(---)
[ PlayerArms ] -> []
late left [ PlayerLeft | ] -> [ PlayerLeft | PlayerLeftArms ]
late right [ PlayerRight | ] -> [ PlayerRight | PlayerRightArms ]
late up [ PlayerUp | ] -> [ PlayerUp | PlayerUpArms ]
late down [ PlayerDown | ] -> [ PlayerDown | PlayerDownArms ]
[ PlayerUp Raft ] -> [ South NormalPlayer Raft ] again
[ PlayerDown Raft ] -> [ North NormalPlayer Raft ] again
[ PlayerLeft Raft ] -> [ East NormalPlayer Raft ] again
[ PlayerRight Raft ] -> [ West NormalPlayer Raft ] again
[ PlayerMoving no direction ] -> [ NormalPlayer ] again
[ North stationary Player no Raft ] -> [ up Player ]
[ East stationary Player no Raft ] -> [ right Player ]
[ South stationary Player no Raft ] -> [ down Player ]
[ West stationary Player no Raft ] -> [ left Player ]
[ moving InvisiblePlayer ] -> [ InvisiblePlayer ]
[ stationary Player ] [ stationary Direction ] -> [ Player ] [ action Direction ]
(animation)
(random [ stationary Player ] [ LappingShore ] -> [ Player ] []
random right [ stationary Player ] [ no Raft no Land no AddLandR | Land no RemoveLandLUD no LappingShore ] -> [ Player ] [ | Land LappingShoreW ])
(decorative)
(right [ no Land | Land ] -> [ | Land ShoreW ]
left [ no Land | Land ] -> [ | Land ShoreE ]
down [ no Land | Land ] -> [ | Land ShoreN ]
up [ no Land | Land ] -> [ | Land ShoreS ]
[ ShoreN ShoreE ] -> [ ShoreN ShoreE CornerNE ])
(Island border)
left [ no Land no AddLandL | Land ] -> [ no Land AddLandLUD | Land ]
right [ no Land no AddLandR | Land ] -> [ no Land AddLandRUD | Land ]
up [ AddLandLUD | no Land ] -> [ AddLandLD | ]
up [ AddLandRUD | no Land ] -> [ AddLandRD | ]
down [ AddLandLUD | no Land ] -> [ AddLandLU | ]
down [ AddLandRUD | no Land ] -> [ AddLandRU | ]
down [ AddLandLD | no Land ] -> [ | ]
down [ AddLandRD | no Land ] -> [ | ]
left [ Land no RemoveLandL | no Land ] -> [ Land RemoveLandLUD | ]
right [ Land no RemoveLandR | no Land ] -> [ Land RemoveLandRUD | ]
up [ RemoveLandLUD | Land ] -> [ RemoveLandLD | Land ]
up [ RemoveLandRUD | Land ] -> [ RemoveLandRD | Land ]
down [ RemoveLandLUD | Land ] -> [ RemoveLandLU | Land ]
down [ RemoveLandRUD | Land ] -> [ RemoveLandRU | Land ]
down [ RemoveLandLD | Land ] -> [ | Land ]
down [ RemoveLandRD | Land ] -> [ | Land ]
(finish up again rules from previous turn)
[ Player no CanStand ] -> [ InvisiblePlayer ]
[ Dragging | Raft ] -> [ RaftOnLand | ]
[ Dragging | Player ] -> [ Player | ]
(movement)
[ no Floats no RaftOnLand > Player | no CanStand ] -> cancel
[ Floats > Player Direction | no CanStand ] -> cancel
([ RaftOnLand > Player | CanStand no Land ] -> [ RaftOnLand > Player | CanStand ] again
[ Raft > Player | Land ] -> [ action Raft | Land Player Dragging ] again
[ RaftOnLand > Player | no Land ] -> [ Player | Raft Dragging ] again
late [ Player no CanStand ] -> again)
([ > Player | RaftOnLand | no Land no Raft ] -> [ | Player | Raft ] sfx2
[ Raft | > Player no Raft no RaftOnLand | CanStand ] -> [ | RaftOnLand | Player CanStand ] sfx1)
left [ > Player | RaftOnLand | no Land no Raft ] -> [ | PlayerLeft | Raft ] sfx2
left [ Raft | > Player no Raft no RaftOnLand | CanStand ] -> [ | RaftOnLand | PlayerRight CanStand ] sfx1
right [ > Player | RaftOnLand | no Land no Raft ] -> [ | PlayerRight | Raft ] sfx2
right [ Raft | > Player no Raft no RaftOnLand | CanStand ] -> [ | RaftOnLand | PlayerLeft CanStand ] sfx1
up [ > Player | RaftOnLand | no Land no Raft ] -> [ | PlayerUp | Raft ] sfx2
up [ Raft | > Player no Raft no RaftOnLand | CanStand ] -> [ | RaftOnLand | PlayerDown CanStand ] sfx1
down [ > Player | RaftOnLand | no Land no Raft ] -> [ | PlayerDown | Raft ] sfx2
down [ Raft | > Player no Raft no RaftOnLand | CanStand ] -> [ | RaftOnLand | PlayerUp CanStand ] sfx1
(Prevent large raft going onto land)
([ action Raft | Raft ] -> [ Raft | Raft ]
[ stationary Raft | Dragging ] -> [ Raft | ]
[ action Raft ] -> [ Raft ])
(Start raft moving)
[ Raft no Direction | Raft > Player no Direction | no Land ] -> [ < Raft | > Raft > Player | ]
([ CanStand | Raft > Player no Direction ] -> [ CanStand | > Raft > Player ])
left [ CanStand | Raft > Player no Direction | no CanStand ] -> [ CanStand | Raft PlayerRight | ]
right [ CanStand | Raft > Player no Direction | no CanStand ] -> [ CanStand | Raft PlayerLeft | ]
up [ CanStand | Raft > Player no Direction | no CanStand ] -> [ CanStand | Raft PlayerDown | ]
down [ CanStand | Raft > Player no Direction | no CanStand ] -> [ CanStand | Raft PlayerUp | ]
([ moving Raft | stationary Raft ] -> [ moving Raft | moving Raft ])
[ left Floats ] -> [ Floats action West ]
[ right Floats ] -> [ Floats action East ]
[ up Floats ] -> [ Floats action North ]
[ down Floats ] -> [ Floats action South ]
up [ CanStand | > Player RaftOnLand | no CanStand ] -> [ CanStand PlayerUp North | RaftOnLand | ] again
right [ CanStand | > Player RaftOnLand | no CanStand ] -> [ CanStand PlayerRight East | RaftOnLand | ] again
down [ CanStand | > Player RaftOnLand | no CanStand ] -> [ CanStand PlayerDown South | RaftOnLand | ] again
left [ CanStand | > Player RaftOnLand | no CanStand ] -> [ CanStand PlayerLeft West | RaftOnLand | ] again
(Cancel moves)
[ > Player no Floats | no CanStand ] -> cancel
(Raft movement)
[ action North ] -> [ up North ]
[ action South ] -> [ down South ]
[ action East ] -> [ right East ]
[ action West ] -> [ left West ]
[ > Direction | CanStand no Direction ] -> [ action Direction | CanStand ]
[ action Direction ] -> []
[ > Direction Floats ] -> [ > Direction > Floats ]
[ > Floats Carryable ] -> [ > Floats > Carryable ]
[ > Floats ] -> again
(final cleanup)
[ > Player no Direction | Direction ] -> [ Player | Direction ]
[ > Player no Direction | no CanStand ] -> [ Player | ]
[ > Raft Player | no CanStand ] -> [ | Raft Player ] sfx0
[ > Raft | no CanStand ] -> [ | Raft ] sfx0
[ > Raft NormalPlayer ] -> [ InvisiblePlayer ]
[ > Raft ] -> []
late [ Player Savepoint ] -> [ Player ] checkpoint
late [ PlayerMoving ] -> again
==============
WINCONDITIONS
==============
All Target on Player
All Player on Target
Some Player
=======
LEVELS
=======
(..........................
....##..............##....
...####....#.###...####...
...#####...######..#####..
..##p###....#####..#####..
..######_....###....####..
....####.....###....####..
....###......####....##...
....##..............##....
................#...##..#.
.......##.......##....###.
.......####.....##...####.
......####....###.....###.
......###...#####.....###.
......##########....####..
.......#########....###...
........##..##......#.....
..........................)
(..........................
......###.................
......#x##.........##.....
.......##........####.....
...##............#####....
..####....#.###...####....
..#####...######..#####...
.##p###....#####..#####...
.######_....###....####...
...####.....###....####...
...###......####....##....
...##..............##.....
...............#...##.....
......##.......##.....##..
......####.....##...#####.
.....####....###....#####.
.....###...#####.....###..
.....##########...?.###...
......#########..._####...
.......##..##......###....
..........................)
(...........
..##.....##
.###p_..###
.####...###
..###...###
..##.....#.
...........)
........................
......###...............
......#x##.........##...
.......##........####...
...##............#####..
..####....#.###...####..
..#####...######..#####.
.##p###....#####..#####.
.######_....###....####.
...####.....###....####.
...###......####....##..
...##..............##...
...............#...##...
......##.......##.......
......###......##.......
.....####....###........
.....###...#####....##..
.....##########...#####.
......#########..######.
.......##..##.....####..
........................
message Thanks for playing :)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment