Created
October 9, 2013 23:17
-
-
Save anonymous/6910207 to your computer and use it in GitHub Desktop.
title
This file contains hidden or 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 hidden or 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 Heroes of Sokoban II: Monsters | |
| author Jonah Ostroff | |
| text_color yellow | |
| key_repeat_interval 0.25 | |
| ======== | |
| OBJECTS | |
| ======== | |
| Background | |
| #989898 #C8C8C8 | |
| 00000 | |
| 00100 | |
| 00000 | |
| 00010 | |
| 00000 | |
| Goal | |
| Brown Yellow | |
| .000. | |
| 00000 | |
| 00010 | |
| 00000 | |
| 00000 | |
| Wall | |
| Darkgrey #222222 | |
| 01000 | |
| 11111 | |
| 00010 | |
| 00010 | |
| 11111 | |
| Fighter (Warrior sounds better in-game, but I want different abbreviations for the classes in the editor.) | |
| #FF4444 Pink DarkBrown | |
| .000. | |
| .111. | |
| 00000 | |
| .000. | |
| .2.2. | |
| Wizard | |
| #2266FF Pink | |
| .000. | |
| .010. | |
| 00000 | |
| .000. | |
| 00000 | |
| Thief | |
| #66DD66 Pink DarkBrown | |
| .000. | |
| .010. | |
| 00000 | |
| .0.0. | |
| .0.0. | |
| Priest | |
| #FFFFAA Pink | |
| .000. | |
| .111. | |
| 00000 | |
| .000. | |
| 00000 | |
| SFighter | |
| #880000 Pink DarkBrown | |
| .000. | |
| .111. | |
| 00000 | |
| .000. | |
| .2.2. | |
| SWizard | |
| #000088 Pink | |
| .000. | |
| .010. | |
| 00000 | |
| .000. | |
| 00000 | |
| SThief | |
| #006600 Pink DarkBrown | |
| .000. | |
| .010. | |
| 00000 | |
| .0.0. | |
| .0.0. | |
| SPriest | |
| #B8B800 Pink | |
| .000. | |
| .111. | |
| 00000 | |
| .000. | |
| 00000 | |
| Crate | |
| Orange #552200 | |
| .111. | |
| 10001 | |
| 10001 | |
| 10001 | |
| .111. | |
| YellowSwitch | |
| Yellow Black | |
| ..... | |
| .111. | |
| .101. | |
| .111. | |
| ..... | |
| YellowOpen | |
| Yellow | |
| 0...0 | |
| ..... | |
| ..... | |
| ..... | |
| 0...0 | |
| YellowDoor | |
| Yellow #AA7722 | |
| 01010 | |
| 10001 | |
| 00000 | |
| 10001 | |
| 01010 | |
| PurpleSwitch | |
| #6611CC Black | |
| ..... | |
| .111. | |
| .101. | |
| .111. | |
| ..... | |
| PurpleDoor | |
| #6611CC #220088 | |
| 01010 | |
| 10001 | |
| 00000 | |
| 10001 | |
| 01010 | |
| PurpleOpen | |
| #6611CC | |
| 0...0 | |
| ..... | |
| ..... | |
| ..... | |
| 0...0 | |
| MonsterDoor | |
| DarkGrey #222222 Red | |
| 21002 | |
| 22122 | |
| 20212 | |
| 20012 | |
| 21112 | |
| Warpball | |
| Blue | |
| ShadowDoor | |
| Purple | |
| DragonLeft | |
| Green Red Orange Yellow DarkGreen | |
| ..... | |
| 1100. | |
| 3210. | |
| 1100. | |
| ...4. | |
| DragonRight | |
| Green Red Orange Yellow DarkGreen | |
| ..... | |
| .0011 | |
| .0123 | |
| .0011 | |
| .4... | |
| Goblin | |
| Green DarkBrown DarkGreen | |
| 0.2.0 | |
| 00000 | |
| ..0.. | |
| .111. | |
| .1.1. | |
| Dying | |
| White | |
| Saved | |
| #D8D800 | |
| ..0.. | |
| .000. | |
| ..0.. | |
| ..0.. | |
| ..... | |
| HasSaved | |
| Yellow | |
| ..... | |
| ..... | |
| ..... | |
| ..... | |
| ..... | |
| Corpse | |
| #CCC | |
| .000. | |
| .000. | |
| 00000 | |
| .0.0. | |
| .0.0. | |
| LFireball | |
| Orange | |
| RFireball | |
| Orange | |
| DidNotMove | |
| Purple | |
| ======= | |
| LEGEND | |
| ======= | |
| Dragon = DragonLeft or DragonRight | |
| Player = Fighter or Wizard or Thief or Priest | |
| SPlayer = Swizard or Sthief or SFighter or SPriest | |
| Hero = Player or Splayer | |
| Healer = Priest or SPriest (Unlike the other heroes, priests must function even when inactive. "Healer" is the generic term for an active or inactive priest.) | |
| ClosedDoor = PurpleDoor or YellowDoor or MonsterDoor | |
| OpenDoor = YellowOpen or PurpleOpen | |
| Switch = PurpleSwitch or YellowSwitch | |
| Monster = Dragon or Goblin | |
| Moveable = Crate or SPlayer or Monster | |
| Static = Wall or ClosedDoor | |
| Weighing = Crate or Hero or Monster | |
| Vulnerable = Hero or Monster | |
| Invulnerable = Crate or Static | |
| Fireball = LFireball or RFireball | |
| . = Background | |
| # = Wall | |
| F = Fighter | |
| W = Wizard | |
| T = Thief | |
| P = Priest | |
| 1 = SFighter | |
| 2 = SThief | |
| 3 = SWizard | |
| 4 = SPriest | |
| * = Crate | |
| G = Goal | |
| [ = YellowDoor | |
| ] = PurpleDoor | |
| { = YellowSwitch | |
| } = PurpleSwitch | |
| L = DragonLeft | |
| R = DragonRight | |
| O = Goblin | |
| M = MonsterDoor | |
| ======= | |
| SOUNDS | |
| ======= | |
| Moveable move 82056307 | |
| Sfx0 21221308 (teleport) | |
| Endlevel 36315908 | |
| Sfx1 66399906 (switch player) | |
| Sfx2 92172900 (close door) | |
| Sfx3 15129100 (open door) | |
| Sfx4 69860105 (saved) | |
| Sfx5 63194902 (kill enemy) | |
| Sfx6 81996702 (dying player) | |
| EndGame 86793500 | |
| ================ | |
| COLLISIONLAYERS | |
| ================ | |
| Background | |
| Warpball, Dying | |
| Goal, Switch, OpenDoor, ShadowDoor | |
| ClosedDoor, Hero, Crate, Wall, Monster, Corpse | |
| RFireball, Saved, DidNotMove | |
| LFireball, HasSaved | |
| ====== | |
| RULES | |
| ====== | |
| [Saved] [Wall] -> [] [Wall HasSaved] (Remembering whether we saved someone last round by attaching a note to some wall.) | |
| [Corpse] -> Restart | |
| (Adds a DidNotMove to where the player currently is, to cancel moves where they bump into a wall.) | |
| [Player] -> [Player DidNotMove] | |
| [ > Fighter | Moveable ] -> [ > Fighter | > Moveable ] | |
| [ > Moveable | Moveable ] [ Fighter] -> [ > Moveable | > Moveable ] [ Fighter] (Fighters push.) | |
| [ < Thief | Moveable ] -> [ < Thief | < Moveable ] (Thieves pull.) | |
| [ > Wizard ] -> [ Wizard > Warpball] | |
| [ > Warpball | no Moveable no Static] -> [ | > Warpball] | |
| [ > Warpball | Static] [Wizard] -> [ | Static ] [> Wizard] | |
| [ > Warpball | Moveable ] [Wizard] -> [ | Wizard Sfx0] [Moveable] (Wizards telexport. What they really do is shoot a "warpball", which causes them to move normally if it hits a wall and warp if it hits something they can warp with.) | |
| (The following mess is for changing characters.) | |
| [ Action Fighter] [SThief] -> [SFighter] [Thief Sfx1] | |
| [ Action Thief] [SWizard] -> [SThief] [Wizard Sfx1] | |
| [ Action Wizard] [SPriest] -> [SWizard] [Priest Sfx1] | |
| [ Action Priest] [SFighter] -> [SPriest] [Fighter Sfx1] | |
| [ Action Fighter] [no SThief] [SWizard] -> [SFighter] [no SThief] [Wizard Sfx1] | |
| [ Action Thief] [no Swizard] [SPriest] -> [SThief] [no SWizard] [Priest Sfx1] | |
| [ Action Wizard] [no SPriest] [SFighter] -> [SWizard] [no SPriest] [Fighter Sfx1] | |
| [ Action Priest] [no SFighter] [SThief] -> [SPriest] [no SFighter] [Thief Sfx1] | |
| [ Action Fighter] [no SThief] [no SWizard] [SPriest] -> [SFighter] [no SThief] [no SWizard] [Priest Sfx1] | |
| [ Action Thief] [no SWizard] [no SPriest] [SFighter] -> [SThief] [no SWizard] [no SPriest] [Fighter Sfx1] | |
| [ Action Wizard] [no SPriest] [no SFighter] [SThief] -> [SWizard] [no SPriest] [no SFighter] [Thief Sfx1] | |
| [ Action Priest] [no SFighter] [no SThief] [SWizard] -> [SPriest] [no SFighter] [no SThief] [Wizard Sfx1] | |
| (Cancels the move if the player is in the same place that they started. Notice that switching characters negates this. Only matters in levels where one dragon has multiple targets.) | |
| Late [Player DidNotMove] -> Cancel | |
| Late [DidNotMove] -> [] | |
| (Now enemies attack.) | |
| Late [DragonLeft] -> [LFireball DragonLeft] | |
| Late [DragonRight] -> [RFireball DragonRight] | |
| Late RIGHT [RFireball | No Vulnerable no Invulnerable] -> [ | RFireball] | |
| Late LEFT [LFireball | No Vulnerable no Invulnerable] -> [ | LFireball] | |
| Late RIGHT [RFireball | Vulnerable] -> [ | Dying Vulnerable] | |
| Late Right [RFireball | Invulnerable] -> [ | Invulnerable] | |
| Late Left [LFireball | Vulnerable] -> [ | Dying Vulnerable] | |
| Late LEFT [LFireball | Invulnerable] -> [ | Invulnerable] | |
| Late [Goblin | Vulnerable] -> [Goblin | Dying Vulnerable] | |
| (Vulnerable objects that are attacked are designated as "Dying", but heroes can be saved by the Priest. Then the stuff that didn't get saved dies.) | |
| Late [Dying Healer] -> [Saved Healer] | |
| Late [Healer | Dying Hero] -> [Healer | Saved Hero] | |
| Late [Dying Monster] -> [Sfx5] | |
| Late [Dying Hero] -> [Corpse Sfx6] | |
| (Doors opening.) | |
| late [Weighing YellowSwitch] [YellowDoor] -> [Weighing YellowSwitch] [ShadowDoor] | |
| late [YellowSwitch no Weighing] [YellowOpen] -> [YellowSwitch] [YellowDoor sfx2] | |
| late [YellowSwitch no Weighing] [ShadowDoor] -> [YellowSwitch] [YellowDoor] | |
| late [ShadowDoor] -> [YellowOpen sfx3] | |
| late [Weighing PurpleSwitch] [PurpleDoor] -> [Weighing PurpleSwitch] [ShadowDoor] | |
| late [PurpleSwitch no Weighing] [PurpleOpen] -> [PurpleSwitch] [PurpleDoor sfx2] | |
| late [PurpleSwitch no Weighing] [ShadowDoor] -> [PurpleSwitch] [PurpleDoor] | |
| late [ShadowDoor] -> [PurpleOpen sfx3] | |
| late [MonsterDoor] -> [ShadowDoor] | |
| late [ShadowDoor] [Monster] -> [MonsterDoor] [Monster] | |
| late [ShadowDoor] -> [sfx3] | |
| (Looks for a HasSaved on a wall and moves it to the Priest. Then, if someone was saved this turn, plays the sound only if the Priest doesn't have the HasSaved note. Finally, cleans that up.) | |
| late [Wall HasSaved] [Healer] -> [Wall] [Healer HasSaved] | |
| late [Saved] [Healer no HasSaved] -> [Saved sfx4] [Healer] | |
| late [HasSaved] -> [] | |
| ============== | |
| WINCONDITIONS | |
| ============== | |
| All Hero on Goal | |
| All Goal on Hero | |
| ======= | |
| LEVELS | |
| ======= | |
| Message Welcome back. | |
| Message [You've played the original, yes?] | |
| Message [If not, this might be confusing.] | |
| ############# | |
| #.......[...# | |
| #.*.F.{.[.G.# | |
| ############# | |
| #.......[...# | |
| #.*.2.{.[.G.# | |
| ############# | |
| #.......[...# | |
| #.*.3.{.[.G.# | |
| ############# | |
| Message Watch out for goblins. | |
| ############# | |
| #F.O.......O# | |
| #...O.......# | |
| #.......O...# | |
| #O..........# | |
| #....O......# | |
| #O.......O..# | |
| #.O.....O.G.# | |
| ############# | |
| ############# | |
| ###O###O##### | |
| #W.*****...O# | |
| #..*****....# | |
| #####O###O..# | |
| #O########..# | |
| #*G...O.O...# | |
| ##..O..O.O..# | |
| ############# | |
| Message Goblins attack each other too. | |
| ############# | |
| #.......#...# | |
| #...*...#.G.# | |
| #.F...O.#...# | |
| #...*...##O## | |
| #...........# | |
| ############# | |
| Message Dragons breath fire. | |
| ############### | |
| #.............# | |
| #..T..###.....# | |
| #.....L.#.....# | |
| #.......#.....# | |
| #.............# | |
| #.....#.......# | |
| #.....#.R..G..# | |
| #.....###.....# | |
| #.............# | |
| ############### | |
| Message Fire hurts enemies. | |
| ############## | |
| #...#....O.RG# | |
| #.T.#......R.# | |
| #...#R*L...R.# | |
| #R*.#...#..R.# | |
| #...#...#..R.# | |
| #...O.*.#..R.# | |
| #.......#....# | |
| ############## | |
| ########### | |
| #3.O.O.O.T# | |
| #.######### | |
| #......G.G# | |
| #.######### | |
| #R.O.O.O.O# | |
| ########### | |
| Message Think fast! | |
| ############# | |
| #R.O.O.O.O.T# | |
| ###########{# | |
| ###########]# | |
| #G#3.[.}.G#G# | |
| #]########### | |
| #{########### | |
| #1..O...O..L# | |
| ############# | |
| Message Sorry about that one. | |
| ####### | |
| ##G*G## | |
| ##.G.## | |
| #R...## | |
| ##...## | |
| ##...## | |
| ##...## | |
| ##...L# | |
| ##...## | |
| ##F23## | |
| ####### | |
| Message Kill monsters to open the M wall. | |
| ########### | |
| #L...R#...# | |
| #.....#...# | |
| #.....M.G.# | |
| #.T.*.#...# | |
| #.....#...# | |
| ########### | |
| ############# | |
| #.......#...# | |
| #..O.O..#...# | |
| #R......M.G.# | |
| #.*.F.*.#...# | |
| #.......#...# | |
| ############# | |
| ############# | |
| #.......#...# | |
| #.{.*.{.#...# | |
| #..W.O..M.G.# | |
| #.{.*.[.#...# | |
| #.......#...# | |
| ############# | |
| Message Yellow priest is protected. | |
| ########### | |
| #...#O#O#O# | |
| #.P.......# | |
| #...**O**.# | |
| #********.# | |
| #R..G.....# | |
| ########### | |
| ########### | |
| #W#######G# | |
| #.#O#O#O#.# | |
| #.........# | |
| #.##O#O##.# | |
| #4#######G# | |
| ########### | |
| Message Heroes next to a priest are safe. | |
| ############ | |
| #...#.O#O### | |
| #.F.#......# | |
| #...#.##O..# | |
| #.4...O#G.G# | |
| #...#.##.O.# | |
| ############ | |
| ############ | |
| #.#..T..#4## | |
| #.#.{.*...L# | |
| #.#.....#..# | |
| #G[.*.{...L# | |
| #.#.....#..# | |
| #.#.{.*...L# | |
| #.#.....#G## | |
| ############ | |
| ########### | |
| #W...O#...# | |
| #.....#.G.# | |
| #..4..M...# | |
| #.....#.G.# | |
| #O...O#...# | |
| ########### | |
| ########### | |
| #.T.##O#O## | |
| #.........# | |
| #.4.#O#O..# | |
| ########.## | |
| #G..####.O# | |
| #G#.O###.## | |
| ###.###O..# | |
| #O..O#....# | |
| ##...*....# | |
| ########### | |
| ########### | |
| #{*F#.4#.3# | |
| #{*.#..#..# | |
| ###[#[###.# | |
| #R[.......# | |
| ####O#.##.# | |
| ######.##.# | |
| #G.G.G.#O*# | |
| ########### | |
| ########### | |
| #.T.####O## | |
| #.3......O# | |
| #.4.###O.## | |
| #####O##.## | |
| #.G..*.O.## | |
| #G.G#O##.## | |
| ########### | |
| ########### | |
| ##O#O#O#O## | |
| #T[.[.[.[.# | |
| ##{#{#{#{.# | |
| #.........# | |
| #.3G*G*G4.# | |
| #.........# | |
| ########### | |
| Message The final challenge. | |
| ############# | |
| #...#O.O#...# | |
| #.F.#G.G#.2.# | |
| #...#.O.#...# | |
| ##.###*###.## | |
| #R*L.....R*L# | |
| #.#.......#.# | |
| #R*L.....R*L# | |
| ##.###M###.## | |
| #...#...#...# | |
| #.3.#G.G#.4.# | |
| #...#...#...# | |
| ############# | |
| Message Thanks for playing! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment