mirror of
https://github.com/historicalsource/arthur
synced 2024-04-27 06:39:35 +03:00
2239 lines
48 KiB
Plaintext
2239 lines
48 KiB
Plaintext
;"***************************************************************************"
|
|
; "game : Arthur"
|
|
; "file : PASSWORD.ZIL"
|
|
; "auth : $Author: RAB $"
|
|
; "date : $Date: 15 May 1989 18:10:28 $"
|
|
; "revs : $Revision: 1.112 $"
|
|
; "vers : 1.0"
|
|
;"---------------------------------------------------------------------------"
|
|
; "Password"
|
|
; "Copyright (C) 1989 Infocom, Inc. All rights reserved."
|
|
;"***************************************************************************"
|
|
|
|
<INCLUDE "PDEFS">
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "RM-CASTLE-GATE"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<ROOM RM-CASTLE-GATE
|
|
(LOC ROOMS)
|
|
(DESC "outside castle gate")
|
|
(FLAGS FL-LIGHTED)
|
|
(EAST PER RT-ENTER-GATE)
|
|
(IN PER RT-ENTER-GATE)
|
|
(WEST TO RM-TOWN-SQUARE)
|
|
(SOUTH TO RM-SMITHY)
|
|
(UP PER RT-FLY-UP)
|
|
(GLOBAL LG-CASTLE-GATE LG-WALL LG-CASTLE RM-SMITHY RM-TOWN-SQUARE)
|
|
(ACTION RT-RM-CASTLE-GATE)
|
|
>
|
|
|
|
<CONSTANT K-MERLIN-PRISONER-MSG
|
|
"Merlin appears to you and says, \"You have failed, Arthur. By leaving the
|
|
prisoner within the castle, you have ensured the doom of an innocent man. No
|
|
man who would be King can allow an innocent subject to die.\"">
|
|
|
|
<ROUTINE RT-RM-CASTLE-GATE ("OPT" (CONTEXT <>) "AUX" PW)
|
|
<COND
|
|
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
|
|
<FSET ,LG-CASTLE-GATE ,FL-SEEN>
|
|
<TELL "You">
|
|
<COND
|
|
(<MC-CONTEXT? ,M-LOOK>
|
|
<TELL " are" standing " outside">
|
|
)
|
|
(<EQUAL? ,OHERE ,RM-PARADE-AREA>
|
|
<COND
|
|
(<NOT <MC-FORM? ,K-FORM-ARTHUR>>
|
|
<COND
|
|
(<MC-FORM? ,K-FORM-OWL>
|
|
<TELL " fly over">
|
|
)
|
|
(T
|
|
<TELL " crawl under">
|
|
)
|
|
>
|
|
)
|
|
(T
|
|
<TELL walk " outside">
|
|
)
|
|
>
|
|
)
|
|
(T
|
|
<TELL " come to">
|
|
)
|
|
>
|
|
<TELL
|
|
" the gate to the castle of evil King Lot. " A+verb ,CH-SOLDIERS "are"
|
|
" standing guard"
|
|
>
|
|
<COND
|
|
(<NOT <MC-FORM? ,K-FORM-ARTHUR>>
|
|
<TELL
|
|
", but" he+verb ,CH-SOLDIERS "pay" " no attention to you"
|
|
>
|
|
)
|
|
>
|
|
<FSET ,RM-SMITHY ,FL-SEEN>
|
|
<TELL ". To the south is the village smithy.|">
|
|
<RFALSE>
|
|
)
|
|
(<MC-CONTEXT? ,M-BEG>
|
|
<COND
|
|
(<AND <MC-FORM? ,K-FORM-ARTHUR>
|
|
<OR
|
|
<VERB? $PASSWORD>
|
|
<AND
|
|
<VERB? BE>
|
|
<MC-PRSO? ,TH-PASSWORD>
|
|
>
|
|
<AND
|
|
<VERB? SAY>
|
|
<MC-PRSI? <> ,CH-SOLDIERS>
|
|
>
|
|
>
|
|
>
|
|
<COND
|
|
(<VERB? BE>
|
|
<SET PW ,PRSI>
|
|
)
|
|
(T
|
|
<SET PW ,PRSO>
|
|
)
|
|
>
|
|
<COND
|
|
(<IN? ,TH-GAUNTLET ,WINNER>
|
|
<TELL
|
|
"The guard sees" the ,TH-GAUNTLET " and says, \"Enter.\" He opens the massive
|
|
gate and steps aside as you" walk " through.||"
|
|
>
|
|
<SETG WINNER ,CH-PLAYER>
|
|
<RT-GOTO ,RM-PARADE-AREA T>
|
|
)
|
|
(<OR <VERB? $PASSWORD>
|
|
<RT-CORRECT-PASSWORD? .PW>
|
|
>
|
|
<FSET ,CH-SOLDIERS ,FL-LOCKED>
|
|
<TELL
|
|
"\"Enter,\" says the soldier, although he is clearly unhappy to let you in.
|
|
He opens the massive gate and steps aside as you" walk " through.||"
|
|
>
|
|
<SETG WINNER ,CH-PLAYER>
|
|
<RT-GOTO ,RM-PARADE-AREA T>
|
|
)
|
|
(T
|
|
<RT-SOLDIER-SUSPECT .PW>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<MC-CONTEXT? ,M-ENTER>
|
|
<SETG GL-PICTURE-NUM ,K-PIC-CASTLE-GATE>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-PICT>
|
|
<RT-UPDATE-PICT-WINDOW>
|
|
)
|
|
>
|
|
<MOVE ,CH-SOLDIERS ,RM-CASTLE-GATE>
|
|
<MOVE ,TH-POLLAXE ,CH-SOLDIERS>
|
|
<FCLEAR ,CH-SOLDIERS ,FL-PLURAL>
|
|
<FSET ,CH-SOLDIERS ,FL-NO-DESC>
|
|
<RFALSE>
|
|
)
|
|
(<MC-CONTEXT? ,M-ENTERED>
|
|
<COND
|
|
(<EQUAL? ,OHERE ,RM-PARADE-AREA>
|
|
<COND
|
|
(<EQUAL? ,GL-PUPPY ,CH-PRISONER>
|
|
<RT-CLEAR-PUPPY>
|
|
<REMOVE ,CH-PRISONER>
|
|
<FCLEAR ,TH-SWORD ,FL-LOCKED>
|
|
<TELL
|
|
CR "The smith pulls you out of earshot of the guard and whispers, \"I am
|
|
grateful to you for freeing me, kind sir. I dare no longer stay in this
|
|
town for fear of being recaptured by King Lot. But as thanks for freeing
|
|
me, I will tell you where I have hidden another sword. It is plain, unlike
|
|
Lot's sword. But it is of the best quality. It is hidden under the roots
|
|
of the oak tree in the village green. Goodbye, sir. And thank you
|
|
again.\"" CR CR
|
|
|
|
"The smith walks off toward the town gate and quickly disappears from sight." CR
|
|
>
|
|
<RT-SCORE-MSG 10 2 3 4>
|
|
)
|
|
(<AND <FSET? ,CH-CELL-GUARD ,FL-ASLEEP>
|
|
<FSET? ,TH-SWORD ,FL-LOCKED>
|
|
>
|
|
<MOVE ,CH-MERLIN ,HERE>
|
|
<TELL CR ,K-MERLIN-PRISONER-MSG CR>
|
|
<RT-END-OF-GAME>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<MC-CONTEXT? ,M-EXIT>
|
|
<FCLEAR ,CH-SOLDIERS ,FL-LOCKED>
|
|
<SETG GL-SOLDIER-CNT 0>
|
|
<RFALSE>
|
|
)
|
|
(<MC-CONTEXT? ,M-END>
|
|
<COND
|
|
(<VERB? TRANSFORM>
|
|
<COND
|
|
(<NOT <MC-FORM? ,GL-OLD-FORM>>
|
|
<TELL
|
|
"\"Sorcery!! Work of the Devil!!\" " The+verb ,CH-SOLDIERS "skewer" " you
|
|
through the heart with" his ,CH-SOLDIERS " sword." ,K-HEEDED-WARNING-MSG
|
|
>
|
|
<RT-END-OF-GAME>
|
|
)
|
|
(,GL-FORM-ABORT
|
|
<TELL
|
|
"|Fortunately, it all happened so quickly that" the ,CH-SOLDIERS " didn't notice." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "CH-SOLDIERS"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT CH-SOLDIERS
|
|
(FLAGS FL-ALIVE FL-HAS-SDESC FL-OPEN FL-PERSON FL-PLURAL FL-SEARCH)
|
|
(SYNONYM SOLDIER SOLDIERS GUARD GUARDS MAN MEN PERSON PEOPLE)
|
|
(OWNER CH-LOT)
|
|
(GENERIC RT-GN-GUARD)
|
|
(ACTION RT-CH-SOLDIERS)
|
|
>
|
|
|
|
; "CH-SOLDIERS flags:"
|
|
; " FL-LOCKED - Player has said password to soldier."
|
|
; " FL-BROKEN - Alarm has been raised."
|
|
|
|
<CONSTANT K-MUTTERING-MSG " muttering curses about the cold.|">
|
|
<CONSTANT K-GETTING-CLOSER-MSG
|
|
"It sounds as if the soldiers are getting closer.|">
|
|
|
|
<ROUTINE RT-CH-SOLDIERS ("OPT" (CONTEXT <>) (ART <>) (CAP? <>))
|
|
<COND
|
|
(<MC-CONTEXT? ,M-OBJDESC>
|
|
<COND
|
|
(.ART
|
|
<PRINT-ARTICLE ,CH-SOLDIERS .ART .CAP?>
|
|
)
|
|
>
|
|
<COND
|
|
(<EQUAL? .ART <> ,K-ART-THE ,K-ART-A ,K-ART-ANY>
|
|
<COND
|
|
(.ART
|
|
<TELL " ">
|
|
)
|
|
>
|
|
<TELL "soldier">
|
|
<COND
|
|
(<FSET? ,CH-SOLDIERS ,FL-PLURAL>
|
|
<TELL "s">
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<MC-CONTEXT? ,M-WINNER>
|
|
<COND
|
|
(<AND <VERB? TELL-ABOUT>
|
|
<MC-PRSO? ,CH-PLAYER>
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(<VERB? WHO WHAT>
|
|
<RFALSE>
|
|
)
|
|
(<AND <MC-FORM? ,K-FORM-ARTHUR>
|
|
<MC-HERE? ,RM-CASTLE-GATE ,RM-PARADE-AREA ,RM-GREAT-HALL>
|
|
<OR
|
|
<VERB? $PASSWORD>
|
|
<AND
|
|
<VERB? BE>
|
|
<MC-PRSO? ,TH-PASSWORD>
|
|
>
|
|
<AND
|
|
<VERB? SAY>
|
|
<MC-PRSI? <> ,CH-SOLDIERS>
|
|
>
|
|
>
|
|
>
|
|
<APPLY <GETP ,HERE ,P?ACTION> ,M-BEG>
|
|
)
|
|
(T
|
|
<TELL
|
|
The+verb ,CH-SOLDIERS "growl" " back at you menacingly." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(,NOW-PRSI
|
|
<COND
|
|
(<AND <VERB? SHOW>
|
|
<MC-PRSO? ,TH-GAUNTLET>
|
|
<IN? ,TH-GAUNTLET ,WINNER>
|
|
<MC-HERE? ,RM-CASTLE-GATE>
|
|
>
|
|
<TELL
|
|
"The guard sees" the ,TH-GAUNTLET " and says, \"Enter.\" He opens the massive
|
|
gate and steps aside as you" walk " through.||"
|
|
>
|
|
<RT-GOTO ,RM-PARADE-AREA T>
|
|
)
|
|
(<AND <VERB? THROW>
|
|
<IDROP>
|
|
>
|
|
<TELL
|
|
"The guard nimbly sidesteps the projectile and then absentmindedly lops off
|
|
your head with his pollaxe." CR
|
|
>
|
|
<RT-END-OF-GAME>
|
|
)
|
|
>
|
|
)
|
|
(<AND <VERB? TELL>
|
|
,P-CONT
|
|
>
|
|
; "Message and RFATAL if don't want soldiers to become winner"
|
|
<RFALSE>
|
|
)
|
|
(<VERB? CALL>
|
|
<COND
|
|
(<NOT <MC-HERE?
|
|
,RM-CELL
|
|
,RM-BOTTOM-OF-STAIRS
|
|
,RM-HALL
|
|
,RM-END-OF-HALL
|
|
,RM-SMALL-CHAMBER
|
|
>
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(<FSET? ,CH-CELL-GUARD ,FL-ASLEEP>
|
|
<RT-DEQUEUE ,RT-I-ALARM>
|
|
<RT-I-ALARM>
|
|
)
|
|
(T
|
|
<RT-DEQUEUE ,RT-I-GUARD-1>
|
|
<RT-I-GUARD-1>
|
|
)
|
|
>
|
|
)
|
|
(<SPEAKING-VERB?>
|
|
<TELL The+verb ,CH-SOLDIERS "growl" " back at you menacingly." CR>
|
|
)
|
|
(<VERB? EXAMINE>
|
|
<FSET ,CH-SOLDIERS ,FL-SEEN>
|
|
<COND
|
|
(<MC-HERE? ,RM-CHURCHYARD>
|
|
<COND
|
|
(<IN? ,CH-SOLDIERS ,RM-TOWN-SQUARE> ;<FSET? ,CH-SOLDIERS ,FL-NO-DESC>
|
|
<TELL
|
|
"All you can see is the light glinting off their helmets." CR
|
|
>
|
|
)
|
|
(T
|
|
<TELL He+verb ,CH-SOLDIERS "look" " nervous and alert." CR>
|
|
)
|
|
>
|
|
)
|
|
(<MC-HERE? ,RM-CASTLE-GATE ,RM-PARADE-AREA>
|
|
<TELL
|
|
"Like all soldiers forced to stand guard-duty, he looks uncomfortable,
|
|
unhappy, and decidedly unfriendly." CR
|
|
>
|
|
)
|
|
(<MC-HERE? ,RM-GREAT-HALL>
|
|
<TELL He+verb ,CH-SOLDIERS "look" " nervous and alert." CR>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? LISTEN>
|
|
<COND
|
|
(<IN? ,CH-SOLDIERS ,RM-CHURCHYARD>
|
|
<TELL The+verb ,CH-SOLDIERS "are" ,K-MUTTERING-MSG>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? ATTACK>
|
|
<COND
|
|
(<MC-HERE? ,RM-CHURCHYARD>
|
|
<RT-SEIZE-MSG ,CH-SOLDIERS>
|
|
)
|
|
(<MC-FORM? ,K-FORM-ARTHUR>
|
|
<TELL
|
|
"You attack the soldier, but he is immediately re-inforced by other soldiers
|
|
from inside the garrison and you are quickly overwhelmed. They haul you away
|
|
to rot in a prison cell.|"
|
|
>
|
|
)
|
|
(T
|
|
<TELL
|
|
The ,CH-SOLDIERS " absentmindedly" verb ,CH-SOLDIERS "sidestep" " your attack,
|
|
and" verb ,CH-SOLDIERS "skewer" " you neatly through the heart.|"
|
|
>
|
|
)
|
|
>
|
|
<RT-END-OF-GAME>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-POLLAXE"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-POLLAXE
|
|
(DESC "pollaxe")
|
|
(FLAGS FL-NO-DESC FL-TRY-TAKE)
|
|
(SYNONYM POLLAXE AXE)
|
|
(OWNER CH-SOLDIERS)
|
|
(ACTION RT-TH-POLLAXE)
|
|
>
|
|
|
|
<ROUTINE RT-TH-POLLAXE ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<TOUCH-VERB?>
|
|
<COND
|
|
(<MC-FORM? ,K-FORM-ARTHUR>
|
|
<TELL
|
|
The+verb ,CH-SOLDIERS "cuff" " you on the side of the head and snarls,
|
|
\"Hands off.\"" CR
|
|
>
|
|
)
|
|
(T
|
|
<TELL
|
|
"As you approach the guard, he says," ,K-LOVERLY-MSG form ,K-SKEWER-MSG
|
|
>
|
|
<RT-END-OF-GAME>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? EXAMINE>
|
|
<FSET ,TH-POLLAXE ,FL-SEEN>
|
|
<TELL "It looks like a cross between a pike and a battleaxe." CR>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-ENTER-GATE ("OPT" (QUIET <>))
|
|
<COND
|
|
(.QUIET
|
|
<RETURN ,RM-PARADE-AREA>
|
|
)
|
|
(<OR <NOT <MC-FORM? ,K-FORM-ARTHUR>>
|
|
<FSET? ,CH-SOLDIERS ,FL-LOCKED>
|
|
>
|
|
<RETURN ,RM-PARADE-AREA>
|
|
)
|
|
(<IN? ,TH-GAUNTLET ,WINNER>
|
|
<TELL
|
|
"The guard sees" the ,TH-GAUNTLET " and says, \"Enter.\" He opens the massive
|
|
gate and steps aside as you" walk " through.||"
|
|
>
|
|
<RETURN ,RM-PARADE-AREA>
|
|
)
|
|
(T
|
|
<RT-NO-ONE-MSG "enters">
|
|
<RFALSE>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-NO-ONE-MSG (STR "OPT" (CAP? T))
|
|
<COND
|
|
(.CAP?
|
|
<TELL "T">
|
|
)
|
|
(T
|
|
<TELL " t">
|
|
)
|
|
>
|
|
<TELL
|
|
"he guard lowers his pollaxe to block your path and sneers, \"No one " .STR "
|
|
the castle unless they know the password.\"" CR
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-EXIT-GATE ("OPT" (QUIET <>))
|
|
<COND
|
|
(.QUIET
|
|
<RETURN ,RM-CASTLE-GATE>
|
|
)
|
|
(<NOT <MC-FORM? ,K-FORM-ARTHUR>>
|
|
<RT-CLEAR-PUPPY>
|
|
<RETURN ,RM-CASTLE-GATE>
|
|
)
|
|
(<FSET? ,CH-SOLDIERS ,FL-LOCKED>
|
|
<RETURN ,RM-CASTLE-GATE>
|
|
)
|
|
(T
|
|
<RT-NO-ONE-MSG "leaves">
|
|
<RFALSE>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-PASSWORD"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-PASSWORD
|
|
(LOC GENERIC-OBJECTS)
|
|
(DESC "password")
|
|
(SYNONYM PASSWORD PASSWORDS WORD WORDS FAIR BEGOT THERE LOT)
|
|
(ADJECTIVE PASS NO KING SO BY MAID WAS EVER THAN GOOD)
|
|
; (GENERIC RT-GN-KING-LOT)
|
|
(ACTION RT-TH-PASSWORD)
|
|
>
|
|
|
|
; "TH-PASSWORD flags:"
|
|
; " FL-TOUCHED - Player has heard Lot give a password."
|
|
|
|
<ROUTINE RT-TH-PASSWORD ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<AND <NOUN-USED? ,TH-PASSWORD ,W?LOT>
|
|
<NOT <VERB? SAY BE>>
|
|
>
|
|
<COND
|
|
(,NOW-PRSI
|
|
<PERFORM ,PRSA ,PRSO ,CH-LOT>
|
|
)
|
|
(T
|
|
<PERFORM ,PRSA ,CH-LOT ,PRSI>
|
|
)
|
|
>
|
|
<RTRUE>
|
|
)
|
|
>
|
|
>
|
|
|
|
<CONSTANT K-POEM-TBL
|
|
<TABLE (PURE LENGTH)
|
|
<TABLE (PURE LENGTH) <VOC "NO"> <VOC "KING"> <VOC "SO"> <VOC "FAIR">>
|
|
<TABLE (PURE LENGTH) <VOC "BY"> <VOC "MAID"> <VOC "BEGOT">>
|
|
<TABLE (PURE LENGTH) <VOC "WAS"> <VOC "EVER"> <VOC "THERE">>
|
|
<TABLE (PURE LENGTH) <VOC "THAN"> <VOC "GOOD"> <VOC "KING"> <VOC "LOT">>
|
|
>
|
|
>
|
|
|
|
<GLOBAL GL-POEM-LINE 0 <> BYTE>
|
|
|
|
<ROUTINE RT-CORRECT-PASSWORD? (PW "AUX" TBL M N PTR NP END)
|
|
<COND
|
|
(,GL-POEM-LINE
|
|
<COND
|
|
(<EQUAL? .PW ,INTQUOTE>
|
|
<COND
|
|
(<AND <SET NP <GET-NP ,INTQUOTE>>
|
|
<SET PTR <NP-LEXBEG .NP>>
|
|
>
|
|
<COND
|
|
(<EQUAL? <ZGET .PTR 0> ,W?QUOTE>
|
|
<SET PTR <ZREST .PTR 8>>
|
|
)
|
|
>
|
|
<COND
|
|
(<SET END <NP-LEXEND .NP>>
|
|
<SET M </ <- .END .PTR> 4>>
|
|
)
|
|
>
|
|
<COND
|
|
(<EQUAL? <ZGET .PTR 0> ,W?THE>
|
|
<SET PTR <ZREST .PTR 4>>
|
|
<DEC M>
|
|
)
|
|
>
|
|
<COND
|
|
(<EQUAL? <ZGET .PTR 0> ,W?PASSWORD ,W?PASSWORDS ,W?WORD ,W?WORDS>
|
|
<SET PTR <ZREST .PTR 4>>
|
|
<DEC M>
|
|
<COND
|
|
(<EQUAL? <ZGET .PTR 0> ,W?IS ,W?ARE>
|
|
<SET PTR <ZREST .PTR 4>>
|
|
<DEC M>
|
|
)
|
|
>
|
|
)
|
|
(<EQUAL? <ZGET .PTR 0> ,W?PASS>
|
|
<COND
|
|
(<EQUAL? <ZGET .PTR 2> ,W?WORD ,W?WORDS>
|
|
<SET PTR <ZREST .PTR 8>>
|
|
<SET M <- .M 2>>
|
|
<COND
|
|
(<EQUAL? <ZGET .PTR 0> ,W?IS ,W?ARE>
|
|
<SET PTR <ZREST .PTR 4>>
|
|
<DEC M>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
<SET TBL <ZGET ,K-POEM-TBL ,GL-POEM-LINE>>
|
|
<SET N <ZGET .TBL 0>>
|
|
<REPEAT ((I 0))
|
|
<COND
|
|
(<IGRTR? I .N>
|
|
<COND
|
|
(<OR <G? .I .M>
|
|
<EQUAL? <ZGET .PTR 0> ,W?QUOTE>
|
|
>
|
|
<RTRUE>
|
|
)
|
|
(T
|
|
<RFALSE>
|
|
)
|
|
>
|
|
)
|
|
(<NOT <EQUAL? <ZGET .PTR 0> <ZGET .TBL .I>>>
|
|
<RFALSE>
|
|
)
|
|
>
|
|
<SET PTR <ZREST .PTR 4>>
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<EQUAL? .PW ,TH-PASSWORD>
|
|
<COND
|
|
(<AND <SET NP <GET-NP ,TH-PASSWORD>>
|
|
<SET PTR <NP-LEXEND .NP>> ;"Have to start at end and work backwards"
|
|
>
|
|
<SET TBL <ZGET ,K-POEM-TBL ,GL-POEM-LINE>>
|
|
<SET N <ZGET .TBL 0>>
|
|
<REPEAT ((I .N))
|
|
<COND
|
|
(<NOT <EQUAL? <ZGET .PTR 0> <ZGET .TBL .I>>>
|
|
<RFALSE>
|
|
)
|
|
(<DLESS? I 1>
|
|
<RTRUE>
|
|
)
|
|
>
|
|
<SET PTR <ZBACK .PTR 4>>
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
>
|
|
|
|
<GLOBAL GL-SOLDIER-CNT 0 <> BYTE>
|
|
|
|
<ROUTINE RT-SOLDIER-SUSPECT (PW "AUX" PQ PTR TBL N (S? <>) NP)
|
|
<COND
|
|
(<EQUAL? .PW ,INTQUOTE>
|
|
<COND
|
|
(<AND <SET NP <GET-NP ,INTQUOTE>>
|
|
<SET PQ <NP-LEXBEG .NP>>
|
|
>
|
|
<COND
|
|
(<EQUAL? <ZGET .PQ 0> ,W?QUOTE>
|
|
<SET PQ <ZREST .PQ 8>>
|
|
)
|
|
>
|
|
<COND
|
|
(<EQUAL? <ZGET .PQ 0> ,W?THE>
|
|
<SET PQ <ZREST .PQ 4>>
|
|
)
|
|
>
|
|
<COND
|
|
(<EQUAL? <ZGET .PQ 0> ,W?PASSWORD ,W?PASSWORDS ,W?WORD ,W?WORDS>
|
|
<SET PQ <ZREST .PQ 4>>
|
|
<COND
|
|
(<EQUAL? <ZGET .PQ 0> ,W?IS ,W?ARE>
|
|
<SET PQ <ZREST .PQ 4>>
|
|
)
|
|
>
|
|
)
|
|
(<EQUAL? <ZGET .PQ 0> ,W?PASS>
|
|
<COND
|
|
(<EQUAL? <ZGET .PQ 2> ,W?WORD ,W?WORDS>
|
|
<SET PQ <ZREST .PQ 8>>
|
|
<COND
|
|
(<EQUAL? <ZGET .PQ 0> ,W?IS ,W?ARE>
|
|
<SET PQ <ZREST .PQ 4>>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
<REPEAT ((I 0) (L <ZGET ,K-POEM-TBL 0>))
|
|
<COND
|
|
(<IGRTR? I .L>
|
|
<RETURN>
|
|
)
|
|
(T
|
|
<SET PTR .PQ>
|
|
<SET TBL <ZGET ,K-POEM-TBL .I>>
|
|
<SET N <ZGET .TBL 0>>
|
|
<REPEAT ((J 0))
|
|
<COND
|
|
(<IGRTR? J .N>
|
|
<SET S? T>
|
|
<RETURN>
|
|
)
|
|
(<NOT <EQUAL? <ZGET .PTR 0> <ZGET .TBL .J>>>
|
|
<RETURN>
|
|
)
|
|
(T
|
|
<SET PTR <ZREST .PTR 4>>
|
|
)
|
|
>
|
|
>
|
|
<COND
|
|
(.S?
|
|
<RETURN>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<EQUAL? .PW ,TH-PASSWORD>
|
|
<COND
|
|
(<AND <SET NP <GET-NP ,TH-PASSWORD>>
|
|
<SET PQ <NP-LEXEND .NP>> ;"Have to start at end and work backwards"
|
|
>
|
|
<REPEAT ((I 0) (L <ZGET ,K-POEM-TBL 0>))
|
|
<COND
|
|
(<IGRTR? I .L>
|
|
<RETURN>
|
|
)
|
|
(T
|
|
<SET PTR .PQ>
|
|
<SET TBL <ZGET ,K-POEM-TBL .I>>
|
|
<SET N <ZGET .TBL 0>>
|
|
<REPEAT ((J .N))
|
|
<COND
|
|
(<NOT <EQUAL? <ZGET .PTR 0> <ZGET .TBL .J>>>
|
|
<RETURN>
|
|
)
|
|
(<DLESS? J 1>
|
|
<SET S? T>
|
|
<RETURN>
|
|
)
|
|
>
|
|
<SET PTR <ZBACK .PTR 4>>
|
|
>
|
|
<COND
|
|
(.S?
|
|
<RETURN>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
<COND
|
|
(.S?
|
|
<INC GL-SOLDIER-CNT>
|
|
<COND
|
|
(<EQUAL? ,GL-SOLDIER-CNT 1>
|
|
<TELL
|
|
"The soldier looks at you with contempt and says, \"That password is no
|
|
longer valid.\""
|
|
>
|
|
)
|
|
(<EQUAL? ,GL-SOLDIER-CNT 2>
|
|
<TELL
|
|
"The soldier looks at you suspiciously and says, \"That password is no longer
|
|
valid either.\""
|
|
>
|
|
)
|
|
(<EQUAL? ,GL-SOLDIER-CNT 3>
|
|
<TELL
|
|
"The soldier looks at you with great suspicion and says, \"None of those
|
|
passwords is valid any more.\""
|
|
>
|
|
)
|
|
(<EQUAL? ,GL-SOLDIER-CNT 4>
|
|
<TELL
|
|
"The soldier arrests you and says, \"That's it, mate. I don't know who you
|
|
are, or how you know so much about our passwords without knowing the current
|
|
one, but you sound like some kind of spy to me. But perhaps a few days in a
|
|
nice dark cell will clear things up.\" He hauls you off to the dungeon.|"
|
|
>
|
|
<RT-END-OF-GAME>
|
|
)
|
|
>
|
|
)
|
|
(T
|
|
<TELL "The soldier sneers at you.">
|
|
)
|
|
>
|
|
<COND
|
|
(<MC-HERE? ,RM-CASTLE-GATE ,RM-PARADE-AREA>
|
|
<TELL " He continues to block your path.">
|
|
)
|
|
>
|
|
<CRLF>
|
|
<RTRUE>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "LG-CASTLE-GATE"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT LG-CASTLE-GATE
|
|
(LOC LOCAL-GLOBALS)
|
|
(DESC "castle gate")
|
|
(FLAGS FL-DOOR)
|
|
(SYNONYM GATE DOOR)
|
|
(ADJECTIVE CASTLE MASSIVE WOODEN)
|
|
(ACTION RT-LG-CASTLE-GATE)
|
|
>
|
|
|
|
<ROUTINE RT-LG-CASTLE-GATE ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<OR <AND
|
|
<VERB? WALK-UNDER>
|
|
<MC-FORM? ,K-FORM-SALAMANDER ,K-FORM-BADGER>
|
|
>
|
|
<AND
|
|
<VERB? CLIMB-OVER>
|
|
<MC-FORM? ,K-FORM-OWL>
|
|
>
|
|
>
|
|
<COND
|
|
(<MC-HERE? ,RM-PARADE-AREA>
|
|
<RT-DO-WALK ,P?WEST>
|
|
)
|
|
(<MC-HERE? ,RM-CASTLE-GATE>
|
|
<RT-DO-WALK ,P?EAST>
|
|
)
|
|
>
|
|
)
|
|
(<TOUCH-VERB?>
|
|
<TELL "As you reach for" the ,LG-CASTLE-GATE ",">
|
|
<COND
|
|
(<MC-FORM? ,K-FORM-ARTHUR>
|
|
<COND
|
|
(<MC-HERE? ,RM-CASTLE-GATE>
|
|
<RT-NO-ONE-MSG "enters" <>>
|
|
)
|
|
(<MC-HERE? ,RM-PARADE-AREA>
|
|
<RT-NO-ONE-MSG "leaves" <>>
|
|
)
|
|
>
|
|
)
|
|
(T
|
|
<TELL " the guard says," ,K-LOVERLY-MSG form ,K-SKEWER-MSG>
|
|
<RT-END-OF-GAME>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? EXAMINE>
|
|
<FSET LG-CASTLE-GATE ,FL-SEEN>
|
|
<TELL "It's a massive wooden gate set into the stone wall." CR>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "RM-PARADE-AREA"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<ROOM RM-PARADE-AREA
|
|
(LOC ROOMS)
|
|
(DESC "parade area")
|
|
(FLAGS FL-LIGHTED)
|
|
(SYNONYM AREA)
|
|
(ADJECTIVE PARADE)
|
|
(EAST TO RM-GREAT-HALL)
|
|
(WEST PER RT-EXIT-GATE)
|
|
(OUT PER RT-EXIT-GATE)
|
|
(SOUTH TO RM-ARMOURY)
|
|
(SE TO RM-CAS-KITCHEN IF LG-KITCHEN-DOOR IS OPEN)
|
|
(UP PER RT-FLY-UP)
|
|
(GLOBAL
|
|
LG-CASTLE-GATE LG-KITCHEN-DOOR LG-WALL LG-CASTLE RM-GREAT-HALL
|
|
RM-CAS-KITCHEN RM-ARMOURY
|
|
)
|
|
(ACTION RT-RM-PARADE-AREA)
|
|
(THINGS (OLD STONE) (TOWER TOWERS) RT-PS-STONE-TOWER)
|
|
>
|
|
|
|
<ROUTINE RT-RM-PARADE-AREA ("OPT" (CONTEXT <>) "AUX" PW)
|
|
<COND
|
|
(<MC-CONTEXT? ,M-BEG>
|
|
<COND
|
|
(<AND <MC-FORM? ,K-FORM-ARTHUR>
|
|
<OR
|
|
<VERB? $PASSWORD>
|
|
<AND
|
|
<VERB? BE>
|
|
<MC-PRSO? ,TH-PASSWORD>
|
|
>
|
|
<AND
|
|
<VERB? SAY>
|
|
<MC-PRSI? <> ,CH-SOLDIERS>
|
|
>
|
|
>
|
|
>
|
|
<COND
|
|
(<VERB? BE>
|
|
<SET PW ,PRSI>
|
|
)
|
|
(T
|
|
<SET PW ,PRSO>
|
|
)
|
|
>
|
|
<COND
|
|
; (<IN? ,TH-GAUNTLET ,WINNER>
|
|
<TELL
|
|
"The guard sees" the ,TH-GAUNTLET " and says, \"Enter.\" He opens the massive
|
|
gate and steps aside as you" walk " through.||"
|
|
>
|
|
<SETG WINNER ,CH-PLAYER>
|
|
<RT-GOTO ,RM-CASTLE-GATE T>
|
|
)
|
|
(<OR <VERB? $PASSWORD>
|
|
<RT-CORRECT-PASSWORD? .PW>
|
|
>
|
|
<FSET ,CH-SOLDIERS ,FL-LOCKED>
|
|
<TELL
|
|
The ,CH-SOLDIERS " reluctantly" verb ,CH-SOLDIERS "step" " aside to let you
|
|
pass.||"
|
|
>
|
|
<SETG WINNER ,CH-PLAYER>
|
|
<RT-GOTO ,RM-CASTLE-GATE T>
|
|
)
|
|
(T
|
|
<RT-SOLDIER-SUSPECT .PW>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<MC-CONTEXT? ,M-ENTER>
|
|
<SETG GL-PICTURE-NUM ,K-PIC-PARADE-AREA>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-PICT>
|
|
<RT-UPDATE-PICT-WINDOW>
|
|
)
|
|
>
|
|
<MOVE ,CH-SOLDIERS ,RM-PARADE-AREA>
|
|
<MOVE ,TH-POLLAXE ,CH-SOLDIERS>
|
|
<FCLEAR ,CH-SOLDIERS ,FL-PLURAL>
|
|
<FSET ,CH-SOLDIERS ,FL-NO-DESC>
|
|
<RFALSE>
|
|
)
|
|
(<MC-CONTEXT? ,M-ENTERED>
|
|
<COND
|
|
(<IN? ,CH-PRISONER ,RM-PARADE-AREA>
|
|
<COND
|
|
(<FSET? ,CH-SOLDIERS ,FL-BROKEN>
|
|
<TELL
|
|
"|The soldier recognizes the prisoner and" ,K-GUARDS-COME-MSG
|
|
>
|
|
<RT-ARREST-PRISONER-MSG>
|
|
)
|
|
(<EQUAL? ,OHERE ,RM-CAS-KITCHEN>
|
|
<FSET ,CH-PRISONER ,FL-AIR>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<MC-CONTEXT? ,M-EXIT>
|
|
<FCLEAR ,CH-SOLDIERS ,FL-LOCKED>
|
|
<SETG GL-SOLDIER-CNT 0>
|
|
<RFALSE>
|
|
)
|
|
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
|
|
<FSET ,LG-CASTLE-GATE ,FL-SEEN>
|
|
<FSET ,RM-ARMOURY ,FL-SEEN>
|
|
<FSET ,RM-GREAT-HALL ,FL-SEEN>
|
|
<FSET ,RM-CAS-KITCHEN ,FL-SEEN>
|
|
<TELL "You">
|
|
<COND
|
|
(<MC-CONTEXT? ,M-LOOK>
|
|
<TELL " are" standing " in">
|
|
)
|
|
(<EQUAL? ,OHERE ,RM-CASTLE-GATE>
|
|
<COND
|
|
(<NOT <MC-FORM? ,K-FORM-ARTHUR>>
|
|
<COND
|
|
(<MC-FORM? ,K-FORM-OWL>
|
|
<TELL " fly over">
|
|
)
|
|
(T
|
|
<TELL " crawl under">
|
|
)
|
|
>
|
|
)
|
|
(T
|
|
<TELL walk " inside">
|
|
)
|
|
>
|
|
<TELL " the castle gate and are now in">
|
|
)
|
|
(T
|
|
<TELL " come to">
|
|
)
|
|
>
|
|
<TELL
|
|
" the parade area of King Lot's castle. The gate in the west wall is guarded
|
|
by a soldier. The armoury is to the south, the entrance to the great hall is
|
|
to the east, and the kitchen is to the southeast.|"
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(<MC-CONTEXT? ,M-END>
|
|
<COND
|
|
(<VERB? TRANSFORM>
|
|
<COND
|
|
(<NOT <MC-FORM? ,GL-OLD-FORM>>
|
|
<TELL
|
|
"\"Sorcery!! Work of the Devil!!\" " The+verb ,CH-SOLDIERS "skewer" " you
|
|
through the heart with" his ,CH-SOLDIERS " sword." ,K-HEEDED-WARNING-MSG
|
|
>
|
|
<RT-END-OF-GAME>
|
|
)
|
|
(,GL-FORM-ABORT
|
|
<TELL
|
|
"|Fortunately, it all happened so quickly that" the ,CH-SOLDIERS " didn't notice." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-PS-STONE-TOWER ("OPT" (CONTEXT <>) (ART <>) (CAP? <>))
|
|
<FCLEAR ,PSEUDO-OBJECT ,FL-PLURAL>
|
|
<FCLEAR ,PSEUDO-OBJECT ,FL-VOWEL>
|
|
<COND
|
|
(<MC-CONTEXT? ,M-OBJDESC>
|
|
<COND
|
|
(.ART
|
|
<PRINT-ARTICLE ,PSEUDO-OBJECT .ART .CAP?>
|
|
)
|
|
>
|
|
<COND
|
|
(<EQUAL? .ART <> ,K-ART-THE ,K-ART-A ,K-ART-ANY>
|
|
<COND
|
|
(.ART
|
|
<TELL " ">
|
|
)
|
|
>
|
|
<TELL "tower">
|
|
)
|
|
>
|
|
)
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<VERB? EXAMINE>
|
|
<TELL ,K-ROMAN-FORT-MSG CR>
|
|
)
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "RM-GREAT-HALL"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<ROOM RM-GREAT-HALL
|
|
(LOC ROOMS)
|
|
(DESC "great hall")
|
|
(FLAGS FL-INDOORS FL-LIGHTED)
|
|
(SYNONYM HALL BUILDING STRUCTURE)
|
|
(ADJECTIVE GREAT WOODEN WOOD LONG)
|
|
(EAST PER RT-MOVE-TAPESTRY)
|
|
(WEST TO RM-PARADE-AREA)
|
|
(OUT TO RM-PARADE-AREA)
|
|
(GLOBAL LG-OWL-TAPESTRY LG-WALL)
|
|
(ACTION RT-RM-GREAT-HALL)
|
|
>
|
|
|
|
<ROUTINE RT-RM-GREAT-HALL ("OPT" (CONTEXT <>) "AUX" PW)
|
|
<COND
|
|
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
|
|
<COND
|
|
(<MC-CONTEXT? ,M-LOOK>
|
|
<TELL
|
|
"You are" standing " in a circle of people surrounding the throne in"
|
|
>
|
|
)
|
|
(T
|
|
<TELL "You trade the bright ">
|
|
<COND
|
|
(<RT-TIME-OF-DAY? ,K-NIGHT>
|
|
<TELL "moon">
|
|
)
|
|
(T
|
|
<TELL "sun">
|
|
)
|
|
>
|
|
<TELL "light for the dark interior of">
|
|
)
|
|
>
|
|
<FSET ,CH-LOT ,FL-SEEN>
|
|
<FSET ,TH-LOT-THRONE ,FL-SEEN>
|
|
<FSET ,LG-OWL-TAPESTRY ,FL-SEEN>
|
|
<FSET ,CH-COURTIERS ,FL-SEEN>
|
|
<TELL
|
|
" King Lot's great hall. It is a large room with a dark, timbered ceiling.
|
|
King Lot is enthroned on a massive chair in front of an intricately-woven
|
|
tapestry. He is surrounded by his courtiers.|"
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(<MC-CONTEXT? ,M-BEG>
|
|
<COND
|
|
(<OR <VERB? $PASSWORD>
|
|
<AND <VERB? BE> <MC-PRSO? ,TH-PASSWORD>>
|
|
<AND <VERB? SAY> <MC-PRSI? <> ,CH-SOLDIERS>>
|
|
>
|
|
<COND
|
|
(<AND <EQUAL? <MOD ,GL-MOVES 180> 179>
|
|
<MC-PRSI? <> ,CH-SOLDIERS>
|
|
>
|
|
<COND
|
|
(<VERB? BE>
|
|
<SET PW ,PRSI>
|
|
)
|
|
(T
|
|
<SET PW ,PRSO>
|
|
)
|
|
>
|
|
<TELL "The soldier says ">
|
|
<COND
|
|
(<OR <VERB? $PASSWORD>
|
|
<RT-CORRECT-PASSWORD? .PW>
|
|
>
|
|
<FSET ,CH-SOLDIERS ,FL-LOCKED>
|
|
<TELL
|
|
"reluctantly, \"That's correct. You may stay.\"" CR
|
|
>
|
|
)
|
|
(T
|
|
<TELL
|
|
"sternly, \"That's not the password. Come with me.\" He"
|
|
>
|
|
<RT-LEAVE-CASTLE>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? SAY>
|
|
<TELL "The king and all his court just laugh at you." CR>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<MC-CONTEXT? ,M-END>
|
|
<COND
|
|
(<VERB? TRANSFORM>
|
|
<COND
|
|
(<NOT <MC-FORM? ,GL-OLD-FORM>>
|
|
<TELL
|
|
"\"Sorcery!! Work of the Devil!!\" A soldier skewers you through the heart
|
|
with his sword." ,K-HEEDED-WARNING-MSG
|
|
>
|
|
<RT-END-OF-GAME>
|
|
)
|
|
(,GL-FORM-ABORT
|
|
<TELL
|
|
"|Fortunately, it all happened so quickly that" the ,CH-SOLDIERS " didn't notice." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<MC-CONTEXT? ,M-ENTER>
|
|
<SETG GL-PICTURE-NUM ,K-PIC-GREAT-HALL>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-PICT>
|
|
<RT-UPDATE-PICT-WINDOW>
|
|
)
|
|
>
|
|
<MOVE ,CH-SOLDIERS ,RM-GREAT-HALL>
|
|
<REMOVE ,TH-POLLAXE>
|
|
<FSET ,CH-SOLDIERS ,FL-PLURAL>
|
|
<FCLEAR ,CH-SOLDIERS ,FL-LOCKED>
|
|
<RT-QUEUE ,RT-I-SOLDIER-ASK
|
|
<+ <- ,GL-MOVES
|
|
<MOD ,GL-MOVES 180>
|
|
>
|
|
178
|
|
>
|
|
T
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(<MC-CONTEXT? ,M-ENTERED>
|
|
<COND
|
|
(<IN? ,CH-PRISONER ,RM-GREAT-HALL>
|
|
<TELL
|
|
CR "After a few moments, Lot happens to glance at your companion. ">
|
|
<COND
|
|
(<IN? ,TH-HELMET ,CH-PRISONER>
|
|
<TELL
|
|
"He starts to look away, but then suddenly he leaps to his feet and knocks
|
|
the helmet off the smith's head."
|
|
>
|
|
)
|
|
(T
|
|
<TELL
|
|
"Suddenly, he leaps to his feet as he recognizes the smith."
|
|
>
|
|
)
|
|
>
|
|
<TELL
|
|
" He points at the two of you and calls out, \"Guards! Arrest them!\" His
|
|
guards quickly close around you"
|
|
>
|
|
<COND
|
|
(<IN? ,TH-BRACELET ,CH-PLAYER>
|
|
<TELL
|
|
". As they are carrying you away, Lot notices your bracelet and shouts,
|
|
\"Take his bracelet.\" The guards strip you of the bracelet, toss it
|
|
to Lot,"
|
|
>
|
|
)
|
|
>
|
|
<TELL " and then bear you off to rot in a dungeon.|">
|
|
<RT-END-OF-GAME>
|
|
)
|
|
(<NOT <MC-FORM? ,K-FORM-ARTHUR>>
|
|
<TELL
|
|
"|One of the soldiers says," ,K-GET-OUT-MSG form ".\" He waves his arms and
|
|
shoos you out the door into the parade area.||"
|
|
>
|
|
<RT-GOTO ,RM-PARADE-AREA>
|
|
)
|
|
>
|
|
)
|
|
(<MC-CONTEXT? ,M-EXIT>
|
|
<RT-DEQUEUE ,RT-I-SOLDIER-ASK>
|
|
<RFALSE>
|
|
)
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<AND <VERB? EXAMINE>
|
|
<NOT <MC-HERE? ,RM-GREAT-HALL>>
|
|
>
|
|
<TELL
|
|
"It's a long wooden structure that has been built against the old Roman
|
|
fortress wall." CR
|
|
>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-I-SOLDIER-ASK ()
|
|
<FCLEAR ,CH-SOLDIERS ,FL-LOCKED>
|
|
<COND
|
|
(<FSET? ,CH-PLAYER ,FL-ASLEEP>
|
|
<MOVE ,CH-PLAYER ,RM-CASTLE-GATE>
|
|
<SETG OHERE ,HERE>
|
|
<SETG HERE <LOC ,CH-PLAYER>>
|
|
<RFALSE>
|
|
)
|
|
(T
|
|
<RT-QUEUE ,RT-I-SOLDIER-ASK <+ ,GL-MOVES 180>>
|
|
<TELL
|
|
"|One of Lot's soldiers approaches you and asks, \"What's the password?\"" CR
|
|
>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-LEAVE-CASTLE ()
|
|
<TELL
|
|
" grabs your tunic, drags you out of the castle, and unceremoniously dumps
|
|
you outside the castle gate.||"
|
|
>
|
|
<RT-GOTO ,RM-CASTLE-GATE T>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-LOT-THRONE"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-LOT-THRONE
|
|
(LOC RM-GREAT-HALL)
|
|
(DESC "throne")
|
|
(FLAGS FL-NO-DESC FL-SEARCH FL-SURFACE)
|
|
(SYNONYM THRONE CHAIR)
|
|
(OWNER CH-LOT)
|
|
(ACTION RT-TH-LOT-THRONE)
|
|
>
|
|
|
|
<ROUTINE RT-TH-LOT-THRONE ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<VERB? EXAMINE>
|
|
<COND
|
|
(<IN? ,CH-LOT ,TH-LOT-THRONE>
|
|
<FSET ,TH-LOT-THRONE ,FL-SEEN>
|
|
<FSET ,CH-LOT ,FL-SEEN>
|
|
<TELL
|
|
The+verb ,CH-LOT "are" " sitting on" the ,TH-LOT-THRONE "." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<TOUCH-VERB?>
|
|
<RT-ATTACK-LOT>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "CH-LOT"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT CH-LOT
|
|
(LOC TH-LOT-THRONE)
|
|
(DESC "King Lot")
|
|
(FLAGS FL-ALIVE FL-NO-ARTICLE FL-NO-DESC FL-OPEN FL-PERSON FL-SEARCH)
|
|
(SYNONYM KING LOT MAN PERSON)
|
|
(ADJECTIVE KING)
|
|
; (GENERIC RT-GN-KING-LOT)
|
|
(ACTION RT-CH-LOT)
|
|
>
|
|
|
|
; "CH-LOT flags:"
|
|
; " FL-BROKEN FL-LOCKED"
|
|
; " --------- ---------"
|
|
; " 0 0 In Field of Honour - fight is raging"
|
|
; " In Great Hall - Lot is on throne"
|
|
; " 1 0 Lot is distracted and bending over the bracelet"
|
|
; " 0 1 Lot is disarmed and at your mercy"
|
|
; " 1 1 The fight is over and you have spared Lot"
|
|
|
|
<CONSTANT K-LOT-GREED-MSG "Lot's eyes widen with greed when he sees">
|
|
<CONSTANT K-LOT-WANT-MSG
|
|
". Then, just as quickly, the look is gone. \"It doesn't look very
|
|
valuable,\" he says. \"But if you would like me to hold it in safekeeping
|
|
for you, I would be happy to.\"">
|
|
|
|
<ROUTINE RT-CH-LOT ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(<AND <MC-CONTEXT? ,M-WINNER <>>
|
|
<VERB? HELLO GOODBYE THANK>
|
|
>
|
|
<COND
|
|
(<MC-HERE? ,RM-GREAT-HALL>
|
|
<RT-LOT-IGNORE-MSG>
|
|
)
|
|
(<AND <MC-HERE? ,RM-FIELD-OF-HONOUR>
|
|
<NOT <FSET? ,CH-LOT ,FL-LOCKED>>
|
|
>
|
|
<RT-LOT-IGNORE-MSG>
|
|
)
|
|
(<AND <MC-HERE? ,RM-FIELD-OF-HONOUR>
|
|
<NOT <FSET? ,CH-LOT ,FL-BROKEN>>
|
|
<FSET? ,CH-LOT ,FL-LOCKED>
|
|
>
|
|
<TELL "I am at your mercy, sir. Please do not toy with me so." CR>
|
|
)
|
|
(<VERB? HELLO>
|
|
<TELL "\"Greetings, Arthur.\"" CR>
|
|
)
|
|
(<VERB? GOODBYE>
|
|
<TELL "\"Farewell, Arthur.\"" CR>
|
|
)
|
|
(<VERB? THANK>
|
|
<TELL "\"You're welcome, Arthur.\"" CR>
|
|
<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
|
|
(<AND <VERB? TELL-ABOUT>
|
|
<MC-PRSO? ,CH-PLAYER>
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(<VERB? WHO WHAT>
|
|
<RFALSE>
|
|
)
|
|
(<MC-HERE? ,RM-GREAT-HALL>
|
|
<RT-LOT-IGNORE-MSG>
|
|
)
|
|
(T
|
|
<COND
|
|
(<AND <FSET? ,CH-LOT ,FL-BROKEN>
|
|
<FSET? ,CH-LOT ,FL-LOCKED>
|
|
; <NOT <SPEAKING-VERB?>> ; "to pass 'lot, hello' to default"
|
|
>
|
|
<TELL
|
|
"\"Let us get free of this mob and I will do whatever you ask.\"" CR
|
|
>
|
|
)
|
|
(<AND <FSET? ,CH-LOT ,FL-LOCKED>
|
|
<NOT <SPEAKING-VERB?>>
|
|
>
|
|
<TELL
|
|
"\"Spare my life and I will do whatever you ask.\"" CR
|
|
>
|
|
)
|
|
(T
|
|
<RT-LOT-IGNORE-MSG>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<AND <VERB? TELL>
|
|
,P-CONT
|
|
>
|
|
; "Message and RFATAL if don't want knight to become winner"
|
|
<RFALSE>
|
|
)
|
|
(,NOW-PRSI
|
|
<COND
|
|
(<AND <MC-HERE? ,RM-FIELD-OF-HONOUR>
|
|
<VERB? SHOW GIVE THROW>
|
|
<MC-PRSO? ,TH-BRACELET>
|
|
<NOT <FSET? ,CH-LOT ,FL-LOCKED>>
|
|
>
|
|
<RT-DISTRACT-LOT>
|
|
)
|
|
(<VERB? GIVE>
|
|
<COND
|
|
(<MC-HERE? ,RM-GREAT-HALL>
|
|
<COND
|
|
(<MC-PRSO? ,TH-BRACELET ,TH-GOLD-KEY ,TH-SILVER-KEY ,TH-RAVEN-EGG>
|
|
<TELL
|
|
"Lot takes" the ,PRSO " and holds it up for his courtiers to see. \"Look!\"
|
|
he cries. \"See how the people of the land trust their king with their valued
|
|
possessions.\"||He then drops" the ,PRSO " into his "
|
|
>
|
|
<COND
|
|
(<G? <GETB <GETPT ,PRSO ,P?SIZE> ,K-SIZE> 5>
|
|
<TELL "lap">
|
|
)
|
|
(T
|
|
<TELL "pocket">
|
|
)
|
|
>
|
|
<TELL
|
|
" and laughs. \"That is why they are the peasants, and we are their masters.\"
|
|
He gestures to his guards. \"Now take him away and find out where the urchin
|
|
stole an item of such great value.\"|"
|
|
>
|
|
<RT-END-OF-GAME>
|
|
)
|
|
>
|
|
)
|
|
(<AND <FSET? ,CH-LOT ,FL-BROKEN>
|
|
<FSET? ,CH-LOT ,FL-LOCKED>
|
|
<MC-PRSO? ,TH-BRACELET ,TH-GOLD-KEY ,TH-SILVER-KEY ,TH-RAVEN-EGG>
|
|
>
|
|
<TELL
|
|
"\"I've learned my lesson, milord. Please keep it.\"" CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? SHOW>
|
|
<COND
|
|
(<MC-HERE? ,RM-GREAT-HALL>
|
|
<COND
|
|
(<MC-PRSO? ,TH-BRACELET ,TH-GOLD-KEY ,TH-SILVER-KEY ,TH-RAVEN-EGG>
|
|
<TELL ,K-LOT-GREED-MSG the ,PRSO ,K-LOT-WANT-MSG CR>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? THROW>
|
|
<COND
|
|
(<MC-HERE? ,RM-GREAT-HALL>
|
|
<COND
|
|
(<MC-PRSO? ,TH-GAUNTLET>
|
|
<RT-TRIGGER-ENDGAME>
|
|
)
|
|
(T
|
|
<RT-ATTACK-LOT>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? ASK-ABOUT>
|
|
<COND
|
|
(<AND <MC-HERE? ,RM-FIELD-OF-HONOUR>
|
|
<NOT <FSET? ,CH-LOT ,FL-LOCKED>>
|
|
>
|
|
<RT-LOT-IGNORE-MSG>
|
|
)
|
|
(<MC-PRSI? ,TH-EXCALIBUR ,TH-LOT-SWORD>
|
|
<COND
|
|
(<MC-HERE? ,RM-GREAT-HALL>
|
|
<TELL
|
|
"\"The sword is mine. A gift from the angels. With it I shall rule all
|
|
England.\"" CR
|
|
>
|
|
)
|
|
(T
|
|
<COND
|
|
(<AND <FSET? ,CH-LOT ,FL-BROKEN>
|
|
<FSET? ,CH-LOT ,FL-LOCKED>
|
|
>
|
|
<TELL
|
|
"\"The sword is yours, to do with as you please.\"" CR
|
|
>
|
|
)
|
|
(<FSET? ,CH-LOT ,FL-LOCKED>
|
|
<TELL
|
|
"\"You are the victor. You may have the sword.\"" CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<MC-PRSI? ,TH-BRACELET ,TH-GOLD-KEY ,TH-SILVER-KEY ,TH-RAVEN-EGG>
|
|
<COND
|
|
(<MC-HERE? ,RM-GREAT-HALL>
|
|
<COND
|
|
(<IN? ,PRSI ,CH-PLAYER>
|
|
<TELL ,K-LOT-GREED-MSG the ,PRSI ,K-LOT-WANT-MSG CR>
|
|
)
|
|
(T
|
|
<TELL "\"I would like to see this ">
|
|
<NP-PRINT ,PRSI-NP>
|
|
<TELL ".\"" CR>
|
|
)
|
|
>
|
|
)
|
|
(T
|
|
<TELL
|
|
!\" The+verb ,PRSI "are" " yours. I was wrong to covet" him ,PRSI ".\"" CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<MC-PRSI? ,CH-PRISONER>
|
|
<COND
|
|
(<MC-HERE? ,RM-GREAT-HALL>
|
|
<TELL "\"Enough. Cease this prattling!\"" CR>
|
|
)
|
|
(T
|
|
<TELL
|
|
"\"The smith was innocent. I will find him, ask his forgiveness, and
|
|
recompense him for the wrongs I did him.\"" CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<MC-PRSI? ,CH-LOT>
|
|
<COND
|
|
(<MC-HERE? ,RM-GREAT-HALL>
|
|
<TELL
|
|
"\"I am king of this region, and soon I shall be High King of all England.\"" CR
|
|
>
|
|
)
|
|
(T
|
|
<TELL "\"Henceforth, I shall be your devoted servant.\"" CR>
|
|
)
|
|
>
|
|
)
|
|
(<MC-PRSI? ,CH-MERLIN>
|
|
<COND
|
|
(<MC-HERE? ,RM-GREAT-HALL>
|
|
<TELL
|
|
"\"That old fool? I have nothing to fear from him.\"" CR
|
|
>
|
|
)
|
|
(T
|
|
<TELL
|
|
"\"He has served you well, my lord. Henceforth he shall be welcome in my hall.\"" CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(T
|
|
<COND
|
|
(<MC-HERE? ,RM-GREAT-HALL>
|
|
<TELL "King Lot ignores both you and your question." CR>
|
|
)
|
|
(T
|
|
<TELL
|
|
"\"Of that I know nothing, sire. But if you wish it, I shall find out.\"" CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? CHALLENGE>
|
|
<COND
|
|
(<MC-HERE? ,RM-GREAT-HALL>
|
|
<COND
|
|
(<MC-PRSI? ,TH-GAUNTLET>
|
|
<RT-TRIGGER-ENDGAME>
|
|
)
|
|
(<AND ,PRSI
|
|
<FSET? ,PRSI ,FL-WEAPON>
|
|
>
|
|
<RT-ATTACK-LOT>
|
|
)
|
|
(T
|
|
<SETG GL-QUESTION 1>
|
|
<TELL
|
|
"The evil king laughs. \"You! A mere boy? Challenge me? Ha!\" All the
|
|
courtiers follow the king's cue and laugh at you." CR
|
|
>
|
|
<COND
|
|
(<AND <FSET? ,TH-BRACELET ,FL-WORN>
|
|
<IN? ,TH-BRACELET ,CH-PLAYER>
|
|
>
|
|
<TELL
|
|
"|You notice the king glance at your bracelet." CR
|
|
>
|
|
)
|
|
>
|
|
<RTRUE>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? ATTACK>
|
|
<COND
|
|
(<MC-HERE? ,RM-GREAT-HALL>
|
|
<COND
|
|
(<MC-PRSI? ,TH-GAUNTLET>
|
|
<RT-TRIGGER-ENDGAME>
|
|
)
|
|
(T
|
|
<RT-ATTACK-LOT>
|
|
)
|
|
>
|
|
)
|
|
(<MC-HERE? ,RM-FIELD-OF-HONOUR>
|
|
<COND
|
|
(<AND <FSET? ,CH-LOT ,FL-LOCKED>
|
|
<FSET? ,CH-LOT ,FL-BROKEN>
|
|
>
|
|
<TELL
|
|
"The mob, outraged by your lack of chivalrous behaviour, kills you.|"
|
|
>
|
|
<RT-END-OF-GAME>
|
|
)
|
|
(<FSET? ,CH-LOT ,FL-LOCKED>
|
|
<TELL
|
|
"You drive the point of the sword home. The crowd cheers and acclaim you the
|
|
victor. But Merlin's voice echoes in your head, \"To rule England you must be
|
|
merciful and chivalrous, Arthur. You have failed.\"|"
|
|
>
|
|
<RT-END-OF-GAME>
|
|
)
|
|
(<FSET? ,CH-LOT ,FL-BROKEN>
|
|
<FSET ,CH-LOT ,FL-LOCKED>
|
|
<FCLEAR ,CH-LOT ,FL-BROKEN>
|
|
<THIS-IS-IT ,CH-LOT>
|
|
<RT-QUEUE ,RT-I-LOT-TRICK <+ ,GL-MOVES 10>>
|
|
<TELL
|
|
"Your gambit is successful. You knock aside Lot's sword and push him to the
|
|
ground. You are now standing over him with your sword at his throat." CR
|
|
>
|
|
<RT-SCORE-MSG 0 7 7 4>
|
|
<SETG GL-PICTURE-NUM ,K-PIC-CROWD>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-PICT>
|
|
<RT-UPDATE-PICT-WINDOW>
|
|
)
|
|
>
|
|
<RTRUE>
|
|
)
|
|
(T
|
|
<RT-DEQUEUE ,RT-I-FIGHT>
|
|
<RT-I-FIGHT>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? EXAMINE>
|
|
<COND
|
|
(<MC-HERE? ,RM-GREAT-HALL>
|
|
<FSET ,CH-LOT ,FL-SEEN>
|
|
<TELL
|
|
"Lot's sharp features are arranged in a permanent scowl. His jet black
|
|
beard is finely trimmed, and his jewelry is of the highest quality." CR
|
|
>
|
|
)
|
|
(T
|
|
<FSET ,CH-LOT ,FL-SEEN>
|
|
<COND
|
|
(<AND <FSET? ,CH-LOT ,FL-BROKEN>
|
|
<FSET? ,CH-LOT ,FL-LOCKED>
|
|
>
|
|
<TELL
|
|
"Lot stands peacefully by your side, no longer a threat to your inheritance." CR
|
|
>
|
|
)
|
|
(<FSET? ,CH-LOT ,FL-BROKEN>
|
|
<TELL
|
|
"Lot is reaching down to pick up the bracelet." CR
|
|
>
|
|
)
|
|
(<FSET? ,CH-LOT ,FL-LOCKED>
|
|
<TELL
|
|
"Your sword is at Lot's throat, and his eyes are filled with fear." CR
|
|
>
|
|
)
|
|
(T
|
|
<TELL
|
|
"Lot wields his sword with a concentrated ferocity. You won't be able
|
|
to withstand his attack for long." CR
|
|
>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? KNEEL>
|
|
<RT-LOT-IGNORE-MSG>
|
|
)
|
|
(<TOUCH-VERB?>
|
|
<COND
|
|
(<MC-HERE? ,RM-GREAT-HALL>
|
|
<RT-ATTACK-LOT>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
>
|
|
|
|
<CONSTANT K-TAKE-BRACELET-MSG ". \"Take his bracelet,\" Lot shouts. They
|
|
strip you of your bracelet, toss it to Lot,">
|
|
<CONSTANT K-BEAR-OFF-MSG " and bear you off to rot in a dungeon.">
|
|
|
|
<ROUTINE RT-ATTACK-LOT ()
|
|
<TELL
|
|
"As you approach the King, his guards quickly close around you"
|
|
>
|
|
<COND
|
|
(<IN? ,TH-BRACELET ,CH-PLAYER>
|
|
<TELL ,K-TAKE-BRACELET-MSG>
|
|
)
|
|
>
|
|
<TELL ,K-BEAR-OFF-MSG CR>
|
|
<RT-END-OF-GAME>
|
|
>
|
|
|
|
<ROUTINE RT-LOT-IGNORE-MSG ()
|
|
<TELL "Lot ignores you">
|
|
<COND
|
|
(<MC-HERE? ,RM-GREAT-HALL>
|
|
<TELL ", and continues to talk with his courtiers." CR>
|
|
)
|
|
(<AND <MC-HERE? ,RM-FIELD-OF-HONOUR>
|
|
<NOT <FSET? ,CH-LOT ,FL-LOCKED>>
|
|
>
|
|
<TELL ", and ">
|
|
<COND
|
|
(<FSET? ,CH-LOT ,FL-BROKEN>
|
|
<TELL "examines the bracelet." CR>
|
|
)
|
|
(T
|
|
<TELL "continues his attack." CR>
|
|
)
|
|
>
|
|
)
|
|
(T
|
|
<TELL "." CR>
|
|
)
|
|
>
|
|
>
|
|
|
|
;<ROUTINE RT-GN-KING-LOT (TBL FINDER)
|
|
<RETURN ,CH-LOT>
|
|
>
|
|
|
|
<ROUTINE RT-MOVE-TAPESTRY ("OPT" (QUIET <>))
|
|
<COND
|
|
(.QUIET
|
|
<RFALSE>
|
|
)
|
|
(T
|
|
<TELL
|
|
"You edge around to the side of the throne, but as soon as you start to pull
|
|
aside the tapestry, the King gives a surreptitious hand-signal. His guards
|
|
quickly close around you"
|
|
>
|
|
<COND
|
|
(<IN? ,TH-BRACELET ,CH-PLAYER>
|
|
<TELL ,K-TAKE-BRACELET-MSG>
|
|
)
|
|
>
|
|
<TELL ,K-BEAR-OFF-MSG CR>
|
|
<RT-END-OF-GAME>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "TH-LOT-SWORD"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT TH-LOT-SWORD
|
|
(LOC CH-LOT)
|
|
(DESC "sword")
|
|
(FLAGS FL-NO-DESC FL-TRY-TAKE)
|
|
(SYNONYM SWORD)
|
|
(OWNER CH-LOT)
|
|
(GENERIC RT-GN-SWORD)
|
|
(ACTION RT-TH-LOT-SWORD)
|
|
>
|
|
|
|
<ROUTINE RT-TH-LOT-SWORD ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<AND <VERB? ATTACK>
|
|
<MC-HERE? ,RM-FIELD-OF-HONOUR>
|
|
>
|
|
<COND
|
|
(<AND <NOT <FSET? ,CH-LOT ,FL-LOCKED>>
|
|
<NOT <FSET? ,CH-LOT ,FL-BROKEN>>
|
|
>
|
|
<RT-DEQUEUE ,RT-I-FIGHT>
|
|
<RT-I-FIGHT>
|
|
)
|
|
>
|
|
)
|
|
(<AND <TOUCH-VERB?>
|
|
<MC-HERE? ,RM-GREAT-HALL>
|
|
>
|
|
<RT-ATTACK-LOT>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "CH-COURTIERS"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT CH-COURTIERS
|
|
(LOC RM-GREAT-HALL)
|
|
(FLAGS FL-ALIVE FL-HAS-SDESC FL-NO-DESC FL-OPEN FL-PERSON FL-SEARCH FL-PLURAL)
|
|
(SYNONYM COURTIER COURTIERS MOB CROWD PEOPLE)
|
|
(ADJECTIVE NERVOUS CHEERING)
|
|
(OWNER CH-LOT)
|
|
(ACTION RT-CH-COURTIERS)
|
|
>
|
|
|
|
<ROUTINE RT-CH-COURTIERS ("OPT" (CONTEXT <>) (ART <>) (CAP? <>))
|
|
<COND
|
|
(<MC-CONTEXT? ,M-OBJDESC>
|
|
<COND
|
|
(.ART
|
|
<PRINT-ARTICLE ,CH-SOLDIERS .ART .CAP?>
|
|
)
|
|
>
|
|
<COND
|
|
(<EQUAL? .ART <> ,K-ART-THE ,K-ART-A ,K-ART-ANY>
|
|
<COND
|
|
(.ART
|
|
<TELL " ">
|
|
)
|
|
>
|
|
<COND
|
|
(<IN? ,CH-COURTIERS ,RM-GREAT-HALL>
|
|
<TELL "courtiers">
|
|
)
|
|
(T
|
|
<TELL "mob">
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<MC-CONTEXT? ,M-WINNER>
|
|
<TELL The+verb ,CH-COURTIERS "ignore" " you." CR>
|
|
)
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(,NOW-PRSI
|
|
<RFALSE>
|
|
)
|
|
(<AND <VERB? TELL>
|
|
,P-CONT
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(<AND <SPEAKING-VERB?>
|
|
<IN? ,CH-COURTIERS ,HERE>
|
|
>
|
|
<TELL The+verb ,CH-COURTIERS "ignore" " you." CR>
|
|
)
|
|
(<VERB? EXAMINE>
|
|
<FSET ,CH-COURTIERS ,FL-SEEN>
|
|
<THIS-IS-IT ,CH-COURTIERS>
|
|
<COND
|
|
(<MC-HERE? ,RM-GREAT-HALL>
|
|
<TELL
|
|
The+verb ,CH-COURTIERS "chatter" " amongst themselves nervously. Clearly
|
|
they are afraid of King Lot." CR
|
|
>
|
|
)
|
|
(<AND <NOT <FSET? ,CH-LOT ,FL-BROKEN>>
|
|
<NOT <FSET? ,CH-LOT ,FL-LOCKED>>
|
|
>
|
|
<TELL
|
|
The+verb ,CH-COURTIERS "are" " anxiously awaiting the outcome of the
|
|
battle." CR
|
|
>
|
|
)
|
|
(T
|
|
<TELL The+verb ,CH-COURTIERS "are" " cheering wildly." CR>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? ATTACK>
|
|
<COND
|
|
(<MC-HERE? ,RM-GREAT-HALL>
|
|
<TELL
|
|
"You leap upon the back of one of" the ,CH-COURTIERS " and yell, \"Die you
|
|
mangy dog!\" Unfortunately, the guards quickly overwhelm you and carry you
|
|
off to a cold, dark dungeon where you spend the rest of your days counting
|
|
the hairs on your arm." CR
|
|
>
|
|
<RT-END-OF-GAME>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "LG-OWL-TAPESTRY"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<OBJECT LG-OWL-TAPESTRY
|
|
(LOC LOCAL-GLOBALS)
|
|
(DESC "tapestry")
|
|
(SYNONYM TAPESTRY)
|
|
(ACTION RT-LG-OWL-TAPESTRY)
|
|
>
|
|
|
|
<ROUTINE RT-LG-OWL-TAPESTRY ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
(<AND <MC-HERE? ,RM-GREAT-HALL>
|
|
<OR
|
|
<TOUCH-VERB?>
|
|
<VERB? LOOK-BEHIND>
|
|
>
|
|
>
|
|
<RT-MOVE-TAPESTRY>
|
|
)
|
|
(<VERB? EXAMINE>
|
|
<FSET ,LG-OWL-TAPESTRY ,FL-SEEN>
|
|
<COND
|
|
(<MC-HERE? ,RM-BEHIND-THRONE>
|
|
<TELL "It's hard to tell from the back, but it looks like">
|
|
)
|
|
(T
|
|
<TELL The ,LG-OWL-TAPESTRY " is">
|
|
)
|
|
>
|
|
<TELL
|
|
" a hunting scene of men in armour mercilessly hunting down owls." CR
|
|
>
|
|
)
|
|
(<VERB? MOVE LOOK-BEHIND>
|
|
<TELL
|
|
"One of Lot's soldiers sees you behind the tapestry, and "
|
|
>
|
|
<COND
|
|
(<MC-FORM? ,K-FORM-ARTHUR>
|
|
<TELL "they quickly close around you">
|
|
<COND
|
|
(<AND <FSET? ,TH-BRACELET ,FL-WORN>
|
|
<IN? ,TH-BRACELET ,CH-PLAYER>
|
|
>
|
|
<TELL ,K-TAKE-BRACELET-MSG>
|
|
)
|
|
>
|
|
<TELL ,K-BEAR-OFF-MSG CR>
|
|
)
|
|
(T
|
|
<TELL "says," ,K-LOVERLY-MSG form ,K-SKEWER-MSG>
|
|
)
|
|
>
|
|
<RT-END-OF-GAME>
|
|
)
|
|
(<VERB? ENTER>
|
|
<COND
|
|
(<MC-HERE? ,RM-BEHIND-THRONE>
|
|
<RT-DO-WALK ,P?WEST>
|
|
)
|
|
(<MC-HERE? ,RM-GREAT-HALL>
|
|
<RT-DO-WALK ,P?EAST>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"---------------------------------------------------------------------------"
|
|
; "RM-BEHIND-THRONE"
|
|
;"---------------------------------------------------------------------------"
|
|
|
|
<ROOM RM-BEHIND-THRONE
|
|
(LOC ROOMS)
|
|
(DESC "behind the throne")
|
|
(FLAGS FL-INDOORS FL-LIGHTED)
|
|
(SOUTH TO RM-PASSAGE-2)
|
|
(DOWN TO RM-PASSAGE-2)
|
|
(WEST PER RT-EXIT-THRONE)
|
|
(OUT PER RT-EXIT-THRONE)
|
|
(GLOBAL LG-OWL-TAPESTRY LG-WALL)
|
|
(ACTION RT-RM-BEHIND-THRONE)
|
|
(THINGS
|
|
KING (KING LOT COURTIER COURTIERS CONVERSATION THRONE) RT-PS-FAKE-LOT
|
|
)
|
|
>
|
|
|
|
<ROUTINE RT-RM-BEHIND-THRONE ("OPT" (CONTEXT <>))
|
|
<COND
|
|
(<MC-CONTEXT? ,M-BEG>
|
|
<COND
|
|
(<AND <VERB? LISTEN>
|
|
<MC-PRSO? <> ,ROOMS ,LG-OWL-TAPESTRY>
|
|
>
|
|
<RT-LISTEN-LOT>
|
|
)
|
|
; (<AND <VERB? TELL>
|
|
,P-CONT
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(<SPEAKING-VERB?>
|
|
<TELL
|
|
"Lot's guards hear you, dive through the tapestry, and seize you. Your
|
|
quest has ended.|"
|
|
>
|
|
<RT-END-OF-GAME>
|
|
)
|
|
>
|
|
)
|
|
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
|
|
<COND
|
|
(<MC-CONTEXT? ,M-LOOK>
|
|
<TELL "You are" standing " in">
|
|
)
|
|
(T
|
|
<TELL "The passage widens out and becomes">
|
|
)
|
|
>
|
|
<FSET ,LG-OWL-TAPESTRY ,FL-SEEN>
|
|
<TELL
|
|
" a small room. A tapestry covers the west wall and a dark passage leads down
|
|
to the south. You hear someone talking on the other side of the tapestry"
|
|
>
|
|
<COND
|
|
(<NOT <MC-CONTEXT? ,M-LOOK>>
|
|
<TELL
|
|
", and after a few moments you realize you are in a secret room directly
|
|
behind King Lot's throne in the Great Hall"
|
|
>
|
|
)
|
|
>
|
|
<TELL "." CR>
|
|
<RFALSE>
|
|
)
|
|
(<MC-CONTEXT? ,M-ENTER>
|
|
<SETG GL-PICTURE-NUM ,K-PIC-PASSAGE>
|
|
<COND
|
|
(<EQUAL? ,GL-WINDOW-TYPE ,K-WIN-PICT>
|
|
<RT-UPDATE-PICT-WINDOW>
|
|
)
|
|
>
|
|
<RFALSE>
|
|
)
|
|
(.CONTEXT
|
|
<RFALSE>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-LISTEN-LOT ()
|
|
<TELL
|
|
"You can hear" the ,CH-LOT " discussing inconsequential matters with his
|
|
courtiers." CR
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-PS-FAKE-LOT ("OPT" (CONTEXT <>) (ART <>) (CAP? <>))
|
|
<COND
|
|
(<NOUN-USED? ,PSEUDO-OBJECT ,W?COURTIER ,W?COURTIERS>
|
|
<FSET ,PSEUDO-OBJECT ,FL-PLURAL>
|
|
)
|
|
(T
|
|
<FCLEAR ,PSEUDO-OBJECT ,FL-PLURAL>
|
|
)
|
|
>
|
|
<FCLEAR ,PSEUDO-OBJECT ,FL-VOWEL>
|
|
<COND
|
|
(<MC-CONTEXT? ,M-OBJDESC>
|
|
<FCLEAR ,PSEUDO-OBJECT ,FL-VOWEL>
|
|
<COND
|
|
(.ART
|
|
<COND
|
|
(<OR <NOUN-USED? ,PSEUDO-OBJECT ,W?COURTIER ,W?COURTIERS>
|
|
<NOT <EQUAL? .ART ,K-ART-THE ,K-ART-A ,K-ART-ANY>>
|
|
>
|
|
<PRINT-ARTICLE ,PSEUDO-OBJECT .ART .CAP?>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
<COND
|
|
(<EQUAL? .ART <> ,K-ART-THE ,K-ART-A ,K-ART-ANY>
|
|
<COND
|
|
(.ART
|
|
<TELL " ">
|
|
)
|
|
>
|
|
<COND
|
|
(<NOUN-USED? ,PSEUDO-OBJECT ,W?COURTIER ,W?COURTIERS>
|
|
<TELL "courtiers">
|
|
)
|
|
(T
|
|
<TELL D ,CH-LOT>
|
|
)
|
|
>
|
|
)
|
|
>
|
|
)
|
|
(<VERB? LISTEN>
|
|
<RT-LISTEN-LOT>
|
|
)
|
|
(<SEE-VERB?>
|
|
<TELL
|
|
"You can't see" the ,PSEUDO-OBJECT ". " He+verb ,PSEUDO-OBJECT "are" " on the
|
|
other side of the tapestry." CR
|
|
>
|
|
)
|
|
(<TOUCH-VERB?>
|
|
<TELL
|
|
"As soon as you brush aside the tapestry, Lot's guards seize you. Your
|
|
quest is ended.|"
|
|
>
|
|
<RT-END-OF-GAME>
|
|
)
|
|
>
|
|
>
|
|
|
|
<ROUTINE RT-EXIT-THRONE ("OPT" (QUIET <>))
|
|
<COND
|
|
(.QUIET
|
|
<RETURN ,RM-GREAT-HALL>
|
|
)
|
|
(T
|
|
<TELL "As soon as you">
|
|
<COND
|
|
(<IN? ,CH-PRISONER ,HERE>
|
|
<TELL " and the prisoner">
|
|
)
|
|
>
|
|
<TELL " emerge from behind the tapestry,">
|
|
<COND
|
|
(<MC-FORM? ,K-FORM-ARTHUR>
|
|
<TELL " you are seized by Lot's guards.">
|
|
<COND
|
|
(<AND <FSET? ,TH-BRACELET ,FL-WORN>
|
|
<IN? ,TH-BRACELET ,CH-PLAYER>
|
|
>
|
|
<TELL ,K-TAKE-BRACELET-MSG>
|
|
)
|
|
>
|
|
<CRLF>
|
|
)
|
|
(T
|
|
<COND
|
|
(<IN? ,CH-PRISONER ,HERE>
|
|
<TELL
|
|
" the guards " ,K-REMOVE-PRISONER-MSG " In the process, one of them notices">
|
|
)
|
|
(T
|
|
<TELL " one of the guards sees">
|
|
)
|
|
>
|
|
<TELL " you and says" ,K-LOVERLY-MSG form ,K-SKEWER-MSG>
|
|
)
|
|
>
|
|
<RT-END-OF-GAME>
|
|
)
|
|
>
|
|
>
|
|
|
|
;"***************************************************************************"
|
|
; "end of file"
|
|
;"***************************************************************************"
|
|
|
|
|