2019-04-14 05:34:27 +03:00
|
|
|
|
"THINGS for SEASTALKER
|
|
|
|
|
Copyright (C) 1984 Infocom, Inc. All rights reserved."
|
|
|
|
|
|
|
|
|
|
<OBJECT PSEUDO-OBJECT
|
|
|
|
|
(DESC "pseudo" ;"Place holder (MUST BE 6 CHARACTERS!!!!!)")
|
|
|
|
|
(CONTFCN NULL-F) ;"to establish property"
|
|
|
|
|
(ACTION NULL-F ;"Place holder")>
|
|
|
|
|
|
|
|
|
|
<ROUTINE RANDOM-PSEUDO ()
|
2019-04-14 05:35:09 +03:00
|
|
|
|
<TELL "You can't do anything useful with that." CR>>
|
2019-04-14 05:34:27 +03:00
|
|
|
|
|
|
|
|
|
<OBJECT NOT-HERE-OBJECT
|
|
|
|
|
(DESC "that thing")
|
|
|
|
|
(FLAGS NARTICLEBIT)
|
|
|
|
|
(ACTION NOT-HERE-OBJECT-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE NOT-HERE-OBJECT-F ("AUX" TBL (PRSO? T) OBJ)
|
|
|
|
|
;"Protocol: return ,M-FATAL if case was handled and msg TELLed,
|
|
|
|
|
<> if PRSO/PRSI ready to use"
|
|
|
|
|
<COND ;"This COND is game independent (except the TELL)"
|
|
|
|
|
(<AND <EQUAL? ,PRSO ,NOT-HERE-OBJECT>
|
|
|
|
|
<EQUAL? ,PRSI ,NOT-HERE-OBJECT>>
|
|
|
|
|
<TELL "(Those things aren't here!)" CR>
|
|
|
|
|
<RFATAL>)
|
|
|
|
|
(<EQUAL? ,PRSO ,NOT-HERE-OBJECT>
|
|
|
|
|
<SET TBL ,P-PRSO>)
|
|
|
|
|
(T
|
|
|
|
|
<SET TBL ,P-PRSI>
|
|
|
|
|
<SET PRSO? <>>)>
|
|
|
|
|
<COND (<AND <VERB? ASK-ABOUT ASK-FOR SEARCH-FOR>
|
|
|
|
|
<FSET? ,PRSO ,PERSON>
|
|
|
|
|
<IN? ,PRSO ,GLOBAL-OBJECTS>>
|
|
|
|
|
<TELL D ,PRSO>
|
|
|
|
|
<NOT-HERE-PERSON ,PRSO>)>
|
|
|
|
|
<COND (.PRSO?
|
|
|
|
|
<COND (<OR <EQUAL? ,PRSA ,V?ASK-CONTEXT-ABOUT ,V?BOARD>
|
|
|
|
|
<EQUAL? ,PRSA ,V?ASK-CONTEXT-FOR ,V?TAKE-WITH>
|
|
|
|
|
<EQUAL? ,PRSA ,V?FIND ,V?FOLLOW ,V?USE>
|
|
|
|
|
<EQUAL? ,PRSA ,V?LEAVE ,V?DISEMBARK ,V?PHONE>
|
|
|
|
|
<EQUAL? ,PRSA ,V?THROUGH ,V?WALK-TO ,V?WHAT>
|
|
|
|
|
<AND <EQUAL? ,PRSA ,V?BRING ,V?TAKE ,V?SSHOW>
|
|
|
|
|
<NOT <==? ,WINNER ,PLAYER>>>>
|
|
|
|
|
<COND (<SET OBJ <FIND-NOT-HERE .TBL .PRSO?>>
|
|
|
|
|
<COND (<NOT <==? .OBJ ,NOT-HERE-OBJECT>>
|
|
|
|
|
<RFATAL>)>)
|
|
|
|
|
(T
|
|
|
|
|
<RFALSE>)>)>)
|
|
|
|
|
(T
|
|
|
|
|
<COND (<OR <EQUAL? ,PRSA ,V?ASK-ABOUT ,V?ASK-FOR ,V?TAKE-TO>
|
|
|
|
|
<EQUAL? ,PRSA ,V?SEARCH-FOR ,V?TELL-ABOUT>
|
|
|
|
|
<AND <EQUAL? ,PRSA ,V?SBRING ,V?SHOW>
|
|
|
|
|
<NOT <==? ,WINNER ,PLAYER>>>>
|
|
|
|
|
<COND (<SET OBJ <FIND-NOT-HERE .TBL .PRSO?>>
|
|
|
|
|
<COND (<NOT <==? .OBJ ,NOT-HERE-OBJECT>>
|
|
|
|
|
<RFATAL>)>)
|
|
|
|
|
(T
|
|
|
|
|
<RFALSE>)>)>)>
|
|
|
|
|
;"Here is the default 'cant see any' printer"
|
|
|
|
|
<TELL "(You can't see any">
|
|
|
|
|
<NOT-HERE-PRINT>
|
|
|
|
|
<TELL " here!)" CR>
|
|
|
|
|
<RFATAL>>
|
|
|
|
|
|
|
|
|
|
<ROUTINE FIND-NOT-HERE (TBL PRSO? "AUX" M-F OBJ (PERSON? T))
|
|
|
|
|
;"Protocol: return T if case was handled and msg TELLed,
|
|
|
|
|
,NOT-HERE-OBJECT if 'can't see' msg TELLed,
|
|
|
|
|
<> if PRSO/PRSI ready to use"
|
|
|
|
|
;"Here is where special-case code goes. <MOBY-FIND .TBL> returns
|
|
|
|
|
number of matches. If 1, then P-MOBY-FOUND is it. One may treat
|
|
|
|
|
the 0 and >1 cases alike or different. It doesn't matter. Always
|
|
|
|
|
return RFALSE (not handled) if you have resolved the problem."
|
|
|
|
|
<SET M-F <MOBY-FIND .TBL>>
|
|
|
|
|
<COND (,DEBUG
|
|
|
|
|
<TELL "[Found " N .M-F " objects]" CR>)>
|
|
|
|
|
<COND (<==? 1 .M-F>
|
|
|
|
|
<COND (,DEBUG <TELL "[Namely: " D ,P-MOBY-FOUND "]" CR>)>
|
|
|
|
|
<COND (.PRSO? <SETG PRSO ,P-MOBY-FOUND>)
|
|
|
|
|
(T <SETG PRSI ,P-MOBY-FOUND>)>
|
|
|
|
|
;<THIS-IS-IT ,P-MOBY-FOUND>
|
|
|
|
|
<RFALSE>)
|
|
|
|
|
(<AND <L? 1 .M-F>
|
|
|
|
|
<SET OBJ <APPLY <GETP <SET OBJ <GET .TBL 1>> ,P?GENERIC>
|
|
|
|
|
.OBJ>>>
|
|
|
|
|
;"Protocol: returns .OBJ if that's the one to use,
|
|
|
|
|
,NOT-HERE-OBJECT if case was handled and msg TELLed,
|
|
|
|
|
<> if WHICH-PRINT should be called"
|
|
|
|
|
<COND (,DEBUG <TELL "[Generic: " D .OBJ "]" CR>)>
|
|
|
|
|
<COND (<==? .OBJ ,NOT-HERE-OBJECT> <RTRUE>)
|
|
|
|
|
(.PRSO? <SETG PRSO .OBJ>)
|
|
|
|
|
(T <SETG PRSI .OBJ>)>
|
|
|
|
|
;<THIS-IS-IT .OBJ>
|
|
|
|
|
<RFALSE>)
|
|
|
|
|
(<OR <AND <NOT .PRSO?>
|
|
|
|
|
<IN? ,PRSO ,HERE>
|
|
|
|
|
<VERB? ASK-ABOUT ASK-FOR TELL-ABOUT>>
|
|
|
|
|
<AND .PRSO?
|
|
|
|
|
<QCONTEXT-GOOD?>
|
|
|
|
|
<VERB? ASK-CONTEXT-ABOUT ASK-CONTEXT-FOR>>
|
|
|
|
|
<AND <NOT <==? ,WINNER ,PLAYER>>
|
|
|
|
|
<VERB? FIND WHAT GIVE SGIVE>>>
|
|
|
|
|
<COND (<VERB? ASK-ABOUT ASK-FOR>
|
|
|
|
|
<COND (<NOT <FSET? ,PRSO ,PERSON>>
|
|
|
|
|
<SET PERSON? <>>
|
|
|
|
|
<TELL "The ">)>
|
|
|
|
|
<TELL D ,PRSO>)
|
|
|
|
|
(<QCONTEXT-GOOD?>
|
|
|
|
|
<COND (<NOT <FSET? ,QCONTEXT ,PERSON>>
|
|
|
|
|
<SET PERSON? <>>
|
|
|
|
|
<TELL "The ">)>
|
|
|
|
|
<TELL D ,QCONTEXT>)
|
|
|
|
|
(<NOT <==? ,WINNER ,PLAYER>>
|
|
|
|
|
<TELL D ,WINNER>)
|
|
|
|
|
(<SET OBJ <FIND-FLAG ,HERE ,PERSON ,PLAYER>>
|
|
|
|
|
<TELL D .OBJ>)
|
|
|
|
|
(<VISIBLE? ,TIP>
|
|
|
|
|
<TELL "Tip">)
|
|
|
|
|
(T <TELL "Someone">)>
|
|
|
|
|
<COND (<NOT .PERSON? ;<FSET? ,PRSO ,PERSON>>
|
|
|
|
|
<TELL " isn't connected to any">)
|
2019-04-14 05:35:09 +03:00
|
|
|
|
(T <TELL
|
2019-04-14 05:34:27 +03:00
|
|
|
|
" looks confused. \"I don't know anything about any">)>
|
|
|
|
|
<NOT-HERE-PRINT>
|
|
|
|
|
<TELL "!">
|
|
|
|
|
<COND (.PERSON? <TELL "\"">)>
|
|
|
|
|
<CRLF>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(<NOT .PRSO?>
|
2019-04-14 05:35:09 +03:00
|
|
|
|
<TELL "You wouldn't find any">
|
2019-04-14 05:34:27 +03:00
|
|
|
|
<NOT-HERE-PRINT>
|
|
|
|
|
<TELL " there." CR>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(T ,NOT-HERE-OBJECT)>>
|
|
|
|
|
|
|
|
|
|
<ROUTINE NOT-HERE-PRINT ()
|
|
|
|
|
<COND (<OR ,P-OFLAG ,P-MERGED>
|
|
|
|
|
<COND (,P-XADJ <TELL " "> <PRINTB ,P-XADJN>)>
|
|
|
|
|
<COND (,P-XNAM <TELL " "> <PRINTB ,P-XNAM>)>)
|
|
|
|
|
(<EQUAL? ,PRSO ,NOT-HERE-OBJECT>
|
|
|
|
|
<BUFFER-PRINT <GET ,P-ITBL ,P-NC1> <GET ,P-ITBL ,P-NC1L> <>>)
|
|
|
|
|
(T
|
|
|
|
|
<BUFFER-PRINT <GET ,P-ITBL ,P-NC2> <GET ,P-ITBL ,P-NC2L> <>>)>>
|
|
|
|
|
|
2019-04-14 05:35:09 +03:00
|
|
|
|
;"<ROUTINE NO-TOUCH ()
|
|
|
|
|
<TELL
|
|
|
|
|
'Only clods fool around with these things for no good reason.' CR>>"
|
2019-04-14 05:34:27 +03:00
|
|
|
|
|
|
|
|
|
<ROUTINE THE? (NOUN)
|
|
|
|
|
<COND (<OR <AND <FSET? .NOUN ,PERSON>
|
|
|
|
|
<NOT <EQUAL? .NOUN ,PLAYER>>>
|
|
|
|
|
<FSET? .NOUN ,NARTICLEBIT>>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(T <TELL " the">)>>
|
|
|
|
|
|
|
|
|
|
<OBJECT NOTEBOOK
|
|
|
|
|
(IN PLAYER)
|
|
|
|
|
(DESC "Logbook")
|
|
|
|
|
(ADJECTIVE LOG ;LAB ;LABORATORY)
|
|
|
|
|
(SYNONYM LOGBOOK BOOK)
|
|
|
|
|
(FLAGS TAKEBIT READBIT ;BURNBIT)
|
|
|
|
|
(ACTION NOTEBOOK-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE NOTEBOOK-F ()
|
|
|
|
|
<COND (<VERB? OPEN READ EXAMINE ANALYZE TELL-ABOUT>
|
|
|
|
|
<TELL
|
|
|
|
|
"(You'll find the " D ,NOTEBOOK " in your " D ,GAME " package.)" CR>)>>
|
|
|
|
|
|
|
|
|
|
<OBJECT MAGAZINE
|
|
|
|
|
(IN TIP)
|
|
|
|
|
(DESC "magazine")
|
|
|
|
|
(ADJECTIVE ;TIP TIP\'S RANDALL MAGAZINE MAG)
|
|
|
|
|
(SYNONYM MAGAZINE MAG COVER NEWSPAPER)
|
|
|
|
|
(FLAGS READBIT TAKEBIT ;NDESCBIT CONTBIT SEARCHBIT)
|
|
|
|
|
(CAPACITY 1)
|
|
|
|
|
(ACTION MAGAZINE-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE MAGAZINE-F ()
|
2019-04-14 05:35:09 +03:00
|
|
|
|
<COND ;(<REMOTE-VERB?>
|
2019-04-14 05:34:27 +03:00
|
|
|
|
<RFALSE>)
|
2019-04-14 05:35:09 +03:00
|
|
|
|
(<VERB? LOOK-INSIDE OPEN>
|
|
|
|
|
<COND (<NOT-HOLDING? ,MAGAZINE> <RTRUE>)>)
|
2019-04-14 05:34:27 +03:00
|
|
|
|
(<AND <VERB? LOOK-UP> <DOBJ? GLOBAL-THORPE>>
|
|
|
|
|
<PERFORM ,V?READ ,ARTICLE>
|
|
|
|
|
<RTRUE>)
|
2019-04-14 05:35:09 +03:00
|
|
|
|
(<VERB? READ EXAMINE ANALYZE>
|
2019-04-14 05:34:27 +03:00
|
|
|
|
<COND (<NOT-HOLDING? ,MAGAZINE> <RTRUE>)>
|
|
|
|
|
<TELL
|
|
|
|
|
"\"Science World\" is a popular " D ,MAGAZINE " about new
|
|
|
|
|
scientific developments.|
|
|
|
|
|
The cover shows " D ,GLOBAL-THORPE ", marine
|
|
|
|
|
biologist, surrounded by imaginative drawings of weird undersea life
|
|
|
|
|
forms. The cover says:|
|
|
|
|
|
\"HOT FLASH FROM THE MARINE BIOLOGY FRONT!|
|
|
|
|
|
... NEW SEA CREATURES SPAWNED BY TEST TUBE?|
|
|
|
|
|
(SEE ARTICLE INSIDE)\"" CR>)>>
|
|
|
|
|
|
|
|
|
|
<OBJECT ARTICLE
|
|
|
|
|
(IN MAGAZINE)
|
|
|
|
|
(DESC "article")
|
|
|
|
|
(ADJECTIVE COVER)
|
|
|
|
|
(SYNONYM ARTICLE STORY REPORT PAGE)
|
|
|
|
|
(FLAGS READBIT ;TAKEBIT ;NDESCBIT VOWELBIT)
|
|
|
|
|
(SIZE 1)
|
|
|
|
|
(ACTION ARTICLE-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE ARTICLE-F ()
|
|
|
|
|
<COND (<DIVESTMENT? ,ARTICLE>
|
|
|
|
|
<PERFORM ,PRSA ,MAGAZINE ,PRSI>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(<VERB? READ LOOK-INSIDE EXAMINE ANALYZE>
|
2019-04-14 05:35:09 +03:00
|
|
|
|
<COND (<NOT-HOLDING? ,MAGAZINE> <RTRUE>)>
|
2019-04-14 05:34:27 +03:00
|
|
|
|
<TELL
|
|
|
|
|
"It says that " D ,GLOBAL-THORPE " may have created synthetic forms of
|
|
|
|
|
marine life by genetic engineering. You learn that Thorpe went into
|
|
|
|
|
hiding to duck publicity, but before that he told friends he would soon
|
|
|
|
|
marry " D ,SHARON ".|
|
|
|
|
|
The form of the creatures is unknown. They may be stimulated by
|
|
|
|
|
ultrasonic pulses and might be trained to respond to such pulses.|
|
|
|
|
|
Some scientists are skeptical, but Thorpe has claimed that one-celled
|
2019-04-14 05:35:09 +03:00
|
|
|
|
organisms had evolved in his lab from AMINO-HYDROPHASE or A.H. If rumors
|
|
|
|
|
are true, these synthetic sea creatures should be based on the A.H.
|
2019-04-14 05:34:27 +03:00
|
|
|
|
molecule." CR>)>>
|
|
|
|
|
|
|
|
|
|
<OBJECT CATALYST-CAPSULE
|
|
|
|
|
(IN WORK-COUNTER)
|
|
|
|
|
(DESC "catalyst capsule")
|
|
|
|
|
(ADJECTIVE CATALYST)
|
|
|
|
|
(SYNONYM CAPSULE)
|
|
|
|
|
(ACTION CATALYST-CAPSULE-F)
|
|
|
|
|
(FLAGS TAKEBIT)
|
|
|
|
|
(TEXT "(You'll find that information in your SEASTALKER package.)")
|
|
|
|
|
(SIZE 11)
|
|
|
|
|
(VALUE 5)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE CATALYST-CAPSULE-F ()
|
|
|
|
|
<COND (<AND <VERB? COMPARE>
|
|
|
|
|
<OR <AND <IOBJ? CATALYST-CAPSULE> <DOBJ? REACTOR>>
|
|
|
|
|
<AND <DOBJ? CATALYST-CAPSULE> <IOBJ? REACTOR>>>>
|
|
|
|
|
<TELL
|
|
|
|
|
"It looks as if the " D ,CATALYST-CAPSULE " fits perfectly into the "
|
|
|
|
|
D ,REACTOR "." CR>)
|
|
|
|
|
(<AND <VERB? FIND> <NOT <FSET? ,CATALYST-CAPSULE ,TOUCHBIT>>>
|
2019-04-14 05:35:09 +03:00
|
|
|
|
<TELL
|
2019-04-14 05:34:27 +03:00
|
|
|
|
"The capsule is usually stored on a " D ,WORK-COUNTER" on the west wall of the
|
|
|
|
|
tank area." CR>)
|
|
|
|
|
(<AND <VERB? PUT> <IOBJ? GLOBAL-SUB LOCAL-SUB>>
|
2019-04-14 05:35:09 +03:00
|
|
|
|
<TELL "You'll have to take it there yourself." CR>)
|
|
|
|
|
(<AND <VERB? TAKE> <FSET? ,CATALYST-CAPSULE ,TRYTAKEBIT>>
|
|
|
|
|
<TELL "It's too hot to pick up." CR>)>>
|
2019-04-14 05:34:27 +03:00
|
|
|
|
|
|
|
|
|
<OBJECT OXYGEN-GEAR-OTHER
|
|
|
|
|
(IN GLOBAL-OBJECTS)
|
|
|
|
|
(DESC "other Gear")
|
|
|
|
|
(ADJECTIVE OTHER DOC\'S WALT\'S HORVAK MARV\'S SIEGEL MICK\'S ANTRIM)
|
|
|
|
|
(SYNONYM GEAR GEARS)
|
|
|
|
|
(FLAGS ;NARTICLEBIT VOWELBIT ;ON?BIT)
|
|
|
|
|
(TEXT "(You'll find that information in your SEASTALKER package.)")
|
|
|
|
|
(GENERIC GENERIC-OXYGEN-GEAR-F)
|
|
|
|
|
(ACTION OXYGEN-GEAR-GLOBAL-F)>
|
|
|
|
|
|
|
|
|
|
<OBJECT OXYGEN-GEAR-DIVER
|
|
|
|
|
(IN GLOBAL-OBJECTS)
|
|
|
|
|
(DESC "divers' Gear")
|
|
|
|
|
(ADJECTIVE DIVER DIVERS ;BILL BILL\'S GREENUP ;AMY AMY\'S LOWELL)
|
|
|
|
|
(SYNONYM GEAR GEARS)
|
|
|
|
|
(FLAGS ;NARTICLEBIT ;ON?BIT)
|
|
|
|
|
(TEXT "(You'll find that information in your SEASTALKER package.)")
|
|
|
|
|
(GENERIC GENERIC-OXYGEN-GEAR-F)
|
|
|
|
|
(ACTION OXYGEN-GEAR-GLOBAL-F)>
|
|
|
|
|
|
|
|
|
|
<OBJECT OXYGEN-GEAR-BLY
|
|
|
|
|
(IN GLOBAL-OBJECTS)
|
|
|
|
|
(DESC "Bly's Emergency Oxygen Gear")
|
|
|
|
|
(ADJECTIVE COMMANDER ;ZOE ZOE\'S BLY\'S EMERGE OXYGEN)
|
|
|
|
|
(SYNONYM GEAR)
|
|
|
|
|
(FLAGS NARTICLEBIT ;ON?BIT)
|
|
|
|
|
(TEXT "(You'll find that information in your SEASTALKER package.)")
|
|
|
|
|
(GENERIC GENERIC-OXYGEN-GEAR-F)
|
|
|
|
|
(ACTION OXYGEN-GEAR-GLOBAL-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE GENERIC-OXYGEN-GEAR-F (OBJ)
|
|
|
|
|
<COND (<REMOTE-VERB?> ,OXYGEN-GEAR)
|
|
|
|
|
(<AND <VERB? TAKE> ,PRSI <FSET? ,PRSI ,PERSON>>
|
|
|
|
|
<COND (<IOBJ? HORVAK SIEGEL ANTRIM> ,OXYGEN-GEAR-OTHER)
|
|
|
|
|
(<IOBJ? GREENUP LOWELL> ,OXYGEN-GEAR-DIVER)
|
|
|
|
|
(<IOBJ? BLY> ,OXYGEN-GEAR-BLY)>)>>
|
|
|
|
|
|
|
|
|
|
<ROUTINE OXYGEN-GEAR-GLOBAL-F ()
|
|
|
|
|
<COND (<OR <NOT ,SUB-IN-DOME ;<IN-DOME? ,HERE>>
|
|
|
|
|
<NOT <FIND-FLAG ,HERE ,PERSON ,WINNER>>>
|
|
|
|
|
<NOT-HERE ,OXYGEN-GEAR-OTHER>)
|
|
|
|
|
(<VERB? ASK-ABOUT ASK-CONTEXT-ABOUT FIND SEARCH-FOR TELL-ABOUT EXAMINE>
|
|
|
|
|
<RFALSE>)
|
|
|
|
|
(T <YOU-CANT>)>>
|
|
|
|
|
|
|
|
|
|
<OBJECT OXYGEN-GEAR
|
|
|
|
|
(IN SUB)
|
|
|
|
|
(DESC "Emergency Oxygen Gear")
|
|
|
|
|
(ADJECTIVE EMERGE OXYGEN RUBBER MY)
|
|
|
|
|
(SYNONYM GEAR CANISTER VALVE STRAW)
|
|
|
|
|
(FLAGS NARTICLEBIT VOWELBIT TAKEBIT NDESCBIT ON?BIT)
|
|
|
|
|
(TEXT "(You'll find that information in your SEASTALKER package.)")
|
|
|
|
|
(ACTION OXYGEN-GEAR-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE OXYGEN-GEAR-F ()
|
|
|
|
|
<COND (<REMOTE-VERB?> <RFALSE>)>
|
|
|
|
|
<FCLEAR ,OXYGEN-GEAR ,NDESCBIT>
|
|
|
|
|
<COND (<AND <VERB? TAKE> <DOBJ? OXYGEN-GEAR>>
|
|
|
|
|
<COND (<==? <ITAKE> T>
|
2019-04-14 05:35:09 +03:00
|
|
|
|
<TELL
|
2019-04-14 05:34:27 +03:00
|
|
|
|
"You're now wearing" THE-PRSO " around your neck." CR>)>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(<VERB? LAMP-ON TURN USE OPEN>
|
|
|
|
|
<COND (<FSET? ,OXYGEN-GEAR ,ONBIT>
|
|
|
|
|
<ALREADY ,OXYGEN-GEAR "on">
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(<NOT-HOLDING? ,OXYGEN-GEAR>
|
|
|
|
|
<RTRUE>)
|
|
|
|
|
(<NOT ,DOME-AIR-BAD?>
|
2019-04-14 05:35:09 +03:00
|
|
|
|
<TELL "You don't need it now!" CR>
|
2019-04-14 05:34:27 +03:00
|
|
|
|
<RTRUE>)>
|
|
|
|
|
<FSET ,OXYGEN-GEAR ,ONBIT>
|
2019-04-14 05:35:09 +03:00
|
|
|
|
<TELL
|
2019-04-14 05:34:27 +03:00
|
|
|
|
"As you open the valve and suck on the rubber straw, you feel your lungs
|
|
|
|
|
filling with pure oxygen.">
|
|
|
|
|
<COND (<AND ,DOME-AIR-BAD? <CORRIDOR-LOOK ,BLY>>
|
2019-04-14 05:35:09 +03:00
|
|
|
|
<TELL CR
|
2019-04-14 05:34:27 +03:00
|
|
|
|
"But you notice Zoe Bly collapsing, and you realize she has
|
|
|
|
|
no " D ,OXYGEN-GEAR ;" around her neck" "!">)>
|
|
|
|
|
<CRLF>)
|
|
|
|
|
(<VERB? CLOSE>
|
|
|
|
|
<PERFORM ,V?LAMP-OFF ,OXYGEN-GEAR>
|
|
|
|
|
<RTRUE>)>>
|
|
|
|
|
|
|
|
|
|
<OBJECT BADGE-PLAYER
|
|
|
|
|
(IN PLAYER)
|
|
|
|
|
(DESC "your badge")
|
|
|
|
|
(ADJECTIVE THIS SPECIAL IDENTIFY MY ;YOUR)
|
|
|
|
|
(SYNONYM BADGE)
|
|
|
|
|
(FLAGS NDESCBIT ;VOWELBIT NARTICLEBIT)
|
|
|
|
|
(ACTION BADGE-PLAYER-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE BADGE-PLAYER-F ()
|
|
|
|
|
;<FCLEAR ,BADGE-PLAYER ,NDESCBIT>
|
|
|
|
|
<COND (<DIVESTMENT? ,BADGE-PLAYER>
|
|
|
|
|
<TELL "That wouldn't be good for security." CR>)
|
|
|
|
|
(<VERB? ANALYZE EXAMINE READ>
|
|
|
|
|
<TELL "It's a special identification badge for">
|
|
|
|
|
<RESEARCH-LAB>
|
|
|
|
|
<TELL "." CR>)>>
|
|
|
|
|
|
|
|
|
|
<OBJECT BADGE-TIP
|
|
|
|
|
(IN TIP)
|
|
|
|
|
(DESC "Tip's badge")
|
|
|
|
|
(ADJECTIVE THIS SPECIAL IDENTIFY ;TIP TIP\'S RANDALL)
|
|
|
|
|
(SYNONYM BADGE)
|
|
|
|
|
(FLAGS NDESCBIT ;VOWELBIT NARTICLEBIT)
|
|
|
|
|
(ACTION BADGE-PLAYER-F)>
|
|
|
|
|
|
|
|
|
|
<OBJECT BADGE-SHARON
|
|
|
|
|
(IN SHARON)
|
|
|
|
|
(DESC "Sharon's badge")
|
|
|
|
|
(ADJECTIVE THIS SPECIAL IDENTIFY SHARON KEMP\'S)
|
|
|
|
|
(SYNONYM BADGE)
|
|
|
|
|
(FLAGS NDESCBIT ;VOWELBIT NARTICLEBIT)
|
|
|
|
|
(ACTION BADGE-PLAYER-F)>
|
|
|
|
|
|
|
|
|
|
<OBJECT UNIVERSAL-TOOL
|
|
|
|
|
(IN TIP)
|
|
|
|
|
(DESC "Universal Tool")
|
|
|
|
|
(ADJECTIVE UNIVERSAL TIP\'S RANDALL)
|
|
|
|
|
(SYNONYM TOOL)
|
|
|
|
|
(FLAGS ;NDESCBIT TAKEBIT TOOLBIT)
|
|
|
|
|
(GENERIC GENERIC-TOOL-F)>
|
|
|
|
|
|
|
|
|
|
<ROUTINE GENERIC-TOOL-F (OBJ)
|
|
|
|
|
<COND (<VERB? OPEN-WITH TAKE-WITH> ,UNIVERSAL-TOOL)>>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"<ROUTINE V-$CODE ('AUX' (I 0) CH)
|
|
|
|
|
<REPEAT ()
|
|
|
|
|
<COND (<OR <IGRTR? I 19>
|
|
|
|
|
<AND <G? .I 5>
|
|
|
|
|
<0? <GETB ,FIRST-NAME .I>>
|
|
|
|
|
<0? <GETB ,LAST-NAME .I>>>
|
|
|
|
|
<0? <GETB ,GAME-NAME .I>>>
|
|
|
|
|
<CRLF>
|
|
|
|
|
<RTRUE>)>
|
|
|
|
|
<SET CH <+ 1
|
|
|
|
|
<GETB ,FIRST-NAME .I>
|
|
|
|
|
<GETB ,LAST-NAME .I>
|
|
|
|
|
<GETB ,GAME-NAME .I>>>
|
|
|
|
|
<PRINTC <+ *101* <MOD .CH 26>>>>>"
|
|
|
|
|
|
|
|
|
|
<ROUTINE V-$BAY ()
|
2019-04-14 05:35:09 +03:00
|
|
|
|
<COND (<NOT ,SUB-IN-TANK> <TELL "too late" CR> <RTRUE>)>
|
2019-04-14 05:34:27 +03:00
|
|
|
|
<SETG HERE ,SUB>
|
|
|
|
|
<MOVE ,PLAYER ,SUB>
|
|
|
|
|
<MOVE ,TIP ,SUB>
|
|
|
|
|
<MOVE ,CATALYST-CAPSULE ,REACTOR>
|
|
|
|
|
<FCLEAR ,REACTOR ,OPENBIT>
|
|
|
|
|
<FSET ,REACTOR ,ONBIT>
|
|
|
|
|
<FSET ,ENGINE ,ONBIT>
|
|
|
|
|
<FCLEAR ,SUB-DOOR ,OPENBIT>
|
|
|
|
|
<SETG MONSTER-GONE T>
|
|
|
|
|
;<FCLEAR ,GLOBAL-SNARK ,INVISIBLE>
|
|
|
|
|
<SETG JOYSTICK-DIR ,P?EAST>
|
|
|
|
|
<SETG SUB-DLON 1>
|
|
|
|
|
<SETG SUB-DLAT 0>
|
|
|
|
|
<SETG NOW-TERRAIN ,BAY-TERRAIN>
|
|
|
|
|
<SETG SUB-IN-TANK <>>
|
|
|
|
|
<ENABLE <QUEUE I-UPDATE-SUB-POSITION -1>>
|
|
|
|
|
;<TELL
|
|
|
|
|
'\'What a totally awesome invention, ' FN '!\' says Tip sarcastically.' CR>>
|
|
|
|
|
|
|
|
|
|
"<ROUTINE V-$OCEAN ()
|
|
|
|
|
<V-$BAY>
|
|
|
|
|
<SETG NOW-TERRAIN <>>
|
|
|
|
|
<SETG SUB-IN-OPEN-SEA T>>
|
|
|
|
|
|
|
|
|
|
;<ROUTINE V-$DOME ()
|
|
|
|
|
<V-$OCEAN>
|
|
|
|
|
<FSET ,SUB-DOOR ,OPENBIT>
|
|
|
|
|
<FSET ,AIRLOCK-ROOF ,OPENBIT>
|
|
|
|
|
<MOVE ,PRIVATE-MATTER ,GLOBAL-OBJECTS>
|
|
|
|
|
<MOVE ,OXYGEN-GEAR ,PLAYER>
|
|
|
|
|
<FCLEAR ,OXYGEN-GEAR ,NDESCBIT>
|
|
|
|
|
<SETG SUB-IN-DOME T>
|
|
|
|
|
<SETG SUB-DEPTH ,AIRLOCK-DEPTH>
|
|
|
|
|
;<QUEUE I-UPDATE-SUB-POSITION 0>
|
|
|
|
|
<SETG SUB-IN-OPEN-SEA <>>
|
|
|
|
|
;<SETG NOW-TERRAIN ,SEA-TERRAIN>
|
|
|
|
|
;<SETG SUB-LON 6>
|
|
|
|
|
;<SETG SUB-LAT 5>
|
|
|
|
|
;<SETG SUB-DEPTH 28>
|
|
|
|
|
<SETG AIRLOCK-FULL <>>>
|
|
|
|
|
|
|
|
|
|
;<ROUTINE V-$SNARK ()
|
|
|
|
|
<V-$BAY>
|
|
|
|
|
<SETG NOW-TERRAIN ,SEA-TERRAIN>
|
|
|
|
|
<SETG JOYSTICK-DIR ,P?SE>
|
|
|
|
|
<SETG SUB-DEPTH ,AIRLOCK-DEPTH>
|
|
|
|
|
<SETG SUB-DLON 1>
|
|
|
|
|
<SETG SUB-DLAT -1>
|
|
|
|
|
<MOUNT-WEAPON ,BAZOOKA>
|
|
|
|
|
<MOUNT-WEAPON ,DART>
|
|
|
|
|
<SETG SUB-LON +19>
|
|
|
|
|
<SETG SUB-LAT -19>
|
|
|
|
|
<I-THORPE-APPEARS>>"
|