! ---------------------------------------------------------------------------- ! ! ! Across The Stars ! Programmer: Dark Star ! Date Started: 11-April-2006 ! Date Complete: 11-February-2010 ! Release Date: 30-September-2007 ! Constant Story "ACROSS THE STARS"; Constant Headline "^Inform Interactive Fiction - A Science Fiction Adventure ^Copyright (c) 2007 - 2010 by Infodarkness Productions^"; Constant AMUSING_PROVIDED; Constant DEATH_MENTION_UNDO; Constant MAX_SCORE=150; Constant MAX_CARRIED=50; Constant PMAX_WEIGHT=8; Constant GTOTALROOMS=51; Constant GTOTALOBJS=52; Constant GPLOPCODE=53; Constant GOPCPH=6; Constant GOPCSPH=4; Constant GOPCODE=8; Constant GTWORDS=572; Constant DIALECT_US; Constant sDream=0; ! 0 = Dream Bridge / 1 = West Tunnel / 2 = Desert Crash Array scrn_reply --> 5; Array robo_reply --> 10; Array maiden_reply --> 10; Global piraterange=1875; ! datacard's range Global piratetheta=345; ! datacard's theta Global piratephi=107; ! datacard's phi Global pattack=0; ! used as the pirates board the ship - daemon variable Global start=0; ! used to get the player character off the Dream Bridge - daemon variable Global thinkpos=12; ! player's think position, used in MyThinkSub Global thinksav=0; ! saves the player's think position Global pland=0; ! used to wait for the pirates to land and clean out the ship - daemon variable Global atomdet=0; ! used to detonate the atomaton detontar - daemon variable Global icoffee=0; ! used in the large mug if the player drinks too much Global ialsmoke=0; ! shuts down the smoke in the cargo hold Global pblook=0; ! used to control the articles in the Playbeing Global us_count=0; ! used to kill the player if they stay under the falling boulder - daemon variable Global sandworm_attack=0; ! used to kill the player if they stay in the Spitter's Lair with the Spitter in it minus burning torch - daemon variable Global ancientrune=0; ! used to select the lizard, man, woman or sandworm for the holy symbol Global piratecount=0; ! used to control the pirate attack if the player doesn't take the message to the bridge - daemon variable Global stonecount=0; ! used in the solace cube puzzle, keeps the location for the obsidan necklace Global rubycount=0; ! used in the solace cube puzzle, keeps the location for the ruby necklace Global pearlcount=0; ! used in the solace cube puzzle, keeps the location for the pearl necklace Global diamondcount=0; ! used in the solace cube puzzle, keeps the location for the diamond necklace Global pedestalpos=0; ! used in the solace cube puzzle, controls the pedestal discription Global irobowash=-1; ! used for random comments for the robo-wash Global imaiden=-1; ! used for random replys for Ral & Kor Global iscreen=-1; ! used for random Sat-Net displays Global iclk1=0; ! first digit of clock Global iclk2=7; ! second digit of clock Global iclk3=1; ! third digit of clock Global iclk4=6; ! fourth digit of clock Global icmove=0; ! controls how many turns between each minute - test set to 6 Global icupdis=1; ! prints out coffee, tea, or water for the large mug Global iproxdis=1; ! prints out coffee, tea, or water if spilt on the prox-tar Global ifruit=0; ! brings out the old man in the mountian base Global iprtpl=0; ! control the printout for the pirates towing the ship Global plimit=133; ! sets the timer for when the ship lands Global itakegg=0; ! used for taking the spitter's egg multiple times Global sattack=0; ! used for the spitter attacking if not burned Global spmove=1; ! used to move the space pirates around after the flow regulator is shut off Global ilastrun=0; ! holds the first relative state for the ship tipping. Global ioldrun=0; ! holds the second relative state. The ship can't tip in the same direction more than twice. Replace DrawStatusLine; Replace WaitSub; Replace BurnSub; Replace FullScoreSub; Include "Parser"; Include "VerbLib"; Release 4; ! ---------------------------------------------------------------------------- ! ! COMPASS DIRECTIONS ! CompassDirection aft_obj "aft" Compass with door_dir s_to, name 'a//' 'aft'; CompassDirection fore_obj "forward" Compass with door_dir n_to, name 'f//' 'fore' 'forward'; CompassDirection port_obj "port" Compass with door_dir w_to, name 'p//' 'port'; CompassDirection starboard_obj "starboard" Compass with door_dir e_to, name 'sb//' 'starboard'; ! ---------------------------------------------------------------------------- ! ! ABBREVIATIONS ! Abbreviate ", "; Abbreviate " "; Abbreviate " a "; Abbreviate " co"; Abbreviate " do"; Abbreviate " in"; Abbreviate " is"; Abbreviate " ha"; Abbreviate " li"; Abbreviate " no"; Abbreviate " of"; Abbreviate " on"; Abbreviate " re"; Abbreviate " st"; Abbreviate " to"; Abbreviate " wi"; Abbreviate "an "; Abbreviate "as "; Abbreviate "ce "; Abbreviate "ed "; Abbreviate "er "; Abbreviate "in "; Abbreviate "is "; Abbreviate "it "; Abbreviate "of "; Abbreviate "on "; Abbreviate "re "; Abbreviate "to "; Abbreviate "ve "; Abbreviate "and"; Abbreviate "ave"; Abbreviate "nd "; Abbreviate " an"; Abbreviate "e's"; Abbreviate "ent"; Abbreviate "ere"; Abbreviate "e c"; Abbreviate "e p"; Abbreviate "e t"; Abbreviate "for"; Abbreviate "her"; Abbreviate "his"; Abbreviate "ing"; Abbreviate "ng "; Abbreviate "ion"; Abbreviate "n t"; Abbreviate "o t"; Abbreviate "ome"; Abbreviate "out"; Abbreviate "s t"; Abbreviate "Xulthe'en"; Abbreviate "the"; Abbreviate "The"; Abbreviate "hat"; Abbreviate " th"; Abbreviate "he "; Abbreviate "at "; Abbreviate "t t"; Abbreviate "ter"; Abbreviate "thi"; Abbreviate "you"; Abbreviate "You"; Abbreviate "our"; Abbreviate " look "; ! ---------------------------------------------------------------------------- ! ! Classes ! ! 08/14/06 Class Shale(10) with name 'loose' 'shale' 'rubble' 'piece' 'pieces' 'of', short_name "piece of shale", plural "pieces of shale", description [; if (player in air_lock || player in sm_airlock) { if (e_beacon.eb_notseen) print "Through the swirling black smoke, y"; else print "Y"; } else { print "Y"; } "ou see nothing special about the piece of shale."; ], after [; Insert: if (second == milpack) { move self to milpack; "You put ", (the) self, " into the field pack."; } if (second == deadp_obj) { move self to unholy_shrine; "You drop ", (the) self, " into the pit."; } move self to player; if (second == uniform) "Your pocket is too small to hold that."; if (second == controlpanel or al_circuit) "That's too big to fit in there."; L__M(##Insert, 2, noun); rtrue; ], before [; Give: if (self in player) { if (second == adar) "~I don't want to carry your stuff,~ retorts Captain Adar."; if (second has pluralname) print (The) second, " don't seem interested.^"; else print (The) second, " doesn't seem interested.^"; rtrue; } return PYC(); Insert: if (self in player) { if (ObjectInsert(second)) rtrue; } Push, PushDir, Pull, Transfer: if (self in sm_airlock || parent(self) in sm_airlock) return PCR(); if ((self in tc_shrine || parent(self) in tc_shrine) && tc_shrine.fieldon) return PBS(); if (self in us_altar) { if (USAltarTest()) { PushIdol(); rtrue; } else { move self to unholy_shrine; "You push ", (the) self, " off the altar."; } } if (self in sa_bobelisk) { move self to secret_chamber; "You push ", (the) self, " off the black obelisk."; } PutOn: if (ObjectPutOn(second)) rtrue; if (second == pedestal) return PedestalEnds(6); Take, Remove: if (self in tc_shrine && tc_shrine.fieldon) return PBS(); if (InventTotal() >= PMAX_WEIGHT + 1) { if (milpack in player or uniform) { InventMove(1); } else { return L__M(##Take, 12); } } if (self in us_altar) { if (USAltarTest()) { return TakenIdol(); } } ThrowAt: if (second == vplats_cliff) { remove self; "You throw ", (the) self, " into the cliff. Lost forever, a thousand feet below."; } if (second == chasmobj) { remove self; "You throw ", (the) self, " into the chasm, lost forever."; } if (second == deadp_obj) { move self to unholy_shrine; "You throw ", (the) self, " into the pit."; } if (second == orb) { if (orb in sa_bobelisk) { if (lc_vampires in secret_chamber) return SpAnger(1); move orb to secret_chamber; "You knock the heavy orb off the obelisk with ", (the) self, "."; } } UseItem: if (self in player) rfalse; "You don't have that."; ]; ! 10/24/06 Class Room with before [; Drink: if (player in outside_airlock or ontopofship) "You can't do that here."; if (coffee_cup in player) { if (coffee_cup has general) return CCupDrink(); "The large mug is empty, there's nothing to drink."; } ], has light; ! 02/05/07 Class Dust with name 'dust', before [; Blow: "A bunch of dust chokes your lungs as you blow it into the air."; Take, Remove, PushDir, Push, Pull: "You only seem to push it around a bit."; ], has concealed static; ! 02/20/07 Class OutRch with before [; Attack, Blow, Burn, Buy, Climb, Close, Cut, CrawlOver, Dig, Drink, Eat, Empty, Enter, Exit, Fix, GetOff, Grapple, Hide, JumpOver, Kick, Listen, LookUnder, Open, Plug, PlugItem, SwFlip: if (self has pluralname) "You can't reach them from here."; "You can't reach that from here."; Push, PushDir, Pull, Read, Remove, Rub, Search, Set, SetTo, ShortOut, Sit, Smash, Smell, Squeeze, Stand, Strap, Swing, SwitchOn, SwitchOff, Take, Taste, Tie, Touch, Transfer, Turn, Unlock, Unplug, Unstrap, Use, UseItem, Wave: if (self has pluralname) "You can't reach them from here."; "You can't reach that from here."; ], has concealed static; ! 05/02/07 Class ORchSe with before [; Attack, Blow, Burn, Buy, Climb, Close, Cut, CrawlOver, Dig, Drink, Eat, Empty, Enter, Exit, Fix, GetOff, Grapple, Hide, JumpOver, Kick, Listen, LookUnder, Open, Plug, PlugItem, SwFlip: if (self has pluralname) "You can't reach them from here."; "You can't reach that from here."; Push, PushDir, Pull, Read, Remove, Rub, Search, Set, SetTo, ShortOut, Sit, Smash, Smell, Squeeze, Stand, Strap, Swing, SwitchOn, SwitchOff, Take, Taste, Tie, Touch, Transfer, Turn, Unlock, Unplug, Unstrap, Use, UseItem, Wave: if (self has pluralname) "You can't reach them from here."; "You can't reach that from here."; ], has static; ! 02/22/07 Class Movable with after [; Insert: if (second == milpack) { give milpack open; move self to milpack; "You put ", (the) self, " into the field pack."; } if (second == galley_closet) { move self to galley_closet; "You put ", (the) self, " into the Captain's locker."; } if (second == deadp_obj) { move self to unholy_shrine; "You drop ", (the) self, " into the pit."; } if (second == vplats_cliff) { remove self; "You drop ", (the) self, " into the cliff. Lost forever, a thousand feet below."; } move self to player; if (second == m_maidens or m_guards) "Now that's just perverted."; if (second == controlpanel or al_circuit) "That's too big to fit in there."; if (second == sm_controlpanel) return PCR(); if (second == uniform) "Your pocket is too small to hold that."; if (second == omni_trans) "That won't fit in there."; if (second == ralckor) "The Ralckor would take your arm off if you got that close."; L__M(##Insert, 2, noun); rtrue; ], before [; Attack, Kick: if (self in sm_airlock || parent(self) in sm_airlock) return PCR(); Drop: if (self in player) { if (player in main_junction) { move self to secondary_junction; if (pland > (plimit-1)) { print "As you drop ", (the) self, " it falls straight to the deck below.^"; rtrue; } else { print "As you drop ", (the) self, " it floats down to the deck below.^"; rtrue; } } } Give: if (self notin player) return PYC(); if (second == robowash && robowash.working) "~I don't want your junk,~ snaps the robo-wash."; if (second == adar) "~I don't want to carry your stuff,~ retorts Captain Adar."; if (second has pluralname) { print (The) second, " don't seem interested.^"; rtrue; } else { print (The) second, " doesn't seem interested.^"; rtrue; } Insert: if (self in player) { if (ObjectInsert(second)) rtrue; } Push, PushDir, Pull, Transfer: if (self in sm_airlock || parent(self) in sm_airlock) return PCR(); if ((self in tc_shrine || parent(self) in tc_shrine) && tc_shrine.fieldon) return PBS(); if (self in us_altar) { if (USAltarTest()) { PushIdol(); rtrue; } else { move self to unholy_shrine; "You push ", (the) self, " off the altar."; } } if (self in sa_bobelisk) { move self to secret_chamber; "You push ", (the) self, " off the black obelisk."; } PutOn: if (self in player) { if (ObjectPutOn(second)) rtrue; } Open: if (self in sm_airlock || parent(self) in sm_airlock) return PCR(); Take, Remove: if (self in sm_airlock || parent(self) in sm_airlock) return PCR(); Taste: if (self in tc_shrine && tc_shrine.fieldon) "Your mouth practically catches on fire, as you burn your tongue on the force field."; Touch: if (self in tc_shrine && tc_shrine.fieldon) return PBS(); ThrowAt: if (self in journal) "You should leave ", (the) self, " safe and secure within the journal."; if (second == vplats_cliff) { remove self; "You throw ", (the) self, " into the cliff. Lost forever, a thousand feet below."; } if (second == chasmobj) { remove self; "You throw ", (the) self, " into the chasm, lost forever."; } if (second == al_door or sm_aldoor) { if (loxtank.pour) { if (al_door.albreak) { ALAlt(); print "Your senses are overwhelmed for a moment, as you throw ", (the) self, " at the cargo hatch door shattering it into a million jagged pieces, falling down around you. "; if (e_beacon.eb_notseen) { CPOn(); if (adar has general) { if (player in sm_airlock) { move adar to sm_airlock; } else { move adar to air_lock; } } print "This opens up a hole in the hatch, pulling all the smoke out of it.^"; if (adar has general) "^Captain Adar returns once the air is breathable again."; rtrue; } else { "This opens up a hole in the hatch, allowing light and heat in from the harsh desert outside."; } } } } if (second == m_door) { move self to m_base; print (The) self, " bounces off the edge of the door and onto the desert sand.^"; rtrue; } if (second == proxtar) { move self to radar_room; if (proxtar.power) "It bounces off, harmlessly, leaving the prox-tar bleeping as infuriatingly as ever. Perhaps you should try something heavier next time."; "It bounces off, harmlessly, landing on the deck."; } if (second == orb) { if (orb in sa_bobelisk) { if (lc_vampires in secret_chamber) return SpAnger(1); move orb to secret_chamber; "You knock the heavy orb off the obelisk with ", (the) self, "."; } } ]; ! 03/05/07 Class OutRcF with before [; Attack, Blow, Burn, Buy, Climb, Close, Cut, CrawlOver, Dig, Drink, Eat, Empty, Enter, Exit, Fix, GetOff, Grapple, Hide, JumpOver, Kick, Listen, LookUnder, Open, Plug, PlugItem, SwFlip: print "You can't reach them underneath the meal synthesizer.^"; if (robowash.working) Robotalk(); rtrue; Push, PushDir, Pull, Read, Remove, Rub, Search, Set, SetTo, ShortOut, Sit, Smash, Smell, Squeeze, Stand, Strap, Swing, SwitchOn, SwitchOff, Take, Taste, Tie, Touch, Transfer, Turn, Unlock, Unplug, Unstrap, Use, UseItem, Wave: print "You can't reach them underneath the meal synthesizer.^"; if (robowash.working) Robotalk(); rtrue; ], has concealed static; ! 03/06/07 Class Skel with parse_name [w1 w2; w1 = NextWord(); if (w1 ~= 'skeleton' or 'skeletons' or 'skeleton^s' or 'leather' or 'book' or 'tome' or 'tattered' or 'robe' or 'robes' or 'skeletal' or 'remains') return 0; if (w1 == 'leather' or 'book' or 'tome') { self.skelstate = false; self.robestate = false; return 3; } if (w1 == 'tattered' or 'robe' or 'robes') { self.robestate = true; self.skelstate = false; return 3; } if (w1 == 'skeleton' or 'skeletal' or 'remains') { self.skelstate = true; self.robestate = false; return 3; } w2 = NextWord(); if (w1 == 'skeleton' or 'skeletons' or 'skeleton^s' && w2 == 'leather' or 'book' or 'tome') { self.skelstate = false; self.robestate = false; return 3; } if (w1 == 'skeleton' or 'skeletons' or 'skeleton^s' && w2 == 'tattered' or 'robe' or 'robes') { self.robestate = true; self.skelstate = false; return 3; } return 0; ], short_name "skeleton", description [; if (self.skelstate) "The skeleton looks almost peaceful, clothed in tattered robes and lying on top of the straw bed clutching a leather tome."; if (self.robestate) "Tattered and worn, the robes are little more than rags covering the skeletal remains."; "Held tightly in the skeleton's hands, the leather tome must have been extremely important."; ], invent [; if (obsidian_stone in self) { print "skeleton, with an obsidian necklace around its neck"; rtrue; } ], before [; Attack, Kick, Touch: return PSS(); Take, Remove, Push, PushDir, Pull: if (self.skelstate) "You should let the dead rest."; if (self.robestate) return PSS(); if (north_cell.skelscore) { north_cell.skelscore = false; score = score + 5; "As you reach down to take the tome, you glance into the skeleton's dead eyes. ^^All of a sudden, the candle next to you sparks with flame. Turning, you see the priestess earnestly praying, head shrouded behind the robe. Her hands rest reverently on the leather tome and she's repeating a low, regular chant. From one of the other rooms you can hear singing, but when you turn to see who's out there, the vision fades along with the musical voices."; } return PBP(); Scan: if (omni_trans notin player) return PNO(); if (self.skelstate || self.robestate) rfalse; return PSS(); Search, Sit, Transfer: "Please let the dead rest!"; Wear: return PSS(); ], skelstate true, robestate false, has static supporter; ! 07/16/07 Class RoomShp with before [; Drink: if (coffee_cup in player) return CCupDrink(); if ((parent(coffee_cup) == parent(player)) || (parent(parent(coffee_cup)) == parent(player))) { print "(first taking the large mug)^"; move coffee_cup to player; return CCupDrink(); } Listen: if (pland > (plimit+16) && pland < (plimit+20)) "You can hear the dreaded sound of the pirates returning."; if (pland > (plimit+14)) "Dead silence."; if (pattack > 2 && pattack < 9) "The loud thundering sound of the pirates rings throughout the ship."; if (player in engine_room) "The engines make it hard to hear little else."; if (player in radar_room && proxtar.power) "All you hear is the annoying beep of the prox-tar."; if (player in berth && berth_alarm.alarmon) "The loud sound of your alarm is annoying, alerting you to the fact that you are already late for duty."; "You can hear the low murmur of the engines."; ], has light; ! 07/18/07 Class AirObj with before [; Attack, Kick, Cut: return PHS(); Blow, Burn, Buy, Climb, CrawlOver, Dig, Drink, Eat, Empty, Enter, Exit, Fix, GetOff, Grapple, Hide, JumpOver, Listen, LookUnder, Open, Plug, PlugItem, SwFlip: return PCR(); Push, PushDir, Pull, Read, Remove, Rub, Search, Set, SetTo, ShortOut, Sit, Smash, Smell, Squeeze, Stand, Strap, Swing, SwitchOn, SwitchOff, Take, Taste, Tie, Touch, Transfer, Turn, Unlock, Unplug, Unstrap, Use, UseItem, Wave: return PCR(); ], has static; ! 07/31/07 Class RoomObj with describe [; rtrue; ], before [; Enter: "You're already here."; Search: return L__M(##Search, 4); Take, Remove, Turn, PushDir, Push, Pull: if (pantheon.rchange) "That's fixed in place."; return PAG(); ], has concealed static; ! 08/12/07 Class StaticShale with before [ new_stone; Take, Remove: if (InventTotal() >= PMAX_WEIGHT + 1) { if (milpack in player or uniform) { InventMove(1); } else { return L__M(##Take, 12); } } new_stone = Shale.create(); if (new_stone == nothing) "It's no use. There's no way you'll be able to clear the shale one stone at a time."; move new_stone to parent(self); <>; Push, PushDir, Pull, Turn: "You do little but scatter the rubble."; ], has scenery static; ! 08/13/07 Class BrthObj with before [; Attack: return PDE(); Kick: if (uniform has worn) rfalse; return PDE(); Take, Remove, Turn, PushDir, Push, Pull: return PAG(); ], has static scenery; ! 08/16/07 Class TCPed with description [; if (pedestalpos == 1) "This slender-looking pedestal is slightly depressed into the floor."; if (pedestalpos == 2) "This slender-looking pedestal is a quarter of the way depressed into the floor."; if (pedestalpos == 3) "This slender-looking pedestal is only sticking halfway out of the floor."; "The pedestal is slender and elegant in its simplicity. It's also covered in quite a bit of dust."; ], before [; Blow: "A bunch of dust chokes your lungs as you blow it into the air."; Take, Remove, Turn, PushDir, Push, Pull: "The pedestal won't budge."; ], has scenery supporter static; ! 02/05/08 Class Cell with before [; Drink: if (coffee_cup in player) { if (coffee_cup has general) return CCupDrink(); "The large mug is empty, there's nothing to drink."; } Exit: if (adar has general) {PAF(); MoveAdar(16);} PlayerTo(tranquility_chamber); rtrue; Smell: "The room smells a little stale, due to the straw bedding."; ], has light; ! 02/05/08 Class TblObj with name 'small' 'table' '~table~', description [; print "The ~table~ is just a ledge, about two feet deep and four feet from the ground. "; if (child(self) == nothing) "Quietly resting upon it sits a stone bowl and unlit candle."; else return SearchSub(self); ], before [; Attack, Kick, Touch: return PSS(); Sit: "You're too big to sit on the ledge."; Take, Remove, Turn, PushDir, Push, Pull: "That's fixed in place."; ], has supporter static scenery; ! 02/05/08 Class Pict with describe [; rtrue; ], before [; Attack, Kick, Touch, Take, Remove, Turn, PushDir, Push, Pull: return PSS(); ], has static; ! 05/06/08 Class STGlow with before [; Attack, Blow, Burn, Buy, Climb, Close, Cut, CrawlOver, Dig, Drink, Eat, Empty, Enter, Exit, Fix, GetOff, Grapple, Hide, JumpOver, Kick, Listen, LookUnder, Open, Plug, PlugItem, SwFlip: "You need to find its source."; Push, PushDir, Pull, Read, Remove, Rub, Search, Set, SetTo, ShortOut, Sit, Smash, Smell, Squeeze, Stand, Strap, Swing, SwitchOn, SwitchOff, Take, Taste, Tie, Touch, Transfer, Turn, Unlock, Unplug, Unstrap, Use, UseItem, Wave: "You need to find its source."; ], has static concealed; ! 05/13/08 Class EACovr with before [; Attack, Cut, Kick: return PDE(); Close: if (self.panopn) { self.panopn = false; self.&name-->7 = '1351ph'; "You close the access cover."; } "That's already closed."; Examine, Search: print "The engineering access cover is "; if (self.panopn) "open, giving you access to the e-tubes."; "closed."; Open, Remove, Turn, PushDir, Push, Pull: if (self.panopn) "That's already open."; self.panopn = true; self.&name-->7 = 'opening'; "You open the access cover, giving you access to the e-tubes."; Take: "It would only slow you down."; ], has static scenery; ! 05/13/08 Class ETubes with cant_go [; return PTU(); ], before [; HideRoom: "You're already hiding."; Listen: "A soft hum fills the tube."; ], has light; ! ---------------------------------------------------------------------------- ! ! ROOMS ! Include "r_DreamBridge"; Include "r_Berth"; Include "r_CrewQuarters"; Include "r_DataMiningCenter"; Include "r_DMC_UnderDesk"; Include "r_Bridge"; Include "r_Galley"; Include "r_EngineRoom"; Include "r_CargoHold"; Include "r_HiddenCompartment"; Include "r_Armory"; Include "r_ArmoryBackroom"; Include "r_MainAirlock"; Include "r_MainJunction"; Include "r_SecondaryJunction"; Include "r_E-Tubes"; Include "r_OutsideAirlock"; Include "r_OnTopOfShip"; Include "r_Desert"; Include "r_Dunes"; Include "r_OutsideTemple"; Include "r_Pantheon"; Include "r_RalckorsLair"; Include "r_Tunnels"; Include "r_SpittersLair"; Include "r_DeadlyPit"; Include "r_UnholyShrine"; Include "r_SecretTunnels"; Include "r_SecretAlcove"; Include "r_TranquilityChamber"; Include "r_Cells"; Include "r_ViewingPlatform"; Include "r_RockyChasm"; Include "r_DesertCrash"; Include "r_CrashedShip"; Include "r_CrashedShip_CargoHold"; Include "o_RTObjects"; ! ---------------------------------------------------------------------------- ! ! PLAYER OBJECT ! Include "p_Player"; ! ---------------------------------------------------------------------------- ! ! NPC OBJECTS ! Include "npc_SpacePirates"; Include "npc_Adar"; Include "npc_Ral"; Include "npc_Kor"; Include "npc_Spirits"; Include "npc_RoboWash"; ! ---------------------------------------------------------------------------- ! ! OBJECTS IN GAME ! Include "o_UltrasteelMug"; Include "o_Datacard"; Include "o_UniversalTool"; Include "o_IdentBadge"; Include "o_OmniTrans"; Include "o_OmnibusGalacticus"; Include "o_Uniform"; Include "o_RedPear"; Include "o_RedApple"; Include "o_Orb"; Include "o_Playbeing"; Include "o_Spacesuit"; Include "o_PersonalIdentBadge"; Include "o_Idol"; Include "o_GrapplingHook"; Include "o_Torch"; Include "o_MedKit"; Include "o_FirstAidWraps"; Include "o_Autocoolant"; Include "o_SolaceCube"; Include "o_NecklaceObsidian"; Include "o_NecklaceRuby"; Include "o_NecklacePearl"; Include "o_NecklaceDiamond"; Include "o_Stand"; Include "o_Crystal"; Include "o_EngineersIdentBadge"; Include "o_PryBar"; Include "o_FieldPack"; Include "o_Detonator"; Include "o_Knife"; Include "o_HalfShelter"; Include "o_Journal"; Include "o_DataPad"; Include "o_Zipchip"; Include "o_ScorchedTome"; Include "o_TornTome"; Include "o_BurntTome"; Include "o_BlackenedTome"; Include "o_DeepSpacesuit"; Include "o_Chip"; Include "o_Wire"; Include "o_OldPage"; Include "o_BleachedPage"; Include "o_BurntPage"; Include "o_LoxTank"; Include "o_Bolt"; Include "o_MRE"; Include "o_SpitterEgg"; Include "o_Rope"; ! ---------------------------------------------------------------------------- ! ! Utility Routines ! [ Initialise hl hl2 iap iran itest ifail ofail; lookmode = 2; player = SelfPlayer; CreateCompassObjects(); notify_mode = false; ! Picks the ancient rune in Secret Tunnel (2) switch(random(4)) { 1: ancientrune = 1; 2: ancientrune = 2; 3: ancientrune = 3; 4: ancientrune = 4; } ! Assigns the necklaces to the pedestals in the Tranquility Chamber hl = random(2); hl2 = random(2); stonecount = random(4); switch(stonecount) { 1: ncell_picture.&name-->1 = 'luxuriant'; ncell_picture.&name-->2 = 'tree'; ncell_picture.&name-->3 = 'roots'; if (hl == 1) { if (hl2 == 1) { rubycount = 2; pearlcount = 3; diamondcount = 4; ecell_picture.&name-->1 = 'blue'; ecell_picture.&name-->2 = 'sky'; ecell_picture.&name-->3 = 'clouds'; scell_picture.&name-->1 = 'fire'; scell_picture.&name-->2 = 'ball'; scell_picture.&name-->3 = 'of'; wcell_picture.&name-->1 = 'golden'; wcell_picture.&name-->2 = 'hypercube'; wcell_picture.&name-->3 = 'cube'; } else { rubycount = 3; pearlcount = 2; diamondcount = 4; scell_picture.&name-->1 = 'blue'; scell_picture.&name-->2 = 'sky'; scell_picture.&name-->3 = 'clouds'; ecell_picture.&name-->1 = 'fire'; ecell_picture.&name-->2 = 'ball'; ecell_picture.&name-->3 = 'of'; wcell_picture.&name-->1 = 'golden'; wcell_picture.&name-->2 = 'hypercube'; wcell_picture.&name-->3 = 'cube'; } } else { if (hl2 == 1) { rubycount = 2; pearlcount = 4; diamondcount = 3; wcell_picture.&name-->1 = 'blue'; wcell_picture.&name-->2 = 'sky'; wcell_picture.&name-->3 = 'clouds'; scell_picture.&name-->1 = 'fire'; scell_picture.&name-->2 = 'ball'; scell_picture.&name-->3 = 'of'; ecell_picture.&name-->1 = 'golden'; ecell_picture.&name-->2 = 'hypercube'; ecell_picture.&name-->3 = 'cube'; } else { rubycount = 3; pearlcount = 4; diamondcount = 2; wcell_picture.&name-->1 = 'blue'; wcell_picture.&name-->2 = 'sky'; wcell_picture.&name-->3 = 'clouds'; ecell_picture.&name-->1 = 'fire'; ecell_picture.&name-->2 = 'ball'; ecell_picture.&name-->3 = 'of'; scell_picture.&name-->1 = 'golden'; scell_picture.&name-->2 = 'hypercube'; scell_picture.&name-->3 = 'cube'; } } 2: scell_picture.&name-->1 = 'luxuriant'; scell_picture.&name-->2 = 'tree'; scell_picture.&name-->3 = 'roots'; if (hl == 1) { if (hl2 == 1) { rubycount = 1; pearlcount = 3; diamondcount = 4; ecell_picture.&name-->1 = 'blue'; ecell_picture.&name-->2 = 'sky'; ecell_picture.&name-->3 = 'clouds'; ncell_picture.&name-->1 = 'fire'; ncell_picture.&name-->2 = 'ball'; ncell_picture.&name-->3 = 'of'; wcell_picture.&name-->1 = 'golden'; wcell_picture.&name-->2 = 'hypercube'; wcell_picture.&name-->3 = 'cube'; } else { rubycount = 3; pearlcount = 1; diamondcount = 4; ncell_picture.&name-->1 = 'blue'; ncell_picture.&name-->2 = 'sky'; ncell_picture.&name-->3 = 'clouds'; ecell_picture.&name-->1 = 'fire'; ecell_picture.&name-->2 = 'ball'; ecell_picture.&name-->3 = 'of'; wcell_picture.&name-->1 = 'golden'; wcell_picture.&name-->2 = 'hypercube'; wcell_picture.&name-->3 = 'cube'; } } else { if (hl2 == 1) { rubycount = 4; pearlcount = 3; diamondcount = 1; ecell_picture.&name-->1 = 'blue'; ecell_picture.&name-->2 = 'sky'; ecell_picture.&name-->3 = 'clouds'; wcell_picture.&name-->1 = 'fire'; wcell_picture.&name-->2 = 'ball'; wcell_picture.&name-->3 = 'of'; ncell_picture.&name-->1 = 'golden'; ncell_picture.&name-->2 = 'hypercube'; ncell_picture.&name-->3 = 'cube'; } else { rubycount = 3; pearlcount = 4; diamondcount = 1; wcell_picture.&name-->1 = 'blue'; wcell_picture.&name-->2 = 'sky'; wcell_picture.&name-->3 = 'clouds'; ecell_picture.&name-->1 = 'fire'; ecell_picture.&name-->2 = 'ball'; ecell_picture.&name-->3 = 'of'; ncell_picture.&name-->1 = 'golden'; ncell_picture.&name-->2 = 'hypercube'; ncell_picture.&name-->3 = 'cube'; } } 3: ecell_picture.&name-->1 = 'luxuriant'; ecell_picture.&name-->2 = 'tree'; ecell_picture.&name-->3 = 'roots'; if (hl == 1) { if (hl2 == 1) { rubycount = 4; pearlcount = 1; diamondcount = 2; ncell_picture.&name-->1 = 'blue'; ncell_picture.&name-->2 = 'sky'; ncell_picture.&name-->3 = 'clouds'; wcell_picture.&name-->1 = 'fire'; wcell_picture.&name-->2 = 'ball'; wcell_picture.&name-->3 = 'of'; scell_picture.&name-->1 = 'golden'; scell_picture.&name-->2 = 'hypercube'; scell_picture.&name-->3 = 'cube'; } else { rubycount = 1; pearlcount = 4; diamondcount = 2; wcell_picture.&name-->1 = 'blue'; wcell_picture.&name-->2 = 'sky'; wcell_picture.&name-->3 = 'clouds'; ncell_picture.&name-->1 = 'fire'; ncell_picture.&name-->2 = 'ball'; ncell_picture.&name-->3 = 'of'; scell_picture.&name-->1 = 'golden'; scell_picture.&name-->2 = 'hypercube'; scell_picture.&name-->3 = 'cube'; } } else { if (hl2 == 1) { rubycount = 4; pearlcount = 2; diamondcount = 1; scell_picture.&name-->1 = 'blue'; scell_picture.&name-->2 = 'sky'; scell_picture.&name-->3 = 'clouds'; wcell_picture.&name-->1 = 'fire'; wcell_picture.&name-->2 = 'ball'; wcell_picture.&name-->3 = 'of'; ncell_picture.&name-->1 = 'golden'; ncell_picture.&name-->2 = 'hypercube'; ncell_picture.&name-->3 = 'cube'; } else { rubycount = 2; pearlcount = 4; diamondcount = 1; wcell_picture.&name-->1 = 'blue'; wcell_picture.&name-->2 = 'sky'; wcell_picture.&name-->3 = 'clouds'; scell_picture.&name-->1 = 'fire'; scell_picture.&name-->2 = 'ball'; scell_picture.&name-->3 = 'of'; ncell_picture.&name-->1 = 'golden'; ncell_picture.&name-->2 = 'hypercube'; ncell_picture.&name-->3 = 'cube'; } } 4: wcell_picture.&name-->1 = 'luxuriant'; wcell_picture.&name-->2 = 'tree'; wcell_picture.&name-->3 = 'roots'; if (hl == 1) { if (hl2 == 1) { rubycount = 3; pearlcount = 1; diamondcount = 2; ncell_picture.&name-->1 = 'blue'; ncell_picture.&name-->2 = 'sky'; ncell_picture.&name-->3 = 'clouds'; ecell_picture.&name-->1 = 'fire'; ecell_picture.&name-->2 = 'ball'; ecell_picture.&name-->3 = 'of'; scell_picture.&name-->1 = 'golden'; scell_picture.&name-->2 = 'hypercube'; scell_picture.&name-->3 = 'cube'; } else { rubycount = 1; pearlcount = 3; diamondcount = 2; ecell_picture.&name-->1 = 'blue'; ecell_picture.&name-->2 = 'sky'; ecell_picture.&name-->3 = 'clouds'; ncell_picture.&name-->1 = 'fire'; ncell_picture.&name-->2 = 'ball'; ncell_picture.&name-->3 = 'of'; scell_picture.&name-->1 = 'golden'; scell_picture.&name-->2 = 'hypercube'; scell_picture.&name-->3 = 'cube'; } } else { if (hl2 == 1) { rubycount = 3; pearlcount = 2; diamondcount = 1; scell_picture.&name-->1 = 'blue'; scell_picture.&name-->2 = 'sky'; scell_picture.&name-->3 = 'clouds'; ecell_picture.&name-->1 = 'fire'; ecell_picture.&name-->2 = 'ball'; ecell_picture.&name-->3 = 'of'; ncell_picture.&name-->1 = 'golden'; ncell_picture.&name-->2 = 'hypercube'; ncell_picture.&name-->3 = 'cube'; } else { rubycount = 2; pearlcount = 3; diamondcount = 1; ecell_picture.&name-->1 = 'blue'; ecell_picture.&name-->2 = 'sky'; ecell_picture.&name-->3 = 'clouds'; scell_picture.&name-->1 = 'fire'; scell_picture.&name-->2 = 'ball'; scell_picture.&name-->3 = 'of'; ncell_picture.&name-->1 = 'golden'; ncell_picture.&name-->2 = 'hypercube'; ncell_picture.&name-->3 = 'cube'; } } } ! Populates the Array for the robo-washes comments iap = 0; while (iap < 10) { ofail = true; while (ofail == true) { itest = 0; ifail = false; iran = random(10); while (itest < 10) { if (iran == robo_reply-->itest) ifail = true; itest++; } if (ifail == true) { ofail = true; } else { ofail = false; } } robo_reply-->iap = iran; iap++; } ! Populates the Array for the three beautiful maidens reply iap = 0; while (iap < 10) { ofail = true; while (ofail == true) { itest = 0; ifail = false; iran = random(10); while (itest < 10) { if (iran == maiden_reply-->itest) ifail = true; itest++; } if (ifail == true) { ofail = true; } else { ofail = false; } } maiden_reply-->iap = iran; iap++; } ! Puts the Obsidian Necklace on the table in Earth Room switch (stonecount) { 1: move obsidian_stone to skeley_1; move oldpage to north_cell; 2: switch (diamondcount) { 1: move obsidian_stone to skeley_1; default: move obsidian_stone to skeley_2; } move oldpage to south_cell; 3: switch (diamondcount) { 1, 2: move obsidian_stone to skeley_2; default: move obsidian_stone to skeley_3; } move oldpage to east_cell; default: move obsidian_stone to skeley_3; move oldpage to west_cell; } ! Puts the Journal on the table in Golden Room switch (diamondcount) { 1: move journal to ncell_table; 2: move journal to scell_table; 3: move journal to ecell_table; default: move journal to wcell_table; } switch (rubycount) { 1: move cry_stand to ncell_table; 2: move cry_stand to scell_table; 3: move cry_stand to ecell_table; default: move cry_stand to wcell_table; } ! Puts the Book of Lydin on the straw bed in Sky Room switch (diamondcount) { 1: move bookoflydin to ncell_straw; move skeley_1 to scell_straw; move skeley_2 to ecell_straw; move skeley_3 to wcell_straw; tc_robe.&name-->5 = 'northern'; tc_robe.short_name = "tattered robe outside the northern cell"; 2: move bookoflydin to scell_straw; move skeley_1 to ncell_straw; move skeley_2 to ecell_straw; move skeley_3 to wcell_straw; tc_robe.&name-->5 = 'southern'; tc_robe.short_name = "tattered robe outside the southern cell"; 3: move bookoflydin to ecell_straw; move skeley_1 to ncell_straw; move skeley_2 to scell_straw; move skeley_3 to wcell_straw; tc_robe.&name-->5 = 'eastern'; tc_robe.short_name = "tattered robe outside the eastern cell"; default: move bookoflydin to wcell_straw; move skeley_1 to ncell_straw; move skeley_2 to scell_straw; move skeley_3 to ecell_straw; tc_robe.&name-->5 = 'western'; tc_robe.short_name = "tattered robe outside the western cell"; } ! Move objects into place move uniform to crew_quarters; move coffee_cup to desk; move ident_badge to main_computer; move og_datacard to omni_trans; move videogame to galley; move galley_counter to galley; move drinkrep to galley_counter; move foodrep to galley_counter; move robowash to galley_counter; move galley_seats to galley; move galley_tables to galley; move galley_plate to galley_tables; move r_fruit to m_base; move w_fruit to m_base; move orb to sa_bobelisk; move cwire to crashed_ship; move firstaidwraps to medkit; move autocoolant to medkit; move smallcrate to air_lock; move medkit to air_lock; move spacesuit to air_lock; move controlpanel to air_lock; move statue to us_altar; move torch to w_tunnel; move solace_cube to tc_shrine; move ruby to deadly_pit; move small_pearl to small_room; move halfshelter to milpack; move knife to milpack; move detonator to milpack; move milpack to galley_closet; move zipchip to datapad; move blchpage to tranquility_chamber; move diamond to secret_tunnel3; move brntpage to secret_tunnel3; move ochip to controlpanel; move bolt to al_arm; move trans_crystal to cry_stand; move torntome to cavern; move blacktome to unholy_shrine; move scorchedtome to view_plat; GameIntro(); ! @set_colour 1 1; style roman; font on; switch (sDream) { 0: StartDaemon(proxtar); StartDaemon(dreambridge); location = dreambridge; break; 1: DeleteCompassObjects(); milpack.detaken = false; prybar.pbartaken = false; omni_trans.transtaken = false; detonator.adcavern = true; move uniform to player; give uniform worn; move p_badge to uniform; move omni_trans to player; give omni_trans worn; move wrench to player; move milpack to player; move prybar to player; move hs_mre to player; location = w_tunnel; break; 2: milpack.detaken = false; prybar.pbartaken = false; omni_trans.transtaken = false; detonator.adcavern = true; move uniform to player; give uniform worn; move p_badge to uniform; move omni_trans to player; give omni_trans worn; move wrench to player; move milpack to player; move prybar to player; move hs_mre to player; move orb to player; move datapad to milpack; give milpack open; move adar to desert_crash; give adar general; location = desert_crash; break; } !---------- !style fixed; !print "^^** Gamma Version 1.03 **^^"; !---------- style roman; print "^^The bridge, usually bustling with orderly activity, stands eerily empty. There are no officers giving orders, no cadets trying to please, just the empty shell of the Command Carrier adrift in deep space, crewless, except for you.^"; return 2; ]; [ PrintRank; print ", earning you the rank of "; if (score == 150) "Ensign."; if (score >= 120) "Mid-Shipman."; if (score >= 80) "Gunner's Mate."; if (score >= 40) "Boatswain Mate."; if (score >= 20) "Swashbuckler."; "Swabbie."; ]; ! ---------------------------------------------------------------------------- ! ! Self defined routines ! [ AboutGame; style fixed; print " ~We only wanted to travel across the stars, ^ conquer new lands, see new things...~ ^^ - Captain La'Crainte, ^ Xulthe'en Cruiser Nardox^"; style roman; print "^ Welcome to Across The Stars, a crazy little adventure through space. The story was started in the beginning of April 2006, and is my first attempt at writing an Interactive Fiction game. When I first came across IF, by playing Infocom's Sorcerer, I was totally blown away by its parser and its unique way of storytelling. Since then I've always wanted to do this, but never knew how to program such a design.^^"; PageBreak(); print " Graham Nelson answered my prayers with the creation of an amazing language, Inform. (This game has been programmed in Inform 6.) Initially, I had hoped to release the game for the 12th IFComp, but decided instead to hold back, giving time rewrite and polish, finally releasing it for the 13th IFComp, taking 4th place.^^"; print " Even though most games entered into the IFComp take less then two hours to complete, this game can take up to five or six hours to finish. Across The Stars can not be put into an unwinnable state, but there are a few sudden deaths which can be undone.^^"; PageBreak(); print " It contains a total of ", GTOTALROOMS, " rooms, with ", GTOTALOBJS, " objects, words: 1,", GTWORDS, ". OpCode length: ", GPLOPCODE, ",", GOPCPH, GOPCSPH, GOPCODE, ".^^"; print " If you have any questions, please contact the authors via email: darkstar@@64infodarkness.com This document and all files associated with Across The Stars will be maintained at the following URL: http://acrossthestars.infodarkness.com^^"; print " May you enjoy your adventures as you travel Across The Stars.^^"; if (PageBreak()) jump end2; .end2; GameCredits(); ]; [ AdarAnswer npass; AdarGrief(); switch(npass) { t_yes: if (ALeave()) rtrue; t_hi: "~Good day,~ smiles Captain Adar."; t_thanks: "~Any time,~ Captain Adar says with a wink."; t_goodbye: "~Focus on what we have to do crewman,~ orders Captain Adar."; t_sorry: "~Don't worry,~ says Captain Adar reassuringly."; } "~You don't say,~ Captain Adar replies a little puzzled."; ]; [ AdarGrief; if (adar.grief) { adar.grief = false; print "Taking a moment, "; PHeShe(); print " composes "; if (m_base.ch_maidens) { print "herself"; } else { print "himself"; } print ".^"; } ]; [ AdartoPit; deadflag = 1; print "As you try to push Captain Adar into the deadly pit, "; if (m_base.ch_maidens) { print "her faster reflexes kick in as she"; } else { print "his faster reflexes kick in as he"; } " spins around using your forward motion against you. Unable to stop yourself, you fall face first into the abyss upon a large spike that shatters your skull."; ]; [ ALAlt; al_door.albreak = false; al_door.albroken = true; if (player in air_lock) { move jmetal to air_lock; move alhole to air_lock; } else { move jmetal to sm_airlock; move alhole to sm_airlock; } ]; [ ALCable; if (e_beacon.eb_notseen) { print "Through the swirling black smoke, you can just make out c"; } else { print "C"; } "ables run from the auxiliary power unit to all the ship's systems. You have no idea what most of them are for, as they disappear into the bulkheads, but one runs from the unit to the hydraulic piston responsible for opening the cargo hatch."; ]; [ ALDes; if (al_door.albroken) { print "Dazzling desert sunlight is streaming in through a gaping hole in a "; return ALPEnd(); } if (crashed_ship.airlockopen) { print "Dazzling desert sunlight is streaming in through an open "; return ALPEnd(); } adar.fsfirstime = true; crashed_ship.adardhint = true; if (e_beacon.eb_notseen) print "Through the swirling black smoke"; else print "In the red glow of the orb's light"; print ", you see that you are in a combined cargo hold and engine room. Like the rest of this ghost ship, it's deserted, all the equipment dead. At the forward end, there's a "; if (loxtank.pour) print "frozen"; else print "closed"; print " cargo hatch with "; if (controlpanel has open) print "an open"; else print "a"; print " control panel mounted on the wall next to it"; if (spacesuit in air_lock or sm_airlock) print ", and an unused deep-space suit hanging next to that."; else print "."; print " The body of the room is empty but for a lone crate by the "; if (smallcrate has general) print "cargo hatch"; else print "port wall"; ", while the aft end is taken up by the ship's engine. The windowless room is dim and claustrophobic, and the open hatchway leading to the fore of the ship looks very appealing."; ]; [ ALDoor; if (loxtank.pour) { if (al_door.albroken) { if (crashed_ship.smoking) "he cargo hatch has been broken open, allowing the smoke to escape out into the harsh desert outside."; "he cargo hatch has been broken open, allowing in light and heat from the harsh desert outside."; } PHl(); "he cargo hatch is frozen in place from liquid oxygen being poured all over it."; } if (crashed_ship.airlockopen) "The open cargo hatch lets in light and heat from the harsh desert outside."; if (e_beacon.eb_notseen) { print "Through the swirling black smoke, you can just make out"; } else { print "Large and currently sealed shut,"; } " the hatch is operated by a large hydraulic piston, up near the ceiling, and controlled by a panel on the wall next to it."; ]; [ ALEngine; if (e_beacon.eb_notseen) { print "Through the swirling black smoke, you can just make out that t"; } else { print "T"; } "he engine takes up most of the aft end of the room, from floor to ceiling. It looks shiny and new; so new, in fact that the maker's plaque is still legible and hasn't yet been covered by layers of grime. As well as the main drive, there is an auxiliary power unit (APU), which can be fired up independently to power the ship's systems while on the ground."; ]; [ ALExit; TestSuit(); print "As you step out of the airlock into the full glare of the desert sun, it's like walking into an oven. "; if (autocoolant.onforehead) print "Even with the Autocoolant, it's pretty unpleasant out here. "; print "Rather than stand around and be baked, you retreat to the cooler side of the ship. "; if (adar in self) { PAF(); MoveAdar(8); } else { new_line; } u_obj.&name-->4 = 'sky'; ]; [ ALGen; if (e_beacon.eb_notseen) { print "Through the swirling black smoke, you can just make out"; } else { print "Just"; } print " a simple metal box, about a meter tall and half a meter wide and deep, the only visible control is a switch marked ~on/off~. Numerous wires lead out of it, leading to various parts of the ship, including one that leads to the hydraulic piston responsible for opening the cargo hatch. Like the rest of the ship, it looks brand-new, but the casing has buckled slightly, as if from extreme heat.^^"; if (al_gen.ps_turnedon) "The auxiliary power unit is currently switched on."; "The auxiliary power unit is currently switched off."; ]; [ ALMDrive; print "You're no engineer, but "; if (e_beacon.eb_notseen) print "through the swirling black smoke, "; " it looks like it's missing an number of small but important -- and highly valuable -- parts, thanks to the pirates. This ship won't be going anywhere anytime soon."; ]; [ ALMPlate; PHl(); print "he backplate for the cargo hatch control, it is about ten centimeters square and screwed to the bulkhead with four small screws. It's new and shiny, but you can see "; if (ochip.destroy) print "scorch marks and "; "some light scoring around the edges."; ]; [ ALPEnd; print "cargo hatch in the starboard wall, illuminating this combined cargo hold and engine room. Like the rest of this ghost ship, it's deserted"; if (al_gen.ps_turnedon) { print ". "; } else { print ", all the equipment dead. "; } print "At the forward end, mounted on the wall next to the cargo hatch, is a control panel"; if (controlpanel has open) print ", currently hanging open"; if (spacesuit in air_lock or sm_airlock) print ", with an unused deep-space suit hanging next to that"; print ". The body of the room is empty but for a lone crate by the "; if (smallcrate has general) { print "starboard"; } else { print "port"; } print " wall, while the aft end is taken up by the ship's engine. Now that the cargo hatch is open, the brightly-lit room suddenly feels much bigger and more inviting. A hatchway leads to the fore of the ship"; if (al_door.albroken) { print "but you could never squeeze out that hole in the starboard cargo hatch, it would damage your uniform.^"; } else { print ", the open cargo hatch lies to starboard.^"; } if (al_gen.ps_turnedon) { print "^You can hear a painful grinding noise coming from the auxiliary power unit, as thick black smoke pours from the ventilation shaft and out through the "; if (al_door.albroken) "hole in the cargo hatch."; "open hatch."; } rtrue; ]; [ ALPlaque; if (e_beacon.eb_notseen) "Through the swirling black smoke, you can just make out a shiny metal plaque, reading: ~Another fine product from the Zrok Corporation!~."; "A shiny metal plaque, reads: ~Another fine product from the Zrok Corporation!~."; ]; [ ALRam; if (e_beacon.eb_notseen) { print "Through the swirling black smoke, you can just make out a"; } else { print "A"; } print " large, electrically-powered piston, mounted near the ceiling and used during the operation of the cargo hatch. A cable leads from it to an auxiliary power unit at the aft of the room."; if (al_arm.fixed) { new_line; rtrue; } if (bolt in al_arm or sm_arm) " One of the main bolts looks a little loose, but it's nothing that your trusty universal tool couldn't fix."; " One of the main bolts is missing, but (assuming you have the bolt) that's nothing your trusty universal tool can't fix."; ]; [ ALeave; if (adar.asksuit) { adar.asksuit = false; MoveAdar(8); print "~Well then, I think I'll step outside,~ says Captain Adar as "; PHeShe(); " leaves the room."; } rfalse; ]; [ Amusing; "Try taking the blanket out of the berth. ^Try searching the engine room. ^Try looking up XYZZY in the OmniTrans. ^Try grappling the rail in the tranquility chamber."; ]; [ AndPrint y z dt; give milpack open; y = 0; if (hs_mre in player && y == 0) { y = 1; move hs_mre to milpack; print ", and the Meal, Ready-to-Eat"; } if (datapad in player && y == 0) { y = 1; move datapad to milpack; print ", and the data pad"; } if (zipchip in player && y == 0) { y = 1; move zipchip to milpack; print ", and the zipchip"; } if (halfshelter in player && y == 0) { y = 1; move halfshelter to milpack; print ", and the half shelter"; } if (knife in player && y == 0) { y = 1; move knife to milpack; print ", and the survival knife"; } if (playbeing in player && y == 0) { y = 1; move playbeing to milpack; print ", and the playbeing"; } if (firstaidwraps in player && y == 0) { y = 1; move firstaidwraps to milpack; print ", and the first-aid wraps"; } if (og_datacard in player && y == 0) { y = 1; move og_datacard to milpack; print ", and the Omnibus Galacticus datacard"; } if (coffee_cup in player && y == 0) { y = 1; move coffee_cup to milpack; print ", and the large mug"; } if (oldpage in player && y == 0) { y = 1; move oldpage to milpack; print ", and the old page"; } if (blchpage in player && y == 0) { y = 1; move blchpage to milpack; print ", and the bleached page"; } if (brntpage in player && y == 0) { y = 1; move brntpage to milpack; print ", and the burnt page"; } if (journal in player && y == 0) { y = 1; move journal to milpack; print ", and the journal"; } if (scorchedtome in player && y == 0) { y = 1; move scorchedtome to milpack; print ", and the scorched tome"; } if (bookoflydin in player && y == 0) { y = 1; move bookoflydin to milpack; print ", and the burnt tome"; } if (torntome in player && y == 0) { y = 1; move torntome to milpack; print ", and the torn tome"; } if (blacktome in player && y == 0) { y = 1; move blacktome to milpack; print ", and the blackened tome"; } if (detonator in player && y == 0) { y = 1; move detonator to milpack; print ", and the detonator"; } if (wrench in player && y == 0) { y = 1; move wrench to milpack; print ", and the universal tool"; } if (prybar in player && y == 0) { y = 1; move prybar to milpack; print ", and the pry bar"; } if (solace_cube in player && y == 0) { y = 1; move solace_cube to milpack; print ", and the small black cube"; } if (orb in player && y == 0) { y = 1; move orb to milpack; print ", and the glowing orb"; } if (medkit in player && y == 0) { y = 1; move medkit to milpack; print ", and the med kit"; } if (autocoolant in player && y == 0) { y = 1; move autocoolant to milpack; print ", and the autocoolant"; } if (y == 0) { dt = 0; objectloop (z in player && z ofclass Shale) { y = 1; dt = 1; move z to milpack; } if (dt == 1) print ", and the shale"; } if (cry_stand in player && y == 0) { y = 1; move cry_stand to milpack; print ", and the stand"; } if (rope in player && y == 0) { y = 1; move rope to milpack; print ", and the rope"; } if (trans_crystal in player && y == 0) { y = 1; move trans_crystal to milpack; print ", and the clear-red crystal"; } if (grappling_hook in player && y == 0) { y = 1; move grappling_hook to milpack; print ", and the makeshift grappling hook"; } if (statue in player && y == 0) { y = 1; move statue to milpack; print ", and the idol"; } if (obsidian_stone in player && y == 0) { y = 1; move obsidian_stone to milpack; print ", and the obsidian necklace"; } if (ruby in player && y == 0) { y = 1; move ruby to milpack; print ", and the ruby necklace"; } if (small_pearl in player && y == 0) { y = 1; move small_pearl to milpack; print ", and the pearl necklace"; } if (diamond in player && y == 0) { y = 1; move diamond to milpack; print ", and the diamond necklace"; } if (cwire in player && y == 0) { y = 1; move cwire to milpack; print ", and the piece of copper wire"; } rtrue; ]; [ AnswerDirSub; if (noun ~= 0 && RunLife(noun,##AnswerDir) ~= 0) rfalse; L__M(##Answer, 1, noun); ]; [ AskCharSub; print_ret (The) noun, " seems confused by your request."; ]; [ AtomatonLabel; style fixed; print "^ ** Warning ** ^^ This product is extremely dangerous. ^ Do not detonate while holding device, ^ standing next to device, or in ^ proximity of device. ^^ Do not detonate in a confined space. ^^ Xplosiv Inc. can accept no responsibility for ^ any maiming, dismemberment, death or genocide ^which may result from improper use of the device."; style roman; ""; ]; [ BadgePull vpass; if (self in main_computer) { if (main_computer.poweron) { if (second == prybar) { print "As you try to "; if (vpass == 1) print "pry"; else print "pull"; print " the ident badge out of the main computer "; if (vpass == 2) print "with the pry bar "; "you receive a strong electrical shock, since the DNA scanner in the badge's reader received no signal."; } if (vpass == 2) <>; else rfalse; } <>; } ]; [ BandAdar; remove firstaidwraps; score = score + 5; adar.healed = true; print "You bandage Captain Adar's broken arm using the first-aid wraps. ~Thanks a lot,~ "; PHeShe(); " says as you finish setting the arm into place. ~I didn't know you knew first aid too.~"; ]; [ BerthTest i; i = 0; if (berth_uniform in berth) i++; if (playbeing in cq_rack) i++; if (coffee_cup in cq_rack) i++; if (ident_badge in cq_rack) i++; if (ce_badge in cq_rack) i++; if (og_datacard in cq_rack) i++; if (prybar in cq_rack) i++; if (milpack in cq_rack) i++; if (detonator in cq_rack) i++; if (knife in cq_rack) i++; if (halfshelter in cq_rack) i++; if (datacard in cq_rack) i++; if (hs_mre in cq_rack) i++; return i; ]; [ BookLC1 k; k = 0->33; if (k > 30) k = (k-30)/2; lc_hcrune.haveread = true; print "The first chapter starts off with a hollow circle in the center of the page with the binary number for zero underneath it: 0000.^^"; POT(); style fixed; spaces(k+12); print "Circle^"; spaces(k+12); print " 0000^^"; spaces(k+7); print "~Universal Void~^^"; print "In the beginning was the void, which knew not of matter, only energy. Energy filled the Universe, energy which took two forms: the Positive and the Negative. The Positive was light and bright, the seed of all that was good and wholesome. The Negative, however, was dark and cold, the seed of all that was malevolent and putrid. Alone, the seeds could not germinate and so, through time beyond our comprehension, they waited."; style roman; ""; ]; [ BookLC2 k; k = 0->33; if (k > 30) k = (k-30)/2; lc_srune.haveread = true; print "The second chapter starts off with a large star in the center of the page with the binary number for one underneath it: 0001.^^"; POT(); style fixed; spaces(k+12); print " Star^"; spaces(k+12); print " 0001^^"; spaces(k+8); print "~Universal God~^^"; print "At last Sucored, the God of All, came forth, bringing the Spark unto the Universe for the first time. By His divine will, He focused the Positive into a blinding light, the greatest and most powerful force the Universe had known, or ever would know."; style roman; ""; ]; [ BookLC3 k; k = 0->33; if (k > 30) k = (k-30)/2; lc_fcrune.haveread = true; print "The third chapter starts off with a filled in circle in the center of the page with the binary number for two underneath it: 0010.^^"; POT(); style fixed; spaces(k+7); print "Filled in Circle^"; spaces(k+12); print " 0010^^"; spaces(k+7); print "~Universal World~^^"; print "As the Positive streamed out into the void, it solidified, creating something new, something the Universe had not yet seen. It created the World, the Mother of all that would follow. Sucored looked upon the Mother, and was satisfied."; style roman; ""; ]; [ BookLC4 k; k = 0->33; if (k > 30) k = (k-30)/2; lc_tmrune.haveread = true; print "The fourth chapter starts off with two circles in the center of the page with the binary number for three underneath it: 0011.^^"; POT(); style fixed; spaces(k+10); print "Two Moons^"; spaces(k+12); print " 0011^^"; spaces(k+7); print "~Universal Half~^^"; print "The Mother's life-force was great, and did bring forth abundant life upon the World. Her bounty was so great that it extended even beyond the World, and she bore two sons, Barba and Karis, twin moons to watch over it."; style roman; ""; ]; [ BookLC5 k; k = 0->33; if (k > 30) k = (k-30)/2; print "The fifth chapter starts off with a raven in the center of the page with the binary number for four underneath it: 0100.^^"; POT(); style fixed; spaces(k+12); print "Raven^"; spaces(k+12); print " 0100^^"; spaces(k+4); print "~God of the Universe~^^"; print "Such was the Mother's glory that Sucored took the form of a raven and flew high into the air, the better to appreciate its wondrous beauty. Higher and farther did he fly than any mortal raven could have done, taking in everything from the heat of the desert to the crystalline white at the top of the World."; style roman; ""; ]; [ BookLC6 k; k = 0->33; if (k > 30) k = (k-30)/2; rune_ancient.haveread = true; print "The sixth chapter starts off with a lizard in the center of the page with the binary number for five underneath it: 0101.^^"; POT(); style fixed; spaces(k+12); print "Lizard^"; spaces(k+12); print " 0101^^"; spaces(k+6); print "~God against Light~^^"; print "Though He knew it not, Sucored was not the only force abroad in the Universe: there must always be Balance. Even as Sucored commanded dominion over the Positive, Decorous held sway over the Negative; Sucored giveth life, and Decorous taketh away. As Sucored rested after His long flight, Decorous rose up and took the form of a lizard, that he might better walk the World. He made it his home, feasting upon all that was good. Shunning the light, he was ever to be found in the dark, secret places."; style roman; ""; ]; [ BookLC7 k; k = 0->33; if (k > 30) k = (k-30)/2; lc_lwrune.haveread = true; print "The seventh chapter starts off with a large worm in the center of the page with the binary number for six underneath it: 0110.^^"; POT(); style fixed; spaces(k+10); print "Large Worm^"; spaces(k+12); print " 0110^^"; spaces(k+6); print "~God of the World~^^"; print "All that was Positive about the World railed against Decorous, against the destruction that He wrought. A champion was needed, one who could battle the lizard in the dark, and so the worms were born. Born out of necessity to a World infected by the Negative, they were filled with resentment and hate. ^^They made war against Decorous in a way no other creature could, with an understanding of His ways. As Sucored watched from on high, the war dragged on and many worms died, but eventually they were victorious and Decorous was driven from the World.^^"; if (PageBreak()) jump end1; .end1; print "The World was never the same again: what is done can never be undone, and hatred had been released. War still burned within the heart of the worm, and it turned its resentment upon the Mother's children, even as it grew into its adult form and became the hypnotic beast."; style roman; ""; ]; [ BookLC8 k; k = 0->33; if (k > 30) k = (k-30)/2; lc_hlfcrune.haveread = true; print "The eighth chapter starts off with half a circle (pointing down) in the center of the page with the binary number for seven underneath it: 0111.^^"; POT(); style fixed; spaces(k+2); print "Half a Circle (pointing down)^"; spaces(k+12); print " 0111^^"; spaces(k+9); print "~Part of God~^^"; print "With the defeat of Decorous, Sucored's power was once again in the ascendant, and in time it became too great even for Him to contain. He splintered, over and over, and tiny shards of the divine rained down upon the World until the energy was spent. The shards joined with the creatures where they fell, and Man was born."; style roman; ""; ]; [ BookLC9 k; k = 0->33; if (k > 30) k = (k-30)/2; lc_sqrune.haveread = true; print "The ninth chapter starts off with a square in the center of the page with the binary number for eight underneath it: 1000.^^"; POT(); style fixed; spaces(k+12); print "Square^"; spaces(k+12); print " 1000^^"; spaces(k+7); print "~World Universe~^^"; print "Sucored looked down upon Man and saw that His new creation needed a space apart from the other creatures, a place to learn and to grow in safety. Thus did he create the Kingdom of Men, girded round by borders that the Mother's children were not to pass."; style roman; ""; ]; [ BookLC10 k; k = 0->33; if (k > 30) k = (k-30)/2; lc_mrune.haveread = true; print "The tenth chapter starts off with a man in the center of the page with the binary number for nine underneath it: 1001.^^"; POT(); style fixed; spaces(k+12); print " Man^"; spaces(k+12); print " 1001^^"; spaces(k+10); print "~World God~^^"; print "Having a Kingdom to inhabit, Man prospered as Sucored had intended. They created homes for themselves and lived lives of peace and order. Man grew in wisdom, and came to realize that this blessed existence was not forever; thus arose the Protector, to await the day when he would be needed."; style roman; ""; ]; [ BookLC11 k; k = 0->33; if (k > 30) k = (k-30)/2; lc_wrune.haveread = true; print "The eleventh chapter starts off with a woman in the center of the page with the binary number for ten underneath it: 1010.^^"; POT(); style fixed; spaces(k+12); print "Woman^"; spaces(k+12); print " 1010^^"; spaces(k+7); print "~World Nurturer~^^"; print "The Mother looked upon Man, Sucored's creation, and saw that he was incomplete. In her generosity, she did cause Woman to come forth and join Man in his Kingdom. To Woman she gave her hard-won knowledge, the secrets she had learned of how to defeat Decorous. Woman came to know the secret rituals, know how to summon the light. From her are descended the Lydinae."; style roman; ""; ]; [ BookLC12 k; k = 0->33; if (k > 30) k = (k-30)/2; lc_crune.haveread = true; print "The twelfth chapter starts off with a child in the center of the page with the binary number for eleven underneath it: 1011.^^"; POT(); style fixed; spaces(k+12); print "Child^"; spaces(k+12); print " 1011^^"; spaces(k+5); print "~Part of the World~^^"; print "As the Mother before her had brought forth new life, so too did Woman. She came to know Man, and through the pain of birth the Child came into being. Woman had completed Man, and now the Child did complete Woman. Keep a peaceful home, for the Child will thrive and Man will shine, guiding the people and taking care of the land."; style roman; ""; ]; [ BookLC13 k; k = 0->33; if (k > 30) k = (k-30)/2; lc_rrune.haveread = true; print "The thirteenth chapter starts off with a rat in the center of the page with the binary number for twelve underneath it: 1100.^^"; POT(); style fixed; spaces(k+12); print " Rat^"; spaces(k+12); print " 1100^^"; spaces(k+4); print "~Children of Emptiness~^^"; print "Since his defeat, Decorous had been biding His time, rebuilding His strength, and now he renewed his assault upon the World. He begat children in His turn, the Children of Emptiness. Taking the form of rats, they covered the land. Like their Father, they were drawn to the dark, silent paths, devouring everything in their way. As they grew steadily in numbers, Man's crops dwindled to nothing and he did starve."; style roman; ""; ]; [ BookLC14 k; k = 0->33; if (k > 30) k = (k-30)/2; lc_trirune.haveread = true; print "The fourteenth chapter starts off with a triangle (pointing down) in the center of the page with the binary number for thirteen underneath it: 1101.^^"; POT(); style fixed; spaces(k+4); print "Triangle (pointing down)^"; spaces(k+12); print " 1101^^"; spaces(k+7); print "~Children of God~^^"; print "As the Mother had foreseen, Woman had need of the knowledge that was her birthright. Only she knew how to defeat these harbingers of death; only she knew how to summon the Orb of Inner Light, the home of Sucored's last shard. To the denizens of the dark, the Orb is a powerful poison; strong enough to drive them from the World. ^^She knew to put Man in his place and pay homage to Sucored; thus could the Protector attain the holy chamber. Fulfilling his sacred duty, the Protector would then give of himself in exchange for the orb, and return unto the Lydin."; style roman; ""; ]; [ BookLC15 k; k = 0->33; if (k > 30) k = (k-30)/2; lc_hcrsurune.haveread = true; print "The fifteenth chapter starts off with half a circle (pointing up) in the center of the page with the binary number for fourteen underneath it: 1110.^^"; POT(); style fixed; spaces(k+2); print "Half a Circle (pointing up)^"; spaces(k+12); print " 1110^^"; spaces(k+4); print "~Children of the World~^^"; print "The war was not without casualties; many perished, giving up their material bodies to wander the World in agony. The Lydinae knew that only by bringing the fallen together again could they achieve a measure of peace, a semblance of their original life. They had long protected a fragment of the Spark, held within the Solace Cube; this alone was able to attract the fallen souls and bind them eternally."; style roman; ""; ]; [ BookLC16 k; k = 0->33; if (k > 30) k = (k-30)/2; lc_brcrune.haveread = true; print "The sixteenth chapter starts off with a broken circle in the center of the page with the binary number for fifteen underneath it: 1111.^^"; POT(); style fixed; spaces(k+9); print "Broken Circle^"; spaces(k+12); print " 1111^^"; spaces(k+5); print "~Children of Children~^^"; print "The victory was only temporary. The struggle between the Positive and the Negative, Sucored and Decorous, is eternal; balance must be maintained, so neither can ever truly die. The innocence of the World had been broken, and now the innocence of Man had been also. The Children would be divided between the dark and the light; the World would feel their discord. Though there can never be victory, the Lydinae must labor forever to avoid defeat."; style roman; ""; ]; [ BoulderDeath; "^A huge stone boulder comes crashing down from above, crushing you under its enormous weight. The archaeologists that will discover this place millennia from now will marvel at how your skeleton got here."; ]; [ BrnSpit; sandworm.threatened = false; StopDaemon(sm_eggs); sattack=0; "As the spitter comes in closer you burn the creature, keeping it at bay with the torch."; ]; [ BurnSub; if (TorchOn()) "The torch is better suited to provide light."; L__M(##Burn, 1, noun); ]; [ CaptainChair; print "Not only are you not the Captain, but that's not going to help "; if (pland > 148) "get you off this planet."; if (pattack > 9) "take care of the space pirates."; "uncover this mystery."; ]; [ CavWake; thinkpos = 0; score = score + 5; if (m_base.oldman) { if (m_base.pcwake) { print "Really, this is too much. Again, y"; } else { print "Y"; } print "ou summon up all the willpower you can muster and tell the hangar that it doesn't exist. This time, it feels different, as if a great weight has been lifted; this time, maybe you'll wake up for real. "; PAU(); } else { print "It's a struggle, but you beat down the fuzz and start to take control of your senses again. When you do, the room literally dissolves around you, as if someone has poured paint-stripper all over it, revealing jagged cave walls. Most of the floor is hard-packed earth, but where the dais used to be you see only the gaping maw of a ralckor!^"; } PlayerTo(cavern); rtrue; ]; [ CavTouch; thinkpos = 0; score = score + 5; print "As you touch ", (the) self, " you feel a slimy substance and quickly pull your hand away. Startled by the unusual feeling, the room starts to literally dissolves around you, as if someone has poured paint-stripper all over it, revealing jagged cave walls. Most of the floor is hard-packed earth, but where the "; if (m_base.oldman) { print "northern corridor"; } else { print "dais"; } print " used to be you see instead only the gaping maw of a ralckor!^"; PlayerTo(cavern); rtrue; ]; [ CavTaste; thinkpos = 0; score = score + 5; print "As your tongue licks ", (the) self, " you start coughing and gagging at the most appalling taste in your life. Spitting does little to get rid of it, as the fit of choking breaks the spell you're under. The room starts to literally dissolves around you, as if someone has poured paint-stripper all over it, revealing jagged cave walls. Most of the floor is hard-packed earth, but where the "; if (m_base.oldman) { print "northern corridor"; } else { print "dais"; } print " used to be you see instead only the gaping maw of a ralckor!^"; PlayerTo(cavern); rtrue; ]; [ CCupDrink; if (coffee_cup has general) { icoffee++; give coffee_cup ~general; coffee_cup.&name-->4 = '0100ph'; if (coffee_cup.pcdunes) { print "With your throat so dusty and parched, you gulp down the "; switch (icupdis) { 1: print "cold coffee"; 2: print "cold tea"; 3: print "water"; } " eagerly. It tastes disgusting, but at least it's wet."; } switch (icupdis) { 1: print "Ugh. The best anyone can say for the coffee is that it's hot and caffeinated, but it's amazing how you get used to it.^"; 2: print "The tea has an interesting flavor, as if they've drawn the water from the laundry. There's definitely soap in there, with an undertone of wet sock. Still, drinking it is reassuring, somehow.^"; 3: print "You know what they say, ~Don't drink the water!~ You shudder to think how many sets of kidneys this stuff's been through, but they've assured you it's harmless, and it has a chemical taste to prove it.^"; } if (icoffee == 4) { icoffee = 0; print "^Keep this up and you're going to have to use the head.^"; } if (player in galley) { if (robowash.working) Robotalk(); } rtrue; } if (coffee_cup.pcdunes) "Unfortunately, you're fresh out."; if (player in galley) { print "You'll have to get some from the drink dispenser first.^"; if (robowash.working) Robotalk(); rtrue; } "You'll have to get some from the drink dispenser in the Galley first."; ]; [ CellDescript; print "The room is perhaps eight feet square, and simple to the point of austerity. It has been neatly carved from the rock, and is perfectly cubical apart from two ledges, one running the length of the left-hand wall and the other half the length of the wall in front of you. The first is thinly covered with straw, "; ]; [ CertifySub; "You're not qualified."; ]; [ CHDoorOpen itest; itest = 0; if (crashed_ship.airlockopen) itest++; if (al_door.albroken) itest++; if (itest == 0) rtrue; rfalse; ]; [ CHPuzTest itest; itest = 0; if (cwire in controlpanel) itest++; if (al_arm.fixed) itest++; if (itest == 2) rfalse; rtrue; ]; [ ClimbDownSub; "I don't think much is to be achieved by that."; ]; [ CloseCurt; remove b_hatchway; remove overhead_light; rack.curtain_open = false; "You close the curtains to your bunk, shutting out the rest of the world."; ]; [ ClrBeam; torch.tinbeam = false; lc_space.&name-->2 = '0909ph'; trans_crystal.tcinbeam = false; lc_space.standing = false; ]; [ CommonPed; pedestalpos = 0; if (obsidian_stone in tc_npedestal or tc_spedestal or tc_epedestal or tc_wpedestal) move obsidian_stone to tranquility_chamber; if (small_pearl in tc_npedestal or tc_spedestal or tc_epedestal or tc_wpedestal) move small_pearl to tranquility_chamber; if (ruby in tc_npedestal or tc_spedestal or tc_epedestal or tc_wpedestal) move ruby to tranquility_chamber; if (diamond in tc_npedestal or tc_spedestal or tc_epedestal or tc_wpedestal) move diamond to tranquility_chamber; ]; [ CoolAdar; give autocoolant ~worn; autocoolant.onforehead = false; move autocoolant to adar; print "As you put the Autocoolant on top of Captain Adar, you can see relief come to "; if (m_base.ch_maidens) { print "her"; } else { print "his"; } print " face at once. ~Thanks,~ "; PHeShe(); " smiles at you, ~I needed that.~"; ]; [ CoolPlayer; if (autocoolant.onforehead) "The Autocoolant is already on your head."; give autocoolant worn; autocoolant.onforehead = true; "As you balance the bag of Autocoolant on your head, you start to feel waves of wonderful coolness wash through your body. Why couldn't your ship have had these?"; ]; [ CorDeath; deadflag = 1; "You set off down the corridor, so hungry you're even looking forward to military cuisine. Before you make it even halfway along, though, you stumble, and then there's that two-places-at-once feeling again... ^^The corridor's gone; now you're surrounded by jagged cave walls, and you're falling. Looking down, all you see are the gaping jaws and razor-sharp teeth of a ralckor!"; ]; [ CPOn; give air_lock light; ialsmoke = 0; al_door.firstate = false; e_beacon.eb_notseen = false; crashed_ship.airlockopen = true; if (intsmokeobj2 in air_lock or sm_airlock) remove intsmokeobj2; if (intsmokeobj1 in crashed_ship) remove intsmokeobj1; ]; [ CrawlOverSub; "You can't crawl over ", (the) noun, "."; ]; [ CreateCompassObjects; player.runaway = true; d_obj.&name-->5 = 'deck'; if (aft_obj notin Compass) move aft_obj to Compass; if (fore_obj notin Compass) move fore_obj to Compass; if (port_obj notin Compass) move port_obj to Compass; if (starboard_obj notin Compass) move starboard_obj to Compass; if (ne_obj in Compass) remove ne_obj; if (nw_obj in Compass) remove nw_obj; if (se_obj in Compass) remove se_obj; if (sw_obj in Compass) remove sw_obj; ]; [ CreditsSub; if (player in dreambridge) { DreamEnds(7); rtrue; } GameCredits(); ]; [ CtoC; if (second == controlpanel or al_circuit) { if (cwire.cwscore) { cwire.cwscore = false; score = score + 5; } move cwire to controlpanel; return PBC(); } rfalse; ]; [ DeleteCompassObjects; player.runaway = false; d_obj.&name-->5 = '0101ph'; if (aft_obj in Compass) remove aft_obj; if (fore_obj in Compass) remove fore_obj; if (port_obj in Compass) remove port_obj; if (starboard_obj in Compass) remove starboard_obj; if (ne_obj notin Compass) move ne_obj to Compass; if (nw_obj notin Compass) move nw_obj to Compass; if (se_obj notin Compass) move se_obj to Compass; if (sw_obj notin Compass) move sw_obj to Compass; ]; [ DeskTest i; i = 0; if (playbeing in desk) i++; if (coffee_cup in desk) i++; if (ident_badge in desk) i++; if (ce_badge in desk) i++; if (og_datacard in desk) i++; if (prybar in desk) i++; if (milpack in desk) i++; if (detonator in desk) i++; if (knife in desk) i++; if (halfshelter in desk) i++; if (datacard in desk) i++; if (hs_mre in desk) i++; return i; ]; [ DownBelow; if (player in engine_room or armory or armory_backroom or secondary_junction or cargo_hold or main_airlock) rtrue; if (player in er_etube or ar_etube or ch_etube or ma_etube) rtrue; rfalse; ]; [ DPEntr vpass; switch (vpass) { 1: print "As you descend into the depths below, you"; 2: print "As you fail to make the great length of the pit you descend to the depths below, and"; } " meet a horrid death. You fall upon a sharp spike that tears through your flesh, impaling yourself upon another skeleton. ^^You don't die right away but linger at the bottom with the other dead that have accumulated over the years trying to enter the pit."; ]; [ DprOpen vpass; score = score + 5; wt_depression.foundsecret = true; move wt_dust to w_tunnel; move wt_secretdoor to w_tunnel; print "As you "; switch (vpass) { 1: print "push on"; 2: print "hit"; 3: print "pry open"; } print " the stones, they barely move; they were packed in tight. However, it looks like the mortar, weakened by the dry conditions, has cracked a bit more, so you "; switch (vpass) { 1, 3: print "push"; 2: print "hit it"; } " again. The improvised wall suddenly gives way, caving in on itself and revealing a secret passage to the west."; ]; [ DrawStatusLine width posa posb; @split_window 1; @set_window 1; @set_cursor 1 1; style reverse; width = 0->33; posa = width-26; posb = width-13; spaces (width); @set_cursor 1 2; switch(location) { berth: print "Your Berth (on the bunk)"; under_desk: print "Data Mining Center (under desk)"; armory_backroom: print "Armory (store room)"; vplat_seats: print "Viewing Platform (in the seats)"; sm_airlock: print "Cargo Hold (on large crate)"; default: PrintShortName(location); } if (width > 76) { @set_cursor 1 posa; print "Score: ", sline1; @set_cursor 1 posb; print "Moves: ", sline2; } if (width > 63 && width <= 76) { @set_cursor 1 posb; print sline1, "/", sline2; } @set_cursor 1 1; style roman; @set_window 0; ]; [ DreamEnds n; switch (n) { 1: print "As you try to run, the pirates tear you apart as they take over the Command Carrier."; 2: print "You stand on the main bridge of the Command Carrier of the Xulthe'en Empire. The ship has been taken over by pirates, that tear you apart as they take over this vessel."; 3: if (dreamconsole.drmtke) { print "As you stand there messing with the ship the pirates"; } else { print "You stand there doing nothing as the pirates take over your Command Carrier. They"; } print " show you no mercy, but at least it's over quickly."; 4: print "Mean looking and brutal, they're used to getting what they want. Right now, you're in their way, but that won't be a problem for long."; 5: print "You try to attack, but you don't stand a chance. You can't even slow them down as they take over the Command Carrier."; 6: print "As you look at the ship, the pirates tear you apart as they take over the Command Carrier."; 7: print "Not at this moment.^As you stand there doing nothing, the pirates tear you apart as they take over the Command Carrier."; 8: print "The pirates only yell and shout as they come up the ladder, tearing you apart as they take over the Command Carrier."; 9: print "The pirates push back as they cut you to shreds, taking over the Command Carrier."; 10: print "As you approach, the pirates cut you to shreds as they take over the Command Carrier."; 11: print "The pirates are unimpressed as they cut you to pieces, taking over the Command Carrier."; } print "^^...and then you wake up in a cold sweat, slowly realizing that it was just your own private nightmare.^^"; Banner(); print "Are you new to this story? Check out the TIPS.^"; dreambridge.short_name = "Dream Bridge"; StopDaemon(dreambridge); move skivvies to player; score = score + 5; thinkpos = 1; PlayerTo(berth); rtrue; ]; [ DthIdol vpass; if (vpass == 0) { print "As you take the idol off the pedestal, "; } else { print "As you push the idol off the pedestal, "; } deadflag = 1; "a trap door in the ceiling opens up unleashing a 300-pound stone slab covered in razor sharp spikes. Each spike is dipped in poison, adding a sharp sting as the slab smashes your body against the wall."; ]; [ EBRoutine; if (datacard notin player && radar_room.enterbridge == false) { "You don't dare face the Captain without the datacard; if there's one thing he likes even less than crewmen who aren't properly squared away, it's unauthorized men on the bridge."; } if (radar_room.enterbridge) { if (mb_hatchway has open) { PlayerTo(bridge); rtrue; } print "(first opening the hatchway)^"; give mb_hatchway open; PlayerTo(bridge); rtrue; } if (mb_hatchway has open) { print "Knowing how urgent the information is you run onto the bridge only to stop in your tracks.^^"; } else { print "Knowing how urgent the information is you quickly open the hatchway only to stop in your tracks.^^"; } give mb_hatchway open; PlayerTo(bridge); rtrue; ]; [ EBText; if (radar_room.note_taken && radar_room.captainknow) { if (radar_room.rrdaemonstart && galley.entergalley) "You have no reason to bother Command.^^The only places you really want to go right now are the galley and your duty station in the DMC."; if (radar_room.rrdaemonstart) "You have no reason to bother Command.^^The only place you really want to go right now is to your duty station in the DMC."; "You don't dare face the Captain without the datacard; if there's one thing he likes even less than crewmen who aren't properly squared away, it's unauthorized men on the bridge."; } return EBRoutine(); ]; [ EnterBerth; move pillow to berth; move blanket to berth; if (omni_trans in crew_quarters && omni_trans.transtaken) move omni_trans to berth; if (detonator in cq_rack) move detonator to berth; if (playbeing in cq_rack) move playbeing to berth; if (coffee_cup in cq_rack) move coffee_cup to berth; if (ident_badge in cq_rack) move ident_badge to berth; if (ce_badge in cq_rack) move ce_badge to berth; if (og_datacard in cq_rack) move og_datacard to berth; if (prybar in cq_rack) move prybar to berth; if (milpack in cq_rack) move milpack to berth; if (knife in cq_rack) move knife to berth; if (halfshelter in cq_rack) move halfshelter to berth; if (datacard in cq_rack) move datacard to berth; if (hs_mre in cq_rack) move hs_mre to berth; if (rack.curtain_open == false) { rack.curtain_open = true; print "(first opening the curtains)^"; } if (cq_rack.made) { cq_rack.made = false; print "Messing up your freshly made rack, you climb up into the warm spot you call home.^"; } else { print "You climb up into the warm spot you call home.^"; } if (crew_quarters.cqhide) { crew_quarters.cqhide = false; rack.curtain_open = false; print "Closing the curtains, you shut out the rest of the world.^"; } PlayerTo(berth,1); rtrue; ]; [ EnterTran; if (adar has general) {PAF(); MoveAdar(16);} u_obj.&name-->4 = 'sky'; print "You climb up the passage.^"; return tranquility_chamber; ]; [ ExitBerth; move pillow to cq_rack; move blanket to cq_rack; if (omni_trans in berth) move omni_trans to crew_quarters; if (detonator in berth) move detonator to cq_rack; if (playbeing in berth) move playbeing to cq_rack; if (coffee_cup in berth) move coffee_cup to cq_rack; if (ident_badge in berth) move ident_badge to cq_rack; if (ce_badge in berth) move ce_badge to cq_rack; if (og_datacard in berth) move og_datacard to cq_rack; if (prybar in berth) move prybar to cq_rack; if (milpack in berth) move milpack to cq_rack; if (knife in berth) move knife to cq_rack; if (halfshelter in berth) move halfshelter to cq_rack; if (datacard in berth) move datacard to cq_rack; if (hs_mre in berth) move hs_mre to cq_rack; if (berth.firsttime) { thinkpos = 11; berth.firsttime = false; StopDaemon(berth_alarm); berth_alarm.alarmon = false; if (berth_uniform.unimoved) { berth_uniform.unimoved = false; move berth_uniform to berth; } OpenCrt(); print "You step down onto the deck, feeling the reassuring vibration of the ship's engines under your feet. The alarm deactivates, and blessed silence descends.^"; PlayerTo(crew_quarters); rtrue; } else { if (engine in engine_room) { OpenCrt(); print "You step down onto the deck, feeling the reassuring vibration of the ship's engines under your feet.^"; } else { OpenCrt(); print "You step down onto the deck.^"; } PlayerTo(crew_quarters); rtrue; } ]; [ ExitTran; if (adar has general) {PAF(); MoveAdar(15);} u_obj.&name-->4 = '7840ph'; print "You step out into the passage.^"; return secret_tunnel3; ]; [ FailFill; print "You'd only make a mess, with no cup to fill.^"; if (robowash.working) Robotalk(); rtrue; ]; [ FartSub; "But you lack the gaseous build up."; ]; [ FirstPrint y z dt; give milpack open; y = 0; if (y == 0) { dt = 0; objectloop (z in player && z ofclass Shale) { y = 1; dt = 1; move z to milpack; } if (dt == 1) print "the shale"; } if (hs_mre in player && y == 0) { y = 1; move hs_mre to milpack; print "the Meal, Ready-to-Eat"; } if (datapad in player && y == 0) { y = 1; move datapad to milpack; print "the data pad"; } if (zipchip in player && y == 0) { y = 1; move zipchip to milpack; print "the zipchip"; } if (halfshelter in player && y == 0) { y = 1; move halfshelter to milpack; print "the half shelter"; } if (knife in player && y == 0) { y = 1; move knife to milpack; print "the survival knife"; } if (playbeing in player && y == 0) { y = 1; move playbeing to milpack; print "the playbeing"; } if (firstaidwraps in player && y == 0) { y = 1; move firstaidwraps to milpack; print "the first-aid wraps"; } if (og_datacard in player && y == 0) { y = 1; move og_datacard to milpack; print "the Omnibus Galacticus datacard"; } if (coffee_cup in player && y == 0) { y = 1; move coffee_cup to milpack; print "the large mug"; } if (oldpage in player && y == 0) { y = 1; move oldpage to milpack; print "the old page"; } if (blchpage in player && y == 0) { y = 1; move blchpage to milpack; print "the bleached page"; } if (brntpage in player && y == 0) { y = 1; move brntpage to milpack; print "the burnt page"; } if (journal in player && y == 0) { y = 1; move journal to milpack; print "the journal"; } if (scorchedtome in player && y == 0) { y = 1; move scorchedtome to milpack; print "the scorched tome"; } if (bookoflydin in player && y == 0) { y = 1; move bookoflydin to milpack; print "the burnt tome"; } if (torntome in player && y == 0) { y = 1; move torntome to milpack; print "the torn tome"; } if (blacktome in player && y == 0) { y = 1; move blacktome to milpack; print "the blackened tome"; } if (detonator in player && y == 0) { y = 1; move detonator to milpack; print "the detonator"; } if (wrench in player && y == 0) { y = 1; move wrench to milpack; print "the universal tool"; } if (prybar in player && y == 0) { y = 1; move prybar to milpack; print "the pry bar"; } if (solace_cube in player && y == 0) { y = 1; move solace_cube to milpack; print "the small black cube"; } if (orb in player && y == 0) { y = 1; move orb to milpack; print "the glowing orb"; } if (medkit in player && y == 0) { y = 1; move medkit to milpack; print "the med kit"; } if (autocoolant in player && y == 0) { y = 1; move autocoolant to milpack; print "the autocoolant"; } if (cry_stand in player && y == 0) { y = 1; move cry_stand to milpack; print "the stand"; } if (rope in player && y == 0) { y = 1; move rope to milpack; print "the rope"; } if (trans_crystal in player && y == 0) { y = 1; move trans_crystal to milpack; print "the clear-red crystal"; } if (grappling_hook in player && y == 0) { y = 1; move grappling_hook to milpack; print "the makeshift grappling hook"; } if (statue in player && y == 0) { y = 1; move statue to milpack; print "the idol"; } if (obsidian_stone in player && y == 0) { y = 1; move obsidian_stone to milpack; print "the obsidian necklace"; } if (ruby in player && y == 0) { y = 1; move ruby to milpack; print "the ruby necklace"; } if (small_pearl in player && y == 0) { y = 1; move small_pearl to milpack; print "the pearl necklace"; } if (diamond in player && y == 0) { y = 1; move diamond to milpack; print "the diamond necklace"; } if (cwire in player && y == 0) { y = 1; move cwire to milpack; print "the piece of copper wire"; } rtrue; ]; [ FixSub; if (noun has pluralname) "They're not broken."; "That's not broken."; ]; [ FixBolt; score = score + 5; al_arm.fixed = true; move bolt to sm_arm; if (wrench in milpack) give milpack open; "You screw the bolt back into the hydraulic piston with the universal tool, making sure it's good and tight."; ]; [ FlipOffSub; if (noun has animate) { print (The) noun, " pays no attention to you."; new_line; rtrue; } "Flipping off ", (the) noun, " doesn't feel very rewarding."; ]; [ FlushSub; "You can't flush ", (the) noun, "."; ]; [ FollowSub; "You can only do that to something animate."; ]; [ FullScoreSub; ScoreSub(); if (score == 0) rtrue; print "^Consisting of:^"; print "5 points for not prematurely waking up^"; if (radar_room.rrdaemonstart == false) print "5 points for reporting to your duty station^"; if (proxtar.power == false) print "5 points for shutting off the prox-tar^"; if (bridge.boarded) print "5 points for hiding from the pirates^"; if (ident_badge has general) print "5 points for obtaining the Captain's ident badge^"; if (milpack.scrtaken) print "5 points for obtaining the field pack^"; if (large_crate.lc_scored == false) print "5 points for finding the secret panel^"; if (cargo_hatch.hatchopen) print "5 points for hiding from the pirates again^"; if (cavern.firstime == false) print "5 points for waking out of the Ralckor's spell^"; if (wt_depression.foundsecret) print "5 points for pushing on the depression^"; if (trans_crystal.beamscore == false) print "5 points for getting the torch lit^"; if (s_egg.eggscrd == false) print "5 points for obtaining the Spitter's egg^"; if (ralckor.dead) print "5 points for getting rid of the Ralckor and Spitter^"; if (adar has general) print "5 points for freeing Captain Adar^"; if (solace_cube has general) print "5 points for obtaining the small black cube^"; if (unholy_shrine.unseen == false) print "5 points for entering the pit^"; if (statue.notaken == false) print "5 points for taking the idol^"; if (secret_tunnel2 has general) print "5 points for getting past the floor trap^"; if (orb.orbtaken == false) print "5 points for obtaining the glowing orb^"; if (deadp_obj.lookat == false) print "5 points for seeing the vision in the pit^"; if (vplats_city.acscore == false) print "5 points for seeing the vision in the city^"; if (north_cell.skelscore == false) print "5 points for seeing the vision in the skeleton's eyes^"; if (chasm.blown) print "5 points for filling in the chasm^"; if (adar.healed) print "5 points for bandaging Captain Adar's broken arm^"; if (autocoolant has general) print "5 points for putting the coolant on the APU^"; if (cwire.cwscore == false) print "5 points for fixing the control panel^"; if (al_gen.ps_scored == false) print "5 points for staying in the smoking ship^"; if (al_arm.fixed) print "5 points for fixing the hydraulic piston^"; if (crashed_ship.airlockopen || al_door.albroken) print "5 points for opening the cargo hatch^"; if (e_beacon.eb_endscr) print "5 points for turning on the emergency beacon^"; ]; [ GameCredits; style fixed; print "^Authors: ^ Dark Star ^ Peter Mattsson ^ ^Proofreader: ^ Carole James ^ ^Alpha Testers: ^ Don Luis ^ Felix Plesoianu ^ Matthew Funke ^ Vivienne Dunstan ^ Zach Flynn^"; if (PageBreak()) jump end1; .end1; print "^ Beta Testers: ^ Chris Moody ^ Gemma Bristow ^ J.D. Clemens ^ Katzy ^ Stephan Schonberg ^ Will Shattuck ^^ Gamma Testers: ^ Cathy Saxton ^ David Fletcher ^ Jimmy Maher ^ Sidney Merk ^^ Special Thanks: ^ Graham Nelson ^ Stephen Granade ^^ Lucian P. Smith ^ & the IF Beta Site"; style roman; ""; ]; [ GameEnd vpass; deadflag = 2; score = score + 5; e_beacon.eb_endscr = true; if (vpass == 2) { print "~I got this,~ Adar says as "; PHeShe(); print " slams the button with the edge of "; if (m_base.ch_maidens) print "her"; else print "his"; print " palm."; } else { if (vpass == 1) { print "~I suppose you want me to do something with this,~ Captain Adar asks as "; PHeShe(); print " takes the glowing orb from you. ~Well maybe I can.~^^"; if (m_base.ch_maidens) { print "She pulls out her"; } else { print "He pulls out his"; } print " universal tool and opens a panel underneath the emergency beacon. Reaching up "; PHeShe(); print " pulls out the wires that are connected to it, and dikes them off. ~Well, here goes nothing,~ "; if (m_base.ch_maidens) { print "she says as she"; } else { print "he says as he"; } print " shoves the wires into the glowing light. ^^With power from the orb, the emergency beacon turns on easily."; } else { print "You press the button, and it starts blinking reassuringly, telling you that the mayday message is on its way."; } } print "^^After that there's nothing to do but wait, so"; if (adar has general) print " the two of"; print " you slump down in a shadowy corner of the cockpit, trying to stay out of the heat. ^^Hours seem to pass, but finally you hear a ship's retro-thrusters kick in as it touches down on the hot desert sands. "; if (adar has general) { print "Captain Adar is the first to "; if (m_base.ch_maidens) { print "her"; } else { print "his"; } print " feet and you follow as "; PHeShe(); print " rushes"; } else { print "You leap to your feet and rush"; } print " outside; it looks like a Zolien transport has answered your distress call. Hearing the commotion, the wart-covered, green-skinned, bug-nosed pilot pops his head out. He takes one look at your dishevelled state and says, ~We better be talking cash!~ ^^It's been quite a day, but at least you've found a way off this planet, and hopefully it won't be long before you're back with the Armada. "; if (adar has general) { print "You look across at Captain Adar, smiling with relief, and see "; if (m_base.ch_maidens) { print "her"; } else { print "him"; } print " smile in response as the two of you stride up the access ramp to safety. As you go, you can't help but wonder "; if (adar.tkcrw == false) "what happened to the crew of Adar's transport."; "what adventures tomorrow will bring."; } "As you walk up the access ramp to safety, you can't help but wonder about the spitter's last victim. Could you have done something? You'll never know, now, just as you'll never know what happened to the crew of the abandoned transport."; ]; [ GamingSub; print "As in any branch of service, there are rules that you are supposed to follow in the universe of ~Across The Stars~. Now and again, however, circumstances will demand that you bend those rules, perhaps even break them. Using your initiative will be essential if you want to make progress: just think, ~What would the Captain do?~. It's also worth remembering that some of the challenges you will face can be solved in more than one way. ^^If you get stuck, the game features built-in hints: THINK and you will be reminded of your next main goal, nudging you in the right direction. You should also take advantage of your trusty OmniTrans: it can help you to translate any alien languages you may come across, as well as being packed with essential knowledge and a lot more besides.^^"; if (PageBreak()) jump end; "If you are unsure how to say what you want to do, it might help to look at the NEW VERBS the game understands. ^^Above all, poke and prod. We try to put a lot into our games, and you never know what might turn up. As a last resort you can fall back on the InvisiClues that came with this game, but don't turn to them too soon. If you look around enough, the clues are there."; .end; ""; ]; [ GameIntro k r; @erase_window -1; k = 0->33; if (k > 30) k = (k-30)/2; ! @set_colour 7 1; print "^^^^^^^^^^"; style fixed; font off; spaces(k-7); print " Across The Stars^"; spaces(k-7); print " -----------------------------^"; spaces(k-7); print " The Ralckor Incident^^"; spaces(k-7); print " A Science Fiction Adventure^^^"; spaces(k-7); print "(c) Infodarkness Productions 2007 - 2010^^"; spaces(k-7); print " [Press any key to continue... ]"; style fixed; font off; box "~We only wanted to travel across the stars," "conquer new lands, see new things...~" "" " - Captain La'Crainte," " Xulthe'en Cruiser Nardox"; !box " Language is to the mind more than" !" light is to the eye." !"" !" - William Gibson."; @read_char 1 -> r; @erase_window -1; ]; [ GetDownSub; "But you aren't in anything at the moment."; ]; [ GlowRed; st2_glow.short_name = "red glow"; st2_glow.&name-->0 = 'warm'; st2_glow.&name-->1 = 'soft'; st2_glow.&name-->2 = 'red'; ]; [ GlowOrange; st2_glow.short_name = "orange light"; st2_glow.&name-->0 = 'faint'; st2_glow.&name-->1 = 'orange'; st2_glow.&name-->2 = 'light'; ]; [ GrappleSub; "That's not how you use that object."; ]; [ GuardReply; if (imaiden == 9) imaiden = -1; imaiden++; switch (maiden_reply-->imaiden) { 1: "~Your focus needs to be on the pear,~ he says, instructing you."; 2: "~I know your concern lies elsewhere,~ Kor states with a brutish edge."; 3: "~Think about what I offer instead,~ Kor insists, ~I can meet all your needs.~"; 4: "~Look,~ he says, gazing deep within your soul, ~I can fulfill your desire, eat the juicy red pear.~"; 5: "~Does not my gift fulfill all desire,~ Kor asks with noble confidence."; 6: "~I know that is not what your soul truly desires,~ he says, looking into what you are."; 7: "~But I know you really want to eat the juicy red pear,~ he contends."; 8: "~Once you have consumed my gift,~ Kor states, looking directly into your soul, ~all your questions will be answered.~"; 9: "~Eat from what I offer,~ he states, with a slight nod of reassurance, ~it brings the fullness you seek.~"; 10: "~Do not concern yourself with such things,~ he commands, sternly."; } ]; [ HelloSub; "Hello, and welcome to ~Across The Stars.~ A space adventure unlike any you've ever seen."; ]; [ HelloTopic; switch(scope_stage) { 1: rfalse; 2: ScopeWithin(Topics); rtrue; 3: "Hello, and welcome to ~Across The Stars.~ A space adventure unlike any you've ever seen."; } ]; [ HelpSub; if (player in dreambridge) { DreamEnds(7); rtrue; } "Try using the verb THINK. If that doesn't work use the InvisiClue file that came with the game."; ]; [ HideSub; "You can't hide in ", (a) noun, "."; ]; [ HideRoomSub; "You can't hide here."; ]; [ HSailorSub; "Nothing happens here."; ]; [ HugSub; "Keep your mind on the game."; ]; [ InfoSub; if (player in dreambridge) { DreamEnds(7); rtrue; } AboutGame(); ]; [ InSpit; itakegg++; StartDaemon(sm_eggs); sandworm.threatened = true; ]; [ InventMove t x y z dt; give milpack open; x = 0; while (x < t) { y = 0; if (y == 0) { dt = 0; objectloop (z in player && z ofclass Shale) { y = 1; dt = 1; move z to milpack; } if (dt == 1) print "(first moving the shale to the field pack)^"; } if (p_badge in player && y == 0) { y = 1; move p_badge to uniform; print "(first putting your ident badge back in your pocket)^"; } if (omni_trans in player && y == 0) { if (omni_trans has worn) { } else { y = 1; give omni_trans worn; print "(first putting the OmniTrans on)^"; } } if (datapad in player && y == 0) { y = 1; move datapad to milpack; print "(first moving the data pad to the field pack)^"; } if (zipchip in player && y == 0) { y = 1; move zipchip to milpack; print "(first moving the zipchip to the field pack)^"; } if (halfshelter in player && y == 0) { y = 1; move halfshelter to milpack; print "(first moving the half shelter to the field pack)^"; } if (knife in player && y == 0) { y = 1; move knife to milpack; print "(first moving the survival knife to the field pack)^"; } if (playbeing in player && y == 0) { y = 1; move playbeing to milpack; print "(first moving the playbeing to the field pack)^"; } if (firstaidwraps in player && y == 0) { y = 1; move firstaidwraps to milpack; print "(first moving the first-aid wraps to the field pack)^"; } if (og_datacard in player && y == 0) { y = 1; move og_datacard to milpack; print "(first moving the Omnibus Galacticus datacard to the field pack)^"; } if (coffee_cup in player && y == 0) { y = 1; move coffee_cup to milpack; print "(first moving the large mug to the field pack)^"; } if (journal in player && y == 0) { y = 1; move journal to milpack; print "(first moving the journal to the field pack)^"; } if (scorchedtome in player && y == 0) { y = 1; move scorchedtome to milpack; print "(first moving the scorched tome to the field pack)^"; } if (bookoflydin in player && y == 0) { y = 1; move bookoflydin to milpack; print "(first moving the burnt tome to the field pack)^"; } if (torntome in player && y == 0) { y = 1; move torntome to milpack; print "(first moving the torn tome to the field pack)^"; } if (blacktome in player && y == 0) { y = 1; move blacktome to milpack; print "(first moving the blackened tome to the field pack)^"; } if (detonator in player && y == 0) { y = 1; move detonator to milpack; print "(first moving the detonator to the field pack)^"; } if (wrench in player && y == 0) { y = 1; move wrench to milpack; print "(first moving the universal tool to the field pack)^"; } if (prybar in player && y == 0) { y = 1; move prybar to milpack; print "(first moving the pry bar to the field pack)^"; } if (solace_cube in player && y == 0) { y = 1; move solace_cube to milpack; print "(first moving the small black cube to the field pack)^"; } if (orb in player && y == 0) { y = 1; move orb to milpack; print "(first moving the glowing orb to the field pack)^"; } if (medkit in player && y == 0) { y = 1; move medkit to milpack; print "(first moving the med kit to the field pack)^"; } if (autocoolant in player && y == 0) { y = 1; move autocoolant to milpack; print "(first moving the autocoolant to the field pack)^"; } if (cry_stand in player && y == 0) { y = 1; move cry_stand to milpack; print "(first moving the stand to the field pack)^"; } if (rope in player && y == 0) { y = 1; move rope to milpack; print "(first moving the rope to the field pack)^"; } if (trans_crystal in player && y == 0) { y = 1; move trans_crystal to milpack; print "(first moving the clear-red crystal to the field pack)^"; } if (grappling_hook in player && y == 0) { y = 1; move grappling_hook to milpack; print "(first moving the makeshift grappling hook to the field pack)^"; } if (statue in player && y == 0) { y = 1; move statue to milpack; print "(first moving the idol to the field pack)^"; } if (obsidian_stone in player && y == 0) { y = 1; move obsidian_stone to milpack; print "(first moving the obsidian necklace to the field pack)^"; } if (ruby in player && y == 0) { y = 1; move ruby to milpack; print "(first moving the ruby necklace to the field pack)^"; } if (small_pearl in player && y == 0) { y = 1; move small_pearl to milpack; print "(first moving the pearl necklace to the field pack)^"; } if (diamond in player && y == 0) { y = 1; move diamond to milpack; print "(first moving the diamond necklace to the field pack)^"; } x = x + 1; } rtrue; ]; [ InventMSCrate x y; ! Supporters if (autocoolant in sm_alelectric) move autocoolant to al_gen; if (bolt in sm_arm) move bolt to al_arm; ! Cargo Hold Objects if (jmetal in sm_airlock) move jmetal to air_lock; if (alhole in sm_airlock) move alhole to air_lock; if (intsmokeobj2 in sm_airlock) move intsmokeobj2 to air_lock; if (adar in sm_airlock) move adar to air_lock; ! Movable Objects: 31 if (omni_trans in sm_airlock) move omni_trans to air_lock; if (og_datacard in sm_airlock) move og_datacard to air_lock; if (coffee_cup in sm_airlock) move coffee_cup to air_lock; if (wrench in sm_airlock) move wrench to air_lock; if (prybar in sm_airlock) move prybar to air_lock; if (milpack in sm_airlock) move milpack to air_lock; if (playbeing in sm_airlock) move playbeing to air_lock; if (trans_crystal in sm_airlock) move trans_crystal to air_lock; if (obsidian_stone in sm_airlock) move obsidian_stone to air_lock; if (ruby in sm_airlock) move ruby to air_lock; if (small_pearl in sm_airlock) move small_pearl to air_lock; if (diamond in sm_airlock) move diamond to air_lock; if (grappling_hook in sm_airlock) move grappling_hook to air_lock; if (solace_cube in sm_airlock) move solace_cube to air_lock; if (orb in sm_airlock) move orb to air_lock; if (torch in sm_airlock) move torch to air_lock; if (firstaidwraps in sm_airlock) move firstaidwraps to air_lock; if (autocoolant in sm_airlock) move autocoolant to air_lock; if (halfshelter in sm_airlock) move halfshelter to air_lock; if (knife in sm_airlock) move knife to air_lock; if (medkit in sm_airlock) move medkit to air_lock; if (journal in sm_airlock) move journal to air_lock; if (datapad in sm_airlock) move datapad to air_lock; if (zipchip in sm_airlock) move zipchip to air_lock; if (bookoflydin in sm_airlock) move bookoflydin to air_lock; if (scorchedtome in sm_airlock) move scorchedtome to air_lock; if (torntome in sm_airlock) move torntome to air_lock; if (blacktome in sm_airlock) move blacktome to air_lock; if (rope in sm_airlock) move rope to air_lock; if (ochip in sm_airlock) move ochip to air_lock; if (cwire in sm_airlock) move cwire to air_lock; objectloop (x in sm_airlock && x ofclass Shale) move x to air_lock; if (spacesuit in sm_airlock) move spacesuit to air_lock; if (bolt in sm_airlock) move bolt to air_lock; ! Objects on the large crate: 31 if (omni_trans in sm_scrate) move omni_trans to smallcrate; if (og_datacard in sm_scrate) move og_datacard to smallcrate; if (coffee_cup in sm_scrate) move coffee_cup to smallcrate; if (wrench in sm_scrate) move wrench to smallcrate; if (prybar in sm_scrate) move prybar to smallcrate; if (milpack in sm_scrate) move milpack to smallcrate; if (playbeing in sm_scrate) move playbeing to smallcrate; if (trans_crystal in sm_scrate) move trans_crystal to smallcrate; if (obsidian_stone in sm_scrate) move obsidian_stone to smallcrate; if (ruby in sm_scrate) move ruby to smallcrate; if (small_pearl in sm_scrate) move small_pearl to smallcrate; if (diamond in sm_scrate) move diamond to smallcrate; if (grappling_hook in sm_scrate) move grappling_hook to smallcrate; if (solace_cube in sm_scrate) move solace_cube to smallcrate; if (orb in sm_scrate) move orb to smallcrate; if (spacesuit in sm_scrate) move spacesuit to smallcrate; if (torch in sm_scrate) move torch to smallcrate; if (firstaidwraps in sm_scrate) move firstaidwraps to smallcrate; if (autocoolant in sm_scrate) move autocoolant to smallcrate; if (halfshelter in sm_scrate) move halfshelter to smallcrate; if (knife in sm_scrate) move knife to smallcrate; if (medkit in sm_scrate) move medkit to smallcrate; if (journal in sm_scrate) move journal to smallcrate; if (datapad in sm_scrate) move datapad to smallcrate; if (zipchip in sm_scrate) move zipchip to smallcrate; if (bookoflydin in sm_scrate) move bookoflydin to smallcrate; if (scorchedtome in sm_scrate) move scorchedtome to smallcrate; if (torntome in sm_scrate) move torntome to smallcrate; if (blacktome in sm_scrate) move blacktome to smallcrate; if (rope in sm_scrate) move rope to smallcrate; if (ochip in sm_scrate) move ochip to smallcrate; if (cwire in sm_scrate) move cwire to smallcrate; if (bolt in sm_scrate) move bolt to smallcrate; objectloop (y in sm_scrate && y ofclass Shale) move y to smallcrate; ]; [ InventMSMAir x y; ! Supporters if (autocoolant in al_gen) move autocoolant to sm_alelectric; if (bolt in al_arm) move bolt to sm_arm; ! Cargo Hold Objects if (jmetal in air_lock) move jmetal to sm_airlock; if (alhole in air_lock) move alhole to sm_airlock; if (intsmokeobj2 in air_lock) move intsmokeobj2 to sm_airlock; if (adar in air_lock) move adar to sm_airlock; ! Movable Objects: 31 if (omni_trans in air_lock) move omni_trans to sm_airlock; if (og_datacard in air_lock) move og_datacard to sm_airlock; if (coffee_cup in air_lock) move coffee_cup to sm_airlock; if (wrench in air_lock) move wrench to sm_airlock; if (prybar in air_lock) move prybar to sm_airlock; if (milpack in air_lock) move milpack to sm_airlock; if (playbeing in air_lock) move playbeing to sm_airlock; if (trans_crystal in air_lock) move trans_crystal to sm_airlock; if (obsidian_stone in air_lock) move obsidian_stone to sm_airlock; if (ruby in air_lock) move ruby to sm_airlock; if (small_pearl in air_lock) move small_pearl to sm_airlock; if (diamond in air_lock) move diamond to sm_airlock; if (grappling_hook in air_lock) move grappling_hook to sm_airlock; if (solace_cube in air_lock) move solace_cube to sm_airlock; if (orb in air_lock) move orb to sm_airlock; if (torch in air_lock) move torch to sm_airlock; if (medkit in air_lock) move medkit to sm_airlock; if (firstaidwraps in air_lock) move firstaidwraps to sm_airlock; if (autocoolant in air_lock) move autocoolant to sm_airlock; if (halfshelter in air_lock) move halfshelter to sm_airlock; if (knife in air_lock) move knife to sm_airlock; if (journal in air_lock) move journal to sm_airlock; if (datapad in air_lock) move datapad to sm_airlock; if (zipchip in air_lock) move zipchip to sm_airlock; if (bookoflydin in air_lock) move bookoflydin to sm_airlock; if (scorchedtome in air_lock) move scorchedtome to sm_airlock; if (torntome in air_lock) move torntome to sm_airlock; if (blacktome in air_lock) move blacktome to sm_airlock; if (rope in air_lock) move rope to sm_airlock; if (ochip in air_lock) move ochip to sm_airlock; if (cwire in air_lock) move cwire to sm_airlock; objectloop (x in air_lock && x ofclass Shale) move x to sm_airlock; if (spacesuit in air_lock) move spacesuit to sm_airlock; if (bolt in air_lock) move bolt to sm_airlock; ! Objects on the large crate: 31 if (omni_trans in smallcrate) move omni_trans to sm_scrate; if (og_datacard in smallcrate) move og_datacard to sm_scrate; if (coffee_cup in smallcrate) move coffee_cup to sm_scrate; if (wrench in smallcrate) move wrench to sm_scrate; if (prybar in smallcrate) move prybar to sm_scrate; if (milpack in smallcrate) move milpack to sm_scrate; if (playbeing in smallcrate) move playbeing to sm_scrate; if (trans_crystal in smallcrate) move trans_crystal to sm_scrate; if (obsidian_stone in smallcrate) move obsidian_stone to sm_scrate; if (ruby in smallcrate) move ruby to sm_scrate; if (small_pearl in smallcrate) move small_pearl to sm_scrate; if (diamond in smallcrate) move diamond to sm_scrate; if (grappling_hook in smallcrate) move grappling_hook to sm_scrate; if (solace_cube in smallcrate) move solace_cube to sm_scrate; if (orb in smallcrate) move orb to sm_scrate; if (spacesuit in smallcrate) move spacesuit to sm_scrate; if (torch in smallcrate) move torch to sm_scrate; if (medkit in smallcrate) move medkit to sm_scrate; if (firstaidwraps in smallcrate) move firstaidwraps to sm_scrate; if (autocoolant in smallcrate) move autocoolant to sm_scrate; if (halfshelter in smallcrate) move halfshelter to sm_scrate; if (knife in smallcrate) move knife to sm_scrate; if (journal in smallcrate) move journal to sm_scrate; if (datapad in smallcrate) move datapad to sm_scrate; if (zipchip in smallcrate) move zipchip to sm_scrate; if (bookoflydin in smallcrate) move bookoflydin to sm_scrate; if (scorchedtome in smallcrate) move scorchedtome to sm_scrate; if (torntome in smallcrate) move torntome to sm_scrate; if (blacktome in smallcrate) move blacktome to sm_scrate; if (rope in smallcrate) move rope to sm_scrate; if (ochip in smallcrate) move ochip to sm_scrate; if (cwire in smallcrate) move cwire to sm_scrate; if (bolt in smallcrate) move bolt to sm_scrate; objectloop (y in smallcrate && y ofclass Shale) move y to sm_scrate; ]; [ InventTotal i x; i = 0; if (omni_trans has worn) { } else { if (omni_trans in player) i++; } if (og_datacard in player) i++; if (uniform in player or spacesuit) i++; if (p_badge in player) i++; if (coffee_cup in player) i++; if (datacard in player) i++; if (ident_badge in player) i++; if (detonator in player) i++; if (wrench in player) i++; if (prybar in player) i++; if (ce_badge in player) i++; if (milpack in player) i++; if (playbeing in player) i++; if (r_fruit in player) i++; if (w_fruit in player) i++; if (trans_crystal in player) i++; if (obsidian_stone in player) i++; if (obsidian_stone in player && obsidian_stone has worn) i--; if (ruby in player) i++; if (ruby in player && ruby has worn) i--; if (small_pearl in player) i++; if (small_pearl in player && small_pearl has worn) i--; if (diamond in player) i++; if (diamond in player && diamond has worn) i--; if (grappling_hook in player) i++; if (statue in player) i++; if (solace_cube in player) i++; if (orb in player) i = i + 2; if (spacesuit in player) i++; if (torch in player) i++; if (medkit in player) i++; if (firstaidwraps in player) i++; if (autocoolant in player) i++; if (halfshelter in player) i++; if (knife in player) i++; if (journal in player) i++; if (datapad in player) i++; if (zipchip in player) i++; if (bookoflydin in player) i++; if (scorchedtome in player) i++; if (torntome in player) i++; if (blacktome in player) i++; if (mal_spacesuit in player) i++; if (rope in player) i++; if (ochip in player) i++; if (cwire in player) i++; if (cry_stand in player) i++; if (loxtank in player) i = i + 2; objectloop (x in player && x ofclass Shale) i++; return i; ]; [ JournalC1; journal.ch1read = true; style fixed; print "Entry I: ^^Today the Book of Lydin was passed to me, an honor I had hardly dared hope for these long years. Though it comes at a time of great sadness, and we all mourn the passing of Mistress Eridana, I draw strength from our common grief: she was loved, our cause is just, and I must carry forward the light. An awesome responsibility has been bestowed upon me, the responsibility to carry on the traditions and the beliefs of the Lydinae, and I must not fail us. As I have been inspired by Eridana's journal, I hope my own humble writings shall contain something of value for those who would follow me. ^^May Eridana's soul find peace with the Great Elders."; style roman; ""; ]; [ JournalC2; journal.ch2read = true; style fixed; print "Entry II: ^^Though I bear the title of Grand Mistress, I do not bear the responsibility of leadership alone: we are four, in all. Besides myself, the Four consist of the Mistresses of the Earth, Sky, and Flame. Each Mistress must be pure, untouched by man. She must be committed to the order, and willing to lay down her life. She must be able to keep the secrets of the order, never speaking of them but in the presence of the four alone. She must live a simple life of prayer and meditation. Above all, she must learn Balance. ^^One who would join the priesthood must first face the Four and, if found worthy, she will enter the tutelage of the Mistress of Earth. She will be given the obsidian necklace and reside in the earth room while she meditates on peace and war. In time, she will earn the title ~Child of the Earth~. If she wishes to continue, she must set aside the obsidian necklace and take the pearl necklace of the Mistress of the Sky. When she has meditated fully upon the forces of light and darkness in the sky room, she will ascend to the title ~Child of the Sky~. ^^With great study, a priest can ascend even further, to become a ~Child of the Flame~. To achieve this, she must work with the Mistress of the Flame, taking the ruby necklace and entering the fire room to meditate on healing and destruction. ^^The highest place within the order, few come to know. To proceed to this honored position, a priest must first face the Test of Trials, four in all, testing strength, virtue, will, and endurance. If she passes, she will become a pupil of the Grand Mistress, donning the diamond necklace and retreating to the room of the sacred hypercube to meditate on cause and effect. Should she complete this final course of study, she will attain the highest position in the Lydinae outside the Four, and be tasked with spreading the Message to the faithless in the Untamed Lands. ^^I was unable to reach this blessed state, but we are in such disarray that the mantle of leadership was given to me anyway. May the Mother grant me the strength to lead in these troubled times."; style roman; ""; ]; [ JournalC3; journal.ch3read = true; style fixed; print "Entry III: ^^Panic is spreading through the ranks of our humble community. The Night Seers foretell an impending doom. We fear that Decorous has once more grown strong and plans to rain fire down upon us from the sky, destroying everything we have worked for. Only the Orb of Inner Light can save us now, and we must prepare to summon it. For that, the Protector must have the Solace Cube, to guard against the spirits."; style roman; ""; ]; [ JournalC4; journal.ch4read = true; style fixed; print "Entry IV: ^^Each of us were at station outside our meditation rooms, prepared for the Rite of Solace. It is a simple ritual, whereby the Mistresses of Earth, Sky, and Flame chant, in turn, ~I lay down my burden for thee, O Mother of us all~ and lay their necklaces down upon their pedestals. Finally, I too completed my chant and laid down my necklace and, for the first time in living memory, the Solace Shield came down. ^^Only the Solace Cube can send the spirits to their rest, allowing the Protector to bring forth the Orb of Inner Light to replace the cube upon the shrine. So did we plan to call Sucored to our aid, but we reckoned without the followers of Decorous. ^^Many years ago, a number of our order broke away from the way of the Lydinae to form an unholy cult, glorifying Decorous. They too were aware of the coming fire, but saw it as a plan to cleanse the world of our kind, that they might prosper. Down in the ~Shard's Cradle~, they performed their evil rites. Where we laid down our burdens, they relieved others of theirs, upon the points of sharp spikes. ^^At the bidding of Decorous, they caused the rock to fall down, sealing us in the Tranquility Chamber and blocking the way to the Orb. They had no desire for Sucored to interfere with their despicable plans. ^^This is what happens when the faithless fail to seek balance. Only the Orb of Inner Light will save us. It always has."; style roman; ""; ]; [ JournalC5; journal.ch5read = true; style fixed; print "Entry V: ^^Hours have passed, and the air is growing thin. We will surely perish, so I leave this final entry in the hope that it may someday be found by one sympathetic to our plight. Though the fire will surely have come by the time you read this, it may yet not be too late to bring the aid of Sucored to the World. Take the Solace Cube, O humble traveler, and bring the Orb to its rightful place upon the shrine. The blessings of Sucored, and of the Lydinae, will be upon you."; style roman; ""; ]; [ JrnlTest i; i = 3; if (oldpage in journal) i--; if (blchpage in journal) i--; if (brntpage in journal) i--; if (i == 0) rtrue; rfalse; ]; [ KickSub; if (uniform has worn || player in dreambridge) "You can't kick ", (the) noun, ", it would mess up that spit shine polish."; "You can't kick that."; ]; [ KorAnswer npass; switch(npass) { t_no: "~It is my charge to change your mind,~ he responds."; t_yes: "~I am glad that you will enjoy its nectar,~ he says, offering you the red pear."; t_hi: "~The honor is mine,~ Kor says, with a bow, ~enjoy the gift I offer.~"; t_goodbye: "~Do not go with such haste,~ Kor replies, ~I only want to take care of you.~"; t_sorry: "~Of course you are not,~ he says, ~now quit playing games and take my gift.~"; } return GuardReply(); ]; [ LookBehindSub; "You find nothing of interest."; ]; [ LockerEmpty i; i = 0; if (og_datacard in galley_closet) i++; if (coffee_cup in galley_closet) i++; if (datacard in galley_closet) i++; if (ident_badge in galley_closet) i++; if (detonator in galley_closet) i++; if (wrench in galley_closet) i++; if (prybar in galley_closet) i++; if (milpack in galley_closet) i++; if (playbeing in galley_closet) i++; if (halfshelter in galley_closet) i++; if (knife in galley_closet) i++; if (i>0) rfalse; rtrue; ]; [ LoxPour; loxtank.pour = true; al_door.&name-->4 = 'frozen'; if (loxtank.tankopen) print "Carefully"; else print "With a quick turn of a valve"; print " you lift the heavy tank above your shoulder, "; if (loxtank.tankopen == false) print "carefully "; "pouring the dangerous liquid all over the cargo hatch, freezing the mechanics in place."; ]; [ LUGalley; print "You find nothing underneath ", (the) self, ", least of which a spare cubit.^"; if (robowash.working) Robotalk(); rtrue; ]; [ LW_dep; if (wt_depression.foundsecret) "There's a secret passage where the depression once blocked the way."; "On closer inspection, what initially looked like a depression is actually a pile of stones held together with a rough sand mortar. Cracked now by time, it looks to have been erected in haste."; ]; [ MagicSub; "Sorry, this is science fiction."; ]; [ MaidenAnswer npass; switch(npass) { t_no: "~I am sure I can change your mind,~ she responds, with a coy smile."; t_yes: "~Then enjoy its nectar,~ Ral says, offering you the red apple."; t_hi: "~It is my pleasure,~ Ral says, with a smile, ~ecstasy is within the gift that I offer.~"; t_goodbye: "~Do not leave me,~ Ral quickly responds, ~I only want to please you.~"; t_sorry: "~I know you are not,~ she retorts, ~so quit playing games and partake of my gift.~"; } return MaidenReply(); ]; [ MaidenClear; gone_maidens.&name-->0 = '1920ph'; gone_maidens.&name-->1 = '1921ph'; gone_maidens.&name-->2 = '1922ph'; gone_maidens.&name-->3 = '1923ph'; gone_maidens.&name-->4 = '1924ph'; gone_maidens.&name-->5 = '1925ph'; gone_maidens.&name-->6 = '1926ph'; gone_maidens.&name-->7 = '1927ph'; gone_maidens.&name-->8 = '1928ph'; gone_maidens.&name-->9 = '1929ph'; gone_maidens.&name-->10 = '1930ph'; gone_maidens.&name-->11 = '1931ph'; gone_maidens.&name-->12 = '1932ph'; gone_maidens.&name-->13 = '1933ph'; ]; [ MaidenReply; if (imaiden == 9) imaiden = -1; imaiden++; switch (maiden_reply-->imaiden) { 1: "~Focus instead, upon the juicy red apple,~ she says, smiling at you."; 2: "~You do not truly care about that,~ she retorts."; 3: "~Think of my gift instead,~ she smiles softly, ~It will answer all your dreams.~"; 4: "~Please,~ she pleads, ~I have something greater than that, eat of my fruit.~"; 5: "~I know that my gift fulfills all desire,~ Ral smiles, looking up at you with doe eyes."; 6: "~But your soul cries out for so much more,~ she says, reading you like a book."; 7: "~But I know that you really want to eat the fruit,~ Ral contends."; 8: "~Eat of the red apple and all your questions will be answered,~ she softly whispers."; 9: "~Have you not seen my gift,~ Ral asks, urging you to take the fruit, ~it will bring the fullness you seek.~"; 10: "~Don't concern yourself with such things,~ she says, coldly."; } ]; [ MainPrint t x y z dt; give milpack open; x = 0; while (x < t) { y = 0; if (datapad in player && y == 0) { y = 1; move datapad to milpack; print ", data pad"; } if (zipchip in player && y == 0) { y = 1; move zipchip to milpack; print ", zipchip"; } if (halfshelter in player && y == 0) { y = 1; move halfshelter to milpack; print ", half shelter"; } if (knife in player && y == 0) { y = 1; move knife to milpack; print ", survival knife"; } if (playbeing in player && y == 0) { y = 1; move playbeing to milpack; print ", playbeing"; } if (firstaidwraps in player && y == 0) { y = 1; move firstaidwraps to milpack; print ", first-aid wraps"; } if (og_datacard in player && y == 0) { y = 1; move og_datacard to milpack; print ", Omnibus Galacticus datacard"; } if (journal in player && y == 0) { y = 1; move journal to milpack; print ", journal"; } if (scorchedtome in player && y == 0) { y = 1; move scorchedtome to milpack; print ", scorched tome"; } if (bookoflydin in player && y == 0) { y = 1; move bookoflydin to milpack; print ", burnt tome"; } if (torntome in player && y == 0) { y = 1; move torntome to milpack; print ", torn tome"; } if (blacktome in player && y == 0) { y = 1; move blacktome to milpack; print ", blackened tome"; } if (coffee_cup in player && y == 0) { y = 1; move coffee_cup to milpack; print ", large mug"; } if (detonator in player && y == 0) { y = 1; move detonator to milpack; print ", detonator"; } if (wrench in player && y == 0) { y = 1; move wrench to milpack; print ", universal tool"; } if (prybar in player && y == 0) { y = 1; move prybar to milpack; print ", pry bar"; } if (solace_cube in player && y == 0) { y = 1; move solace_cube to milpack; print ", small black cube"; } if (orb in player && y == 0) { y = 1; move orb to milpack; print ", glowing orb"; } if (medkit in player && y == 0) { y = 1; move medkit to milpack; print ", med kit"; } if (autocoolant in player && y == 0) { y = 1; move autocoolant to milpack; print ", autocoolant"; } if (cry_stand in player && y == 0) { y = 1; move cry_stand to milpack; print ", stand"; } if (rope in player && y == 0) { y = 1; move rope to milpack; print ", rope"; } if (trans_crystal in player && y == 0) { y = 1; move trans_crystal to milpack; print ", clear-red crystal"; } if (grappling_hook in player && y == 0) { y = 1; move grappling_hook to milpack; print ", makeshift grappling hook"; } if (statue in player && y == 0) { y = 1; move statue to milpack; print ", statue"; } if (obsidian_stone in player && y == 0) { y = 1; move obsidian_stone to milpack; print ", obsidian stone"; } if (ruby in player && y == 0) { y = 1; move ruby to milpack; print ", ruby"; } if (small_pearl in player && y == 0) { y = 1; move small_pearl to milpack; print ", pearl"; } if (diamond in player && y == 0) { y = 1; move diamond to milpack; print ", diamond"; } if (y == 0) { dt = 0; objectloop (z in player && z ofclass Shale) { dt = 1; move z to milpack; } if (dt == 1) print ", shale"; } x = x + 1; } rtrue; ]; [ MAirEnter; d_obj.&name-->5 = '0101ph'; outside_airlock.oairdis = true; print "You clump ungracefully across the floor, stumbling as you reach the hatch and go beyond the reach of the ship's artificial gravity.^"; PlayerTo(outside_airlock); rtrue; ]; [ MakeSub; "You can't do that."; ]; [ MBCavEnt; m_base.exitcav = true; m_door.short_name = "cave"; m_door.&name-->0 = 'ralckor^s'; m_door.&name-->1 = 'ralckors'; m_door.&name-->2 = 'lair'; m_door.&name-->3 = 'large'; m_door.&name-->4 = 'cave'; TempleRename(); if (mb_lake in m_base) remove mb_lake; if (mb_trees in m_base) remove mb_trees; if (mb_smdoor in m_base) remove mb_smdoor; if (mb_carvings in m_base) remove mb_carvings; if (gone_maidens in m_base) remove gone_maidens; m_base.short_name = "Cave Entrance"; ]; [ MJunction; print "You climb up the ladder.^"; PlayerTo(main_junction); rtrue; ]; [ MkGrp; if (trans_crystal in cry_stand) "The crystal blocks your attempt."; remove self; remove cry_stand; move grappling_hook to player; "You tie the rope around the crystal's cradle in a double-back square knot creating a makeshift grappling hook."; ]; [ MoveAdar n; switch (n) { 1: move adar to cavern; 2: move adar to s_tunnel; 3: move adar to w_tunnel; 4: move adar to small_room; 5: move adar to secret_tunnel1; 6: move adar to secret_chamber; 7: move adar to chasm; 8: move adar to desert_crash; 9: move adar to crashed_ship; 10: move adar to air_lock; 13: move adar to secret_tunnel2; 14: move adar to deadly_pit; 15: move adar to secret_tunnel3; 16: move adar to tranquility_chamber; 17: move adar to north_cell; 18: move adar to south_cell; 19: move adar to east_cell; 20: move adar to west_cell; } ]; [ MSignRead; "Reading clockwise, starting from the fore, there are arrows marked: ~Bridge~, ~Data Mining Center~, ~Crew Quarters~, and ~Galley~. An arrow pointing down is labeled ~Cargo Hold~, ~Main Airlock~, ~Engine Room~, and ~Armory~."; ]; [ MyThinkSub; switch (thinkpos) { 0: "What a good idea."; 1: "It might be a good idea to get out of the rack."; 2: "You should try getting the datacard up to the bridge."; 3: if (player in under_desk || PTubeTest() || (player in berth && rack.curtain_open == false)) return PPU(); "You better find a place to hide."; 4: "It would be a good idea to get out of here."; 5: "You need to get out of this hot sun."; 6: return PPU(); 7: "You need to find a way off this planet."; 8: "You need to get across the chasm."; 9: "You need to turn on the emergency beacon."; 10: "You need to get across the chasm, but it might be hard with no detonator."; 11: "You need to report to your duty station."; 12: "Hopefully you'll wake up pretty soon."; 13: "You need to find the 'safe room' just off the cargo hold."; 14: "You need to hide before the pirates come back."; 15: "Somehow you have to get past the spitter."; 16: print "You need to get Captain Adar to "; if (m_base.ch_maidens) { print "her"; } else { print "his"; } " ship."; 17: "You need to calm these restless spirits."; 18: "You need to do something about the ralckor."; 19: "You're having difficulty thinking straight right now."; 20: "You need to get the crate out of the way."; 21: if (player in cq_etube && cq_eacover.panopn == false) return PPU(); if (player in rr_etube && rr_eacover.panopn == false) return PPU(); if (player in gl_etube && gl_eacover.panopn == false) return PPU(); if (player in br_etube && br_eacover.panopn == false) return PPU(); if (player in er_etube && er_eacover.panopn == false) return PPU(); if (player in ar_etube && ar_eacover.panopn == false) return PPU(); if (player in ch_etube && ch_eacover.panopn == false) return PPU(); if (player in ma_etube && ma_eacover.panopn == false) return PPU(); "You need to find a better place to hide."; 22: "You need to start the Emergency Destruction Sequence."; } ]; [ NecklacesSub ploc os sp di rb mt df; os = 0; sp = 0; di = 0; rb = 0; mt = 0; df = 0; ploc = parent(player); if (obsidian_stone notin player or milpack && ((parent(obsidian_stone) == ploc) || (parent(parent(obsidian_stone)) == ploc))) os = 1; if (small_pearl notin player or milpack && ((parent(small_pearl) == ploc) || (parent(parent(small_pearl)) == ploc))) sp = 1; if (diamond notin player or milpack && ((parent(diamond) == ploc) || (parent(parent(diamond)) == ploc))) di = 1; if (ruby notin player or milpack && ((parent(ruby) == ploc) || (parent(parent(ruby)) == ploc))) rb = 1; mt = os + sp + di + rb; if (mt == 0) "You can't see that here."; df = ((InventTotal() + mt) - (PMAX_WEIGHT + 1)); if (df > 0) { if (milpack in player or uniform) { switch (df) { 1: InventMove(1); 2: print "(first moving "; FirstPrint(); AndPrint(); print " to the field pack)^"; 3: print "(first moving "; FirstPrint(); MainPrint(1); AndPrint(); print " to the field pack)^"; 4: print "(first moving "; FirstPrint(); MainPrint(2); AndPrint(); print " to the field pack)^"; } } else { return L__M(##Take, 12); } } if (os == 1) move obsidian_stone to player; if (sp == 1) move small_pearl to player; if (di == 1) move diamond to player; if (rb == 1) move ruby to player; if (tc_shrine.fieldon == false) { tc_shrine.fieldon = true; "As you take the necklaces, the force field surrounding the shrine fires up with an amazing display of blues, purples, greens, and reds."; } "Taken."; ]; [ NecklaceTest; if (ruby in tc_npedestal or tc_spedestal or tc_epedestal or tc_wpedestal) rtrue; if (diamond in tc_npedestal or tc_spedestal or tc_epedestal or tc_wpedestal) rtrue; if (small_pearl in tc_npedestal or tc_spedestal or tc_epedestal or tc_wpedestal) rtrue; rfalse; ]; [ NewVerbsPrint; if (player in dreambridge) "Not at this moment."; print "In addition to the usual adventurer's vocabulary, this game also understands the following verbs.^^"; style fixed; print "FORE [F] "; print "AFT [A] "; print "STARBOARD [SB] "; print "PORT [P] "; print "^"; print "CRAWL "; print "HIDE "; print "FIX "; print "FOLLOW "; print "^"; print "GRAPPLE "; print "POUR "; print "REPAIR "; print "SCAN "; print "^"; print "UNFASTEN "; print "UNPLUG "; print "UNSTRAP "; print "USE "; style roman; print "^^"; if (PageBreak()) jump end; style fixed; print "ANSWER "; print "ASK ABOUT "; print "ASK TO "; print "TELL TO "; print "^"; print "TELL ABOUT "; print "^^"; style roman; print"To talk to characters, use the ask/tell system, i.e. ASK ABOUT , or TELL ABOUT . You can also ask a character to do something, answer back to them, and show them different objects. ^^As a crewman, if only a very junior one, you are expected to understand naval directions (fore, aft, port and starboard) but you can also use compass directions if you wish. In this case, imagine that the ship is pointing north, so fore and aft are north and south, while starboard and port are east and west."; .end; style roman; ""; ]; [ NewVerbsSub; NewVerbsPrint(); ]; [ NLC; POT(); style fixed; print "No linguistic content found."; style roman; ""; ]; [ ObeDesc; print "The obelisk is made of obsidian rock, and looks untouched by time. The four of them sitting underneath the ancient ruin of the "; switch (ancientrune) { 1: print "lizard"; 2: print "man"; 3: print "woman"; 4: print "worm"; } " looks like they represent some sort of code."; ]; [ ObeliskTest; switch (ancientrune) { 1: if (st1_obelisk1.depressed == false && st1_obelisk2.depressed && st1_obelisk3.depressed == false && st1_obelisk4.depressed) rtrue; 2: if (st1_obelisk1.depressed && st1_obelisk2.depressed == false && st1_obelisk3.depressed == false && st1_obelisk4.depressed) rtrue; 3: if (st1_obelisk1.depressed && st1_obelisk2.depressed == false && st1_obelisk3.depressed && st1_obelisk4.depressed == false) rtrue; 4: if (st1_obelisk1.depressed == false && st1_obelisk2.depressed && st1_obelisk3.depressed && st1_obelisk4.depressed == false) rtrue; } rfalse; ]; [ ObjectInsert pass_second; switch (pass_second) { cq_overhead: "The overhead light is out of reach."; drinkrep: "Only cups can go in the drink dispenser."; galley_crumbs: "The crumbs are out of reach."; g_planet, bu_planet: "The planet is out of reach."; otos_ship: "The large black ship is out of reach."; desert_sun: "The sun is out of reach."; jagged_rock: "The jagged rock is out of reach."; tc_bsrail: "The broken stone railing is out of reach."; tc_ffield: "The force field is out of reach."; st1_statue: "The idol is out of reach."; tc_shrine: if (tc_shrine.fieldon) "As you try, a sharp sting burns your flesh as you touch the force field."; vp_city, vplats_city: "The city is out of reach."; vp_impact: "The crater is out of reach."; vp_desert: "The desert is out of reach."; vp_seat: move self to vplat_seats; "You drop ", (the) self, " into the stone carved seats."; vplats_cliff: remove self; "You drop ", (the) self, " into the cliff. Lost forever, a thousand feet below."; lc_tribalistic, lc_hcrune, lc_srune, lc_fcrune, lc_tmrune, lc_drune, lc_lwrune, lc_hlfcrune, lc_sqrune: "The rune is out of reach."; lc_mrune, lc_wrune, lc_crune, lc_rrune, lc_trirune, lc_hcrsurune, lc_brcrune: "The rune is out of reach."; chasmobj: remove self; "You drop ", (the) self, " into the chasm, lost forever."; robowash: "Only plates and utensils are designed to go in there."; SelfPlayer: return PNH(); videogame: "Only cubits will fit inside."; circuit_breaker: "The panel is filled with breakers, and really isn't designed to hold anything."; wt_holder: "The too big for the small hole."; al_arm: "You can't reach that from here."; sm_arm: "That doesn't fit into the piston."; proxtar: if (self == datacard) "The card can only be written to once, and (thanks to you) the prox-tar doesn't work any more anyway."; "That's not designed to fit into the prox-tar."; sr_liquid: if (self == torch or s_egg) rfalse; remove self; "You drop ", (the) self, " into the acid, watching it dissolve into nothing, lost forever."; smallcrate, sm_scrate: return PCC(); lc_beamoflight: if (self == trans_crystal or torch) rfalse; "Putting ", (the) self, " into the beam does nothing but reflect the light a little."; flow_regulator: "That's not designed to fit into there."; } rfalse; ]; [ ObjectPutOn pass_second; if (self notin player) "You need to be holding ", (the) self, " before you can put it on top of something else."; switch (pass_second) { cq_overhead: "The overhead light is out of reach."; galley_crumbs: "The crumbs are out of reach."; g_planet, bu_planet: "The planet is out of reach."; otos_ship: "The large black ship is out of reach."; desert_sun: "The sun is out of reach."; jagged_rock: "The jagged rock is out of reach."; tc_bsrail: "The broken stone railing is out of reach."; tc_ffield: "The force field is out of reach."; st1_statue: "The idol is out of reach."; tc_shrine: if (tc_shrine.fieldon) "As you try, a sharp sting burns your flesh as you touch the force field."; vp_city, vplats_city: "The city is out of reach."; vp_impact: "The crater is out of reach."; vp_desert: "The desert is out of reach."; vp_seat: move self to vplat_seats; "As you put ", (the) self, " on the edge, it falls into the seat."; vplats_cliff: remove self; "You drop ", (the) self, " into the cliff. Lost forever, a thousand feet below."; lc_tribalistic, lc_hcrune, lc_srune, lc_fcrune, lc_tmrune, lc_drune, lc_lwrune, lc_hlfcrune, lc_sqrune: "The rune is out of reach."; lc_mrune, lc_wrune, lc_crune, lc_rrune, lc_trirune, lc_hcrsurune, lc_brcrune: "The rune is out of reach."; dcrsh_chasm: "The chasm is out of reach."; sm_alelectric: "You can't reach that from here."; al_gen: move self to air_lock; print (The) self, " drops to the deck once you let go.^"; rtrue; sa_bobelisk: if (OblskTest()) { move self to sa_bobelisk; "You put ", (the) self, " on the black obelisk."; } else { move self to player; "The obelisk can only hold one item."; } lc_vampires: move self to location; print "As you try and put ", (the) self, " on the"; if (lc_vampires.anger) print " enraged"; " spirits, it slips through your fingers falling to the ground."; } rfalse; ]; [ OblskTest i x; i = 0; ! Checks that there is at least 1 Objects in the Black Obelisk if (datacard in sa_bobelisk) i++; if (omni_trans in sa_bobelisk) i++; if (coffee_cup in sa_bobelisk) i++; if (wrench in sa_bobelisk) i++; if (prybar in sa_bobelisk) i++; if (milpack in sa_bobelisk) i++; if (playbeing in sa_bobelisk) i++; if (trans_crystal in sa_bobelisk) i++; if (obsidian_stone in sa_bobelisk) i++; if (ruby in sa_bobelisk) i++; if (small_pearl in sa_bobelisk) i++; if (diamond in sa_bobelisk) i++; if (solace_cube in sa_bobelisk) i++; if (torch in sa_bobelisk) i++; if (medkit in sa_bobelisk) i++; if (firstaidwraps in sa_bobelisk) i++; if (autocoolant in sa_bobelisk) i++; if (halfshelter in sa_bobelisk) i++; if (knife in sa_bobelisk) i++; if (journal in sa_bobelisk) i++; if (spacesuit in sa_bobelisk) i++; if (orb in sa_bobelisk) i++; if (grappling_hook in sa_bobelisk) i++; if (datapad in sa_bobelisk) i++; if (bookoflydin in sa_bobelisk) i++; if (scorchedtome in sa_bobelisk) i++; if (torntome in sa_bobelisk) i++; if (blacktome in sa_bobelisk) i++; if (rope in sa_bobelisk) i++; if (loxtank in sa_bobelisk) i++; objectloop (x in sa_bobelisk && x ofclass Shale) i++; if (i == 0 ) rtrue; rfalse; ]; [ OCtoC; if (second == controlpanel or al_circuit) { if (cwire in controlpanel) { move ochip to player; "The copper wire is in the way."; } move ochip to controlpanel; "You put ", (the) self, " back into the control panel."; } rfalse; ]; [ OldManOut; MaidenClear(); TempleRename(); remove p_dais; remove p_light; remove p_table; remove p_doors; remove p_throne; remove p_windows; StopDaemon(m_base); m_base.oldman = true; gone_maidens.&name-->0 = 'bent'; gone_maidens.&name-->1 = 'old'; gone_maidens.&name-->2 = 'man'; gone_maidens.&name-->3 = 'oldman'; gone_maidens.&name-->4 = 'him'; give gone_maidens male; move mb_smdoor to m_base; move gone_maidens to m_base; gone_maidens.short_name = "old man"; give m_door ~pluralname; m_door.&name-->3 = 'open'; m_door.&name-->1 = 'hangar'; m_door.short_name = "hangar door"; m_base.short_name = "Hangar Entrance"; pantheon.short_name = "Reception Area"; move p_rctable to pantheon; move p_magazine to pantheon; move p_couch to pantheon; move p_plant to pantheon; move p_corridor to pantheon; move p_dsdoors to pantheon; move p_poster to pantheon; if (r_fruit in m_base) remove r_fruit; if (w_fruit in m_base) remove w_fruit; if (m_guards in m_base) remove m_guards; if (m_maidens in m_base) remove m_maidens; if (mb_lake in m_base) remove mb_lake; if (mb_trees in m_base) remove mb_trees; if (mb_carvings in m_base) remove mb_carvings; ]; [ OmniTest i; i = 0; if (og_datacard in omni_trans) i++; if (ident_badge in omni_trans) i++; if (zipchip in omni_trans) i++; if (i > 1) rtrue; rfalse; ]; [ OnRobot vpass; if (self has open) { give self ~open; give self ~container; self.&name-->6 = '9989ph'; self.&name-->7 = '9999ph'; print "(first closing the storage container)^"; } give self scenery; move self to galley; self.trnon = true; self.working = true; galley.workon = true; switch (vpass) { 1: print "As you turn the washer on, its"; 2: print "Before you can get a word out, the washer's"; 3: print "Before your lips hit metal, the washer's"; } " big eyes light up a bright red. ^^~A robot's work is never done,~ the robo-wash says as it hops down from the counter. Firing up his internal washer, he goes about the room collecting the plates and serving utensils left behind by the crew, mumbling, ~There's always one more dish to do.~"; ]; [ OpenCrt; if (rack.curtain_open == false) { rack.curtain_open = true; move b_hatchway to berth; move overhead_light to berth; print "(first opening the curtains)^"; } ]; [ OrbDeath vpass; deadflag = 1; switch (vpass) { 0: print "As you touch the orb one of the spirits shouts, ~You are not the Protector,~ as they all enrage"; 1: print "~You are not worthy to hold a book of such great power,~ says one of the spirits. Suddenly they all enrage"; 2: print "~How did you come across my journal,~ says one of the spirits enraging. Suddenly the other spirits erupt"; 3: print "~How can you have my necklace,~ shrieks an enraged spirit. Suddenly they all erupt"; } print ", whipping about the room frantically and stirring up the air. They fly into you, twisting organs and exciting cells, coming out the other side only to do it again. Your skin starts to superheat as you begin to cook from the outside"; if (adar has general) { print ". Captain Adar cries out, but "; PHeShe(); "'s cut short as you both ignite in painful self-combustion."; } "; but before you have a chance to cry out, you ignite in painful self-combustion."; ]; [ OrbLoc vtest; vtest = 0; if (self in secret_chamber or secret_tunnel2 or unholy_shrine) vtest++; if (self in air_lock && e_beacon.eb_notseen == false) vtest++; if (parent(self) == nothing) { if (vtest == 0) rfalse; rtrue; } if (parent(self) in secret_chamber or secret_tunnel2 or unholy_shrine) vtest++; if (parent(self) in air_lock && e_beacon.eb_notseen == false) vtest++; if (parent(parent(self)) == nothing) { if (vtest == 0) rfalse; rtrue; } if (parent(parent(self)) in secret_chamber or secret_tunnel2 or unholy_shrine) vtest++; if (parent(parent(self)) in air_lock && e_beacon.eb_notseen == false) vtest++; if (vtest == 0) rfalse; rtrue; ]; [ PABcn; if (crashed_ship.airlockopen || al_door.albroken) { if (player in crashed_ship) return GameEnd(2); "~Get in there and turn on the beacon while you have the chance,~ orders the Captain, ~who knows how long it will take until a transport finds us?~"; } if (crashed_ship.smoking) "~With smoke coming out of the cargo hold, you are going to have to open the cargo hatch in order to vent it out,~ states Captain Adar. ~Then you will be able to turn on the beacon.~"; "~If you can get the APU going, we might be able to turn on the emergency beacon,~ says Adar, hopefully."; ]; [ PAC; print "(turning off the automatic web netting with the Captain's ident badge)^"; ]; [ PACPnl; if (crashed_ship.airlockopen || al_door.albroken) "~Well, that was nearly a stroke of genius,~ smiles the Captain, ~that's three I owe you junior.~"; if (crashed_ship.smoking) "~Turning on the control panel should cause the cargo hatch to engage,~ says Captain Adar, ~but watch out for that hatch.~"; if (cwire notin controlpanel) { if (ochip in controlpanel && ochip.destroy) "~If you're having problems with the control panel,~ says Captain Adar, ~try opening it up and taking a look inside.~"; } "~The control panel will power the cargo hatch,~ says Captain Adar pausing. ~Well, that is, if the APU is operational.~"; ]; [ PaCube; "a golden hypercube."; ]; [ PAD; print "As you turn on the atomaton detonator, a small red light starts blinking"; if (self in player) ". You should probably drop it before you blow up."; "."; ]; [ PAF; if (adar.grief) { adar.gtalk = false; adar.grief = false; print "Captain Adar pulls "; if (m_base.ch_maidens) { print "herself"; } else { print "himself"; } print " together as "; PHeShe(); print " follows you.^"; } else { print "Captain Adar follows.^"; } ]; [ PaFire; "a ball of fire, burning fiercely despite the absence of any fuel."; ]; [ PAG; "All government equipment is securely bolted in place."; ]; [ PAL vpass; print "Your senses are overwhelmed for a moment, as you "; switch (vpass) { 1: print "hit"; 2: print "kick"; } print " the cargo hatch door shattering it into a million jagged pieces, falling down around you. "; if (e_beacon.eb_notseen) { CPOn(); if (adar has general) { if (player in sm_airlock) { move adar to sm_airlock; } else { move adar to air_lock; } } print "This opens up a hole in the hatch, pulling all the smoke out of it.^"; if (adar has general) "^Captain Adar returns once the air is breathable again."; rtrue; } else { "This opens up a hole in the hatch, allowing light and heat in from the harsh desert outside."; } ]; [ PaSky; "a blue sky, lightly dappled with clouds."; ]; [ PaTree; "a luxuriant tree, its roots running deep into the earth."; ]; [ PAU; "Around you, the room is literally dissolving, as if someone has poured paint-stripper all over it, revealing jagged cave walls and an earthen floor. About where the northern corridor used to be you see instead only the gaping maw of a ralckor!"; ]; [ PBA; "The spitter blocks your attempt, but you might be able to get to one of the eggs."; ]; [ PBC; print "You bypass the "; if (ochip in controlpanel) { if (ochip.destroy) print "blown "; print "operating chip"; } else { print "circuitry"; } " with the copper wire, but without power the hatch still doesn't open."; ]; [ PBDeth; deadflag = 1; " a bunch of babies burst forth looking for fresh food to feed on. They tear your limbs apart chewing through your torso, as they devour your intestines fighting over what's left of your entrails."; ]; [ PBed; print "The ~bed~ is just a ledge, that runs the length of the left-hand wall. "; if (skeley_1 in self || skeley_2 in self || skeley_3 in self || bookoflydin in self) return SearchSub(self); new_line; ]; [ PBP; "You have a strong sense that you should let it lie; let the past be."; ]; [ PBS; "You get burned with a sharp sting as you try to put your hand through the force field."; ]; [ PBadgeLook; PHi(); print "t's a standard Xulthe'en Military I.D., with your name, rank, and service number embossed upon it"; if (self in uniform) print ", which can be seen through the clear plastic of your pocket."; else print ", along with ~Clearance Level: 1~ etched into the back."; "^^Name: An Darington ^Rank: Crewman Third Class ^Service Number: 47531022-9280F ^^With typical military efficiency, they've spelt your name wrong. Again. And you can't help but feel that the 'Third' should really read 'Second' by now, if not 'First', but that's all too typical as well."; ]; [ PCA; "The connection is already broken."; ]; [ PCB; "You can't make it any bigger."; ]; [ PCC; if (parent(adar) == parent(player)) "~Don't try to put your crap in there,~ Adar says, pushing you back, ~you'll break the bio-seal.~"; "The large crate is closed."; ]; [ PCell; print " The other holds an unlit candle next to an empty stone bowl. The only decoration is a picture, just above the ~table~, "; ]; [ PCF; "You can't feel anything through the deep-space suit."; ]; [ PChip vpass; print "You look up "; style underline; if (vpass == 0) print "datacard"; else print "zipchip"; style roman; print " in the Omnibus Galacticus, and find a small section. It says that "; if (vpass == 0) print "datacards"; else print "zipchips"; " are portable memory sticks that can contain all sorts of information. The only disadvantage to them is, if you pull them out while active you can earse all the data."; ]; [ PCli; print "clearly intended for a bed."; ]; [ PCO; "The charts are blank, with no information coming in from the Sat-Net."; ]; [ PCPanel; if (e_beacon.eb_notseen) { print "Through the swirling black smoke, t"; } else { print "T"; } if (controlpanel.oburnt) { if (controlpanel has open) "he outside of the control panel looks burnt, while the device lies open giving you access to the circuitry inside."; "he outside of the control panel looks burnt, along with a large red button that is used to operate the hatch."; } if (controlpanel has open) "he control panel lies open giving you access to the circuitry inside."; "he panel consists of nothing more than a large red button to operate the cargo hatch, mounted on a small metal plate. You can see some light scoring around the edges of the plate."; ]; [ PCR; "You can't reach that from up here, you'll have to get off the large crate first."; ]; [ PCS; "Can't you see there's a skeleton here?"; ]; [ PCube; "of a golden hypercube."; ]; [ PCV; thinkpos = 18; "As you approach, a cluster of long, flexible vines whips out from the ralckor, heading in your direction. A split-second before they reach you, you manage to jump back to safety."; ]; [ PDatacard; POT(); style fixed; print "****************** Alert ****************** ^*** Priority Message: 01 *** ^*** Captain's Eyes Only *** ^******************************************* ^*** Alert: 1791 *** ^*** Dangerous object too close to ship. *** ^*** *** ^*** Collision Imminent *** ^*** Coordinates: ***"; if (piraterange == 0) { print "^*** Range: 0 Theta: ", piratetheta, " Phi: ", piratephi, " ***"; } else { if (piraterange >= 1000) { print "^*** Range: ", piraterange, " Theta: ", piratetheta, " Phi: ", piratephi, " ***"; } else { if (piraterange >= 100) { print "^*** Range: ", piraterange, " Theta: ", piratetheta, " Phi: ", piratephi, " ***"; } else { print "^*** Range: ", piraterange, " Theta: ", piratetheta, " Phi: ", piratephi, " ***"; } } } print "^*** *** ^*** !!! Take Immediate Action !!! *** ^*** *** ^*******************************************"; style roman; ""; ]; [ PDE; "In accordance with NASLemInst 11105.B and Xulthe'en Navel Reg 1552, destruction of government equipment is punishable by 15 consecutive life sentences in an inner core maximum security facility, spent in isolation. Any information gained from the destruction of said equipment cannot be disseminated to any intelligence community."; ]; [ PDL; "Doesn't look very tasty."; ]; [ PDMC; print "You look up "; style underline; print "data mining center"; style roman; print " in the Omnibus Galacticus, and find a small entry. It says that all ships within the "; style underline; print "Armada"; style roman; print " are equipped with data gathering operations that pull in numerous feeds off the "; style underline; print "Sat-Net"; style roman; ", sifting for relevant data to be forwarded to higher command."; ]; [ PDP; "They're not compatible, but even if you did get the panel powered up you'd still need to find a way to power the piston before you could open the door. The only thing around here that'll do that is the APU."; ]; [ PDskChld itest; itest = DeskTest(); if (itest == 0) { print ". "; rtrue; } print ". Also,"; SelfPlayer.droplist = true; WriteListFrom(child(desk), ENGLISH_BIT+TERSE_BIT+CONCEAL_BIT+ISARE_BIT); if (itest == 1) print " is"; else print " are"; print " placed "; if (radar.power) print "next to the charts. "; else print "on top of it. "; rtrue; ]; [ PDV; "The Captain takes a dim view of streaking, however entertaining it is for the rest of the crew. With your record, you can't afford to be caught out of uniform."; ]; [ PEBed; if (skeley_1 in self || skeley_2 in self || skeley_3 in self) return PCS(); "You lie down on the bed, but it's extremely uncomfortable, and you can't see how anybody could get any rest on something like this."; ]; [ PedPushNck vnoun; CommonPed(); print "All the pedestals jump back into their original position as you push ", (the) vnoun, " to the ground, knocking everything to the floor.^"; rtrue; ]; [ PedPutNck vnoun; CommonPed(); print "All the pedestals jump back into their original position as you put ", (the) vnoun, " to the ground, knocking everything to the floor.^"; rtrue; ]; [ PedTakNck vnoun; CommonPed(); print "All the pedestals jump back into their original position as you take ", (the) vnoun, " to the ground, knocking everything to the floor.^"; rtrue; ]; [ PET; print "A soft hum from the electrical conduit rings throughout the warm comfort of the e-tube. The space in here is tight, but gives engineering enough room to access any of their systems. "; return PTU(); ]; [ PFAdar; score = score + 5; give adar general; move adar to small_room; print "You get out the survival knife and start hacking away at the sticky coating, being careful not to go too deep and cut into whatever's inside. It's not easy, but eventually you cut a gash large enough to pull out the contents. When you're able to get a good look, you see that you haven't just rescued a humanoid but a real human, and an attractive one at that.^^"; if (m_base.ch_maidens) { print "She"; } else { print "He"; } print "'s too weak to be anything other than dead weight, and you ease "; if (m_base.ch_maidens) { print "her"; } else { print "him"; } print " gently to the floor before your arms give out. Slowly, "; PHeShe(); print " starts to come to, and realize that the nightmare is over. Eventually, "; PHeShe(); print " has recovered "; if (m_base.ch_maidens) { print "her"; } else { print "his"; } print " strength enough to sit up.^^~Wow. Thank you; I thought I was done for this time,~ "; PHeShe(); print " says, weakly. After a short pause, "; PHeShe(); print " continues, ~The name's Adar, by the way, Captain Adar of the XIS A'talis.~ ^^~Darington, Crewman on the XSS Supalace.~ you say, giving Adar a hand up. ~What's a nice "; if (m_base.ch_maidens) { print "girl"; } else { print "guy"; } print " like you doing in a place like this?~^^~I could ask you the same question,~ Adar says, grinning before becoming suddenly serious. ~We were on a simple survey mission when we got attacked by pirates. It was the ship they were after, but we were going to be collateral damage if I didn't do something fast so I landed the ship on the first habitable planet I saw. Crash-landed, if you must know, but I got the crew out before the pirates arrived. I hoped they'd loot the ship and leave us alone.^^On reflection, I should have been a bit more picky when it came to landing sites. There we were, alone in the middle of this hellish desert without food or water...~ ^^~Join the club,~ you say, before you can stop yourself. ~Sorry. It's just that it all sounds horribly familiar. The Supalace is currently a very expensive lump of scrap metal somewhere to the west of here. The pirates got us too. I was the only survivor, and since then I've nearly been eaten by a ralckor and just managed to dodge the spitter here. It's been a long day.~ You sigh, ruefully. ^^Adar gives you a look. ~Me too. Except that my crew did get eaten by the ralckor and I was too shocked to avoid the widow-weave spitter. Still am, I think; it'll be awful when the death of my crew sinks in. Which means,~ "; PHeShe(); remove sm_hshape; thinkpos = 16; small_pearl.pnhidden = false; " says, rallying, ~that we'd better get out of here before that happens.~"; ]; [ PFD; print "That's far too delicate (not to mention valuable) to chuck about"; if (radar_room.enterbridge == false) "; the Captain would have your hide."; "."; ]; [ PFire; "of a ball of fire, burning fiercely despite the absence of any fuel."; ]; [ PFT; "(first taking ", (the) self, ")"; ]; [ PGrpPit; grappling_hook.attached = true; move grappling_hook to deadp_obj; print "Taking the makeshift grappling hook, you plant it into the ground at your feet and throw the length of rope into the "; if ((torch in us_altar && torch.onfire) || orb in unholy_shrine or us_altar) "faint light below."; "darkness below."; ]; [ PGrpHk vpass; grappling_hook.attached = true; switch (vpass) { 1: move grappling_hook to jagged_rock; 2: move grappling_hook to tc_bsrail; } print "Swinging the makeshift grappling hook with all your might, you manage to hook it onto the "; switch (vpass) { 1: print "outcrop of rock."; 2: print "small piece of broken stone railing."; } print " A brisk tug on the rope reassures you that the hook is solidly anchored"; switch (vpass) { 1: "; you only wish that the dread in the pit of your stomach could be so easily assuaged."; 2: "."; } rtrue; ]; [ PHd; if (player in air_lock || player in sm_airlock) { if (e_beacon.eb_notseen) print "Through the swirling black smoke, you can just make out that t"; else print "T"; } else { print "T"; } ]; [ PHeShe; if (m_base.ch_maidens) print "she"; else print "he"; ]; [ PHi; if (player in air_lock || player in sm_airlock) { if (e_beacon.eb_notseen) print "Through the swirling black smoke, you can just make out i"; else print "I"; } else { print "I"; } ]; [ PHl; if (e_beacon.eb_notseen) print "Through the swirling black smoke, you can just make out t"; else print "T"; ]; [ PHS; "Have some respect for the ship."; ]; [ PHt; if (player in air_lock || player in sm_airlock) { if (e_beacon.eb_notseen) print "Through the swirling black smoke, you can just make out t"; else print "T"; } else { print "T"; } ]; [ PIConsul; print "You look up the "; style underline; print "Imperial Galactic Consul"; style roman; print " in the Omnibus Galacticus, and find a large section. It states that the consol is an open forum where senators representing their star systems can express their needs for the "; style underline; print "Emperor"; style roman; print " to address. Of course the "; style underline; print "Emperor"; style roman; " never sits in on the consul and very little gets back to him."; ]; [ PICourt; print "You look up the "; style underline; print "Imperial High Court"; style roman; print " in the Omnibus Galacticus, and find a large section. It states that along with the "; style underline; print "Emperor"; style roman; print ", the court is the real power behind the "; style underline; print "Empire"; style roman; ". Their punishments are harsh and strict for anybody that breaks any Imperial law, and the citizenry has learned to stay in line due to this."; ]; [ PISenate; print "You look up the "; style underline; print "Imperial High Senate"; style roman; print " in the Omnibus Galacticus, and find a large section. It says that the Senate is elected by members of their local star systems to represent them in the "; style underline; print "Imperial Galactic Consul"; style roman; print ". Even though the Senate has no real power, they do make suggestion to the "; style underline; print "Emperor"; style roman; ", which he takes into account from time to time."; ]; [ PJournalTell; "You relate a horrid tale of how the priest's summoned for the protector to aid them, yet no one came. The high priest went out, only to find the people mad, committing sacrifice. In the end, walled up, awaiting death. ^^Captain Adar is moved by your tale."; ]; [ PKY; "Killing yourself is not the answers to your problems, reflect hard on your military training and overcome where most have failed."; ]; [ PL1Auth; "The screen reads, ~Level 5 authorization required~. The only person with Level 5 clearance is the Captain; clearly, whatever's in this crate must be very important."; ]; [ PL2Auth; "The screen reads, ~Level 3 authorization required~. The only people with clearance that high are the Chief Engineer and the other senior officers."; ]; [ PLD; "If you did that you would lose it in deep space."; ]; [ PLN; "The ship would loose its navigational positioning, and re-syncing the system would be a waste of time."; ]; [ PLO; "Liquid oxygen is kept at 50 degrees Kelvin and freezes flesh upon contact, crystalizing it, making it brittle. There's no need to become a Popsicle."; ]; [ PLR; "^You hear a low rumble, coming from underneath the cavern."; ]; [ PMS; "Ral is giving off the most wonderful smell you could imagine, and it permeates you deeply. Filling you with a warmth and desire you never felt before."; ]; [ PNE; POT(); style fixed; print "Not enough linguistic data to interpret language."; style roman; ""; ]; [ PNetFOpen; "You start to undo each of the automatic web netting clamps, one by one. Finally you get down to the last one. With a twist of the universal tool it comes free, but just as it fully retracts, the netting snaps back into place, securing the cargo again. That's why the netting is called automatic; you wouldn't want your cargo loose in deep space now, would you?"; ]; [ PNF; "You need to be holding the OmniTrans in order to perform this function."; ]; [ PNH; "Now how are you going to do that?"; ]; [ PNO; "You need to use an OmniTrans to scan the book."; ]; [ PNP; "You need to use an OmniTrans to scan the page."; ]; [ PNR; "You need to use an OmniTrans to scan the rune."; ]; [ PNS; "~Sorry, I am not sure what you are referring to,~ says Captain Adar."; ]; [ POW; print "You start to undo each of the web netting clamps, one by one. Finally, you get down to the last one, and with a twist of the universal tool it comes free. As it does so, the netting finally comes loose and you're able to remove it from the crate.^"; if (web_netting.netopen) { thinkpos = 20; "^Now to get the crate out of the way, that 'safe room' has to be back there."; } rtrue; ]; [ PPC; remove tc_ffield; adar.cubetake = true; print "Once the final necklace is in place, an explosion of light and energy shoots out from each pedestal. The blue and green force field shifts to red and purple as the electric charge tears into it. With a series of bright sparks and loud cracks, the energy slowly dissipates from the air, giving you access to the "; if (solace_cube in tc_shrine) "small black cube."; "shrine."; ]; [ PPD vpass; deadflag = 1; print "As you "; switch (vpass) { 0: print "climb out of"; 1: print "move in"; } " the suit, pirates turn firing automatic laser rifles, riddling you full of holes that fail to bleed out. You can't help but collapse to the deck, last breath giving out, as the lead pirate says, ~I told you we had problems, now let's get back to the Revenge.~"; ]; [ PPict; print "Painted directly onto the stone wall with primitive pigments, the quality of the artistry is undeniable: this picture is a true work of art. It represents "; ]; [ PPO; print "As you push the obelisk it sinks down about a foot, locking into place.^"; ]; [ PPrLx; if (second == player) return PLO(); if (second == al_door) return LoxPour(); if (second == sm_aldoor) { if (smallcrate has general) return LoxPour(); "You're too far away to reach the cargo hatch."; } if (second == adar) { print "Adar pushes you back forcing you to lower the tank. ~Are you out of your mind?~ "; PHeShe(); " screams, ~that stuff is hazardous, be careful how you use it.~"; } rfalse; ]; [ PPU; "Have you paid up on your life insurance?"; ]; [ PPuStr; if (skeley_1 in self || skeley_2 in self || skeley_3 in self) return PCS(); "You push the straw around a little. This reveals nothing."; ]; [ POA; "The obelisk has already been pushed down."; ]; [ POR; "The obelisk is made of obsidian rock, and is depressed into the ground."; ]; [ POT; print "The OmniTrans displays:^^"; ]; [ PRB; "It's right up against the bulkhead, and you can't see behind it."; ]; [ PReadout; POT(); style fixed; print "Planetary Readout: Brakis VI ^Circumference: 6.95 x 10 @@94 4 P.U. ^Density: .9 ^Gravity: 1.225 ^Satellites: 2 ^^Atmosphere: Oxygen/Nitrogen ^Hydrosphere: No standing water ^Biosphere: No life ^Climate: Hellish ^Radiation: 18% ^^Note: Planetary catastrophe destroyed biosphere."; style roman; ""; ]; [ PRP; "You can't reach the hydraulic piston from here, try pushing the crate underneath it."; ]; [ PRS; "As the spirits whip about the room they cry out, ~return Sucored's last shard to its rightful place and we will forget this trespass.~"; ]; [ PSA; if (sandworm in small_room) "The spitter feels the approach of the flame and backs away. It can move pretty quickly when it has to, and the two of you wind up chasing each other round the pool of acid. Not wanting to stumble into it, you give up the chase."; if (sandworm in cavern) "Feeling the rush of air the spitter charges, backing you up into long flexible vines that come within striking distance. Cornered, you stand your ground."; "The spitter feels the rush of air as you approach and grazes you getting out of the way."; ]; [ PSB; "The spitter blocks the way."; ]; [ PSD; print "Made from the latest alloys and plastics, the deep-space suit will keep you alive in the harshest of environments for up to 36 hours. It's a one-piece affair, designed to stretch or shrink to fit the wearer. The only rigid component is the helm. Right now the helm is "; ]; [ PSDeth vpass; deadflag = 1; if (vpass == 1) print "^"; "Before you can cut another strand, the spitter attacks, as vicious mandibles tear into your flesh. Digging deep into your torso, she tears through your heart, ripping back and forth violently as the motion severs all of your limbs. ^^Too bad you didn't kept her at a distance."; ]; [ PSH; "You shouldn't handle government equipment you know nothing about."; ]; [ PShowJournal; print "Showing Captain Adar ", (the) self, " you ask "; if (m_base.ch_maidens) { print "her"; } else { print "him"; } " about it. ^^~I've never seen this type of script before,~ states Captain Adar, ~if you have your OmniTrans, try scanning it.~"; ]; [ PShowTome; print "Showing Captain Adar the leather tome you ask "; if (m_base.ch_maidens) { print "her"; } else { print "him"; } " about it. ^^~Binary, strange,~ comments Captain Adar, ~too bad I do not have my OmniTrans, then maybe I could translate it.~"; ]; [ PSitBd; if (skeley_1 in self || skeley_2 in self || skeley_3 in self) return PCS(); "You sit on the bed, but it's not very comfortable."; ]; [ PSk; "After your previous experience, you have no stomach for another course of shock treatment."; ]; [ PSKill; deadflag = 1; " the spitter inhales a lung full of air and shoots a sticky beige streamer straight at you. The force of the impact knocks you to the floor, and the last thing you see before you pass out is the spitter looming over you, covering you in its putrid excretion."; ]; [ PSkl; print "and a skeleton lies on top of it."; ]; [ PSky; "of a blue sky, lightly dappled with clouds."; ]; [ PSL; "A strange force field protects ", (the) self, " as it sits upon the shrine."; ]; [ PSMItm; move sm_eggs to small_room; move sm_hshape to small_room; move sr_substance to small_room; move sm_cobweb to small_room; ]; [ PSP plaque; print "The ship's plaque reads:^^"; style fixed; if (plaque == 1) { print " ~XSS Coleaizar~ ^^ Class: Command Carrier C-01"; } else { print " ~XSS Supalace~ ^^ Class: Trans-Stellar Transport T-026"; } print"^ Registered out of Tyrr"; if (plaque == 1) { print"^ Registration: 10196AS-1B"; } else { print"^ Registration: 47291AA-4X"; } print"^^ Designed by Corps Engineering^"; if (plaque == 1) { print " Constructed in I.R. 5362, I. Corps Docks^"; } else { print "Constructed in I.R. 5213, Tal Lebris Docks^"; } print " by the Imperial Corps of Engineers"; style roman; ""; ]; [ PSPirates; print "You look up "; style underline; print "space pirates"; style roman; print " in the Omnibus Galacticus, and find a large section. It says that they're the scourge of the "; style underline; print "Empire"; style roman; print " and operate on its edge in the "; style underline; print "outer rim"; style roman; print ". Their strongest presence is at "; style underline; print "Stokar"; style roman; print ", so much that the "; style underline; print "Empire"; style roman; " lets the criminal element govern itself."; ]; [ PSrchDeth; deadflag = 1; "^As the pirates search for the cargo hold, they run into you.^~Aye,~ says one of the pirates, ~we don't got time for this one.~ So he pulls out his saber, and runs you through the gut. Slowly you bleed out on the floor.^^Maybe you should have tried hiding."; ]; [ PSS; "You have a strong sense not to disturb the items in this room."; ]; [ PST; "The necklace is smooth to the touch."; ]; [ PStkrP; print "You look up the "; style underline; print "infamous-pirate Stokar"; style roman; print " in the Omnibus Galacticus, and find a large section. The pirate Stokar is a ruthless villain and has organized the rogue pirates together on the world he terra-formed, and named after himself, "; style underline; print "Stokar"; style roman; print ". It sits within the "; style underline; print "Xulthe'en Empire"; style roman; print ", but at the edge of the "; style underline; print "inner core"; style roman; print ". Overseeing all illegal activities from the "; style underline; print "super-carrier Inferno"; style roman; print ", he has struck more fear throughout the "; style underline; print "galaxy"; style roman; print " than any one man. Known to capture whole ships, he preys on what he can find, crews never being heard from again. As a side note, there's a bounty on him, dead or alive, for twenty-million "; style underline; print "credits"; style roman; "."; ]; [ PStraw; "It looks very old, practically desiccated, and has been thinly scattered over the ledge. Compared to this, your bunk is the last word in comfort."; ]; [ PSY; "It looks wrong, but it's a second or two until you figure it out: it's out of sync! ^^You wave a hand, but it takes half a second or so for your reflection to wave back. You've only ever seen this once before, in the virtual reality training simulator. The class prankster hacked in one night and added two mirrors, facing each other. The next day, while you were in the middle of a war game, he walked between them and the hunk-of-junk computer crashed with the effort of simulating all the reflections."; ]; [ PTB; "You pop open the circuit breaker panel, revealing a mass of wires and gadgets with blinking lights. Like everything else in here, it's incomprehensible to you; there's nothing as simple as an 'off' switch. In among all the wires, though, is a more familiar item: the Chief Engineer's ident badge. ^^It's hard to be sure what it's doing here, but -- judging by the fact that the panel wasn't put back properly afterwards -- it was obviously put here in a hurry. Given that it controls access to the engine and a number of other vital systems, you're just grateful that it's here and not in the hands of the pirates."; ]; [ PTC pnoun; pedestalpos = 0; if (obsidian_stone in tc_npedestal or tc_spedestal or tc_epedestal or tc_wpedestal) move obsidian_stone to tranquility_chamber; if (small_pearl in tc_npedestal or tc_spedestal or tc_epedestal or tc_wpedestal) move small_pearl to tranquility_chamber; if (ruby in tc_npedestal or tc_spedestal or tc_epedestal or tc_wpedestal) move ruby to tranquility_chamber; if (diamond in tc_npedestal or tc_spedestal or tc_epedestal or tc_wpedestal) move diamond to tranquility_chamber; move tc_ffield to tranquility_chamber; "As you take ", (the) pnoun, ", the force field surrounding the shrine fires up with an amazing display of blues, purples, greens, and reds. As the pedestals return to their original positions, everything is knocked to the floor."; ]; [ PTI; torch.tinbeam = true; "Putting the torch into the beam of light does nothing. You need to magnify the light somehow to get the torch to burn."; ]; [ PTomeTell; "You explain to Captain Adar how the lost tribe that once lived here used a binary number system to symbolize the creation of their race. From nothingness to the overpowering god of wickedness, you relate the relationship between their gods; how the worms and lizards struggled against one another, and that these priest's sought out balance above all."; ]; [ PTP pnoun; pedestalpos = 0; if (obsidian_stone in tc_npedestal or tc_spedestal or tc_epedestal or tc_wpedestal) move obsidian_stone to tranquility_chamber; if (small_pearl in tc_npedestal or tc_spedestal or tc_epedestal or tc_wpedestal) move small_pearl to tranquility_chamber; if (ruby in tc_npedestal or tc_spedestal or tc_epedestal or tc_wpedestal) move ruby to tranquility_chamber; if (diamond in tc_npedestal or tc_spedestal or tc_epedestal or tc_wpedestal) move diamond to tranquility_chamber; "As you push ", (the) pnoun, " to the ground, the force field surrounding the shrine fires up with an amazing display of blues, purples, greens, and reds. As the pedestals return to their original positions, everything is knocked to the floor."; ]; [ PTranstellar; print "You look up the "; style underline; print "T8 trans-stellar transport ship"; style roman; print " in the Omnibus Galacticus, and find a slanderous statement. It says that even though it's the favored type of transport ship within the "; style underline; print "Xulthe'en Empire"; style roman; print ", it's inferior compared to the "; style underline; print "393-Z6"; style roman; print " put out by the "; style underline; print "Zrok Corporation"; style roman; "."; ]; [ PTree; "of a luxuriant tree, its roots running deep into the earth."; ]; [ PTU; print "The tube continues "; if (player in cq_etube or br_etube or er_etube or ch_etube) print "port and starboard"; else print "fore and aft"; print ", while another leads "; if (player in cq_etube or br_etube or gl_etube or rr_etube) "down."; "up."; ]; [ PUB; if (radar_room.flowoff) return PCA(); give rack_light ~on; give flow_regulator ~on; StopDaemon(proxtar); StartDaemon(space_pirates); thinkpos = 21; remove rr_msat; remove rr_ch_ss; remove rr_charts; radar.power = false; rack.lighton = false; proxtar.power = false; give rack_light ~light; radar_room.flowoff = true; ma_airlock.alflowoff = true; move space_pirates to bridge; rack_light.flowregoff = true; main_computer.poweron = false; move ce_badge to flow_regulator; "Nervously, you insert the Chief Engineer's ident badge. For a moment, nothing appears to happen, but then the overheads go out and even the winking lights of the status panels die. ^^Before the lights come back, you hear a group of pirates beam over to the bridge, taking the chance if any crewmembers were there. As the emergency lighting kicks in, one of them calls down, ~we know you're here maggot!~"; ]; [ PUShrine vpass; print "This is an ancient place, ruined by time. The walls are now covered with vines that have made their way in through deep cracks, though what nourishment they could possibly find here you cannot tell. "; if (vpass == 1) { print "A huge boulder has smashed the altar that once stood in the middle of this room to pieces. Around the boulder"; } else { print "An altar in the middle is covered in moss"; if (child(us_altar) == nothing) { } else { print ", surmounted by"; SelfPlayer.droplist = true; WriteListFrom(child(us_altar), ENGLISH_BIT+TERSE_BIT+CONCEAL_BIT+ISARE_BIT); print ". Around the altar"; } } print ", at each of the four main compass points, are huge stone spikes, like the fangs of Cerberus. Impaled atop each is a skeleton, glinting eerily in the "; if (torch.onfire && (torch in player or us_altar or unholy_shrine)) print "torchlight"; else print "radiant glow"; ", and you can see further skeletons lying amid the rubble. There are openings to the north, east, south and west, but they have all been blocked by the collapse of the staircase. The only way out of here is back up the rope that hangs into the room."; ]; [ PWB; "The wire harnesses are beyond repair, this ship will never fly again."; ]; [ PWM; "The first-aid wraps are designed to aid life forms, not mechanics."; ]; [ PXArmada i; print "You look up the "; style underline; if (i == 1) { print "Grand Commander"; } else { print "Xulthe'en Armada"; } style roman; print " in the Omnibus Galacticus, and find an interesting section. It says the "; style underline; print "Emperor"; style roman; print " appoints the Grand Commander, so the "; style underline; print "Xulthe'en Military"; style roman; " has free movement, and he considers the armada to be an extension of himself. Failure from any crewman to adhere to the Codes of Conduct is failure on the Grand Commanders part, and can have dire consequences."; ]; [ PXB; print "As you slide the Captain's ident badge into the reader, the display changes to read, ~Manual override engaged.~^"; ]; [ PXEmpire; print "You look up the "; style underline; print "Xulthe'en Empire"; style roman; print " in the Omnibus Galacticus, and find a large section. The Empire was founded over twenty thousand years ago and has been well-established for the past five thousand years in this part of the galaxy alone. Ruled from the "; style underline; print "Xul System"; style roman; print ", the head of state is known as the "; style underline; print "Emperor"; style roman; print ", wields absolute power. "; style underline; print "Emperor Lucius I"; style roman; print " has overseen the establishment of many settlements during his long reign, creating an "; style underline; print "inner core"; style roman; print " of worlds spanning 120 light years, from "; style underline; print "Atris"; style roman; print " to "; style underline; print "Lylth"; style roman; "."; ]; [ PXEmperor; print "You look up the "; style underline; print "Xulthe'en Emperor"; style roman; print " in the Omnibus Galacticus, and find a large section about a man that very little is known about. It says that the Emperor is believed to be as old as the "; style underline; print "Empire"; style roman; print " itself. Though no one knows how he has been able to keep himself alive for so long. To some alien cultures he's regarded as a witch. Even though he has full power over the "; style underline; print "Empire"; style roman; print ", he rules along with the "; style underline; print "Imperial High Senate"; style roman; print ", and the "; style underline; print "Imperial High Court"; style roman; "."; ]; [ PXMilitary; print "You look up the "; style underline; print "Xulthe'en Military"; style roman; print " in the Omnibus Galacticus, and find a small note. It says the "; style underline; print "Emperor"; style roman; print " directly controls the military and they're primarily used as security, enforcing Imperial Law. It also states that the "; style underline; print "Xulthe'en Armada"; style roman; " has been put in place to guarantee fast deployment of troops."; ]; [ PYC; "You haven't got that."; ]; [ PYM; "You manage to put the deep-space suit on over your uniform, though it's a tight fit."; ]; [ PYN; "You need to use ", (the) self, " with something."; ]; [ PZ6; print "You look up the "; style underline; print "393-Z6 transport ship"; style roman; " in the Omnibus Galacticus, and find a large section. It says the 393 is the latest in a long and proud line of the Z6 series. A light transport, this ship can slip through most customs ports and get those questionable goods to impatient clients. The only real weakness to the vessel is it's light armor, which enables quicker transports. All Captains should be wary of any distress beacon traps."; ]; #ifdef TARGET_GLULX; [ PageBreak i; i = KeyCharPrimitive(); if (i=='q') rtrue; rfalse; ]; #ifnot; [ PageBreak i; @read_char 1 i; if (i == 'q') rtrue; rfalse; ]; #endif; [ PArrayScr iap itest ifail ofail iran; ! Populates the Array for the robo-washes comments iap = 0; while (iap < 5) { ofail = true; while (ofail == true) { itest = 0; ifail = false; iran = random(5); while (itest < 5) { if (iran == scrn_reply-->itest) ifail = true; itest++; } if (ifail == true) { ofail = true; } else { ofail = false; } } scrn_reply-->iap = iran; iap++; } ]; [ PBoard; StopDaemon(bridge_alarm); thinkpos = 13; score = score + 5; remove foodrep; remove rr_msat; remove drinkrep; remove g_planet; remove galley_food; remove galley_seats; remove small_crates; move ship to bridge; move tbeam to bridge; remove galley_crumbs; give viewport concealed; give robowash ~animate; give robowash ~scenery; move robowash to galley_counter; move largehole to galley; move prybar to cargo_hold; move access_panel to galley; engine.eoff = false; bridge.dstop = false; galley.gpboard = true; bridge.boarded = true; galley.workon = false; galley.cleanon = false; viewport.boarded = true; robowash.working = false; player.plprt = true; bridge_alarm.alarmon = false; radar_room.enterbridge = true; radar_room.piratesgone = true; armory_backroom.pirates = false; if (crew_asteroid in bridge) remove crew_asteroid; ]; [ PedDeath vpass; deadflag = 1; switch (vpass) { 1: print "As you sit on"; 2: print "As you push down on"; 3: print "As you try to move"; 4: print "As you turn"; } " the pedestal, a trap door in the ceiling opens up unleashing a 300-pound stone slab covered in razor sharp spikes. Each spike is dipped in poison, adding a sharp sting as the slab smashes your body against the wall."; ]; [ PedestalEnds x; x = 0; if (sandworm in s_tunnel) { move self to player; return PSB(); } move self to player; "Putting the wrong thing on the pedestal could get you killed. Maybe if you could find out what the rune of the stick figure represented, you could try that item out instead."; ]; [ PirateAttack; PBoard(); print "^All of a sudden, you feel the ship being pulled into deep space. At a time like this, it's the Captain's duty to use the EDS to cripple the ship's systems and make sure nothing important falls into the wrong hands. As the last man standing, you suppose that job now falls to you. ^^One small crumb of comfort is that the shock of "; if (player in outside_airlock) { print "the situation"; } else { print "near-death"; } " has jogged your memory, bringing to mind a useful detail from your initial orientation: there's a small 'safe room' just off the cargo hold, a refuge designed for times like this. When the pirates land this ship, you'll be a lot safer there than out here. Sadly, though, you're still a bit vague as to exactly where it is: for obvious reasons, it's carefully concealed."; ]; [ PirateDeath vpass; deadflag = 1; give desk concealed; give plaque concealed; give prybar concealed; give wrench concealed; give proxtar concealed; give ce_badge concealed; give datacard concealed; give robowash concealed; give playbeing concealed; give workbench concealed; give coffee_cup concealed; give og_datacard concealed; give main_computer concealed; give mal_spacesuit concealed; give flow_regulator concealed; give circuit_breaker concealed; switch (vpass) { 0: print "As you step into the "; 1: print "^As the pirates cross "; if (DownBelow()) print "secondary"; else print "main"; print " junction they step into the "; 2: print "^As the pirates see you in the "; 3: print "^As the pirates walk into the crew quarters, they see you in your "; 4: print "^As the pirates walk into the crew quarters, they start searching through the racks, only to find you hiding in your "; 5: print "^As the pirates walk into the "; 6: print "^As the pirates step into the "; 7: print "^As the pirates climb down to the "; 8: location = armory; print "^As the pirates return to the "; } switch (location) { berth: print "berth"; ar_etube, armory: print "armory"; br_etube, bridge: print "bridge"; gl_etube, galley: print "galley"; rr_etube, radar_room: print "DMC"; ma_etube, main_airlock: print "airlock"; ch_etube, cargo_hold: print "cargo hold"; er_etube, engine_room: print "engine room"; armory_backroom: print "store room"; cq_etube, crew_quarters: print "crew quarters"; main_junction: print "main junction"; secondary_junction: print "secondary junction"; } switch (vpass) { 0: print ", the pirates turn firing"; 1: print ", firing"; 2, 7, 8: print ", they turn firing"; 3: print " and turn firing"; 4: print ". ~You won't get away this time,~ one of the pirates says as they fire their"; 5: print ", they search through the suits, only to find you. ~You won't get away this time,~ one of the pirates says as they fire their"; 6: print ", they immediately see you hiding within the e-tube and open fire with"; } print " automatic laser rifles, riddling you full of holes that fail to bleed out. You can't help but collapse"; if (vpass == 0 or 1 or 2 or 5 or 7 or 8) print " to the deck"; ", last breath giving out, as the lead pirate says, ~I told you we had problems, now let's get back to the Revenge.~"; ]; [ PirateHide vpass; PBoard(); switch (vpass) { 1: print "^The space pirates barge noisily into the "; if (player in berth) { print "crew quarters"; } else { print "DMC"; } print ". ~Aye,~ says one of the pirates"; 2: print "^~Aye,~ one of the pirates says through the thick metal plate"; 3: print "^~Aye,~ comes drifting through the tubes "; if (player in cq_etube or gl_etube or br_etube or rr_etube) print "up "; print "from the cargo hold"; } print ", ~looks like we cleared her out, all but "; if (vpass == 3 ) print "this"; else print "that"; print " one crate. Let's get back to the Captain, and get ready to tow this one in.~ With that, the pirates leave "; switch (vpass) { 1: print "you alone in the room."; 2, 3: print "the ship."; } "^^At a time like this, it's the Captain's duty to use the EDS to cripple the ship's systems and make sure she's useless to the enemy. As the last man standing, you suppose that job now falls to you. ^^One small crumb of comfort is that the shock of near-discovery has jogged your memory, bringing to mind a useful detail from your initial orientation: there's a small 'safe room' just off the cargo hold, a refuge designed for times like this. If the pirates come back, you'll be a lot safer there than here. Sadly, though, you're still a bit vague as to exactly where it is: for obvious reasons, it's carefully concealed."; ]; [ PirateLoot locptest; locptest = false; score = score + 5; StopDaemon(ident_badge); StopDaemon(pirates_land); pland = plimit+19; thinkpos = 4; remove radar; remove plaque; remove engine; remove proxtar; remove robowash; remove rr_screen; remove videogame; remove largehole; remove rr_pswitch; remove spareparts; remove large_crate; remove ident_badge; remove web_netting; remove access_panel; remove galley_plate; remove main_computer; remove flow_regulator; give rack_light ~on; give rack_light ~light; give galley_closet ~locked; galley_closet.&name-->14 = 'blasted'; galley_closet.short_name = "blasted locker"; cargo_hatch.&name-->5 = 'open'; if (ship in bridge) remove ship; if (tbeam in bridge) remove tbeam; if (r_planet in bridge) remove r_planet; move ce_badge to h_s_eds; move desertscene to bridge; move s_panel to cargo_hold; move largeholedesert to galley; move cargo_desert to cargo_hold; rack.lighton = false; galley.gpland = true; cargo_hold.cpland = true; rack_light.poweroff = true; cargo_hatch.hatchopen = true; armory_backroom.blasted = true; player.plprt = false; if (playbeing in player or milpack || parent(playbeing) == hidden_compartment) locptest = true; if (engineobj has general && locptest == false) remove playbeing; ]; [ PlaySub; "You can't play with that."; ]; [ PleaseSub; "Don't beg."; ]; [ PLocTest; if (player in under_desk || (player in berth && rack.curtain_open == false) || (player in main_airlock && blastdoor in main_airlock)) rtrue; if (PTubeTest()) rtrue; rfalse; ]; [ PTubeTest; if (player in cq_etube or rr_etube or gl_etube or br_etube or er_etube or ar_etube or ch_etube or ma_etube) rtrue; rfalse; ]; [ PlugSub; "You can't plug ", (the) noun, " into that."; ]; [ PlugItemSub; "You can't plug that."; ]; [ PourCup; if (proxtar.power) { ProxOff(); SpiltCup(); if (second == proxtar) print "After all the hassle you've had with it, pouring hot "; else print "Tired of the annoying beep, you pour hot "; switch (icupdis) { 1: print "coffee"; 2: print "tea"; 3: print "water"; } iproxdis = icupdis; print " all over the ", (the) second; if (second == proxtar) { print " is deeply satisfying."; } else { print " as sparks explode in your face. The bank next to you explodes and then another, as a domino effect shorts out the whole system."; } print " Even better, with no-one else here, Engineering can't prove it was you. "; if (second == proxtar) print "With a shower of sparks"; else print "As the shower of sparks dies down"; print ", both the prox-tar and the computer banks "; if (second == proxtar) print "shut down"; else print "are useless"; ", as silence descends at last."; } rfalse; ]; [ PourSub; "That doesn't sound like a very good idea."; ]; [ ProxOff; score = score + 5; StopDaemon(proxtar); proxtar.power = false; proxtar.shutdown = true; StopDaemon(radar_room); piratecount = piraterange; if (radar_room.enterbridge == false) StartDaemon(datacard); if (piraterange > 0) piraterange = piraterange + 25; if (piraterange > 0) piratetheta = piratetheta + 2; if (piraterange > 0) piratephi = piratephi - 1; ]; [ PToCS; if (adar has general) { PAF(); MoveAdar(9); } u_obj.&name-->4 = '7840ph'; PlayerTo(crashed_ship,2); rtrue; ]; [ PToPan; if (m_base.exitcav) { u_obj.&name-->4 = '7840ph'; if (adar has general) {PAF(); MoveAdar(1); } PlayerTo(cavern); rtrue; } if (m_base.oldman) { u_obj.&name-->4 = '7840ph'; print "You step through the opening, leaving behind the heat of the desert for the coolness inside. It takes a little while for your eyes to adjust, after the brightness of the sun, but finally you're able to see where you are.^"; PlayerTo(pantheon); rtrue; } if (m_base.fruiteaten) { detonator.adcavern = true; StopDaemon(m_base); u_obj.&name-->4 = '7840ph'; if (m_base.ch_maidens) { print "You follow Ral into the mountainside.^"; } else { print "You follow Kor into the mountainside.^"; } PlayerTo(pantheon); rtrue; } "You'd have to walk around Ral and Kor, and you get the feeling they wouldn't like that. You don't know what these people do to those who desecrate their temple, but you don't want to find out."; ]; [ PUnderSub; "You can't do that here."; ]; [ PushIdol; move self to player; give unholy_shrine general; StartDaemon(unholy_shrine); huge_boulder.boulderfalling = true; move huge_boulder to unholy_shrine; print "As you push ", (the) self, " off the altar, you hear a heavy rumble from above.^"; if (adar has general) "^~Hurry,~ Captain Adar shouts down, ~a huge boulder just came loose and it's about to come down on top of you! Get out of there now!~"; rtrue; ]; [ PushCSub; return L__M(##Pull, 2); ]; [ PushTSub; return L__M(##Pull, 2); ]; [ PushWSub; return L__M(##Pull, 2); ]; [ RackTest i; i = 0; if (berth_uniform in berth) i++; if (playbeing in berth) i++; if (coffee_cup in berth) i++; if (ident_badge in berth) i++; if (ce_badge in berth) i++; if (og_datacard in berth) i++; if (prybar in berth) i++; if (milpack in berth) i++; if (detonator in berth) i++; if (knife in berth) i++; if (halfshelter in berth) i++; if (datacard in berth) i++; return i; ]; [ RalcDeth vpass; itakegg=4; thinkpos = 7; remove self; remove sandworm; score = score + 5; ralckor.dead = true; give ralckor ~animate; sm_eggs.&name-->0 = 'egg'; ralckor.&name-->8 = 'dying'; ralckor.&name-->9 = 'corpse'; move dead_spitter to cavern; small_room.spitmad = false; switch (vpass) { 1: print "Once the egg leaves your hand, a thin vine snakes around it as the spitter's amazing reflexes kick in. Instantly she's on top of the ralckor, vines trying"; 2: print "As you show the egg to the ralckor, the spitter's amazing reflexes kick in. Instantly she jumps for it and knocks it into some vines, vines that try"; } " to ensnare her as she struggles to save her children. Dragging the spitter in, the huge mouth opens, teeth getting ready to dig into the soft underbelly of the spider. Suddenly, the spitter fires a stream of sticky beige goo, encasing the teeth, giving her the advantage. As mandibles dig into cellulose, thick vines tear at the centipede-like legs, ripping them off one at a time until all that is left bleeds out on the floor. ^^Maybe now you can find out what the ralckor was so keen to keep you away from. You can't help nurturing a faint hope that maybe it'll lead you to a way off this godforsaken rock and back to the Armada."; ]; [ ReadSub; "You can't read that."; ]; [ ReadTransSub; if (omni_trans.transtaken) "You're not holding anything to look that up in."; <>; ]; [ ReadJournal i; i = 5; if (journal.ch1read) i--; if (journal.ch2read) i--; if (journal.ch3read) i--; if (journal.ch4read) i--; if (journal.ch5read) i--; if (i == 0) rtrue; rfalse; ]; [ ReadTome i; i = 15; if (lc_hcrune.haveread) i--; if (lc_srune.haveread) i--; if (lc_fcrune.haveread) i--; if (lc_tmrune.haveread) i--; if (rune_ancient.haveread) i--; if (lc_lwrune.haveread) i--; if (lc_hlfcrune.haveread) i--; if (lc_sqrune.haveread) i--; if (lc_mrune.haveread) i--; if (lc_wrune.haveread) i--; if (lc_crune.haveread) i--; if (lc_rrune.haveread) i--; if (lc_trirune.haveread) i--; if (lc_hcrsurune.haveread) i--; if (lc_brcrune.haveread) i--; if (i == 0) rtrue; rfalse; ]; [ ResetEgg; sattack=0; itakegg=0; remove s_egg; sm_eggs.&name-->0 = 'egg'; small_room.spitmad = false; move sandworm to small_room; ]; [ ResetObelisks; st1_obelisk1.depressed = false; st1_obelisk2.depressed = false; st1_obelisk3.depressed = false; st1_obelisk4.depressed = false; st1_obelisk1.short_name = "first obelisk"; st1_obelisk2.short_name = "second obelisk"; st1_obelisk3.short_name = "third obelisk"; st1_obelisk4.short_name = "fourth obelisk"; "As you push the obelisk down, the four columns return their full upright position."; ]; [ RemoveTObj samelevel abovelevel; if (parent(self) == under_desk) { if (parent(coffee_cup) ~= nothing) { if ((parent(parent(coffee_cup)) == radar_room) || (parent(coffee_cup)== radar_room)) remove coffee_cup; } if (parent(wrench) ~= nothing) { if ((parent(parent(wrench)) == radar_room) || (parent(wrench)== radar_room)) remove wrench; } if (parent(ident_badge) ~= nothing) { if ((parent(parent(ident_badge)) == radar_room) || (parent(ident_badge)== radar_room)) remove ident_badge; } if (parent(omni_trans) ~= nothing) { if ((parent(parent(omni_trans)) == radar_room) || (parent(omni_trans)== radar_room)) remove omni_trans; } if (parent(og_datacard) ~= nothing) { if ((parent(parent(og_datacard)) == radar_room) || (parent(og_datacard)== radar_room)) remove og_datacard; } if (parent(playbeing) ~= nothing) { if ((parent(parent(playbeing)) == radar_room) || (parent(playbeing)== radar_room)) remove playbeing; } if (parent(ce_badge) ~= nothing) { if ((parent(parent(ce_badge)) == radar_room) || (parent(ce_badge)== radar_room)) remove ce_badge; } if (parent(prybar) ~= nothing) { if ((parent(parent(prybar)) == radar_room) || (parent(prybar)== radar_room)) remove prybar; } if (parent(milpack) ~= nothing) { if ((parent(parent(milpack)) == radar_room) || (parent(milpack)== radar_room)) remove milpack; } if (parent(knife) ~= nothing) { if ((parent(parent(knife)) == radar_room) || (parent(knife)== radar_room)) remove knife; } if (parent(halfshelter) ~= nothing) { if ((parent(parent(halfshelter)) == radar_room) || (parent(halfshelter)== radar_room)) remove halfshelter; } } else { if (parent(self) == milpack or chasmobj) { samelevel = parent(parent(self)); abovelevel = parent(parent(parent(self))); } else { samelevel = parent(self); abovelevel = parent(parent(self)); } if (parent(coffee_cup) ~= nothing) { if ((parent(parent(coffee_cup)) == samelevel || abovelevel) || (parent(coffee_cup) == samelevel || abovelevel)) remove coffee_cup; } if (parent(wrench) ~= nothing) { if ((parent(parent(wrench)) == samelevel || abovelevel) || (parent(wrench) == samelevel || abovelevel)) remove wrench; } if (parent(ident_badge) ~= nothing) { if ((parent(parent(ident_badge)) == samelevel || abovelevel) || (parent(ident_badge) == samelevel || abovelevel)) remove ident_badge; } if (parent(omni_trans) ~= nothing) { if ((parent(parent(omni_trans)) == samelevel || abovelevel) || (parent(omni_trans) == samelevel || abovelevel)) remove omni_trans; } if (parent(og_datacard) ~= nothing) { if ((parent(parent(og_datacard)) == samelevel || abovelevel) || (parent(og_datacard) == samelevel || abovelevel)) remove og_datacard; } if (parent(playbeing) ~= nothing) { if ((parent(parent(playbeing)) == samelevel || abovelevel) || (parent(playbeing) == samelevel || abovelevel)) remove playbeing; } if (parent(torch) ~= nothing) { if ((parent(parent(torch)) == samelevel || abovelevel) || (parent(torch) == samelevel || abovelevel)) remove torch; } if (parent(solace_cube) ~= nothing) { if ((parent(parent(solace_cube)) == samelevel || abovelevel) || (parent(solace_cube) == samelevel || abovelevel)) remove solace_cube; } if (parent(obsidian_stone) ~= nothing) { if ((parent(parent(obsidian_stone)) == samelevel || abovelevel) || (parent(obsidian_stone) == samelevel || abovelevel)) remove obsidian_stone; } if (parent(ruby) ~= nothing) { if ((parent(parent(ruby)) == samelevel || abovelevel) || (parent(ruby) == samelevel || abovelevel)) remove ruby; } if (parent(small_pearl) ~= nothing) { if ((parent(parent(small_pearl)) == samelevel || abovelevel) || (parent(small_pearl) == samelevel || abovelevel)) remove small_pearl; } if (parent(diamond) ~= nothing) { if ((parent(parent(diamond)) == samelevel || abovelevel) || (parent(diamond) == samelevel || abovelevel)) remove diamond; } if (parent(trans_crystal) ~= nothing) { if ((parent(parent(trans_crystal)) == samelevel || abovelevel) || (parent(trans_crystal) == samelevel || abovelevel)) remove trans_crystal; } if (parent(ce_badge) ~= nothing) { if ((parent(parent(ce_badge)) == samelevel || abovelevel) || (parent(ce_badge) == samelevel || abovelevel)) remove ce_badge; } if (parent(prybar) ~= nothing) { if ((parent(parent(prybar)) == samelevel || abovelevel) || (parent(prybar) == samelevel || abovelevel)) remove prybar; } if (parent(self) ~= milpack) { if (parent(milpack) ~= nothing) { if ((parent(parent(milpack)) == samelevel || abovelevel) || (parent(milpack) == samelevel || abovelevel)) remove milpack; } } if (parent(knife) ~= nothing) { if ((parent(parent(knife)) == samelevel || abovelevel) || (parent(knife) == samelevel || abovelevel)) remove knife; } if (parent(halfshelter) ~= nothing) { if ((parent(parent(halfshelter)) == samelevel || abovelevel) || (parent(halfshelter) == samelevel || abovelevel)) remove halfshelter; } if (parent(journal) ~= nothing) { if ((parent(parent(journal)) == samelevel || abovelevel) || (parent(journal) == samelevel || abovelevel)) remove journal; } if (parent(datapad) ~= nothing) { if ((parent(parent(datapad)) == samelevel || abovelevel) || (parent(datapad) == samelevel || abovelevel)) remove datapad; } if (parent(zipchip) ~= nothing) { if ((parent(parent(zipchip)) == samelevel || abovelevel) || (parent(zipchip) == samelevel || abovelevel)) remove zipchip; } if (parent(scorchedtome) ~= nothing) { if ((parent(parent(scorchedtome)) == samelevel || abovelevel) || (parent(scorchedtome) == samelevel || abovelevel)) remove scorchedtome; } if (parent(bookoflydin) ~= nothing) { if ((parent(parent(bookoflydin)) == samelevel || abovelevel) || (parent(bookoflydin) == samelevel || abovelevel)) remove bookoflydin; } if (parent(torntome) ~= nothing) { if ((parent(parent(torntome)) == samelevel || abovelevel) || (parent(torntome) == samelevel || abovelevel)) remove torntome; } if (parent(blacktome) ~= nothing) { if ((parent(parent(blacktome)) == samelevel || abovelevel) || (parent(blacktome) == samelevel || abovelevel)) remove blacktome; } if (parent(mal_spacesuit) ~= nothing) { if ((parent(parent(mal_spacesuit)) == samelevel || abovelevel) || (parent(mal_spacesuit) == samelevel || abovelevel)) remove mal_spacesuit; } if (parent(rope) ~= nothing) { if ((parent(parent(rope)) == samelevel || abovelevel) || (parent(rope) == samelevel || abovelevel)) remove rope; } } ]; [ RemoveWorm vpass; switch (vpass) { 0: print "As you put the torch into the pool of acid, the liquid smothers the fire out.^^Suddenly,"; 1: print "The burning torch falls into the pool of acid, only to go out once it hits the liquid.^^Suddenly,"; 2: print "As you drop the torch"; } return PSKill(); ]; [ RipSub; "You can't rip that."; ]; [ RobotAnswer npass; if (self.trnon == false) return OnRobot(2); switch(npass) { t_hi: "~Good day yourself,~ jeers the robo-wash cleaning up the galley."; t_thanks: "~It's about time someone showed me a bit of respect,~ says the robo-wash smiling to itself."; t_goodbye: "~And stay out,~ the robo-wash snaps, ~you only make a mess anyways.~"; } "~Liar,~ says the robo-wash, blinking his wide eyes. A moment later he turns back to cleaning off the tables."; ]; [ Robotalk; if (irobowash == 9) irobowash = -1; irobowash++; switch (robo_reply-->irobowash) { 1: "^~You think a crew this efficient would pick up after themselves,~ complains the robo-wash."; 2: "^~Wow, look, another dish,~ whines the robo-wash."; 3: "^~...making me do his dirty work,~ says the robo-wash, under his breath."; 4: "^~Great, another table full of dirty dishes,~ the robo-wash says with disgust."; 5: "^~Wish someone would help in here,~ says the robo-wash, blinking at you."; 6: "^~Look at all this food, what a waste!~ remarks the robo-wash."; 7: "^~...downright slave driver,~ says the robo-wash contemptuously."; 8: "^~I'm always doing dishes, God when will this end,~ cries out the robo-wash."; 9: "^~You know, I'm pretty good at navigation, couldn't you use me up on the bridge?~ asks the robo-wash."; 10: "^~Some day this will end,~ the robo-wash says, comforting himself."; } ]; [ RSMItm; if (sm_eggs in small_room) remove sm_eggs; if (sm_hshape in small_room) remove sm_hshape; if (sr_substance in small_room) remove sr_substance; if (sm_cobweb in small_room) remove sm_cobweb; ]; [ RunAwaySub; if (player.runaway) "Please try running towards a compass direction, i.e., RUN FORWARD."; "Please try running towards a compass direction, i.e., RUN NORTH."; ]; [ ScanSub; if (omni_trans notin player) return PNF(); if (noun == player) "Don't be foolish."; return NLC(); ]; [ ScanC1Sub; if (omni_trans notin player) return PNF(); if (noun == player) "Don't be foolish."; return NLC(); ]; [ ScanC2Sub; if (omni_trans notin player) return PNF(); if (noun == player) "Don't be foolish."; return NLC(); ]; [ ScanC3Sub; if (omni_trans notin player) return PNF(); if (noun == player) "Don't be foolish."; return NLC(); ]; [ ScanC4Sub; if (omni_trans notin player) return PNF(); if (noun == player) "Don't be foolish."; return NLC(); ]; [ ScanC5Sub; if (omni_trans notin player) return PNF(); if (noun == player) "Don't be foolish."; return NLC(); ]; [ ScanC6Sub; if (omni_trans notin player) return PNF(); if (noun == player) "Don't be foolish."; return NLC(); ]; [ ScanC7Sub; if (omni_trans notin player) return PNF(); if (noun == player) "Don't be foolish."; return NLC(); ]; [ ScanC8Sub; if (omni_trans notin player) return PNF(); if (noun == player) "Don't be foolish."; return NLC(); ]; [ ScanC9Sub; if (omni_trans notin player) return PNF(); if (noun == player) "Don't be foolish."; return NLC(); ]; [ ScanC10Sub; if (omni_trans notin player) return PNF(); if (noun == player) "Don't be foolish."; return NLC(); ]; [ ScanC11Sub; if (omni_trans notin player) return PNF(); if (noun == player) "Don't be foolish."; return NLC(); ]; [ ScanC12Sub; if (omni_trans notin player) return PNF(); if (noun == player) "Don't be foolish."; return NLC(); ]; [ ScanC13Sub; if (omni_trans notin player) return PNF(); if (noun == player) "Don't be foolish."; return NLC(); ]; [ ScanC14Sub; if (omni_trans notin player) return PNF(); if (noun == player) "Don't be foolish."; return NLC(); ]; [ ScanC15Sub; if (omni_trans notin player) return PNF(); if (noun == player) "Don't be foolish."; return NLC(); ]; [ ScanC16Sub; if (omni_trans notin player) return PNF(); if (noun == player) "Don't be foolish."; return NLC(); ]; [ ShitSub; "If only there were a load to dump."; ]; [ ShortOutSub; "You can't short that out."; ]; [ ShowSub; if (second has animate) { if (parent(noun) ~= player) return L__M(##Show, 1, noun); if (second == player) <>; if (RunLife(second, ##Show) ~= 0) rfalse; return L__M(##Show, 2, second); } L__M(##Miscellany, 37); ]; [ SitSub; "That's not something you can sit down on."; ]; [ SitDownSub; "There's nothing for you to sit down on."; ]; [ SJunction; if (radar_room.rrdaemonstart && galley.entergalley) "You have no reason to enter the bowels of the ship.^^The only places you really want to go right now are the galley and your duty station in the DMC."; if (radar_room.rrdaemonstart) "You have no reason to enter the bowels of the ship.^^The only place you really want to go right now is to your duty station in the DMC."; print "You climb down the ladder.^"; PlayerTo(secondary_junction); rtrue; ]; [ SmashSub; "You can't step on ", (the) noun, "."; ]; [ SpAnger vpass; thinksav = thinkpos; thinkpos = 17; give orb ~concealed; lc_vampires.anger = true; if (adar has general) lc_vampires.enraged = true; switch (vpass) { 0: print "As you take the heavy orb off the obelisk"; 1: move orb to secret_chamber; move self to secret_chamber; print "As you knock the heavy orb off the obelisk with ", (the) self; } " the four ethereal spirits scream out in a rage, stinging the air as they whip about the room. ~You are not the Protector, you are nothing more than an unclean beast,~ they shout in a hateful rage that causes you to think twice about what you've just done."; ]; [ SpiltCup; give coffee_cup ~general; radar.coffeesplit = true; remove rr_msat; remove rr_ch_ss; remove rr_charts; radar.power = false; coffee_cup.&name-->4 = '0100ph'; ]; [ SpiritAnswer npass; switch(npass) { t_no: "~It is a shame, but our life is full of sadness,~ responds one of the spirits."; t_yes: "~What you think you know, I doubt you do,~ says one of the spirits before she returns to the circle."; t_hi: "One of the spirits slightly looks up, but as a group they pay you no mind as they encircle the golden orb."; t_goodbye: "~We've always been alone,~ cries a spirit to herself, ~yes, so alone.~"; t_sorry: "~Words will not ease suffering,~ snaps one of the spirits scornfully."; default: "~We suffer and suffer,~ all the spirits cry out. ~Why do you continue this torment?~"; } ]; [ SpiritDeath; TestThink(); remove lc_vampires; player.orbtke = true; solace_cube.shimmering = true; solace_cube.&name-->3 = 'shimmering'; if (adar has general) adar.lmptke = true; if (solace_cube in milpack) move self to player; solace_cube.short_name = "small black cube (shimmering)"; "With a blinding flash of white light, the small black cube comes alive. It sucks in the very souls of the tormented spirits, trapping them forever within its dark walls, only their screams left echoing down the corridor. ^^~What an interesting device,~ you think to yourself as you pocket the cube."; ]; [ Spitter; if (sandworm in small_room) rtrue; rfalse; ]; [ SSignRead; "Reading clockwise, starting from the fore, there are arrows marked: ~Cargo Hold~, ~Main Airlock~, ~Engine Room~, and ~Armory~. An arrow pointing up is labeled ~Bridge~, ~Data Mining Center~, ~Crew Quarters~, and ~Galley~."; ]; [ StandSub; "That's not something you can stand on."; ]; [ StrapSub; "You can't strap into ", (the) noun, "."; ]; [ StartSmoke; if (crashed_ship.airlockopen || al_door.albroken) { if (adar has general) { StSmVarSet(); if (adar in air_lock or sm_airlock) { print "^Captain Adar turns to you, "; if (al_door.firstate) { print "smiling, "; } else { print "with a hard look in "; if (m_base.ch_maidens) print "her"; else print "his"; print " eyes, "; } } else { if (player in sm_airlock) move adar to sm_airlock; else move adar to air_lock; print "^Captain Adar returns once the air is breathable again. "; } if (crashed_ship.airlockopen) "~Good, she's up and running again, now turn on that beacon.~"; if (al_door.firstate) { al_door.firstate = false; "~Wow, I never thought you'd get around that door. I knew it was broken when I bought this ship, but the Altairian Dollar doesn't go as far as it used to and beggars can't be choosers.~"; } "~Good, she's up and running again, now turn on that beacon.~"; } } else { e_beacon.eb_notseen = true; if (CHPuzTest()) { if (spacesuit has worn) { if (al_gen.ps_scored) { al_gen.ps_scored = false; score = score + 5; } if (spacesuit.suitopen) { spacesuit.suitopen = false; if (adar in air_lock) { MoveAdar(9); print "^As you close the helm to your deep-space suit, you see Captain Adar making a dash for the forward hatch, coughing heavily.^"; } else { print "^Before the smoke drives you out, you close the helm to your deep-space suit.^"; } } else { if (adar in air_lock) { MoveAdar(9); print "^The smoke sets Captain Adar coughing as "; PHeShe(); print " runs out of here, fast.^"; } } } else { al_gen.forcedout = true; print "^Before you can do anything, the smoke sets you coughing and you realize that you'll have to get out of here, fast."; if (adar in air_lock) { MoveAdar(9); print " Captain Adar beats you out the hatch."; } print "^"; PlayerTo(crashed_ship); } } } StSmVarSet(); rtrue; ]; [ StSmVarSet; give controlpanel general; al_gen.ps_turnedon = true; crashed_ship.smoking = true; move intsmokeobj1 to crashed_ship; move intsmokeobj2 to air_lock; move smokeobj to desert_crash; d_crashed_shipobj.&name-->2 = 'smoking'; d_crashed_shipobj.short_name = "smoking crashed ship"; StartDaemon(al_gen); ]; [ SUpSub; "You're already standing."; ]; [ SwFlipSub; if (noun has pluralname) "They're not something you can switch."; "That's not something you can switch."; ]; [ TakenIdol; move self to player; give unholy_shrine general; StartDaemon(unholy_shrine); deadly_pit.dpfirstime = true; huge_boulder.boulderfalling = true; move huge_boulder to unholy_shrine; if (noun == statue) adar.haveidol = true; print "As you take ", (the) self, " off the altar, you hear a heavy rumble from above.^"; if (adar has general) "^~Hurry,~ Captain Adar shouts down, ~a huge boulder just came loose and it's about to come down on top of you! Get out of there now!~"; rtrue; ]; [ TearSub; "You can't tear that."; ]; [ TEgg; itakegg=3; if (s_egg.eggscrd) { s_egg.eggscrd = false; score = score + 5; } move s_egg to player; small_room.spitmad = true; sm_eggs.&name-->0 = '7375ph'; print "With a final stroke from your blade you free the egg, "; if (TorchOn()) "carefully keeping the spitter at bay with the torch as you take it."; "dodging out of the way of the spitter."; ]; [ TellToSub; print_ret (The) noun, " seems confused by your request."; ]; [ TempleRename; mb_building.short_name = "mountain"; mb_building.&name-->0 = 'tall'; mb_building.&name-->1 = 'barren'; mb_building.&name-->2 = 'mountain^s'; mb_building.&name-->3 = 'mountains'; mb_building.&name-->4 = 'surface'; mb_building.&name-->5 = 'rocky'; mb_building.&name-->6 = 'rockface'; mb_building.&name-->7 = 'glassy'; mb_building.&name-->8 = 'smoothness'; ]; [ TestAirLock i; i=0; if (air_lock has light) i++; if (player in air_lock && i == 0) rtrue; rfalse; ]; [ TestMSuit; if (mal_spacesuit in player) { if (uniform in mal_spacesuit) move uniform to player; give mal_spacesuit ~worn; move mal_spacesuit to main_airlock; print "(not wanting to slow down your progress, you leave the space suit behind)^"; } ]; [ TestShrine i; i=0; if (unholy_shrine has light) i++; if (player in unholy_shrine && i == 0) rtrue; rfalse; ]; [ TestSuit; if (spacesuit in player) { if (uniform in spacesuit) move uniform to player; adar.asksuit = false; give spacesuit ~worn; give spacesuit ~container; spacesuit.suitopen = true; move spacesuit to location; print "(not wanting to slow down your progress, you leave the space suit behind.)^"; } ]; [ TestThink; if (thinkpos == 17) thinkpos = thinksav; ]; [ ThrnDth vpass; print "You walk up the steps to the dais, "; switch (vpass) { 1: print "thinking gratefully of being able to sit down at last, and of the meal to follow.^^Just as you reach the top, y"; 2: print "taking a closer look at the throne.^^Just as you reach the top, y"; 3: print "trying to get close enough to touch the throne.^^Just as you reach the top, y"; 4: print "taking a closer look at it.^^Y"; 5: print "getting close enough to touch it.^^Y"; 6: print "taking a closer look at the long dining table.^^Just as you reach the top, y"; 7: print "trying to get close enough to touch the table.^^Just as you reach the top, y"; } deadflag = 1; "ou feel a surge of nausea as the room flows around you, like a Dali painting disappearing down the drain. Gone is the peaceful temple; instead you're surrounded by jagged cave walls. Looking down, hoping to see an earthen floor, you instead see the gaping jaws of a ralckor! Where the dais used to be, there's nothing but mouth and razor-sharp teeth, and you're falling straight into it."; ]; [ TopicScope; switch(scope_stage) { 1: rfalse; 2: ScopeWithin(Topics); rtrue; 3: "At the moment, even the simplest questions are confusing."; } ]; [ TorBurn; if (trans_crystal.beamscore) { trans_crystal.beamscore = false; score = score + 5; } lc_space.&name-->2 = '0909ph'; torch.tinbeam = false; trans_crystal.tcinbeam = false; give torch light; torch.burned = true; torch.onfire = true; torch.&name-->1 = 'burning'; torch.&name-->2 = 'blazing'; ]; [ TorchOn; if (torch in player && torch.onfire) rtrue; rfalse; ]; [ TorchOut; give torch ~light; torch.&name-->1 = 'cold'; torch.&name-->2 = 'dead'; torch.onfire = false; ]; [ TPackScore; if (self.detaken) { self.detaken = false; self.scrtaken = true; score = score + 5; } ]; [ TPackSuit; if (milpack in uniform) { give milpack ~worn; move milpack to player; print "(first taking off the field pack)^"; } ]; [ TripSub; if (self has pluralname) "You can't trip them."; "You can't trip that."; ]; [ UnplugSub; "You can't unplug ", (the) noun, "."; ]; [ UnstrapSub; "You can't un-strap that."; ]; [ UseSub; "You can't use ", (the) noun, " with that."; ]; [ UseItemSub; "You can't use that."; ]; [ USAltarTest i x; i = 0; if (datacard in us_altar) i++; if (coffee_cup in us_altar) i++; if (playbeing in us_altar) i++; if (milpack in us_altar) i++; if (detonator in us_altar) i++; if (knife in us_altar) i++; if (halfshelter in us_altar) i++; if (wrench in us_altar) i++; if (prybar in us_altar) i++; if (hs_mre in us_altar) i++; if (trans_crystal in us_altar) i++; objectloop (x in us_altar && x ofclass Shale) i++; if (torch in us_altar) i++; if (statue in us_altar) i++; if (orb in us_altar) i = i + 2; if (obsidian_stone in us_altar) i++; if (ruby in us_altar) i++; if (small_pearl in us_altar) i++; if (diamond in us_altar) i++; if (bookoflydin in us_altar) i++; if (scorchedtome in us_altar) i++; if (torntome in us_altar) i++; if (blacktome in us_altar) i++; if (journal in us_altar) i++; if (solace_cube in us_altar) i++; if (medkit in us_altar) i++; if (firstaidwraps in us_altar) i++; if (autocoolant in us_altar) i++; if (spacesuit in us_altar) i++; if (datapad in us_altar) i++; if (loxtank in us_altar) i = i + 2; if (orb in us_altar || loxtank in us_altar) { if (i == 2) rtrue; } else { if (i == 1) rtrue; } rfalse; ]; [ WaitSub; if (AfterRoutines() == 1) rtrue; L__M(##Wait, 1, noun); if (player in galley) { if (robowash.working) Robotalk(); } ]; [ WearNeck; if (self in player) { if (self has worn) "You're already wearing that!"; give self worn; "You put ", (the) self, " on around your neck."; } "You're not holding that!"; ]; [ WrapSub; "You can't wrap ", (the) noun, " around that."; ]; [ WrapRevSub; "You can't wrap ", (the) second, " around that."; ]; [ XyzzySub; print "You think you hear a fizzle and a pop, but ever since coming back from zero gravity training you've been hearing strange sounds every now and then."; if (player in dreambridge) "^"; ""; ]; [ ZorkSub; "Gesundheit!"; ]; Include "GrammarAcross"; ! ---------------------------------------------------------------------------- ! ! Conversational Topics ! Object Topics "conversational topics"; Object -> t_yes with name 'yes' 'please' 'ok'; Object -> t_no with name 'no'; Object -> t_hi with name 'hi' 'hello' 'hola' 'greetings'; Object -> t_thanks with name 'thank' 'thanks'; Object -> t_sorry with name 'sorry'; Object -> t_goodbye with name 'goodbye' 'goodby' 'good-bye' 'good' 'bye' 'cheerio'; Object -> t_xultheen with name 'xultheen' 'xulthe^en' 'xultheens' 'xulthe^en^s' 'empire'; Object -> t_ralckor with name 'ralckor' 'beast'; Object -> t_vampire with name 'four' 'ethereal' 'spirits' 'spirit^s'; Object -> t_pirates with name 'pirate' 'pirates'; Object -> t_tribe with name 'tribe' 'tribalistic' 'runes' 'rune'; Object -> t_zship with name 'crashed' 'ship' 'ships' 'zrok' '393' 'zrok-393'; Object -> t_tship with name 'trans-stellar' 'trans' 'stellar' 'transport'; Object -> t_player with name 'self' 'yourself' 'me' 'player'; Object -> t_arm with name 'broken' 'arm'; Object -> t_rigel with name 'rigel'; Object -> t_stokar with name 'stokar'; Object -> t_brakis with name 'brakis' 'vi' 'planet' 'rock'; Object -> t_fruit with name 'pear' 'apple' 'fruit'; Object -> t_ebeacon with name 'emergency' 'beacon'; Object -> t_cpanel with name 'control' 'panel'; Object -> t_rchasm with name 'rocky' 'chasm'; Object -> t_scrate with name 'large' 'crate'; Object -> t_zygnan with name 'zy^gnan' 'zygnan'; Object -> t_douglas with name 'douglas'; Object -> t_smoke with name 'smoke'; Object -> t_adar with name 'adar'; Object -> t_meal with name 'meal' 'synthesizer' 'food' 'drink' 'dispenser' 'holder' 'cup-holder'; Object -> t_plates with name 'plate' 'plates' 'dish' 'dishes' 'utensil' 'utensils'; Object -> t_money with name 'money' 'cubit'; Object -> t_crew with name 'crew' 'crewmate' 'crewmates' 'rest'; Object -> t_work with name 'work'; Object -> t_help with name 'help'; Object -> t_bridge with name 'bridge'; Object -> t_pedestal with name 'drab' 'looking' 'drab-looking' 'pedestal'; Object -> t_dpit with name 'deadly' 'pit'; Object -> t_airlock with name 'cargo' 'hatch' 'door'; Object -> t_bolt with name 'bolt'; Object -> t_hpiston with name 'hydraulic' 'piston'; Object -> t_eengine with name 'auxiliary' 'power' 'unit' 'apu' 'switch'; Object -> t_icore with name 'inner' 'core'; Object -> t_eggs with name 'egg' 'eggs' 'spotted' 'yellow' 'orange'; Object -> t_uniform with name 'uniform'; Object -> t_pident with name 'personal' 'ident' 'badge'; Object -> t_datacard with name 'datacard'; Object -> t_otrans with name 'omnitrans' 'omnibus' 'galacticus'; Object -> t_cup with name 'coffee' 'cup' 'mug'; Object -> t_playbeing with name 'playbeing'; Object -> t_fpack with name 'field' 'pack'; Object -> t_bomb with name 'bomb' 'atomaton' 'detonator'; Object -> t_knife with name 'survival' 'knife'; Object -> t_shelter with name 'half' 'shelter'; Object -> t_utool with name 'universal' 'tool'; Object -> t_pbar with name 'pry' 'bar'; Object -> t_tcrystal with name 'clear-red' 'crystal' 'magnifying' 'glass'; Object -> t_shale with name 'shale'; Object -> t_torch with name 'torch' 'light'; Object -> t_ghook with name 'grappling' 'hook'; Object -> t_idol with name 'statue' 'idol'; Object -> t_lamp with name 'golden' 'lamp' 'red' 'radiant' 'orb' 'glowing' 'sucored^s' 'last' 'shard'; Object -> t_necklace with name 'obsidian' 'pearl' 'ruby' 'diamond' 'necklace' 'necklaces'; Object -> t_journal with name 'high' 'priests' 'priest^s' 'priest' 'journal'; Object -> t_tome with name 'leather' 'book' 'of' 'lydin' 'bible' 'tome' 'holy' 'scripture'; Object -> t_scube with name 'small' 'black' 'cube' 'shimmering'; Object -> t_mkit with name 'medkit' 'med' 'kit'; Object -> t_coolant with name 'auto' 'coolant' 'autocoolant'; Object -> t_wraps with name 'first-aid' 'firstaid' 'first' 'aid' 'wraps'; Object -> t_ssuit with name 'deep-space' 'deep' 'space' 'suit' 'spacesuit'; Object -> t_dpad with name 'data' 'pad' 'datapad'; Object -> t_zchip with name 'zipchip'; Object -> t_ochip with name 'operating' 'chip'; Object -> t_trobe with name 'tattered' 'robe'; Object -> t_lox with name 'liquid-oxygen' 'liquid' 'oxygen' 'tank' 'lox'; Object -> t_cwire with name 'copper' 'wire'; Object -> t_page with name 'old' 'burnt' 'bleached' 'page'; Object -> t_oheat with name 'overheating'; Object -> t_system with name 'computer' 'system' 'systems'; Object -> t_protector with name 'protector'; Object -> t_lydinae with name 'lydinae'; Object -> t_test with name 'test'; Object -> t_sucored with name 'sucored'; Object -> t_button with name 'button'; ! ---------------------------------------------------------------------------- ! ! New Verbs ! Verb 'accept' * noun -> Take * noun 'from' noun -> Take; Verb 'activate' * noun -> SwitchOn * noun 'on' noun -> SwitchOn * noun 'with' held -> SwitchOn; Verb 'answer' 'say' 'shout' 'speak' * 'no'/'thanks' -> No * 'yes'/'please'/'ok' -> Yes * scope=TopicScope 'to' creature -> Answer; Verb 'arm' * noun -> SwitchOn; Verb 'attach' * noun -> UseItem * held 'to' noun -> Use * held 'on' noun -> Use; Verb 'bandage' * noun 'with' noun -> WrapRev * noun 'in' noun -> WrapRev * noun 'around' noun -> Wrap; Verb 'blow' * noun -> Blow * 'away' noun -> Blow; Verb 'burn' 'light' * noun -> Burn * noun 'in' noun -> Burn * noun 'with' noun -> Burn; Verb 'by' * 'magic' -> Magic; Verb 'bypass' * noun -> ShortOut * noun 'with' noun -> ShortOut * 'out' noun -> ShortOut * 'out' noun 'with' noun -> ShortOut * 'circuit' noun -> ShortOut * 'circuit' noun 'with' noun -> ShortOut; Verb 'climb' 'scale' * 'up' -> Climb * 'down' -> ClimbDown * noun -> Climb * 'on' noun -> Climb * 'onto' noun -> Enter * 'under' noun -> Enter * 'up' 'on' noun -> Climb * 'up'/'over'/'down' noun -> Climb; Verb 'crawl' * 'out' -> Exit * noun -> Enter * 'in' noun -> Enter * 'into' noun -> Enter * 'under' noun -> Hide * 'over' noun -> CrawlOver * 'out' 'of' noun -> Exit * 'out' 'from' noun -> Exit * 'out' 'from' 'underneath' noun -> Exit; Verb 'certify' * noun -> Certify; Verb 'come' * 'on' -> Please; Verb 'credits' 'credit' * -> Credits; Verb 'cut' 'chop' 'prune' 'slice' * noun -> Cut * noun 'with' held -> Cut; Verb 'detonate' * noun -> SwitchOn; Verb 'drink' 'sip' 'swallow' * -> Drink * noun -> Drink; Verb 'embrace' * creature -> Hug; Verb 'fart' * -> Fart; Verb 'fasten' * noun -> UseItem * held 'to' noun -> Use * held 'on' noun -> Use; Verb 'fill' * noun -> Fill * noun 'with' noun -> Fill; Verb 'fix' 'tighten' 'repair' * noun -> Fix * noun 'with' held -> Fix; Verb 'flip' * noun -> SwFlip * noun 'on' noun -> SwFlip * 'on' noun -> SwFlip * noun 'on' -> SwFlip * 'off' noun -> FlipOff * noun 'off' -> FlipOff * 'on' noun 'on' noun -> SwFlip; Verb 'flush' * noun -> Flush; Verb 'follow' * noun -> Follow; Verb 'game' * 'credit'/'credits' -> Credits * 'info'/'information' -> Info; Verb 'gaming' * 'tip' -> Gaming * 'tips' -> Gaming; Verb 'get' * 'out'/'off'/'up' -> GetOff * 'down' -> GetDown * 'down' noun -> GetDown * 'out' 'of' noun -> Exit * 'off' 'of' noun -> GetOff * 'up' 'on' noun -> Enter * multi -> Take * 'in'/'into'/'on'/'onto' noun -> Enter * 'necklaces' -> Necklaces * 'all' 'necklaces' -> Necklaces * 'off' noun -> GetOff * 'under' noun -> Enter * noun 'from' noun -> Take * noun 'with' held -> Take * multiinside 'from' noun -> Take * 'down' 'off' noun -> GetOff * 'down' 'off' 'of' noun -> GetOff; Verb 'grapple' 'hook' * noun -> Grapple * noun 'to' noun -> Grapple * noun 'with' noun -> Grapple; Verb 'good' * 'day' -> Hello * 'night' -> Quit; Verb 'hand' * held 'to' creature -> Give * creature held -> Give reverse * 'over' held 'to' creature -> Give; Verb 'hello' 'hi' * -> Hello * 'there' -> Hello * 'sailor' -> HSailor * noun -> Hello * 'there' noun -> Hello * scope=HelloTopic -> Hello * 'there' scope=HelloTopic -> Hello; Verb 'help' 'walkthrough' * -> Help * noun -> Help * 'with' noun -> Help; Verb 'hide' * -> HideRoom * 'in' noun -> Hide * 'under' noun -> Hide * 'under' 'the' noun -> Hide; Verb 'hint' 'hints' 'hint^s' * -> MyThink; Verb 'hug' * creature -> Hug; Verb 'info' 'about' * -> Info * 'game' -> Info * 'the' 'game' -> Info; Verb 'kick' * noun -> Kick; Verb 'knock' * noun -> Push; Verb 'lie' * 'on' 'top' 'of' noun -> Enter * 'on'/'in'/'inside' noun -> Enter; Verb 'look' 'l//' * -> Look * noun -> Examine * 'to' noun -> Examine * noun=ADirection -> Examine * 'to' noun=ADirection -> Examine * 'at'/'out' noun -> Examine * 'inside'/'in'/'into'/'through'/'on' noun -> Search * 'under' noun -> LookUnder * 'behind' noun -> LookBehind * 'up' topic -> ReadTrans * 'up' topic 'in' noun -> Consult; Verb 'make' * noun -> Make; Verb 'new' * 'verb' -> NewVerbs * 'verbs' -> NewVerbs; Verb 'off' * -> GetOff; Verb 'open' * noun -> Open * noun 'with' held -> Open * noun 'on' noun -> Open; Verb 'pitch' * noun -> Open; Verb 'play' * noun -> Play * 'with' noun -> Play; Verb 'please' * -> Please; Verb 'plug' * noun -> PlugItem * noun 'in' noun -> Plug * noun 'into' noun -> Plug; Verb 'pour' 'spray' * noun 'with' held -> Pour reverse * held 'on' noun -> Pour; Verb 'pry' 'prise' 'prize' 'lever' 'jemmy' 'force' * noun 'with' held -> Open * 'apart'/'open' noun 'with' held -> Open * noun 'apart'/'open' 'with' held -> Open; Verb 'push' 'clear' 'move' 'press' 'shift' * noun -> Push * 'back' noun -> Push * noun 'back' -> Push * 'on'/'down' noun -> Push * 'down' 'on' noun -> Push * noun noun -> Push * noun 'to'/'in'/'into' noun -> Transfer * 'coffee' 'on' noun -> PushC * 'tea' 'on' noun -> PushT * 'water' 'on' noun -> PushW * noun 'under'/'toward' noun -> Push * noun 'on'/'off' noun -> Push * noun 'off' 'of' noun -> Push; Verb 'put' * held 'in'/'inside'/'into' noun -> Insert * held 'on'/'onto' noun -> PutOn * 'on' noun -> Wear * 'down' multiheld -> Drop * multiheld 'down' -> Drop * held 'under' noun -> PUnder * held 'between' noun -> Insert * held 'on' 'top' 'of' noun -> PutOn; Verb 'read' * noun -> Read * 'about' topic -> ReadTrans * 'about' topic 'in' noun -> Consult * topic 'in' noun -> Consult * noun 'with' noun -> Scan; Verb 'remove' * noun -> Remove * noun 'from' noun -> Remove * noun 'with' noun -> Remove * multiinside 'from' noun -> Remove; Verb 'rip' * noun -> Rip; Verb 'set' 'adjust' * noun -> Set * 'up' noun -> Open * noun 'to' special -> SetTo; Verb 'scan' 'translate' * noun -> Scan * noun 'with' held -> Scan * 'chapter' 'in' noun -> Scan * 'chapter' '1-5' 'in' noun -> Scan * 'chapter' '1-16' 'in' noun -> Scan * 'chapter' '1'/'one' 'in' noun -> ScanC1 * 'chapter' '2'/'two' 'in' noun -> ScanC2 * 'chapter' '3'/'three' 'in' noun -> ScanC3 * 'chapter' '4'/'four' 'in' noun -> ScanC4 * 'chapter' '5'/'five' 'in' noun -> ScanC5 * 'chapter' '6'/'six' 'in' noun -> ScanC6 * 'chapter' '7'/'seven' 'in' noun -> ScanC7 * 'chapter' '8'/'eight' 'in' noun -> ScanC8 * 'chapter' '9'/'nine' 'in' noun -> ScanC9 * 'chapter' '10'/'ten' 'in' noun -> ScanC10 * 'chapter' '11'/'eleven' 'in' noun -> ScanC11 * 'chapter' '12'/'twelve' 'in' noun -> ScanC12 * 'chapter' '13'/'thirteen' 'in' noun -> ScanC13 * 'chapter' '14'/'fourteen' 'in' noun -> ScanC14 * 'chapter' '15'/'fifteen' 'in' noun -> ScanC15 * 'chapter' '16'/'sixteen' 'in' noun -> ScanC16 * 'chapter' '1' '-' '5'/'16' 'in' noun -> Scan; Verb 'shit' * -> Shit; Verb 'short' * -> LMode3 * noun -> ShortOut * noun 'with' noun -> ShortOut * 'out' noun -> ShortOut * 'out' noun 'with' noun -> ShortOut * 'circuit' noun -> ShortOut * 'circuit' noun 'with' noun -> ShortOut; Verb 'show' 'display' 'present' * noun held -> Show reverse * held 'to' noun -> Show; Verb 'sit' * -> SitDown * 'on' 'top' 'of' noun -> Sit * 'on'/'in'/'inside' noun -> Sit * 'at' noun -> Sit * 'down' -> SitDown * 'down' 'on' noun -> Sit * 'down' 'at' noun -> Sit; Verb 'stand' * -> SUp * 'up' -> SUp * 'in' noun -> Stand * 'on' noun -> Stand; Verb 'step' * 'on' noun -> Smash; Verb 'strap' * 'in'/'into' noun -> Strap; Verb 'switch' * noun -> SwitchOn * noun 'on' -> SwitchOn * noun 'off' -> SwitchOff * 'on' noun -> SwitchOn * 'off' noun -> SwitchOff * 'on' noun 'on' noun -> SwitchOn * 'on' noun 'with' held -> SwitchOn * noun 'on' 'with' held -> SwitchOn * 'off' noun 'with' held -> SwitchOff * noun 'off' 'with' held -> SwitchOff; Verb 'take' 'carry' 'hold' 'grab' * multi -> Take * 'off' worn -> Disrobe * noun 'from' noun -> Take * multiinside 'from' noun -> Take * noun 'in' noun -> Insert * noun 'off' noun -> Take * noun 'with' held -> Take * multiinside 'off' noun -> Take * 'inventory' -> Inv * 'necklaces' -> Necklaces * 'all' 'necklaces' -> Necklaces * 'off' noun -> Remove * noun 'off' 'of' noun -> Take; Verb 'tear' * noun -> Tear * 'apart' noun -> Tear; Verb 'think' * -> MyThink; Verb 'throw' 'toss' * multiheld -> Drop * multiexcept 'in'/'into'/'down' noun -> ThrowAt * multiexcept 'on'/'onto' noun -> Drop * held 'at'/'against'/'on'/'onto'/'to'/'toward'/'towards' noun -> ThrowAt; Verb 'tie' * noun -> Tie * noun 'to' noun -> Tie * noun 'around' noun -> Tie; Verb 'tip' 'tips' * -> Gaming * -> Gaming; Verb 'trip' * noun -> Trip; Verb 'turn' 'rotate' 'screw' 'twist' 'unscrew' * noun -> Turn * noun 'into' noun -> Turn * noun 'on' -> SwitchOn * noun 'on' 'with' held -> SwitchOn * noun 'off' -> SwitchOff * noun 'off' 'with' held -> SwitchOff * 'on' noun -> SwitchOn * 'on' noun 'with' held -> SwitchOn * noun 'on' 'with' held -> SwitchOn * 'on' noun 'on' noun -> SwitchOn * 'off' noun -> SwitchOff * 'off' noun 'with' held -> SwitchOff * noun 'off' 'with' held -> SwitchOff; Verb 'uncover' 'undo' 'unwrap' * noun -> Open * noun 'with' held -> Open; Verb 'unfasten' * noun -> Unstrap * noun 'with' held -> Unlock; Verb 'unplug' * noun -> Unplug; Verb 'unstrap' 'untie' 'unlatch' * noun -> Unstrap * noun 'with' held -> Unlock; Verb 'use' * noun -> UseItem * held 'with' noun -> Use * held 'on' noun -> Use * held 'in' noun -> Use * held 'to' 'open' noun -> Use * held 'to' 'scan' noun -> Use; Verb 'wave' * -> WaveHands * noun -> Wave * noun 'at' creature -> Wave; Verb 'wrap' * noun 'with' noun -> WrapRev * noun 'in' noun -> WrapRev * noun 'around' noun -> Wrap; Verb 'xyzzy' 'plugh' 'plover' * -> Xyzzy; Verb 'zork' * -> Zork; ! ---------------------------------------------------------------------------- ! ! Verb Extensions ! Extend 'ask' first * creature 'about' scope=TopicScope -> Ask * creature 'for' scope=TopicScope -> Ask * creature 'to' scope=TopicScope -> AskChar; Extend 'close' * noun 'on' noun -> Close * noun 'to' noun -> Close; Extend 'cover' * noun 'on' noun -> Close * noun 'to' noun -> Close; Extend 'go' * 'to' noun -> Enter; Extend 'jump' * noun -> JumpOver * 'on' noun -> Stand * 'in' noun -> Enter * 'into' noun -> Enter * 'across' noun -> JumpOver * 'up' 'on' noun -> Stand; Extend 'pull' * 'up' noun -> Pull * noun 'up' -> Pull * noun 'with' held -> Pull; Extend 'run' * 'away' -> RunAway * 'to' noun -> Enter; Extend 'scale' * 'on' noun -> Climb; Extend 'search' * 'for' noun -> Search; Extend 'shut' * noun 'on' noun -> Close * noun 'to' noun -> Close; Extend 'tell' first * creature scope=TopicScope -> AnswerDir * creature 'about' scope=TopicScope -> Tell * creature 'to' scope=TopicScope -> TellTo; Extend 'unlock' first * noun -> Unlock; Extend 'walk' * 'to' noun -> Enter;