Skip to content

Instantly share code, notes, and snippets.

@Draknek
Forked from anonymous/readme.txt
Last active December 25, 2015 20:19
Show Gist options
  • Save Draknek/7033604 to your computer and use it in GitHub Desktop.
Save Draknek/7033604 to your computer and use it in GitHub Desktop.
PuzzleScript demake of 868-HACK
Play this game by pasting the script in http://www.puzzlescript.net/editor.html
title 8.68-HACK
author Alan Hazelden [with apologies to Michael Brough]
homepage 868-hack.neocities.org
run_rules_on_level_start
(verbose_logging)
noaction
noundo
norestart
background_color #202020
========
OBJECTS
========
BGNormal
#030802 #05230b
00000
00000
00000
00000
00000
SectorCount
#030802 #05230b
00000
00000
00000
00000
00000
Target
#061d0b #dffff4 #85ffbf #37df68 #21af39 #2b9334
01020
50304
02050
10102
04030
Wall
#0d4915 #ff7c2a #8724ff #89fb94 #68fa78 #4ae85c #2ed241 #10a628
33445
40005
40006
50006
56677
Player3
#deff13 #1d250e
.000.
01010
00000
01110
.000.
Player2
#deff13 #1d250e
.000.
01010
00000
01100
.000.
Player1
#deff13 #1d250e
.000.
01010
00000
00100
.000.
Virus2
#9636f9 #431845 #29f149
0...0
00000
02220
01010
.0.0.
Virus1
#9636f9 #431845 #29f149
0...0
01000
02221
01010
.0.0.
Daemon3
#ff7131 #461243 #32f046
0...0
.000.
02120
01110
00000
Daemon2
#ff7131 #461243 #32f046
0....
.000.
02120
01110
00000
Daemon1
#ff7131 #461243 #32f046
0....
.000.
02120
01110
01001
Cryptog2Visible
#2530fb #431846 #2ff143 #000700
.000.
01120
03110
01110
.000.
Cryptog1Visible
#2530fb #431846 #2ff143 #000700
.001.
01120
13110
01110
.000.
Cryptog2Invisible
BLUE BLACK
.....
.....
.....
.....
.....
Cryptog1Invisible
BLUE BLACK
.....
.....
.....
.....
.....
Glitch2
#fd33f9 #471947 #28ee39
00...
010..
0210.
01110
00000
Glitch1
#fd33f9 #471947 #28ee39
00...
010..
0210.
11110
00100
Marker
WHITE
.....
.....
.....
.....
.....
Corner
WHITE
.....
.....
.....
.....
.....
Moved
WHITE
.....
.....
.....
.....
.....
Spawn
PURPLE PINK
.....
.111.
.101.
.111.
.....
Damage
#2ff143
.0..0
...0.
0....
..0..
...0.
AttackH
#2ff143
.....
.0...
000.0
...0.
.....
AttackV
#2ff143
..0..
.0...
.00..
...0.
..0..
SmellL
WHITE
.....
.0...
00...
.0...
.....
SmellR
WHITE
.....
...0.
...00
...0.
.....
SmellU
WHITE
..0..
.000.
.....
.....
.....
SmellD
WHITE
.....
.....
.....
.000.
..0..
FutureWall
WHITE
.....
.....
.....
.....
.....
DiagonalUR
WHITE
0....
.0...
..0..
...0.
....0
DiagonalDR
WHITE
....0
...0.
..0..
.0...
0....
=======
LEGEND
=======
Background = BGNormal or SectorCount
Rand = Marker
LOS = Marker
Flood = Marker
X = BGNormal and Corner
? = BGNormal
! = Corner and SectorCount
' = SectorCount
0 = BGNormal
1 = SectorCount
MaybeWall = Damage or FutureWall
MaybeSpawn = Damage or Spawn
Player = Player3 or Player2 or Player1
Virus = Virus2 or Virus1
Daemon = Daemon3 or Daemon2 or Daemon1
Cryptog2 = Cryptog2Visible or Cryptog2Invisible
Cryptog1 = Cryptog1Visible or Cryptog1Invisible
Cryptog = Cryptog2 or Cryptog1
Glitch = Glitch2 or Glitch1
SolidEnemy = Virus or Daemon or Cryptog
Enemy = SolidEnemy or Glitch
EnemyOrSpawn = Enemy or Spawn
EnemyChoice = Virus2 or Daemon3 or Cryptog2Visible or Glitch2
RangedAttack = AttackH or AttackV
Smell = SmellL or SmellR or SmellU or SmellD
Solid = Virus or Daemon or Cryptog or Spawn or Wall or Player
Diagonal = DiagonalUR or DiagonalDR
FutureTarget = AttackV
PlayerOrCorner = Player or Corner
MovedTmp = AttackV
P = Player3
. = BGNormal
W = Virus2 and Moved
D = Daemon3 and Moved
C = Cryptog2Visible and Moved
G = Glitch2 and Moved
S = Spawn
* = Target and BGNormal
# = Wall and BGNormal
=======
SOUNDS
=======
sfx0 85840307 (player move)
sfx1 14751908 (attack enemies)
sfx2 15992102 (player hurt)
sfx3 42325308 (enemy dies)
sfx5 31681508 (player dies)
sfx6 36591708 (leaves sector 8)
sfx8 30233708 (next sector)
sfx9 52667702 (spawn appears)
(37534102
31008508
4351308
63972108
82789708
61411508
1661308
14214308
54536908
80910308
20043703
)
================
COLLISIONLAYERS
================
Marker, Moved, Smell
Background
Target, Corner
Player, Wall, SolidEnemy, Spawn
Glitch
Damage, RangedAttack, FutureWall, Diagonal
======
RULES
======
(clean up from last frame)
[ RangedAttack ] -> []
[ Virus1 Damage ] -> [] sfx3
[ Daemon1 Damage ] -> [] sfx3
[ Cryptog1 Damage ] -> [] sfx3
[ Glitch1 Damage ] -> [] sfx3
[ Spawn Damage ] -> [] sfx3
(increase sector id)
right [ Player Target ] [ 1 | 1 | 1 | 1 | 1 | 1 ] -> [ Player Target ] [ 0 | 0 | 0 | 1 | 1 | 1 ]
right [ Player Target ] [ 0 | 0 | 0 | 1 | 1 | 1 ] -> sfx6
right [ Player Target ] [ 0 | 0 | 0 | 1 | 1 | 1 ] -> message VICTORY
right [ Player Target ] [ 0 | 0 | 0 | 1 | 1 | 1 ] -> win
right [ Player Target ] [ 1 | 1 | 1 | 1 | 1 | 0 ] -> [ Player Target ] [ 1 | 1 | 1 | 1 | 1 | 1 ]
right [ Player Target ] [ 1 | 1 | 1 | 1 | 0 | 1 ] -> [ Player Target ] [ 1 | 1 | 1 | 1 | 1 | 0 ]
right [ Player Target ] [ 1 | 1 | 1 | 1 | 0 | 0 ] -> [ Player Target ] [ 1 | 1 | 1 | 1 | 0 | 1 ]
right [ Player Target ] [ 1 | 1 | 1 | 0 | 1 | 1 ] -> [ Player Target ] [ 1 | 1 | 1 | 1 | 0 | 0 ]
right [ Player Target ] [ 1 | 1 | 1 | 0 | 1 | 0 ] -> [ Player Target ] [ 1 | 1 | 1 | 0 | 1 | 1 ]
right [ Player Target ] [ 1 | 1 | 1 | 0 | 0 | 1 ] -> [ Player Target ] [ 1 | 1 | 1 | 0 | 1 | 0 ]
right [ Player Target ] [ 1 | 1 | 1 | 0 | 0 | 0 ] -> [ Player Target ] [ 1 | 1 | 1 | 0 | 0 | 1 ]
[ Player Target ] -> sfx8
(first sector)
random [ Corner ] -> [ Player3 Corner ]
[ Player Corner | ... | ] -> [ Player Corner | ... | LOS ]
random [ Player Corner ] [ no Player no LOS ] -> [ Player Corner ] [ Spawn ]
[ LOS ] -> []
[ Player Corner ] -> [ Player Target ]
(init new sector)
[ Player Target ] -> [ Player Flood Corner no Moved ]
[ Corner | | | | | no Corner ] -> [ Corner | | | | | Corner ]
[ Corner ] [ no Rand no Corner no Enemy no Spawn no Player ] -> [ Corner ] [ Rand ]
random [ Corner no Player ] -> [ FutureTarget ]
[ Corner no Player ] -> []
[ Rand no Player ] -> [ random MaybeWall ]
[ Damage no Enemy no Player ] -> []
[ Flood no FutureTarget | no FutureWall ] -> [ Flood | Flood ]
startloop
random [ Flood | FutureWall | no FutureWall no Flood ] -> [ Flood | Flood | Flood ]
[ Flood no FutureTarget | no FutureWall no Flood ] -> [ Flood | Flood ]
endloop
startloop
random [ Flood ] [ no FutureWall no Flood | FutureWall ] -> [ Flood ] [ | ]
[ Flood no FutureTarget | no FutureWall no Flood ] -> [ Flood | Flood ]
endloop
right [ 1 | 1 | 1 | 0 | 0 | 0 ] [ FutureTarget ] -> [ 1 | 1 | 1 | 0 | 0 | 0 ] [ Target ]
right [ 1 | 1 | 1 | 0 | 0 | 0 ] [ FutureWall ] -> [ 1 | 1 | 1 | 0 | 0 | 0 ] [ Wall ]
right [ 1 | 1 | 1 | 0 | 0 | 0 ] [ Player Corner ] -> [ 1 | 1 | 1 | 0 | 0 | 0 ] [ Player SmellL no Corner ]
[ Flood ] [ FutureTarget ] -> [ Flood ] [ FutureWall ]
[ Flood ] -> []
(transition effect between sectors)
[ Diagonal ] [ Player ] -> [ Diagonal ] [ Player Flood ]
[ Flood no Diagonal | no Flood ] -> [ Flood | Flood ]
[ Diagonal ] [ PlayerOrCorner | | | | | no Player no Corner no Target ] -> [ Diagonal ] [ PlayerOrCorner | | | | | Corner ]
[ Diagonal | Wall no FutureWall no Diagonal no Flood ] -> [ Diagonal | no Wall ]
[ Diagonal | FutureWall Corner no Diagonal no Flood ] -> [ Diagonal | Target ]
[ Diagonal | FutureWall no Diagonal no Flood no Corner ] -> [ Diagonal | Wall ]
[ Diagonal ] [ Corner no Player ] -> [ Diagonal ] []
[ Diagonal Flood | no Diagonal no Flood ] -> [ Diagonal Flood | Diagonal ] again
[ Diagonal ] [ Player ] -> [ Diagonal ] [ Player SmellL ]
[ Diagonal Player ] -> [ Player ]
[ Diagonal Flood ] -> []
[ Flood ] [ Player SmellL ] [ Enemy ] -> [ Flood ] [ Player SmellL ] [ Enemy Moved ]
[ Flood ] -> []
(spawn new enemies at the start of a new round)
[ Diagonal ] [ Player SmellL ] -> [ Diagonal ] [ Player ]
[ Player SmellL | no Solid no Glitch ] -> [ Player SmellL | LOS ]
[ Player SmellL | ... | LOS | no Solid no Glitch ] -> [ Player SmellL | ... | LOS | LOS ]
right [ Player SmellL ] [ 1 | 1 | 1 | 1 | 1 | 1 ] -> message Final Sector
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|0|0|1] -> [ Player SmellL ] [ Spawn ] [1|1|1|0|0|1] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|0|0|1] -> [ Player SmellL ] [ Spawn ] [1|1|1|0|0|1] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|0|1|0] -> [ Player SmellL ] [ Spawn ] [1|1|1|0|1|0] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|0|1|0] -> [ Player SmellL ] [ Spawn ] [1|1|1|0|1|0] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|0|1|0] -> [ Player SmellL ] [ Spawn ] [1|1|1|0|1|0] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|0|1|1] -> [ Player SmellL ] [ Spawn ] [1|1|1|0|1|1] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|0|1|1] -> [ Player SmellL ] [ Spawn ] [1|1|1|0|1|1] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|0|1|1] -> [ Player SmellL ] [ Spawn ] [1|1|1|0|1|1] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|0|1|1] -> [ Player SmellL ] [ Spawn ] [1|1|1|0|1|1] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|1|0|0] -> [ Player SmellL ] [ Spawn ] [1|1|1|1|0|0] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|1|0|0] -> [ Player SmellL ] [ Spawn ] [1|1|1|1|0|0] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|1|0|0] -> [ Player SmellL ] [ Spawn ] [1|1|1|1|0|0] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|1|0|0] -> [ Player SmellL ] [ Spawn ] [1|1|1|1|0|0] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|1|0|0] -> [ Player SmellL ] [ Spawn ] [1|1|1|1|0|0] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|1|0|1] -> [ Player SmellL ] [ Spawn ] [1|1|1|1|0|1] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|1|0|1] -> [ Player SmellL ] [ Spawn ] [1|1|1|1|0|1] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|1|0|1] -> [ Player SmellL ] [ Spawn ] [1|1|1|1|0|1] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|1|0|1] -> [ Player SmellL ] [ Spawn ] [1|1|1|1|0|1] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|1|0|1] -> [ Player SmellL ] [ Spawn ] [1|1|1|1|0|1] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|1|0|1] -> [ Player SmellL ] [ Spawn ] [1|1|1|1|0|1] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|1|1|0] -> [ Player SmellL ] [ Spawn ] [1|1|1|1|1|0] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|1|1|0] -> [ Player SmellL ] [ Spawn ] [1|1|1|1|1|0] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|1|1|0] -> [ Player SmellL ] [ Spawn ] [1|1|1|1|1|0] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|1|1|0] -> [ Player SmellL ] [ Spawn ] [1|1|1|1|1|0] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|1|1|0] -> [ Player SmellL ] [ Spawn ] [1|1|1|1|1|0] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|1|1|0] -> [ Player SmellL ] [ Spawn ] [1|1|1|1|1|0] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|1|1|0] -> [ Player SmellL ] [ Spawn ] [1|1|1|1|1|0] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|1|1|1] -> [ Player SmellL ] [ Spawn ] [1|1|1|1|1|1] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|1|1|1] -> [ Player SmellL ] [ Spawn ] [1|1|1|1|1|1] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|1|1|1] -> [ Player SmellL ] [ Spawn ] [1|1|1|1|1|1] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|1|1|1] -> [ Player SmellL ] [ Spawn ] [1|1|1|1|1|1] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|1|1|1] -> [ Player SmellL ] [ Spawn ] [1|1|1|1|1|1] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|1|1|1] -> [ Player SmellL ] [ Spawn ] [1|1|1|1|1|1] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|1|1|1] -> [ Player SmellL ] [ Spawn ] [1|1|1|1|1|1] sfx9
random right [ Player SmellL ] [ no Solid no Glitch no LOS ] [1|1|1|1|1|1] -> [ Player SmellL ] [ Spawn ] [1|1|1|1|1|1] sfx9
[ LOS ] -> []
[ Player SmellL ] -> [ Player ]
(start transition)
right [ Player Corner | ] -> [ Player Corner Marker | ]
down [ Player Corner Marker no Diagonal | ] -> [ Player Corner Marker DiagonalDR | ]
down [ Player Corner no Marker no Diagonal | ] -> [ Player Corner Marker DiagonalUR | ]
up [ Player Corner Marker no Diagonal | ] -> [ Player Corner Marker DiagonalUR | ]
up [ Player Corner no Marker no Diagonal | ] -> [ Player Corner Marker DiagonalDR | ]
[ Diagonal ] [ Enemy no Moved ] -> [ Diagonal ] [ Enemy Moved ]
[ Player Corner ] -> [ Player no Marker ] again
(enemies next to player will always attack)
[ Enemy no Moved | Player ] -> [ > Enemy | Player ]
[ Marker ] -> []
[ Smell ] -> []
[ Moved no Damage no Diagonal no FutureWall ] -> [ MovedTmp ]
(smell: glitches)
left [ Player | ] -> [ Player | SmellR ]
right [ Player | ] -> [ Player | SmellL ]
up [ Player | ] -> [ Player | SmellD ]
down [ Player | ] -> [ Player | SmellU ]
startloop
[ Smell | no Smell no Marker no Player no Moved ] -> [ Smell | Marker ]
random [ stationary Marker ] -> [ action Marker ]
random [ stationary Marker ] -> [ action Marker ]
down [ action Marker | Wall Smell no SolidEnemy no Damage ] -> [ SmellD | Wall Smell ]
+ up [ action Marker | Wall Smell no SolidEnemy no Damage ] -> [ SmellU | Wall Smell ]
+ right [ action Marker | Wall Smell no SolidEnemy no Damage ] -> [ SmellR | Wall Smell ]
+ left [ action Marker | Wall Smell no SolidEnemy no Damage ] -> [ SmellL | Wall Smell ]
down [ action Marker | Wall Smell ] -> [ SmellD | Wall Smell ]
+ up [ action Marker | Wall Smell ] -> [ SmellU | Wall Smell ]
+ right [ action Marker | Wall Smell ] -> [ SmellR | Wall Smell ]
+ left [ action Marker | Wall Smell ] -> [ SmellL | Wall Smell ]
left [ Marker | Wall Smell no SolidEnemy no Damage ] -> [ SmellL | Wall Smell ]
+ right [ Marker | Wall Smell no SolidEnemy no Damage ] -> [ SmellR | Wall Smell ]
+ up [ Marker | Wall Smell no SolidEnemy no Damage ] -> [ SmellU | Wall Smell ]
+ down [ Marker | Wall Smell no SolidEnemy no Damage ] -> [ SmellD | Wall Smell ]
left [ Marker | Wall Smell ] -> [ SmellL | Wall Smell ]
+ right [ Marker | Wall Smell ] -> [ SmellR | Wall Smell ]
+ up [ Marker | Wall Smell ] -> [ SmellU | Wall Smell ]
+ down [ Marker | Wall Smell ] -> [ SmellD | Wall Smell ]
down [ action Marker | Smell no SolidEnemy no Damage ] -> [ SmellD | Smell ]
+ up [ action Marker | Smell no SolidEnemy no Damage ] -> [ SmellU | Smell ]
+ right [ action Marker | Smell no SolidEnemy no Damage ] -> [ SmellR | Smell ]
+ left [ action Marker | Smell no SolidEnemy no Damage ] -> [ SmellL | Smell ]
down [ action Marker | Smell ] -> [ SmellD | Smell ]
+ up [ action Marker | Smell ] -> [ SmellU | Smell ]
+ right [ action Marker | Smell ] -> [ SmellR | Smell ]
+ left [ action Marker | Smell ] -> [ SmellL | Smell ]
left [ Marker | Smell no SolidEnemy no Damage ] -> [ SmellL | Smell ]
+ right [ Marker | Smell no SolidEnemy no Damage ] -> [ SmellR | Smell ]
+ up [ Marker | Smell no SolidEnemy no Damage ] -> [ SmellU | Smell ]
+ down [ Marker | Smell no SolidEnemy no Damage ] -> [ SmellD | Smell ]
left [ Marker | Smell ] -> [ SmellL | Smell ]
+ right [ Marker | Smell ] -> [ SmellR | Smell ]
+ up [ Marker | Smell ] -> [ SmellU | Smell ]
+ down [ Marker | Smell ] -> [ SmellD | Smell ]
endloop
[ Marker ] -> []
(enemy movement: glitches)
startloop
random [ stationary Glitch Smell no Damage no Moved no MovedTmp ] -> [ action Glitch Smell ]
left [ action Glitch SmellL | no EnemyOrSpawn ] -> [ SmellL | Glitch MovedTmp ]
right [ action Glitch SmellR | no EnemyOrSpawn ] -> [ SmellR | Glitch MovedTmp ]
up [ action Glitch SmellU | no EnemyOrSpawn ] -> [ SmellU | Glitch MovedTmp ]
down [ action Glitch SmellD | no EnemyOrSpawn ] -> [ SmellD | Glitch MovedTmp ]
[ action Glitch ] -> [ randomDir Glitch ]
endloop
[ Smell ] -> []
(smell: normal enemies)
left [ Player | no Wall ] -> [ Player | SmellR ]
right [ Player | no Wall ] -> [ Player | SmellL ]
up [ Player | no Wall ] -> [ Player | SmellD ]
down [ Player | no Wall ] -> [ Player | SmellU ]
startloop
[ Smell | no Smell no Marker no Player no Wall no Moved ] -> [ Smell | Marker ]
random [ stationary Marker ] -> [ action Marker ]
random [ stationary Marker ] -> [ action Marker ]
down [ action Marker | Smell no Glitch no Damage no Moved no MovedTmp ] -> [ SmellD | Smell ]
+ up [ action Marker | Smell no Glitch no Damage no Moved no MovedTmp ] -> [ SmellU | Smell ]
+ right [ action Marker | Smell no Glitch no Damage no Moved no MovedTmp ] -> [ SmellR | Smell ]
+ left [ action Marker | Smell no Glitch no Damage no Moved no MovedTmp ] -> [ SmellL | Smell ]
down [ action Marker | Smell ] -> [ SmellD | Smell ]
+ up [ action Marker | Smell ] -> [ SmellU | Smell ]
+ right [ action Marker | Smell ] -> [ SmellR | Smell ]
+ left [ action Marker | Smell ] -> [ SmellL | Smell ]
left [ Marker | Smell no Glitch no Damage no Moved no MovedTmp ] -> [ SmellL | Smell ]
+ right [ Marker | Smell no Glitch no Damage no Moved no MovedTmp ] -> [ SmellR | Smell ]
+ up [ Marker | Smell no Glitch no Damage no Moved no MovedTmp ] -> [ SmellU | Smell ]
+ down [ Marker | Smell no Glitch no Damage no Moved no MovedTmp ] -> [ SmellD | Smell ]
left [ Marker | Smell ] -> [ SmellL | Smell ]
+ right [ Marker | Smell ] -> [ SmellR | Smell ]
+ up [ Marker | Smell ] -> [ SmellU | Smell ]
+ down [ Marker | Smell ] -> [ SmellD | Smell ]
endloop
[ Marker ] -> []
(enemy movement: normal enemies)
startloop
random [ stationary SolidEnemy Smell no Damage no Moved no MovedTmp ] -> [ action SolidEnemy Smell ]
left [ action SolidEnemy SmellL | no Solid no Glitch ] -> [ SmellL | SolidEnemy MovedTmp ]
right [ action SolidEnemy SmellR | no Solid no Glitch ] -> [ SmellR | SolidEnemy MovedTmp ]
up [ action SolidEnemy SmellU | no Solid no Glitch ] -> [ SmellU | SolidEnemy MovedTmp ]
down [ action SolidEnemy SmellD | no Solid no Glitch ] -> [ SmellD | SolidEnemy MovedTmp ]
[ action SolidEnemy ] -> [ randomDir SolidEnemy ]
endloop
[ Smell ] -> []
[ MovedTmp ] -> [ Moved ]
(extra movement: viruses)
[ Player Moved ] [ Virus Moved ] -> [ Player Moved ] [ Virus ] again
(damage enemies)
[ Virus2 Damage ] -> [ Virus1 Moved ]
[ Daemon3 Damage ] -> [ Daemon2 Moved ]
[ Daemon2 Damage ] -> [ Daemon1 Moved ]
[ Cryptog2 Damage ] -> [ Cryptog1Visible Moved ]
[ Glitch2 Damage ] -> [ Glitch1 Moved ]
(spawn enemies)
[ Player Moved ] [ Spawn ] -> [ Player Moved ] [ random EnemyChoice Moved ]
(maybe create new spawn points)
random [ Player Moved ] [ no Solid no Glitch ] -> [ Player Moved ] [ random MaybeSpawn ]
[ Player Moved ] [ Spawn ] -> [ Player Moved ] [ random MaybeSpawn ]
[ Player Moved ] [ Spawn ] -> [ Player Moved ] [ random MaybeSpawn ]
[ Player Moved ] [ Spawn ] -> sfx9
[ Player Moved ] -> [ Player ]
[ Damage no Enemy no Player ] -> []
(cryptog invisibility)
late [ Player ] [ Cryptog2 ] -> [ Player ] [ Cryptog2Invisible ]
late [ Player ] [ Cryptog1 ] -> [ Player ] [ Cryptog1Invisible ]
late [ Player | ... | Cryptog2 ] -> [ Player | ... | Cryptog2Visible ]
late [ Player | ... | Cryptog1 ] -> [ Player | ... | Cryptog1Visible ]
(enemy attacking)
[ > Enemy | Player ] -> [ Enemy | Player ]
[ Player3 Damage ] -> [ Player2 ] again sfx2
[ Player2 Damage ] -> [ Player1 ] again sfx2
[ Player1 Damage ] -> [] again sfx5
[ Enemy no Moved | Player no Damage ] -> [ Enemy Moved | Player Damage ] again
[ > Enemy no Moved | Solid no Player ] -> [ Enemy Moved | Solid ]
[ > Enemy no Moved | Glitch ] -> [ Enemy Moved | Glitch ]
[ > Enemy no Moved | no Solid no Glitch ] -> [ | Enemy Moved ]
(player movement)
[ moving Player ] [ Moved ] -> [ moving Player ] []
[ > Player | no Solid no Glitch ] -> [ > Player | LOS ]
[ > Player | ... | LOS | no Solid no Glitch ] -> [ > Player | ... | LOS | LOS ]
[ > Player | EnemyOrSpawn ] -> [ Player Moved | EnemyOrSpawn Damage ] again sfx1
[ > Player | ... | LOS | EnemyOrSpawn ] -> [ Player Moved | ... | LOS | EnemyOrSpawn Damage ] again sfx1
horizontal [ Player Moved | ... | LOS ] -> [ Player Moved | ... | AttackH ]
vertical [ Player Moved | ... | LOS ] -> [ Player Moved | ... | AttackV ]
[ LOS ] -> []
[ > Player | no Wall ] -> [ | Player Moved ] again sfx0
[ > Player ] -> cancel
[ Player2 Target ] -> [ Player3 Target ]
[ Player1 Target ] -> [ Player2 Target ]
==============
WINCONDITIONS
==============
no Player
=======
LEVELS
=======
(*.....
......
......
.....G
.P..SG
...GGG)
(*P...G
......
......
......
......
D....W)
(##.##D
.#.##.
P.G##.
##....
...##.
.W.##W)
(*.....
......
......
..WW..
..WD.P
....#.)
!''??X
??????
??????
??????
??????
X????X
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment