!**************************************************************************** !****(DEFINITIONS)*********************************************************** !**************************************************************************** !**************************************************************************** !****(GLOBALS)*************************************************************** !**************************************************************************** !**************************************************************************** !****(ROOM DESCRIPTIONS)***************************************************** !**************************************************************************** class falcontunnel { inherits room nouns "tunnel", "passage", "passageway", "hall", "hallway", "area" is underwater, interior misc 0 !Have we had radio contact yet at this location? } !---------------------------------------------------------------------------- class falconroom { inherits room nouns "room", "area" is underwater, interior misc 0 !Possible use for later. } !---------------------------------------------------------------------------- class falconexterior { inherits room nouns "area" is underwater misc 0 !Possible use for later. } !---------------------------------------------------------------------------- falconexterior falconeast "East of the Passageway" { nouns "area" misc 0 !Have we had radio contact yet at this location? is underwater long_desc { roomdesc_seen = true !Room description was "seen" on this turn. if (self.misc = 0) { PrintMsgChapter3(2,1) : indent } "Black and green plants, somewhat thick and fuzzy, sway gently with the mild underwater current. Ahead to the -- yes, that's the right direction -- west, a large circular opening introduces a long tunnel. Set into the north and south \"walls\" of the tunnel and spaced a short distance apart, several side tunnels or alcoves are just visible. The walls and ceiling, if indeed they are, follow the same arced form down the length of the passageway. The bed of Lake Gorzhen is deepest here, and brimming with gray and green algae." } each_turn { if (self.misc = 0) { PrintMsgChapter3(2,2) : self.misc = 1 } if (purplevines.misc >= 10) { !Now we're done with this level. PrintMsgChapter3(99) } } w_to falchall1 in_to falchall1 before { location DoGo { if (object = w_obj,in_obj) { PrintMsgChapter3(0,1) } return false } } } !---------------------------------------------------------------------------- falcontunnel falchall1 "Intersection One" { long_desc { roomdesc_seen = true !Room description was "seen" on this turn. "Algae is thick here at the easternmost section of the passageway, just inside the opening. It spreads cloudlike with every step, disturbed for perhaps the very first time. It covers the floor of the tunnel, spreading out to the east, and along the entire course west. Your helmet lamps shine through the darkness, revealing two open portals set inside long alcoves: one north, the other south. Four more pairs of openings are visible at equidistant points farther along the passageway, causing you to dub this \"Intersection One.\" The passage walls curve on either side, rounding up and overhead." } each_turn { if (location ~= prev_location) { SetPortal(northportal1,n_obj) SetPortal(southportal1,s_obj) if (self.misc = 0) { PrintMsgChapter3(2,3) self.misc = 1 } } } n_to { return northportal1.door_to } s_to { return southportal1.door_to } out_to falconeast e_to falconeast w_to falchall2 before { location DoGo { if (object = e_obj,out_obj) { if (airlock.misc >= 6) and (purplevines.misc < 10) { PrintMsgChapter3(1,4) : return true } if Contains(player, longbeam) { "(dropping the long metal beam first)" Perform(&DoDrop, longbeam) } PrintMsgChapter3(0,3) } if (object = w_obj) { if (purplevines.misc >= 10) { PrintMsgChapter3(1,5) : return true } PrintMsgChapter3(0,2,object) } return false !default handling } } } !---------------------------------------------------------------------------- falcontunnel falchall2 "Intersection Two" { extra_scenery "marine", "life", "marine life" long_desc { roomdesc_seen = true !Room description was "seen" on this turn. "Two long alcoves are set into the north and south walls. The southern opening, however, terminates in a jumble of obstructions: twisted and collapsed support structures, thick marine life, maybe even calcified algae deposits. Exploration in that direction isn't possible. "; if (northportal2 is open) { "The portal through the northern alcove has been opened." } else { "The northern alcove also differs from its neighbors, ending in a closed but visibly intact portal." } } each_turn { if (location ~= prev_location) { SetPortal(northportal2,n_obj) if (northportal2 is open) and (northportal2.misc = 0) { if (roomdesc_seen = false) { PrintMsgChapter3(8,4) } northportal2.misc = 1 } } } n_to { return northportal2.door_to } e_to falchall1 w_to falchall3 before { location DoGo { if (object = e_obj,w_obj) { PrintMsgChapter3(0,2,object) } return false } } } !---------------------------------------------------------------------------- falcontunnel falchall3 "Intersection Three" { long_desc { roomdesc_seen = true !Room description was "seen" on this turn. "The third intersection is the midpoint between the eastern exit and the end of the passageway, west. Like the southern alcove of the second intersection, the northern opening stops abruptly in a mess of age-old damage. "; if (southportal3.misc = 0) { "The southern passage is partially blocked by a portal that stands crooked and ajar, but it isn't closed enough to prevent entry." } elseif (southportal3.misc = 1) { "Although the southern portal stands crooked and ajar, you have found it impossible to fit through in the bulky diving suit." } else { "A portal to the south now stands agape." } } each_turn { if (location ~= prev_location) { SetPortal(southportal3,s_obj) } } s_to { PrintMsgChapter3(1,1) : return true } e_to falchall2 w_to falchall4 before { location DoGo { if (object = e_obj,w_obj) { PrintMsgChapter3(0,2,object) } return false } } } !---------------------------------------------------------------------------- falcontunnel falchall4 "Intersection Four" { long_desc { roomdesc_seen = true !Room description was "seen" on this turn. if (airlocksouth is open) { "Two open portals -- one north, the other south -- are set into the alcoves at this intersection. "; } else { "A closed, seemingly intact portal inhabits the southern alcove. Another portal, also closed, but of a perceptibly different style than others along the way, is set into the northern recess. "; } "The curved corridor walls show more damage here." } each_turn { if (location ~= prev_location) { SetPortal(airlocksouth,n_obj) SetPortal(southportal4,s_obj) if (airlocksouth is open) and (airlocksouth.misc = 0) { if (roomdesc_seen = false) { PrintMsgChapter3(8,5) } airlocksouth.misc = 1 : southportal4.misc = 1 } } } n_to { return airlocksouth.door_to } s_to { return southportal4.door_to } e_to falchall3 w_to falchall5 before { location DoGo { if (object = e_obj,w_obj) { PrintMsgChapter3(0,2,object) } return false } } } !---------------------------------------------------------------------------- falcontunnel falchall5 "Intersection Five" { long_desc { roomdesc_seen = true !Room description was "seen" on this turn. "Rubble to the west brings what may be a premature end to the tunnel. Much of it looks like large support girders and parts of the wall and ceiling, although thick layers of green and brown algae cover almost all of it. The damage extends from the west around to the south, where it has blocked all but a superficial view of the southern alcove. Its twin to the north, however, is open." } each_turn { if (location ~= prev_location) { SetPortal(northportal1,n_obj) SetPortal(southportal1,s_obj) } } n_to { return northportal5.door_to } e_to falchall4 before { location DoGo { if (object = e_obj) { PrintMsgChapter3(0,2,object) } return false } } } !---------------------------------------------------------------------------- falconroom falc1north "Truncated Hallway" { long_desc { roomdesc_seen = true !Room description was "seen" on this turn. "Very little space remains in what may once have been a hallway. Now just a truncated room, it seems to have been caught in the grip of a mighty fist, left crumpled and useless. Small pieces of floating debris catch a glint from you helmet light. Thick vines, gray and brown like petrifus roots, grow in a complex weave through the almost unrecognizable remains of ceiling, floor, and walls. An open portal leads back to the main passageway, south." } each_turn { if (location ~= prev_location) { SetPortal(northportal1,s_obj) } } s_to { return northportal1.door_to } } !---------------------------------------------------------------------------- falconroom falc1south "Ridged Room" { long_desc { roomdesc_seen = true !Room description was "seen" on this turn. "Although the room shows very little sign of damage, it has little else to offer. "; if (ashpiles.misc = 0) { "Heaps of ash -- perhaps the decayed remains of wooden shelving or other furnishings, but who's to say for sure -- form numerous piles along the floor near the walls. "; } else { "A sticky, ash-like substance collects in piles long the floor near the walls. "; } "Algae has only established a minor hold in this area, and the contours of the walls are still clearly visible. Ridges, irregular of form and unevenly spaced like the markings of a tide, form rings midway up the curving walls, stretching from one side of the entrance all the way around to arrive at the other. The portal itself opens north, into the main passageway." } each_turn { if (location ~= prev_location) { SetPortal(southportal1,n_obj) } } n_to { return southportal1.door_to } } !---------------------------------------------------------------------------- falconroom falc2north "Mural Room" { long_desc { roomdesc_seen = true !Room description was "seen" on this turn. "Until very recently, it appears that this room was sealed away from the invading waters. Strange furnishings float about: a large table of unusual workmanship, multiple chairs of equally odd design, bits of scrap materials, various utensils, heavily decayed segments of a rug, other things of unknown function. Even as you survey these things, you can detect some deterioration taking place, as if the water is acidic. It isn't, you're sure, but these ancient furnishings won't last long now just in the direct exposure to lake water." indent "What strikes you as strangest of all is the large mural on the western wall. The vivid colors appear clouded through the water, and although the image begins to lose cohesion, it's very clearly a man's portrait. Relay -- void, the whole team -- were convinced that this was some kind of alien facility, built and abandoned ages ago at the bottom of lake Gorzhen. It just doesn't seem reasonable that such a portrait would adorn the wall of an alien dining room." } each_turn { if (location ~= prev_location) { SetPortal(northportal2,s_obj) } } s_to { return northportal2.door_to } } !---------------------------------------------------------------------------- falconroom falc3south "Partial Passage" { long_desc { roomdesc_seen = true !Room description was "seen" on this turn. "Very little remains of what was probably a side passage before it all fell to ruin. Thick gray-brown vines have replaced large portions of the walls and ceiling. To the south, the room ends in a large, jagged hole, as if the hallway was bitten off by massive teeth. Open water is visible beyond. A portal opens into the main corridor, north." } each_turn { if (location ~= prev_location) { SetPortal(southportal3,n_obj) } } out_to falcout3 n_to { return southportal3.door_to } s_to falcout3 before { location DoGo { if (object = s_obj,out_obj) { if (airlock.misc >= 6) and (purplevines.misc < 10) { PrintMsgChapter3(1,4) : return true } if Contains(player, longbeam) { "(dropping the long metal beam first)" Perform(&DoDrop, longbeam) } } return false !default handling } } } !---------------------------------------------------------------------------- falconroom airlock "Chamber of Ambient White" { !Note that MISC for this room implies that Relay is now out of contact! !Plus, we increase it each time we engage Thyras in battle. 6 = Done. long_desc { roomdesc_seen = true !Room description was "seen" on this turn. if (self is underwater) { "This room seems to have some sort of ambient lighting, and the water appears much cleaner. It seems like nothing more than a large white cube with rounded edges and corners. Portals are set into the north and south walls. Narrow vents in the walls, floor, and ceiling serve as the only decoration." } else { "The water has been pumped away from this room, leaving only the wet floors and walls of white. Portals are set into the north and south walls, while air hisses slowly from the ceiling vents." } } each_turn { if (location ~= prev_location) { SetPortal(airlocknorth,n_obj) : airlocknorth is not open SetPortal(airlocksouth,s_obj) : airlocksouth is not open PrintMsgChapter3(9,1,prev_location) if (self.misc = 0) { PrintMsgChapter3(2,11) : self.misc = 1 } } } n_to { return airlocknorth.door_to } s_to { return airlocksouth.door_to } before { location DoGo { if (object = n_obj) { if (airlocknorth is not open) { PrintMsgChapter3(1,2,airlocknorth) : return true } elseif (divesuit is worn) { PrintMsgChapter3(9,8) : return true } elseif Contains(player,divesuit) { PrintMsgChapter3(9,9) : return true } } elseif (object = s_obj) { if (airlocksouth is not open) { PrintMsgChapter3(1,2,airlocksouth) : return true } } return false !Gives default message } } } !---------------------------------------------------------------------------- falconroom falc4south "Black Room" { long_desc { roomdesc_seen = true !Room description was "seen" on this turn. "The room has black, algae-covered walls. "; if (airlock.misc < 6) { "A large device formed of wide tubes, tanks, pipes, and jutting angles fills most of the room." } else { "The room is presently empty." } } each_turn { if (location ~= prev_location) { SetPortal(southportal4,n_obj) } } n_to { return southportal4.door_to } } !---------------------------------------------------------------------------- falconroom falc5north "Purple Plant Room" { long_desc { roomdesc_seen = true !Room description was "seen" on this turn. if (purplevines.misc >= 10) { "Only traces of dark purple appear in spots about the surface of the plant. Its plumes and vines are black, withered, and fall limply about the floor. It makes no movement." } else { "Wide and deep ruts slice through the floor in several places, through which a dark purple plant has taken solid root. If size is any indication, it seems to be thriving with access to the rocky soil of the lake bed below. The thing is about eight times your size, with multiple trunks and billowy plumes of pale yellow. Thin gray vines snake upward from the plumes, firmly attached to the ceiling, the walls, and the edges of the southern portal. It sways in gentle motion with the current caused by your movements." } } each_turn { if (location ~= prev_location) { SetPortal(northportal5,s_obj) } } s_to { return northportal5.door_to } } !---------------------------------------------------------------------------- falconroom falc5south "Chamber of the Amber Glow" { long_desc { roomdesc_seen = true !Room description was "seen" on this turn. "Large, partially decayed boxes of unfamiliar purpose and design line the east and west walls. "; if (southportal5 is open) { "A portal stands open in the north wall. The same heaped wreckage previously visible from the other side -- in Intersection Five -- blocks it entirely. "; } else { "A portal stands closed in the north wall, presumably a useless connection to Intersection Five, since rubble completely blocks the other side. "; } "Jagged but dull rips in the southern wall lead back to the outer ridge. Four large ovals on the ceiling glow in a dull, dim amber, casting a reddish hue to all you see. The lights pulse gradually and without a large change in intensity, but the effect is a slight and alternating shift in shadows -- from deep to dim and back. Set into support struts on the eastern wall is a large wheel. Like most of the room in that area, its entire surface hosts thick green algae, given a light brown tint in the ambient lighting." } each_turn { if (location ~= prev_location) { SetPortal(southportal5,n_obj) } } s_to falcout1 } !---------------------------------------------------------------------------- room dryroom "Dry Room" { long_desc { roomdesc_seen = true !Room description was "seen" on this turn. "The predominant feature in this large, high-ceilinged room is the large silver rectangle recessed into the western wall. Although several cracks run through it at differing angles, the upright console set several paces back seems entirely undamaged. Four metal chairs are arranged in a semicircle, facing inward from a position behind the console, closer to the eastern wall. Two additional chairs are placed directly behind the console (considering the western wall as forward), and all six of them retain only sparse scraps of their former cushioning. The north and east walls are host to several shallow alcoves. Various control panels -- similar in style to those of Incender design, as a base of comparison -- fill the niches. The room seems remarkably well preserved, perhaps the result of having been sealed safely away from the invading lake." } is interior each_turn { if (location ~= prev_location) { SetPortal(airlocknorth,s_obj) } } s_to { return airlocknorth.door_to } } !---------------------------------------------------------------------------- falconexterior falcout1 "Outer Ridge at the Western End" { long_desc { roomdesc_seen = true !Room description was "seen" on this turn. "Although no additional wreckage blocks further movement to the west, the same effect is accomplished by an abrupt end to the ledge. The western wall of the dark pit below angles up to a more level lake bed, providing evidence that the ancient wreckage rests at the northwestern edge of a steep drop. The ridge upon which you stand extends east from here, growing narrower along the way. Ripped and jagged metal, worn dull with age and algae, creates an entrance back into the wreckage, due north." } n_to falc5south e_to falcout2 before { location DoGo { if (object = e_obj) { PrintMsgChapter3(0,4,object) } return false } } } !---------------------------------------------------------------------------- falconexterior falcout2 "Narrow Outer Ridge" { long_desc { roomdesc_seen = true !Room description was "seen" on this turn. "The ridge forms an unsteady dip here, becoming narrower at a location that is probably due south of Intersection Four. You stay close to the northern wall for safety, glancing back at the abyss below the ledge. The bulk of the wreckage seems to be positioned at the edge of a chasm in the lake bed. Your narrow walkway grows wider to the east and west." } e_to falcout3 w_to falcout1 before { location DoGo { if (object = e_obj,w_obj) { PrintMsgChapter3(0,4,object) } return false } } } !---------------------------------------------------------------------------- falconexterior falcout3 "Wide Outer Ridge" { long_desc { roomdesc_seen = true !Room description was "seen" on this turn. "By your estimation, your present position is about due south of Intersection Three. A wide lip juts from the edge of the wreckage, under a gaping hole leading back inside. Beyond and below this ridge, upon which you are standing, open water stretches to murky distances. The ridge extends east and west, providing a precarious walkway in both directions." } in_to falc3south n_to falc3south e_to falcout4 w_to falcout2 before { location DoGo { if (object = e_obj,w_obj) { PrintMsgChapter3(0,4,object) } return false } } } !---------------------------------------------------------------------------- falconexterior falcout4 "Outer Ridge at the Eastern End" { long_desc { roomdesc_seen = true !Room description was "seen" on this turn. "Further eastern movement is blocked by a massive obstruction. It seems to be a protrusion of the outer shell. Closer inspection reveals it as a large tubelike appendage, possibly an isolated section of hallway. Most of it is damaged beyond recognition, and you quickly determine that it will serve no purpose to expend any effort looking for a way inside. By your estimation, the ridge ends where Intersection Two would be due north, and the blockade extends south of the room behind Intersection One. The ridge upon which you stand extends to the west." } w_to falcout3 before { location DoGo { if (object = w_obj) { PrintMsgChapter3(0,4,object) } return false } } } !**************************************************************************** !****(AREA ITEMS)************************************************************ !**************************************************************************** object divesuit "prototypical diving suit" { nouns "suit", "uniform", "helmet", "canister", "wrists", "arms", \ "equiptment", "equipment", "boot", "boots" adjectives "diving", "prototypical", "prototype", "air" article "a" size 50 is clothing, not worn exclude_from_all { return true } long_desc { PrintMsgChapter3(3,self) } inv_desc { "You are "; if (self is worn) { "wearing "; } else { "carrying "; } print Art(self); "."; } before { object DoTakeOff { if (location is underwater) { PrintMsgChapter3(4,1) : return true } return false !Normal continue } object DoGet { if (location = airlock) and (self in airlock) and (thyras in airlock) { PrintMsgChapter3(11,2,1) : return true } return false !default message } } } !---------------------------------------------------------------------------- object smallrod "small metal rod" { noun "rod" adjectives "small", "metal" article "a" size 10 capacity 0 is container long_desc { PrintMsgChapter3(3,self) } misc false !This will control whether or not "ASH" is on the rod. short_desc { print CArt(self); if (smallrod in falc1north) { " drifts along with the debris." } else { " rests on the floor here." } } desc_detail { if (self.misc) { " (ash-tipped)"; } } before { object DoEat { if (self.misc) { PrintMsgChapter3(4,11) : return true } else { return false } } object DoDrop,DoPutIn,DoThrowAt { if (Chapter=3) and (Section = 2) { PrintMsgChapter3(4,12,1) } else { PrintMsgChapter3(4,12,2) } return true } } } !---------------------------------------------------------------------------- object longbeam "long metal beam" { noun "beam" adjectives "long", "metal" article "a" size 10 long_desc { PrintMsgChapter3(3,self) } } !**************************************************************************** !****(DAEMONS)*************************************************************** !**************************************************************************** daemon TheVines {} event in TheVines { if (location ~= prev_location) { if (location = falchall1,falchall2,falchall3,falchall4, \ falchall5,falc4south,falc3south,falc2north) { move purplevines to location if (location = falc2north) { PrintMsgChapter3(7,6) } else { PrintMsgChapter3(7,2) } if Contains(player,smallrod) and (smallrod.misc = true) { PrintMsgChapter3(7,5) } } elseif (location = falc5north) { PrintMsgChapter3(7,7) } elseif (location = falc1north) { if (smallrod is not moved) { PrintMsgChapter3(6,3) } } elseif (location = falc1south) { !The vine only follows us if we had the ash-covered rod. if Contains(player,smallrod) and (smallrod.misc = true) { PrintMsgChapter3(7,9) purplevines.misc = 10 !Now it's withered and gone. Deactivate(TheVines) !Vines are now totally gone. purplevines.found_in = 0 !And they're not here. } } } } !**************************************************************************** !****(AREA SCENERY)********************************************************** !**************************************************************************** !---------------------------------------------------------------------------- scenery relay "Relay's voice" { found_in falconeast, falchall1, falchall2, falchall3, falchall4, \ falchall5, falc1north, falc1south, falc2north, falc3south, \ airlock, falc4south, falc5north, falcout1, falcout2, \ falcout3, falcout4, falc5south, dryroom nouns "voice", "relay" adjectives "relay's", "relay" is living pronouns "it", "it", "its", "itself" before { object DoTalk,DoAsk,DoTell,DoYell { if (divesuit is worn) { if (airlock.misc >= 6) { PrintMsgChapter3(4,13) } else { !If we're in the right spot, we can do certain Q's. if (VerbRoutine = &DoAsk) and (location=falconeast) { if (xobject=divesuit,thelake,wreckage) { PrintMsgChapter3(2,12,xobject) return true } } !Otherwise... PrintMsgChapter3(4,14) } } else { PrintMsgChapter3(4,15) } return true } !Note that we piggyback this off of Chapter2 routines. object DoGet { PrintMsgChapter2(1,6,word[1]) : return true } object DoLook { PrintMsgChapter2(1,6,"look at \ior\I examine") : return true } object { PrintMsgChapter2(1,7,self) : return true } } } !---------------------------------------------------------------------------- scenery wreckage "tunnel" { found_in falconeast nouns "tunnels", "tunnel", "opening", "walls", "alcove", "alcoves", \ "ceiling", "corridor", "passageway", "floor", "wreckage", \ "artifact" adjectives "long", "circular", "side" article "the" long_desc { PrintMsgChapter3(5,self) } } !---------------------------------------------------------------------------- scenery thelake "Lake Gorzhen" { found_in falconeast, falcout1, falcout2, falcout3, falcout3 nouns "lake", "gorzhen", "water", "bed" adjectives "lake" long_desc { PrintMsgChapter3(5,self) } } !---------------------------------------------------------------------------- class portal { inherits door nouns "door", "doorway", "portal", "entrance", "gap", "opening" article "the" parse_rank 2 !So it's above other similarly named items misc 0 !Means something to some of the doors. long_desc { PrintMsgChapter3(5,portal,self) } before { object DoClose { if (self is open) { PrintMsgChapter3(4,2) : return true } return false } object DoOpen { if (self is not open) { PrintMsgChapter3(4,3) : return true } return false } object DoPry { if (self is open) { return false !Default message } else { PrintMsgChapter3(4,7) : return true } } } } !---------------------------------------------------------------------------- class airlock_portal { inherits portal long_desc { PrintMsgChapter3(5,self) } before { object DoTouch { if (location = airlock) { if (self is open) { PrintMsgChapter3(9,2,self) } elseif (thyras in location) { PrintMsgChapter3(11,2,1) } elseif (self = airlocknorth) and (location is not underwater) { PrintMsgChapter3(9,3,self) : self is open } elseif (self = airlocksouth) and (location is underwater) { PrintMsgChapter3(9,3,self) : self is open } elseif (self = airlocksouth) and (divesuit is not worn) { PrintMsgChapter3(9,0) } else { PrintMsgChapter3(9,4,self) if (self = airlocknorth) and (airlocksouth is open) { PrintMsgChapter3(9,5) : airlocksouth is not open } elseif (self = airlocksouth) and (airlocknorth is open) { PrintMsgChapter3(9,5) : airlocknorth is not open } self.misc = 1 !Flag that we've touched it at least once. if (self = airlocknorth) { PrintMsgChapter3(9,6) location is not underwater : self is open } else { PrintMsgChapter3(9,7) location is underwater : self is open } } return true !Because all messages are handled above. } return false !All other situations, return false. } object DoOpen,DoPush { if (location = airlock) { if (self is not open) { !Special condition to prevent "auto-open" until the player !actually figures out that the design should be touched. if (VerbRoutine = &DoOpen) { if (airlocknorth.misc = 0) and (airlocksouth.misc = 0) { PrintMsgChapter3(1,3) : return true } } "(assuming you mean to touch the green handprint)" Perform(&DoTouch,self) : return true } } return false } } } !---------------------------------------------------------------------------- airlock_portal airlocknorth "northern portal" { adjectives "north", "northern", "n" between airlock, dryroom !MISC will be whether or not we've pressed it at least once. } !---------------------------------------------------------------------------- airlock_portal airlocksouth "southern portal" { adjectives "south", "southern", "s" between airlock, falchall4 !MISC will be whether or not we've pressed it at least once. } !---------------------------------------------------------------------------- portal northportal1 "northern portal" { adjectives "north", "northern", "n" between falchall1, falc1north is open } !---------------------------------------------------------------------------- portal southportal1 "southern portal" { adjectives "south", "southern", "s" between falchall1, falc1south is open } !---------------------------------------------------------------------------- portal northportal2 "northern portal" { adjectives "north", "northern", "n" between falchall2, falc2north } !---------------------------------------------------------------------------- portal southportal3 "southern portal" { adjectives "south", "southern", "s" between falchall3, falc3south is open misc 0 !0=Gapped/untried, 1=Gapped/tried, 2=Opened fully long_desc { if (self.misc < 2) { PrintMsgChapter3(5,self) } else { PrintMsgChapter3(5,portal,self) } } before { object DoPry { if (self.misc < 2) { if Contains(Player,longbeam) and (not xobject) { "(with the long metal beam)" xobject = longbeam } if (xobject = longbeam) { PrintMsgChapter3(8,1) : self.misc = 2 !Fully open now falchall3.s_to = { return southportal3.door_to } } else { PrintMsgChapter3(4,8,xobject) } return true !No default message } else { return false !Default message } } object DoOpen { if (self.misc < 2) { PrintMsgChapter3(4,9) : return true } else { return false !Default message } } } } !---------------------------------------------------------------------------- portal southportal4 "southern portal" { adjectives "south", "southern", "s" between falchall4, falc4south } !---------------------------------------------------------------------------- portal northportal5 "northern portal" { adjectives "north", "northern", "n" between falchall5, falc5north is open } !---------------------------------------------------------------------------- portal southportal5 "southern portal" { adjectives "south", "southern", "s" between 0, falc5south } !---------------------------------------------------------------------------- class wreckage_scenery { long_desc { PrintMsgChapter3(5,self) } before { object DoGet { PrintMsgChapter3(4,17,self) : return true } } } !---------------------------------------------------------------------------- wreckage_scenery outerplants "plants" { found_in falconeast nouns "plant", "plants" adjectives "black", "green", "swaying" article "the" is plural } !---------------------------------------------------------------------------- wreckage_scenery algae "algae" { found_in falconeast,falchall1,falchall2,falchall3,falchall4,falchall5, \ falc1north,falc1south,falc3south,falc4south,falc5north, \ falc5south nouns "algae", "algea" adjectives "green", "gray", "grey", "brown" article "the" } !---------------------------------------------------------------------------- scenery debris "floating debris" { found_in falc1north nouns "debris", "pieces" adjectives "small", "pieces", "floating" article "the" long_desc { if (smallrod is not moved) { PrintMsgChapter3(5,self,1) move smallrod to location smallrod is moved AssignPronoun(smallrod) } else { PrintMsgChapter3(5,self,2) } } before { object DoSearch { Perform(&DoLook, self) : return true } } } !---------------------------------------------------------------------------- wreckage_scenery thickvines "thick vines" { found_in falc1north, falc3south nouns "roots", "vines" adjectives "thick", "root-like", "petrifus", "gray", "grey", "brown" article "the" is plural } !---------------------------------------------------------------------------- scenery purplevines "thick purple vines" { found_in 0 !We'll move this around nouns "roots", "vines", "husk", "vine", "plant" adjectives "thick", "purple" article "the" is plural, living misc 0 !This will control the dishing out of clues. :) 10=It's Gone pronouns "they", "them", "their", "themselves" long_desc { PrintMsgChapter3(5,self) } before { object DoHit { if (xobject = longbeam) { PrintMsgChapter3(7,4) } elseif (xobject = smallrod) { PrintMsgChapter3(7,8) } else { PrintMsgChapter3(7,3) } return true } } } !---------------------------------------------------------------------------- scenery ashpiles "heaps of ash" { found_in falc1south nouns "ash", "heaps", "piles", "pile", "heap", "substance" adjectives "heaps", "ash", "piles", "heap", "pile", "sticky", "ash-like" misc 0 !Have we "looked" at it yet? article "the" is plural long_desc { PrintMsgChapter3(5,self) self.misc = 1 } before { object DoEat { PrintMsgChapter3(4,11) : return true } object DoGet { if (ashpiles.misc) { if Contains(player,smallrod) { "(assuming you mean to poke the small rod into it)" Perform(&DoPoke,object,smallrod) : return true } else { PrintMsgChapter3(4,5) } } else { PrintMsgChapter3(4,4) } return true } object DoDig { Perform(&DoPoke, object, xobject) : return true } object DoPoke { if (ashpiles.misc) { if (xobject = 0) and (smallrod in player) { xobject = smallrod "(assuming you mean to use the small rod)" } if (xobject = smallrod) { PrintMsgChapter3(6,1) smallrod.misc = true !Now it's covered in the sticky ash. } else { PrintMsgChapter3(6,2,xobject) } } else { PrintMsgChapter3(4,4) } return true } xobject DoFill { if (object in player) { Perform(&DoPoke,xobject,object) return true } else { return false !continue with default mesasge } } } } !---------------------------------------------------------------------------- scenery ridgedwalls "ridged walls" { found_in falc1south nouns "wall", "walls", "ridge", "ridges", "contours", "rings", \ "hole", "holes" adjectives "irregular", "curving", "ridged" article "the" is plural, container capacity 0 long_desc { PrintMsgChapter3(5,self) } before { object DoPoke { if (xobject = smallrod) { if (smallrod.misc) { PrintMsgChapter3(6,5) } else { PrintMsgChapter3(6,4) smallrod.misc = true !Now covered in the sticky ash. } return true } else { return false !Default message. } } xobject DoPutIn { if (object = smallrod) { "(assuming you mean to poke a ridge with the small rod)" Perform(&DoPoke,self,object) : return true } return false !default wording } } } !---------------------------------------------------------------------------- scenery purpleplant "purple plant" { found_in falc5north nouns "plant", "trunk", "trunks", "vine", "vines", "plumes" adjectives "billowy", "pale", "yellow", "gray", "grey", \ "dark", "purple", "multiple", "thin" article "the" pronouns "it", "it", "its", "itself" is living long_desc { if (purplevines.misc < 10) { PrintMsgChapter3(5,self) } else { PrintMsgChapter3(7,10) !It's already dead. } } before { object DoTalk,DoAsk,DoTell,DoHello,DoYell { if (purplevines.misc < 10) { PrintMsgChapter3(7,1) } else { PrintMsgChapter3(7,10) !It's already dead. } return true } object DoListen { if (purplevines.misc < 10) { PrintMsgChapter3(4,6,self) } else { PrintMsgChapter3(7,10) !It's already dead. } return true } object DoHit { if (airlock.misc >= 6) { if (purplevines.misc < 10) { if (xobject = longbeam) { PrintMsgChapter3(7,4) } elseif (xobject = smallrod) { PrintMsgChapter3(7,8) } else { PrintMsgChapter3(7,3) } } else { PrintMsgChapter3(7,10) !It's already dead. } return true } else { return false !Default message } } object DoGet { PrintMsgChapter3(4,17,self) : return true } xobject DoShow,DoGive { PrintMsgChapter3(4,18) : return true } } } !---------------------------------------------------------------------------- scenery rubble "rubble" { found_in falchall5 nouns "rubble", "girders", "wall", "ceiling", "junk" adjectives "support" long_desc { if (longbeam is not moved) { PrintMsgChapter3(5,self,1) move longbeam to location longbeam is moved AssignPronoun(longbeam) } else { PrintMsgChapter3(5,self,2) } } before { object DoSearch { Perform(&DoLook, self) : return true } } } !---------------------------------------------------------------------------- wreckage_scenery walkway "ledge" { found_in falcout1, falcout2, falcout3, falcout4 nouns "lip", "ledge", "ridge", "walkway" adjectives "narrow", "wide" article "the" } !---------------------------------------------------------------------------- wreckage_scenery falcboxes "boxes" { found_in falc5south nouns "box", "boxes" adjectives "large", "partially", "decayed", "unfamiliar" article "the" is plural, openable, not open before { object DoOpen,DoClose,DoPry { PrintMsgChapter3(4,10) : return true } } } !---------------------------------------------------------------------------- wreckage_scenery falcovals "oval lighting" { found_in falc5south nouns "light", "lights", "lighting", "ovals", "oval", "ceiling" adjectives "oval", "red", "amber" article "the" is plural } !---------------------------------------------------------------------------- wreckage_scenery wallwheel "large wheel" { found_in falc5south nouns "wheel" adjectives "large" article "the" misc 0 !Indicates we have not yet turned the wheel. before { object DoTurn { if (self.misc = 0) { PrintMsgChapter3(8,2) : PrintMsgChapter3(2,10) northportal2 is open : airlocksouth is open southportal4 is open : southportal5 is open self.misc = 1 } else { PrintMsgChapter3(8,3) } } object DoPush,DoPull { "(assuming you mean to turn it)" Perform(&DoTurn,self) return true } } } !---------------------------------------------------------------------------- wreckage_scenery mural "large mural" { found_in falc2north nouns "painting","mural","picture","tapestry","portrait" adjectives "large", "man's" article "the" misc 0 !Will change to 1 after we've actually seen it. } !---------------------------------------------------------------------------- wreckage_scenery falcdining "various furnishings" { found_in falc2north nouns "furnishings", "table", "chair", "chairs", "utensils", "rug", \ "materials", "segments" adjectives "strange", "odd", "floating", "large", "various", "scrap", \ "rug", "multiple" article "the" is plural } !---------------------------------------------------------------------------- class greenhand { inherits scenery nouns "hand", "fingers", "shape" parse_rank 1 !So it's actually is less priority than the portal itself. article "the" } !---------------------------------------------------------------------------- greenhand greenhand1 "northern green hand" { found_in airlock adjectives "north", "northern", "n", "glowing", "green" before { !Basically, we just pass through to the portal's routines object { Perform(VerbRoutine,airlocknorth,xobject) : return true } xobject { Perform(VerbRoutine,object,airlocknorth) : return true } } } !---------------------------------------------------------------------------- greenhand greenhand2 "southern green hand" { found_in airlock adjectives "south", "southern", "s", "glowing", "green" before { !Basically, we just pass through to the portal's routines object { Perform(VerbRoutine,airlocksouth,xobject) : return true } xobject { Perform(VerbRoutine,object,airlocksouth) : return true } } } !---------------------------------------------------------------------------- wreckage_scenery falcchairs "metal chairs" { found_in dryroom nouns "chair", "chairs", "seat", "seats" adjectives "metal" article "the" is plural before { object DoSit { PrintMsgChapter3(4,16) : return true } } } !---------------------------------------------------------------------------- wreckage_scenery viewscreen "large silver rectangle" { found_in dryroom nouns "rectangle", "screen" adjectives "silver", "large", "big" article "the" } !---------------------------------------------------------------------------- wreckage_scenery falcpanels "control panels" { found_in dryroom nouns "panel", "panels", "alcove", "alcoves", "niche", "niches" adjectives "control" article "the" is plural } !---------------------------------------------------------------------------- wreckage_scenery uprightconsole "upright console" { found_in dryroom nouns "console" adjectives "upright" article "the" } !---------------------------------------------------------------------------- scenery yellowbutton { found_in 0 !We move it to dryroom once we have actually seen it. nouns "control", "button" article "the" adjectives "flat", "square", "yellow" is static, hidden, not known misc 0 !0=Not pushed, 1=Pushed without translation, 2=With Translation long_desc { PrintMsgChapter2(5,self) } before { object DoPush,DoPoke,DoTouch { if (wristwatch.misc = 3) { if (self.misc < 2) { self.misc = 2 !Yep, pushed the button in "translate" mode move thyras to airlock !The Fight Is On!! PlaySong(player.misc #9) !PlaySong will check allow_music } PrintMsgChapter3(10,2) } else { if (self.misc < 1) { self.misc = 1 !Pushed the button without translation } PrintMsgChapter3(10,1) : CheckWatchContext(3) } return true } } } !---------------------------------------------------------------------------- wreckage_scenery particledrive "large device" { found_in falc4south nouns "device", "pipes", "pipe", "tube", "tubes", "machine", "angles", \ "tank", "tanks" adjectives "jutting", "wide", "large" article "the" } !**************************************************************************** !****(MISC CHAPTER1-ONLY ROUTINES)******************************************* !**************************************************************************** !---------------------------------------------------------------------------- !It doesn't make sense to refer to a "north portal" when you're in the room !it connects to, because now it's to your south. So, on EACH_TURN we have !the ability to properly set these things. ! routine SetPortal(obj,dir) { if (dir=n_obj) { obj.name = "northern portal" obj.adjectives #1 = "north" obj.adjectives #2 = "northern" obj.adjectives #3 = "n" } elseif (dir=s_obj) { obj.name = "southern portal" obj.adjectives #1 = "south" obj.adjectives #2 = "southern" obj.adjectives #3 = "s" } } !---------------------------------------------------------------------------- routine PrintMsgChapter3(num,val1,val2) { !************* Messages when walking/swimming from place to place. if (num=0) { if (val1=1) { "You step carefully in your bulky boots, through the plants and into the gaping entrance of the corridor ahead." } elseif (val1=2) { print "Algae trails your steps as you walk slowly through the water, to the "; val2.name; "." } elseif (val1=3) { "You step carefully over the edge of the opening, exiting the tunnel to the east." } elseif (val1=4) { print "You step carefully to the "; val2.name; ", staying close against the northern wall." } } !************* Miscellaneous "can't go that way" messages. if (num=1) { if (val1=1) { "Your attempt to fit through the opening might seem amusing in another setting, but in this one, it does nothing but frustrate you. You revise your former estimation of the portal's gap, realizing that you probably\I could \i have fit through easily if not for the added bulk that serves to keep you alive." if (southportal3.misc = 0) { southportal3.misc = 1 !Flag that we tried at least one time. } } if (val1=2) { print "You can't go that way while "; Art(val2); " is closed." } if (val1=3) { print "It stands to reason that the portal can be opened, but you have not yet determined the manner in which it works." } if (val1=4) { !Can go that way with vines blocking us. "The purple vines snake around you in that direction, preventing further movement. The same droning wail fills the water, and Father's wristwatch continues to offer the same translation." } if (val1=5) { "You are left without the desire to further explore the wreckage." } } !************* Static/Radio messages go here. if (num=2) { if (val1=1) { indent "A short burst of static buzzes your helmet, startling you even though you were expecting the contact. A voice follows. \"Diver One, this is Relay. All well down there?\"" indent "\"Affirmative, Relay,\" you answer back, triggering a live send by touching the outer plate behind your helmet's frontal shield. \"I'm not sure what I'm looking at, though.\" You give a brief description." } if (val1=2) { indent "The voice of your technology chief -- \"Relay\" for purposes of communication -- buzzes in again. \"Sir, I would be far happier if you would let someone else take this mission. The equipment is good, but still, it's largely untested. If it fails, you might just be able to make it topside... maybe. I'd rather not take that chance. This artifact will still be here, Sir.\"" indent "You dismiss his concern with a short laugh. \"I've been moments away from large-scale destruction in my life, Relay. I lived to tell that tale, and I'll live to tell it again. I'll be fine. Besides, this is the first chance we've had for a real investigation, and I'm not going to give it up. Sorry, Relay, but I'll take my chances down here.\"" indent "\"That's what has me worried,\" Relay responds, adding his own short laugh." } if (val1=3) { indent "Relay interrupts your inspection of the corridor. \"About what you said, sir -- about surviving disaster. I meant to share this with you earlier, but you've been distracted with other matters. We had some luck in decoding that telemetry from your drop-shuttle -- the one you took to Iuros a ten-cycle ago. We might have had it sooner, but we didn't even have the tools to recognize it\I as \itelemetry back then. We can explain what happened, but it's more confusing than no answer at all. It seems that somebody within Site Seven intentionally disabled the blast-shield. The storm ran rampant then, of course, but that's not the odd part. Some kind of weapon -- a missile of some sort, as best we can figure it -- was launched from some distance away, and Site Seven was its target. The blast-shield would have taken the brunt of it, had it been on.\"" indent "He stops for a moment, offering several false-start stammers, then continues. \"Too many coincidences, sir. The site was already evacuated. The blast-shield was down. Your brother clearly knew what was coming, in trying to warn you away. Sir, excuse me for theorizing while other matters are at hand, but I believe it was a test of some sort. The team and I would like to think it was an experiment in excavation, because... well, we're just too damned scared to consider anything else.\"" } if (val1=10) { indent "Relay cuts in once again. \"Sir, we just took some strange signals from below. Audio, primarily. I'm also being told that we have an incoming craft. At a guess, Incenders with poor timing. I don't mean to rush you, sir, but... yes, I mean to rush you, if you can complete your investigation soon.\"" } if (val1=11) { indent "\"Sir...\" -- Relay, again -- \"We're going to be out of contact for a while. Don't ask me why, but the Incenders are picking a fight, and we're going to have to cruise to shore temporarily. I don't know what this means, but it's certainly a violation of the Accord. Good luck, Sir. We'll be back to retrieve you as quickly as we can, and I hope you've finished down there by then.\"" } if (val1=12) { if (val2=divesuit) { "\"Forget what I said before,\" Relay answers. \"I have full confidence in the reliability of your diving equipment.\"" } elseif (val2=thelake) { "\"You're down in one of the moderate spots,\" Relay explains. \"Not overly deep, but none too shallow. Be careful.\"" } elseif (val2=wreckage) { "\"Two things were working against us,\" Relay comments. \"First, we never had the ability to detect the signals this facility was sending, and second, we had no means of exploring to this depth to stumble upon it. We've been very fortunate to adapt Incender technology to these purposes.\"" } } } !************* Items Descriptions for Chapter 3 if (num=3) { if (val1=divesuit) { "The entire suit seems unduly bulky. The helmet permits adequate vision, including the peripheral, but it too is oversized. Topside, weight would compound the problem. A large canister is affixed to the back, providing a steady air flow." } if (val1=smallrod) { if (Chapter=3) and (Section = 2) { "It seems to be a short length of age-darkened metal, roughly cylindrical, and "; if (val1.misc) { "partially covered in dark, sticky pseudo-ash." } else { "otherwise unimpressive." } } else { "The most recent of your mementos, the small rod is a reliever of stress. You grip it now, flexing your hand around it. After ten cycles of such exercises, the short metal tube is worn and smooth." } } if (val1=longbeam) { "Topside, it would be quite unwieldy. The beam is as long as you are tall, narrow across one edge, wide across the other. It seems well preserved, as if constructed of a type of metal intended to withstand the punishment of countless cycles." } } !************* Miscellaneous "can't do that" messages. if (num=4) { if (val1=1) { "No, Relay warned you about removing any part of the suit while underwater. Besides, you have no intention of holding your breath for the remainder of the mission." } if (val1=2) { "Even if you devised some method to close the ancient portal, you can think of no good reason to do it." } if (val1=3) { "You step for a moment into the alcove, taking a firm hold on what protrusions seem suited for such a task, and you tug forward on the portal. With no luck, you push with as much traction as your diving boots allow. Still facing a closed portal, you tug sideways left and right, up, down. It seems solid, and you deem it unlikely that any further effort will yield a more favorable result." } if (val1=4) { "It seems a poor decision to poke around in the strange heaps of ash before you have even inspected them." } if (val1=5) { "No, as sticky as it is, it's likely to get\I you \iif you try poking around in it with only your gloved hands." } if (val1=6) { if (divesuit is worn) { "Your suit's external audio receptors produce only a vague ambient noise when you listen to "; print Art(val2); "." } else { "All sound seems muffled and incoherent now." } } if (val1=7) { "The portal offers no points of leverage. If by chance it was already partially open, maybe something like that would work. However, it doesn't seem possible even to open it a little." } if (val1=8) { "That might work, but you're going to need something "; if (val2) { if (val2=smallrod) { print "other than "; art(smallrod); " if you intend "; } else { "more suited to the task if you intend "; } } else { "with more leverage than just your hands "; } "to pry it open." } if (val1=9) { "If you intend to fit through the narrow gap between the portal and the wall, you may need to widen the opening." } if (val1=10) { "The boxes offer no defining contours, no obvious latches, knobs, or fingerholds. Perhaps they are neither box nor cabinet, and were meant to serve some other purpose you will likely never begin to fathom." } if (val1=11) { "That is a supremely bad idea. "; if (divesuit is worn) { "Besides, the diving suit makes it impossible to get the stuff anywhere near your mouth." } else { print "" !done with the line } } if (val1=12) { if (val2=1) { print "You consider abandoning "; the(smallrod); ", but decide against the idea. It might serve a purpose; plus, you rather enjoy carrying it." } else { "You aren't willing to risk losing such a useful stress reliever." } } if (val1=13) { "Relay is no longer in a position to answer." } if (val1=14) { "At the present time, you have no need for Relay's assistance." } if (val1=15) { "The radio will only work when your suit is on." } if (val1=16) { "Anything you might do while seated is equally possible while standing. Besides, it would be awkward and uncomfortable -- painful, maybe -- to sit down on the jagged and jutting edges of these now-skeletal chairs." } if (val1=17) { !Trying to take a piece of scenery away. print "Later, with a team of aptly-equipped researchers, it might be possible to take "; art(val2); " away for further study. The purpose of this mission is to observe and learn; it doesn't involve salvage operations." } if (val1=18) { !Trying to interact with the plant. "The plant does nothing to indicate comprehension." } } !************* Scenery descriptions for Chapter 3 if (num=5) { if (val1=wreckage) { "Best estimates agree that it must be some kind of facility, but its age is a matter of much debate. Presumably abandoned and in questionable condition, this is being called -- in closed circles, of course -- an incredible discovery." } if (val1=thelake) { "Your world is a mesh of waterways and land masses. Lake Gorzhen is one of the more distinctive bodies of water, being shallow in many places, quite deep in others. The lake bed will stretch flat for long distances, only to drop off steeply in spots. East of Lake Gorzhen is Gorzhen Peak. Although reflecting upon it does you no good in the present situation, you once took a hike up the mountain with Uncle Jerrus and your brother." } if (val1=outerplants) { "They are green, black, thick, and fuzzy." } if (val1=algae) { "The algae is thick and dark in spots, sparse and light in others. It cover spots on the walls and ceiling, and has claimed most of the floor." } if (val1=portal) { "The portal is "; if (val2 is open) { "open." } else { "closed." } } if (val1=debris) { if (val2=1) { "Very little of it is identifiable, and the few pieces that are comprise little more than flecks of scrap. However, you do notice a small metal rod drifting end over end after the disturbance caused by your entry." } else { "The debris is comprised of useless flecks of scrap. Nothing else catches your eye." } } if (val1=thickvines) { "The vines loop in and around the walls and ceiling, making it difficult to know where the room ends and the embankment along the lake floor begins." } if (val1=ashpiles) { "It isn't really ash, you determine. The substance seems powdery and fine, like the residue of burnt wood, but it can't be that, especially not underwater. A tentative poke with one gloved finger reveals that this \"ash\" is very sticky; some of the dark substance clings to the glove, requiring a brief hand-waving effort just to dislodge it." } if (val1=ridgedwalls) { "Closer inspection of the walls shows that minute quantities of the same dark ash-like substance trickle down from tiny holes in the ridges, gradually adding to the various piles bordering the room." } if (val1=purpleplant) { if (airlock.misc >= 6) { "Definitely sentient." } else { "The plant is unlike anything you have seen before -- not a big surprise, though, since deepwater exploration has only become possible with the recent advent of certain modified Incender technologies. Still, there is a quality to the thing that defies rationality. After all, it couldn't possibly be sentient. Most likely, the illusion is caused by the motions of the water." } } if (val1=rubble) { "Much of it looks like large support girders and parts of the wall and ceiling. "; if (val2=1) { "You notice that one long beam rests apart from the bulk of the rubble." } else { "What remains seems fused and solid. You won't be able to take anything else from the rubble." } } if (val1=southportal3) { !We only call this routine when the portal is partially closed. "The portal is partially ajar." } if (val1=falcboxes) { "An inspection suggests that these aren't boxes, but rather, some kind of bulky consoles or cabinets." } if (val1=falcovals) { "You find it amazing that the overhead lighting still works at all, having a recently-acquired general knowledge of such things." } if (val1=wallwheel) { "The wheel is a thick torus covered in hardened algae and set partway up the eastern wall. Wide spokes meet in the middle, where the thing attaches to the wall." } if (val1=mural) { "By contemporary standards, the man depicted would not be handsome, but a certain rugged, strong-jawed quality gives the impression of a man who was a capable leader. The portrait shows the shoulders and collar of a dark purple suit. A gray cap sits atop his head; thick curls of blond hair peek from below it." mural.misc = 1 !Flag that we've seen the mural now. } if (val1=falcdining) { "Nothing about the displaced furnishings generates as much curiosity in you as the large mural on the western wall does." } if (val1=walkway) { "The jutting ridge is the only thing between you and a plunge into depths unknown." } if (val1=airlocknorth,airlocksouth) { if (self is open) { "The portal is open." } else { "The portal is closed. "; if (location = airlock) { "A glowing green shape, like a hand with fingers spread wide, appears in the center of the portal." } else { print "" !Nothing else to say } } } if (val1=falcpanels) { "Although superficially similar to Incender control panels commonly found aboard their drop-shuttles, these seem far more complex. The thought of an alien race more advanced than the Sheeears is enough to send a chill wiggling up your spine." } if (val1=falcchairs) { "The chairs are little more than frames now, since most of the padding has decayed over the ages." } if (val1=viewscreen) { "Cracks disrupt the surface of the large rectangle, but it appears otherwise intact. "; if (yellowbutton.misc = 0) { "It seems to serve no purpose. Still, as art or decoration, it's an especially odd example." } else { "It seems capable of displaying recorded images. Something like this could have numerous uses, ranging from purely archival to frivolously entertaining." } } if (val1=uprightconsole) { "The surface is flat, with touch-sensitive areas much like the controls of an Incender dormapod. Most of the console is dim and dormant, but a single square button blinks in yellow." if (yellowbutton is not known) { yellowbutton.found_in = location !Put 'er here. :) yellowbutton is known !And now we've actually seen it. } } if (val1=particledrive) { "Its purpose is completely foreign to you, and you decide against wasting effort on speculation." } if (val1=purplevines) { "Thick purple vines jut from the floor here, retracting when you move, keeping pace." } } !************* Messages related to digging/poking the ash pile. if (num=6) { if (val1=1) { print "You poke "; Art(smallrod); " into "; if (smallrod.misc) { "another of the ash piles, but you detect nothing solid there, either. It seems that nothing is to be found inside the heaps of ash except the ash itself." } else { "one of the ash piles, but you feel nothing solid within. You withdraw the short length of metal, finding a portion of it now covered in the sticky ash-like substance." } } if (val1=2) { !Can't "poke" or "dig" with that. if (val2) { print "Prudence forces a reconsideration, and you decide against using "; art(val2); " to "; word[1]; " there." } else { "No, that would get the pseudo-ash all over your gloves. If you intend to poke around in it, try using something." } } if (val1=3) { !In case we missed the small rod earlier indent : "Something in the debris glints in your helmet light." } if (val1=4) { print "Ash from the ridges now clings to the end of the rod." } if (val1=5) { print "Sticky ash already clinks to the end of the rod." } } !************* Additional messages related to the purple plant if (num=7) { if (val1=1) { "You know, it appeared for a moment as if "; print art(purpleplant); " was listening. No, just another trick of perception." } if (val1=2) { indent "Thick purple vines rise from the floor, swaying in your direction. A deep, low, guttural sound vibrates the water, and Father's wristwatch feels warm against your wrist. Its provides a muffled translation. \"Kllll... mmmm... Kiiil... eeee.\"" } if (val1=3) { if (purplevines.misc = 0) { "Assuming it is indeed sentient, why would it wish harm upon itself? Assuming that it does, you can think of no solution short of hacking it apart (that would take a long while, without a weapon suited for the task), or poisoning it." purplevines.misc = 1 } elseif (purplevines.misc = 1) { "You are still uncertain of how to go about it, but the translation definitely sounds like \"kill me.\" Poisoning it seems like the best solution to its request." purplevines.misc = 2 } elseif (purplevines.misc = 2) { "The question, then, is \"what might be poisonous to it?\"" purplevines.misc = 3 } elseif (purplevines.misc = 3) { "You ponder the question; did you come across anything in this sunken wreck that might be a potentially dangerous substance?" } } if (val1=4) { "You whack at the "; if (location = falc5north) { "plant "; } else { "vines "; } print "with "; the(longbeam); ", but it does very little good." } if (val1=5) { indent "The vines seem drawn to the ash-covered rod you carry. They rip through the floor in a path toward you." } if (val1=6) { indent "The vines spread like stiff fingers here, pacing the portrait on the wall. A louder, incomprehensible wail follows, lacking any translation." } if (val1=7) { indent "The plumes and vines extending from the plant are waving more frantically now. From the floor, more thick purple vines rise, showing the true extent of this thing's reach." } if (val1=8) { if (smallrod.misc) { "You scratch one vine with the ash-covered end. The plant emits a loud groan, and a small portion of the purple husk wrinkles to black. That seemed to work, but it would take thousands of similar attacks to do much real harm. The ash is now gone from the end of the rod." smallrod.misc = false !No more ash is on the rod now. } else { print capital The(smallrod); " cannot possibly damage the plant. The most you can hope for on that front is to irritate it, and you have small chance of that." } } if (val1=9) { indent "The vines follow you into the ridged room, twirling as the heaps of ash come into \"sight\". At once, two dozen vines arc high into the air, plunging into the piles of ash. A long sigh-like groan fills the water, and father's wristwatch translates with a muffled \"thnnkkk y....\" After several moments of this, the vines are darker, blacker, cracking. Veins of black flow upward along each vine, and they crumple. What remains is withdrawn through the floor. The vines are gone." indent "A momentary pulse in the air sends a quick shock through your diving suit. The plant really disturbed the heaps of ash, and small clouds of it drift throughout the room before settling to the floor. Father's wristwatch feels hot against your wrist for a moment, but then cold -- unusually cold." indent "You have a sudden urge to leave this place before anything else happens." wristwatch.misc #2 = false !No longer accept mode commands. wristwatch.misc = 0 !make sure it's in "normal" mode again. } if (val1=10) { !Note that this happens in multiple verbs... "The plant appears to be dead." } } !************* Messages related prying portals and turning wheels. if (num=8) { if (val1=1) { print "More than adequate leverage is provided by "; the(longbeam); ". By placing one end through the gap, assuming a firm stance and prying, you manage to move the portal inward to a point that removes all question of blocked entry." } if (val1=2) { indent "It requires extreme effort -- made more difficult in the cumbersome diving suit -- but some of the crusted algae breaks away from the center spokes, allowing two full turns of the large wheel. A momentary vibration reaches up through the wheel, and for just a moment, you catch the vague sound of distant and muted claxons. The amber lights glow brightly, but only for an instant. The distant sirens, if indeed the sound was ever really present, also subsides. The only difference you notice is that the portal to the north now stands open -- unnecessary, though, since the way is still completely blocked by rubble." } if (val1=3) { "No amount of torque is going to budge it any further. If anything is going to happen, it already has." } if (val1=4) { indent "The portal to the north now stands open." } if (val1=5) { indent "Both portals -- north and south -- are now open." } } !************* Messages related to the workings of the airlock if (num=9) { if (val1=0) { "Garnering a rough idea of the function served by this room, you find it unwise to press the handprint on the southern portal while you aren't wearing the diving suit." } if (val1=1) { indent if (prev_location = dryroom) { "The northern "; } else { "The southern "; } "portal closes like an iris behind you. A glowing green shape appears in the center of both portals, looking very much like a hand with outspread fingers." } if (val1=2) { print capital Art(val2); " is already open. The green handprint is no longer showing." } if (val1=3) { print "You touch the green handprint on "; art(val2); ". "; "it irises open almost instantly." } if (val1=4) { print "You press your hand against the green design on "; print art(val2); ". "; } if (val1=5) { "As the contact is made, the opposite portal irises shut. "; } if (val1=6) { "Water begins to drain into the floor vents, while air is pumped in from the ceiling. After only a few moments, you are standing in a relatively dry, seemingly sterile room." } if (val1=7) { "Water begins to pour into the room from the wall vents, and the rush of it momentarily undermines your balance. Very quickly, the entire room is completely underwater once more." } if (val1=8) { "The diving suit is much too bulky to permit free movement without the benefit of a watery environment. You'll have to remove it if you intend to proceed in that direction." } if (val1=9) { "The diving suit is bulky, heavy gear. If you intend to proceed in that direction, you can't carry it with you." } } !************* Pressing the yellow button.... if (num=10) { if (val1=1) { !Not translated. indent "A moment after you press the yellow button, the silver rectangle in the west wall begins to glow, and a large image appears. "; if (mural.misc) { !We've seen the mural already "The same man pictured in the mural takes shape in the image, although now he seems cycles older, considerably leaner, and not at all the self-assured person depicted in the portrait. "; } else { "A lean, older man takes shape in the image. "; } "He wears a dark purple one-piece suit, but it is torn in several places. His blond hair is partly gray, and it falls down about his shoulders. He is speaking, but the words are gibberish. Slightly reminiscent of Incender speech but much more clipped, you understand none of it. His image is replaced by a series of scenes, but the context is difficult to place. He returns for a moment, offering additional incomprehensible narrative, and this is followed by more images. After several moments more of this, the rectangle dims and the presentation is over." } if (val1=2) { !Yes, translated. indent "The image of a lean, older man takes shape in the silver rectangle. He is suited in a one-piece outfit of dark purple, and his blond-gray hair falls about his shoulders. As he speaks in gibberish, Father's wristwatch provides a translation." indent "\"My name is Douglas C. Chaniman, Captain of the Falcon. I leave this record in the hopes that some day soon it will be recovered. I alone have remained aboard, while my crew and the hundreds of families I have shepherded to this place have escaped in every available life-pod. It's a time-honored tradition that the Captain should go down with his ship, and while I do not regret it, I can't help but fear that I won't survive much longer. My hope is that the others have arrived safely, although speculation is wasted effort." indent "\"This world is perfect. The cycles of its\I day \iare so similar to what we remember, that adjusting (again with the speculation) will be easy for the others. They will rebuild, I haven't a doubt, though it may take some time. I imagine they will dub this Zero Year, marking a brand new calendar, a brand new existence. This was, after all, our mission." indent "\"I have only one regret. The\I bio-genetic \iteam aboard the Phoenix had a different vision for the reshaping of this world, and their ambition has cost half our number a chance at paradise. Left with no other choice, I ordered my crew to force her back through the\I wormhole.\i The other end had already shifted. We didn't intend for that. Readings registered an exit many\I light-years \iaway, and the tunnel was swiftly deteriorating. What we detected was one nearby world, but a\I hellish \iplace of unfathomable temperatures -- those aboard the Pheonix are more doomed than I.\"" indent "The monologue shifts to a series of images, showing a tunnel in space, this world and its moon (you recognize these things from your Iurosian expedition a ten-cycle earlier), and another world of blue and green that seems too much like your image of God. Pictures of other people follow, moving through perfectly restored hallways, talking... but the rest of it begins to grow hazy with static. It clears for only a moment, and the man's image is more haggard and pale than before." indent "\"Just as we had agents aboard the Phoenix, I believe they did us the same questionable courtesy. Disabling my ship apparently wasn't enough for Captain Reece. I believe I was poisoned by one of my crew -- one of their\I genetic \icocktails, I would think. I suspect Daroan, but I can't be sure of it. Touche, Captain.\"" indent "The remainder of the presentation ends in static." } } !************* Messages regarding Thyras. if (num=11) { if (val1=0) { "Thyras stands here, not nearly as surprised to see you as you are in seeing him." } if (val1=1) { "Your brother is forty-one now, and he has maintained an athletic figure doing whatever it is that he does on Iuros. His diving suit, of a model obviously superior to the prototype that still rests in a heap on the floor, is draped over his shoulder. He glares at you." } if (val1=2) { if (val2=1) { !Doing something to turn your back on him. "It was a mistake to turn your back on Thyras. "; } elseif (val2=2) { "Thyras seems to have no interest in anything you say. "; } elseif (val2=3) { "Thyras takes advantage of your momentary inspection. "; } if (airlock.misc = 1) { "He lands a blow to your side, and it's enough to drop you to one knee. \"You aren't leaving here yet, little brother,\" he says with a sneer. \"My men need more time to finish removing the particle drive. You think you have the all answers, don't you? Little brother, you can't begin to imagine what's going on here. Well, you've seen this -- you probably have some idea.\"" airlock.misc = 2 } else { !This means we tried something without hitting him first. "He lands another blow, nearly taking the breath from you. \"At least fight back,\" he mocks you." } } if (val1=3) { indent if (airlock.misc = 2) { "You rush Thyras in an attack of your own, landing a blow to the side of his face. Your brother staggers backward, rubbing his jaw. \"All they needed was a strong leader,\" he tells you. \"They didn't find their way back here after all these thousands of cycles seeking revenge. Can you believe they actually believe in unity? Their society was founded on the concept of combining two parts to make a whole. They only wanted to exist as neighbors, but I'm here to tell you, little brother, revenge is certainly due them.\" He catches you in a body-hug that forces you to the floor. Rising, he kicks you hard across the hip, then the head, and you just manage to catch his foot and push him away, taking the moment to rise to your feet." airlock.misc = 3 } elseif (airlock.misc = 3) { "You take a fighter's stance now, trading punches with your brother. You draw blood from his lip, and he wipes it away with the back of his hand. \"This is long overdue, Gavenn.\" He lands a solid punch to your abdomen, then sends glitter dancing through your head with a hard hit to it. \"\IEeeloraaa \ibelieved I would be the catalyst for a new dawn among her people. She gave her life to her God as a means of ensuring that prophecy. I didn't understand why she felt so strongly at the time, but I trusted her, even in that.\"" airlock.misc = 4 } elseif (airlock.misc = 4) { "Your brother is beginning to tire, as are you, from the brutal confrontation. Thyras steps away, you catch air and stumble, and he drops you with a quick elbow to your upper shoulder. \"You might consider me a traitor, little brother, but our ancestors fit the term far better than I. The\I Sheeears \ihave defensive weapons, and I will ensure that these devices are improved and at the ready, should the need arise to do more than defend. One day, little brother, you will find that it isn't you who holds all the power.\"" airlock.misc = 5 } elseif (airlock.misc = 5) { "Again, you take the offensive, knocking your brother back. He retaliates with an opportune strike to your midsection, and it's enough to double you over. As you gasp for breath, your glare up at him. \"No,\" you reply. \"You will not destroy everything we have. I won't let you,\I big brother.\i\"" indent "Thyras laughs, kicking you hard, sending you sprawling to the white floor. \"What will you do? The only technology you have comes from our scraps. Short of stealing it from me -- and I don't think you have it in you -- what will you do?\" He suits up, presses the green hand on the southern portal, and waits. You scramble to recover the discarded heap of your own diving suit, managing just to pull it on and seal it before the water is all about you. Thyras has vanished through the southern portal, leaving you with numerous aches, alone." Acquire(player, divesuit) : divesuit is worn particledrive.found_in #1 = 0 !The device is now gone. airlocksouth is open : airlock is underwater airlock.misc = 6 : remove thyras move wristwatch to player : wristwatch is worn !Just in case activate(TheVines) !Now, we have one final obstacle. } } } !************* End of this chapter. if (num=99) { indent "The welcomed sound of static returns to your helmet. This is followed by the even more welcomed sound of Relay's voice. \"Sir, we're just about in position. The Incender craft forced us away, but we hid the boat in a tributary south of here. Are you okay down there?\"" indent "\"Affirmative, Relay,\" is your reply. \"Did I ever tell you about the time your grandmother helped me win a drinking contest? You Sabrunens have a knack for being in the right place just when you're needed.\"" indent "\"Happy to help, sir. Ready to hoist topside?\"" indent "\"More than ready, Relay. Get me out of here. We have a good deal to discuss now, and in the coming cycles. War is coming, and I'll be damned if we'll be caught unprepared when it arrives.\"" ContinueChapter(4,1) !Print the "[Continue]" message and go forward. } }