mirror of
https://github.com/historicalsource/sherlock
synced 2024-07-08 01:24:42 +03:00
424 lines
14 KiB
Plaintext
424 lines
14 KiB
Plaintext
|
;*****************************************************************************
|
||
|
; "game : SHERLOCK!"
|
||
|
; "file : TOWER.ZIL"
|
||
|
; "auth : $Author: DEB $"
|
||
|
; "date : $Date: 28 Oct 1987 17:00:32 $"
|
||
|
; "revs : $Revision: 1.45 $"
|
||
|
; "vers : 1.00"
|
||
|
;*****************************************************************************
|
||
|
|
||
|
; "EAST from RM-BYWARD-TOWER to RM-OUTER-WARD"
|
||
|
; "WEST from RM-BYWARD-TOWER to RM-DRAWBRIDGE"
|
||
|
|
||
|
<ROUTINE RT-EX-RM-EXIT-BYWARD-TOWER ()
|
||
|
<COND (<MC-PRSO? P?EAST P?IN>
|
||
|
<COND (<T? ,ALLOW-IN-TOWER>
|
||
|
<TELL "The guard nods as you pass." CR>
|
||
|
<RETURN ,RM-OUTER-WARD>)>
|
||
|
<TELL
|
||
|
"The guard steps into your path and says, \"I am sorry but you cannot go
|
||
|
in unless you can tell me the password.\"" CR>
|
||
|
<RFALSE>)
|
||
|
(<MC-PRSO? P?WEST P?OUT>
|
||
|
<COND (<EQUAL? ,GL-PLACE-PRV ,RM-DRAWBRIDGE>
|
||
|
<RETURN ,RM-DRAWBRIDGE>)
|
||
|
(T
|
||
|
<TELL
|
||
|
"The guard blocks your path and says, \"I am sorry, but I am under strict
|
||
|
orders not to allow anyone to leave the Tower.\"" CR>
|
||
|
<RFALSE>)>)>>
|
||
|
|
||
|
<OBJECT CH-TOWER-GUARD
|
||
|
(LOC RM-BYWARD-TOWER)
|
||
|
(DESC "beefeater")
|
||
|
(FLAGS FL-ALIVE FL-PERSON FL-TRYTAKE FL-NOALL FL-LOCKED FL-NODESC)
|
||
|
(SYNONYM GUARD YEOMAN BEEFEATER)
|
||
|
(ADJECTIVE TOWER)
|
||
|
(SIZE 99 CAPACITY 20)
|
||
|
(ACTION RT-AC-CH-TOWER-GUARD)>
|
||
|
|
||
|
<ROUTINE RT-AC-CH-TOWER-GUARD ("OPTIONAL" (CONTEXT <>))
|
||
|
<DEBUGGING? <RT-DEBUG-CH-AC "TOWER-GUARD" .CONTEXT>>
|
||
|
<COND (<MC-THIS-WINNER?>
|
||
|
<COND (<MC-VERB? BOLEYN CLEVES HOWARD PARR ARAGON SEYMOUR PASSWORD>
|
||
|
<RFALSE>)
|
||
|
(T
|
||
|
<TELL "The guard stares at you impassively." CR>)>)
|
||
|
(<MC-THIS-PRSI?>
|
||
|
<RFALSE>)
|
||
|
(<MC-THIS-PRSO?>
|
||
|
<RFALSE>)>>
|
||
|
|
||
|
<OBJECT TH-MALMSEY
|
||
|
(LOC TH-BUTT-OF-MALMSEY)
|
||
|
(DESC "malmsey")
|
||
|
(FLAGS FL-PLURAL FL-COLLECTIVE FL-TRYTAKE FL-FOOD)
|
||
|
(SYNONYM MALMSEY WINE)
|
||
|
(ACTION RT-AC-TH-MALMSEY)>
|
||
|
|
||
|
<OBJECT TH-MALMSEY-POOL
|
||
|
(DESC "pool of malmsey")
|
||
|
(FLAGS FL-TRYTAKE FL-FOOD)
|
||
|
(SYNONYM MALMSEY WINE POOL)
|
||
|
(ADJECTIVE POOL)
|
||
|
(ACTION RT-AC-TH-MALMSEY-POOL)>
|
||
|
|
||
|
<OBJECT TH-BUTT-OF-MALMSEY
|
||
|
(LOC RM-BOWYER-TOWER)
|
||
|
;(DESC "butt of malmsey")
|
||
|
(FLAGS FL-TRYTAKE FL-CONTAINER FL-OPENED FL-NODESC
|
||
|
FL-HAS-SDESC FL-HAS-DESCFCN)
|
||
|
(SYNONYM BUTT KEG BARREL)
|
||
|
(ADJECTIVE BUTT KEG BARREL MALMSEY)
|
||
|
(SIZE 50 MASS 50 CAPACITY 50)
|
||
|
(ACTION RT-AC-TH-BUTT-OF-MALMSEY)>
|
||
|
|
||
|
<OBJECT TH-GARNET
|
||
|
(DESC "garnet")
|
||
|
(FLAGS FL-TAKEABLE FL-READABLE FL-SURFACE FL-MONEY
|
||
|
FL-HAS-DESCFCN FL-HAS-SDESC FL-NEEDS-IDENTITY FL-LOSE-IDENTITY)
|
||
|
(OBJ-ADJ 0)
|
||
|
(OBJ-NOUN 0)
|
||
|
(SYNONYM GARNET GEM GEMS SCRATCH)
|
||
|
(ADJECTIVE GARNET GARNET\'S)
|
||
|
(VALUE 5)
|
||
|
(SIZE 1 MASS 1 CAPACITY 1)
|
||
|
(GENERIC RT-GN-GEM)
|
||
|
(ACTION RT-AC-TH-GARNET)>
|
||
|
|
||
|
<OBJECT TH-BUNG
|
||
|
(LOC TH-BUTT-OF-MALMSEY)
|
||
|
(DESC "bung")
|
||
|
(FLAGS FL-TAKEABLE FL-TRYTAKE FL-NODESC)
|
||
|
(SYNONYM BUNG STOPPER CORK)
|
||
|
(SIZE 3 MASS 3)
|
||
|
(ACTION RT-AC-TH-BUNG)>
|
||
|
|
||
|
<OBJECT TH-MACE
|
||
|
(LOC RM-JEWEL-ROOM)
|
||
|
(DESC "mace")
|
||
|
(FLAGS FL-TAKEABLE FL-WEAPON FL-HAS-DESCFCN)
|
||
|
(SYNONYM MACE WEAPON)
|
||
|
(VALUE 1)
|
||
|
(SIZE 15 MASS 15)
|
||
|
(ACTION RT-AC-TH-MACE)>
|
||
|
|
||
|
<OBJECT TH-PORTCULLIS-CHAIN
|
||
|
(LOC RM-INSIDE-TRAITORS-GATE)
|
||
|
(DESC "chain")
|
||
|
(FLAGS FL-TRYTAKE FL-NODESC FL-HAS-DESCFCN)
|
||
|
(SYNONYM CHAIN)
|
||
|
(ADJECTIVE PORTCULLIS)
|
||
|
(ACTION RT-AC-TH-PORTCULLIS-CHAIN)>
|
||
|
|
||
|
<OBJECT TH-SUIT-OF-ARMOUR
|
||
|
(LOC RM-DUNGEON)
|
||
|
(DESC "suit of armour")
|
||
|
(FLAGS FL-TAKEABLE FL-CLOTHING FL-CONTAINER FL-OPENED
|
||
|
FL-HAS-DESCFCN)
|
||
|
(SYNONYM ARMOUR SUIT ARMOR)
|
||
|
(ADJECTIVE SUIT ARMOUR ARMOR)
|
||
|
(SIZE 100 CAPACITY 999)
|
||
|
(ACTION RT-AC-TH-SUIT-OF-ARMOUR)>
|
||
|
|
||
|
<ROUTINE RT-AC-TH-MALMSEY ()
|
||
|
<DEBUGGING? <RT-DEBUG-TH-AC "TH-MALMSEY">>
|
||
|
<COND (<MC-THIS-PRSO?>
|
||
|
<SETG GL-P-IT-OBJECT ,TH-MALMSEY>)>
|
||
|
<COND (<MC-THIS-PRSI?>
|
||
|
<RFALSE>)
|
||
|
(<MC-THIS-PRSO?>
|
||
|
<COND (<MC-VERB? DRINK DRINK-FROM EAT DRINK>
|
||
|
<TELL ,K-TIPSY-MSG CR>)
|
||
|
(<MC-VERB? SHOOT>
|
||
|
<TELL ,K-BULLET-MSG>
|
||
|
<RT-EMPTY-BUTT-MSG>)>)>>
|
||
|
|
||
|
<ROUTINE RT-AC-TH-MALMSEY-POOL ()
|
||
|
<DEBUGGING? <RT-DEBUG-TH-AC "TH-MALMSEY-POOL">>
|
||
|
<COND (<MC-THIS-PRSI?>
|
||
|
<RFALSE>)
|
||
|
(<MC-THIS-PRSO?>
|
||
|
<COND (<MC-VERB? DRINK DRINK-FROM EAT TASTE>
|
||
|
<TELL
|
||
|
"You get down on all fours and lap up some of the wine. Yuch!" CR>)
|
||
|
(<MC-VERB? SHOOT>
|
||
|
<RT-WHY-SHOOT-MSG>)>)>>
|
||
|
|
||
|
<ROUTINE RT-AC-TH-BUTT-OF-MALMSEY ("OPT" (CONTEXT <>))
|
||
|
<DEBUGGING? <RT-DEBUG-TH-AC "TH-BUTT-OF-MALMSEY">>
|
||
|
<COND (<==? .CONTEXT ,K-M-SDESC>
|
||
|
<COND (<FSET? ,TH-BUTT-OF-MALMSEY ,FL-BROKEN>
|
||
|
<TELL "empty ">)>
|
||
|
<TELL "butt of malmsey">
|
||
|
<RTRUE>)
|
||
|
(<==? .CONTEXT ,K-M-DESCFCN>
|
||
|
<COND (<FSET? ,TH-BUTT-OF-MALMSEY ,FL-BROKEN>
|
||
|
<RFALSE>)
|
||
|
(T
|
||
|
<TELL
|
||
|
"It's an old wooden keg that's brimming over with malmsey and covered with
|
||
|
stains where the wine has spilled down the sides and leaked through the
|
||
|
bung." CR>
|
||
|
<RTRUE>)>)>
|
||
|
<COND (<FSET? ,TH-BUTT-OF-MALMSEY ,FL-BROKEN>
|
||
|
<RT-AC-TH-EMPTY-BUTT-OF-MALMSEY>)
|
||
|
(<MC-THIS-PRSI?>
|
||
|
<RFALSE>)
|
||
|
(<MC-THIS-PRSO?>
|
||
|
<COND (<MC-VERB? DRINK>
|
||
|
<TELL ,K-TIPSY-MSG CR>)
|
||
|
(<MC-VERB? DRINK-FROM>
|
||
|
<TELL "You take a sip. It tastes like Malmsey." CR>)
|
||
|
(<MC-VERB? FLIP PUSH TIP PUSH-TO LOOSEN>
|
||
|
<TELL CTHEO " is much too heavy to move." CR>)
|
||
|
(<MC-VERB? SHOOT>
|
||
|
<TELL ,K-BULLET-MSG>
|
||
|
<RT-EMPTY-BUTT-MSG>)
|
||
|
(<MC-VERB? REACH-IN>
|
||
|
<RT-CYOU-MSG "stick" "sticks">
|
||
|
<TELL
|
||
|
"an arm down into the malmsey, but">
|
||
|
<RT-YOU-MSG "come" "comes" T>
|
||
|
<TELL "up empty." CR>)>)>>
|
||
|
|
||
|
<ROUTINE RT-AC-TH-EMPTY-BUTT-OF-MALMSEY ()
|
||
|
<DEBUGGING? <RT-DEBUG-TH-AC "TH-EMPTY-BUTT-OF-MALMSEY">>
|
||
|
<COND (<MC-THIS-PRSI?>
|
||
|
<RFALSE>)
|
||
|
(<MC-THIS-PRSO?>
|
||
|
<COND (<MC-VERB? DRINK DRINK-FROM>
|
||
|
<TELL "Too bad. All gone." CR>)
|
||
|
(<MC-VERB? FLIP>
|
||
|
<TELL "That would">
|
||
|
<RT-WASTE-OF-TIME-MSG>)>)>>
|
||
|
|
||
|
<ROUTINE RT-EMPTY-BUTT-MSG ()
|
||
|
<REMOVE ,TH-MALMSEY>
|
||
|
;<REMOVE ,TH-BUTT-OF-MALMSEY>
|
||
|
<MOVE ,TH-GARNET ,TH-BUTT-OF-MALMSEY>
|
||
|
<MOVE ,TH-MALMSEY-POOL ,RM-BOWYER-TOWER>
|
||
|
;<MOVE ,TH-EMPTY-BUTT-OF-MALMSEY ,RM-BOWYER-TOWER>
|
||
|
<FSET ,TH-BUTT-OF-MALMSEY ,FL-BROKEN>
|
||
|
<MOVE ,TH-BUNG ,RM-BOWYER-TOWER>
|
||
|
<TELL
|
||
|
" flies across the room and lands in the corner. " CTHE ,TH-MALMSEY " streams
|
||
|
out of the butt and across the floor. Soon the keg is completely empty, and
|
||
|
there's wine all over the floor." CR>>
|
||
|
|
||
|
<ROUTINE RT-AC-TH-BUNG ()
|
||
|
<DEBUGGING? <RT-DEBUG-TH-AC "TH-BUNG">>
|
||
|
<COND (<MC-THIS-PRSI?>
|
||
|
<RFALSE>)
|
||
|
(<MC-THIS-PRSO?>
|
||
|
<COND (<MC-VERB? TAKE PULL LOOSEN UNPLUG RELEASE>
|
||
|
<COND (<IN? ,TH-BUNG ,TH-BUTT-OF-MALMSEY>
|
||
|
<TELL "You can't. It's jammed in too tight." CR>)>)
|
||
|
(<MC-VERB? PUT>
|
||
|
<COND (<AND <MC-PRSI? ,TH-BUTT-OF-MALMSEY>
|
||
|
<FSET? ,GL-PRSI ,FL-BROKEN>>
|
||
|
<TELL "Don't you think it's pretty pointless to try to stopper up an empty keg?" CR>)>)
|
||
|
(<MC-VERB? HIT>
|
||
|
<COND (<IN? ,TH-BUNG ,TH-BUTT-OF-MALMSEY>
|
||
|
<COND (<MC-PRSI? ,TH-HANDS>
|
||
|
<TELL "Your hands aren't nearly strong enough
|
||
|
to remove the stopper by themselves." CR>)
|
||
|
(<MC-PRSI? ,TH-MACE>
|
||
|
<TELL CTHE ,TH-BUNG>
|
||
|
<RT-EMPTY-BUTT-MSG>)>)>)
|
||
|
(<MC-VERB? SHOOT>
|
||
|
<COND (<IN? ,TH-BUNG ,TH-BUTT-OF-MALMSEY>
|
||
|
<TELL ,K-BULLET-MSG>
|
||
|
<RT-EMPTY-BUTT-MSG>)>)>)>>
|
||
|
|
||
|
<ROUTINE RT-AC-TH-GARNET ("OPT" (CONTEXT <>))
|
||
|
<COND (<==? <GETP ,TH-GARNET ,P?OBJ-NOUN> ,W?SCRATCH>
|
||
|
<RT-HANDLE-SCRATCH ,TH-GARNET .CONTEXT>)
|
||
|
(T
|
||
|
<COND (<==? .CONTEXT ,K-M-SDESC>
|
||
|
<TELL "garnet">
|
||
|
<RTRUE>)
|
||
|
(<==? .CONTEXT ,K-M-DESCFCN>
|
||
|
<RT-EXAMINE-GEM ,TH-GARNET>
|
||
|
<RTRUE>)
|
||
|
(<T? .CONTEXT> <RFALSE>)
|
||
|
(<MC-THIS-PRSI?>
|
||
|
<RFALSE>)
|
||
|
(<MC-THIS-PRSO?>
|
||
|
<COND (<RT-EXAMINE-GEM ,TH-GARNET>
|
||
|
<RTRUE>)
|
||
|
(<MC-VERB? TAKE>
|
||
|
<COND (<IN? ,TH-GARNET ,TH-BUTT-OF-MALMSEY>
|
||
|
<TELL
|
||
|
"You can't. Your shoulders are too broad, and your arms are too short
|
||
|
for you to reach to the bottom of the butt." CR>)>)>)>)>>
|
||
|
|
||
|
<ROUTINE RT-AC-TH-MACE ("OPT" (CONTEXT <>))
|
||
|
<DEBUGGING? <RT-DEBUG-TH-AC "TH-MACE">>
|
||
|
<COND (<==? .CONTEXT ,K-M-DESCFCN>
|
||
|
<TELL
|
||
|
"It's a huge, medieval mace that some medieval knight probably used for
|
||
|
knocking other knights off horses." CR>
|
||
|
<RTRUE>)
|
||
|
(<MC-THIS-PRSI?>
|
||
|
<COND (<MC-PRSO? CH-WIGGINS>
|
||
|
<COND (<FSET? ,GL-PRSO ,FL-ASLEEP>
|
||
|
<TELL "If he could, Wiggins
|
||
|
would dance nimbly out of harm's way and cry \"'Ere! Steady on, mate!\"
|
||
|
Assault and battery on your friends is probably not the way to go." CR>
|
||
|
<RTRUE>)>
|
||
|
<TELL
|
||
|
"Wiggins dances nimbly out of harm's way and cries, \"'Ere! Steady on,
|
||
|
mate!\"" CR>)
|
||
|
(<AND <MC-PRSO? ,TH-SUIT-OF-ARMOUR>
|
||
|
<MC-ISNOT? ,TH-SUIT-OF-ARMOUR ,FL-WORN>>
|
||
|
<TELL
|
||
|
"Did you really think beating up on an empty suit of armour was going to
|
||
|
get you anywhere?" CR>)>)
|
||
|
(<MC-THIS-PRSO?>
|
||
|
<COND (<MC-VERB? SHOOT>
|
||
|
<TELL ,K-RICOCHET-MSG CR>)>)>>
|
||
|
|
||
|
<ROUTINE RT-AC-TH-PORTCULLIS-CHAIN ("OPT" (CONTEXT <>))
|
||
|
<DEBUGGING? <RT-DEBUG-TH-AC "TH-PORTCULLIS-CHAIN">>
|
||
|
<COND (<==? .CONTEXT ,K-M-DESCFCN>
|
||
|
<TELL "The chain is hanging just within reach." CR>)
|
||
|
(<MC-THIS-PRSI?>
|
||
|
<RFALSE>)
|
||
|
(<MC-THIS-PRSO?>
|
||
|
<COND (<MC-VERB? PULL LOWER LOOSEN PUSH-TO>
|
||
|
<COND (<MC-IS? ,LG-PORTCULLIS-DOOR ,FL-OPENED>
|
||
|
<TELL "The gate is already up." CR>)
|
||
|
(T
|
||
|
<COND (<MC-ISNOT? ,TH-SUIT-OF-ARMOUR ,FL-WORN>
|
||
|
<TELL
|
||
|
"You pull on the chain but the portcullis doesn't budge." CR>)
|
||
|
(T
|
||
|
<MC-MAKE ,LG-PORTCULLIS-DOOR ,FL-OPENED>
|
||
|
<MC-MAKE ,LG-PORTCULLIS-DOOR ,FL-LOCKED>
|
||
|
<IFSOUND <SOUNDS ,S-ARMOR>>
|
||
|
<TELL
|
||
|
"You grab the chain and lift your feet off the ground. The portcullis'
|
||
|
ancient mechanism creaks, but then it rises up and locks into place. When
|
||
|
you release the chain, the massive gate remains open." CR>
|
||
|
<RT-UPDATE-SCORE 1>
|
||
|
<RTRUE>)>)>)
|
||
|
(<MC-VERB? SHOOT>
|
||
|
<TELL ,K-RICOCHET-MSG CR>)>)>>
|
||
|
|
||
|
<ROUTINE RT-AC-TH-SUIT-OF-ARMOUR ("OPT" (CONTEXT <>))
|
||
|
<DEBUGGING? <RT-DEBUG-TH-AC "TH-SUIT-OF-ARMOUR">>
|
||
|
<COND (<==? .CONTEXT ,K-M-DESCFCN>
|
||
|
<TELL
|
||
|
"The suit of armour was made for Henry VIII." CR>)
|
||
|
(<MC-THIS-PRSI?>
|
||
|
<COND (<MC-VERB? PUT>
|
||
|
<TELL "That would">
|
||
|
<RT-WASTE-OF-TIME-MSG>)
|
||
|
(<AND <MC-VERB? TAKE>
|
||
|
<MC-IS? ,TH-SUIT-OF-ARMOUR ,FL-WORN>>
|
||
|
<RT-CYOU-MSG>
|
||
|
<RT-WOULD-HAVE-TO-MSG "take off" ,TH-SUIT-OF-ARMOUR>
|
||
|
<TELL " first." CR>)>)
|
||
|
(<MC-THIS-PRSO?>
|
||
|
<COND (<MC-VERB? TAKE>
|
||
|
<COND (<EQUAL? ,GL-WINNER ,CH-WIGGINS>
|
||
|
<TELL "\"">)>
|
||
|
<TELL "Ooof! It's too heavy to carry.">
|
||
|
<COND (<EQUAL? ,GL-WINNER ,CH-WIGGINS>
|
||
|
<TELL "\"">)>
|
||
|
<CRLF>
|
||
|
<RTRUE>)
|
||
|
(<MC-VERB? WEAR>
|
||
|
<COND (<MC-ISNOT? ,TH-SUIT-OF-ARMOUR ,FL-WORN>
|
||
|
<MOVE ,TH-SUIT-OF-ARMOUR ,CH-PLAYER>
|
||
|
<MC-MAKE ,TH-SUIT-OF-ARMOUR ,FL-WORN>
|
||
|
<IFSOUND <SOUNDS ,S-ARMOR>>
|
||
|
<TELL "You put on the suit of armour." CR>)
|
||
|
(T
|
||
|
<TELL "You're already wearing it." CR>)>)
|
||
|
(<MC-VERB? TAKE-OFF EXIT>
|
||
|
<COND (<MC-IS? ,TH-SUIT-OF-ARMOUR ,FL-WORN>
|
||
|
<MOVE ,TH-SUIT-OF-ARMOUR ,GL-PLACE-CUR>
|
||
|
<MC-UNMAKE ,TH-SUIT-OF-ARMOUR ,FL-WORN>
|
||
|
<IFSOUND <SOUNDS ,S-ARMOR>>
|
||
|
<TELL "You take off the suit of armour and leave it ">
|
||
|
<COND (<MC-HERE? ,RM-THAMES-ONE ,RM-THAMES-TWO
|
||
|
,RM-THAMES-THREE ,RM-THAMES-FOUR
|
||
|
,RM-THAMES-FIVE>
|
||
|
<MOVE ,TH-SUIT-OF-ARMOUR ,TH-BOAT>
|
||
|
<TELL "in the boat">)
|
||
|
(T
|
||
|
<TELL "on ">
|
||
|
<COND (<MC-IS? ,GL-PLACE-CUR ,FL-INDOORS>
|
||
|
<TELL-THE-FLOOR>)
|
||
|
(T
|
||
|
<TELL-THE-GROUND>)>)>
|
||
|
<TELL "." CR>)
|
||
|
(<EQUAL? ,GL-P-PRSA-WORD ,W?LEAVE>
|
||
|
<RFALSE>)
|
||
|
(T
|
||
|
<TELL "You're not wearing it." CR>)>)
|
||
|
(<MC-VERB? SHOOT>
|
||
|
<TELL ,K-RICOCHET-MSG CR>)>)>>
|
||
|
|
||
|
<OBJECT LG-PORTCULLIS-DOOR
|
||
|
(LOC LOCAL-GLOBALS)
|
||
|
(DESC "portcullis")
|
||
|
(FLAGS FL-DOOR FL-OPENABLE FL-TRANSPARENT)
|
||
|
(SYNONYM DOOR PORTCULLIS)
|
||
|
(ADJECTIVE IRON GATE TRAITOR\'S)
|
||
|
(VALUE 5)
|
||
|
(ACTION RT-AC-LG-PORTCULLIS-DOOR)>
|
||
|
|
||
|
<ROUTINE RT-AC-LG-PORTCULLIS-DOOR ()
|
||
|
<DEBUGGING? <RT-DEBUG-LG-AC "LG-PORTCULLIS-DOOR">>
|
||
|
<COND (<MC-THIS-PRSO?>
|
||
|
<COND (<MC-VERB? RAISE OPEN LOOSEN>
|
||
|
<COND (<MC-IS? ,LG-PORTCULLIS-DOOR ,FL-OPENED>
|
||
|
<TELL "The gate is already up." CR>)
|
||
|
(T
|
||
|
<TELL "Oomph. The portcullis is too heavy to lift." CR>)>)
|
||
|
(<MC-VERB? LOOK-INSIDE SEARCH>
|
||
|
<TELL "You look through the gate." CR>
|
||
|
<COND ;(<MC-IS? ,LG-PORTCULLIS-DOOR ,FL-OPENED>
|
||
|
<TELL "You can't do that, the gate is up." CR>)
|
||
|
(<EQUAL? ,GL-PLACE-CUR ,RM-INSIDE-TRAITORS-GATE>
|
||
|
<RT-DESCRIBE-PLACE-CONTENTS ,RM-OUTSIDE-TRAITORS-GATE>)
|
||
|
(<EQUAL? ,GL-PLACE-CUR ,RM-OUTSIDE-TRAITORS-GATE>
|
||
|
<RT-DESCRIBE-PLACE-CONTENTS ,RM-INSIDE-TRAITORS-GATE>)>)
|
||
|
(<MC-VERB? ENTER THROUGH>
|
||
|
<COND (<MC-HERE? ,RM-INSIDE-TRAITORS-GATE>
|
||
|
<RT-DO-WALK ,P?SOUTH>)
|
||
|
(<MC-HERE? ,RM-OUTSIDE-TRAITORS-GATE>
|
||
|
<RT-DO-WALK ,P?NORTH>)>)
|
||
|
(<MC-VERB? CLOSE LOWER>
|
||
|
<COND (<MC-IS? ,LG-PORTCULLIS-DOOR ,FL-OPENED>
|
||
|
<TELL "It's jammed open." CR>)>)
|
||
|
(<MC-VERB? SHOOT>
|
||
|
<TELL ,K-RICOCHET-MSG CR>)
|
||
|
(<MC-VERB? REACH-IN>
|
||
|
<COND (<MC-IS? ,LG-PORTCULLIS-DOOR ,FL-OPENED>
|
||
|
<TELL "Why don't you just walk through the gate? "
|
||
|
CTHE ,LG-PORTCULLIS-DOOR " is open." CR>)
|
||
|
(T
|
||
|
<RT-CYOU-MSG "reach" "reaches">
|
||
|
<TELL "through " THEO
|
||
|
", but can't touch anything on the other side." CR>)>)>)
|
||
|
(<MC-THIS-PRSI?>
|
||
|
<COND (<AND <MC-VERB? THROW>
|
||
|
<MC-VERB-WORD? PUT>
|
||
|
<MC-PRSO? ,TH-HANDS ,TH-FEET>>
|
||
|
<COND (<MC-IS? ,LG-PORTCULLIS-DOOR ,FL-OPENED>
|
||
|
<TELL "Why don't you just walk through the gate? "
|
||
|
CTHE ,LG-PORTCULLIS-DOOR " is open." CR>)
|
||
|
(T
|
||
|
<RT-CYOU-MSG "put" "puts">
|
||
|
<TELL THEO " through " THEI
|
||
|
", but can't reach anything on the other side." CR>)>)
|
||
|
(<MC-VERB? THROW PUT>
|
||
|
<COND (<MC-IS? ,LG-PORTCULLIS-DOOR ,FL-OPENED>
|
||
|
<TELL "Why bother? " CTHE ,LG-PORTCULLIS-DOOR " is open." CR>)>)>)>>
|
||
|
|
||
|
|