Skip to content

Instantly share code, notes, and snippets.

@vexorian
Created June 21, 2021 03:46
Show Gist options
  • Save vexorian/eec902c2a9a05313c973a5aa7903a8ae to your computer and use it in GitHub Desktop.
Save vexorian/eec902c2a9a05313c973a5aa7903a8ae to your computer and use it in GitHub Desktop.
Cohesion Hex 3.72-test for Tilmann (PuzzleScript Script)
Play this game by pasting the script in http://www.puzzlescript.net/editor.html
title Cohesion Hex 3.72-test for Tilmann
(Note always before sharing set SOUND_VOL to 0.05 in the HTML)
( Requires Pancelor's fork : https://pancelor.com/PuzzleScript/editor.html)
(Note remember to thank Tilmann at discord for very usseful bug report.)
author vexorian
homepage vexorian.com
realtime_interval 0.033333
background_color #000000
text_color #6C6862
(debug)
(verbose_logging)
run_rules_on_level_start
(key_repeat_interval 0.15)
norepeat_action
(
zlib License
Copyright (c) 2021, Victor Hugo Soliz Kuncar
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
)
)
========
OBJECTS
========
Background
#1F1F1F #202020 #212121 #222222 #1E1E1E
13304
20234
02024
21034
44444
BlueTarget
blue
0.0.0
.....
0...0
.....
0.0.0
BlueTargetA1
blue
0.0.0
.....
0...0
.....
0.0.0
BlueTargetA2
blue
.0.0.
0...0
.....
0...0
.0.0.
OrangeTarget
orange
0.0.0
.....
0...0
.....
0.0.0
OrangeTargetA1
orange
0.0.0
.....
0...0
.....
0.0.0
OrangeTargetA2
orange
.0.0.
0...0
.....
0...0
.0.0.
Wall
#4A4846 #3E3E3E #56534E #635D56
01012
10201
12201
01122
20012
WallTop
#4D4D4D #5C5A58 #6C6862 #7C756C
01012
.....
.....
.....
.....
WallLeft
#4D4D4D #5C5A58 #6C6862 #7C756C
0....
1....
1....
0....
2....
WallRight
#262626 #2D2D2B #2D2D2B #3D3A35
....2
....1
....1
....2
....2
WallBottom
#262626 #2D2D2B #2D2D2B #3D3A35
.....
.....
.....
.....
20012
PlayerNeutral
transparent
PlayerLeft
transparent
PlayerRight
transparent
PlayerSpriteNeutral
black green #E48F6F #397316
.111.
.123.
10303
.333.
.0.0.
PlayerSpriteLeft
black green #E48F6F #397316
.111.
.233.
1033.
.333.
.0.0.
PlayerSpriteRight
black green #E48F6F #397316
.111.
.132.
.1303
.333.
.0.0.
Skull
#a0a0a0 #c0c0c0 black
.111.
12020
12020
10200
.000.
BlueFlickerR1
#4747FF #000080
.....
.....
..110
.....
.....
BlueFlickerL1
#4747FF #000080
.....
.....
011..
.....
.....
BlueFlickerR2
#ffff00 #000080
.....
.....
..110
.....
.....
BlueFlickerL2
#ffff00 #000080
.....
.....
011..
.....
.....
FlickerR3
#ffff00
.....
....0
.....
.....
.....
FlickerL3
#ffff00
.....
.....
.....
0....
.....
BlueFlickerU1
#4747FF #000080
..0..
..1..
..1..
.....
.....
BlueFlickerD1
#4747FF #000080
.....
.....
..1..
..1..
..0..
BlueFlickerU2
#ffff00 #000080
..0..
..1..
..1..
.....
.....
BlueFlickerD2
#ffff00 #000080
.....
.....
..1..
..1..
..0..
FlickerU3
#ffff00
...0.
.....
.....
.....
.....
FlickerD3
#ffff00
.....
.....
.....
.....
.0...
OrangeFlickerR1
#F2C832 #8F761E
.....
.....
..110
.....
.....
OrangeFlickerL1
#F2C832 #8F761E
.....
.....
011..
.....
.....
OrangeFlickerR2
#ffff00 #8F761E
.....
.....
..110
.....
.....
OrangeFlickerL2
#ffff00 #8F761E
.....
.....
011..
.....
.....
OrangeFlickerU1
#F2C832 #8F761E
..0..
..1..
..1..
.....
.....
OrangeFlickerD1
#F2C832 #8F761E
.....
.....
..1..
..1..
..0..
OrangeFlickerU2
#ffff00 #8F761E
..0..
..1..
..1..
.....
.....
OrangeFlickerD2
#ffff00 #8F761E
.....
.....
..1..
..1..
..0..
BlueBlock
black #0000ff #2E2EFF
22222
21110
21110
21110
00000
BlueChainR___
#4747FF #000080
.....
.....
..011
.....
.....
BlueChain_L__
#4747FF #000080
.....
.....
110..
.....
.....
BlueChain__U_
#4747FF #000080
..1..
..1..
..0..
.....
.....
BlueChain___D
#4747FF #000080
.....
.....
..0..
..1..
..1..
BlueChainRL__
#4747FF #000080
.....
.....
11011
.....
.....
BlueChainR_U_
#4747FF #000080
..1..
..1..
..011
.....
.....
BlueChainR__D
#4747FF #000080
.....
.....
..011
..1..
..1..
BlueChain_LU_
#4747FF #000080
..1..
..1..
110..
.....
.....
BlueChain_L_D
#4747FF #000080
.....
.....
110..
..1..
..1..
BlueChain__UD
#4747FF #000080
..1..
..1..
..0..
..1..
..1..
ChainStressed
transparent
ChainStressedA1
transparent
ChainStressedA2
red
.....
.....
..0..
.....
.....
BlueDoorClosed
#2020FF #8080FF #0000c0
.1.1.
10002
.0.0.
10002
.2.2.
BlueDoorOpen
#2020FF #4747FF #0000c0
.....
.00..
.01..
.....
.....
BlueDoor
transparent
BlueTrap
transparent
BlueDoorEditorSprite
#0000FF
.000.
.0..0
.0..0
.0..0
.000.
BlueTrapEditorSprite
#0000FF
00000
..0..
..0..
..0..
..0..
BlueNone
transparent
BlueAll
transparent
BlueNotAll
transparent
OrangeBlock
#1F1B07 #F29432 #F2CBA4
22222
21110
21110
21110
00000
OrangeChainR___
#F2C832 #8F761E
.....
.....
..011
.....
.....
OrangeChain_L__
#F2C832 #8F761E
.....
.....
110..
.....
.....
OrangeChain__U_
#F2C832 #8F761E
..1..
..1..
..0..
.....
.....
OrangeChain___D
#F2C832 #8F761E
.....
.....
..0..
..1..
..1..
OrangeChainRL__
#F2C832 #8F761E
.....
.....
11011
.....
.....
OrangeChainR_U_
#F2C832 #8F761E
..1..
..1..
..011
.....
.....
OrangeChainR__D
#F2C832 #8F761E
.....
.....
..011
..1..
..1..
OrangeChain_LU_
#F2C832 #8F761E
..1..
..1..
110..
.....
.....
OrangeChain_L_D
#F2C832 #8F761E
.....
.....
110..
..1..
..1..
OrangeChain__UD
#F2C832 #8F761E
..1..
..1..
..0..
..1..
..1..
OrangeDoorClosed
#FF9F20 #FFB553 #DB5600
.1.1.
10002
.0.0.
10002
.2.2.
OrangeDoorOpen
#FF9F20 #FFB553
.....
.00..
.01..
.....
.....
OrangeDoor
transparent
OrangeTrap
transparent
OrangeDoorEditorSprite
#FF9F20
.000.
.0..0
.0..0
.0..0
.000.
OrangeTrapEditorSprite
#FF9F20
00000
..0..
..0..
..0..
..0..
OrangeNone
transparent
OrangeAll
transparent
OrangeNotAll
transparent
BlueDebt
transparent
.....
..0..
.000.
..0..
.....
BlueSecondDebt
blue
.....
.0.0.
.....
.0.0.
.....
BlueNoDebt
red
00000
0...0
0...0
0...0
00000
BlueDeletedOne
orange
.....
.000.
.0.0.
.000.
.....
OrangeDebt
transparent
.....
..0..
.000.
..0..
.....
OrangeSecondDebt
blue
.....
.0.0.
.....
.0.0.
.....
OrangeNoDebt
red
00000
0...0
0...0
0...0
00000
OrangeDeletedOne
orange
.....
.000.
.0.0.
.000.
.....
Exit
#321C12 #995636 #E8D90E #B66740
.000.
01310
01320
01310
00000
DoneExit
#321C12 #000000 #B66740
.000.
02110
02110
02110
02110
AutoExit
transparent
StuckSkullR
transparent
StuckSkullL
transparent
StuckSkullU
transparent
StuckSkullD
transparent
Tic0
transparent
Tic1
transparent
Tic2
transparent
Tic3
transparent
Tic4
transparent
Tic5
transparent
Tic6
transparent
Tic7
transparent
Tic8
transparent
Tic9
transparent
Tic10
transparent
Tic11
transparent
PlayerStuckR
transparent
PlayerStuckL
transparent
PlayerStuckU
transparent
PlayerStuckD
transparent
TopLeft
transparent
=======
LEGEND
=======
. = Background
# = Wall
P = PlayerNeutral and PlayerSpriteNeutral
o = BlueBlock
@ = BlueTarget
q = OrangeBlock
$ = OrangeTarget
Z = Skull
L = BlueBlock and BlueChain_L__
S = Skull and BlueChainR___
~ = Skull and BlueChain_L__
R = BlueBlock and BlueChainR___
U = BlueBlock and BlueChain__U_
D = BlueBlock and BlueChain___D
H = BlueChainRL__
V = BlueChain__UD
/ = BlueChainR__D
\ = BlueChainR_U_
C = OrangeChainR__D
N = OrangeChainR_U_
4 = OrangeBlock and OrangeChain_L__
6 = OrangeBlock and OrangeChainR___
8 = OrangeBlock and OrangeChain__U_
2 = OrangeBlock and OrangeChain___D
| = OrangeChain__UD
I = OrangeChain__UD and OrangeTarget
- = OrangeChainRL__
K = BlueDoor and BlueDoorEditorSprite
J = BlueTrap and BlueTrapEditorSprite
A = OrangeDoor and OrangeDoorEditorSprite
B = OrangeTrap and OrangeTrapEditorSprite
E = Wall and Exit
W = Wall and BlueChainRL__
X = AutoExit and Background
Player = PlayerLeft or PlayerRight or PlayerNeutral
PlayerSprite = PlayerSpriteLeft or PlayerSpriteRight or PlayerSpriteNeutral
BlueChainExtreme = BlueChainR___ or BlueChain_L__ or BlueChain__U_ or BlueChain___D
BlueChainWithR = BlueChainR___ or BlueChainRL__ or BlueChainR_U_ or BlueChainR__D
BlueChainWithL = BlueChainRL__ or BlueChain_L__ or BlueChain_LU_ or BlueChain_L_D
BlueChainWithU = BlueChainR_U_ or BlueChain_LU_ or BlueChain__U_ or BlueChain__UD
BlueChainWithD = BlueChainR__D or BlueChain_L_D or BlueChain__UD or BlueChain___D
BlueChainWithH = BlueChainWithR or BlueChainWithL
BlueChainWithV = BlueChainWithU or BlueChainWithD
BlueChain = BlueChainWithH or BlueChainWithV
OrangeChainExtreme = OrangeChainR___ or OrangeChain_L__ or OrangeChain__U_ or OrangeChain___D
OrangeChainWithR = OrangeChainR___ or OrangeChainRL__ or OrangeChainR_U_ or OrangeChainR__D
OrangeChainWithL = OrangeChainRL__ or OrangeChain_L__ or OrangeChain_LU_ or OrangeChain_L_D
OrangeChainWithU = OrangeChainR_U_ or OrangeChain_LU_ or OrangeChain__U_ or OrangeChain__UD
OrangeChainWithD = OrangeChainR__D or OrangeChain_L_D or OrangeChain__UD or OrangeChain___D
OrangeChainWithH = OrangeChainWithR or OrangeChainWithL
OrangeChainWithV = OrangeChainWithU or OrangeChainWithD
OrangeChain = OrangeChainWithH or OrangeChainWithV
ClosedDoor = BlueDoorClosed or OrangeDoorClosed
Block = BlueBlock or OrangeBlock or Skull
Blocker = Block or Player or Wall or ClosedDoor
BlueDebtOrNot = BlueDebt or BlueNoDebt
OrangeDebtOrNot = OrangeDebt or OrangeNoDebt
DeletedOne = BlueDeletedOne or OrangeDeletedOne
EditorSprite = BlueDoorEditorSprite or BlueTrapEditorSprite or OrangeDoorEditorSprite or OrangeTrapEditorSprite
BlueTrapOrDoor = BlueTrap or BlueDoor
OrangeTrapOrDoor = OrangeTrap or OrangeDoor
StuckSkull = StuckSkullL or StuckSkullR or StuckSkullU or StuckSkullD
Flicker = BlueFlickerR1 or BlueFlickerL1 or BlueFlickerD1 or BlueFlickerU1 or BlueFlickerR2 or BlueFlickerL2 or BlueFlickerD2 or BlueFlickerU2 or FlickerR3 or FlickerL3 or FlickerD3 or FlickerU3 or OrangeFlickerR1 or OrangeFlickerL1 or OrangeFlickerD1 or OrangeFlickerU1 or OrangeFlickerR2 or OrangeFlickerL2 or OrangeFlickerD2 or OrangeFlickerU2 or FlickerR3 or FlickerL3
Tic = Tic0 or Tic1 or Tic2 or Tic3 or Tic4 or Tic5 or Tic6 or Tic7 or Tic8 or Tic9 or Tic10 or Tic11
TicM2 = Tic0 or Tic2 or Tic4 or Tic6 or Tic8 or Tic10
TicN3 = Tic0 or Tic2 or Tic3 or Tic5 or Tic6 or Tic8 or Tic9 or Tic11
TicM3 = Tic0 or Tic3 or Tic6 or Tic9
TicM4 = Tic0 or Tic4 or Tic8
TicM6 = Tic0 or Tic6
BlueTargetA = BlueTargetA1 or BlueTargetA2
OrangeTargetA = OrangeTargetA1 or OrangeTargetA2
PlayerStuck = PlayerStuckR or PlayerStuckL or PlayerStuckU or PlayerStuckD
=======
SOUNDS
=======
SFX1 43792707 (push)
SFX2 57039908 (delete)
SFX3 65197704 (close)
SFX4 83104507 (open)
SFX5 764900 (exit)
SFX6 21292101 (flicker)
SFX7 88629308 (rubber band)
SFX8 88629308 (debt created)
================
COLLISIONLAYERS
================
Background
AutoExit
BlueTarget
OrangeTarget
BlueDoor, BlueTrap, OrangeDoor, OrangeTrap
BlueDoorOpen, OrangeDoorOpen
Wall, Player, Block, BlueDoorClosed, OrangeDoorClosed
WallTop
WallRight
WallLeft
WallBottom
Exit, DoneExit
BlueChain
OrangeChain
ChainStressedA1, ChainStressedA2
Flicker
PlayerSprite
BlueDebt, BlueNoDebt
OrangeDebt, OrangeNoDebt
BlueDeletedOne
orangeDeletedOne
BlueSecondDebt
OrangeSecondDebt
EditorSprite
BlueNone
BlueAll
BlueNotAll
OrangeNone
OrangeAll
OrangeNotAll
StuckSkull
TopLeft
Tic
BlueTargetA
OrangeTargetA
PlayerStuck
ChainStressed
======
RULES
======
[ TopLeft ] -> []
up [ Background | ] -> [ action Background | ]
left [ Background | ] -> [ action Background | ]
[ stationary Background ] -> [ Background TopLeft ]
[ Tic no TopLeft ] -> [ ]
[ Tic11 ] -> [ ]
[ Tic10 ] -> [ Tic11 ]
[ Tic9 ] -> [ Tic10 ]
[ Tic8 ] -> [ Tic9 ]
[ Tic7 ] -> [ Tic8 ]
[ Tic6 ] -> [ Tic7 ]
[ Tic5 ] -> [ Tic6 ]
[ Tic4 ] -> [ Tic5 ]
[ Tic3 ] -> [ Tic4 ]
[ Tic2 ] -> [ Tic3 ]
[ Tic1 ] -> [ Tic2 ]
[ Tic0 ] -> [ Tic1 ]
[ TopLeft no Tic ] -> [TopLeft Tic0 ]
( redo the movements )
[ stationary Player PlayerStuckR ] -> [ right Player ]
[ stationary Player PlayerStuckL ] -> [ left Player ]
[ stationary Player PlayerStuckD ] -> [ down Player ]
[ stationary Player PlayerStuckU ] -> [ up Player ]
[ PlayerStuck ] -> []
[ TicN3 ][ right Player ] -> [ TicN3 ][ stationary Player PlayerStuckR ]
[ TicN3 ][ left Player ] -> [ TicN3 ][ stationary Player PlayerStuckL ]
[ TicN3 ][ up Player ] -> [ TicN3 ][ stationary Player PlayerStuckU ]
[ TicN3 ][ down Player ] -> [ TicN3 ][ stationary Player PlayerStuckD ]
(Win)
[ DoneExit ] -> win
[ > Player | Exit ] -> [ | DoneExit ] sfx5
[ AutoExit ] -> win
(Decorative Rules)
[ EditorSprite ] -> []
up [ Wall | no Wall ] -> [ Wall WallTop | no Wall ]
down [ Wall | no Wall ] -> [ Wall WallBottom | no Wall ]
right[ Wall | no Wall ] -> [ Wall WallRight | no Wall ]
left [ Wall | no Wall ] -> [ Wall WallLeft | no Wall ]
[ PlayerSprite ] -> []
[ vertical Player ] -> [ vertical PlayerNeutral ]
[ left Player ] -> [ left PlayerLeft ]
[ right Player ] -> [ right PlayerRight ]
late [ PlayerNeutral ] -> [ PlayerSpriteNeutral PlayerNeutral ]
late [ PlayerLeft ] -> [ PlayerSpriteLeft PlayerLeft ]
late [ PlayerRight ] -> [ PlayerSpriteRight PlayerRight ]
[TicM2][ FlickerR3 ]-> [TicM2][]
[TicM2][ FlickerL3 ]-> [TicM2][]
[TicM2][ FlickerU3 ]-> [TicM2][]
[TicM2][ FlickerD3 ]-> [TicM2][]
[TicM4][ BlueFlickerR2 ]-> [TicM4][FlickerR3]
[TicM4][ BlueFlickerL2 ]-> [TicM4][FlickerL3]
[TicM4][ BlueFlickerU2 ]-> [TicM4][FlickerU3]
[TicM4][ BlueFlickerD2 ]-> [TicM4][FlickerD3]
[TicM4][ OrangeFlickerR2 ]-> [TicM4][FlickerR3]
[TicM4][ OrangeFlickerL2 ]-> [TicM4][FlickerL3]
[TicM4][ OrangeFlickerU2 ]-> [TicM4][FlickerU3]
[TicM4][ OrangeFlickerD2 ]-> [TicM4][FlickerD3]
[TicM4][ BlueFlickerR1 ]-> [TicM4][BlueFlickerR2]
[TicM4][ BlueFlickerL1 ]-> [TicM4][BlueFlickerL2]
[TicM4][ BlueFlickerU1 ]-> [TicM4][BlueFlickerU2]
[TicM4][ BlueFlickerD1 ]-> [TicM4][BlueFlickerD2]
[TicM4][ OrangeFlickerR1 ]-> [TicM4][OrangeFlickerR2]
[TicM4][ OrangeFlickerL1 ]-> [TicM4][OrangeFlickerL2]
[TicM4][ OrangeFlickerU1 ]-> [TicM4][OrangeFlickerU2]
[TicM4][ OrangeFlickerD1 ]-> [TicM4][OrangeFlickerD2]
(Pressure)
[ Block BlueChainR___ BlueDebt ] -> [ BlueChainR___ right Block BlueDebt ]
[ Block BlueChain_L__ BlueDebt ] -> [ BlueChain_L__ left Block BlueDebt ]
[ Block BlueChain__U_ BlueDebt ] -> [ BlueChain__U_ up Block BlueDebt ]
[ Block BlueChain___D BlueDebt ] -> [ BlueChain___D down Block BlueDebt ]
[ Block OrangeChainR___ OrangeDebt ] -> [ OrangeChainR___ right Block OrangeDebt ]
[ Block OrangeChain_L__ OrangeDebt ] -> [ OrangeChain_L__ left Block OrangeDebt ]
[ Block OrangeChain__U_ OrangeDebt ] -> [ OrangeChain__U_ up Block OrangeDebt ]
[ Block OrangeChain___D OrangeDebt ] -> [ OrangeChain___D down Block OrangeDebt ]
( Stuck Skull)
[ StuckSkullL Skull ] -> [ left Skull ]
[ StuckSkullR Skull ] -> [ right Skull ]
[ StuckSkullU Skull ] -> [ up Skull ]
[ StuckSkullD Skull ] -> [ down Skull ]
[ StuckSkull ] -> []
(Push: at this point so that it undoes the pressure)
[ > Player | Block no Skull ] -> [ > Player | > Block ] sfx1
startloop
[ > Skull | stationary Block ] -> [ > Skull | > Block ]
endloop
( contradiction )
right [ right Block BlueChain no BlueChainWithR | BlueChain ] -> [ Block BlueChain BlueFlickerR1 | BlueFlickerL1 BlueChain ] sfx6
left [ left Block BlueChain no BlueChainWithL | BlueChain ] -> [ Block BlueChain BlueFlickerL1 | BlueFlickerR1 BlueChain ] sfx6
up [ up Block BlueChain no BlueChainWithU | BlueChain ] -> [ Block BlueChain BlueFlickerU1 | BlueFlickerD1 BlueChain ] sfx6
down [ down Block BlueChain no BlueChainWithD | BlueChain ] -> [ Block BlueChain BlueFlickerD1 | BlueFlickerU1 BlueChain ] sfx6
right [ right Block OrangeChain no OrangeChainWithR | OrangeChain ] -> [ Block OrangeChain OrangeFlickerR1 | OrangeFlickerL1 OrangeChain ] sfx6
left [ left Block OrangeChain no OrangeChainWithL | OrangeChain ] -> [ Block OrangeChain OrangeFlickerL1 | OrangeFlickerR1 OrangeChain ] sfx6
up [ up Block OrangeChain no OrangeChainWithU | OrangeChain ] -> [ Block OrangeChain OrangeFlickerU1 | OrangeFlickerD1 OrangeChain ] sfx6
down [ down Block OrangeChain no OrangeChainWithD | OrangeChain ] -> [ Block OrangeChain OrangeFlickerD1 | OrangeFlickerU1 OrangeChain ] sfx6
[ no BlueDebt ] -> [ BlueNoDebt ]
[ no OrangeDebt ] -> [ OrangeNoDebt ]
(Delete chain)
right [ BlueChainR___ right Block BlueDebtOrNot | no Blocker BlueChainRL__ ] -> [ | BlueChainR___ Block BlueDeletedOne ]
left [ BlueChain_L__ left Block BlueDebtOrNot | no Blocker BlueChainRL__ ] -> [ | BlueChain_L__ Block BlueDeletedOne ]
up [ BlueChain__U_ up Block BlueDebtOrNot | no Blocker BlueChain__UD ] -> [ | BlueChain__U_ Block BlueDeletedOne ]
down [ BlueChain___D down Block BlueDebtOrNot | no Blocker BlueChain__UD ] -> [ | BlueChain___D Block BlueDeletedOne ]
right [ OrangeChainR___ right Block OrangeDebtOrNot | no Blocker OrangeChainRL__ ] -> [ | OrangeChainR___ Block OrangeDeletedOne ]
left [ OrangeChain_L__ left Block OrangeDebtOrNot | no Blocker OrangeChainRL__ ] -> [ | OrangeChain_L__ Block OrangeDeletedOne ]
up [ OrangeChain__U_ up Block OrangeDebtOrNot | no Blocker OrangeChain__UD ] -> [ | OrangeChain__U_ Block OrangeDeletedOne ]
down [ OrangeChain___D down Block OrangeDebtOrNot | no Blocker OrangeChain__UD ] -> [ | OrangeChain___D Block OrangeDeletedOne ]
(Delete chain and rotate )
right [ BlueChainR___ right Block BlueDebtOrNot | no Blocker BlueChain_LU_ ] -> [ | BlueChain__U_ Block BlueDeletedOne ]
right [ BlueChainR___ right Block BlueDebtOrNot | no Blocker BlueChain_L_D ] -> [ | BlueChain___D Block BlueDeletedOne ]
left [ BlueChain_L__ left Block BlueDebtOrNot | no Blocker BlueChainR_U_ ] -> [ | BlueChain__U_ Block BlueDeletedOne ]
left [ BlueChain_L__ left Block BlueDebtOrNot | no Blocker BlueChainR__D ] -> [ | BlueChain___D Block BlueDeletedOne ]
up [ BlueChain__U_ up Block BlueDebtOrNot | no Blocker BlueChainR__D ] -> [ | BlueChainR___ Block BlueDeletedOne ]
up [ BlueChain__U_ up Block BlueDebtOrNot | no Blocker BlueChain_L_D ] -> [ | BlueChain_L__ Block BlueDeletedOne ]
down [ BlueChain___D down Block BlueDebtOrNot | no Blocker BlueChainR_U_ ] -> [ | BlueChainR___ Block BlueDeletedOne ]
down [ BlueChain___D down Block BlueDebtOrNot | no Blocker BlueChain_LU_ ] -> [ | BlueChain_L__ Block BlueDeletedOne ]
right [ OrangeChainR___ right Block OrangeDebtOrNot | no Blocker OrangeChain_LU_ ] -> [ | OrangeChain__U_ Block OrangeDeletedOne ]
right [ OrangeChainR___ right Block OrangeDebtOrNot | no Blocker OrangeChain_L_D ] -> [ | OrangeChain___D Block OrangeDeletedOne ]
left [ OrangeChain_L__ left Block OrangeDebtOrNot | no Blocker OrangeChainR_U_ ] -> [ | OrangeChain__U_ Block OrangeDeletedOne ]
left [ OrangeChain_L__ left Block OrangeDebtOrNot | no Blocker OrangeChainR__D ] -> [ | OrangeChain___D Block OrangeDeletedOne ]
up [ OrangeChain__U_ up Block OrangeDebtOrNot | no Blocker OrangeChainR__D ] -> [ | OrangeChainR___ Block OrangeDeletedOne ]
up [ OrangeChain__U_ up Block OrangeDebtOrNot | no Blocker OrangeChain_L_D ] -> [ | OrangeChain_L__ Block OrangeDeletedOne ]
down [ OrangeChain___D down Block OrangeDebtOrNot | no Blocker OrangeChainR_U_ ] -> [ | OrangeChainR___ Block OrangeDeletedOne ]
down [ OrangeChain___D down Block OrangeDebtOrNot | no Blocker OrangeChain_LU_ ] -> [ | OrangeChain_L__ Block OrangeDeletedOne ]
(Opposite)
left [ BlueChainR___ left Block | no Blocker ] -> [ BlueChainRL__ | BlueChainR___ Block BlueDebt ]
right [ BlueChain_L__ right Block | no Blocker ] -> [ BlueChainRL__ | BlueChain_L__ Block BlueDebt ]
down [ BlueChain__U_ down Block | no Blocker ] -> [ BlueChain__UD | BlueChain__U_ Block BlueDebt ]
up [ BlueChain___D up Block | no Blocker ] -> [ BlueChain__UD | BlueChain___D Block BlueDebt ]
left [ OrangeChainR___ left Block | no Blocker ] -> [ OrangeChainRL__ | OrangeChainR___ Block OrangeDebt ]
right [ OrangeChain_L__ right Block | no Blocker ] -> [ OrangeChainRL__ | OrangeChain_L__ Block OrangeDebt ]
down [ OrangeChain__U_ down Block | no Blocker ] -> [ OrangeChain__UD | OrangeChain__U_ Block OrangeDebt ]
up [ OrangeChain___D up Block | no Blocker ] -> [ OrangeChain__UD | OrangeChain___D Block OrangeDebt ]
(Sides)
( - R)
up [ BlueChainR___ up Block | no Blocker ] -> [ BlueChainR_U_ | BlueChain___D Block BlueDebt ]
down [ BlueChainR___ down Block | no Blocker ] -> [ BlueChainR__D | BlueChain__U_ Block BlueDebt ]
up [ OrangeChainR___ up Block | no Blocker ] -> [ OrangeChainR_U_ | OrangeChain___D Block OrangeDebt ]
down [ OrangeChainR___ down Block | no Blocker ] -> [ OrangeChainR__D | OrangeChain__U_ Block OrangeDebt ]
( - L)
up [ BlueChain_L__ up Block | no Blocker ] -> [ BlueChain_LU_ | BlueChain___D Block BlueDebt ]
down [ BlueChain_L__ down Block | no Blocker ] -> [ BlueChain_L_D | BlueChain__U_ Block BlueDebt ]
up [ OrangeChain_L__ up Block | no Blocker ] -> [ OrangeChain_LU_ | OrangeChain___D Block OrangeDebt ]
down [ OrangeChain_L__ down Block | no Blocker ] -> [ OrangeChain_L_D | OrangeChain__U_ Block OrangeDebt ]
( - U)
left [ BlueChain__U_ left Block | no Blocker ] -> [ BlueChain_LU_ | BlueChainR___ Block BlueDebt ]
right[ BlueChain__U_ right Block | no Blocker ] -> [ BlueChainR_U_ | BlueChain_L__ Block BlueDebt ]
left [ OrangeChain__U_ left Block | no Blocker ] -> [ OrangeChain_LU_ | OrangeChainR___ Block OrangeDebt ]
right[ OrangeChain__U_ right Block | no Blocker ] -> [ OrangeChainR_U_ | OrangeChain_L__ Block OrangeDebt ]
( - D)
left [ BlueChain___D left Block | no Blocker ] -> [ BlueChain_L_D | BlueChainR___ Block BlueDebt ]
right[ BlueChain___D right Block | no Blocker ] -> [ BlueChainR__D | BlueChain_L__ Block BlueDebt ]
left [ OrangeChain___D left Block | no Blocker ] -> [ OrangeChain_L_D | OrangeChainR___ Block OrangeDebt ]
right[ OrangeChain___D right Block | no Blocker ] -> [ OrangeChainR__D | OrangeChain_L__ Block OrangeDebt ]
( Cancel debt moves)
right [ > Skull | Blocker ] -> [ Skull StuckSkullR | Blocker ]
left [ > Skull | Blocker ] -> [ Skull StuckSkullL | Blocker ]
up [ > Skull | Blocker ] -> [ Skull StuckSkullU | Blocker ]
down [ > Skull | Blocker ] -> [ Skull StuckSkullD | Blocker ]
[ > Block | moving Blocker ] -> [ Block | moving Blocker ]
[ > Block | stationary Blocker ] -> [ Block | stationary Blocker ]
[ > Block BlueChainExtreme ] -> [ Block BlueChainExtreme ]
[ > Block OrangeChainExtreme ] -> [ Block OrangeChainExtreme ]
[ > Player | No Blocker ] -> [ | Player ]
(Reverse move)
[ BlueDebt BlueChainExtreme no BlueDeletedOne ] -> [ BlueDebt BlueChainExtreme BlueSecondDebt ]
[ OrangeDebt OrangeChainExtreme no OrangeDeletedOne ] -> [ OrangeDebt OrangeChainExtreme OrangeSecondDebt ]
startloop
right [ BlueSecondDebt BlueChainWithR | BlueChain no BlueSecondDebt ] -> [ BlueSecondDebt BlueChainWithR | BlueChain BlueSecondDebt ]
left [ BlueSecondDebt BlueChainWithL | BlueChain no BlueSecondDebt ] -> [ BlueSecondDebt BlueChainWithL | BlueChain BlueSecondDebt ]
up [ BlueSecondDebt BlueChainWithU | BlueChain no BlueSecondDebt ] -> [ BlueSecondDebt BlueChainWithU | BlueChain BlueSecondDebt ]
down [ BlueSecondDebt BlueChainWithD | BlueChain no BlueSecondDebt ] -> [ BlueSecondDebt BlueChainWithD | BlueChain BlueSecondDebt ]
right [ OrangeSecondDebt OrangeChainWithR | OrangeChain no OrangeSecondDebt ] -> [ OrangeSecondDebt OrangeChainWithR | OrangeChain OrangeSecondDebt ]
left [ OrangeSecondDebt OrangeChainWithL | OrangeChain no OrangeSecondDebt ] -> [ OrangeSecondDebt OrangeChainWithL | OrangeChain OrangeSecondDebt ]
up [ OrangeSecondDebt OrangeChainWithU | OrangeChain no OrangeSecondDebt ] -> [ OrangeSecondDebt OrangeChainWithU | OrangeChain OrangeSecondDebt ]
down [ OrangeSecondDebt OrangeChainWithD | OrangeChain no OrangeSecondDebt ] -> [ OrangeSecondDebt OrangeChainWithD | OrangeChain OrangeSecondDebt ]
endloop
[ Block BlueChainR___ BlueSecondDebt no BlueDebt ] -> [ right Block BlueChainR___ BlueSecondDebt no BlueDebt ]
[ Block BlueChain_L__ BlueSecondDebt no BlueDebt ] -> [ left Block BlueChain_L__ BlueSecondDebt no BlueDebt ]
[ Block BlueChain__U_ BlueSecondDebt no BlueDebt ] -> [ up Block BlueChain__U_ BlueSecondDebt no BlueDebt ]
[ Block BlueChain___D BlueSecondDebt no BlueDebt ] -> [ down Block BlueChain___D BlueSecondDebt no BlueDebt ]
[ Block OrangeChainR___ OrangeSecondDebt no OrangeDebt ] -> [ right Block OrangeChainR___ OrangeSecondDebt no OrangeDebt ]
[ Block OrangeChain_L__ OrangeSecondDebt no OrangeDebt ] -> [ left Block OrangeChain_L__ OrangeSecondDebt no OrangeDebt ]
[ Block OrangeChain__U_ OrangeSecondDebt no OrangeDebt ] -> [ up Block OrangeChain__U_ OrangeSecondDebt no OrangeDebt ]
[ Block OrangeChain___D OrangeSecondDebt no OrangeDebt ] -> [ down Block OrangeChain___D OrangeSecondDebt no OrangeDebt ]
[ BlueDeletedOne ] -> [] SFX2
[ OrangeDeletedOne ] -> [] SFX2
(Delete second debt chain)
right [ BlueChainR___ right Block BlueSecondDebt | no Blocker BlueChainRL__ ] -> [ | BlueChainR___ Block BlueDeletedOne BlueSecondDebt ]
left [ BlueChain_L__ left Block BlueSecondDebt | no Blocker BlueChainRL__ ] -> [ | BlueChain_L__ Block BlueDeletedOne BlueSecondDebt ]
up [ BlueChain__U_ up Block BlueSecondDebt | no Blocker BlueChain__UD ] -> [ | BlueChain__U_ Block BlueDeletedOne BlueSecondDebt ]
down [ BlueChain___D down Block BlueSecondDebt | no Blocker BlueChain__UD ] -> [ | BlueChain___D Block BlueDeletedOne BlueSecondDebt ]
right [ OrangeChainR___ right Block OrangeSecondDebt | no Blocker OrangeChainRL__ ] -> [ | OrangeChainR___ Block OrangeDeletedOne OrangeSecondDebt ]
left [ OrangeChain_L__ left Block OrangeSecondDebt | no Blocker OrangeChainRL__ ] -> [ | OrangeChain_L__ Block OrangeDeletedOne OrangeSecondDebt ]
up [ OrangeChain__U_ up Block OrangeSecondDebt | no Blocker OrangeChain__UD ] -> [ | OrangeChain__U_ Block OrangeDeletedOne OrangeSecondDebt ]
down [ OrangeChain___D down Block OrangeSecondDebt | no Blocker OrangeChain__UD ] -> [ | OrangeChain___D Block OrangeDeletedOne OrangeSecondDebt ]
(Delete chain and rotate )
right [ BlueChainR___ right Block BlueSecondDebt | no Blocker BlueChain_LU_ ] -> [ | BlueChain__U_ Block BlueDeletedOne BlueSecondDebt ]
right [ BlueChainR___ right Block BlueSecondDebt | no Blocker BlueChain_L_D ] -> [ | BlueChain___D Block BlueDeletedOne BlueSecondDebt ]
left [ BlueChain_L__ left Block BlueSecondDebt | no Blocker BlueChainR_U_ ] -> [ | BlueChain__U_ Block BlueDeletedOne BlueSecondDebt ]
left [ BlueChain_L__ left Block BlueSecondDebt | no Blocker BlueChainR__D ] -> [ | BlueChain___D Block BlueDeletedOne BlueSecondDebt ]
up [ BlueChain__U_ up Block BlueSecondDebt | no Blocker BlueChainR__D ] -> [ | BlueChainR___ Block BlueDeletedOne BlueSecondDebt ]
up [ BlueChain__U_ up Block BlueSecondDebt | no Blocker BlueChain_L_D ] -> [ | BlueChain_L__ Block BlueDeletedOne BlueSecondDebt ]
down [ BlueChain___D down Block BlueSecondDebt | no Blocker BlueChainR_U_ ] -> [ | BlueChainR___ Block BlueDeletedOne BlueSecondDebt ]
down [ BlueChain___D down Block BlueSecondDebt | no Blocker BlueChain_LU_ ] -> [ | BlueChain_L__ Block BlueDeletedOne BlueSecondDebt ]
right [ OrangeChainR___ right Block OrangeSecondDebt | no Blocker OrangeChain_LU_ ] -> [ | OrangeChain__U_ Block OrangeDeletedOne OrangeSecondDebt ]
right [ OrangeChainR___ right Block OrangeSecondDebt | no Blocker OrangeChain_L_D ] -> [ | OrangeChain___D Block OrangeDeletedOne OrangeSecondDebt ]
left [ OrangeChain_L__ left Block OrangeSecondDebt | no Blocker OrangeChainR_U_ ] -> [ | OrangeChain__U_ Block OrangeDeletedOne OrangeSecondDebt ]
left [ OrangeChain_L__ left Block OrangeSecondDebt | no Blocker OrangeChainR__D ] -> [ | OrangeChain___D Block OrangeDeletedOne OrangeSecondDebt ]
up [ OrangeChain__U_ up Block OrangeSecondDebt | no Blocker OrangeChainR__D ] -> [ | OrangeChainR___ Block OrangeDeletedOne OrangeSecondDebt ]
up [ OrangeChain__U_ up Block OrangeSecondDebt | no Blocker OrangeChain_L_D ] -> [ | OrangeChain_L__ Block OrangeDeletedOne OrangeSecondDebt ]
down [ OrangeChain___D down Block OrangeSecondDebt | no Blocker OrangeChainR_U_ ] -> [ | OrangeChainR___ Block OrangeDeletedOne OrangeSecondDebt ]
down [ OrangeChain___D down Block OrangeSecondDebt | no Blocker OrangeChain_LU_ ] -> [ | OrangeChain_L__ Block OrangeDeletedOne OrangeSecondDebt ]
startloop
right [ BlueSecondDebt BlueChainWithR BlueDeletedOne No BlueDebt | BlueSecondDebt BlueChain no BlueDeletedOne ] -> [ BlueSecondDebt BlueChainWithR BlueDeletedOne | BlueSecondDebt BlueChain BlueDeletedOne ]
left [ BlueSecondDebt BlueChainWithL BlueDeletedOne No BlueDebt | BlueSecondDebt BlueChain no BlueDeletedOne ] -> [ BlueSecondDebt BlueChainWithL BlueDeletedOne | BlueSecondDebt BlueChain BlueDeletedOne ]
up [ BlueSecondDebt BlueChainWithU BlueDeletedOne No BlueDebt | BlueSecondDebt BlueChain no BlueDeletedOne ] -> [ BlueSecondDebt BlueChainWithU BlueDeletedOne | BlueSecondDebt BlueChain BlueDeletedOne ]
down [ BlueSecondDebt BlueChainWithD BlueDeletedOne No BlueDebt | BlueSecondDebt BlueChain no BlueDeletedOne ] -> [ BlueSecondDebt BlueChainWithD BlueDeletedOne | BlueSecondDebt BlueChain BlueDeletedOne ]
right [ OrangeSecondDebt OrangeChainWithR OrangeDeletedOne No OrangeDebt | OrangeSecondDebt OrangeChain no OrangeDeletedOne ] -> [ OrangeSecondDebt OrangeChainWithR OrangeDeletedOne | OrangeSecondDebt OrangeChain OrangeDeletedOne ]
left [ OrangeSecondDebt OrangeChainWithL OrangeDeletedOne No OrangeDebt | OrangeSecondDebt OrangeChain no OrangeDeletedOne ] -> [ OrangeSecondDebt OrangeChainWithL OrangeDeletedOne | OrangeSecondDebt OrangeChain OrangeDeletedOne ]
up [ OrangeSecondDebt OrangeChainWithU OrangeDeletedOne No OrangeDebt | OrangeSecondDebt OrangeChain no OrangeDeletedOne ] -> [ OrangeSecondDebt OrangeChainWithU OrangeDeletedOne | OrangeSecondDebt OrangeChain OrangeDeletedOne ]
down [ OrangeSecondDebt OrangeChainWithD OrangeDeletedOne No OrangeDebt | OrangeSecondDebt OrangeChain no OrangeDeletedOne ] -> [ OrangeSecondDebt OrangeChainWithD OrangeDeletedOne | OrangeSecondDebt OrangeChain OrangeDeletedOne ]
endloop
( Cancel debt2 moves)
right [ > Skull | Blocker ] -> [ Skull StuckSkullR | Blocker ]
left [ > Skull | Blocker ] -> [ Skull StuckSkullL | Blocker ]
up [ > Skull | Blocker ] -> [ Skull StuckSkullU | Blocker ]
down [ > Skull | Blocker ] -> [ Skull StuckSkullD | Blocker ]
[ > Block | moving Blocker ] -> [ Block | moving Blocker ]
[ > Block | stationary Blocker ] -> [ Block | stationary Blocker ]
[ > Block BlueChainExtreme ] -> [ Block BlueChainExtreme ]
[ > Block OrangeChainExtreme ] -> [ Block OrangeChainExtreme ]
[ BlueSecondDebt BlueDebt BlueDeletedOne ] -> [ BlueSecondDebt ]
[ BlueSecondDebt ] -> []
[ BlueNoDebt ] -> []
[ BlueDeletedOne ] -> [] sfx2
[ OrangeSecondDebt OrangeDebt OrangeDeletedOne ] -> [ OrangeSecondDebt ]
[ OrangeSecondDebt ] -> []
[ OrangeNoDebt ] -> []
[ OrangeDeletedOne ] -> [] sfx2
(door logic)
( : helpers)
late [ BlueNone ] -> []
late [ BlueAll ] -> []
late [ BlueNotAll ] -> []
late [ Player ] -> [ Player BlueNone BlueAll ]
late [ BlueBlock BlueTarget ][ BlueNone ] -> [ BlueBlock BlueTarget ][ ]
late [ BlueTarget no BlueBlock ][ BlueAll ] -> [ BlueTarget ][ BlueNotAll ]
late [ OrangeNone ] -> []
late [ OrangeAll ] -> []
late [ OrangeNotAll ] -> []
late [ Player ] -> [ Player OrangeNone OrangeAll ]
late [ OrangeBlock OrangeTarget ][ OrangeNone ] -> [ OrangeBlock OrangeTarget ][ ]
late [ OrangeTarget no OrangeBlock ][ OrangeAll ] -> [ OrangeTarget ][ OrangeNotAll ]
( : trap)
late [ BlueTrap no Blocker ][ BlueTarget BlueBlock ] -> [ BlueTrap BlueDoorClosed ][BlueTarget BlueBlock] SFX3
late [ BlueTrap BlueDoorClosed ][ BlueNone ] -> [ BlueTrap ][ BlueNone ] SFX4
late [ OrangeTrap no Blocker ][ OrangeTarget OrangeBlock ] -> [ OrangeTrap OrangeDoorClosed ][OrangeTarget OrangeBlock] SFX3
late [ OrangeTrap OrangeDoorClosed ][ OrangeNone ] -> [ OrangeTrap ][ OrangeNone ] SFX4
( : door)
late [ BlueDoor no Blocker ][ BlueNotAll ] -> [ BlueDoor BlueDoorClosed ][ BlueNotAll ] SFX3
late [ BlueDoor BlueDoorClosed ][ BlueAll ] -> [ BlueDoor ][ BlueAll ] SFX4
late [ OrangeDoor no Blocker ][ OrangeNotAll ] -> [ OrangeDoor OrangeDoorClosed ][ OrangeNotAll ] SFX3
late [ OrangeDoor OrangeDoorClosed ][ OrangeAll ] -> [ OrangeDoor ][ OrangeAll ] SFX4
( : open)
late [ BlueTrapOrDoor no BlueDoorClosed ] -> [ BlueTrapOrDoor BlueDoorOpen ]
late [ BlueDoorOpen BlueDoorClosed ] -> [ BlueDoorClosed ]
late [ OrangeTrapOrDoor no OrangeDoorClosed ] -> [ OrangeTrapOrDoor OrangeDoorOpen ]
late [ OrangeDoorOpen OrangeDoorClosed ] -> [ OrangeDoorClosed ]
(decorative lates)
late [ BlueTargetA no BlueBlock ] -> [ ]
late [ TicM4][ BlueTarget BlueBlock BlueTargetA2 ] -> [ TicM4][ BlueTarget BlueBlock ]
late [ TicM4][ BlueTarget BlueBlock BlueTargetA1 ] -> [ TicM4][ BlueTarget BlueBlock BlueTargetA2 ]
late [ TicM4][ BlueTarget BlueBlock no BlueTargetA ] -> [ TicM4][ BlueTarget BlueBlock BlueTargetA1 ]
late [ OrangeBlock BlueTarget ] -> [ OrangeBlock BlueTarget BlueTargetA1 ]
late [ OrangeTargetA no OrangeBlock ] -> [ ]
late [ TicM4][ OrangeTarget OrangeBlock OrangeTargetA2 ] -> [ TicM4][ OrangeTarget OrangeBlock ]
late [ TicM4][ OrangeTarget OrangeBlock OrangeTargetA1 ] -> [ TicM4][ OrangeTarget OrangeBlock OrangeTargetA2 ]
late [ TicM4][ OrangeTarget OrangeBlock no OrangeTargetA ] -> [ TicM4][ OrangeTarget OrangeBlock OrangeTargetA1 ]
late [ BlueBlock OrangeTarget ] -> [ BlueBlock OrangeTarget OrangeTargetA1 ]
late [ BlueChain BlueDebt no ChainStressed ] -> [ BlueChain BlueDebt ChainStressed ] SFX8
late [ OrangeChain OrangeDebt no ChainStressed ] -> [ OrangeChain OrangeDebt ChainStressed ] SFX8
late [ ChainStressed no BlueDebt no OrangeDebt ] -> [ ] sfx7
late [TicM4][ ChainStressed ChainStressedA2 ] -> [TicM4][ ChainStressed ]
late [TicM4][ ChainStressed ChainStressedA1 ] -> [TicM4][ ChainStressed ChainStressedA2 ]
late [TicM4][ ChainStressed no ChainStressedA1 no ChainStressedA2 ] -> [TicM4][ ChainStressed ChainStressedA1 ]
late [ no ChainStressed ChainStressedA2 ] -> []
late [ no ChainStressed ChainStressedA1 ] -> []
==============
WINCONDITIONS
==============
=======
LEVELS
=======
..##########
.d#..$#....#
.\wl..a....e
###...#....#
#...p.######
#$b........#
#...j..2...#
#...@..n-4.#
#..........#
############
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment