puzzlescript
Version:
Play PuzzleScript games in your terminal!
551 lines (434 loc) • 8.51 kB
Plain Text
title A Sneeze A Day Keeps The Crates Away
author Alan Hazelden
homepage www.draknek.org
(verbose_logging)
(again_interval 1)
norepeat_action
again_interval 0.2
realtime_interval 0.0666
run_rules_on_level_start
========
OBJECTS
========
Background
dddddd #dddddd
00000
00000
01110
01110
01110
Target
202020 Yellow
.....
00000
01110
01110
01110
BelowTarget
202020
00000
.....
.....
.....
.....
Wall
c4c692
BelowWall
acad80
00000
.....
.....
.....
.....
AboveWall
93815f
.....
.....
.....
.....
00000
WallD
93815f #acad80
.....
.....
.....
00000
11111
WallL
93815f
0....
0....
0....
0....
0....
WallR
93815f
....0
....0
....0
....0
....0
WallLR
93815f
0...0
0...0
0...0
0...0
0...0
AboveWallL
93815f
.....
.....
.....
0....
0....
AboveWallR
93815f
.....
.....
.....
....0
....0
PlayerU
a46422 #495e2b #493c2b #000000
..0..
.111.
01110
02220
.2.2.
PlayerD
a46422 #495e2b #493c2b #000000
..0..
.111.
01110
02220
.2.2.
PlayerL
a46422 #495e2b #493c2b #000000
..0..
.111.
.110.
.220.
.2.2.
PlayerR
a46422 #495e2b #493c2b #000000
..0..
.111.
.011.
.022.
.2.2.
PlayerSneezing
a46422 #495e2b #493c2b #000000
..0..
.010.
.111.
.222.
.2.2.
PlayerSweepingU
a46422 #495e2b #493c2b #000000
..0..
3111.
.1110
.2220
.2.2.
PlayerSweepingD
a46422 #495e2b #493c2b #000000
..0..
.111.
0110.
0220.
.2333
PlayerSweepingL
a46422 #495e2b #493c2b #000000
...0.
..111
.0111
0.222
332.2
PlayerSweepingR
a46422 #495e2b #493c2b #000000
.0...
111..
1110.
222.0
2.233
Crate
eb9141 #eb8931 #732930 #69262c
.001.
.011.
.111.
.223.
.233.
Dust
Grey
.....
..0..
.0...
....0
..0..
DustFromUL
Grey
.0...
0....
.....
.....
.....
DustFromDL
Grey
.....
.....
.....
0....
.0...
DustFromUR
Grey
...0.
....0
.....
.....
.....
DustFromDR
Grey
.....
.....
.....
....0
...0.
DustOnTarget
a19861 #000000
.....
..1..
.0...
...01
..0..
WindU
cccccc
.....
.000.
0...0
.....
.....
WindD
cccccc
.....
.....
0...0
.000.
.....
WindL
cccccc
.....
..0..
.0...
.0...
..0..
WindR
cccccc
.....
..0..
...0.
...0.
..0..
Sneezing
transparent
Msg
transparent
Msg2
transparent
ResetPrompt
transparent
=======
LEGEND
=======
. = Background
= Wall
P = PlayerD
* = Crate
@ = Crate and Target
O = Target
! = Dust
1 = Dust and Msg
2 = Dust and Msg2
Wind = WindU or WindD or WindL or WindR
Solid = Wall or Crate
PlayerNormal = PlayerU or PlayerD or PlayerL or PlayerR
PlayerSweeping = PlayerSweepingL or PlayerSweepingR or PlayerSweepingU or PlayerSweepingD
Player = PlayerNormal or PlayerSweeping or PlayerSneezing
AboveDecoration = AboveWall or AboveWallL or AboveWallR or WallL or WallR or WallLR
BelowDecoration = BelowWall or BelowTarget
DustAppear = DustFromDL or DustFromDR or DustFromUL or DustFromUR
=======
SOUNDS
=======
(Crate MOVE 36772507)
Undo 39917707
Restart 70281108
Player Move 90515707
PlayerSneezing Create 52887507
Sneezing Create 34489702 (637902)
DustAppear Create 99521304 (55470102)
EndLevel 45758908
CloseMessage 88964107
sfx0 821707 (toggle)
sfx1 62700107 (sweeping)
sfx2 96281704 (can't move)
================
COLLISIONLAYERS
================
Background
BelowDecoration
Wind, Msg, Msg2
ResetPrompt
Target
Dust, Sneezing, DustAppear
DustOnTarget
Player, Wall, Crate
AboveDecoration
WallD
======
RULES
======
(3D)
([ AboveDecoration ] -> []
[ BelowDecoration ] -> [])
down [ Wall | no Wall ] -> [ Wall WallD | BelowWall ]
up [ Wall | no Wall ] -> [ Wall | AboveWall ]
left [ Wall | no Wall ] -> [ Wall WallL | ]
right [ Wall WallL | no Wall ] -> [ Wall WallLR | ]
right [ Wall no AboveDecoration | no Wall ] -> [ Wall WallR | ]
up [ WallL | Wall no AboveDecoration ] -> [ WallL | Wall AboveWallL ]
up [ WallR | Wall no AboveDecoration ] -> [ WallR | Wall AboveWallR ]
down [ Target | no Wall ] -> [ Target | BelowTarget ]
(Wind)
[ stationary Player ] [ WindU ] -> [ stationary Player ] [ up WindU ]
[ stationary Player ] [ WindD ] -> [ stationary Player ] [ down WindD ]
[ stationary Player ] [ WindL ] -> [ stationary Player ] [ left WindL ]
[ stationary Player ] [ WindR ] -> [ stationary Player ] [ right WindR ]
[ > Wind | no Solid | Crate | Solid ] -> [ | | Crate | Solid ]
[ > Wind | Crate ] -> [ > Wind | > Crate ]
[ > Wind | Wall ] -> [ | Wall ]
[ > Crate | Solid ] -> [ action Crate | Solid ]
[ DustAppear ] -> [ Dust ]
[ action Crate | no Wall no Wind ] -> [ action Crate | action Dust no Wind ]
[ action Crate | no Wall moving Wind ] -> [ action Crate moving Wind | ]
late [ Crate Dust ] -> [ ResetPrompt Crate ]
(Animated dust appearing)
down [ action Dust | action Crate left Wind ] -> [ DustFromDL | action Crate left Wind ]
down [ action Dust | action Crate right Wind ] -> [ DustFromDR | action Crate right Wind ]
up [ action Dust | action Crate left Wind ] -> [ DustFromUL | action Crate left Wind ]
up [ action Dust | action Crate right Wind ] -> [ DustFromUR | action Crate right Wind ]
left [ action Dust | action Crate up Wind ] -> [ DustFromUL | action Crate up Wind ]
left [ action Dust | action Crate down Wind ] -> [ DustFromDL | action Crate down Wind ]
right [ action Dust | action Crate up Wind ] -> [ DustFromUR | action Crate up Wind ]
right [ action Dust | action Crate down Wind ] -> [ DustFromDR | action Crate down Wind ]
[ ResetPrompt ] [ moving Crate ] -> [ action ResetPrompt ] [ moving Crate ] (doesn't belong here but has to be here)
[ action Crate Wind ] -> [ Crate ]
(Change player)
[ action PlayerL ] -> [ PlayerSweepingL ] sfx0
[ action PlayerR ] -> [ PlayerSweepingR ] sfx0
[ action PlayerU ] -> [ PlayerSweepingU ] sfx0
[ action PlayerD ] -> [ PlayerSweepingD ] sfx0
[ action PlayerSweepingL ] -> [ PlayerL ] sfx0
[ action PlayerSweepingR ] -> [ PlayerR ] sfx0
[ action PlayerSweepingU ] -> [ PlayerU ] sfx0
[ action PlayerSweepingD ] -> [ PlayerD ] sfx0
[ left PlayerNormal ] -> [ left PlayerL ]
[ right PlayerNormal ] -> [ right PlayerR ]
[ up PlayerNormal ] -> [ up PlayerU ]
[ down PlayerNormal ] -> [ down PlayerD ]
[ left PlayerSweeping ] -> [ left PlayerSweepingL ]
[ right PlayerSweeping ] -> [ right PlayerSweepingR ]
[ up PlayerSweeping ] -> [ up PlayerSweepingU ]
[ down PlayerSweeping ] -> [ down PlayerSweepingD ]
(Sweeping)
[ > PlayerSweeping | Dust ] -> [ > PlayerSweeping | > Dust ] sfx1
[ > Dust | Solid ] -> [ action ResetPrompt | Solid ]
[ > Dust | Dust ] -> [ | Dust ]
(Reset prompt)
late [ Player Dust ] -> [ Player Dust ResetPrompt ]
late [ ResetPrompt ] [ Dust no Player ] -> [] [ Dust ]
late [ ResetPrompt ] [ DustAppear ] -> [] [ DustAppear ]
[ ResetPrompt ] [ Wind ] -> [ action ResetPrompt ] [ Wind ]
[ ResetPrompt ] [ Sneezing ] -> [ action ResetPrompt ] [ Sneezing ]
[ ResetPrompt ] [ PlayerSneezing ] -> [ action ResetPrompt ] [ PlayerSneezing ]
[ stationary ResetPrompt ] -> [] message R to reset
(Sneezing)
([ PlayerSneezing Msg ] -> message Ahhhh-choo!)
late [ PlayerSneezing ] -> [ Sneezing PlayerD ]
late [ Player Dust ] -> [ PlayerSneezing ] again
late [ Sneezing Player | | Crate | Solid ] -> [ Sneezing Player | Sneezing | Crate | Solid ]
late [ Sneezing Player | Crate | no Solid ] -> [ Sneezing Player | | Crate no Dust ]
late up [ Sneezing Player | no Solid ] -> [ Sneezing Player | WindU ]
late down [ Sneezing Player | no Solid ] -> [ Sneezing Player | WindD ]
late left [ Sneezing Player | no Solid ] -> [ Sneezing Player | WindL ]
late right [ Sneezing Player | no Solid ] -> [ Sneezing Player | WindR ]
late [ Sneezing ] -> [ no Wind ]
late [ Wind Dust ] -> [ Wind ]
(Update graphics)
late [ Dust Target no DustOnTarget ] -> [ Dust Target DustOnTarget ]
late [ no Dust Target DustOnTarget ] -> [ Target ]
(Can't move sfx)
[ > Player | Solid ] -> sfx2
[ PlayerSweeping ] [ Msg2 ] -> [ PlayerSweeping ] []
late [ Player | Msg2 ] -> [ Player | Msg2 ] again
[ Player | Msg2 ] -> [ Player | ] message Press space to toggle broom
==============
WINCONDITIONS
==============
All Target on Crate
No Wind
=======
LEVELS
=======
message "I wish I had some way of moving these heavy crates"
message "You know you only get one wish, right?"
#########
.......o#
....*...#
.p.#1...#
....*...#
.......o#
#########
########
o.....o#
..*!*..#
..!!!.p#
..*!*..#
o.....o#
########
#########
#o......#
....*...#
..2....p#
....*...#
#o......#
#########
######
o....#
.....#
.*!*p#
.....#
o....#
######
######
p...o#
...*.#
..!..#
.*...#
o....#
######
########
.o.p.o.#
#.*!*.##
#.....##
#..#..##
##...###
########
######
p...o#
.*.*!#
..o..#
.*.*!#
o!.!o#
######
message Thanks for playing :)