Skip to content

Instantly share code, notes, and snippets.

Created June 30, 2016 10:35
Show Gist options
  • Save anonymous/8fb902707458aca31a4579d25c7213c4 to your computer and use it in GitHub Desktop.
Save anonymous/8fb902707458aca31a4579d25c7213c4 to your computer and use it in GitHub Desktop.
title
Play this game by pasting the script in http://www.puzzlescript.net/editor.html
title Various rocks
(verbose_logging)
========
OBJECTS
========
Background
Orange
PlayerUp
LightBrown White LightGrey Brown
..2..
..0..
.111.
.111.
.1.1.
PlayerDown
LightBrown White LightGrey Brown
..0..
.111.
.011.
.121.
..2..
PlayerLeft
LightBrown White LightGrey Brown
.....
...0.
22111
..311
..1.1
PlayerRight
LightBrown White LightGrey Brown
.....
.0...
11122
113..
1.1..
PlayerDead
LightBrown White LightGrey Brown
.....
.....
.....
.131.
01122
EnemyUp
LightBrown Black LightGrey Brown
..2..
..0..
.111.
.111.
.1.1.
EnemyDown
LightBrown Black LightGrey Brown
..0..
.111.
.011.
.121.
..2..
EnemyLeft
LightBrown Black LightGrey Brown
.....
...0.
22111
..311
..1.1
EnemyRight
LightBrown Black LightGrey Brown
.....
.0...
11122
113..
1.1..
EnemyDead
LightBrown Black LightGrey Brown
.....
.....
.....
.131.
01122
Wall
DarkBrown
CornerUpLeft
DarkBrown
0000.
000..
00...
0....
.....
CornerUpRight
DarkBrown
.0000
..000
...00
....0
.....
CornerDownLeft
DarkBrown
.....
0....
00...
000..
0000.
CornerDownRight
DarkBrown
.....
....0
...00
..000
.0000
TrailVertical
DarkRed
..0..
..0..
..0..
..0..
..0..
TrailHorizontal
DarkRed
.....
.....
00000
.....
.....
BloodSplatUp
Red
...0.
.0..0
..0..
.0...
..0..
BloodSplatDown
Red
..0..
...0.
..0..
0...0
.0...
BloodSplatLeft
Red
.0...
0....
..0.0
...0.
.0...
BloodSplatRight
Red
...0.
.0...
0.0..
....0
...0.
=======
LEGEND
=======
CharacterUp = PlayerUp or EnemyUp
CharacterDown = PlayerDown or EnemyDown
CharacterLeft = PlayerLeft or EnemyLeft
CharacterRight = PlayerRight or EnemyRight
CharacterDead = PlayerDead or EnemyDead
Player = PlayerUp or PlayerDown or PlayerLeft or PlayerRight
Enemy = EnemyUp or EnemyDown or EnemyLeft or EnemyRight
Character = CharacterUp or CharacterDown or CharacterLeft or CharacterRight
Trail = TrailVertical or TrailHorizontal
BloodSplat = BloodSplatUp or BloodSplatDown or BloodSplatLeft or BloodSplatRight
Corner = CornerUpLeft or CornerUpRight or CornerDownLeft or CornerDownRight
CornerUp = CornerUpLeft or CornerUpRight
CornerDown = CornerDownLeft or CornerDownRight
CornerLeft = CornerUpLeft or CornerDownLeft
CornerRight = CornerUpRight or CornerDownRight
CornerNotUpLeft = CornerUpRight or CornerDownLeft or CornerDownRight
CornerNotUpRight = CornerUpLeft or CornerDownLeft or CornerDownRight
CornerNotDownLeft = CornerUpLeft or CornerUpRight or CornerDownRight
CornerNotDownRight = CornerUpLeft or CornerUpRight or CornerDownLeft
Moveable = Corner
CornerObstacle = Wall or Enemy or EnemyDead
. = Background
@ = PlayerRight
▒ = Wall
◸ = CornerUpLeft
◹ = CornerUpRight
◺ = CornerDownLeft
◿ = CornerDownRight
↑ = EnemyUp
↓ = EnemyDown
← = EnemyLeft
→ = EnemyRight
=======
SOUNDS
=======
SFX0 56708708 (50086104)
SFX1 27898908 (54953108)
================
COLLISIONLAYERS
================
Background
BloodSplat
TrailVertical
TrailHorizontal
Player PlayerDead Enemy EnemyDead Wall
CornerUpLeft, CornerUpRight
CornerDownLeft, CornerDownRight
======
RULES
======
[ Trail ] -> []
(( Test for enemy line-of-sight )
[ stationary Player Background ] -> [ stationary Player action Background ]
[ action Background | stationary Background no Wall no Corner no Enemy ] -> [ action Background | > Background ]
[ > Background | stationary Background no Wall no Corner no Enemy ] -> [ > Background | > Background ]
up [ EnemyUp | < Background ] -> [ action EnemyUp | < Background ]
down [ EnemyDown | < Background ] -> [ action EnemyDown | < Background ]
left [ EnemyLeft | < Background ] -> [ action EnemyLeft | < Background ]
right [ EnemyRight | < Background ] -> [ action EnemyRight | < Background ]
up [ EnemyUp | action Background ] -> [ action EnemyUp | action Background ]
down [ EnemyDown | action Background ] -> [ action EnemyDown | action Background ]
left [ EnemyLeft | action Background ] -> [ action EnemyLeft | action Background ]
right [ EnemyRight | action Background ] -> [ action EnemyRight | action Background ]
[ moving Background ] -> [ Background ])
( Mark all enemies )
[ stationary Player ] [ Background Enemy ] -> [ stationary Player ] [ action Background Enemy ]
startloop
random [ action Background Enemy ] -> [ action Background action Enemy ]
( Shoot )
up [ action CharacterUp | no CornerDown no Wall ] -> [ CharacterUp | up TrailVertical ]
down [ action CharacterDown | no CornerUp no Wall ] -> [ CharacterDown | down TrailVertical ]
left [ action CharacterLeft | no CornerRight no Wall ] -> [ CharacterLeft | left TrailHorizontal ]
right [ action CharacterRight | no CornerLeft no Wall ] -> [ CharacterRight | right TrailHorizontal ]
( Create blood splat )
up [ up TrailVertical Character | ] -> [ up TrailVertical Character | BloodSplatUp ]
+ down [ down TrailVertical Character | ] -> [ down TrailVertical Character | BloodSplatDown ]
+ left [ left TrailHorizontal Character | ] -> [ left TrailHorizontal Character | BloodSplatLeft ]
+ right [ right TrailHorizontal Character | ] -> [ right TrailHorizontal Character | BloodSplatRight ]
( Player dies when hit )
+ [ moving Trail Player ] -> [ stationary Trail action PlayerDead ] SFX1
( Enemy dies when hit )
+ [ moving Trail Enemy ] -> [ stationary Trail action EnemyDead ] SFX1
( Bullets bounce off corners )
+ [ up TrailVertical CornerUpLeft ] -> [ CornerUpLeft TrailVertical right TrailHorizontal ]
+ [ up TrailVertical CornerUpRight ] -> [ CornerUpRight TrailVertical left TrailHorizontal ]
+ [ down TrailVertical CornerDownLeft ] -> [ CornerDownLeft TrailVertical right TrailHorizontal ]
+ [ down TrailVertical CornerDownRight ] -> [ CornerDownRight TrailVertical left TrailHorizontal ]
+ [ left TrailHorizontal CornerUpLeft ] -> [ CornerUpLeft TrailHorizontal down TrailVertical ]
+ [ left TrailHorizontal CornerDownLeft ] -> [ CornerDownLeft TrailHorizontal up TrailVertical ]
+ [ right TrailHorizontal CornerUpRight ] -> [ CornerUpRight TrailHorizontal down TrailVertical ]
+ [ right TrailHorizontal CornerDownRight ] -> [ CornerDownRight TrailHorizontal up TrailVertical ]
( Bullets move straight )
+ up [ up TrailVertical | no CornerDown no Wall ] -> [ TrailVertical | up TrailVertical ]
+ down [ down TrailVertical | no CornerUp no Wall ] -> [ TrailVertical | down TrailVertical ]
+ left [ left TrailHorizontal | no CornerRight no Wall ] -> [ TrailHorizontal | left TrailHorizontal ]
+ right [ right TrailHorizontal | no CornerLeft no Wall ] -> [ TrailHorizontal | right TrailHorizontal ]
( Don't actually move trails )
[ orthogonal Trail ] -> [ stationary Trail ]
( Keep trail when an character has died )
[ action CharacterDead ] [ stationary Trail ] -> [ action CharacterDead ] [ action Trail ]
[ action CharacterDead ] -> [ CharacterDead ]
( Remove if enemy didn't shoot a character )
[ action Background Enemy ] [ stationary Trail ] -> [ action Background Enemy ] []
( Stop enemy refiring )
[ action Background Enemy ] -> [ stationary Background stationary Enemy ]
endloop
( Clear trail next update )
[ Trail ] -> again SFX0
( Player pushes corners )
[ > Player | Corner ] -> [ > Player | > Corner ]
( Stop things moving into the edge )
[ Background > Moveable ] -> [ > Background > Moveable ]
[ > Background | ] -> [ Background | ]
[ > Background > Moveable ] -> [ Background Moveable ]
startloop
( Corners push not-opposite corners )
[ > CornerUpLeft | CornerNotDownRight ] -> [ > CornerUpLeft | > CornerNotDownRight ]
[ > CornerUpRight | CornerNotDownLeft ] -> [ > CornerUpRight | > CornerNotDownLeft ]
[ > CornerDownLeft | CornerNotUpRight ] -> [ > CornerDownLeft | > CornerNotUpRight ]
[ > CornerDownRight | CornerNotUpLeft ] -> [ > CornerDownRight | > CornerNotUpLeft ]
( Corners push opposite corners from wrong directions )
up [ > CornerUpLeft | CornerDownRight ] -> [ > CornerUpLeft | > CornerDownRight ]
left [ > CornerUpLeft | CornerDownRight ] -> [ > CornerUpLeft | > CornerDownRight ]
up [ > CornerUpRight | CornerDownLeft ] -> [ > CornerUpRight | > CornerDownLeft ]
right [ > CornerUpRight | CornerDownLeft ] -> [ > CornerUpRight | > CornerDownLeft ]
down [ > CornerDownLeft | CornerUpRight ] -> [ > CornerDownLeft | > CornerUpRight ]
left [ > CornerDownLeft | CornerUpRight ] -> [ > CornerDownLeft | > CornerUpRight ]
down [ > CornerDownRight | CornerUpLeft ] -> [ > CornerDownRight | > CornerUpLeft ]
right [ > CornerDownRight | CornerUpLeft ] -> [ > CornerDownRight | > CornerUpLeft ]
endloop
( Corners can't move through corner obstacles )
[ > Corner | stationary CornerObstacle ] -> [ action Corner | CornerObstacle ]
( Cancel movement )
[ action Moveable ] [ Moveable ] -> [ action Moveable ] [ action Moveable ]
[ action Moveable ] -> [ Moveable ]
( Rotate player to face movement )
[ up Player ] -> [ up PlayerUp ] again
[ down Player ] -> [ down PlayerDown ] again
[ left Player ] -> [ left PlayerLeft ] again
[ right Player ] -> [ right PlayerRight ] again
( Stop player )
[ > Player | stationary Moveable ] -> [ Player | Moveable ]
==============
WINCONDITIONS
==============
(No Trail
No Enemy
Some EnemyDead)
=======
LEVELS
=======
◸...◹
.....
..@▒.
.....
◺...◿
.......
..▒▒▒..
..◹▒◸..
..←▒@..
..◿▒◺..
..▒▒▒..
.......
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment