2420 lines
67 KiB
Plaintext
2420 lines
67 KiB
Plaintext
"BIGTOP for BALLYHOO: Copyright (C)1984 Infocom, Inc."
|
|
|
|
<OBJECT CIRCUS
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "circus")
|
|
(SYNONYM SHOW ACT FEAT)
|
|
(ADJECTIVE CIRCUS BALLYHOO)
|
|
(FLAGS NDESCBIT)
|
|
(ACTION CIRCUS-F)>
|
|
|
|
;"RMUNGBIT = guard told your about circus/munrab"
|
|
|
|
;<OBJECT CIRCUS
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "The Traveling Circus That Time Forgot, Inc.")
|
|
(SYNONYM CIRCUS FORGOT)
|
|
(ADJECTIVE TRAVELING TIME)
|
|
(FLAGS NDESCBIT)
|
|
;(ACTION CIRCUS-F)>
|
|
|
|
<ROUTINE CIRCUS-F ()
|
|
<COND (<AND <VERB? EXAMINE>
|
|
<EQUAL? ,HERE ,STANDS-ROOM>>
|
|
<TELL
|
|
"How the crowd's enjoying a show that's so hard to see is hard to see." CR>)>>
|
|
|
|
<ROOM UNDER-STANDS
|
|
(IN ROOMS)
|
|
(DESC "Under the Bleachers")
|
|
(SW PER EXIT-UNDER-STANDS)
|
|
(UP PER NOT-UNDER-STANDS)
|
|
(SOUTH PER EXIT-UNDER-STANDS)
|
|
(FLAGS ONBIT RLANDBIT INDOORSBIT)
|
|
(GLOBAL GRANDSTAND BIGTOP PATH)
|
|
(ACTION UNDER-STANDS-F)>
|
|
|
|
<ROUTINE UNDER-STANDS-F (RARG)
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
<TELL
|
|
"You're standing between the underside of the " D ,GRANDSTAND " and the
|
|
side wall of the " D ,BIGTOP ". Not unexpectedly, the " D ,GROUND " here
|
|
is strewn with garbage. The only exit is ">
|
|
<COND (,WON-STANDS
|
|
<TELL "back under the tent">)
|
|
(T
|
|
<TELL "southwest">)>
|
|
<TELL ,PERIOD>)>>
|
|
|
|
<ROUTINE EXIT-UNDER-STANDS ()
|
|
<COND (<EQUAL? ,P-WALK-DIR ,P?SW>
|
|
<COND (,WON-STANDS
|
|
<TELL "The grandstand">
|
|
<TELL ,TELL-STANDS>
|
|
<TELL ", blocking the former exit." CR>
|
|
<RFALSE>)
|
|
(T
|
|
<RETURN ,WINGS>)>)
|
|
(<FSET? ,BIGTOP ,RMUNGBIT>
|
|
<PERFORM ,V?CRAWL-UNDER ,BIGTOP>
|
|
<RFALSE>)
|
|
(T
|
|
<TELL "You bump into the side wall of the " D ,BIGTOP "." CR>
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE NOT-UNDER-STANDS ()
|
|
<TELL "You're UNDER the stands, understand?" CR>
|
|
<SETG AWAITING-REPLY 7>
|
|
<ENABLE <QUEUE I-REPLY 2>>
|
|
<RFALSE>>
|
|
|
|
<OBJECT GARBAGE
|
|
(IN UNDER-STANDS)
|
|
(DESC "garbage")
|
|
(SYNONYM GARBAGE TRASH)
|
|
(FLAGS NDESCBIT NOA)
|
|
(ACTION GARBAGE-F)>
|
|
|
|
<ROUTINE GARBAGE-F ()
|
|
<COND (<VERB? SEARCH SEARCH-OBJECT-FOR EXAMINE DIG MOVE LOOK-UNDER
|
|
LOOK-INSIDE>
|
|
<COND (<IN? ,TICKET ,LOCAL-GLOBALS>
|
|
<MOVE ,TICKET ,HERE>
|
|
<SETG P-IT-OBJECT ,TICKET>
|
|
<SETG SCORE <+ ,SCORE 10>>
|
|
<TELL
|
|
"Your foray into " D ,GARBAGE " reclamation pays off, as you turn up
|
|
the unmarked ticket of some luckless circus-goer." CR>)
|
|
(<AND <IN? ,GRANOLA ,LOCAL-GLOBALS>
|
|
<NOT <FSET? ,GRANOLA ,RMUNGBIT>>
|
|
,WON-STANDS>
|
|
<SETG P-IT-OBJECT ,GRANOLA>
|
|
<MOVE ,GRANOLA ,HERE>
|
|
<TELL
|
|
"Recalling the precise trajectory of your fallen " D ,GRANOLA ", you
|
|
uncover it after a brief excavation." CR>)
|
|
(<VERB? EXAMINE>
|
|
<RFALSE>)
|
|
(T
|
|
<TELL "You merely raise a stench." CR>)>)
|
|
(<VERB? CLEAN>
|
|
<V-DIG>)
|
|
(<VERB? SMELL>
|
|
<TELL
|
|
"It smells vaguely of " <PICK-ONE ,FOODS> " and " <PICK-ONE ,FOODS> "." CR>)>>
|
|
|
|
<OBJECT GRANDSTAND
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "grandstand")
|
|
(SYNONYM SEATS SEAT STAND STANDS)
|
|
(ADJECTIVE GRANDSTAND BLEACHER BLUES BENCH RICKETY)
|
|
(FLAGS NDESCBIT)
|
|
(ACTION GRANDSTAND-F)>
|
|
|
|
<ROUTINE GRANDSTAND-F ()
|
|
<COND (<AND <VERB? EXAMINE>
|
|
<EQUAL? ,HERE ,UNDER-STANDS>>
|
|
<SETG PRSO ,ROOMS>
|
|
<PERFORM ,V?LOOK-UP ,PRSO>
|
|
<RTRUE>)
|
|
(<VERB? CLIMB-UP CLIMB-FOO THROUGH BOARD>
|
|
<COND (<EQUAL? ,HERE ,RING>
|
|
<DO-WALK ,P?NORTH>)
|
|
(T
|
|
<DO-WALK ,P?UP>)>)
|
|
(<VERB? CLIMB-DOWN>
|
|
<COND (<EQUAL? ,HERE ,UNDER-STANDS>
|
|
<DO-WALK ,P?UP>)
|
|
(<EQUAL? ,HERE ,STANDS-ROOM>
|
|
<DO-WALK ,P?DOWN>)
|
|
(T
|
|
<TELL ,LOOK-AROUND CR>)>)
|
|
(<VERB? BOARD>
|
|
<COND (<EQUAL? ,HERE ,UNDER-STANDS ,WINGS>
|
|
<DO-WALK ,P?UP>)
|
|
(<EQUAL? ,HERE ,RING>
|
|
<DO-WALK ,P?NORTH>)
|
|
(T
|
|
<TELL ,LOOK-AROUND CR>)>)>>
|
|
|
|
<ROOM STANDS-ROOM
|
|
(IN ROOMS)
|
|
(DESC "Standing Room Only")
|
|
(NORTH PER N-OOF)
|
|
(SOUTH PER S-OOF)
|
|
(EAST PER E-OOF)
|
|
(WEST PER W-OOF)
|
|
(UP PER N-OOF)
|
|
(DOWN PER S-OOF)
|
|
(FLAGS ONBIT RLANDBIT INDOORSBIT)
|
|
(GLOBAL BIGTOP GRANDSTAND TIGHTROPE-OBJECT)
|
|
(ACTION STANDS-ROOM-F)>
|
|
|
|
<ROUTINE STANDS-ROOM-F (RARG)
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
<COND (,SIT-IN-STANDS
|
|
<TELL
|
|
"You're in the \"blues,\" sitting" ,HIGH-ABOVE ". ">)>
|
|
<COND (<AND <NOT <VERB? WALK>>
|
|
<NOT <EQUAL? ,TLOC 12>>>
|
|
<TELL
|
|
"You know the exit from the " D ,GRANDSTAND " to be vaguely eastward and
|
|
down. ">)>
|
|
<TELL
|
|
"All around you the crowd is in a state of pandemonium">
|
|
<COND (<NOT ,SIT-IN-STANDS>
|
|
<TELL
|
|
". The paths of least resistance are ">
|
|
<COND (<EQUAL? ,TLOC 3 9>
|
|
<TELL <GET ,PATHS 1>>)
|
|
(<EQUAL? ,TLOC 11>
|
|
<TELL <GET ,PATHS 5>>)
|
|
(<EQUAL? ,TLOC 8>
|
|
<TELL <GET ,PATHS 2>>)
|
|
(<EQUAL? ,TLOC 12>
|
|
<TELL <GET ,PATHS 6>>)
|
|
(T
|
|
<TELL <GET ,PATHS ,TLOC>>)>)>
|
|
<TELL ,PERIOD>)
|
|
(<EQUAL? .RARG ,M-END>
|
|
<COND (<AND <FSET? ,HAWKER ,RMUNGBIT>
|
|
<EQUAL? ,TLOC ,LOST-MONEY-LOC>>
|
|
<SETG WON-STANDS T>
|
|
<SETG SCORE <+ ,SCORE 10>>
|
|
<TELL CR
|
|
"A man in the audience suddenly hails you, tossing the " D ,GRANOLA " in your
|
|
" D ,INTDIR ". It glances off " D ,HEAD ", falls through the stands and
|
|
right before it hits the ground, in a cold sweat you ">
|
|
<WAKE-UP>)
|
|
(<AND <EQUAL? ,TLOC 12>
|
|
<EQUAL? ,POCKET-CHANGE 1841>>
|
|
<TELL CR
|
|
"Suddenly a hawker appears at the end of the row and you flag him down. ">
|
|
<MOVE ,HAWKER ,HERE>
|
|
<HAWKER-GESTURES>
|
|
<CRLF>
|
|
;<DISABLE <INT I-STANDS>>
|
|
<SETG P-DOLLAR-FLAG T>
|
|
<SETG P-AMOUNT 185>
|
|
<PERFORM ,V?GIVE ,INTNUM ,HAWKER>
|
|
<SETG P-IT-OBJECT ,GLOBAL-MONEY>
|
|
<RTRUE>)
|
|
(<AND <PROB 50>
|
|
<NOT ,SIT-IN-STANDS>>
|
|
<TELL CR
|
|
"The bank of people above you shouts, in chorus, \"" <PICK-ONE ,BITCHES>
|
|
"!\"" CR>)>)
|
|
(<EQUAL? .RARG ,M-BEG>
|
|
<COND (<AND <VERB? SIT WALK>
|
|
,SIT-IN-STANDS>
|
|
<TELL "But you are seated." CR>)
|
|
(<VERB? SIT>
|
|
<TELL "\"Oof! Get off of me!\"" CR>)>)>>
|
|
|
|
<ROUTINE HAWKER-GESTURES ()
|
|
<TELL
|
|
"The hawker can barely hear you above the crowd noise. He flashes one finger,
|
|
then eight fingers, then five fingers at you, and gestures to pass the money
|
|
through the crowd." CR>>
|
|
|
|
<GLOBAL HAWKER-DIRECTION <>>
|
|
|
|
<ROUTINE I-STANDS ()
|
|
<ENABLE <QUEUE I-STANDS -1>>
|
|
<SETG STANDS-C <+ ,STANDS-C 1>>
|
|
<COND (<AND <EQUAL? ,STANDS-C 12>
|
|
<EQUAL? ,HERE ,STANDS-ROOM>
|
|
<EQUAL? ,POCKET-CHANGE 1656>> ;"i.e. next move aft paying"
|
|
<TELL CR
|
|
"The audience settles back down to a state of pandemonium." CR>
|
|
<RTRUE>)
|
|
(<AND <IN? ,HAWKER ,HERE>
|
|
<EQUAL? ,HERE ,STANDS-ROOM>>
|
|
<MOVE ,HAWKER ,LOCAL-GLOBALS>
|
|
<TELL CR "Trudging ">
|
|
<COND (<PROB 50>
|
|
<TELL "down">
|
|
<SETG HAWKER-DIRECTION ,P?DOWN>)
|
|
(T
|
|
<SETG HAWKER-DIRECTION ,P?UP>
|
|
<TELL "up">)>
|
|
<SETG FOLLOW-FLAG 17>
|
|
<ENABLE <QUEUE I-FOLLOW 2>>
|
|
<TELL "ward, the hawker disappears into the " D ,CROWD>
|
|
<COND (<VERB? WALK-TO FOLLOW>
|
|
<TELL " before you can reach him">)>
|
|
<TELL ,PERIOD>
|
|
<RTRUE>)
|
|
(<EQUAL? ,STANDS-C 2 3>
|
|
<TELL CR "You hear a loud ">
|
|
<COND (<EQUAL? ,STANDS-C 2>
|
|
<TELL "growl">)
|
|
(T
|
|
<TELL "roar">)>
|
|
<TELL " nearby." CR>)
|
|
(<EQUAL? ,STANDS-C 4>
|
|
<TELL CR
|
|
"You realize the noise is your own stomach." CR>)
|
|
(<OR <EQUAL? ,STANDS-C 5>
|
|
<AND <G? ,STANDS-C 5>
|
|
<PROB 25>
|
|
<EQUAL? ,HERE ,STANDS-ROOM>
|
|
<NOT <EQUAL? ,STANDS-C 11 12 13>>
|
|
;<NOT <EQUAL? ,TLOC 13>>>>
|
|
<FSET ,HAWKER ,NDESCBIT>
|
|
<MOVE ,HAWKER ,HERE>
|
|
<TELL CR "A " D ,HAWKER " appears at the ">
|
|
<COND (<OR <EQUAL? ,TLOC 1 2 3>
|
|
<EQUAL? ,TLOC 7 8 9>>
|
|
<TELL "west">)
|
|
(T
|
|
<TELL "east">)>
|
|
<TELL
|
|
" end of your row, calling out in a sing-song manner, \"Get your "
|
|
<PICK-ONE ,FOODS> " here. Get your " <PICK-ONE ,FOODS> " here.\"" CR>)>>
|
|
|
|
<GLOBAL FOODS
|
|
<LTABLE 0
|
|
"tofu"
|
|
"popcorn"
|
|
"peanuts"
|
|
"cotton candy"
|
|
"granola bars"
|
|
"yogurt"
|
|
"New Coke"
|
|
"Old Coke">>
|
|
|
|
<OBJECT JUNK-FOOD
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "refreshment")
|
|
(SYNONYM CANDY COKE NUTS FOOD)
|
|
(ADJECTIVE PEANUTS YOGURT TOFU NEW OLD POPCORN COTTON REFRESHMENT)
|
|
(FLAGS NDESCBIT ;TAKEBIT TRYTAKEBIT EATBIT)
|
|
(ACTION JUNK-FOOD-F)>
|
|
|
|
;<GLOBAL FOOD-ORDERED <>>
|
|
;<GLOBAL ADJ-FOOD-ORDERED <>>
|
|
|
|
<ROUTINE JUNK-FOOD-F ()
|
|
<COND (<VERB? BUY>
|
|
;<SETG FOOD-ORDERED <GET ,P-NAMW 0>>
|
|
;<SETG ADJ-FOOD-ORDERED <GET ,P-ADJW 0>>
|
|
<COND (<AND <EQUAL? ,HERE ,STANDS-ROOM>
|
|
<IN? ,HAWKER ,HERE>>
|
|
<PERFORM ,V?TELL ,HAWKER>
|
|
<RTRUE>)
|
|
(<EQUAL? ,HERE ,STANDS-ROOM>
|
|
<TELL "The " D ,HAWKER "'s nowhere in sight." CR>)
|
|
(<AND <EQUAL? ,HERE ,WINGS>
|
|
<IN? ,HAWKER ,HERE>>
|
|
<COND (<FSET? ,HAWKER ,RMUNGBIT>
|
|
<TELL
|
|
"\"Sorry, I'm all sold out. I made a killing up there,\" he says, looking
|
|
exhausted but happy." CR>)
|
|
(T
|
|
<PERFORM ,V?TELL ,HAWKER>
|
|
<RTRUE>)>)
|
|
(<AND <EQUAL? ,HERE ,CON-AREA>
|
|
,DREAMING>
|
|
<TELL "You're not alone in your hunger." CR>)>)
|
|
(<OR <DONT-HANDLE? ,JUNK-FOOD>
|
|
<VERB? ASK-FOR ASK-ABOUT>>
|
|
<RFALSE>)
|
|
(<AND <EQUAL? ,HERE ,WINGS>
|
|
<IN? ,HAWKER ,HERE>>
|
|
<TELL "The only remnant of the">
|
|
<COND (<EQUAL? ,JUNK-FOOD ,PRSO>
|
|
<PRSO-PRINT>)
|
|
(T
|
|
<PRSI-PRINT>)>
|
|
<TELL " is ground into the " D ,HAWKER "'s uniform." CR>)>>
|
|
|
|
<OBJECT HAWKER
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "hawker")
|
|
(LDESC
|
|
"One lone hawker stands waiting in the wings, taking his break.")
|
|
(SYNONYM MAN HAWKER CONCES)
|
|
(FLAGS ACTORBIT PERSON NDESCBIT OPENBIT CONTBIT SEARCHBIT)
|
|
(ACTION HAWKER-F)>
|
|
|
|
;"RMUNGBIT = he's told you in wings about your nuts waiting for you at
|
|
TLOC 1 in stands"
|
|
|
|
<ROUTINE HAWKER-F ()
|
|
<COND (<PAY-HAWKER?>
|
|
<COND (<EQUAL? ,FOLLOW-FLAG 99>
|
|
<RFATAL>)
|
|
(T
|
|
<RTRUE>)>)
|
|
(<AND <VERB? FOLLOW WALK-TO>
|
|
<EQUAL? ,FOLLOW-FLAG 17>>
|
|
<DO-WALK ,HAWKER-DIRECTION>)
|
|
(<AND <VERB? EXAMINE>
|
|
<EQUAL? ,HERE ,WINGS>>
|
|
<TELL
|
|
"Yup, it's the same guy you encountered in the stands. He's empty-handed and
|
|
his uniform resembles modern art, a besplattered canvas of condiments." CR>)
|
|
(<AND <VERB? GIVE>
|
|
<PRSI? ,HAWKER>>
|
|
<PERFORM ,V?WAVE-AT ,HAWKER>
|
|
<RTRUE>)
|
|
(<AND <EQUAL? ,HERE ,STANDS-ROOM>
|
|
<TOUCHING? ,HAWKER>>
|
|
<CANT-REACH ,HAWKER>)
|
|
(<TALKING-TO? ,HAWKER>
|
|
<COND (<AND <EQUAL? ,HERE ,STANDS-ROOM>
|
|
<EQUAL? ,POCKET-CHANGE 1841>>
|
|
<ENABLE <QUEUE I-STANDS 2>> ;"Will leave on next turn"
|
|
<HAWKER-GESTURES>)
|
|
(T
|
|
<COND (<EQUAL? ,HERE ,STANDS-ROOM>
|
|
<COND (<VERB? WAVE-AT>
|
|
<TELL "He didn't notice you." CR>)
|
|
(T
|
|
<TELL
|
|
"The crowd noise completely drowns you out." CR>)>)
|
|
(<OR ;"not bought both granola and banana?"
|
|
<NOT <EQUAL? ,POCKET-CHANGE 1281>>
|
|
<FSET? ,HAWKER ,RMUNGBIT>>
|
|
<TELL "Exhausted, he ignores you." CR>)
|
|
(T
|
|
<FSET ,HAWKER ,RMUNGBIT>
|
|
<TELL
|
|
"\"Hey, you're the one I passed the granola bar to in the " D ,GRANDSTAND ". ">
|
|
<COND (<NOT ,ORDERED-GRANOLA>
|
|
<TELL
|
|
"I know that's not what you ordered, but that's all I had left. ">)>
|
|
<TELL
|
|
"Well, the guy that was sitting next to you is holding the granola for
|
|
you.\"" CR>)>)>
|
|
<STOP>)>>
|
|
;<COND (<OR ,FOOD-ORDERED
|
|
,ADJ-FOOD-ORDERED>
|
|
<TELL
|
|
"What? You say you'd really ordered">
|
|
<COND (<EQUAL? ,FOOD-ORDERED ,W?BAR>
|
|
<TELL " a ">)>
|
|
<COND (,ADJ-FOOD-ORDERED
|
|
<PRINTB ,ADJ-FOOD-ORDERED>)>
|
|
<COND (,FOOD-ORDERED
|
|
<TELL " ">
|
|
<PRINTB ,FOOD-ORDERED>)>
|
|
<TELL "? Sorry. ">)>
|
|
|
|
<OBJECT CROWD
|
|
(IN WINGS)
|
|
(DESC "crowd")
|
|
(SYNONYM CROWD PEOPLE)
|
|
(ADJECTIVE ;MOB AUDIENCE)
|
|
(FLAGS ACTORBIT PERSON NDESCBIT)
|
|
;(GERERIC GEN-BAR)
|
|
(ACTION CROWD-F)>
|
|
|
|
<ROUTINE CROWD-F ()
|
|
<COND (<AND <VERB? LISTEN>
|
|
<EQUAL? ,HERE ,STANDS-ROOM>>
|
|
<TELL "They're all madly screaming." CR>)
|
|
(<VERB? FOLLOW>
|
|
<COND (<AND <EQUAL? ,HERE ,CON-AREA>
|
|
<NOT <FSET? ,BESIDE-BIGTOP ,TOUCHBIT>>>
|
|
<DO-WALK ,P?EAST>)
|
|
(<AND <EQUAL? ,HERE ,WINGS>
|
|
<NOT <FSET? ,CON-AREA ,TOUCHBIT>>>
|
|
<DO-WALK ,P?SOUTH>)>)
|
|
(<OR <AND <EQUAL? ,HERE ,WINGS>
|
|
<NOT <FSET? ,CON-AREA ,TOUCHBIT>>>
|
|
<AND <EQUAL? ,HERE ,CON-AREA>
|
|
<RUNNING? I-BOOST>>>
|
|
<CROWD-GONE>)
|
|
(<TALKING-TO? ,CROWD>
|
|
<TELL
|
|
"You have neither the voice nor the talent to capture the " D ,CROWD "'s
|
|
attention." CR>
|
|
<STOP>)
|
|
(<PAY-HAWKER?>
|
|
<COND (<EQUAL? ,FOLLOW-FLAG 99>
|
|
<RFATAL>)
|
|
(T
|
|
<RTRUE>)>)
|
|
(<VERB? ;ENTER THROUGH>
|
|
<COND (<EQUAL? ,HERE ,MIDWEST>
|
|
<DO-WALK ,P?NORTH>)
|
|
(T
|
|
<V-WALK-AROUND>)>)
|
|
(<VERB? EXAMINE>
|
|
<TELL
|
|
"Each member appears to have been born precisely one minute apart
|
|
from the next." CR>)>>
|
|
|
|
<ROUTINE CROWD-GONE ()
|
|
<TELL "The " D ,CROWD "'s gone ">
|
|
<COND (<EQUAL? ,HERE ,CON-AREA>
|
|
<TELL "east">)
|
|
(T
|
|
<TELL "south">)>
|
|
<TELL ,PERIOD>>
|
|
|
|
<ROUTINE PAY-HAWKER? ()
|
|
<COND (<AND <EQUAL? ,POCKET-CHANGE 1841>
|
|
<IN? ,HAWKER ,HERE>
|
|
<PRSI? ,CROWD ,HAWKER>
|
|
<VERB? GIVE>>
|
|
<COND (<AND <PRSO? ,INTNUM>
|
|
,P-DOLLAR-FLAG>
|
|
<COND (<G? ,P-AMOUNT ,POCKET-CHANGE>
|
|
<TELL ,THAT-MUCH>
|
|
<RTRUE>)
|
|
(<EQUAL? ,P-AMOUNT 185>
|
|
<SETG POCKET-CHANGE 1656>
|
|
<MOVE ,HAWKER ,LOCAL-GLOBALS>
|
|
;<ENABLE <QUEUE I-STANDS 3>>
|
|
<SETG STANDS-C 10>
|
|
<SETG LOST-MONEY-LOC ,TLOC>
|
|
<TELL
|
|
"Your $1.85 is passed from hand to hand all the way down the row. As
|
|
the hawker pockets your money, he's suddenly engulfed by the crowd, which
|
|
erupts into a standing ovation. The state of riot panic continues for
|
|
several anxious moments." CR>)
|
|
(<AND <NOT <EQUAL? ,P-AMOUNT 185>>
|
|
,P-DOLLAR-FLAG>
|
|
<TELL "The man seemed to indicate $1.85." CR>)
|
|
(<PRSO? ,INTNUM ,DOLLAR ,GLOBAL-MONEY>
|
|
<SETG FOLLOW-FLAG 99>
|
|
<ENABLE <QUEUE I-FOLLOW 2>>
|
|
<SPECIFY-MONEY>
|
|
<RTRUE>)>)
|
|
(<PRSO? ,GLOBAL-MONEY>
|
|
<SETG P-DOLLAR-FLAG T>
|
|
<SETG P-AMOUNT 185>
|
|
<PERFORM ,V?GIVE ,INTNUM ,CROWD>
|
|
<SETG P-IT-OBJECT ,GLOBAL-MONEY>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<GLOBAL DREAMING <>>
|
|
|
|
<GLOBAL STANDS-C 0>
|
|
|
|
<GLOBAL DREAM-C 0> ;"number of times you ask to be hypnotized"
|
|
|
|
<GLOBAL SIT-IN-STANDS T>
|
|
|
|
<GLOBAL MONEY-BEFORE-DREAM 0>
|
|
|
|
;<GLOBAL SCORE-BEFORE-DREAM 0>
|
|
|
|
;<GLOBAL MOVES-BEFORE-DREAM 0>
|
|
|
|
<GLOBAL TLOC 1>
|
|
|
|
<GLOBAL LOST-MONEY-LOC 0>
|
|
|
|
<GLOBAL WON-STANDS <>>
|
|
|
|
<GLOBAL PATHS
|
|
<PLTABLE
|
|
"down and east"
|
|
"up and east"
|
|
0
|
|
"up, down and west"
|
|
"up and west"
|
|
"down and west"
|
|
"up, down and east"
|
|
0
|
|
0
|
|
"up, down and west">>
|
|
|
|
<ROUTINE N-OOF ()
|
|
<COND (<OR <EQUAL? ,TLOC 2 4 5>
|
|
<EQUAL? ,TLOC 7 8 10>
|
|
<EQUAL? ,TLOC 11>>
|
|
<PLOW-F T>)
|
|
(T
|
|
<NO-GO 1>)>>
|
|
|
|
<ROUTINE S-OOF ()
|
|
<COND (<OR <EQUAL? ,TLOC 1 3 4>
|
|
<EQUAL? ,TLOC 6 7 9>
|
|
<EQUAL? ,TLOC 10 12>>
|
|
<PLOW-F>)
|
|
(T
|
|
<NO-GO 2>)>>
|
|
|
|
<ROUTINE E-OOF ()
|
|
<COND (<OR <EQUAL? ,TLOC 1 2 3>
|
|
<EQUAL? ,TLOC 7 8 9>>
|
|
<SCISSOR-F T>)
|
|
(T
|
|
<NO-GO 3>)>>
|
|
|
|
<ROUTINE W-OOF ()
|
|
<COND (<OR <EQUAL? ,TLOC 4 5 6>
|
|
<EQUAL? ,TLOC 10 11 12>>
|
|
<SCISSOR-F>)
|
|
(T
|
|
<NO-GO 4>)>>
|
|
|
|
<ROUTINE NO-GO (NUM)
|
|
<COND (<EQUAL? .NUM 1 2>
|
|
<TELL "You have no ">
|
|
<COND (<EQUAL? .NUM 1>
|
|
<TELL "up">)
|
|
(T
|
|
<TELL "down">)>
|
|
<TELL "ward mobility here">)
|
|
(T
|
|
<TELL "The crowd is impenetrable to the ">
|
|
<COND (<EQUAL? .NUM 3>
|
|
<TELL "east">)
|
|
(T
|
|
<TELL "west">)>)>
|
|
<TELL ,PERIOD>
|
|
<RFALSE>>
|
|
|
|
<GLOBAL BITCHES
|
|
<LTABLE 0
|
|
"Down in front"
|
|
"Move it"
|
|
"We can't see"
|
|
"Hey, park it">>
|
|
|
|
<ROUTINE SCISSOR-F ("OPTIONAL" (EAST? <>))
|
|
<FCLEAR ,STANDS-ROOM ,TOUCHBIT>
|
|
<COND (.EAST?
|
|
<SETG TLOC <+ ,TLOC 3>>)
|
|
(T
|
|
<SETG TLOC <- ,TLOC 3>>)>
|
|
<TELL
|
|
"The row of legs pivots away as you scissor awkwardly past." CR CR>
|
|
<RETURN ,STANDS-ROOM>>
|
|
|
|
<ROUTINE PLOW-F ("OPTIONAL" (UP? <>))
|
|
<FCLEAR ,STANDS-ROOM ,TOUCHBIT>
|
|
<TELL "You plow your way ">
|
|
<COND (.UP?
|
|
<TELL "up">
|
|
<SETG TLOC <- ,TLOC 1>>)
|
|
(T
|
|
<TELL "down">
|
|
<SETG TLOC <+ ,TLOC 1>>)>
|
|
<TELL "ward through the crowd">
|
|
<COND (<EQUAL? ,TLOC 13>
|
|
<TELL " all the way into the wings." CR CR>
|
|
<COND (<NOT <FSET? ,MONKEY ,RMUNGBIT>>
|
|
<FSET ,MONKEY ,RMUNGBIT>
|
|
<FCLEAR ,WINGS ,TOUCHBIT>
|
|
<MOVE ,ROAR ,LOCAL-GLOBALS>
|
|
<MOVE ,HAWKER ,LOCAL-GLOBALS>
|
|
<GOTO ,WINGS>
|
|
<CRLF>
|
|
<FCLEAR ,MONKEY ,NDESCBIT>
|
|
<MOVE ,MONKEY ,PROTAGONIST>
|
|
<TELL
|
|
"As you exhale a sigh of relief, a smallish and hairy animal inexplicably
|
|
plops down upon you from the upper reaches of the " D ,BIGTOP "." CR>
|
|
<RFALSE>)
|
|
(T
|
|
<RETURN ,WINGS>)>)
|
|
(T
|
|
<TELL ,PERIOD>
|
|
<CRLF>
|
|
<RETURN ,STANDS-ROOM>)>>
|
|
|
|
<OBJECT BIGTOP
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "big top")
|
|
(SYNONYM TOP TENT WALL BIGTOP)
|
|
(ADJECTIVE BIG SIDE CANVAS)
|
|
(FLAGS NDESCBIT TRYTAKEBIT)
|
|
(ACTION BIGTOP-F)>
|
|
|
|
;"RMUNGBIT = crawled in first time from midwest"
|
|
|
|
<ROUTINE BIGTOP-F ()
|
|
<COND (<VERB? CRAWL-UNDER BOARD>
|
|
<COND (<OR <EQUAL? ,HERE ,MIDWEST>
|
|
<AND <EQUAL? ,HERE ,UNDER-STANDS>
|
|
<FSET? ,BIGTOP ,RMUNGBIT>>>
|
|
<TELL
|
|
"You creep under the side wall of the " D ,BIGTOP>
|
|
<COND (<EQUAL? ,HERE ,UNDER-STANDS>
|
|
<TELL
|
|
", right where you crawled in before">)>
|
|
<TELL ,PERIOD>
|
|
<CRLF>
|
|
<FSET ,BIGTOP ,RMUNGBIT>
|
|
<COND (<EQUAL? ,HERE ,UNDER-STANDS>
|
|
<GOTO ,MIDWEST>)
|
|
(T
|
|
<GOTO ,UNDER-STANDS>)>)
|
|
(<EQUAL? ,HERE ,FAT-EAST ,FAT-WEST>
|
|
<SETG PRSO ,FAT>
|
|
<TELL-HIT-HEAD>)
|
|
(T
|
|
<TENT-BOUND>)>)
|
|
(<VERB? WALK-TO ;ENTER THROUGH>
|
|
<COND (<OR <EQUAL? ,HERE ,CON-AREA ,WINGS ,MIDWEST>
|
|
<EQUAL? ,HERE ,BESIDE-BIGTOP>>
|
|
<DO-WALK ,P?NORTH>)
|
|
(<OR <EQUAL? ,HERE ,WINGS ,RING ,DEN>
|
|
<EQUAL? ,HERE ,STANDS-ROOM ,UNDER-STANDS>>
|
|
<TELL ,LOOK-AROUND CR>)>)
|
|
(<VERB? LEAVE EXIT DISEMBARK>
|
|
<COND (<EQUAL? ,HERE ,WINGS ,RING>
|
|
<DO-WALK ,P?SOUTH>)
|
|
(<EQUAL? ,HERE ,DEN>
|
|
<DO-WALK ,P?EAST>)
|
|
(<EQUAL? ,HERE ,STANDS-ROOM ,UNDER-STANDS>
|
|
<V-WALK-AROUND>)
|
|
(T
|
|
<TELL ,LOOK-AROUND CR>)>)
|
|
(<AND <VERB? EXAMINE>
|
|
<NOT <EQUAL? ,HERE ,FAT-EAST ,FAT-WEST>>>
|
|
<TELL
|
|
"Soiled by endless miles of travel and heavily patched in places, the
|
|
wide blue-and-white stripes nevertheless rise up to">
|
|
<COND (<FSET? ,HERE ,INDOORSBIT>
|
|
<TELL
|
|
" meet at the top of the towering center pole." CR>)
|
|
(T
|
|
<TELL " the black sky above." CR>)>)
|
|
(<AND <EQUAL? ,HERE ,FAT-EAST ,FAT-WEST>
|
|
<VERB? LOOK-UNDER RAISE>>
|
|
<NOT-PEEP>)
|
|
(<AND <VERB? TAKE REMOVE>
|
|
<EQUAL? ,HERE ,FAT-EAST ,FAT-WEST>>
|
|
<KIND-OF-PERFORMER>)>>
|
|
|
|
<OBJECT CENTER-POLE
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "center pole")
|
|
(SYNONYM POLE SAWDUST)
|
|
(ADJECTIVE CENTER)
|
|
(FLAGS NDESCBIT)
|
|
(ACTION CENTER-POLE-F)>
|
|
|
|
<ROUTINE CENTER-POLE-F ()
|
|
<COND (<IS-NOUN? ,W?SAWDUST>
|
|
<SETG PRSO ,SAWDUST>
|
|
<RFALSE>)
|
|
(<AND <TOUCHING? ,CENTER-POLE>
|
|
<NOT <EQUAL? ,HERE ,RING>>>
|
|
<CANT-REACH ,CENTER-POLE>)
|
|
(<VERB? CLIMB-FOO CLIMB-UP CLIMB-ON>
|
|
<TELL
|
|
"You barely get off the " D ,GROUND " before you slide back down." CR>)>>
|
|
|
|
<OBJECT RING-OBJECT
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "ring")
|
|
(SYNONYM RING)
|
|
(ADJECTIVE SECOND PERFOR)
|
|
(FLAGS NDESCBIT)
|
|
(ACTION RING-OBJECT-F)>
|
|
|
|
<ROUTINE RING-OBJECT-F ()
|
|
<COND (<IS-NOUN? ,W?SECOND>
|
|
<PERFORM ,PRSA ,LION-CAGE ,PRSI>
|
|
<RTRUE>)
|
|
(T
|
|
<GLOBAL-ROOM-F>)>>
|
|
|
|
<OBJECT POLE
|
|
(IN NEAR-WAGON)
|
|
(DESC "fiberglass pole")
|
|
(FDESC
|
|
"Part of a narrow pole is sticking out from under the wagon.")
|
|
(SYNONYM POLE)
|
|
(ADJECTIVE ;LONG FIBERGLASS NARROW)
|
|
(FLAGS TAKEBIT)
|
|
(SIZE 80)>
|
|
|
|
<OBJECT BALLOON
|
|
(IN PLATFORM-2)
|
|
(DESC "balloon")
|
|
(FDESC
|
|
"Floating against the ceiling of the big top is a helium balloon.")
|
|
(SYNONYM BALLOON)
|
|
(ADJECTIVE RED HELIUM)
|
|
(FLAGS TAKEBIT TRANSBIT CONTBIT)
|
|
(SIZE 4)
|
|
(ACTION BALLOON-F)>
|
|
|
|
<ROUTINE BALLOON-F ()
|
|
<COND (<VERB? TAKE>
|
|
<FSET ,BALLOON ,TOUCHBIT>
|
|
<MOVE ,BALLOON ,PROTAGONIST>
|
|
<TELL
|
|
"You grab the helium-filled balloon at the frill where it is tied. The
|
|
balloon gives a constant upward tug at your fingertips." CR>)
|
|
(<VERB? EXAMINE>
|
|
<TELL "It's a bright red balloon which is ">
|
|
<COND (<FSET? ,BALLOON ,OPENBIT>
|
|
<TELL "untied">)
|
|
(T
|
|
<TELL "tied closed">)>
|
|
<TELL " and filled with helium." CR>)
|
|
(<OR <VERB? DROP THROW PUT>
|
|
<EQUAL? ,P-PRSA-WORD ,W?FREE>>
|
|
<BALLOON-FLIGHT>
|
|
<CRLF>)
|
|
(<VERB? UNTIE OPEN>
|
|
<COND (<NOT <HELD? ,BALLOON>>
|
|
<TELL ,NOT-HOLDING " the " D ,BALLOON "." CR>)
|
|
(<NOT <FSET? ,BALLOON ,OPENBIT>>
|
|
<FSET ,BALLOON ,OPENBIT>
|
|
<TELL
|
|
"You untie the end of the " D ,BALLOON ", holding it closed." CR>)
|
|
(<AND <VERB? OPEN>
|
|
<FSET? ,BALLOON ,OPENBIT>>
|
|
<FSET ,BALLOON ,OPENBIT>
|
|
<BALLOON-FLIGHT>
|
|
<CRLF>)
|
|
(T
|
|
<TELL "It isn't tied." CR>)>)
|
|
(<AND <VERB? TIE CLOSE>
|
|
<NOT ,PRSI>>
|
|
<COND (<FSET? ,BALLOON ,OPENBIT>
|
|
<FCLEAR ,BALLOON ,OPENBIT>
|
|
<TELL
|
|
"Okay, the " D ,BALLOON " is once again tied closed." CR>)
|
|
(T
|
|
<TELL "It is." CR>)>)
|
|
(<VERB? INHALE>
|
|
<TELL
|
|
"It would be safer to inhale what's IN the balloon." CR>)
|
|
;(<VERB? LOOK-INSIDE>
|
|
<V-COUNT>)
|
|
(<HURT? ,BALLOON>
|
|
<TELL "You manage to puncture it. ">
|
|
<MOVE ,BALLOON ,LOCAL-GLOBALS>
|
|
<BALLOON-FLIGHT>
|
|
<CRLF>)>>
|
|
|
|
<ROUTINE BALLOON-FLIGHT ()
|
|
<FSET ,BALLOON ,TOUCHBIT>
|
|
<MOVE ,BALLOON ,LOCAL-GLOBALS>
|
|
<COND (<AND <NOT <FSET? ,BALLOON ,OPENBIT>>
|
|
<NOT <HURT? ,BALLOON>>>
|
|
<TELL
|
|
"The " D ,BALLOON " flies up and ">
|
|
<COND (<NOT <FSET? ,HERE ,INDOORSBIT>>
|
|
<TELL
|
|
"disappears into the night sky.">
|
|
<RTRUE>)
|
|
(T
|
|
<TELL
|
|
"gets punctured on the " D ,CEILING ". ">)>)>
|
|
<TELL
|
|
"With helium spitting out of it, the fink zips wildly through the air
|
|
and disappears. ">>
|
|
|
|
<OBJECT HELIUM
|
|
(IN BALLOON)
|
|
(DESC "helium")
|
|
(SYNONYM HELIUM)
|
|
(FLAGS NDESCBIT NARTICLEBIT AIRBIT CLEARBIT)
|
|
(SIZE 2)
|
|
(ACTION HELIUM-F)>
|
|
|
|
<ROUTINE HELIUM-F ()
|
|
<COND (<VERB? INHALE>
|
|
<COND ;(<NOT ,THUMB-THRU>
|
|
<TELL ,TIPPED-OFF>
|
|
<RTRUE>)
|
|
(<FSET? ,BALLOON ,OPENBIT>
|
|
<MOVE ,BALLOON ,LOCAL-GLOBALS>
|
|
<MOVE ,HELIUM ,LOCAL-GLOBALS>
|
|
<ENABLE <QUEUE I-HELIUM 2>>
|
|
<TELL
|
|
"The " D ,BALLOON " shrinks rapidly before your eyes as your chest
|
|
expands and tightens ... then it slips from your grasp! ">
|
|
<BALLOON-FLIGHT>
|
|
<TELL
|
|
"You manage to momentarily hold the helium in your lungs." CR>
|
|
<PUTP ,PROTAGONIST ,P?ACTION ,PROTAGONIST-HACK-F>)
|
|
(T
|
|
<TELL "But the " D ,BALLOON " is tied closed." CR>)>)
|
|
(<VERB? DROP>
|
|
<V-COUNT>)>>
|
|
|
|
<ROUTINE I-HELIUM ()
|
|
<DISABLE <INT I-HELIUM>>
|
|
<COND (<NOT ,SPEAK-HELIUM>
|
|
<TELL CR "You exhale your lungsful of helium." CR>)>
|
|
<RFALSE>>
|
|
|
|
<OBJECT NET
|
|
(IN RING)
|
|
(DESC "safety net")
|
|
(SYNONYM NET)
|
|
(ADJECTIVE SAFETY)
|
|
(FLAGS NDESCBIT CONTBIT OPENBIT SURFACEBIT SEARCHBIT VEHBIT)
|
|
(GENERIC GEN-NET)
|
|
(ACTION NET-F)>
|
|
|
|
<ROUTINE NET-F ("OPTIONAL" (RARG <>))
|
|
<COND (<EQUAL? .RARG ,M-BEG>
|
|
<COND (<AND <VERB? WALK>
|
|
<EQUAL? ,P-WALK-DIR ,P?DOWN ,P?OUT>> ;"generalize?"
|
|
<PERFORM ,V?DISEMBARK ,NET>
|
|
<RTRUE>)
|
|
(<VERB? WALK>
|
|
<OUT-OF-FIRST ,NET>)
|
|
(<VERB? LEAP>
|
|
<TELL
|
|
"After bouncing about the net a while you appreciate that much more the
|
|
talent of the " D ,BROS " Brothers." CR>)>)
|
|
(.RARG
|
|
<RFALSE>)
|
|
(<AND <VERB? BOARD>
|
|
<IN? ,NET ,MUNRAB>>
|
|
<TELL ,BASKET-CASE CR>)
|
|
(<AND <VERB? TAKE>
|
|
<IN? ,NET ,MUNRAB>>
|
|
<TELL
|
|
D ,MUNRAB " looks flustered then yanks the coarsely woven net out of "
|
|
D ,HANDS ". \"I'm in charge here!\"" CR>)
|
|
(<AND <TOUCHING? ,NET>
|
|
<IN? ,NET ,GLOBAL-OBJECTS>> ;"moved to globals to"
|
|
<CANT-SEE ,NET>) ;"ask jim for"
|
|
(<VERB? OPEN CLOSE>
|
|
<CANT-OPEN>)
|
|
(<AND <VERB? DISEMBARK CLIMB-DOWN>
|
|
<EQUAL? <LOC ,PROTAGONIST> ,NET>>
|
|
<MOVE ,PROTAGONIST ,HERE>
|
|
<TELL
|
|
"You climb out of the " D ,NET " with a bounce in your step." CR>)>>
|
|
|
|
<OBJECT GLOBAL-NET
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "safety net")
|
|
(SYNONYM NET)
|
|
(ADJECTIVE SAFETY)
|
|
(GENERIC GEN-NET)
|
|
(ACTION GLOBAL-NET-F)>
|
|
|
|
<ROUTINE GLOBAL-NET-F ()
|
|
<COND (<DONT-HANDLE? ,GLOBAL-NET>
|
|
<RFALSE>)
|
|
(<OR <IN? ,NET ,LOCAL-GLOBALS>
|
|
<IN? ,NET ,GLOBAL-OBJECTS>
|
|
<AND <OR <IN? ,NET ,MUNRAB>
|
|
<IN? ,NET ,RING>>
|
|
<NOT <EQUAL? ,HERE ,TIGHTROPE-ROOM ,PLATFORM-1
|
|
,PLATFORM-2>>>>
|
|
<CANT-SEE <> "the net">)
|
|
(<VERB? LOOK-INSIDE EXAMINE>
|
|
<PERFORM ,V?LOOK-DOWN>
|
|
<RTRUE>)
|
|
(<AND <VERB? PUT>
|
|
<PRSI? ,GLOBAL-NET>>
|
|
<PERFORM ,V?DROP ,PRSO>
|
|
<RTRUE>)
|
|
(<VERB? LEAP THROUGH BOARD>
|
|
<SETG HERE ,PLATFORM-1>
|
|
<PERFORM ,V?LEAP-OFF ,PLATFORM>
|
|
<RTRUE>)
|
|
(<TOUCHING? ,GLOBAL-NET>
|
|
<CANT-REACH ,NET>)>>
|
|
|
|
<ROUTINE GEN-NET ()
|
|
,GLOBAL-NET>
|
|
|
|
<ROOM WINGS
|
|
(IN ROOMS)
|
|
(DESC "In the Wings")
|
|
;(SYNONYM STATION WPDL)
|
|
;(ADJECTIVE RADIO)
|
|
(NORTH PER RING-ENTER)
|
|
(IN PER RING-ENTER)
|
|
(SOUTH TO CON-AREA)
|
|
(OUT TO CON-AREA)
|
|
(UP PER STANDS-ENTER)
|
|
(NE PER STANDS-ENTER)
|
|
(FLAGS ONBIT RLANDBIT INDOORSBIT)
|
|
(GLOBAL BIGTOP GRANDSTAND RING-OBJECT CENTER-POLE PATH)
|
|
(ACTION WINGS-F)>
|
|
|
|
<ROUTINE WINGS-F (RARG)
|
|
<COND (<AND <EQUAL? .RARG ,M-ENTER>
|
|
<EQUAL? ,POCKET-CHANGE 1281> ;"have paid BOTH times"
|
|
<FSET? ,LONG ,RMUNGBIT> ;"I.E. WON LINES"
|
|
,DREAMING>
|
|
<DISABLE <INT I-STANDS>>
|
|
<FCLEAR ,HAWKER ,NDESCBIT>
|
|
<MOVE ,HAWKER ,WINGS>
|
|
<MOVE ,JUNK-FOOD ,HAWKER>)
|
|
(<EQUAL? .RARG ,M-LOOK>
|
|
<TELL
|
|
"The " D ,BIGTOP " can be entered to the north and exited to the south. ">
|
|
<COND (<OR ,WON-STANDS
|
|
<AND <EQUAL? ,MEET-COUNTER 10>
|
|
<NOT ,DREAMING>>>
|
|
<CRLF> <CRLF>)>
|
|
<TELL
|
|
"To the northeast, the grandstand">
|
|
<COND (,WON-STANDS
|
|
<TELL ,TELL-STANDS>)
|
|
(<AND <EQUAL? ,MEET-COUNTER 10> ;"IE, HEARD MEETING"
|
|
<NOT ,DREAMING>>
|
|
<TELL
|
|
" has been retracted slightly, revealing a passage">)
|
|
(T
|
|
<TELL " begins its precipitous rise">)>
|
|
<TELL ,PERIOD>)
|
|
(<AND <EQUAL? .RARG ,M-BEG>
|
|
<VERB? WAIT>>
|
|
<TELL
|
|
"Very theatrical of you, waiting in the wings. Expect no awards, however. ">
|
|
<RFALSE>)
|
|
(<AND <EQUAL? .RARG ,M-END>
|
|
<OR <EQUAL? ,MEET-COUNTER 10>
|
|
<FSET? ,POLE ,TOUCHBIT>>
|
|
<NOT <FSET? ,PLATFORM-2 ,TOUCHBIT>>
|
|
<NOT ,DREAMING>
|
|
<IN? ,NET ,RING>
|
|
<NOT <FSET? ,WEST-CAMP ,TOUCHBIT>>> ;"so cant do later"
|
|
<ENABLE <QUEUE I-FOLLOW 2>>
|
|
<SETG FOLLOW-FLAG 14>
|
|
<SETG P-IT-OBJECT ,JIM>
|
|
<MOVE ,NET ,LOCAL-GLOBALS>
|
|
<FCLEAR ,RING ,TOUCHBIT>
|
|
<TELL CR
|
|
"A roustabout who is wearing a " D ,HEADPHONES " and carrying a large net
|
|
over his shoulder passes you and exits the " D ,BIGTOP "." CR>)
|
|
(<AND <EQUAL? .RARG ,M-END>
|
|
<MONKEY-ACTS?>>
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE RING-ENTER ()
|
|
<COND (,DREAMING
|
|
<TELL
|
|
"You are immediately driven out of the ring by a rousing chorus of boos." CR>
|
|
<RFALSE>)
|
|
;(<AND <HELD? ,MEAT>
|
|
<IN? ,ELSIE ,RING>>
|
|
<TELL
|
|
"As you step into the ring, you peer into the round cage and notice that the
|
|
lions have quickened their breathing." CR CR>
|
|
<RETURN ,RING>)
|
|
(T
|
|
<RETURN ,RING>)>>
|
|
|
|
<ROUTINE STANDS-ENTER ()
|
|
<COND (<AND <EQUAL? ,MEET-COUNTER 10>
|
|
<NOT ,DREAMING>
|
|
<NOT ,WON-STANDS>>
|
|
<COND (<EQUAL? ,P-WALK-DIR ,P?UP>
|
|
<WALK-INTO-STANDS>
|
|
<RFALSE>)
|
|
(T
|
|
<RETURN ,UNDER-STANDS>)>)
|
|
(,DREAMING
|
|
<COND (<HELD? ,MONKEY>
|
|
<MONKEY-DIRECTION>
|
|
<RFALSE>)
|
|
(T
|
|
<SETG TLOC 12>
|
|
<TELL "You forge ahead and up the steps." CR CR>
|
|
<RETURN ,STANDS-ROOM>)>)
|
|
(T
|
|
<WALK-INTO-STANDS>
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE MONKEY-DIRECTION ()
|
|
<TELL
|
|
"Agitated by your choice of " D ,INTDIR ", the " D ,MONKEY " steers you
|
|
away from it." CR>>
|
|
|
|
<ROUTINE WALK-INTO-STANDS ()
|
|
<TELL
|
|
"Climbing up into the deserted and littered grandstands produces a disorienting
|
|
sense of deja vu. You make a headachy descent down the steps." CR>
|
|
<RFALSE>>
|
|
|
|
<ROOM RING
|
|
(IN ROOMS)
|
|
(DESC "Performance Ring")
|
|
(UP PER UP-LADDER)
|
|
(NORTH PER WALK-INTO-STANDS)
|
|
(EAST PER WALK-INTO-STANDS)
|
|
(SOUTH PER WING-EXIT)
|
|
(OUT PER WING-EXIT)
|
|
(WEST TO DEN IF LION-DOOR IS OPEN)
|
|
(IN TO DEN IF LION-DOOR IS OPEN)
|
|
(FLAGS ONBIT RLANDBIT INDOORSBIT)
|
|
(GLOBAL LADDER LION-DOOR BIGTOP LION-CAGE GRANDSTAND RING-OBJECT
|
|
TIGHTROPE-OBJECT CENTER-POLE)
|
|
(ACTION RING-F)>
|
|
|
|
<ROUTINE RING-F (RARG)
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
<TELL
|
|
"This is the arena's oval-shaped performance ring">
|
|
<COND (<NOT ,END-GAME>
|
|
<TELL " which ">
|
|
<COND (<IN? ,NET ,RING>
|
|
<TELL
|
|
"is occupied by a sagging, rectangular ">)
|
|
(T
|
|
<TELL
|
|
"appears deathly quiet without its circus atmosphere. Also missing is
|
|
its ">)>
|
|
<TELL
|
|
D ,NET ". A rope ladder dangles to within a foot of the " D ,GROUND ".">)
|
|
(T
|
|
<TELL ". ">
|
|
<TANGLED-ROPE>)>
|
|
<CRLF> <CRLF>
|
|
<TELL
|
|
"Just west lies the entrance to a large, round cage that completely
|
|
encircles the second of the two rings. To the south the " D ,BIGTOP "'s
|
|
vaulted wing leads out into the open air. The arena's rickety grandstands
|
|
rise steeply north and east.">
|
|
<COND (,END-GAME
|
|
<TELL-APE>)>
|
|
<CRLF>)
|
|
(<AND <EQUAL? .RARG ,M-BEG>
|
|
<IN? ,NET ,MUNRAB>
|
|
<VERB? ASK-ABOUT YELL TELL TELL-ABOUT HELLO
|
|
REPLY>>
|
|
<SETG P-CONT <>>
|
|
<TELL
|
|
"You're hardly recognized above the commotion." CR>
|
|
<RTRUE>)
|
|
(<EQUAL? .RARG ,M-ENTER>
|
|
<COND (,END-GAME
|
|
<MOVE ,APE ,RING>
|
|
<COND (<NOT <IN? ,NET ,MUNRAB>>
|
|
<MOVE ,NET ,GLOBAL-OBJECTS>)> ;"so can tell jim"
|
|
<RFALSE>)>
|
|
<COND (<AND <EQUAL? ,P-WALK-DIR ,P?EAST ,P?OUT>
|
|
<IN? ,ELSIE ,CHUTE>
|
|
<IN? ,STAND ,DEN>>
|
|
<MOVE ,STAND ,RING>
|
|
<FCLEAR ,STAND ,VEHBIT>
|
|
<FSET ,STAND ,NDESCBIT>)>
|
|
<COND (<IN? ,MEAT ,DEN>
|
|
<MOVE ,MEAT ,LOCAL-GLOBALS>
|
|
<MOVE-LIONS ,RING>
|
|
<TELL
|
|
,EXIT-DEN "s together finish off the meat and settle back on the "
|
|
D ,SAWDUST "." CR CR>
|
|
<SETG ELSIE-COUNTER 0>
|
|
<RTRUE>)
|
|
(<AND <EQUAL? ,P-WALK-DIR ,P?EAST ,P?OUT>
|
|
<IN? ,ELSIE ,DEN>
|
|
<NOT <IN? ,MEAT ,DEN>>>
|
|
<DISABLE <INT I-LION>>
|
|
<TELL ,EXIT-DEN>
|
|
<COND (<AND <IN? ,MEAT ,CHUTE>
|
|
<FSET? ,GRATE ,OPENBIT>>
|
|
<TELL "s slink out through the open grate.">
|
|
<ENABLE <QUEUE I-LION -1>>
|
|
<MOVE-LIONS ,CHUTE>)
|
|
(T
|
|
<COND (<EQUAL? ,ELSIE-COUNTER 0>
|
|
<TELL "s quit">)
|
|
(T
|
|
<TELL " quits">)>
|
|
<TELL " pacing and hunker">
|
|
<COND (<G? ,ELSIE-COUNTER 0>
|
|
<TELL "s">)>
|
|
<TELL " back down onto the sawdust.">
|
|
<SETG ELSIE-COUNTER 0>
|
|
<MOVE-LIONS ,RING>)>
|
|
<CRLF> <CRLF>)>)>>
|
|
|
|
<ROUTINE WING-EXIT ()
|
|
<COND (<HELD? ,STAND>
|
|
<TELL
|
|
"The " D ,STAND " is too bulky to be carried that distance." CR>
|
|
<RFALSE>)
|
|
(T
|
|
<RETURN ,WINGS>)>>
|
|
|
|
<ROUTINE TANGLED-ROPE ("OPTIONAL" (TOUCHING? <>))
|
|
<TELL "The rope ladder">
|
|
<COND (<EQUAL? ,HERE ,RING>
|
|
<TELL " above " D ,HEAD>)>
|
|
<TELL
|
|
" has been tangled around the platform from which it hangs.">
|
|
<COND (.TOUCHING?
|
|
<CRLF>)>>
|
|
|
|
<GLOBAL APE-LOC <>>
|
|
;"1 = on plat-1.
|
|
2 = in apparatus
|
|
3 = on plat-2 w/girl
|
|
4 = on plat-2 w/out girl"
|
|
|
|
<ROUTINE TELL-APE ()
|
|
<COND (<NOT <VERB? LOOK-UP>>
|
|
<CRLF> <CRLF>)>
|
|
<COND (<EQUAL? ,APE-LOC 1>
|
|
<TELL
|
|
"Craning your neck upward, you see " D ,APE " standing on the platform above
|
|
the rope " D ,LADDER>)
|
|
(<EQUAL? ,APE-LOC 2>
|
|
<TELL ;"apparatus"
|
|
"The shadowy form of the great ape is ensconced among the guy wires above
|
|
the tightrope">)
|
|
(T ;<EQUAL? ,APE-LOC 3>
|
|
<TELL D ,APE " stands ">
|
|
<COND (<EQUAL? ,HERE ,TIGHTROPE-ROOM ,PLATFORM-1>
|
|
<TELL "across from you ">)>
|
|
<TELL
|
|
"on the opposite platform, one of his great limbs grasping a guy wire for
|
|
balance">)>
|
|
<TELL
|
|
". He is holding the limp form of a small girl under one arm.">>
|
|
|
|
<OBJECT STOOL
|
|
(IN FAT-EAST)
|
|
(DESC "stool")
|
|
(SYNONYM STOOL)
|
|
;(ADJECTIVE WOODEN)
|
|
(FLAGS TAKEBIT VEHBIT)
|
|
(SIZE 26)
|
|
(ACTION STOOL-F)>
|
|
|
|
<ROUTINE STOOL-F ()
|
|
<COND (<VERB? EXAMINE>
|
|
<TELL
|
|
"One leg of the " D ,STOOL " is shorter than the other two." CR>)
|
|
(<VERB? BOARD STAND-ON>
|
|
<TELL "It's too rickety to support your weight." CR>)
|
|
(<VERB? TAKE-OFF>
|
|
<PERFORM ,V?DISEMBARK ,STOOL>
|
|
<RTRUE>)>>
|
|
|
|
<ROOM PLATFORM-1
|
|
(IN ROOMS)
|
|
(DESC "Platform")
|
|
(FLAGS ONBIT RLANDBIT INDOORSBIT)
|
|
(EAST PER PLATFORM-EXIT-F)
|
|
(DOWN PER DOWN-LADDER)
|
|
(UP PER CLIMB-GUY)
|
|
(GLOBAL TIGHTROPE-OBJECT LADDER PLATFORM CENTER-POLE BIGTOP)
|
|
(GROUND-LOC RING)
|
|
(ACTION PLATFORM-1-F)>
|
|
|
|
<ROUTINE PLATFORM-1-F (RARG)
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
<PLATFORM-ROOM-DESC>
|
|
<COND (,END-GAME
|
|
<TELL-APE>)>
|
|
<CRLF>)
|
|
(<AND <EQUAL? .RARG ,M-ENTER>
|
|
,END-GAME>
|
|
<MOVE ,APE ,PLATFORM-1>)>>
|
|
|
|
<ROUTINE CLIMB-GUY ()
|
|
<PERFORM ,V?CLIMB-ON ,GUY-WIRES>
|
|
<RFALSE>>
|
|
|
|
<ROOM PLATFORM-2
|
|
(IN ROOMS)
|
|
(DESC "Platform")
|
|
(FLAGS ONBIT RLANDBIT INDOORSBIT)
|
|
(WEST PER PLATFORM-EXIT-F)
|
|
(GLOBAL PLATFORM TIGHTROPE-OBJECT BIGTOP CENTER-POLE)
|
|
(GROUND-LOC RING)
|
|
(ACTION PLATFORM-2-F)>
|
|
|
|
<ROUTINE PLATFORM-2-F (RARG)
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
<PLATFORM-ROOM-DESC>
|
|
<COND (,END-GAME
|
|
<TELL-APE>)>
|
|
<CRLF>)>>
|
|
|
|
<ROUTINE PLATFORM-ROOM-DESC ()
|
|
<TELL
|
|
"You're standing on a small, unstable platform which is suspended"
|
|
,HIGH-ABOVE " by guy wires converging on it from all directions. ">
|
|
<COND (<EQUAL? ,HERE ,PLATFORM-1>
|
|
<TELL "A rope ladder dangles from the platform and t">)
|
|
(T
|
|
<TELL "T">)>
|
|
<TELL "he tightrope stretches ">
|
|
<COND (<EQUAL? ,HERE ,PLATFORM-1>
|
|
<TELL "east">)
|
|
(T
|
|
<TELL "west">)>
|
|
<TELL " to the opposite platform">
|
|
<COND (<EQUAL? ,APE-LOC 3>
|
|
<TELL
|
|
" where the attention of everyone in the " D ,BIGTOP " is focused">)>
|
|
<TELL ".">>
|
|
|
|
<GLOBAL HEADING-EAST? <>>
|
|
|
|
<GLOBAL ON-ROPE 0>
|
|
|
|
<ROOM TIGHTROPE-ROOM
|
|
(IN ROOMS)
|
|
(DESC "Walking a Tightrope")
|
|
(FLAGS ONBIT RLANDBIT INDOORSBIT)
|
|
(EAST PER ACROSS-ROPE)
|
|
(WEST PER ACROSS-ROPE)
|
|
(GLOBAL PLATFORM TIGHTROPE-OBJECT BIGTOP CENTER-POLE)
|
|
(GROUND-LOC RING)
|
|
(ACTION TIGHTROPE-ROOM-F)>
|
|
|
|
<ROUTINE TIGHTROPE-ROOM-F (RARG)
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
<TELL "You are standing, ">
|
|
<COND (<HELD? ,POLE>
|
|
<TELL "poised">)
|
|
(T
|
|
<TELL "perched " <PICK-ONE ,DANGERS>>)>
|
|
<TELL
|
|
,HIGH-ABOVE ", " <GET ,ROPES ,ON-ROPE> " across the " D ,TIGHTROPE-OBJECT ".">
|
|
<COND (,END-GAME
|
|
<TELL-APE>)>
|
|
<CRLF>)
|
|
(<EQUAL? .RARG ,M-BEG>
|
|
<COND (<OR <VERB? LEAP LEAP-OFF WEAR>
|
|
<AND <VERB? WALK>
|
|
<EQUAL? ,P-WALK-DIR ,P?DOWN>>
|
|
<AND <VERB? DROP THROW>
|
|
<PRSO? ,POLE>>>
|
|
<TELL ,UNBALANCED>
|
|
<FLYING>
|
|
<TELL "And you fall ...">
|
|
<FALL-DOWN>)>)
|
|
(<AND <EQUAL? .RARG ,M-ENTER>
|
|
,END-GAME>
|
|
<MOVE ,APE ,TIGHTROPE-ROOM>)>>
|
|
|
|
<GLOBAL DANGERS
|
|
<LTABLE 0
|
|
"perilously"
|
|
"nakedly"
|
|
"precariously"
|
|
"dubiously">>
|
|
|
|
<GLOBAL ROPES
|
|
<PLTABLE
|
|
"a couple of baby steps"
|
|
"just part of the way"
|
|
"about midway"
|
|
"most of the way"
|
|
"nearly all the way">>
|
|
|
|
<OBJECT TIGHTROPE-OBJECT
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "tightrope")
|
|
(SYNONYM ROPE WIRE TIGHTR HIGH-)
|
|
(ADJECTIVE TIGHT HIGH)
|
|
(FLAGS NDESCBIT TRYTAKEBIT)
|
|
(ACTION TIGHTROPE-OBJECT-F)>
|
|
|
|
<ROUTINE TIGHTROPE-OBJECT-F ()
|
|
<COND (<AND <EQUAL? ,HERE ,RING>
|
|
<TOUCHING? ,TIGHTROPE-OBJECT>>
|
|
<CANT-REACH ,TIGHTROPE-OBJECT>)
|
|
(<VERB? CLIMB-ON TAKE>
|
|
;<NOT <EQUAL? ,P-PRSA-WORD ,W?GET>>
|
|
<TELL ,NO-TALENT CR>)
|
|
(<AND <VERB? THROUGH BOARD WALK-TO CLIMB-ON>
|
|
<EQUAL? ,HERE ,PLATFORM-1 ,PLATFORM-2 ,TIGHTROPE-ROOM>>
|
|
<COND (<OR <EQUAL? ,HERE ,PLATFORM-1>
|
|
,HEADING-EAST?>
|
|
<DO-WALK ,P?EAST>)
|
|
(<OR <EQUAL? ,HERE ,PLATFORM-2>
|
|
<AND <EQUAL? ,HERE ,TIGHTROPE-ROOM>
|
|
<NOT ,HEADING-EAST?>>>
|
|
<DO-WALK ,P?WEST>)>)>>
|
|
|
|
<OBJECT GUY-WIRES
|
|
(IN GLOBAL-OBJECTS)
|
|
(DESC "apparatus")
|
|
(SYNONYM WIRES WIRE APPARATUS)
|
|
(ADJECTIVE GUY SUPPORTING)
|
|
(FLAGS NDESCBIT VOWELBIT)
|
|
(ACTION GUY-WIRES-F)>
|
|
|
|
<ROUTINE GUY-WIRES-F ()
|
|
<COND (<NOT <SEE-WIRES?>>
|
|
<CANT-SEE <> "the guy wires">
|
|
<STOP>)
|
|
(<AND <NOT <EQUAL? ,HERE ,PLATFORM-1 ,PLATFORM-2>>
|
|
<TOUCHING? ,GUY-WIRES>>
|
|
<CANT-REACH ,GUY-WIRES>)
|
|
(<VERB? CLIMB-UP CLIMB-FOO SHAKE CLIMB-ON MOVE>
|
|
<COND (<EQUAL? ,APE-LOC 2>
|
|
<SETG APE-LOC 3>
|
|
<TELL
|
|
"You're not very good at aping " D ,APE " in this respect, but the
|
|
vibrations of your attempt serve to flush him from his perch among the
|
|
guy wires and onto the opposite platform.">
|
|
<COND (<EQUAL? <META-LOC ,RADIO> ,PLATFORM-2>
|
|
<TELL " \"Crunch!\"">)>
|
|
<CRLF>)
|
|
(<NOT <VERB? SHAKE MOVE>>
|
|
<TELL ,NO-TALENT CR>)>)>>
|
|
|
|
<ROUTINE SEE-WIRES? ()
|
|
<COND (<OR <EQUAL? ,HERE ,PLATFORM-1 ,PLATFORM-2 ,TIGHTROPE-ROOM>
|
|
<EQUAL? ,HERE ,RING>>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<OBJECT PLATFORM
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "platform")
|
|
(SYNONYM PLATFORM)
|
|
(ADJECTIVE SMALL UNSTABLE OPPOSITE)
|
|
(FLAGS NDESCBIT)
|
|
(ACTION PLATFORM-F)>
|
|
|
|
<ROUTINE PLATFORM-F ()
|
|
<COND (<IS-ADJ? ,W?OPPOSITE>
|
|
<COND (<VERB? WALK-TO THROUGH>
|
|
<COND (<OR ,HEADING-EAST?
|
|
<EQUAL? ,HERE ,PLATFORM-1>>
|
|
<DO-WALK ,P?EAST>)
|
|
(<EQUAL? ,HERE ,PLATFORM-2>
|
|
<DO-WALK ,P?WEST>)>)
|
|
(<TOUCHING? ,PLATFORM>
|
|
<CANT-REACH ,PLATFORM>)>)
|
|
(<AND <VERB? LOOK-ON>
|
|
<EQUAL? ,HERE ,PLATFORM-1 ,PLATFORM-2>>
|
|
<V-LOOK>
|
|
<RTRUE>)
|
|
(<VERB? PUT-ON>
|
|
<COND (<EQUAL? ,HERE ,PLATFORM-1 ,PLATFORM-2>
|
|
<PERFORM ,V?DROP ,PRSO>
|
|
<RTRUE>)
|
|
(T
|
|
<CANT-REACH ,PLATFORM>)>)
|
|
(<VERB? THROUGH WALK-TO BOARD>
|
|
<COND (<EQUAL? ,HERE ,PLATFORM-1 ,PLATFORM-2>
|
|
<TELL ,LOOK-AROUND CR>)
|
|
(<EQUAL? ,HERE ,TIGHTROPE-ROOM>
|
|
<COND (,HEADING-EAST?
|
|
<DO-WALK ,P?EAST>)
|
|
(T
|
|
<DO-WALK ,P?WEST>)>)
|
|
(T
|
|
<CANT-SEE ,PLATFORM>)>)
|
|
(<VERB? LEAP LEAP-OFF>
|
|
<COND (<AND <EQUAL? ,HERE ,TIGHTROPE-ROOM>
|
|
<VERB? LEAP-OFF>>
|
|
<TELL ,LOOK-AROUND CR>)
|
|
(T
|
|
<TELL ,UNBALANCED>
|
|
<FLYING>
|
|
<TELL "And you fall ...">
|
|
<FALL-DOWN>)>)>>
|
|
|
|
<ROUTINE PLATFORM-EXIT-F ()
|
|
<COND (<EQUAL? ,APE-LOC 2>
|
|
<TELL
|
|
D ,APE ", perched above you, is restless enough to make the "
|
|
D ,TIGHTROPE-OBJECT " too herky-jerky to walk across." CR>
|
|
<RFALSE>)
|
|
(<OR <FSET? ,SUIT ,WORNBIT>
|
|
<FSET? ,DRESS ,WORNBIT>>
|
|
<TELL "You're not dressed for wire-walking." CR>
|
|
<RFALSE>)
|
|
(<AND <NOT <HELD? ,POLE>>
|
|
<NOT ,END-GAME>>
|
|
<ENABLE <QUEUE I-TREMBLE <+ 2 <RANDOM 3>>>>)>
|
|
<COND (<EQUAL? ,P-WALK-DIR ,P?EAST>
|
|
<SETG HEADING-EAST? T>)
|
|
(T
|
|
<SETG HEADING-EAST? <>>)>
|
|
<SETG ON-ROPE 1>
|
|
<FCLEAR ,TIGHTROPE-ROOM ,TOUCHBIT>
|
|
<RETURN ,TIGHTROPE-ROOM>>
|
|
|
|
<GLOBAL LEAN-NORTH? <>>
|
|
|
|
<GLOBAL TREMBLE-C 0>
|
|
|
|
<ROUTINE I-TREMBLE ()
|
|
<SETG TREMBLE-C <+ ,TREMBLE-C 1>>
|
|
<ENABLE <QUEUE I-TREMBLE -1>>
|
|
<COND (<EQUAL? ,TREMBLE-C 4>
|
|
<TELL
|
|
"You're really fighting it now, the high wire starts acting like a jump rope. ">
|
|
<FLYING>
|
|
<CRLF>
|
|
<TELL <PICK-ONE ,FALL-GAG>>
|
|
<TELL " right before you plummet ...">
|
|
<FALL-DOWN>)
|
|
(<AND <G? ,TREMBLE-C 1>
|
|
<NOT <VERB? LEAN>>>
|
|
<TELL
|
|
"You're still out of balance, " <PICK-ONE ,LEANS> " now, to the ">
|
|
<COND (,LEAN-NORTH?
|
|
<TELL "north." CR>)
|
|
(T
|
|
<TELL "south." CR>)>
|
|
<RTRUE>)
|
|
(<EQUAL? ,TREMBLE-C 1>
|
|
<TELL "You find " D ,ME>
|
|
<LEANING>
|
|
<COND (<PROB 50>
|
|
<LEAN T>)
|
|
(T
|
|
<LEAN>)>)>>
|
|
|
|
<ROUTINE LEANING ()
|
|
<TELL " leaning " <PICK-ONE ,LEANS> " to the">>
|
|
|
|
<ROUTINE LEAN ("OPTIONAL" (NORTH? <>))
|
|
<COND (.NORTH?
|
|
<TELL " north">
|
|
<SETG LEAN-NORTH? T>)
|
|
(T
|
|
<TELL " south">
|
|
<SETG LEAN-NORTH? <>>)>
|
|
<TELL ,PERIOD>>
|
|
|
|
<GLOBAL LEANS
|
|
<LTABLE 0
|
|
"almost imperceptibly"
|
|
"just a hair"
|
|
"quite noticeably"
|
|
"radically">>
|
|
|
|
<GLOBAL FALL-GAG
|
|
<LTABLE 0
|
|
"You're doing a pretty good Elvis"
|
|
"Flailing away to regain some balance, you nearly slip a disk">>
|
|
|
|
<ROUTINE FLYING ("AUX" OBJ)
|
|
<COND (<SET OBJ <FIRST? ,PROTAGONIST>>
|
|
<COND (<NEXT? .OBJ>
|
|
<TELL "Everything you're holding">)
|
|
(T
|
|
<TELL "Oops,">
|
|
<ARTICLE .OBJ T>)>
|
|
<TELL " goes flying. ">)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE FALL-DOWN ()
|
|
<DISABLE <INT I-TREMBLE>>
|
|
<SETG TREMBLE-C 0>
|
|
<SETG LEAN-NORTH? <>>
|
|
<FCLEAR ,TIGHTROPE-OBJECT ,RMUNGBIT>
|
|
<FCLEAR ,TIGHTROPE-ROOM ,TOUCHBIT>
|
|
<CARRIAGE-RETURNS 14>
|
|
<COND (<IN? ,NET ,MUNRAB>
|
|
<JIGS-UP 1
|
|
"... and the group below zigs instead of zags.">)
|
|
(<NOT <IN? ,NET ,RING>>
|
|
<JIGS-UP 1 "... to an inglorious circus death.">
|
|
<RTRUE>)
|
|
(T
|
|
<SETG HERE ,RING>
|
|
<ROB ,PROTAGONIST ,RING>
|
|
<MOVE ,PROTAGONIST ,NET>
|
|
<TELL
|
|
"... deeply into the " D ,NET ", which heaves you high into the air ... then
|
|
catches you back down." CR>)>>
|
|
|
|
<ROUTINE ACROSS-ROPE ()
|
|
<COND (<OR <AND <EQUAL? ,P-WALK-DIR ,P?WEST>
|
|
,HEADING-EAST?>
|
|
<AND <EQUAL? ,P-WALK-DIR ,P?EAST>
|
|
<NOT ,HEADING-EAST?>>>
|
|
<COND (,END-GAME
|
|
<COND (<EQUAL? ,ON-ROPE 1>
|
|
<SETG ON-ROPE 5>)
|
|
(<EQUAL? ,ON-ROPE 2>
|
|
<SETG ON-ROPE 4>)
|
|
(<EQUAL? ,ON-ROPE 4>
|
|
<SETG ON-ROPE 2>)
|
|
(<EQUAL? ,ON-ROPE 5>
|
|
<SETG ON-ROPE 1>)>
|
|
<COND (,HEADING-EAST?
|
|
<SETG HEADING-EAST? <>>)
|
|
(T
|
|
<SETG HEADING-EAST? T>)>
|
|
<TELL
|
|
"A daring turnaround on the tightrope! You regain your balance." CR>
|
|
<RFALSE>)
|
|
(T
|
|
<TELL
|
|
"A bold attempt to excite the arena seats! ">
|
|
<FLYING>
|
|
<TELL "You sink ...">
|
|
<FALL-DOWN>
|
|
<RFALSE>)>)
|
|
(<RUNNING? ,I-TREMBLE>
|
|
<COND (<0? ,TREMBLE-C>
|
|
<TELL "A quiver shoots through your leading foot,">)
|
|
(<EQUAL? ,TREMBLE-C 2 3>
|
|
<TELL "Your trailing foot begins to quake,">)
|
|
(T
|
|
<TELL "You're too unstable." CR>
|
|
<RFALSE>)>
|
|
<TELL " stopping you dead on the wire." CR>
|
|
<RFALSE>)
|
|
(<NOT <EQUAL? ,ON-ROPE 5>>
|
|
<SETG ON-ROPE <+ ,ON-ROPE 1>>
|
|
<TELL "You take a couple of tentative steps across the wire">
|
|
<COND (<EQUAL? ,ON-ROPE 3>
|
|
<TELL ", reaching the halfway point">)>
|
|
<COND (<AND <EQUAL? ,APE-LOC 3>
|
|
,HEADING-EAST?>
|
|
<COND (<EQUAL? ,ON-ROPE 2>
|
|
<TELL
|
|
". " D ,APE " lets out an aggressive scream that echoes throughout the "
|
|
D ,BIGTOP ".">)
|
|
(<EQUAL? ,ON-ROPE 3>
|
|
<TELL
|
|
". The gorilla raps his knuckles against his mighty chest. You can feel the
|
|
vibration on your toes.">)
|
|
(<EQUAL? ,ON-ROPE 4>
|
|
<COND (<AND <HELD? ,RADIO>
|
|
<EQUAL? ,STATION 1170>
|
|
<FSET? ,RADIO ,ONBIT>
|
|
,CALLED-STATION>
|
|
<TELL
|
|
". As the heavenly music drifts to within earshot of " D ,APE ", the beast
|
|
is becalmed, and he loosens his grip on the girl.">)
|
|
(T
|
|
<TELL
|
|
". " D ,APE " appears determined to bring down the " D ,BIGTOP " if you take
|
|
one more step.">)>)
|
|
(<EQUAL? ,ON-ROPE 5>
|
|
<COND (<AND <HELD? ,RADIO>
|
|
<EQUAL? ,STATION 1170>
|
|
<FSET? ,RADIO ,ONBIT>
|
|
,CALLED-STATION>
|
|
<SETG APE-LOC 4>
|
|
<ROB ,PROTAGONIST ,LOCAL-GLOBALS>
|
|
<MOVE-TAKEBIT ,RING ,WINGS>
|
|
<ROB ,RING ,LEFT-HANGING>
|
|
<MOVE ,GIRL ,LEFT-HANGING>
|
|
<MOVE ,THUMB ,LEFT-HANGING>
|
|
<MOVE ,GANG ,LEFT-HANGING>
|
|
<MOVE ,MUNRAB ,LEFT-HANGING>
|
|
<SETG END-GAME-C 0>
|
|
<MOVE ,TIGHTROPE-OBJECT ,LEFT-HANGING>
|
|
<TELL
|
|
". You are now almost close enough to reach out and touch " D ,APE ", and the
|
|
effect of the music is to utterly relax the great ape. He lets loose the
|
|
girl like a rag doll ... falling ... falling ... falling ... deep into
|
|
the safety of the net!|
|
|
|
|
|
The cheers of joy and relief from the group encircling the net interrupt "
|
|
D ,APE "'s listening pleasure. With a stomp, he bounces you off your perch
|
|
and on your way down, you catch the wire with " D ,HANDS ", thus saving
|
|
two lives in the same move. You dangle here as the crowd below continues
|
|
their self-congratulation and rejoicing." CR CR>
|
|
;<FSET ,LEFT-HANGING ,TOUCHBIT>
|
|
<FSET ,MUNRAB ,NDESCBIT>
|
|
<FSET ,THUMB ,NDESCBIT>
|
|
<SETG POCKET-CHANGE 0>
|
|
<SETG SCORE <+ ,SCORE 10>>
|
|
<GOTO ,LEFT-HANGING>
|
|
<RFALSE>)
|
|
(T
|
|
<JIGS-UP 1
|
|
". With a stomp of its big foot, the ape bounces you off the wire and sends
|
|
you into a swan dive. You miss the net, which is properly positioned under
|
|
Chelsea.">)>)
|
|
(T
|
|
<RFALSE>)>
|
|
<CRLF>
|
|
<RFALSE>)
|
|
(T
|
|
<TELL " ..." CR>
|
|
<RETURN ,TIGHTROPE-ROOM>)>)
|
|
(T
|
|
<RETURN <PLATFORM-RETURN>>)>>
|
|
|
|
<ROOM LEFT-HANGING
|
|
(IN ROOMS)
|
|
(DESC "Left Hanging")
|
|
(LDESC "You're hanging from the high wire.")
|
|
(FLAGS RLANDBIT ONBIT INDOORSBIT)
|
|
(DOWN PER DOWN-LEFT)
|
|
(GLOBAL RING-OBJECT TIGHTROPE-OBJECT)
|
|
(ACTION LEFT-HANGING-F)>
|
|
|
|
<ROUTINE LEFT-HANGING-F (RARG)
|
|
<COND (<EQUAL? .RARG ,M-BEG>
|
|
<COND (<VERB? ASK-ABOUT YELL TELL TELL-ABOUT HELLO REPLY
|
|
HELP>
|
|
<SETG P-CONT <>>
|
|
<TELL
|
|
"You can't be heard above the commotion below." CR>)
|
|
(<VERB? RELEASE DROP LEAP CLAP APPLAUD REMOVE LEAP-OFF
|
|
THROUGH>
|
|
<SETG END-GAME-C 3>
|
|
<RTRUE>)
|
|
(<VERB? LOOK-DOWN>
|
|
<TELL "Your neck aches as you attempt it." CR>)
|
|
(<OR <AND <VERB? WALK>
|
|
<EQUAL? ,P-WALK-DIR ,P?EAST ,P?WEST>>
|
|
<AND <VERB? RAISE>
|
|
<PRSO? ,ME>>>
|
|
<TELL "The strength is lacking." CR>)
|
|
(<AND <TOUCHING-VERB?>
|
|
<NOT <EQUAL? ,PRSO ,ME ,HANDS ,TIGHTROPE-OBJECT>>
|
|
<NOT <EQUAL? ,PRSI ,ME ,HANDS ,TIGHTROPE-OBJECT>>>
|
|
<TELL "That's unreachable." CR>)
|
|
(T
|
|
<RFALSE>)>
|
|
<RTRUE>)>>
|
|
|
|
<ROUTINE DOWN-LEFT ()
|
|
<PERFORM ,V?LEAP>
|
|
<RFALSE>>
|
|
|
|
<ROUTINE PLATFORM-RETURN ("AUX" FOO)
|
|
<COND (,HEADING-EAST?
|
|
<SET FOO ,PLATFORM-2>)
|
|
(T
|
|
<SET FOO ,PLATFORM-1>)>
|
|
<SETG ON-ROPE 0>
|
|
<DISABLE <INT I-TREMBLE>>
|
|
<SETG HEADING-EAST? <>>
|
|
<COND (<AND <EQUAL? .FOO ,PLATFORM-2>
|
|
<NOT <FSET? ,PLATFORM-2 ,TOUCHBIT>>>
|
|
<SETG SCORE <+ ,SCORE 10>>
|
|
<TELL
|
|
"\"Ta Daaaaaaaaaaa.\" Those familiar notes from tonight's show reverberate
|
|
through your body in triumph." CR CR>)>
|
|
<RETURN .FOO>>
|
|
|
|
|
|
;" *** Lion stuff *** "
|
|
|
|
<ROOM DEN
|
|
(IN ROOMS)
|
|
(DESC "Lions' Den")
|
|
(EAST TO RING IF LION-DOOR IS OPEN)
|
|
(OUT TO RING IF LION-DOOR IS OPEN)
|
|
(SOUTH PER GRATE-ENTER)
|
|
(FLAGS RLANDBIT ONBIT INDOORSBIT)
|
|
(GLOBAL LION-DOOR LION-CAGE BIGTOP CENTER-POLE RING-OBJECT)
|
|
(ACTION DEN-F)>
|
|
|
|
<ROUTINE DEN-F (RARG)
|
|
<COND (<EQUAL? .RARG ,M-LOOK>
|
|
<TELL
|
|
"Here inside the round cage you stand in a dingy indoor twilight,
|
|
surrounded by a panorama of closely spaced bars. The " D ,LION-DOOR "
|
|
that you're still keeping an eye on is to the east.|
|
|
|
|
|
Built into the southern side of the round cage there is a square grate which ">
|
|
<COND (<FSET? ,GRATE ,OPENBIT>
|
|
<TELL "is raised, revealing">)
|
|
(T
|
|
<TELL "is lowered, blocking">)>
|
|
<TELL " some sort of passage." CR>
|
|
<COND (<AND <IN? ,STAND ,DEN>
|
|
<FSET? ,STAND ,NDESCBIT>>
|
|
<CRLF>
|
|
<COND (<AND <FSET? ,LION-CAGE ,RMUNGBIT>
|
|
<NOT <FSET? ,CASE ,TOUCHBIT>>>
|
|
<TELL
|
|
"The " D ,STAND " is" ,LION-STAND-MOVED>)
|
|
(T
|
|
<TELL "A " D ,STAND " sits here.">)>
|
|
<CRLF>)>)
|
|
(<EQUAL? .RARG ,M-ENTER>
|
|
<COND (<IN? ,ELSIE ,RING>
|
|
<TELL
|
|
"The big cats suddenly spring out of their slumber, and begin moving stealthily
|
|
around the den">
|
|
<COND (<NOT <FSET? ,MEAT ,RMUNGBIT>>
|
|
<TELL ", as if in preparation for a feeding">)>
|
|
<TELL ,PERIOD CR>
|
|
<MOVE-LIONS ,DEN>
|
|
<ENABLE <QUEUE I-LION 2>>)>
|
|
<COND (<AND <IN? ,STAND ,RING>
|
|
<FSET? ,STAND ,NDESCBIT>>
|
|
<FCLEAR ,STAND ,NDESCBIT>
|
|
<FSET ,STAND ,VEHBIT>
|
|
<MOVE ,STAND ,DEN>)>)>>
|
|
|
|
<ROUTINE GRATE-ENTER ()
|
|
<COND (<NOT <FSET? ,GRATE ,OPENBIT>>
|
|
<TELL
|
|
"The " D ,GRATE " is lowered over the passage." CR>
|
|
<RFALSE>)
|
|
(<AND <IN? ,NIMROD ,HERE>
|
|
<NOT <FSET? ,GRATE ,OPENBIT>>>
|
|
<PERFORM ,V?OPEN ,GRATE>
|
|
<RFALSE>)
|
|
(T
|
|
<V-DIG>
|
|
<RFALSE>)>>
|
|
|
|
<ROUTINE I-LION ("AUX" (ELSIE-STOP <>))
|
|
<COND (<IN? ,ELSIE ,CHUTE>
|
|
<SETG ELSIE-COUNTER <+ ,ELSIE-COUNTER 1>>
|
|
<COND (<G? ,ELSIE-COUNTER 7>
|
|
<MOVE ,MEAT ,LOCAL-GLOBALS>
|
|
<DISABLE <INT I-LION>>
|
|
<COND (<FSET? ,GRATE ,OPENBIT>
|
|
<SETG ELSIE-COUNTER 0>
|
|
<COND (<EQUAL? ,HERE ,DEN>
|
|
<MOVE-LIONS ,DEN>)
|
|
(T
|
|
<MOVE-LIONS ,RING>)>
|
|
<COND (<EQUAL? ,HERE ,BESIDE-BIGTOP ,DEN>
|
|
<TELL CR
|
|
"The lions slink back into their den." CR>)>
|
|
<COND (<EQUAL? ,HERE ,DEN>
|
|
<ENABLE <QUEUE I-LION -1>>)>)>)>
|
|
<RFALSE>)
|
|
(<AND <NOT <EQUAL? ,HERE ,DEN>> ;"meat in chute open"
|
|
<IN? ,MEAT ,CHUTE>>
|
|
<MOVE-LIONS ,CHUTE>
|
|
<ENABLE <QUEUE I-LION -1>>
|
|
<COND (<EQUAL? ,HERE ,BESIDE-BIGTOP>
|
|
;<ENABLE <QUEUE I-LION -1>>
|
|
<TELL CR
|
|
"You see the pair of hungry cats slink into the chute from the " D ,BIGTOP "
|
|
and pounce on the " D ,MEAT "." CR>)>)
|
|
(T
|
|
<COND (<EQUAL? ,HERE ,DEN>
|
|
<ENABLE <QUEUE I-LION -1>>
|
|
<CRLF>
|
|
<COND (<IN? ,MEAT ,DEN>
|
|
<COND (<ZERO? ,ELSIE-COUNTER>
|
|
<TELL ;CR
|
|
"The lions continue mauling their">)
|
|
(T
|
|
<TELL
|
|
"The " D ,NIMROD " keeps mauling his">)>
|
|
<TELL " dinner and watching you." CR>
|
|
<RTRUE>)
|
|
(<EQUAL? ,ELSIE-COUNTER 0>
|
|
<TELL "Both lions continue">)
|
|
(T
|
|
<TELL "The " D ,NIMROD " keeps">
|
|
<SET ELSIE-STOP T>)>
|
|
<TELL
|
|
" pacing nervously back and forth around the den, never letting you out of ">
|
|
<COND (.ELSIE-STOP
|
|
<TELL "its">)
|
|
(T
|
|
<TELL "their">)>
|
|
<TELL " sight.">
|
|
<COND (<AND .ELSIE-STOP
|
|
<VERB? LOOK>>
|
|
<TELL " The " D ,ELSIE " remains bogged down ">
|
|
<COND (<L? ,ELSIE-COUNTER 3>
|
|
<TELL "in front of the grate">)
|
|
(T
|
|
<TELL
|
|
"off to one side of the " D ,LION-CAGE>)>
|
|
<TELL ".">)>
|
|
<CRLF>)>)>>
|
|
|
|
<OBJECT LION-CAGE
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "lions' den")
|
|
(SYNONYM DEN CAGE BAR BARS)
|
|
(ADJECTIVE LIONS LION\'S ROUND LION)
|
|
(FLAGS NDESCBIT)
|
|
(GENERIC GEN-BAR)
|
|
(ACTION LION-CAGE-F)>
|
|
|
|
;"RMUNGBIT = can see that lion stand has been moved"
|
|
|
|
<ROUTINE LION-CAGE-F ()
|
|
<COND (<VERB? UNLOCK LOCK OPEN CLOSE>
|
|
<PERFORM ,PRSA ,LION-DOOR ,PRSI>
|
|
<RTRUE>)
|
|
(<VERB? LOOK-INSIDE>
|
|
<COND (<EQUAL? ,HERE ,DEN>
|
|
<V-LOOK>
|
|
<RTRUE>)
|
|
(T
|
|
<COND (<IN? ,ELSIE ,RING>
|
|
<TELL ,YOU-SEE
|
|
" a pair of sleepyheaded lions resting on their haunches in the sawdust.">)
|
|
(T
|
|
<TELL
|
|
"The " D ,LION-CAGE " is still, and void of life.">)>
|
|
<COND (<FSET? ,STAND ,NDESCBIT>
|
|
<TELL
|
|
" There is an enclosed " D ,STAND " in the " D ,LION-CAGE>
|
|
<COND (<NOT <FSET? ,MIDWEST ,TOUCHBIT>>
|
|
<FSET ,LION-CAGE ,RMUNGBIT>
|
|
<FCLEAR ,DEN ,TOUCHBIT>)>
|
|
<COND (<AND <FSET? ,MIDWEST ,TOUCHBIT>
|
|
<FSET? ,LION-CAGE ,RMUNGBIT>
|
|
<NOT <IN? ,ELSIE ,CHUTE>>>
|
|
<TELL "," ,LION-STAND-MOVED>)
|
|
(T
|
|
<TELL ".">)>)>
|
|
<CRLF>)>)
|
|
(<AND <VERB? PUT>
|
|
<PRSI? ,LION-CAGE>
|
|
<NOT <IDROP>>>
|
|
<COND (<EQUAL? ,HERE ,DEN>
|
|
<PERFORM ,V?DROP ,PRSO>
|
|
<RTRUE>)
|
|
(<AND <PRSO? ,MEAT>
|
|
<FSET? ,LION-DOOR ,OPENBIT>>
|
|
<TELL
|
|
"This isn't feeding pigeons in the park here." CR>)
|
|
(<OR <EQUAL? ,PRSO ,MEAT>
|
|
<AND <G? <GETP ,PRSO ,P?SIZE> 25>
|
|
<NOT <EQUAL? ,PRSO ,POLE>>>>
|
|
<SETG PRSI ,CAGE>
|
|
<TELL-CLOSELY-SPACED>
|
|
<SETG PRSI ,LION-CAGE>)
|
|
(T
|
|
<V-DIG>)>)
|
|
(<VERB? REACH-IN>
|
|
<COND (<EQUAL? ,HERE ,DEN>
|
|
<TELL ,LOOK-AROUND CR>)
|
|
(<IN? ,NIMROD ,HERE>
|
|
<TELL "Very unwise." CR>)
|
|
(T
|
|
<TELL-WITHIN-REACH>)>)
|
|
(<VERB? CLIMB-ON CLIMB-FOO CLIMB-UP>
|
|
<PERFORM ,V?CLIMB-UP ,CAGE>
|
|
<RTRUE>)
|
|
(<VERB? BOARD ENTER THROUGH>
|
|
<COND (<EQUAL? ,HERE ,RING>
|
|
<DO-WALK ,P?WEST>)
|
|
(T
|
|
<TELL ,LOOK-AROUND>)>)
|
|
(<VERB? LEAVE EXIT DISEMBARK>
|
|
<COND (<EQUAL? ,HERE ,DEN>
|
|
<DO-WALK ,P?EAST>)
|
|
(T
|
|
<TELL ,LOOK-AROUND>)>)>>
|
|
|
|
<ROUTINE MOVE-LIONS (PLACE)
|
|
<MOVE ,ELSIE .PLACE>
|
|
<MOVE ,NIMROD .PLACE>
|
|
<MOVE ,LION-NAME .PLACE>
|
|
<COND (<EQUAL? .PLACE ,DUMMY-OBJECT ,CHUTE>
|
|
<RFALSE>)
|
|
(<EQUAL? .PLACE ,RING>
|
|
<FSET ,STAND ,NDESCBIT>
|
|
<FCLEAR ,STAND ,VEHBIT>)
|
|
(<EQUAL? .PLACE ,DEN>
|
|
<FSET ,STAND ,VEHBIT>)>
|
|
<MOVE ,STAND .PLACE>>
|
|
|
|
<OBJECT STAND
|
|
(IN RING)
|
|
(DESC "lion stand")
|
|
(SYNONYM STAND PEDESTAL)
|
|
(ADJECTIVE ENCLOSED LION ;RED)
|
|
(FLAGS ;VEHBIT TAKEBIT SURFACEBIT CONTBIT OPENBIT SEARCHBIT NDESCBIT
|
|
RMUNGBIT)
|
|
(SIZE 90)
|
|
(CAPACITY 50)
|
|
(ACTION STAND-F)>
|
|
|
|
;"NDESCBIT = stand is IN RING but is described as in den
|
|
On den-f m-enter, if ndescbit is set it's moved
|
|
to DEN"
|
|
|
|
<ROUTINE STAND-F ("OPTIONAL" (RARG <>))
|
|
<COND (<AND <EQUAL? .RARG ,M-BEG>
|
|
<VERB? WALK>
|
|
<NOT <EQUAL? ,P-WALK-DIR ,P?UP ;,P?DOWN>>>
|
|
<COND (<EQUAL? ,P-WALK-DIR ,P?DOWN>
|
|
<PERFORM ,V?DISEMBARK ,STAND>
|
|
<RTRUE>)
|
|
(T
|
|
<OUT-OF-FIRST ,STAND>)>)
|
|
(.RARG
|
|
<RFALSE>)
|
|
(<VERB? OPEN CLOSE>
|
|
<CANT-OPEN>)
|
|
(<VERB? EXAMINE>
|
|
<TELL
|
|
"The " D ,STAND " is a red three-foot-high, cylindrical pedestal. ">
|
|
<COND (<FIRST? ,STAND>
|
|
<PERFORM ,V?LOOK-ON ,STAND>
|
|
<RTRUE>)>
|
|
<CRLF>
|
|
<RTRUE>)
|
|
(<VERB? LOOK-ON>
|
|
<COND (<FIRST? ,STAND>
|
|
<TELL "There's">
|
|
<PRINT-CONTENTS ,STAND>)
|
|
(T
|
|
<TELL " nothing">)>
|
|
<TELL " on the stand." CR>)
|
|
(<AND <EQUAL? ,HERE ,RING>
|
|
<FSET? ,STAND ,NDESCBIT>
|
|
<TOUCHING? ,STAND>>
|
|
<CANT-REACH ,STAND>)
|
|
(<VERB? CLIMB-FOO>
|
|
<PERFORM ,V?BOARD ,STAND>
|
|
<RTRUE>)
|
|
(<AND <IN? ,NIMROD ,HERE>
|
|
<OR <VERB? BOARD>
|
|
<VERB? PUT PUT-ON>>>
|
|
<PERFORM ,V?RAISE ,STAND>
|
|
<RTRUE>)
|
|
(<AND <VERB? LOOK-UNDER RAISE TAKE MOVE SEARCH LOOK-INSIDE
|
|
PUSH>
|
|
<PRSO? ,STAND>
|
|
<IN? ,CASE ,LOCAL-GLOBALS>>
|
|
<COND (<EQUAL? <LOC ,PROTAGONIST> ,STAND>
|
|
<OUT-OF-FIRST ,STAND>)
|
|
(<IN? ,NIMROD ,HERE>
|
|
<TELL
|
|
"Jealous of your attempt to assume its throne, the shaggy king of beasts
|
|
repels you with a volcanic roar." CR>)
|
|
(<AND <IN? ,NIMROD ,CHUTE>
|
|
<FSET? ,GRATE ,OPENBIT>>
|
|
<BLIND-SIDE>)
|
|
(T
|
|
<FSET ,CASE ,TOUCHBIT>
|
|
<MOVE ,CASE ,PROTAGONIST>
|
|
<SETG SCORE <+ ,SCORE 10>>
|
|
<TELL
|
|
"You tilt up the " D ,STAND " and see a " D ,CASE ", which you pick
|
|
up." CR>)>)
|
|
(<AND <VERB? PUT>
|
|
<PRSI? ,STAND>>
|
|
<V-DIG>)
|
|
(<VERB? LOOK-INSIDE>
|
|
<TELL ,EMPTY ,PERIOD>
|
|
<RTRUE>)>>
|
|
|
|
<ROUTINE WHIP-HOLD ()
|
|
<COND (<NOT <IN? ,WHIP ,PROTAGONIST>>
|
|
<TELL ,NOT-HOLDING " a whip." CR>
|
|
<RTRUE>)>>
|
|
|
|
<ROUTINE LION-NOT-HERE? (THING)
|
|
<COND (<AND <NOT <IN? ,NIMROD ,DEN>>
|
|
<TOUCHING? .THING>>
|
|
<CANT-REACH .THING>
|
|
<RTRUE>)>>
|
|
|
|
<OBJECT NIMROD
|
|
(IN RING)
|
|
(DESC "shaggy lion")
|
|
(SYNONYM LION CAT MANE ANIMAL)
|
|
(ADJECTIVE BIG SHAGGY BLOND)
|
|
(FLAGS ACTORBIT NDESCBIT)
|
|
(ACTION NIMROD-F)
|
|
(SIZE 100)>
|
|
|
|
<ROUTINE NIMROD-F ()
|
|
<COND (<AND <NOT <EQUAL? ,PRSA ,V?GIVE ,V?SHOW>>
|
|
<LION-NOT-HERE? ,NIMROD>>
|
|
<RTRUE>)
|
|
(<TALKING-TO? ,NIMROD>
|
|
<TALK-TO-LION>
|
|
<STOP>)
|
|
(<VERB? SEARCH RUB PUSH>
|
|
<TELL
|
|
"As " D ,HANDS " approaches, the lion backs you away with a head-bobbing
|
|
roar." CR>)
|
|
(<VERB? EXAMINE>
|
|
<COND (<OR <IN? ,MEAT ,DEN>
|
|
<EQUAL? ,HERE ,RING>
|
|
<AND <IN? ,NIMROD ,CHUTE>
|
|
<L? ,ELSIE-COUNTER 7>>>
|
|
<TELL
|
|
"The lion appears savage and blond, like a Cosmo cover." CR>)
|
|
(T
|
|
<TELL
|
|
"The lion wags its salivating tongue in stride, at times giving off a
|
|
deep-throated purr." CR>)>)
|
|
(<AND <VERB? THROW>
|
|
<PRSI? ,NIMROD>
|
|
<EQUAL? ,HERE ,RING>>
|
|
<PERFORM ,V?PUT ,PRSO ,LION-CAGE>
|
|
<RTRUE>)
|
|
(<AND <VERB? GIVE SHOW>
|
|
<HELD? ,PRSO>>
|
|
<COND (<EQUAL? ,HERE ,RING>
|
|
<PERFORM ,V?PUT ,PRSO ,LION-CAGE>
|
|
<RTRUE>)
|
|
(<PRSO? ,MEAT>
|
|
<FEED-LION T>
|
|
<RTRUE>)
|
|
(<PRSO? ,WATER>
|
|
<NOT-INTERESTED>)
|
|
(<PRSO? ,MOUSE>
|
|
<RFALSE>)
|
|
(T
|
|
<MOVE ,PRSO ,HERE>
|
|
<TELL "As">
|
|
<ARTICLE ,PRSO T>
|
|
<TELL
|
|
" falls to the sawdust, the shaggy beast lets out a gaping yawn. With your
|
|
open view of its choppers, this is only a little less intimidating than a
|
|
roar." CR>)>)
|
|
(<AND <VERB? WHIP>
|
|
<PRSI? ,WHIP>>
|
|
<COND (<WHIP-HOLD>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL
|
|
"Following the whip's backlash, the " D ,NIMROD>
|
|
<JIGS-UP 5
|
|
" makes a powerful leap toward you, its full weight bowling you over.">
|
|
<RTRUE>)>)>>
|
|
|
|
<ROUTINE FEED-LION ("OPTIONAL" (TO-NIMROD? <>))
|
|
<MOVE ,MEAT ,DEN>
|
|
<FSET ,MEAT ,NDESCBIT>
|
|
<FSET ,MEAT ,RMUNGBIT>
|
|
<SETG ELSIE-COUNTER 0>
|
|
<TELL "The ">
|
|
<COND (.TO-NIMROD?
|
|
<TELL D ,NIMROD>)
|
|
(T
|
|
<TELL D ,ELSIE>)>
|
|
<ENABLE <QUEUE I-LION 2>>
|
|
<TELL
|
|
" jaunts over to the meat and pounces on it, and now the other beast joins in
|
|
on the feast, each lion occasionally peering up at you." CR>>
|
|
|
|
<ROUTINE TALK-TO-LION ()
|
|
<TELL "The big cat pays you no heed." CR>>
|
|
|
|
<OBJECT ELSIE
|
|
(IN RING)
|
|
(DESC "smooth-bodied lion")
|
|
(SYNONYM LION CAT ANIMAL)
|
|
(ADJECTIVE BIG SMOOTH)
|
|
(FLAGS ACTORBIT NDESCBIT FEMALE)
|
|
(ACTION ELSIE-F)
|
|
(SIZE 100)>
|
|
|
|
<ROUTINE ELSIE-F ()
|
|
<COND (<AND <NOT <VERB? GIVE SHOW>>
|
|
<LION-NOT-HERE? ,ELSIE>>
|
|
<RTRUE>)
|
|
(<TALKING-TO? ,ELSIE>
|
|
<TALK-TO-LION>
|
|
<STOP>)
|
|
(<VERB? RUB SEARCH PUSH>
|
|
<TELL
|
|
"An ominous, deep-sounding purr from the " D ,ELSIE " keeps you away." CR>)
|
|
(<VERB? EXAMINE>
|
|
<COND (<OR <AND <NOT <ZERO? ,ELSIE-COUNTER>>
|
|
<EQUAL? ,HERE ,DEN>>
|
|
<EQUAL? ,HERE ,RING>>
|
|
<TELL
|
|
"The big cat is stretched out lazily over the sawdust." CR>)
|
|
(<AND <NOT <IN? ,MEAT ,DEN>>
|
|
<NOT <EQUAL? ,HERE ,RING>>
|
|
<OR <IN? ,ELSIE ,CHUTE>
|
|
<EQUAL? ,ELSIE-COUNTER 0>>>
|
|
<TELL
|
|
"With each stride the cat's muscle-laden shoulder bones pivot up and
|
|
down in tandem." CR>)>)
|
|
(<AND <VERB? THROW>
|
|
<PRSI? ,ELSIE>
|
|
<EQUAL? ,HERE ,RING>>
|
|
<PERFORM ,V?PUT ,PRSO ,LION-CAGE>
|
|
<RTRUE>)
|
|
(<AND <VERB? GIVE SHOW>
|
|
<HELD? ,PRSO>>
|
|
<COND (<EQUAL? ,HERE ,RING>
|
|
<PERFORM ,V?PUT ,PRSO ,LION-CAGE>
|
|
<RTRUE>)
|
|
(<PRSO? ,MOUSE>
|
|
<RFALSE>)
|
|
(<PRSO? ,MEAT>
|
|
<FEED-LION>)
|
|
(T
|
|
<NOT-INTERESTED>)>)
|
|
(<AND <VERB? WHIP>
|
|
<PRSI? ,WHIP>>
|
|
<COND (<WHIP-HOLD>
|
|
<RTRUE>)
|
|
(T
|
|
<SETG ELSIE-COUNTER <+ ,ELSIE-COUNTER 1>>
|
|
<COND (<EQUAL? ,ELSIE-COUNTER 1>
|
|
<TELL
|
|
"As the whip cracks just inches above the " D ,ELSIE "'s hide, the puzzled
|
|
animal scratches to a halt in front of the grate. Leaning back on its haunches,
|
|
the lion flexes its forepaws." CR>)
|
|
(<EQUAL? ,ELSIE-COUNTER 2>
|
|
<TELL
|
|
"\"Snap!\" The lion performs an obedient roll-over, flecking its hide with
|
|
sawdust." CR>)
|
|
(<EQUAL? ,ELSIE-COUNTER 3>
|
|
<TELL
|
|
"The " D ,ELSIE " cowers, does a couple of nervous pirouettes, then jaunts
|
|
off to the side of the " D ,LION-CAGE " where it hunkers down and lets out
|
|
a huge yawn." CR>)
|
|
(T
|
|
<BLIND-SIDE>)>)>)>>
|
|
|
|
<ROUTINE BLIND-SIDE ()
|
|
<JIGS-UP 2
|
|
"You are suddenly blindsided in a lightning attack lead by claws which sink
|
|
deep into your jugular.">
|
|
<RTRUE>>
|
|
|
|
<GLOBAL ELSIE-COUNTER 0>
|
|
|
|
<OBJECT LION-NAME
|
|
(IN RING)
|
|
(DESC "lion")
|
|
(SYNONYM ELSIE NIMROD LIONS CATS)
|
|
(ADJECTIVE CAT BIG)
|
|
(FLAGS NDESCBIT)
|
|
(ACTION LION-NAME-F)>
|
|
|
|
;"rmungbit = guard told me about lion-name, showing face"
|
|
|
|
<ROUTINE LION-NAME-F ()
|
|
<COND (<DONT-HANDLE? ,LION-NAME>
|
|
<RFALSE>)
|
|
(T
|
|
<COND (<VERB? EXAMINE>
|
|
<TELL
|
|
"You glance at each lion and realize that, b">)
|
|
(T
|
|
<TELL "B">)>
|
|
<TELL
|
|
"ecause you were outside the " D ,BIGTOP " stuck waiting in line when the
|
|
lions were introduced, you're not certain who is who. You'll have to refer
|
|
to each as the " D ,NIMROD " or the " D ,ELSIE "." CR>
|
|
<STOP>)>>
|
|
|
|
<OBJECT MEAT
|
|
(IN BUCKET)
|
|
(DESC "corpuscular lump of meat")
|
|
(SYNONYM LUMP MEAT FOOD)
|
|
(ADJECTIVE CORPUSCULAR)
|
|
(FLAGS TAKEBIT EATBIT)
|
|
(GENERIC GEN-FOOD)
|
|
(ACTION MEAT-F)>
|
|
|
|
;"RMUNGBIT = eaten by lions"
|
|
|
|
<ROUTINE MEAT-F ()
|
|
<COND (<AND <VERB? TAKE MOVE>
|
|
<IN? ,MEAT ,DEN>>
|
|
<TELL "You'd">
|
|
<TELL-WITHDRAW-STUMP T>)
|
|
(<VERB? EAT>
|
|
<TELL
|
|
"Just looking at the " D ,MEAT " makes you lose your appetite, if not
|
|
your lunch." CR>)
|
|
(<AND <VERB? DROP THROW>
|
|
<PRSO? ,MEAT>
|
|
<EQUAL? ,HERE ,DEN>
|
|
<IN? ,NIMROD ,HERE>>
|
|
<COND (,PRSI
|
|
<TELL ,BAD-AIM ". ">)>
|
|
<FEED-LION T>
|
|
<RTRUE>)>>
|
|
|
|
<OBJECT BUCKET
|
|
(IN ROUST-ROOM)
|
|
(DESC "bucket")
|
|
(SYNONYM BUCKET PAIL)
|
|
(ADJECTIVE STEEL ;GALVANIZ)
|
|
(FLAGS TAKEBIT CONTBIT OPENBIT SEARCHBIT)
|
|
(SIZE 30)
|
|
(CAPACITY 25)
|
|
(ACTION BUCKET-F)>
|
|
|
|
<ROUTINE BUCKET-F ("AUX" (FULL? <>)) ;"ie, full of water"
|
|
<SETG P-IT-OBJECT ,BUCKET>
|
|
<SET FULL? <IN? ,WATER ,BUCKET>>
|
|
<COND (<AND <VERB? TAKE-WITH>
|
|
<PRSO? ,GLOBAL-WATER ,WATER>>
|
|
<PERFORM ,V?FILL ,BUCKET ,GLOBAL-WATER>
|
|
<RTRUE>)
|
|
(<VERB? OPEN CLOSE>
|
|
<V-COUNT>)
|
|
(<AND .FULL?
|
|
<VERB? THROW>>
|
|
<PERFORM ,V?DROP ,WATER>
|
|
<MOVE ,BUCKET ,HERE>
|
|
<RTRUE>)
|
|
(<VERB? STAND-ON>
|
|
<TELL "It wouldn't be a very elevating experience." CR>)
|
|
(<VERB? EXAMINE>
|
|
<TELL "It's made of galvanized steel and ">
|
|
<COND (<FIRST? ,BUCKET>
|
|
<TELL "contains">
|
|
<PRINT-CONTENTS ,BUCKET>)
|
|
(T
|
|
<TELL "there's nothing in it">)>
|
|
<TELL ,PERIOD>)
|
|
(<VERB? LOOK-INSIDE SEARCH EXAMINE>
|
|
<TELL "The bucket ">
|
|
<COND (<NOT <FIRST? ,BUCKET>>
|
|
<TELL "is empty">)
|
|
(T
|
|
<TELL "contains">
|
|
<COND (.FULL?
|
|
<TELL " a limpid pool of " D ,WATER>)
|
|
(T
|
|
<PRINT-CONTENTS ,BUCKET>)>)>
|
|
<TELL ,PERIOD>
|
|
<RTRUE>)
|
|
(<VERB? DRINK DRINK-FROM>
|
|
<COND (.FULL?
|
|
<PERFORM ,V?DRINK ,WATER>)
|
|
(T
|
|
<EMPTY-BUCKET>)>
|
|
<RTRUE>)
|
|
(<VERB? POUR EMPTY>
|
|
<COND (.FULL?
|
|
<PERFORM ,V?POUR ,WATER>)
|
|
(T
|
|
<EMPTY-BUCKET>)>
|
|
<RTRUE>)
|
|
(<AND <VERB? PUT>
|
|
<EQUAL? ,PRSI ,BUCKET>
|
|
<NOT <PRSO? ,WATER>>
|
|
.FULL?>
|
|
<TELL "But">
|
|
<ARTICLE ,PRSO T>
|
|
<TELL " would get all wet." CR>
|
|
<RTRUE>)
|
|
(<AND <VERB? PUT>
|
|
<PRSI? ,BUCKET>
|
|
<G? <- <+ <WEIGHT ,PRSI> <GETP ,PRSO ,P?SIZE>>
|
|
<GETP ,PRSI ,P?SIZE>>
|
|
<GETP ,PRSI ,P?CAPACITY>>>
|
|
<RFALSE>)
|
|
(<AND <VERB? PUT>
|
|
<OR <AND <PRSO? ,CHEESE>
|
|
<IN? ,MOUSE ,BUCKET>>
|
|
<AND <PRSO? ,MOUSE>
|
|
<IN? ,CHEESE ,BUCKET>>>>
|
|
<MOVE ,MOUSE ,BUCKET>
|
|
<TELL "Done. ">
|
|
<FEED-MOUSE>
|
|
<RTRUE>)>>
|
|
|
|
;"of non-water objects"
|
|
<ROUTINE EMPTY-BUCKET ("AUX" OBJ)
|
|
<COND (<SET OBJ <FIRST? ,BUCKET>>
|
|
<COND (<VERB? DRINK-FROM>
|
|
<PERFORM ,V?DRINK .OBJ>
|
|
<RTRUE>)
|
|
(T ;"verbs empty, pour"
|
|
<COND (<NEXT? .OBJ>
|
|
<TELL "The contents of the " D ,BUCKET " fall">)
|
|
(T
|
|
<TELL "Okay,">
|
|
<ARTICLE .OBJ T>
|
|
<TELL " falls">)>
|
|
<TELL " out of it." CR>
|
|
<COND (<AND <EQUAL? ,HERE ,DEN>
|
|
<IN? ,NIMROD ,HERE>
|
|
<IN? ,MEAT ,BUCKET>>
|
|
<PERFORM ,V?GIVE ,MEAT ,NIMROD>)
|
|
(<IN? ,MOUSE ,BUCKET>
|
|
<MOVE ,MOUSE ,LOCAL-GLOBALS>
|
|
<SCAMPER>)>
|
|
<ROB ,BUCKET ,HERE>
|
|
<RTRUE>)>)
|
|
(T
|
|
<TELL ,EMPTY ,PERIOD>)>>
|
|
|
|
<ROUTINE NOT-HOLDING-WATER? ()
|
|
<COND (<NOT <IN? ,WATER ,BUCKET>>
|
|
<TELL "You're not carrying any water." CR>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<OBJECT WATER
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "water")
|
|
(SYNONYM WATER ;LIQUID DRINK)
|
|
;(ADJECTIVE COOL)
|
|
(FLAGS TAKEBIT NARTICLEBIT)
|
|
(ACTION WATER-F)>
|
|
|
|
<ROUTINE WATER-F ()
|
|
<COND (<VERB? DRINK DRINK-FROM TASTE>
|
|
<COND (<NOT-HOLDING-WATER?>
|
|
<RTRUE>)
|
|
(T
|
|
<TELL "You take a sip of the cool water." CR>)>)
|
|
(<AND <VERB? THROW DROP EMPTY TAKE PUT-ON PUT POUR>
|
|
<PRSO? ,WATER>>
|
|
<COND (<NOT-HOLDING-WATER?>
|
|
<RTRUE>)
|
|
(T
|
|
<MOVE ,WATER ,LOCAL-GLOBALS>
|
|
<COND (<AND ,PRSI
|
|
<NOT <EQUAL? ,PRSI ,TAFT>>
|
|
<FSET? ,PRSI ,ACTORBIT>>
|
|
<COND (<EQUAL? ,PRSI ,FAT>
|
|
<TELL "Tina stays mostly dry." CR>
|
|
<RTRUE>)>
|
|
<COND (<NOT <AND ,PRSI
|
|
,END-GAME
|
|
<PRSI? ,APE>>>
|
|
<TELL "Deftly,">
|
|
<ARTICLE ,PRSI T>
|
|
<TELL " sidesteps your splashing. ">)>)>
|
|
<TELL
|
|
"The " D ,WATER " explodes into a zillion sparkling droplets that immediately
|
|
evaporate">
|
|
<TELL ,PERIOD>)>)
|
|
(<AND <VERB? PUT PUT-ON>
|
|
<PRSI? ,WATER>
|
|
<IN? ,WATER ,BUCKET>>
|
|
<PERFORM ,V?PUT ,PRSO ,BUCKET>
|
|
<RTRUE>)
|
|
(<AND <VERB? FEED GIVE>
|
|
<EQUAL? ,PRSO ,WATER>
|
|
<FSET? ,PRSI ,ACTORBIT>>
|
|
<PERFORM ,V?POUR ,WATER>
|
|
<RTRUE>)
|
|
(T
|
|
<RFALSE>)>>
|
|
|
|
<OBJECT WHIP
|
|
(IN BAGGAGE-COMPARTMENT)
|
|
(DESC "rawhide bullwhip")
|
|
(SYNONYM BULLWHIP WHIP)
|
|
(ADJECTIVE RAWHIDE BULL)
|
|
(FLAGS TAKEBIT)
|
|
(SIZE 10)
|
|
(ACTION WHIP-F)>
|
|
|
|
<ROUTINE WHIP-F ()
|
|
<COND (<AND <VERB? WHIP>
|
|
<PRSI? ,WHIP>>
|
|
<COND (<PRSO? ,WHIP>
|
|
<V-COUNT>)
|
|
(<PRSO? ,GROUND>
|
|
<V-DIG>)>)>>
|
|
|
|
<OBJECT LION-DOOR
|
|
(IN LOCAL-GLOBALS)
|
|
(DESC "cage door")
|
|
(SYNONYM DOOR GATE LOCK)
|
|
(ADJECTIVE ;ROUND CAGE)
|
|
(FLAGS DOORBIT NDESCBIT LOCKEDBIT CAGEBIT)
|
|
(ACTION LION-DOOR-F)>
|
|
|
|
<ROUTINE LION-DOOR-F ()
|
|
<COND (<AND <VERB? PUT>
|
|
<FSET? ,LION-DOOR ,OPENBIT>
|
|
<PRSO? ,MEAT>>
|
|
<PERFORM ,V?PUT ,MEAT ,LION-CAGE>
|
|
<RTRUE>)>> |