puzzlescript
Version:
Play PuzzleScript games in your terminal!
2,862 lines (2,358 loc) • 81.4 kB
Plain Text
title Snakehole
author Jack Kutilek
homepage jackkutilek.com
background_color #90908E
text_color #EACC8F
(verbose_logging)
run_rules_on_level_start
key_repeat_interval .15
again_interval 0.03 (.03)
noaction
========
OBJECTS
========
Background
#CEB37B #E2BA7C #EACC8F
11111
01111
11101
11111
10112
Target
#4A3700
.....
.000.
.000.
..00.
.....
hole
#5F3128
.....
.000.
.000.
.000.
.....
nothing
#90908e
Outer_wall
#AA997B #90908E #80807E
11111
11111
11111
11111
11111
Outer_wall_r_1
#B9A88C #90908E #80807E
00011
00111
11111
11101
11111
Outer_wall_r_1_l
#B9A88C #90908E #80807E
....1
....0
.....
.....
.....
Outer_wall_r_2
#BDB4A3 #90908E #80807E
01111
11001
11111
11101
11111
Outer_wall_r_2_l
#BDB4A3 #90908E #80807E
....0
....1
.....
.....
.....
Outer_wall_r_3
#C1BDAA #90908E #80807E
00110
01111
11011
11111
11111
Outer_wall_r_3_l
#C1BDAA #90908E #80807E
....0
....0
.....
.....
.....
Outer_wall_r_4
#CCBA8E #90908E #80807E
11011
01111
11110
11011
11111
Outer_wall_r_4_l
#CCBA8E #90908E #80807E
....0
....0
.....
.....
.....
Outer_wall_r_5
#C4AC75 #90908E #80807E
10011
11001
11111
11110
11111
Outer_wall_r_5_l
#C4AC75 #90908E #80807E
....1
....0
....1
....1
.....
Outer_wall_u_1
#B9A88C #90908E #80807E
11011
01111
11111
11100
11111
Outer_wall_u_1_l
#B9A88C #90908E #80807E
....1
....1
.....
.....
.....
Outer_wall_u_1_r
#B9A88C #90908E #80807E
.....
.....
.....
0....
.....
Outer_wall_u_2
#BDB4A3 #90908E #80807E
11011
10011
11111
11100
11111
Outer_wall_u_2_l
#BDB4A3 #90908E #80807E
....1
....0
.....
.....
.....
Outer_wall_u_2_r
#BDB4A3 #90908E #80807E
.....
.....
.....
0....
.....
Outer_wall_u_3
#C1BDAA #90908E #80807E
11111
10111
11111
11100
11111
Outer_wall_u_3_l
#C1BDAA #90908E #80807E
....0
....1
.....
.....
.....
Outer_wall_u_3_r
#C1BDAA #90908E #80807E
.....
.....
.....
001..
.....
Outer_wall_u_4
#CCBA8E #90908E #80807E
10111
10111
11111
11000
11111
Outer_wall_u_4_l
#CCBA8E #90908E #80807E
....1
....0
.....
.....
.....
Outer_wall_u_4_r
#CCBA8E #90908E #80807E
.....
.....
.....
0....
.....
Outer_wall_u_5
#C4AC75 #90908E #80807E
10011
11111
11111
11000
11111
Outer_wall_u_5_l
#C4AC75 #90908E #80807E
.....
....0
.....
.....
.....
Outer_wall_u_5_r
#C4AC75 #90908E #80807E
.....
.....
.....
0....
.....
Outer_wall_d_1
#B9A88C #90908E #80807E
00011
01111
11111
11011
11111
Outer_wall_d_1_l
#B9A88C #90908E #80807E
....0
....0
.....
.....
.....
Outer_wall_d_1_r
#B9A88C #90908E #80807E
.....
.....
.....
1....
0....
Outer_wall_d_2
#BDB4A3 #90908E #80807E
01111
00011
11111
11011
01111
Outer_wall_d_2_l
#BDB4A3 #90908E #80807E
....1
....0
.....
.....
.....
Outer_wall_d_2_r
#BDB4A3 #90908E #80807E
.....
.....
.....
1....
01...
Outer_wall_d_3
#C1BDAA #90908E #80807E
10011
10111
11111
11011
11111
Outer_wall_d_3_l
#C1BDAA #90908E #80807E
....0
....0
.....
.....
.....
Outer_wall_d_3_r
#C1BDAA #90908E #80807E
.....
.....
.....
1....
.....
Outer_wall_d_4
#CCBA8E #90908E #80807E
00011
01111
11011
11111
11111
Outer_wall_d_4_l
#CCBA8E #90908E #80807E
.....
....0
.....
.....
.....
Outer_wall_d_4_r
#CCBA8E #90908E #80807E
.....
.....
.....
1....
1....
Outer_wall_d_5
#C4AC75 #90908E #80807E
10011
00111
11111
11011
11111
Outer_wall_d_5_l
#C4AC75 #90908E #80807E
....0
....0
.....
.....
.....
Outer_wall_d_5_r
#C4AC75 #90908E #80807E
.....
.....
.....
1....
0....
Outer_wall_l_1
#B9A88C #90908E #80807E
01011
11011
11111
10100
11111
Outer_wall_l_1_r
#B9A88C #90908E #80807E
.....
.....
.....
0....
.....
Outer_wall_l_2
#BDB4A3 #90908E #80807E
00111
11111
10111
11100
11111
Outer_wall_l_2_r
#BDB4A3 #90908E #80807E
.....
.....
.....
1....
.....
Outer_wall_l_3
#C1BDAA #90908E #80807E
11011
10011
11111
01100
11111
Outer_wall_l_3_r
#C1BDAA #90908E #80807E
.....
.....
.....
0....
.....
Outer_wall_l_4
#CCBA8E #90908E #80807E
10011
00111
11111
11011
11111
Outer_wall_l_4_r
#CCBA8E #90908E #80807E
.....
.....
.....
.....
.....
Outer_wall_l_5
#C4AC75 #90908E #80807E
01011
11011
11111
10111
11111
Outer_wall_l_5_r
#C4AC75 #90908E #80807E
.....
.....
.....
0....
.....
Wall
#AA997B #90908E
00010
00010
11111
01000
11111
WallA
#B9A88C #90908E
00010
00010
11111
01000
11111
walla_r
#B9A88C
.....
.....
.....
0....
.....
walla_l
#B9A88C
....0
....0
.....
.....
.....
WallB
#BDB4A3 #90908E
00010
00010
11111
01000
11111
wallb_r
#BDB4A3
.....
.....
.....
0....
.....
wallb_l
#BDB4A3
....0
....0
.....
.....
.....
WallC
#C1BDAA #90908E
00010
00010
11111
01000
11111
wallc_r
#C1BDAA
.....
.....
.....
0....
.....
wallc_l
#C1BDAA
....0
....0
.....
.....
.....
WallD
#CCBA8E #90908E
00010
00010
11111
01000
11111
walld_r
#CCBA8E
.....
.....
.....
0....
.....
walld_l
#CCBA8E
....0
....0
.....
.....
.....
WallE
#C4AC75 #90908E
00010
00010
11111
01000
11111
walle_r
#C4AC75
.....
.....
.....
0....
.....
walle_l
#C4AC75
....0
....0
.....
.....
.....
wallborderl
#80807E
0....
0....
0....
0....
0....
wallborderr
#888887
....0
....0
....0
....0
....0
wallborderd
#80807E
.....
.....
.....
.....
00000
wallborderu
#888887
00000
.....
.....
.....
.....
HeadU
#FF9138 #617CA3 #E2461F #FcA019 #F88330
.2.2.
..2..
.400.
.101.
.430.
HeadU_shakeleft
#FF9138 #617CA3 #E2461F #FcA019 #F88330
.2...
220..
.401.
.100.
.430.
HeadU_shakestraight
#FF9138 #617CA3 #E2461F #FcA019 #F88330
.2.2.
..2..
.400.
.101.
.430.
HeadU_shakeright
#FF9138 #617CA3 #E2461F #FcA019 #F88330
...2.
..022
.100.
.401.
.430.
HeadD
#FF9138 #617CA3 #E2461F #FcA019 #F88330
.430.
.101.
.400.
..2..
.2.2.
HeadD_shakeleft
#FF9138 #617CA3 #E2461F #FcA019 #F88330
.430.
.401.
.100.
..422
...2.
HeadD_shakestraight
#FF9138 #617CA3 #E2461F #FcA019 #F88330
.430.
.101.
.400.
..2..
.2.2.
HeadD_shakeright
#FF9138 #617CA3 #E2461F #FcA019 #F88330
.430.
.100.
.401.
220..
.2...
HeadR
#FF9138 #617CA3 #E2461F #FcA019 #F88330
.....
010.2
3002.
414.2
.....
HeadR_shakeleft
#FF9138 #617CA3 #E2461F #FcA019 #F88330
...2.
01022
3000.
441..
.....
HeadR_shakestraight
#FF9138 #617CA3 #E2461F #FcA019 #F88330
.....
010.2
3002.
414.2
.....
HeadR_shakeright
#FF9138 #617CA3 #E2461F #FcA019 #F88330
.....
001..
3000.
41422
...2.
HeadL
#FF9138 #617CA3 #E2461F #FcA019 #F88330
.....
2.010
.2003
2.414
.....
HeadL_shakeleft
#FF9138 #617CA3 #E2461F #FcA019 #F88330
.....
..100
.0003
22414
.2...
HeadL_shakestraight
#FF9138 #617CA3 #E2461F #FcA019 #F88330
.....
2.010
.2003
2.414
.....
HeadL_shakeright
#FF9138 #617CA3 #E2461F #FcA019 #F88330
.2...
22010
.0003
..144
.....
snakehead_in_hole_1
#FF9138 #617CA3 #E2461F #FcA019 #F88330 #d86310
.....
.2.2.
.....
.....
.....
snakehead_in_hole_2
#FF9138 #617CA3 #E2461F #FcA019 #F88330 #d86310
.....
..2..
.2.2.
.....
.....
snakehead_in_hole_3
#FF9138 #617CA3 #E2461F #FcA019 #F88330 #d86310
.....
.555.
..2..
.2.2.
.....
snakehead_in_hole_4
#FF9138 #617CA3 #E2461F #FcA019 #F88330 #d86310
.....
.151.
.400.
..2..
.2.2.
snakehead_in_hole_5
#FF9138 #617CA3 #E2461F #FcA019 #F88330 #d86310
.....
.555.
.101.
.400.
..2..
bodyskinU
#F9AE00 #FFD987 #FcA019 #FF9138 #F1A700 #F59811 #F88330
.532.
.603.
.410.
.....
.....
bodyskind
#F9AE00 #FFD987 #FcA019 #FF9138 #F1A700 #F59811 #F88330
.....
.....
.410.
.603.
.532.
bodyskinr
#F9AE00 #FFD987 #FcA019 #FF9138 #F1A700 #F59811 #F88330
.....
..032
..103
..465
.....
bodyskinl
#F9AE00 #FFD987 #FcA019 #FF9138 #F1A700 #F59811 #F88330
.....
230..
301..
564..
.....
bodyskin_backU
#F9AE00 #FFD987 #FcA019 #FF9138 #F1A700 #F59811 #F88330
.....
.....
.410.
.502.
.623.
bodyskin_Backd
#F9AE00 #FFD987 #FcA019 #FF9138 #F1A700 #F59811 #F88330
.623.
.502.
.410.
.....
.....
bodyskin_backr
#F9AE00 #FFD987 #FcA019 #FF9138 #F1A700 #F59811 #F88330
.....
320..
201..
654..
.....
bodyskin_backl
#F9AE00 #FFD987 #FcA019 #FF9138 #F1A700 #F59811 #F88330
.....
..023
..102
..456
.....
taild
#FF9138 #FcA019 #F88330 #F59811
.210.
.210.
.20..
..0..
.....
tailu
#FF9138 #FcA019 #F88330 #F59811
.....
..0..
..00.
.210.
.210.
tailr
#FF9138 #FcA019 #F88330 #F59811
.....
00...
1100.
222..
.....
taill
#FF9138 #FcA019 #F88330 #F59811
.....
..000
.0011
...22
.....
snakeskin_going_home_r
#FF9138 #FcA019 #F88330 #c56801
.....
023..
213..
023..
.....
snakeskin_going_home_l
#FF9138 #FcA019 #F88330 #c56801
.....
..320
..312
..320
.....
snakeskin_going_home_u
#FF9138 #FcA019 #F88330 #c56801
.....
.....
.333.
.212.
.020.
snakeskin_going_home_d
#FF9138 #FcA019 #F88330 #c56801
.020.
.212.
.333.
.....
.....
tail_going_home_r
#FF9138 #FcA019 #F88330 #c56801
.....
..3..
.23..
.....
.....
tail_going_home_l
#FF9138 #FcA019 #F88330 #c56801
.....
.....
..32.
..3..
.....
tail_going_home_u
#FF9138 #FcA019 #F88330 #c56801
.....
.....
.33..
..2..
.....
tail_going_home_d
#FF9138 #FcA019 #F88330 #c56801
.....
..2..
..33.
.....
.....
placeholder_snake
transparent
Playersnake
transparent
.....
.....
..0..
.....
.....
bodyR
green
.....
.....
..0..
.....
.....
bodyU
green
.....
.....
..0..
.....
.....
bodyD
green
.....
.....
..0..
.....
.....
bodyL
green
.....
.....
..0..
.....
.....
snake_food
#eF9158 #e08249 #d87c41 #e88950
...30
..13.
.231.
.02..
.....
Crateu
transparent Yellow
.....
.....
..0..
.....
.....
Crated
transparent Yellow
.....
.....
..0..
.....
.....
Cratel
transparent Yellow
.....
.....
..0..
.....
.....
Crater
transparent Yellow
.....
.....
..0..
.....
.....
Crateh
transparent Yellow
.....
.....
..0..
.....
.....
crateshadow_l
#117711
.....
..000
.....
.....
.....
crateshadow_r
#117711
.....
.....
.....
000..
.....
crateshadow_u
#117711
.....
.....
...0.
...0.
...0.
crateshadow_d
#117711
.0...
.0...
.0...
.....
.....
crateshadow_head_l_tail_l
#117711 darkblue
.....
..010
.....
.....
.....
crateshadow_head_l_tail_back_l
#117711 #E2461F
.....
1.0..
.....
.....
.....
crateskin_tail_l
#B27D52 #A26f48
...00
...11
.....
.....
.....
crateskin_tail_r
#B27D52 #A26f48
.....
.....
.....
00...
11...
crateskin_tail_u
#B27D52 #A26f48
.....
.....
.....
...10
...10
crateskin_tail_d
#B27D52 #A26f48
10...
10...
.....
.....
.....
crateskin_tail_back_l
#B27D52 #A26f48
00...
11...
.....
.....
.....
crateskin_tail_back_r
#B27D52 #A26f48
.....
.....
.....
...00
...11
crateskin_tail_back_u
#B27D52 #A26f48
...10
...10
.....
.....
.....
crateskin_tail_back_d
#B27D52 #A26f48
.....
.....
.....
10...
10...
skincrate_dd_join
#B27D52 #A26f48
.....
.....
10...
.....
.....
skincrate_uu_join
#B27D52 #A26f48
.....
.....
...10
.....
.....
skincrate_ll_join
#B27D52 #A26f48
..0..
..1..
.....
.....
.....
skincrate_rr_join
#B27D52 #A26f48
.....
.....
.....
..0..
..1..
skincrate_dr_join
#B27D52 #A26f48
.....
..0..
.100.
..1..
.....
skincrate_ru_join
#B27D52 #A26f48
.....
..10.
.000.
..1..
.....
skincrate_ul_join
#B27D52 #A26f48
..0..
..00.
..100
.....
.....
skincrate_ld_join
#B27D52 #A26f48
..0..
.10..
100..
.....
.....
skincrate_rd_join
#B27D52 #A26f48
.....
.....
.....
0....
.....
skincrate_dl_join
#B27D52 #A26f48
.....
.....
.....
.....
.....
skincrate_lu_join
#B27D52 #A26f48
.....
....1
.....
.....
.....
skincrate_ur_join
#B27D52 #A26f48
.....
.....
.....
...1.
....0
skincrate_tail_l
#B27D52 #A26f48
..0..
.....
.....
.....
.....
skincrate_tail_r
#B27D52 #A26f48
.....
.....
.....
.....
..1..
skincrate_tail_u
#B27D52 #A26f48
.....
.....
....0
.....
.....
skincrate_tail_d
#B27D52 #A26f48
.....
.....
1....
.....
.....
crateskin_head_l
#B27D52 darkbrown #E2461F #A26f48
....0
2.100
.2003
2.10.
.....
crateskin_head_l_shakeleft
#B27D52 darkbrown #E2461F #A26f48
....0
..100
..003
22.1.
.2...
crateskin_head_l_shakestraight
#B27D52 darkbrown #E2461F #A26f48
....0
2.100
.2003
2.10.
.....
crateskin_head_l_shakeright
#B27D52 darkbrown #E2461F #A26f48
.2..0
22.10
..003
..13.
.....
crateskin_head_r
#B27D52 darkbrown #E2461F #A26f48
.....
.01.2
0002.
001.2
3....
crateskin_head_r_shakeleft
#B27D52 darkbrown #E2461F #A26f48
...2.
.1.22
000..
031..
3....
crateskin_head_r_shakestraight
#B27D52 darkbrown #E2461F #A26f48
.....
.01.2
0002.
001.2
3....
crateskin_head_r_shakeright
#B27D52 darkbrown #E2461F #A26f48
.....
.01..
000..
01.22
3..2.
crateskin_head_u
#B27D52 darkbrown #E2461F #A26f48
.2.2.
..2..
.101.
.000.
..300
crateskin_head_u_shakeleft
#B27D52 darkbrown #E2461F #A26f48
.2...
22...
..01.
.100.
..300
crateskin_head_u_shakestraight
#B27D52 darkbrown #E2461F #A26f48
.2.2.
..2..
.101.
.000.
..300
crateskin_head_u_shakeright
#B27D52 darkbrown #E2461F #A26f48
...2.
...22
.10..
.301.
..300
crateskin_head_d
#B27D52 darkbrown #E2461F #A26f48
300..
.000.
.101.
..2..
.2.2.
crateskin_head_d_shakeleft
#B27D52 darkbrown #E2461F #A26f48
300..
.301.
.10..
...22
...2.
crateskin_head_d_shakestraight
#B27D52 darkbrown #E2461F #A26f48
300..
.000.
.101.
..2..
.2.2.
crateskin_head_d_shakeright
#B27D52 darkbrown #E2461F #A26f48
300..
.100.
..01.
22...
.2...
crateskin_head_l_alone
#B27D52 darkbrown #E2461F #A26f48
....0
2.100
.2003
2.10.
.....
crateskin_head_r_alone
#B27D52 darkbrown #E2461F #A26f48
.....
.01.2
0002.
001.2
3....
crateskin_head_u_alone
#B27D52 darkbrown #E2461F #A26f48
.2.2.
..2..
.101.
.000.
..300
crateskin_head_d_alone
#B27D52 darkbrown #E2461F #A26f48
300..
.000.
.101.
..2..
.2.2.
crateskin_head_in_hole1
#B27D52 darkbrown #E2461F #A26f48
.....
.....
.....
.....
.....
crateskin_head_in_hole2
#B27D52 darkbrown #E2461F #9b6840
.....
.2.2.
.....
.....
.....
crateskin_head_in_hole3
#B27D52 darkbrown #E2461F #9b6840
.....
..2..
.2.2.
.....
.....
crateskin_head_in_hole4
#B27D52 darkbrown #E2461F #9b6840
.....
.101.
..2..
.2.2.
.....
crateskin_head_in_hole5
#B27D52 darkbrown #E2461F #9b6840
.....
.000.
.101.
..2..
.2.2.
crateskin_head_in_hole_u
#B27D52 darkbrown #E2461F #9b6840
.....
.33..
.000.
.101.
..2..
crateskin_head_in_hole_u_shakeleft
#B27D52 darkbrown #E2461F #9b6840
.....
.330.
.001.
.100.
...22
crateskin_head_in_hole_u_shakestraight
#B27D52 darkbrown #E2461F #9b6840
.....
.33..
.000.
.101.
..2..
crateskin_head_in_hole_u_shakeright
#B27D52 darkbrown #E2461F #9b6840
.....
.03..
.100.
..01.
22...
crateskin_head_in_hole_d
#B27D52 darkbrown #E2461F #9b6840
..2..
.101.
.000.
..33.
.....
crateskin_head_in_hole_d_shakeleft
#B27D52 darkbrown #E2461F #9b6840
22...
..01.
.100.
..03.
.....
crateskin_head_in_hole_d_shakestraight
#B27D52 darkbrown #E2461F #9b6840
..2..
.101.
.000.
..33.
.....
crateskin_head_in_hole_d_shakeright
#B27D52 darkbrown #E2461F #9b6840
...22
.10..
.001.
..30.
.....
crateskin_head_in_hole_r
#B27D52 darkbrown #E2461F #9b6840
.....
.103.
2003.
.10..
.....
crateskin_head_in_hole_r_shakeleft
#B27D52 darkbrown #E2461F #9b6840
.....
.103.
.000.
2.1..
2....
crateskin_head_in_hole_r_shakestraight
#B27D52 darkbrown #E2461F #9b6840
.....
.103.
2003.
.10..
.....
crateskin_head_in_hole_r_shakeright
#B27D52 darkbrown #E2461F #9b6840
2....
2.10.
.003.
.10..
.....
crateskin_head_in_hole_l
#B27D52 darkbrown #E2461F #9b6840
.....
..01.
.3002
.301.
.....
crateskin_head_in_hole_l_shakeleft
#B27D52 darkbrown #E2461F #9b6840
....2
..1.2
.000.
.301.
.....
crateskin_head_in_hole_l_shakestraight
#B27D52 darkbrown #E2461F #9b6840
.....
..01.
.3002
.301.
.....
crateskin_head_in_hole_l_shakeright
#B27D52 darkbrown #E2461F #9b6840
.....
..01.
.300.
.01.2
....2
crateskin_going_home_r
#B27D52 darkbrown #E2461F #9b6840
.....
.....
.03..
003..
0....
crateskin_going_home_l
#B27D52 darkbrown #E2461F #9b6840
....0
..300
..30.
.....
.....
crateskin_going_home_u
#B27D52 darkbrown #E2461F #9b6840
.....
.....
..33.
..00.
...00
crateskin_going_home_d
#B27D52 darkbrown #E2461F #9b6840
00...
.00..
.33..
.....
.....
crateskin_tongue_l
#E2461F
.....
....0
.....
....0
.....
crateskin_tongue_l_shakeleft
#E2461F
.....
.....
.....
....0
.....
crateskin_tongue_l_shakeright
#E2461F
.....
....0
.....
.....
.....
crateskin_tongue_r
#E2461F
.....
0....
.....
0....
.....
crateskin_tongue_r_shakeleft
#E2461F
.....
0....
.....
.....
.....
crateskin_tongue_r_shakeright
#E2461F
.....
.....
.....
0....
.....
crateskin_tongue_d
#E2461F
.0.0.
.....
.....
.....
.....
crateskin_tongue_d_shakeleft
#E2461F
...0.
.....
.....
.....
.....
crateskin_tongue_d_shakeright
#E2461F
.0...
.....
.....
.....
.....
crateskin_tongue_u
#E2461F
.....
.....
.....
.....
.0.0.
crateskin_tongue_u_shakeleft
#E2461F
.....
.....
.....
.....
.0...
crateskin_tongue_u_shakeright
#E2461F
.....
.....
.....
.....
...0.
crate_food
#b26D42 #aA6740 #a26038 #ba7850
.....
.31..
.201.
..20.
...11
CrateTailD
transparent
.....
.....
..0..
..0..
.....
CrateTailU
transparent
.....
..0..
..0..
.....
.....
CrateTailR
transparent
.....
.....
..00.
.....
.....
CrateTailL
transparent
.....
.....
.00..
.....
.....
CrateTailH
transparent
.....
.....
..0..
.....
.....
grow_crate_l
transparent
.....
.....
..0..
.....
.....
grow_crate_r
transparent
.....
.....
..0..
.....
.....
grow_crate_d
transparent
.....
.....
..0..
.....
.....
grow_crate_u
transparent
.....
.....
..0..
.....
.....
grow_crate_h
transparent
.....
.....
..0..
.....
.....
movement_tracker
transparent
neck
transparent
tail_end
transparent
crate_movement_trackerl
transparent
crate_movement_trackerr
transparent
crate_movement_trackeru
transparent
crate_movement_trackerd
transparent
crate_movement_tracker_start
transparent
crate_tail_removal
transparent
going_home
transparent
gone_home
transparent
going_home_removal
transparent
bodyblock
green
snake_counter
transparent
.....
..0..
..0..
..0..
.....
snake_decounter
transparent
snake_is_alone
transparent
holesnake1
transparent
0....
.....
.....
.....
.....
holesnake2
transparent
00...
.....
.....
.....
.....
holesnake3
transparent
000..
.....
.....
.....
.....
holesnake4
transparent
0000.
.....
.....
.....
.....
holesnake5
transparent
00000
.....
.....
.....
.....
holesnake6
transparent
00000
....0
.....
.....
.....
holesnake7
transparent
00000
....0
....0
.....
.....
holesnake8
transparent
00000
....0
....0
....0
.....
holesnake9
transparent
00000
....0
....0
....0
....0
holesnake10
transparent
holesnake11
transparent
holesnake12
transparent
holesnake13
transparent
holesnake14
transparent
holesnake15
transparent
holesnake16
transparent
holesnake17
transparent
holesnake18
transparent
holesnake19
transparent
holesnake20
transparent
holesnake21
transparent
holesnake22
transparent
holesnake23
transparent
holesnake24
transparent
holesnake25
transparent
holesnake26
transparent
holesnake27
transparent
holesnake28
transparent
holesnake29
transparent
holesnake30
transparent
holesnake31
transparent
holesnake32
transparent
holesnake33
transparent
holesnake34
transparent
holesnake35
transparent
holesnake36
transparent
holesnake37
transparent
holesnake38
transparent
holesnake39
transparent
holesnake40
transparent
holesnake41
transparent
holesnake42
transparent
holesnake43
transparent
holesnake44
transparent
holesnake45
transparent
holesnake46
transparent
holesnake47
transparent
holesnake48
transparent
holesnake49
transparent
holesnake50
transparent
holesnake51
transparent
holesnake52
transparent
holesnake53
transparent
holesnake54
transparent
holesnake55
transparent
holesnake56
transparent
holesnake57
transparent
holesnake58
transparent
holesnake59
transparent
holesnake60
transparent
snake_try_retreat
transparent
crateh_appear_l
transparent
crateh_appear_r
transparent
crateh_appear_d
transparent
crateh_appear_u
transparent
crate_Counter
transparent
.....
..0..
..0..
..0..
.....
crate_decounter
transparent
crate_try_retract
transparent
crate_do_retract
transparent
crate_going_home
transparent
.....
.....
..0..
.....
.....
crate_going_home_removal
transparent
holecrate1
transparent
0....
.....
.....
.....
.....
holecrate2
transparent
00...
.....
.....
.....
.....
holecrate3
transparent
000..
.....
.....
.....
.....
holecrate4
transparent
0000.
.....
.....
.....
.....
holecrate5
transparent
00000
.....
.....
.....
.....
holecrate6
transparent
holecrate7
transparent
holecrate8
transparent
holecrate9
transparent
holecrate10
transparent
holecrate11
transparent
holecrate12
transparent
holecrate13
transparent
holecrate14
transparent
crate_retracted_l
transparent
crate_retracted_r
transparent
crate_retracted_u
transparent
crate_retracted_d
transparent
animate_1
transparent
animate_2
transparent
animate_3
transparent
animate_4
transparent
animate_5
transparent
crate_tail_end
transparent
.....
..0..
..0..
..0..
..0..
=======
LEGEND
=======
wallcover = walla or wallb or wallc or walld or walle
wallcoverl = walla_l or wallb_l or wallc_l or walld_l or walle_l
wallcoverr = walla_r or wallb_r or wallc_r or walld_r or walle_r
anywall = wall or outer_wall
outer_wall_u = Outer_wall_u_1 or Outer_wall_u_2 or Outer_wall_u_3 or Outer_wall_u_4 or Outer_wall_u_5
outer_wall_d = Outer_wall_d_1 or Outer_wall_d_2 or Outer_wall_d_3 or Outer_wall_d_4 or Outer_wall_d_5
outer_wall_r = Outer_wall_r_1 or Outer_wall_r_2 or Outer_wall_r_3 or Outer_wall_r_4 or Outer_wall_r_5
outer_wall_l = Outer_wall_l_1 or Outer_wall_l_2 or Outer_wall_l_3 or Outer_wall_l_4 or Outer_wall_l_5
outer_wall_cover = Outer_wall_u or Outer_wall_d or Outer_wall_l or Outer_wall_r
outer_wall_cover_l = Outer_wall_r_1_l or Outer_wall_r_2_l or Outer_wall_r_3_l or Outer_wall_r_4_l or Outer_wall_r_5_l or outer_wall_u_1_l or outer_wall_u_2_l or outer_wall_u_3_l or outer_wall_u_4_l or outer_wall_u_5_l or outer_wall_d_1_l or outer_wall_d_2_l or Outer_wall_d_3_l or Outer_wall_d_4_l or Outer_wall_d_5_l
outer_wall_cover_r = Outer_wall_u_1_r or Outer_wall_u_2_r or Outer_wall_u_3_r or Outer_wall_u_4_r or Outer_wall_u_5_r or Outer_wall_d_1_r or Outer_wall_d_2_r or Outer_wall_d_3_r or Outer_wall_d_4_r or Outer_wall_d_5_r or outer_wall_l_1_r or Outer_wall_l_2_r or Outer_wall_l_3_r or Outer_wall_l_4_r or Outer_wall_l_5_r
body = bodyr or bodyL or bodyD or bodyU
head = headu or headd or headl or headr
tail = tailu or taild or taill or tailr
bodyskin = bodyskind or bodyskinu or bodyskinl or bodyskinr
bodyskinback = bodyskin_backU or bodyskin_Backd or bodyskin_backr or bodyskin_backl
snakeskin_going_home = snakeskin_going_home_r or snakeskin_going_home_l or snakeskin_going_home_u or snakeskin_going_home_d
tail_going_home = tail_going_home_r or tail_going_home_l or tail_going_home_u or tail_going_home_d
snakehead_in_hole = snakehead_in_hole_1 or snakehead_in_hole_2 or snakehead_in_hole_3 or snakehead_in_hole_4 or snakehead_in_hole_5
snakehead_shake = HeadR_shakeleft or HeadR_shakestraight or HeadR_shakeright or HeadL_shakeleft or HeadL_shakestraight or HeadL_shakeright or HeadU_shakeleft or HeadU_shakestraight or HeadU_shakeright or HeadD_shakeleft or HeadD_shakestraight or HeadD_shakeright
cratehead_shake = crateskin_head_l_shakeleft or crateskin_head_l_shakestraight or crateskin_head_l_shakeright or crateskin_head_r_shakeleft or crateskin_head_r_shakestraight or crateskin_head_r_shakeright or crateskin_head_u_shakeleft or crateskin_head_u_shakestraight or crateskin_head_u_shakeright or crateskin_head_d_shakeleft or crateskin_head_d_shakestraight or crateskin_head_d_shakeright or crateskin_head_in_hole_u_shakeleft or crateskin_head_in_hole_u_shakestraight or crateskin_head_in_hole_u_shakeright or crateskin_head_in_hole_d_shakeleft or crateskin_head_in_hole_d_shakestraight or crateskin_head_in_hole_d_shakeright or crateskin_head_in_hole_l_shakeleft or crateskin_head_in_hole_l_shakestraight or crateskin_head_in_hole_l_shakeright or crateskin_head_in_hole_r_shakeleft or crateskin_head_in_hole_r_shakestraight or crateskin_head_in_hole_r_shakeright
cratetongue_shake = crateskin_tongue_l_shakeleft or crateskin_tongue_l_shakeright or crateskin_tongue_r_shakeleft or crateskin_tongue_r_shakeright or crateskin_tongue_d_shakeleft or crateskin_tongue_d_shakeright or crateskin_tongue_u_shakeleft or crateskin_tongue_u_shakeright
crateh_appear = crateh_appear_l or crateh_appear_r or crateh_appear_d or crateh_appear_u
cratetail = CrateTailD or CrateTailU or CrateTailR or CrateTailL or cratetailH
holesnake = holesnake1 or holesnake2 or holesnake3 or holesnake4 or holesnake5 or holesnake6 or holesnake7 or holesnake8 or holesnake9 or holesnake10 or holesnake11 or holesnake12 or holesnake13 or holesnake14 or holesnake15 or holesnake16 or holesnake17 or holesnake18 or holesnake19 or holesnake20 or holesnake21 or holesnake22 or holesnake23 or holesnake24 or holesnake25 or holesnake26 or holesnake27 or holesnake28 or holesnake29 or holesnake30 or holesnake31 or holesnake32 or holesnake33 or holesnake34 or holesnake35 or holesnake36 or holesnake37 or holesnake38 or holesnake39 or holesnake40 or holesnake41 or holesnake42 or holesnake43 or holesnake44 or holesnake45 or holesnake46 or holesnake47 or holesnake48 or holesnake49 or holesnake50 or holesnake51 or holesnake52 or holesnake53 or holesnake54 or holesnake55 or holesnake56 or holesnake57 or holesnake58 or holesnake59 or holesnake60
holecrate = holecrate1 or holecrate2 or holecrate3 or holecrate4 or holecrate5 or holecrate6 or holecrate7 or holecrate8 or holecrate9 or holecrate10 or holecrate11 or holecrate12 or holecrate13 or holecrate14
crate = crateu or crated or cratel or crater or crateh
crate_movement_tracker = crate_movement_trackerl or crate_movement_trackerr or crate_movement_trackeru or crate_movement_trackerd
grow_crate = grow_crate_l or grow_crate_r or grow_crate_d or grow_crate_u or grow_crate_h
player = Playersnake
animate = animate_1 or animate_2 or animate_3 or animate_4 or animate_5
crateskin_head = crateskin_head_l or crateskin_head_r or crateskin_head_u or crateskin_head_d or crateskin_head_l_alone or crateskin_head_r_alone or crateskin_head_u_alone or crateskin_head_d_alone
crateskin_tail = crateskin_tail_l or crateskin_tail_r or crateskin_tail_d or crateskin_tail_u
crateskin = crateskin_head or crateskin_tail
crateskinback = crateskin_tail_back_l or crateskin_tail_back_r or crateskin_tail_back_u or crateskin_tail_back_d
crateskin_tongue = crateskin_tongue_l or crateskin_tongue_r or crateskin_tongue_u or crateskin_tongue_d
crateskinjoin = skincrate_dd_join or skincrate_uu_join or skincrate_ll_join or skincrate_rr_join or skincrate_dr_join or skincrate_ru_join or skincrate_ul_join or skincrate_ld_join or skincrate_rd_join or skincrate_dl_join or skincrate_lu_join or skincrate_ur_join
crateskin_realtail = skincrate_tail_l or skincrate_tail_r or skincrate_tail_u or skincrate_tail_d
crateshadow = crateshadow_l or crateshadow_r or crateshadow_u or crateshadow_d
crateskin_head_in_hole = crateskin_head_in_hole1 or crateskin_head_in_hole2 or crateskin_head_in_hole3 or crateskin_head_in_hole4 or crateskin_head_in_hole5 or crateskin_head_in_hole_u or crateskin_head_in_hole_d or crateskin_head_in_hole_r or crateskin_head_in_hole_l
crateskin_going_home = crateskin_going_home_r or crateskin_going_home_l or crateskin_going_home_u or crateskin_going_home_d
crate_retracted = crate_retracted_l or crate_retracted_r or crate_retracted_u or crate_retracted_d
. = Background
# = Wall
p = playersnake
* = Crateh
@ = Crateh and Target
% = crateh and target and holecrate3
& = crateh and target and holecrate9
O = Target
$ = hole
1 = bodyu
2 = bodyr
3 = bodyd
4 = bodyl
5 = bodyu and neck
6 = bodyr and neck
7 = bodyd and neck
8 = bodyl and neck
a = snake_food
b = crate_food
g = Outer_wall
n = nothing
crate_blocker = cratetail or snake_food or wall or body or crate
player_blocker = wall or crate_food or body
=======
SOUNDS
=======
================
COLLISIONLAYERS
================
Background
Target, hole
crate_food, snake_food
outer_wall, nothing
Playersnake, Wall, Crate, body
placeholder_snake
outer_Wall_cover
wallcover
wallcoverl
wallcoverr
wallborderl
wallborderr
wallborderd
wallborderu
outer_wall_cover_l
outer_wall_cover_r
neck
tail_end
movement_tracker
crate_movement_tracker
crate_movement_tracker_start
CrateTail
crateskin_head
crateskin_tail
crateskinback
crateskin_tongue_l
crateskin_tongue_r
crateskin_tongue_u
crateskin_tongue_d
crateskin_head_in_hole
crateskin_going_home
crateskinjoin
crateskin_realtail
cratehead_shake
cratetongue_shake
going_home, gone_home
going_home_removal
snake_counter
snake_decounter
crate_going_home
crate_going_home_removal
crate_counter
crate_decounter
crate_tail_removal
crate_try_retract
crate_do_retract
grow_crate
holecrate
crateh_appear
crate_retracted
bodyskinu
bodyskind
bodyskinr
bodyskinl
bodyskinback
head, tail
snakeskin_going_home
tail_going_home
snakehead_in_hole
snakehead_shake
crateshadow
crateshadow_head_l_tail_l
crateshadow_head_l_tail_back_l
bodyblock
holesnake
snake_is_alone
snake_try_retreat
animate
crate_tail_end
======
RULES
======
(--------------- WALLS -----------)
[wall no wallcover]->[wall random wallcover]
left [wall no wallborderl | no wall no outer_Wall] -> [wall wallborderl | ]
right [wall no wallborderr | no wall no outer_Wall] -> [wall wallborderr | ]
up [wall no wallborderu | no wall no outer_Wall] -> [wall wallborderu | ]
down [wall no wallborderd | no wall no outer_Wall] -> [wall wallborderd | ]
left [wall | outer_wall no outer_wall_cover] -> [wall | outer_wall random outer_wall_l ] checkpoint
right [wall | outer_wall no outer_wall_cover] -> [wall | outer_wall random outer_wall_r ] checkpoint
up [wall | outer_wall no outer_wall_cover] -> [wall | outer_wall random outer_wall_u ] checkpoint
down [wall | outer_wall no outer_wall_cover] -> [wall | outer_wall random outer_wall_d ] checkpoint
right [anywall | walla]->[anywall walla_l | walla]
right [anywall | wallb]->[anywall wallb_l | wallb]
right [anywall | wallc]->[anywall wallc_l | wallc]
right [anywall | walld]->[anywall walld_l | walld]
right [anywall | walle]->[anywall walle_l | walle]
left [anywall | walla]->[anywall walla_r | walla]
left [anywall | wallb]->[anywall wallb_r | wallb]
left [anywall | wallc]->[anywall wallc_r | wallc]
left [anywall | walld]->[anywall walld_r | walld]
left [anywall | walle]->[anywall walle_r | walle]
left [anywall | Outer_wall_l_1]->[anywall Outer_wall_l_1_r | Outer_wall_l_1]
left [anywall | Outer_wall_l_2]->[anywall Outer_wall_l_2_r | Outer_wall_l_2]
left [anywall | Outer_wall_l_3]->[anywall Outer_wall_l_3_r | Outer_wall_l_3]
left [anywall | Outer_wall_l_4]->[anywall Outer_wall_l_4_r | Outer_wall_l_4]
left [anywall | Outer_wall_l_5]->[anywall Outer_wall_l_5_r | Outer_wall_l_5]
right [anywall | Outer_wall_r_1]->[anywall Outer_wall_r_1_l | Outer_wall_r_1]
right [anywall | Outer_wall_r_2]->[anywall Outer_wall_r_2_l | Outer_wall_r_2]
right [anywall | Outer_wall_r_3]->[anywall Outer_wall_r_3_l | Outer_wall_r_3]
right [anywall | Outer_wall_r_4]->[anywall Outer_wall_r_4_l | Outer_wall_r_4]
right [anywall | Outer_wall_r_5]->[anywall Outer_wall_r_5_l | Outer_wall_r_5]
left [anywall | Outer_wall_u_1]->[anywall Outer_wall_u_1_r | Outer_wall_u_1]
left [anywall | Outer_wall_u_2]->[anywall Outer_wall_u_2_r | Outer_wall_u_2]
left [anywall | Outer_wall_u_3]->[anywall Outer_wall_u_3_r | Outer_wall_u_3]
left [anywall | Outer_wall_u_4]->[anywall Outer_wall_u_4_r | Outer_wall_u_4]
left [anywall | Outer_wall_u_5]->[anywall Outer_wall_u_5_r | Outer_wall_u_5]
right [anywall | Outer_wall_u_1]->[anywall Outer_wall_u_1_l | Outer_wall_u_1]
right [anywall | Outer_wall_u_2]->[anywall Outer_wall_u_2_l | Outer_wall_u_2]
right [anywall | Outer_wall_u_3]->[anywall Outer_wall_u_3_l | Outer_wall_u_3]
right [anywall | Outer_wall_u_4]->[anywall Outer_wall_u_4_l | Outer_wall_u_4]
right [anywall | Outer_wall_u_5]->[anywall Outer_wall_u_5_l | Outer_wall_u_5]
left [anywall | Outer_wall_d_1]->[anywall Outer_wall_d_1_r | Outer_wall_d_1]
left [anywall | Outer_wall_d_2]->[anywall Outer_wall_d_2_r | Outer_wall_d_2]
left [anywall | Outer_wall_d_3]->[anywall Outer_wall_d_3_r | Outer_wall_d_3]
left [anywall | Outer_wall_d_4]->[anywall Outer_wall_d_4_r | Outer_wall_d_4]
left [anywall | Outer_wall_d_5]->[anywall Outer_wall_d_5_r | Outer_wall_d_5]
right [anywall | Outer_wall_d_1]->[anywall Outer_wall_d_1_l | Outer_wall_d_1]
right [anywall | Outer_wall_d_2]->[anywall Outer_wall_d_2_l | Outer_wall_d_2]
right [anywall | Outer_wall_d_3]->[anywall Outer_wall_d_3_l | Outer_wall_d_3]
right [anywall | Outer_wall_d_4]->[anywall Outer_wall_d_4_l | Outer_wall_d_4]
right [anywall | Outer_wall_d_5]->[anywall Outer_wall_d_5_l | Outer_wall_d_5]
[animate_5]->[]
[animate_4]->[animate_5] again
[animate_3]->[animate_4] again
[animate_2]->[animate_3] again
[animate_1]->[animate_2] again
(--------------------head shakes ---------------)
[HeadR_shakeright animate_4]->[headr]
[HeadR_shakestraight animate_4]->[HeadR_shakeright animate_1] again
[HeadR_shakeleft animate_4]->[HeadR_shakestraight animate_1] again
[> player headr | crate_food] -> [> player HeadR_shakeleft animate_1 | crate_food] again
[HeadL_shakeright animate_4]->[headl]
[HeadL_shakestraight animate_4]->[HeadL_shakeright animate_1] again
[HeadL_shakeleft animate_4]->[HeadL_shakestraight animate_1] again
[> player headl | crate_food] -> [> player HeadL_shakeleft animate_1 | crate_food] again
[Headu_shakeright animate_4]->[headu]
[Headu_shakestraight animate_4]->[Headu_shakeright animate_1] again
[Headu_shakeleft animate_4]->[Headu_shakestraight animate_1] again
[> player headu | crate_food] -> [> player Headu_shakeleft animate_1 | crate_food] again
[Headd_shakeright animate_4]->[headd]
[Headd_shakestraight animate_4]->[Headd_shakeright animate_1] again
[Headd_shakeleft animate_4]->[Headd_shakestraight animate_1] again
[> player headd | crate_food] -> [> player Headd_shakeleft animate_1 | crate_food] again
(--------- movement ---------------)
[> player no snakehead_shake | player_blocker no neck] -> cancel
[> player | player_blocker no neck] -> [player | player_blocker]
[ > Player | Crate ] -> [ > Player | > Crate ]
[crateskin_head_L_shakeright animate_4]->[crateskin_head_l]
[crateskin_head_L_shakestraight animate_4]->[crateskin_head_L_shakeright animate_1] again
[crateskin_head_l_shakeleft animate_4]->[crateskin_head_L_shakestraight animate_1] again
[> crate crateskin_head_l | snake_food] -> [> crate crateskin_head_l_shakeleft animate_1 | snake_food] again
[crateskin_head_R_shakeright animate_4]->[crateskin_head_R]
[crateskin_head_R_shakestraight animate_4]->[crateskin_head_R_shakeright animate_1] again
[crateskin_head_R_shakeleft animate_4]->[crateskin_head_R_shakestraight animate_1] again
[> crate crateskin_head_R | snake_food] -> [> crate crateskin_head_R_shakeleft animate_1 | snake_food] again
[crateskin_head_u_shakeright animate_4]->[crateskin_head_u]
[crateskin_head_u_shakestraight animate_4]->[crateskin_head_u_shakeright animate_1] again
[crateskin_head_u_shakeleft animate_4]->[crateskin_head_u_shakestraight animate_1] again
[> crate crateskin_head_u | snake_food] -> [> crate crateskin_head_u_shakeleft animate_1 | snake_food] again
[crateskin_head_d_shakeright animate_4]->[crateskin_head_d]
[crateskin_head_d_shakestraight animate_4]->[crateskin_head_d_shakeright animate_1] again
[crateskin_head_d_shakeleft animate_4]->[crateskin_head_d_shakestraight animate_1] again
[> crate crateskin_head_d | snake_food] -> [> crate crateskin_head_d_shakeleft animate_1 | snake_food] again
[crateskin_head_in_hole_L_shakeright animate_4] ->[crateskin_head_in_hole_l]
[crateskin_head_in_hole_L_shakestraight animate_4]->[crateskin_head_in_hole_L_shakeright animate_1] again
[crateskin_head_in_hole_l_shakeleft animate_4] ->[crateskin_head_in_hole_L_shakestraight animate_1] again
[> crate crateskin_head_in_hole_l | snake_food] -> [> crate crateskin_head_in_hole_l_shakeleft animate_1 | snake_food] again
[crateskin_head_in_hole_R_shakeright animate_4]->[crateskin_head_in_hole_R]
[crateskin_head_in_hole_R_shakestraight animate_4]->[crateskin_head_in_hole_R_shakeright animate_1] again
[crateskin_head_in_hole_R_shakeleft animate_4]->[crateskin_head_in_hole_R_shakestraight animate_1] again
[> crate crateskin_head_in_hole_R | snake_food] -> [> crate crateskin_head_in_hole_R_shakeleft animate_1 | snake_food] again
[crateskin_head_in_hole_u_shakeright animate_4]->[crateskin_head_in_hole_u]
[crateskin_head_in_hole_u_shakestraight animate_4]->[crateskin_head_in_hole_u_shakeright animate_1] again
[crateskin_head_in_hole_u_shakeleft animate_4]->[crateskin_head_in_hole_u_shakestraight animate_1] again
[> crate crateskin_head_in_hole_u | snake_food] -> [> crate crateskin_head_in_hole_u_shakeleft animate_1 | snake_food] again
[crateskin_head_in_hole_d_shakeright animate_4]->[crateskin_head_in_hole_d]
[crateskin_head_in_hole_d_shakestraight animate_4]->[crateskin_head_in_hole_d_shakeright animate_1] again
[crateskin_head_in_hole_d_shakeleft animate_4]->[crateskin_head_in_hole_d_shakestraight animate_1] again
[> crate crateskin_head_in_hole_d | snake_food] -> [> crate crateskin_head_in_hole_d_shakeleft animate_1 | snake_food] again
[> crate no cratehead_shake | crate_blocker] -> cancel
[> crate | crate_blocker] -> [crate| crate_blocker]
[> player | stationary crate no cratehead_shake ]-> cancel
[> player | stationary crate ]-> [player | crate]
[ > player | neck body] -> [> player snake_try_retreat | neck body]
(track player movement for late stage)
[movement_tracker]->[]
[Player]->[player movement_tracker]
[crate_movement_tracker_start]->[]
[crate] -> [crate crate_movement_tracker_start]
[crate_movement_tracker]->[]
[left crate]->[left crate left crate_movement_trackerl ]
[right crate]->[right crate right crate_movement_trackerr ]
[down crate]->[down crate down crate_movement_trackerd ]
[up crate]->[up crate up crate_movement_trackeru ]
(----------------UPDATE SNAKE-----------)
(add segment behind player)
late left [movement_tracker no player | neck body] -> [movement_tracker bodyl neck | snake_decounter body]
late right [movement_tracker no player | neck body] -> [movement_tracker bodyr neck | snake_decounter body]
late up [movement_tracker no player | neck body] -> [movement_tracker bodyu neck | snake_decounter body]
late down [movement_tracker no player | neck body] -> [movement_tracker bodyd neck | snake_decounter body]
late [snake_food player][snake_decounter]->[snake_food player][]
(emerge from hole)
[> Playersnake hole gone_home] -> [> Playersnake hole neck no gone_home ]
late left [neck no body holesnake | Playersnake] -> [neck bodyr holesnake snake_decounter | playersnake]
late right [neck no body holesnake | Playersnake] -> [neck bodyl holesnake snake_decounter | playersnake]
late up [neck no body holesnake | Playersnake] -> [neck bodyd holesnake snake_decounter | playersnake]
late down [neck no body holesnake | Playersnake] -> [neck bodyu holesnake snake_decounter | playersnake]
(send decounter to the tail)
late left [body | bodyr snake_decounter] -> [body snake_decounter | bodyr]
+ late right [body | bodyl snake_decounter] -> [body snake_decounter | bodyl]
+ late up [body | bodyd snake_decounter] -> [body snake_decounter | bodyd]
+ late down [body | bodyu snake_decounter] -> [body snake_decounter | bodyu]
late [player snake_food][snake_decounter] -> [player snake_food][]
(remove segment at the tail)
late down [bodyd snake_decounter no holesnake| no body] -> [|]
late right [bodyr snake_decounter no holesnake | no body] -> [|]
late left [bodyl snake_decounter no holesnake | no body] -> [|]
late up [bodyu snake_decounter no holesnake | no body] -> [|]
late [player snake_food] -> [player]
(decrement holesnake counter)
late [snake_decounter holesnake60 no going_home] -> [holesnake59]
late [snake_decounter holesnake59 no going_home] -> [holesnake58]
late [snake_decounter holesnake58 no going_home] -> [holesnake57]
late [snake_decounter holesnake57 no going_home] -> [holesnake56]
late [snake_decounter holesnake56 no going_home] -> [holesnake55]
late [snake_decounter holesnake55 no going_home] -> [holesnake54]
late [snake_decounter holesnake54 no going_home] -> [holesnake53]
late [snake_decounter holesnake53 no going_home] -> [holesnake52]
late [snake_decounter holesnake52 no going_home] -> [holesnake51]
late [snake_decounter holesnake51 no going_home] -> [holesnake50]
late [snake_decounter holesnake50 no going_home] -> [holesnake49]
late [snake_decounter holesnake49 no going_home] -> [holesnake48]
late [snake_decounter holesnake48 no going_home] -> [holesnake47]
late [snake_decounter holesnake47 no going_home] -> [holesnake46]
late [snake_decounter holesnake46 no going_home] -> [holesnake45]
late [snake_decounter holesnake45 no going_home] -> [holesnake44]
late [snake_decounter holesnake44 no going_home] -> [holesnake43]
late [snake_decounter holesnake43 no going_home] -> [holesnake42]
late [snake_decounter holesnake42 no going_home] -> [holesnake41]
late [snake_decounter holesnake41 no going_home] -> [holesnake40]
late [snake_decounter holesnake40 no going_home] -> [holesnake39]
late [snake_decounter holesnake39 no going_home] -> [holesnake38]
late [snake_decounter holesnake38 no going_home] -> [holesnake37]
late [snake_decounter holesnake37 no going_home] -> [holesnake36]
late [snake_decounter holesnake36 no going_home] -> [holesnake35]
late [snake_decounter holesnake35 no going_home] -> [holesnake34]
late [snake_decounter holesnake34 no going_home] -> [holesnake33]
late [snake_decounter holesnake33 no going_home] -> [holesnake32]
late [snake_decounter holesnake32 no going_home] -> [holesnake31]
late [snake_decounter holesnake31 no going_home] -> [holesnake30]
late [snake_decounter holesnake30 no going_home] -> [holesnake29]
late [snake_decounter holesnake29 no going_home] -> [holesnake28]
late [snake_decounter holesnake28 no going_home] -> [holesnake27]
late [snake_decounter holesnake27 no going_home] -> [holesnake26]
late [snake_decounter holesnake26 no going_home] -> [holesnake25]
late [snake_decounter holesnake25 no going_home] -> [holesnake24]
late [snake_decounter holesnake24 no going_home] -> [holesnake23]
late [snake_decounter holesnake23 no going_home] -> [holesnake22]
late [snake_decounter holesnake22 no going_home] -> [holesnake21]
late [snake_decounter holesnake21 no going_home] -> [holesnake20]
late [snake_decounter holesnake20 no going_home] -> [holesnake19]
late [snake_decounter holesnake19 no going_home] -> [holesnake18]
late [snake_decounter holesnake18 no going_home] -> [holesnake17]
late [snake_decounter holesnake17 no going_home] -> [holesnake16]
late [snake_decounter holesnake16 no going_home] -> [holesnake15]
late [snake_decounter holesnake15 no going_home] -> [holesnake14]
late [snake_decounter holesnake14 no going_home] -> [holesnake13]
late [snake_decounter holesnake13 no going_home] -> [holesnake12]
late [snake_decounter holesnake12 no going_home] -> [holesnake11]
late [snake_decounter holesnake11 no going_home] -> [holesnake10]
late [snake_decounter holesnake10 no going_home] -> [holesnake9]
late [snake_decounter holesnake9 no going_home] -> [holesnake8]
late [snake_decounter holesnake8 no going_home] -> [holesnake7]
late [snake_decounter holesnake7 no going_home] -> [holesnake6]
late [snake_decounter holesnake6 no going_home] -> [holesnake5]
late [snake_decounter holesnake5 no going_home] -> [holesnake4]
late [snake_decounter holesnake4 no going_home] -> [holesnake3]
late [snake_decounter holesnake3 no going_home] -> [holesnake2]
late [snake_decounter holesnake2 no going_home] -> [holesnake1]
late [snake_decounter holesnake1 no going_home] -> []
late [snake_decounter] -> []
(remove segment when going home)
late [going_home] -> [going_home going_home_removal ]
late down [bodyd | no body][going_home_removal] -> [|][snake_counter] again
late right [bodyr | no body][going_home_removal] -> [|][snake_counter] again
late left [bodyl | no body][going_home_removal] -> [|][snake_counter] again
late up [bodyu | no body][going_home_removal] -> [|][snake_counter] again
late [placeholder_snake hole gone_home no crate] -> [Playersnake hole gone_home]
late [player going_home going_home_removal hole] -> [placeholder_snake gone_home hole] again
late [going_home_removal]->[]
(try to retreat by input)
late [Playersnake snake_try_retreat | body neck] -> [Playersnake | body neck snake_try_retreat]
late right [neck bodyr snake_try_retreat | body no hole][Playersnake][body hole] -> [Playersnake | neck body][][body hole snake_counter]
late left [neck bodyl snake_try_retreat | body no hole][Playersnake][body hole] -> [Playersnake | neck body][][body hole snake_counter]
late up [neck bodyu snake_try_retreat | body no hole][Playersnake][body hole] -> [Playersnake | neck body][][body hole snake_counter]
late down [neck bodyd snake_try_retreat | body no hole][Playersnake][body hole] -> [Playersnake | neck body][][body hole snake_counter]
late left [neck bodyl snake_try_retreat | body hole][Playersnake]-> [Playersnake | neck body hole snake_counter][]
late right [neck bodyr snake_try_retreat | body hole][Playersnake]-> [Playersnake | neck body hole snake_counter][]
late up [neck bodyu snake_try_retreat | body hole][Playersnake]-> [Playersnake | neck body hole snake_counter][]
late down [neck bodyd snake_try_retreat | body hole][Playersnake]-> [Playersnake | neck body hole snake_counter][]
late [neck body snake_try_retreat hole | Playersnake]-> [Playersnake hole snake_counter gone_home snakehead_in_hole_5 | ]
late [snake_try_retreat]->cancel
(do the counter)
late [ snake_counter holesnake59 ]->[ holesnake60]
late [ snake_counter holesnake58 ]->[ holesnake59]
late [ snake_counter holesnake57 ]->[ holesnake58]
late [ snake_counter holesnake56 ]->[ holesnake57]
late [ snake_counter holesnake55 ]->[ holesnake56]
late [ snake_counter holesnake54 ]->[ holesnake55]
late [ snake_counter holesnake53 ]->[ holesnake54]
late [ snake_counter holesnake52 ]->[ holesnake53]
late [ snake_counter holesnake51 ]->[ holesnake52]
late [ snake_counter holesnake50 ]->[ holesnake51]
late [ snake_counter holesnake49 ]->[ holesnake50]
late [ snake_counter holesnake48 ]->[ holesnake49]
late [ snake_counter holesnake47 ]->[ holesnake48]
late [ snake_counter holesnake46 ]->[ holesnake47]
late [ snake_counter holesnake45 ]->[ holesnake46]
late [ snake_counter holesnake44 ]->[ holesnake45]
late [ snake_counter holesnake43 ]->[ holesnake44]
late [ snake_counter holesnake42 ]->[ holesnake43]
late [ snake_counter holesnake41 ]->[ holesnake42]
late [ snake_counter holesnake40 ]->[ holesnake41]
late [ snake_counter holesnake39 ]->[ holesnake40]
late [ snake_counter holesnake38 ]->[ holesnake39]
late [ snake_counter holesnake37 ]->[ holesnake38]
late [ snake_counter holesnake36 ]->[ holesnake37]
late [ snake_counter holesnake35 ]->[ holesnake36]
late [ snake_counter holesnake34 ]->[ holesnake35]
late [ snake_counter holesnake33 ]->[ holesnake34]
late [ snake_counter holesnake32 ]->[ holesnake33]
late [ snake_counter holesnake31 ]->[ holesnake32]
late [ snake_counter holesnake30 ]->[ holesnake31]
late [ snake_counter holesnake29 ]->[ holesnake30]
late [ snake_counter holesnake28 ]->[ holesnake29]
late [ snake_counter holesnake27 ]->[ holesnake28]
late [ snake_counter holesnake26 ]->[ holesnake27]
late [ snake_counter holesnake25 ]->[ holesnake26]
late [ snake_counter holesnake24 ]->[ holesnake25]
late [ snake_counter holesnake23 ]->[ holesnake24]
late [ snake_counter holesnake22 ]->[ holesnake23]
late [ snake_counter holesnake21 ]->[ holesnake22]
late [ snake_counter holesnake20 ]->[ holesnake21]
late [ snake_counter holesnake19 ]->[ holesnake20]
late [ snake_counter holesnake18 ]->[ holesnake19]
late [ snake_counter holesnake17 ]->[ holesnake18]
late [ snake_counter holesnake16 ]->[ holesnake17]
late [ snake_counter holesnake15 ]->[ holesnake16]
late [ snake_counter holesnake14 ]->[ holesnake15]
late [ snake_counter holesnake13 ]->[ holesnake14]
late [ snake_counter holesnake12 ]->[ holesnake13]
late [ snake_counter holesnake11 ]->[ holesnake12]
late [ snake_counter holesnake10 ]->[ holesnake11]
late [ snake_counter holesnake9 ]->[ holesnake10]
late [ snake_counter holesnake8 ]->[ holesnake9]
late [ snake_counter holesnake7 ]->[ holesnake8]
late [ snake_counter holesnake6 ]->[ holesnake7]
late [ snake_counter holesnake5 ]->[ holesnake6]
late [ snake_counter holesnake4 ]->[ holesnake5]
late [ snake_counter holesnake3 ]->[ holesnake4]
late [ snake_counter holesnake2 ]->[ holesnake3]
late [ snake_counter holesnake1 ]->[ holesnake2]
late [ snake_counter no holesnake]->[ holesnake1]
(start going home)
late [player hole no going_home no gone_home] -> [ player hole going_home] again
late [Playersnake] -> [Playersnake snake_is_alone]
late [Playersnake snake_is_alone | body] -> [Playersnake | body]
(----------------UPDATE CRATE-----------)
(mark the tail)
[crateh]->[crateh crate_tail_end]
right [CrateTailR | no cratetail]->[CrateTailR crate_tail_end | ]
left [CrateTaill | no cratetail]->[CrateTaill crate_tail_end | ]
down [CrateTaild | no cratetail]->[CrateTaild crate_tail_end | ]
up [CrateTailu | no cratetail]->[CrateTailu crate_tail_end | ]
(track movement)
late down [crate_movement_tracker_start | crate crate_movement_trackerd] -> [crate_movement_tracker_start | crateu crate_movement_trackerd]
late up [crate_movement_tracker_start | crate crate_movement_trackeru] -> [crate_movement_tracker_start | crated crate_movement_trackeru]
late left [crate_movement_tracker_start | crate crate_movement_trackerl] -> [crate_movement_tracker_start | crater crate_movement_trackerl]
late right [crate_movement_tracker_start | crate crate_movement_trackerr] -> [crate_movement_tracker_start | cratel crate_movement_trackerr]
late right [grow_crate_r | cratel] -> [grow_crate_l | cratel]
late left [grow_crate_l | crater] -> [grow_crate_r | crater]
late up [grow_crate_u | crated] -> [grow_crate_d | crated]
late down [grow_crate_d | crateu] -> [grow_crate_u | crateu]
late down [crate_movement_tracker_start grow_crate_h no target | crate crate_movement_trackerd] -> [crate_movement_tracker_start grow_crate_u | crateu crate_movement_trackerd]
late up [crate_movement_tracker_start grow_crate_h no target | crate crate_movement_trackeru] -> [crate_movement_tracker_start grow_crate_d | crated crate_movement_trackeru]
late left [crate_movement_tracker_start grow_crate_h no target | crate crate_movement_trackerl] -> [cr