cutthroats/people.zil

2313 lines
73 KiB
Plaintext

"PEOPLE for TOA #2
Copyright 1984, Infocom Inc."
<OBJECT MCGINTY
(IN MCGINTY-HQ)
(DESC "McGinty")
(SYNONYM MCGINTY)
(ADJECTIVE MR MISTER)
(DESCFCN MCGINTY-F)
(CHARACTER 1)
(FLAGS PERSON VICBIT)
(TEXT
"He is wiry, hyper, and devoid of ethics. A fat cigar seems to be his
only companion, since he's the type of man who would sell his own mother if
given the opportunity.")
(CONTFCN MCGINTY-F)
(ACTION MCGINTY-F)>
<ROUTINE TELL-NEVER-KNEW ()
<TELL "\"Never heard of him.\"" CR>>
<ROUTINE MCGINTY-F ("OPTIONAL" (RARG <>) "AUX" OBJ (PFLAG 0))
<COND (<==? .RARG ,M-OBJDESC>
<COND (,MCGINTY-KNOWS T)
(<AND <IN? ,PASSBOOK ,PLAYER>
<NOT <QUEUED? I-MCGINTY-FOLLOWS>>>
<SET PFLAG 1>
<MCGINTY-WILL-FOLLOW>)
(<IN? ,PASSBOOK ,HERE>
<MCGINTY-WILL-FOLLOW>
<MOVE ,PASSBOOK ,MCGINTY>
<SET PFLAG 2>)>
<COND (<OR <IN-MOTION? ,MCGINTY>
<AND <QUEUED? I-MCGINTY-FOLLOWS>
<VERB? WALK FOLLOW>
<NOT <IN? ,MCGINTY <LOC ,PLAYER>>>>
<TRAITOR-TIME?>>
<RTRUE>)
(<FSET? ,MCGINTY ,TOUCHBIT>
<TELL D ,MCGINTY " is here, ">
<COND (<==? ,HERE ,OUTFITTERS-HQ>
<TELL "talking with the salesman">)
(T <TELL "smoking his cigar">)>
<TELL ".">)
(T
<TELL D ,MCGINTY ", a small, nervous man, is ">
<COND (<IN? ,MCGINTY ,MCGINTY-HQ>
<TELL "sitting behind a desk">)
(T <TELL "standing nearby">)>
<TELL
". His lips clamp around a cigar too large for his face.">
<FSET ,MCGINTY ,TOUCHBIT>)>
<COND (<==? .PFLAG 1> <TELL-EYES-NARROW>)
(<==? .PFLAG 2> <TELL-TAKE-PASS " He">)>
<CRLF>
<RTRUE>)
(<==? .RARG ,M-CONT>
<COND (<AND <VERB? TAKE>
<FSET? ,PRSO ,TAKEBIT>>
<TELL
D ,MCGINTY " pulls it back. \"I'm not gonna give that to you!\""CR>
<RTRUE>)
(T <RFALSE>)>)>
<COND (<==? ,WINNER ,MCGINTY>
<COND (<NOT <IN? ,MCGINTY <META-LOC ,PLAYER>>>
<SETG P-CONT <>>
<TELL-NOT-HERE-TALK>
<RFATAL>)
(<TRAITOR-TIME?>
<TELL-IN-MEETING>
<RFATAL>)>)>
<FSET ,MCGINTY ,TOUCHBIT>
<COND (<AND <VERB? FOLLOW>
<PRSO? ,MCGINTY>>
<RFALSE>)
(<AND <VERB? $CALL>
<TRAITOR-TIME?>>
<TELL-IN-MEETING>
<RTRUE>)
(<VERB? HELLO>
<SETG QCONTEXT ,MCGINTY>
<SETG QCONTEXT-ROOM ,HERE>
<TELL "\"Howdy.\"" CR>
<RTRUE>)
(<VERB? GOODBYE>
<SETG QCONTEXT ,MCGINTY>
<SETG QCONTEXT-ROOM ,HERE>
<TELL "\"So long.\"" CR>
<RTRUE>)
(<OR <AND <VERB? TAKE>
<PRSI? ,MCGINTY>>
<AND <VERB? ASK-FOR>
<PRSO? ,MCGINTY>>>
<COND (<PRSO? ,MCGINTY> <SET OBJ ,PRSI>)
(T <SET OBJ ,PRSO>)>
<COND (<IN? .OBJ ,MCGINTY>
<TELL "\"I'm not gonna give that to you.\"" CR>)
(T <TELL "\"I don't have that.\"" CR>)>
<RTRUE>)
(<VERB? BUY>
<COND (<PRSO? ,FERRY-TOKEN>
<TELL
"\"I don't have one. Try the bank.\"" CR>
<RTRUE>)>)>
<COND (<AND <VERB? $CALL> <==? ,WINNER ,PLAYER>> <RFALSE>)
(<NOT <GRAB-ATTENTION ,MCGINTY>> <RTRUE>)>
<COND (<AND <VERB? TELL>
<PRSO? ,MCGINTY>>
<COND (<PRSI? ,GLOBAL-TREASURE ,SAMPLE-TREASURE>
<COND (<TRAITOR-TIME?>
<JIGS-UP
"The Weasel turns and yells, \"Traitor!\" Next thing you know, you've been
stabbed.">)
(,MCGINTY-KNOWS
<TELL "\"Thanks, but I already know about it.\"" CR>)
(T
<COND (<OR <IN? ,SPEAR-CARRIER ,HERE>
<IN? ,JOHNNY ,HERE>
<IN? ,PETE ,HERE>
<IN? ,WEASEL ,HERE>>
<SETG MCGINTY-KNOWS T>
<ZERO-ATTENTION ,MCGINTY>
<PUT <GET ,GOAL-TABLES ,MCGINTY-C>
,GOAL-ENABLE T>
<TELL
D ,MCGINTY " looks delighted with the information.">
<COND (<IN? ,MCGINTY ,OUTFITTERS-HQ>
<ESTABLISH-GOAL ,MCGINTY ,MCGINTY-HQ>
<COND (<IN? ,JOHNNY ,OUTFITTERS-HQ>
<SAY-MCGINTY-KNOWS>)
(T
<TELL " He thanks you.">
<TELL-NEED-BOAT>)>)
(T
<ESTABLISH-GOAL ,MCGINTY ,OUTFITTERS-HQ>
<ALL-GO-HOME>
<I-PLOT-NEVER-STARTS>
<DISABLE <INT I-SHOVE-OFF>>
<TELL
" \"Excuse me,\" he says. \"I have business to attend to.\"" CR>)>)
(T
<JIGS-UP
"\"Thanks for the info, pal, but I better make sure you don't use it.\" He
pulls out his gun and shoots.">)>)>
<RTRUE>)>)
(<AND <VERB? SHOW>
<PRSO? ,NOTE ,BOOK>
<PRSI? ,MCGINTY>>
<PERFORM ,V?TELL ,MCGINTY ,GLOBAL-TREASURE>
<RTRUE>)
(<AND <VERB? ASK-ABOUT>
<PRSO? ,MCGINTY>>
<COND (<TRAITOR-TIME?>
<TELL-IN-MEETING>
<RFATAL>)
(<PRSI? ,GLOBAL-TREASURE>
<TELL
"\"I'm always looking for " D ,GLOBAL-TREASURE ",\" he says, grinning." CR>)
(<PRSI? ,SPEAR-CARRIER>
<TELL "\"He does his job.\"" CR>)
(<PRSI? ,PETES-PATCH>
<TELL "\"All I know is that Pete wears it.\"" CR>)
(<PRSI? ,CIGAR>
<TELL "\"Yeah. That's my cigar.\"" CR>)
(<PRSI? ,HEVLIN>
<TELL-NEVER-KNEW>)
(<PRSI? ,JOHNNY ,PETE ,WEASEL>
<TELL
"\"He's worked for me. He's all right.\"" CR>)
(<PRSI? ,ME>
<TELL-YOURE-DIVER>)
(<PRSI? ,MCGINTY>
<TELL-KNOW-ME>)
(<PRSI? ,PARROT>
<TELL
"\"It's the queerest bird I've ever seen.\"" CR>)
(<PRSI? ,TRAWLER ,SALVAGER>
<TELL "\"She's a nice boat.\"" CR>)
(T <RFALSE>)>
<RTRUE>)>
<COND (<EQUAL? ,WINNER ,MCGINTY>
<COND (<PRSO? ,GLOBAL-SELF>
<SETG PRSO ,MCGINTY>)>
<COND (<PRSI? ,GLOBAL-SELF>
<SETG PRSI ,MCGINTY>)>
<COND (<AND <VERB? TELL>
<PRSO? ,ME>>
<RFALSE>)
(<VERB? $CALL>
<TELL-SO-WHAT>)
(<VERB? WALK DISEMBARK LEAVE>
<TELL "\"I'll leave when I'm ready.\"" CR>)
(<AND <VERB? SHOW>
<IN? ,PRSO ,MCGINTY>
<PRSI? ,ME>>
<SETG WINNER ,PLAYER>
<PERFORM ,V?EXAMINE ,PRSO>
<SETG WINNER ,MCGINTY>)
(<VERB? YES NO MAYBE WHAT FIND SSHOW ALARM>
<RFALSE>)
(T
<TELL "\"I'd rather not.\"" CR>
<RFATAL>)>)>>
<ROUTINE ZERO-ATTENTION (PER)
<PUT <GET ,GOAL-TABLES <GETP .PER ,P?CHARACTER>> ,ATTENTION 0>>
<ROUTINE TELL-SO-WHAT ()
<COND (<FSET? ,PRSO ,VICBIT>
<TELL "\"What about him?\"" CR>)
(T <V-CALL-LOSE>)>>
<ROUTINE TELL-TAKE-PASS (STR)
<TELL
.STR " sees the passbook, picks it up, looks at it and then at you.">>
<ROUTINE TRAITOR-TIME? ()
<COND (<AND <IN? ,ID-CARD ,WEASEL>
<QUEUED? ,I-TRAITOR-MEETING>>
<RTRUE>)>>
<ROUTINE TELL-IN-MEETING ()
<TELL "He's too engrossed in his meeting to hear you." CR>>
<ROUTINE MCGINTY-ERRAND ()
<MOVE ,PLAYER ,WHARF-ROAD-2>
<MOVE ,MCGINTY ,WHARF-ROAD-2>
<SETG HERE ,WHARF-ROAD-2>
<TELL
"\"I'm closing to run an errand,\" " D ,MCGINTY " says, ushering you out..."
CR CR>
<V-FIRST-LOOK>>
<ROUTINE I-MCGINTY ("OPTIONAL" (GARG <>) "AUX" (L <LOC ,MCGINTY>) DEST MMG
(V <>))
<COND (<NOT .GARG>
<SET MMG <GET ,MOVEMENT-GOALS ,MCGINTY-C>>
;<COND (<AND <EQUAL? <GET .MMG ,MG-ROOM> ,MM-FORE-DECK>
<EQUAL? ,SHIP-CHOSEN ,TRAWLER>>
<PUT .MMG ,MG-ROOM ,NW-FORE-DECK>)>
<COND (<AND <IN? ,MCGINTY ,MCGINTY-HQ>
<IN? ,PLAYER ,MCGINTY-HQ>
<NOT <==? <GET .MMG ,MG-ROOM> ,MCGINTY-HQ>>>
<MCGINTY-ERRAND>
<SET V T>)>
<COND (<==? .L ,FERRY-LANDING>
<SETG MCGINTY-MEETS-WEASEL <>>)>
<IMOVEMENT ,MCGINTY I-MCGINTY>
<RETURN .V>)
(<==? .GARG ,G-REACHED>
<COND ;(<EQUAL? .L ,MM-FORE-DECK ,NW-FORE-DECK>
<COND (<IN? ,PLAYER .L>
<TELL
D ,MCGINTY " comes in, looks around, and sees you. ">)>
<MCGINTY-FORAY-CHECK .L>
<COND (,MCGINTY-RETURNS
<RTRUE>)
(T
<ENABLE <QUEUE I-MCGINTY-FORAY -1>>
<RFALSE>)>)
(<==? .L ,MCGINTY-HQ>
<COND (<IN? ,PLAYER .L>
<JIGS-UP
"McGinty walks in the front door, spots something in the shadows, pulls out
a gun, and fires. Unfortunately, you are what he noticed.">)
(<AND <IN? ,PLAYER ,WHARF-ROAD-2>
<==? ,LAST-PLAYER-LOC ,MCGINTY-HQ>>
<JIGS-UP
"A moment later, McGinty sticks his head out, asks why you were in his place,
and shoots you.">)
(<IN? ,ID-CARD ,MCGINTY>
<MOVE ,ID-CARD ,ENVELOPE>
<FSET ,ID-CARD ,TAKEBIT>
<FCLEAR ,ENVELOPE ,INVISIBLE>
;<COND (<IN? ,PLAYER .L><"This can't happen.">
<TELL
"\"Excuse me,\" says " D ,MCGINTY
" as he scribbles something on an " D ,ENVELOPE " and
puts a card in it." CR>)>)
(<AND <NOT ,MCGINTY-KNOWS>
,MCGINTY-MEETS-WEASEL
<==? <GET <GET ,MOVEMENT-GOALS ,MCGINTY-C>
,MG-ROOM> ,SHANTY>>
<PUT ,MOVEMENT-GOALS ,MCGINTY-C
,MCGINTY-MEETS-WEASEL-TABLE>
<IMOVEMENT ,MCGINTY I-MCGINTY>
<RFALSE>)>
<COND (<AND <IN? ,PLAYER ,BACK-ALLEY-2>
<FSET? ,WINDOW ,OPENBIT>>
<TELL "The window gets slammed shut." CR>
<FCLEAR ,BACK-WINDOW ,OPENBIT>)>)
(<==? .L ,FERRY-LANDING>
<ENABLE <QUEUE I-TRAITOR-MEETING -1>>
<COND (<IN? ,PLAYER .L>
<TELL
D ,MCGINTY " wanders in, looking preoccupied." CR>
<SET V T>)>
<COND (<IN? ,WEASEL .L>
<I-TRAITOR-MEETING>)>
<RETURN .V>)
(<==? .L ,HERE>
<TELL D ,MCGINTY " wanders in."
;" struts in as if he owned the whole island.">
<COND (<AND <IN? ,PASSBOOK ,PLAYER>
<NOT ,MCGINTY-KNOWS>
<NOT <QUEUED? I-MCGINTY-FOLLOWS>>>
<MCGINTY-WILL-FOLLOW>
<TELL-EYES-NARROW>)
(<IN? ,PASSBOOK .L>
<SETG MCGINTY-MEETS-WEASEL T>)>
<CRLF>
<RFATAL>)
(<IN? ,PASSBOOK .L>
<MOVE ,PASSBOOK ,MCGINTY>
<SETG MCGINTY-MEETS-WEASEL T>
<RFALSE>
;<COND (,DEBUG
<TELL
"[McGinty has arrived at " D .L " and found the passbook.]" CR>)>)
;(,DEBUG <TELL "[McGinty has arrived at " D .L ".]" CR>)>)
(<EQUAL? .GARG ,G-ENROUTE>
;<SET DEST <GET <GET ,GOAL-TABLES ,MCGINTY-C> ,GOAL-F>>
<COND ;(<EQUAL? .DEST ,MM-FORE-DECK ,NW-FORE-DECK>
<MCGINTY-FORAY-CHECK .L>)
(<AND <IN? ,PLAYER .L>
<IN? ,PASSBOOK ,PLAYER>
<NOT ,MCGINTY-KNOWS>
<NOT <QUEUED? I-MCGINTY-FOLLOWS>>>
<MCGINTY-WILL-FOLLOW>
<TELL-EYES-NARROW <>>
<CRLF>)
(<AND <IN? ,PASSBOOK .L>
<NOT ,MCGINTY-KNOWS>>
<COND (<IN? ,MCGINTY <META-LOC ,PLAYER>>
<MCGINTY-WILL-FOLLOW>
<MOVE ,PASSBOOK ,MCGINTY>
<TELL-TAKE-PASS "McGinty">
<CRLF>)
(T
<SETG MCGINTY-MEETS-WEASEL T>
<MOVE ,PASSBOOK ,MCGINTY>
<RFALSE>)>)>)>>
<ROUTINE TELL-EYES-NARROW ("OPTIONAL" (SPACE T))
<COND (<NOT ,ALREADY-FOLLOWED>
<COND (.SPACE <TELL " ">)>
<TELL
"As he looks at you, he does a double take and stares intently at your
possessions.">)>>
;<ROUTINE I-MCGINTY-FORAY ("AUX" DEST MCGL (V <>) F N)
<COND (<EQUAL? ,SHIP-CHOSEN ,TRAWLER>
<SET DEST <GET ,NW-FORAY-TABLE 0>>
<SETG NW-FORAY-TABLE <REST ,NW-FORAY-TABLE 2>>)
(T
<SET DEST <GET ,MM-FORAY-TABLE 0>>
<SETG MM-FORAY-TABLE <REST ,MM-FORAY-TABLE 2>>)>
<SET MCGL <LOC ,MCGINTY>>
<COND (<IN? .DEST ,ROOMS>
<MOVE-PERSON ,MCGINTY .DEST>
<SET MCGL <LOC ,MCGINTY>>
<COND (<EQUAL? .MCGL ,MM-FORE-DECK ,NW-FORE-DECK>
<SET F <FIRST? ,MCGINTY>>
<COND (<AND <IN? ,MCGINTY <META-LOC ,PLAYER>>
<NEXT? .F>>
<SET V T>
<TELL
D ,MCGINTY " throws something over the " D ,RAILING
". He then sees you and says,
\"Have fun!\"" CR>)>
<REPEAT ()
<SET N <NEXT? .F>>
<COND (<NOT <==? .F ,CIGAR>>
<MOVE .F ,LOCAL-GLOBALS>)>
<SET F .N>
<COND (<NOT .F> <RETURN>)>>
<ESTABLISH-GOAL ,MCGINTY ,MCGINTY-HQ>
<DISABLE <INT I-MCGINTY-FORAY>>
<RETURN .V>)>
<COND (,MCGINTY-RETURNS
<DISABLE <INT I-MCGINTY-FORAY>>)>
<COND (<IN? ,PLAYER .MCGL> <RTRUE>)>)
(<EQUAL? .MCGL ,MM-LOCKER ,NW-LOCKER>
<COND (,MCGINTY-RETURNS
<DISABLE <INT I-MCGINTY-FORAY>>
<COND (<IN? ,PLAYER .MCGL> <RTRUE>)
(T <RFALSE>)>)>
<SET F <FIRST? .MCGL>>
<REPEAT ()
<SET N <NEXT? .F>>
<COND (<AND <NOT <EQUAL? .F ,DEEP-SUIT>>
<NOT <EQUAL? .F ,METAL-DETECTOR>>
<NOT <FSET? .F ,PERSON>>>
<MOVE .F ,MCGINTY>)>
<SET F .N>
<COND (<NOT .F> <RFALSE>)>>)>>
;<GLOBAL MM-FORAY-TABLE
<TABLE MM-CREW-QTRS MM-LOCKER 0 MM-CREW-QTRS MM-FORE-DECK>>
;<GLOBAL NW-FORAY-TABLE
<TABLE NW-CREW-QTRS NW-LOCKER 0 NW-CREW-QTRS NW-FORE-DECK>>
;<ROUTINE MCGINTY-FORAY-CHECK (MCGL)
<COND (<OR <IN? ,WEASEL .MCGL>
<IN? ,PETE .MCGL>
<IN? ,JOHNNY .MCGL>
<IN? ,PLAYER .MCGL>>
<ESTABLISH-GOAL ,MCGINTY ,MCGINTY-HQ>
<SETG MCGINTY-RETURNS T>
<COND (<IN? ,PLAYER .MCGL>
<TELL
"\"If you're using the ship, I'll look it over later,\" he says." CR>)>)>>
;<GLOBAL MCGINTY-RETURNS <>>
<ROUTINE MCGINTY-WILL-FOLLOW ("AUX" GT)
<COND (,MCGINTY-KNOWS <RFALSE>)>
<SET GT <GET ,GOAL-TABLES ,MCGINTY-C>>
<PUT .GT ,GOAL-ENABLE <>>
;<PUT .GT ,GOAL-QUEUED <GET .GT ,GOAL-F>>
<PUT .GT ,GOAL-F ,WRECK-13>
<PUT .GT ,ATTENTION 500>
<DISABLE <INT I-MCGINTY>>
<ENABLE <QUEUE I-MCGINTY-FOLLOWS -1>>>
<ROUTINE I-MCGINTY-FOLLOWS ("AUX" GT (MCG-LOC <LOC ,MCGINTY>))
<COND (<AND <G? ,PRESENT-TIME 810>
<NOT ,ALREADY-FOLLOWED>>
<DISABLE <INT I-MCGINTY-FOLLOWS>>
<PUT <SET GT <GET ,GOAL-TABLES ,MCGINTY-C>>
,ATTENTION 0>
<PUT .GT ,GOAL-ENABLE T>
<SETG ALREADY-FOLLOWED T>
<ESTABLISH-GOAL ,MCGINTY ,MCGINTY-HQ>
<RFALSE>)>
<PUT <GET ,GOAL-TABLES ,MCGINTY-C> ,ATTENTION 5>
<COND (<AND <==? ,HERE ,OUTFITTERS-HQ>
<==? .MCG-LOC ,WHARF-ROAD-4>>
<MOVE-PERSON ,MCGINTY ,OUTFITTERS-HQ>)
(<EQUAL? ,HERE .MCG-LOC ,LAST-PLAYER-LOC>
<RFALSE>)
(<==? .MCG-LOC ,LAST-PLAYER-LOC>
<RFALSE>)
(<NOT <EQUAL? ,LAST-PLAYER-LOC <META-LOC ,LAST-PLAYER-LOC>>>
<RFALSE>)
(T <MOVE-PERSON ,MCGINTY ,LAST-PLAYER-LOC>)>>
<GLOBAL MCGINTY-MEETS-WEASEL <>>
<GLOBAL MCGINTY-MEETS-WEASEL-TABLE
<TABLE
0
20 1 FERRY-LANDING
35 3 MCGINTY-HQ
30 5 SHANTY
30 5 MCGINTY-HQ
0>>
<GLOBAL ALREADY-FOLLOWED <>>
<OBJECT CIGAR
(IN MCGINTY)
(DESC "cigar")
(SYNONYM CIGAR STOGIE CHEROO)
(ADJECTIVE LARGE STINKIN)
(FLAGS TRYTAKEBIT NDESCBIT)
(TEXT "A Supremo it's not.")
(ACTION CIGAR-F)>
<ROUTINE CIGAR-F ()
<COND (<VERB? TAKE>
<TELL
D ,MCGINTY " yanks it back, then tenderly clamps it between his teeth." CR>)
(<VERB? LAMP-ON>
<TELL-ALREADY "lit">)
(<VERB? SMELL>
<TELL
"The cigar smells like a burning tire." CR>)>>
<OBJECT JOHNNY
(IN SHANTY)
(DESC "Johnny Red")
(DESCFCN JOHNNY-F)
(SYNONYM JOHNNY JOHN RED)
(ADJECTIVE JOHNNY JOHN MISTER MR)
(CHARACTER 2)
(FLAGS PERSON VICBIT)
(TEXT
"Red got his name from flame-red hair which sprouts from his head and face, and
peeks out from under his flannel shirt. He takes no guff, but he is fair and
has a sense of justice.")
(CONTFCN JOHNNY-F)
(ACTION JOHNNY-F)>
<ROUTINE JOHNNY-F ("OPTIONAL" (RARG <>) "AUX" TREAS)
<COND (<==? .RARG ,M-OBJDESC>
<COND (<AND <QUEUED? I-PENDULUM>
<==? <GET <INT I-PENDULUM> ,C-TICK> -1>>
<RTRUE>)
(<IN-MOTION? ,JOHNNY>
<RTRUE>)
(<AND <EQUAL? ,HERE ,MM-AFT-DECK ,NW-AFT-DECK>
,WEASEL-APPREHENDED
<NOT <QUEUED? I-PENDULUM>>>
<I-JOHNNY ,G-REACHED>);"throws line over side"
(<FSET? ,JOHNNY ,TOUCHBIT>
<TELL D ,JOHNNY " is here">
<COND (<IN? ,SPEAR-CARRIER ,HERE>
<COND (<IN? ,MCGINTY ,HERE>
<TELL ", glaring at " D ,MCGINTY>)
(<AND <OR <L? ,FM-CTR 2>
<G? ,FM-CTR 4>>
<NOT <==? ,PRESENT-TIME 704>>>
<TELL
", chatting with the " D ,SPEAR-CARRIER>)>)>
<TELL "." CR>)
(T <TELL
D ,JOHNNY " is here. Red hair sprouts from his head and from beneath his
flannel shirt." CR>
<FSET ,JOHNNY ,TOUCHBIT>)>
<RTRUE>)
(<==? .RARG ,M-CONT>
<COND (<AND <VERB? TAKE>
<FSET? ,PRSO ,TAKEBIT>>
<TELL
"Johnny glares down at you. \"Get your hands off of that!\"" CR>
<RTRUE>)
(<AND <EQUAL? ,KNIFE ,PRSO ,PRSI>
<AND <NOT <VERB? EXAMINE FIND ASK-ABOUT>>
<NOT <VERB? ASK-CONTEXT-ABOUT>>>>
<TELL
"Johnny pulls it back. \"I'm not gonna let you give this to " D ,WEASEL ".\""
CR>
<RTRUE>)
(T <RFALSE>)>)>
<COND (<AND <==? ,JOHNNY ,WINNER>
<NOT <==? <META-LOC ,JOHNNY> <META-LOC ,PLAYER>>>>
<SETG P-CONT <>>
<TELL-NOT-HERE-TALK>
<RFATAL>)>
<FSET ,JOHNNY ,TOUCHBIT>
<COND (<AND <VERB? FOLLOW>
<PRSO? ,JOHNNY>>
<RFALSE>)
(<AND <VERB? TELL>
<NOT ,PRSI>>
<RFALSE>)
(<OR ,MCGINTY-KNOWS ,JOHNNY-SILENT>
<TELL D ,JOHNNY " looks right through you." CR>
<RFATAL>)
(<VERB? HELLO GOODBYE>
<SETG QCONTEXT ,JOHNNY>
<SETG QCONTEXT-ROOM ,HERE>
<TELL "\"Ahoy, matey.\"" CR>
<RTRUE>)
(<VERB? BUY>
<COND (<PRSO? ,FERRY-TOKEN>
<TELL "\"Try " D ,BANK ".\"" CR>
<RTRUE>)>)>
<COND (<AND <VERB? $CALL> <==? ,WINNER ,PLAYER>> <RFALSE>)
(<NOT <GRAB-ATTENTION ,JOHNNY>> <RTRUE>)>
<COND (<AND <VERB? GIVE SHOW>
<PRSO? ,CHARTS>>
<TELL "\"No thanks. I have my own.\"" CR>
<RTRUE>)
(<OR <AND <VERB? SHOW>
<PRSO? ,NOTE>>
<AND <VERB? ASK-ABOUT>
<PRSI? ,NOTE>>>
<TELL "\"Yeah. I wrote that.\"" CR>
<RTRUE>)
(<AND <VERB? GIVE>
<OR <PRSO? ,ENVELOPE>
<PRSO? ,ID-CARD>>>
<COND (<NOT <IN? ,ID-CARD ,ENVELOPE>>
<TELL-RETURNS ,JOHNNY>)>
<PERFORM ,V?SHOW ,PRSO ,JOHNNY>
<RTRUE>)
(<AND <VERB? SHOW>
<PRSI? ,JOHNNY>>
<COND (<AND <IN? ,ID-CARD ,ENVELOPE>
<OR <PRSO? ,ENVELOPE>
<PRSO? ,ID-CARD>>>
<TELL
"Johnny takes the card and " D ,ENVELOPE " and studies them. ">
<COND (,WEASEL-APPREHENDED
<TELL-ALREADY-SHOWN>
<TELL
",\" he says, handing the " D ,ENVELOPE " back.">)
(,CLUMSILY-HANDLED
<TELL
"\"You trying to frame " D ,WEASEL "?\" He returns the " D ,ENVELOPE ".">)
(T
<MOVE ,ENVELOPE ,JOHNNY>
<TELL
"\"So,\" he muses, \"" D ,WEASEL " is working with " D ,MCGINTY
". I'll take care of him.\"">
;<COND (<AND ,AT-SEA
<NOT ,WEASEL-BLOWN>
<NOT ,MOMENT-OF-TRUTH>>
<TELL " He stops the boat.">
<DISABLE <INT I-OBSTACLES>>)>
<SETG WEASEL-BLOWN T>
<COND (<IN? ,WEASEL <LOC ,JOHNNY>>
<ROUGH-JUSTICE>)
(<OR <IN? ,WEASEL ,FERRY>
<IN? ,WEASEL ,GLOBAL-FERRY>>
<ESTABLISH-GOAL ,JOHNNY ,FERRY-LANDING>)
(T
<ESTABLISH-GOAL ,JOHNNY <META-LOC ,WEASEL>>)>)>
<CRLF>
<RTRUE>)
(<PRSO? ,ENVELOPE>
<COND (,WEASEL-BLOWN
<TELL-ALREADY-SHOWN>)
(T
<TELL "\"It's empty. It don't mean nothing">
<SETG CLUMSILY-HANDLED T>)>
<TELL ".\"" CR>
<RTRUE>)
(<PRSO? ,ID-CARD>
<COND (,WEASEL-BLOWN
<TELL-ALREADY-SHOWN>)
(T
<TELL
"\"That's " D ,WEASEL "'s. He'll be glad you found it">
<SETG CLUMSILY-HANDLED T>)>
<TELL ".\"" CR>
<RTRUE>)>)
(<AND <VERB? ASK-ABOUT>
<PRSO? ,JOHNNY>>
<COND ;(<PRSI? ,GLOBAL-MEETING>
<COND (<IN? ,MCGINTY ,HERE>
<MCGINTY-WILL-FOLLOW>
<TELL
"Johnny looks at " D ,MCGINTY " and says, \"You mean the one tomorrow to
discuss, er, buying a ship at, uh, 3 o'clock? It'll be at the ferry landing.\""
CR>)
(<==? ,MEETINGS-COMPLETED 0>
<COND (<AND <G? ,FM-CTR 1>
<L? ,FM-CTR 5>>
<TELL "\"We're in it!\"" CR>)
(<L? ,PRESENT-TIME 525>
<COND (<==? ,FM-CTR 0>
<RTRUE>)
(T <TELL
"\"Glad you got the note. We'll start when everyone shows.\"" CR>)>)
(<QUEUED? I-FIRST-MEETING>
<RTRUE>)
(T <TELL "\"It's too late.\"" CR>)>)
(<==? ,MEETINGS-COMPLETED 1>
<COND (<AND <G? ,SM-CTR 1>
<L? ,SM-CTR 4>>
<TELL
"\"This isn't a bingo game!\"" CR>)
(<L? ,PRESENT-TIME 586>
<COND (<EQUAL? ,HERE ,WINDING-ROAD-1>
<COND (<==? ,SM-CTR 0>
<RTRUE>)
(T <TELL
"\"It'll start when we're all here.\"" CR>)>)
(T <TELL
"\"9:30 at the " D ,LIGHTHOUSE ".\"" CR>)>)
(T <TELL "\"You missed it, turkey!\"" CR>)>)
(<==? ,MEETINGS-COMPLETED 2>
<COND (<AND <G? ,TM-CTR 0>
<L? ,TM-CTR 8>>
<TELL
"\"It's what I'm doing now. I hope you are, too.\"" CR>)
(<L? ,PRESENT-TIME 660>
<TELL
"\"Point Lookout at 10:45. Bring $500.\"" CR>)
(T <TELL
"\"I waited for you at Point Lookout. It's too late now.\"" CR>)>)
(<OR <G? ,PRESENT-TIME 870>
<AND <G? ,PRESENT-TIME 705>
<NOT ,JOHNNY-MADE-DEAL>>>
<TELL
"\"There are no more " D ,GLOBAL-MEETING "s.\"" CR>)
(<==? ,MEETINGS-COMPLETED 3>
<TELL
"\"We'll all meet at the ship at 2:30.\"" CR>)>)
(<PRSI? ,GLOBAL-TREASURE ,SAMPLE-TREASURE ,SHARK>
<COND (<IN? ,MCGINTY ,HERE>
<MCGINTY-AND-TREASURE ,GLOBAL-TREASURE>)
(<OR <NOT <ENABLED? I-JOHNNY>>
<NOT ,SAMPLE-TREASURE>>
<TELL
"Red scowls. \"What " D ,GLOBAL-TREASURE "?\"" CR>)
(<L? ,SM-CTR 2>
<TELL "\"All in good time.\"" CR>)
(<OR <L? ,TM-CTR 7>
<IN? ,WEASEL ,HERE>
<IN? ,PETE ,HERE>
<IN? ,SPEAR-CARRIER ,HERE>>
<TELL
"\"I told you. I found a " D ,SAMPLE-TREASURE " while I was cleaning a shark.\"" CR>)
(<PRSI? ,SHARK>
<TELL "\"I made that up.\"" CR>)
(T <TELL "\"Hevlin gave it to me.\"" CR>)>)
;(<AND <PRSI? ,LEFT-BUTTON ,RIGHT-BUTTON ,DECK-CHAIR>
<G? <GETP ,HERE ,P?LINE>
,BACK-ALLEY-LINE-C>>
<TELL-BUTTON-EXPLAIN>)
(<PRSI? ,BOOK>
<COND (<OR <L? ,TM-CTR 7>
<IN? ,WEASEL ,HERE>
<IN? ,PETE ,HERE>
<IN? ,SPEAR-CARRIER ,HERE>>
<RFALSE>)
(T
<TELL "\"That's the one Hevlin gave you.\"" CR>)>)
(<PRSI? ,PETES-PATCH>
<TELL "\"Pete's worn it a long time.\"" CR>)
(<PRSI? ,HEVLIN>
<TELL "\"He was an old friend of mine.\"" CR>)
(<PRSI? ,SPEAR-CARRIER>
<TELL "\"You know him as well as I do.\"" CR>)
(<PRSI? ,ME>
<TELL-YOURE-DIVER>)
(<PRSI? ,WEASEL>
<TELL "\"The Weasel? ">
<COND (,WEASEL-BLOWN
<TELL "Lower than a sea slug...\"">)
(<IN? ,WEASEL ,HERE>
<TELL "He's my pal.\"">
<TELL-FERRY-KLUDGE "grins">)
(T <TELL
"I wouldn't trust him farther than I could throw a whale! But he's a great
one-man crew.\"">)>
<CRLF>)
(<PRSI? ,MCGINTY>
<COND (<IN? ,MCGINTY ,HERE>
<PRINTC %<ASCII !\">>
<TELL
D ,MCGINTY "'s one of my favorite people to work for!\"" CR>)
(T <TELL
"\"That man would sell his mother for a profit!\"" CR>)>)
(<PRSI? ,PETE>
<COND (<IN? ,PETE ,HERE>
<TELL "Johnny leans over and mutters, ">)>
<TELL
"\"Pete's no genius, but he's dependable. He got a bad name 'cause of
what happened, him serving his mates rats for mess. But he'll
never make that mistake again!\"" CR>)
(<PRSI? ,JOHNNY>
<TELL-KNOW-ME>)
(<PRSI? ,PARROT>
<TELL "\"It's what makes " D ,SHANTY " what it is.\"" CR>)
(<PRSI? ,TRAWLER ,SALVAGER>
<TELL "\"It's one of Outfitters' boats.\"" CR>)
(<PRSI? ,LINE-HACK>
<TELL ,LINE-STR CR>)
(T <RFALSE>)>
<RTRUE>)>
<COND (<EQUAL? ,WINNER ,JOHNNY>
<COND (<PRSO? ,GLOBAL-SELF>
<SETG PRSO ,JOHNNY>)>
<COND (<PRSI? ,GLOBAL-SELF>
<SETG PRSI ,JOHNNY>)>
<COND (<IN? ,MCGINTY ,HERE>
<COND (<PRSO? ,GLOBAL-TREASURE ,SAMPLE-TREASURE>
<SET TREAS ,PRSO>)
(<PRSI? ,SAMPLE-TREASURE ,GLOBAL-TREASURE>
<SET TREAS ,PRSI>)>
<COND (.TREAS
<MCGINTY-AND-TREASURE .TREAS>
<RTRUE>)>)>
<COND (<AND <VERB? TELL>
<PRSO? ,ME>>
<RFALSE>)
(<VERB? $CALL>
<TELL-SO-WHAT>)
(<AND <VERB? SHOW>
<IN? ,PRSO ,JOHNNY>
<PRSI? ,ME>>
<SETG WINNER ,PLAYER>
<PERFORM ,V?EXAMINE ,PRSO>
<SETG WINNER ,JOHNNY>)
(<VERB? YES NO MAYBE LATITUDE LONGITUDE WHAT FIND SSHOW
ALARM>
<RFALSE>)
(T
<TELL "\"I'll do what I want.\"" CR>
<RFATAL>)>)>>
<ROUTINE MCGINTY-AND-TREASURE (TRE)
<MCGINTY-WILL-FOLLOW>
<TELL
"Johnny looks at " D ,MCGINTY " and then at you. \"What " D .TRE "?\"" CR>>
<ROUTINE TELL-RETURNS (PER)
<START-SENTENCE .PER>
<TELL " looks at the " D ,PRSO " and hands it back to you. ">>
<ROUTINE TELL-ALREADY-SHOWN ()
<TELL-YOU-ALREADY "showed me this" T <>>>
<ROUTINE TELL-YOU-ALREADY (STR "OPTIONAL" (QUOTE? <>) (DONE T))
<COND (.QUOTE? <TELL "\"">)>
<TELL "You already " .STR>
<COND (.DONE <CRLF>)>>
<ROUTINE I-JOHNNY ("OPTIONAL" (GARG <>) "AUX" (L <LOC ,JOHNNY>) JMG V)
<COND (<NOT .GARG>
<COND (,WEASEL-BLOWN
<RFALSE>)
(<OR <AND <G? ,FM-CTR 1>
<L? ,FM-CTR 5>>
<AND <G? ,TM-CTR 0>
<L? ,TM-CTR 8>>>
<ENABLE <QUEUE I-JOHNNY 1>>
<RFALSE>)> ;"So he doesn't leave during 1st meeting"
<SET JMG <GET ,MOVEMENT-GOALS ,JOHNNY-C>>
<COND (<AND <EQUAL? <GET .JMG ,MG-ROOM> ,MM-CAPT-CABIN>
<EQUAL? ,SHIP-CHOSEN ,TRAWLER>>
<PUT .JMG ,MG-ROOM ,NW-CAPT-CABIN>)>
<IMOVEMENT ,JOHNNY I-JOHNNY>)
(<==? .GARG ,G-REACHED>
<COND (,WEASEL-APPREHENDED
<COND (<EQUAL? .L ,MM-LOUNGE ,NW-LOUNGE>
<COND (<IN? ,PLAYER <LOC ,WEASEL>>
<TELL-JOHNNY-DRAGS>)>
<MOVE ,WEASEL .L>
<COND (<==? ,SHIP-CHOSEN ,TRAWLER>
<ESTABLISH-GOAL ,JOHNNY ,NW-AFT-DECK>)
(T <ESTABLISH-GOAL ,JOHNNY ,MM-AFT-DECK>)>
<COND (<IN? ,PLAYER .L>
<TELL
"Johnny drags " D ,WEASEL " in, ties him up, and throws him to the floor."
CR>)>
<RTRUE>)
(<EQUAL? .L ,MM-AFT-DECK ,NW-AFT-DECK>
<COND (<AND <NOT <QUEUED? I-PENDULUM>>
<IN? ,PLAYER .L>>
<ENABLE <QUEUE I-PENDULUM -1>>
<FCLEAR ,LINE-HACK ,INVISIBLE>
<MOVE ,LINE-HACK .L>
<TELL
"Johnny approaches, throws a weighted " D ,SAFETY-LINE
" over the side, and says, " ,LINE-STR CR>
<RTRUE>)>)>)
(,WEASEL-BLOWN
<COND (<EQUAL? .L <META-LOC ,WEASEL>>
<ROUGH-JUSTICE>)
(<OR <IN? ,WEASEL ,GLOBAL-FERRY>
<IN? ,WEASEL ,FERRY>
<IN? ,WEASEL ,LOCAL-GLOBALS>>
<RFALSE>)
(<NOT <EQUAL? <GET <GET ,GOAL-TABLES ,JOHNNY-C>
,GOAL-F> <META-LOC ,WEASEL>>>
<ESTABLISH-GOAL ,JOHNNY <META-LOC ,WEASEL>>
<RFALSE>)>)
(<AND <==? .L ,OUTFITTERS-HQ>
<==? ,MEETINGS-COMPLETED 3>>
<ENABLE <QUEUE I-EQUIP -1>>)>
<COND (<==? .L ,HERE>
<COND ;(<QUEUED? I-DIVETIME>
<JOHNNY-SAYS-GO>
<RFATAL>)
(T
<TELL
D ,JOHNNY " appears, striding like a proud lion." CR>
<COND (<QUEUED? I-THIRD-MEETING>
<I-THIRD-MEETING>)>
<RFATAL>)>)
;(,DEBUG
<TELL "[Johnny Red has arrived at " D .L ".]" CR>)>)
(<EQUAL? .GARG ,G-ENROUTE>
<COND (,WEASEL-BLOWN
<COND (,WEASEL-APPREHENDED
<COND (<NOT <EQUAL? <LOC ,WEASEL>
,MM-LOUNGE ,NW-LOUNGE>>
<COND (<IN? ,WEASEL .L>
<SET V T>)>
<MOVE ,WEASEL .L>
<COND (<OR .V <IN? ,PLAYER .L>>
<TELL-JOHNNY-DRAGS>)>)>)
(T
<COND (<EQUAL? .L <META-LOC ,WEASEL>>
<ROUGH-JUSTICE>)
(<OR <IN? ,WEASEL ,GLOBAL-FERRY>
<IN? ,WEASEL ,FERRY>
<IN? ,WEASEL ,LOCAL-GLOBALS>>
<RFALSE>)
(<NOT <EQUAL?
<GET <GET ,GOAL-TABLES ,JOHNNY-C>
,GOAL-F>
<META-LOC ,WEASEL>>>
<ESTABLISH-GOAL ,JOHNNY <META-LOC ,WEASEL>>
<RFALSE>)>)>)>)>>
;<GLOBAL MOMENT-OF-TRUTH <>>
<GLOBAL WEASEL-BLOWN <>>
<GLOBAL WEASEL-APPREHENDED <>>
<GLOBAL CLUMSILY-HANDLED <>>
<GLOBAL LINE-STR "\"Tie the line to the treasure when you've got it, then pull
on it and we'll pull the treasure up.\"">
<ROUTINE TELL-JOHNNY-DRAGS ()
<TELL "Johnny drags " D ,WEASEL " along with him." CR>>
<ROUTINE ROUGH-JUSTICE ("AUX" (PRINT? <>))
<COND (<IN? ,PLAYER <LOC ,JOHNNY>>
<SET PRINT? T>
<CRLF>
<TELL
"Johnny grabs " D ,WEASEL " and his knife. \"All right, slime.
Thought you and " D ,MCGINTY " could rip us off, huh?\"
Before he turns to lead " D ,WEASEL " away, ">)>
<COND (,AT-SEA ;,MOMENT-OF-TRUTH
<SETG WEASEL-APPREHENDED T>
<MOVE ,KNIFE ,JOHNNY>
;<COND (.PRINT? <TELL
"Red tells you to meet him at the Aft Deck before you dive." CR>)>
<ESTABLISH-GOAL ,JOHNNY <LOC ,LOUNGE-CHAIR>>
;<COND (<EQUAL? ,SHIP-CHOSEN ,TRAWLER>
<ESTABLISH-GOAL ,JOHNNY ,NW-LOUNGE>)
(T <ESTABLISH-GOAL ,JOHNNY ,MM-LOUNGE>)>)
;(,AT-SEA
<COND (.PRINT? <TELL
"Red says, \"We'll turn around. I don't wanna waste my chance
without a crew.\" You head back for the Island, cursing " D ,MCGINTY " and
" D ,WEASEL "." CR>)
(T
<TELL-COMES-UP ,JOHNNY>
<TELL
"\"I've taken care of Weasel, but
I don't want to go on without a full crew. It would be a shame to find the
treasure and not get back with it. Maybe next time.\"" CR>)>
<FINISH>)
(T
<COND (.PRINT? <TELL
"Johnny says, \"We'd have to find someone else to crew. I better call it
off.\" You head for " D ,SHANTY ", wishing you had more to do today than
drink." CR>)
(T
<TELL-COMES-UP ,JOHNNY>
<TELL
"\"I've taken care of " D ,WEASEL ", but we can't go out without a crew.
Maybe next time.\"" CR>)>
<FINISH>)>>
<OBJECT PETE
(IN SHANTY)
(DESC "Pete the Rat")
(DESCFCN PETE-F)
(SYNONYM RAT COOK)
(ADJECTIVE PETE PETER MR MISTER)
(CHARACTER 3)
(FLAGS PERSON VICBIT)
(TEXT
"Pete wears an eyepatch and got his name on a far-east voyage as the cook.
The food ran out, and he did what he could to supply the crew with fresh meat.
Needless to say, he was left at the nearest port.")
(CONTFCN PETE-F)
(ACTION PETE-F)>
;"Unfortunately, the only meat available came in the form of the ever-present
rodent. [This sentence was the next-to-last one above, but SCF objected: 'If
someone can't figure out that the Rat in Pete's name is what he fed, then they
don't deserve to.']"
<ROUTINE TELL-COMES-UP (WHO)
<START-SENTENCE .WHO>
<TELL " comes up to you and says, ">>
;<ROUTINE TELL-MAKE-SURE ()
<TELL
"\"Just wanted to make sure you were standing watch.\"" CR>>
;<ROUTINE TELL-DO-WATCH ()
<TELL
"\"You're supposed to be up at the foredeck standing watch! Better hurry!\"" CR>>
<ROUTINE PETE-F ("OPTIONAL" (RARG <>))
<COND (<==? .RARG ,M-OBJDESC>
<COND ;(<==? ,PETE ,SEARCHER>
<SETG SEARCHER <>>
<ESTABLISH-GOAL ,PETE <LOC ,DRINKING-WATER>>
;<COND (<==? ,SHIP-CHOSEN ,SALVAGER>
<ESTABLISH-GOAL ,PETE ,MM-GALLEY>)
(T <ESTABLISH-GOAL ,PETE ,NW-GALLEY>)>
<COND (<IN? ,DECK-CHAIR <LOC ,PETE>>
<SET-NEXT-WATCH>
<TELL-COMES-UP ,PETE>
<TELL-MAKE-SURE>)
(T
<TELL-COMES-UP ,PETE>
<TELL-DO-WATCH>)>)
(<IN-MOTION? ,PETE> <RTRUE>)
(<EQUAL? <LOC ,PETE> ,MM-GALLEY ,NW-GALLEY>
<TELL D ,PETE " is watching over his stew." CR>)
;(<AND <EQUAL? <LOC ,PETE> ,MM-CREW-QTRS ,NW-CREW-QTRS>
,AT-SEA
<NOT <EQUAL? <GET <GET ,GOAL-TABLES
<GETP ,PETE ,P?CHARACTER>> ,GOAL-F>
,MM-GALLEY ,NW-GALLEY>>>
<TELL D ,PETE " is asleep in a bunk." CR>)
(<OR <AND <G? ,FM-CTR 1>
<L? ,FM-CTR 5>>
<==? ,PRESENT-TIME 704>>
<TELL
D ,PETE " is sitting here, listening intently." CR>)
(<FSET? ,PETE ,TOUCHBIT>
<TELL
D ,PETE " fiddles with his eyepatch, shifting his weight
from foot to foot." CR>)
(T <TELL
"A man wearing an eyepatch, black turtleneck, and jeans is standing about.
He is known as " D ,PETE "." CR>
<FSET ,PETE ,TOUCHBIT>)>
<RTRUE>)
(<==? .RARG ,M-CONT>
<COND (<AND <VERB? TAKE>
<FSET? ,PRSO ,TAKEBIT>>
<TELL "Pete pulls it back. \"That's mine!\"" CR>
<RTRUE>)
(T <RFALSE>)>)>
<COND (<AND <==? ,WINNER ,PETE>
<NOT <==? <META-LOC ,PETE> <META-LOC ,PLAYER>>>>
<SETG P-CONT <>>
<TELL-NOT-HERE-TALK>
<RFATAL>)>
<FSET ,PETE ,TOUCHBIT>
<COND (<AND <VERB? FOLLOW>
<PRSO? ,PETE>>
<RFALSE>)
(<VERB? HELLO>
<SETG QCONTEXT ,PETE>
<SETG QCONTEXT-ROOM ,HERE>
<TELL "\"Hi.\"" CR>
<RTRUE>)
(<VERB? GOODBYE>
<SETG QCONTEXT ,PETE>
<SETG QCONTEXT-ROOM ,HERE>
<TELL "\"Bye.\"" CR>
<RTRUE>)
(<VERB? SMELL>
<TELL "Phew! Better stay upwind of him." CR>
<RTRUE>)
(<VERB? BUY>
<COND (<PRSO? ,FERRY-TOKEN>
<TELL
"Pete checks his pockets, then holds out his empty hands." CR>
<RTRUE>)>)>
<COND (<AND <VERB? $CALL> <==? ,WINNER ,PLAYER>> <RFALSE>)
(<NOT <GRAB-ATTENTION ,PETE>> <RTRUE>)>
<COND (<AND <VERB? GIVE>
<OR <PRSO? ,ENVELOPE>
<PRSO? ,ID-CARD>>>
<COND (<NOT <IN? ,ID-CARD ,ENVELOPE>>
<TELL-RETURNS ,PETE>)>
<PERFORM ,V?SHOW ,PRSO ,PETE>
<RTRUE>)
(<AND <VERB? SHOW>
<PRSI? ,PETE>>
<COND (<AND <IN? ,ID-CARD ,ENVELOPE>
<OR <PRSO? ,ENVELOPE>
<PRSO? ,ID-CARD>>>
<TELL
"Pete takes the " D ,ENVELOPE ", studies it, then returns it. \"Looks like
" D ,WEASEL "'s card to me,\" he says." CR>
<RTRUE>)
(<PRSO? ,ENVELOPE>
<TELL "\"Looks like it's empty.\"" CR>
<RTRUE>)
(<PRSO? ,ID-CARD>
<TELL
"\"Looks like " D ,WEASEL "'s card. Better return it.\"" CR>
<RTRUE>)>)
(<AND <VERB? ASK-ABOUT>
<PRSO? ,PETE>>
<COND ;(<PRSI? ,GLOBAL-MEETING>
<COND (<IN? ,MCGINTY ,HERE>
<MCGINTY-WILL-FOLLOW>)>
<COND (<AND <==? ,MEETINGS-COMPLETED 0>
<L? ,PRESENT-TIME 525>>
<COND (<G? ,FM-CTR 1>
<TELL "\"That's what we're having.\"" CR>)
(<IN? ,WEASEL ,SHANTY>
<TELL
"\"We can start as soon as you sit down.\"" CR>)
(T <TELL
"\"Yeah. Johnny wants to talk about something he found. We're waiting
for " D ,WEASEL ".\"" CR>)>)
(<AND <==? ,MEETINGS-COMPLETED 1>
<L? ,PRESENT-TIME 586>>
<COND (<==? ,HERE ,WINDING-ROAD-1>
<TELL "\"That's why we're here.\"" CR>)
(T <TELL
"\"Didn't you hear Johnny? We meet at the " D ,LIGHTHOUSE " at 9:30.\"" CR>)>)
(<==? ,MEETINGS-COMPLETED 2>
<COND (<L? ,PRESENT-TIME 705>
<TELL
"\"The Weasel and me meet Johnny in " D ,SHANTY " at 11:45. But I don't
think you're supposed to be there.\"" CR>)
(T <TELL
"\"Forget it. The deal's off.\"" CR>)>)
(<OR <G? ,PRESENT-TIME 870>
<G? <GETP ,HERE ,P?LINE> ,BACK-ALLEY-LINE-C>>
<TELL
"\"I don't think there's any more " D ,GLOBAL-MEETING "s.\"" CR>)
(<==? ,MEETINGS-COMPLETED 3>
<TELL
"\"We're supposed to meet at 2:30 at the ship, I think.\"" CR>)
(T <TELL
"\"The " D ,GLOBAL-MEETING " was called off since everyone wasn't there.\""
CR>)>)
(<PRSI? ,GLOBAL-TREASURE>
<COND (<IN? ,MCGINTY ,HERE>
<MCGINTY-WILL-FOLLOW>)>
<COND (<L? ,FM-CTR 3>
<TELL
"\"I think that's what Johnny wants to talk about.\"" CR>)
(<L? <GETP ,HERE ,P?LINE> ,TRAWLER-LINE-C>
<TELL "\"Looks like Johnny found some.\"" CR>)
(T <TELL "\"That's what we're lookin' for.\"" CR>)>)
(<AND <PRSI? ,SAMPLE-TREASURE>
<IN? ,SAMPLE-TREASURE ,JOHNNY>>
<COND (<IN? ,MCGINTY ,HERE>
<MCGINTY-WILL-FOLLOW>)>
<TELL
"\"You saw it. You should know more about it than me.\"" CR>)
;(<AND <PRSI? ,LEFT-BUTTON ,RIGHT-BUTTON ,DECK-CHAIR>
<G? <GETP ,HERE ,P?LINE>
,BACK-ALLEY-LINE-C>>
<TELL
"\"You've never seen this setup? The " D ,LEFT-BUTTON
" tells the captain there's
danger to port, and the " D ,RIGHT-BUTTON
" means there's something to starboard.\"" CR>)
(<PRSI? ,PETES-PATCH>
<TELL
"\"That's my eyepatch. It covers my bad eye.\"" CR>)
(<PRSI? ,STOVE>
<TELL "\"There's nothing special about the " D ,STOVE ".\"" CR>)
(<PRSI? ,SPEAR-CARRIER>
<TELL "\"He's a good guy.\"" CR>)
(<PRSI? ,JOHNNY>
<TELL
"Pete thinks for a second. \"Yeah, Red's a friend of mine.\"" CR>)
(<PRSI? ,MCGINTY>
<TELL
"\"I done work for him, but I don't like him.\"" CR>)
(<PRSI? ,HEVLIN>
<TELL-NEVER-KNEW>)
(<PRSI? ,WEASEL>
<TELL "Pete frowns for a moment, then ">
<COND (<IN? ,WEASEL ,HERE>
<TELL "leans over and whispers">)
(T <TELL "says">)>
<TELL
", \"The Weasel's a friend, but I don't trust him. He's awful quick
with that knife.\"" CR>)
(<PRSI? ,PETE>
<TELL-KNOW-ME>)
(<PRSI? ,ME>
<TELL-YOURE-DIVER>)
(<PRSI? ,PARROT>
<TELL "\"He's weird. He talks funny.\"" CR>)
(<AND <PRSI? ,FOOD>
<G? <GETP ,HERE ,P?LINE> ,BACK-ALLEY-LINE-C>>
<TELL
"\"It's a beef stew. There's nothing wrong with it.\"" CR>)
(<PRSI? ,SALVAGER ,TRAWLER>
<TELL "\"She's a boat.\"" CR>)
(T <RFALSE>)>
<RTRUE>)>
<COND (<EQUAL? ,WINNER ,PETE>
<COND (<PRSO? ,GLOBAL-SELF>
<SETG PRSO ,PETE>)>
<COND (<PRSI? ,GLOBAL-SELF>
<SETG PRSI ,PETE>)>
<COND (<AND <VERB? TELL>
<PRSO? ,ME>>
<RFALSE>)
(<VERB? $CALL>
<TELL-SO-WHAT>)
(<AND <VERB? SHOW>
<IN? ,PRSO ,PETE>
<PRSI? ,ME>>
<SETG WINNER ,PLAYER>
<PERFORM ,V?EXAMINE ,PRSO>
<SETG WINNER ,PETE>)
(<VERB? YES NO MAYBE LATITUDE LONGITUDE WHAT FIND SSHOW
ALARM>
<RFALSE>)
(T
<TELL "\"I don't think I can do that.\"" CR>
<RFATAL>)>)>>
<ROUTINE I-PETE ("OPTIONAL" (GARG <>) "AUX" (L <LOC ,PETE>) PMG)
<COND (<NOT .GARG>
<COND (<AND <G? ,FM-CTR 1>
<L? ,FM-CTR 5>>
<ENABLE <QUEUE I-PETE 1>>
<RFALSE>)> ;"So he doesn't leave during 1st meeting"
<SET PMG <GET ,MOVEMENT-GOALS ,PETE-C>>
<COND (<AND <EQUAL? <GET .PMG ,MG-ROOM> ,MM-GALLEY>
<EQUAL? ,SHIP-CHOSEN ,TRAWLER>>
<PUT .PMG ,MG-ROOM ,NW-GALLEY>)>
<IMOVEMENT ,PETE I-PETE>)
(<==? .GARG ,G-REACHED>
<COND (<AND <EQUAL? .L ,MM-GALLEY ,NW-GALLEY>
<EQUAL? <GETP .L ,P?LINE>
<GETP <META-LOC ,PLAYER> ,P?LINE>>>
<FSET ,FOOD ,NDESCBIT>
<MOVE ,FOOD ,STOVE>)>
<COND (<==? ,HERE .L>
<COND ;(<==? ,PETE ,SEARCHER>
<SETG SEARCHER <>>
<ESTABLISH-GOAL ,PETE <LOC ,DRINKING-WATER>>
;<COND (<==? ,SHIP-CHOSEN ,SALVAGER>
<ESTABLISH-GOAL ,PETE ,MM-GALLEY>)
(T <ESTABLISH-GOAL ,PETE ,NW-GALLEY>)>
<COND (<IN? ,DECK-CHAIR .L>
<SET-NEXT-WATCH>
<TELL-COMES-UP ,PETE>
<TELL-MAKE-SURE>)
(T
<TELL-COMES-UP ,PETE>
<TELL-DO-WATCH>)>)
(T
<TELL D ,PETE
" arrives, quickly taking in the situation." CR>
;<COND (<AND <EQUAL? .L ,MM-CREW-QTRS
,NW-CREW-QTRS>
,AT-SEA>
<TELL
" comes in and falls asleep in one of the bunks." CR>)
(T <TELL
" arrives, quickly taking in the situation." CR>)>
<RFATAL>)>)
;(,DEBUG
<TELL "[Pete the Rat has arrived at " D .L ".]" CR>)>)>>
<OBJECT PETES-PATCH
(IN PETE)
(DESC "Pete's eyepatch")
(SYNONYM EYEPAT PATCH)
(ADJECTIVE PETE\'S PETES BLACK)
(FLAGS NDESCBIT TRYTAKEBIT)
(ACTION PETES-PATCH-F)>
<ROUTINE PETES-PATCH-F ()
<COND (<OR <VERB? LOOK-UNDER ASK-FOR DISEMBARK>
<VERB? MOVE>
<AND <VERB? TAKE>
<OR <NOT ,PRSI>
<PRSI? ,PETE>>>>
<TELL "Mind your manners." CR>)
(<VERB? EXAMINE>
<TELL "It's a standard black eyepatch." CR>)>>
<OBJECT WEASEL
(IN FERRY-LANDING)
(DESC "the Weasel")
(DESCFCN WEASEL-F)
(SYNONYM WEASEL WEBSTE)
(ADJECTIVE FRANK MR MISTER)
(CHARACTER 4)
(FLAGS PERSON VICBIT)
(TEXT
"The Weasel is a small, greasy man with shifty eyes. He loves his sharp
little knife more than life itself, and would sell out anybody for a price.
Even himself.")
(CONTFCN WEASEL-F)
(ACTION WEASEL-F)>
;<ROUTINE TELL-WHAT-MEETING? ()
<TELL
"\"What meeting? I don't know nothing about no meeting.\"" CR>>
;<ROUTINE TELL-BUTTON-EXPLAIN ()
<TELL
"\"Those are the buttons that tell the captain when there's danger ahead. The
" D ,LEFT-BUTTON
" means there's something to port, and the right one is for something
to starboard.\"" CR>>
;<ROUTINE TELL-MEETING-OFF ()
<TELL
"\"The meeting got cancelled when you didn't show.\"" CR>>
<ROUTINE WEASEL-F ("OPTIONAL" (RARG <>))
<COND (<==? .RARG ,M-OBJDESC>
<COND (<AND <IN? ,ENVELOPE ,PLAYER> <WEASEL-BEATS-YOU>>
<RTRUE>)
;(<==? ,SEARCHER ,WEASEL>
<SETG SEARCHER <>>
<COND (<==? ,SHIP-CHOSEN ,SALVAGER>
<ESTABLISH-GOAL ,WEASEL ,MM-ENGINE-ROOM>)
(T <ESTABLISH-GOAL ,WEASEL ,NW-ENGINE-ROOM>)>
<COND (<IN? ,DECK-CHAIR <LOC ,WEASEL>>
<SET-NEXT-WATCH>
<TELL
"The Weasel appears beside you. \"Glad you got here. You were late.\"" CR>)
(T
<TELL
"The Weasel stalks in. \"You better get topside and stand your
watch. Now.\"" CR>)>)
(,WEASEL-APPREHENDED
<COND (<EQUAL? ,HERE ,MM-LOUNGE ,NW-LOUNGE>
<TELL-TIED>)
(T <TELL
"The Weasel is firmly in Johnny's grasp.">)>
<CRLF>)
(<AND <QUEUED? I-PENDULUM>
<==? <GET <INT I-PENDULUM> ,C-TICK> -1>>
<RTRUE>)
(<AND <==? ,HERE ,UPSTAIRS-HALLWAY>
<QUEUED? I-WEASEL-TO-BEDROOM>>
<DISABLE <INT I-WEASEL-TO-BEDROOM>>
<TELL "The Weasel sees you come up">
<TELL-WEASEL-EXCUSE>)
(<OR <AND <G? ,FM-CTR 1>
<L? ,FM-CTR 5>>
<AND <==? ,PRESENT-TIME 704>
<==? ,HERE ,SHANTY>>>
<TELL "The Weasel is sitting here, eyes darting." CR>)
(<OR <IN-MOTION? ,WEASEL>
<TRAITOR-TIME?>>
<RTRUE>)
(<FSET? ,WEASEL ,TOUCHBIT>
<COND ;(<EQUAL? ,HERE ,MM-ENGINE-ROOM ,NW-ENGINE-ROOM>
<TELL
"The Weasel is tinkering with the engines." CR>)
(<AND <EQUAL? <LOC ,WEASEL> ,MM-AFT-DECK
,NW-AFT-DECK>
,AT-SEA ;,MOMENT-OF-TRUTH
<NOT ,WEASEL-APPREHENDED>
<NOT <QUEUED? I-PENDULUM>>>
<ENABLE <QUEUE I-PENDULUM -1>>
<TELL-WEASEL-TOSSES>);"throws line over side"
;(<AND <EQUAL? <LOC ,WEASEL> ,MM-CREW-QTRS
,NW-CREW-QTRS>
,AT-SEA
<NOT <EQUAL? <GET <GET ,GOAL-TABLES
<GETP ,WEASEL ,P?CHARACTER>>
,GOAL-F> ,MM-ENGINE-ROOM
,NW-ENGINE-ROOM>>>
<TELL "The Weasel is asleep in a bunk." CR>)
(T <TELL
"The Weasel is picking his teeth with a nasty knife, looking around furtively." CR>)>)
(T <TELL
"A short, wiry guy known only as \"" D ,WEASEL
"\" is over in a corner, picking
his teeth with a knife." CR>
<FSET ,WEASEL ,TOUCHBIT>)>
<RTRUE>)
(<==? .RARG ,M-CONT>
<COND (<AND <VERB? TAKE>
<FSET? ,PRSO ,TAKEBIT>>
<TELL
"The Weasel glares at you. \"I ain't gonna give that to ya!\"" CR>
<RTRUE>)
(T <RFALSE>)>)>
<COND (<==? ,WINNER ,WEASEL>
<COND (<NOT <==? <META-LOC ,WEASEL> <META-LOC ,PLAYER>>>
<SETG P-CONT <>>
<TELL-NOT-HERE-TALK>
<RFATAL>)
(<TRAITOR-TIME?>
<TELL-IN-MEETING>
<RFATAL>)>)>
<FSET ,WEASEL ,TOUCHBIT>
<COND (<AND <VERB? FOLLOW>
<PRSO? ,WEASEL>>
<RFALSE>)
(<AND <VERB? $CALL>
<TRAITOR-TIME?>>
<TELL-IN-MEETING>
<RTRUE>)
(<AND <VERB? UNTIE>
,WEASEL-APPREHENDED
<EQUAL? ,HERE ,MM-LOUNGE ,NW-LOUNGE>>
<JIGS-UP
"The Weasel, quite panic-stricken, doesn't stop to thank you before he
pulls a small knife from his ankle and kills you.">)
(<VERB? SEARCH>
<COND (,WEASEL-APPREHENDED
<COND (<IN? ,PASSBOOK ,WEASEL>
<MOVE ,PASSBOOK ,PLAYER>
<TELL "You take back your passbook." CR>)
(T <TELL
"Despite his writhing, you search him fruitlessly." CR>)>)
(,WEASEL-PISSED
<JIGS-UP
"The Weasel glares at you and says, \"I don't take this from no one!\" He
pulls out his knife, touches its too-sharp point with a finger, then introduces
it to your chest.">)
(T
<SETG WEASEL-PISSED T>
<TELL
"The Weasel shrinks back and says, \"Hey, don't you trust me? I don't gotta
take this from you!\"" CR>)>
<RTRUE>)
(,WEASEL-APPREHENDED
<COND (<VERB? EXAMINE>
<TELL-TIED>)
(<AND <VERB? ASK-ABOUT TELL>
<PRSI? ,WEASEL>
<NOT <PRSO? ,WEASEL>>>
<RFALSE>)
(<NOT <IN? ,WEASEL ,HERE>>
<RFALSE>)
(<VERB? FIND>
<RFALSE>)
(T <TELL "The Weasel just glares at you.">)>
<CRLF>
<COND (<AND <VERB? TELL ASK-ABOUT>
<PRSO? ,WEASEL>>
<SETG QCONTEXT ,WEASEL>
<SETG QCONTEXT-ROOM ,HERE>)>
<RFATAL>)
(<VERB? HELLO>
<SETG QCONTEXT ,WEASEL>
<SETG QCONTEXT-ROOM ,HERE>
<TELL "\"Yeah. Hi.\"" CR>
<RTRUE>)
(<VERB? GOODBYE>
<SETG QCONTEXT ,WEASEL>
<SETG QCONTEXT-ROOM ,HERE>
<TELL "\"Yeah. Bye.\"" CR>
<RTRUE>)
(<OR <AND <VERB? ASK-FOR>
<PRSO? ,WEASEL>>
<AND <VERB? TAKE>
<PRSI? ,WEASEL>>>
<COND (<EQUAL? ,KNIFE ,PRSI ,PRSO>
<RFALSE>)
(T
<TELL "\"If I got it, I ain't gonna give it to ya.\"" CR>)>
<RTRUE>)
(<VERB? BUY>
<COND (<PRSO? ,FERRY-TOKEN>
<TELL "\"I might need it. Try the bank.\"" CR>
<RTRUE>)>)>
<COND (<AND <VERB? $CALL> <==? ,WINNER ,PLAYER>> <RFALSE>)
(<NOT <GRAB-ATTENTION ,WEASEL>> <RTRUE>)>
<COND (<AND <VERB? GIVE>
<OR <PRSO? ,ENVELOPE>
<PRSO? ,ID-CARD>>>
<PERFORM ,V?SHOW ,PRSO ,WEASEL>
<RTRUE>)
(<AND <VERB? SHOW>
<PRSI? ,WEASEL>>
<COND (<AND <IN? ,ID-CARD ,ENVELOPE>
<OR <PRSO? ,ENVELOPE>
<PRSO? ,ID-CARD>>>
<MOVE ,ENVELOPE ,WEASEL>
<TELL
"The Weasel takes the " D ,ENVELOPE ". \"Thanks. I was wonderin' what
happened to my card.\"" CR>
<RTRUE>)
(<PRSO? ,ENVELOPE>
<TELL
"The Weasel shoves it back at you. \"I dunno nothin' about this. Could be old.\"" CR>
<RTRUE>)
(<PRSO? ,ID-CARD>
<MOVE ,ID-CARD ,WEASEL>
<TELL
"The Weasel takes the card. \"Thanks. I'd be in trouble without this.\"" CR>
<RTRUE>)>)
(<AND <VERB? ASK-ABOUT>
<PRSO? ,WEASEL>>
<COND (<TRAITOR-TIME?>
<TELL-IN-MEETING>
<RFATAL>)
;(<PRSI? ,GLOBAL-MEETING>
<COND (<IN? ,MCGINTY ,HERE>
<MCGINTY-WILL-FOLLOW>
<TELL
"The Weasel glances at " D ,MCGINTY ", gives you a dirty look, and says, ">
<TELL-WHAT-MEETING?>
<RTRUE>)
(<WEASEL-SHUFFLE>)>
<COND (<==? ,MEETINGS-COMPLETED 0>
<COND (<IN? ,PASSBOOK ,WEASEL>
<TELL-WHAT-MEETING?>)
(<L? ,PRESENT-TIME 525>
<COND (<EQUAL? ,HERE ,SHANTY>
<TELL
"\"That's what we're here for.\"" CR>)
(T <TELL
"\"Yeah. " D ,JOHNNY " thinks he's found a big score and needs our help.\""
CR>)>)
(<QUEUED? I-FIRST-MEETING>
<TELL "\"When you sit down...\"" CR>)
(T <TELL-MEETING-OFF>)>)
(<==? ,MEETINGS-COMPLETED 1>
<COND (<L? ,PRESENT-TIME 586>
<COND (<EQUAL? ,HERE ,WINDING-ROAD-1>
<TELL
"\"That's what we're here for.\"" CR>)
(T
<TELL "\"Weren't you listening">
<COND (<NOT <EQUAL?
,HERE
<META-LOC ,SHANTY>>>
<TELL " in " D ,SHANTY>)>
<TELL
"? We're " D ,GLOBAL-MEETING " at the " D ,LIGHTHOUSE " at 9:30.\"" CR>)>)
(T <TELL-MEETING-OFF>)>)
(T
<TELL "\"We don't meet again.">
<COND (<L? ,PRESENT-TIME 870>
<TELL " I'll see ya when we cast off.">)>
<TELL "\"" CR>)>)
(<PRSI? ,GLOBAL-TREASURE>
<COND (<IN? ,MCGINTY ,HERE>
<MCGINTY-WILL-FOLLOW>
<TELL
"The Weasel glances at " D ,MCGINTY " and says, \"What " D ,GLOBAL-TREASURE
"?\"" CR>)
(<L? ,FM-CTR 3>
<TELL
"\"That could be what Johnny wants to talk about.\"" CR>)
(T <TELL
"\"I guess that's what we're lookin' for.\"" CR>)>)
;(<AND <PRSI? ,LEFT-BUTTON ,RIGHT-BUTTON ,DECK-CHAIR>
<G? <GETP ,HERE ,P?LINE> ,BACK-ALLEY-LINE-C>>
<TELL-BUTTON-EXPLAIN>)
(<PRSI? ,KNIFE>
<TELL "\"Yeah. That's my knife.\"" CR>)
(<PRSI? ,HEVLIN>
<TELL-NEVER-KNEW>)
(<PRSI? ,PETES-PATCH>
<TELL "\"Pete's worn it as long as I've known him.\"" CR>)
(<PRSI? ,SALVAGER ,TRAWLER>
<TELL "\"It's a decent boat.\"" CR>)
(<PRSI? ,SPEAR-CARRIER>
<TELL "\"I guess he's okay.\"" CR>)
(<PRSI? ,JOHNNY>
<TELL "\"Yeah. Red's okay.\"" CR>)
(<PRSI? ,ME>
<TELL-YOURE-DIVER>)
(<PRSI? ,PETE>
<TELL
"\"Pete's a good guy. Just don't eat his chow.\"" CR>)
(<PRSI? ,MCGINTY>
<WEASEL-SHUFFLE>
<TELL
"\"He's all right. I work with him now and then.\"" CR>)
(<PRSI? ,WEASEL>
<TELL-KNOW-ME>)
(<PRSI? ,PARROT>
<TELL "\"She is one strange bird.\"" CR>)
(<PRSI? ,FERRY ,GLOBAL-FERRY>
<WEASEL-SHUFFLE>;"?"
<TELL "\"I use it to go home on the mainland.\"" CR>)
(<PRSI? ,LINE-HACK>
<TELL ,LINE-STR CR>)
(T <RFALSE>)>
<RTRUE>)>
<COND (<EQUAL? ,WINNER ,WEASEL>
<COND (<PRSO? ,GLOBAL-SELF>
<SETG PRSO ,WEASEL>)>
<COND (<PRSI? ,GLOBAL-SELF>
<SETG PRSI ,WEASEL>)>
<COND (<AND <VERB? TELL>
<PRSO? ,ME>>
<RFALSE>)
(<VERB? $CALL>
<TELL-SO-WHAT>)
(<AND <VERB? SHOW>
<IN? ,PRSO ,WEASEL>
<NOT <PRSO? ,ENVELOPE ,PASSBOOK>>
<PRSI? ,ME>>
<SETG WINNER ,PLAYER>
<PERFORM ,V?EXAMINE ,PRSO>
<SETG WINNER ,WEASEL>)
(<AND <==? ,FM-CTR 2>
<VERB? SIT SIT-ON>>
<TELL "\"Wait a second.\"" CR>)
(<VERB? YES NO MAYBE LATITUDE LONGITUDE WHAT FIND SSHOW
ALARM>
<RFALSE>)
(T
<TELL "\"I don't wanna do that.\"" CR>
<RFATAL>)>)>>
<ROUTINE WEASEL-SHUFFLE ()
<COND (<AND <G? ,PRESENT-TIME 840>
<NOT <IN? ,ENVELOPE ,LOCAL-GLOBALS>>>
<TELL "The Weasel's eyes dart as he shuffles his feet. ">)>>
<ROUTINE TELL-TIED ()
<TELL "The Weasel is tied up and squirming.">>
<ROUTINE I-WEASEL ("OPTIONAL" (GARG <>) "AUX" (L <LOC ,WEASEL>)(VAL <>) GT)
<COND (<NOT .GARG>
<COND (<AND <G? ,FM-CTR 1>
<L? ,FM-CTR 5>>
<ENABLE <QUEUE I-JOHNNY 1>>
<RFALSE>)> ;"So he doesn't leave during 1st meeting"
<IMOVEMENT ,WEASEL I-WEASEL>)
(<==? .GARG ,G-REACHED>
<COND (<AND <EQUAL? .L <META-LOC ,PLAYER>>
<IN? ,ENVELOPE ,PLAYER>
<WEASEL-BEATS-YOU>>
<RTRUE>)
(<AND <==? .L ,BANK>
<IN? ,PASSBOOK ,WEASEL>>
<SETG PASSBOOK-BALANCE 0>
<SETG STUPID-PROBLEM-STRING "September 19">)
;(<AND <EQUAL? .L ,MM-AFT-DECK ,NW-AFT-DECK>
<IN? ,PLAYER .L>
<NOT <QUEUED? I-PENDULUM>>>
<ENABLE <QUEUE I-PENDULUM -1>>
<TELL-WEASEL-TOSSES>
<SET VAL T>)
(<==? .L ,UPSTAIRS-HALLWAY>
<COND (<AND <IN? ,PASSBOOK ,UPSTAIRS-HALLWAY>
<G? ,PASSBOOK-BALANCE 99>
<NOT <IN? ,PLAYER ,UPSTAIRS-HALLWAY>>>
<MOVE ,PASSBOOK ,WEASEL>
<PUT ,MOVEMENT-GOALS ,WEASEL-C
,WEASEL-RETIRES-TABLE>
<IMOVEMENT ,WEASEL I-WEASEL>)
(<==? <META-LOC ,PLAYER> ,BEDROOM>
<COND (<FSET? ,BEDROOM-DOOR ,OPENBIT>
<MOVE ,WEASEL ,BEDROOM>
<COND (<G? ,PRESENT-TIME 540>
<TELL
"The Weasel comes in, and fear flashes across his face. \"Don't forget to
meet Johnny later,\" he says." CR>)
(T <TELL
"You hear something at the door and ">
<COND (<OR <NOT <VERB? OPEN>>
<NOT <PRSO? ,BEDROOM-DOOR>>>
<TELL "turn to ">)>
<TELL
"see " D ,WEASEL " walk in. Fear flashes across his face, but only for an
instant. He says, \"Oh, hi. I was just wonderin' if you was comin' to
the meeting. Looks like we found the real thing this
time.\"" CR>)>
<ESTABLISH-GOAL ,WEASEL ,SHANTY>)
(T
<ENABLE <QUEUE I-WEASEL-TO-BEDROOM 2>>
<TELL "You hear a knock at the door." CR>
<SETG P-IT-OBJECT ,BEDROOM-DOOR>)>
<SET VAL ,M-FATAL>)
(<==? ,HERE ,UPSTAIRS-HALLWAY>
<TELL
"The Weasel gets to the top of the stairs, sees you,">
<TELL-WEASEL-EXCUSE>
;<COND (<NOT ,BEDROOM-MESSAGE>
<TELL
"The Weasel gets to the top of the stairs, sees you,">
<TELL-WEASEL-EXCUSE>)
(T <TELL
"The Weasel enters the hallway from your room. His hands are jammed deep
into his pockets as he looks at the floor." CR>)>
<SET VAL ,M-FATAL>)
(T
;<COND (,DEBUG
<TELL "[The Weasel has arrived at " D .L ".]" CR>)>
<COND (<FSET? ,BEDROOM-DOOR ,OPENBIT>
<WEASEL-ALONE-IN-BEDROOM>)
(T <ENABLE <QUEUE I-WEASEL-TO-BEDROOM 2>>)>)>)
(<==? .L ,HERE>
<COND ;(<==? ,SEARCHER ,WEASEL>
<SETG SEARCHER <>>
<COND (<==? ,SHIP-CHOSEN ,SALVAGER>
<ESTABLISH-GOAL ,WEASEL ,MM-ENGINE-ROOM>)
(T <ESTABLISH-GOAL ,WEASEL ,NW-ENGINE-ROOM>)>
<COND (<IN? ,DECK-CHAIR .L>
<SET-NEXT-WATCH>
<TELL
"The Weasel appears beside you. \"Glad you got up here. You were late.\"" CR>)
(T
<TELL
"The Weasel stalks in, looking angry. \"You better get topside and stand your
watch. Now.\"" CR>)>)
(T
<TELL
"The Weasel approaches, glancing around furtively." CR>
;<COND (<AND <EQUAL? .L ,MM-CREW-QTRS
,NW-CREW-QTRS>
,AT-SEA>
<TELL
"The Weasel comes in and climbs into a bunk for some sleep." CR>)
(T <TELL
"The Weasel approaches, glancing around furtively." CR>)>
<SET VAL ,M-FATAL>)>)
;(,DEBUG
<TELL "[The Weasel has arrived at " D .L ".]" CR>)>
<WEASEL-CHECK ,ENVELOPE .L>
<WEASEL-CHECK ,ID-CARD .L>
<RETURN .VAL>)
(<EQUAL? .GARG ,G-ENROUTE>
<COND (<AND <==? ,HERE ,UPSTAIRS-HALLWAY>
,BEDROOM-MESSAGE>
<SETG BEDROOM-DOOR-LOCKED <>>)>
<COND (<AND <IN? ,PASSBOOK .L>
<G? ,PASSBOOK-BALANCE 99>
<NOT <IN? ,WEASEL <META-LOC ,PLAYER>>>>
<MOVE ,PASSBOOK ,WEASEL>
<SET GT <GET ,GOAL-TABLES ,WEASEL-C>>
<COND (<==? <GET .GT ,GOAL-F> ,FERRY-LANDING>
<ESTABLISH-GOAL ,WEASEL ,BACK-ALLEY-5>)>
<COND (<L? <GETP .L ,P?LINE> ,TRAWLER-LINE-C>
<PUT ,MOVEMENT-GOALS ,WEASEL-C
,WEASEL-RETIRES-TABLE>
<IMOVEMENT ,WEASEL I-WEASEL>)>)>
<COND (<AND <IN? ,ENVELOPE ,PLAYER>
<EQUAL? .L <META-LOC ,PLAYER>>
<WEASEL-BEATS-YOU>>
<RTRUE>)
(T <WEASEL-CHECK ,ENVELOPE .L>)>
<WEASEL-CHECK ,ID-CARD .L>)>>
<ROUTINE TELL-WEASEL-PICKUP (STR)
<TELL "The Weasel picks up " .STR "." CR>>
<ROUTINE TELL-WEASEL-EXCUSE ()
<ESTABLISH-GOAL ,WEASEL ,SHANTY>
<TELL " and says, ">
<COND (<G? ,PRESENT-TIME 540>
<TELL
"\"Umm, well, better not forget to meet with Johnny.\"" CR>)
(T <TELL
"\"Oh. I was just checkin' to see if you're goin' to the meeting at "
D ,SHANTY ".\" He looks slightly disappointed." CR>)>>
;<ROUTINE ENVELOPE-CHECK (L)
<COND (<OR <AND <NOT <IN? ,ENVELOPE ,UNDER-BUNK>>
<==? <META-LOC ,ENVELOPE> .L>
<NOT <FSET? <LOC ,ENVELOPE> ,PERSON>>>
<REALLY-HERE? ,ENVELOPE .L>>
<MOVE ,ENVELOPE ,WEASEL>
<COND (<EQUAL? .L <META-LOC ,PLAYER>>
<TELL-WEASEL-PICKUP "the envelope">)>)>>
<ROUTINE WEASEL-CHECK (OBJ L)
<COND (<OR <AND <NOT <EQUAL? <LOC .OBJ> ,ENVELOPE ,UNDER-BUNK>>
<==? <META-LOC .OBJ> .L>
<NOT <FSET? <LOC .OBJ> ,PERSON>>>
<REALLY-HERE? .OBJ .L>>
<MOVE .OBJ ,WEASEL>
<COND (<EQUAL? .L <META-LOC ,PLAYER>>
<COND (<==? .L ,ID-CARD>
<TELL-WEASEL-PICKUP "his card">)
(T <TELL-WEASEL-PICKUP "the envelope">)>)>)>>
<ROUTINE REALLY-HERE? (OBJ L "AUX" (CTR 0))
<REPEAT ()
<COND (<G? .CTR 44> <RETURN>)
(<AND <==? <GET ,SHARED-OBJECT-TABLE .CTR> .OBJ>
<==? <GET ,SHARED-OBJECT-TABLE <+ .CTR 1>> .L>
<NOT <==? <GET ,SHARED-OBJECT-TABLE <+ .CTR 2>>
,UNDER-BUNK>>>
<PUT ,SHARED-OBJECT-TABLE .CTR 0>
<PUT ,SHARED-OBJECT-TABLE <+ .CTR 1> 0>
<PUT ,SHARED-OBJECT-TABLE <+ .CTR 2> 0>
<RTRUE>)>
<SET CTR <+ .CTR 3>>>
<RFALSE>>
<ROUTINE I-WEASEL-TO-BEDROOM ()
<COND (,BEDROOM-DOOR-LOCKED
<ESTABLISH-GOAL ,WEASEL ,SHANTY>
<RFALSE>)
(T
<COND (<==? <META-LOC ,PLAYER> ,BEDROOM>
<MOVE ,WEASEL ,BEDROOM>
<TELL
"The door opens and " D ,WEASEL " walks in. He sees you and says, \"Oh. Hi.
I just wanted to make sure you ">
<COND (<G? ,PRESENT-TIME 540>
<TELL "remembered to meet Johnny later.\"">)
(T
<TELL
"knew about the meetin' at " D ,SHANTY ".">
<COND (<FSET? ,NOTE ,TOUCHBIT>
<TELL " You got Johnny's note, right?\"">)
(T <TELL
"\" He points to the note on the floor. \"You better read this note.\"">)>)>
<CRLF>
<ESTABLISH-GOAL ,WEASEL ,SHANTY>)
(T <WEASEL-ALONE-IN-BEDROOM> <RFALSE>)>)>>
<ROUTINE WEASEL-ALONE-IN-BEDROOM ("AUX" WGT)
<SET WGT <GET ,GOAL-TABLES ,WEASEL-C>>
<MOVE ,WEASEL ,BEDROOM>
<PUT .WGT ,ATTENTION 5>
<FSET ,BUREAU ,OPENBIT>
<COND (<AND <EQUAL? <META-LOC ,PASSBOOK> ,BEDROOM>
<G? ,PASSBOOK-BALANCE 99>>
<MOVE ,PASSBOOK ,WEASEL>
<PUT ,MOVEMENT-GOALS ,WEASEL-C ,WEASEL-RETIRES-TABLE>
<IMOVEMENT ,WEASEL I-WEASEL>)
(T <ESTABLISH-GOAL ,WEASEL ,SHANTY>)>
<PUT .WGT ,GOAL-ENABLE <>>
<SETG BEDROOM-MESSAGE
"You can't help notice that your dresser has been opened and the contents
messed up.">>
<ROUTINE WEASEL-BEATS-YOU ()
<COND (,WEASEL-APPREHENDED
<RFALSE>)
(T
<TELL-COMES-UP ,WEASEL>
<JIGS-UP
"\"That's one of McGinty's envelopes!
Traitor!\" Before you can respond, the Weasel's knife has violated the
sanctity of your body.">)>>
<OBJECT KNIFE
(IN WEASEL)
(DESC "Weasel's knife")
(SYNONYM KNIFE BLADE)
(ADJECTIVE OLD WEASEL USED WELL-W SHARP)
(FLAGS TRYTAKEBIT NDESCBIT WEAPONBIT)
(ACTION KNIFE-F)>
<ROUTINE KNIFE-F ()
<COND (<OR <VERB? TAKE>
<AND <VERB? ASK-FOR>
<PRSO? ,WEASEL>>>
<COND (<IN? ,KNIFE ,WEASEL>
<TELL
"The Weasel pulls it away. \"Don't mess with my
knife,\" he warns, \"or I'll give it to ya in a way ya won't much like.\"" CR>)>)
(<VERB? EXAMINE>
<TELL "This knife ">
<COND (<IN? ,KNIFE ,WEASEL>
<TELL "is">)
(T <TELL "was">)>
<TELL
" " D ,WEASEL "'s, and it's razor sharp." CR>)>>
<OBJECT ID-CARD
(IN LOCAL-GLOBALS)
(DESC "Merchant Seaman's card")
(SYNONYM CARD)
(ADJECTIVE MERCHA SEAMAN ID WEASEL)
(FLAGS READBIT TAKEBIT)
(TEXT "The card says:|
\"Frank Webster|
Seaman First Class|
No. 2626868\"")
(SIZE 2)>
<OBJECT WATCH
(IN ADVENTURER)
(DESC "wrist watch")
(SYNONYM WATCH WRISTW TIMEPI)
(ADJECTIVE WRIST)
(FLAGS WEARBIT WORNBIT TAKEBIT TURNBIT)
(ACTION WATCH-F)>
<ROUTINE WATCH-F ()
<COND (<VERB? READ EXAMINE>
<TELL
"Your trusty old wind-up diver's watch is waterproof to 350 fathoms. It
currently shows ">
<WATCH-TIME>
<TELL " a.m. (The AM/PM indicator never did work.)">
<COND (<NOT ,WATCH-WOUND>
<TELL " The sweep hand isn't moving on it.">)>
<CRLF>)
(<VERB? LISTEN>
<COND (,WATCH-WOUND
<TELL "It's ticking." CR>)
(T <TELL
"The " D ,WATCH " makes no sound. And it's not battery-operated." CR>)>)
(<AND <VERB? WIND>
<PRSO? ,WATCH>>
<SETG WATCH-WOUND T>
<ENABLE <QUEUE I-UNWOUND 1500>>
<TELL "Okay. You've wound the watch." CR>)
(<VERB? SHAKE>
<TELL
"Shaken. It's not self-winding, but it is shock-proof." CR>)
(<VERB? TURN>
<COND (<NOT ,PRSI>
<TELL
"If you want to set the watch, specify the time to which you want it set." CR>)
(<PRSI? ,INTNUM>
<COND (<OR <G? ,SET-HR 23>
<G? ,SET-MIN 59>>
<TELL
"Try setting it to a more reasonable time." CR>
<RTRUE>)
(<G? ,SET-HR 11>
<SETG SET-HR <- ,SET-HR 12>>)>
<SETG WATCH-SCORE ,SET-HR>
<SETG WATCH-MOVES ,SET-MIN>
<SETG SET-MIN 60>
<TELL-NOW ,WATCH "set to " <>>
<WATCH-TIME>
<TELL "." CR>
<RTRUE>)>)>>
<ROUTINE WATCH-TIME ("AUX" HR)
<COND (<0? ,WATCH-SCORE>
<SET HR 12>)
(T <SET HR ,WATCH-SCORE>)>
<TELL N .HR ":">
<COND (<L? ,WATCH-MOVES 10>
<TELL "0">)>
<TELL N ,WATCH-MOVES>>
<OBJECT DELIVERY-BOY
(IN LOCAL-GLOBALS)
(SYNONYM BOY KID)
(ADJECTIVE DELIVE)
(DESC "Outfitters' delivery boy")
(DESCFCN DELIVERY-BOY-F)
(FLAGS VICBIT VOWELBIT)
(CHARACTER 5)
(ACTION DELIVERY-BOY-F)>
<ROUTINE DELIVERY-BOY-F ("OPTIONAL" (RARG <>))
<COND (<EQUAL? .RARG ,M-OBJDESC>
<COND (<IN-MOTION? ,DELIVERY-BOY> <RTRUE>)
(T <TELL
"The " D ,DELIVERY-BOY " is here." CR>)>)
(<VERB? EXAMINE>
<TELL
"The " D ,DELIVERY-BOY " is young. He's pushing a cart which is ">
<COND (,DELIVERY-MADE
<TELL "currently empty">)
(T <TELL "loaded with stuff">)>
<TELL "." CR>)
(<OR <EQUAL? ,DELIVERY-BOY ,WINNER>
<VERB? HELLO GOODBYE>
<AND <VERB? TELL> <PRSO? ,DELIVERY-BOY>>>
<SETG QCONTEXT ,DELIVERY-BOY>
<SETG QCONTEXT-ROOM ,HERE>
<TELL "\"I can't stop now. I'm working!\"" CR>
<SETG P-CONT <>>
<SETG QUOTE-FLAG <>>
<RTRUE>)>>
<ROUTINE I-DELIVERY-BOY ("OPTIONAL" (GARG <>) "AUX" (L <LOC ,DELIVERY-BOY>)
DMG OBJ DEST)
<COND (<NOT .GARG>
<SET DMG <GET ,MOVEMENT-GOALS ,DELIVERY-BOY-C>>
<COND (<L? ,PRESENT-TIME 485> T)
(<OR <NOT <0? ,AMT-OWED>>
<NOT ,JOHNNY-MADE-DEAL>>
<RFALSE>)
(<EQUAL? <GET .DMG ,MG-ROOM> ,MM-LOCKER>
<MOVE ,DELIVERY-BOY ,OUTFITTERS-HQ>
<COND (<EQUAL? ,SHIP-CHOSEN ,TRAWLER>
<PUT .DMG ,MG-ROOM ,NW-LOCKER>)>)>
<IMOVEMENT ,DELIVERY-BOY I-DELIVERY-BOY>)
(<==? .GARG ,G-REACHED>
<COND (<==? .L ,OUTFITTERS-HQ>
<MOVE ,DELIVERY-BOY ,LOCAL-GLOBALS>)>
<COND (<EQUAL? .L ,MM-LOCKER ,NW-LOCKER>
<REPEAT ()
<SETG DT-PTR <- ,DT-PTR 2>>
<COND (<L? ,DT-PTR 0> <RETURN>)>
<MOVE <SET OBJ <GET ,DELIVERY-TABLE ,DT-PTR>> .L>
<COND (<NOT <==? .OBJ ,COMPRESSOR>>
<FSET .OBJ ,TAKEBIT>)>
<FCLEAR .OBJ ,TRYTAKEBIT>
<FCLEAR .OBJ ,NDESCBIT>>
<SETG DELIVERY-MADE T>
<ESTABLISH-GOAL ,DELIVERY-BOY ,OUTFITTERS-HQ>
<COND (<==? .L ,HERE>
<TELL
"The " D ,DELIVERY-BOY" arrives with a cartful of stuff which he unloads." CR>
<RFATAL>)>)
(<==? .L ,HERE>
<TELL "The " D ,DELIVERY-BOY " walks in." CR>
<RFATAL>)
;(,DEBUG
<TELL "[The delivery boy has arrived at " D .L ".]" CR>)>)
(<==? .GARG ,G-ENROUTE>
<COND (<AND <EQUAL? .L ,MM-GALLEY ,NW-GALLEY>
<NOT ,WATER-DELIVERED>>
<SETG WATER-DELIVERED T>
<PUT
<GET ,GOAL-TABLES ,DELIVERY-BOY-C> ,ATTENTION 2>
<COND (<==? <GETP .L ,P?LINE>
<GETP <META-LOC ,WINNER> ,P?LINE>>
<MOVE ,DRINKING-WATER .L>
<FSET ,DRINKING-WATER ,NDESCBIT>)>
<COND (<IN? ,PLAYER .L>
<TELL
"The delivery boy stops to drop off some stuff." CR>)>)>)>>
<GLOBAL DELIVERY-MADE <>>
<GLOBAL WATER-DELIVERED <>>
<OBJECT SPEAR-CARRIER
(IN RED-BOAR-INN)
(SYNONYM CLERK SALESM BARTEN TELLER)
(ADJECTIVE ROOM DESK BANK)
(SDESC "desk clerk")
(LDESC "A desk clerk is sitting behind the counter.")
(FLAGS VICBIT)
(ACTION SPEAR-CARRIER-F)>
<ROUTINE SPEAR-CARRIER-F ("AUX" CHANGE COST)
<COND (<VERB? HELLO>
<SETG QCONTEXT ,SPEAR-CARRIER>
<SETG QCONTEXT-ROOM ,HERE>
<TELL "\"Hi there! What can I do for you?\"" CR>
<RTRUE>)
(<VERB? GOODBYE>
<SETG QCONTEXT ,SPEAR-CARRIER>
<SETG QCONTEXT-ROOM ,HERE>
<TELL "\"So long. See you around.\"" CR>
<RTRUE>)
(<VERB? ALARM>
<RFALSE>)
(<OR <VERB? TIME>
<AND <VERB? WHAT>
<PRSO? ,GLOBAL-TIME>>>
<PERFORM ,V?ASK-ABOUT ,SPEAR-CARRIER ,GLOBAL-TIME>
<RTRUE>)
(<==? ,WINNER ,SPEAR-CARRIER>
<COND (<PRSO? ,GLOBAL-SELF>
<SETG PRSO ,SPEAR-CARRIER>)>
<COND (<PRSI? ,GLOBAL-SELF>
<SETG PRSI ,SPEAR-CARRIER>)>
<COND (<AND <VERB? FIND>
<PRSO? ,GLOBAL-BANK>>
<COND (<==? ,HERE ,BANK>
<TELL "\"This is the bank!\"" CR>)
(T
<SETG WINNER ,PLAYER>
<PERFORM ,V?ASK-ABOUT ,SPEAR-CARRIER ,GLOBAL-BANK>
<SETG WINNER ,SPEAR-CARRIER>)>
<RTRUE>)
(<VERB? $CALL>
<TELL-SO-WHAT>
<RTRUE>)
(<VERB? SGIVE SSHOW WHAT FIND YES NO MAYBE>
<RFALSE>)
(<AND <VERB? ASK-ABOUT ASK-FOR>
<PRSI? ,GLOBAL-TIME>>
<RFALSE>)
(<AND <VERB? GIVE>
<PRSI? ,ME>>
<SETG WINNER ,PLAYER>
<PERFORM ,V?ASK-FOR ,SPEAR-CARRIER ,PRSO>
<SETG WINNER ,SPEAR-CARRIER>
<RTRUE>)
(<AND <VERB? TELL>
<PRSO? ,ME>>
<COND (,PRSI
<SETG WINNER ,PLAYER>
<PERFORM ,V?ASK-ABOUT ,SPEAR-CARRIER ,PRSI>
<SETG WINNER ,SPEAR-CARRIER>
<RTRUE>)
(T <RFALSE>)>)
(<VERB? HELLO>
<TELL "\"Hi there! What can I do for you?\"" CR>
<RTRUE>)
(<VERB? GOODBYE>
<TELL "\"So long. See you around.\"" CR>
<RTRUE>)
(<AND <VERB? WITHDRAW>
<==? ,HERE ,BANK>>
<RFALSE>)
(<AND <VERB? SHOW>
<PRSI? ,ME>>
<TELL "\"Examine it " D ,GLOBAL-SELF ".\"" CR>
<RTRUE>)
(T
<TELL "\"I can't do that while I'm on the job.\"" CR>
<RTRUE>)>)
(<AND <VERB? TELL>
<NOT ,PRSI>>
<RFALSE>)
(<AND <VERB? BUY>
<PRSO? ,FERRY-TOKEN>>
<NO-TOKENS ,HERE>
<RTRUE>)
(<VERB? SEARCH>
<TELL-YOU-CANT "reach behind the " <>>
<COND (<IN? ,BAR ,HERE>
<TELL D ,BAR>)
(<IN? ,WINDOW ,HERE>
<TELL D ,WINDOW>)
(T <TELL D ,GLOBAL-SURFACE>)>
<TELL "." CR>
<RTRUE>)
(<AND <VERB? ASK-ABOUT>
<PRSO? ,SPEAR-CARRIER>>
<SETG QCONTEXT ,SPEAR-CARRIER>
<SETG QCONTEXT-ROOM ,HERE>
<COND (<PRSI? ,SPEAR-CARRIER>
<TELL
"\"Just another of the people who keep this island running.\"" CR>
<RTRUE>)
(<PRSI? ,ME>
<TELL-YOURE-DIVER>
<RTRUE>)
(<FSET? ,PRSI ,PERSON>
<TELL "\"You know " D ,PRSI ".\"" CR>
<RTRUE>)
(<PRSI? ,GLOBAL-BANK>
<COND (<EQUAL? ,HERE ,BANK>
<TELL
"\"It's the " D ,BANK ", a savings bank which has served Hardscrabble
Island for over forty years.\"" CR>)
(T <TELL
"\"It's at the eastern end of the " D ,SHORE-ROAD-1 ".\"" CR>)>
<RTRUE>)
(<PRSI? ,GLOBAL-MONEY>
<TELL
"\"That's what makes the world go around. Right?\"" CR>
<RTRUE>)
(<PRSI? ,RIDICULOUS-MONEY-KLUDGE>
<TELL
"He smiles. \"Money is our most important product.\"" CR>
<RTRUE>)
(<PRSI? ,PARROT>
<COND (<EQUAL? ,HERE ,SHANTY>
<TELL
"\"Isn't it great? I bought it from a passing sailor some years back. I never
did figure out why it has a wooden leg and an eyepatch.\"" CR>)
(T <TELL
"\"The one in " D ,SHANTY "? I can't imagine the island without it!\"" CR>)>
<RTRUE>)
(<==? ,HERE ,RED-BOAR-INN>
<COND (<PRSI? ,HEVLIN>
<TELL
"\"He came in here last night looking for you.\"" CR>
<RTRUE>)>)
(<EQUAL? ,HERE ,OUTFITTERS-HQ>
<COND (<PRSI? ,DELIVERY-BOY>
<TELL "\"">
<COND (<NOT <IN-MOTION? ,DELIVERY-BOY>>
<TELL
"He's probably in the back room setting up the next delivery. ">)>
<TELL "He's very conscientious, you know.\"" CR>
<RTRUE>)
(<PRSI? ,PRICE-LIST>
<TELL "\"It's up to date.\"" CR>
<RTRUE>)
(<PRSI? ,TRAWLER ,SALVAGER>
<TELL
"\"She's a great boat. You can read all about her in the " D ,PRICE-LIST ".\""
CR>
<RTRUE>)
(<AND <GETP ,PRSI ,P?NORTH>
<NOT <IN? ,PRSI ,ROOMS>>
<NOT <PRSI? ,FOOD ,DRINK-OBJECT>>>
<TELL "\"It's a great " D ,PRSI ".\"" CR>
<RTRUE>)>)>)>
<COND ;(<EQUAL? ,WINNER ,SPEAR-CARRIER>)
(<VERB? WALK>
<TELL "He indicates that he'd rather stay where he is." CR>
<RTRUE>)
(<AND <EQUAL? ,HERE ,BANK>
<PRSI? ,SPEAR-CARRIER>>
<COND (<VERB? GIVE>
<TELL "The teller examines the ">
<COND (<PRSO? ,PASSBOOK>
<TELL "passbook, says">
<TELL-OUR-PASSBOOK>
<TELL
" If you want to withdraw some money, say so,\" and hands it back to you." CR>
<RTRUE>)
(T <TELL
D ,PRSO ", thinks for a moment, and then hands it
back to you, pointing out that you have no safe deposit box." CR>
<RTRUE>)>)
(<AND <VERB? SHOW>
<PRSO? ,PASSBOOK>>
<TELL "The teller says,">
<TELL-OUR-PASSBOOK>
<TELL "\"" CR>
<RTRUE>)>)
(<EQUAL? ,HERE ,RED-BOAR-INN>
<COND (<VERB? ASK-FOR>
<COND (<PRSI? ,GLOBAL-ROOM>
<TELL
"\"We're full. Your current room will have to do.\"" CR>)
(<PRSI? ,PSEUDO-OBJECT>
<TELL "\"Nope. No messages.\"" CR>)>)
(<AND <VERB? GIVE>
<PRSO? ,KEY>>
<TELL
"The desk clerk hands you back the key. \"You've paid for another week.\"" CR>)>)
(<EQUAL? ,HERE ,BANK>
<COND (<AND <VERB? ASK-FOR>
<PRSI? ,RIDICULOUS-MONEY-KLUDGE ,INTNUM>>
<COND (<G? ,PASSBOOK-BALANCE 0>
<TELL
"\"If you want to make a withdrawal, be specific.\"" CR>
<RTRUE>)
(T <TELL
"\"I'm afraid that the loan officer is out today.\"" CR>
<RTRUE>)>)>)
(<AND <EQUAL? ,HERE ,OUTFITTERS-HQ>
<VERB? ASK-FOR>
<PRSO? ,SPEAR-CARRIER>>
<COND (<G? <SET COST <GETP ,PRSO ,P?NORTH>> 0>
<TELL "\"You want it, you buy it.\"" CR>
<RTRUE>)
(<L? .COST 0>
<TELL-YOU-ALREADY "bought it.\"" T>
<RTRUE>)>)
(<AND <EQUAL? ,HERE ,OUTFITTERS-HQ>
<PRSI? ,SPEAR-CARRIER>>
<COND (<VERB? GIVE>
<COND (<AND <PRSO? ,INTNUM> ,P-DOLLAR-FLAG>
<COND (<OR <FSET? ,WET-SUIT ,WORNBIT>
<FSET? ,DEEP-SUIT ,WORNBIT>>
<TELL-YOU-CANT "get at your money.">
<RTRUE>)
(<G? ,P-AMOUNT ,POCKET-CHANGE>
<TELL "You haven't got that much." CR>
<RTRUE>)
(,AMT-OWED
<COND (<L? ,P-AMOUNT ,AMT-OWED>
<SETG AMT-OWED
<- ,AMT-OWED ,P-AMOUNT>>
<SETG POCKET-CHANGE
<- ,POCKET-CHANGE ,P-AMOUNT>>
<TELL
"The salesman takes the money and says, \"You still owe me $" N ,AMT-OWED ".\""
CR>)
(T
<COND (<G? ,P-AMOUNT ,AMT-OWED>
<SET CHANGE
<- ,P-AMOUNT ,AMT-OWED>>
<TELL
"The salesman takes the money, counts it, and hands you back $" N .CHANGE ". ">)>
<SETG POCKET-CHANGE
<- ,POCKET-CHANGE ,AMT-OWED>>
<SETG AMT-OWED 0>
<TELL
"\"Thank you very much. Let me know what else you want.\"" CR>)>)
(T <TELL
"The salesman hands it back to you. \"If you want to buy anything, please be
specific.\"" CR>)>)
(<PRSO? ,GLOBAL-MONEY>
<SETG P-AMOUNT ,AMT-OWED>
<SETG P-DOLLAR-FLAG T>
<PERFORM ,V?GIVE ,INTNUM ,PRSI>
<SETG P-IT-OBJECT ,GLOBAL-MONEY>
<RTRUE>)
(T
<TELL "The salesman looks at ">
<THE? ,PRSO>
<TELL D ,PRSO ", then returns it." CR>)>
<RTRUE>)>)
(<EQUAL? ,SHANTY ,HERE>
<COND (<OR <AND <VERB? ASK-FOR>
<PRSI? ,DRINKING-WATER>>
<AND <VERB? BUY>
<PRSO? ,DRINKING-WATER>>>
<COND (<IN? ,DRINKING-WATER ,TABLE-OBJECT>
<TELL "\"One glass to a customer.\"" CR>)
(T
<MOVE ,DRINKING-WATER ,TABLE-OBJECT>
<FCLEAR ,DRINKING-WATER ,NDESCBIT>
<PUTP ,DRINKING-WATER ,P?SDESC "glass of water">
<TELL
"The bartender puts a glass of water on the table." CR>)>)
(<VERB? ASK-FOR ASK-ABOUT>
<COND (<PRSI? ,FOOD>
<TELL
"\"It's beef stew today. You can buy it for $5.\"" CR>)
(<PRSI? ,DRINK-OBJECT>
<TELL "\"Grog is $2.\"" CR>)>)>)>>
<ROUTINE TELL-OUR-PASSBOOK ()
<TELL " \"Yes. That's one of our passbooks.">>
<ROUTINE TELL-NOT-HERE-TALK ()
<TELL-YOU-CANT "talk to someone who's not here.">>
<ROUTINE TELL-YOURE-DIVER () <TELL "\"You're a diver!\"" CR>>
<ROUTINE TELL-KNOW-ME ()
<TELL "\"You know me.\"" CR>>
<OBJECT HEVLIN
(IN GLOBAL-OBJECTS)
(DESC "dead man")
(SYNONYM HEVLIN MAN)
(ADJECTIVE DEAD)
(ACTION HEVLIN-F)>
<ROUTINE HEVLIN-F ("AUX" OWINNER)
<COND (<OR <VERB? ASK-ABOUT ASK-CONTEXT-ABOUT ASK-FOR>
<VERB? ASK-CONTEXT-FOR>
<AND <VERB? TELL>
<NOT <PRSO? ,ME ,HEVLIN>>>>
<RFALSE>)
(<VERB? WHAT>
<SET OWINNER ,WINNER>
<SETG WINNER ,PLAYER>
<PERFORM ,V?ASK-ABOUT .OWINNER ,HEVLIN>
<SETG WINNER .OWINNER>
<RTRUE>)
(<VERB? FIND>
<COND (<OR <==? ,WINNER ,JOHNNY>
<AND <==? ,WINNER ,SPEAR-CARRIER>
<==? ,HERE ,RED-BOAR-INN>>>
<TELL "\"He was killed last night.\"" CR>)
(<==? ,WINNER ,PLAYER>
<TELL-HES-DEAD>)
(T <TELL-NEVER-KNEW>)>)
(<VERB? FIND HELP PRAY>
<TELL-HES-DEAD>
<RFATAL>)
(T <GLOBAL-NOT-HERE-PRINT ,HEVLIN>)>>
<ROUTINE TELL-HES-DEAD ()
<TELL "Hevlin is dead." CR>>