Skip to content

Instantly share code, notes, and snippets.

@benpigchu
Last active October 6, 2024 09:45
Show Gist options
  • Save benpigchu/6776c6b24adf736eed408c415653b52c to your computer and use it in GitHub Desktop.
Save benpigchu/6776c6b24adf736eed408c415653b52c to your computer and use it in GitHub Desktop.
PiHunt5 All% Wo. Rk. (reconstructed PuzzleScript Script)
title PiHunt5 All% Wo. Rk.
run_rules_on_level_start
========
OBJECTS
========
Background
lightgray
00000
00000
00000
00000
00000
Wall
brown
00000
00000
00000
00000
00000
Player
blue
.000.
00000
00000
00000
.000.
Crate
orange lightbrown
.000.
01110
01010
01110
.000.
Anticrate
lightbrown yellow
.000.
01010
00000
01010
.000.
Swapper
red lightred
.000.
01010
00100
01010
.000.
Duplicator
purple blue
.000.
00100
01010
00100
.000.
Phaser
pink lightbrown
.000.
00100
01110
00100
.000.
Bomb
darkgray
.000.
0...0
0...0
0...0
.000.
ImitatorRaw
green lightgreen
.000.
00000
00100
00000
.000.
ImitatorCrate
green orange
.000.
00000
00100
00000
.000.
ImitatorAnticrate
green yellow
.000.
00000
00100
00000
.000.
ImitatorSwapper
green red
.000.
00000
00100
00000
.000.
ImitatorDuplicator
green purple
.000.
00000
00100
00000
.000.
ImitatorPhaser
green pink
.000.
00000
00100
00000
.000.
TargetLT
black darkgray
00000
01111
01111
01111
01111
TargetST
black darkgray
00000
01110
01110
01110
01110
TargetRT
black darkgray
00000
11110
11110
11110
11110
TargetMT
black darkgray
00000
11111
11111
11111
11111
TargetLB
black darkgray
01111
01111
01111
01111
00000
TargetSB
black darkgray
01110
01110
01110
01110
00000
TargetRB
black darkgray
11110
11110
11110
11110
00000
TargetMB
black darkgray
11111
11111
11111
11111
00000
TargetLM
black darkgray
01111
01111
01111
01111
01111
TargetSM
black darkgray
01110
01110
01110
01110
01110
TargetRM
black darkgray
11110
11110
11110
11110
11110
TargetMM
black darkgray
11111
11111
11111
11111
11111
TargetLS
black darkgray
00000
01111
01111
01111
00000
TargetSS
black darkgray
00000
01110
01110
01110
00000
TargetRS
black darkgray
00000
11110
11110
11110
00000
TargetMS
black darkgray
00000
11111
11111
11111
00000
Counter01
white
.00..
..0..
..0..
..0..
.000.
Counter02
white
.000.
...0.
.000.
.0...
.000.
Counter03
white
.000.
...0.
..00.
...0.
.000.
Counter04
white
.0.0.
.0.0.
.000.
...0.
...0.
Counter05
white
.000.
.0...
.000.
...0.
.000.
Counter06
white
.000.
.0...
.000.
.0.0.
.000.
Counter07
white
.000.
...0.
..00.
...0.
...0.
Counter08
white
.000.
.0.0.
.000.
.0.0.
.000.
Counter09
white
.000.
.0.0.
.000.
...0.
.000.
Counter10
white
.000.
.0.0.
.0.0.
.0.0.
.000.
Counter11
white
.00..
..0..
..0..
..0..
.000.
Counter12
white
.000.
...0.
.000.
.0...
.000.
Counter13
white
.000.
...0.
..00.
...0.
.000.
Counter14
white
.0.0.
.0.0.
.000.
...0.
...0.
Counter15
white
.000.
.0...
.000.
...0.
.000.
Counter16
white
.000.
.0...
.000.
.0.0.
.000.
Counter17
white
.000.
...0.
..00.
...0.
...0.
Counter18
white
.000.
.0.0.
.000.
.0.0.
.000.
Counter19
white
.000.
.0.0.
.000.
...0.
.000.
Counter20
white
.000.
.0.0.
.0.0.
.0.0.
.000.
Counter21
white
.00..
..0..
..0..
..0..
.000.
Counter22
white
.000.
...0.
.000.
.0...
.000.
Counter23
white
.000.
...0.
..00.
...0.
.000.
Counter24
white
.0.0.
.0.0.
.000.
...0.
...0.
Counter25
white
.000.
.0...
.000.
...0.
.000.
Counter26
white
.000.
.0...
.000.
.0.0.
.000.
CounterHi0
white
.000.
.0.0.
.0.0.
.0.0.
.000.
CounterHi1
white
.00..
..0..
..0..
..0..
.000.
CounterHi2
white
.000.
...0.
.000.
.0...
.000.
Counter
transparent
TmpCounterStepped
transparent
Init
transparent
PhaserMarker
transparent
BombAfter
transparent
BombNext
transparent
Bomb1Try
transparent
Bomb1Ok
transparent
BombNeed2
transparent
Bomb2Path
transparent
Bomb2Try
transparent
=======
LEGEND
=======
. = Background
# = Wall
P = Player and Init
C = Crate
A = Anticrate
S = Swapper
D = Duplicator
+ = Phaser
B = Bomb
I = ImitatorRaw
O = TargetSS
! = Counter and Wall
Target = TargetSS or TargetMS or TargetLS or TargetRS or TargetST or TargetMT or TargetLT or TargetRT or TargetSB or TargetMB or TargetLB or TargetRB or TargetSM or TargetMM or TargetLM or TargetRM
CounterLo = Counter or Counter01 or Counter02 or Counter03 or Counter04 or Counter05 or Counter06 or Counter07 or Counter08 or Counter09 or Counter10 or Counter11 or Counter12 or Counter13 or Counter14 or Counter15 or Counter16 or Counter17 or Counter18 or Counter19 or Counter20 or Counter21 or Counter22 or Counter23 or Counter24 or Counter25 or Counter26
CounterHi = CounterHi0 or CounterHi1 or CounterHi2
Imitator = ImitatorRaw or ImitatorCrate or ImitatorAnticrate or ImitatorSwapper or ImitatorDuplicator or ImitatorPhaser
Swappable = Wall or Crate or Anticrate or Swapper or Duplicator or Phaser or Imitator
CrateLike = Crate or ImitatorCrate
AnticrateLike = Anticrate or ImitatorAnticrate
SwapperLike = Swapper or ImitatorSwapper
DuplicatorLike = Duplicator or ImitatorDuplicator
PhaserLike = Phaser or ImitatorPhaser
======
SOUNDS
======
================
COLLISIONLAYERS
================
Background
Target
Player, Wall, Crate, Anticrate, Swapper, Imitator, Duplicator, Phaser, Bomb
CounterLo, CounterHi
Init, TmpCounterStepped, PhaserMarker, BombAfter
BombNext, Bomb1Try, Bomb1Ok, BombNeed2, Bomb2Path, Bomb2Try
======
RULES
======
[ > Player | CrateLike ] -> [ > Player | > CrateLike ]
[ < Player | AnticrateLike ] -> [ < Player | < AnticrateLike ]
[ > Player | Crate | DuplicatorLike ] -> [ Player | Crate | Crate ]
[ > Player | Anticrate | DuplicatorLike ] -> [ Player | Anticrate | Anticrate ]
[ > Player | Swapper | DuplicatorLike ] -> [ Player | Swapper | Swapper ]
[ > Player | Imitator | DuplicatorLike ] -> [ Player | Imitator | ImitatorRaw ]
[ > Player | SwapperLike | Swappable ] -> [ Player | Swappable | SwapperLike ]
[ > Player | SwapperLike | ] -> [ > Player | > SwapperLike | ]
[ > Player | Phaserlike ] -> [ > Player PhaserMarker | Phaserlike ]
[ > Player PhaserMarker | Phaserlike ] -> [ Phaserlike | > Player PhaserMarker ]
[ > Player PhaserMarker ] -> [ Player ]
[ > Player | ImitatorRaw ] -> [ Player | ImitatorRaw ]
[ > Player | Bomb | ] -> [ > Player | > Bomb | ]
[ > Player | Bomb | Imitator] -> [ Player | | BombAfter]
[BombNext | ] -> [BombNext | Bomb1Try]
[Bomb1Try Imitator] -> [Bomb1Ok BombAfter]
[BombNext | Bomb1Ok] -> [ | Bomb1Ok]
[Bomb1Try] -> []
[Bomb1Ok] -> []
[BombNext] -> [BombNeed2]
right [BombNeed2 |] -> [BombNeed2 | Bomb2Path]
left [BombNeed2 |] -> [BombNeed2 | Bomb2Path]
[BombNeed2] -> []
up [Bomb2Path |] -> [Bomb2Path | Bomb2Try]
down [Bomb2Path |] -> [Bomb2Path | Bomb2Try]
[Bomb2Try Imitator] -> [BombAfter]
[Bomb2Try] -> []
late [BombAfter] -> [BombNext]
(imitator state)
[Imitator] -> [ImitatorRaw]
late [Swapperlike | ImitatorRaw] -> [Swapperlike | ImitatorSwapper]
late [Anticratelike | ImitatorRaw] -> [Anticratelike | ImitatorAnticrate]
late [Cratelike | ImitatorRaw] -> [Cratelike | ImitatorCrate]
late [DuplicatorLike | ImitatorRaw] -> [DuplicatorLike | ImitatorDuplicator]
late [PhaserLike | ImitatorRaw] -> [PhaserLike | ImitatorPhaser]
(step counter)
right [CounterHi | CounterLo] -> [ | CounterLo]
[Counter no TmpCounterStepped] -> [Counter01 TmpCounterStepped]
[Counter01 no TmpCounterStepped] -> [Counter02 TmpCounterStepped]
[Counter02 no TmpCounterStepped] -> [Counter03 TmpCounterStepped]
[Counter03 no TmpCounterStepped] -> [Counter04 TmpCounterStepped]
[Counter04 no TmpCounterStepped] -> [Counter05 TmpCounterStepped]
[Counter05 no TmpCounterStepped] -> [Counter06 TmpCounterStepped]
[Counter06 no TmpCounterStepped] -> [Counter07 TmpCounterStepped]
[Counter07 no TmpCounterStepped] -> [Counter08 TmpCounterStepped]
[Counter08 no TmpCounterStepped] -> [Counter09 TmpCounterStepped]
[Counter09 no TmpCounterStepped] -> [Counter10 TmpCounterStepped]
[Counter10 no TmpCounterStepped] -> [Counter11 TmpCounterStepped]
[Counter11 no TmpCounterStepped] -> [Counter12 TmpCounterStepped]
[Counter12 no TmpCounterStepped] -> [Counter13 TmpCounterStepped]
[Counter13 no TmpCounterStepped] -> [Counter14 TmpCounterStepped]
[Counter14 no TmpCounterStepped] -> [Counter15 TmpCounterStepped]
[Counter15 no TmpCounterStepped] -> [Counter16 TmpCounterStepped]
[Counter16 no TmpCounterStepped] -> [Counter17 TmpCounterStepped]
[Counter17 no TmpCounterStepped] -> [Counter18 TmpCounterStepped]
[Counter18 no TmpCounterStepped] -> [Counter19 TmpCounterStepped]
[Counter19 no TmpCounterStepped] -> [Counter20 TmpCounterStepped]
[Counter20 no TmpCounterStepped] -> [Counter21 TmpCounterStepped]
[Counter21 no TmpCounterStepped] -> [Counter22 TmpCounterStepped]
[Counter22 no TmpCounterStepped] -> [Counter23 TmpCounterStepped]
[Counter23 no TmpCounterStepped] -> [Counter24 TmpCounterStepped]
[Counter24 no TmpCounterStepped] -> [Counter25 TmpCounterStepped]
[Counter25 no TmpCounterStepped] -> [Counter26 TmpCounterStepped]
[Counter26 no TmpCounterStepped] -> [Counter01 TmpCounterStepped]
right [ | Counter01] -> [CounterHi0 | Counter01]
right [ | Counter02] -> [CounterHi0 | Counter02]
right [ | Counter03] -> [CounterHi0 | Counter03]
right [ | Counter04] -> [CounterHi0 | Counter04]
right [ | Counter05] -> [CounterHi0 | Counter05]
right [ | Counter06] -> [CounterHi0 | Counter06]
right [ | Counter07] -> [CounterHi0 | Counter07]
right [ | Counter08] -> [CounterHi0 | Counter08]
right [ | Counter09] -> [CounterHi0 | Counter09]
right [ | Counter10] -> [CounterHi1 | Counter10]
right [ | Counter11] -> [CounterHi1 | Counter11]
right [ | Counter12] -> [CounterHi1 | Counter12]
right [ | Counter13] -> [CounterHi1 | Counter13]
right [ | Counter14] -> [CounterHi1 | Counter14]
right [ | Counter15] -> [CounterHi1 | Counter15]
right [ | Counter16] -> [CounterHi1 | Counter16]
right [ | Counter17] -> [CounterHi1 | Counter17]
right [ | Counter18] -> [CounterHi1 | Counter18]
right [ | Counter19] -> [CounterHi1 | Counter19]
right [ | Counter20] -> [CounterHi2 | Counter20]
right [ | Counter21] -> [CounterHi2 | Counter21]
right [ | Counter22] -> [CounterHi2 | Counter22]
right [ | Counter23] -> [CounterHi2 | Counter23]
right [ | Counter24] -> [CounterHi2 | Counter24]
right [ | Counter25] -> [CounterHi2 | Counter25]
right [ | Counter26] -> [CounterHi2 | Counter26]
late [TmpCounterStepped] -> []
(connect target on init)
right [Init][Target] -> [Init][TargetSS]
right [Init][Target no TargetLS | Target] -> [Init][TargetLS | TargetRS]
right [Init][Target | Target no TargetMS| Target] -> [Init][Target | TargetMS | Target]
down [Init][Target no TargetMT | TargetMS] -> [Init][TargetMT | TargetMB]
down [Init][Target | TargetMT | Target] -> [Init][Target | TargetMM | Target]
down [Init][Target no TargetLT | TargetLS] -> [Init][TargetLT | TargetLB]
down [Init][Target | TargetLT | Target] -> [Init][Target | TargetLM | Target]
down [Init][Target no TargetRT | TargetRS] -> [Init][TargetRT | TargetRB]
down [Init][Target | TargetRT | Target] -> [Init][Target | TargetRM | Target]
down [Init][Target no TargetST | TargetSS] -> [Init][TargetST | TargetSB]
down [Init][Target | TargetST | Target] -> [Init][Target | TargetSM | Target]
[Init] -> []
======
WINCONDITIONS
======
some Player on Target
=======
LEVELS
=======
Message There should be the introduction text for crate here
##############
##########OOO#
##########OOO#
##########OOO#
#...#.C.##...#
PCC..C..C.CC.#
..#.#.C.C..###
#######.C.####
#######.######
############!#
Message There should be the introduction text for anticrate here
##############
#P..####...###
#...##...#...#
#A###..A..A..#
#.#..A#..A####
#.#.#A###.####
#...#.##..####
#.....#OO#####
#.....#OO#####
############!#
..P.###A...###
.##A.OC.##.###
..#..#..#..###
#..CA#CA..####
#.#.AAC.#.####
#C.#...#..####
#...#.#...####
#.A..A.CC.####
#..C.A....####
############!#
Message There should be the introduction text for swapper here
##############
#.....###...##
####...##...##
#OOO#...#...##
#OOO#.S.#...##
#OOO#...S#SP##
#OOO#...#...##
####...##...##
#.....###...##
############!#
##############
#.....###..OO#
#A..S.###..OO#
#....S###..OO#
#.##C.#A#.####
#C.#.A##..####
..P#A.#.######
#S.#......####
#..#......####
############!#
Message There should be the introduction text for imitator here
##############
##III#########
##I#I#########
IIIP.I........
OI.C.I..I.I...
OI..II.I.I....
II..I.........
#########...I#
###########..A
############!#
##############
#####....#IIII
####.....#I##I
####..ICI#I##I
####I#II.SA..I
#.#..A#IA....I
#..P..#I.....I
#.C.I##IOI...I
#.I...#IIIIIII
###S########!#
Message There should be the introduction text for duplicater here
##############
#..P#OOOOOOOO#
#.####....####
#.#.#.#..#...#
#...D..#D....#
#.C.D..#.D...#
#...DD#...####
#..#.........#
#..#......####
############!#
##############
......#...####
......DC..####
..#...#.I.####
..#.S.#.DD#OO#
P.#.DD#.DD#OO#
###.A.#...DOO#
###...#...II##
###...#...I.##
##########C#!#
Message There should be the introduction text for phaser here
##############
#++++++++#####
#+######.#####
++.++++#.#####
#++++.##.#+++#
##++.+##+.OO##
###+..##+.OO##
###+++.#+#OO##
######.++P+++#
############!#
########+#####
########+....#
########++++.#
########I+#++#
###..###+.#+A#
###P+++++++#O#
#..S.###..##O#
#++++#########
##############
############!#
#III##II####I#
I...I.I.II.I.I
I.....I...I..I
IIB....I....II
#I.II...II.I.#
I..I.I...I..I#
IPI...I.I..II#
II..II..I.IOO#
#..I...I..IOO#
####III#####!#
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment