Created
October 3, 2014 09:01
-
-
Save anonymous/42f3a3ce2cd5e13d6787 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 and Other Tales: The Ranger | |
author Chris Pickel & Jonah Ostroff | |
text_color yellow | |
key_repeat_interval 0.25 | |
require_player_movement | |
======== | |
OBJECTS | |
======== | |
Background | |
#AAA #DDD | |
00000 | |
00100 | |
00000 | |
00010 | |
00000 | |
Water | |
#03C Blue | |
00000 | |
00100 | |
00000 | |
00010 | |
00000 | |
Swimming | |
#03C | |
..... | |
..... | |
..... | |
0.0.0 | |
00000 | |
Goal | |
Brown Yellow | |
.000. | |
00000 | |
00010 | |
00000 | |
00000 | |
Wall | |
Darkgrey #222 | |
01000 | |
11111 | |
00010 | |
00010 | |
11111 | |
Fighter | |
#F44 Pink DarkBrown | |
.000. | |
.111. | |
00000 | |
.000. | |
.2.2. | |
Wizard | |
#26F Pink | |
.000. | |
.010. | |
00000 | |
.000. | |
00000 | |
Thief | |
#0B0 Pink DarkBrown | |
.000. | |
.010. | |
00000 | |
.0.0. | |
.0.0. | |
Ranger | |
#A74 Green DarkBrown | |
.222. | |
.212. | |
11011 | |
.000. | |
.1.1. | |
Dog | |
#A74 DarkBrown | |
..... | |
.000. | |
01010 | |
00100 | |
.0.0. | |
SFighter | |
#800 Pink DarkBrown | |
.000. | |
.111. | |
00000 | |
.000. | |
.2.2. | |
SWizard | |
#008 Pink | |
.000. | |
.010. | |
00000 | |
.000. | |
00000 | |
SThief | |
#060 Pink DarkBrown | |
.000. | |
.010. | |
00000 | |
.0.0. | |
.0.0. | |
SRanger | |
#754 Green DarkBrown | |
.222. | |
.212. | |
11011 | |
.000. | |
.1.1. | |
SDog | |
#754 DarkBrown | |
..... | |
.000. | |
01010 | |
00100 | |
.0.0. | |
Crate | |
Orange #520 | |
.111. | |
10001 | |
10001 | |
10001 | |
.111. | |
YellowSwitch | |
Yellow Black | |
..... | |
.111. | |
.101. | |
.111. | |
..... | |
YellowOpen | |
Yellow | |
0...0 | |
..... | |
..... | |
..... | |
0...0 | |
YellowDoor | |
Yellow #A72 | |
01010 | |
10001 | |
00000 | |
10001 | |
01010 | |
PurpleSwitch | |
#61C Black | |
..... | |
.111. | |
.101. | |
.111. | |
..... | |
PurpleDoor | |
#61C #208 | |
01010 | |
10001 | |
00000 | |
10001 | |
01010 | |
PurpleOpen | |
#61C | |
0...0 | |
..... | |
..... | |
..... | |
0...0 | |
Teleport | |
Pink | |
Opening | |
Purple | |
======= | |
LEGEND | |
======= | |
Player = Fighter or Wizard or Thief or Ranger | |
SPlayer = SFighter or SWizard or SThief or SRanger | |
Hero = Player or SPlayer | |
Companion = Dog or SDog | |
ClosedDoor = PurpleDoor or YellowDoor | |
OpenDoor = YellowOpen or PurpleOpen | |
Switch = PurpleSwitch or YellowSwitch | |
Pusher = Fighter or Dog | |
Moveable = Crate or SPlayer or Companion | |
Static = Wall or ClosedDoor | |
Sinks = Crate | |
Swims = Hero or Companion | |
Weighing = Sinks or Swims | |
. = Background | |
~ = Water | |
# = Wall | |
F = Fighter | |
W = Wizard | |
T = Thief | |
R = Ranger | |
D = Dog | |
1 = SFighter | |
2 = SThief | |
3 = SWizard | |
4 = SRanger | |
$ = SDog | |
* = Crate | |
G = Goal | |
[ = YellowDoor | |
] = PurpleDoor | |
{ = YellowSwitch | |
} = PurpleSwitch | |
≤ = Water and YellowSwitch | |
≥ = Water and PurpleSwitch | |
======= | |
SOUNDS | |
======= | |
Moveable move 82056307 | |
Player create 66399906 | |
ClosedDoor create 92172900 | |
OpenDoor create 15129100 | |
Sfx0 21221308 | |
EndLevel 36315908 | |
EndGame 86793500 | |
================ | |
COLLISIONLAYERS | |
================ | |
Background | |
Water | |
Teleport, Opening | |
Goal, Switch, OpenDoor | |
Static, Hero, Dog, SDog, Crate | |
Swimming | |
====== | |
RULES | |
====== | |
(The dog follows the ranger over any distance. The ranger pushes the dog, but isn't allowed to push other objects by pushing the dog into them.) | |
[ Dog | ... | > Ranger ] -> [ > Dog | ... | > Ranger ] | |
[ > Ranger | Dog | Moveable ] -> [ Ranger | Moveable | Dog ] | |
[ > Ranger | Dog ] -> [ > Ranger | > Dog ] | |
(The fighter and dog push any number of movable objects) | |
[ > Pusher | Moveable ] -> [ > Pusher | > Moveable ] | |
[ > Moveable | Moveable ] -> [ > Moveable | > Moveable ] | |
(The thief pulls one movable object) | |
[ < Thief | Moveable ] -> [ < Thief | < Moveable ] | |
(Anything that sinks is not allowed to move into water) | |
[ > Sinks | Water ] -> [ Sinks | Water ] | |
(The wizard swaps with movable objects, but not if it would put an object that sinks into water) | |
[ > Wizard ] -> [ > Wizard > Teleport] | |
[ > Teleport | no Moveable no Static] -> [ | > Teleport] | |
[ > Teleport | Sinks ] [> Wizard Water] -> [ | Sinks ] [> Wizard Water] | |
[ > Teleport | Moveable] [> Wizard] -> [ | Wizard Sfx0] [Moveable] | |
[ > Teleport ] -> [ ] | |
(Character switching. Try each possibility in turn; first succeeds) | |
[Action Fighter] [SThief ] -> [SFighter] [Thief ] | |
[Action Fighter] [SWizard ] -> [SFighter] [Wizard ] | |
[Action Fighter] [SRanger ] -> [SFighter] [Ranger ] | |
[Action Thief ] [SWizard ] -> [SThief ] [Wizard ] | |
[Action Thief ] [SRanger ] -> [SThief ] [Ranger ] | |
[Action Thief ] [SFighter] -> [SThief ] [Fighter] | |
[Action Wizard ] [SRanger ] -> [SWizard ] [Ranger ] | |
[Action Wizard ] [SFighter] -> [SWizard ] [Fighter] | |
[Action Wizard ] [SThief ] -> [SWizard ] [Thief ] | |
[Action Ranger ] [SFighter] -> [SRanger ] [Fighter] | |
[Action Ranger ] [SThief ] -> [SRanger ] [Thief ] | |
[Action Ranger ] [SWizard ] -> [SRanger ] [Wizard ] | |
(Doors try to open, but are closed if any switch lacks a weight) | |
late [YellowDoor] -> [Opening YellowDoor] | |
late [YellowSwitch no Weighing] [Opening YellowDoor] -> [YellowSwitch] [YellowDoor] | |
late [YellowSwitch no Weighing] [ YellowOpen] -> [YellowSwitch] [YellowDoor] | |
late [Opening YellowDoor] -> [YellowOpen] | |
late [PurpleDoor] -> [Opening PurpleDoor] | |
late [PurpleSwitch no Weighing] [Opening PurpleDoor] -> [PurpleSwitch] [PurpleDoor] | |
late [PurpleSwitch no Weighing] [ PurpleOpen] -> [PurpleSwitch] [PurpleDoor] | |
late [Opening PurpleDoor] -> [PurpleOpen] | |
(Copy active/inactive state from ranger to dog) | |
late [SRanger] [Dog ] -> [SRanger] [SDog] | |
late [Ranger ] [SDog] -> [Ranger ] [Dog] | |
(Visual effect: cover bottom half of swimming characters with water) | |
late [Swimming] -> [] | |
late [Swims Water] -> [Swimming Swims Water] | |
============== | |
WINCONDITIONS | |
============== | |
All Hero on Goal | |
All Goal on Hero | |
======= | |
LEVELS | |
======= | |
Message Welcome. | |
Message [You've played the original, yes?] | |
Message [If not, this might be confusing.] | |
############# | |
####2.3.F#### | |
###.......### | |
###.##.##.### | |
#.*{#.{*#{.*# | |
#...#...#...# | |
#...#...#...# | |
###[##[##[### | |
##.G..G..G.## | |
############# | |
Message Brown ranger's dog follows her. | |
######### | |
#.......# | |
#.DR..G.# | |
#.......# | |
######### | |
Message The dog can push crates. | |
####### | |
#R....# | |
###.### | |
#D*{}.# | |
#####.# | |
#G].[.# | |
####### | |
Message The ranger can push the dog. | |
####### | |
#R#...# | |
#D..### | |
#.*{}.# | |
#####.# | |
#G].[.# | |
####### | |
############# | |
#.D...{.#...# | |
#.R.*.{.[.G.# | |
#...#...#...# | |
############# | |
######### | |
#.....#G# | |
#.#*..#[# | |
#.*D.R..# | |
#.......# | |
#.{.{.{.# | |
#.......# | |
######### | |
########## | |
##.#.##### | |
#.$.4[..G# | |
##.#.##*.# | |
#{F..{#.G# | |
##.#.##### | |
########## | |
########## | |
##4$...### | |
#G.{*{..[# | |
##T....#G# | |
########## | |
####### | |
##.##G# | |
#W}4$]# | |
##.##G# | |
####### | |
Message Crates can't be pushed into water. | |
######### | |
#F....#G# | |
#.~*~.#.# | |
#.~~~.[.# | |
#.~{~.#.# | |
#2....#G# | |
######### | |
######### | |
#W....#.# | |
#.~*~.#.# | |
#.~~~.[.# | |
#.~{~.#.# | |
#.....#G# | |
######### | |
######### | |
#R....#.# | |
#D~*~.#.# | |
#.~~~.[.# | |
#.~≤~.#.# | |
#.....#G# | |
######### | |
############# | |
#...........# | |
#...........# | |
#..#######..# | |
#..##*#*G#..# | |
#..#*W~{*#..# | |
#..##~≤~[[..# | |
#..#*{~$*#..# | |
#..#G*#*##..# | |
#..#######..# | |
#.....4.....# | |
#...........# | |
############# | |
################## | |
#####.$.#.F.###### | |
#####...#...###### | |
######*###*####### | |
##..#........#G.G# | |
##..#.{{.###.#...# | |
#*3...{{.*##.[...# | |
##..#.{{.###.#...# | |
##..#........#G.G# | |
######*###*####### | |
#####...#...###### | |
#####.4.#.2.###### | |
################## | |
############## | |
#............# | |
#.D123R.GGGG.# | |
#............# | |
############## | |
Message Thanks for playing! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment