-
-
Save Draknek/9027730 to your computer and use it in GitHub Desktop.
Happy Birthday Hennell: Sokoban Edition 2014
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 Happy Birthday Hennell: Sokoban Edition 2014 | |
author Alan Hazelden | |
homepage www.draknek.org | |
run_rules_on_level_start | |
again_interval 0.35 | |
(youtube FUqm2PZ0Cdk) | |
(verbose_logging) | |
noaction | |
======== | |
OBJECTS | |
======== | |
Background | |
BLACK DarkBlue | |
01110 | |
01110 | |
00000 | |
00000 | |
01110 | |
Wall | |
Grey | |
00000 | |
00000 | |
00000 | |
00000 | |
00000 | |
Player | |
#ef9048 #f3c5ae Green Blue | |
..... | |
.000. | |
.111. | |
22222 | |
.333. | |
TL | |
White #f3c5ae #ef9048 #04bae1 | |
..... | |
..000 | |
.0022 | |
00211 | |
00131 | |
TR | |
White #f3c5ae #ef9048 #04bae1 | |
..... | |
000.. | |
2200. | |
11200 | |
13100 | |
BL | |
White #f3c5ae #ef9048 #04bae1 #9f8172 #83501b #90581e #a46422 #ad6a24 #b46d25 | |
..... | |
00141 | |
00114 | |
50011 | |
56000 | |
BR | |
White #f3c5ae #ef9048 #04bae1 #9f8172 #83501b #90581e #a46422 #ad6a24 #b46d25 | |
..... | |
14100 | |
41100 | |
11005 | |
00065 | |
BelowTL | |
White #f3c5ae #ef9048 #04bae1 #9f8172 #83501b #90581e #a46422 #ad6a24 #b46d25 | |
00111 | |
56666 | |
56666 | |
..... | |
..... | |
BelowTR | |
White #f3c5ae #ef9048 #04bae1 #9f8172 #83501b #90581e #a46422 #ad6a24 #b46d25 | |
11100 | |
66665 | |
66665 | |
..... | |
..... | |
BelowBL | |
White #f3c5ae #ef9048 #04bae1 #9f8172 #83501b #90581e #a46422 #ad6a24 #b46d25 | |
.6789 | |
..789 | |
..... | |
..... | |
..... | |
BelowBR | |
White #f3c5ae #ef9048 #04bae1 #9f8172 #83501b #90581e #a46422 #ad6a24 #b46d25 | |
9876. | |
987.. | |
..... | |
..... | |
..... | |
BelowWall | |
DarkGrey | |
00000 | |
00000 | |
00000 | |
..... | |
..... | |
BelowPlayer | |
#ef9048 #f3c5ae Green Blue | |
.3.3. | |
..... | |
..... | |
..... | |
..... | |
WallL | |
DarkRed | |
0.... | |
0.... | |
0.... | |
0.... | |
0.... | |
WallR | |
DarkRed | |
....0 | |
....0 | |
....0 | |
....0 | |
....0 | |
WallU | |
DarkRed | |
00000 | |
..... | |
..... | |
..... | |
..... | |
WallD | |
DarkRed | |
..... | |
..... | |
..... | |
..... | |
00000 | |
WallLR | |
DarkRed | |
0...0 | |
0...0 | |
0...0 | |
0...0 | |
0...0 | |
WallUD | |
DarkRed | |
00000 | |
..... | |
..... | |
..... | |
00000 | |
WallUL | |
DarkRed | |
0.... | |
..... | |
..... | |
..... | |
..... | |
WallUR | |
DarkRed | |
....0 | |
..... | |
..... | |
..... | |
..... | |
WallDL | |
DarkRed | |
..... | |
..... | |
..... | |
..... | |
0.... | |
WallDR | |
DarkRed | |
..... | |
..... | |
..... | |
..... | |
....0 | |
WallDLR | |
DarkRed | |
..... | |
..... | |
..... | |
..... | |
0...0 | |
Flag | |
White | |
..... | |
..... | |
..... | |
..... | |
..... | |
Flag2 | |
White | |
..... | |
..... | |
..... | |
..... | |
..... | |
LitCandle | |
White Orange Yellow | |
..... | |
..... | |
.222. | |
.212. | |
..0.. | |
UnlitCandle | |
White Black | |
..... | |
..... | |
..... | |
..1.. | |
..0.. | |
======= | |
LEGEND | |
======= | |
. = Background | |
# = Wall | |
P = Player | |
Cake = TL or TR or BL or BR | |
Perspective = BelowTL or BelowTR or BelowBL or BelowBR or BelowWall or BelowPlayer | |
MovingPerspective = BelowTL or BelowTR or BelowBL or BelowBR or BelowPlayer | |
WallCoverLR = WallL or WallR or WallLR | |
WallCoverUD = WallU or WallD or WallUD | |
WallCoverCorner = WallUL or WallUR or WallDL or WallDR or WallDLR | |
WallCover = WallCoverLR or WallCoverUD or WallCoverCorner | |
Candle = LitCandle or UnlitCandle | |
Solid = Wall or Cake | |
Q = TL | |
W = TR | |
A = BL | |
S = BR | |
0 = UnlitCandle and Wall | |
1 = LitCandle and Wall | |
======= | |
SOUNDS | |
======= | |
sfx1 6045907 (cakes sticking) | |
sfx2 27189102 (can't move) | |
sfx3 27189102 (can't push) | |
Cake MOVE 48059907 | |
Player MOVE 11429307 | |
EndLevel 85763108 | |
Restart 65287309 | |
Undo 84906107 | |
================ | |
COLLISIONLAYERS | |
================ | |
Background | |
Flag, Flag2 | |
Perspective | |
Player, Wall, Cake | |
WallCoverUD, WallCoverCorner | |
WallCoverLR, Candle | |
====== | |
RULES | |
====== | |
[ Player Flag2 ] -> win | |
[ Player no Flag2 ] -> [ Player Flag ] | |
[ Cake no Flag ] [ Player Flag ] -> [ Cake ] [ Player ] | |
[ Player Flag ] -> [ Player Flag2 ] again | |
[ MovingPerspective ] -> [] | |
[ Flag ] -> [] | |
[ > Player | Cake ] -> [ > Player | > Cake ] | |
startloop | |
[ > Cake | Cake ] -> [ > Cake | > Cake ] | |
right [ moving TL | TR ] -> [ moving TL | moving TR ] | |
right [ TL | moving TR ] -> [ moving TL | moving TR ] | |
right [ moving BL | BR ] -> [ moving BL | moving BR ] | |
right [ BL | moving BR ] -> [ moving BL | moving BR ] | |
down [ moving TL | BL ] -> [ moving TL | moving BL ] | |
down [ TL | moving BL ] -> [ moving TL | moving BL ] | |
down [ moving TR | BR ] -> [ moving TR | moving BR ] | |
down [ TR | moving BR ] -> [ moving TR | moving BR ] | |
endloop | |
[ > Cake | Wall ] [ moving Player ] -> [ Cake | Wall ] [ Player ] | |
[ > Player | stationary Solid ] -> [ Player Flag | Solid ] | |
[ stationary Player ] [ moving Cake ] -> [ Player Flag ] [ Cake ] | |
[ Player Flag ] -> [ Player ] sfx2 | |
(detect newly stuck cake) | |
[ moving Cake no Flag ] -> [ moving Cake moving Flag ] | |
late right [ TL no Flag | TR Flag ] -> sfx1 | |
late right [ TL Flag | TR no Flag ] -> sfx1 | |
late right [ BL no Flag | BR Flag ] -> sfx1 | |
late right [ BL Flag | BR no Flag ] -> sfx1 | |
late down [ TL no Flag | BL Flag ] -> sfx1 | |
late down [ TL Flag | BL no Flag ] -> sfx1 | |
late down [ TR no Flag | BR Flag ] -> sfx1 | |
late down [ TR Flag | BR no Flag ] -> sfx1 | |
late [ Flag ] -> [] | |
(Detect completion) | |
late right [ TL | TR ] -> [ TL Flag | TR Flag ] | |
late right [ BL | BR ] -> [ BL Flag | BR Flag ] | |
late down [ TL Flag | no BL ] -> [ TL | ] | |
late down [ TR Flag | no BR ] -> [ TR | ] | |
late [ TL Flag ] [ TR Flag ] [ BL Flag ] [ BR Flag ] [ Player no Flag2 ] -> [ TL Flag ] [ TR Flag ] [ BL Flag ] [ BR Flag ] [ Player Flag ] | |
late [ Player Flag ] -> again | |
late random right [ Player Flag ] [ UnlitCandle | LitCandle ] -> [ Player Flag2 ] [ UnlitCandle | UnlitCandle ] | |
late right [ Player Flag ] [ LitCandle | LitCandle | LitCandle | LitCandle | LitCandle | LitCandle ] -> [ Player Flag ] [ UnlitCandle | LitCandle | LitCandle | LitCandle | LitCandle | LitCandle ] | |
late [ Player Flag ] -> [ Player ] | |
(Draw perspective) | |
late down [ TL | ] -> [ TL | BelowTL ] | |
late down [ TR | ] -> [ TR | BelowTR ] | |
late down [ BL | ] -> [ BL | BelowBL ] | |
late down [ BR | ] -> [ BR | BelowBR ] | |
late down [ Wall | no BelowWall ] -> [ Wall | BelowWall ] | |
late down [ Player | ] -> [ Player | BelowPlayer ] | |
(Draw wall edges) | |
left [ Wall no WallCoverLR | no Wall ] -> [ Wall WallL | ] | |
right [ Wall no WallCoverLR | no Wall ] -> [ Wall WallR | ] | |
right [ Wall WallL | no Wall ] -> [ Wall WallLR | ] | |
up [ Wall no WallCoverUD | no Wall ] -> [ Wall WallU | ] | |
down [ Wall no WallCoverUD | no Wall ] -> [ Wall WallD | ] | |
down [ Wall WallU | no Wall ] -> [ Wall WallUD | ] | |
right [ WallD | Wall no WallCover | WallD ] -> [ WallD | Wall WallDLR | WallD ] | |
right [ WallD | Wall no WallCover ] -> [ WallD | Wall WallDL ] | |
left [ WallD | Wall no WallCover ] -> [ WallD | Wall WallDR ] | |
right [ WallU | Wall no WallCover ] -> [ WallU | Wall WallUL ] | |
left [ WallU | Wall no WallCover ] -> [ WallU | Wall WallUR ] | |
============== | |
WINCONDITIONS | |
============== | |
======= | |
LEVELS | |
======= | |
message Happy birthday, Hennell! I made you a massive cake but you need to reassemble it. | |
(####### | |
#.....# | |
#.qw..# | |
#..s..# | |
#.a...# | |
#.p...# | |
111111#) | |
####### | |
#.....# | |
#.a.s.# | |
#p.#..# | |
#.q.w.# | |
#.....# | |
111111# | |
######### | |
#.w.#.q.# | |
#.......# | |
#.a.p.s.# | |
#.......# | |
011111### | |
######### | |
###...### | |
##q.#.s## | |
#.......# | |
#..apw..# | |
###...### | |
001111### | |
######### | |
###.p.### | |
#...#...# | |
#.#q.w#.# | |
#...#...# | |
###a.s### | |
###.#.### | |
##.....## | |
##.....## | |
000111### | |
####### | |
##...## | |
##.#w## | |
##.q.## | |
##.#.## | |
#.s.a.# | |
#..p..# | |
#.....# | |
000011# | |
####### | |
#.....# | |
#..q..# | |
###.w.# | |
###a#s# | |
###.p.# | |
000001# | |
message Thanks for playing :) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment