home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!news.tek.com!saab!billr
- From: billr@saab.CNA.TEK.COM (Bill Randle)
- Newsgroups: comp.sources.games
- Subject: v18i017: ccr - colossal cave (adventure) implemented in TADS, Part02/11
- Date: 12 Jul 1993 19:28:32 GMT
- Organization: Tektronix, Inc, Redmond, OR, USA
- Lines: 2279
- Approved: billr@saab.CNA.TEK.COM
- Message-ID: <21se10$1cq@ying.cna.tek.com>
- NNTP-Posting-Host: saab.cna.tek.com
- Xref: uunet comp.sources.games:1817
-
- Submitted-by: David Baggett <dmb@xbar.ai.mit.edu>
- Posting-number: Volume 18, Issue 17
- Archive-name: ccr/part02
- Environment: TADS
-
-
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 2 (of 11)."
- # Contents: src/ccr-room.t2
- # Wrapped by billr@saab on Mon Jul 12 12:02:42 1993
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'src/ccr-room.t2' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/ccr-room.t2'\"
- else
- echo shar: Extracting \"'src/ccr-room.t2'\" \(57507 characters\)
- sed "s/^X//" >'src/ccr-room.t2' <<'END_OF_FILE'
- X
- XAt_Steep_Incline_Above_Large_Room: CCR_room
- X sdesc = "At Steep Incline Above Large Room"
- X ldesc = {
- X I(); "You are at the top of a steep incline above a
- X large room. You could climb down here, but you would
- X not be able to climb up. There is a passage leading
- X back to the north.";
- X }
- X north = In_Cavern_With_Waterfall
- X cavern = In_Cavern_With_Waterfall
- X passage = In_Cavern_With_Waterfall
- X down = In_Large_Low_Room
- X climb = In_Large_Low_Room
- X;
- X
- XIn_Giant_Room: CCR_room
- X sdesc = "In Giant Room"
- X ldesc = {
- X I(); "You are in the giant room. The ceiling here is
- X too high up for your lamp to show it. Cavernous
- X passages lead east, north, and south. On the west
- X wall is scrawled the inscription, \"Fee fie foe foo\"
- X [sic].";
- X }
- X south = In_Narrow_Corridor
- X east = At_Recent_Cave_In
- X north = In_Immense_N_S_Passage
- X;
- XInscription: CCR_decoration, readable
- X sdesc = "scrawled inscription"
- X ldesc = "It says, \"Fee fie foe foo [sic].\""
- X noun = 'inscription' 'writing' 'scrawl'
- X adjective = 'scrawled'
- X location = In_Giant_Room
- X;
- X
- XAt_Recent_Cave_In: CCR_room
- X sdesc = "At Recent Cave-in"
- X ldesc = {
- X I(); "The passage here is blocked by a recent
- X cave-in.";
- X }
- X south = In_Giant_Room
- X giant = In_Giant_Room
- X out = In_Giant_Room
- X;
- XCaveIn: CCR_decoration
- X sdesc = "cave-in"
- X ldesc = { self.location.ldesc; }
- X noun = 'in' 'cave-in'
- X adjective = 'cave'
- X location = At_Recent_Cave_In
- X;
- X
- XIn_Immense_N_S_Passage: CCR_room
- X sdesc = "In Immense N/S Passage"
- X ldesc = {
- X I(); "You are at one end of an immense north/south
- X passage. ";
- X
- X if (not RustyDoor.isoiled)
- X "The way north is barred by a massive, rusty,
- X iron door.";
- X else
- X "The way north leads through a massive,
- X rusty, iron door.";
- X }
- X south = In_Giant_Room
- X giant = In_Giant_Room
- X passage = In_Giant_Room
- X
- X enter = { return self.north; }
- X cavern = { return self.north; }
- X north = {
- X if (RustyDoor.isoiled) {
- X return In_Cavern_With_Waterfall;
- X }
- X else {
- X "The door is extremely rusty and refuses to open.";
- X return nil;
- X }
- X }
- X
- X //
- X // Only let NPC's go through the door once it's open.
- X //
- X NPCexit1 = {
- X if (RustyDoor.isoiled)
- X return In_Cavern_With_Waterfall;
- X else
- X return nil;
- X }
- X;
- XRustyDoor: CCR_decoration
- X isoiled = nil
- X
- X sdesc = "rusty door"
- X ldesc = "It's just a big iron door."
- X location = In_Immense_N_S_Passage
- X noun = 'door' 'hinge' 'hinges'
- X adjective = 'massive' 'rusty' 'iron'
- X
- X verDoOpen(actor) = {
- X if (self.oiled)
- X "It's already open.";
- X else
- X "The hinges are quite thoroughly rusted now
- X and won't budge.";
- X }
- X verDoClose(actor) = {
- X if (self.oiled)
- X "No problem there -- it already is.";
- X else
- X "With all the effort it took to get the door
- X open, I wouldn't suggest closing it again.";
- X }
- X verDoOil(actor) = {}
- X doOil(actor) = {
- X if (bottle.isIn(Me))
- X bottle.doPourOn(actor, self);
- X else
- X "You have nothing to oil it with.";
- X }
- X;
- X
- XIn_Cavern_With_Waterfall: CCR_room
- X sdesc = "In Cavern With Waterfall"
- X ldesc = {
- X I(); "You are in a magnificent cavern with a rushing
- X stream, which cascades over a sparkling waterfall
- X into a roaring whirlpool which disappears through a
- X hole in the floor. Passages exit to the south and
- X west.";
- X }
- X south = In_Immense_N_S_Passage
- X out = In_Immense_N_S_Passage
- X giant = In_Giant_Room
- X west = At_Steep_Incline_Above_Large_Room
- X;
- XWaterfall: CCR_decoration
- X sdesc = "waterfall"
- X ldesc = "Wouldn't want to go down in in a barrel!"
- X noun = 'waterfall' 'whirpool'
- X adjective = 'sparkling' 'whirling'
- X location = In_Cavern_With_Waterfall
- X;
- X
- XIn_Soft_Room: CCR_room
- X sdesc = "In Soft Room"
- X ldesc = {
- X I(); "You are in the soft room. The walls are
- X covered with heavy curtains, the floor with a thick
- X pile carpet. Moss covers the ceiling.";
- X }
- X west = In_Swiss_Cheese_Room
- X out = In_Swiss_Cheese_Room
- X;
- XCarpet: CCR_decoration
- X sdesc = "carpet"
- X ldesc = "The carpet is quite plush."
- X noun = 'carpet' 'shag' 'pile'
- X adjective = 'pile' 'heavy' 'thick'
- X location = In_Soft_Room
- X;
- XCurtains: CCR_decoration
- X sdesc = "curtains"
- X ldesc = "They seem to absorb sound very well."
- X noun = 'curtain' 'curtains'
- X adjective = 'heavy' 'thick'
- X location = In_Soft_Room
- X
- X verifyRemove(actor) = { "Now don't go ripping up the place!"; }
- X verDoLookbehind(actor) = {}
- X doLookbehind(actor) = {
- X "You don't find anything exciting behind the curtains.";
- X }
- X;
- XMoss: CCR_decoration
- X sdesc = "moss"
- X ldesc = "It just looks like your typical, everyday moss."
- X noun = 'moss'
- X adjective = 'typical' 'everyday'
- X location = In_Soft_Room
- X
- X verifyRemove(actor) = { "It's too high up for you to reach."; }
- X verDoEat(actor) = { "Eeeewwwww."; }
- X;
- X
- XIn_Oriental_Room: CCR_room
- X sdesc = "In Oriental Room"
- X ldesc = {
- X I(); "This is the oriental room. Ancient oriental
- X cave drawings cover the walls. A gently sloping
- X passage leads upward to the north, another passage
- X leads se, and a hands and knees crawl leads west.";
- X }
- X se = In_Swiss_Cheese_Room
- X west = In_Large_Low_Room
- X crawl = In_Large_Low_Room
- X up = In_Misty_Cavern
- X north = In_Misty_Cavern
- X cavern = In_Misty_Cavern
- X;
- XCaveDrawings: CCR_decoration
- X sdesc = "ancient oriental drawings"
- X ldesc = "They seem to depict people and animals."
- X noun = 'paintings' 'drawings' 'art'
- X adjective = 'cave' 'ancient' 'oriental'
- X location = In_Oriental_Room
- X;
- X
- XIn_Misty_Cavern: CCR_room
- X sdesc = "In Misty Cavern"
- X ldesc = {
- X I(); "You are following a wide path around the outer
- X edge of a large cavern. Far below, through a heavy
- X white mist, strange splashing noises can be heard.
- X The mist rises up through a fissure in the ceiling.
- X The path exits to the south and west.";
- X }
- X south = In_Oriental_Room
- X oriental = In_Oriental_Room
- X west = In_Alcove
- X;
- XCeilingFissure: CCR_decoration
- X sdesc = "fissure"
- X ldesc = "You can't really get close enough to examine it."
- X noun = 'fissure'
- X location = In_Misty_Cavern
- X;
- X
- XIn_Alcove: CCR_room
- X sdesc = "In Alcove"
- X ldesc = {
- X I(); "You are in an alcove. A small northwest path seems
- X to widen after a short distance. An extremely tight
- X tunnel leads east. It looks like a very tight
- X squeeze. An eerie light can be seen at the other
- X end.";
- X }
- X nw = In_Misty_Cavern
- X cavern = In_Misty_Cavern
- X passage = { return self.east; }
- X east = {
- X //
- X // The player must be carrying only the emerald or
- X // nothing at all to fit through the tight tunnel.
- X //
- X if (length(Me.contents) > 1)
- X return wontfit.message;
- X else if (length(Me.contents) = 1) {
- X if (egg_sized_emerald.isIn(Me))
- X return In_Plover_Room;
- X else
- X return wontfit.message;
- X }
- X else
- X return In_Plover_Room;
- X }
- X
- X //
- X // Let NPC's go in the plover room regardless of what
- X // they're carrying. (Life's not fair in the Colossal Cave.)
- X //
- X NPCexit1 = In_Plover_Room
- X;
- X
- XIn_Plover_Room: CCR_room, lightroom
- X sdesc = "In Plover Room"
- X ldesc = {
- X I(); "You're in a small chamber lit by an eerie green
- X light. An extremely narrow tunnel exits to the west.
- X A dark corridor leads northeast.";
- X }
- X
- X passage = { return self.west; }
- X out = { return self.west; }
- X west = {
- X //
- X // The player must be carrying only the emerald or
- X // nothing at all to fit through the tight tunnel.
- X //
- X if (length(Me.contents) > 1)
- X return wontfit.message;
- X else if (length(Me.contents) = 1) {
- X if (egg_sized_emerald.isIn(Me))
- X return In_Alcove;
- X else
- X return wontfit.message;
- X }
- X else
- X return In_Alcove;
- X }
- X
- X ne = In_Dark_Room
- X dark = In_Dark_Room
- X
- X plover = At_Y2
- X
- X //
- X // Let NPC's leave the plover room regardless of what
- X // they're carrying. (Life's not fair in the Colossal Cave.)
- X //
- X NPCexit1 = In_Alcove
- X;
- X
- XIn_Dark_Room: CCR_room
- X sdesc = "In Dark Room"
- X ldesc = {
- X I(); "You're in the dark-room. A corridor leading
- X south is the only exit."; P();
- X
- X I(); StoneTablet.ldesc;
- X }
- X south = In_Plover_Room
- X plover = In_Plover_Room
- X out = In_Plover_Room
- X;
- XStoneTablet: CCR_decoration
- X sdesc = "stone tablet"
- X ldesc = {
- X "A massive stone tablet imbedded in the wall reads:
- X \"Congratulations on bringing light into the
- X dark-room!\"";
- X }
- X location = In_Dark_Room
- X noun = 'tablet'
- X adjective = 'massive' 'stone'
- X;
- X
- XIn_Arched_Hall: CCR_room
- X sdesc = "In Arched Hall"
- X ldesc = {
- X I(); "You are in an arched hall. A coral passage
- X once continued up and east from here, but is now
- X blocked by debris. The air smells of sea water.";
- X }
- X down = In_Shell_Room
- X shell = In_Shell_Room
- X out = In_Shell_Room
- X;
- X
- XIn_Shell_Room: CCR_room
- X sdesc = "In Shell Room"
- X ldesc = {
- X I(); "You're in a large room carved out of
- X sedimentary rock. The floor and walls are littered
- X with bits of shells imbedded in the stone. A shallow
- X passage proceeds downward, and a somewhat steeper one
- X leads up. A low hands and knees passage enters from
- X the south.";
- X }
- X up = In_Arched_Hall
- X hall = In_Arched_Hall
- X down = In_Ragged_Corridor
- X
- X south = {
- X if (giant_bivalve.isIn(Me)) {
- X if (giant_bivalve.opened)
- X "You can't fit this five-foot oyster
- X through that little passage!";
- X else
- X "You can't fit this five-foot clam
- X through that little passage!";
- X
- X return nil;
- X }
- X else
- X return At_Complex_Junction;
- X }
- X
- X //
- X // Let NPC's through.
- X //
- X NPCexit1 = At_Complex_Junction
- X;
- X
- XIn_Ragged_Corridor: CCR_room
- X sdesc = "In Ragged Corridor"
- X ldesc = {
- X I(); "You are in a long sloping corridor with ragged
- X sharp walls.";
- X }
- X up = In_Shell_Room
- X shell = In_Shell_Room
- X down = In_A_Cul_De_Sac
- X;
- X
- XIn_A_Cul_De_Sac: CCR_room
- X sdesc = "In a Cul-de-Sac"
- X ldesc = {
- X I(); "You are in a cul-de-sac about eight feet
- X across.";
- X }
- X up = In_Ragged_Corridor
- X out = In_Ragged_Corridor
- X shell = In_Shell_Room
- X;
- X
- XIn_Anteroom: CCR_room
- X sdesc = "In Anteroom"
- X ldesc = {
- X I(); "You are in an anteroom leading to a large
- X passage to the east. Small passages go west and up.
- X The remnants of recent digging are evident."; P();
- X
- X I(); "A sign in midair here says \"Cave under
- X construction beyond this point. Proceed at own risk.
- X [Witt Construction Company]\"";
- X }
- X up = At_Complex_Junction
- X west = In_Bedquilt
- X east = At_Witts_End
- X;
- XWittSign: CCR_decoration, readable
- X sdesc = 'sign'
- X ldesc = "It's hanging way above your head."
- X readdesc = {
- X "It says \"Cave under construction beyond this point.
- X Proceed at own risk. [Witt Construction Company]\"";
- X }
- X noun = 'sign'
- X adjective = 'hanging'
- X location = In_Anteroom
- X
- X verifyRemove(actor) = { "No chance. It's too far up."; }
- X;
- X
- X/*
- X * This was off limits to NPC's in the original, but I don't see
- X * any reason to keep that restriction since it seemed to be
- X * related to some hackery in the way the movement worked.
- X *
- X * It could be argued that the pirate shouldn't show up in the mazes,
- X * since his taking stuff away from the player could make mapping the
- X * maze a real pain.
- X */
- XDifferent_Maze_1: CCR_room
- X sdesc = "Maze of Twisty Little Passages, All Different"
- X ldesc = {
- X I(); "You are in a maze of twisty little passages,
- X all different.";
- X }
- X south = Different_Maze_3
- X sw = Different_Maze_4
- X ne = Different_Maze_5
- X se = Different_Maze_6
- X up = Different_Maze_7
- X nw = Different_Maze_8
- X east = Different_Maze_9
- X west = Different_Maze_10
- X north = Different_Maze_11
- X down = At_West_End_Of_Long_Hall
- X;
- X
- XAt_Witts_End: CCR_room
- X sdesc = "At Witt's End"
- X ldesc = {
- X I(); "You are at Witt's End. Passages lead off in
- X *all* directions.";
- X }
- X east = {
- X if (rand(100) <= 95)
- X return crawled_around.message;
- X else
- X return In_Anteroom;
- X }
- X west = {
- X "You have crawled around in some little holes and
- X found your way blocked by a recent cave-in. You are
- X now back in the main passage.";
- X
- X return nil;
- X }
- X
- X north = { return self.east; }
- X south = { return self.east; }
- X ne = { return self.east; }
- X se = { return self.east; }
- X sw = { return self.east; }
- X nw = { return self.east; }
- X up = { return self.east; }
- X down = { return self.east; }
- X
- X //
- X // Let NPC's out of here with no trouble
- X //
- X NPCexit1 = In_Anteroom
- X;
- X
- XIn_Mirror_Canyon: CCR_room
- X sdesc = "In Mirror Canyon"
- X ldesc = {
- X I(); "You are in a north/south canyon about 25 feet
- X across. The floor is covered by white mist seeping
- X in from the north. The walls extend upward for well
- X over 100 feet. Suspended from some unseen point far
- X above you, an enormous two-sided mirror is hanging
- X parallel to and midway between the canyon walls. ";
- X
- X "("; CanyonMirror.ldesc; ")";
- X
- X P(); I(); "A small window can be seen in either wall,
- X some fifty feet up.";
- X }
- X south = In_Secret_N_S_Canyon_0
- X north = At_Reservoir
- X reservior = At_Reservoir
- X;
- XMirror_1: CCR_decoration
- X sdesc = "enormous mirror"
- X ldesc = "It looks like an ordinary, albeit enormous, mirror."
- X location = In_Mirror_Canyon
- X noun = 'mirror'
- X adjective = 'enormous' 'huge' 'big' 'large' 'suspended'
- X 'hanging' 'vanity' 'dwarvish'
- X
- X verDoBreak(actor) = { self.verifyRemove(actor); }
- X verifyRemove(actor) = { "You can't reach it from here."; }
- X;
- XCanyonMirror: CCR_decoration
- X sdesc = "suspended mirror"
- X ldesc = {
- X "The mirror is obviously provided for the use of the
- X dwarves, who as you know, are extremely vain.";
- X }
- X noun = 'mirror'
- X adjective = 'massive' 'hanging' 'suspended' 'dwarves\'' 'two-sided'
- X 'two' 'sided'
- X location = In_Mirror_Canyon
- X;
- X
- XAt_Window_On_Pit_2: CCR_room
- X sdesc = "At Window on Pit"
- X ldesc = {
- X I(); "You're at a low window overlooking a huge pit,
- X which extends up out of sight. A floor is
- X indistinctly visible over 50 feet below. Traces of
- X white mist cover the floor of the pit, becoming
- X thicker to the left. Marks in the dust around the
- X window would seem to indicate that someone has been
- X here recently. Directly across the pit from you and
- X 25 feet away there is a similar window looking into a
- X lighted room. A shadowy figure can be seen there
- X peering back at you.";
- X }
- X west = At_Junction_Of_Three_Secret_Canyons
- X jump = { return broken_neck.death; }
- X;
- X
- XAtop_Stalactite: CCR_room
- X sdesc = "Atop Stalactite"
- X ldesc = {
- X I(); "A large stalactite extends from the roof and
- X almost reaches the floor below. You could climb down
- X it, and jump from it to the floor, but having done so
- X you would be unable to reach it to climb back up.";
- X }
- X north = In_Secret_N_S_Canyon_1
- X
- X jump = { return self.down; }
- X climb = { return self.down; }
- X down = {
- X if (rand(100) <= 40)
- X return Alike_Maze_6;
- X else if (rand(100) <= 50)
- X return Alike_Maze_9;
- X else
- X return Alike_Maze_4;
- X }
- X
- X //
- X // Let NPC's through to the maze
- X //
- X NPCexit1 = Alike_Maze_6
- X NPCexit2 = Alike_Maze_9
- X NPCexit3 = Alike_Maze_4
- X;
- XStalactite: CCR_decoration
- X sdesc = "stalactite"
- X ldesc = {
- X "You could probably climb down it, but you can forget
- X coming back up.";
- X }
- X noun = 'stalactite' 'stalagmite' 'stalagtite'
- X adjective = 'large'
- X location = Atop_Stalactite
- X
- X verDoLookunder(actor) = { "Do get a grip on yourself."; }
- X verDoMove(actor) = { self.verDoLookunder(actor); }
- X verifyRemove(actor) = { self.verDoLookunder(actor); }
- X;
- X
- XDifferent_Maze_2: CCR_room
- X sdesc = "Little Maze of Twisting Passages, All Different"
- X ldesc = {
- X I(); "You are in a little maze of twisting passages,
- X all different.";
- X }
- X sw = Different_Maze_3
- X north = Different_Maze_4
- X east = Different_Maze_5
- X nw = Different_Maze_6
- X se = Different_Maze_7
- X ne = Different_Maze_8
- X west = Different_Maze_9
- X down = Different_Maze_10
- X up = Different_Maze_11
- X south = Dead_End_14
- X;
- X
- XAt_Reservoir: CCR_room
- X sdesc = "At Reservoir"
- X ldesc = {
- X I(); "You are at the edge of a large underground
- X reservoir. An opaque cloud of white mist fills the
- X room and rises rapidly upward. The lake is fed by a
- X stream, which tumbles out of a hole in the wall about
- X 10 feet overhead and splashes noisily into the water
- X somewhere within the mist. The only passage goes
- X back toward the south.";
- X }
- X south = In_Mirror_Canyon
- X out = In_Mirror_Canyon
- X
- X //
- X // The original had another exit, but the verb it was attached
- X // to didn't exists. I have no idea what was intended here...
- X //
- X // ??? = In_Mirror_Canyon
- X;
- X
- X//
- X// Here's where the pirate(s) keeps his treasure (as well as any loot
- X// he's swiped from the player). Once the chest has been been found
- X// here, turn off the pirate(s) completely. (This is how the original
- X// handled it, and it's thankfully merciful so I've kept it the same.)
- X//
- XDead_End_13: CCR_dead_end_room, NoNPC
- X se = Alike_Maze_13
- X out = Alike_Maze_13 // DMB: added
- X
- X ldesc = "This is the pirate's dead end."
- X
- X enterRoom(actor) = {
- X if (treasure_chest.isIn(Me) and not treasure_chest.spotted) {
- X P(); I(); "You've found the pirate's treasure chest!";
- X unnotify(Pirates, &move);
- X treasure_chest.spotted := true;
- X PirateMessage.moveInto(nil);
- X }
- X
- X pass enterRoom;
- X }
- X;
- X
- XOn_Sw_Side_Of_Chasm: CCR_room
- X sdesc = "On SW Side of Chasm"
- X ldesc = {
- X I(); "You are on one side of a large, deep chasm. A
- X heavy white mist rising up from below obscures all
- X view of the far side. A southwest path leads away
- X from the chasm into a winding corridor. ";
- X
- X RicketyBridge.xdesc;
- X
- X if (Troll.location = nil) {
- X P(); I();
- X "The troll is nowhere to be seen.";
- X }
- X }
- X sw = In_Sloping_Corridor
- X
- X across = { return self.over; }
- X cross = { return self.over; }
- X ne = { return self.over; }
- X over = {
- X RicketyBridge.doCross(Me);
- X return nil;
- X }
- X
- X jump = {
- X if (RicketyBridge.exists) {
- X "I respectfully suggest you go across the
- X bridge instead of jumping.";
- X
- X return nil;
- X }
- X else
- X return didnt_make_it.death;
- X }
- X
- X //
- X // No NPC exits because we don't want the pirate to be able
- X // to go across the bridge and steal the player's return toll.
- X // (All rooms on the other side of the bridge are off limits
- X // to NPC's.)
- X //
- X // It would be OK for dwarves to show up over there, except
- X // that they might run into the bear, a situation for which we don't
- X // have any code. (This is how the original was as well.)
- X //
- X;
- XRicketyBridge: CCR_decoration
- X exists = true
- X
- X sdesc = "rickety bridge"
- X ldesc = "It just looks like an ordinary, but unstable, bridge."
- X
- X xdesc = {
- X if (self.exists) {
- X "A rickety wooden bridge extends across the
- X chasm, vanishing into the mist."; P();
- X
- X I(); "A sign posted on the bridge reads,
- X \"Stop! Pay troll!\"";
- X }
- X else {
- X "The wreckage of a bridge (and a dead bear)
- X can be seen at the bottom of the chasm.";
- X }
- X }
- X
- X noun = 'bridge'
- X adjective = 'rickety' 'unstable' 'wobbly' 'rope'
- X
- X locationOK = true // tell compiler OK for location to be method
- X location = {
- X if (self.exists) {
- X if (Me.isIn(On_Sw_Side_Of_Chasm))
- X return On_Sw_Side_Of_Chasm;
- X else
- X return On_Ne_Side_Of_Chasm;
- X }
- X else
- X return nil;
- X }
- X
- X verDoCross(actor) = {}
- X doCross(actor) = {
- X if (self.exists) {
- X if (Troll.ispaid or Troll.location = nil)
- X self.cross;
- X else {
- X if (Troll.isIn(self.location)) {
- X "The troll refuses to let you
- X cross.";
- X }
- X else {
- X "The troll steps out from
- X beneath the bridge and blocks
- X your way.";
- X
- X Troll.moveInto(self.location);
- X }
- X }
- X }
- X else
- X "There is no longer any way across the chasm.";
- X }
- X
- X cross = {
- X if (Bear.isfollowing) {
- X "Just as you reach the other side, the bridge
- X buckles beneath the weight of the bear, which
- X was still following you around. You scrabble
- X desperately for support, but as the bridge
- X collapses you stumble back and fall into the
- X chasm.";
- X
- X // Get rid of the bridge in case the
- X // player gets reincarnated and
- X // continues the game.
- X self.exists := nil;
- X
- X // No more bear!
- X Bear.exists := nil;
- X
- X die();
- X }
- X else if (Me.isIn(On_Sw_Side_Of_Chasm)) {
- X Troll.ispaid := nil;
- X Me.travelTo(On_Ne_Side_Of_Chasm);
- X }
- X else {
- X Troll.ispaid := nil;
- X Me.travelTo(On_Sw_Side_Of_Chasm);
- X }
- X }
- X;
- XTroll: Actor
- X ispaid = nil
- X
- X sdesc = "burly troll"
- X ldesc = {
- X "Trolls are close relatives with rocks and have skin
- X as tough as that of a rhinoceros.";
- X }
- X
- X actorDesc = {
- X P(); I();
- X "A burly troll stands by the bridge and insists you
- X throw him a treasure before you may cross.";
- X }
- X
- X noun = 'troll'
- X adjective = 'burly'
- X
- X location = On_Sw_Side_Of_Chasm
- X
- X verDoKick(actor) = {}
- X doKick(actor) = {
- X "The troll laughs alound at your pitiful attempt
- X to injure him.";
- X }
- X
- X verDoAttack(actor) = {
- X "The troll fends off your blows effortlessly.";
- X }
- X verDoAttackWith(actor, io) = {}
- X doAttackWith(actor, io) = {
- X //
- X // If the player throws the axe at the troll,
- X // he just catches it.
- X //
- X if (io = axe)
- X self.ioGiveTo(actor, io);
- X else
- X self.verDoAttack(actor);
- X }
- X
- X verIoGiveTo(actor) = {}
- X ioGiveTo(actor, dobj) = {
- X if (isclass(dobj, CCR_treasure_item)) {
- X "The troll catches your treasure and scurries
- X away out of sight.";
- X
- X dobj.moveInto(nil);
- X self.ispaid := true;
- X }
- X else if( dobj = tasty_food) {
- X self.doFeed(Me);
- X }
- X else {
- X "The troll deftly catches "; dobj.thedesc;
- X ", examines it carefully, and tosses it back,
- X declaring, \"Good workmanship, but it's not
- X valuable enough.\"";
- X }
- X }
- X
- X verIoThrowAt(actor) = { self.verIoGiveTo(actor); }
- X ioThrowAt(actor, dobj) = { self.ioGiveTo(actor, dobj); }
- X verIoThrowTo(actor) = { self.verIoGiveTo(actor); }
- X ioThrowTo(actor, dobj) = { self.ioGiveTo(actor, dobj); }
- X
- X verDoFeed(actor) = {}
- X doFeed(actor) = {
- X if (tasty_food.isIn(Me)) {
- X "Gluttony is not one of the troll's vices.
- X Avarice, however, is.";
- X }
- X else {
- X "You have nothing the troll wants to eat.";
- X }
- X }
- X;
- X
- XIn_Sloping_Corridor: CCR_room
- X sdesc = "In Sloping Corridor"
- X ldesc = {
- X I(); "You are in a long winding corridor sloping out
- X of sight in both directions.";
- X }
- X down = In_Large_Low_Room
- X up = On_Sw_Side_Of_Chasm
- X;
- X
- XIn_Secret_Canyon: CCR_room
- X enteredfrom = nil
- X
- X sdesc = "In Secret Canyon"
- X ldesc = {
- X I(); "You are in a secret canyon which exits to the
- X north and east."; P();
- X
- X I();
- X if (Dragon.isIn(self))
- X "A huge green fierce dragon bars the way!";
- X else
- X DragonCorpse.ldesc;
- X }
- X north = {
- X if (self.enteredfrom = In_Secret_N_S_Canyon_0) {
- X return self.enteredfrom;
- X }
- X else {
- X if (self.dragoncheck)
- X return In_Secret_N_S_Canyon_0;
- X else
- X return nil;
- X }
- X }
- X east = {
- X if (self.enteredfrom = In_Secret_E_W_Canyon) {
- X return self.enteredfrom;
- X }
- X else {
- X if (self.dragoncheck)
- X return In_Secret_E_W_Canyon;
- X else
- X return nil;
- X }
- X }
- X
- X forwards = {
- X if (self.enteredfrom = In_Secret_N_S_Canyon_0)
- X return self.east;
- X else
- X return self.north;
- X }
- X out = {
- X if (self.enteredfrom = In_Secret_N_S_Canyon_0)
- X return self.north;
- X else
- X return self.east;
- X }
- X
- X dragoncheck = {
- X if (Dragon.isIn(self)) {
- X "The dragon looks rather nasty. You'd best
- X not try to get by.";
- X
- X return nil;
- X }
- X else
- X return true;
- X }
- X
- X //
- X // Let NPC's by the dragon without incident (they're all on
- X // the same team, after all).
- X //
- X NPCexit1 = In_Secret_N_S_Canyon_0
- X NPCexit2 = In_Secret_E_W_Canyon
- X;
- XDragon: CCR_decoration
- X rhetoricalturn = -999 // hack -- see yesVerb in ccr-verbs.t
- X
- X sdesc = "dragon"
- X ldesc = "I wouldn't mess with it if I were you."
- X location = In_Secret_Canyon
- X noun = 'dragon' 'monster' 'beast' 'lizard'
- X adjective = 'huge' 'green' 'fierce' 'scaly' 'giant' 'ferocious'
- X
- X verDoKick(actor) = {}
- X doKick(actor) = {
- X "Right idea, wrong limb.";
- X }
- X
- X verDoAttack(actor) = {}
- X doAttack(actor) = {
- X "With what? Your bare hands?";
- X self.rhetoricalturn := global.turnsofar;
- X }
- X verDoAttackWith(actor, io) = {}
- X doAttackWith(actor, io) = {
- X if (io = axe)
- X "The axe bounces harmlessly off the dragon's
- X thick scales.";
- X else if (io = Hands) {
- X self.kill;
- X }
- X else {
- X "You'd probably be better off using your
- X bare hands than that thing!";
- X }
- X }
- X
- X verIoThrowAt(actor) = { self.verIoGiveTo(actor); }
- X ioThrowAt(actor, dobj) = {
- X if (dobj = axe)
- X self.doAttackWith(actor, dobj);
- X else
- X self.ioGiveTo(actor, dobj);
- X }
- X verIoThrowTo(actor) = { self.verIoGiveTo(actor); }
- X ioThrowTo(actor, dobj) = {
- X if (dobj = axe)
- X self.doAttackWith(actor, dobj);
- X else
- X self.ioGiveTo(actor, dobj);
- X }
- X
- X kill = {
- X "Congratulations! You have just vanquished a
- X dragon with your bare hands! (Unbelievable,
- X isn't it?)";
- X
- X DragonCorpse.moveInto(self.location);
- X self.moveInto(nil);
- X }
- X;
- XDragonCorpse: CCR_decoration
- X sdesc = "dragon"
- X ldesc = {
- X "The body of a huge green dead dragon is lying off to
- X one side.";
- X }
- X location = nil
- X noun = 'dragon' 'corpse'
- X adjective = 'dead'
- X
- X verDoKick(actor) = { "You've already done enough damage!"; }
- X verDoAttack(actor) = { self.verDoKick(actor); }
- X verDoAttackWith(actor, io) = { self.verDoKick(actor); }
- X;
- X
- XOn_Ne_Side_Of_Chasm: CCR_room, NoNPC
- X sdesc = "On NE Side of Chasm"
- X ldesc = {
- X I(); "You are on the far side of the chasm. A
- X northeast path leads away from the chasm on this
- X side. ";
- X
- X RicketyBridge.xdesc;
- X
- X if (Troll.location = nil) {
- X P(); I();
- X "The troll is nowhere to be seen.";
- X }
- X }
- X ne = In_Corridor
- X
- X across = { return self.over; }
- X cross = { return self.over; }
- X sw = { return self.over; }
- X over = {
- X RicketyBridge.doCross(Me);
- X return nil;
- X }
- X
- X jump = {
- X if (RicketyBridge.exists) {
- X "I respectfully suggest you go across the
- X bridge instead of jumping.";
- X
- X return nil;
- X }
- X else
- X return didnt_make_it.death;
- X }
- X
- X fork = At_Fork_In_Path
- X view = At_Breath_Taking_View
- X barren = In_Front_Of_Barren_Room
- X;
- X
- XIn_Corridor: CCR_room, NoNPC
- X sdesc = "In Corridor"
- X ldesc = {
- X I(); "You're in a long east/west corridor. A faint
- X rumbling noise can be heard in the distance.";
- X }
- X west = On_Ne_Side_Of_Chasm
- X east = At_Fork_In_Path
- X fork = At_Fork_In_Path
- X view = At_Breath_Taking_View
- X barren = In_Front_Of_Barren_Room
- X;
- X
- XAt_Fork_In_Path: CCR_room, NoNPC
- X sdesc = "At Fork in Path"
- X ldesc = {
- X I(); "The path forks here. The left fork leads
- X northeast. A dull rumbling seems to get louder in
- X that direction. The right fork leads southeast down
- X a gentle slope. The main corridor enters from the
- X west.";
- X }
- X west = In_Corridor
- X ne = At_Junction_With_Warm_Walls
- X left = At_Junction_With_Warm_Walls
- X se = In_Limestone_Passage
- X right = In_Limestone_Passage
- X down = In_Limestone_Passage
- X view = At_Breath_Taking_View
- X barren = In_Front_Of_Barren_Room
- X;
- X
- XAt_Junction_With_Warm_Walls: CCR_room, NoNPC
- X sdesc = "At Junction With Warm Walls"
- X ldesc = {
- X I(); "The walls are quite warm here. From the north
- X can be heard a steady roar, so loud that the entire
- X cave seems to be trembling. Another passage leads
- X south, and a low crawl goes east.";
- X }
- X south = At_Fork_In_Path
- X fork = At_Fork_In_Path
- X north = At_Breath_Taking_View
- X view = At_Breath_Taking_View
- X east = In_Chamber_Of_Boulders
- X crawl = In_Chamber_Of_Boulders
- X;
- X
- XAt_Breath_Taking_View: CCR_room, NoNPC
- X sdesc = "At Breath-Taking View"
- X ldesc = {
- X I(); "You are on the edge of a breath-taking view. Far
- X below you is an active volcano, from which great
- X gouts of molten lava come surging out, cascading back
- X down into the depths. The glowing rock fills the
- X farthest reaches of the cavern with a blood-red
- X glare, giving everything an eerie, macabre
- X appearance. The air is filled with flickering sparks
- X of ash and a heavy smell of brimstone. The walls are
- X hot to the touch, and the thundering of the volcano
- X drowns out all other sounds. Embedded in the jagged
- X roof far overhead are myriad twisted formations
- X composed of pure white alabaster, which scatter the
- X murky light into sinister apparitions upon the walls.
- X To one side is a deep gorge, filled with a bizarre
- X chaos of tortured rock which seems to have been
- X crafted by the devil himself. An immense river of
- X fire crashes out from the depths of the volcano,
- X burns its way through the gorge, and plummets into a
- X bottomless pit far off to your left. To the right,
- X an immense geyser of blistering steam erupts
- X continuously from a barren island in the center of a
- X sulfurous lake, which bubbles ominously. The far
- X right wall is aflame with an incandescence of its
- X own, which lends an additional infernal splendor to
- X the already hellish scene. A dark, forboding passage
- X exits to the south.";
- X }
- X south = At_Junction_With_Warm_Walls
- X passage = At_Junction_With_Warm_Walls
- X out = At_Junction_With_Warm_Walls
- X fork = At_Fork_In_Path
- X jump = { return self.down; }
- X down = {
- X "Don't be ridiculous!";
- X return nil;
- X }
- X;
- XVolcano: decoration
- X sdesc = "active volcano"
- X ldesc = {
- X "Great gouts of molten lava come surging out of the
- X volvano and go cascading back down into the depths.
- X The glowing rock fills the farthest reaches of the
- X cavern with a blood-red glare, giving everything an
- X eerie, macabre appearance.";
- X }
- X location = At_Breath_Taking_View
- X noun = 'volcano' 'rock'
- X adjective = 'active' 'glowing' 'blood' 'blood-red' 'red' 'eerie'
- X 'macabre'
- X;
- XSparks: decoration
- X sdesc = "sparks of ash"
- X adesc = { self.sdesc; }
- X ldesc = {
- X "The sparks too far away for you to get a good look at
- X them.";
- X }
- X location = At_Breath_Taking_View
- X noun = 'spark' 'sparks' 'ash' 'air'
- X adjective = 'flickering'
- X;
- XJaggedRoof: decoration
- X sdesc = "jagged roof"
- X ldesc = {
- X "Embedded in the jagged roof far overhead are myriad
- X twisted formations composed of pure white alabaster,
- X which scatter the murky light into sinister
- X apparitions upon the walls.";
- X }
- X location = At_Breath_Taking_View
- X noun = 'roof' 'formations' 'light' 'apparaitions'
- X adjective = 'jagged' 'twsited' 'murky' 'sinister'
- X;
- XDeepGorge: decoration
- X sdesc = "deep gorge"
- X ldesc = {
- X "The gorge is filled with a bizarre chaos of tortured
- X rock which seems to have been crafted by the devil
- X himself.";
- X }
- X location = At_Breath_Taking_View
- X noun = 'gorge' 'chaos' 'rock'
- X adjective = 'deep' 'bizarre' 'tortured'
- X;
- XRiverOfFire: decoration
- X sdesc = "river of fire"
- X ldesc = {
- X "The river of fire crashes out from the depths of the
- X volcano, burns its way through the gorge, and
- X plummets into a bottomless pit far off to your
- X left.";
- X }
- X location = At_Breath_Taking_View
- X noun = 'river' 'fire' 'depth' 'pit'
- X adjective = 'fire' 'firey' 'bottomless'
- X;
- XGeyser: decoration
- X sdesc = "immense geyser"
- X ldesc = {
- X "The geyser of blistering steam erupts continuously
- X from a barren island in the center of a sulfurous
- X lake, which bubbles ominously.";
- X }
- X location = At_Breath_Taking_View
- X noun = 'geyser' 'steam' 'island' 'lake'
- X adjective = 'immense' 'blistering' 'barren' 'sulfrous'
- X 'sulferous' 'sulpherous' 'sulphrous' 'bubbling'
- X;
- X
- XIn_Chamber_Of_Boulders: CCR_room, NoNPC
- X sdesc = "In Chamber of Boulders"
- X ldesc = {
- X I(); "You are in a small chamber filled with large
- X boulders. The walls are very warm, causing the air
- X in the room to be almost stifling from the heat. The
- X only exit is a crawl heading west, through which is
- X coming a low rumbling.";
- X }
- X west = At_Junction_With_Warm_Walls
- X out = At_Junction_With_Warm_Walls
- X crawl = At_Junction_With_Warm_Walls
- X fork = At_Fork_In_Path
- X view = At_Breath_Taking_View
- X;
- XChamberBoulders: CCR_decoration
- X sdesc = "boulders"
- X ldesc = "They're just ordinary boulders. They're warm."
- X noun = 'boulder' 'boulders' 'rocks' 'stones'
- X location = In_Chamber_Of_Boulders
- X;
- X
- XIn_Limestone_Passage: CCR_room, NoNPC
- X sdesc = "In Limestone Passage"
- X ldesc = {
- X I(); "You are walking along a gently sloping
- X north/south passage lined with oddly shaped limestone
- X formations.";
- X }
- X north = At_Fork_In_Path
- X up = At_Fork_In_Path
- X fork = At_Fork_In_Path
- X south = In_Front_Of_Barren_Room
- X down = In_Front_Of_Barren_Room
- X barren = In_Front_Of_Barren_Room
- X view = At_Breath_Taking_View
- X;
- XLimestoneFormations: decoration
- X sdesc = "limestone formations"
- X ldesc = {
- X "Every now and then a particularly strange shape
- X catches your eye.";
- X }
- X location = In_Limestone_Passage
- X noun = 'formations' 'shape' 'shapes'
- X adjective = 'lime' 'limestone' 'stone' 'oddly' 'shaped'
- X 'oddly-shaped'
- X;
- X
- X
- XIn_Front_Of_Barren_Room: CCR_room, NoNPC
- X sdesc = "In Front of Barren Room"
- X ldesc = {
- X I(); "You are standing at the entrance to a large,
- X barren room. A sign posted above the entrance reads:
- X \"Caution! Bear in room!\"";
- X }
- X west = In_Limestone_Passage
- X up = In_Limestone_Passage
- X fork = At_Fork_In_Path
- X east = In_Barren_Room
- X in = In_Barren_Room
- X barren = In_Barren_Room
- X enter = In_Barren_Room
- X view = At_Breath_Taking_View
- X;
- XBarrenSign: CCR_decoration, readable
- X sdesc = "sign"
- X ldesc = { self.readdesc; }
- X readdesc = {
- X "The sign reads, \"Caution! Bear in room!\"";
- X }
- X
- X noun = 'sign'
- X adjective = 'barren' 'room'
- X
- X location = In_Front_Of_Barren_Room
- X;
- X
- XIn_Barren_Room: CCR_room, NoNPC
- X sdesc = "In Barren Room"
- X ldesc = {
- X I(); "You are inside a barren room. The center of
- X the room is completely empty except for some dust.
- X Marks in the dust lead away toward the far end of the
- X room. The only exit is the way you came in.";
- X }
- X west = In_Front_Of_Barren_Room
- X out = In_Front_Of_Barren_Room
- X fork = At_Fork_In_Path
- X view = At_Breath_Taking_View
- X;
- XDust: CCR_decoration
- X sdesc = "dust"
- X ldesc = { "It just looks like ordinary dust."; }
- X location = In_Barren_Room
- X noun = 'dust' 'marks'
- X;
- XBear: Actor
- X rhetoricalturn = -999 // hack -- see yesVerb in ccr-verbs.t
- X
- X exists = true
- X
- X istame = nil // has the bear been fed?
- X isfollowing = nil // is the bear following the player?
- X wasreleased = nil // has the bear been unchained yet?
- X
- X sdesc = "large bear"
- X ldesc = {
- X "The bear is extremely large, ";
- X
- X if (self.istame)
- X "but appears to be friendly.";
- X else
- X "and seems quite ferocious!";
- X }
- X
- X //
- X // Can't use actorDesc because we our location is a method,
- X // so we're not ever really contained in a room. We've
- X // hacked adv.t to make this work by checking the bear
- X // explicitly.
- X //
- X actorDesc = {
- X if (self.isIn(Me.location)) {
- X P(); I();
- X
- X if (self.isfollowing) {
- X "You are being followed by a very
- X large, tame bear.";
- X }
- X else if (self.istame) {
- X if (not self.wasreleased and
- X self.isIn(In_Barren_Room)) {
- X
- X "There is a gentle cave bear
- X sitting placidly in one
- X corner.";
- X }
- X else
- X "There is a contented-looking
- X bear wandering about
- X nearby.";
- X }
- X else {
- X "There is a ferocious cave bear
- X eyeing you from the far end of the
- X room!";
- X }
- X }
- X }
- X
- X noun = 'bear'
- X adjective = 'large' 'tame' 'ferocious' 'cave'
- X
- X locationOK = true // tell compiler OK for location to be method
- X location = {
- X if (self.exists) {
- X if (self.isfollowing)
- X return Me.location;
- X else
- X return In_Barren_Room;
- X }
- X else
- X return nil;
- X }
- X
- X verDoKick(actor) = {
- X if (self.istame)
- X self.onlyfriend;
- X else
- X "You obviously have not fully grasped the
- X gravity of the situation. Do get a grip on
- X yourself.";
- X }
- X verDoAttack(actor) = {
- X if (self.istame)
- X self.onlyfriend;
- X else if (not axe.isIn(Me))
- X self.bearhands;
- X }
- X doAttack(actor) = { self.doAttackWith(actor, axe); }
- X
- X verDoAttackWith(actor, io) = {
- X if (self.istame)
- X self.onlyfriend;
- X }
- X doAttackWith(actor, io) = {
- X //
- X // If the player throws the axe at the bear, the
- X // axe misses and becomes inaccessible. (Doh!)
- X //
- X if (io = axe) {
- X "The axe misses and lands near the bear where
- X you can't get at it.";
- X
- X axe.moveInto(self.location);
- X axe.nograb := true; // little hack
- X }
- X else if (io = Hands)
- X self.nicetry;
- X else
- X self.verDoAttack(actor);
- X }
- X
- X onlyfriend = {
- X "The bear is confused; he only wants to be your
- X friend.";
- X }
- X bearhands = {
- X "With what? Your bare hands? Against *his* bear
- X hands??";
- X
- X self.rhetoricalturn := global.turnsofar;
- X }
- X nicetry = {
- X "Nice try, but sorry.";
- X }
- X
- X verIoGiveTo(actor) = {}
- X ioGiveTo(actor, dobj) = {
- X if (dobj = tasty_food) {
- X self.doFeed(Me);
- X }
- X else {
- X if (self.istame)
- X "The bear doesn't seem very
- X interested in your offer.";
- X else
- X "Uh-oh -- your offer only makes the bear
- X angrier!";
- X }
- X }
- X
- X verIoThrowAt(actor) = { self.verIoGiveTo(actor); }
- X ioThrowAt(actor, dobj) = {
- X if (dobj = axe)
- X self.doAttackWith(actor, dobj);
- X else
- X self.ioGiveTo(actor, dobj);
- X }
- X verIoThrowTo(actor) = { self.verIoGiveTo(actor); }
- X ioThrowTo(actor, dobj) = {
- X if (dobj = axe)
- X self.doAttackWith(actor, dobj);
- X else
- X self.ioGiveTo(actor, dobj);
- X }
- X
- X verDoFeed(actor) = {}
- X doFeed(actor) = {
- X if (tasty_food.isIn(Me)) {
- X "The bear eagerly wolfs down your food, after
- X which he seems to calm down considerably and
- X even becomes rather friendly.";
- X
- X tasty_food.moveInto(nil);
- X self.istame := true;
- X axe.nograb := nil;
- X }
- X else if (self.istame) {
- X "You have nothing left to give the bear.";
- X }
- X else {
- X "The bear seems more likely to eat *you*
- X than anything you've got on you!";
- X }
- X }
- X
- X verDoDrop(actor) = {
- X if (not self.isfollowing)
- X "The bear isn't following you.";
- X }
- X doDrop(actor) = {
- X if (Troll.isIn(Me.location)) {
- X "The bear lumbers toward the troll, who lets
- X out a startled shriek and scurries away. The
- X bear soon gives up the pursuit and wanders
- X back.";
- X
- X Troll.moveInto(nil);
- X self.isfollowing := nil;
- X }
- X else {
- X "The bear wanders away from you.";
- X }
- X }
- X
- X verDoTake(actor) = {
- X if (not self.istame)
- X "Surely you're joking!";
- X else if (not self.wasreleased)
- X "The bear is still chained to the wall.";
- X }
- X doTake(actor) = {
- X self.isfollowing := true;
- X "Ok, the bear's now following you around.";
- X }
- X;
- X
- XDifferent_Maze_3: CCR_room
- X sdesc = "Maze of Twisting Little Passage, All Different"
- X ldesc = {
- X I(); "You are in a maze of twisting little passages,
- X all different.";
- X }
- X west = Different_Maze_1
- X se = Different_Maze_4
- X nw = Different_Maze_5
- X sw = Different_Maze_6
- X ne = Different_Maze_7
- X up = Different_Maze_8
- X down = Different_Maze_9
- X north = Different_Maze_10
- X south = Different_Maze_11
- X east = Different_Maze_2
- X;
- X
- XDifferent_Maze_4: CCR_room
- X sdesc = "Little Maze of Twisty Passages, All Different"
- X ldesc = {
- X I(); "You are in a little maze of twisty passages,
- X all different.";
- X }
- X nw = Different_Maze_1
- X up = Different_Maze_3
- X north = Different_Maze_5
- X south = Different_Maze_6
- X west = Different_Maze_7
- X sw = Different_Maze_8
- X ne = Different_Maze_9
- X east = Different_Maze_10
- X down = Different_Maze_11
- X se = Different_Maze_2
- X;
- X
- XDifferent_Maze_5: CCR_room
- X sdesc = "Twisting Maze of Little Passages, All Different"
- X ldesc = {
- X I(); "You are in a twisting maze of little passages,
- X all different.";
- X }
- X up = Different_Maze_1
- X down = Different_Maze_3
- X west = Different_Maze_4
- X ne = Different_Maze_6
- X sw = Different_Maze_7
- X east = Different_Maze_8
- X north = Different_Maze_9
- X nw = Different_Maze_10
- X se = Different_Maze_11
- X south = Different_Maze_2
- X;
- X
- XDifferent_Maze_6: CCR_room
- X sdesc = "Twisting Little Maze of Passages, All Different"
- X ldesc = {
- X I(); "You are in a twisting little maze of passages,
- X all different.";
- X }
- X ne = Different_Maze_1
- X north = Different_Maze_3
- X nw = Different_Maze_4
- X se = Different_Maze_5
- X east = Different_Maze_7
- X down = Different_Maze_8
- X south = Different_Maze_9
- X up = Different_Maze_10
- X west = Different_Maze_11
- X sw = Different_Maze_2
- X;
- X
- XDifferent_Maze_7: CCR_room
- X sdesc = "Twisty Little Maze of Passages, All Different"
- X ldesc = {
- X I(); "You are in a twisty little maze of passages,
- X all different.";
- X }
- X north = Different_Maze_1
- X se = Different_Maze_3
- X down = Different_Maze_4
- X south = Different_Maze_5
- X east = Different_Maze_6
- X west = Different_Maze_8
- X sw = Different_Maze_9
- X ne = Different_Maze_10
- X nw = Different_Maze_11
- X up = Different_Maze_2
- X;
- X
- XDifferent_Maze_8: CCR_room
- X sdesc = "Twisty Maze of Little Passages, All Different"
- X ldesc = {
- X I(); "You are in a twisty maze of little passages,
- X all different.";
- X }
- X east = Different_Maze_1
- X west = Different_Maze_3
- X up = Different_Maze_4
- X sw = Different_Maze_5
- X down = Different_Maze_6
- X south = Different_Maze_7
- X nw = Different_Maze_9
- X se = Different_Maze_10
- X ne = Different_Maze_11
- X north = Different_Maze_2
- X;
- X
- XDifferent_Maze_9: CCR_room
- X sdesc = "Little Twisty Maze of Passages, All Different"
- X ldesc = {
- X I(); "You are in a little twisty maze of passages,
- X all different.";
- X }
- X se = Different_Maze_1
- X ne = Different_Maze_3
- X south = Different_Maze_4
- X down = Different_Maze_5
- X up = Different_Maze_6
- X nw = Different_Maze_7
- X north = Different_Maze_8
- X sw = Different_Maze_10
- X east = Different_Maze_11
- X west = Different_Maze_2
- X;
- X
- XDifferent_Maze_10: CCR_room
- X sdesc = "Maze of Little Twisting Passages, All Different"
- X ldesc = {
- X I(); "You are in a maze of little twisting passages,
- X all different.";
- X }
- X down = Different_Maze_1
- X east = Different_Maze_3
- X ne = Different_Maze_4
- X up = Different_Maze_5
- X west = Different_Maze_6
- X north = Different_Maze_7
- X south = Different_Maze_8
- X se = Different_Maze_9
- X sw = Different_Maze_11
- X nw = Different_Maze_2
- X;
- X
- XDifferent_Maze_11: CCR_room
- X sdesc = "Maze of Little Twisty Passages, All Different"
- X ldesc = {
- X I(); "You are in a maze of little twisty passages,
- X all different.";
- X }
- X sw = Different_Maze_1
- X nw = Different_Maze_3
- X east = Different_Maze_4
- X west = Different_Maze_5
- X north = Different_Maze_6
- X down = Different_Maze_7
- X se = Different_Maze_8
- X up = Different_Maze_9
- X south = Different_Maze_10
- X ne = Different_Maze_2
- X;
- X
- X/*
- X * We don't allow NPC's here because it would be *really* bogus
- X * if the pirate stole the batteries right after the player bought
- X * them.
- X */
- XDead_End_14: CCR_dead_end_room, NoNPC
- X sdesc = "At a Dead End, in Front of a Massive Vending Machine"
- X ldesc = {
- X I(); "You have reached a dead end. There is a massive
- X vending machine here.";
- X
- X if (PirateMessage.isIn(self)) {
- X P();
- X I(); "Hmmm... There is a message here
- X scrawled in the dust in a flowery script.";
- X }
- X }
- X
- X north = Different_Maze_2
- X out = Different_Maze_2
- X;
- XVendingMachine: CCR_decoration, readable
- X sdesc = "vending machine"
- X ldesc = { self.readdesc; }
- X readdesc = {
- X "The instructions on the vending machine read,
- X \"Insert coins to receive fresh batteries.\"";
- X }
- X location = Dead_End_14
- X noun = 'machine' 'slot'
- X adjective = 'vending' 'massive' 'battery' 'coin'
- X
- X verIoPutIn(actor) = {}
- X ioPutIn(actor, dobj) = {
- X if (dobj = rare_coins) {
- X "Soon after you insert the coins in the coin
- X slot, the vending machines makes a griding
- X sound, and a set of fresh batteries falls at
- X your feet.";
- X
- X dobj.moveInto(nil);
- X fresh_batteries.moveInto(self.location);
- X }
- X else {
- X "The machine seems to be designed to take
- X coins.";
- X }
- X }
- X
- X verDoKick(actor) = {}
- X doKick(actor) = {
- X "<WHUMP!> You boot the machine, but to no avail.";
- X }
- X verDoBreak(actor) = {}
- X doBreak(actor) = {
- X "The machine is quite stury and survives your attack
- X without getting so much as a scratch.";
- X }
- X verDoAttack(actor) = { self.verDoBreak(actor); }
- X doAttack(actor) = { self.doBreak(actor); }
- X verDoAttackWith(actor, io) = { self.verDoAttack(actor); }
- X doAttackWith(actor) = { self.doAttack(actor); }
- X
- X verDoLookbehind(actor) = {
- X "You don't find anything behind the vending machine.";
- X }
- X verDoLookunder(actor) = {
- X "You don't find anything behind the under machine.";
- X }
- X verDoMove(actor) = { "The vending machine is far too heavy to move."; }
- X;
- XPirateMessage: CCR_decoration, readable
- X sdesc = "message in the dust"
- X ldesc = {
- X "The message reads, \"This is not the maze where the
- X pirate leaves his treasure chest.\"";
- X }
- X noun = 'message' 'scrawl' 'writing' 'script'
- X adjective = 'scrawled' 'flowery'
- X location = nil // moved to Dead_End_14 when pirate spotted
- X;
- X
- X/*
- X * Endgame locations
- X *
- X * We make these NoNPC rooms so that dwarves and pirate don't get
- X * teleported here when (if) they get stuck trying to move around
- X * the cave. (The dwarves in here aren't real actors because they
- X * kill the player immediately if they're awake.)
- X */
- XAt_Ne_End: CCR_room, lightroom, NoNPC
- X sdesc = "At NE End"
- X ldesc = {
- X I(); "You are at the northeast end of an immense
- X room, even larger than the giant room. It appears to
- X be a repository for the \"Adventure\" program.
- X Massive torches far overhead bathe the room with
- X smoky yellow light. Scattered about you can be seen
- X a pile of bottles (all of them empty), a nursery of
- X young beanstalks murmuring quietly, a bed of oysters,
- X a bundle of black rods with rusty stars on their
- X ends, and a collection of brass lanterns. Off to one
- X side a great many dwarves are sleeping on the floor,
- X snoring loudly. A sign nearby reads: \"Do not
- X disturb the dwarves!\""; P();
- X
- X I(); "An immense mirror is hanging against one wall,
- X and stretches to the other end of the room, where
- X various other sundry objects can be glimpsed dimly in
- X the distance.";
- X }
- X sw = At_Sw_End
- X;
- XMirror_2: CCR_decoration
- X sdesc = "enormous mirror"
- X ldesc = "It looks like an ordinary, albeit enormous, mirror."
- X noun = 'mirror'
- X adjective = 'enormous' 'huge' 'big' 'large' 'suspended'
- X 'hanging' 'vanity' 'dwarvish'
- X
- X locationOK = true // OK for location to be method
- X location = {
- X if (Me.isIn(At_Ne_End))
- X return At_Ne_End;
- X else
- X return At_Sw_End;
- X }
- X
- X verDoBreak(actor) = {}
- X doBreak(actor) = {
- X "You strike the mirror a resounding blow, whereupon
- X it shatters into a myriad tiny fragments.";
- X
- X //
- X // A very bad move...
- X //
- X end_dwarves();
- X }
- X verDoAttack(actor) = { self.verDoBreak(actor); }
- X doAttack(actor) = { self.doBreak(actor); }
- X verDoAttackWith(actor, io) = { self.verDoAttack(actor); }
- X doAttackWith(actor) = { self.doAttack(actor); }
- X verDoKick(actor) = { self.verDoBreak(actor); }
- X doKick(actor) = { self.doBreak(actor); }
- X;
- XRepositoryStuff_1: CCR_decoration
- X sdesc = "collection of adventure game materials"
- X ldesc = {
- X "You've seen everything in here already, albeit
- X in somewhat different contexts.";
- X }
- X location = At_Ne_End
- X noun = 'stuff' 'junk' 'materials' 'torches' 'objects'
- X adjective = 'adventure' 'repository' 'massive' 'sundry'
- X
- X verifyRemove(actor) = {
- X "Realizing that by removing the loot here you'd be
- X ruining the game for future players, you leave the
- X \"Adventure\" materials where they are.";
- X }
- X;
- XRepositoryDwarves: CCR_decoration
- X sdesc = "sleeping dwarves"
- X adesc = { self.sdesc; }
- X ldesc = {
- X "I wouldn't bother the dwarves if I were you.";
- X }
- X location = At_Ne_End
- X noun = 'dwarf' 'dwarves'
- X adjective = 'sleeping' 'snoring' 'dozing' 'snoozing'
- X
- X verDoWake(actor) = {}
- X doWake(actor) = {
- X "You prod the nearest dwarf, who wakes up grumpily,
- X takes one look at you, curses, and grabs for his
- X axe.";
- X
- X end_dwarves();
- X }
- X verDoAttack(actor) = {}
- X doAttack(actor) = { self.doWake(actor); }
- X verDoKick(actor) = {}
- X doKick(actor) = { self.doWake(actor); }
- X;
- XRepositoryPlant: CCR_decoration
- X location = At_Ne_End
- X;
- X
- XAt_Sw_End: CCR_room, lightroom, NoNPC
- X sdesc = "At SW End"
- X ldesc = {
- X I(); "You are at the southwest end of the repository.
- X To one side is a pit full of fierce green snakes. On
- X the other side is a row of small wicker cages, each
- X of which contains a little sulking bird. In one
- X corner is a bundle of black rods with rusty marks on
- X their ends. A large number of velvet pillows are
- X scattered about on the floor. A vast mirror stretches
- X off to the northeast. At your feet is a large steel
- X grate, next to which is a sign which reads,
- X \"TREASURE VAULT. Keys in main office.\"";
- X }
- X ne = At_Ne_End
- X down = {
- X RepositoryGrate.doEnter(Me);
- X return nil;
- X }
- X;
- XRepositoryGrate: fixeditem, keyedLockable
- X isopen = nil
- X islocked = true
- X sdesc = "steel grate"
- X ldesc = {
- X "It just looks like an ordinary steel grate.";
- X
- X " It is ";
- X if (self.isopen)
- X "open.";
- X else if (self.islocked)
- X "closed and locked.";
- X else
- X "closed.";
- X }
- X noun = 'grate' 'lock' 'gate' 'grille'
- X adjective = 'metal' 'strong' 'steel' 'open' 'closed' 'locked'
- X 'unlocked'
- X
- X location = At_Sw_End
- X
- X mykey = nil // no key for this one
- X
- X verDoEnter(actor) = {}
- X doEnter(actor) = {
- X if (not Grate.islocked) {
- X if (not Grate.isopen) {
- X "(Opening the grate first.)\b";
- X Grate.isopen := true;
- X
- X }
- X if (actor.isIn(Outside_Grate))
- X actor.travelTo(Below_The_Grate);
- X else
- X actor.travelTo(Outside_Grate);
- X }
- X else {
- X "You can't go through a locked steel grate!";
- X }
- X }
- X
- X verIoPutIn(actor) = { "You can't put anything in that! "; }
- X verDoPick = { "You have no tools to pick the lock with."; }
- X;
- X
- XRepositoryStuff_2: CCR_decoration
- X sdesc = "collection of adventure game materials"
- X ldesc = {
- X "You've seen everything in here already, albeit
- X in somewhat different contexts.";
- X }
- X location = At_Sw_End
- X
- X verifyRemove(actor) = {
- X "Realizing that by removing the loot here you'd be
- X ruining the game for future players, you leave the
- X \"Adventure\" meterials where they are.";
- X }
- X
- X noun = 'pit' 'snake' 'snakes'
- X adjective = 'fierce' 'green'
- X;
- X
- X/*
- X * Miscellaneous messages
- X */
- Xbroken_neck: object
- X death = {
- X "You are at the bottom of the pit with a broken neck.";
- X die();
- X return nil;
- X }
- X;
- Xdidnt_make_it: object
- X death = {
- X "You didn't make it.";
- X die();
- X return nil;
- X }
- X;
- Xcrawled_around: object
- X message = {
- X "You have crawled around in some little holes and
- X wound up back in the main passage.";
- X
- X return nil;
- X }
- X;
- Xwontfit: object
- X message = {
- X "Something you're carrying won't fit through the
- X tunnel with you. You'd best take inventory and drop
- X something.";
- X
- X return nil;
- X }
- X;
- X
- X/*
- X * Room feature decorations.
- X * These don't give any new information, but they make the program
- X * seem less brain-damaged.
- X */
- XTheRoom: CCR_decoration
- X sdesc = "room"
- X ldesc = {
- X // Upon "examine room" we just give the standard
- X // description for the current location.
- X Me.location.lookAround(true);
- X }
- X noun = 'room' 'anteroom' 'dark-room' 'darkroom'
- X adjective = 'debris' 'low' 'twopit' 'large' 'lighted' 'slab'
- X 'giant' 'soft' 'oriental' 'dark' 'immense' 'barren'
- X 'bear-in' 'bearin'
- X locationOK = true // tell compiler OK for location to be method
- X location = {
- X return Me.location; // always where player is
- X }
- X;
- XHands: CCR_decoration // the player's hands
- X sdesc = "your hands"
- X adesc = { self.sdesc; }
- X thedesc = { self.sdesc; }
- X
- X ldesc = "The look pretty normal to me."
- X
- X noun = 'hands'
- X adjective = 'my' 'bare' 'hands'
- X
- X locationOK = true // tell compiler OK for location to be method
- X location = {
- X return Me.location; // always where player is
- X }
- X;
- X
- Xclass rfd: floatingdecoration
- X ldesc = "You know as much as I do at this point."
- X;
- XCrawl: rfd
- X sdesc = "crawl"
- X noun = 'crawl' 'crawls'
- X adjective = 'cobble' 'low' 'wide' 'higher' 'dead' 'end' 'tight'
- X loclist = [
- X Below_The_Grate In_Cobble_Crawl In_Debris_Room
- X In_Dirty_Passage On_Brink_Of_Pit
- X At_West_End_Of_Hall_Of_Mists At_East_End_Of_Long_Hall
- X At_Complex_Junction In_Large_Low_Room Dead_End_Crawl
- X In_Tall_E_W_Canyon In_Oriental_Room
- X At_Junction_With_Warm_Walls In_Chamber_Of_Boulders
- X ]
- X;
- XChamber: rfd
- X sdesc = "chamber"
- X noun = 'chamber'
- X adjective = 'small' 'splendid' 'south' 'side' 'west' 'large'
- X 'low' 'circular'
- X loclist = [
- X Below_The_Grate In_Bird_Chamber In_South_Side_Chamber
- X In_West_Side_Chamber In_Slab_Room In_Plover_Room
- X In_Chamber_Of_Boulders
- X ]
- X;
- XPassage: rfd
- X sdesc = "passage"
- X noun = 'passage' 'opening' 'openings' 'corridor' 'corridors'
- X 'path' 'paths'
- X adjective = 'low' 'wide' 'plugged' 'good' 'east' 'small' 'twisty'
- X 'little' 'n/s' 'e/w' 'dirty' 'broken' 'high' 'long'
- X 'large' 'walking' 'sizeable' 'sizable' 'cavernous'
- X 'blocked' 'immense' 'gently' 'sloping' 'coral'
- X 'shallow' 'somewhat' 'steeper' 'dark' 'forboding'
- X loclist = [
- X In_Cobble_Crawl In_Debris_Room
- X In_Awkward_Sloping_E_W_Canyon In_Bird_Chamber
- X At_Top_Of_Small_Pit In_Hall_Of_Mists
- X On_East_Bank_Of_Fissure In_Nugget_Of_Gold_Room
- X In_Hall_Of_Mt_King At_West_End_Of_Twopit_Room
- X In_East_Pit In_West_Pit West_Side_Of_Fissure
- X Low_N_S_Passage In_South_Side_Chamber
- X In_West_Side_Chamber At_Y2 Jumble_Of_Rock
- X At_Window_On_Pit_1 In_Dirty_Passage On_Brink_Of_Pit
- X In_Pit In_Dusty_Rock_Room
- X At_West_End_Of_Hall_Of_Mists Alike_Maze_1
- X Alike_Maze_2 Alike_Maze_3 Alike_Maze_4 Dead_End_1
- X Dead_End_2 Dead_End_3 Alike_Maze_5 Alike_Maze_6
- X Alike_Maze_7 Alike_Maze_8 Alike_Maze_9 Dead_End_4
- X Alike_Maze_10 Dead_End_5 At_Brink_Of_Pit Dead_End_6
- X At_East_End_Of_Long_Hall At_West_End_Of_Long_Hall
- X Crossover Dead_End_7 At_Complex_Junction In_Bedquilt
- X In_Swiss_Cheese_Room At_East_End_Of_Twopit_Room
- X In_Slab_Room In_Secret_N_S_Canyon_0
- X In_Secret_N_S_Canyon_1
- X At_Junction_Of_Three_Secret_Canyons In_Large_Low_Room
- X Dead_End_Crawl
- X In_Secret_E_W_Canyon In_N_S_Canyon
- X Canyon_Dead_End In_Tall_E_W_Canyon Dead_End_8
- X Alike_Maze_11 Dead_End_9 Dead_End_10 Alike_Maze_12
- X Alike_Maze_13 Dead_End_11 Dead_End_12 Alike_Maze_14
- X In_Narrow_Corridor At_Steep_Incline_Above_Large_Room
- X In_Giant_Room At_Recent_Cave_In
- X In_Immense_N_S_Passage In_Cavern_With_Waterfall
- X In_Soft_Room In_Oriental_Room In_Misty_Cavern
- X In_Alcove In_Plover_Room In_Dark_Room In_Arched_Hall
- X In_Shell_Room In_Ragged_Corridor In_A_Cul_De_Sac
- X In_Anteroom Different_Maze_1 At_Witts_End
- X In_Mirror_Canyon At_Window_On_Pit_2 Atop_Stalactite
- X Different_Maze_2 At_Reservoir Dead_End_13 At_Ne_End
- X At_Sw_End On_Sw_Side_Of_Chasm In_Sloping_Corridor
- X In_Secret_Canyon On_Ne_Side_Of_Chasm In_Corridor
- X At_Fork_In_Path At_Junction_With_Warm_Walls
- X At_Breath_Taking_View In_Chamber_Of_Boulders
- X In_Limestone_Passage In_Front_Of_Barren_Room
- X In_Barren_Room Different_Maze_3 Different_Maze_4
- X Different_Maze_5 Different_Maze_6 Different_Maze_7
- X Different_Maze_8 Different_Maze_9 Different_Maze_10
- X Different_Maze_11 Dead_End_14
- X ]
- X;
- XCanyon: rfd
- X sdesc = "canyon"
- X noun = 'canyon' 'canyons'
- X adjective = 'awkward' 'sloping' 'secret' 'e/w' 'n/s' 'tight'
- X 'tall' 'three'
- X loclist = [
- X In_Debris_Room In_Awkward_Sloping_E_W_Canyon
- X In_Bird_Chamber In_Secret_N_S_Canyon_0
- X In_Secret_N_S_Canyon_1 At_Junction_Of_Three_Secret_Canyons
- X In_Secret_E_W_Canyon In_N_S_Canyon
- X Canyon_Dead_End In_Tall_E_W_Canyon Dead_End_8
- X In_Mirror_Canyon In_Secret_Canyon
- X ]
- X;
- XWalls: rfd
- X sdesc = "walls"
- X noun = 'wall' 'walls' 'cracks' 'ceiling'
- X adjective = 'orange' 'stone' 'swiss' 'cheese' 'cave' 'cavern'
- X 'ragged' 'sharp' 'canyon' 'warm' 'hot' 'building'
- X 'well' 'house' 'wellhouse'
- X loclist = [
- X Inside_Building In_Cobble_Crawl In_Debris_Room
- X In_Awkward_Sloping_E_W_Canyon In_Bird_Chamber
- X At_Top_Of_Small_Pit In_Hall_Of_Mists
- X On_East_Bank_Of_Fissure In_Nugget_Of_Gold_Room
- X In_Hall_Of_Mt_King At_West_End_Of_Twopit_Room
- X In_East_Pit In_West_Pit West_Side_Of_Fissure
- X Low_N_S_Passage In_South_Side_Chamber
- X In_West_Side_Chamber At_Y2 Jumble_Of_Rock
- X At_Window_On_Pit_1 In_Dirty_Passage On_Brink_Of_Pit
- X In_Pit In_Dusty_Rock_Room
- X At_West_End_Of_Hall_Of_Mists Alike_Maze_1
- X Alike_Maze_2 Alike_Maze_3 Alike_Maze_4 Dead_End_1
- X Dead_End_2 Dead_End_3 Alike_Maze_5 Alike_Maze_6
- X Alike_Maze_7 Alike_Maze_8 Alike_Maze_9 Dead_End_4
- X Alike_Maze_10 Dead_End_5 At_Brink_Of_Pit Dead_End_6
- X At_East_End_Of_Long_Hall At_West_End_Of_Long_Hall
- X Crossover Dead_End_7 At_Complex_Junction In_Bedquilt
- X In_Swiss_Cheese_Room At_East_End_Of_Twopit_Room
- X In_Slab_Room In_Secret_N_S_Canyon_0
- X In_Secret_N_S_Canyon_1
- X At_Junction_Of_Three_Secret_Canyons In_Large_Low_Room
- X Dead_End_Crawl
- X In_Secret_E_W_Canyon In_N_S_Canyon
- X Canyon_Dead_End In_Tall_E_W_Canyon Dead_End_8
- X Alike_Maze_11 Dead_End_9 Dead_End_10 Alike_Maze_12
- X Alike_Maze_13 Dead_End_11 Dead_End_12 Alike_Maze_14
- X In_Narrow_Corridor At_Steep_Incline_Above_Large_Room
- X In_Giant_Room At_Recent_Cave_In
- X In_Immense_N_S_Passage In_Cavern_With_Waterfall
- X In_Soft_Room In_Oriental_Room In_Misty_Cavern
- X In_Alcove In_Plover_Room In_Dark_Room In_Arched_Hall
- X In_Shell_Room In_Ragged_Corridor In_A_Cul_De_Sac
- X In_Anteroom Different_Maze_1 At_Witts_End
- X In_Mirror_Canyon At_Window_On_Pit_2 Atop_Stalactite
- X Different_Maze_2 At_Reservoir Dead_End_13 At_Ne_End
- X At_Sw_End On_Sw_Side_Of_Chasm In_Sloping_Corridor
- X In_Secret_Canyon On_Ne_Side_Of_Chasm In_Corridor
- X At_Fork_In_Path At_Junction_With_Warm_Walls
- X At_Breath_Taking_View In_Chamber_Of_Boulders
- X In_Limestone_Passage In_Front_Of_Barren_Room
- X In_Barren_Room Different_Maze_3 Different_Maze_4
- X Different_Maze_5 Different_Maze_6 Different_Maze_7
- X Different_Maze_8 Different_Maze_9 Different_Maze_10
- X Different_Maze_11 Dead_End_14
- X ]
- X;
- XDeadEnd: rfd
- X sdesc = "dead end"
- X noun = 'end'
- X adjective = 'dead'
- X loclist = [
- X Dead_End_1 Dead_End_2 Dead_End_3 Dead_End_4
- X Dead_End_5 Dead_End_6 Dead_End_7 Dead_End_Crawl
- X Canyon_Dead_End Dead_End_8 Dead_End_9 Dead_End_10
- X Dead_End_11 Dead_End_12 Dead_End_13 Dead_End_14
- X ]
- X;
- XHall: rfd
- X sdesc = "hall"
- X noun = 'hall'
- X adjective = 'vast' 'long' 'featureless' 'arched'
- X loclist = [
- X In_Hall_Of_Mists On_East_Bank_Of_Fissure
- X In_Hall_Of_Mt_King West_Side_Of_Fissure
- X In_West_Side_Chamber At_West_End_Of_Hall_Of_Mists
- X At_East_End_Of_Long_Hall At_West_End_Of_Long_Hall
- X In_Arched_Hall
- X ]
- X;
- XHole: rfd
- X sdesc = "hole"
- X noun = 'hole' 'holes'
- X adjective = 'large' 'big' 'round' 'two' 'foot' 'two-foot'
- X loclist = [
- X At_East_End_Of_Twopit_Room
- X In_West_Pit Low_N_S_Passage In_Dirty_Passage
- X In_Dusty_Rock_Room At_East_End_Of_Long_Hall
- X In_Bedquilt In_Narrow_Corridor In_Cavern_With_Waterfall
- X At_Reservoir
- X ]
- X;
- XJunction: rfd
- X sdesc = "junction"
- X noun = 'junction'
- X adjective = 'complex'
- X loclist = [
- X At_Complex_Junction At_Junction_Of_Three_Secret_Canyons
- X At_Junction_With_Warm_Walls
- X ]
- X;
- XAir: rfd // If they MUST examine EVERYTHING
- X sdesc = "air"
- X adesc = "air"
- X noun = 'air' 'environment' 'atmosphere' 'wind'
- X adjective = 'sea' 'damp' 'hot' 'stifling'
- X locationOK = true // tell compiler OK for location to be method
- X location = {
- X return Me.location; // always where player is
- X }
- X verDoSmell(actor) = {}
- X doSmell(actor) = {
- X "The air smells pretty much like you would expect.";
- X }
- X;
- END_OF_FILE
- if test 57507 -ne `wc -c <'src/ccr-room.t2'`; then
- echo shar: \"'src/ccr-room.t2'\" unpacked with wrong size!
- fi
- # end of 'src/ccr-room.t2'
- fi
- echo shar: End of archive 2 \(of 11\).
- cp /dev/null ark2isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 11 archives.
- echo "Now run buildit.sh to make gam file"
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-