(version 1.0) title Telefrag author CHz homepage quiteajolt.com again_interval 0.5 norepeat_action run_rules_on_level_start ======== OBJECTS ======== Background #DDDDDD Wall #7F552C Goal Yellow Pit Black PlayerUp Black Orange .0.0. .000. .111. 01110 01110 PlayerRight Black Orange 00... 11100 1110. 11100 00... PlayerDown Black Orange 01110 01110 .111. .000. .0.0. PlayerLeft Black Orange ...00 00111 .0111 00111 ...00 Speck White ..... ..... ..0.. ..... ..... SpeckMessageA Transparent SpeckMessageB Transparent Block1 #AA0000 #FF0000 #FFFFFF 00000 01110 02220 01110 00000 Floor1 #FF0000 #FFFFFF ..... .000. .111. .000. ..... FilledPit1 #550000 #880000 #888888 00000 01110 02220 01110 00000 Block2 #00AA00 #00FF00 #FFFFFF 00000 01210 01210 01210 00000 Floor2 #00FF00 #FFFFFF ..... .010. .010. .010. ..... FilledPit2 #005500 #008800 #888888 00000 01210 01210 01210 00000 TerminalPlaceholder Red Terminal1 #555555 Black #003300 00000 02210 01110 01220 00000 Terminal2 #555555 Black #003300 00000 02210 01110 02120 00000 Terminal3 #555555 Black #003300 00000 02120 01110 01220 00000 Terminal4 #555555 Black #003300 00000 02120 01110 02210 00000 Terminal5 #555555 Black #003300 00000 01220 01110 02210 00000 Terminal6 #555555 Black #003300 00000 01220 01110 02120 00000 ======= LEGEND ======= . = Background # = Wall G = Goal ↑ = PlayerUp → = PlayerRight ↓ = PlayerDown ← = PlayerLeft Player = PlayerUp or PlayerRight or PlayerDown or PlayerLeft - = Pit FilledPit = FilledPit1 or FilledPit2 1 = Block1 and Floor1 2 = Block2 and Floor2 Block = Block1 or Block2 ! = TerminalPlaceholder and Floor1 @ = TerminalPlaceholder and Floor2 Terminal = Terminal1 or Terminal2 or Terminal3 or Terminal4 or Terminal5 or Terminal6 A = Pit and SpeckMessageA B = Pit and SpeckMessageB ======= SOUNDS ======= sfx0 17530908 (reset blocks) sfx1 26439904 (same as Player CantMove, manually invoked for pits) Player CantMove 26439904 Block Move 18126307 FilledPit Create 31528704 Speck Create 16467901 ShowMessage 40724506 StartLevel 47176108 EndLevel 74636303 (80606908) ================ COLLISIONLAYERS ================ Background Floor1, Floor2, Pit, FilledPit, Goal Player, Wall, Block, Terminal, Speck TerminalPlaceholder SpeckMessageA, SpeckMessageB ====== RULES ====== (=============== USING TERMINALS ===============) (Erase all blocks of the given type that aren't on a starting floors, including ones that are filling pits.) [ACTION Player | Terminal Floor1] [Block1 no Floor1] -> [ACTION Player | Terminal Floor1] [ ] [ACTION Player | Terminal Floor1] [FilledPit1] -> [ACTION Player | Terminal Floor1] [Pit] (Fill in all starting floors that DON'T have the proper blocks on them with blocks. This check prevents the sound effect from playing if a terminal doesn't actually do anything.) [ACTION Player | Terminal Floor1] [Floor1 no Block1 no Terminal] -> [ACTION Player | TerminalPlaceholder Terminal Floor1] [Block1 Floor1] sfx0 (Repeat for the other block type. Copy-pasting, yay.) [ACTION Player | Terminal Floor2] [Block2 no Floor2] -> [ACTION Player | Terminal Floor2] [ ] [ACTION Player | Terminal Floor2] [FilledPit2] -> [ACTION Player | Terminal Floor2] [Pit] [ACTION Player | Terminal Floor2] [Floor2 no Block2 no Terminal] -> [ACTION Player | TerminalPlaceholder Terminal Floor2] [Block2 Floor2] sfx0 (=============== PLAYER MOVEMENT ===============) UP [> Player] -> [> PlayerUp] RIGHT [> Player] -> [> PlayerRight] DOWN [> Player] -> [> PlayerDown] LEFT [> Player] -> [> PlayerLeft] (Pits are on a different collision layer for reasons, so manually block player movement into them.) [> Player | Pit] -> [Player | Pit] sfx1 (============== BLOCK MOVEMENT ==============) [> Player | Block] -> [> Player | > Block] late [Block1 Pit] -> [FilledPit1] late [Block2 Pit] -> [FilledPit2] (====================== TERMINAL RANDOMIZATION ======================) (When the player hits a terminal, change the screen to something different than it's already showing.) [TerminalPlaceholder Terminal1] -> [random Terminal2 random Terminal3 random Terminal4 random Terminal5 random Terminal6] [TerminalPlaceholder Terminal2] -> [random Terminal1 random Terminal3 random Terminal4 random Terminal5 random Terminal6] [TerminalPlaceholder Terminal3] -> [random Terminal1 random Terminal2 random Terminal4 random Terminal5 random Terminal6] [TerminalPlaceholder Terminal4] -> [random Terminal1 random Terminal2 random Terminal3 random Terminal5 random Terminal6] [TerminalPlaceholder Terminal5] -> [random Terminal1 random Terminal2 random Terminal3 random Terminal4 random Terminal6] [TerminalPlaceholder Terminal6] -> [random Terminal1 random Terminal2 random Terminal3 random Terminal4 random Terminal5] (On level start, just pick a random screen with no restrictions.) [TerminalPlaceholder] -> [random Terminal1 random Terminal2 random Terminal3 random Terminal4 random Terminal5 random Terminal6] (================= DEATH, APPARENTLY =================) (You died. How did you even die? You did this on purpose, didn't you.) [Speck] [SpeckMessageA] -> [Speck] [] message Okay, well, that's the easy place to die. Don't get too proud about having flung yourself into a pit. [Speck] [SpeckMessageB] -> [Speck] [] message Okay, I'm legitimately impressed you died there. Now quit clowning around and rewind time already. late [Player Pit] -> [Speck Pit] again ============== WINCONDITIONS ============== some Player on Goal ======= LEVELS ======= message Hey, use that forklift to clear a path through these blocks to the back so we can unload the trucks. message If you mess up, drive up next to a gray terminal and hit [X] to reset the blocks to their original positions. message Each terminal only works on one color, so you'll have to hit both to reset everything. message It's inconvenient, I know, but the mark 2 terminals are still in the truck. (min. # of resets: 2) (If you beat any of these scores, let me know!) 1!#### ..1.2G →.1.2G ..1.2G 2@#### message That's the ticket. message Hit [Z] to undo the last move, and hit [R] if you get extra stuck and want to reset everything from the beginning, including yourself. (2) 1!#@2 #.↓.# #1.2# #.1.# #2.1# #.2.# #1.2# G...G (2) G.2.#..## .222.1.## #.2.111## .1.#.1.## 111.2..## .1.222.!1 ..#.2.←@2 (3) ####G#### .2.121.2. .2..2..2. .2222222. !...↑...@ 1#######2 message Uh, and the extra flooring's all in the other truck. Sorry about that. (2) ####1!#@2#### G----.↓.----G G----.1.----G G----121----G G----.1.----G (3) #######1#### GA-....!.... G--...---... G--...-2-... G--.1←-1-... G--...-2-... G--...---... G--....@.... #######2#### (4) 1---------- !.1.2-----G #→1.2-----G @.1.2-----G 2---------- (3) GGGGGGGGGGGGGGGGGGG GB----------------G G-----------------G G-----------------G G-----------------G G----1!-----@2----G G----!.......@----G G-----.-----.-----G G-----.-121-.-----G G-----.-2↑2-.-----G G-----.-121-.-----G G-----.-----.-----G G----@.......!----G G----2@-----!1----G G-----------------G G-----------------G G-----------------G G-----------------G GGGGGGGGGGGGGGGGGGG message Great. After my lunch break, we can work on unloading everything. message END message This game is dedicated to all the PuzzleScripters out there who've had to fix a layer overwrite bug in their game logic. :] message Special shoutouts to PUZZLETALE by Connorses, which directly inspired this in two ways. ( Outtake puzzle that I found really hard to cut. I like it because it *strictly* requires you to do something that none of the other puzzles do (although it does nicen up a couple of solutions). However, aesthetically it clashes really hard with the others, which are all geometric/symmetric. The puzzles that I write tend to "look" like puzzles; typically I design them around an idea or maneuver I want the player to perform, and so they end up having noticeably asymmetric regions to the player can certain ways, or blocks/pits in inconvenient places obviously to complicate things, and so on. As an experiment, my design philosophy for this game was to try to get away from that: I didn't want the puzzles to look like they were clearly designed with a solution in mind. I don't think I was entirely successful in that goal (particularly #6), but I'm generally satisfied that the feel of this game is a little different from the stuff I usually make. This outtake puzzle is very much in my usual vein of puzzle design, so it doesn't fit with the rest. Is anyone even reading this? :J (2) -----..... G---..#-.. G---←21-1. G---..@-.. G---!12-.. )