Skip to content

Instantly share code, notes, and snippets.

@Draknek
Forked from anonymous/readme.txt
Last active August 29, 2015 14:19
Show Gist options
  • Save Draknek/ddd34751c0a09df5b6f9 to your computer and use it in GitHub Desktop.
Save Draknek/ddd34751c0a09df5b6f9 to your computer and use it in GitHub Desktop.
Play this game by pasting the script in http://www.puzzlescript.net/editor.html
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