shogun/voyage.zil

2058 lines
64 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.

"VOYAGE for
SHOGUN
(c) Copyright 1988 Infocom, Inc. All Rights Reserved."
<FILE-FLAGS SENTENCE-ENDS?>
<BEGIN-SEGMENT VOYAGE>
<CONSTANT J-PILING 60>
<ROUTINE HIRO-MATSU-REFUSES ()
<TELL
"\""I"Iye!""\" Hiro-matsu shakes his head, and speaks at length clearly
refusing permission because of the danger." CR>>
<ROUTINE YABU-BOARDS-SKIFF ()
<QUEUE I-SKIFF -1>
<MOVE ,HIRO-MATSU ,GENERIC-OBJECTS>
<MOVE ,YABU ,SKIFF>
<MOVE ,SEARCH-PARTY ,SKIFF>
<MOVE ,OARS ,SKIFF>
<FSET ,OARS ,TAKEBIT>
<TELL
"This time the old man points his sword at the skiff and shakes his
head. He and Yabu begin an animated discussion in Japanese, motioning
the mate over to join them. Hiro-matsu studies the coast for a
while. Finally, he beckons a samurai, points to you, and gives some apparent
instructions. The samurai and six other warriors clamber nimbly into
the skiff, and to your surprise, so does Yabu!|
|
Hiro-matsu points to the skiff, bows politely to you, and then goes
below." CR>
<SCORE-OBJECT ,SKIFF>>
<ROUTINE I-SKIFF ()
<ZLINES ,SKIFF-CNT
(DELAY
<COND (<NOT <IN? ,BLACKTHORNE ,SKIFF>>
<COND (<G? ,DELAY-CNT 2>
<MOVE ,BLACKTHORNE ,SKIFF>
<TELL CR
"Yabu barks orders, and you are pitched headlong into the skiff." CR>)
(ELSE
<TELL CR
"Yabu motions for you to get in the skiff." CR>)>)>)
(<DEQUEUE I-SKIFF>
<RFALSE>)>>
<ROOM IN-THE-SEA
(LOC ROOMS)
(DESC "In the Sea")
(SYNONYM SEA)
(LDESC
"You are in the raging sea between the galley and the rocky,
wave-tormented shore.")
(FLAGS ONBIT OUTSIDE)
(GLOBAL LG-SEA LG-LAND LG-BAY LG-RODRIGUES)
(GENERIC GENERIC-SEA-F)
(ACTION IN-THE-SEA-F)>
<ROUTINE IN-THE-SEA-F (RARG)
<COND (<RARG? ENTER>
<COND (<NOT <IN? ,WINNER ,SKIFF>>
<QUEUE I-DROWN 5>
<TELL
"You execute a perfect dive into the sea." CR CR>)
(ELSE
<COND (<IN? ,YABU ,SKIFF> <FSET ,YABU ,NDESCBIT>)>
<COND (<IN? ,SEARCH-PARTY ,SKIFF>
<FSET ,SEARCH-PARTY ,NDESCBIT>)>
<RFALSE>)>)
(<RARG? LEAVE>
<COND (<IN? ,YABU ,SKIFF> <FCLEAR ,YABU ,NDESCBIT>)>
<COND (<IN? ,SEARCH-PARTY ,SKIFF>
<FCLEAR ,SEARCH-PARTY ,NDESCBIT>)>
<RFALSE>)
(<RARG? BEG>
<COND (<AND <P? (HELLO ASK-ABOUT TELL) RODRIGUES>
<IN? ,RODRIGUES ,HERE>>
<COND (<IN? ,OAR ,RODRIGUES>
<TELL
"\"Are you crazy, Ingeles?\"" CR>)
(ELSE
<TELL "He's drowning!" CR>)>
<COND (<VERB? TELL> <END-QUOTE> <RFATAL>)
(ELSE <RTRUE>)>)
(<VERB? DIVE>
<TELL
"You dive beneath the surface, but find nothing of interest." CR>)
(<AND <VERB? DROP>
<HELD? ,PRSO>>
<REMOVE ,PRSO>
<TELL "Gone forever, beneath the waves." CR>)
(<VERB? SWIM DANCE HIDE-BEHIND HIDE-UNDER>
<TELL "You try desperately to stay afloat." CR>)
(<P? (THROUGH WALK-TO) LG-LAND>
<TELL
"That would be suicide. You would be pulped on the rocks!" CR>)
(<AND <OR <P? (WALK-TO BOARD CLIMB-ON CLIMB-FOO)
(LG-GALLEY ROOMS)>
<P? (DROP EXIT) LG-SEA>>
<NOT <IN? ,WINNER ,SKIFF>>>
<TELL
"The storm has carried you further towards the rocks, and you fight
the current, trying to get back, but it's hopeless. They'll have to
fend for themselves." CR>)
(<AND <P? (HELP TAKE WALK-TO) (LG-RODRIGUES RODRIGUES)>
<IN? ,RODRIGUES ,HERE>>
<TELL
"Here among the waves it's not as obvious where Rodrigues is, but
you swim toward where you last saw him. ">
<COND (<NOT <FSET? ,OAR ,SCOREBIT>>
<FCLEAR ,RODRIGUES ,INVISIBLE>
<TELL
"There he is! He's clinging to a broken oar! You stroke towards him
and at last, fighting the sea, you reach him. He's wet but alive. \"By
the Virgin, Ingeles!\" he chokes. \"Who's conning the galley!\"" CR>)
(ELSE
<TELL
"You search for as long as your strength holds, but you find no sign
of him." CR>)>)>)>>
<ROUTINE I-DROWN ()
<TELL CR
"At last, your strength gives out. You are still not fully recovered
from the voyage to Japan. You can swim but not forever. You sink beneath
the waves." CR>
<JIGS-UP>>
<OBJECT LG-GALLEY
(LOC IN-THE-SEA)
(DESC "galley")
(OWNER TORANAGA)
(SYNONYM GALLEY BOAT SHIP)
(FLAGS VEHBIT)
(DESCFCN LG-GALLEY-DESC)
(GENERIC GENERIC-GALLEY-F)
(ACTION LG-GALLEY-F)>
<ROUTINE LG-GALLEY-DESC (RARG OBJ)
<COND (<RARG? OBJDESC?> <RTRUE>)
(ELSE
<COND (,GALLEY-IN-BAY?
<TELL
"The galley rides heavily ">
<COND (<NOT <FSET? ,ANCHOR ,SCOREBIT>>
<TELL "at anchor ">)>
<TELL "on the relatively gentle swells
of the bay.">)
(ELSE
<TELL
"Riding the waves like a fat-bellied pig, the overladen galley appears
and disappears in the troughs of the waves.">)>)>>
<ROUTINE LG-GALLEY-F ()
<COND (<VERB? ENTER BOARD CLIMB-FOO CLIMB-ON>
<COND (<HERE? ,WHARF>
<DO-WALK ,P?EAST>)
(<HERE? ,GALLEY ,MAIN-DECK ,MAIN-DECK-2>
<TELL G"You already are." CR>)
(ELSE
<TELL
"The galley isn't here." CR>)>)
(<VERB? TURN>
<COND (<HERE? ,GALLEY>
<PERFORM ,V?TURN ,WHEEL ,PRSI>
<RTRUE>)
(<HERE? ,MAIN-DECK>
<ARENT-WHERE-PRSO-IS>
<COND (<IN? ,RODRIGUES ,GALLEY>
<FRUSTRATED ,RODRIGUES>)>
<CRLF>)
(ELSE
<TELL "You aren't on the galley." CR>)>)>>
<ROUTINE FRUSTRATED (WHO)
<TELL " Frustrated, you yell
the command to " D .WHO ", but realize that he can't hear you above the
storm." CR>>
<ROUTINE DRESS-BLACKTHORNE ("OPT" (EUROPEAN? <>))
<COND (.EUROPEAN?
<MOVE ,CLOTHES ,BLACKTHORNE>
<FSET ,CLOTHES ,WEARBIT>
<MOVE ,BOOTS ,BLACKTHORNE>
<FSET ,BOOTS ,WEARBIT>)
(ELSE
<COND (<AND <G? ,SCENE ,S-JOURNEY>
<LOC ,DICTIONARY>>
<MOVE ,DICTIONARY ,BLACKTHORNE>)>
<MOVE ,SOCKS ,BLACKTHORNE>
<FSET ,SOCKS ,WEARBIT>
<MOVE ,SANDALS ,BLACKTHORNE>
<FSET ,SANDALS ,WEARBIT>
<MOVE ,KIMONO ,BLACKTHORNE>
<FSET ,KIMONO ,WEARBIT>)>>
<ROOM GALLEY
(LOC ROOMS)
(SCENE S-VOYAGE)
(DESC "Toranaga's Galley")
(SYNONYM GALLEY)
(OWNER TORANAGA)
(SCORE 11)
(FDESC
"It is near noon and you are standing on the quarterdeck of the galley
under an overcast sky. During the first night the galley had sped
southward down the east coast of the Izu peninsula. When it came abreast
of the southmost cape, Cape Ito, Rodrigues had set the course West South
West and had left the safety of the coast for the open sea, heading for
a landfall at Cape Shinto two hundred miles away.|
|
\"What do you think, Ingeles?\" asks Rodrigues.|
\"I think there'll be a storm,\" you reply.|
\"When?\"|
\"Before sunset\" you answer.|
|
The storm comes before sunset and catches you out to sea. Land is
ten miles away.")
(AFTER VOYAGE-AFTER-F)
(FORE TO MAIN-DECK)
(DOWN TO MAIN-DECK)
(FLAGS ONBIT OUTSIDE)
(GLOBAL LG-GALLEY CREWMEN LG-RODRIGUES LG-SEA
LG-LAND LG-BAY ANCHOR)
(GENERIC GENERIC-GALLEY-F)
(ACTION GALLEY-F)>
<ROUTINE GALLEY-F (RARG)
<COND (<RARG? SCENE-SETUP>
<DRESS-BLACKTHORNE T>
<PUTP ,BLACKTHORNE ,P?HEALTH 4>
<PUT-ON ,SLIPPERS ,YABU>
<PUT-ON ,YABU-KIMONO ,YABU>
<PUT-ON ,YABU-SWORDS ,YABU>
<MOVE ,SAFETY-LINE ,BLACKTHORNE>
<FSET ,SAFETY-LINE ,WEARBIT>
<MOVE ,RODRIGUES ,HERE>
<NEW-SDESC ,RODRIGUES "Rodrigues">
<QUEUE I-RODRIGUES -1>)
(<RARG? LOOK>
<TELL
"You are standing on the quarterdeck of Toranaga's galley, with a good
view forward to the oar deck." CR>)
(<RARG? LEAVE>
<FCLEAR ,GALLEY-WHEEL ,ONBIT>)
(<RARG? BEG>
<COND (<VERB? WALK>
<COND (<FSET? ,SAFETY-LINE ,WEARBIT>
<TELL
,YOU-HAVE-TO G"untie your safety line first"", even though you know that
without it you could easily be carried overboard." CR>)>)
(<P? UNTIE ME>
<PERFORM ,V?UNTIE ,SAFETY-LINE>
<RTRUE>)
(<P? ROW <>>
<TELL "The oars aren't here. They're forward on
the main deck." CR>)
(<P? TURN INTDIR>
<PERFORM ,V?TURN ,GALLEY-WHEEL ,INTDIR>
<RTRUE>)
(<AND <VERB? TURN-TOWARD TURN-AWAY>
<NOT <PRSO? ,GALLEY-WHEEL>>>
<PERFORM ,PRSA ,GALLEY-WHEEL ,PRSO>
<RTRUE>)
(<P? POINT (LG-BAY LG-LAND)>
<SETG WINNER ,OARSMEN>
<PERFORM ,V?POINT ,PRSO>
<SETG WINNER ,PLAYER>
<RTRUE>)
(<P? BOARD LG-SEA>
<COND (<FSET? ,SAFETY-LINE ,WEARBIT>
<TELL
,YOU-HAVE-TO G"untie your safety line first""." CR>)
(<NOT <FSET? ,LIFE-RING ,WEARBIT>>
<TELL
G"You would surely drown." CR>)>)>)>>
<OBJECT GALLEY-WHEEL
(LOC GALLEY)
(SCENE S-VOYAGE)
(OWNER GALLEY)
(DESC "helm")
(SYNONYM WHEEL RUDDER HELM TILLER)
(FLAGS CANT-HOLD)
(DESCFCN GALLEY-WHEEL-DESC)
(ACTION GALLEY-WHEEL-F)>
<ROUTINE GALLEY-WHEEL-DESC (RARG OBJ)
<COND (<RARG? OBJDESC?> <RTRUE>)
(<RARG? OBJDESC>
<TELL "The helm is here, turned ">
<COND (<EQUAL? ,SHIP-COURSE ,P?PORT> <TELL "to port">)
(<EQUAL? ,SHIP-COURSE ,P?STARBOARD>
<TELL "to starboard">)
(ELSE <TELL "straight">)>
<TELL " now.">
<COND (<OR <FSET? ,SAFETY-LINE ,WEARBIT>
<FSET? ,GALLEY-WHEEL ,ONBIT>>
<COND (<FSET? ,GALLEY-WHEEL ,ONBIT>
<TELL " You have the helm">
<COND (<FSET? ,SAFETY-LINE ,WEARBIT>
<TELL " and a ">)>)
(<FSET? ,SAFETY-LINE ,WEARBIT>
<TELL " The ">)>
<COND (<FSET? ,SAFETY-LINE ,WEARBIT>
<TELL
"life line secures you as the deck pitches and rolls.">)
(ELSE
<TELL
". There is a life line lashed to the binnacle.">)>)>)>>
<ROUTINE GALLEY-WHEEL-F ()
<COND (<VERB? EXAMINE>
<TELL
"The helm steers the ship. The galley is steering ">
<COND (<EQUAL? ,SHIP-COURSE ,P?PORT>
<TELL "south toward the open sea." CR>)
(ELSE <TELL "toward the bay." CR>)>)
(<VERB? TAKE>
<COND (<FSET? ,GALLEY-WHEEL ,ONBIT>
<TELL "You already have it!" CR>)
(ELSE
<FSET ,GALLEY-WHEEL ,ONBIT>
<TELL
"You take the helm." CR>)>)
(<VERB? DROP>
<COND (<NOT <FSET? ,GALLEY-WHEEL ,ONBIT>>
<YOU-ARENT-HOLDING>)
(ELSE
<FCLEAR ,GALLEY-WHEEL ,ONBIT>
<TELL
"You release the helm.">
<COND (<IN? ,RODRIGUES ,HERE>
<TELL
" Rodrigues takes it.">)>
<CRLF>)>)
(<P? STRAIGHTEN GALLEY-WHEEL>
<SETG P-DIRECTION ,P?FORE>
<PERFORM ,V?TURN ,GALLEY-WHEEL ,INTDIR>
<RTRUE>)
(<P? TURN-TOWARD GALLEY-WHEEL>
<COND (<PRSI? ,LG-BAY ,LG-LAND>
<SETG P-DIRECTION ,P?STARBOARD>
<PERFORM ,V?TURN ,PRSO ,INTDIR>
<RTRUE>)
(<PRSI? ,LG-SEA>
<SETG P-DIRECTION ,P?PORT>
<PERFORM ,V?TURN ,PRSO ,INTDIR>
<RTRUE>)>)
(<P? TURN-AWAY GALLEY-WHEEL>
<COND (<PRSI? ,LG-BAY ,LG-LAND>
<SETG P-DIRECTION ,P?PORT>
<PERFORM ,V?TURN ,PRSO ,INTDIR>
<RTRUE>)
(<PRSI? ,LG-SEA>
<SETG P-DIRECTION ,P?STARBOARD>
<PERFORM ,V?TURN ,PRSO ,INTDIR>
<RTRUE>)>)
(<P? TURN GALLEY-WHEEL>
<COND (<NOT <FSET? ,ANCHOR ,SCOREBIT>>
<TELL
"The galley is anchored safely in the bay. Turning the wheel is a
waste of time." CR>)
(<NOT <FSET? ,GALLEY-WHEEL ,ONBIT>>
<YOU-ARENT-HOLDING>)
(<PRSI? ,INTDIR>
<COND (<EQUAL? ,P-DIRECTION ,P?PORT ,P?SOUTH>
<SETG SHIP-COURSE ,P?PORT>
<SETG SHIP-DIRECTION ,P?SOUTH>
<TELL
"You turn to wheel to port, steering the galley out to sea, running
with the wind." CR>)
(<EQUAL? ,P-DIRECTION ,P?STARBOARD ,P?WEST>
<SETG SHIP-COURSE ,P?STARBOARD>
<SETG SHIP-DIRECTION ,P?WEST>
<TELL
"You turn the wheel to starboard, steering for the bay." CR>)
(<EQUAL? ,P-DIRECTION ,P?FORE ,P?IN>
<SETG SHIP-COURSE ,P?FORE>
<TELL
"You try to hold a steady course." CR>)
(ELSE
<TELL
"You can't steer the galley in that direction!" CR>)>)
(ELSE
<TELL G"You must specify a direction!" CR>)>)>>
<OBJECT SAFETY-LINE
(LOC GALLEY)
(SCENE S-VOYAGE)
(DESC "safety line")
(SYNONYM LINE LIFELINE ROPE)
(ADJECTIVE SAFETY LIFE)
(FLAGS OPENABLE WEARABLE)
(ACTION SAFETY-LINE-F)>
<ROUTINE SAFETY-LINE-F ()
<COND (<OR <P? (THROW GIVE) * LG-RODRIGUES>
<P? TURN * LG-RODRIGUES>
<P? REACH-FOR LG-RODRIGUES>>
<TELL
"It's much too short." CR>)
(<AND <P? TIE * SAFETY-LINE>
<NOT <PRSO? ,SAFETY-LINE>>>
<PERFORM ,PRSA ,SAFETY-LINE ,PRSO>
<RTRUE>)
(<AND <P? TIE SAFETY-LINE>
<NOT <PRSI? <> ,ME ,BLACKTHORNE>>>
<COND (<PRSI? ,RODRIGUES>
<TELL
"\"Lifelines, Ingeles? Have you no "I"cojones""?\"" CR>)
(<PRSI? ,SAFETY-LINE>
<TELL
"Tying the safety line to itself would be foolish." CR>)
(ELSE
<TELL
"You can't tie the safety line to that." CR>)>)
(<VERB? UNTIE TAKE-OFF DROP>
<COND (<FSET? ,SAFETY-LINE ,WEARBIT>
<MOVE ,SAFETY-LINE ,GALLEY>
<FCLEAR ,SAFETY-LINE ,WEARBIT>
<TELL
"You untie the line.">
<COND (<FSET? ,ANCHOR ,SCOREBIT>
<TELL
" You know that without your lifeline you can easily be carried overboard.">
<COND (<FSET? ,OARSMEN ,SCOREBIT>
<TELL
" But the oars have to be shipped or you are lost.">)>)>
<CRLF>)
(ELSE
<TELL
"You're already untied!" CR>)>)
(<VERB? TIE WEAR TAKE>
<COND (<NOT <FSET? ,SAFETY-LINE ,WEARBIT>>
<MOVE ,SAFETY-LINE ,WINNER>
<FSET ,SAFETY-LINE ,WEARBIT>
<TELL
"You gratefully return to the safety of the line." CR>)
(ELSE
<TELL
"You're already tied as securely as possible." CR>)>)>>
<ROOM MAIN-DECK
(SCENE S-VOYAGE)
(LOC ROOMS)
(DESC "Main Deck")
(SYNONYM DECK)
(ADJECTIVE MAIN)
(AFT TO GALLEY)
(UP TO GALLEY)
(DOWN SORRY "There's nothing of interest below decks.")
(FLAGS ONBIT OUTSIDE SCOREBIT)
(GLOBAL LG-GALLEY LG-SEA LG-LAND LG-BAY LG-RODRIGUES)
(GENERIC GENERIC-DECK-F)
(ACTION MAIN-DECK-F)>
<ROUTINE MAIN-DECK-F (RARG)
<COND (<RARG? LOOK>
<TELL
G"This is the oar deck of the galley, forward of the quarterdeck. ">
<COND (<NOT <FSET? ,ANCHOR ,SCOREBIT>>
<TELL
"The rowers are resting after their ordeal, exhausted but proud of
their victory over the sea." CR>)
(<NOT <FSET? ,MAIN-DECK ,SCOREBIT>>
<TELL
"Banks of twenty rowers are to each side, disciplined, trained samurai. ">
<COND (<NOT <FSET? ,OARSMEN ,SCOREBIT>>
<TELL "They row steadily, urged on by the
beat of a drum." CR>)
(ELSE
<TELL
"They wait patiently for their next order." CR>)>)
(ELSE
<TELL "The chaos here is incredible. Half the
oars are flailing in the air, some of the oarsmen have been washed
overboard, and some have slipped their safety lines to try to fight
order into their oars." CR>)>)
(<RARG? ENTER>
<COND (<NOT <FSET? ,ANCHOR ,SCOREBIT>>
<TELL
"You make your way forward">)
(ELSE
<TELL
"You fight your way forward along the heaving, greasy deck,">)>
<TELL " down the short gangway to the main deck.">
<CRLF> <CRLF>)
(<RARG? BEG>
<COND (<P? (CLIMB-FOO HOLD-ON) ROOMS>
<COND (<NOT ,GOT-GUNWALE?>
<PERFORM ,V?TAKE ,GUNWALE>
<RTRUE>)
(ELSE
<TELL
"You have returned to the relative security of the deck." CR>)>)
(<AND <FSET? ,GUNWALE ,RMUNGBIT>
<NOT ,GOT-GUNWALE?>>
<COND (<VERB? WALK WALK-TO>
<TELL
"You can't walk while being swept overboard!" CR>)
(<AND <NOT <GAME-VERB?>>
<NOT <VERB? TAKE BOARD SWIM HOLD HOLD-ON>>>
<TELL
"Your preoccupations are unusual for someone who is being swept
overboard in the middle of the ocean." CR>)>)
(<P? TAKE-OFF LG-GALLEY>
<DO-WALK ,P?DOWN>)
(<AND <P? WALK DOWN>
<FSET? ,SKIFF ,RMUNGBIT>>
<PERFORM ,V?BOARD ,SKIFF>
<RTRUE>)
(<P? BOARD LG-SEA>
<TELL
G"You would surely drown." CR>)
(<P? (ROW WALK-TO) <>>
<COND (<FSET? ,MAIN-DECK ,SCOREBIT>
<PERFORM ,V?HELP ,OARSMEN>
<RTRUE>)
(ELSE
<SETG WINNER ,OARSMEN>
<PERFORM ,PRSA ,PRSO ,PRSI>
<SETG WINNER ,PLAYER>
<RTRUE>)>)>)>>
<OBJECT SKIFF
(LOC MAIN-DECK)
(SCENE S-VOYAGE)
(DESC "skiff")
(SYNONYM SKIFF BOAT)
(FLAGS TAKEBIT VEHBIT OPENBIT CONTBIT SEARCHBIT SCOREBIT)
(COUNT 0)
(SIZE 200)
(CAPACITY 200)
(DESCFCN SKIFF-DESC)
(ACTION SKIFF-F)>
<ROUTINE SKIFF-DESC (RARG OBJ)
<COND (<RARG? OBJDESC?> <RTRUE>)
(<RARG? OBJDESC>
<COND (<FSET? ,SKIFF ,RMUNGBIT>
<TELL "The skiff ">
<COND (<HERE? ,PEBBLED-BEACH>
<TELL
"has been pulled up onto the rocky beach.">)
(ELSE
<TELL
"rides lightly beside the galley.">)>)
(<HERE? ,PEBBLED-BEACH>
<TELL
"The skiff rests on its side on the rocky beach.">)
(ELSE
<TELL
"A skiff is tied to the deck near the centerline of the galley.">)>
<RFATAL>)>>
<ROUTINE SKIFF-F ("OPT" (RARG <>) "AUX" TRIES)
<COND (<RARG? LOOK>
<COND (<HERE? ,IN-THE-SEA>
<TELL
"The skiff rides lightly in the relatively gentle swells of the bay.">
<COND (<AND <IN? ,YABU ,SKIFF>
<IN? ,SEARCH-PARTY ,SKIFF>>
<TELL
" Yabu sits imperiously in the bow, and the search party mans the oars.">)>
<CRLF>
<RTRUE>)>)
(<RARG? BEG>
<COND (<HERE? IN-THE-SEA>
<COND (<AND <VERB? BOARD WALK-TO CLIMB-FOO>
<PRSO? ,GALLEY>>
<MOVE ,WINNER ,HERE>
<GOTO ,MAIN-DECK>)
(<VERB? DISEMBARK>
<PERFORM ,V?LEAP ,LG-SEA>
<RTRUE>)
(<OR <VERB? WALK>
<P? WALK-TO (LG-LAND LG-BAY LG-GALLEY)>>
<COND (<OR <P? WALK ,P?EAST>
<P? WALK-TO ,LG-LAND>>
<TELL
"The rowers look to Yabu for confirmation, and he nods impatiently.">)
(ELSE
<TELL
"Yabu points to the shore instead, indicating the direction for the
rowers to go.">)>
<CRLF>
<CRLF>
<GOTO ,PEBBLED-BEACH>)>)
(<HERE? PEBBLED-BEACH>
<COND (<OR <VERB? DISEMBARK>
<P? WALK P?OUT>>
<COND (<NOT ,SEARCHED?>
<SETG SEARCHED? T>
<MOVE ,BLACKTHORNE ,HERE>
<MOVE ,YABU ,HERE>
<TELL
"You disembark quickly, intending to lead the search party, but Yabu
usurps that position and will not yield it." CR>)
(ELSE
<TELL
"The samurai hold you back; it's apparent that Yabu feels you've had
your chance to find Rodrigues, and now it's time to head back to the
galley." CR>)>)
(<OR <P? WALK ,P?WEST>
<P? WALK-TO (GALLEY LG-GALLEY)>>
<TELL
"You are rowed back to the galley, having failed to find Rodrigues." CR>
<FAILED-SCENE>)
(<VERB? WALK WALK-TO>
<PERFORM ,V?DISEMBARK>
<RTRUE>)>)>)
(<RARG? <>>
<COND (<VERB? EXAMINE>
<TELL
"It's a wooden skiff, pointed at bow and stern. ">
<COND (<IN? ,SEARCH-PARTY ,SKIFF>
<TELL "In the skiff are ">
<WHAT-CONTENTS>)
(ELSE
<TELL "It's big enough to
hold quite a few men." CR>)>)
(<VERB? TAKE>
<TELL
"It's much to heavy for you to carry." CR>)
(<VERB? BOARD>
<COND (<HERE? ,PEBBLED-BEACH>
<MOVE ,YABU ,SKIFF>
<MOVE ,SEARCH-PARTY ,SKIFF>
<MOVE ,PLAYER ,SKIFF>
<TELL
"You board the skiff, and the rest of the shore party follows." CR>)
(<FSET? ,SKIFF ,RMUNGBIT>
<SET TRIES <GETP ,SKIFF ,P?COUNT>>
<PUTP ,SKIFF ,P?COUNT <+ .TRIES 1>>
<COND (<ZERO? .TRIES>
<TELL
"You go to the gunwale and begin to scale down the side but a harsh
voice stops you. Hiro-matsu is here, with Yabu beside him. ">
<HIRO-MATSU-REFUSES>)
(<EQUAL? .TRIES 1>
<YABU-BOARDS-SKIFF>)
(ELSE
<MOVE ,BLACKTHORNE ,SKIFF>
<TELL
"You climb down the side of the galley, joining the others in the
skiff." CR CR>
<GOTO ,IN-THE-SEA>)>)
(ELSE
<TELL
G"It would be a good trick, and somewhat amusing, to get into a boat
while it's still on deck, but not a good idea." CR>)>)
(<VERB? LOOK-INSIDE>
<COND (<AND <IN? ,YABU ,SKIFF>
<IN? ,SEARCH-PARTY ,SKIFF>>
<TELL
"In the skiff is the search party of seven samurai, ready at the oars, and
Yabu, who looks very pleased with himself." CR>)>)
(<VERB? UNTIE>
<COND (<NOT <FSET? ,ANCHOR ,SCOREBIT>>
<COND (<NOT <FSET? ,SKIFF ,RMUNGBIT>>
<FSET ,SKIFF ,RMUNGBIT>
<MOVE ,BOAT-OAR ,SKIFF>
<TELL
"You untie the skiff, preparing to launch it." CR>)
(ELSE
<TELL
"It's already untied." CR>)>)
(ELSE
<TELL
"In this gale, any object that isn't tied down is a deadly
missile." CR>)>)
(<VERB? LAUNCH LOWER>
<COND (,GALLEY-IN-BAY?
<COND (<FSET? ,ANCHOR ,SCOREBIT>
<TELL
"The galley is still being washed to and fro. It's too dangerous." CR>)
(<NOT <FSET? ,SKIFF ,RMUNGBIT>>
<FSET ,SKIFF ,RMUNGBIT>
<MOVE ,BOAT-OAR ,SKIFF>
<TELL "The skiff is ">
<COND (<HERE? ,MAIN-DECK ,GALLEY>
<TELL
"lowered into the water." CR>)
(ELSE
<TELL
"pushed out into the surf." CR>)>)
(ELSE
<TELL "It's already ">
<COND (<HERE? ,MAIN-DECK ,GALLEY>
<TELL
"riding the waves beside the galley." CR>)
(ELSE
<TELL
"waiting in the nearby surf." CR>)>)>)
(ELSE
<TELL
"You can't launch it alone, and in this gale, no one is going to
help you." CR>)>)>)>>
<GLOBAL SEARCHED? <>>
<OBJECT ANCHOR
(LOC MAIN-DECK)
(SCENE S-VOYAGE)
(DESC "anchor")
(SYNONYM ANCHOR)
(SIZE 200)
(FLAGS AN TAKEBIT SCOREBIT)
(ACTION ANCHOR-F)>
<ROUTINE ANCHOR-F ()
<COND (<AND <VERB? TAKE>
<FSET? ,GUNWALE ,RMUNGBIT>>
<TELL "It's too far away." CR>)
(<VERB? DROP THROW THROW-OFF PUT LOWER PUSH MOVE>
<COND (<NOT ,GALLEY-IN-BAY?>
<TELL
"You can't drop anchor until you are safely in the bay!" CR>)
(<FSET? ,ANCHOR ,SCOREBIT>
<FSET ,ANCHOR ,NDESCBIT>
<QUEUE I-ALL-ON-DECK 1>
<TELL
"\"Let go the anchor!\" No one understands your words but they all know
what you want. The anchor splashes over the side. You let the ship fall
off the wind slightly to test the firmness of the seabed. The ship is
safe." CR>
<SCORE-OBJECT ,ANCHOR>)
(ELSE
<TELL G"It already is." CR>)>)
(<VERB? RAISE>
<COND (<FSET? ,ANCHOR ,SCOREBIT>
<TELL G"It already is." CR>)
(<FSET? ,ANCHOR ,NDESCBIT>
<TELL
"What a dangerous idea! You would be swept onto the rocks." CR>)>)>>
<ROUTINE I-ALL-ON-DECK ()
<MOVE ,HIRO-MATSU ,MAIN-DECK>
<MOVE ,YABU ,MAIN-DECK>
<TELL CR
"Hiro-matsu and Yabu climb shakily up from below decks, both somewhat
seasick, but once there, both "I"daimyos"" stand erect." CR>>
<OBJECT OARS
(LOC MAIN-DECK)
(DESC "oars")
(SYNONYM OARS OAR)
(FLAGS NDESCBIT)
(ACTION OARS-F)>
<ROUTINE OARS-F ()
<COND (<AND <VERB? SHIP SORT POINT TAKE ROW WALK-TO>
<NOT <IN? ,WINNER ,SKIFF>>>
<PERFORM ,V?HELP ,OARSMEN>
<RTRUE>)>>
<OBJECT OARSMEN
(SCENE S-VOYAGE)
(LOC MAIN-DECK)
(DESC "oarsmen")
(SYNONYM OARSMEN OARSMAN MEN MAN ROWER ROWERS CREW CREWMEN)
(ADJECTIVE OARS)
(FLAGS NDESCBIT PERSON JAPANESEBIT PLURAL OPENBIT SEARCHBIT
CONTBIT ;SCOREBIT)
(ACTION OARSMEN-F)>
<ROUTINE OARSMEN-F ("OPT" (RARG <>))
<COND (<RARG? SUBJ>
<RFALSE>)
(<RARG? WINNER>
<COND (<P? PUT OARS (GLOBAL-WATER LG-SEA)>
<PERFORM ,V?ROW>
<RTRUE>)
(<AND <FSET? ,MAIN-DECK ,SCOREBIT>
<P? (SHIP SORT POINT TAKE ROW WALK-TO)
(<> OARSMEN OARS LG-BAY LG-LAND)>>
<SETG WINNER ,PLAYER>
<PERFORM ,V?HELP ,OARSMEN>
<RTRUE>)
(<P? (POINT TAKE ROW WALK-TO)
(<> OARS OARSMEN LG-BAY LG-LAND)>
<COND (<NOT <FSET? ,ANCHOR ,SCOREBIT>>
<TELL
"The galley is anchored. There's no reason to row." CR>)
(ELSE
<TELL "The oarsmen don't understand you, but they ">
<COND (<FSET? ,OARSMEN ,SCOREBIT>
<TELL "get the idea, and begin rowing again." CR>
<SCORE-OBJECT ,OARSMEN>)
(ELSE
<TELL "try to row faster." CR>)>)>)
(<P? (DROP THROW THROW-OFF PUT LOWER PUSH MOVE) ANCHOR>
<RFALSE>)
(ELSE
<TELL
"They don't seem to understand what you want." CR>)>)
(<VERB? EXAMINE>
<COND (<FSET? ,MAIN-DECK ,SCOREBIT>
<TELL
"The oarsmen are in a state of confusion." CR>)
(<FSET? ,OARSMEN ,SCOREBIT>
<TELL
"The oarsmen are settled again at their benches, but not yet rowing
again." CR>)
(ELSE
<TELL
"The oarsmen, unlike those you have seen in Europe, aren't slaves. Each
is a samurai warrior, and what they lack in deep water sailing
ability they make up in strength and stamina." CR>)>)
(<VERB? BOW>
<COND (<NOT <FSET? ,OARSMEN ,SCOREBIT>>
<TELL
"The oarsmen acknowledge your gesture of respect." CR>)
(ELSE
<TELL
"The oarsmen are taken aback by your formality, given the
circumstances." CR>)>)
(<P? THROW LIFE-RING>
<REMOVE ,LIFE-RING>
<TELL
"You heave the life ring to the rower, who tries to reach it, but the surge
of the sea is too strong and he's swept away." CR>)
(<VERB? HELP SORT>
<COND (<FSET? ,MAIN-DECK ,SCOREBIT>
<TELL
"You hurl yourself into the work of resorting the rowers. All rowing
has stopped except for the two oars most forward, which are keeping the
galley tidily into the wind. With signs and yelling, you get the oars
shipped, double up the men on the working ones, and generally restore
order." CR>
<SCORE-OBJECT ,MAIN-DECK>)
(ELSE
<TELL
"The oars are already back in some sort of order." CR>)>)>>
<OBJECT GUNWALE
(LOC MAIN-DECK)
(DESC "gunwale")
(SYNONYM GUNWALE GUNWALES RAIL RAILS)
(FLAGS NDESCBIT TAKEBIT SCOREBIT)
(ACTION GUNWALE-F)>
<GLOBAL GOT-GUNWALE? <>>
<ROUTINE GUNWALE-F ()
<COND (<VERB? EXAMINE>
<TELL
"The gunwales are nearly awash, as the galley is heavily laden and
low in the water. In the "I"Erasmus"" you would ride out a storm
like this easily, but this galley isn't built and rigged for weather." CR>)
(<VERB? TAKE HOLD HOLD-ON>
<COND (<FSET? ,GUNWALE ,RMUNGBIT>
<FCLEAR ,GUNWALE ,RMUNGBIT>
<SETG GOT-GUNWALE? T>
<TELL
"You grab desperately for the gunwale, and you catch it, your tendons
stretching but your grip holds! Then your other hand reaches the rail
and, choking, you pull yourself back." CR>
<SCORE-OBJECT ,GUNWALE>)
(ELSE
<TELL
"You hang onto the gunwales as you go forward." CR>)>)>>
<GLOBAL GALLEY-IN-BAY? <>>
<ROUTINE I-RODRIGUES ()
<COND (<AND <HERE? IN-THE-SEA>
<NOT <IN? ,RODRIGUES ,IN-THE-SEA>>>
<RFALSE>)>
<ZLINES ,RODRIGUES-CNT
(;1
<SETG SHIP-COURSE ,P?PORT>
<SETG SHIP-DIRECTION ,P?SOUTH>
<COND (<NOT <MARGINAL-PIC ,P-CONFUSION <>>>
<CRLF>)>
<TELL
"\"Watch out forward!\" Rodrigues shouts. The galley rolls sickeningly,
twenty oars pulling at air instead of sea and there is chaos aboard. The
first comber has struck and the port gunwale is awash. The galley
is floundering." CR>)
(;2
<THIS-IS-IT ,OARSMEN>
<FSET ,OARSMEN ,SCOREBIT>
<COND (<HERE? ,GALLEY>
<TELL CR
"\"Go forward,\" Rodrigues orders. ">)
(ELSE
<TELL CR
"Rodrigues yells to you. ">)>
<TELL "\"Get 'em to ship the oars, get 'em back
in order, and then
get 'em rowing again before we all drown! Hurry, hurry, hurry!\"" CR>)
(DELAY
<COND (<IN? ,BLACKTHORNE ,GALLEY>
<COND (<G? ,DELAY-CNT 2>
<CRLF>
<JIGS-UP
"\"Filthy heretic pig! You're no pilot, you're the son of a motherless
sow!\" Rodrigues smashes you in the head for your cowardice.">
<RFATAL>)
(ELSE
<TELL CR
"\"Hurry, Ingeles! Where are your "I"cojones""?\" curses Rodrigues." CR>
<RTRUE>)>)>)
(;3
<MOVE ,OAR ,GALLEY>
<FSET ,GUNWALE ,RMUNGBIT>
<THIS-IS-IT ,GUNWALE>
<TELL CR
"Abruptly the galley swerves and you are carried to the down side, tripped
by the flailing bodies of rowers who have lost their own footing.|
|
The gunwale is under water and one man goes overboard! You feel the rush
of water carrying you over the gunwale as well!" CR>)
(;4
<COND (,GOT-GUNWALE?
<THIS-IS-IT ,OARSMEN>
<TELL CR
"A man is at your feet and he drags you from the grip of the sea." CR>)
(ELSE
<CRLF>
<TELL
"You are swept into the raging torrent of the sea, and although you ">
<COND (<IN? ,LIFE-RING ,PLAYER>
<TELL "are wearing a life ring">)
(ELSE <TELL "can swim">)>
<TELL ", there is no hope." CR>
<JIGS-UP>)>)
(DELAY
<COND (<OR <FSET? ,MAIN-DECK ,SCOREBIT>
<FSET? ,OARSMEN ,SCOREBIT>>
<THIS-IS-IT ,OARSMEN>
<COND (<G? ,DELAY-CNT 6>
<CRLF>
<JIGS-UP
"The galley is smashed against the rocks of the headland.">
<RFATAL>)
(ELSE
<COND (<FSET? ,MAIN-DECK ,SCOREBIT>
<TELL CR
"The chaos continues, the oarsmen inexperienced with storms so far out
to sea, and they can't seem to get sorted out on their own.">
<COND (<IN? ,RODRIGUES ,HERE>
<TELL
G" Rodrigues yells at you, \"Ingeles, ""I told you to help the
oarsmen! Are you afraid just because you got a little wet?\"">)>
<CRLF>)
(<FSET? ,OARSMEN ,SCOREBIT>
<TELL CR
"The oarsmen, spent by their fight against the waves, and unsure what
to do next, wait for the next order.">
<COND (<IN? ,RODRIGUES ,HERE>
<TELL
G" Rodrigues yells at you, \"Ingeles, ""get those bastard-sans rowing
again! They don't know what to do so far from shore.\"">)>
<CRLF>)>
<TELL CR
"The storm continues to rage, and the galley is getting no closer to the
bay." CR>
<RTRUE>)>)>)
(;5
<MOVE ,RODRIGUES ,MAIN-DECK>
<CRLF>
<COND (<HERE? ,MAIN-DECK>
<TELL
"Rodrigues picks his way forward and claps you on the shoulder. He points
aft.">)
(ELSE
<TELL
"Rodrigues says,">)>
<TELL
" \"You take the helm. When I signal, steer west
for that point. You see it? I'm going">
<COND (<HERE? ,GALLEY> <TELL " forward">)>
<TELL " to help the captain with the oarsmen.\"">
<COND (<HERE? ,GALLEY>
<TELL " He unties his lifeline and goes forward.">)>
<CRLF>)
(DELAY
<COND (<NOT <FSET? ,GALLEY-WHEEL ,ONBIT>>
<COND (<G? ,DELAY-CNT 1>
<TELL CR
"Rodrigues curses, \"By your mother, Ingeles! Take the helm!\"" CR>
<RTRUE>)
(ELSE <RFALSE>)>)>)
(;6
<TELL CR
"The wind and tide are carrying you close to the rocks. Rodrigues stares,
terrified, at the approaching shore." CR>)
(;7
<TELL CR
"Rodrigues stares in horror at the jagged rocks of the headland. It's
clear he's lost his nerve. \"">
<COND (<EQUAL? ,SHIP-COURSE ,P?PORT>
<TELL "That's right, Pilot! ">)>
<TELL "Steer south for the open sea!\" Rodrigues
screams. \"Turn and run
before the wind! We'll never make it safe to the bay!\"" CR>)
(;8
<COND (<EQUAL? ,SHIP-COURSE ,P?PORT>
<TELL CR
"The galley heads for the open sea, trying to run before the wind, but
she's too heavily laden, and has already taken on too much water. You
try, and the oarsmen try, but it's hopeless. She flounders and you and
all aboard drown like rats.">
<JIGS-UP>
<RFATAL>)
(ELSE
<TELL CR
"You hold course toward the bay. Rodrigues shouts, \"God curse you,
you'll kill us all!\"" CR>)>)
(;9
<MOVE ,RODRIGUES ,IN-THE-SEA>
<FSET ,RODRIGUES ,INVISIBLE>
<THIS-IS-IT ,LG-RODRIGUES>
<COND (<NOT <MARGINAL-PIC ,P-OVERBOARD>>
<CRLF>)>
<TELL
"A great wave comes out of the north. The galley has taken much water
previously, now you're awash and being driven backward towards the
rock-infested shore.|
|
You see the wave take Rodrigues, and you watch him, gasping and struggling
in the churning sea. You remember that he can't swim." CR>)
(DELAY
<COND (<FSET? ,OAR ,SCOREBIT>
<COND (<EQUAL? ,DELAY-CNT 1>
<TELL CR
"Rodrigues splashes to the surface, but the current is carrying him further
away." CR>
<RTRUE>)
(<EQUAL? ,DELAY-CNT 2>
<TELL CR
"The rain slashes down and you see that Rodrigues is being carried further
from the galley." CR>
<RTRUE>)
(<EQUAL? ,DELAY-CNT 3>
<TELL CR
"Rodrigues is almost lost in the waves and wind-driven spray." CR>
<RTRUE>)>)>)
(<FSET ,OAR ,RMUNGBIT>
<TELL CR
"The last you see of Rodrigues is an arm ">
<COND (<FSET? ,OAR ,SCOREBIT>
<TELL
"waving helplessly through the driving rain." CR>)
(ELSE
<TELL
"gripping a broken oar." CR>)>)
(DELAY
<COND (<OR <NOT <HERE? ,GALLEY>>
<NOT <FSET? ,GALLEY-WHEEL ,ONBIT>>>
<COND (<EQUAL? ,DELAY-CNT 1>
<TELL CR
"There's no one conning the galley!" CR>
<RTRUE>)
(<EQUAL? ,DELAY-CNT 2>
<SETG SHIP-COURSE ,P?PORT>
<TELL CR
"The Japanese captain grabs the wheel, and immediately steers for
the open sea!" CR>
<RTRUE>)
(ELSE <RFALSE>)>)
(<EQUAL? ,SHIP-COURSE ,P?PORT>
<COND (<L? ,DELAY-CNT 3>
<TELL CR
"The galley continues out to sea, into the teeth of the storm." CR>
<RTRUE>)>)>)
(<COND (<EQUAL? ,SHIP-COURSE ,P?PORT>
<CRLF>
<JIGS-UP
"The galley is now full in the jaws of the storm. The waves toss
the galley about, and one huge comber crashes over the port gunwale,
and she's sinking!">
<RFATAL>)
(ELSE
<SETG GALLEY-IN-BAY? T>
<TELL CR
"The ship moves away from the rocks, and you hold course for the lee
shore. Soon you are in calmer waters. There is still a gale but it's
overhead. There is still a tempest but it's out to sea." CR>)>)
(DELAY
<COND (<FSET? ,ANCHOR ,SCOREBIT>
<COND (<G? ,DELAY-CNT 3>
<CRLF>
<JIGS-UP
"The ship smashes onto the rocks! If only you'd dropped anchor in time,
she might have survived. How humiliating.">
<RFATAL>)
(ELSE
<TELL CR
"The current is swinging the ship around and towards the rocks, away
from the safe anchorage." CR>
<RTRUE>)>)>)
(<DEQUEUE I-RODRIGUES>
<TELL CR
"Somewhere out there is Rodrigues' body. You know ">
<COND (<FSET? ,OAR ,SCOREBIT>
<FSET ,RODRIGUES ,DEAD>
<TELL "in your heart that with nothing to
keep him above the waves, he must have drowned, and ">)>
<TELL
"there is minimal
hope of finding his body, but you feel you owe it to him to try." CR>)>>
<OBJECT LIFE-RING
(LOC GALLEY)
(DESC "wooden life ring")
(FDESC "A wooden life ring hangs nearby.")
(SYNONYM RING)
(ADJECTIVE WOODEN LIFE)
(FLAGS TAKEBIT)
(ACTION LIFE-RING-F)>
<ROUTINE LIFE-RING-F ()
<COND (<P? THROW * LG-RODRIGUES>
<COND (<NOT <FSET? ,OAR ,RMUNGBIT>>
<TELL "You ">
<COND (<IN? ,LIFE-RING ,HERE>
<TELL
"snatch the wooden life ring and throw it">)
(ELSE
<TELL
"throw the wooden life ring">)>
<REMOVE ,LIFE-RING>
<TELL " overboard. Rodrigues tries to reach it, but
an ill-timed wave sweeps it out of his reach." CR>)
(ELSE
<TELL G"You can't see Rodrigues anywhere nearby." CR>)>)
(<P? THROW * RODRIGUES>
<MOVE ,LIFE-RING <LOC ,RODRIGUES>>
<TELL
"You throw " THE ,PRSO " to Rodrigues. He drops it beside him, not
having any use for it at the moment." CR>)
(<AND <VERB? WEAR BOARD>
<NOT <FSET? ,LIFE-RING ,WEARBIT>>>
<COND (<AND <NOT <HELD? ,PRSO>>
<NOT <EQUAL? <ITAKE> T>>>
<RTRUE>)
(ELSE
<FSET ,LIFE-RING ,WEARBIT>
<TELL
"You pull the life ring over your shoulders. It makes you very awkward
but you feel safer." CR>)>)
(<AND <VERB? TAKE-OFF>
<FSET? ,LIFE-RING ,WEARBIT>>
<FCLEAR ,LIFE-RING ,WEARBIT>
<TELL
"You remove the life ring, pulling it off over your shoulders." CR>)>>
<OBJECT OAR
(DESC "broken oar")
(SYNONYM OAR)
(ADJECTIVE BROKEN)
(FLAGS TAKEBIT SCOREBIT)
(ACTION OAR-F)>
<ROUTINE OAR-F ()
<COND (<OR <P? TURN * LG-RODRIGUES>
<P? REACH-FOR LG-RODRIGUES>
<AND <P? (THROW GIVE) OAR (<> LG-RODRIGUES)>
<IN? ,RODRIGUES ,IN-THE-SEA>
<FSET? ,RODRIGUES ,INVISIBLE>
<HERE? ,GALLEY ,MAIN-DECK>>>
<COND (<NOT <FSET? ,OAR ,RMUNGBIT>>
<FSET ,OAR ,NDESCBIT>
<MARGINAL-PIC ,P-OAR <>>
<TELL "You ">
<COND (<IN? ,OAR ,HERE>
<TELL "grab the oar and throw it">)
(ELSE
<TELL "throw the oar">)>
<TELL
" toward Rodrigues. It crashes into the water near him
and he lunges for it." CR>
<MOVE ,OAR ,RODRIGUES>
<SCORE-OBJECT ,OAR>)
(ELSE
<TELL G"You can't see Rodrigues anywhere nearby." CR>)>)
(<P? (THROW GIVE) * RODRIGUES>
<TELL
"He doesn't seem to have much use for the oar right now." CR>)
(<VERB? REPAIR>
<TELL "That's beyond your abilities right now." CR>)>>
<ROOM PEBBLED-BEACH
(LOC ROOMS)
(DESC "Pebbled Beach")
(SYNONYM BEACH)
(ADJECTIVE PEBBLED)
(LDESC
"The beach here consists of small, rounded pebbles. To the south the
cliff rises behind a field of larger rocks. Riding at anchor in the bay
is Toranaga's galley.")
(SOUTH TO ROCKY-SHORE)
(FLAGS RLANDBIT ONBIT)
(GLOBAL LG-GALLEY LG-CLIFF LG-SEA LG-LAND
LG-BAY LG-RODRIGUES)
(ACTION PEBBLED-BEACH-F)>
<ROUTINE SEARCH-PARTY-FOLLOWS ()
<MOVE ,YABU ,HERE>
<MOVE ,SEARCH-PARTY ,HERE>
<TELL
"Yabu sets a strong pace, which you are hard put to keep up with. The other "
<GET ,NUMBERS <GETP ,SEARCH-PARTY ,P?COUNT>> " samurai watch you carefully." CR CR>>
<ROUTINE PEBBLED-BEACH-F (RARG)
<COND (<RARG? ENTER>
<COND (<AND <EQUAL? ,OHERE ,IN-THE-SEA>
<IN? ,WINNER ,SKIFF>>
<FCLEAR ,SKIFF ,RMUNGBIT>
<MOVE ,SEARCH-PARTY ,HERE>
<TELL
"The rowers row the skiff east to the shore, jump out,
and pull it up on the beach." CR CR>)
(<EQUAL? ,OHERE ,ROCKY-SHORE>
<SEARCH-PARTY-FOLLOWS>)>
<RTRUE>)
(<RARG? BEG>
<COND (<AND <P? WALK P?SOUTH>
<FSET? ,ROCKY-SHORE ,TOUCHBIT>>
<YABU-PREVENTS>)
(<P? WALK P?NORTH>
<TELL
"\"No, Anjin-san,\" says Yabu. He points south. He knows as well as you
that that's where the body will be, if anywhere." CR>)
(<OR <P? FIND (RODRIGUES LG-RODRIGUES)>
<P? SEARCH GLOBAL-HERE>
<VERB? LOOK-DOWN>>
<TELL ,SEARCH-FORESHORE
G"There is no sign of Rodrigues." CR>)>)>>
<OBJECT LG-PATH
(LOC LOCAL-GLOBALS)
(SCENE S-VOYAGE)
(DESC "path")
(SYNONYM PATH FORESHORE SHORE)
(FLAGS NDESCBIT)
(ACTION LG-PATH-F)>
<ROUTINE LG-PATH-F ()
<COND (<VERB? FOLLOW>
<TELL
"The path runs north and south. " ,YOU-HAVE-TO G"specify a direction." CR>)>>
<OBJECT ROCK
(DESC "rock")
(SYNONYM ROCK STONE PEBBLE)
(ADJECTIVE SMALL)
(FLAGS TAKEBIT)>
<OBJECT LG-CLIFF
(LOC LOCAL-GLOBALS)
(OWNER YABU)
(DESC "cliff")
(SYNONYM CLIFF CLIFFS ROCK ROCKS CREVICE CLEFT GULLEY CAVE CAVES)
(ADJECTIVE SHEER LOOSE HIDDEN)
(FLAGS NDESCBIT TRYTAKEBIT TAKEBIT)
(ACTION LG-CLIFF-F)>
<ROUTINE LG-CLIFF-F ()
<COND (<VERB? EXAMINE>
<TELL
"The cliff soars two hundred feet above you, and drops fifty feet to
the water below." CR>)
(<VERB? TAKE MOVE>
<MOVE ,ROCK ,WINNER>
<TELL
"You take one of the many rocks from the soaking ground." CR>)
(<VERB? CLIMB-DOWN CLIMB-FOO>
<DO-WALK ,P?DOWN>
<RTRUE>)
(<VERB? CLIMB-UP>
<DO-WALK ,P?UP>
<RTRUE>)
(<P? SEARCH>
<PERFORM ,V?FIND ,LG-RODRIGUES>
<RTRUE>)>>
<OBJECT SEARCH-PARTY
(OWNER SEARCH-PARTY)
(SCENE S-VOYAGE)
(DESC "party of samurai")
(SYNONYM SAMURAI GUARD GUARDS PARTY MEN)
(ADJECTIVE SEARCH)
(FLAGS PERSON JAPANESEBIT OPENBIT CONTBIT SEARCHBIT
PLURAL SCOREBIT)
(COUNT 7)
(DESCFCN SEARCH-PARTY-DESC)
(GENERIC GENERIC-SAMURAI-F)
(ACTION SEARCH-PARTY-F)>
<ROUTINE SEARCH-PARTY-DESC (RARG OBJ)
<COND (<RARG? OBJDESC?>
<COND (<IN? ,SEARCH-PARTY ,SKIFF> <RFALSE>)
(ELSE <RTRUE>)>)
(<RARG? OBJDESC>
<TELL
"There are " <GET ,NUMBERS <GETP ,SEARCH-PARTY ,P?COUNT>> " ">
<COND (<HERE? ,CLIFF-PATH>
<COND (<IN? ,LOINCLOTH ,SEARCH-PARTY>
<TELL
"samurai here, stripped to their loincloths and">)
(<EQUAL? <GETP ,YABU-KIMONO ,P?COUNT> 8>
<TELL
"naked samurai here,">)
(ELSE
<TELL
"samurai in soaking wet kimonos here,">)>)
(ELSE
<TELL "samurai here,">)>
<TELL " watching you intently.">)>>
<ROUTINE SEARCH-PARTY-F ("OPT" (RARG <>))
<COND (<RARG? SUBJ>
<RFALSE>)
(<RARG? WINNER>
<COND (<AND <P? (RAISE LOWER) YABU-KIMONO>
<IN? ,YABU-KIMONO ,SEARCH-PARTY>>
<SETG WINNER ,PLAYER>
<PERFORM ,PRSA ,PRSO>
<RTRUE>)
(ELSE
<WAKARIMASEN>)>)
(<VERB? COUNT>
<TELL
"There are " <GET ,NUMBERS <GETP ,SEARCH-PARTY ,P?COUNT>> " samurai here." CR>)
(<VERB? EXAMINE>
<COND (<IN? ,LOINCLOTH ,PRSO>
<TELL
"The samurai are stripped to their loincloths." CR>)
(<EQUAL? <GETP ,YABU-KIMONO ,P?COUNT> 8>
<TELL
"They are naked." CR>)
(ELSE
<TELL
"They are dressed in rather wet kimonos." CR>)>)>>
<OBJECT PARTY-KIMONO
(OWNER SEARCH-PARTY)
(LOC SEARCH-PARTY)
(DESC "kimonos")
(SYNONYM KIMONOS CLOTHES)
(ADJECTIVE SILK SOAKING WET)
(FLAGS NOABIT DONT-ALL NDESCBIT TAKEBIT WEARABLE PLURAL)
(GENERIC GENERIC-KIMONO-F)
(ACTION PARTY-KIMONO-F)>
<ROUTINE GENERIC-KIMONO-F (R F)
<COND (<IN? ,YABU-KIMONO ,HERE>
,YABU-KIMONO)
(ELSE ,PARTY-KIMONO)>>
<ROUTINE PARTY-KIMONO-F ()
<COND (<VERB? EXAMINE>
<TELL
"These are uniform kimonos in a muddy brown color." CR>)
(<VERB? TAKE POINT RUB TEAR TIE>
<COND (<AND <FSET? ,YABU-KIMONO ,RMUNGBIT>
<ACCESSIBLE? ,YABU-KIMONO>>
<COND (<IN? ,YABU-KIMONO ,HERE>
<MOVE ,YABU-KIMONO ,WINNER>)>
<PERFORM ,V?TIE ,YABU-KIMONO>
<RTRUE>)
(ELSE
<TELL
"No one seems to understand what you are trying to do." CR>)>)
(<VERB? TAKE>
<TELL
"The samurai are reluctant to give up their kimonos." CR>)>>
<ROOM ROCKY-SHORE
(LOC ROOMS)
(DESC "Rocky Shore")
(SYNONYM SHORE)
(ADJECTIVE ROCKY)
(LDESC
"Inland from the shore the pebbles become sea-smoothed rocks. To the
south is a path leading along the cliffs and around the headland. To
the north is the bay where the galley rides at anchor.")
(NORTH TO PEBBLED-BEACH)
(SOUTH TO CLIFF-PATH)
(FLAGS RLANDBIT ONBIT)
(GLOBAL LG-CLIFF LG-SEA LG-RODRIGUES)
(ACTION ROCKY-SHORE-F)>
<ROUTINE ROCKY-SHORE-F (RARG)
<COND (<RARG? ENTER>
<SEARCH-PARTY-FOLLOWS>
<RTRUE>)
(<RARG? BEG>
<COND (<AND <P? WALK P?SOUTH>
<FSET? ,CLIFF-PATH ,TOUCHBIT>>
<YABU-PREVENTS>)>)>>
<ROUTINE YABU-PREVENTS ()
<TELL
"\"No, Anjin-san,\" says Yabu. It's clear he thinks you've wasted
enough time searching for the body." CR>>
<ROOM CLIFF-PATH
(LOC ROOMS)
(DESC "Cliff Path")
(SYNONYM PATH)
(ADJECTIVE CLIFF)
(LDESC
"Above you the cliff soars two hundred feet. The white-frothed sea is
fifty feet below. All around are mountains, not a house or hut in the
whole bay area. The path dips and rises along the cliff face, very
unsafe, the surface loose.")
(NORTH TO ROCKY-SHORE)
(SOUTH TO AROUND-HEADLAND)
(DOWN TO LEDGE-1)
(FLAGS RLANDBIT ONBIT)
(GLOBAL LG-CLIFF LG-SEA LG-RODRIGUES LG-YABU)
(ACTION CLIFF-PATH-F)>
<ROUTINE CLIFF-PATH-F (RARG)
<COND (<RARG? ENTER>
<SEARCH-PARTY-FOLLOWS>
<RTRUE>)
(<RARG? BEG>
<COND (<AND <P? WALK P?SOUTH>
<FSET? ,LEDGE-4 ,SCOREBIT>
<FSET? ,AROUND-HEADLAND ,TOUCHBIT>>
<YABU-PREVENTS>)
(<AND <P? WALK (P?NORTH P?SOUTH)>
<NOT <FSET? ,LEDGE-4 ,SCOREBIT>>>
<TELL
"The samurai watch you like hawks, preventing you from leaving." CR>)
(<VERB? LEAP BOARD DIVE>
<TELL
"The samurai prevent you." CR>)
(<OR <P? FIND (RODRIGUES LG-RODRIGUES)>
<P? SEARCH GLOBAL-HERE>
<VERB? LOOK-DOWN>>
<COND (<FSET? ,LEDGE-4 ,SCOREBIT>
<TELL ,SEARCH-FORESHORE>
<COND (<AND <NOT <FSET? ,OAR ,SCOREBIT>>
<FSET? ,AROUND-HEADLAND ,TOUCHBIT>>
<DEQUEUE I-SEARCH>
<MOVE ,RODRIGUES ,LEDGE-4>
<FCLEAR ,RODRIGUES ,INVISIBLE>
<THIS-IS-IT ,LG-RODRIGUES>
<TELL "But halfway back along the
path, you see Rodrigues! The body is caught in a cleft between two great
rocks, above the surf but washed by part of it. One arm is still locked
to a broken oar which moves slightly with the ebb and flow." CR>
<SCORE-OBJECT ,LEDGE-4>)
(ELSE
<TELL
G"There is no sign of Rodrigues." CR>)>)
(<AND <FSET? ,LEDGE ,SCOREBIT>
,YABU-RESIGNED?>
<PERFORM ,V?FIND ,LEDGE>
<RTRUE>)
(ELSE
<TELL
"You have already found him. Is your memory that short?" CR>)>)
(<OR <P? POINT (RODRIGUES LG-RODRIGUES)>
<P? SHOW (RODRIGUES LG-RODRIGUES) YABU>>
<COND (<FSET? ,LEDGE-4 ,SCOREBIT>
<TELL
"You don't know where Rodrigues is." CR>)
(ELSE
<TELL
"Yabu peers over the cliff and finally sees Rodrigues. He shrugs as if
to say, \"He's dead.\" He doesn't seem inclined to do anything else." CR>)>)
(<P? (HELP TAKE WALK-TO)
(YABU RODRIGUES LG-RODRIGUES)>
<COND (<FSET? ,RODRIGUES ,INVISIBLE>
<RFALSE>)
(<AND <NOT <QUEUED? I-YABU-CLIMBS>>
<NOT <QUEUED? I-YABU-RETURNS>>>
<SETG YABU-CNT 0>
<QUEUE I-YABU-CLIMBS -1>
<TELL
"You start for the cliff edge, and immediately the samurai restrain you. Yabu
shakes his head. \""I"Iye!""\"|
|
You stare at Yabu, towering over him. \"If you won't let me go, Yabu-san,
then send one of your men. Or go yourself. You!\"" CR>)
(<IN? ,YABU ,HERE>
<TELL
"You've hooked him! He's preparing to climb!" CR>)
(ELSE
<TELL
"Yabu doesn't see you." CR>)>)
(<P? WALK DOWN>
<COND (<AND <NOT <FSET? ,RODRIGUES ,INVISIBLE>>
<NOT <QUEUED? I-YABU-CLIMBS>>
<NOT <QUEUED? I-YABU-RETURNS>>>
<PERFORM ,V?WALK-TO ,RODRIGUES>
<RTRUE>)
(<IN? ,YABU ,HERE>
<TELL
"Quickly, Yabu moves in your way and the samurai surround you. \""I"Iye"",
Anjin-san,\" Yabu says." CR>)
(ELSE
<TELL
"The samurai prevent you from climbing down." CR>)>)
(<AND <VERB? THROW>
<NOT <PRSO? ,YABU-KIMONO>>
<EQUAL? <LOC ,YABU>
,LEDGE-1 ,LEDGE-2
,LEDGE-3 ,LEDGE-4>>
<REMOVE ,PRSO>
<TELL
"You throw " THE ,PRSO " but " HE/SHE ,PRSO " fall" S ,PRSO " unnoticed into
the water.">
<COND (<FSET? ,LEDGE ,SCOREBIT>
<TELL " The samurai murmur amongst
themselves. Yabu has composed himself for death. It is extremely bad
manners to
disturb him, as they can see no way for him to climb the cliff.">)>
<CRLF>)
(<AND <VERB? YELL YELL-AT ASK-FOR WAVE-AT POINT SHOW
CLIMB-DOWN>
<PRSO? <> YABU LG-YABU LEDGE SEARCH-PARTY
LG-RODRIGUES>
<PRSI? <> SEARCH-PARTY>>
<COND (<AND <NOT ,YABU-WARNED?>
<NOT <FSET? ,LEDGE ,SCOREBIT>>
<G=? <GETP ,YABU-KIMONO ,P?COUNT> 8>>
<SETG YABU-WARNED? T>
<PUTP ,SEARCH-PARTY ,P?COUNT
<- <GETP ,SEARCH-PARTY ,P?COUNT> 1>>
<DEQUEUE I-YABU-CLIMBS>
<SETG YABU-CNT 0>
<QUEUE I-YABU-RETURNS -1>
<TELL
"You shout, pointing at the ledge, pantomiming a man standing on it carrying
a burden: Yabu carrying Rodrigues, standing above the waves, if only you
can get his attention somehow. The samurai talk rapidly to each
other and then they too begin to shout. There is still no movement from
Yabu. He seems like a stone.|
|
One of the samurai speaks to the others briefly and they all nod and
bow. He bows back. Then, with a sudden screaming shout of \""I"Bansaiiii!""\"
he casts himself off the cliff and falls to his death. Yabu comes violently
out of his trance, whirls around and scrambles up. He follows the pointing
fingers and shouts of his men and sees the ledge! Within seconds he
has scrambled up to it, dragging the unconscious Rodrigues behind him." CR>
<SCORE-OBJECT ,SEARCH-PARTY>)
(ELSE
<TELL
"You point, screaming at the top of your lungs. The samurai stare at you,
but there is no other result." CR>)>)>)>>
<CONSTANT SEARCH-FORESHORE
"You search the foreshore, every crevice and cleft and gulley. The spume
wind is gusting, tearing tears from your eyes. ">
<OBJECT LEDGE
(LOC CLIFF-PATH)
(DESC "narrow ledge")
(SYNONYM LEDGE)
(ADJECTIVE TINY NARROW)
(FLAGS NDESCBIT SCOREBIT)
(ACTION LEDGE-F)>
<ROUTINE LEDGE-F ()
<COND (<AND <VERB? FIND>
,YABU-RESIGNED?>
<TELL
"You stick your head out over the cliff edge as far as you dare, while
the samurai hold your ankles for safety. You begin to search as you
would at sea, quarter by quarter. Using every part of your vision but
mostly the sides. A complete sweep. Nothing!|
|
Once more. Nothing!|
|
Again. What's that? Just above the tide line? Is it a crack in the
cliff? You shift position. Now you can see better: there is clearly
a narrow ledge!" CR>
<SCORE-OBJECT ,LEDGE>)
(<AND <VERB? EXAMINE>
,YABU-RESIGNED?>
<COND (<NOT <FSET? ,PRSO ,SCOREBIT>>
<TELL
"It's nearly a foot wide and still just accessible, the rocks between it
and Yabu just barely poking above the surf." CR>)
(ELSE
<TELL
"You don't see any ledges that would help Yabu." CR>)>)>>
<ROOM LEDGE-1
(LOC ROOMS)
(DESC "Ledge")
(SYNONYM LEDGE)
(UP TO CLIFF-PATH)
(DOWN TO LEDGE-2)
(FLAGS RLANDBIT ONBIT)>
<ROOM LEDGE-2
(LOC ROOMS)
(DESC "Ledge")
(SYNONYM LEDGE)
(UP TO LEDGE-1)
(DOWN TO LEDGE-3)
(FLAGS RLANDBIT ONBIT)>
<ROOM LEDGE-3
(LOC ROOMS)
(DESC "Ledge")
(SYNONYM LEDGE)
(UP TO LEDGE-2)
(DOWN TO LEDGE-4)
(FLAGS RLANDBIT ONBIT)>
<ROOM LEDGE-4
(LOC ROOMS)
(DESC "Ledge")
(SYNONYM LEDGE)
(UP TO LEDGE-3)
(FLAGS RLANDBIT ONBIT SCOREBIT)>
<ROOM AROUND-HEADLAND
(LOC ROOMS)
(DESC "Around the Headland")
(SYNONYM HEADLAND)
(LDESC
"This side of the headland is in the lee of the wind, for which you
are very grateful. Half a mile away a small fishing village nestles
on the white-frothed shore.")
(NORTH TO CLIFF-PATH)
(FLAGS RLANDBIT ONBIT)
(ACTION AROUND-HEADLAND-F)
(GLOBAL LG-CLIFF LG-SEA LG-RODRIGUES LG-YABU
LG-VILLAGE)>
<ROUTINE AROUND-HEADLAND-F (RARG)
<COND (<RARG? ENTER>
<SEARCH-PARTY-FOLLOWS>
<COND (<NOT <QUEUED? I-SEARCH>>
<SETG YABU-CNT 0>
<QUEUE I-SEARCH -1>)>
<RTRUE>)
(<RARG? BEG>
<COND (<OR <P? FIND (RODRIGUES LG-RODRIGUES)>
<P? SEARCH GLOBAL-HERE>
<VERB? LOOK-DOWN>>
<TELL ,SEARCH-FORESHORE
G"There is no sign of Rodrigues."" You realize that if the body is beyond
this point it is hidden or swallowed up or already carried out to
sea." CR>)>)>>
<ROUTINE I-SEARCH ()
<ZLINES ,YABU-CNT
(<PUTP ,SEARCH-PARTY ,P?COUNT
<- <GETP ,SEARCH-PARTY ,P?COUNT> 2>>
<TELL CR
"Yabu motions to two of the samurai, who immediately bow and then lope
off toward the fishing village." CR>)
(<TELL CR
"Yabu wipes the rain off of his face, glances up at you, and motions for
you to return to the galley." CR>)
(DELAY
<COND (<BLACKTHORNE-DALLIES? ,AROUND-HEADLAND ,CLIFF-PATH>
<RTRUE>)>)
(<TELL CR
"Yabu takes a quick look around, anxious to return to the galley." CR>)
(DELAY
<COND (<BLACKTHORNE-DALLIES? ,CLIFF-PATH ,ROCKY-SHORE>
<RTRUE>)>)
(<TELL CR
"Yabu glances around impatiently, obviously anxious to return to the
galley." CR>)
(DELAY
<COND (<BLACKTHORNE-DALLIES? ,ROCKY-SHORE ,PEBBLED-BEACH>
<RTRUE>)>)
(<DEQUEUE I-SEARCH>
<TELL CR
"Quickly, Yabu orders you put in the skiff, and you are rowed back
to the galley. You comply with ill grace, angry at your failure to
find Rodrigues." CR CR>
<FAILED-SCENE>)>>
<ROUTINE BLACKTHORNE-DALLIES? (RM NRM)
<COND (<IN? ,BLACKTHORNE .RM>
<COND (<EQUAL? ,DELAY-CNT 1 2>
<TELL CR
"Yabu motions to you to return. \""I"Isogi!""\" he yells." CR>
<RTRUE>)
(<EQUAL? ,DELAY-CNT 3>
<TELL CR
"Yabu signals to the samurai, barks a few words in Japanese, and
the samurai quickly subdue you and begin to carry you back." CR CR>
<MOVE ,YABU .NRM>
<MOVE ,SEARCH-PARTY .NRM>
<GOTO .NRM>
<RTRUE>)>)>>
<GLOBAL YABU-WARNED? <>>
<GLOBAL YABU-RESIGNED? <>>
<ROUTINE I-YABU-CLIMBS ()
<ZLINES ,YABU-CNT
(<PUTP ,SEARCH-PARTY ,P?COUNT
<- <GETP ,SEARCH-PARTY ,P?COUNT> 1>>
<TAKE-OFF ,SLIPPERS>
<TAKE-OFF ,YABU-KIMONO>
<TAKE-OFF ,YABU-SWORDS>
<TELL CR
"The wind tears around you, whining off the cliff face. Yabu looks down,
weighing the climb and the falling light, and you know Yabu is hooked. A
samurai begins to climb down but Yabu orders him back.|
|
Yabu gives orders to one of the samurai, pointing back toward the
beach. The man runs off.|
|
Yabu kicks off his thong slippers. He takes the swords out of his belt
and puts them safely under cover. He barks some orders at one of the
samurai, then takes off his soaking kimono, and clad only in his loincloth,
goes to the cliff edge, testing it carefully with his toes and feet." CR>)
(<MOVE ,YABU ,LEDGE-2>
<COND (<NOT <MARGINAL-PIC ,P-CLIFF>>
<CRLF>)>
<TELL
"Yabu climbs down the side of the cliff with great skill.|
|
Suddenly, Yabu slips! He grips an outcrop with his left hand, stopping
his fall. He grinds his toes in a crevice, fighting for another hold,
but his left hand rips away. His toes find a cleft and he hugs the
cliff desperately. Then the toehold gives way! He falls the last twenty
feet." CR>)
(<MOVE ,YABU ,LEDGE-3>
<TELL CR
"Yabu lands on his feet like a cat, and comes to rest in a wheezing
ball. One ankle is twisted, but unbroken." CR>)
(<MOVE ,YABU ,LEDGE-4>
<TELL CR
"Yabu reaches Rodrigues, then shouts something. ">
<COND (<FSET? ,RODRIGUES ,DEAD>
<TELL "He shakes his head, confirming that
Rodrigues has drowned." CR>
<FAILED-SCENE>
<RFATAL>)
(ELSE
<PUTP ,SEARCH-PARTY ,P?COUNT
<- <GETP ,SEARCH-PARTY ,P?COUNT> 1>>
<TELL "He is signalling that
the pilot is still alive! One of the samurai runs off toward the galley
to fetch a stretcher and a doctor.|
|
Yabu pulls Rodrigues up onto the rocks, out of the surf." CR>)>)
(<SETG YABU-RESIGNED? T>
<TELL CR
"Yabu scrambles up and winces at a shaft of pain from his ankle. He
manages to climb a few feet up, but then stops, his eyes searching
the area diligently for a ledge or a crack within his reach. He sees
no way to get further up the cliff." CR>)
(<TELL CR
"Yabu looks out to sea, then looks up at you briefly. He composes himself
and sits down on his rocky perch. With a sudden shock you realize that
he has resigned himself to death." CR>)
(DELAY
<COND (<AND <NOT ,YABU-WARNED?>
<L? ,DELAY-CNT 5>>
<TELL CR
"The tide is coming in fast, washing closer and closer to the
rock Yabu is perched on!" CR>
<RTRUE>)>)
(<TELL CR
"The tide continues to rise." CR>)
(DELAY
<COND (<AND <NOT ,YABU-WARNED?>
<L? ,DELAY-CNT 5>>
<TELL CR
"The tide is rising, more and more of Yabu's rock is covered." CR>
<RTRUE>)>)
(<TELL CR
"The tide is now breaking over Yabu's rock. He does not move." CR>)
(<DEQUEUE I-YABU-CLIMBS>
<TELL CR
"A huge comber crashes over the rock. Yabu and Rodrigues are swept
away. Rodrigues goes under almost immediately. Yabu cannot swim. He
thrashes briefly then goes under and you see him
no more. Your feelings are torn. You are glad to see the son of a whore
die, but you respect his courage." CR>
<FAILED-SCENE>
<RFATAL>)>>
<GLOBAL ROPE-LOWERED? <>>
<OBJECT YABU-KIMONO
(OWNER YABU)
(SDESC "kimono")
(DESC "kimono")
(SYNONYM KIMONO ROPE STRIP STRIPS CLOTHES)
(ADJECTIVE SILK SOAKING)
(FLAGS TAKEBIT WEARABLE SCOREBIT)
(COUNT 0)
(GENERIC GENERIC-KIMONO-F)
(ACTION YABU-KIMONO-F)>
<ROUTINE YABU-KIMONO-F ("AUX" (ROPE? <GETP ,YABU-KIMONO ,P?COUNT>))
<COND (<AND <NOT <VERB? MAKE>>
<NOT .ROPE?>>
<COND (<OR <NOUN-USED? ,PRSO ,W?ROPE>
<NOUN-USED? ,PRSI ,W?ROPE>>
<TELL "You can't see any rope here." CR>
<RTRUE>)>)>
<COND (<VERB? RUB>
<TELL "It feels like silk." CR>)
(<VERB? WEAR>
<COND (<OR .ROPE? <FSET? ,YABU-KIMONO ,RMUNGBIT>>
<TELL
"The kimono is no longer in any condition to wear!" CR>)
(<FSET? ,CLOTHES ,WEARBIT>
<TELL
"You're already wearing your own clothes." CR>)
(ELSE
<FSET ,YABU-KIMONO ,WEARBIT>
<TELL
"You put on Yabu's kimono. It doesn't fit very well." CR>)>)
(<AND <VERB? CLIMB-FOO CLIMB-DOWN>
.ROPE?>
<DO-WALK ,P?DOWN>
<RTRUE>)
(<VERB? TEAR>
<COND (<FSET? ,YABU-KIMONO ,WEARBIT>
<HAVE-TO-TAKE-OFF>)
(<NOT <FSET? ,YABU-KIMONO ,RMUNGBIT>>
<FSET ,YABU-KIMONO ,RMUNGBIT>
<TELL
"You tear the silk kimono into strips, testing them for strength. The
silk is very strong." CR>)
(ELSE
<TELL
"If you tear the silk any more, it will be useless." CR>)>)
(<P? (TIE MAKE) YABU-KIMONO (YABU-KIMONO PARTY-KIMONO <> ROOMS)>
<COND (<FSET? ,YABU-KIMONO ,RMUNGBIT>
<COND (<FSET? ,YABU-KIMONO ,SCOREBIT>
<REMOVE ,PARTY-KIMONO>
<MOVE ,LOINCLOTH ,SEARCH-PARTY>
<PUTP ,YABU-KIMONO ,P?SDESC "rope">
<PUTP ,YABU-KIMONO ,P?COUNT
<+ <GETP ,YABU-KIMONO ,P?COUNT> 5>>
<TELL
"You tie the strips together, making a rope. The samurai emulate you,
removing their own kimonos and leaving them clad only in loincloths. You
now have a rope of some length." CR>
<SCORE-OBJECT ,YABU-KIMONO>)
(ELSE
<TELL
"You have already made a rope of some length. All the kimonos are now
part of it." CR>)>)
(<FSET? ,YABU-KIMONO ,WEARBIT>
<HAVE-TO-TAKE-OFF>)
(ELSE
<TELL
"You have succeeded in tying the kimono in knots." CR>)>)
(<P? UNTIE YABU-KIMONO>
<COND (<FSET? ,YABU-KIMONO ,SCOREBIT>
<TELL
"You haven't tied it yet." CR>)
(ELSE
<TELL
"Your knots are too tight to untie." CR>)>)
(<AND <P? GIVE YABU-KIMONO SEARCH-PARTY>
.ROPE?>
<COND (<NOT ,ROPE-LOWERED?>
<TELL
"You hand the rope over the samurai." CR CR>
<MOVE ,YABU-KIMONO ,SEARCH-PARTY>
<PERFORM ,V?LOWER ,YABU-KIMONO>
<RTRUE>)
(ELSE
<TELL
"They already are holding the rope." CR>)>)
(<AND <P? TIE YABU-KIMONO> .ROPE?>
<COND (<PRSI? ,LG-CLIFF>
<TELL
"There are no good places here to tie the rope. The rock is loose
and crumbly with no really large boulders." CR>)
(<PRSI? ,SEARCH-PARTY>
<TELL
"The samurai are more than strong enough to hold the rope without tying
it to them." CR>)
(<PRSI? ME CLOTHES>
<TELL
"Tying the rope to yourself won't give enough leverage if Yabu ever
reaches it." CR>)
(,PRSI
<TELL
"Tying the rope to " THE ,PRSI " isn't very helpful." CR>)>)
(<OR <VERB? LOWER>
<P? (THROW GIVE PUT) * (LG-YABU LG-CLIFF)>>
<COND (,ROPE-LOWERED?
<TELL
"You can't lower the rope any further." CR>)
(<NOT .ROPE?>
<TELL
"You lower the kimono. It's nowhere long enough to reach Yabu." CR>)
(ELSE
<COND (<IN? ,YABU-KIMONO ,SEARCH-PARTY>
<TELL
"You pantomime the action, and the samurai lower the rope towards Yabu. ">)
(<IN? ,YABU-KIMONO ,WINNER>
<TELL
"With the help of the samurai, you lower the rope towards Yabu. ">)
(ELSE
<TELL
"No one has the rope." CR>
<RTRUE>)>
<SETG ROPE-LOWERED? T>
<COND (<L? <GETP ,YABU-KIMONO ,P?COUNT> 8>
<TELL
"It's too short, about twenty feet too short." CR>)
(<NOT ,YABU-WARNED?>
<TELL
"It's just a little short. If you could find some way for him to climb a
little higher, just a few feet, he could reach the rope. But it's hopeless,
even if there were a way, because he's sitting quietly, composed and waiting
for death. The fool won't even pay attention, and the rest of the search
party has given up too, believing he can't reach the rope, no matter
what. Fools! There must be a way!" CR>)
(ELSE
<TELL
"It's inches too short, but stretching and scrambling just a little
higher, Yabu reaches it!" CR>)>)>)
(<VERB? RAISE MOVE>
<COND (,ROPE-LOWERED?
<COND (<QUEUED? I-YABU-RETURNS>
<TELL
"With Yabu clinging to it, you can't raise it." CR>)
(ELSE
<SETG ROPE-LOWERED? <>>
<COND (<IN? ,YABU-KIMONO ,SEARCH-PARTY>
<TELL
"You signal the search party, and they raise the rope." CR>)
(<IN? ,YABU-KIMONO ,WINNER>
<TELL
"You raise the rope." CR>)
(ELSE
<TELL
"No one is holding the rope." CR>)>)>)
(<NOT .ROPE?>
<TELL "You lift the kimono." CR>)
(ELSE
<TELL G"It already is." CR>)>)>>
<OBJECT SLIPPERS
(DESC "slippers")
(SYNONYM SLIPPERS SLIPPER)
(ADJECTIVE THONG)
(FLAGS TAKEBIT WEARABLE NOABIT PLURAL)>
<OBJECT LOINCLOTH
(DESC "loincloth")
(SYNONYM LOINCLOTH CLOTH CLOTHS)
(ADJECTIVE LOIN)
(FLAGS NDESCBIT TAKEBIT WEARABLE PLURAL SCOREBIT)
(ACTION LOINCLOTH-F)>
<ROUTINE LOINCLOTH-F ()
<COND (<OR <VERB? POINT TAKE>
<P? TIE LOINCLOTH YABU-KIMONO>
<P? TIE YABU-KIMONO LOINCLOTH>>
<REMOVE ,LOINCLOTH>
<PUTP ,YABU-KIMONO ,P?COUNT 8>
<TELL
"You point to the loincloths, and the samurai immediately understand. They
remove them and tie them together, adding them to the rope. It is
now significantly longer.">
<COND (,ROPE-LOWERED?
<TELL
" The rope now reaches almost to Yabu. If he could just ">
<COND (<QUEUED? I-YABU-RETURNS> <TELL "stretch">)
(ELSE <TELL "climb a little higher">)>
<TELL ", he might be able to reach it.">)>
<CRLF>
<SCORE-OBJECT ,LOINCLOTH>)>>
<OBJECT YABU-SWORDS
(DESC "swords")
(OWNER YABU)
(SYNONYM SWORDS SWORD)
(FLAGS TAKEBIT TRYTAKEBIT WEARABLE WEAPONBIT NOABIT PLURAL)
(GENERIC GENERIC-SWORD-F)
(ACTION YABU-SWORDS-F)>
<ROUTINE YABU-SWORDS-F ()
<COND (<VERB? TAKE THROW USE>
<TELL
"The samurai won't let you take Yabu's swords. A samurai's swords are his
most precious possession." CR>)>>
<ROUTINE I-YABU-RETURNS ()
<ZLINES ,YABU-CNT
(<TELL CR
"Yabu staggers up. He half slides, half crawls, dragging the unconscious
Rodrigues with him through the surf-disturbed shallows to the bottom of
the cliff. He finds the ledge. It's barely a foot wide. Painfully he
shoves Rodrigues onto it, almost losing him once, then hauls himself up." CR>)
(DELAY
<COND (<NOT ,ROPE-LOWERED?>
<COND (<G? ,DELAY-CNT 2>
<SETG ROPE-LOWERED? T>
<TELL CR
"The samurai lower the rope to Yabu." CR>
<RTRUE>)
(ELSE
<TELL CR
"The rope isn't lowered! Yabu can't reach it, even from the ledge." CR>
<RTRUE>)>)
(<L? <GETP ,YABU-KIMONO ,P?COUNT> 8>
<TELL CR
"Yabu reaches for the rope, but it's twenty feet short." CR>
<RTRUE>)>)
(<MOVE ,YABU ,LEDGE-3>
<MOVE ,RODRIGUES ,LEDGE-3>
<TELL CR
"Yabu stretches for the rope, pulling himself partway up the cliff, carrying
Rodrigues. Twice he loses the pilot, but each time Yabu drags him back. His
position is precarious, but you can see that the bottom of the cliff is now
completely under water." CR>)
(<MOVE ,YABU ,GENERIC-OBJECTS>
<MOVE ,RODRIGUES ,GENERIC-OBJECTS>
<TELL CR
"For almost an hour Yabu sets himself against the sea and against his
failing body, and then, in the dusk, he reaches a wide ledge where he's safe
from the sea and he can rest and not hang from the makeshift, fraying rope.|
|
Just then, the samurai Yabu sent to the galley returns with coils of
strong rope. They make a cradle and shin down the cliff with a skill that
you have never seen ashore. Quickly Rodrigues is brought aloft, and then
Yabu. You look at him.|
|
\"Thank you,\" you say finally, pointing at Rodrigues. \"Thank you,
Yabu-san.\" You bow. That's for your courage, you black-eyed son of a
whore.|
|
Yabu bows back, stiffly. But inside, he smiles." CR>
<NEXT-SCENE>)>>
<ROUTINE VOYAGE-AFTER-F ()
<TELL
"The rest of the voyage to Osaka is uneventful.|
|
Rodrigues is tended by a Japanese doctor with strange ideas, such as
keeping the air in the cabin fresh, but begins to recover anyway.|
|
\"Ah, Ingeles,\" he sighs. \"If I live, it is because of a heretic and a
Japman.\" Then he turns serious. \"Japan's an upside-down
world. They have a saying, that a man has a false heart in his mouth for
all the world to see, another in his breast to show his very special
friends and family, and the real one, the true one, the secret one,
which is never known to anyone except himself alone. So never forget
they're six-faced and have three hearts!\"" CR>>
<END-SEGMENT>