Skip to content

Instantly share code, notes, and snippets.

@dario-zubovic
Created February 22, 2020 23:41
Show Gist options
  • Save dario-zubovic/b7566d59583508dcc266f60ad7682c6c to your computer and use it in GitHub Desktop.
Save dario-zubovic/b7566d59583508dcc266f60ad7682c6c to your computer and use it in GitHub Desktop.
One Snake Level
title One Snake Level
author Dario Zubovic
homepage dario-zubovic.itch.io
background_color #3e3d4c
case_sensitive
( verbose_logging )
sprite_size 8
(run_rules_on_level_start)
again_interval 0.15
========
OBJECTS
========
Background
#21263f
WallT
#847f7f #5a5a63 #3e3d4c
00100000
22222222
........
..22....
..22....
..22....
........
........
WallTR
#847f7f #5a5a63 #3e3d4c
00000100
22222220
......20
...22.20
...22.20
...22.21
...22.20
......20
WallR
#847f7f #5a5a63 #3e3d4c
......20
......20
...22.20
...22.20
...22.20
...22.21
......20
......20
WallTL
#847f7f #5a5a63 #3e3d4c
00100000
02222222
02......
02.22...
02.22...
12.22...
02.22...
02......
WallL
#847f7f #5a5a63 #3e3d4c
02......
02......
02.22...
02.22...
02.22...
12.22...
02......
02......
WallB
#847f7f #5a5a63 #3e3d4c
........
........
........
222..222
222..222
........
22222222
00000100
WallBR
#847f7f #5a5a63 #3e3d4c
......20
...22.20
...22.20
22.22.20
22.22.21
......20
22222220
00000100
WallBL
#847f7f #5a5a63 #3e3d4c
02......
02.22...
02.22...
02.22.22
12.22.22
02......
02222222
00000100
CornerTL
#847f7f #5a5a63 #3e3d4c
02......
22......
........
...222..
...222..
...222..
........
........
CornerBL
#847f7f #5a5a63 #3e3d4c
..2.222.
..2.222.
..2.222.
........
........
........
22......
02......
Crate1
#6c4f40 #a5845a #3e3d4c
00000000
01122110
012..210
02....20
02....20
012..210
01122110
00000000
Crate2
#a5845a #6c4f40 #3e3d4c
00000000
01122110
012..210
02....20
02....20
012..210
01122110
00000000
CrateG
#6b7b39 #3a5339 #3e3d4c
00000000
01122110
012..210
02....20
02....20
012..210
01122110
00000000
StickyU
#6c4f40 #3e3d4c
101..101
.1....1.
........
........
........
........
........
........
StickyD
#6c4f40 #3e3d4c
........
........
........
........
........
........
.1....1.
101..101
StickyL
#6c4f40 #3e3d4c
1.......
01......
1.......
........
........
1.......
01......
1.......
StickyR
#6c4f40 #3e3d4c
.......1
......10
.......1
........
........
.......1
......10
.......1
Target
#6b7b39 #3a5339
........
........
..11....
..100...
...001..
....11..
........
........
TargetR
#c0461f #673347
........
........
..11....
..100...
...001..
....11..
........
........
BgBricks
#3e3d4c
00.00000
00.00000
00.00000
........
00000.00
00000.00
00000.00
........
BgBricks2
#3e3d4c
00.0....
00.0....
00.0....
........
......00
......00
......00
........
BgSquares
#3e3d4c
..0.....
..0..00.
.....00.
.000.00.
.000....
.000....
........
..0.....
BgSquares2
#3e3d4c
0000....
0000....
0000.000
0000.000
.....000
..00....
..00....
........
Handle
#c0461f #673347
001..100
0......0
1......1
........
........
1......1
0......0
001..100
PlayerD
#3e3d4c #c0461f #efe7ce #4063b2
...00...
...11...
...11...
.222222.
...22...
..3333..
..3..3..
..3..3..
PlayerU
#3e3d4c #c0461f #efe7ce #4063b2
..3..3..
..3..3..
..3333..
...22...
.222222.
...11...
...11...
...00...
Block
#c0461f66
.0.0.0.0
0.0.0.0.
.0.0.0.0
0.0.0.0.
.0.0.0.0
0.0.0.0.
.0.0.0.0
0.0.0.0.
Player
transparent
Win
transparent
Win1
transparent
Win2
transparent
Win3
transparent
Win4
transparent
Win5
transparent
Temp
transparent
Temp2
transparent
Temp3
transparent
GravityU
transparent
GravityD
transparent
Jump
transparent
NoWin
transparent
One
transparent
Two
transparent
Three
transparent
Four
transparent
Five
transparent
Six
transparent
Seven
transparent
Eight
transparent
Nine
transparent
=======
LEGEND
=======
. = Background
t = WallT
* = WallTR
r = WallR
+ = WallTL
l = WallL
b = WallB
- = WallBL
/ = WallBR
y = CornerTL
Y = CornerBL
z = BgBricks
Z = BgBricks2
x = BgSquares
X = BgSquares2
c = Crate1
C = Crate2
# = Target
p = Player and PlayerD
Bg = BgBricks or BgBricks2 or BgSquares or BgSquares2
Bgs = Background or Bg
Crate = Crate1 or Crate2
AnyCrate = Crate or CrateG
Wall = WallT or WallTR or WallR or WallTL or WallL or WallBR or WallBL or WallB or CornerTL or CornerBL
Collider = Wall
ColliderOrBg = Collider or Bg
1 = One
2 = Two
3 = Three
4 = Four
5 = Five
6 = Six
7 = Seven
8 = Eight
9 = Nine
Level = One or Two or Three or Four or Five or Six or Seven or Eight or Nine
WinFlags = Win or Win1 or Win2 or Win3 or Win4 or Win5
BasicPushing = One or Three
WinIsCrateOnTarget = One or Two or Four or Eight
3WinsIsWin = One or Two or Three or Four or Six or Seven or Eight or Nine
Falling = Player or Crate
Gravity = GravityU or GravityD
Sticky = StickyU or StickyL or StickyR or StickyD
Any = Player or Collider or Crate or Bg
=======
SOUNDS
=======
endlevel 29047103
AnyCrate move 28036307
sfx9 28036307
Target move 28014317
sfx0 88931903
sfx1 65132508
sfx3 11217907
sfx4 95708903
================
COLLISIONLAYERS
================
Background
Level
Bg
WinFlags, Temp, Temp2
Temp3
NoWin
Jump
Gravity
Wall
Target, TargetR
AnyCrate
StickyU
StickyL
StickyR
StickyD
Handle
Player
PlayerU, PlayerD
Block
======
RULES
======
[NoWin] -> []
(universal movement)
[BasicPushing] [> Player | AnyCrate] -> [BasicPushing] [> Player | > AnyCrate]
[BasicPushing] [> Player | Collider] -> [BasicPushing] [Player | Collider]
[BasicPushing] [> AnyCrate | Collider] -> [BasicPushing] [AnyCrate | Collider]
(these two lines prevent AnyCrates from being marked as moving when going towards border)
[BasicPushing] [Background > AnyCrate | ] -> [BasicPushing] [> Background > AnyCrate | ]
[BasicPushing] [stationary Background > AnyCrate ] -> [BasicPushing] [Background stationary AnyCrate]
(level 1)
[One] [> Crate | Crate ] -> [One] [Crate | Crate]
[One] [> Player | stationary Crate] -> [One] [Player | Crate]
(level 2)
[Two] [> Player | Crate] -> [Two] [Player | Crate]
[Two] [> Player | Collider] -> [Two] [Player | Collider]
[Two] [| < Player | Crate] -> [Two] [| < Player | < Crate]
(level 3)
[Three] [> Crate | Crate | no Collider no AnyCrate] -> [Three] [ | | CrateG] sfx0
[Three] [> CrateG | CrateG | no Collider no AnyCrate] -> [Three] [ CrateG | CrateG | CrateG] sfx0
[Three] [> Crate | CrateG | no Collider no AnyCrate] -> [Three] [ | CrateG | CrateG] sfx0
[Three] [> CrateG | Crate | no Collider no AnyCrate] -> [Three] [ CrateG | | CrateG] sfx0
[Three] [> AnyCrate | stationary AnyCrate] -> [Three] [AnyCrate | AnyCrate]
[Three] [> Player | stationary AnyCrate] -> [Three] [Player | AnyCrate]
(level 4)
[Four] [> Player | Target | no Collider no Target] -> [Four] [> Player | > Target | ]
[Four] [> Player | stationary Target ] -> [Four] [Player | Target]
[Four] [> Player | Collider] -> [Four] [Player | Collider]
[Four] [> Target | Collider] -> [Four] [Target | Collider]
(level 5)
[Five] [> Player] [CrateG Handle no Temp | no AnyCrate no Collider no Player] -> [Five] [> Player] [CrateG | CrateG Handle Temp] sfx1
[Five] [> Player] [CrateG Handle no Temp | Crate | no AnyCrate no Collider no Player] -> [Five] [> Player] [CrateG Handle Temp | Crate | CrateG Handle] sfx1
[Five] [> Player | Collider] -> [Five] [Player | Collider]
[Five] [> Player | Crate | no AnyCrate no Collider] -> [Five] [Player | Crate | CrateG Handle] sfx1
[Five] [> Player | AnyCrate] -> [Five] [Player | AnyCrate]
[Five] [Temp] -> [Five] []
(level 6)
[Six] [> Player | ColliderOrBg | no ColliderOrBg no Crate] -> [Six] [> Player | > ColliderOrBg | ] sfx3
[Six] [> Player | Crate] -> [Six] [Player | Crate]
[Six] [> Player | stationary ColliderOrBg] -> [Six] [Player | ColliderOrBg]
(level 7)
[Seven no Gravity] -> [Seven GravityD]
[Seven] [Sticky] -> [Seven] []
[Seven] [Temp3] -> [Seven] []
up [Seven] [Crate2 | Wall] -> [Seven] [Crate2 Temp3 StickyU | Wall StickyD]
down [Seven] [Crate2 | Wall] -> [Seven] [Crate2 Temp3 StickyD | Wall StickyU]
right [Seven] [Crate2 | Wall] -> [Seven] [Crate2 Temp3 StickyR | Wall StickyL]
left [Seven] [Crate2 | Wall] -> [Seven] [Crate2 Temp3 StickyL | Wall StickyR]
down [Seven GravityD] [Crate2 | Player] -> [Seven GravityD] [Crate2 Temp3 | Player]
down [Seven GravityD] [Crate2 | Collider] -> [Seven GravityD] [Crate2 Temp3 | Collider]
down [Seven GravityD] [Crate2 | Crate1] -> [Seven GravityD] [Crate2 Temp3 | Crate1]
up [Seven GravityU] [Crate2 | Player] -> [Seven GravityU] [Crate2 Temp3 | Player]
up [Seven GravityU] [Crate2 | Collider] -> [Seven GravityU] [Crate2 Temp3 | Collider]
up [Seven GravityU] [Crate2 | Crate1] -> [Seven GravityU] [Crate2 Temp3 | Crate1]
startloop
up [Seven] [Crate2 | Crate2 Temp3] -> [Seven] [Crate2 Temp3 StickyU | Crate2 Temp3 StickyD]
up [Seven] [Crate2 Temp3 | Crate2] -> [Seven] [Crate2 Temp3 StickyU | Crate2 Temp3 StickyD]
right [Seven] [Crate2 | Crate2 Temp3] -> [Seven] [Crate2 Temp3 StickyR | Crate2 Temp3 StickyL]
right [Seven] [Crate2 Temp3 | Crate2] -> [Seven] [Crate2 Temp3 StickyR | Crate2 Temp3 StickyL]
endloop
[Seven] [> Falling | Collider] -> [Seven] [Falling | Collider]
late [Seven] [GravityD] [Player Target Jump] -> [Seven] [GravityU] [Player TargetR] sfx4
late [Seven] [GravityU] [Player Target Jump] -> [Seven] [GravityD] [Player TargetR] sfx4
late [Seven] [GravityD] [Player Target no Jump] -> [Seven] [GravityU] [Player TargetR] sfx4
late [Seven] [GravityU] [Player Target no Jump] -> [Seven] [GravityD] [Player TargetR] sfx4
(level 8)
[Eight] [> Player | Collider] -> [Eight] [Player | Collider]
[Eight] [> Player] [Crate | no Collider] -> [Eight] [> Player] [> Crate | ]
[Eight] [> Crate | Collider] -> [Eight] [Crate | Collider]
[Eight] [> Crate | stationary Player] -> [Eight] [Crate | Player]
[Eight] [> Crate | stationary Crate] -> [Eight] [Crate | Crate]
[Eight] [> Player | stationary Crate] -> [Eight] [Player | Crate]
[Eight] [stationary Player] [moving Crate] -> [Eight] [stationary Player] [stationary Crate]
(level 9)
[Nine] [> Player] [Any no Temp2 no Block | no Any] -> [Nine] [> Player] [Any Temp2 Block | Any Temp2 ] sfx9
[Nine] [> Player] -> [Nine] [Player]
[Nine] [Temp2] -> [Nine] []
[Nine] [AnyCrate Target] -> [Nine] [AnyCrate TargetR Temp2] sfx4
[Nine] [Temp2] [Any Block] -> [Nine] [Temp2] []
[Nine] [Temp2] -> [Nine] []
( gravity )
up [GravityD] [no Collider no Crate | up Player] -> [GravityD] [ | Player]
down [GravityU] [no Collider no Crate | down Player] -> [GravityU] [ | Player]
up [GravityD] [up Player | no Collider no Crate] -> [GravityD] [ | Player Jump]
down [GravityU] [down Player | no Collider no Crate] -> [GravityU] [ | Player Jump]
[Gravity] [> Player | Crate | no Collider no Crate] -> [Gravity] [> Player | > Crate | ]
[Gravity] [> Player | stationary Crate] -> [Gravity] [Player | Crate]
horizontal [Gravity] [> Player | ] -> [Gravity] [ | Player Temp2]
horizontal [Gravity] [> Crate | ] -> [Gravity] [ | Crate Temp2] sfx9
down [GravityD] [Falling no Temp2 no Jump no Sticky | no Collider no Falling] -> [GravityD] [> Falling | ]
up [GravityU] [Falling no Temp2 no Jump no Sticky | no Collider no Falling] -> [GravityU] [> Falling | ]
down [GravityD] [Falling | no Collider] -> again
up [GravityU] [Falling | no Collider] -> again
[Gravity] [Jump no Player] -> [Gravity] []
[Gravity] [Temp2] -> [Gravity] []
[Gravity] [Level no NoWin] [moving Falling] -> [Gravity] [Level NoWin] [moving Falling]
(win conditions)
late [WinIsCrateOnTarget] [Crate Target] -> [WinIsCrateOnTarget] [Crate Target Win]
late [Three] [CrateG Target] -> [Three] [CrateG Target Win]
late [Five] [Handle Target] -> [Five] [Handle Target Win]
late [Six] [ColliderOrBg Target] -> [Six] [ColliderOrBg Target Win]
late [Seven] [TargetR] -> [Seven] [TargetR Win]
late [Nine] [TargetR] -> [Nine] [TargetR Win]
(counting)
late [Player no Temp] [Win] -> [Player Temp] [Win1]
late [Player Temp] [Win] [Win1] -> [Player] [Win1] [Win2]
late [Player no Temp] [Win] [Win1] [Win2] -> [Player Temp] [Win1] [Win2] [Win3]
late [Player Temp] [Win] [Win1] [Win2] [Win3] -> [Player] [Win1] [Win2] [Win3] [Win4]
late [Player no Temp] [Win] [Win1] [Win2] [Win3] [Win4] -> [Player Temp] [Win1] [Win2] [Win3] [Win4] [Win5]
late [Level no NoWin] [3WinsIsWin] [Win] [Win1] [Win2] -> win
late [Five] [Win1] [Win2] [Win3] [Win4] [Win5] -> win
late [Temp] -> []
late [WinFlags] -> []
(player sprite)
late [PlayerD] -> []
late [PlayerU] -> []
late [GravityU] [Player no PlayerD no PlayerU] -> [GravityU] [Player PlayerU]
late [Player no PlayerD no PlayerU] -> [Player PlayerD]
==============
WINCONDITIONS
==============
=======
LEVELS
=======
5....#.l.zZ...
.......l...zzX
..Z....l.....x
.zzZ...-bYzZ..
..#xX....-bbbb
..........C..#
..#.......c..p
..+t*...+ttttt
tty.rcCCl..X..
.x.Xr...l.x...
bbbb/.#.l..zZ.
........-bbbbb
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment