Object Second_Floor "Mezzanine" with description "Halfway up the marble staircase of the building, a second floor mezzanine which leads south into Grammar Hall (an extension purpose-built for the Room 16 exhibition).", d_to Foyer, s_to Grammar_Hall, u_to Third_Floor, has light; Object -> "map" with name "map" "mezzanine" "level", initial "A map of the mezzanine level is embossed in one wall.", description [; font off; print "^+------------------------------------------+ ^| | ^| | ^| | ^| | ^| Mezzanine | ^| (you are here) | ^| | | ^| | | ^| Grammar Hall 16 | ^| (telepathy, clock) | ^| (Charlotte, Dan) --- Ten Forward | ^| | (replicator) | ^| Liberator (computer) | ^| Bridge (tricorder) | ^| (Zen) | ^+------------------------------------------+^"; font on; ], has static; Object -> "Room 16 exhibition leaflet" with name "leaflet" "exhibition" "guide" "room" "sixteen", initial "An exhibition leaflet has fallen to the floor.", description "Among the rare & fascinating exhibits in Room 16 are:...^^ Telekinetic (and telepathic) Martha. In the telepathy booth, you can speak to her as though she were in Room 16 with you -- but she's not, she is far away. Tell her to ~look~ to find out where, and you can also ask her to give you things (by telekinesis).^^ Charlotte, who is playing Simon Says. She'll obey instructions you give as long as you preface it with ~simon says~. (Though she only knows how to wave, or how to clap many times (just tell her a number).)^^ Dyslexic Dan knows how to take and drop things and how to perform an inventory, but unfortunately confuses Take and Drop orders.^^ The alarm clock can be told ~on~, ~off~ or a time of day (to set its alarm to)."; ! -------------------------------------------------------------------------- Object Grammar_Hall "Grammar Hall" has light, with description "The main exhibit on the second floor: Room 16, south of the mezzanine. A Jeffreys Tube runs @00 into a Star Trek: The Next Generation room, while a hexagonal corridor to the south leads to the bridge of the spaceship ~Liberator~.", n_to Second_Floor, e_to Star_Trek, s_to Blakes_Seven; Object -> booth "telepathy booth" with name "booth" "telepathy", initial "A telepathy booth stands invitingly open: ~Talk To Telekinetic Martha~.", has enterable static; Object -> "Charlotte" with name "charlotte" "charlie" "chas", number 0, grammar [; give self ~general; wn=verb_wordnum; if (NextWord()=='simon' && NextWord()=='says') { give self general; verb_wordnum=verb_wordnum+2; } self.number=TryNumber(verb_wordnum); if (self.number~=-1000) { action=##Clap; noun=0; second=0; rtrue; } ], orders [ i; if (self hasnt general) "Charlotte sticks her tongue out."; WaveHands: "Charlotte waves energetically."; Clap: if (self.number==0) "Charlotte folds her arms."; for (i=0:i100) "^^Charlotte's a bit out of breath now."; "^^~Easy!~ says Charlotte."; default: "~Don't know how,~ says Charlotte."; ], initial "Charlotte wants to play Simon Says.", has animate female proper crewmember; Object -> "Dyslexic Dan" with name "dan" "dyslexic", grammar [; if (verb_word == 'take') { verb_wordnum++; return 'drop'; } if (verb_word == 'drop') { verb_wordnum++; return 'take'; } ], orders [; Take: "~What,~ says Dan, ~ you want me to take ", (the) noun, "?~"; Drop: "~What,~ says Dan, ~ you want me to drop ", (the) noun, "?~"; Inv: "~That I can do,~ says Dan. ~I'm empty-handed.~"; default: "~Don't know how,~ says Dan."; ], initial "Dyslexic Dan is here.", has animate proper crewmember; [ PrintTime x; print (x/60), ":", (x%60)/10, (x%60)%10; ]; Object -> "alarm clock" with name "alarm" "clock", article "an", number 480, description [; print "The alarm is "; if (self has general) print "on, "; else print "off, but "; "the clock reads ", (PrintTime) the_time, " and the alarm is set for ", (PrintTime) self.number, "."; ], react_after [; Inv: if (self in player) { new_line; <>; } Look: if (self in location) { new_line; <>; } ], daemon [; if (the_time >= self.number && the_time <= self.number+3 && self has general) "^Beep! Beep! The alarm goes off."; ], grammar [; return 'alarm,'; ], orders [; SwitchOn: give self general; StartDaemon(self); "~Alarm set.~"; SwitchOff: give self ~general; StopDaemon(self); "~Alarm cancelled.~"; SetTo: self.number=noun; <>; default: "~Commands are on, off or a time of day only, pliz.~"; ], life [; Ask, Answer, Tell: "[Try ~clock, something~ to address the clock.]"; ], has talkable; ! -------------------------------------------------------------------------- Object Blakes_Seven "Spaceship Liberator: Bridge" has light, with description "The great serried bridge of the alien spaceship Liberator, captured by Blake's group of revolutionary criminals on the run from the oppressive Earth Federation. (Don't worry -- it's just a convincing replica, and the museum still lies back north.)", n_to Grammar_Hall; Object -> "informative plaque" with name "informative" "plaque", article "an", description "[Among the commands which Zen was often given by the hard-pressed Liberator crew were:^^ zen, scan 360 orbital^ zen, speed standard by six^ zen, clear the neutron blasters for firing^ zen, raise the force wall^ zen, set course for centauro]", has static; Object -> "Zen" with name "zen" "flight" "computer", initial "Square lights flicker unpredictably across a hexagonal fascia on one wall, indicating that the flight computer Zen is on-line.", grammar [; return -'zen,'; ], orders [; Show: "The main screen shows a starfield, turning through ", noun, " degrees."; Go: "~Confirmed.~ The ship turns to a new bearing."; SetTo: if (noun==0) "~Confirmed.~ The ship comes to a stop."; if (noun>12) "~Standard by ", (number) noun, " exceeds design tolerances.~"; "~Confirmed.~ The ship's engines step to standard by ", (number) noun, "."; Take: if (noun~=force_wall) "~Please clarify.~"; "~Force wall raised.~"; Drop: if (noun~=blasters) "~Please clarify.~"; "~Battle-computers on line. Neutron blasters cleared for firing.~"; NotUnderstood: "~Language banks unable to decode.~"; default: "~Information. That function is unavailable.~"; ], has talkable proper static; Object -> -> force_wall "force wall" with name "force" "wall" "shields"; Object -> -> blasters "neutron blasters" with name "neutron" "blasters"; ! -------------------------------------------------------------------------- Object "Captain Picard" with name "captain" "picard", has proper animate crewmember; Object Star_Trek "10 Forward" has light, with description "The starswept observation lounge forward of deck 10 of the Starship Enterprise, where many milkshakes have been consumed in crisis situations. (It's only a replica, of course, and the museum lies back @01.)", w_to Grammar_Hall; Object -> "informative plaque" with name "informative" "plaque", article "an", description "[The computer, called just ~computer~, is useful for locating crew-members: try ~computer, where is commander data~, or ~...captain picard~, or any of the other people who can be found in the Museum.^^ The tricorder will scan something if you tell it the name of whom or what you wish to scan.^^ The replicator is a superior drinks machine: for instance, Captain Picard is fond of saying ~replicator, tea earl grey~. There's also brandy and distilled water.]", has static; Object -> "computer" with name "computer", initial "The computer, of course, always responds to your voice here.", grammar [; return 'stc,'; ], orders [; Examine: if (parent(noun)==0) "~", (name) noun, " is no longer aboard this demonstration game.~"; "~", (name) noun, " is in ", (name) parent(noun), ".~"; default: "The computer's only really good for locating the crew."; ], life [; Ask, Answer, Tell: "The computer is too simple."; ], has talkable static; Object -> "tricorder" with name "tricorder", grammar [; return 'tc,'; ], orders [; Examine: if (noun==player) "~You radiate life signs.~"; print "~", (The) noun, " radiates "; if (noun hasnt animate) print "no "; "life signs.~"; default: "The tricorder bleeps. It can only accept commands ~tricorder, ~."; ], life [; Ask, Answer, Tell: "The tricorder is too simple."; ], has talkable; Object -> "replicator" with name "replicator", initial "A replicator (i.e. Star Trek drinks machine) occupies a niche in one wall.", grammar [; return 'rc,'; ], orders [; Give: "The replicator serves up a cup of ", (name) noun, " which you drink eagerly."; default: "The replicator is unable to oblige. You must give it the name of a drink it knows about."; ], life [; Ask, Answer, Tell: "The replicator has no conversation skill."; ], has talkable static; Object -> -> "Earl Grey tea" with name "earl" "grey" "tea"; Object -> -> "Aldebaran brandy" with name "aldebaran" "brandy"; Object -> -> "distilled water" with name "distilled" "water"; ! -------------------------------------------------------------------------- Object "Sealed Room" with description "I'm in a sealed room, like a squash court without a door, maybe six or seven yards across", has light; Object -> "fish" with name "fish"; Key -> "cadmium key" with name "cadmium", after [; Drop: remove self; "The key smashes into smithereens!"; ]; Object -> martha "Martha" has animate female concealed proper crewmember with name "martha", orders [ r; r=parent(self); Give: if (noun notin r) "~That's beyond my telekinesis.~"; if (noun==self) "~Teleportation's too hard for me.~"; move noun to player; "~Here goes...~ and Martha's telekinetic talents magically bring ", (the) noun, " to your hands."; Look: print "~", (string) r.description; if (children(r)==1) ". There's nothing here but me.~"; print ". I can see "; WriteListFrom(child(r),CONCEAL_BIT+ENGLISH_BIT); ".~"; default: "~Afraid I can't help you there.~"; ], life [; Ask: "~You're on your own this time.~"; Tell: "Martha clucks sympathetically."; Answer: "~I'll be darned,~ Martha replies."; ]; ! ==========================================================================