-
-
Save Draknek/219a7db6511dad557b84 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Play this game by pasting the script in http://www.puzzlescript.net/editor.html |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
title Mirror Isles | |
author Alan Hazelden | |
homepage www.draknek.org | |
norepeat_action | |
run_rules_on_level_start | |
(realtime_interval 0.5) | |
(verbose_logging) | |
======== | |
OBJECTS | |
======== | |
Background | |
#dfcc4f yellow | |
11111 | |
01111 | |
11101 | |
11111 | |
10111 | |
Target | |
DarkBlue Yellow Yellow | |
.111. | |
10201 | |
12021 | |
10201 | |
.111. | |
Wall | |
Grey DarkGrey LightGrey | |
..... | |
..00. | |
.0001 | |
.0111 | |
...1. | |
(..1.. | |
.0..1 | |
...1. | |
..00. | |
....1) | |
Hole | |
blue | |
WaterAnim1 | |
lightblue transparent | |
11111 | |
11101 | |
11111 | |
10111 | |
11111 | |
WaterAnim2 | |
lightblue transparent | |
11111 | |
10111 | |
11111 | |
11101 | |
11111 | |
Player | |
DarkRed #493c2b #000000 | |
..0.. | |
.111. | |
01110 | |
02220 | |
.2.2. | |
Reflection | |
LightGrey Grey DarkGrey | |
..0.. | |
.111. | |
01110 | |
02220 | |
.2.2. | |
CrateReflection | |
Grey DarkGrey LightGrey | |
.000. | |
01110 | |
01110 | |
01110 | |
.000. | |
(..... | |
.1122 | |
0112. | |
.1122 | |
.....) | |
FloatingBody | |
DarkBrown #282828 #101010 Blue | |
33333 | |
33333 | |
31122 | |
01123 | |
31122 | |
CantMove | |
LightRed Red DarkRed | |
..0.. | |
.111. | |
01110 | |
02220 | |
.2.2. | |
NormalCrate | |
Orange Brown White | |
.000. | |
01110 | |
01110 | |
01110 | |
.000. | |
ReflectableCrate | |
Orange Brown Brown | |
.000. | |
01210 | |
02220 | |
01210 | |
.000. | |
(brown green darkgreen Red | |
..... | |
.1122 | |
0112. | |
.1122 | |
.....) | |
CrateInHole | |
Brown DarkBrown Blue | |
20002 | |
01110 | |
01110 | |
01110 | |
20002 | |
MirrorUL | |
#909090 #4e5159 #4e5159 | |
....0 | |
...01 | |
..011 | |
.0111 | |
01112 | |
MirrorUR | |
#909090 #4e5159 #4e5159 | |
0.... | |
10... | |
110.. | |
1110. | |
21110 | |
MirrorDL | |
#909090 #4e5159 #4e5159 | |
01112 | |
.0111 | |
..011 | |
...01 | |
....0 | |
MirrorDR | |
#909090 #4e5159 #4e5159 | |
21110 | |
1110. | |
110.. | |
10... | |
0.... | |
LOS | |
Orange | |
..... | |
..... | |
..0.. | |
..... | |
..... | |
00 | |
transparent | |
01 | |
transparent | |
02 | |
transparent | |
03 | |
transparent | |
04 | |
transparent | |
05 | |
transparent | |
06 | |
transparent | |
07 | |
transparent | |
08 | |
transparent | |
09 | |
transparent | |
HasReflection | |
transparent | |
West | |
transparent | |
East | |
transparent | |
North | |
transparent | |
South | |
transparent | |
Zero | |
White | |
.000. | |
.0.0. | |
.0.0. | |
.0.0. | |
.000. | |
One | |
White | |
..0.. | |
.00.. | |
..0.. | |
..0.. | |
.000. | |
Two | |
White | |
.000. | |
...0. | |
.000. | |
.0... | |
.000. | |
Three | |
White | |
.000. | |
...0. | |
.000. | |
...0. | |
.000. | |
Four | |
White | |
.0.0. | |
.0.0. | |
.000. | |
...0. | |
...0. | |
Five | |
White | |
.000. | |
.0... | |
.000. | |
...0. | |
.000. | |
Six | |
White | |
.000. | |
.0... | |
.000. | |
.0.0. | |
.000. | |
Seven | |
White | |
.000. | |
...0. | |
...0. | |
...0. | |
...0. | |
Eight | |
White | |
.000. | |
.0.0. | |
.000. | |
.0.0. | |
.000. | |
Nine | |
White | |
.000. | |
.0.0. | |
.000. | |
...0. | |
.000. | |
AddLandLUD | |
Yellow | |
0.... | |
..... | |
..... | |
..... | |
0.... | |
AddLandLU | |
Yellow | |
0.... | |
..... | |
..... | |
..... | |
..... | |
AddLandLD | |
Yellow | |
..... | |
..... | |
..... | |
..... | |
0.... | |
AddLandRUD | |
Yellow | |
....0 | |
..... | |
..... | |
..... | |
....0 | |
AddLandRU | |
Yellow | |
....0 | |
..... | |
..... | |
..... | |
..... | |
AddLandRD | |
Yellow | |
..... | |
..... | |
..... | |
..... | |
....0 | |
RemoveLandLUD | |
Blue | |
0.... | |
..... | |
..... | |
..... | |
0.... | |
RemoveLandLU | |
Blue | |
0.... | |
..... | |
..... | |
..... | |
..... | |
RemoveLandLD | |
Blue | |
..... | |
..... | |
..... | |
..... | |
0.... | |
RemoveLandRUD | |
Blue | |
....0 | |
..... | |
..... | |
..... | |
....0 | |
RemoveLandRU | |
Blue | |
....0 | |
..... | |
..... | |
..... | |
..... | |
RemoveLandRD | |
Blue | |
..... | |
..... | |
..... | |
..... | |
....0 | |
Hint | |
transparent | |
======= | |
LEGEND | |
======= | |
WaterAnim = WaterAnim1 or WaterAnim2 | |
. = Background | |
# = Wall | |
P = Player | |
~ = NormalCrate | |
* = ReflectableCrate | |
O = Target | |
_ = Hole and WaterAnim1 | |
Mirror = MirrorUL or MirrorUR or MirrorDL or MirrorDR | |
Counter = 00 or 01 or 02 or 03 or 04 or 05 or 06 or 07 or 08 or 09 | |
DirectionCounter = North or South or East or West | |
LevelNumber = Zero or One or Two or Three or Four or Five or Six or Seven or Eight or Nine | |
Crate = NormalCrate or ReflectableCrate | |
Pushable = Mirror or Crate | |
Solid = Player or Wall or Crate or Mirror | |
Reflectable = Player or ReflectableCrate | |
/ = MirrorUL | |
\ = MirrorUR | |
` = MirrorDL | |
' = MirrorDR | |
0 = Zero and Hole | |
1 = One and Hole | |
2 = Two and Hole | |
3 = Three and Hole | |
4 = Four and Hole | |
5 = Five and Hole and Hint | |
6 = Six and Hole | |
7 = Seven and Hole | |
8 = Eight and Hole | |
9 = Nine and Hole | |
AddLandL = AddLandLUD or AddLandLU or AddLandLD | |
AddLandR = AddLandRUD or AddLandRU or AddLandRD | |
RemoveLandL = RemoveLandLUD or RemoveLandLU or RemoveLandLD | |
RemoveLandR = RemoveLandRUD or RemoveLandRU or RemoveLandRD | |
WaterHere = Hole or CrateInHole or FloatingBody | |
======= | |
SOUNDS | |
======= | |
sfx0 72252907 (player move) | |
sfx1 22154307 (push) | |
sfx2 99784702 (swap) | |
sfx3 55205302 (crate in water) | |
sfx4 71749307 (can't go into water) | |
CantMove Create 24357902 | |
EndLevel 31191508 | |
Undo 1263307 | |
Restart 65079302 | |
================ | |
COLLISIONLAYERS | |
================ | |
Background | |
Target, Hole, CrateInHole, FloatingBody | |
HasReflection, Hint | |
AddLandL, RemoveLandL | |
AddLandR, RemoveLandR | |
Solid, LOS | |
Counter | |
DirectionCounter, LevelNumber, WaterAnim | |
Reflection, CantMove, CrateReflection | |
====== | |
RULES | |
====== | |
[ > Player ] [ Hint ] -> [ > Player ] [ action Hint ] | |
[ CantMove ] -> [] | |
late [ Hole no WaterAnim no LevelNumber ] -> [ Hole WaterAnim1 ] | |
late [ WaterAnim no Hole ] -> [] | |
(Water anim) | |
([ stationary Player ] [ stationary WaterAnim1 ] -> [ Player] [ action WaterAnim2 ] | |
[ stationary Player ] [ stationary WaterAnim2 ] -> [ Player] [ action WaterAnim1 ]) | |
(Island border) | |
left [ WaterHere no AddLandL | no WaterHere ] -> [ WaterHere AddLandLUD | ] | |
right [ WaterHere no AddLandR | no WaterHere ] -> [ WaterHere AddLandRUD | ] | |
up [ AddLandLUD | WaterHere ] -> [ AddLandLD | WaterHere ] | |
up [ AddLandRUD | WaterHere ] -> [ AddLandRD | WaterHere ] | |
down [ AddLandLUD | WaterHere ] -> [ AddLandLU | WaterHere ] | |
down [ AddLandRUD | WaterHere ] -> [ AddLandRU | WaterHere ] | |
down [ AddLandLD | WaterHere ] -> [ | WaterHere ] | |
down [ AddLandRD | WaterHere ] -> [ | WaterHere ] | |
left [ no WaterHere no RemoveLandL | WaterHere ] -> [ RemoveLandLUD | WaterHere ] | |
right [ no WaterHere no RemoveLandR | WaterHere ] -> [ RemoveLandRUD | WaterHere ] | |
up [ RemoveLandLUD | no WaterHere ] -> [ RemoveLandLD | ] | |
up [ RemoveLandRUD | no WaterHere ] -> [ RemoveLandRD | ] | |
down [ RemoveLandLUD | no WaterHere ] -> [ RemoveLandLU | ] | |
down [ RemoveLandRUD | no WaterHere ] -> [ RemoveLandRU | ] | |
down [ RemoveLandLD | no WaterHere ] -> [ | ] | |
down [ RemoveLandRD | no WaterHere ] -> [ | ] | |
(Prevent teleport) | |
[ action Player ] [ Reflection Hole ] -> [ action Player ] [ CantMove Hole ] | |
[ CantMove ] [ action Player ] -> [ CantMove ] [ Player ] again | |
(Swap places) | |
[ action Player HasReflection ] [ Reflection ] -> [ action Player HasReflection ] [ Reflection Player ] | |
[ Reflection Player ] -> [ Player ] sfx2 | |
[ action Player ] [ CrateReflection ] -> [ action Player ] [ ReflectableCrate ] sfx2 | |
[ action Player ] [ ReflectableCrate HasReflection ] -> [ action Player ] [] | |
[ action Player HasReflection ] -> [ Reflection ] | |
(Clear state) | |
[ LOS ] -> [] | |
[ HasReflection ] -> [] | |
[ Reflection ] -> [] | |
[ CrateReflection ] -> [] | |
[ action Player ] -> [ Player ] | |
[ moving Player ] -> [ moving Player HasReflection ] (testing killing) | |
(Push things) | |
[ > Player | Hole ] -> [ Player | Hole ] sfx4 | |
[ > Player | Crate | no Solid ] -> [ > Player | > Crate | ] sfx1 | |
[ > Player | Mirror | no Hole no Solid ] -> [ > Player | > Mirror | ] sfx1 | |
[ > Player | stationary Mirror | Hole ] -> [ Player | Mirror | Hole ] sfx4 | |
[ > Player | Crate | > Player ] -> [ > Player | > Crate | > Player ] sfx1 | |
[ > Player | Mirror | > Player ] -> [ > Player | > Mirror | > Player ] sfx1 | |
[ > Mirror | Hole ] -> [ Mirror | Hole ] sfx4 | |
[ > Pushable | no Solid ] -> [ | Pushable ] | |
+ [ > Player | no Solid ] -> [ | Player ] sfx0 | |
[ > Player ] -> [ Player ] sfx4 | |
[ Player Hole ] -> [ Hole ] | |
[ Mirror Hole ] -> cancel | |
[ NormalCrate Hole ] -> [ CrateInHole ] sfx3 | |
[ ReflectableCrate Hole ] -> [ CrateInHole ] sfx3 | |
[ Player ] [ HasReflection ] -> [ Player ] [] | |
[ HasReflection ] -> cancel (all players dead) | |
(Make reflections) | |
startloop | |
random [ Reflectable no DirectionCounter ] -> [ action Reflectable North left 00 ] | |
+ [ Reflectable North ] -> [ action Reflectable East right 00 ] | |
+ [ Reflectable East ] -> [ action Reflectable South up 00 ] | |
+ [ Reflectable South ] -> [ action Reflectable West down 00 ] | |
[ > 00 | no Solid ] -> [ | > 01 LOS ] | |
[ > 01 | no Solid ] -> [ | > 02 LOS ] | |
[ > 02 | no Solid ] -> [ | > 03 LOS ] | |
[ > 03 | no Solid ] -> [ | > 04 LOS ] | |
[ > 04 | no Solid ] -> [ | > 05 LOS ] | |
[ > 05 | no Solid ] -> [ | > 06 LOS ] | |
[ > 06 | no Solid ] -> [ | > 07 LOS ] | |
[ > 07 | no Solid ] -> [ | > 08 LOS ] | |
[ > 08 | no Solid ] -> [ | > 09 LOS ] | |
[ > Counter | Solid no Mirror ] -> [ | Solid ] | |
left [ > Counter | MirrorUR ] -> [ | MirrorUR up Counter ] | |
+ left [ > Counter | MirrorDR ] -> [ | MirrorDR down Counter ] | |
+ right [ > Counter | MirrorUL ] -> [ | MirrorUL up Counter ] | |
+ right [ > Counter | MirrorDL ] -> [ | MirrorDL down Counter ] | |
+ up [ > Counter | MirrorDL ] -> [ | MirrorDL left Counter ] | |
+ up [ > Counter | MirrorDR ] -> [ | MirrorDR right Counter ] | |
+ down [ > Counter | MirrorUL ] -> [ | MirrorUL left Counter ] | |
+ down [ > Counter | MirrorUR ] -> [ | MirrorUR right Counter ] | |
+ [ > 09 | no Solid ] -> [ | > 08 LOS ] | |
+ [ > 08 | no Solid ] -> [ | > 07 LOS ] | |
+ [ > 07 | no Solid ] -> [ | > 06 LOS ] | |
+ [ > 06 | no Solid ] -> [ | > 05 LOS ] | |
+ [ > 05 | no Solid ] -> [ | > 04 LOS ] | |
+ [ > 04 | no Solid ] -> [ | > 03 LOS ] | |
+ [ > 03 | no Solid ] -> [ | > 02 LOS ] | |
+ [ > 02 | no Solid ] -> [ | > 01 LOS ] | |
+ [ > 01 | no Solid ] -> [ | > 00 LOS ] | |
[ > 00 | no Solid no CantMove ] [ action Player ] -> [ | Reflection ] [ Player HasReflection ] | |
[ > 00 | no Solid no CantMove ] [ action ReflectableCrate ] -> [ | CrateReflection ] [ ReflectableCrate HasReflection ] | |
[ Counter ] -> [] | |
[ action Reflectable ] [ stationary LOS ] -> [ action Reflectable ] [] | |
[ LOS ] -> [ action LOS ] | |
[ action Reflectable ] -> [ Reflectable ] | |
endloop | |
[ DirectionCounter ] -> [] | |
[ stationary Hint ] [ ReflectableCrate HasReflection ] -> [] [ ReflectableCrate HasReflection ] message Oh the crates can reflect now. That is cool and totally not arbitrary | |
============== | |
WINCONDITIONS | |
============== | |
All Target on Player | |
All Player on Target | |
======= | |
LEVELS | |
======= | |
_____________ | |
___.....___1_ | |
__........___ | |
___........__ | |
______...o.._ | |
___..___...._ | |
__.....__..__ | |
__...p.._____ | |
____...._____ | |
__.______..__ | |
_....__....._ | |
_..\.._....._ | |
_.....__...._ | |
__...____..__ | |
_____________ | |
_____________ | |
_2___....____ | |
____.p.'..___ | |
___.......___ | |
______.._____ | |
___._____..__ | |
__...___...._ | |
__....__..o._ | |
__....._...._ | |
_......_...__ | |
_..'...__.___ | |
_......______ | |
__...._______ | |
___..________ | |
_____________ | |
_________________ | |
________....___3_ | |
_______...~..____ | |
__..__.......____ | |
_....__..~...____ | |
_....___...______ | |
_....____________ | |
__..___..____..._ | |
__..__....__..o._ | |
_.'._.....__...._ | |
_..._..._____..__ | |
_..._..__..______ | |
__..____...._____ | |
_______.~.p..____ | |
_______....._____ | |
_________________ | |
_______________ | |
__...____...___ | |
_..._____....__ | |
_.o.____...~.__ | |
_...______...._ | |
_.._______...__ | |
__.__..__...___ | |
__._../....____ | |
____..._.._____ | |
____.p.________ | |
_____..______4_ | |
_______________ | |
________________ | |
_..__.____.___5_ | |
_......__..p____ | |
_......_..'.____ | |
__....._.~..____ | |
____..___..__.__ | |
_______._____.._ | |
__.___..____..._ | |
_........___.o._ | |
__.....~.___..._ | |
____.~...____.._ | |
_____...________ | |
________________ | |
_______________ | |
______.._____6_ | |
__....~..______ | |
_.......~._____ | |
__..__...p.____ | |
________...____ | |
_________._____ | |
_______________ | |
__..___._______ | |
__..\....______ | |
__...~..____.__ | |
___.~..____..._ | |
___..._____.o._ | |
____________.._ | |
_______________ | |
___________ | |
_7___...___ | |
______.o.__ | |
______...._ | |
__..___..__ | |
_....______ | |
_.~..__.p__ | |
_....._..._ | |
__.\.._.~._ | |
__...__.___ | |
___________ | |
________________ | |
_8_______...____ | |
________.....___ | |
__..____..~..___ | |
_....____...____ | |
_.....___.._____ | |
_..o..______..._ | |
__....____...~._ | |
__...___...__.._ | |
___..__.p.______ | |
_______....__.._ | |
_________../..._ | |
__________....__ | |
________________ | |
____________ | |
_9______..__ | |
__...___.~__ | |
_...o._...__ | |
___...______ | |
________..._ | |
__..___..~._ | |
_....__./.__ | |
__.p..__..__ | |
__..._______ | |
____________ | |
_________________ | |
_______..._______ | |
______..'._______ | |
_______....______ | |
________..___..__ | |
____________...._ | |
_____...____..o._ | |
__....p..____..._ | |
_.../...______.__ | |
_......__________ | |
_..~...__________ | |
___...________10_ | |
_________________ | |
______________ | |
___..__..._11_ | |
__......'...__ | |
__.........p._ | |
__...___..`.__ | |
_________...__ | |
___.______.___ | |
_....__.._____ | |
_..o.__....___ | |
__...__..o..__ | |
________...___ | |
______________ | |
____________ | |
_12_..__..__ | |
___...._..._ | |
___.'.._..._ | |
___...__.o._ | |
___..__...._ | |
__...__..o._ | |
__.p.__...._ | |
__...__..o._ | |
__...___..._ | |
_.\..___..__ | |
_...._______ | |
__..________ | |
____________ | |
_______________ | |
___...__.._____ | |
____..__....___ | |
_.._.__......__ | |
_..~.._....\.__ | |
__....__./...._ | |
____._____.p.__ | |
___________..__ | |
_......._______ | |
_..o..o..._____ | |
__........_____ | |
_____....___13_ | |
_______________ | |
_________________ | |
___._____..._____ | |
__...____.`..____ | |
__.p..__.......__ | |
_....___........_ | |
_..p.__........._ | |
_....__....o...._ | |
__..____........_ | |
________...\...__ | |
_________......__ | |
_14_______...____ | |
_________________ | |
message Something... has changed | |
(___________________ | |
________..___...___ | |
__..__....._.....__ | |
_..._......_...o.._ | |
_.*.__.#.`.___.._._ | |
_...___..._________ | |
_..________________ | |
__...______._______ | |
__.p.___......_____ | |
___..__....*...____ | |
___.____......_____ | |
________..______15_ | |
___________________) | |
_________________ | |
_15_____...._____ | |
_______......____ | |
__..__..*....____ | |
_....__......____ | |
_....___...______ | |
_....____________ | |
__..___..____..._ | |
__..__....__..o._ | |
_.'._.....__...._ | |
_..._....____..__ | |
_..._......______ | |
__..____.p.._____ | |
_________._______ | |
_________________ | |
_____________ | |
_16_____...__ | |
______...o.._ | |
__.._......._ | |
__..___..____ | |
_..._________ | |
_.p..________ | |
_..\.________ | |
__...._..____ | |
____.*...____ | |
_____..._____ | |
_____________ | |
_________________ | |
__.....__________ | |
_.........___#.__ | |
_.*.'.#..._....._ | |
_........___#.o._ | |
___..._______..._ | |
__...._________._ | |
__.p.____________ | |
___.._________17_ | |
_________________ | |
_____________ | |
_18___...____ | |
_____..'.____ | |
_____.*._____ | |
_____p.._____ | |
______.._____ | |
____._____.__ | |
___..____..._ | |
__....___.o._ | |
_...*.___..._ | |
_.*...____.._ | |
_....________ | |
__...________ | |
___..._______ | |
_____________ | |
_____________ | |
_________.___ | |
__...___..___ | |
_...o.__...__ | |
___...___.#._ | |
________...._ | |
__..___..*.__ | |
_....__./.___ | |
__.p..__..___ | |
__..._____19_ | |
_____________ | |
(_________________ | |
___________..____ | |
___...____....___ | |
__......__..`..__ | |
_......._...__.__ | |
_......._..______ | |
__.._________.___ | |
_________.._...__ | |
_________..*..*._ | |
_____.____...p.._ | |
____...._____..__ | |
____..o..._______ | |
_20___...________ | |
_________________) | |
______________ | |
_______...____ | |
______.....___ | |
________.o..__ | |
____..__...___ | |
___.*.._______ | |
__....._______ | |
_..\.._____.__ | |
_.p..____...._ | |
__._____....._ | |
_________.*.._ | |
_20_______..__ | |
______________ | |
_________________ | |
____._________21_ | |
___..____________ | |
_...*____________ | |
_.*\..________.#_ | |
_p....______#..._ | |
_...*.______..o._ | |
__*...______#..._ | |
__.._________#.__ | |
_________________ | |
_______________ | |
__.___._____.__ | |
_..._..____..._ | |
_.o._..__..`.._ | |
_..___....#..__ | |
______.##._____ | |
____.*.*.______ | |
___...p..______ | |
___....._______ | |
_22__._________ | |
_______________ | |
(______________ | |
______________ | |
______________ | |
______________ | |
______________ | |
______________ | |
______________ | |
______________ | |
______________ | |
______________ | |
______________) | |
message Thanks for playing :) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment