mirror of
https://github.com/historicalsource/minizork2-1988
synced 2024-04-28 23:19:43 +03:00
686 lines
18 KiB
Plaintext
686 lines
18 KiB
Plaintext
|
"VOLCANO for
|
|||
|
Mini-Zork II: The Wizard of Frobozz
|
|||
|
(c) Copyright 1988 Infocom, Inc. All Rights Reserved."
|
|||
|
|
|||
|
<GLOBAL BALLOON-TIED <>>
|
|||
|
|
|||
|
<GLOBAL BALLOON-INFLATED <>>
|
|||
|
|
|||
|
<GLOBAL LABEL-REVEALED <>>
|
|||
|
|
|||
|
<ROOM VOLCANO-BOTTOM
|
|||
|
(IN ROOMS)
|
|||
|
(DESC "Volcano Bottom")
|
|||
|
(LDESC
|
|||
|
"You are at the base of a dormant volcano. High above, light enters the
|
|||
|
cone of the volcano. The only exit is east.")
|
|||
|
(EAST TO ICE-ROOM)
|
|||
|
(FLAGS RLANDBIT NONLANDBIT)>
|
|||
|
|
|||
|
<OBJECT RUBY
|
|||
|
(IN VOLCANO-BOTTOM)
|
|||
|
(DESC "ruby")
|
|||
|
(LDESC "On the floor lies a moby ruby.")
|
|||
|
(SYNONYM RUBY TREASURE)
|
|||
|
(ADJECTIVE MOBY)
|
|||
|
(VALUE 15)
|
|||
|
(FLAGS TAKEBIT)>
|
|||
|
|
|||
|
<GLOBAL BALLOON-LOC VOLCANO-BOTTOM> ;"balloon location"
|
|||
|
|
|||
|
<OBJECT BALLOON
|
|||
|
(IN VOLCANO-BOTTOM)
|
|||
|
(DESC "basket")
|
|||
|
(SYNONYM BALLOON BASKET)
|
|||
|
(ADJECTIVE WICKER)
|
|||
|
(CAPACITY 100)
|
|||
|
(SIZE 70)
|
|||
|
(VTYPE 0)
|
|||
|
(FLAGS VEHBIT OPENBIT)
|
|||
|
(DESCFCN BALLOON-F)
|
|||
|
(ACTION BALLOON-F)>
|
|||
|
|
|||
|
<ROUTINE BALLOON-F ("OPTIONAL" (RARG <>) "AUX" M R RC)
|
|||
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|||
|
<COND (,BALLOON-INFLATED
|
|||
|
<TELL "The cloth bag is inflated and ">
|
|||
|
<COND (<FSET? ,RECEPTACLE ,OPENBIT>
|
|||
|
<TELL
|
|||
|
"a " D ,BALLOON-INFLATED " is burning in the">)
|
|||
|
(T
|
|||
|
<TELL "smoke leaks out of the closed">)>
|
|||
|
<TELL " receptacle.">)
|
|||
|
(T
|
|||
|
<TELL
|
|||
|
"The cloth bag is draped over the side of the basket. In the middle of the
|
|||
|
basket is a metal receptacle which is ">
|
|||
|
<COND (<FSET? ,RECEPTACLE ,OPENBIT>
|
|||
|
<TELL "open">
|
|||
|
<SET RC <FIRST? ,RECEPTACLE>>
|
|||
|
<COND (.RC
|
|||
|
<TELL ". A " D .RC " is ">
|
|||
|
<COND (<EQUAL? ,BALLOON-INFLATED .RC>
|
|||
|
<TELL "burning">)
|
|||
|
(T
|
|||
|
<TELL "nestled">)>
|
|||
|
<TELL " inside">)>)
|
|||
|
(T
|
|||
|
<TELL "closed">)>
|
|||
|
<TELL ". A braided wire ">)>
|
|||
|
<COND (,BALLOON-TIED
|
|||
|
<TELL "connects the balloon to the hook.">)
|
|||
|
(T
|
|||
|
<TELL "dangles from the basket.">)>
|
|||
|
<TELL ,PERIOD-CR>)
|
|||
|
(<EQUAL? .RARG ,M-OBJDESC>
|
|||
|
<TELL
|
|||
|
"There is a large heavy wicker basket here. A huge cloth bag is
|
|||
|
attached to the basket and ">
|
|||
|
<COND (,BALLOON-INFLATED
|
|||
|
<TELL "inflated">)
|
|||
|
(T
|
|||
|
<TELL "and draped over the side">)>
|
|||
|
<TELL
|
|||
|
". A metal receptacle is fastened to the center of the basket">
|
|||
|
<COND (,BALLOON-INFLATED
|
|||
|
<COND (<FSET? ,RECEPTACLE ,OPENBIT>
|
|||
|
<TELL
|
|||
|
". In it is a burning " D ,BALLOON-INFLATED>)
|
|||
|
(T
|
|||
|
<TELL ". Smoke leaks from its closed lid">)>)>
|
|||
|
<TELL ". A piece of braided wire ">
|
|||
|
<COND (,BALLOON-TIED
|
|||
|
<TELL
|
|||
|
"tied to the hook holds the balloon in place." CR>)
|
|||
|
(T
|
|||
|
<TELL "dangles from the basket." CR>)>)
|
|||
|
(<EQUAL? .RARG ,M-BEG>
|
|||
|
<COND (<VERB? WALK>
|
|||
|
<COND (<SET M <GETPT ,HERE ,PRSO>>
|
|||
|
<COND (,BALLOON-TIED
|
|||
|
<TELL "You are tied to the ledge." CR>
|
|||
|
<RTRUE>)
|
|||
|
(T
|
|||
|
<AND <EQUAL? <PTSIZE .M> 1>
|
|||
|
<SETG BALLOON-LOC .R>>
|
|||
|
<ENABLE <QUEUE I-BALLOON 3>>
|
|||
|
<RFALSE>)>)
|
|||
|
(T
|
|||
|
<TELL
|
|||
|
"You can't control the balloon this way." CR>
|
|||
|
<RTRUE>)>)
|
|||
|
(<AND <VERB? OPEN>
|
|||
|
,BALLOON-INFLATED
|
|||
|
<EQUAL? ,PRSO ,RECEPTACLE>
|
|||
|
<FIRST? ,RECEPTACLE>>
|
|||
|
<FSET ,RECEPTACLE ,OPENBIT>
|
|||
|
<TELL
|
|||
|
"Opening it reveals a burning " D ,BALLOON-INFLATED ,PERIOD-CR>
|
|||
|
<RTRUE>)
|
|||
|
(<AND <VERB? TAKE>
|
|||
|
<EQUAL? ,BALLOON-INFLATED ,PRSO>>
|
|||
|
<TELL
|
|||
|
"You don't really want to hold a burning " D ,PRSO ,PERIOD-CR>
|
|||
|
<RTRUE>)
|
|||
|
(<AND <VERB? PUT>
|
|||
|
<EQUAL? ,PRSI ,RECEPTACLE>
|
|||
|
<FIRST? ,RECEPTACLE>>
|
|||
|
<TELL "The receptacle is already occupied." CR>
|
|||
|
<RTRUE>)
|
|||
|
(<AND <VERB? PUT>
|
|||
|
<EQUAL? ,PRSI ,RECEPTACLE>>
|
|||
|
<FSET ,PRSO ,NDESCBIT>
|
|||
|
<RFALSE>)
|
|||
|
(<VERB? INFLATE>
|
|||
|
<TELL
|
|||
|
"It takes more than words to inflate a balloon." CR>)>)>>
|
|||
|
|
|||
|
<ROUTINE I-BALLOON ()
|
|||
|
<COND (<AND <FSET? ,RECEPTACLE ,OPENBIT>
|
|||
|
,BALLOON-INFLATED>
|
|||
|
<RISE-AND-SHINE>)
|
|||
|
(<EQUAL? ,HERE ,NARROW-LEDGE ,WIDE-LEDGE>
|
|||
|
<RISE-AND-SHINE>)
|
|||
|
(T
|
|||
|
<DECLINE-AND-FALL>)>>
|
|||
|
|
|||
|
<ROUTINE BALLOON-BURN ()
|
|||
|
<TELL "The " D ,PRSO " burns inside the receptacle." CR>
|
|||
|
<ENABLE <QUEUE I-BURNUP <* <GETP ,PRSO ,P?SIZE> 20>>>
|
|||
|
<FSET ,PRSO ,FLAMEBIT>
|
|||
|
<FSET ,PRSO ,ONBIT>
|
|||
|
<FCLEAR ,PRSO ,TAKEBIT>
|
|||
|
<FCLEAR ,PRSO ,READBIT>
|
|||
|
<COND (,BALLOON-INFLATED
|
|||
|
<RTRUE>)
|
|||
|
(T
|
|||
|
<TELL "The cloth bag inflates as it fills with hot air." CR>
|
|||
|
<COND (<NOT ,LABEL-REVEALED>
|
|||
|
<MOVE ,BALLOON-LABEL ,BALLOON>
|
|||
|
<TELL "A label drops from the bag into the basket." CR>)>
|
|||
|
<SETG LABEL-REVEALED T>
|
|||
|
<SETG BALLOON-INFLATED ,PRSO>
|
|||
|
<ENABLE <QUEUE I-BALLOON 3>>)>>
|
|||
|
|
|||
|
<ROUTINE PUT-BALLOON (THERE STR)
|
|||
|
<COND (<EQUAL? ,HERE ,NARROW-LEDGE ,WIDE-LEDGE ,VOLCANO-BOTTOM>
|
|||
|
<TELL "You watch as the balloon slowly " .STR CR>)>
|
|||
|
<MOVE ,BALLOON .THERE>
|
|||
|
<SETG BALLOON-LOC .THERE>>
|
|||
|
|
|||
|
<GLOBAL BALLOON-UPS
|
|||
|
<LTABLE VOLCANO-CORE VOLCANO-BY-SMALL-LEDGE VOLCANO-BY-WIDE-LEDGE>>
|
|||
|
|
|||
|
<GLOBAL BALLOON-FLOATS
|
|||
|
<LTABLE NARROW-LEDGE VOLCANO-BY-SMALL-LEDGE
|
|||
|
WIDE-LEDGE VOLCANO-BY-WIDE-LEDGE>>
|
|||
|
|
|||
|
<GLOBAL BALLOON-DOWNS
|
|||
|
<LTABLE VOLCANO-BY-WIDE-LEDGE VOLCANO-BY-SMALL-LEDGE VOLCANO-CORE>>
|
|||
|
|
|||
|
<ROUTINE RISE-AND-SHINE ("AUX" (IN <IN? ,WINNER ,BALLOON>) R)
|
|||
|
<ENABLE <QUEUE I-BALLOON 3>>
|
|||
|
<COND (<EQUAL? ,BALLOON-LOC ,VOLCANO-BY-WIDE-LEDGE>
|
|||
|
<DISABLE <INT I-BURNUP>>
|
|||
|
<DISABLE <INT I-BALLOON>>
|
|||
|
<REMOVE ,BALLOON>
|
|||
|
<COND (.IN
|
|||
|
<JIGS-UP
|
|||
|
"The balloon floats majestically out of the volcano, revealing a breathtaking
|
|||
|
view of a forest clearing with a white house. High winds carry you into the
|
|||
|
snow-capped (and jagged) cliffs of the Flathead Mountains!">)
|
|||
|
(<EQUAL? ,HERE ,NARROW-LEDGE ,WIDE-LEDGE ,VOLCANO-BOTTOM>
|
|||
|
<TELL
|
|||
|
"You watch the balloon drift over the rim and away on the wind." CR>)>
|
|||
|
<SETG BALLOON-LOC ,VOLCANO-BOTTOM>)
|
|||
|
(<SET R <LKP ,BALLOON-LOC ,BALLOON-UPS>>
|
|||
|
<COND (.IN
|
|||
|
<TELL "The balloon ascends." CR CR>
|
|||
|
<SETG BALLOON-LOC .R>
|
|||
|
<GOTO .R>)
|
|||
|
(T
|
|||
|
<PUT-BALLOON .R "ascends.">)>)
|
|||
|
(<SET R <LKP ,BALLOON-LOC ,BALLOON-FLOATS>>
|
|||
|
<COND (.IN
|
|||
|
<TELL "The balloon leaves the ledge." CR CR>
|
|||
|
<SETG BALLOON-LOC .R>
|
|||
|
<GOTO .R>)
|
|||
|
(T
|
|||
|
<PUT-BALLOON .R
|
|||
|
"floats, ascending due to its light load.">
|
|||
|
<FSET ,RECEPTACLE ,OPENBIT>)>)
|
|||
|
(.IN
|
|||
|
<SETG BALLOON-LOC ,VOLCANO-CORE>
|
|||
|
<TELL "The balloon rises slowly from the ground." CR CR>
|
|||
|
<GOTO ,VOLCANO-CORE>)
|
|||
|
(T
|
|||
|
<PUT-BALLOON ,VOLCANO-CORE "lifts off.">)>>
|
|||
|
|
|||
|
<ROUTINE DECLINE-AND-FALL ("AUX" (IN <IN? ,WINNER ,BALLOON>) R)
|
|||
|
<ENABLE <QUEUE I-BALLOON 3>>
|
|||
|
<COND (<EQUAL? ,BALLOON-LOC ,VOLCANO-CORE>
|
|||
|
<COND (.IN
|
|||
|
<SETG BALLOON-LOC ,VOLCANO-BOTTOM>
|
|||
|
<COND (,BALLOON-INFLATED
|
|||
|
<TELL "The balloon has landed." CR CR>
|
|||
|
<GOTO ,VOLCANO-BOTTOM>)
|
|||
|
(T
|
|||
|
<REMOVE ,BALLOON>
|
|||
|
<MOVE ,ADVENTURER ,HERE>
|
|||
|
<DISABLE <INT I-BALLOON>>
|
|||
|
<TELL
|
|||
|
"The balloon smashes into dust against the volcano floor.
|
|||
|
You, miraculously, survive." CR CR>
|
|||
|
<GOTO ,VOLCANO-BOTTOM>)>)
|
|||
|
(T
|
|||
|
<PUT-BALLOON ,VOLCANO-BOTTOM "lands.">)>)
|
|||
|
(<SET R <LKP ,BALLOON-LOC ,BALLOON-DOWNS>>
|
|||
|
<COND (.IN
|
|||
|
<TELL "The balloon descends." CR CR>
|
|||
|
<SETG BALLOON-LOC .R>
|
|||
|
<GOTO .R>)
|
|||
|
(T
|
|||
|
<PUT-BALLOON .R "descends.">)>)>>
|
|||
|
|
|||
|
<ROUTINE LKP (ITM TBL "AUX" (CNT 0) (LEN <GET .TBL 0>))
|
|||
|
<REPEAT ()
|
|||
|
<COND (<G? <SET CNT <+ .CNT 1>> .LEN>
|
|||
|
<RFALSE>)
|
|||
|
(<EQUAL? <GET .TBL .CNT> .ITM>
|
|||
|
<COND (<EQUAL? .CNT .LEN> <RFALSE>)
|
|||
|
(T
|
|||
|
<RETURN <GET .TBL <+ .CNT 1>>>)>)>>>
|
|||
|
|
|||
|
<ROUTINE I-BURNUP ("AUX" (OBJ <FIRST? ,RECEPTACLE>))
|
|||
|
<COND (<EQUAL? ,HERE ,BALLOON-LOC>
|
|||
|
<TELL
|
|||
|
"The " D .OBJ " has now burned out, and the cloth bag starts to deflate." CR>)>
|
|||
|
<REMOVE .OBJ>
|
|||
|
<SETG BALLOON-INFLATED <>>
|
|||
|
<RTRUE>>
|
|||
|
|
|||
|
<OBJECT BALLOON-LABEL
|
|||
|
(DESC "blue label")
|
|||
|
(LDESC "There is a blue label here.")
|
|||
|
(SYNONYM LABEL)
|
|||
|
(ADJECTIVE BLUE)
|
|||
|
(FLAGS READBIT TAKEBIT BURNBIT)
|
|||
|
(SIZE 1)
|
|||
|
(TEXT
|
|||
|
"\"FROBOZZ MAGIC BALLOON COMPANY! Hello, Aviator!|
|
|||
|
|
|
|||
|
To land your balloon, say LAND. Otherwise, you're on your own! (No warranty
|
|||
|
expressed or implied.)\"")>
|
|||
|
|
|||
|
<OBJECT BRAIDED-WIRE
|
|||
|
(IN BALLOON)
|
|||
|
(DESC "braided wire")
|
|||
|
(SYNONYM ROPE WIRE)
|
|||
|
(ADJECTIVE BRAIDED)
|
|||
|
(FLAGS NDESCBIT)
|
|||
|
(ACTION BRAIDED-WIRE-F)>
|
|||
|
|
|||
|
<ROUTINE BRAIDED-WIRE-F ()
|
|||
|
<COND (<VERB? TAKE FIND EXAMINE>
|
|||
|
<BCONTENTS>)
|
|||
|
(<AND <VERB? TIE>
|
|||
|
<EQUAL? ,PRSO ,BRAIDED-WIRE>
|
|||
|
<EQUAL? ,PRSI ,HOOK>>
|
|||
|
<SETG BALLOON-TIED ,PRSI>
|
|||
|
<DISABLE <INT I-BALLOON>>
|
|||
|
<TELL "The balloon is fastened to the hook." CR>)
|
|||
|
(<AND <VERB? UNTIE>
|
|||
|
<EQUAL? ,PRSO ,BRAIDED-WIRE>>
|
|||
|
<TELL "The wire is no">
|
|||
|
<COND (,BALLOON-TIED
|
|||
|
<ENABLE <QUEUE I-BALLOON 3>>
|
|||
|
<SETG BALLOON-TIED <>>
|
|||
|
<TELL "w unhooked." CR>)
|
|||
|
(T
|
|||
|
<TELL "t tied to anything." CR>)>)>>
|
|||
|
|
|||
|
<OBJECT CLOTH-BAG
|
|||
|
(IN BALLOON)
|
|||
|
(DESC "cloth bag")
|
|||
|
(SYNONYM BAG)
|
|||
|
(ADJECTIVE CLOTH)
|
|||
|
(FLAGS NDESCBIT)
|
|||
|
(ACTION BCONTENTS)>
|
|||
|
|
|||
|
<OBJECT RECEPTACLE
|
|||
|
(IN BALLOON)
|
|||
|
(DESC "receptacle")
|
|||
|
(SYNONYM RECEPTACLE)
|
|||
|
(ADJECTIVE METAL)
|
|||
|
(CAPACITY 6)
|
|||
|
(FLAGS CONTBIT SEARCHBIT NDESCBIT)
|
|||
|
(ACTION BCONTENTS)>
|
|||
|
|
|||
|
<ROUTINE BCONTENTS ()
|
|||
|
<COND (<VERB? TAKE>
|
|||
|
<TELL
|
|||
|
"The " D ,PRSO " is an integral part of the basket and cannot be removed.">
|
|||
|
<COND (<EQUAL? ,PRSO ,BRAIDED-WIRE>
|
|||
|
<TELL " It might be tied, though.">)>
|
|||
|
<CRLF>)
|
|||
|
(<VERB? OPEN>
|
|||
|
<TELL "The bag is enormous. You can't open it by hand." CR>)
|
|||
|
(<VERB? LOOK-INSIDE>
|
|||
|
<TELL "It seems empty." CR>)
|
|||
|
(<AND <VERB? EXAMINE>
|
|||
|
<EQUAL? ,PRSO ,RECEPTACLE>>
|
|||
|
<TELL "The receptacle is ">
|
|||
|
<COND (<FSET? ,PRSO ,OPENBIT>
|
|||
|
<TELL "open." CR>)
|
|||
|
(T
|
|||
|
<TELL "closed." CR>)>)
|
|||
|
(<VERB? FIND EXAMINE>
|
|||
|
<TELL
|
|||
|
"The " D ,PRSO " is part of the basket. It may be manipulated
|
|||
|
within the basket but cannot be removed." CR>)>>
|
|||
|
|
|||
|
<ROOM VOLCANO-CORE
|
|||
|
(IN ROOMS)
|
|||
|
(DESC "Volcano Core")
|
|||
|
(LDESC
|
|||
|
"You are about one hundred feet above the bottom of the volcano.")
|
|||
|
(FLAGS NONLANDBIT NWALLBIT)>
|
|||
|
|
|||
|
<ROOM VOLCANO-BY-SMALL-LEDGE
|
|||
|
(IN ROOMS)
|
|||
|
(DESC "Volcano By Small Ledge")
|
|||
|
(EAST TO NARROW-LEDGE)
|
|||
|
(LAND TO NARROW-LEDGE)
|
|||
|
(FLAGS NONLANDBIT NWALLBIT)
|
|||
|
(ACTION VOLCANO-BY-LEDGE-F)>
|
|||
|
|
|||
|
<ROOM VOLCANO-BY-WIDE-LEDGE
|
|||
|
(IN ROOMS)
|
|||
|
(DESC "Volcano By Wide Ledge")
|
|||
|
(LAND TO WIDE-LEDGE)
|
|||
|
(WEST TO WIDE-LEDGE)
|
|||
|
(FLAGS NONLANDBIT NWALLBIT)
|
|||
|
(ACTION VOLCANO-BY-LEDGE-F)>
|
|||
|
|
|||
|
<ROUTINE VOLCANO-BY-LEDGE-F (RARG)
|
|||
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|||
|
<TELL "You are about ">
|
|||
|
<COND (<EQUAL? ,HERE ,VOLCANO-BY-SMALL-LEDGE>
|
|||
|
<TELL "15">)
|
|||
|
(T
|
|||
|
<TELL "20">)>
|
|||
|
<TELL "0 feet up, ">
|
|||
|
<COND (<EQUAL? ,HERE ,VOLCANO-BY-WIDE-LEDGE>
|
|||
|
<TELL "very ">)>
|
|||
|
<TELL "near the rim of the volcano. To the ">
|
|||
|
<COND (<EQUAL? ,HERE ,VOLCANO-BY-SMALL-LEDGE>
|
|||
|
<TELL "east is a narrow">)
|
|||
|
(T
|
|||
|
<TELL "west is a wide">)>
|
|||
|
<TELL "ledge." CR>)>>
|
|||
|
|
|||
|
<ROOM NARROW-LEDGE
|
|||
|
(IN ROOMS)
|
|||
|
(DESC "Narrow Ledge")
|
|||
|
(DOWN "I wouldn't jump from here.")
|
|||
|
(SOUTH TO LIBRARY)
|
|||
|
(IN TO LIBRARY)
|
|||
|
(FLAGS RLANDBIT NONLANDBIT)
|
|||
|
(GLOBAL HOOK)
|
|||
|
(ACTION LEDGE-F)>
|
|||
|
|
|||
|
<OBJECT COIN
|
|||
|
(IN NARROW-LEDGE)
|
|||
|
(DESC "priceless zorkmid")
|
|||
|
(FDESC
|
|||
|
"On the floor is a priceless gold zorkmid (a valuable collector's item).")
|
|||
|
(SYNONYM COIN ZORKMID GOLD TREASURE)
|
|||
|
(ADJECTIVE GOLD PRICELESS)
|
|||
|
(FLAGS READBIT TAKEBIT)
|
|||
|
(SIZE 10)
|
|||
|
(VALUE 20)
|
|||
|
(TEXT
|
|||
|
"This octagonal coin reads \"1000 Zorkmids\" and \"In Frobs We Trust\".")>
|
|||
|
|
|||
|
<ROOM LIBRARY
|
|||
|
(IN ROOMS)
|
|||
|
(DESC "Library")
|
|||
|
(LDESC
|
|||
|
"This must have been a large library, probably for the royal family. All
|
|||
|
of the shelves have been gnawed to pieces by unfriendly gnomes. To the
|
|||
|
north is an exit.")
|
|||
|
(NORTH TO NARROW-LEDGE)
|
|||
|
(OUT TO NARROW-LEDGE)
|
|||
|
(FLAGS RLANDBIT)>
|
|||
|
|
|||
|
<OBJECT BLUE-BOOK
|
|||
|
(IN LIBRARY)
|
|||
|
(DESC "blue book")
|
|||
|
(FDESC "In one corner sits a blue book.")
|
|||
|
(SYNONYM BOOK BOOKS)
|
|||
|
(ADJECTIVE BLUE)
|
|||
|
(CAPACITY 2)
|
|||
|
(SIZE 10)
|
|||
|
(TEXT "This book is written in an unfamiliar tongue.")
|
|||
|
(FLAGS READBIT TAKEBIT CONTBIT BURNBIT)
|
|||
|
(ACTION RANDOM-BOOK-F)>
|
|||
|
|
|||
|
<OBJECT WHITE-BOOK
|
|||
|
(IN LIBRARY)
|
|||
|
(DESC "white book")
|
|||
|
(FDESC "Beside the purple book is a white one.")
|
|||
|
(SYNONYM BOOK BOOKS)
|
|||
|
(ADJECTIVE WHITE)
|
|||
|
(CAPACITY 2)
|
|||
|
(SIZE 5)
|
|||
|
(FLAGS READBIT TAKEBIT CONTBIT BURNBIT)
|
|||
|
(TEXT
|
|||
|
"The book details the use of the so-called \"magic wand\". Apparently, these
|
|||
|
work by pointing them at the object to be ensorcelled, and then chanting the
|
|||
|
appropriate magic word. (Amazing how credulous these ancients were.)")
|
|||
|
(ACTION RANDOM-BOOK-F)>
|
|||
|
|
|||
|
<ROUTINE RANDOM-BOOK-F ()
|
|||
|
<COND (<VERB? TAKE MOVE PUT>
|
|||
|
<FSET ,WHITE-BOOK ,TOUCHBIT>
|
|||
|
<FSET ,PURPLE-BOOK ,TOUCHBIT>
|
|||
|
<FSET ,BLUE-BOOK ,TOUCHBIT>
|
|||
|
<RFALSE>)>>
|
|||
|
|
|||
|
<OBJECT PURPLE-BOOK
|
|||
|
(IN LIBRARY)
|
|||
|
(DESC "purple book")
|
|||
|
(FDESC "Lying in the dust, covered with mold, is a purple book.")
|
|||
|
(SYNONYM BOOK BOOKS)
|
|||
|
(ADJECTIVE PURPLE)
|
|||
|
(CAPACITY 2)
|
|||
|
(SIZE 10)
|
|||
|
(FLAGS READBIT TAKEBIT CONTBIT SEARCHBIT BURNBIT)
|
|||
|
(TEXT "This book is written in an unfamiliar tongue.")
|
|||
|
(ACTION PURPLE-BOOK-F)>
|
|||
|
|
|||
|
<ROUTINE PURPLE-BOOK-F ()
|
|||
|
<COND (<AND <VERB? READ>
|
|||
|
<IN? ,STAMP ,PURPLE-BOOK>
|
|||
|
<NOT <FSET? ,PURPLE-BOOK ,OPENBIT>>>
|
|||
|
<TELL <GETP ,PURPLE-BOOK ,P?TEXT> CR>
|
|||
|
<PERFORM ,V?OPEN ,PURPLE-BOOK>
|
|||
|
<RTRUE>)
|
|||
|
(T
|
|||
|
<RANDOM-BOOK-F>)>>
|
|||
|
|
|||
|
<OBJECT STAMP
|
|||
|
(IN PURPLE-BOOK)
|
|||
|
(DESC "Flathead stamp")
|
|||
|
(SYNONYM STAMP TREASURE)
|
|||
|
(ADJECTIVE FLATHEAD)
|
|||
|
(SIZE 1)
|
|||
|
(VALUE 10)
|
|||
|
(FLAGS READBIT TAKEBIT BURNBIT)
|
|||
|
(TEXT
|
|||
|
"This three zorkmid stamp portrays Lord Dimwit Flathead the Excessive.")>
|
|||
|
|
|||
|
<OBJECT HOOK
|
|||
|
(IN LOCAL-GLOBALS)
|
|||
|
(DESC "hook")
|
|||
|
(SYNONYM HOOK)
|
|||
|
(ADJECTIVE SMALL)>
|
|||
|
|
|||
|
<ROUTINE LEDGE-F (RARG)
|
|||
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|||
|
<TELL "You are on a ">
|
|||
|
<COND (<EQUAL? ,HERE ,NARROW-LEDGE>
|
|||
|
<TELL "small">)
|
|||
|
(T
|
|||
|
<TELL "large">)>
|
|||
|
<TELL
|
|||
|
" ledge high in the volcano. There is a small opening to the south">
|
|||
|
<COND (<AND ,DUSTY-ROOM-COLLAPSED
|
|||
|
<EQUAL? ,HERE ,WIDE-LEDGE>>
|
|||
|
<TELL " which is blocked by rubble">)>
|
|||
|
<TELL ". Imbedded in the rock is a small hook." CR>)>>
|
|||
|
|
|||
|
<ROOM WIDE-LEDGE
|
|||
|
(IN ROOMS)
|
|||
|
(DESC "Wide Ledge")
|
|||
|
(DOWN "It's a long way down.")
|
|||
|
(SOUTH TO DUSTY-ROOM)
|
|||
|
(IN TO DUSTY-ROOM)
|
|||
|
(FLAGS RLANDBIT NONLANDBIT)
|
|||
|
(GLOBAL HOOK)
|
|||
|
(ACTION LEDGE-F)>
|
|||
|
|
|||
|
<ROOM DUSTY-ROOM
|
|||
|
(IN ROOMS)
|
|||
|
(DESC "Dusty Room")
|
|||
|
(NORTH TO WIDE-LEDGE)
|
|||
|
(OUT TO WIDE-LEDGE)
|
|||
|
(FLAGS RLANDBIT ONBIT)
|
|||
|
(ACTION DUSTY-ROOM-F)>
|
|||
|
|
|||
|
<ROUTINE DUSTY-ROOM-F (RARG)
|
|||
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|||
|
<TELL
|
|||
|
"You are in a featureless room with an exit on the north side. Imbedded in the
|
|||
|
far wall is a rusty box">
|
|||
|
<COND (<NOT <FSET? ,SAFE ,OPENBIT>>
|
|||
|
<TELL
|
|||
|
". An oblong hole has been chipped out of the front of it">)
|
|||
|
(T
|
|||
|
<TELL " whose door has been blown off">)>
|
|||
|
<TELL ,PERIOD-CR>)>>
|
|||
|
|
|||
|
<OBJECT SAFE
|
|||
|
(IN DUSTY-ROOM)
|
|||
|
(DESC "box")
|
|||
|
(SYNONYM SAFE BOX)
|
|||
|
(ADJECTIVE STEEL RUSTY)
|
|||
|
(FLAGS CONTBIT NDESCBIT)
|
|||
|
(CAPACITY 15)
|
|||
|
(ACTION SAFE-F)>
|
|||
|
|
|||
|
<ROUTINE SAFE-F ()
|
|||
|
<COND (<AND <VERB? TAKE>
|
|||
|
<EQUAL? ,PRSO ,SAFE>>
|
|||
|
<TELL "The box is imbedded in the wall." CR>)
|
|||
|
(<AND <VERB? OPEN CLOSE>
|
|||
|
<FSET? ,SAFE ,OPENBIT>>
|
|||
|
<TELL "The box has no door!" CR>)
|
|||
|
(<VERB? OPEN>
|
|||
|
<TELL "The box is rusted shut." CR>)
|
|||
|
(<VERB? CLOSE>
|
|||
|
<TELL "The box isn't open!" CR>)>>
|
|||
|
|
|||
|
<OBJECT SAFE-HOLE
|
|||
|
(IN DUSTY-ROOM)
|
|||
|
(DESC "hole")
|
|||
|
(SYNONYM SLOT HOLE)
|
|||
|
(CAPACITY 10)
|
|||
|
(FLAGS OPENBIT NDESCBIT)
|
|||
|
(ACTION SAFE-HOLE-F)>
|
|||
|
|
|||
|
<ROUTINE SAFE-HOLE-F ()
|
|||
|
<COND (<VERB? EXAMINE>
|
|||
|
<TELL
|
|||
|
"The hole was someone's failed attempt to chip their way into the box." CR>)>>
|
|||
|
|
|||
|
<OBJECT CARD
|
|||
|
(IN SAFE)
|
|||
|
(DESC "card")
|
|||
|
(LDESC "There is a card with writing on it here.")
|
|||
|
(SYNONYM CARD NOTE)
|
|||
|
(SIZE 1)
|
|||
|
(FLAGS READBIT TAKEBIT BURNBIT)
|
|||
|
(TEXT
|
|||
|
"Warning: This room was constructed near weak rock strata. Detonation
|
|||
|
of explosives here is strictly prohibited!")>
|
|||
|
|
|||
|
<OBJECT CROWN
|
|||
|
(IN SAFE)
|
|||
|
(DESC "gaudy crown")
|
|||
|
(FDESC
|
|||
|
"The excessively gaudy crown of Lord Dimwit Flathead sits in the safe.")
|
|||
|
(LDESC "Lord Dimwit's crown is here.")
|
|||
|
(SYNONYM CROWN TREASURE)
|
|||
|
(ADJECTIVE GAUDY)
|
|||
|
(SIZE 10)
|
|||
|
(VALUE 20)
|
|||
|
(FLAGS TAKEBIT)>
|
|||
|
\
|
|||
|
;"bomb"
|
|||
|
|
|||
|
<OBJECT BRICK
|
|||
|
(IN STONE-BRIDGE)
|
|||
|
(DESC "brick")
|
|||
|
(LDESC "There is a square brick here which feels like clay.")
|
|||
|
(SYNONYM BRICK)
|
|||
|
(ADJECTIVE SQUARE CLAY)
|
|||
|
(FLAGS TAKEBIT BURNBIT OPENBIT SEARCHBIT)
|
|||
|
(CAPACITY 2)
|
|||
|
(SIZE 9)
|
|||
|
(ACTION BRICK-F)>
|
|||
|
|
|||
|
<ROUTINE BRICK-F ()
|
|||
|
<COND (<VERB? BURN>
|
|||
|
<REMOVE ,BRICK>
|
|||
|
<JIGS-UP ,OTHER-PROPERTIES>)>>
|
|||
|
|
|||
|
<OBJECT FUSE
|
|||
|
(IN RIDDLE-ROOM)
|
|||
|
(DESC "black string")
|
|||
|
(LDESC "There is a coil of black, braided string here.")
|
|||
|
(SYNONYM FUSE STRING COIL)
|
|||
|
(ADJECTIVE BLACK THIN)
|
|||
|
(SIZE 1)
|
|||
|
(FLAGS TAKEBIT BURNBIT)
|
|||
|
(ACTION FUSE-F)>
|
|||
|
|
|||
|
<ROUTINE FUSE-F ()
|
|||
|
<COND (<OR <VERB? BURN>
|
|||
|
<AND <VERB? LAMP-ON>
|
|||
|
<IN? ,MATCH ,WINNER>
|
|||
|
<FSET? ,MATCH ,ONBIT>>>
|
|||
|
<TELL "The string starts to burn." CR>
|
|||
|
<ENABLE <QUEUE I-FUSE 2>>)>>
|
|||
|
|
|||
|
<ROUTINE I-FUSE ("AUX" (BRICK-ROOM <LOC ,BRICK>) F)
|
|||
|
<COND (<IN? ,FUSE ,BRICK>
|
|||
|
<REPEAT ()
|
|||
|
<COND (<NOT .BRICK-ROOM>
|
|||
|
<RFALSE>)
|
|||
|
(<IN? .BRICK-ROOM ,ROOMS>
|
|||
|
<RETURN>)
|
|||
|
(T
|
|||
|
<SET BRICK-ROOM <LOC .BRICK-ROOM>>)>>
|
|||
|
<MOVE ,EXPLOSION .BRICK-ROOM>
|
|||
|
<FCLEAR .BRICK-ROOM ,TOUCHBIT>
|
|||
|
<COND (<EQUAL? .BRICK-ROOM ,HERE>
|
|||
|
<JIGS-UP ,OTHER-PROPERTIES>)
|
|||
|
(T
|
|||
|
<COND (<IN? ,BRICK ,SAFE-HOLE>
|
|||
|
<FSET ,SAFE-HOLE ,INVISIBLE>
|
|||
|
<FSET ,SAFE ,OPENBIT>
|
|||
|
<FCLEAR ,DUSTY-ROOM ,TOUCHBIT>
|
|||
|
<ENABLE <QUEUE I-SAFE 5>>)>
|
|||
|
<TELL "There is an explosion nearby." CR>
|
|||
|
<COND (<SET F <FIRST? .BRICK-ROOM>>
|
|||
|
<REPEAT ()
|
|||
|
<COND (<FSET? .F ,TAKEBIT>
|
|||
|
<FSET .F ,INVISIBLE>)>
|
|||
|
<COND (<NOT <SET F <NEXT? .F>>>
|
|||
|
<RETURN>)>>)>)>
|
|||
|
<REMOVE ,BRICK>)
|
|||
|
(<EQUAL? <LOC ,FUSE> ,WINNER ,HERE>
|
|||
|
<TELL "The string burns into nothingness." CR>)>
|
|||
|
<REMOVE ,FUSE>>
|
|||
|
|
|||
|
<ROUTINE BOMB? (O)
|
|||
|
<COND (<AND <EQUAL? .O ,BRICK>
|
|||
|
<IN? ,FUSE ,BRICK>
|
|||
|
<NOT <0? <GET <INT I-FUSE> ,C-ENABLED?>>>>
|
|||
|
<RTRUE>)
|
|||
|
(T
|
|||
|
<RFALSE>)>>
|
|||
|
|
|||
|
<OBJECT EXPLOSION
|
|||
|
(DESC "debris from an explosion")
|
|||
|
(LDESC
|
|||
|
"The room is cluttered with debris from an explosion. The walls seem ready
|
|||
|
to collapse.")
|
|||
|
(SYNONYM KREBF)>
|
|||
|
|
|||
|
<GLOBAL OTHER-PROPERTIES
|
|||
|
"Now you've done it. It seems that the brick is an explosive and you have been
|
|||
|
blown to bits.">
|
|||
|
|
|||
|
<GLOBAL DUSTY-ROOM-COLLAPSED <>>
|
|||
|
|
|||
|
<ROUTINE I-SAFE ()
|
|||
|
<SETG DUSTY-ROOM-COLLAPSED T>
|
|||
|
<COND (<EQUAL? ,HERE ,DUSTY-ROOM>
|
|||
|
<JIGS-UP
|
|||
|
"The room trembles and 5000 tons of rock fall on you.">)
|
|||
|
(<NOT ,DEAD>
|
|||
|
<TELL
|
|||
|
"Probably as a result of that recent explosion, an ominous rumbling
|
|||
|
indicates that a nearby room has collapsed." CR>)>>
|