zorkzero/village.zil

1171 lines
36 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"VILLAGE for
ZORK ZERO
(c) Copyright 1988 Infocom, Inc. All Rights Reserved."
<BEGIN-SEGMENT VILLAGE>
<OBJECT VILLAGE
(LOC LOCAL-GLOBALS)
(DESC "village")
(SYNONYM VILLAGE)
(ACTION VILLAGE-F)>
<ROUTINE VILLAGE-F ()
<COND (<AND <EQUAL? ,HERE ,PARAPET>
<TOUCHING? ,VILLAGE>>
<CANT-REACH ,VILLAGE>)
(<VERB? ENTER>
<COND (<EQUAL? ,HERE ,VILLAGE-GATE>
<DO-WALK ,P?EAST>)
(T
<V-WALK-AROUND>)>)
(<VERB? EXIT>
<V-WALK-AROUND>)>>
<ROOM OUTER-BAILEY
(LOC ROOMS)
(REGION "Flatheadia")
(DESC "Outer Bailey")
(SE TO DRAWBRIDGE IF DRAWBRIDGE IS OPEN ELSE
"The drawbridge isn't down.")
(SW TO GARRISON)
(NE TO BEND)
(NW TO PERIMETER-WALL)
(FLAGS RLANDBIT OUTSIDEBIT ONBIT)
(SYNONYM BAILEY)
(ADJECTIVE OUTER)
(GLOBAL DRAWBRIDGE MOAT ROOTS)
(MAP-LOC <PTABLE VILLAGE-MAP-NUM MAP-GEN-Y-3 MAP-GEN-X-2>)
(ICON OUTER-BAILEY-ICON)
(ACTION OUTER-BAILEY-F)>
<ROUTINE OUTER-BAILEY-F ("OPT" (RARG <>))
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"This open area is a rolling meadow extending from the moat to the distant
perimeter fortifications. A drawbridge ">
<COND (<FSET? ,DRAWBRIDGE ,OPENBIT>
<TELL "leads over the">)
(T
<TELL "is raised, leaving an impassable">)>
<TELL
" moat to the southeast, and roads lead northeast, southwest, and
northwest.">)>>
<OBJECT TREE-STUMP
(LOC OUTER-BAILEY)
(DESC "tree stump")
(LDESC
"A mighty, rotting tree stump spreads its roots across the bailey.")
(SYNONYM STUMP)
(ADJECTIVE LARGE TREE WEATHERED)
(CAPACITY 100)
(FLAGS CONTBIT VEHBIT SURFACEBIT OPENBIT SEARCHBIT)
(ACTION TREE-STUMP-F)>
<GLOBAL JUMP-X 99> ;"0 means you're on the stump, 99 means you're anywhere"
<GLOBAL JUMP-Y 99> ;"0 means you're on the stump, 99 means you're anywhere"
<ROUTINE TREE-STUMP-F ("OPTIONAL" (VARG <>))
<COND (.VARG
<RFALSE>)
(<VERB? EXAMINE>
<TELL <GETP ,TREE-STUMP ,P?LDESC>>
<COND (<FIRST? ,TREE-STUMP>
<TELL " ">
<RFALSE>)
(T
<CRLF>)>)
(<VERB? GET-NEAR>
<PERFORM ,V?ENTER ,TREE-STUMP>
<RTRUE>)
(<AND <VERB? LISTEN>
,PLANT-TALKER>
<TELL "The stump is dead and silent." CR>)
(<VERB? ENTER> ;"see V-LEAP"
<SETG JUMP-X 0>
<SETG JUMP-Y 0>
<RFALSE>)
(<VERB? EXIT>
<SETG JUMP-X 99>
<SETG JUMP-Y 99>
<RFALSE>)
(<VERB? LOOK-UNDER TAKE RAISE>
<TELL "100 men couldn't uproot this stump!" CR>)>>
<OBJECT TREASURE-CHEST
(LOC LOCAL-GLOBALS)
(DESC "treasure chest")
(SYNONYM CHEST)
(ADJECTIVE TREASURE)
(FLAGS TAKEBIT CONTBIT SEARCHBIT)
(SIZE 25)
(CAPACITY 50)>
<OBJECT CROWN
(LOC DIMWIT)
(DESC "gaudy crown")
(SYNONYM CROWN)
(ADJECTIVE GAUDY)
(VALUE 12)
(FLAGS NDESCBIT ;"cleared after prologue" MAGICBIT WEARBIT)>
<ROOM PERIMETER-WALL
(LOC ROOMS)
(REGION "Flatheadia")
(DESC "Perimeter Wall")
(SE TO OUTER-BAILEY)
(NW PER WEST-OF-HOUSE-ENTER-F)
(OUT PER WEST-OF-HOUSE-ENTER-F)
(FLAGS RLANDBIT OUTSIDEBIT ONBIT)
(ICON PERIMETER-WALL-ICON)
(MAP-LOC <PTABLE VILLAGE-MAP-NUM MAP-GEN-Y-2 MAP-GEN-X-1>)
(ACTION PERIMETER-WALL-F)>
<ROUTINE PERIMETER-WALL-F ("OPT" (RARG <>))
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"Before you rises the massive stone wall which forms the first line of
defense for the castle grounds. To the northwest, the huge oak gates ">
<COND (<FSET? ,OUTER-GATE ,OPENBIT>
<TELL "lie wide open, revealing dense forest beyond!">)
(T
<TELL
"are closed and reinforced, forming an impassable barrier across the road from
the southeast.">)>)>>
<ROUTINE WEST-OF-HOUSE-ENTER-F ("OPT" (RARG <>)) ;"called by NEXT-ROOM?"
<COND (<FSET? ,OUTER-GATE ,OPENBIT>
<COND (<NOT .RARG>
<RETURN-FROM-MAP>
<INC-SCORE 30>
<TELL
"You dive through the doors as the castle begins its final tremors! Landing on
soft grass, you roll to a stop, and turn to see the castle's final moments.
But, oddly, though it is collapsing, it doesn't seem to be getting destroyed.
Instead, it is merely shrinking, shrivelling... You rub your eyes in disbelief,
as the once mighty castle transforms itself into ever tinier structures. At
long last there is stillness, and the dust begins to clear" ,ELLIPSIS>)>
,WEST-OF-HOUSE)
(<AND <IN? ,NW-SE-PASSAGE ,HERE>
<EQUAL? ,NW-SE-PASSAGE-DIR ,P?NW>>
<COND (<NOT .RARG>
<CANT-GO>)>
<RFALSE>) ;"you walk down the Magic Passage..."
(T
<COND (<NOT .RARG>
<RETURN-FROM-MAP>
<THIS-IS-IT ,OUTER-GATE>
<DO-FIRST "open the gate">)>
<RFALSE>)>>
<OBJECT OUTER-GATE
(LOC PERIMETER-WALL)
(DESC "outer gate")
(SYNONYM GATE GATES DOOR)
(ADJECTIVE OUTER INCREDIBLY LARGE IRON-REINFORCED OAKEN)
(FLAGS NDESCBIT DOORBIT VOWELBIT)
(ACTION OUTER-GATE-F)>
<ROUTINE OUTER-GATE-F ()
<COND (<VERB? OPEN>
<TELL
"It would take the power of a wizard to open these massive doors." CR>)>>
<GLOBAL END-GAME-COUNTER 0>
<ROUTINE I-END-GAME ()
<SETG END-GAME-COUNTER <+ ,END-GAME-COUNTER 1>>
<COND (<EQUAL? ,END-GAME-COUNTER 12>
<RETURN-FROM-MAP>
<JIGS-UP
" The castle buildings are collapsing around you. No, \"shrinking and
changing\" would be more accurate... stone becoming wood... walls and
ceilings rushing in toward you... but before you can witness the final form of
this amazing metamorphosis, you are transformed into a large oriental rug.">)
(<EQUAL? ,END-GAME-COUNTER 11>
<RETURN-FROM-MAP>
<TELL
" A great rumble fills the air, and the buildings around you teeter
like drunken dancers!" CR>)
(<EQUAL? ,END-GAME-COUNTER 9>
<RETURN-FROM-MAP>
<TELL
" Boulders of rubble roll past, threatening to crush you!" CR>)
(<EQUAL? ,END-GAME-COUNTER 6>
<RETURN-FROM-MAP>
<TELL
" As the grounds continue to shake, a multitude of rats well up from
within and flee toward the perimeter wall." CR>)
(<EQUAL? ,END-GAME-COUNTER 3>
<RETURN-FROM-MAP>
<TELL " The ">
<COND (<FSET? ,HERE ,OUTSIDEBIT>
<TELL "ground">)
(T
<TELL "floor">)>
<TELL
" rolls and shudders, making it difficult to stay on your feet." CR>)>>
<ROOM WEST-OF-HOUSE
(LOC ROOMS)
(DESC "West of House")
(REGION "(formerly) Flatheadia")
(LDESC
"You are standing in an open field west of a white house, with a
boarded front door.|
There is a small mailbox here.")
(FLAGS RLANDBIT ONBIT OUTSIDEBIT)
(ACTION WEST-OF-HOUSE-F)>
<ROUTINE WEST-OF-HOUSE-F ("OPT" (RARG <>))
<COND (<EQUAL? .RARG ,M-ENTER>
<RETURN-FROM-MAP>
<UPDATE-STATUS-LINE>)
(<EQUAL? .RARG ,M-END>
<RETURN-FROM-MAP>
<CRLF>
<HIT-ANY-KEY>
<CLEAR 0>
<CRLF>
<MARGINAL-PIC ,EPILOGUE-LETTER>
<DIROUT ,D-SCREEN-OFF>
<TELL "A"> ;"so script doesn't say S YOU STARE..."
<DIROUT ,D-SCREEN-ON>
<TELL
"s you stare dumbfounded at the white house, the jester appears, laughing as
though at some supreme trick. Then, a low moaning wind begins to blow, and
slowly, ever so slowly, his appearance shifts, until you see before you a
wizard of incredible age and obvious power. His hoary visage stirs an ancient
ancestral memory. He speaks in a new voice, tired but commanding of instant
respect. \"I am Megaboz,\" he states, and your skin tingles at the presence
of a legend.|
\"Yes, I still live. I have waited a long time for this day; to meet the
one who would guard after I am gone.|
\"The Great Underground Empire is no more; but Quendor remains. The white
house will stand as a warning and reminder of the excesses of the Flatheads.
Some day, a new Empire may rise; you -- and your successors -- shall watch
over the land, and ensure that future Empire be benevolent. Henceforth, you
shall be known as Dungeon Master.|
\"As promised by Decree, half the wealth of the kingdom is yours!\" Your
mind is suddenly filled with images of a vast underground Treasury, piled
with unfathomable wealth. But the image is tempered by the ironic knowledge
that you will never have use for such wealth. As the image fades, you hear
tinkling bells and the voice of the jester/Megaboz: \"Well, I'm outta here!
Over to you, Dungeon Master!\" You find yourself alone, left to ponder the
years ahead, long years of keeping watch over Quendor and searching, ever
searching, for your successor" ,ELLIPSIS>
<FINISH>)>>
<ROOM GARRISON
(LOC ROOMS)
(REGION "Flatheadia")
(DESC "Garrison")
(LDESC
"This is where the castle's army was quartered. The garrison fell into
disuse as all known lands fell under the rule of the Flatheads; the army
had little to do except quell an occasional tax revolt. In fact, the only
evidence of the garrison is a rusty locker. A road leads northeast.")
(NE TO OUTER-BAILEY)
(OUT TO OUTER-BAILEY)
(FLAGS RLANDBIT ONBIT)
(SYNONYM GARRISON)
(MAP-LOC <PTABLE VILLAGE-MAP-NUM MAP-GEN-Y-4 MAP-GEN-X-1>)
(ICON GARRISON-ICON)>
<OBJECT LOCKER
(LOC GARRISON)
(DESC "locker")
(SYNONYM LOCKER)
(ADJECTIVE RUSTY)
(CAPACITY 100)
(FLAGS CONTBIT SEARCHBIT NDESCBIT)
(ACTION LOCKER-F)>
<ROUTINE LOCKER-F ()
<COND (<AND <VERB? LOCK>
<PRSO? ,LOCKER>>
<TELL "You don't have the right key." CR>)>>
<OBJECT POSTER
(LOC LOCKER)
(OWNER POSTER)
(DESC "poster of Ursula Flathead")
(SYNONYM POSTER URSULA FLATHEAD)
(ADJECTIVE URSULA)
(FLAGS TAKEBIT BURNBIT)
(SIZE 2)
(RESEARCH
"\"Ursula Flathead, the former Miss Miznia, has been called the 'Sex Goddess
of the GUE.' The editors would be hard-pressed to disagree with the phrase.\"")
(ACTION POSTER-F)>
<BEGIN-SEGMENT 0>
<ROUTINE POSTER-F ()
<COND (<VERB? EXAMINE>
<TELL
"The poster shows pin-up model Ursula Flathead (Miss Miznia, 878 GUE)
in a typical suggestive pose and minimal cover." CR>)
(<VERB? ROLL>
<TELL
"You curl it into a tube, but as you let go it flattens again." CR>)>>
<END-SEGMENT>
<BEGIN-SEGMENT VILLAGE>
<OBJECT WEST-KEY
(LOC LOCKER)
(DESC "steel key")
(SYNONYM KEY)
(ADJECTIVE STEEL)
(FLAGS TAKEBIT KEYBIT)
(SIZE 2)>
<ROOM BEND
(LOC ROOMS)
(REGION "Flatheadia")
(DESC "Bend")
(LDESC
"The road curves along the moat, turning southeast and southwest.")
(SE TO VILLAGE-GATE)
(SW TO OUTER-BAILEY)
(FLAGS RLANDBIT OUTSIDEBIT ONBIT)
(GLOBAL MOAT)
(MAP-LOC <PTABLE VILLAGE-MAP-NUM MAP-GEN-Y-2 MAP-GEN-X-3>)>
<ROOM VILLAGE-GATE
(LOC ROOMS)
(REGION "Flatheadia")
(DESC "Village Gate")
(LDESC
"To the east, a stone arch forms the entrance to the castle's village. (The
village lies outside the castle proper but is still comfortably within the
outer perimeter wall.) The arch is flanked by two medium-sized elms, one more
gnarled than the other. The road passes under the arch; in the other direction,
it follows the moat to the northwest.")
(NW TO BEND)
(EAST TO SHADY-PARK)
(FLAGS RLANDBIT OUTSIDEBIT ONBIT)
(GLOBAL VILLAGE ARCH MOAT)
(MAP-LOC <PTABLE VILLAGE-MAP-NUM MAP-GEN-Y-3 MAP-GEN-X-4>)
(THINGS VILLAGE GATE GATE-PS)>
<ROUTINE GATE-PS ()
<PERFORM-PRSA ,ARCH>>
<OBJECT GNARLED-ELM
(LOC VILLAGE-GATE)
(DESC "gnarled elm tree")
(SYNONYM TREE ELM)
(ADJECTIVE GNARLED ELM)
(FLAGS NDESCBIT PLANTBIT)
(ACTION TREE-F)>
<OBJECT UNGNARLED-ELM
(LOC VILLAGE-GATE)
(DESC "ungnarled elm tree")
(SYNONYM TREE ELM)
(ADJECTIVE UNGNARLED ELM)
(FLAGS NDESCBIT VOWELBIT PLANTBIT)
(ACTION TREE-F)>
<ROOM SHADY-PARK
(LOC ROOMS)
(REGION "Flatheadia")
(DESC "Shady Park")
(LDESC
"This grassy mall must have been a nice area at one time, but it is now
overgrown with weeds, and soiled by windblown litter. The shade comes from
a mighty elm which spreads its thick green branches over the park. A wide
east-west boulevard bisects the park, and impressive buildings flank it on
the north and south.")
(EAST TO VILLAGE-CENTER)
(WEST TO VILLAGE-GATE)
(SOUTH TO CHURCH)
(NORTH TO TAX-OFFICE)
(FLAGS RLANDBIT OUTSIDEBIT ONBIT)
(SYNONYM PARK)
(ADJECTIVE SHADY)
(GLOBAL VILLAGE GLOBAL-BLDG)
(MAP-LOC <PTABLE VILLAGE-MAP-NUM MAP-GEN-Y-3 MAP-GEN-X-5>)
(ICON SHADY-PARK-ICON)>
<OBJECT MIGHTY-ELM
(LOC SHADY-PARK)
(DESC "mighty elm tree")
(SYNONYM TREE ELM)
(ADJECTIVE LARGE ELM)
(FLAGS NDESCBIT PLANTBIT)
(ACTION TREE-F)>
<ROOM CHURCH
(LOC ROOMS)
(REGION "Flatheadia")
(DESC "Church")
(LDESC
"This is a house of worship of Brogmoidism. The tenets of this rather silly
religion are engraved on the wall. The only exit is north.")
(NORTH TO SHADY-PARK)
(OUT TO SHADY-PARK)
(FLAGS RLANDBIT ONBIT)
(SYNONYM CHURCH)
(GLOBAL GLOBAL-BLDG)
(MAP-LOC <PTABLE VILLAGE-MAP-NUM MAP-GEN-Y-4 MAP-GEN-X-5>)
(ICON CHURCH-ICON)>
<OBJECT TENET
(LOC CHURCH)
(DESC "engraved tenet")
(SYNONYM TENET TENETS ENGRAVING)
(ADJECTIVE ENGRAVED)
(FLAGS NDESCBIT READBIT)
(TEXT
"\"Thou shalt worship the Great Brogmoid to thine utmost, for upon his shoulder
rests the world -- thus he saveth us from plunging into the Great Void...\"
The tenets go on and on about the brogmoid who supports the world. It's hard to
believe that anyone EVER believed such drivel, let alone in today's enlightened
age. As the great modern thinker, Zorbius Blattus, is fond of saying, \"If a
giant brogmoid were holding up the world, where would he stand?\"")>
<ROOM TAX-OFFICE
(LOC ROOMS)
(REGION "Flatheadia")
(DESC "URS Office")
(LDESC
"This huge hall was the main office of the Underground Revenue Service. Until
the construction of the FrobozzCo Building, it was the largest structure in
the Empire. Here, thousands upon thousands of accountants and auditors once
sat, tabulating the proceeds from Dimwit's astronomical taxations. The only
exit is south.")
(SOUTH TO SHADY-PARK)
(OUT TO SHADY-PARK)
(FLAGS RLANDBIT ONBIT)
(GLOBAL GLOBAL-BLDG)
(RIDDLE
"I once heard of a bookkeeper who, while working on the accounts of the Frobozz
Magic Balloon Company, noted that the word 'balloon' has two double letters in
a row! Stretching his limited imagination to the limit, this bookkeeper
wondered if there were any words with THREE double letters in a row. He
couldn't think of one -- but I'll bet that YOU can!\"")
(ICON URS-OFFICE-ICON)
(MAP-LOC <PTABLE VILLAGE-MAP-NUM MAP-GEN-Y-2 URS-ICON-LOC>)
(ACTION TAX-OFFICE-F)>
<ROUTINE TAX-OFFICE-F ("OPT" (RARG <>))
<COND (<AND <EQUAL? .RARG ,M-END>
<IN? ,ZORKMID-COIN ,LOCAL-GLOBALS>>
<SETUP-ORPHAN "answer">
<COND (<NOT <IN? ,JESTER ,HERE>>
<DEQUEUE I-JESTER>
<MOVE ,JESTER ,HERE>
<THIS-IS-IT ,JESTER>
<RETURN-FROM-MAP>
<TELL
" A bookkeeper is hunched over one of the desks. He looks up as you enter,
and you see that it is the jester, wearing suspenders, a bow tie, thick
eyeglasses, and a green visor.|
\"" <GETP ,TAX-OFFICE ,P?RIDDLE> CR>)>)>>
<OBJECT BOOKKEEPER
(LOC GLOBAL-OBJECTS)
(DESC "bookkeeper")
(SYNONYM BOOKKEEPER BOOKKEEPING)>
<OBJECT ZORKMID-COIN
(LOC LOCAL-GLOBALS)
(DESC "zorkmid coin")
(SYNONYM ZORKMID COIN MONEY)
(ADJECTIVE ONE ZORKMID)
(FLAGS TRYTAKEBIT TAKEBIT READBIT)
(SIZE 1)
(TEXT
"The coin bears the likeness of Belwit the Flat, along with the inscriptions,
\"One Zorkmid,\" and \"699 GUE.\" On the other side, the coin depicts Egreth
Castle, and says \"In Frobs We Trust\" in several languages.")>
<ROOM VILLAGE-CENTER
(LOC ROOMS)
(REGION "Flatheadia")
(DESC "Village Center")
(LDESC
"You are in the midst of the village. At least, at some distant time it may
have been a village. More recently, it was a bustling metropolis. Now it's a
deserted metropolis. A fantastically tall building rises just east of you and
a road heads west. To the south is a post office; to the north, beyond granite
stairs flanked by stone toads, is the Courthouse entrance.")
(EAST TO FR-HQ)
(WEST TO SHADY-PARK)
(SOUTH TO POST-OFFICE)
(NORTH TO COURTROOM)
(FLAGS RLANDBIT ONBIT OUTSIDEBIT)
(GLOBAL VILLAGE FR-BLDG)
(MAP-LOC <PTABLE VILLAGE-MAP-NUM MAP-GEN-Y-3 MAP-GEN-X-7>)>
<OBJECT STONE-TOADS
(LOC VILLAGE-CENTER)
(OWNER STONE-TOADS)
(DESC "pair of stone toads")
(SYNONYM PAIR TOAD TOADS)
(ADJECTIVE STONE)
(FLAGS NDESCBIT)>
<ROOM COURTROOM
(LOC ROOMS)
(REGION "Flatheadia")
(DESC "Courtroom")
(LDESC
"This is where the great jurist, Oliver Wendell Flathead, would hand down
decisions from the bench. The only exit is south.")
(SOUTH TO VILLAGE-CENTER)
(OUT TO VILLAGE-CENTER)
(FLAGS RLANDBIT ONBIT)
(SYNONYM COURTROOM)
(GLOBAL GLOBAL-BLDG)
(MAP-LOC <PTABLE VILLAGE-MAP-NUM MAP-GEN-Y-2 COURTROOM-ICON-LOC>)
(ICON COURTROOM-ICON)>
<ROOM POST-OFFICE
(LOC ROOMS)
(REGION "Flatheadia")
(DESC "Post Office")
(LDESC
"Once the main branch of the Flatheadia Postal Service, this edifice now lies
in deserted silence. A doorway leads north.")
(NORTH TO VILLAGE-CENTER)
(OUT TO VILLAGE-CENTER)
(FLAGS RLANDBIT ONBIT)
(GLOBAL GLOBAL-BLDG)
(MAP-LOC <PTABLE VILLAGE-MAP-NUM MAP-GEN-Y-4 MAP-GEN-X-7>)
(ICON POST-OFFICE-ICON)>
<OBJECT PACKAGE
(LOC POST-OFFICE)
(DESC "package")
(FDESC
"A package rests on one of the counters. Although a collector has stolen
the stamp, the address is still legible.")
(SYNONYM PACKAGE ADDRESS)
(FLAGS TAKEBIT READBIT CONTBIT SEARCHBIT)
(CAPACITY 12)
(TEXT
"\"From: Belznork Gibblewitz To: Eek Numblatz|
F. M. Homing Pigeon Co Int'l Curios, Inc|
FrobozzCo Bldg, 193-E 28 Volcano View Ln|
Flatheadia, FRV-9179 Gurth City, GTH-3791\"")>
<OBJECT PERCH
(LOC PACKAGE)
(DESC "ceramic perch")
(PLURAL "perches")
(SYNONYM PERCH WRITING PRINT LETTERING)
(ADJECTIVE CERAMIC SMALL)
(FLAGS TAKEBIT READBIT)
(OWNER PERCH) ;"read writing on perch"
(TEXT
"Tiny lettering says, \"Frobozz Magic Homing Pigeon Company.\"")>
<BEGIN-SEGMENT 0>
<OBJECT PIGEON
(LOC PACKAGE)
(DESC "ceramic pigeon")
(SYNONYM PIGEON BIRD REPRODUCTION WRITING PRINT LETTERING)
(ADJECTIVE CERAMIC CLAY HOMING SMALL)
(FLAGS TAKEBIT READBIT)
(OWNER PIGEON) ;"read writing on pigeon"
(TEXT
"Tiny lettering says, \"Frobozz Magic Homing Pigeon Company.\"")
(ACTION PIGEON-F)>
<ROUTINE PIGEON-F ()
<COND (<VERB? EXAMINE>
<TELL
"The pigeon, though strikingly lifelike, is merely a clay reproduction. On
the bottom is some tiny writing." CR>)
(<AND <VERB? TAKE>
<PRSO? ,PIGEON>>
<COND (<OR <ULTIMATELY-IN? ,PIGEON>
<FSET? ,OUTER-GATE ,OPENBIT>
,TIME-STOPPED>
<RFALSE>)
(<OR <PROB 10>
<G? ,P-MULT 1>>
<TELL
"Your eyes must be starting to play tricks on you. It almost
seemed like the clay pigeon ">
<COND (<IN? ,PIGEON ,HERE>
<TELL "hopped">)
(T
<TELL "squirmed">)>
<TELL " out of reach at the last second." CR>)
(<EQUAL? <ITAKE T> ,M-FATAL>
<RTRUE>)
(<ULTIMATELY-IN? ,PERCH>
<TELL "Taken." CR>)
(T
<TELL
"As you take the pigeon, you feel a dizziness, like that which one gets from
drinking Miznian wines too quickly. ">
<COND (<OR <EQUAL? <META-LOC ,PERCH> ,HERE>
<AND <EQUAL? ,HERE ,OUBLIETTE>
<EQUAL? ,REMOVED-PERCH-LOC ,OUBLIETTE>>>
<COND (<NOT <EQUAL? <LOC ,PROTAGONIST>
,YACHT ,DB>>
<MOVE ,PROTAGONIST ,HERE>)>
<TELL
"When the disorientation passes, you seem to have moved a few feet." CR>)
(T
<CAST-HUNGER-SPELL>
<TELL
"The world blurs, then darkens. You blink" ,ELLIPSIS>
<SETG HAND-IN-WALDO <>>
<MOVE-TO-PERCH ,PROTAGONIST>)>)>)
(<AND <VERB? PUT-ON>
<PRSI? ,PERCH>>
<TELL
"There's no apparent way to put the pigeon on the perch." CR>)>>
<GLOBAL REMOVED-PERCH-LOC <>> ;"where is perch when it's REMOVEd?"
<ROUTINE MOVE-TO-PERCH (WHAT "AUX" PERCH-LOC L OFFSET RM OBJ X N TOOK-STUFF)
<SET PERCH-LOC <META-LOC ,PERCH>>
<COND (<AND .PERCH-LOC
<IN? .PERCH-LOC ,ROOMS>
<EQUAL? <LOC ,PERCH> ,YACHT ,DB>>
<SET PERCH-LOC <LOC ,PERCH>>)>
<COND (<EQUAL? .WHAT ,PROTAGONIST>
<COND (<EQUAL? ,HERE ,PLAIN>
<STORE ,PLAIN-OFFSET ,PLAIN-LOC ,PLAIN>)
(<EQUAL? ,HERE ,CONSTRUCTION>
<STORE ,CONSTRUCTION-OFFSET ,CONSTRUCTION-LOC ,CONSTRUCTION>)
(<EQUAL? ,HERE ,FR-OFFICES>
<STORE ,OFFICES-OFFSET ,FLOOR-NUMBER ,FR-OFFICES>)
(<EQUAL? ,HERE ,OFFICES-NORTH>
<STORE ,OFFICES-N-OFFSET ,FLOOR-NUMBER ,OFFICES-NORTH>)
(<EQUAL? ,HERE ,OFFICES-SOUTH>
<STORE ,OFFICES-S-OFFSET ,FLOOR-NUMBER ,OFFICES-SOUTH>)
(<EQUAL? ,HERE ,OFFICES-EAST>
<STORE ,OFFICES-E-OFFSET ,FLOOR-NUMBER ,OFFICES-EAST>)
(<EQUAL? ,HERE ,OFFICES-WEST>
<STORE ,OFFICES-W-OFFSET ,FLOOR-NUMBER ,OFFICES-WEST>)>)>
<COND (.PERCH-LOC
<COND (<EQUAL? .WHAT ,PROTAGONIST>
<COND (<AND <EQUAL? ,HERE ,MARSH>
<IN? ,JESTER ,NICE-LUNCH-SPOT>>
<REMOVE-J>)>
<GOTO .PERCH-LOC>
<COND (<EQUAL? ,HERE ,LAKE-BOTTOM>
<JIGS-UP ,DROWN>)
(<NOT <EQUAL? ,HERE ,PLAIN>>
<FCLEAR ,CLOAK ,WORNBIT>)>
<RTRUE>)
(<EQUAL? .PERCH-LOC ,LAKE-BOTTOM>
<SETG PIECE-DROWNED 1>
<ROB .WHAT ,LAKE-BOTTOM>
<REMOVE .WHAT>)
(T
<COND (<OR <SET X <FIND-IN .PERCH-LOC ,WHITEBIT>>
<SET X <FIND-IN .PERCH-LOC ,BLACKBIT>>>
<ROB .X .WHAT>
<REMOVE .X>)>
<SET X <FIRST? .PERCH-LOC>>
<REPEAT () ;"have chess piece snarf all takeable objects"
<COND (<NOT .X>
<RETURN>)>
<SET N <NEXT? .X>>
<COND (<AND <FSET? .X ,TAKEBIT>
<NOT <FSET? .X ,TRYTAKEBIT>>
<NOT <FIND-IN .X ,TRYTAKEBIT>>>
<SET TOOK-STUFF T>
<MOVE .X .WHAT>)>
<SET X .N>>
<MOVE .WHAT .PERCH-LOC>
<COND (<EQUAL? .PERCH-LOC ,HERE>
;"happens if you have perch and throw pigeon into
oracle, and chess piece is waiting at other end"
<TELL
" With a surprisingly high-pitched squeal of alarm,"
A .WHAT " materializes nearby. ">
<COND (<FSET? .WHAT ,FEMALEBIT>
<TELL "Sh">)
(T
<TELL "H">)>
<TELL "e seems somewhat dazed by the experience">
<COND (.TOOK-STUFF
<TELL
", but not too dazed to pick the ground clean." CR>)
(T
<TELL ,PERIOD-CR>)>)>)>)
(<SET L <FIND-PERCH ,PERCH>>
<COND (<G? .L 5000>
<SET OFFSET ,OFFICES-W-OFFSET>
<SET RM ,OFFICES-WEST>)
(<G? .L 4000>
<SET OFFSET ,OFFICES-E-OFFSET>
<SET RM ,OFFICES-EAST>)
(<G? .L 3000>
<SET OFFSET ,OFFICES-S-OFFSET>
<SET RM ,OFFICES-SOUTH>)
(<G? .L 2000>
<SET OFFSET ,OFFICES-N-OFFSET>
<SET RM ,OFFICES-NORTH>)
(<G? .L 1000>
<SET OFFSET ,OFFICES-OFFSET>
<SET RM ,FR-OFFICES>)
(<G? .L 399>
<SET OFFSET ,CONSTRUCTION-OFFSET>
<SET RM ,CONSTRUCTION>)
(T
<SET OFFSET ,PLAIN-OFFSET>
<SET RM ,PLAIN>)>
<COND (<EQUAL? .WHAT ,PROTAGONIST>
<SET L <- .L .OFFSET>>
<COND (<EQUAL? .RM ,PLAIN>
<SETG RANK <+ </ .L 8> 1>>
<SETG FILE <+ <MOD .L 8> 1>>
<SETG PLAIN-LOC .L>
<COND (<NOT <EQUAL? ,HERE ,PLAIN>>
<MOVE ,CLOAK ,PROTAGONIST>
<FSET ,CLOAK ,WORNBIT>
<SETG CLOAK-LOC
<COND (<FSET? <LOC ,PROTAGONIST> ,TAKEBIT>
,HERE)
(T
<LOC ,PROTAGONIST>)>>)>
<UNSTORE .OFFSET .L .RM>)
(<EQUAL? .RM ,CONSTRUCTION>
<SETG RANK <+ </ .L 8> 1>>
<SETG FILE <+ <MOD .L 8> 1>>
<SETG CONSTRUCTION-LOC .L>
<UNSTORE .OFFSET .L .RM>)
(T
<SETG FLOOR-NUMBER .L>
<OFFICE-UNSTORE .L>)>
<COND (<NOT <EQUAL? .RM ,PLAIN>>
<FCLEAR ,CLOAK ,WORNBIT>)>
<COND (<AND <EQUAL? ,HERE ,MARSH>
<IN? ,JESTER ,NICE-LUNCH-SPOT>>
<REMOVE-J>)>
<GOTO .RM>)
(T
<COND (<AND <EQUAL? .WHAT ,WHITE-PAWN>
<EQUAL? .RM ,PLAIN>
<L? <- .L .OFFSET> 8>> ;"promote pawn to queen"
<ROB ,WHITE-PAWN ,WHITE-QUEEN>
<SET WHAT ,WHITE-QUEEN>)
(<AND <EQUAL? .WHAT ,BLACK-PAWN>
<EQUAL? .RM ,PLAIN>
<G? <- .L .OFFSET> 55>> ;"promote pawn to queen"
<ROB ,BLACK-PAWN ,BLACK-QUEEN>
<SET WHAT ,BLACK-QUEEN>)>
<REMOVE .WHAT>
<REMOVE-ANY-PIECE .L .WHAT>
<PIECE-SNARF .L .WHAT>
<PUT-IN-STORAGE .OFFSET .WHAT <- .L .OFFSET>>)>)
(<EQUAL? .WHAT ,PROTAGONIST>
<COND (<EQUAL? ,REMOVED-PERCH-LOC ,WATER>
<HLIGHT ,H-BOLD>
<TELL "Surrounded by Water" CR>
<HLIGHT ,H-NORMAL>
<JIGS-UP ,DROWN>)
(<EQUAL? ,REMOVED-PERCH-LOC ,GROUND ,OUBLIETTE>
<TELL "You appear ">
<COND (<EQUAL? ,REMOVED-PERCH-LOC ,OUBLIETTE>
<TELL "knee deep in mud" ,ELLIPSIS>
<FCLEAR ,CLOAK ,WORNBIT>
<COND (<AND <EQUAL? ,HERE ,MARSH>
<IN? ,JESTER ,NICE-LUNCH-SPOT>>
<REMOVE-J>)>
<GOTO ,OUBLIETTE>)
(T
<JIGS-UP
"several feet underground, thus saving the Undertakers Guild some work.">)>)
(<EQUAL? ,REMOVED-PERCH-LOC ,PSEUDO-OBJECT> ;"Antharia fence"
<JIGS-UP
"North of Anthar|
You find yourself coiled up inside a very nasty bunch of sharp,
rusty, barbed wire.">)
(<EQUAL? ,REMOVED-PERCH-LOC ,BROGMOID>
<JIGS-UP
"You appear in a totally alien world, near a purple forest and a lake of
molten rock. A giant slug-shaped creature oozes up and devours you.">)
(T ;"perch temporarily in cauldron"
<JIGS-UP
"You find yourself in a gray void. The life is sucked slowly from you.">)>)
(<EQUAL? ,REMOVED-PERCH-LOC ,OUBLIETTE>
<MOVE .WHAT ,OUBLIETTE>
<REMOVE-ANY-PIECE .L .WHAT>
<PIECE-SNARF .L .WHAT>)
(T
<REMOVE .WHAT>)>>
<ROUTINE FIND-PERCH (OBJ "AUX" (L <>) (CNT 0))
<REPEAT ()
<COND (<NOT <L? .CNT ,STORAGE-TABLE-LENGTH>>
<COND (<LOC .OBJ>
<SET L <FIND-PERCH <LOC .OBJ>>>)>
<RETURN>)
(<EQUAL? <GET ,STORAGE-TABLE <+ .CNT 1>> .OBJ>
<SET L <GET ,STORAGE-TABLE .CNT>>
<RETURN>)>
<SET CNT <+ .CNT 2>>>
<RETURN .L>>
<END-SEGMENT>
\
<BEGIN-SEGMENT VILLAGE>
<OBJECT FR-BLDG
(LOC LOCAL-GLOBALS)
(DESC "Frobozzco Building")
(SYNONYM BUILDING HEADQUARTERS HQ)
(ADJECTIVE TALL FROBOZZCO INTERNATIONAL WORLD HEADQUARTERS HQ)
(ACTION FR-BLDG-F)>
<ROUTINE FR-BLDG-F ()
<COND (<VERB? RESEARCH>
<PICTURED-ENTRY ,FR-ILL
"The FrobozzCo World Headquaters Building in Flatheadia, designed by Frank
Lloyd Flathead and built by the Frobozz Magic Construction Company in
781 GUE, is easily the tallest, most impressive building in all of Quendor.">)
(<VERB? EXAMINE>
<COND (<EQUAL? ,HERE ,VILLAGE-CENTER>
<TELL "Most of the building is lost in the clouds." CR>)
(T
<TELL "You're in it!" CR>)>)
(<VERB? ENTER>
<COND (<EQUAL? ,HERE ,VILLAGE-CENTER>
<DO-WALK ,P?EAST>)
(<EQUAL? ,HERE ,PHIL-HALL>
<DO-WALK ,P?NORTH>)
(T
<TELL ,LOOK-AROUND>)>)
(<VERB? EXIT>
<V-WALK-AROUND>)>>
<ROOM FR-HQ
(LOC ROOMS)
(REGION "Flatheadia")
(DESC "FrobozzCo HQ")
(LDESC
"You are in the lobby of FrobozzCo International's World Headquarters, an
impressive four hundred story structure. Wide stairs lead up and down; the
main exit is to the west; an emergency exit leads east.")
(WEST TO VILLAGE-CENTER)
(EAST TO BACK-ALLEY)
(DOWN TO FR-BASEMENT)
(UP PER FR-OFFICES-ENTER-F)
(FLAGS RLANDBIT ONBIT)
(GLOBAL STAIRS FR-BLDG)
(MAP-LOC <PTABLE VILLAGE-MAP-NUM MAP-GEN-Y-3 MAP-GEN-X-8>)
(ICON FR-HQ-ICON)>
<OBJECT MEMO ;"in Frobozzco Offices, at fourth floor"
(DESC "memo")
(SYNONYM MEMO)
(FLAGS READBIT TAKEBIT)
(SIZE 2)
(TEXT
"FROM: Spaulding Flathead, Seventh Asst. Bldg. Mgr.|
TO: All tenants|
RE: New stairway policy|
To relieve overcrowding in the stairwells, employees who work above the 75th
floor will be given teleportation tokens. Company officers will continue to
receive teleportation tokens regardless of floor. Note: employees with tokens
will no longer be dismissed early for \"stair-climbing\" time.")>
<OBJECT INSTRUCTION-BOOKLET ;"193rd floor of FrobozzCo Bldg."
(DESC "damaged instruction booklet")
(SYNONYM BOOK BOOKLET INSTRUCTIONS)
(ADJECTIVE INSTRUCTIONS DAMAGED)
(FLAGS TAKEBIT READBIT)
(SIZE 3)
(TEXT
"The booklet is badly torn and faded. You can make out only a few phrases:
\"...ozz Magic Homing Pi...\" and \"...eave the perch in the location you wish
t...\" and \"...eturn warranty card within 90 d...\"")>
<ROUTINE FR-OFFICES-ENTER-F ("OPT" (RARG <>)) ;"called by NEXT-ROOM?"
<COND (.RARG
<RETURN ,FR-OFFICES>)
(<EQUAL? ,HERE ,FR-HQ>
<SETG FLOOR-NUMBER 2>)
(T
<SETG FLOOR-NUMBER 399>)>
<OFFICE-UNSTORE ,FLOOR-NUMBER>
,FR-OFFICES>
<ROOM FR-OFFICES
(LOC ROOMS)
(REGION "Flatheadia")
(DESC "FrobozzCo Offices")
(NORTH TO OFFICES-NORTH)
(EAST TO OFFICES-EAST)
(WEST TO OFFICES-WEST)
(SOUTH TO OFFICES-SOUTH)
(UP PER FR-FLOOR-F)
(DOWN PER FR-FLOOR-F)
(FLAGS RLANDBIT ONBIT)
(GLOBAL FR-BLDG STAIRS)
(MAP-LOC <PTABLE VILLAGE-MAP-NUM MAP-GEN-Y-5 MAP-GEN-X-10>)
(ACTION OFFICES-F)>
<ROUTINE OFFICES-F ("OPT" (RARG <>))
<COND (<EQUAL? .RARG ,M-ENTER>
<SETG BEEN-IN-FR-UPPER-FLOORS T>)
(<EQUAL? .RARG ,M-LOOK>
<TELL
"You are on Floor " N ,FLOOR-NUMBER " of the FrobozzCo Building. The offices
of one subsidiary or another can be entered in all four directions. Stairs
lead up and down.">)>>
<GLOBAL BEEN-IN-FR-UPPER-FLOORS <>>
;"for on-screen maps, since touchbit is never set in FrobozzCo office rooms"
<GLOBAL FLOOR-NUMBER 2>
<ROUTINE FR-FLOOR-F ("OPTIONAL" (RARG <>)) ;"called by NEXT-ROOM?"
<COND (<AND <PRSO? ,P?UP>
<EQUAL? ,FLOOR-NUMBER 399>>
,FR-PENTHOUSE)
(<AND <PRSO? ,P?DOWN>
<EQUAL? ,FLOOR-NUMBER 2>>
,FR-HQ)
(.RARG
;"else clicking on offices-icon when you're there causes
you to go (invisibly) up one floor"
<RFALSE>)
(T
<STORE ,OFFICES-OFFSET ,FLOOR-NUMBER>
<STORE ,OFFICES-N-OFFSET ,FLOOR-NUMBER ,OFFICES-NORTH>
<STORE ,OFFICES-S-OFFSET ,FLOOR-NUMBER ,OFFICES-SOUTH>
<STORE ,OFFICES-E-OFFSET ,FLOOR-NUMBER ,OFFICES-EAST>
<STORE ,OFFICES-W-OFFSET ,FLOOR-NUMBER ,OFFICES-WEST>
<SETG FLOOR-NUMBER <COND (<PRSO? ,P?UP>
<+ ,FLOOR-NUMBER 1>)
(T
<- ,FLOOR-NUMBER 1>)>>
<OFFICE-UNSTORE ,FLOOR-NUMBER>
,FR-OFFICES)>>
<ROUTINE OFFICE-UNSTORE (L)
<UNSTORE ,OFFICES-OFFSET .L ,FR-OFFICES>
<UNSTORE ,OFFICES-N-OFFSET .L ,OFFICES-NORTH>
<UNSTORE ,OFFICES-S-OFFSET .L ,OFFICES-SOUTH>
<UNSTORE ,OFFICES-E-OFFSET .L ,OFFICES-EAST>
<UNSTORE ,OFFICES-W-OFFSET .L ,OFFICES-WEST>>
<OBJECT T-SQUARE
(DESC "T-square")
(SYNONYM T-SQUARE)
(FLAGS TAKEBIT MAGICBIT)
(VALUE 12)>
<ROOM OFFICES-NORTH
(LOC ROOMS)
(REGION "Flatheadia")
(DESC "FrobozzCo Offices North")
(SOUTH TO FR-OFFICES)
(FLAGS RLANDBIT ONBIT)
(GLOBAL FR-BLDG WINDOW)
(ICON OFFICES-ICON)
(MAP-LOC <PTABLE VILLAGE-MAP-NUM MAP-GEN-Y-4 MAP-GEN-X-10>)
(ACTION FR-OUTER-OFFICES-F)>
<ROOM OFFICES-EAST
(LOC ROOMS)
(REGION "Flatheadia")
(DESC "FrobozzCo Offices East")
(WEST TO FR-OFFICES)
(FLAGS RLANDBIT ONBIT)
(GLOBAL FR-BLDG WINDOW)
(ICON OFFICES-ICON)
(MAP-LOC <PTABLE VILLAGE-MAP-NUM MAP-GEN-Y-5 MAP-GEN-X-11>)
(ACTION FR-OUTER-OFFICES-F)>
<ROOM OFFICES-WEST
(LOC ROOMS)
(REGION "Flatheadia")
(DESC "FrobozzCo Offices West")
(EAST TO FR-OFFICES)
(FLAGS RLANDBIT ONBIT)
(GLOBAL FR-BLDG WINDOW)
(ICON OFFICES-ICON)
(MAP-LOC <PTABLE VILLAGE-MAP-NUM MAP-GEN-Y-5 MAP-GEN-X-9>)
(ACTION FR-OUTER-OFFICES-F)>
<ROOM OFFICES-SOUTH
(LOC ROOMS)
(REGION "Flatheadia")
(DESC "FrobozzCo Offices South")
(NORTH TO FR-OFFICES)
(FLAGS RLANDBIT ONBIT)
(GLOBAL FR-BLDG WINDOW)
(ICON OFFICES-ICON)
(MAP-LOC <PTABLE VILLAGE-MAP-NUM MAP-GEN-Y-6 MAP-GEN-X-10>)
(ACTION FR-OUTER-OFFICES-F)>
<ROUTINE FR-OUTER-OFFICES-F ("OPT" (RARG <>))
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL
"You are in an office on floor " N ,FLOOR-NUMBER " of the FrobozzCo Building.
The office has a lovely ">
<COND (<EQUAL? ,HERE ,OFFICES-NORTH>
<TELL "north">)
(<EQUAL? ,HERE ,OFFICES-SOUTH>
<TELL "south">)
(<EQUAL? ,HERE ,OFFICES-EAST>
<TELL "east">)
(T
<TELL "west">)>
<TELL "ern exposure. The only exit is to the ">
<COND (<EQUAL? ,HERE ,OFFICES-NORTH>
<TELL "south">)
(<EQUAL? ,HERE ,OFFICES-SOUTH>
<TELL "north">)
(<EQUAL? ,HERE ,OFFICES-EAST>
<TELL "west">)
(T
<TELL "east">)>
<TELL ".">)>>
<ROOM FR-PENTHOUSE
(LOC ROOMS)
(REGION "Flatheadia")
(DESC "FrobozzCo Penthouse")
(LDESC
"You have reached the top floor! On a clear day, one can see hundreds of
bloits from here; too bad it's so smoggy today. A stair leads down.")
(DOWN PER FR-OFFICES-ENTER-F)
(FLAGS RLANDBIT ONBIT)
(GLOBAL FR-BLDG WINDOW STAIRS)
(MAP-LOC <PTABLE VILLAGE-MAP-NUM MAP-GEN-Y-7 MAP-GEN-X-8>)
(ICON PENTHOUSE-ICON)
(ACTION FR-PENTHOUSE-F)>
<ROUTINE FR-PENTHOUSE-F ("OPT" (RARG <>))
<COND (<AND <EQUAL? .RARG ,M-ENTER>
<NOT <FSET? ,FR-PENTHOUSE ,TOUCHBIT>>>
<SETG DO-J T>
<QUEUE I-JESTER 1>)>>
<ROOM FR-BASEMENT
(LOC ROOMS)
(REGION "Flatheadia")
(DESC "FrobozzCo Basement")
(LDESC
"The basement of the FrobozzCo Building is a place of sturdy walls, designed
to support the 400 stories above. A stair leads up and a passage heads south.")
(UP TO FR-HQ)
(SOUTH PER PHIL-ENTER-F)
(FLAGS RLANDBIT)
(GLOBAL STAIRS FR-BLDG)
(MAP-LOC <PTABLE VILLAGE-MAP-NUM MAP-GEN-Y-4 MAP-GEN-X-8>)>
<OBJECT BASEMENT-REBUS-BUTTON
(LOC FR-BASEMENT)
(SDESC "blinking key-shaped button")
(FDESC
"In a dark corner, a blinking button catches your eye. It seems to be in the
shape of a key.")
(SYNONYM BUTTON)
(ADJECTIVE KEY-SHAPED BLINKING)
(ACTION REBUS-BUTTON-F)>
<ROUTINE PHIL-ENTER-F ("OPTIONAL" (RARG <>)) ;"called by NEXT-ROOM?"
<COND (<AND <NOT .RARG>
<EQUAL? ,CURRENT-SPLIT ,TEXT-WINDOW-PIC-LOC>>
<TELL
"The passage takes you from the FrobozzCo Building back into
the castle. It widens" ,ELLIPSIS>)>
,PHIL-HALL>
<END-SEGMENT>
<BEGIN-SEGMENT LAKE>
<ROUTINE FR-BASEMENT-ENTER-F ("OPT" (RARG <>)) ;"called by NEXT-ROOM?"
<COND (<AND <NOT .RARG>
<EQUAL? ,CURRENT-SPLIT ,TEXT-WINDOW-PIC-LOC>>
<TELL
"The passage narrows as it leaves the castle, then widens again as it
enters" ,ELLIPSIS>)>
,FR-BASEMENT>
<END-SEGMENT>
<BEGIN-SEGMENT VILLAGE>
<ROOM BACK-ALLEY
(LOC ROOMS)
(DESC "Back Alley")
(REGION "Flatheadia")
(LDESC
"This is a grungy, foul-smelling lane. A large building can be entered
to the west, and a much smaller one to the north.")
(NORTH TO MAGIC-SHOP)
(WEST TO FR-HQ)
(FLAGS RLANDBIT ONBIT OUTSIDEBIT)
(SYNONYM ALLEY)
(ADJECTIVE BACK)
(GLOBAL FR-BLDG GLOBAL-BLDG)
(MAP-LOC <PTABLE VILLAGE-MAP-NUM MAP-GEN-Y-3 MAP-GEN-X-9>)
(ICON BACK-ALLEY-ICON)>
<ROOM MAGIC-SHOP
(LOC ROOMS)
(DESC "Magic Shop")
(REGION "Flatheadia")
(LDESC
"Perhaps this was once a thriving shop, but now, like the rest of Flatheadia,
it lies deserted, gutted by looters. The exit is south.")
(SOUTH TO BACK-ALLEY)
(OUT TO BACK-ALLEY)
(FLAGS RLANDBIT ONBIT)
(SYNONYM SHOP STORE)
(ADJECTIVE MAGIC)
(GLOBAL GLOBAL-BLDG)
(MAP-LOC <PTABLE VILLAGE-MAP-NUM MAP-GEN-Y-2 MAP-GEN-X-9>)
(ICON MAGIC-SHOP-ICON)>
<OBJECT RING
(LOC MAGIC-SHOP)
(OWNER RING)
(DESC "ring of ineptitude" ;"ring of spasticity")
(FDESC
"The only thing the looters ignored was a ring. Not surprising, as it is a
ring of ineptitude. Fun at parties, but not good for much else.")
(SYNONYM RING INEPTITUDE ;SPASTICITY)
(FLAGS TAKEBIT WEARBIT)
(SIZE 1)
(ACTION RING-F)>
<BEGIN-SEGMENT 0>
<ROUTINE RING-F ("AUX" AV HOLDING-STUFF)
<COND (<VERB? WEAR>
<SET AV <LOC ,PROTAGONIST>>
<MOVE ,RING ,PROTAGONIST>
<FSET ,RING ,WORNBIT>
<TELL "As you slip the ring onto your finger, you clumsily ">
<COND (<EQUAL? ,HERE ,UNDER-THE-WORLD ,HANGING-FROM-ROOTS
,LEDGE-IN-PIT ,MOUTH-OF-CAVE>
<TELL "lose your grip, and plunge downward. ">
<PERFORM ,V?LEAP ,ROOMS>
<RTRUE>)
(<G? <CCOUNT ,PROTAGONIST> 1>
<TELL "drop everything you were holding.">
<ROB ,PROTAGONIST
<COND (<FSET? .AV ,DROPBIT> .AV)
(T ,HERE)>
T ;"T arg tells ROB not to drop worn items">
<CRLF>)
(T
<TELL
"trip over your own feet and just barely manage to keep your balance." CR>)>)>>
<END-SEGMENT>