UNPKG

puzzlescript

Version:

Play PuzzleScript games in your terminal!

1,038 lines (836 loc) 14.8 kB
title Mirror Isles author Alan Hazelden homepage www.draknek.org norepeat_action run_rules_on_level_start youtube tI8IarSxiLk (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 :)