-
-
Save Draknek/ddd34751c0a09df5b6f9 to your computer and use it in GitHub Desktop.
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 A Good Tunnel Is Hard To Dig | |
author Alan Hazelden | |
homepage www.draknek.org | |
run_rules_on_level_start | |
again_interval 0.1 | |
realtime_interval 0.05 | |
(verbose_logging) | |
noaction | |
======== | |
OBJECTS | |
======== | |
NormalDirt | |
#8a5c23 #805520 #966426 | |
00001 | |
01020 | |
00000 | |
20100 | |
00000 | |
StaticStone | |
#8c8c8c #bbbbbb darkgrey | |
00001 | |
01020 | |
00000 | |
20100 | |
00000 | |
LooseDirt1 | |
#7c5119 #805520 #966426 #915f1e | |
00201 | |
13.02 | |
00230 | |
0.003 | |
03020 | |
LooseDirt2 | |
#7c5119 #805520 #966426 #915f1e | |
00201 | |
13002 | |
0.230 | |
010.3 | |
03020 | |
LooseDirt3 | |
#7c5119 #805520 #966426 #915f1e | |
00201 | |
1.002 | |
03230 | |
01.13 | |
03020 | |
NormalStone | |
#9f9f9f lightgrey darkgrey | |
00001 | |
01020 | |
00000 | |
20100 | |
00000 | |
Gem | |
#be2633 #eb8931 #732930 | |
.000. | |
01100 | |
01000 | |
00002 | |
.022. | |
Background | |
DarkBrown | |
PlayerL | |
#3c8ee7 #e6e4d5 | |
..1.. | |
.00.. | |
..0.. | |
.00.. | |
.0.0. | |
PlayerR | |
#3c8ee7 #e6e4d5 | |
..1.. | |
..00. | |
..0.. | |
..00. | |
.0.0. | |
PlayerCornerL1 | |
#3c8ee7 #e6e4d5 | |
..... | |
..... | |
..... | |
..100 | |
...0. | |
PlayerCornerL2 | |
#3c8ee7 #e6e4d5 | |
..... | |
..... | |
..... | |
0.... | |
0.... | |
PlayerCornerL3 | |
#3c8ee7 #e6e4d5 | |
0.... | |
..... | |
..... | |
..... | |
..... | |
PlayerCornerR1 | |
#3c8ee7 #e6e4d5 | |
..... | |
..... | |
..... | |
001.. | |
.0... | |
PlayerCornerR2 | |
#3c8ee7 #e6e4d5 | |
..... | |
..... | |
..... | |
....0 | |
....0 | |
PlayerCornerR3 | |
#3c8ee7 #e6e4d5 | |
....0 | |
..... | |
..... | |
..... | |
..... | |
DeadPlayer | |
blue | |
FuturePlayer | |
transparent | |
OnGround | |
transparent | |
EntranceMsg | |
transparent | |
Sky | |
DarkBrown Green | |
11111 | |
00000 | |
00000 | |
00000 | |
00000 | |
PlayerClimbingL | |
#3c8ee7 #e6e4d5 | |
.1... | |
00... | |
.0... | |
00... | |
0.... | |
PlayerClimbingR | |
#3c8ee7 #e6e4d5 | |
...1. | |
...00 | |
...0. | |
...0. | |
....0 | |
(PlayerClimbing | |
#3c8ee7 #e6e4d5 | |
..1.. | |
.000. | |
..0.. | |
..0.. | |
.0.0. | |
Ladder | |
#d97d3c #f4c56a | |
.0.0. | |
.010. | |
.0.0. | |
.010. | |
.0.0.) | |
(c | |
#9f9f9f lightgrey darkgrey | |
.0001 | |
01020 | |
00000 | |
00100 | |
.0000 | |
b | |
#9f9f9f lightgrey darkgrey | |
0000. | |
01020 | |
00000 | |
20100 | |
0000. | |
n | |
#9f9f9f lightgrey darkgrey | |
.000. | |
01020 | |
00000 | |
20100 | |
00000 | |
u | |
#9f9f9f lightgrey darkgrey | |
00001 | |
01020 | |
00000 | |
20100 | |
.000. | |
o | |
#9f9f9f lightgrey darkgrey | |
.000. | |
01020 | |
00000 | |
20100 | |
.000. | |
StoneDR | |
#9f9f9f lightgrey darkgrey | |
.0001 | |
01020 | |
00000 | |
20100 | |
00000 | |
StoneDL | |
#9f9f9f lightgrey darkgrey | |
0000. | |
01020 | |
00000 | |
20100 | |
00000 | |
StoneUR | |
#9f9f9f lightgrey darkgrey | |
00001 | |
01020 | |
00000 | |
20100 | |
.0000 | |
StoneUL | |
#9f9f9f lightgrey darkgrey | |
00001 | |
01020 | |
00000 | |
20100 | |
0000.) | |
======= | |
LEGEND | |
======= | |
(╔ = StoneDR | |
╗ = StoneDL | |
╚ = StoneUR | |
╝ = StoneUL) | |
c = NormalStone | |
b = NormalStone | |
n = NormalStone | |
u = NormalStone | |
o = NormalStone | |
LooseDirt = LooseDirt1 or LooseDirt2 or LooseDirt3 | |
Stone = NormalStone (or c or b or n or u or o or StoneDR or StoneDL or StoneUR or StoneUL) | |
. = Background | |
# = NormalDirt | |
p = PlayerR | |
! = StaticStone | |
? = LooseDirt1 | |
S = NormalStone | |
- = Sky | |
* = Gem | |
T = EntranceMsg and StaticStone | |
Player = PlayerL or PlayerR or DeadPlayer or PlayerCornerL1 or PlayerCornerR1 or PlayerClimbingL or PlayerClimbingR | |
Dirt = NormalDirt or LooseDirt | |
CanFall = NormalDirt or LooseDirt or Stone | |
Solid = Dirt or Stone or StaticStone or Gem | |
PlayerCornerExtra = PlayerCornerL2 or PlayerCornerL3 or PlayerCornerR2 or PlayerCornerR3 | |
PlayerClimbing = PlayerClimbingL or PlayerClimbingR | |
======= | |
SOUNDS | |
======= | |
(EndLevel 55891508 | |
Player Move 82426907 | |
Lift Move 47466509 | |
Mirror Move 62036907 | |
Boulder Move 62036907 | |
Target Destroy 38934902) | |
sfx0 92968107 (player move) | |
sfx1 1310707 (player jump) | |
sfx2 82185502 (dirt falling) | |
sfx3 67205504 (digging) | |
Gem Destroy 54378900 | |
EndLevel 37075508 | |
DeadPlayer Create 66958701 | |
(dig 62686902 67205504) | |
(16126909) | |
================ | |
COLLISIONLAYERS | |
================ | |
Background | |
Sky, EntranceMsg | |
Player, FuturePlayer, PlayerCornerExtra | |
Gem | |
Dirt, Stone, StaticStone | |
OnGround | |
====== | |
RULES | |
====== | |
(messages) | |
[ EntranceMsg ] [ Gem ] -> [ action EntranceMsg ] [ Gem ] | |
[ stationary EntranceMsg ] -> message Take the gems back to the entrance | |
[ stationary EntranceMsg ] -> [] | |
(dirt) | |
[ OnGround ] -> [] | |
[ stationary Player ] [ StaticStone no OnGround ] -> [ Player ] [ StaticStone OnGround ] | |
[ stationary Player ] [ stationary CanFall ] -> [ Player ] [ action CanFall ] | |
startloop | |
down [ action CanFall | OnGround ] -> [ CanFall OnGround | OnGround ] | |
[ OnGround NormalDirt | action NormalDirt no OnGround ] -> [ OnGround NormalDirt | OnGround NormalDirt ] | |
[ OnGround Stone | action Stone no OnGround ] -> [ OnGround Stone | OnGround Stone ] | |
endloop | |
[ action CanFall ] -> [ down CanFall ] | |
[ Gem moving CanFall ] -> [ moving Gem ] | |
down [ Gem | down CanFall ] -> [ down Gem | down CanFall ] | |
down [ Gem | no Solid ] -> [ down Gem | ] | |
(player jumping/falling) | |
[ PlayerClimbingL ] -> [ up PlayerL ] | |
[ PlayerClimbingR ] -> [ up PlayerR ] | |
down [ stationary Player | no Solid ] -> [ | action Player ] | |
[ action Player ] -> [ Player ] | |
[ PlayerCornerL1 ] -> [ PlayerL ] | |
[ PlayerCornerR1 ] -> [ PlayerR ] | |
[ PlayerCornerExtra ] -> [] | |
(player digging) | |
[ moving DeadPlayer ] -> cancel | |
late [ Player Gem ] -> [ Player ] | |
late [ Player CanFall ] -> [ CanFall DeadPlayer ] | |
[ left PlayerR ] -> [ PlayerL ] | |
[ right PlayerL ] -> [ PlayerR ] | |
up [ > Player | Dirt ] -> [ Player | action FuturePlayer ] sfx3 | |
down [ > Player | Dirt ] -> [ action FuturePlayer | Player ] sfx3 | |
[ > Player | Dirt ] -> [ Player | FuturePlayer ] sfx3 | |
(Player pushing stone) | |
horizontal [ > Player | Stone ] -> cancel | |
vertical [ > Player | Stone ] -> cancel | |
[ > Player | StaticStone ] -> cancel | |
[ FuturePlayer Gem ] -> [ Gem ] | |
(Predict falling - don't move if we caused things to fall) | |
[ FuturePlayer ] [ StaticStone no OnGround ] -> [ FuturePlayer ] [ StaticStone OnGround ] | |
[ FuturePlayer ] [ stationary CanFall ] -> [ FuturePlayer ] [ action CanFall ] | |
startloop | |
down [ action CanFall | OnGround ] -> [ CanFall OnGround | OnGround ] | |
[ OnGround NormalDirt | action NormalDirt no OnGround ] -> [ OnGround NormalDirt | OnGround NormalDirt ] | |
[ OnGround Stone | action Stone no OnGround ] -> [ OnGround Stone | OnGround Stone ] | |
endloop | |
[ action CanFall ] [ FuturePlayer ] -> [ action CanFall ] [] again | |
down [ Gem | no Solid ] [ FuturePlayer ] -> [ Gem | ] [] again | |
[ action NormalDirt ] -> [ random LooseDirt ] | |
[ stationary FuturePlayer ] [ Player ] -> [ Player ] [] | |
[ FuturePlayer ] -> [] | |
(Climbing) | |
up [ > Player | no Solid ] -> [ | action Player ] sfx1 | |
left [ action PlayerL | ] -> [ action PlayerL | FuturePlayer ] | |
right [ action PlayerR | ] -> [ action PlayerR | FuturePlayer ] | |
up [ FuturePlayer Solid | no Solid ] -> [ action FuturePlayer Solid | ] | |
up [ action FuturePlayer ] [ action PlayerL | no Solid ] -> [] [ PlayerClimbingL | ] | |
up [ action FuturePlayer ] [ action PlayerR | no Solid ] -> [] [ PlayerClimbingR | ] | |
[ FuturePlayer Solid ] [ action Player ] -> [ Solid ] [ Player ] | |
down [ FuturePlayer | no Solid ] [ action Player ] -> [ | ] [ Player ] | |
[ FuturePlayer ] -> [] | |
left [ action PlayerL | no Solid ] -> [ PlayerCornerL2 | PlayerCornerL1 ] again | |
right [ action PlayerR | no Solid ] -> [ PlayerCornerR2 | PlayerCornerR1 ] again | |
down [ PlayerCornerL2 | ] -> [ PlayerCornerL2 | PlayerCornerL3 ] | |
down [ PlayerCornerR2 | ] -> [ PlayerCornerR2 | PlayerCornerR3 ] | |
late down [ Player | no Solid ] -> again | |
(sounds) | |
[ horizontal Player ] -> sfx0 | |
[ down CanFall ] -> sfx2 | |
[ down Gem ] -> sfx2 | |
============== | |
WINCONDITIONS | |
============== | |
All player on Sky | |
no gem | |
======= | |
LEVELS | |
======= | |
!!!!!!!!!!-!! | |
!!###!!!##p#! | |
!!###!!#####! | |
!!!###!#####! | |
!!##########! | |
!###!#####*#! | |
!#*#!!####!!! | |
!!#!!!!!!!!!! | |
!!!!!!!!!!!!T | |
!!-!!!!!!!!!!!! | |
!!p#!!!!!!!!!!! | |
!####!!!##!!!!! | |
!####!!#####!!! | |
!!###########!! | |
!!!########!##! | |
!!###!!!##!!#*! | |
!*##!!!!!#!!!!! | |
!!!!!!!!!!!!!!! | |
!!!!!!!!!!!-!! | |
!!!##!!##!#p!! | |
!!######n###!! | |
!#?#####u####! | |
!###cb####?##! | |
!!#########?#! | |
!!!!#!!######! | |
!!####!!##*##! | |
!!#*###!!###!! | |
!!!!!!!!!!!!!! | |
!!!!!!!!!!!!-!!! | |
!!?????!!###p#!! | |
!???n???!###!!!! | |
!!?ssss??####!!! | |
!!?s#*ss######!! | |
!#?u###s######!! | |
!######u##!####! | |
!#########!!##!! | |
!!!?#####!!!!!!! | |
!!!!!!###!!!!!!! | |
!!!!!!!!!!!!!!!! | |
!!-!!!!!!!!!!!!!! | |
!#p#!!!!!!##!!!!! | |
!#####!!#######!! | |
!####n##?##...##! | |
!###ss#####.*..#! | |
!!##ssssb#..####! | |
!!####ss##.###!!! | |
!!??##?u#####?#!! | |
!###########?##!! | |
!!!!!!!!!!!!!!!!! | |
message Thanks for playing :) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment