Skip to content

Instantly share code, notes, and snippets.

@Draknek
Forked from raggy/Spear & Crate
Created April 2, 2017 01:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Draknek/799248aa86087e0bb5374e76175dec19 to your computer and use it in GitHub Desktop.
Save Draknek/799248aa86087e0bb5374e76175dec19 to your computer and use it in GitHub Desktop.
Spear & Crate
title SPEAR & CRATE
author Benjamin Davis
homepage http://benjamindav.is
again_interval 0.1
(flickscreen 7x7)
require_player_movement
(verbose_logging)
========
OBJECTS
========
Background
DarkBlue
Hole
Black
Wall
DarkRed
PlayerUp
LightBrown Red Brown
.02..
110..
111..
111..
2.2..
SpearUp
LightGrey Red Brown
..0..
..1..
..2..
..2..
..2..
SpearUpToLeft
LightGrey Red Brown
..0..
.012.
01222
.....
.....
SpearUpToRight
LightGrey Red Brown
..0..
.210.
22210
.....
.....
PlayerDown
LightBrown Red Brown
...0.
..111
..201
..011
..2.2
SpearDown
LightGrey Red Brown
..2..
..2..
..2..
..1..
..0..
SpearDownToLeft
LightGrey Red Brown
.....
.....
01222
.012.
..0..
SpearDownToRight
LightGrey Red Brown
.....
.....
22210
.210.
..0..
PlayerLeft
LightBrown Red Brown
..0..
.111.
02221
.110.
.2.2.
SpearLeft
LightGrey Red Brown
.....
.....
01222
.1...
.....
SpearLeftToUp
LightGrey Red Brown
..0..
.01..
012..
.22..
..2..
SpearLeftToDown
LightGrey Red Brown
..2..
.22..
012..
.01..
..0..
PlayerRight
LightBrown Red Brown
..0..
.111.
12220
.011.
.2.2.
SpearRight
LightGrey Red Brown
.....
.....
22210
...1.
.....
SpearRightToUp
LightGrey Red Brown
..0..
..10.
..210
..22.
..2..
SpearRightToDown
LightGrey Red Brown
..2..
..22.
..210
..10.
..0..
CrateAny
DarkGrey LightGreen
00.00
01.10
.....
01.10
00.00
CrateH
DarkGrey Blue
00000
01110
.....
01110
00000
CrateV
DarkGrey Yellow
00.00
01.10
01.10
01.10
00.00
Falling
DarkGrey
.....
.....
..0..
.....
.....
Save
Transparent
=======
LEGEND
=======
Player = PlayerUp or PlayerDown or PlayerLeft or PlayerRight
Spear = SpearUp or SpearDown or SpearLeft or SpearRight
Crate = CrateAny or CrateH or CrateV
Falls = Player or Crate
SpearToUp = SpearLeftToUp or SpearRightToUp
SpearToDown = SpearLeftToDown or SpearRightToDown
SpearToLeft = SpearUpToLeft or SpearDownToLeft
SpearToRight = SpearUpToRight or SpearDownToRight
SpearTo = SpearToUp or SpearToDown or SpearToLeft or SpearToRight
_ = Hole
. = Background
▒ = Wall
x = Save
▲ = PlayerUp
▼ = PlayerDown
◄ = PlayerLeft
► = PlayerRight
↑ = SpearUp
↓ = SpearDown
← = SpearLeft
→ = SpearRight
╬ = CrateAny
═ = CrateH
║ = CrateV
=======
SOUNDS
=======
(Falling create 38545107
Crate move 16207707
SpearTo create 56504901
Player move 52207107)
================
COLLISIONLAYERS
================
Background
Hole, Save
Spear, SpearTo
Player, Wall, Crate, Falling
======
RULES
======
late [ Player Save ] -> [ Player ] checkpoint
( Move the spear straight forwards and backwards )
[ parallel Player | Spear ] -> [ parallel Player | parallel Spear ]
( Pull a crate if spear stuck in it )
[ ^ Player | stationary Spear Crate ] -> [ ^ Player | ^ Spear ^ Crate ]
[ v Player | stationary Spear Crate ] -> [ v Player | v Spear v Crate ]
( Rotate the spear if no crate )
[ ^ Player | stationary Spear ] -> [ ^ Player | < Spear ]
[ v Player | stationary Spear ] -> [ v Player | < Spear ]
( Push crates with the player )
[ > Player | Crate ] -> [ > Player | > Crate ]
(vertical [ > Player | > Spear | CrateH ] -> [ > Player | > Spear | > CrateH ]
horizontal [ > Player | > Spear | CrateV ] -> [ > Player | > Spear | > CrateV ])
(Swap with spear)
[ > Player | > Spear no Crate | Wall ] -> [ Spear | Player | Wall ]
vertical [ > Player | > Spear no Crate | CrateH ] -> [ Spear | Player | CrateH ]
horizontal [ > Player | > Spear no Crate | CrateV ] -> [ Spear | Player | CrateV ]
( Rotate the player )
late up [ Player | Spear ] -> [ PlayerUp | Spear ]
late down [ Player | Spear ] -> [ PlayerDown | Spear ]
late left [ Player | Spear ] -> [ PlayerLeft | Spear ]
late right [ Player | Spear ] -> [ PlayerRight | Spear ]
( Rotate the spear )
late [ SpearToUp ] -> [ SpearUp ]
late [ SpearToDown ] -> [ SpearDown ]
late [ SpearToLeft ] -> [ SpearLeft ]
late [ SpearToRight ] -> [ SpearRight ]
(rotate the spear when swapping with it)
late up [ Player | SpearDown ] -> [ Player | SpearUp ]
late down [ Player | SpearUp ] -> [ Player | SpearDown ]
late left [ Player | SpearRight ] -> [ Player | SpearLeft ]
late right [ Player | SpearLeft ] -> [ Player | SpearRight ]
( Transition the spear )
late up [ Player | SpearLeft ] -> [ Player | SpearLeftToUp ] again
late up [ Player | SpearRight ] -> [ Player | SpearRightToUp ] again
late down [ Player | SpearLeft ] -> [ Player | SpearLeftToDown ] again
late down [ Player | SpearRight ] -> [ Player | SpearRightToDown ] again
late left [ Player | SpearUp ] -> [ Player | SpearUpToLeft ] again
late left [ Player | SpearDown ] -> [ Player | SpearDownToLeft ] again
late right [ Player | SpearUp ] -> [ Player | SpearUpToRight ] again
late right [ Player | SpearDown ] -> [ Player | SpearDownToRight ] again
( Stop the spear moving through crates )
[ > Crate | Crate ] -> cancel
( Spear shouldn't overlap )
late [ Spear Wall ] -> cancel
late [ SpearUp CrateH ] -> cancel
late [ SpearDown CrateH ] -> cancel
late [ SpearLeft CrateV ] -> cancel
late [ SpearRight CrateV ] -> cancel
( Things fall in holes )
late [ Crate Hole no Spear ] -> again
late [ Player Hole ] -> again
( Remove spear when player falls in hole )
[ Player Hole | Spear ] -> [ Player Hole | ]
[ Player Hole | SpearTo ] -> [ Player Hole | ]
( Animate falling )
[ Falling Hole ] -> [ Hole ]
[ stationary Falls Hole ] -> [ Falling Hole ] again
==============
WINCONDITIONS
==============
=======
LEVELS
=======
_______
_▒▒▒▒▒_
▒▒...▒_
►→╬..▒_
▒▒.╬╬▒_
_▒▒.▒▒_
__▒.▒__
.......
.▒▒▒▒▒▒
▒▒.╬...
►→.╬.▒▒
▒▒.╬.▒.
.▒▒▒▒▒.
.......
.......
.▒▒▒▒▒▒
▒▒.═...
►→.╬.▒▒
▒▒.╬.▒.
.▒▒▒▒▒.
.......
__▒▼▒__
_▒▒↓▒▒_
_▒...▒_
_▒╬╬╬▒_
_▒...▒_
_▒▒.▒▒_
__▒.▒__
______
_▒▒▒▒▒
_▒..╬▒
___...
_▒...▒
▒▒▒▒.▒
►→.╬.▒
▒▒.▒.▒
__.═.▒
_▒.╬.▒
_▒.╬.▒
_▒▒▒▒▒
(
▒▒▒▼▒__
▒..↓▒__
▒═══▒▒▒
▒...║..
▒.▒.║.▒
▒...║.▒
▒▒▒▒▒▒▒)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment