1363 lines
32 KiB
Plaintext
1363 lines
32 KiB
Plaintext
;"***************************************************************************"
|
|
; "game : Arthur"
|
|
; "file : KITCHEN.ZIL"
|
|
; "auth : $Author: RAB $"
|
|
; "date : $Date: 15 May 1989 18:09:56 $"
|
|
; "rev : $Revision: 1.108 $"
|
|
; "vers : 1.0"
|
|
;"---------------------------------------------------------------------------"
|
|
; "Tavern kitchen"
|
|
; "Copyright (C) 1989 Infocom, Inc. All rights reserved."
|
|
;"***************************************************************************"
|
|
|
|
<INCLUDE "PDEFS"> ; "Because PARSE-ACTION used in this file."
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "RM-TAV-KITCHEN"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<ROOM RM-TAV-KITCHEN
|
|
(LOC ROOMS)
|
|
(DESC "tavern kitchen")
|
|
(FLAGS FL-INDOORS FL-LIGHTED)
|
|
(SYNONYM KITCHEN)
|
|
(ADJECTIVE TAVERN)
|
|
(NORTH TO RM-TAVERN)
|
|
(OUT TO RM-TAVERN)
|
|
(GLOBAL LG-THATCH LG-WALL RM-TAVERN)
|
|
(ACTION RT-RM-TAV-KITCHEN)
|
|
>
|
|
|
|
<ROUTINE RT-RM-TAV-KITCHEN ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
|
|
<COND
|
|
(<IN? ,CH-COOK ,RM-TAV-KITCHEN>
|
|
<FSET ,CH-COOK ,FL-SEEN>
|
|
<FSET ,TH-CUPBOARD ,FL-SEEN>
|
|
<TELL
|
|
"The kitchen is dominated by a mean-looking cook who is working at a table
|
|
with his back to a" open ,TH-CUPBOARD " cupboard."
|
|
>
|
|
<COND
|
|
(<IN? ,TH-BIRD ,TH-CAGE>
|
|
<FSET ,TH-BIRD ,FL-SEEN>
|
|
<FSET ,TH-CAGE ,FL-SEEN>
|
|
<TELL " Above his head is a beautiful caged bird who ">
|
|
<COND
|
|
(<MC-CONTEXT? ,M-LOOK>
|
|
<TELL "is chattering frantically at you">
|
|
)
|
|
(T
|
|
<TELL "starts to chatter as soon as you come in">
|
|
)
|
|
>
|
|
<TELL ".">
|
|
)
|
|
>
|
|
<COND
|
|
(<AND <IN? ,TH-CHEESE ,TH-TAVERN-TABLE>
|
|
<FSET? ,TH-CHEESE ,FL-NO-LIST>
|
|
>
|
|
<TELL
|
|
" Near the edge of the table is a small, stale piece of cheese."
|
|
>
|
|
)
|
|
>
|
|
<CRLF>
|
|
; <FSET ,TH-TAVERN-TABLE ,FL-NO-DESC>
|
|
; <FSET ,TH-CUPBOARD ,FL-NO-DESC>
|
|
; <FSET ,TH-CAGE ,FL-NO-DESC>
|
|
; <FSET ,TH-BIRD ,FL-NO-DESC>
|
|
; <FSET ,CH-COOK ,FL-NO-DESC>
|
|
<RFALSE>
|
|
)
|
|
(T
|
|
<TELL
|
|
"You are in the small kitchen that is tucked away in the back of the tavern.
|
|
The only exit lies to the north.|"
|
|
>
|
|
<RFALSE>
|
|
)
|
|
>
|
|
)
|
|
; (<MC-CONTEXT? ,M-BEG>
|
|
<FCLEAR ,TH-TAVERN-TABLE ,FL-NO-DESC>
|
|
<FCLEAR ,TH-CUPBOARD ,FL-NO-DESC>
|
|
<FCLEAR ,TH-CAGE ,FL-NO-DESC>
|
|
<FCLEAR ,TH-BIRD ,FL-NO-DESC>
|
|
<FCLEAR ,CH-COOK ,FL-NO-DESC>
|
|
<RFALSE>
|
|
)
|
|
(<MC-CONTEXT? ,M-ENTER>
|
|
<COND
|
|
(<IN? ,CH-COOK ,RM-TAV-KITCHEN>
|
|
<SETG GL-PICTURE-NUM ,K-PIC-COOK>
|
|
)
|
|
(T
|
|
<SETG GL-PICTURE-NUM ,K-PIC-TAV-KITCHEN>
|
|
)
|
|
>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-PICT>
|
|
<RT-UPDATE-PICT-WINDOW>
|
|
)
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(<MC-CONTEXT? ,M-ENTERED>
|
|
<COND
|
|
(<IN? ,CH-COOK ,RM-TAV-KITCHEN>
|
|
<COND
|
|
(<IN? ,TH-BIRD ,TH-CAGE>
|
|
<TELL
|
|
"|The cook takes a backhanded swipe at the bird and mutters, \"Sharrup.\"" CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<MC-CONTEXT? ,M-END>
|
|
<COND
|
|
(<VERB? TRANSFORM>
|
|
<COND
|
|
(<IN? ,CH-COOK ,RM-TAV-KITCHEN>
|
|
<COND
|
|
(<NOT <MC-FORM? ,GL-OLD-FORM>>
|
|
<TELL
|
|
"|\"Sorcery!! Work of the Devil!!\" The cook picks up a knife and skewers
|
|
you through the heart." ,K-HEEDED-WARNING-MSG
|
|
>
|
|
<RT-END-OF-GAME>
|
|
)
|
|
(,GL-FORM-ABORT
|
|
<TELL
|
|
"|Fortunately, it all happened so quickly that" the ,CH-COOK " didn't notice." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<AND <MC-FORM? ,K-FORM-OWL>
|
|
<NOT <MC-FORM? ,GL-OLD-FORM>>
|
|
<NOT <FSET? ,TH-BIRD ,FL-LOCKED>>
|
|
>
|
|
<FSET ,TH-BIRD ,FL-LOCKED>
|
|
<TELL
|
|
"|The bird watches your transformation without surprise. Its chattering
|
|
suddenly becomes intelligible to you. \"Mon dieu, but you are slow! I know
|
|
you must 'ate zat man because of ze way ee cooks. In my country we would
|
|
'ave 'im killed. But ee 'as some spices 'idden away in ze cupboard, and ze
|
|
key to ze cupboard ees 'idden in ze thatch. "
|
|
>
|
|
<COND
|
|
(<IN? ,TH-BIRD ,TH-CAGE>
|
|
<TELL
|
|
"Queekly now, before ze sadist returns. Open ze cage and I weel get ze key
|
|
for you.\"" CR
|
|
>
|
|
)
|
|
(T
|
|
<TELL "Would you like me to get eet for you?\"|">
|
|
<COND
|
|
(<YES? T>
|
|
<MOVE ,TH-CUPBOARD-KEY ,RM-TAV-KITCHEN>
|
|
<TELL ,K-BIRD-GETS-KEY-MSG>
|
|
)
|
|
(T
|
|
<TELL
|
|
"\"No? Non? You do not want ze spices?\" He shakes his bird-like head. \"I
|
|
will never understand ze English. Au revoir, mon ami.\" " The ,TH-BIRD
|
|
>
|
|
)
|
|
>
|
|
<REMOVE ,TH-BIRD>
|
|
<MOVE ,TH-DROPPING ,TH-TAVERN-TABLE>
|
|
<TELL ,K-DROPPING-MSG>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-RESET-KITCHEN ()
|
|
<COND
|
|
(<IN? ,TH-BIRD ,RM-TAV-KITCHEN>
|
|
<MOVE ,TH-BIRD ,TH-CAGE>
|
|
)
|
|
(<NOT <LOC ,TH-BIRD>>
|
|
<FSET ,TH-BIRD ,FL-ASLEEP>
|
|
)
|
|
>
|
|
<COND
|
|
(<OR <IN? ,TH-SPICE-BOTTLE ,RM-TAV-KITCHEN>
|
|
<IN? ,TH-SPICE-BOTTLE ,TH-TAVERN-TABLE>
|
|
<IN? ,TH-SPICE-BOTTLE ,TH-CAGE>
|
|
>
|
|
<MOVE ,TH-SPICE-BOTTLE ,TH-CUPBOARD>
|
|
<FCLEAR ,TH-CUPBOARD ,FL-LOCKED>
|
|
)
|
|
>
|
|
<COND
|
|
(<OR <IN? ,TH-CUPBOARD-KEY ,RM-TAV-KITCHEN>
|
|
<IN? ,TH-CUPBOARD-KEY ,TH-TAVERN-TABLE>
|
|
<IN? ,TH-CUPBOARD-KEY ,TH-CAGE>
|
|
>
|
|
<MOVE ,TH-CUPBOARD-KEY ,TH-CUPBOARD>
|
|
<FCLEAR ,TH-CUPBOARD ,FL-LOCKED>
|
|
)
|
|
>
|
|
<FCLEAR ,TH-CAGE ,FL-OPEN>
|
|
<FCLEAR ,TH-CUPBOARD ,FL-OPEN>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "CH-COOK"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT CH-COOK
|
|
(LOC RM-TAV-KITCHEN)
|
|
(DESC "cook")
|
|
(FLAGS FL-ALIVE FL-NO-LIST FL-OPEN FL-PERSON FL-SEARCH)
|
|
(SYNONYM COOK RUFFIAN MAN PERSON)
|
|
(ADJECTIVE FAT NASTY LOOKING NASTY-LOOKING)
|
|
(ACTION RT-CH-COOK)
|
|
>
|
|
|
|
<CONSTANT K-COOK-IGNORES-MSG "The cook ignores you and continues about his business.|">
|
|
<CONSTANT K-NOT-NOW-MSG "\"Not now, boy. I'm busy.\"|">
|
|
<CONSTANT K-GET-OUT-MSG " \"Get out of here, you mangy">
|
|
<CONSTANT K-FAT-CHANCE-MSG "\"Fat chance.\"|">
|
|
<CONSTANT K-COOK-RESUMES-WORK-MSG " and resumes his work at the table.|">
|
|
<CONSTANT K-HANDS-OFF-MSG "The cook cuffs you on the head. \"Hands off.\"|">
|
|
<CONSTANT K-NO-SPICE-MSG
|
|
"The cook takes a sidelong glance at the cupboard and then says gruffly, \"I
|
|
don't use no spices. Too 'ard to come by.\"|">
|
|
|
|
<ROUTINE RT-CH-COOK ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(<AND <MC-CONTEXT? ,M-WINNER <>>
|
|
<VERB? HELLO GOODBYE THANK>
|
|
>
|
|
<TELL ,K-COOK-IGNORES-MSG>
|
|
<COND
|
|
(<VERB? THANK>
|
|
<COND
|
|
(<NOT <FSET? ,CH-PLAYER ,FL-AIR>>
|
|
<FSET ,CH-PLAYER ,FL-AIR>
|
|
<RT-SCORE-MSG 10 0 0 0>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
<RTRUE>
|
|
)
|
|
(<MC-CONTEXT? ,M-WINNER>
|
|
<COND
|
|
(<IN? ,CH-COOK ,RM-TAVERN>
|
|
<TELL ,K-NOT-NOW-MSG>
|
|
)
|
|
(<AND <VERB? TELL-ABOUT>
|
|
<MC-PRSO? ,CH-PLAYER>
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(<VERB? WHO WHAT>
|
|
<RFALSE>
|
|
)
|
|
(<VERB? WHERE>
|
|
<COND
|
|
(<MC-PRSO? ,TH-CUPBOARD-KEY>
|
|
<TELL "\"None o' yer business.\"" CR>
|
|
)
|
|
(<MC-PRSO? ,CH-FARMERS>
|
|
<TELL
|
|
"\"Sittin' out there with their noses in their ale. Same as always.\"" CR
|
|
>
|
|
)
|
|
(<MC-PRSO? ,TH-SPICE-BOTTLE ,TH-SPICE>
|
|
<TELL ,K-NO-SPICE-MSG>
|
|
)
|
|
(T
|
|
<TELL "\"Don't know nuthin' 'bout no ">
|
|
<NP-PRINT ,PRSO-NP>
|
|
<TELL ".\"" CR>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? OPEN>
|
|
<COND
|
|
(<MC-PRSO? ,TH-CUPBOARD ,TH-CAGE>
|
|
<TELL ,K-FAT-CHANCE-MSG>
|
|
)
|
|
(T
|
|
<TELL ,K-COOK-IGNORES-MSG>
|
|
)
|
|
>
|
|
)
|
|
(T
|
|
<TELL ,K-COOK-IGNORES-MSG>
|
|
)
|
|
>
|
|
)
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(,NOW-PRSI
|
|
<COND
|
|
(<VERB? SHOW GIVE>
|
|
<COND
|
|
(<MC-PRSO? ,TH-SPICE-BOTTLE ,TH-SPICE>
|
|
<MOVE ,TH-SPICE-BOTTLE ,TH-CUPBOARD>
|
|
<FCLEAR ,TH-CUPBOARD ,FL-OPEN>
|
|
<TELL
|
|
The ,CH-COOK " snatches the bottle away from you and says, \"'Ow did you get
|
|
that?\" He cuffs you on the side of the head"
|
|
>
|
|
<COND
|
|
(<MC-HERE? ,RM-TAV-KITCHEN>
|
|
<TELL
|
|
", replaces the bottle in the cupboard, and closes the door." CR
|
|
>
|
|
)
|
|
(T
|
|
<MOVE ,CH-COOK ,RM-TAV-KITCHEN>
|
|
<COND
|
|
(<IN? ,TH-CHEESE ,TH-TAVERN-TABLE>
|
|
<FSET ,TH-CHEESE ,FL-NO-LIST>
|
|
)
|
|
>
|
|
<FSET ,TH-TAVERN-TABLE ,FL-NO-LIST>
|
|
<FSET ,TH-CUPBOARD ,FL-NO-LIST>
|
|
<FSET ,TH-CAGE ,FL-NO-LIST>
|
|
<FSET ,TH-BIRD ,FL-NO-LIST>
|
|
; <FSET ,CH-COOK ,FL-NO-LIST>
|
|
<RT-DEQUEUE ,RT-I-COOK>
|
|
<RT-QUEUE ,RT-I-COOK <+ ,GL-MOVES <+ 4 <RANDOM 4>>>>
|
|
<TELL " and returns to the kitchen." CR>
|
|
)
|
|
>
|
|
)
|
|
(<MC-PRSO? ,TH-WHISKY ,TH-WHISKY-JUG>
|
|
<MOVE ,TH-WHISKY-JUG ,TH-CUPBOARD>
|
|
<FCLEAR ,TH-CUPBOARD ,FL-OPEN>
|
|
<TELL
|
|
The ,CH-COOK " snatches the jug away from you and says, \"A young lad like
|
|
you shouldn't be messin with the likes of that. \""
|
|
>
|
|
<COND
|
|
(<MC-HERE? ,RM-TAV-KITCHEN>
|
|
<TELL
|
|
"He puts the jug in the cupboard and closes the door." CR
|
|
>
|
|
)
|
|
(T
|
|
<MOVE ,CH-COOK ,RM-TAV-KITCHEN>
|
|
<COND
|
|
(<IN? ,TH-CHEESE ,TH-TAVERN-TABLE>
|
|
<FSET ,TH-CHEESE ,FL-NO-LIST>
|
|
)
|
|
>
|
|
<FSET ,TH-TAVERN-TABLE ,FL-NO-LIST>
|
|
<FSET ,TH-CUPBOARD ,FL-NO-LIST>
|
|
<FSET ,TH-CAGE ,FL-NO-LIST>
|
|
<FSET ,TH-BIRD ,FL-NO-LIST>
|
|
; <FSET ,CH-COOK ,FL-NO-LIST>
|
|
<RT-DEQUEUE ,RT-I-COOK>
|
|
<RT-QUEUE ,RT-I-COOK <+ ,GL-MOVES <+ 4 <RANDOM 4>>>>
|
|
<TELL "He glances at the jug and returns to the kitchen." CR>
|
|
)
|
|
>
|
|
<RT-SCORE-MSG 0 -1 0 0>
|
|
)
|
|
(<MC-PRSO? ,TH-CHEESE>
|
|
<REMOVE ,TH-CHEESE>
|
|
<TELL
|
|
"The cook snatches the cheese away from you and pops it into his mouth. \"Why
|
|
you little thief!\" he says. \"I should have you thrown in Lot's dungeon. But
|
|
instead I'll settle for this.\" He gives you a swift kick in the rear end." CR
|
|
>
|
|
<RT-SCORE-MSG 0 -1 0 0>
|
|
)
|
|
(<MC-PRSO? ,TH-BRACELET ,TH-GOLD-KEY ,TH-SILVER-KEY ,TH-RAVEN-EGG>
|
|
<TELL
|
|
"\"Where did the likes of you get the likes of that? I want no part of your
|
|
stolen loot.\"" CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<AND <VERB? TELL>
|
|
,P-CONT
|
|
>
|
|
; "Message and RFATAL if don't want knight to become winner"
|
|
<RFALSE>
|
|
)
|
|
(<VERB? ASK-FOR>
|
|
<TELL ,K-FAT-CHANCE-MSG>
|
|
)
|
|
(<VERB? ASK-ABOUT>
|
|
<COND
|
|
(<IN? ,CH-COOK ,RM-TAVERN>
|
|
<TELL ,K-NOT-NOW-MSG>
|
|
)
|
|
(<MC-PRSI? ,CH-FARMERS>
|
|
<TELL "\"Mangy bunch of lie-abouts.\"" CR>
|
|
)
|
|
(<MC-PRSI? ,TH-PASSWORD>
|
|
<TELL "\"How should I know? I don't read poetry.\"" CR>
|
|
)
|
|
(<MC-PRSI? ,CH-LOT ,TH-MASTER>
|
|
<TELL
|
|
"\"How would I know anything about Lot, him with his castles and passwords
|
|
and such?\"" CR
|
|
>
|
|
)
|
|
(<MC-PRSI? ,TH-BIRD>
|
|
<COND
|
|
(<IN? ,TH-BIRD ,TH-CAGE>
|
|
<TELL
|
|
"\"A proper nuisance, he is. But come Lot's coronation, his goose will be
|
|
cooked. Heh Heh.\"" CR
|
|
>
|
|
)
|
|
(T
|
|
<TELL
|
|
"The cook fixes you with a viscious stare and says, \"If I ever find out who
|
|
opened that cage, I'll throttle him with my own hands.\"" CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<MC-PRSI? ,TH-SPICE>
|
|
<TELL ,K-NO-SPICE-MSG>
|
|
)
|
|
(<MC-PRSI? ,TH-CUPBOARD-KEY>
|
|
<TELL "\"None o' yer business.\"" CR>
|
|
)
|
|
(<MC-PRSI? ,TH-CUPBOARD>
|
|
<TELL "\"Keep yer hands off. There's nothing in there.\"" CR>
|
|
)
|
|
(<MC-PRSI? ,RM-TAVERN ,RM-TAV-KITCHEN ,GLOBAL-HERE>
|
|
<TELL
|
|
The ,CH-COOK " shrugs his shoulders and mumbles, \"It's a livin'.\"" CR
|
|
>
|
|
)
|
|
(<MC-PRSI? ,TH-CHEESE>
|
|
<COND
|
|
(<IN? ,TH-CHEESE ,TH-TAVERN-TABLE>
|
|
<TELL "\"Keep yer hands off.\"" CR>
|
|
)
|
|
(T
|
|
<TELL
|
|
"\"Somebody nicked it, and I'd better not find out who it was\"" CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<MC-PRSI? ,CH-COOK>
|
|
<TELL
|
|
"\"I prepare plain food for plain people. Nothin' fancy about me.\"" CR
|
|
>
|
|
)
|
|
(<MC-PRSI? ,TH-BEER ,TH-TANKARDS>
|
|
<TELL "\"Come back when you're older.\"" CR>
|
|
)
|
|
(<MC-PRSI? ,CH-MERLIN>
|
|
<TELL
|
|
"\"Don't get too many wizards in here. They don't drink much, you know.\"" CR
|
|
>
|
|
)
|
|
(<MC-PRSI? ,CH-PLAYER>
|
|
<TELL
|
|
"\"You're nowt but a meddlesome lad. Go away before I box your ears.\"" CR
|
|
>
|
|
)
|
|
(<MC-PRSI? ,CH-IDIOT>
|
|
<TELL
|
|
"\"He's just here on holiday. Monday he goes back to his regular job at
|
|
the Post Office.\"" CR
|
|
>
|
|
)
|
|
(<MC-PRSI? ,TH-CAGE>
|
|
<TELL
|
|
"\"If you was just a little smaller, I'd pop you in there and keep you for a
|
|
pet. Har har.\"" CR
|
|
>
|
|
)
|
|
(<MC-PRSI? ,TH-EXCALIBUR>
|
|
<TELL
|
|
"\"Having it right across the way was good for business. I'm sorry to see it
|
|
gone.\"" CR
|
|
>
|
|
)
|
|
(T
|
|
<TELL "\"Don't know nuthin' 'bout no ">
|
|
<NP-PRINT ,PRSI-NP>
|
|
<TELL ".\"" CR>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? EXAMINE>
|
|
<FSET ,CH-COOK ,FL-SEEN>
|
|
<TELL "He is a fat, nasty-looking ruffian." CR>
|
|
)
|
|
(<AND <VERB? CALL>
|
|
<MC-HERE? ,RM-TAVERN ,RM-TAV-KITCHEN>
|
|
<NOT <IN? ,CH-COOK ,HERE>>
|
|
>
|
|
<TELL The+verb ,CH-COOK "stalk" " ">
|
|
<COND
|
|
(<MC-HERE? ,RM-TAVERN>
|
|
<TELL "out of">
|
|
)
|
|
(T
|
|
<TELL "into">
|
|
)
|
|
>
|
|
<TELL
|
|
" the kitchen. When he sees it is you who has disturbed him, he cuffs you on
|
|
the head and throws you out of the tavern.||"
|
|
>
|
|
<RT-RESET-TAVERN>
|
|
<RT-RESET-KITCHEN>
|
|
<RT-GOTO ,RM-TOWN-SQUARE T>
|
|
)
|
|
(<TOUCH-VERB?>
|
|
<TELL
|
|
The ,CH-COOK " cuffs you on the head and says, \"Quit your silly games, boy.
|
|
Else I'll thrash you proper.\"" CR
|
|
>
|
|
)
|
|
>
|
|
>
|
|
|
|
<GLOBAL GL-COOK-NUM:NUMBER 0 <> BYTE>
|
|
|
|
<ROUTINE RT-I-COOK ()
|
|
<COND
|
|
(<FSET? ,CH-PLAYER ,FL-ASLEEP>
|
|
<MOVE ,CH-COOK ,RM-TAV-KITCHEN>
|
|
<COND
|
|
(<IN? ,TH-CHEESE ,TH-TAVERN-TABLE>
|
|
<FSET ,TH-CHEESE ,FL-NO-LIST>
|
|
)
|
|
>
|
|
<FSET ,TH-TAVERN-TABLE ,FL-NO-LIST>
|
|
<FSET ,TH-CUPBOARD ,FL-NO-LIST>
|
|
<FSET ,TH-CAGE ,FL-NO-LIST>
|
|
<FSET ,TH-BIRD ,FL-NO-LIST>
|
|
; <FSET ,CH-COOK ,FL-NO-LIST>
|
|
<SETG GL-PICTURE-NUM ,K-PIC-COOK>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-PICT>
|
|
<RT-UPDATE-PICT-WINDOW>
|
|
)
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-DESC>
|
|
<RT-UPDATE-DESC-WINDOW>
|
|
)
|
|
>
|
|
<RT-RESET-KITCHEN>
|
|
<RT-QUEUE ,RT-I-COOK <+ <RT-IS-QUEUED? ,RT-I-SLEEP> <+ 3 <RANDOM 4>>>>
|
|
<RFALSE>
|
|
)
|
|
(<IN? ,CH-COOK ,RM-TAV-KITCHEN>
|
|
<SETG GL-COOK-NUM 0>
|
|
<MOVE ,CH-COOK ,RM-TAVERN>
|
|
<COND
|
|
(<IN? ,TH-CHEESE ,TH-TAVERN-TABLE>
|
|
<FCLEAR ,TH-CHEESE ,FL-NO-LIST>
|
|
)
|
|
>
|
|
<FCLEAR ,TH-TAVERN-TABLE ,FL-NO-LIST>
|
|
<FCLEAR ,TH-CUPBOARD ,FL-NO-LIST>
|
|
<FCLEAR ,TH-CAGE ,FL-NO-LIST>
|
|
<FCLEAR ,TH-BIRD ,FL-NO-LIST>
|
|
; <FCLEAR ,CH-COOK ,FL-NO-LIST>
|
|
<RT-QUEUE ,RT-I-COOK <+ ,GL-MOVES <+ 3 <RANDOM 4>>>>
|
|
<COND
|
|
(<MC-HERE? ,RM-TAVERN>
|
|
<TELL
|
|
"|One of the customers calls for more ale, and the cook comes out of the
|
|
kitchen." CR
|
|
>
|
|
)
|
|
(<MC-HERE? ,RM-TAV-KITCHEN>
|
|
<SETG GL-PICTURE-NUM ,K-PIC-TAV-KITCHEN>
|
|
<SETG GL-UPDATE-WINDOW <BOR ,GL-UPDATE-WINDOW ,K-UPD-DESC>>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-PICT>
|
|
<RT-UPDATE-PICT-WINDOW>
|
|
)
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-DESC>
|
|
<RT-UPDATE-DESC-WINDOW>
|
|
)
|
|
>
|
|
<TELL
|
|
"|The cook leaves the room in response to a shout from a thirsty customer." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<ZERO? ,GL-COOK-NUM>
|
|
<SETG GL-COOK-NUM 1>
|
|
<RT-QUEUE ,RT-I-COOK <+ ,GL-MOVES 1>>
|
|
<COND
|
|
(<MC-HERE? ,RM-TAV-KITCHEN>
|
|
<TELL
|
|
"|You hear a step outside the door. The cook is returning." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(T
|
|
<SETG GL-COOK-NUM 0>
|
|
<MOVE ,CH-COOK ,RM-TAV-KITCHEN>
|
|
<COND
|
|
(<IN? ,TH-CHEESE ,TH-TAVERN-TABLE>
|
|
<FSET ,TH-CHEESE ,FL-NO-LIST>
|
|
)
|
|
>
|
|
<FSET ,TH-TAVERN-TABLE ,FL-NO-LIST>
|
|
<FSET ,TH-CUPBOARD ,FL-NO-LIST>
|
|
<FSET ,TH-CAGE ,FL-NO-LIST>
|
|
<FSET ,TH-BIRD ,FL-NO-LIST>
|
|
; <FSET ,CH-COOK ,FL-NO-LIST>
|
|
<RT-QUEUE ,RT-I-COOK <+ ,GL-MOVES 4 <RANDOM 4>>>
|
|
<COND
|
|
(<MC-HERE? ,RM-TAVERN>
|
|
<TELL "|The cook disappears into the kitchen." CR>
|
|
)
|
|
(<MC-HERE? ,RM-TAV-KITCHEN>
|
|
<SETG GL-PICTURE-NUM ,K-PIC-COOK>
|
|
<SETG GL-UPDATE-WINDOW <BOR ,GL-UPDATE-WINDOW ,K-UPD-DESC>>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-PICT>
|
|
<RT-UPDATE-PICT-WINDOW>
|
|
)
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-DESC>
|
|
<RT-UPDATE-DESC-WINDOW>
|
|
)
|
|
>
|
|
<TELL "|The cook comes into the kitchen">
|
|
<COND
|
|
(<MC-FORM? ,K-FORM-ARTHUR>
|
|
<COND
|
|
(<IN? ,TH-BIRD ,RM-TAV-KITCHEN>
|
|
<TELL
|
|
" and sees that the bird has escaped. He chases it around the room for
|
|
several minutes before finally catching it. He stuffs it back into the cage,
|
|
gives you a suspicious glance," ,K-COOK-RESUMES-WORK-MSG
|
|
>
|
|
)
|
|
(<OR <FSET? ,TH-CUPBOARD ,FL-OPEN>
|
|
<AND
|
|
<NOT <LOC ,TH-BIRD>>
|
|
<NOT <FSET? ,TH-BIRD ,FL-ASLEEP>>
|
|
>
|
|
>
|
|
<TELL " and sees that">
|
|
<COND
|
|
(<FSET? ,TH-CUPBOARD ,FL-OPEN>
|
|
<TELL the ,TH-CUPBOARD " is open">
|
|
)
|
|
>
|
|
<COND
|
|
(<NOT <LOC ,TH-BIRD>>
|
|
<FSET ,TH-BIRD ,FL-ASLEEP>
|
|
<COND
|
|
(<FSET? ,TH-CUPBOARD ,FL-OPEN>
|
|
<TELL " and">
|
|
)
|
|
>
|
|
<TELL the ,TH-BIRD " is gone">
|
|
)
|
|
>
|
|
<TELL
|
|
", he cuffs you on the side of the head and boots you out the door, saying,"
|
|
,K-GET-OUT-MSG " brat.\"||"
|
|
>
|
|
<RT-GOTO ,RM-TAVERN T>
|
|
)
|
|
(T
|
|
<COND
|
|
(<IN? ,TH-BIRD ,TH-CAGE>
|
|
<TELL
|
|
", takes a backhanded swipe at the bird, mutters, \"Sharrup.\""
|
|
>
|
|
)
|
|
>
|
|
<TELL ,K-COOK-RESUMES-WORK-MSG>
|
|
)
|
|
>
|
|
)
|
|
(T
|
|
<COND
|
|
(<MC-FORM? ,K-FORM-TURTLE>
|
|
<TELL
|
|
", sees you on the floor, and picks you up. He carries you out of the tavern
|
|
and drops you in the town square."
|
|
>
|
|
)
|
|
(T
|
|
<TELL
|
|
". He sees you and says" ,K-GET-OUT-MSG form ".\" He shoos you out into the
|
|
tavern, and the farmers shoo you out into the town square."
|
|
>
|
|
)
|
|
>
|
|
<CRLF>
|
|
<CRLF>
|
|
<RT-RESET-TAVERN>
|
|
<RT-GOTO ,RM-TOWN-SQUARE T>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
<RT-RESET-KITCHEN>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-CAGE"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-CAGE
|
|
(LOC RM-TAV-KITCHEN)
|
|
(DESC "cage")
|
|
(FLAGS FL-CONTAINER FL-NO-LIST FL-OPENABLE FL-SEARCH FL-TRANSPARENT)
|
|
(SYNONYM CAGE BIRDCAGE)
|
|
(ADJECTIVE BIRD)
|
|
(CAPACITY 20)
|
|
(ACTION RT-TH-CAGE)
|
|
>
|
|
|
|
<ROUTINE RT-TH-CAGE ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<AND <TOUCH-VERB?>
|
|
<IN? ,CH-COOK ,RM-TAV-KITCHEN>
|
|
>
|
|
<TELL ,K-HANDS-OFF-MSG>
|
|
)
|
|
(<AND <TOUCH-VERB?>
|
|
<NOT <MC-FORM? ,K-FORM-ARTHUR>>
|
|
>
|
|
<COND
|
|
(<MC-FORM? ,K-FORM-OWL>
|
|
<TELL
|
|
"You flutter around the cage for a few moments, but don't make any progess." CR
|
|
>
|
|
)
|
|
(<MC-FORM? ,K-FORM-SALAMANDER>
|
|
<TELL
|
|
"You try to scope out a route that will take you up the wall, across the
|
|
roof, and down towards the cage - but it looks like such a long journey
|
|
that you decide to stay where you are." CR
|
|
>
|
|
)
|
|
(T
|
|
<RT-CANT-REACH-MSG ,TH-CAGE>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? OPEN>
|
|
<COND
|
|
(<FSET? ,TH-CAGE ,FL-OPEN>
|
|
<RT-ALREADY-MSG ,TH-CAGE "open">
|
|
)
|
|
(<NOT <IN? ,TH-BIRD ,TH-CAGE>>
|
|
<RFALSE>
|
|
)
|
|
(T
|
|
<RT-FREE-BIRD-MSG>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? ENTER>
|
|
<COND
|
|
(<NOT <MC-FORM? ,K-FORM-SALAMANDER>> ;<RT-OBJ-TOO-LARGE? ,WINNER ,TH-CAGE>
|
|
<TELL The+verb ,WINNER "are" " too big to fit in" the ,TH-CAGE "." CR>
|
|
)
|
|
>
|
|
)
|
|
(<AND <VERB? LISTEN>
|
|
<NOT <FSET? ,TH-BIRD ,FL-LOCKED>>
|
|
>
|
|
<THIS-IS-IT ,TH-BIRD>
|
|
<TELL ,K-BIRD-SOUNDS-MSG>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-BIRD"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-BIRD
|
|
(LOC TH-CAGE)
|
|
(DESC "bird")
|
|
(FLAGS FL-ALIVE FL-NO-LIST)
|
|
(SYNONYM BIRD)
|
|
(SIZE 5)
|
|
(GENERIC RT-GN-BIRD)
|
|
(ACTION RT-TH-BIRD)
|
|
>
|
|
|
|
; "TH-BIRD Flags:"
|
|
; " FL-BROKEN - Player has gotten points for releasing bird."
|
|
; " FL-LOCKED - Player has understood bird by becoming an owl."
|
|
; " FL-ASLEEP - Cook has seen that the bird is gone."
|
|
|
|
<CONSTANT K-BIRD-CHATTERS-MSG
|
|
"The bird chatters an answer back to you and then looks frustrated that you
|
|
don't understand.|">
|
|
<CONSTANT K-BIRD-GETS-KEY-MSG
|
|
"The bird flies up and disappears into the thatch of the roof. Moments
|
|
later, a key falls to the floor. The bird pokes his head out of the thatch,">
|
|
<CONSTANT K-DROPPING-MSG
|
|
" leaves a small present on the table for the cook, and then flies out the
|
|
door.|">
|
|
<CONSTANT K-LET-OUT-MSG
|
|
"\"Sacre bleu! Ze time she ees flying, and I am not. Open ze cage and let me
|
|
out of 'ere.\"|">
|
|
<CONSTANT K-BIRD-SOUNDS-MSG
|
|
"It sounds as if the bird is trying to tell you something.|">
|
|
|
|
<ROUTINE RT-TH-BIRD ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(<AND <VERB? HELLO GOODBYE THANK>
|
|
<MC-CONTEXT? ,M-WINNER <>>
|
|
>
|
|
<COND
|
|
(<MC-FORM? ,K-FORM-OWL>
|
|
<COND
|
|
(<VERB? HELLO>
|
|
<TELL "\"'Allo.\"" CR>
|
|
)
|
|
(<VERB? GOODBYE>
|
|
<TELL
|
|
"\"Mon Dieu! You can not leeve me 'ere. Zis man intends to COOK me. And with
|
|
no spices!!! You cannot be so cruel.\"" CR
|
|
>
|
|
)
|
|
(<VERB? THANK>
|
|
<TELL "\"Mais non. It is I who will be thanking you.\"|">
|
|
<COND
|
|
(<NOT <FSET? ,CH-PLAYER ,FL-AIR>>
|
|
<FSET ,CH-PLAYER ,FL-AIR>
|
|
<RT-SCORE-MSG 10 0 0 0>
|
|
)
|
|
>
|
|
<RTRUE>
|
|
)
|
|
>
|
|
)
|
|
(T
|
|
<TELL ,K-BIRD-CHATTERS-MSG>
|
|
)
|
|
>
|
|
)
|
|
(<MC-CONTEXT? ,M-WINNER>
|
|
<COND
|
|
(<MC-FORM? ,K-FORM-OWL>
|
|
<COND
|
|
(<AND <VERB? TELL-ABOUT>
|
|
<MC-PRSO? ,CH-PLAYER>
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(<VERB? WHO WHAT>
|
|
<RFALSE>
|
|
)
|
|
(<VERB? WHERE>
|
|
<COND
|
|
(<MC-PRSO? ,TH-CUPBOARD-KEY>
|
|
<TELL
|
|
"\"I 'ave already told you thees. Ze key is in ze thatch.\"" CR
|
|
>
|
|
)
|
|
(<MC-PRSO? ,TH-SPICE ,TH-SPICE-BOTTLE>
|
|
<TELL
|
|
"\"Ze spices, zey are 'idden away in ze cupboard.\"" CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(T
|
|
<TELL ,K-LET-OUT-MSG>
|
|
)
|
|
>
|
|
)
|
|
(T
|
|
<TELL ,K-BIRD-CHATTERS-MSG>
|
|
)
|
|
>
|
|
)
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(,NOW-PRSI
|
|
<RFALSE>
|
|
)
|
|
(<AND <VERB? TELL>
|
|
,P-CONT
|
|
>
|
|
; "Message and RFATAL if don't want bird to become winner"
|
|
<RFALSE>
|
|
)
|
|
(<VERB? ASK-ABOUT>
|
|
<COND
|
|
(<MC-FORM? ,K-FORM-OWL>
|
|
<COND
|
|
(<MC-PRSI? ,TH-BIRD>
|
|
<TELL
|
|
"\"I 'ave just flown in from ze coast, and mon dieu are my arms tired.\"" CR
|
|
>
|
|
)
|
|
(<MC-PRSI? ,TH-CUPBOARD-KEY>
|
|
<TELL
|
|
"\"I 'ave already told you thees. Ze key is in ze thatch.\"" CR
|
|
>
|
|
)
|
|
(<MC-PRSI? ,CH-COOK>
|
|
<TELL
|
|
"\"Ee ees a barbarian. 'Ow do I know thees? Ee overcooks ze food and ee 'as
|
|
no knowledge of ze sauces. But I suppose eet ees not 'is fault - Ee ees
|
|
English.\"" CR
|
|
>
|
|
)
|
|
(<MC-PRSI? ,TH-SPICE-BOTTLE ,TH-SPICE>
|
|
<TELL
|
|
"\"In thees country, ze spice is rare. Eet ees why I only come 'ere on
|
|
'olidays.\"" CR
|
|
>
|
|
)
|
|
(<MC-PRSI? ,CH-MERLIN>
|
|
<TELL
|
|
"\"Eef 'ee ees such a great weezard, why does 'ee not make 'eemself ze
|
|
gourmet dejeuner, instead of all ze time eating ze nuts and berries?\"" CR
|
|
>
|
|
)
|
|
(<MC-PRSI? ,CH-LOT>
|
|
<TELL
|
|
"\"Bah! I weel not speak of 'eem. 'Ee drinks red wine with ze feesh and white
|
|
wine with ze meats. Surely when 'ee dies 'ee weel go to hell.\"" CR
|
|
>
|
|
)
|
|
(T
|
|
<TELL ,K-LET-OUT-MSG>
|
|
)
|
|
>
|
|
)
|
|
(T
|
|
<TELL ,K-BIRD-CHATTERS-MSG>
|
|
)
|
|
>
|
|
)
|
|
(<AND <TOUCH-VERB?>
|
|
<IN? ,CH-COOK ,RM-TAV-KITCHEN>
|
|
>
|
|
<TELL ,K-HANDS-OFF-MSG>
|
|
)
|
|
(<AND <TOUCH-VERB?>
|
|
<NOT <MC-FORM? ,K-FORM-ARTHUR>>
|
|
>
|
|
<RT-CANT-REACH-MSG ,TH-CAGE>
|
|
)
|
|
(<VERB? EXAMINE>
|
|
<FSET ,TH-BIRD ,FL-SEEN>
|
|
<COND
|
|
(<FSET? ,TH-BIRD ,FL-LOCKED>
|
|
<TELL
|
|
The ,TH-BIRD " is looking at you quizzically, waiting for you to make up
|
|
your mind." CR
|
|
>
|
|
)
|
|
(<IN? ,TH-BIRD ,TH-CAGE>
|
|
<TELL
|
|
The ,TH-BIRD " is hopping up and down in the cage, chattering at you." CR
|
|
>
|
|
)
|
|
(T
|
|
<TELL
|
|
The ,TH-BIRD " is flying around and chattering at you as if it is trying to
|
|
tell you something." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<AND <VERB? LISTEN>
|
|
<NOT <FSET? ,TH-BIRD ,FL-LOCKED>>
|
|
>
|
|
<TELL ,K-BIRD-SOUNDS-MSG>
|
|
)
|
|
(<AND <SPEAKING-VERB?>
|
|
<MC-HERE? ,RM-TAV-KITCHEN>
|
|
>
|
|
<COND
|
|
(<MC-FORM? ,K-FORM-OWL>
|
|
<TELL ,K-LET-OUT-MSG>
|
|
)
|
|
(T
|
|
<TELL ,K-BIRD-CHATTERS-MSG>
|
|
)
|
|
>
|
|
)
|
|
(<AND <VERB? TAKE>
|
|
<NOT <IN? ,TH-BIRD ,TH-CAGE>>
|
|
>
|
|
<TELL The ,TH-BIRD " flutters just out of your reach." CR>
|
|
)
|
|
(<AND <VERB? RELEASE>
|
|
<IN? ,TH-BIRD ,TH-CAGE>
|
|
>
|
|
<RT-FREE-BIRD-MSG>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-FREE-BIRD-MSG ()
|
|
<FSET ,TH-CAGE ,FL-OPEN>
|
|
<COND
|
|
(<FSET? ,TH-BIRD ,FL-LOCKED>
|
|
<REMOVE ,TH-BIRD>
|
|
<MOVE ,TH-CUPBOARD-KEY ,RM-TAV-KITCHEN>
|
|
<MOVE ,TH-DROPPING ,TH-TAVERN-TABLE>
|
|
<TELL ,K-BIRD-GETS-KEY-MSG ,K-DROPPING-MSG>
|
|
)
|
|
(T
|
|
<MOVE ,TH-BIRD ,RM-TAV-KITCHEN>
|
|
<TELL
|
|
The ,TH-BIRD " comes out and flies around and around the room, pecking at
|
|
your head and chattering as if it is trying to tell you something." CR
|
|
>
|
|
)
|
|
>
|
|
<COND
|
|
(<NOT <FSET? ,TH-BIRD ,FL-BROKEN>>
|
|
<FSET ,TH-BIRD ,FL-BROKEN>
|
|
<RT-SCORE-MSG 10 0 0 0>
|
|
)
|
|
>
|
|
<SETG GL-UPDATE-WINDOW <BOR ,GL-UPDATE-WINDOW ,K-UPD-DESC>>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-DESC>
|
|
<RT-UPDATE-DESC-WINDOW>
|
|
)
|
|
>
|
|
<RTRUE>
|
|
>
|
|
|
|
<ROUTINE RT-GN-BIRD (TBL FINDER)
|
|
<RETURN ,TH-BIRD>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-CUPBOARD"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-CUPBOARD
|
|
(LOC RM-TAV-KITCHEN)
|
|
(DESC "cupboard")
|
|
(FLAGS FL-CONTAINER FL-LOCKED FL-NO-LIST FL-OPENABLE FL-SEARCH)
|
|
(SYNONYM CUPBOARD CABINET DOOR)
|
|
(ADJECTIVE KITCHEN)
|
|
(CAPACITY 20)
|
|
(ACTION RT-TH-CUPBOARD)
|
|
>
|
|
|
|
<ROUTINE RT-TH-CUPBOARD ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<AND <TOUCH-VERB?>
|
|
<IN? ,CH-COOK ,RM-TAV-KITCHEN>
|
|
>
|
|
<TELL ,K-HANDS-OFF-MSG>
|
|
)
|
|
(<VERB? EXAMINE>
|
|
<FSET ,TH-CUPBOARD ,FL-SEEN>
|
|
<TELL "It's an old wooden cupboard that's" open ,TH-CUPBOARD "." CR>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-CUPBOARD-KEY"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-CUPBOARD-KEY
|
|
(DESC "wooden key")
|
|
(FLAGS FL-BURNABLE FL-KEY FL-TAKEABLE)
|
|
(SYNONYM KEY)
|
|
(ADJECTIVE CUPBOARD WOODEN WOOD)
|
|
(SCORE <LSH 1 ,K-QUEST-SHIFT>)
|
|
(SIZE 1)
|
|
(GENERIC RT-GN-KEY)
|
|
(ACTION RT-TH-CUPBOARD-KEY)
|
|
>
|
|
|
|
<ROUTINE RT-TH-CUPBOARD-KEY ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<AND <VERB? UNLOCK>
|
|
<MC-PRSO? ,TH-CUPBOARD>
|
|
>
|
|
<COND
|
|
(<NOT <FSET? ,TH-CUPBOARD ,FL-LOCKED>>
|
|
<TELL "The cupboard isn't locked." CR>
|
|
)
|
|
(T
|
|
<FCLEAR ,TH-CUPBOARD ,FL-LOCKED>
|
|
<TELL
|
|
The+verb ,WINNER "unlock" the ,TH-CUPBOARD " with" the ,TH-CUPBOARD-KEY "." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-SPICE-BOTTLE"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-SPICE-BOTTLE
|
|
(LOC TH-CUPBOARD)
|
|
(DESC "bottle")
|
|
(FLAGS FL-CONTAINER FL-OPEN FL-SEARCH FL-TAKEABLE)
|
|
(SYNONYM BOTTLE LABEL SPICE)
|
|
(ADJECTIVE SPICE)
|
|
(OWNER TH-SPICE-BOTTLE)
|
|
(SCORE <LSH 1 ,K-QUEST-SHIFT>)
|
|
(SIZE 5 CAPACITY 1)
|
|
(GENERIC RT-GN-SPICE)
|
|
(ACTION RT-TH-SPICE-BOTTLE)
|
|
>
|
|
|
|
<ROUTINE RT-TH-SPICE-BOTTLE ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<AND <NOUN-USED? ,TH-SPICE-BOTTLE ,W?SPICE>
|
|
<NOT <IN? ,TH-SPICE ,TH-SPICE-BOTTLE>>
|
|
<NOT <EVERYWHERE-VERB? <COND (,NOW-PRSI 2) (T 1)>>>
|
|
>
|
|
<NP-CANT-SEE>
|
|
)
|
|
(,NOW-PRSI
|
|
<COND
|
|
(<VERB? PUT-IN EMPTY>
|
|
<TELL "The neck is too narrow." CR>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? DRINK-FROM>
|
|
<COND
|
|
(<IN? ,TH-WATER ,TH-SPICE-BOTTLE>
|
|
<PERFORM ,V?DRINK ,TH-WATER>
|
|
<RTRUE>
|
|
)
|
|
(T
|
|
<TELL "There is nothing to drink in" the ,TH-SPICE-BOTTLE "." CR>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? EXAMINE LOOK-ON READ>
|
|
<FSET ,TH-SPICE-BOTTLE ,FL-SEEN>
|
|
<TELL "The label on the bottle says \"Oriental Spices.\"" CR>
|
|
)
|
|
(<VERB? FILL>
|
|
<COND
|
|
(<AND <MC-PRSI? ,TH-BARREL>
|
|
<NOT <IN? ,TH-BARREL-WATER ,TH-BARREL>>
|
|
>
|
|
<TELL "There isn't any " D ,TH-WATER " in" the ,TH-BARREL "." CR>
|
|
)
|
|
(<MC-PRSI? ,LG-LAKE ,RM-SHALLOWS ,LG-RIVER ,RM-FORD ,TH-BARREL-WATER ,TH-BARREL ,TH-WATER>
|
|
<COND
|
|
(<OR <IN? ,TH-SPICE ,TH-SPICE-BOTTLE>
|
|
<IN? ,TH-WATER ,TH-SPICE-BOTTLE>
|
|
>
|
|
<TELL
|
|
The ,TH-SPICE-BOTTLE " is already filled with " D <FIRST? ,TH-SPICE-BOTTLE> "." CR
|
|
>
|
|
)
|
|
(T
|
|
<MOVE ,TH-WATER ,TH-SPICE-BOTTLE>
|
|
<TELL
|
|
The+verb ,WINNER "fill" the ,TH-SPICE-BOTTLE " with " D ,TH-WATER "." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? EMPTY>
|
|
<COND
|
|
(<IN? ,TH-SPICE ,TH-SPICE-BOTTLE>
|
|
<REMOVE ,TH-SPICE>
|
|
<TELL
|
|
The+verb ,WINNER "pour" " the spice out of the bottle, but it scatters in the
|
|
breeze before it reaches"
|
|
>
|
|
<COND
|
|
(<MC-PRSI? <> ,ROOMS ,GLOBAL-HERE>
|
|
<TELL the ,TH-GROUND>
|
|
)
|
|
(T
|
|
<TELL the ,PRSI>
|
|
)
|
|
>
|
|
<TELL "." CR>
|
|
<RT-SCORE-MSG 0 -1 0 0>
|
|
)
|
|
(<IN? ,TH-WATER ,TH-SPICE-BOTTLE>
|
|
<REMOVE ,TH-WATER>
|
|
<TELL
|
|
The+verb ,WINNER "pour" the ,TH-WATER " out of" the ,TH-SPICE-BOTTLE "."
|
|
>
|
|
<COND
|
|
(<FSET? ,HERE ,FL-WATER>
|
|
<TELL " It disappears into the water.">
|
|
)
|
|
(T
|
|
<TELL ,K-EVAPORATES-MSG>
|
|
)
|
|
>
|
|
<CRLF>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? OPEN>
|
|
<RT-ALREADY-MSG ,TH-SPICE-BOTTLE "open">
|
|
)
|
|
(<VERB? BREAK>
|
|
<REMOVE ,TH-SPICE-BOTTLE>
|
|
<TELL "You smash" the ,TH-SPICE-BOTTLE ", and it shatters into a thousand pieces." CR>
|
|
<RT-SCORE-MSG 0 -3 0 0>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-GN-SPICE (TBL FINDER)
|
|
<COND
|
|
(<EQUAL? <PARSE-ACTION ,PARSE-RESULT> ,V?DROP>
|
|
<RETURN ,TH-SPICE-BOTTLE>
|
|
)
|
|
(T
|
|
<RETURN ,TH-SPICE>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-SPICE"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-SPICE
|
|
(LOC TH-SPICE-BOTTLE)
|
|
(DESC "spice")
|
|
(FLAGS FL-COLLECTIVE FL-PLURAL FL-TRY-TAKE)
|
|
(SYNONYM SPICE SPICES CINNAMON)
|
|
(ADJECTIVE BROWN)
|
|
(SIZE 1)
|
|
(GENERIC RT-GN-SPICE)
|
|
(ACTION RT-TH-SPICE)
|
|
>
|
|
|
|
<ROUTINE RT-TH-SPICE ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<VERB? EAT>
|
|
<TELL
|
|
"Carefully," the+verb ,WINNER "taste" " a little of the spice. It tastes
|
|
like cinnamon." CR
|
|
>
|
|
)
|
|
(<VERB? TAKE>
|
|
<REMOVE ,TH-SPICE>
|
|
<TELL
|
|
The+verb ,WINNER "pour" " the spice out of the bottle and it scatters on"
|
|
the ,TH-GROUND "." CR
|
|
>
|
|
)
|
|
(<VERB? EXAMINE>
|
|
<TELL
|
|
"The spice is light brown in colour, and it is very fine-grained." CR
|
|
>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-TAVERN-TABLE"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-TAVERN-TABLE
|
|
(LOC RM-TAV-KITCHEN)
|
|
(DESC "table")
|
|
(FLAGS FL-NO-LIST FL-SEARCH FL-SURFACE)
|
|
(SYNONYM TABLE)
|
|
(CAPACITY 50)
|
|
(ACTION RT-TH-TAVERN-TABLE)
|
|
>
|
|
|
|
<ROUTINE RT-TH-TAVERN-TABLE ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<VERB? CLIMB-UP CLIMB-ON CLIMB-OVER>
|
|
<TELL "It's not polite to " vw " on tables." CR>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-DROPPING"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-DROPPING
|
|
(DESC "bird dropping")
|
|
(FLAGS FL-TRY-TAKE)
|
|
(SYNONYM DROPPING PRESENT)
|
|
(ADJECTIVE BIRD)
|
|
(ACTION RT-TH-DROPPING)
|
|
>
|
|
|
|
<ROUTINE RT-TH-DROPPING ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<TOUCH-VERB?>
|
|
<RT-AUTHOR-MSG "Oooooh, gross!">
|
|
)
|
|
>
|
|
>
|
|
|
|
;"***************************************************************************"
|
|
; "end of file"
|
|
;"***************************************************************************"
|
|
|