3131 lines
96 KiB
Plaintext
3131 lines
96 KiB
Plaintext
"ERASMUS for
|
||
SHOGUN
|
||
(c) Copyright 1988 Infocom, Inc. All Rights Reserved."
|
||
|
||
<FILE-FLAGS SENTENCE-ENDS?>
|
||
|
||
<BEGIN-SEGMENT ERASMUS>
|
||
|
||
;<CONSTANT CREW
|
||
<LTABLE HENDRIK VINCK MAETSUKKER GINSEL SPILLBERGEN VAN-NEKK
|
||
CROOCQ SONK ROPER PIETERZOON SALAMON>>
|
||
|
||
<OBJECT COMPASS
|
||
(SCENE S-ERASMUS)
|
||
(DESC "compass")
|
||
(SYNONYM COMPASS)
|
||
(ADJECTIVE MAGNETIC)
|
||
(FLAGS TAKEBIT READBIT)
|
||
(ACTION COMPASS-F)>
|
||
|
||
<ROUTINE COMPASS-F ()
|
||
<COND (<VERB? EXAMINE READ>
|
||
<TELL
|
||
"The compass points north. From it you can see that the course is ">
|
||
<TELL-DIRECTION ,SHIP-DIRECTION>
|
||
<TELL " and that the wind is out of the east, perhaps
|
||
a point or two south of east." CR>)>>
|
||
|
||
<OBJECT DECK
|
||
(SCENE S-ERASMUS)
|
||
(LOC LOCAL-GLOBALS)
|
||
(DESC "deck")
|
||
(SYNONYM DECK ABOVE WATCH POST POSTS)
|
||
(FLAGS NDESCBIT TAKEBIT)
|
||
(GENERIC GENERIC-DECK-F)
|
||
(ACTION DECK-F)>
|
||
|
||
<ROUTINE DECK-F ()
|
||
<COND (<VERB? EXAMINE>
|
||
<COND (<NOUN-USED? ,PRSO ,W?WATCH>
|
||
<COND (<FSET? ,MAETSUKKER ,SCOREBIT>
|
||
<TELL
|
||
"The men on watch are tired." CR>)
|
||
(ELSE
|
||
<TELL
|
||
"The watch is as fresh as can be expected." CR>)>)>)
|
||
(<VERB? TAKE>
|
||
<COND (<NOUN-USED? ,PRSO ,W?WATCH>
|
||
<TELL
|
||
"You are too tired to take the watch yourself." CR>)
|
||
(ELSE
|
||
<TELL "You can't take that." CR>)>)
|
||
(<VERB? RELEASE>
|
||
<COND (<HERE? ,BELOW-DECKS>
|
||
<TELL
|
||
"You should probably send some of these men out to relieve the
|
||
watch." CR>)
|
||
(ELSE
|
||
<TELL
|
||
,YOU-HAVE-TO "send some fresh crewmen out to do that." CR>)>)
|
||
(<VERB? WALK-UNDER>
|
||
<DO-WALK ,P?FORE>)
|
||
(<VERB? STEP-ON BOARD>
|
||
<DO-WALK ,P?OUT>)>>
|
||
|
||
<OBJECT REEF
|
||
(LOC LOCAL-GLOBALS)
|
||
(OWNER REEF)
|
||
(DESC "reef")
|
||
(SYNONYM REEF REEFS REEF-TOPS ROCKS GAP BREAK)
|
||
(FLAGS NDESCBIT SCOREBIT)
|
||
(ACTION REEF-F)>
|
||
|
||
<ROUTINE REEF-F ()
|
||
<COND (<VERB? EXAMINE>
|
||
<COND (<SCENE? ,S-ANJIRO ,S-RODRIGUES>
|
||
<TELL
|
||
"The reefs are over the horizon, invisible." CR>)
|
||
(<NOT ,REEF-FLAG>
|
||
<TELL
|
||
"You've been avoiding reefs for days. Right now the visibility is
|
||
terrible; only a few hundred yards. You couldn't see a reef unless
|
||
you were almost on top of it. A horrible thought!" CR>)
|
||
(<AND <EQUAL? ,SHIP-X 8> ;"10"
|
||
<EQUAL? ,SHIP-Y 2>>
|
||
<TELL
|
||
G"There's a break in the reef ahead and to starboard!" CR>)
|
||
(<AND <EQUAL? ,SHIP-X 6> ;"11"
|
||
<EQUAL? ,SHIP-Y 2>>
|
||
<TELL
|
||
"The gap in the reef is to port." CR>)
|
||
(<AND <EQUAL? ,SHIP-Y 1> ;"12"
|
||
<EQUAL? ,SHIP-X 5>>
|
||
<TELL
|
||
"The neck of the pass is right here, right to starboard, a maelstrom
|
||
of foaming sea and crashing combers." CR>)
|
||
(<AND <EQUAL? ,SHIP-Y 1>
|
||
<G? ,SHIP-X 0>
|
||
<L? ,SHIP-Y 5>>
|
||
<TELL
|
||
"The reef surrounds you on both sides, a terrifyingly narrow channel
|
||
hemmed in by rocks and smashed by waves." CR>)
|
||
(<EQUAL? ,REEF-X ,REEF-Y>
|
||
<TELL
|
||
"The reef is barely two hundred yards ">
|
||
<TELL-REEF-DIR>
|
||
<TELL ", great black claws of rocks
|
||
pounded by the hungry sea. A foaming line of surf looms ">
|
||
<TELL-REEF-DIR>
|
||
<TELL ", broken intermittently ">
|
||
<COND (<EQUAL? ,SHIP-DIRECTION ,P?WEST ,P?NW>
|
||
<TELL "to port">)
|
||
(<EQUAL? ,SHIP-DIRECTION ,P?SW>
|
||
<TELL "to starboard">)
|
||
(ELSE
|
||
<TELL "by too-narrow channels">)>
|
||
<TELL "." CR>)
|
||
(ELSE
|
||
<TELL
|
||
"The reef is off to the west, veiled in storm but revealed by
|
||
breakers." CR>)>)
|
||
(<VERB? TURN-AROUND>
|
||
<TELL ,YOU-HAVE-TO G"specify a direction." CR>)
|
||
(<VERB? TURN-TOWARD TURN-AWAY AVOID>
|
||
<COND (,REEF-FLAG
|
||
<COND (<VERB? TURN-TOWARD>
|
||
<SETG P-DIRECTION ,P?STARBOARD>)
|
||
(ELSE
|
||
<SETG P-DIRECTION ,P?PORT>)>
|
||
<PERFORM ,V?TURN ,WHEEL ,INTDIR>
|
||
<RTRUE>)>)>>
|
||
|
||
<ROUTINE TELL-REEF-DIR ()
|
||
<COND (<EQUAL? ,SHIP-DIRECTION ,P?WEST>
|
||
<TELL "ahead">)
|
||
(<EQUAL? ,SHIP-DIRECTION ,P?SW>
|
||
<TELL "to starboard">)
|
||
(<EQUAL? ,SHIP-DIRECTION ,P?NW>
|
||
<TELL "to port">)
|
||
(ELSE <TELL "away">)>>
|
||
|
||
<OBJECT FORESAILS
|
||
(LOC LOCAL-GLOBALS)
|
||
(DESC "foresails")
|
||
(SYNONYM FORESAILS SAILS SAIL HALLIARD)
|
||
(ADJECTIVE FORE)
|
||
(FLAGS NDESCBIT SCOREBIT)
|
||
(ACTION FORESAILS-F)>
|
||
|
||
<ROUTINE FORESAILS-F ()
|
||
<COND (<VERB? EXAMINE>
|
||
<COND (<FSET? ,FORESAILS ,TRYTAKEBIT>
|
||
<TELL "The foremast has snapped. You may be able
|
||
to survive without it for a while, though." CR>)
|
||
(ELSE
|
||
<TELL
|
||
"In this storm, only the barest storm sails are necessary, but you
|
||
can't get by with none. The foresails ">
|
||
<COND (<FSET? ,PRSO ,RMUNGBIT>
|
||
<TELL "have been torn away!" CR>)
|
||
(ELSE
|
||
<TELL "are barely hanging together." CR>)>)>)
|
||
(<P? ASK-ABOUT * FORESAILS>
|
||
<TELL
|
||
D ,PRSO " replies, \"Foresails only in a storm like this, by
|
||
God! Anything more and we'd lose the mast!\"" CR>)
|
||
(<VERB? LOWER>
|
||
<COND (<OR <FSET? ,FORESAILS ,RMUNGBIT>
|
||
<FSET? ,FORESAILS ,TRYTAKEBIT>>
|
||
<TELL "No need for that!" CR>)
|
||
(ELSE
|
||
<TELL
|
||
"Without foresails, there would be no control, and the ship would be
|
||
doomed. You wisely reconsider." CR>)>)
|
||
(<VERB? RAISE REPAIR>
|
||
<COND (<FSET? ,FORESAILS ,TRYTAKEBIT>
|
||
<TELL
|
||
"The mast itself has snapped, there's no way to repair the sails!" CR>)
|
||
(<NOT <FSET? ,FORESAILS ,RMUNGBIT>>
|
||
<COND (<FSET? ,FORESAILS ,SCOREBIT>
|
||
<TELL
|
||
"The foresails are still holding on, the maximum sail that the
|
||
ship can tolerate in this terrific gale." CR>)
|
||
(ELSE
|
||
<TELL
|
||
"The new foresails have already been raised." CR>)>)
|
||
(,CREW-ON-DECK?
|
||
<FCLEAR ,FORESAILS ,RMUNGBIT>
|
||
<TELL
|
||
"You yell to the crewmen, \"Fores'ls ho!\" Foot by foot they haul
|
||
themselves into the shrouds of the foremast rigging, dragging new
|
||
sails aloft as others below
|
||
lean on the ropes to give them a hand. They curse the sail out of
|
||
its ropes. It falls open, cracking like a cannonade as the wind
|
||
fills it, and the ship lurches. Now you have some control!" CR>
|
||
<SCORE-OBJECT ,FORESAILS>)
|
||
(<OR <IN? ,HENDRIK ,ON-DECK>
|
||
<IN? ,GINSEL ,ON-DECK>
|
||
<IN? ,VINCK ,ON-DECK>
|
||
<IN? ,MAETSUKKER ,ON-DECK>>
|
||
<QUEUE I-HANDS 2>
|
||
<TELL
|
||
"The crewmen on deck try to obey, but there are too few of them! You
|
||
need more crew on deck! They ring the bell. \"All hands on deck!\"
|
||
someone screams." CR>)
|
||
(ELSE
|
||
<TELL
|
||
"There's no one here to carry out your order!" CR>)>)>>
|
||
|
||
<OBJECT LG-ERASMUS
|
||
(LOC LOCAL-GLOBALS)
|
||
(OWNER BLACKTHORNE)
|
||
(DESC "Erasmus")
|
||
(SYNONYM ERASMUS SHIP BOAT)
|
||
(FLAGS NDESCBIT THE ;PERSON FEMALE VEHBIT SCOREBIT)
|
||
(GENERIC GENERIC-SHIP-F)
|
||
(ACTION LG-ERASMUS-F)>
|
||
|
||
<ROUTINE LG-ERASMUS-F ("OPT" (RARG <>))
|
||
<COND (<RARG? SUBJ>
|
||
<RFALSE>)
|
||
(<P? (TELL ASK-ABOUT) LG-ERASMUS>
|
||
<TELL "You have been at sea too long!" CR>)
|
||
(<VERB? EXAMINE>
|
||
<COND (<SCENE? ,S-ANJIRO>
|
||
<COND (<HERE? ,ANJIRO ,ANJIRO-WATERFRONT
|
||
,ANJIRO-HARBOR ,AT-ERASMUS>
|
||
<TELL
|
||
"The " I "Erasmus"" is anchored neatly, fifty yards from shore, in good
|
||
water, with three bow cables. You can see native men aboard." CR>
|
||
<COND (<NOT <FSET? ,RUTTER ,RMUNGBIT>>
|
||
<FSET ,RUTTER ,RMUNGBIT>
|
||
<TELL CR
|
||
"With a start you realize you don't know where your rutters are! Can
|
||
they still be on the ship? They are your most precious possessions,
|
||
and the stolen Portuguese one is a death sentence in any Catholic
|
||
country!" CR>)>
|
||
<RTRUE>)
|
||
(ELSE
|
||
<TELL
|
||
"You are surprised at how neat the ship is. The tattered sails are down
|
||
and tied in place. But the lashings are different from any you've ever
|
||
seen. You presume the Japaners have made the vessel secure." CR>)>)
|
||
(<FSET? ,FORESAILS ,TRYTAKEBIT>
|
||
<TELL
|
||
"The ship is without a foremast!" CR>)
|
||
(<FSET? ,FORESAILS ,RMUNGBIT>
|
||
<TELL
|
||
"Right now, the "I"Erasmus"" is missing her foresails." CR>)
|
||
(ELSE
|
||
<TELL
|
||
"The " I "Erasmus"" is a pisscutter of a ship, lean and taut as a
|
||
greyhound. If she can make it to port, God willing, all will be
|
||
well. Otherwise, you're a dead man." CR>)>)
|
||
(<AND <VERB? DROP>
|
||
<EQUAL? ,P-PRSA-WORD ,W?ABANDON>
|
||
<SCENE? ,S-ERASMUS>>
|
||
<TELL
|
||
G"That would be suicide in this storm." CR>)
|
||
(<VERB? WALK-TO>
|
||
<COND (<AND <SCENE? ,S-ANJIRO ,S-RODRIGUES>
|
||
<NOT <IN? ,PLAYER ,SMALL-BOAT>>>
|
||
<TELL
|
||
,YOU-HAVE-TO "use a boat to do that." CR>)>)
|
||
(<VERB? LEAP DIVE>
|
||
<COND (<HERE? ,ON-DECK ,BRIDGE-OF-ERASMUS>
|
||
<COND (<SCENE? ,S-ERASMUS>
|
||
<TELL
|
||
G"That would be suicide in this storm." CR>)
|
||
(ELSE
|
||
<TELL
|
||
"You hurry over the side and down the gangway!" CR CR>
|
||
<DO-WALK ,P?DOWN>)>)
|
||
(ELSE
|
||
<TELL
|
||
"You can hardly jump overboard from here!" CR>)>)
|
||
(<AND <VERB? DISEMBARK EXIT>
|
||
<SCENE? ,S-ANJIRO ,S-RODRIGUES>>
|
||
<DO-WALK ,P?DOWN>)
|
||
(<VERB? POINT>
|
||
<COND (<EQUAL? ,OMI-QUESTION 1 2>
|
||
<TELL
|
||
"\"That's no answer, heretic!\"" CR>)
|
||
(<IN? ,SEBASTIO ,HERE>
|
||
<TELL
|
||
"\"Your ship has been well cared for, pirate!\"" CR>)>)
|
||
(<VERB? BOARD CLIMB-ON THROUGH CLIMB-UP>
|
||
<COND (<HERE? ,AT-ERASMUS>
|
||
<DO-WALK ,P?UP>)
|
||
(<HERE? ,ON-DECK ,BRIDGE-OF-ERASMUS
|
||
,PASSAGEWAY ,PILOTS-CABIN ,MATES-CABIN
|
||
,CAPTAINS-CABIN>
|
||
<TELL "You already are!" CR>)
|
||
(ELSE
|
||
<YOULL-HAVE-TO "get to it">)>)
|
||
(<VERB? TURN>
|
||
<COND (<HERE? ,BRIDGE-OF-ERASMUS>
|
||
<PERFORM ,V?TURN ,WHEEL ,PRSI>
|
||
<RTRUE>)
|
||
(<SCENE? ,S-ERASMUS>
|
||
<ARENT-WHERE-PRSO-IS>
|
||
<FRUSTRATED <COND (<FSET? ,HENDRIK ,DEAD> ,VINCK)
|
||
(ELSE ,HENDRIK)>>)>)
|
||
(<VERB? REPAIR>
|
||
<MORE-SPECIFIC>)
|
||
(<HOSTILE-VERB?>
|
||
<TELL "What an infantile idea." CR>)>>
|
||
|
||
<ROUTINE ARENT-WHERE-PRSO-IS ()
|
||
<TELL
|
||
"You aren't on the bridge, where " THE ,PRSO " is.">>
|
||
|
||
<OBJECT GANGWAY
|
||
(LOC LOCAL-GLOBALS)
|
||
(DESC "gangway")
|
||
(SYNONYM GANGWAY)
|
||
(FLAGS NDESCBIT)
|
||
(ACTION GANGWAY-F)>
|
||
|
||
<ROUTINE GANGWAY-F ()
|
||
<COND (<VERB? CLIMB-UP>
|
||
<DO-WALK ,P?UP>)
|
||
(<VERB? CLIMB-DOWN>
|
||
<DO-WALK ,P?DOWN>)
|
||
(<VERB? CLIMB-FOO CLIMB-ON>
|
||
<COND (<HERE? ,AT-ERASMUS ,WHARF>
|
||
<DO-WALK ,P?UP>)
|
||
(<HERE? ,ON-DECK ,MAIN-DECK>
|
||
<DO-WALK ,P?DOWN>)>)>>
|
||
|
||
<GLOBAL STORM-DELAY? <>>
|
||
|
||
<GLOBAL SHIP-DIRECTION <>>
|
||
<GLOBAL SHIP-X 21>
|
||
<GLOBAL SHIP-Y 9>
|
||
|
||
<GLOBAL SHIP-COURSE <>>
|
||
|
||
;<GLOBAL SHIP-DEBUG <>> ;"T to print out ship position stuff"
|
||
|
||
;<ROUTINE SHIP-INFO ()
|
||
<TELL
|
||
"[Course ">
|
||
<TELL-DIRECTION ,SHIP-DIRECTION>
|
||
<TELL "; wheel ">
|
||
<TELL-DIRECTION ,SHIP-COURSE>
|
||
<TELL "; X=" N ,SHIP-X ",Y=" N ,SHIP-Y "; Reef X=" N ,REEF-X ",Y=" N ,REEF-Y "]" CR>>
|
||
|
||
<ROUTINE QUEUE-STORM ("AUX" S DONE?)
|
||
<SET S <GETPT <GET ,SCENE-LOCS ,SCENE> ,P?SCORE>>
|
||
<SET S <GETB .S 0>>
|
||
<SET DONE? <DONE-BELOW?>>
|
||
<COND (<L? ,STORM-DELAY? 0>
|
||
<SETG STORM-DELAY? <+ ,STORM-DELAY? 1>>
|
||
<QUEUE I-STORM 30>)
|
||
(<AND ,STORM-DELAY? ;"delay storm if loser increased score"
|
||
<FSET? ,BELL ,SCOREBIT> ;"unless we're in height of storm"
|
||
<G? .S ,STORM-DELAY?>
|
||
<NOT .DONE?>>
|
||
<SETG STORM-DELAY? .S>
|
||
<QUEUE I-STORM 10>
|
||
<RFALSE>)
|
||
(<OR <FSET? ,HERE ,OUTSIDE> ;"storm fast if outside"
|
||
.DONE? ;"or hanging around below decks too long">
|
||
<SETG STORM-DELAY? .S>
|
||
<QUEUE I-STORM
|
||
<COND (<OR ,REEF-FLAG <EQUAL? .S 7>> 4)
|
||
(<AND <FSET? ,HERE ,OUTSIDE> .DONE?> 3)
|
||
(ELSE 9)>>)
|
||
(<AND <EQUAL? ,SHIP-COURSE ,P?PORT ,P?STARBOARD> ;"or if stupid"
|
||
<NOT <FSET? ,WHEEL ,RMUNGBIT>>
|
||
<NOT <FSET? ,HENDRIK ,TRYTAKEBIT>>>
|
||
<QUEUE I-STORM 2>)
|
||
(ELSE ;"storm slow if inside"
|
||
<SETG STORM-DELAY? .S>
|
||
<QUEUE I-STORM
|
||
<COND (,REEF-FLAG 7) (ELSE 15)>>)>>
|
||
|
||
<GLOBAL WHEEL-SPINNING? <>>
|
||
|
||
<ROUTINE I-STORM ()
|
||
<COND (<NOT <QUEUE-STORM>> ;"returns false if storm-delay in effect"
|
||
<RFALSE>)>
|
||
<COND (<EQUAL? ,SHIP-COURSE ,P?FORE>)
|
||
(<EQUAL? ,SHIP-COURSE ,P?PORT>
|
||
<COND (<EQUAL? ,SHIP-DIRECTION ,P?WEST>
|
||
<SETG SHIP-DIRECTION ,P?SW>)
|
||
(<EQUAL? ,SHIP-DIRECTION ,P?SW>
|
||
<SETG SHIP-DIRECTION ,P?SOUTH>)
|
||
(<EQUAL? ,SHIP-DIRECTION ,P?NW>
|
||
<SETG SHIP-DIRECTION ,P?WEST>)
|
||
(<EQUAL? ,SHIP-DIRECTION ,P?NORTH>
|
||
<SETG SHIP-DIRECTION ,P?NW>)>)
|
||
(<EQUAL? ,SHIP-COURSE ,P?STARBOARD>
|
||
<COND (<EQUAL? ,SHIP-DIRECTION ,P?WEST>
|
||
<SETG SHIP-DIRECTION ,P?NW>)
|
||
(<EQUAL? ,SHIP-DIRECTION ,P?SW>
|
||
<SETG SHIP-DIRECTION ,P?WEST>)
|
||
(<EQUAL? ,SHIP-DIRECTION ,P?NW>
|
||
<SETG SHIP-DIRECTION ,P?NORTH>)
|
||
(<EQUAL? ,SHIP-DIRECTION ,P?SOUTH>
|
||
<SETG SHIP-DIRECTION ,P?SW>)>)>
|
||
<COND (<EQUAL? ,SHIP-DIRECTION ,P?WEST>
|
||
<COND (<OR <FSET? ,FORESAILS ,RMUNGBIT>
|
||
<AND <EQUAL? ,SHIP-Y 1>
|
||
<L=? ,SHIP-X 7>>>
|
||
<SETG SHIP-X <- ,SHIP-X 1>>)
|
||
(ELSE
|
||
<SETG SHIP-X <- ,SHIP-X 2>>)>)
|
||
(<EQUAL? ,SHIP-DIRECTION ,P?SW>
|
||
<SETG SHIP-X <- ,SHIP-X 1>>
|
||
<SETG SHIP-Y <- ,SHIP-Y 1>>)
|
||
(<EQUAL? ,SHIP-DIRECTION ,P?NW>
|
||
<SETG SHIP-X <- ,SHIP-X 1>>
|
||
<SETG SHIP-Y <+ ,SHIP-Y 1>>)
|
||
(<EQUAL? ,SHIP-DIRECTION ,P?NORTH ,P?SOUTH>
|
||
<SHIP-BROADSIDE>)>
|
||
<COND (<NOT <REEF-DISTANCE>>
|
||
<COND (<G? ,SHIP-X 6>
|
||
<TELL CR
|
||
"The waiting spines of the reef tear into the ship!">
|
||
<COND (<FSET? ,HERE ,OUTSIDE>
|
||
<TELL "The gap is tantalizingly
|
||
close, but you missed it.">)>
|
||
<TELL "Two years out from England, and it ends here in
|
||
a watery grave." CR>
|
||
<JIGS-UP>)
|
||
(<EQUAL? ,SHIP-X 6>
|
||
<TELL CR
|
||
"The ship smashes into the ">
|
||
<COND (<FSET? ,HERE ,OUTSIDE>
|
||
<TELL "side of the gap in the ">)>
|
||
<TELL "reef, tearing a huge
|
||
rent in the hull. Water pours in, and the stern crashes against the rocks">
|
||
<COND (<FSET? ,HERE ,OUTSIDE>
|
||
<TELL
|
||
", throwing you to the deck. Suddenly the mainmast gives way. It's crashing
|
||
down upon you">)>
|
||
<TELL "!" CR>
|
||
<JIGS-UP>)
|
||
(ELSE
|
||
<CRLF>
|
||
<COND (<FSET? ,HERE ,OUTSIDE>
|
||
<TELL "You steer">)
|
||
(ELSE
|
||
<TELL "The ship steers">)>
|
||
<TELL
|
||
" directly into the waiting rocks!" CR>
|
||
<JIGS-UP>)>
|
||
<RFATAL>)>
|
||
<COND (<AND <L? ,SHIP-X 19>
|
||
<NOT <GETP ,BLACKTHORNE ,P?HEALTH>>>
|
||
<QUEUE I-TIRED-WARNING 5 T>
|
||
<QUEUE I-TIRED 10 T>)>
|
||
;<COND (,SHIP-DEBUG <SHIP-INFO>)>
|
||
<COND (,REEF-FLAG)
|
||
(<REEF-SIGHTED?>
|
||
<SETG REEF-FLAG T>
|
||
<CRLF>
|
||
<COND (<FSET? ,HERE ,OUTSIDE>
|
||
<COND (<IN? ,GINSEL ,BELOW-DECKS>
|
||
<TELL "The bow lookout">)
|
||
(ELSE
|
||
<TELL "Ginsel, the bow lookout,">)>
|
||
<TELL " yells \"Rotz vooruit!\" Reef
|
||
ahead! A foaming line of surf stretches ahead of you,
|
||
broken intermittently to port!" CR>
|
||
<COND (<AND <HERE? ,BRIDGE-OF-ERASMUS>
|
||
<FSET? ,HENDRIK ,RMUNGBIT>>
|
||
<FCLEAR ,HENDRIK ,RMUNGBIT>
|
||
<TELL CR
|
||
"The yelling wakes Hendrik." CR>)>)
|
||
(ELSE
|
||
<FCLEAR ,HENDRIK ,RMUNGBIT>
|
||
<TELL
|
||
"Faintly, over the roar of the storm, you hear the terrified
|
||
cry \"Rotz vooruit!\" Reef ahead! ">
|
||
<COND (<HERE? ,BELOW-DECKS>
|
||
<TELL
|
||
"The crewmen pull themselves painfully from their bunks. \"We're
|
||
dead men!\" screams one.">
|
||
<COND (<IN? ,VINCK ,HERE>
|
||
<MOVE ,VINCK ,ON-DECK>
|
||
<TELL
|
||
"\"We'd better go above, Pilot,\" urges Vinck as he shuffles toward
|
||
the door." CR>)
|
||
(ELSE <CRLF>)>)
|
||
(<HERE? ,CAPTAINS-CABIN>
|
||
<TELL
|
||
"\"Get out there, Pilot!\" Spillbergen orders you. \"We'll all die
|
||
thanks to you! Out!\"" CR>)
|
||
(ELSE
|
||
<TELL
|
||
"You sense from the terror in the voice that the reefs are close.">
|
||
<COND (<IN? ,GINSEL ,BELOW-DECKS>
|
||
<TELL
|
||
"Has the watch been asleep? All too likely!">)>
|
||
<CRLF>)>)>
|
||
<RTRUE>)>
|
||
<COND (<AND <EQUAL? ,SHIP-Y 9>
|
||
<EQUAL? ,SHIP-X 19>>
|
||
<QUEUE I-HENDRIK -1>
|
||
<FCLEAR ,WHEEL ,ONBIT>
|
||
<TELL CR
|
||
"The ship heels in a sudden squall, throwing you ">
|
||
<COND (<FSET? ,WHEEL ,RMUNGBIT>
|
||
<COND (<HERE? ,BRIDGE-OF-ERASMUS>
|
||
<TELL
|
||
"from your post at the wheel." CR>)
|
||
(ELSE
|
||
<TELL "to the deck." CR>)>)
|
||
(ELSE
|
||
<COND (<HERE? ,BRIDGE-OF-ERASMUS>
|
||
<TELL
|
||
"from your post at the wheel, which">)
|
||
(ELSE
|
||
<TELL "to the deck. The wheel">)>
|
||
<SETG SHIP-COURSE ,P?PORT>
|
||
<SETG SHIP-DIRECTION ,P?SW>
|
||
<QUEUE I-BROADSIDE 4>
|
||
<QUEUE I-SHIP-BROADSIDE 8>
|
||
<TELL
|
||
", uncontrolled, begins to turn to port." CR>)>
|
||
<RTRUE>)
|
||
(<OR <EQUAL? ,SHIP-X 18>
|
||
<AND <EQUAL? ,SHIP-Y 9>
|
||
<EQUAL? ,SHIP-X 17>>>
|
||
<TELL CR
|
||
"The wind freshens even more, and the ship lurches." CR>
|
||
<RTRUE>)
|
||
(<AND <EQUAL? ,SHIP-Y 8>
|
||
<EQUAL? ,SHIP-X 14>>
|
||
<COND (<FSET? ,HERE ,OUTSIDE>
|
||
<TELL CR
|
||
"A forepeak halliard snaps, and the highest top gallant spar is carried
|
||
away into the sea, ">
|
||
<COND (<EQUAL? ,SHIP-DIRECTION ,P?SW>
|
||
<TELL
|
||
"but the ship is now making way parallel to the reef." CR>)
|
||
(ELSE
|
||
<TELL
|
||
"and the ship continues to approach the waiting reef." CR>)>)>)
|
||
(<AND <EQUAL? ,SHIP-Y 7>
|
||
<EQUAL? ,SHIP-X 13>>
|
||
<COND (<FSET? ,HERE ,OUTSIDE>
|
||
<CRLF>
|
||
<COND (<EQUAL? ,SHIP-DIRECTION ,P?SW>
|
||
<TELL
|
||
"The ship runs parallel to the reef, barely staying away from it, and a huge following wave towers over the ship!" CR>)
|
||
(ELSE
|
||
<TELL
|
||
"The ship is being carried still closer to the reef, and a huge wave is
|
||
approaching from the starboard side!" CR>)>)>)
|
||
(<AND <EQUAL? ,SHIP-Y 6>
|
||
<EQUAL? ,SHIP-X 12>>
|
||
<COND (<NOT <EQUAL? ,SHIP-DIRECTION ,P?SW>>
|
||
<FSET ,LG-ERASMUS ,RMUNGBIT>)>
|
||
<COND (<FSET? ,HERE ,OUTSIDE>
|
||
<TELL CR
|
||
"Another halliard gives, block and tackle swinging wildly. The wave breaks
|
||
over the ship! ">
|
||
<COND (<EQUAL? ,SHIP-DIRECTION ,P?SW>
|
||
<TELL "It looks for a moment like you're
|
||
going to founder, but she shakes it off." CR>)
|
||
(ELSE
|
||
<TELL
|
||
"The force of the wave drives the ship onto the reef, the sharp
|
||
rocks tearing into the wooden hull! In what seems like an instant, she's
|
||
sinking!" CR>)>
|
||
<RTRUE>)>)
|
||
(<AND <EQUAL? ,SHIP-Y 5>
|
||
<EQUAL? ,SHIP-X 11>>
|
||
<FSET ,FORESAILS ,RMUNGBIT>
|
||
<COND (<FSET? ,HERE ,OUTSIDE>
|
||
<CRLF>
|
||
<COND (<EQUAL? ,SHIP-DIRECTION ,P?SW>
|
||
<TELL
|
||
"Another following sea towers above the ship. The ship is wallowing,
|
||
and the foresails are torn away by the tempest." CR>
|
||
<RTRUE>)
|
||
(ELSE
|
||
<JIGS-UP
|
||
"You struggle to stay afloat in the raging sea, but you are too weak to
|
||
fight the waves for long, and are dashed against the rocks.">
|
||
<RFATAL>)>)>)
|
||
(<AND <EQUAL? ,SHIP-Y 4>
|
||
<EQUAL? ,SHIP-X 10>>
|
||
<FSET ,HENDRIK ,DEAD>
|
||
<MOVE ,HENDRIK ,GENERIC-OBJECTS>
|
||
<COND (<FSET? ,HERE ,OUTSIDE>
|
||
<TELL CR
|
||
"This wave comes in stronger than the last. Hendrik is caught and lifted,
|
||
gasping and struggling, into the sea." CR>
|
||
<TELL CR
|
||
"A giant comber throws Hendrik high above the ship, then takes him
|
||
away and pulps him against a rock spine." CR>)>)
|
||
(<AND <EQUAL? ,SHIP-Y 2>
|
||
<EQUAL? ,SHIP-X 8>>
|
||
<COND (<FSET? ,HERE ,OUTSIDE>
|
||
<TELL CR
|
||
G"There's a break in the reef ahead and to starboard!" CR>)>)
|
||
(<AND <EQUAL? ,SHIP-Y 2>
|
||
<EQUAL? ,SHIP-X 6>>
|
||
<COND (<FSET? ,HERE ,OUTSIDE>
|
||
<TELL CR
|
||
"The gulch through the reef is three points to windward, and you aren't gaining
|
||
way! You search desperately for another channel but know there is
|
||
none. The "I"Erasmus"" is heading for the rocks starboard of the gap!" CR>)>)
|
||
(<AND <EQUAL? ,SHIP-Y 1>
|
||
<EQUAL? ,SHIP-X 7>>
|
||
<COND (<FSET? ,HERE ,OUTSIDE>
|
||
<TELL CR
|
||
"The ship is being swept past the gap in the reef!" CR>)>)
|
||
(<AND <EQUAL? ,SHIP-Y 1>
|
||
<EQUAL? ,SHIP-X 5>>
|
||
<COND (<HERE? ,BRIDGE-OF-ERASMUS ,ON-DECK>
|
||
<MOVE ,VINCK ,HERE>)
|
||
(ELSE <MOVE ,VINCK ,BRIDGE-OF-ERASMUS>)>
|
||
<COND (<FSET? ,HERE ,OUTSIDE>
|
||
<TELL CR
|
||
"The ship is gaining way, helped by the fall off from the wind. You are
|
||
holding course parallel to the reef and approaching a narrow gap which
|
||
heads to starboard." CR CR
|
||
"You see Vinck making his way up the companionway to the bridge." CR>)>)
|
||
(<AND <EQUAL? ,SHIP-Y 1>
|
||
<EQUAL? ,SHIP-X 4>
|
||
<EQUAL? ,SHIP-DIRECTION ,P?WEST>>
|
||
<TELL CR
|
||
"There is a wailing, tormented shudder as the keel scrapes the razor
|
||
spines of the reef below!">
|
||
<COND (<NOT <FSET? ,WHEEL ,RMUNGBIT>>
|
||
<SETG WHEEL-SPINNING? T>
|
||
<DEQUEUE I-BROADSIDE>
|
||
<COND (<FSET? ,WHEEL ,ONBIT>
|
||
<FCLEAR ,WHEEL ,ONBIT>
|
||
<COND (<FSET? ,HERE ,OUTSIDE>
|
||
<TELL
|
||
"The"G" wheel spins out of your hands!" CR>)>)
|
||
(ELSE
|
||
<TELL
|
||
"The wheel begins spinning wildly!" CR>)>)>)
|
||
(<AND <EQUAL? ,SHIP-Y 1>
|
||
<EQUAL? ,SHIP-X 3>
|
||
<EQUAL? ,SHIP-DIRECTION ,P?WEST>>
|
||
<COND (<FSET? ,HERE ,OUTSIDE>
|
||
<TELL CR
|
||
"The ship is sucked into a narrow vortex between the rocks. ">
|
||
<COND (<AND <NOT <FSET? ,WHEEL ,ONBIT>>
|
||
<NOT <FSET? ,WHEEL ,RMUNGBIT>>>
|
||
<TELL
|
||
"The wheel spins from side to side, out of control! ">)>
|
||
<FSET ,FORESAILS ,TRYTAKEBIT> ;"can't be repaired"
|
||
<TELL "The bowsprit
|
||
catches a rock and is torn loose! The foremast snaps! The men on deck
|
||
fall on the rigging with axes and cut it adrift as the ship founders
|
||
down the channel." CR>)>)
|
||
(<AND <EQUAL? ,SHIP-Y 1>
|
||
<EQUAL? ,SHIP-X 2>
|
||
<EQUAL? ,SHIP-DIRECTION ,P?WEST>>
|
||
<COND (<AND <NOT <FSET? ,WHEEL ,ONBIT>>
|
||
<NOT <FSET? ,WHEEL ,RMUNGBIT>>>
|
||
<CRLF>
|
||
<JIGS-UP
|
||
"Out of control, the ship spins broadside, and holes against the rocks.">
|
||
<RFATAL>)
|
||
(<FSET? ,HERE ,OUTSIDE>
|
||
<TELL CR
|
||
"The ship is pulled by the waves deeper into the strait, and then
|
||
pushed back by the return, but she's making some progress." CR>)>)
|
||
(<AND <EQUAL? ,SHIP-Y 1>
|
||
<EQUAL? ,SHIP-X 1>
|
||
<EQUAL? ,SHIP-DIRECTION ,P?WEST>>
|
||
<COND (<FSET? ,HERE ,OUTSIDE>
|
||
<TELL CR
|
||
"For an instant, the strait broadens. Ahead, it narrows ominously and
|
||
turns to port." CR>)>)
|
||
(<AND <ZERO? ,SHIP-Y>
|
||
<ZERO? ,SHIP-X>
|
||
<EQUAL? ,SHIP-DIRECTION ,P?SW>>
|
||
<DEQUEUE I-STORM>
|
||
<COND (<FSET? ,HERE ,OUTSIDE>
|
||
<TELL CR
|
||
"The sea race quickens. The ship is in the neck and dead, but then the
|
||
keel scrapes a mud shoal, and the shock turns her head. The rudder bites
|
||
into the sea, the wind and sea join to help, and before the wind she
|
||
speeds through the pass to safety. Into the bay beyond." CR>
|
||
<COND (<IN? ,COMPASS ,BLACKTHORNE>
|
||
<REMOVE ,COMPASS>)>
|
||
<COND (<IN? ,QUILL ,BLACKTHORNE>
|
||
<REMOVE ,QUILL>)>
|
||
<REMOVE ,APPLE>
|
||
<SCORE-OBJECT ,REEF>
|
||
<CRLF>
|
||
<NEXT-SCENE>)>)>>
|
||
|
||
<GLOBAL REEF-FLAG <>>
|
||
|
||
"returns T the first time the reef is sighted"
|
||
|
||
<ROUTINE REEF-SIGHTED? ()
|
||
<COND (,REEF-FLAG <RFALSE>)
|
||
(<OR <L=? ,REEF-X 2>
|
||
<L=? ,REEF-Y 2>>
|
||
<RTRUE>)
|
||
(ELSE <RFALSE>)>>
|
||
|
||
<GLOBAL REEF-X <>> ;"x distance from ship to reef"
|
||
<GLOBAL REEF-Y <>> ;"y distance from ship to reef"
|
||
|
||
<ROUTINE REEF-DISTANCE ()
|
||
<SETG REEF-X 0>
|
||
<SETG REEF-Y 0>
|
||
<COND (<EQUAL? ,SHIP-X 0>
|
||
<COND (<ZERO? ,SHIP-Y>
|
||
<SETG REEF-X 1000>
|
||
<SETG REEF-Y 1000>)
|
||
(ELSE <RFALSE>)>)
|
||
(<AND <EQUAL? ,SHIP-Y 0>
|
||
<G? ,SHIP-X 0>
|
||
<L? ,SHIP-X 7>>
|
||
<RFALSE>)
|
||
(<AND <EQUAL? ,SHIP-Y 1>
|
||
<EQUAL? ,SHIP-X 6>>
|
||
<RFALSE>)
|
||
(<AND <EQUAL? ,SHIP-Y 0 1>
|
||
<EQUAL? ,SHIP-X 7>>
|
||
<SETG REEF-X 1>
|
||
<SETG REEF-Y <- 3 ,SHIP-Y>>)
|
||
(<AND <EQUAL? ,SHIP-Y 1>
|
||
<L=? ,SHIP-X 5>>
|
||
<SETG REEF-X ,SHIP-X>
|
||
<SETG REEF-Y 1>)
|
||
(<L=? ,SHIP-Y 1>
|
||
<COND (<L? ,SHIP-X 7>
|
||
<RFALSE>)
|
||
(ELSE
|
||
<SETG REEF-X <- ,SHIP-X 6>>
|
||
<SETG REEF-Y <+ <- ,SHIP-Y> <- ,SHIP-X 4>>>)>)
|
||
(<G=? ,SHIP-Y 11>
|
||
<SETG REEF-X <- ,SHIP-X 15>>
|
||
<COND (<G? ,SHIP-X 15> <SETG REEF-Y 1000>)
|
||
(ELSE <SETG REEF-Y 0>)>)
|
||
(<AND <EQUAL? ,SHIP-Y 2>
|
||
<EQUAL? ,SHIP-X 6 7>>
|
||
<SETG REEF-X <- ,SHIP-X 5>>
|
||
<SETG REEF-Y 1>)
|
||
(<G=? ,SHIP-Y 2>
|
||
<SETG REEF-X <- <- ,SHIP-X 6> <- ,SHIP-Y 2>>>
|
||
<SETG REEF-Y <- <- ,SHIP-X 4> ,SHIP-Y>>)>
|
||
<COND (<OR <L=? ,REEF-X 0> <L=? ,REEF-Y 0>>
|
||
<SETG REEF-X 0>
|
||
<SETG REEF-Y 0>
|
||
<RFALSE>)
|
||
(ELSE <RTRUE>)>>
|
||
|
||
|
||
|
||
<OBJECT CREWMEN
|
||
(LOC BELOW-DECKS)
|
||
(DESC "crewmen")
|
||
(SYNONYM CREW CREWMEN CREWMAN MEN MAN SAILOR SAILORS)
|
||
(FLAGS PERSON DUTCHBIT NOABIT THE PLURAL DONT-ALL)
|
||
(DESCFCN CREWMEN-DESC)
|
||
(GENERIC GENERIC-CREWMEN-F)
|
||
(ACTION LG-CREWMEN-F)>
|
||
|
||
<ROUTINE CREWMEN-DESC ("OPT" RARG OBJ)
|
||
<COND (<RARG? OBJDESC?>
|
||
<COND (<HERE? ,BELOW-DECKS ,VILLAGE-SQUARE>
|
||
<RTRUE>)>)
|
||
(<RARG? OBJDESC>
|
||
<COND (<HERE? ,BELOW-DECKS>
|
||
<COND (,CREW-ON-DECK?
|
||
<TELL
|
||
"A few of the worst-off crewmen are still here.">)
|
||
(,REEF-FLAG
|
||
<TELL
|
||
"Most of the surviving crewmen are preparing to go on deck.">)
|
||
(ELSE
|
||
<TELL
|
||
"Most of the survivors of the crew are here in bunks
|
||
and hammocks, some sleeping, some awake.">)>)
|
||
(<HERE? ,VILLAGE-SQUARE>
|
||
<TELL
|
||
"The rabble of the ship's crew kneel behind you, guards watching them.">)>)>>
|
||
|
||
<OBJECT LG-CREWMEN
|
||
(LOC LOCAL-GLOBALS)
|
||
(DESC "crewmen")
|
||
(SYNONYM CREW CREWMEN CREWMAN MAN MEN)
|
||
(FLAGS PERSON DUTCHBIT JAPANESEBIT NOABIT THE PLURAL)
|
||
(GENERIC GENERIC-CREWMEN-F)
|
||
(ACTION LG-CREWMEN-F)>
|
||
|
||
<GLOBAL CREW-ON-DECK? <>>
|
||
|
||
<ROUTINE LG-CREWMEN-F ("OPT" (RARG <>))
|
||
<COND (<RARG? SUBJ>
|
||
<RFALSE>)
|
||
(<SCENE? S-ERASMUS S-YABU> ;"dutch crew"
|
||
<COND (<RARG? WINNER>
|
||
<COND (<OR <HERE? PILOTS-CABIN CAPTAINS-CABIN
|
||
PASSAGEWAY>
|
||
<AND <HERE? ,BELOW-DECKS>
|
||
,CREW-ON-DECK?>>
|
||
<TELL "There are no crewmen here." CR>)
|
||
(<P? WHO YOU>
|
||
<SETG WINNER ,PLAYER>
|
||
<PERFORM ,V?WHO ,CREWMEN>
|
||
<END-QUOTE>
|
||
<RFATAL>)
|
||
(<HERE? ,BELOW-DECKS ,MATES-CABIN>
|
||
<TELL
|
||
G"The crewmen whine and groan and pretend you are referring to someone
|
||
else. You'll have to order specific crewmen to get any results." CR>)
|
||
(<P? (RAISE REPAIR LOWER REPLACE) FORESAILS>
|
||
<RFALSE>)
|
||
(<AND <IN? ,VINCK ,HERE>
|
||
<P? HELP>
|
||
<P? TAKE WHEEL>>
|
||
<SETG WINNER ,VINCK>
|
||
<PERFORM ,PRSA ,PRSO ,PRSI>
|
||
<RTRUE>)
|
||
(<AND <HERE? BELOW-DECKS>
|
||
<SEND-HIM-OUT?>>
|
||
<TELL
|
||
"The crewmen mutter among themselves, but no one moves." CR>)
|
||
(ELSE
|
||
<CURSES-IN "Dutch">)>)
|
||
(<VERB? EXAMINE WHO>
|
||
<LIST-PEOPLE ,CREWMAN? "crewman" "crewmen">
|
||
<COND (<HERE? ,BELOW-DECKS>
|
||
<COND (<IN? ,VINCK ,BELOW-DECKS>
|
||
<COND (<IN? ,GINSEL ,BELOW-DECKS>
|
||
<COND (<IN? ,MAETSUKKER
|
||
,BELOW-DECKS>
|
||
<TELL
|
||
"Vinck, Ginsel, and Maetsukker are">)
|
||
(ELSE
|
||
<TELL
|
||
"Vinck and Ginsel are">)>)
|
||
(<IN? ,MAETSUKKER ,BELOW-DECKS>
|
||
<TELL
|
||
"Vinck and Maetsukker are">)
|
||
(ELSE
|
||
<TELL
|
||
"Vinck is">)>)
|
||
(<IN? ,GINSEL ,BELOW-DECKS>
|
||
<COND (<IN? ,MAETSUKKER ,BELOW-DECKS>
|
||
<TELL
|
||
"Ginsel and Maetsukker are">)
|
||
(ELSE
|
||
<TELL
|
||
"Ginsel is">)>)
|
||
(<IN? ,MAETSUKKER ,BELOW-DECKS>
|
||
<TELL
|
||
"Maetsukker is">)
|
||
(ELSE <CRLF> <RTRUE>)>
|
||
<TELL
|
||
" in the best condition, although everyone is badly off.">)
|
||
(<HERE? ,BRIDGE-OF-ERASMUS>
|
||
<TELL "">
|
||
<LIST-PEOPLE ,CREWMAN? "crewman" "crewmen"
|
||
,ON-DECK "elsewhere on deck">)
|
||
(<HERE? ,ON-DECK>
|
||
<TELL "">
|
||
<LIST-PEOPLE ,CREWMAN?
|
||
"crewman" "crewmen"
|
||
,BRIDGE-OF-ERASMUS
|
||
"on the bridge">)>
|
||
<CRLF>)
|
||
(<AND <VERB? TELL>
|
||
,CREW-ON-DECK?
|
||
<HERE? ,BRIDGE-OF-ERASMUS ,ON-DECK>>
|
||
<RFALSE>)
|
||
(<NOT <CREW-HERE?>>
|
||
<TELL
|
||
G"There aren't any crewmen here." CR>
|
||
<COND (<VERB? TELL>
|
||
<END-QUOTE>
|
||
<RFATAL>)
|
||
(ELSE <RTRUE>)>)
|
||
(<AND <HERE? ,BELOW-DECKS>
|
||
<VERB? SEND>>
|
||
<TELL
|
||
G"The crewmen whine and groan and pretend you are referring to someone
|
||
else. You'll have to order specific crewmen to get any results." CR>)
|
||
(<AND <VERB? WAKE> <HERE? ,BELOW-DECKS>>
|
||
<TELL
|
||
"You cuff a few of the sleepers into wakefulness, but most are too far
|
||
gone to do more than curse feebly." CR>)>)
|
||
(<SCENE? S-PIT>
|
||
<COND (<VERB? EXAMINE>
|
||
<TELL
|
||
"They look scared." CR>)>)
|
||
(<SCENE? S-RODRIGUES>
|
||
<TELL "There are no longer any crewmen aboard." CR>)
|
||
(<SCENE? S-VOYAGE> ;"japanese crew of galley"
|
||
<COND (<RARG? WINNER>
|
||
<COND (<P? (DROP THROW PUT LOWER) ANCHOR>
|
||
<RFALSE>)
|
||
(ELSE
|
||
<CURSES-IN "Japanese">)>)>)
|
||
(<SCENE? S-MARIKO>
|
||
<COND (<NOT <ABSTRACT-VERB?>>
|
||
<TELL CTHE ,LG-CREWMEN " aren't here." CR>
|
||
<COND (<VERB? TELL> <END-QUOTE> <RFATAL>)
|
||
(ELSE <RTRUE>)>)>)>>
|
||
|
||
<ROUTINE CURSES-IN (L)
|
||
<TELL
|
||
"The only responses are muttered curses in " .L "." CR>>
|
||
|
||
<ROUTINE CREW-HERE? ()
|
||
<REPEAT ((F <FIRST? ,HERE>))
|
||
<COND (<NOT .F>
|
||
<RFALSE>)
|
||
(<AND <NOT <EQUAL? .F ,CREWMEN>>
|
||
<FSET? .F ,DUTCHBIT>>
|
||
<RTRUE>)>
|
||
<SET F <NEXT? .F>>>>
|
||
|
||
<OBJECT HENDRIK
|
||
(DESC "Hendrik Specz")
|
||
(SYNONYM HENDRIK SPECZ MATE)
|
||
(ADJECTIVE HENDRIK THIRD)
|
||
(FLAGS PERSON DUTCHBIT NOABIT NOTHEBIT)
|
||
(DESCFCN HENDRIK-DESC)
|
||
(ACTION HENDRIK-F)>
|
||
|
||
<ROUTINE HENDRIK-DESC (RARG OBJ)
|
||
<COND (<RARG? OBJDESC?>
|
||
<COND (<FSET? ,HENDRIK ,RMUNGBIT> <RTRUE>)
|
||
(<FSET? ,HENDRIK ,TRYTAKEBIT> <RTRUE>)
|
||
(ELSE <RFALSE>)>)
|
||
(<RARG? OBJDESC>
|
||
<TELL "Hendrik Specz ">
|
||
<COND (<FSET? ,HENDRIK ,RMUNGBIT>
|
||
<TELL "is asleep at">)
|
||
(ELSE
|
||
<TELL "has">)>
|
||
<TELL " the wheel.">)>>
|
||
|
||
<ROUTINE HENDRIK-F ("OPT" (RARG <>))
|
||
<COND (<RARG? SUBJ>
|
||
<RFALSE>)
|
||
(<RARG? WINNER>
|
||
<COND (<VERB? FOLLOW WALK WALK-TO WALK-UNDER>
|
||
<COND (<FSET? ,WHEEL ,ONBIT>
|
||
<TELL
|
||
"\"Pilot, it's my watch. Let me take the wheel. You must rest.\"" CR>)
|
||
(ELSE
|
||
<TELL
|
||
"\"One of us must stay and hold the God-cursed wheel, or we all die!\"" CR>)>)
|
||
(<OR <P? TAKE-OVER (<> WHEEL DECK)>
|
||
<P? (TAKE TURN) (WHEEL DECK)>>
|
||
<FSET ,HENDRIK ,TRYTAKEBIT> ;"hendrik has the wheel"
|
||
<HENDRIK-TAKES-WHEEL>
|
||
<TELL
|
||
"\"Aye, Pilot, I take the wheel.\"" CR>)
|
||
(<P? (RAISE REPAIR LOWER) FORESAILS>
|
||
<RFALSE>)
|
||
(<PRSO? ,WHEEL>
|
||
<TELL
|
||
"\"If you want the wheel, take it,\" snarls Hendrik." CR>)
|
||
(<OR <P? SHUT-UP ROOMS>
|
||
<AND <P? BE INTADJ>
|
||
<ADJ? ,W?QUIET>>>
|
||
<TELL
|
||
"\"We'll all be quiet soon enough!\"" CR>)
|
||
(<VERB? TELL-ME-ABOUT>
|
||
<COND (<PRSO? ,JAPAN>
|
||
<TELL
|
||
"\"You're the one who said it's here. Between latitudes thirty and
|
||
forty north, you said. Well, I don't see it.\"" CR>)
|
||
(<PRSO? ,SPILLBERGEN>
|
||
<TELL
|
||
"\"He's a maggot-eaten fool and we'll all be dead because of him.\"" CR>)
|
||
(ELSE
|
||
<TELL
|
||
"He doesn't answer." CR>)>)
|
||
(<I-DONT-KNOW?>
|
||
<TELL
|
||
"\"You don't know? You're the God-cursed Pilot, you'd better know!\"" CR>)
|
||
(ELSE
|
||
<TELL
|
||
"Hendrik's reply is a mixture of whining and curses." CR>)>)
|
||
(<VERB? TELL>
|
||
<COND (<FSET? ,HENDRIK ,RMUNGBIT>
|
||
<TELL
|
||
"Hendrik is asleep." CR>
|
||
<END-QUOTE>)>)
|
||
(<P? EXAMINE>
|
||
<TELL
|
||
"Hendrik, like all the crew members, is suffering from scurvy. His face
|
||
is gray, his eyes are sunken, and his skin is blotched and sallow. He
|
||
is dying." CR>)
|
||
(<VERB? GIVE>
|
||
<COND (<FSET? ,HENDRIK ,RMUNGBIT>
|
||
<YOULL-HAVE-TO "wake him">)
|
||
(<PRSO? WHEEL>
|
||
<SETG WINNER ,HENDRIK>
|
||
<PERFORM ,V?TAKE ,WHEEL>
|
||
<SETG WINNER ,PLAYER>
|
||
<RTRUE>)>)
|
||
(<VERB? SOOTHE>
|
||
<TELL
|
||
"He remains skeptical, muttering quietly to himself." CR>)
|
||
(<OR <HOSTILE-VERB?>
|
||
<AND <VERB? WAKE>
|
||
<FSET? ,PRSO ,RMUNGBIT>>>
|
||
<COND (<FSET? ,PRSO ,RMUNGBIT>
|
||
<FCLEAR ,PRSO ,RMUNGBIT>
|
||
<TELL "You awaken Hendrik. ">
|
||
<COND (,REEF-FLAG
|
||
<TELL
|
||
"\"We're lost,\" he screams. \"Oh, Lord Jesus help us!\"" CR>)
|
||
(ELSE
|
||
<TELL
|
||
"\"I wasn't asleep,\" he says, sheepishly." CR>)>)
|
||
(ELSE
|
||
<TELL
|
||
"You realize it's only your fatigue making you want to hurt him, and
|
||
refrain." CR>)>)>>
|
||
|
||
<ROUTINE I-HENDRIK ()
|
||
<ZLINES ,HENDRIK-CNT
|
||
(<MOVE ,HENDRIK ,HERE>
|
||
<TELL CR
|
||
"Hendrik Specz, the third mate, appears on deck, pulling himself
|
||
painfully up the gangway. ">
|
||
<THIS-IS-IT ,HENDRIK>
|
||
<COND (<HERE? ,BRIDGE-OF-ERASMUS>
|
||
<TELL
|
||
"He joins you on the bridge. \"Go below, Pilot. I take this watch if
|
||
it pleases you.\" Gray with fatigue, he leans heavily against the
|
||
binnacle and retches. \"Blessed Lord Jesus help me!\"" CR>)
|
||
(ELSE
|
||
<TELL
|
||
"\"God curse you, Pilot! Have you gone mad at last! No one is at the
|
||
wheel! We'll head onto the reef, God rot your bones!\"" CR>)>)
|
||
(<COND (<HERE? ,BRIDGE-OF-ERASMUS>
|
||
<MOVE ,HENDRIK ,HERE>
|
||
<SETG QCONTEXT ,HENDRIK>
|
||
<TELL CR
|
||
"\"Where's the landfall you promised us? Where's the Japans? Where is it,
|
||
I ask?\"" CR>)
|
||
(<HERE? ,ON-DECK>
|
||
<COND (<AND <NOT <FSET? ,WHEEL ,RMUNGBIT>>
|
||
<NOT <FSET? ,WHEEL ,ONBIT>>
|
||
<NOT <FSET? ,HENDRIK ,TRYTAKEBIT>>>
|
||
<TELL CR
|
||
"\"You'll drown us all, you crazy Englishman!\" Hendrik screams">
|
||
<COND (<NOT <IN? ,HENDRIK ,BRIDGE-OF-ERASMUS>>
|
||
<MOVE ,HENDRIK ,BRIDGE-OF-ERASMUS>
|
||
<TELL
|
||
" as he rushes to the bridge." CR>)
|
||
(ELSE <TELL "." CR>)>)
|
||
(ELSE
|
||
<TELL CR
|
||
G"Hendrik is muttering to himself. Only a few curses are audible." CR>)>)>)
|
||
(<SETG QCONTEXT <>>
|
||
<COND (<HERE? ,BRIDGE-OF-ERASMUS>
|
||
<MOVE ,HENDRIK ,HERE>
|
||
<TELL CR
|
||
"\"Perhaps there is no Japans,\" Hendrik mutters scornfully. \"It's just a "
|
||
I "Gottbewonden" " legend.\"" CR>)
|
||
(<HERE? ,ON-DECK>
|
||
<TELL CR
|
||
G"Hendrik is muttering to himself. Only a few curses are audible." CR>)>)
|
||
(<DEQUEUE I-HENDRIK>
|
||
<MOVE ,HENDRIK ,BRIDGE-OF-ERASMUS>
|
||
<COND (<AND <NOT <FSET? ,WHEEL ,RMUNGBIT>>
|
||
<NOT <FSET? ,WHEEL ,ONBIT>>
|
||
<NOT <FSET? ,HENDRIK ,TRYTAKEBIT>>>
|
||
<HENDRIK-SAVES-THE-DAY>)>
|
||
<COND (<AND <FSET? ,HERE ,OUTSIDE>
|
||
<NOT <HERE? ,ON-DECK>>>
|
||
<QUEUE I-TIRED-WARNING 4 T>
|
||
<QUEUE I-TIRED 8 T>)>
|
||
<TELL CR
|
||
"You are tired, deathly tired, and near starving.">
|
||
<COND (<OR <IN? ,VINCK ,BELOW-DECKS>
|
||
<IN? ,GINSEL ,BELOW-DECKS>
|
||
<IN? ,MAETSUKKER ,BELOW-DECKS>>
|
||
<COND (<AND <IN? ,VINCK ,BELOW-DECKS>
|
||
<IN? ,GINSEL ,BELOW-DECKS>
|
||
<IN? ,MAETSUKKER ,BELOW-DECKS>>
|
||
<TELL
|
||
"With a start, you realize it's time to ">
|
||
<COND (<FSET? ,HERE ,OUTSIDE>
|
||
<TELL "go below and ">)>
|
||
<TELL "send out replacements for the
|
||
men on watch, by now freezing and windburned.">)
|
||
(ELSE
|
||
<TELL "You know more men are needed
|
||
on watch.">)>)>
|
||
<COND (<ZERO? <GETP ,BLACKTHORNE ,P?HEALTH>>
|
||
<TELL
|
||
"It's past time to eat some of your meager cache of food; a few shrivelled
|
||
apples.">)>
|
||
<COND (<FSET? ,FLAGON ,SCOREBIT>
|
||
<TELL
|
||
"Time, too, for the unpleasant task of visiting Captain Spillbergen,
|
||
still in nominal command but deathly sick, confined to his cabin.">)>
|
||
<COND (<FSET? ,RUTTER ,SCOREBIT>
|
||
<TELL "It's also time to write
|
||
in your rutter, though God knows there is nothing new since yesterday;
|
||
nothing, that is, but death.">)>
|
||
<CRLF>)>>
|
||
|
||
<ROUTINE HENDRIK-TAKES-WHEEL ()
|
||
<FSET ,HENDRIK ,TRYTAKEBIT>
|
||
<SETG SHIP-COURSE ,P?FORE>
|
||
<SETG SHIP-DIRECTION P?WEST>
|
||
<DEQUEUE I-BROADSIDE>
|
||
<DEQUEUE I-SHIP-BROADSIDE>>
|
||
|
||
<ROUTINE HENDRIK-SAVES-THE-DAY ()
|
||
<FCLEAR ,WHEEL ,SCOREBIT>
|
||
<HENDRIK-TAKES-WHEEL>
|
||
<COND (<HERE? ,ON-DECK ,BRIDGE-OF-ERASMUS>
|
||
<TELL CR
|
||
"Hendrik grabs the wheel, muttering vile curses on you and your kin." CR>)>>
|
||
|
||
<OBJECT MAETSUKKER
|
||
(LOC BELOW-DECKS)
|
||
(DESC "Maetsukker")
|
||
(SYNONYM MAETSUKKER)
|
||
(FLAGS NDESCBIT PERSON DUTCHBIT NOABIT NOTHEBIT SCOREBIT)
|
||
(ACTION MAETSUKKER-F)>
|
||
|
||
<ROUTINE MAETSUKKER-F ("OPT" (RARG <>))
|
||
<COND (<RARG? SUBJ>
|
||
<RFALSE>)
|
||
(<RARG? WINNER>
|
||
<COND (<P? (RAISE REPAIR LOWER) FORESAILS>
|
||
<RFALSE>)
|
||
(<SEND-HIM-OUT?>
|
||
<SETG WINNER ,PLAYER>
|
||
<PERFORM ,V?SEND ,MAETSUKKER ,ROOMS>
|
||
<RTRUE>)
|
||
(ELSE
|
||
<TELL
|
||
"Maetsukker makes an almost inaudible remark about your mother." CR>)>)
|
||
(<VERB? EXAMINE>
|
||
<TELL
|
||
"Maetsukker is a small, sharp-featured man. He is in better shape than
|
||
most of the crew members." CR>)
|
||
(<AND <P? SEND MAETSUKKER>
|
||
<SCENE? ,S-ERASMUS>>
|
||
<COND (<NOT <HERE? ,BELOW-DECKS>>
|
||
<TELL
|
||
"\"I'm already on watch, Pilot!\" he snarls." CR>)
|
||
(<NOT <FSET? ,MAETSUKKER ,RMUNGBIT>>
|
||
<FSET ,MAETSUKKER ,RMUNGBIT>
|
||
<TELL
|
||
"\"I'm near death,\" the small, sharp-featured man says, and cringes
|
||
away from you. \"I'm sick. Look, the scurvy's taken all my
|
||
teeth. Take someone else!\" Other members of the crew take up the
|
||
refrain. They are all sick, all scurvied, all tired unto death." CR>)
|
||
(ELSE
|
||
<TELL
|
||
"\"I'm a merchant, not a seaman! I'm not part of the crew! Take someone
|
||
else!\" Other crewmen nod in agreement. None of them want to go on deck
|
||
if they can avoid it." CR>)>)
|
||
(<OR <VERB? TAKE>
|
||
<HOSTILE-VERB?>>
|
||
<COND (<NOT <HERE? ,BELOW-DECKS>>
|
||
<TELL
|
||
"The two of you begin fighting, but before you can do any damage, the
|
||
other crewmen pull you apart." CR>)
|
||
(<FSET? ,MAETSUKKER ,RMUNGBIT>
|
||
<MOVE ,MAETSUKKER ,ON-DECK>
|
||
<TELL
|
||
"Maetsukker screams as you ">
|
||
<COND (<VERB? KICK>
|
||
<TELL "kick him like a dog and then ">)
|
||
(<VERB? HIT SWING>
|
||
<TELL "punch him in the stomach and then ">)
|
||
(<VERB? BITE>
|
||
<TELL "growl, baring your teeth, and then ">)>
|
||
<TELL "jerk him to his feet. Blood flecks his
|
||
mouth as he pulls the door open and flees in agony. The other crewmen
|
||
grumble, but seem to accept this assertion of your authority." CR>
|
||
<COND (<AND <IN? ,GINSEL ,ON-DECK>
|
||
<IN? ,VINCK ,ON-DECK>>
|
||
<RESTART-STORM?>
|
||
<SCORE-OBJECT ,MAETSUKKER>)>
|
||
<RTRUE>)
|
||
(ELSE
|
||
<TELL
|
||
"You have no reason to attack Maetsukker." CR>)>)>>
|
||
|
||
<OBJECT GINSEL
|
||
(LOC BELOW-DECKS)
|
||
(DESC "Ginsel")
|
||
(SYNONYM GINSEL)
|
||
(FLAGS NDESCBIT PERSON DUTCHBIT NOABIT NOTHEBIT)
|
||
(ACTION GINSEL-F)>
|
||
|
||
<ROUTINE GINSEL-F ("OPT" (RARG <>))
|
||
<COND (<RARG? SUBJ>
|
||
<RFALSE>)
|
||
(<RARG? WINNER>
|
||
<COND (<P? (RAISE REPAIR LOWER) FORESAILS>
|
||
<RFALSE>)
|
||
(<SEND-HIM-OUT?>
|
||
<SETG WINNER ,PLAYER>
|
||
<PERFORM ,V?SEND ,GINSEL ,ROOMS>
|
||
<RTRUE>)
|
||
(<HOSTILE-VERB?>
|
||
<TELL "He looks at you as though you are crazy." CR>)
|
||
(ELSE
|
||
<TELL "Ginsel nods weakly." CR>)>)
|
||
(<RARG? <>>
|
||
<COND (<VERB? EXAMINE>
|
||
<TELL
|
||
"Ginsel is a tall, good-looking youth with short arms and very bowed
|
||
legs. He has lost all his teeth to scurvy and looks very weak." CR>)
|
||
(<P? SEND GINSEL>
|
||
<MOVE ,GINSEL ,ON-DECK>
|
||
<TELL
|
||
"\"Ginsel, you're bow lookout,\" you say quietly.|
|
||
\"Yes, sir.\" Ginsel pulls himself upright and stumbles out." CR>
|
||
<COND (<AND <IN? ,MAETSUKKER ,ON-DECK>
|
||
<IN? ,VINCK ,ON-DECK>>
|
||
<RESTART-STORM?>
|
||
<SCORE-OBJECT ,MAETSUKKER>)>
|
||
<RTRUE>)>)>>
|
||
|
||
<ROOM BRIDGE-OF-ERASMUS
|
||
(LOC ROOMS)
|
||
(SCENE S-ERASMUS)
|
||
(OWNER LG-ERASMUS)
|
||
(DESC "Bridge")
|
||
(SYNONYM BRIDGE)
|
||
(PICTURE P-STORM)
|
||
(SCORE 11)
|
||
(FDESC
|
||
"The gale tears at you, biting deep within, and you know that if you
|
||
don't make landfall soon you'll all be dead. You are John Blackthorne,
|
||
Pilot-Major of a dead fleet: one ship left out of five, eight and twenty
|
||
men out of one hundred and seven, and only ten of those can walk. Little
|
||
food, almost no water, and that brackish and foul.")
|
||
(DOWN TO ON-DECK)
|
||
(FORE TO ON-DECK)
|
||
(PORT SORRY "You would fall overboard.")
|
||
(STARBOARD SORRY "You would fall overboard.")
|
||
(AFT SORRY "You would fall overboard.")
|
||
(ACTION BRIDGE-OF-ERASMUS-F)
|
||
(GLOBAL LG-ERASMUS REEF FORESAILS LG-CREWMEN LG-SEA DECK)
|
||
(FLAGS ONBIT OUTSIDE)>
|
||
|
||
<ROUTINE BRIDGE-OF-ERASMUS-F (RARG)
|
||
<COND (<RARG? SCENE-SETUP>
|
||
<DRESS-BLACKTHORNE T>
|
||
<MOVE ,COMPASS ,BLACKTHORNE>
|
||
<PUTP ,BLACKTHORNE ,P?HEALTH 0>
|
||
<SETG SHIP-COURSE ,P?FORE>
|
||
<SETG SHIP-DIRECTION ,P?WEST>
|
||
<QUEUE I-BROADSIDE 4>
|
||
<QUEUE I-SHIP-BROADSIDE 8>
|
||
<SETG STORM-DELAY? -2> ;"give 2*25 moves before storm serious"
|
||
<QUEUE I-STORM -1>)
|
||
(<RARG? LOOK>
|
||
<TELL
|
||
"This is the bridge of the " I "Erasmus"", a Dutch merchant and
|
||
privateer. The ">
|
||
<COND (<FSET? ,WHEEL ,RMUNGBIT>
|
||
<TELL "securely lashed">)
|
||
(ELSE
|
||
<TELL "unlashed">)>
|
||
<TELL
|
||
" wheel is directly forward of you, a sea chair is lashed to the
|
||
deck aft of the wheel, and the ship's bell is hanging here.">
|
||
<COND (<QUEUED? I-STORM>
|
||
<TELL
|
||
"Spray blows past in an angry torrent.">)>
|
||
<CRLF>)
|
||
(<RARG? ENTER>
|
||
<COND (<AND <SCENE? ,S-ERASMUS>
|
||
<NOT <FSET? ,HENDRIK ,RMUNGBIT>>
|
||
<FSET? ,BELL ,SCOREBIT>
|
||
<OR <FSET? ,PASSAGEWAY ,TOUCHBIT>
|
||
<FSET? ,BELOW-DECKS ,TOUCHBIT>>>
|
||
<FSET ,HENDRIK ,RMUNGBIT> ;"asleep"
|
||
<FSET ,WHEEL ,RMUNGBIT> ;"lash wheel"
|
||
<TELL
|
||
"As you climb onto the bridge, you see that Hendrik has fallen asleep
|
||
at his post. At least the wheel is lashed in place." CR CR>)>
|
||
<RTRUE>)
|
||
(<RARG? BEG>
|
||
<COND (<P? LISTEN <>>
|
||
<PERFORM ,V?LISTEN ,WIND>
|
||
<RTRUE>)
|
||
(<AND <P? WALK (P?DOWN P?FORE)>
|
||
<NOT <FSET? ,WHEEL ,RMUNGBIT>>
|
||
<NOT <FSET? ,WHEEL ,ONBIT>>
|
||
<OR <NOT <IN? ,HENDRIK ,BRIDGE-OF-ERASMUS>>
|
||
<NOT <FSET? ,HENDRIK ,TRYTAKEBIT>>>>
|
||
<COND (<AND <IN? ,HENDRIK ,BRIDGE-OF-ERASMUS>
|
||
<NOT <FSET? ,HENDRIK ,TRYTAKEBIT>>>
|
||
<TELL
|
||
"Hendrik grabs for the wheel as you leave. \"Curse you, Pilot! Someone
|
||
has to hold the course!\"">)
|
||
(ELSE
|
||
<TELL
|
||
"As you climb down to the deck, you see the wheel spinning
|
||
uncontrolled.">)>
|
||
<CRLF>
|
||
<CRLF>
|
||
<RFALSE>)
|
||
(<P? TURN INTDIR>
|
||
<PERFORM ,V?TURN ,WHEEL ,INTDIR>
|
||
<RTRUE>)
|
||
(<P? TAKE-OVER <>>
|
||
<PERFORM ,V?TAKE-OVER ,WHEEL>
|
||
<RTRUE>)
|
||
(<AND <VERB? SHRUG>
|
||
<IN? ,HENDRIK ,HERE>>
|
||
<TELL
|
||
"Hendrik's reaction is unprintable." CR>)
|
||
(<P? LOOK-UP ROOMS>
|
||
<PERFORM ,V?EXAMINE ,FORESAILS>
|
||
<RTRUE>)>)>>
|
||
|
||
<ROUTINE DONE-BELOW? ()
|
||
<COND (<AND <NOT <FSET? ,ROPER ,SCOREBIT>>
|
||
<NOT <FSET? ,APPLE ,SCOREBIT>>
|
||
<NOT <FSET? ,KEY ,SCOREBIT>>
|
||
<NOT <FSET? ,RUTTER ,SCOREBIT>>
|
||
<NOT <FSET? ,CAPTAINS-DESK ,SCOREBIT>>
|
||
<NOT <FSET? ,FLAGON ,SCOREBIT>>
|
||
<NOT <FSET? ,MAETSUKKER ,SCOREBIT>>>
|
||
<RTRUE>)>>
|
||
|
||
<ROUTINE RESTART-STORM? ()
|
||
<COND (<DONE-BELOW?>
|
||
<SETG STORM-DELAY? 0>
|
||
<QUEUE I-STORM 2>
|
||
<RTRUE>)>>
|
||
|
||
<OBJECT BELL
|
||
(LOC BRIDGE-OF-ERASMUS)
|
||
(DESC "bell")
|
||
(SYNONYM BELL)
|
||
(FLAGS NDESCBIT SCOREBIT)
|
||
(ACTION BELL-F)>
|
||
|
||
<ROUTINE BELL-F ()
|
||
<COND (<VERB? RING>
|
||
<TELL "You ring the bell. \"All hands on deck!\" you yell.">
|
||
<COND (<SCENE? ,S-ERASMUS>
|
||
<QUEUE I-HANDS 2>
|
||
<COND (<AND <IN? ,HENDRIK ,BRIDGE-OF-ERASMUS>
|
||
<FSET? ,HENDRIK ,RMUNGBIT>>
|
||
<FCLEAR ,HENDRIK ,RMUNGBIT>
|
||
<TELL "The noise wakes Hendrik. \"We're
|
||
lost,\" he screams. \"Oh, Lord Jesus help us!\"">)>
|
||
<CRLF>
|
||
<COND (<AND ,REEF-FLAG
|
||
<FSET? ,BELL ,SCOREBIT>>
|
||
<SCORE-OBJECT ,BELL>)>)
|
||
(ELSE <CRLF>)>
|
||
<RTRUE>)>>
|
||
|
||
<ROUTINE MOVE-CREW (RM "OPT" (NDESC? <>))
|
||
<COND (<NOT .RM>
|
||
<REMOVE ,CREWMEN>
|
||
<REMOVE ,HENDRIK>
|
||
<REMOVE ,VINCK>
|
||
<REMOVE ,MAETSUKKER>
|
||
<REMOVE ,GINSEL>
|
||
<REMOVE ,SPILLBERGEN>
|
||
<REMOVE ,VAN-NEKK>
|
||
<REMOVE ,CROOCQ>
|
||
<REMOVE ,SONK>
|
||
<REMOVE ,ROPER>
|
||
<REMOVE ,PIETERZOON>
|
||
<REMOVE ,SALAMON>)
|
||
(ELSE
|
||
<SETG CREW-ON-DECK? T>
|
||
<COND (<EQUAL? .RM ,VILLAGE-SQUARE ,PIT>
|
||
<MOVE ,PIETERZOON .RM>
|
||
<COND (.NDESC? <FSET ,PIETERZOON ,NDESCBIT>)
|
||
(ELSE <FCLEAR ,PIETERZOON ,NDESCBIT>)>
|
||
<MOVE ,ROPER .RM>
|
||
<COND (.NDESC? <FSET ,ROPER ,NDESCBIT>)
|
||
(ELSE <FCLEAR ,ROPER ,NDESCBIT>)>
|
||
<MOVE ,SONK .RM>
|
||
<COND (.NDESC? <FSET ,SONK ,NDESCBIT>)
|
||
(ELSE <FCLEAR ,SONK ,NDESCBIT>)>
|
||
<MOVE ,SALAMON .RM>
|
||
<COND (.NDESC? <FSET ,SALAMON ,NDESCBIT>)
|
||
(ELSE <FCLEAR ,SALAMON ,NDESCBIT>)>)>
|
||
<MOVE ,VINCK .RM>
|
||
<COND (.NDESC? <FSET ,VINCK ,NDESCBIT>)
|
||
(ELSE <FCLEAR ,VINCK ,NDESCBIT>)>
|
||
<MOVE ,CROOCQ .RM>
|
||
<COND (.NDESC? <FSET ,CROOCQ ,NDESCBIT>)
|
||
(ELSE <FCLEAR ,CROOCQ ,NDESCBIT>)>
|
||
<MOVE ,GINSEL .RM>
|
||
<COND (.NDESC? <FSET ,GINSEL ,NDESCBIT>)
|
||
(ELSE <FCLEAR ,GINSEL ,NDESCBIT>)>
|
||
<MOVE ,MAETSUKKER .RM>
|
||
<COND (.NDESC? <FSET ,MAETSUKKER ,NDESCBIT>)
|
||
(ELSE <FCLEAR ,MAETSUKKER ,NDESCBIT>)>
|
||
<MOVE ,VAN-NEKK .RM>
|
||
<COND (.NDESC? <FSET ,VAN-NEKK ,NDESCBIT>)
|
||
(ELSE <FCLEAR ,VAN-NEKK ,NDESCBIT>)>
|
||
<COND (<EQUAL? .RM ,VILLAGE-SQUARE ,PIT>
|
||
<MOVE ,SPILLBERGEN .RM>)>
|
||
<MOVE ,CREWMEN .RM>)>>
|
||
|
||
<ROUTINE I-HANDS ()
|
||
<COND (<NOT ,CREW-ON-DECK?>
|
||
<TELL CR
|
||
"The noise of the bell and your yelling have aroused the crew and
|
||
they pull themselves out onto the deck.">
|
||
<COND (,REEF-FLAG
|
||
<MOVE-CREW ,ON-DECK>
|
||
<TELL "They are terrified when they
|
||
see the encroaching reef, most are panicked and don't know what
|
||
to do next, but a few with their last reserves of strength
|
||
try ineffectually to get the ship under control." CR>)
|
||
(ELSE
|
||
<TELL "They sullenly look around, see that there is
|
||
no danger, and muttering curses, return below, oblivious to your
|
||
entreaties." CR>)>)>>
|
||
|
||
<OBJECT SEA-CHAIR
|
||
(LOC BRIDGE-OF-ERASMUS)
|
||
(DESC "sea chair")
|
||
(SYNONYM CHAIR)
|
||
(ADJECTIVE SEA)
|
||
(FLAGS NDESCBIT FURNITURE OPENBIT CONTBIT VEHBIT SEARCHBIT)
|
||
(ACTION SEA-CHAIR-F)>
|
||
|
||
<ROUTINE SEA-CHAIR-F (RARG)
|
||
<COND (<RARG? BEG>
|
||
<COND (<VERB? WALK>
|
||
<YOULL-HAVE-TO "get out of the sea chair">)
|
||
(<VERB? STAND>
|
||
<B-STAND>
|
||
<MOVE ,WINNER ,HERE>
|
||
<TELL
|
||
"You rise to your feet." CR>)>)
|
||
(ELSE
|
||
<COND (<VERB? BOARD SIT>
|
||
<COND (<NOT <IN? ,WINNER ,SEA-CHAIR>>
|
||
<MOVE ,WINNER ,SEA-CHAIR>
|
||
<B-SIT>
|
||
<TELL
|
||
"You are now sitting in the sea chair." CR>)>)>)>>
|
||
|
||
<OBJECT FOCSLE-DOOR
|
||
(LOC LOCAL-GLOBALS)
|
||
(OWNER CREWMEN)
|
||
(DESC "focsle door")
|
||
(SYNONYM DOOR)
|
||
(ADJECTIVE CREW FOCSLE FORECASTLE)
|
||
(FLAGS DOORBIT LOCKABLE)
|
||
(ACTION FOCSLE-DOOR-F)>
|
||
|
||
<ROUTINE FOCSLE-DOOR-F ()
|
||
<COND (<AND <NOT <PASSIVE-VERB?>>
|
||
<SCENE? ,S-ANJIRO>>
|
||
<PERFORM ,V?RUB ,RIBBON>
|
||
<RTRUE>)>>
|
||
|
||
<ROOM BELOW-DECKS
|
||
(LOC ROOMS)
|
||
(SCENE S-ERASMUS)
|
||
(DESC "Below Decks")
|
||
(SYNONYM QUARTERS FORECASTLE FOCSLE DECKS)
|
||
(ADJECTIVE CREW ;BELOW)
|
||
(PICTURE P-BELOW-DECKS)
|
||
(UP TO ON-DECK IF FOCSLE-DOOR IS OPEN)
|
||
(AFT TO ON-DECK IF FOCSLE-DOOR IS OPEN)
|
||
(OUT TO ON-DECK IF FOCSLE-DOOR IS OPEN)
|
||
(ACTION BELOW-DECKS-F)
|
||
(FLAGS ONBIT)
|
||
(GLOBAL DECK LG-ERASMUS FOCSLE-DOOR LG-CREWMEN LG-BUNK)
|
||
(THINGS <> RAT RAT-PSEUDO
|
||
<> COCKROACH COCKROACH-PSEUDO)>
|
||
|
||
<ROUTINE BELOW-DECKS-F (RARG)
|
||
<COND (<RARG? LOOK>
|
||
<TELL
|
||
"The crew's quarters of the "I"Erasmus"". A companionway leads up to the
|
||
deck. It's dim, warm and close here, and the stench is abominable." CR>)
|
||
(<RARG? ENTER>
|
||
<COND (<AND <SCENE? S-ERASMUS>
|
||
<EQUAL? ,OHERE ,ON-DECK>
|
||
<NOT ,CREW-ON-DECK?>>
|
||
<SETG TIRED-TIME <DEQUEUE I-TIRED>>
|
||
<FCLEAR ,FOCSLE-DOOR ,OPENBIT>
|
||
<THIS-IS-IT ,CREWMEN>
|
||
<COND (,REEF-FLAG
|
||
<TELL
|
||
"As you enter, you see the men resignedly preparing to go on deck." CR CR>)
|
||
(ELSE
|
||
<TELL
|
||
"As you enter, a volley of feeble curses greets you. You close the door
|
||
and they subside. No one moves." CR CR>)>)>
|
||
<RTRUE>)
|
||
(<RARG? BEG>
|
||
<COND (<VERB? SMELL>
|
||
<TELL
|
||
"The stench here is terrible. Rotten food, rotten flesh, offal, and
|
||
worse." CR>)
|
||
(<AND <P? TAKE * LG-BUNK>
|
||
<FSET? ,PRSO ,PERSON>>
|
||
<PERFORM ,V?MOVE ,PRSO>
|
||
<RTRUE>)
|
||
(<P? YELL-AT (<> CREWMEN)>
|
||
<TELL
|
||
"They just yell right back at you." CR>)
|
||
(<P? (ATTACK HIT) CREWMEN>
|
||
<TELL
|
||
"They back off, intimidated." CR>)>)>>
|
||
|
||
<BEGIN-SEGMENT ANJIRO>
|
||
<BEGIN-SEGMENT RODRIGUES>
|
||
|
||
<ROOM ON-DECK
|
||
(SCENE S-ERASMUS)
|
||
(LOC ROOMS)
|
||
(DESC "Deck")
|
||
(SYNONYM DECK)
|
||
(UP TO BRIDGE-OF-ERASMUS)
|
||
(DOWN SORRY "The gangways are fore and aft. Down is ambiguous.")
|
||
(PORT SORRY "You would fall overboard.")
|
||
(STARBOARD SORRY "You would fall overboard.")
|
||
(AFT TO PASSAGEWAY IF PASSAGE-DOOR IS OPEN)
|
||
(FORE TO BELOW-DECKS IF FOCSLE-DOOR IS OPEN)
|
||
(FLAGS ONBIT OUTSIDE)
|
||
(GLOBAL LG-ERASMUS FOCSLE-DOOR PASSAGE-DOOR REEF LG-CREWMEN FORESAILS
|
||
DECK GANGWAY LG-SEA LG-SMALL-BOAT)
|
||
(ACTION ON-DECK-F)>
|
||
|
||
<ROUTINE ON-DECK-F (RARG)
|
||
<COND (<RARG? LOOK>
|
||
<TELL
|
||
"This is the main deck of the "I"Erasmus"". A companionway leads up to the
|
||
bridge, and another one forward leads below decks to the
|
||
crew quarters. A stairway aft leads to the officers' cabins." CR>)
|
||
(<RARG? BEG>
|
||
<COND (<SCENE? ,S-ANJIRO ,S-RODRIGUES>
|
||
<COND (<P? LISTEN <>>
|
||
<PERFORM ,V?LISTEN ,WIND>
|
||
<RTRUE>)
|
||
(<P? WALK (P?UP P?FORE P?AFT)>
|
||
<COND (<IN? ,RODRIGUES ,PASSAGEWAY>
|
||
<RFALSE>)
|
||
(ELSE
|
||
<PERFORM ,V?RUB ,RIBBON>
|
||
<RTRUE>)>)
|
||
(<P? WALK (P?DOWN ,P?PORT ,P?WEST)>
|
||
<COND (<FSET? ,SAMURAI-GUARDS ,RMUNGBIT>
|
||
<TELL
|
||
"You climb down the gangway into the ">
|
||
<COND (<IN? ,SMALL-BOAT ,AT-ERASMUS>
|
||
<MOVE ,WINNER ,SMALL-BOAT>
|
||
<TELL D ,SMALL-BOAT>)
|
||
(ELSE
|
||
<TELL "water">)>
|
||
<TELL "." CR CR>
|
||
<GOTO ,AT-ERASMUS>)
|
||
(<EQUAL? ,RIBBON-CNT 3>
|
||
<TELL
|
||
"You start down the gangway, and stop. You feel your cold sweat and see
|
||
the samurai staring at you malevolently." CR>)
|
||
(ELSE
|
||
<TELL
|
||
"You start to climb down the gangway, but you can't force yourself
|
||
to leave without trying to regain your rutters." CR>)>)
|
||
(<P? BOW <>>
|
||
<PERFORM ,V?BOW ,SAMURAI-GUARDS>
|
||
<RTRUE>)>)
|
||
(<SCENE? ,S-ERASMUS>
|
||
<COND (<P? LOOK-UP ROOMS>
|
||
<PERFORM ,V?EXAMINE ,FORESAILS>
|
||
<RTRUE>)>)>)
|
||
(<RARG? ENTER>
|
||
<COND (<SCENE? S-ERASMUS>
|
||
<COND (<AND ,TIRED-TIME
|
||
<EQUAL? ,OHERE ,BELOW-DECKS ,PASSAGEWAY>>
|
||
<QUEUE I-TIRED ,TIRED-TIME>)>
|
||
<COND (<OR <EQUAL? <SCORE-HAVE> 7> ;"almost done"
|
||
<AND <EQUAL? ,OHERE ,PASSAGEWAY>
|
||
<FSET? ,APPLE ,SCOREBIT>>
|
||
<AND <EQUAL? ,OHERE ,BELOW-DECKS>
|
||
<FSET? ,MAETSUKKER ,SCOREBIT>>>
|
||
<SETG STORM-DELAY? <>>
|
||
<QUEUE-STORM>)>)
|
||
(<SCENE? ,S-ANJIRO>
|
||
<COND (<EQUAL? ,OHERE ,AT-ERASMUS>
|
||
<QUEUE I-RIBBON 3>)>)
|
||
(<SCENE? ,S-RODRIGUES>
|
||
<COND (<AND <EQUAL? ,OHERE ,AT-ERASMUS>
|
||
<IN? ,RODRIGUES ,HERE>>
|
||
<TELL
|
||
"As you climb aboard, ">
|
||
<SEALED-PASSAGE>
|
||
<CRLF>)>)>
|
||
<RTRUE>)>>
|
||
|
||
<END-SEGMENT ;"ERASMUS+ANJIRO+RODRIGUES">
|
||
|
||
<BEGIN-SEGMENT ERASMUS>
|
||
|
||
<OBJECT ERASMUS-ANCHOR
|
||
(LOC ON-DECK)
|
||
(OWNER LG-ERASMUS)
|
||
(DESC "anchor")
|
||
(SYNONYM ANCHOR)
|
||
(SIZE 200)
|
||
(FLAGS TAKEBIT AN)
|
||
(DESCFCN ERASMUS-ANCHOR-DESC)
|
||
(ACTION ERASMUS-ANCHOR-F)>
|
||
|
||
<ROUTINE ERASMUS-ANCHOR-DESC (RARG OBJ)
|
||
<COND (<RARG? OBJDESC?>
|
||
<COND (<SCENE? ,S-ERASMUS> <RTRUE>)
|
||
(ELSE <RFALSE>)>)
|
||
(<RARG? OBJDESC>
|
||
<TELL
|
||
"The anchor hangs over the side, ready to be dropped if ever, by the
|
||
grace of God and your good piloting, the "I"Erasmus"" reaches port.">)>>
|
||
|
||
<ROUTINE ERASMUS-ANCHOR-F ()
|
||
<COND (<VERB? RAISE>
|
||
<PERFORM ,V?TAKE ,PRSO>
|
||
<RTRUE>)
|
||
(<VERB? DROP THROW PUT LOWER>
|
||
<TELL
|
||
G"That would be suicide in this storm." CR>)>>
|
||
|
||
<BEGIN-SEGMENT RODRIGUES>
|
||
|
||
<ROOM PASSAGEWAY
|
||
(LOC ROOMS)
|
||
(DESC "Passageway")
|
||
(SYNONYM PASSAGEWAY)
|
||
(LDESC
|
||
"The Captain's cabin is aft of here. Your cabin is to port, and the Mates'
|
||
cabin to starboard. The main deck is forward of here.")
|
||
(AFT TO CAPTAINS-CABIN IF CAPTAINS-CABIN-DOOR IS OPEN)
|
||
(STARBOARD TO MATES-CABIN IF MATES-CABIN-DOOR IS OPEN)
|
||
(PORT TO PILOTS-CABIN IF PILOTS-CABIN-DOOR IS OPEN)
|
||
(FORE TO ON-DECK IF PASSAGE-DOOR IS OPEN)
|
||
(OUT TO ON-DECK IF PASSAGE-DOOR IS OPEN)
|
||
(FLAGS ONBIT)
|
||
(GLOBAL DECK LG-ERASMUS LG-CREWMEN PASSAGE-DOOR
|
||
PILOTS-CABIN CAPTAINS-CABIN MATES-CABIN
|
||
PILOTS-CABIN-DOOR CAPTAINS-CABIN-DOOR MATES-CABIN-DOOR)
|
||
(ACTION PASSAGEWAY-F)
|
||
(THINGS <> RAT RAT-PSEUDO
|
||
<> COCKROACH COCKROACH-PSEUDO)>
|
||
|
||
<ROUTINE PASSAGEWAY-F (RARG)
|
||
<COND (<RARG? ENTER>
|
||
<COND (<SCENE? ,S-ERASMUS>
|
||
<SETG TIRED-TIME <DEQUEUE I-TIRED>>
|
||
<QUEUE I-BELOW-DECKS -1 T>
|
||
<COND (<IN? ,ROPER ,PASSAGEWAY>
|
||
<MOVE ,ROPER ,MATES-CABIN>
|
||
<MOVE ,APPLE ,ROPER>
|
||
<TELL
|
||
"As you enter the relative quiet of the aft passageway, you notice
|
||
Jan Roper heading across the passage from your cabin to the Mates'
|
||
cabin." CR CR>)>)>
|
||
<RTRUE>)
|
||
(<RARG? BEG>
|
||
<COND (<P? (OPEN CLOSE)>
|
||
<COND (<PRSO? PILOTS-CABIN>
|
||
<PERFORM ,PRSA ,PILOTS-CABIN-DOOR>
|
||
<RTRUE>)
|
||
(<PRSO? MATES-CABIN>
|
||
<PERFORM ,PRSA ,MATES-CABIN-DOOR>
|
||
<RTRUE>)
|
||
(<PRSO? CAPTAINS-CABIN>
|
||
<PERFORM ,PRSA ,CAPTAINS-CABIN-DOOR>
|
||
<RTRUE>)>)>)>>
|
||
|
||
<END-SEGMENT ;"ERASMUS+RODRIGUES">
|
||
<BEGIN-SEGMENT ERASMUS>
|
||
|
||
<ROUTINE I-BELOW-DECKS ()
|
||
<COND (<FSET? ,HERE ,OUTSIDE>
|
||
<DEQUEUE I-BELOW-DECKS>
|
||
<RFALSE>)
|
||
(<PROB 25>
|
||
<TELL CR <PICK-ONE ,BELOW-DECKS-BACKGROUND> CR>)>>
|
||
|
||
<GLOBAL BELOW-DECKS-BACKGROUND
|
||
<LTABLE 0
|
||
"A rat scurries in the shadows cast by a hanging oil lamp."
|
||
"Timbers creak pleasantly."
|
||
"Cockroaches swarm on the floor.">>
|
||
|
||
<ROOM CAPTAINS-CABIN
|
||
(LOC ROOMS)
|
||
(DESC "Captain's Cabin")
|
||
(OWNER SPILLBERGEN)
|
||
(SYNONYM CABIN ROOM)
|
||
(LDESC
|
||
"This is the great cabin, the Captain-General's quarters and
|
||
magazine. The passageway leading to the other officers' cabins
|
||
is forward.")
|
||
(FORE TO PASSAGEWAY IF CAPTAINS-CABIN-DOOR IS OPEN)
|
||
(OUT TO PASSAGEWAY IF CAPTAINS-CABIN-DOOR IS OPEN)
|
||
(FLAGS ONBIT)
|
||
(GLOBAL DECK LG-ERASMUS CAPTAINS-CABIN-DOOR LG-CREWMEN LG-BUNK)
|
||
(ACTION CAPTAINS-CABIN-F)
|
||
(THINGS <> RAT RAT-PSEUDO
|
||
<> COCKROACH COCKROACH-PSEUDO)>
|
||
|
||
<ROUTINE CAPTAINS-CABIN-F (RARG)
|
||
<COND (<RARG? BEG>
|
||
<COND (<P? FIND GLOBAL-WATER>
|
||
<PERFORM ,V?OPEN ,CAPTAINS-DESK>
|
||
<RTRUE>)>)
|
||
(<RARG? LEAVE>
|
||
<COND (<SCENE? S-ERASMUS>
|
||
<DEQUEUE I-WHINE>
|
||
<TELL CR
|
||
"You close your ears to the whines and leave, hating Spillbergen
|
||
anew." CR CR>)>)
|
||
(<RARG? END>
|
||
<COND (<AND <SCENE? S-ERASMUS>
|
||
<NOT <QUEUED? I-WHINE>>>
|
||
<I-WHINE T>)>)>>
|
||
|
||
<ROUTINE I-WHINE ("OPT" (END <>))
|
||
<QUEUE I-WHINE 3>
|
||
<THIS-IS-IT ,SPILLBERGEN>
|
||
<TELL CR
|
||
"Spillbergen whines weakly. \"I'm ">
|
||
<COND (<FSET? ,FLAGON ,SCOREBIT> <TELL "thirsty">)
|
||
(ELSE <TELL "hungry">)>
|
||
<TELL ",\" he rasps.">
|
||
<COND (.END
|
||
<TELL
|
||
"You've set some water aside for him, out of pity.">)>
|
||
<CRLF>>
|
||
|
||
<OBJECT FLAGON
|
||
(LOC CAPTAINS-DESK)
|
||
(DESC "flagon")
|
||
(SYNONYM FLAGON WATER DRINK)
|
||
(FLAGS TAKEBIT SEARCHBIT OPENABLE TRANSBIT CONTBIT SCOREBIT)
|
||
(CAPACITY 10)
|
||
(ACTION FLAGON-F)>
|
||
|
||
<ROUTINE FLAGON-F ("AUX" (W <NOUN-USED? ,PRSO ,W?WATER>))
|
||
<COND (<AND <VERB? LEAP DIVE> .W>
|
||
<PERFORM ,PRSA ,LG-SEA>
|
||
<RTRUE>)
|
||
(<AND .W <FSET? ,FLAGON ,RMUNGBIT>>
|
||
<TELL "There's no longer any water in the flagon." CR>)
|
||
(<VERB? EXAMINE>
|
||
<TELL
|
||
"This is a flagon ">
|
||
<COND (<FSET? ,FLAGON ,RMUNGBIT>
|
||
<TELL "which contained">)
|
||
(ELSE <TELL "containing">)>
|
||
<TELL " a secret cache of water you've set aside
|
||
for the Captain-General. The water doesn't look too palatable." CR>)
|
||
(<VERB? PUT-AWAY>
|
||
<MOVE ,FLAGON ,CAPTAINS-DESK>
|
||
<TELL "You put the flagon back into the desk." CR>)
|
||
(<VERB? LOOK-INSIDE>
|
||
<COND (<NOT <FSET? ,FLAGON ,OPENBIT>>
|
||
<TELL CTHE ,FLAGON " isn't open." CR>)
|
||
(<FSET? ,FLAGON ,RMUNGBIT>
|
||
<TELL CTHE ,FLAGON " is now empty." CR>)
|
||
(ELSE
|
||
<TELL
|
||
"There is some water in the flagon." CR>)>)
|
||
(<VERB? POUR>
|
||
<COND (<NOT <FSET? ,FLAGON ,OPENBIT>>
|
||
<TELL CTHE ,FLAGON " isn't open." CR>)
|
||
(<FSET? ,FLAGON ,RMUNGBIT>
|
||
<TELL CTHE ,FLAGON " is empty." CR>)
|
||
(ELSE
|
||
<FSET ,FLAGON ,RMUNGBIT>
|
||
<TELL
|
||
"You pour the water">
|
||
<COND (<AND <HERE? ,CAPTAINS-CABIN>
|
||
<PRSI? <> ,SPILLBERGEN>>
|
||
<TELL
|
||
" on the Captain, who whines pitifully at your
|
||
cruelty." CR>)
|
||
(ELSE <TELL "." CR>)>)>)
|
||
(<VERB? DRINK TASTE>
|
||
<COND (<NOT <FSET? ,FLAGON ,OPENBIT>>
|
||
<TELL CTHE ,FLAGON " isn't open." CR>)
|
||
(<FSET? ,FLAGON ,RMUNGBIT>
|
||
<TELL
|
||
"There's no more water." CR>)
|
||
(ELSE
|
||
<TELL
|
||
"You sip a little">
|
||
<COND (<FSET? ,FLAGON ,SCOREBIT>
|
||
<TELL ", reserving the rest for Spillbergen">)>
|
||
<TELL
|
||
". The water tastes terrible, but at least it's not salt water. It's
|
||
well known that if you descend to drinking salt water, you go mad." CR>)>)
|
||
(<AND <P? GIVE>
|
||
<NOT <FSET? ,FLAGON ,RMUNGBIT>>
|
||
<FSET? ,PRSI ,PERSON>>
|
||
<COND (<FSET? ,PRSI ,PLURAL>
|
||
<TELL
|
||
"You can't share that little bit of water among so many." CR>)
|
||
(ELSE
|
||
<MOVE ,FLAGON ,PRSI>
|
||
<FSET ,FLAGON ,OPENBIT>
|
||
<TELL CTHE ,PRSI " drinks it greedily." CR>)>)
|
||
(<AND <VERB? TAKE>
|
||
<NOUN-USED? ,PRSO ,W?WATER>>
|
||
<COND (<HELD? ,FLAGON>
|
||
<COND (<FSET? ,FLAGON ,RMUNGBIT>
|
||
<TELL
|
||
"The flagon held the last of the good water, tarry but drinkable." CR>)
|
||
(ELSE
|
||
<TELL
|
||
"You already have a flagon full of water." CR>)>)
|
||
(ELSE
|
||
<RFALSE>)>)>>
|
||
|
||
<OBJECT SECRET-DRAWER
|
||
(LOC CAPTAINS-CABIN)
|
||
(OWNER SPILLBERGEN)
|
||
(DESC "secret drawer")
|
||
(SYNONYM DRAWER CATCH ORNAMENTATION)
|
||
(ADJECTIVE SECRET SMALL)
|
||
(FLAGS INVISIBLE NDESCBIT SEARCHBIT OPENABLE CONTBIT FURNITURE)
|
||
(ACTION SECRET-DRAWER-F)>
|
||
|
||
<ROUTINE SECRET-DRAWER-F ()
|
||
<COND (<VERB? EXAMINE OPEN CLOSE>
|
||
<PERFORM ,PRSA ,CAPTAINS-DESK>
|
||
<RTRUE>)
|
||
(<VERB? PUSH MOVE>
|
||
<PERFORM ,V?OPEN ,CAPTAINS-DESK>
|
||
<RTRUE>)>>
|
||
|
||
<OBJECT CAPTAINS-DESK
|
||
(LOC CAPTAINS-CABIN)
|
||
(OWNER SPILLBERGEN)
|
||
(DESC "desk")
|
||
(LDESC "The Captain's ornate desk fills one wall of the cabin.")
|
||
(SYNONYM DESK)
|
||
(ADJECTIVE CAPTAIN)
|
||
(FLAGS SEARCHBIT SURFACEBIT OPENABLE CONTBIT FURNITURE SCOREBIT)
|
||
(CAPACITY 100)
|
||
(ACTION CAPTAINS-DESK-F)>
|
||
|
||
<ROUTINE CAPTAINS-DESK-F ()
|
||
<COND (<VERB? EXAMINE>
|
||
<TELL
|
||
"This desk is much like your own, but the captain hasn't used it in
|
||
weeks. He is too sick to leave his bunk.">
|
||
<COND (<NOT <FSET? ,CAPTAINS-DESK ,RMUNGBIT>>
|
||
<TELL "">
|
||
<PERFORM ,V?OPEN ,CAPTAINS-DESK>
|
||
<RTRUE>)>
|
||
<CRLF>)
|
||
(<VERB? OPEN LOOK-INSIDE SEARCH LOOK-ON>
|
||
<COND (<NOT <FSET? ,CAPTAINS-DESK ,RMUNGBIT>>
|
||
<FSET ,CAPTAINS-DESK ,RMUNGBIT>
|
||
<FCLEAR ,SECRET-DRAWER ,INVISIBLE>
|
||
<TELL
|
||
"You look through the desk, knowing you left a flagon of water in it. In your
|
||
tiredness you fumble around, unsure where you put it, and then remember
|
||
the secret drawer. Where's that catch? Ah, there it is, a small piece of
|
||
ornamentation." CR>)
|
||
(<NOT <FSET? ,CAPTAINS-DESK ,OPENBIT>>
|
||
<FSET ,CAPTAINS-DESK ,OPENBIT>
|
||
<FSET ,SECRET-DRAWER ,OPENBIT>
|
||
<TELL
|
||
"You open the secret drawer to the desk, revealing ">
|
||
<DESCRIBE-REST ,CAPTAINS-DESK>
|
||
<TELL "." CR>
|
||
<RESTART-STORM?>
|
||
<SCORE-OBJECT ,CAPTAINS-DESK>)>)>>
|
||
|
||
<BEGIN-SEGMENT RODRIGUES>
|
||
|
||
<ROOM PILOTS-CABIN
|
||
(LOC ROOMS)
|
||
(DESC "Pilot's Cabin")
|
||
(SCENE S-ERASMUS S-ANJIRO S-RODRIGUES)
|
||
(OWNER BLACKTHORNE)
|
||
(SYNONYM CABIN ROOM)
|
||
;(ADJECTIVE MY)
|
||
(STARBOARD TO PASSAGEWAY IF PILOTS-CABIN-DOOR IS OPEN)
|
||
(OUT TO PASSAGEWAY IF PILOTS-CABIN-DOOR IS OPEN)
|
||
(FLAGS ONBIT)
|
||
(GLOBAL DECK PILOTS-CABIN-DOOR LG-ERASMUS LG-CREWMEN)
|
||
(THINGS <> RAT RAT-PSEUDO
|
||
<> COCKROACH COCKROACH-PSEUDO)
|
||
(ACTION PILOTS-CABIN-F)>
|
||
|
||
<ROUTINE PILOTS-CABIN-F (RARG)
|
||
<COND (<RARG? LOOK>
|
||
<TELL
|
||
"This is your cabin, sparsely furnished and small but nonetheless the
|
||
second best on the ship. The only exit is out to the passageway.">
|
||
<COND (<AND <SCENE? S-ERASMUS>
|
||
<NOT <FSET? ,HERE ,TOUCHBIT>>>
|
||
<TELL
|
||
"There's something wrong here. Your cabin has been disturbed. As
|
||
you look around, trying to see what's wrong, your eyes stray to the
|
||
sea chest which contains your rutters. You do it almost in a panic, for
|
||
a pilot's rutters are his life.">)
|
||
(<SCENE? S-RODRIGUES>
|
||
<TELL
|
||
"The room looks as though it has been tidied up and then thoroughly
|
||
turned over again.">)>
|
||
<CRLF>)
|
||
(<RARG? ENTER>
|
||
<COND (<SCENE? S-ERASMUS>
|
||
<QUEUE I-BUNK 4>)>
|
||
<RTRUE>)
|
||
(<RARG? LEAVE>
|
||
<COND (<SCENE? ,S-ERASMUS>
|
||
<DEQUEUE I-BUNK>)>)
|
||
(<RARG? BEG>
|
||
<COND (<P? WALK (P?OUT P?STARBOARD)>
|
||
<COND (<OR <HELD? ,RUTTER>
|
||
<HELD? ,SECRET-RUTTER>>
|
||
<TELL
|
||
"As you start to leave, you remember you are carrying one of your
|
||
precious rutters out into the storm or into the inquisitive eyes
|
||
of your crew. You think better of it." CR>)>)
|
||
(<VERB? SLEEP LIE-DOWN>
|
||
<PERFORM ,V?BOARD ,BUNK>
|
||
<RTRUE>)>)>>
|
||
|
||
<END-SEGMENT ;"ERASMUS+RODRIGUES">
|
||
<BEGIN-SEGMENT ERASMUS>
|
||
|
||
<NEW-ADD-WORD "RUTTERS" NOUN <VOC "RUTTER"> ,PLURAL-FLAG>
|
||
<NEW-ADD-WORD "MAPS" NOUN <VOC "MAP"> ,PLURAL-FLAG>
|
||
|
||
<OBJECT SECRET-RUTTER
|
||
(LOC SEA-CHEST)
|
||
(DESC "secret Portuguese rutter")
|
||
(SYNONYM RUTTER MAP)
|
||
(ADJECTIVE SECRET PORTUGUESE)
|
||
(FLAGS READBIT TAKEBIT OPENABLE)
|
||
(ACTION SECRET-RUTTER-F)>
|
||
|
||
<ROUTINE SECRET-RUTTER-F ()
|
||
<COND (<OR <VERB? ;WHERE FIND>
|
||
<AND <P? BE * INTPP>
|
||
<PP? ,W?ON ,LG-ERASMUS>>>
|
||
<COND (<SCENE? ,S-ANJIRO>
|
||
<PERFORM ,PRSA ,RUTTER ,PRSI>
|
||
<RTRUE>)>)
|
||
(<IN? ,RUTTER ,GENERIC-OBJECTS>
|
||
<COND (<ABSTRACT-VERB?> <RFALSE>)
|
||
(ELSE
|
||
<TELL
|
||
G"There's no rutter here." CR>)>)
|
||
(<P? PUT-AWAY SECRET-RUTTER ROOMS>
|
||
<PERFORM ,PRSA ,PRSO ,SEA-CHEST>
|
||
<RTRUE>)
|
||
(<VERB? EXAMINE READ OPEN>
|
||
<FSET ,PRSO ,OPENBIT>
|
||
<TELL
|
||
"This rutter explains the sea route through Magellan's Pass into the
|
||
Pacific and up the west coast of Spanish America. It is a treasure
|
||
beyond price." CR>)
|
||
(<VERB? WRITE>
|
||
<TELL
|
||
"You haven't written in this rutter since you fled the Spanish into
|
||
the Pacific. It deals with Magellan's Pass, and goes no further than
|
||
Chile." CR>)
|
||
(<VERB? FOLLOW STEER-BY>
|
||
<TELL
|
||
G"You are in uncharted territory now, and the rutter is no help." CR>)
|
||
(<P? SHOW * (VINCK HENDRIK)>
|
||
<TELL
|
||
CTHE ,PRSI " appears interested, probably wondering why you are
|
||
revealing your secret now. Perhaps you expect to die..." CR>)
|
||
(<VERB? MUNG TEAR>
|
||
<TELL G"You could never destroy such a valuable object." CR>)
|
||
(<VERB? PUT DROP>
|
||
<FCLEAR ,PRSO ,OPENBIT>
|
||
<RFALSE>)>>
|
||
|
||
<OBJECT RUTTER
|
||
(LOC SEA-CHEST)
|
||
(OWNER BLACKTHORNE)
|
||
(DESC "your rutter")
|
||
(SYNONYM RUTTER ;RUTTERS MAP ;MAPS)
|
||
;(ADJECTIVE MY)
|
||
(FLAGS NOABIT NOTHEBIT READBIT TAKEBIT SCOREBIT OPENABLE)
|
||
(ACTION RUTTER-F)>
|
||
|
||
<ROUTINE RUTTER-F ()
|
||
<COND (<OR <VERB? ;WHERE FIND>
|
||
<AND <P? BE * INTPP>
|
||
<PP? ,W?ON ,LG-ERASMUS>>>
|
||
<COND (<SCENE? ,S-ANJIRO>
|
||
<FSET ,RUTTER ,RMUNGBIT>
|
||
<TELL
|
||
"You haven't seen your rutters. Could they still be on the "I"Erasmus""? Or
|
||
worse, could they have been taken? They are your most precious
|
||
possessions, and the secret one could cost you your life in any
|
||
Catholic nation!" CR>)>)
|
||
(<VERB? WHAT>
|
||
<TELL
|
||
"A rutter is a small book containing the detailed observation of
|
||
a pilot who has been there before. It records magnetic compass courses
|
||
between ports and capes, headlands and channels. It sets down how we
|
||
got there and how we got back. Rutters that reveal the mysteries of
|
||
the Pass of Magellan into the Pacific -- a Portuguese discovery -- and
|
||
thence the seaways to Asia are guarded as national treasures by the
|
||
Spanish and Portuguese." CR>)
|
||
(<IN? ,RUTTER ,GENERIC-OBJECTS>
|
||
<COND (<ABSTRACT-VERB?> <RFALSE>)
|
||
(ELSE
|
||
<TELL
|
||
G"There's no rutter here." CR>)>)
|
||
(<P? PUT-AWAY RUTTER ROOMS>
|
||
<PERFORM ,PRSA ,PRSO ,SEA-CHEST>
|
||
<RTRUE>)
|
||
(<VERB? FOLLOW STEER-BY>
|
||
<TELL
|
||
G"You are in uncharted territory now, and the rutter is no help." CR>)
|
||
(<VERB? EXAMINE READ OPEN>
|
||
<FSET ,RUTTER ,OPENBIT>
|
||
<TELL
|
||
"This rutter is the record of your voyage from Rotterdam in the Netherlands
|
||
south through the Atlantic, through the Pass of Magellan, up the west
|
||
coast of South America, and into the unknown Pacific." CR>)
|
||
(<VERB? WRITE>
|
||
<COND (<NOT <PRSI? <> ,QUILL>>
|
||
<CANT-X-WITH-PRSI "write">)
|
||
(<FSET? ,RUTTER ,SCOREBIT>
|
||
<TELL "You">
|
||
<COND (<NOT <HELD? ,QUILL>>
|
||
<SETG PRSO ,QUILL>
|
||
<COND (<NOT <ITAKE <>>>
|
||
<TELL
|
||
"'ll have a devil of a time writing without a quill." CR>
|
||
<RTRUE>)
|
||
(ELSE
|
||
<TELL " take the quill and">)>
|
||
<SETG PRSO ,RUTTER>)>
|
||
<FSET ,RUTTER ,OPENBIT>
|
||
<TELL " write: \"April 21 1600. Fifth
|
||
hour. Dusk. 133d day from Santa Maria Island, Chile, on the 32 degree
|
||
North line
|
||
of latitude. Sea still high and wind strong. We are running before the
|
||
wind along a course of 270 degrees, making way briskly. Large reefs
|
||
were sighted at half the hour bearing North East by North half a
|
||
league distant. Three men died in the night of the scurvy. Today
|
||
Bosun Rijckloff died. I estimate we are still on course and that
|
||
landfall in the Japans should be soon.\"|
|
||
|
|
||
But how soon, you wonder?" CR>
|
||
<RESTART-STORM?>
|
||
<SCORE-OBJECT ,RUTTER>)
|
||
(ELSE
|
||
<TELL
|
||
"You've already written in the rutter today. Perhaps you need some
|
||
rest." CR>)>)
|
||
(<VERB? MUNG TEAR>
|
||
<TELL G"You could never destroy such a valuable object." CR>)
|
||
(<VERB? PUT DROP>
|
||
<FCLEAR ,RUTTER ,OPENBIT>
|
||
<RFALSE>)>>
|
||
|
||
<OBJECT SEA-CHEST
|
||
(LOC PILOTS-CABIN)
|
||
(DESC "sea chest")
|
||
(SYNONYM CHEST TRUNK)
|
||
(ADJECTIVE SEA)
|
||
(SIZE 200)
|
||
(FLAGS LOCKED LOCKABLE TAKEBIT SEARCHBIT CONTBIT OPENABLE)
|
||
(CAPACITY 20)
|
||
(ACTION SEA-CHEST-F)>
|
||
|
||
<ROUTINE SEA-CHEST-F ()
|
||
<COND (<VERB? EXAMINE>
|
||
<COND (<AND <NOT <FSET? ,PRSO ,OPENBIT>>
|
||
<FSET? ,PRSO ,LOCKED>>
|
||
<FSET ,SEA-CHEST ,RMUNGBIT>
|
||
<TELL
|
||
"It's locked and appears undisturbed." CR>)>)
|
||
(<VERB? OPEN>
|
||
<COND (<PRSI? ,KEY>
|
||
<PERFORM ,V?UNLOCK ,SEA-CHEST ,KEY>
|
||
<RTRUE>)
|
||
(<FSET? ,SEA-CHEST ,LOCKED>
|
||
<FSET ,SEA-CHEST ,RMUNGBIT>
|
||
<TELL
|
||
"It's locked. You keep your rutters in it, and they are your most
|
||
precious possessions." CR>)
|
||
(<NOT <FSET? ,SEA-CHEST ,OPENBIT>>
|
||
<FSET ,SEA-CHEST ,OPENBIT>
|
||
<TELL
|
||
"The sea chest opens. Inside it is ">
|
||
<DESCRIBE-REST ,SEA-CHEST>
|
||
<TELL "." CR>)>)
|
||
(<AND <P? LOCK SEA-CHEST (<> KEY)>
|
||
<NOT <FSET? ,SEA-CHEST ,LOCKED>>>
|
||
<COND (<FSET? ,SEA-CHEST ,OPENBIT>
|
||
<YOULL-HAVE-TO "close it">)
|
||
(<HELD? ,KEY>
|
||
<FSET ,SEA-CHEST ,LOCKED>
|
||
<TELL "You've now locked it securely." CR>)
|
||
(ELSE
|
||
<TELL G"You don't have the key." CR>)>)
|
||
(<AND <P? UNLOCK SEA-CHEST (<> KEY)>
|
||
<FSET? ,SEA-CHEST ,LOCKED>>
|
||
<COND (<HELD? ,KEY>
|
||
<FCLEAR ,SEA-CHEST ,LOCKED>
|
||
<TELL "You unlock " THE ,PRSO "." CR>)
|
||
(ELSE
|
||
<FSET ,SEA-CHEST ,RMUNGBIT>
|
||
<TELL G"You don't have the key." CR>)>)
|
||
(<VERB? CLOSE>
|
||
<COND (<FSET? ,SEA-CHEST ,OPENBIT>
|
||
<FCLEAR ,SEA-CHEST ,OPENBIT>
|
||
<TELL
|
||
"The sea chest is now closed." CR>)>)>>
|
||
|
||
<ROUTINE I-BUNK ("AUX" CNT)
|
||
<COND (<G? <GETP ,BLACKTHORNE ,P?HEALTH> 0>
|
||
<RFALSE>)>
|
||
<QUEUE I-BUNK 6>
|
||
<PUTP ,BUNK ,P?COUNT <SET CNT <+ 1 <GETP ,BUNK ,P?COUNT>>>>
|
||
<TELL CR
|
||
"You glance at your bunk. You are so tired. Go to sleep just for an hour,
|
||
for ten minutes..." CR CR>
|
||
<COND (<G? .CNT 4>
|
||
<TELL "\"I must sleep. Sleep. They rely on me...\" You
|
||
fall into a deep, exhausted sleep which is interrupted only when the "
|
||
I"Erasmus"" is holed on the reef and sinks to the bottom." CR>
|
||
<JIGS-UP>)
|
||
(ELSE
|
||
<TELL "\"I won't, I'll sleep tomorrow,\" you force yourself
|
||
to say." CR>)>>
|
||
|
||
<OBJECT LG-BUNK
|
||
(LOC LOCAL-GLOBALS)
|
||
(SCENE S-ERASMUS S-ANJIRO S-RODRIGUES)
|
||
(DESC "bed")
|
||
(SYNONYM BUNK BED HAMMOCK BUNKS BEDS HAMMOCKS)
|
||
(FLAGS FURNITURE SURFACEBIT VEHBIT)
|
||
(ACTION LG-BUNK-F)>
|
||
|
||
<ROUTINE LG-BUNK-F ()
|
||
<COND (<VERB? BOARD>
|
||
<TELL
|
||
"This is no time to think of sleep!" CR>)>>
|
||
|
||
<OBJECT BUNK
|
||
(LOC PILOTS-CABIN)
|
||
(SCENE S-ERASMUS S-ANJIRO S-RODRIGUES)
|
||
(DESC "bunk")
|
||
(FDESC "The long narrow bunk with its straw palliasse looks inviting.")
|
||
(SYNONYM BUNK BED)
|
||
(ADJECTIVE LONG NARROW)
|
||
(FLAGS FURNITURE VEHBIT)
|
||
(COUNT 0)
|
||
(ACTION BUNK-F)>
|
||
|
||
<CONSTANT J-BUNK 10>
|
||
|
||
<ROUTINE BUNK-F ()
|
||
<COND (<VERB? BOARD CLIMB-ON>
|
||
<COND (<JIGS-UP? ,J-BUNK
|
||
"Your tired brain tells you that if you lie down, you will sleep, and if
|
||
you sleep, the ship will be lost, so you push yourself away.">
|
||
<TELL
|
||
"While you might have had a chance of resisting sleep if you hadn't lain
|
||
in the bunk, once you are in it, you fall quickly into an exhausted
|
||
slumber. When you are awakened, it is by the wrenching, tearing sound of
|
||
the reef scraping the hull off of the ship. You and the "I"Erasmus"" are
|
||
doomed." CR>
|
||
<JIGS-UP>)
|
||
(ELSE <RTRUE>)>)>>
|
||
|
||
<OBJECT DESK
|
||
(LOC PILOTS-CABIN)
|
||
(DESC "desk")
|
||
(SYNONYM DESK)
|
||
(FLAGS FURNITURE OPENBIT SURFACEBIT CONTBIT SEARCHBIT)
|
||
(CAPACITY 100)
|
||
(ACTION DESK-F)>
|
||
|
||
<ROUTINE DESK-F ()
|
||
<COND (<VERB? EXAMINE>
|
||
<TELL
|
||
"This is a battered old writing desk, with a top large enough for
|
||
charts and rutters.">
|
||
<COND (<AND <SCENE? ,S-ERASMUS> <IN? ,APPLE ,ROPER>>
|
||
<TELL
|
||
"You don't see the apples you've been saving.">)>
|
||
<CRLF>)
|
||
(<VERB? OPEN>
|
||
<COND (<AND <FSET? ,KEY ,NDESCBIT>
|
||
<SCENE? ,S-ERASMUS>>
|
||
<PERFORM ,V?SEARCH ,DESK>
|
||
<RTRUE>)
|
||
(ELSE
|
||
<TELL
|
||
"Opening the desk reveals little of interest. You've seen it all a
|
||
thousand times before." CR>)>)
|
||
(<VERB? SEARCH>
|
||
<COND (<AND <FSET? ,KEY ,NDESCBIT>
|
||
<SCENE? ,S-ERASMUS>>
|
||
<FSET ,KEY ,TAKEBIT>
|
||
<FSET ,KEY ,TRYTAKEBIT>
|
||
<FCLEAR ,KEY ,NDESCBIT>
|
||
<COND (<IN? ,APPLE ,ROPER>
|
||
<TELL
|
||
"The first thing you notice is that the apples you've been saving are
|
||
gone! ">)>
|
||
<COND (<FSET? ,SEA-CHEST ,RMUNGBIT>
|
||
<FCLEAR ,SEA-CHEST ,RMUNGBIT>
|
||
<MOVE ,KEY ,WINNER>
|
||
<THIS-IS-IT ,KEY>
|
||
<TELL
|
||
"You search for the key to your sea chest. Can someone have taken it? No! There it is. You take it with thanks." CR>)
|
||
(ELSE
|
||
<TELL "You notice the key to your sea chest,
|
||
safe and sound where you left it." CR>)>
|
||
<RESTART-STORM?>
|
||
<SCORE-OBJECT ,KEY>)
|
||
(ELSE
|
||
<TELL
|
||
"You search the desk, finding nothing of particular interest." CR>)>)>>
|
||
|
||
<OBJECT QUILL
|
||
(LOC DESK)
|
||
(DESC "quill")
|
||
(SYNONYM QUILL PEN)
|
||
(ADJECTIVE FRESH QUILL)
|
||
(FLAGS TAKEBIT TOOLBIT)>
|
||
|
||
<OBJECT KEY
|
||
(LOC PILOTS-CABIN)
|
||
(DESC "rusty key")
|
||
(SYNONYM KEY)
|
||
(ADJECTIVE RUSTY)
|
||
(FLAGS NDESCBIT ;TRYTAKEBIT ;TAKEBIT SCOREBIT)
|
||
(ACTION KEY-F)>
|
||
|
||
<ROUTINE KEY-F ()
|
||
<COND (<VERB? FIND>
|
||
<COND (<FSET? ,KEY ,NDESCBIT>
|
||
<TELL
|
||
"You keep the key in your desk, so you look there first. ">)>
|
||
<PERFORM ,V?SEARCH ,DESK>
|
||
<RTRUE>)
|
||
(<FSET? ,KEY ,NDESCBIT>
|
||
<TELL
|
||
"You see no key here." CR>)
|
||
(<AND <P? UNLOCK SEA-CHEST KEY>
|
||
<FSET? ,SEA-CHEST ,LOCKED>>
|
||
<FCLEAR ,SEA-CHEST ,LOCKED>
|
||
<TELL
|
||
"The chest unlocks with a rusty click." CR>)
|
||
(<AND <P? LOCK SEA-CHEST KEY>
|
||
<NOT <FSET? ,SEA-CHEST ,LOCKED>>>
|
||
<FCLEAR ,SEA-CHEST ,OPENBIT>
|
||
<FSET ,SEA-CHEST ,LOCKED>
|
||
<TELL
|
||
"The chest is now securely locked." CR>)>>
|
||
|
||
<OBJECT APPLE
|
||
(DESC "tiny bruised apple")
|
||
(OWNER BLACKTHORNE)
|
||
(SYNONYM APPLE APPLES SLICE)
|
||
(ADJECTIVE BRUISED TINY MOLDY)
|
||
(FLAGS NDESCBIT TAKEBIT FOODBIT SCOREBIT DONT-ALL)
|
||
(COUNT 4)
|
||
(ACTION APPLE-F)>
|
||
|
||
<ROUTINE APPLE-F ("AUX" TMP)
|
||
<COND (<VERB? FIND>
|
||
<COND (<AND <IN? ,APPLE ,ROPER>
|
||
<FSET? ,APPLE ,NDESCBIT>>
|
||
<TELL
|
||
"A cursory search of the premises reveals no apple." CR>)>)
|
||
(<VERB? EXAMINE>
|
||
<COND (<IN? ,APPLE ,ROPER>
|
||
<COND (<FSET? ,APPLE ,NDESCBIT>
|
||
<TELL
|
||
"You see no apple." CR>)
|
||
(ELSE
|
||
<TELL
|
||
"This is the last of the apples you have carefully hoarded all the way
|
||
from Santa Maria Island, off Chile. It's bruised and tiny, with mold on
|
||
a rotting section." CR>)>)>)
|
||
(<VERB? EAT>
|
||
<COND (<NOT <HELD? ,APPLE>>
|
||
<TELL
|
||
"You don't have the apple." CR>
|
||
<RTRUE>)>
|
||
<SET TMP <- <GETP ,APPLE ,P?COUNT> 1>>
|
||
<PUTP ,APPLE ,P?COUNT .TMP>
|
||
<COND (<ZERO? .TMP>
|
||
<REMOVE ,APPLE>
|
||
<TELL
|
||
"You eat the last quarter of the apple." CR>)
|
||
(ELSE
|
||
<TELL
|
||
"You carefully eat a quarter of the apple, wrap the remainder, and put it
|
||
away. There are a few maggots in the quarter you've cut off, but you
|
||
heed the old sea legend that apple maggots are effective against
|
||
scurvy. You chew the fruit gently because your teeth are aching and your gums
|
||
sore and tender. After you finish the apple, you feel better." CR>
|
||
<COND (<EQUAL? .TMP 3>
|
||
<PUTP ,WINNER ,P?HEALTH 1>
|
||
<SETG TIRED-TIME 0>
|
||
<DEQUEUE I-TIRED-WARNING>
|
||
<DEQUEUE I-TIRED>
|
||
<RESTART-STORM?>
|
||
<SCORE-OBJECT ,APPLE>)>
|
||
<RTRUE>)>)
|
||
(<AND <P? GIVE APPLE *>
|
||
<FSET? ,PRSI ,PERSON>>
|
||
<REMOVE ,APPLE>
|
||
<TELL
|
||
CTHE ,PRSI " take" S ,PRSI " the apple and gobble" S ,PRSI " it greedily.">
|
||
<COND (<PRSI? ,VINCK ,PIETERZOON CROOCQ>
|
||
<TELL
|
||
"\"Thank you, Pilot. Thank you!\"">)>
|
||
<CRLF>)>>
|
||
|
||
<ROUTINE RAT-PSEUDO ()
|
||
<RANDOM-PSEUDO "rat">>
|
||
|
||
<ROUTINE COCKROACH-PSEUDO ()
|
||
<RANDOM-PSEUDO "cockroaches">>
|
||
|
||
<ROUTINE RANDOM-PSEUDO (WHAT)
|
||
<TELL "You don't see the " .WHAT " any more." CR>>
|
||
|
||
<ROOM MATES-CABIN
|
||
(LOC ROOMS)
|
||
(DESC "Mates' Cabin")
|
||
(OWNER MATES)
|
||
(SYNONYM CABIN ROOM)
|
||
(ADJECTIVE MATES)
|
||
(PORT TO PASSAGEWAY IF MATES-CABIN-DOOR IS OPEN)
|
||
(OUT TO PASSAGEWAY IF MATES-CABIN-DOOR IS OPEN)
|
||
(FLAGS ONBIT)
|
||
(GLOBAL DECK MATES-CABIN-DOOR LG-ERASMUS LG-CREWMEN)
|
||
(THINGS <> RAT RAT-PSEUDO
|
||
<> COCKROACH COCKROACH-PSEUDO)
|
||
(ACTION MATES-CABIN-F)>
|
||
|
||
<ROUTINE MATES-CABIN-F (RARG)
|
||
<COND (<RARG? LOOK>
|
||
<TELL
|
||
"This is the Mates' cabin.">
|
||
<COND (<SCENE? ,S-ERASMUS>
|
||
<TELL "It is now shared by Baccus van Nekk, the
|
||
chief merchant, Hendrik the third mate, and the boy, Croocq.">)>
|
||
<TELL "The passageway is outside." CR>)
|
||
(<RARG? BEG>
|
||
<COND (<AND <P? SEARCH GLOBAL-HERE>
|
||
<IN? ,APPLE ,ROPER>>
|
||
<TELL
|
||
"You find nothing. Roper watches with a smirk on his face. \"Go ahead,
|
||
Pilot. Search all you want.\"" CR>)
|
||
(<AND <P? SEARCH (PIETERZOON VAN-NEKK CROOCQ)>
|
||
<IN? ,APPLE ,ROPER>>
|
||
<TELL
|
||
D ,PRSO " reluctantly allows himself to be searched, cursing you all
|
||
the while. You find nothing." CR>)>)>>
|
||
|
||
<BEGIN-SEGMENT RODRIGUES>
|
||
|
||
<OBJECT PILOTS-CABIN-DOOR
|
||
(LOC LOCAL-GLOBALS)
|
||
(OWNER BLACKTHORNE)
|
||
(DESC "Pilot's cabin door")
|
||
(SYNONYM DOOR)
|
||
(ADJECTIVE ;MY CABIN)
|
||
(FLAGS DOORBIT LOCKABLE)>
|
||
|
||
<END-SEGMENT ;"ERASMUS+RODRIGUES">
|
||
<BEGIN-SEGMENT ERASMUS>
|
||
|
||
<OBJECT CAPTAINS-CABIN-DOOR
|
||
(LOC LOCAL-GLOBALS)
|
||
(OWNER SPILLBERGEN)
|
||
(DESC "Captain's cabin door")
|
||
(SYNONYM DOOR)
|
||
(ADJECTIVE CABIN)
|
||
(FLAGS DOORBIT LOCKABLE)
|
||
(ACTION CAPTAINS-CABIN-DOOR-F)>
|
||
|
||
<ROUTINE CAPTAINS-CABIN-DOOR-F ()
|
||
<COND (<VERB? KNOCK>
|
||
<COND (<IN? ,SPILLBERGEN ,CAPTAINS-CABIN>
|
||
<TELL
|
||
"You hear a faint response." CR>)>)>>
|
||
|
||
<OBJECT MATES
|
||
(LOC GENERIC-OBJECTS)
|
||
(DESC "Mates")
|
||
(SYNONYM MATES MATE OFFICERS OFFICER)
|
||
(ADJECTIVE FIRST SECOND THIRD)
|
||
(FLAGS PERSON DUTCHBIT)>
|
||
|
||
<OBJECT MATES-CABIN-DOOR
|
||
(LOC LOCAL-GLOBALS)
|
||
(OWNER MATES)
|
||
(DESC "Mates' cabin door")
|
||
(SYNONYM DOOR)
|
||
(ADJECTIVE CABIN)
|
||
(FLAGS DOORBIT LOCKABLE)
|
||
(ACTION MATES-CABIN-DOOR-F)>
|
||
|
||
<ROUTINE MATES-CABIN-DOOR-F ()
|
||
<COND (<VERB? KNOCK>
|
||
<COND (<SCENE? ,S-ERASMUS>
|
||
<TELL
|
||
"\"Aye? Come in, damn you! Do think this is a palace?\"" CR>)>)>>
|
||
|
||
<BEGIN-SEGMENT ANJIRO>
|
||
<BEGIN-SEGMENT RODRIGUES>
|
||
|
||
<OBJECT PASSAGE-DOOR
|
||
(LOC LOCAL-GLOBALS)
|
||
(DESC "passageway door")
|
||
(SYNONYM DOOR)
|
||
(ADJECTIVE PASSAGE PASSAGEWAY)
|
||
(FLAGS DOORBIT LOCKABLE)
|
||
(ACTION PASSAGE-DOOR-F)>
|
||
|
||
<ROUTINE PASSAGE-DOOR-F ()
|
||
<COND (<SCENE? ,S-ANJIRO>
|
||
<COND (<NOT <PASSIVE-VERB?>>
|
||
<PERFORM ,V?RUB ,RIBBON>
|
||
<RTRUE>)>)
|
||
(<SCENE? ,S-ERASMUS>
|
||
<COND (<VERB? KNOCK>
|
||
<TELL
|
||
"You hear noise inside, but no response to your knock." CR>)>)>>
|
||
|
||
<END-SEGMENT ;"ERASMUS+ANJIRO+RODRIGUES">
|
||
<BEGIN-SEGMENT ERASMUS>
|
||
|
||
<OBJECT LASHING
|
||
(LOC BRIDGE-OF-ERASMUS)
|
||
(DESC "protective lashing")
|
||
(SYNONYM LASHING ROPE)
|
||
(ADJECTIVE PROTECTIVE)
|
||
(FLAGS NDESCBIT)>
|
||
|
||
<OBJECT WHEEL
|
||
(LOC BRIDGE-OF-ERASMUS)
|
||
(OWNER LG-ERASMUS)
|
||
(DESC "wheel")
|
||
(SYNONYM WHEEL RUDDER HELM TILLER)
|
||
(DESCFCN WHEEL-DESC)
|
||
(FLAGS CANT-HOLD SCOREBIT)
|
||
(ACTION WHEEL-F)>
|
||
|
||
<ROUTINE WHEEL-DESC (RARG OBJ)
|
||
<COND (<RARG? OBJDESC?> <RTRUE>)
|
||
(<RARG? OBJDESC>
|
||
<TELL
|
||
"The wheel dominates the quarterdeck. It is
|
||
turned ">
|
||
<COND (<EQUAL? ,SHIP-COURSE ,P?PORT> <TELL "to port">)
|
||
(<EQUAL? ,SHIP-COURSE ,P?STARBOARD> <TELL "to starboard">)
|
||
(ELSE <TELL "straight">)>
|
||
<TELL " and ">
|
||
<COND (<FSET? ,WHEEL ,RMUNGBIT>
|
||
<TELL "lashed in place">)
|
||
(ELSE <TELL "free to turn">)>
|
||
<TELL " now.">)>>
|
||
|
||
<ROUTINE WHEEL-F ("AUX" (ST? <>) (TOOK? <>))
|
||
<COND (<VERB? EXAMINE>
|
||
<TELL
|
||
"The wheel is connected to the rudder and steers the ship. It is
|
||
turned ">
|
||
<COND (<EQUAL? ,SHIP-COURSE ,P?PORT> <TELL "to port">)
|
||
(<EQUAL? ,SHIP-COURSE ,P?STARBOARD> <TELL "to starboard">)
|
||
(ELSE <TELL "straight">)>
|
||
<TELL " now, ">
|
||
<COND (<FSET? ,WHEEL ,RMUNGBIT>
|
||
<TELL
|
||
"lashed in place against the surging sea." CR>)
|
||
(<FSET? ,WHEEL ,ONBIT>
|
||
<TELL
|
||
"unlashed and held steady only by all the strength you can summon
|
||
from a weakened body." CR>)
|
||
(ELSE
|
||
<TELL
|
||
"spinning freely from side to side, the lashing hanging loosely beside
|
||
it." CR>)>)
|
||
(<VERB? TAKE TAKE-OVER>
|
||
<COND (<FSET? ,WHEEL ,RMUNGBIT>
|
||
<PERFORM ,V?UNTIE ,WHEEL>
|
||
<RTRUE>)
|
||
(<NOT <FSET? ,WHEEL ,ONBIT>>
|
||
<TELL
|
||
"You take hold of the wheel, trying to keep it under control">
|
||
<COND (<AND <EQUAL? ,SHIP-Y 1> ;">=13"
|
||
<G? ,SHIP-X 0>
|
||
<L? ,SHIP-X 6>>
|
||
<TELL ", but the currents and the
|
||
crashing waves spin it away from from you. You just aren't strong
|
||
enough to hold it alone. \"Piss on you, storm! Get your dung-eating
|
||
hands off my ship!\", you rage in frustration." CR>)
|
||
(ELSE
|
||
<FCLEAR ,HENDRIK ,TRYTAKEBIT>
|
||
<FSET ,WHEEL ,ONBIT>
|
||
<TELL "." CR>)>)
|
||
(ELSE
|
||
<TELL
|
||
"You hold the wheel as strongly as you can, fighting the surging
|
||
sea." CR>)>)
|
||
(<VERB? DROP>
|
||
<COND (<FSET? ,WHEEL ,RMUNGBIT>
|
||
<PERFORM ,V?UNTIE ,WHEEL>
|
||
<RTRUE>)
|
||
(<FSET? ,WHEEL ,ONBIT>
|
||
<FCLEAR ,WHEEL ,ONBIT>
|
||
<TELL
|
||
"You let go of the wheel." CR>)
|
||
(ELSE
|
||
<TELL
|
||
"You arent' holding it." CR>)>)
|
||
(<P? PUT LASHING WHEEL>
|
||
<PERFORM ,V?TIE ,WHEEL>
|
||
<RTRUE>)
|
||
(<P? (TAKE TAKE-OFF) LASHING>
|
||
<PERFORM ,V?UNTIE ,WHEEL>
|
||
<RTRUE>)
|
||
(<P? TIE WHEEL>
|
||
<COND (<FSET? ,WHEEL ,RMUNGBIT>
|
||
<TELL G"It already is." CR>)
|
||
(<AND <EQUAL? ,SHIP-Y 1> ;">=13"
|
||
<G? ,SHIP-X 0>
|
||
<L? ,SHIP-X 6>
|
||
<NOT <FSET? ,WHEEL ,ONBIT>>>
|
||
<TELL
|
||
"The wheel is spinning too wildly to lash. ">
|
||
<YOULL-HAVE-TO "get it under control">)
|
||
(ELSE
|
||
<FSET ,WHEEL ,RMUNGBIT>
|
||
<FCLEAR ,WHEEL ,ONBIT>
|
||
<TELL
|
||
"You loop the protective lashing around the spokes of the wheel. It
|
||
is now locked in place." CR>)>)
|
||
(<P? UNTIE WHEEL>
|
||
<COND (<FSET? ,WHEEL ,RMUNGBIT>
|
||
<FCLEAR ,HENDRIK ,TRYTAKEBIT>
|
||
<FSET ,WHEEL ,ONBIT>
|
||
<FCLEAR ,WHEEL ,RMUNGBIT>
|
||
<TELL
|
||
"You remove the protective lashing, and brace yourself in place against
|
||
the force of the sea. You can now turn the wheel freely." CR>)
|
||
(ELSE
|
||
<TELL
|
||
G"It already is." CR>)>)
|
||
(<P? TIE * WHEEL>
|
||
<COND (<PRSO? ,LASHING>
|
||
<PERFORM ,V?TIE ,WHEEL>
|
||
<RTRUE>)
|
||
(ELSE
|
||
<TELL
|
||
"You can't tie " THE ,PRSO " to the wheel!" CR>)>)
|
||
(<P? UNTIE LASHING WHEEL>
|
||
<PERFORM ,V?UNTIE ,WHEEL>)
|
||
(<P? STRAIGHTEN WHEEL>
|
||
<SETG P-DIRECTION ,P?FORE>
|
||
<PERFORM ,V?TURN ,WHEEL ,INTDIR>
|
||
<RTRUE>)
|
||
(<P? TURN WHEEL>
|
||
<COND (<NOT <FSET? ,WHEEL ,ONBIT>>
|
||
<COND (<AND <EQUAL? ,SHIP-Y 1> ;">=13"
|
||
<G? ,SHIP-X 0>
|
||
<L? ,SHIP-X 6>>
|
||
<TELL
|
||
"You grab for the spinning, thrashing wheel, but the force of the
|
||
storm is too strong, and the"G" wheel spins out of your hands!" CR>
|
||
<RTRUE>)
|
||
(ELSE
|
||
<SET TOOK? T>
|
||
<FCLEAR ,HENDRIK ,TRYTAKEBIT>
|
||
<FSET ,WHEEL ,ONBIT>
|
||
<TELL
|
||
"You take the wheel">
|
||
<COND (<FSET? ,WHEEL ,RMUNGBIT>
|
||
<FCLEAR ,WHEEL ,RMUNGBIT>
|
||
<TELL ", unlashing it first">)>)>)>
|
||
<COND (<FSET? ,LG-ERASMUS ,RMUNGBIT>
|
||
<COND (.TOOK? <TELL ", but the">)
|
||
(ELSE <TELL "The">)>
|
||
<TELL
|
||
" ship is pinned to the reef, so turning the wheel is futile!" CR>)
|
||
(<FSET? ,WHEEL ,RMUNGBIT>
|
||
<COND (.TOOK? <TELL ", but it's">)
|
||
(ELSE <TELL "The wheel is">)>
|
||
<TELL " lashed in place and won't turn." CR>)
|
||
(<FSET? ,FORESAILS ,RMUNGBIT>
|
||
<COND (.TOOK? <TELL " and turn it">)
|
||
(ELSE
|
||
<TELL "You turn the wheel">)>
|
||
<TELL ", but there just isn't enough sail without the
|
||
foresails, and the ship wallows like a pig!" CR>)
|
||
(<PRSI? ,INTDIR>
|
||
<COND (<OR <AND <EQUAL? ,P-DIRECTION ,P?STARBOARD>
|
||
<EQUAL? ,SHIP-COURSE ,P?PORT>>
|
||
<AND <EQUAL? ,P-DIRECTION ,P?PORT>
|
||
<EQUAL? ,SHIP-COURSE ,P?STARBOARD>>>
|
||
<SET ST? ,P-DIRECTION>
|
||
<SETG P-DIRECTION ,P?FORE>)>
|
||
<COND (<EQUAL? ,P-DIRECTION ,SHIP-COURSE>
|
||
<COND (.TOOK? <TELL ". ">)>
|
||
<COND (<EQUAL? ,SHIP-COURSE ,P?FORE>
|
||
<TELL "You maintain course ">
|
||
<TELL-DIRECTION ,SHIP-DIRECTION>
|
||
<TELL ", the wheel still ">)
|
||
(ELSE
|
||
<TELL "The wheel is already ">)>
|
||
<COND (<EQUAL? ,SHIP-COURSE ,P?PORT>
|
||
<TELL "turned to port">)
|
||
(<EQUAL? ,SHIP-COURSE ,P?STARBOARD>
|
||
<TELL "turned to starboard">)
|
||
(<EQUAL? ,SHIP-COURSE ,P?FORE>
|
||
<TELL "straight">)>
|
||
<TELL "." CR>)
|
||
(<EQUAL? ,P-DIRECTION ,P?PORT>
|
||
<QUEUE I-BROADSIDE 2>
|
||
<SET-COURSE ,P?PORT>
|
||
<COND (.TOOK? <TELL ". ">)>
|
||
<TELL
|
||
"Straining against the sea, you turn the wheel to port.">
|
||
<COND (<AND ,REEF-FLAG ;"3,4"
|
||
<EQUAL? ,REEF-X ,REEF-Y>>
|
||
<TELL
|
||
"The ship turns broadside to the reef, struggling against the
|
||
wind which tries to drive it onto the spines." CR>)
|
||
(<AND <EQUAL? ,SHIP-X 6> ;"11"
|
||
<EQUAL? ,SHIP-Y 2>>
|
||
<TELL
|
||
"Fighting the wind, the ship slowly turns away from the reef." CR>)
|
||
(<AND <EQUAL? ,SHIP-X 1> ;"15"
|
||
<EQUAL? ,SHIP-Y 1>>
|
||
<TELL
|
||
"Struggling, the ship begins to turn to port, slowly, slowly as the
|
||
swift currents are drawing you deeper into the maze of rocks." CR>)
|
||
(ELSE
|
||
<TELL
|
||
"The ship struggles against the wind." CR>)>)
|
||
(<EQUAL? ,P-DIRECTION ,P?STARBOARD>
|
||
<QUEUE I-BROADSIDE 2>
|
||
<SET-COURSE ,P?STARBOARD>
|
||
<COND (.TOOK? <TELL " and turn it">)
|
||
(ELSE <TELL "You turn the wheel">)>
|
||
<TELL " to starboard.">
|
||
<COND (<AND <EQUAL? ,SHIP-X 8> ;"10"
|
||
<EQUAL? ,SHIP-Y 2>>
|
||
<TELL
|
||
"The wind snaps the sails full and the ship heads for the gap, but it
|
||
means coming very close to the waiting reef!" CR>)
|
||
(<AND <EQUAL? ,SHIP-X 5> ;"12"
|
||
<EQUAL? ,SHIP-Y 1>>
|
||
<TELL
|
||
"With a crack the sails fill, shooting the "I"Erasmus"" into the gap!" CR>)
|
||
(ELSE
|
||
<TELL
|
||
"The ship gains speed with the wind." CR>)>)
|
||
(<EQUAL? ,P-DIRECTION ,P?FORE ,P?IN>
|
||
<DEQUEUE I-BROADSIDE>
|
||
<SET-COURSE ,P?FORE>
|
||
<COND (.ST?
|
||
<COND (.TOOK? <TELL " and haul it to ">)
|
||
(ELSE <TELL "You haul the wheel to ">)>
|
||
<TELL-DIRECTION .ST?>
|
||
<TELL
|
||
", centering it">)
|
||
(ELSE
|
||
<COND (.TOOK? <TELL " and straighten it">)
|
||
(ELSE <TELL "You straighten the wheel">)>)>
|
||
<COND (<AND <EQUAL? ,SHIP-Y 9>
|
||
<EQUAL? ,SHIP-X 19>>
|
||
<SETG SHIP-DIRECTION ,P?WEST>
|
||
<TELL
|
||
". Helped by the following wind, the ship returns to its course." CR>
|
||
<SCORE-OBJECT ,WHEEL>)
|
||
(ELSE
|
||
<TELL
|
||
", trying to hold a steady course." CR>)>)
|
||
(ELSE
|
||
<COND (.TOOK? <TELL ". ">)>
|
||
<TELL
|
||
"You can only turn the ship to port or starboard!" CR>)>)
|
||
(ELSE
|
||
<COND (.TOOK? <TELL ". ">)>
|
||
<TELL G"You must specify a direction!" CR>)>)>>
|
||
|
||
<ROUTINE I-BROADSIDE ()
|
||
<COND (<NOT <EQUAL? ,SHIP-COURSE ,P?FORE>>
|
||
<TELL CR
|
||
"The "I"Erasmus"" continues to turn, further and further off the
|
||
wind. Soon she'll be broadside to the waves!" CR>)>>
|
||
|
||
<ROUTINE I-SHIP-BROADSIDE ()
|
||
<COND (<NOT <EQUAL? ,SHIP-COURSE ,P?FORE>>
|
||
<SHIP-BROADSIDE>)>>
|
||
|
||
<ROUTINE SHIP-BROADSIDE ()
|
||
<TELL CR "The ship continues turning to ">
|
||
<TELL-DIRECTION ,SHIP-COURSE>
|
||
<JIGS-UP
|
||
". It is now broadside to the waves, which spill torrents of water
|
||
onto the deck, and below. Soon she is foundering, the entire ocean seeming
|
||
to want to fill her holds.">
|
||
<RFATAL>>
|
||
|
||
<ROUTINE SET-COURSE (DIR)
|
||
<COND (<NOT <EQUAL? .DIR ,SHIP-COURSE ,P?FORE>>
|
||
<QUEUE I-STORM 1>)>
|
||
<SETG SHIP-COURSE .DIR>
|
||
<RTRUE>>
|
||
|
||
<GLOBAL TIRED-TIME 0>
|
||
|
||
<ROUTINE I-TIRED-WARNING ()
|
||
<COND (<ZERO? <GETP ,BLACKTHORNE ,P?HEALTH>>
|
||
<TELL CR
|
||
"Exhaustion is rapidly overcoming you, but you know you can't sleep
|
||
now." CR>)>>
|
||
|
||
<ROUTINE I-TIRED ()
|
||
<COND (<ZERO? <GETP ,BLACKTHORNE ,P?HEALTH>>
|
||
<CRLF>
|
||
<JIGS-UP
|
||
"Your exhausted body, pushed beyond its last reserves of strength,
|
||
fails you. You collapse, every fiber aching with months of
|
||
deprivation. It is not long after that the ship is driven against the
|
||
rocks.">)>>
|
||
|
||
<BEGIN-SEGMENT YABU>
|
||
<BEGIN-SEGMENT PIT>
|
||
|
||
<OBJECT SPILLBERGEN
|
||
(LOC CAPTAINS-CABIN)
|
||
(DESC "Captain-General Spillbergen")
|
||
(SYNONYM SPILLBERGEN CAPTAIN MAN)
|
||
(ADJECTIVE CAPTAIN-GENERAL CAPTAIN PAULUS)
|
||
(FLAGS PERSON DUTCHBIT OPENBIT CONTBIT SEARCHBIT NOABIT NOTHEBIT)
|
||
(DESCFCN SPILLBERGEN-DESC)
|
||
(GENERIC GENERIC-CAPTAIN-F)
|
||
(ACTION SPILLBERGEN-F)>
|
||
|
||
<ROUTINE SPILLBERGEN-DESC (RARG OBJ)
|
||
<COND (<RARG? OBJDESC?>
|
||
<COND (<SCENE? ,S-ERASMUS ,S-YABU ,S-PIT> <RTRUE>)
|
||
(ELSE <RFALSE>)>)
|
||
(<RARG? OBJDESC>
|
||
<TELL
|
||
"Captain-General Paulus Spillbergen ">
|
||
<COND (<SCENE? ,S-ERASMUS>
|
||
<TELL "lies half conscious in his bunk.">)
|
||
(<SCENE? ,S-YABU>
|
||
<TELL "lies nearly unconscious on a pallet.">)
|
||
(<SCENE? ,S-PIT>
|
||
<COND (<AND <LOC ,LONG-STRAW> <LOC ,SHORT-STRAW>>
|
||
<TELL
|
||
"lies delirious in the mud.">)
|
||
(ELSE
|
||
<TELL
|
||
"sits in the mud, leaning back against a wall.">)>)>)>>
|
||
|
||
<ROUTINE SPILLBERGEN-F ("OPT" (RARG <>))
|
||
<COND (<RARG? SUBJ>
|
||
<RFALSE>)
|
||
(<RARG? WINNER>
|
||
<COND (<OR <VERB? STOP>
|
||
<P? SHUT-UP ROOMS>>
|
||
<TELL
|
||
"He stops for a moment, looking at you pitifully." CR>)
|
||
(ELSE
|
||
<TELL
|
||
"He stirs weakly, but otherwise doesn't respond." CR>)>)
|
||
(<VERB? PISS>
|
||
<TELL
|
||
"You have come to hate him, but to humilate him in his helpless,
|
||
weakened condition would be too much." CR>)
|
||
(<VERB? MOVE>
|
||
<TELL "He's too weak to be moved." CR>)
|
||
(<HOSTILE-VERB?>
|
||
<TELL
|
||
"You want to hit him, even as weak and helpless as he is. He's to
|
||
blame, it's true, but you can't do it."G" Almost exactly
|
||
one year ago the fleet reached Tierra del Fuego, the winds favorable for
|
||
the stab into the unknown of Magellan's Pass. But the Captain-General had
|
||
ordered a landing to search for gold and treasure. The fleet had been
|
||
forced to winter in the harsh southern wastes, and it was four months
|
||
before they could sail. By then, one hundred and fifty six men had died
|
||
of starvation and cold." CR>)
|
||
(<VERB? WHO>
|
||
<TELL
|
||
"Paulus Spillbergen is the Captain-General of the fleet."G" Almost exactly
|
||
one year ago the fleet reached Tierra del Fuego, the winds favorable for
|
||
the stab into the unknown of Magellan's Pass. But the Captain-General had
|
||
ordered a landing to search for gold and treasure. The fleet had been
|
||
forced to winter in the harsh southern wastes, and it was four months
|
||
before they could sail. By then, one hundred and fifty six men had died
|
||
of starvation and cold." CR>)
|
||
(<VERB? EXAMINE>
|
||
<TELL "Spillbergen ">
|
||
<COND (<HERE? ,CAPTAINS-CABIN>
|
||
<TELL
|
||
"is lying half conscious in his bunk. He ">)>
|
||
<TELL "is a short,
|
||
florid man, normally very fat, now very thin, the skin of his
|
||
paunch hanging slackly in folds.">
|
||
<COND (<AND <HERE? ,CAPTAINS-CABIN>
|
||
<FSET? ,FLAGON ,SCOREBIT>>
|
||
<TELL "He looks parched.">)>
|
||
<CRLF>)
|
||
(<AND <VERB? FIND>
|
||
<SCENE? ,S-ERASMUS>
|
||
<NOT <HERE? ,CAPTAINS-CABIN>>>
|
||
<TELL "He's in his cabin." CR>)
|
||
(<P? ASK-ABOUT * GLOBAL-WATER>
|
||
<TELL
|
||
"\"I'm parched, Pilot! Give me water! You had some before!\"" CR>)
|
||
(<P? SHOW * SPILLBERGEN>
|
||
<COND (<PRSO? FLAGON APPLE>
|
||
<TELL
|
||
"The captain reaches feebly for " THE ,PRSO "." CR>)>)
|
||
(<P? GIVE * SPILLBERGEN>
|
||
<COND (<PRSO? FLAGON>
|
||
<FSET ,FLAGON ,OPENBIT>
|
||
<TELL
|
||
"Weakly, Spillbergen drinks a little water.">
|
||
<COND (<FSET? ,FLAGON ,SCOREBIT>
|
||
<TELL
|
||
"\"Thanks,\" he says. \"Where's land -- where's land?\"|
|
||
|
|
||
\"Ahead\" is all you can say in reply." CR>
|
||
<RESTART-STORM?>
|
||
<SCORE-OBJECT ,FLAGON>)
|
||
(ELSE <CRLF>)>)
|
||
(<PRSO? APPLE>
|
||
<REMOVE ,APPLE>
|
||
<TELL
|
||
"The captain greedily devours your last apple, the pulp dripping down
|
||
his chin." CR>)>)
|
||
(<VERB? SOOTHE>
|
||
<TELL
|
||
"His whining continues unabated." CR>)
|
||
(<VERB? HELP>
|
||
<TELL
|
||
"He seems hungry and thirsty." CR>)
|
||
(<VERB? SEARCH>
|
||
<TELL
|
||
"He squirms and whines in a futile attempt to prevent you. You find
|
||
nothing interesting anyway." CR>)>>
|
||
|
||
<OBJECT PIETERZOON
|
||
(LOC MATES-CABIN)
|
||
(DESC "Pieterzoon")
|
||
(SYNONYM PIETERZOON GUNNER)
|
||
(FLAGS PERSON DUTCHBIT NOABIT NOTHEBIT)
|
||
(ACTION PIETERZOON-F)>
|
||
|
||
<ROUTINE PIETERZOON-F ("OPT" (RARG <>))
|
||
<COND (<RARG? WINNER>
|
||
<COND (<SEND-HIM-OUT?>
|
||
<SETG WINNER ,PLAYER>
|
||
<PERFORM ,V?SEND ,PIETERZOON ,ROOMS>
|
||
<RTRUE>)
|
||
(ELSE
|
||
<TELL
|
||
CTHE ,WINNER G" responds with little enthusiasm." CR>)>)
|
||
(<RARG? <>>
|
||
<COND (<AND <NOT <IN? ,PIETERZOON ,HERE>>
|
||
<HERE? ,PIT>
|
||
<NOT <ABSTRACT-VERB?>>>
|
||
<TELL
|
||
"Pieterzoon isn't here." CR>
|
||
<COND (<VERB? TELL> <END-QUOTE>)
|
||
(ELSE <RTRUE>)>)
|
||
(<AND <VERB? EXAMINE>
|
||
<FSET? ,PIETERZOON ,DEAD>>
|
||
<TELL
|
||
"He looks like a boiled roast of beef." CR>)
|
||
(<P? SEND PIETERZOON>
|
||
<TELL
|
||
"\"I'm too weak, Pilot! Go forward and send Ginsel out, or Maetsukker! He's
|
||
always shirking his watch!\"" CR>)>)>>
|
||
|
||
<OBJECT ROPER
|
||
(LOC PASSAGEWAY)
|
||
(DESC "Jan Roper")
|
||
(SYNONYM JAN ROPER CALVINIST)
|
||
(ADJECTIVE JAN)
|
||
(FLAGS PERSON DUTCHBIT NOABIT NOTHEBIT SCOREBIT
|
||
CONTBIT OPENBIT SEARCHBIT)
|
||
(CONTFCN ROPER-F)
|
||
(ACTION ROPER-F)>
|
||
|
||
<ROUTINE ROPER-F ("OPT" (RARG <>))
|
||
<COND (<RARG? SUBJ>
|
||
<RFALSE>)
|
||
(<RARG? WINNER>
|
||
<COND (<NOT <SCENE? ,S-ERASMUS>>
|
||
<TELL "He responds with disdain." CR>)
|
||
(<OR <P? ACCUSE ROPER>
|
||
<P? TELL-ME-ABOUT APPLE>
|
||
<AND <P? (BE BE?) ;WHY YOU INTPP>
|
||
<PP? ,W?IN ,PILOTS-CABIN>>>
|
||
<FCLEAR ,APPLE ,NDESCBIT>
|
||
<TELL
|
||
"\"You've been in my cabin,\" you say tiredly.|
|
||
|
|
||
\"I didn't steal anything, Pilot. Besides, alone in the wilderness
|
||
we good Christians must share what little we have.\" You recall how
|
||
Roper and the rest didn't conserve their food, especially the fruit
|
||
which has made your scurvy a matter of aching gums rather than lost
|
||
teeth." CR>)
|
||
(<HOSTILE-VERB?>
|
||
<TELL
|
||
"\"I'll turn the other cheek, as any good Christian would!\" says
|
||
Roper. You remember him shooting at the priests in Chile." CR>)
|
||
(<P? GIVE APPLE (BLACKTHORNE ME)>
|
||
<TELL
|
||
"\"It's ours to share. We ate one, shared it out, and we'll do the
|
||
same with the other, as God is my witness!\"" CR>)
|
||
(<SEND-HIM-OUT?>
|
||
<SETG WINNER ,PLAYER>
|
||
<PERFORM ,V?SEND ,ROPER ,ROOMS>
|
||
<RTRUE>)
|
||
(ELSE
|
||
<TELL
|
||
"He responds scornfully." CR>)>)
|
||
(<RARG? CONTAINER>
|
||
<COND (<P? TAKE APPLE>
|
||
<FCLEAR ,APPLE ,DONT-ALL>
|
||
<FCLEAR ,APPLE ,NDESCBIT>
|
||
<MOVE ,APPLE ,WINNER>
|
||
<TELL
|
||
"You grab Roper tightly, and twist his arm until he drops the apple
|
||
into your hands." CR>
|
||
<RESTART-STORM?>
|
||
<SCORE-OBJECT ,ROPER>)>)
|
||
(<VERB? WHO>
|
||
<TELL
|
||
"Jan Roper is one of the merchant adventurers, and a fanatic
|
||
Calvinist. He nearly killed you in Chile in his haste to fire his musket at a
|
||
priest." CR>)
|
||
(<VERB? EXAMINE>
|
||
<TELL
|
||
"He's a narrow-eyed young man with a high forehead and a thin nose.">
|
||
<COND (<HERE? ,MATES-CABIN>
|
||
<TELL
|
||
"His pale chin is marred by a drip of apple juice.">)>
|
||
<CRLF>)
|
||
(<VERB? SEARCH>
|
||
<COND (<NOT <SCENE? ,S-ERASMUS>>
|
||
<RFALSE>)
|
||
(<IN? ,APPLE ,ROPER>
|
||
<COND (<FSET? ,APPLE ,NDESCBIT>
|
||
<FCLEAR ,APPLE ,NDESCBIT>
|
||
<TELL
|
||
"Roper twists away as best he can, then pulls an apple from his
|
||
pocket. \"Here it is!\" he screams, dancing away from you." CR>)
|
||
(ELSE
|
||
<TELL
|
||
"\"Keep away from me! What more do you want?\" Roper whines." CR>)>)
|
||
(ELSE
|
||
<TELL
|
||
"\"What more do you want from me? You've already stolen my apple, you
|
||
hoarder!\"" CR>)>)
|
||
(<P? GIVE APPLE ROPER>
|
||
<REMOVE ,APPLE>
|
||
<TELL
|
||
"Roper grabs the apple and stuffs it into his mouth." CR>)
|
||
(<HOSTILE-VERB?>
|
||
<TELL "You ">
|
||
<COND (<VERB? THROW>
|
||
<COND (<NOT <HELD? ,PRSO>>
|
||
<TELL "threaten to ">)>
|
||
<MOVE ,PRSO ,HERE>
|
||
<TELL "throw " THE ,PRSO " at him">)
|
||
(<AND ,PRSI <FSET? ,PRSI ,WEAPONBIT>>
|
||
<TELL "threaten him with " THE ,PRSI>)
|
||
(<VERB? KICK>
|
||
<TELL "kick at him as you would kick a dog">)
|
||
(ELSE
|
||
<TELL "raise your fists, threatening him">)>
|
||
<TELL ", and he backs fearfully away.">
|
||
<COND (<IN? ,APPLE ,ROPER>
|
||
<COND (<FSET? ,APPLE ,NDESCBIT>
|
||
<FCLEAR ,APPLE ,NDESCBIT>
|
||
<TELL
|
||
"\"It's mine, I tell you! Share and share alike!\" he whines, pulling
|
||
an apple out of his pocket." CR>)
|
||
(ELSE
|
||
<MOVE ,APPLE ,HERE>
|
||
<TELL
|
||
"\"Don't hit me!\" he screams, dropping the apple on the ground." CR>
|
||
<SCORE-OBJECT ,ROPER>)>)
|
||
(ELSE <CRLF>)>)
|
||
(<P? SEND ROPER>
|
||
<TELL
|
||
"He refuses to go, scornfully suggesting you get the regular crewmen on
|
||
deck instead. He's so incompetent a seaman that you relent." CR>)>>
|
||
|
||
<OBJECT SONK
|
||
(LOC BELOW-DECKS)
|
||
(DESC "Sonk")
|
||
(SYNONYM SONK COOK)
|
||
(FLAGS NDESCBIT PERSON DUTCHBIT NOABIT NOTHEBIT)
|
||
(ACTION SONK-F)>
|
||
|
||
<ROUTINE SONK-F ("OPT" (RARG <>))
|
||
<COND (<RARG? WINNER>
|
||
<TELL CTHE ,WINNER G" responds with little enthusiasm." CR>)>>
|
||
|
||
<OBJECT SALAMON
|
||
(LOC BELOW-DECKS)
|
||
(DESC "Salamon")
|
||
(SYNONYM SALAMON MUTE)
|
||
(FLAGS NDESCBIT PERSON DUTCHBIT NOABIT NOTHEBIT)
|
||
(ACTION SALAMON-F)>
|
||
|
||
<ROUTINE SALAMON-F ("OPT" (RARG <>))
|
||
<COND (<RARG? SUBJ>
|
||
<RFALSE>)
|
||
(<RARG? WINNER>
|
||
<TELL
|
||
CTHE ,WINNER " responds with gestures conveying little enthusiasm." CR>)
|
||
(<VERB? WHO>
|
||
<TELL "Salamon is a mute." CR>)
|
||
(<HOSTILE-VERB?>
|
||
<TELL
|
||
"In the end, you can't actually bring yourself to do it." CR>)>>
|
||
|
||
<OBJECT VAN-NEKK
|
||
(LOC MATES-CABIN)
|
||
(DESC "Baccus van Nekk")
|
||
(SYNONYM BACCUS NEKK)
|
||
(ADJECTIVE CHIEF MERCHANT BACCUS VAN)
|
||
(FLAGS PERSON DUTCHBIT NOABIT NOTHEBIT)
|
||
(ACTION VAN-NEKK-F)>
|
||
|
||
<ROUTINE VAN-NEKK-F ("OPT" (RARG <>))
|
||
<COND ;(<RARG? SUBJ>
|
||
<RFALSE>)
|
||
(<RARG? WINNER>
|
||
<COND (<P? TELL-ME-ABOUT (APPLE ROPER)>
|
||
<TELL
|
||
"Van Nekk points angrily at Roper. \"He took it, Pilot! He said you
|
||
were hoarding food!\"" CR>)
|
||
(<P? (RAISE REPAIR LOWER) FORESAILS>
|
||
<RFALSE>)
|
||
(<SEND-HIM-OUT?>
|
||
<SETG WINNER ,PLAYER>
|
||
<PERFORM ,V?SEND ,VAN-NEKK ,ROOMS>
|
||
<RTRUE>)
|
||
(ELSE
|
||
<TELL
|
||
G"The only responses are muttered curses in Dutch." CR>)>)
|
||
(<RARG? <>>
|
||
<COND (<P? SEND VAN-NEKK>
|
||
<TELL
|
||
"\"I'd go, Pilot, but it's not my watch. It's Vinck's watch, I think, and
|
||
Ginsel's, and Maetsukker's, if I've not gone crazed.\" He smiles wanly." CR>)>)>>
|
||
|
||
<OBJECT CROOCQ
|
||
(LOC BELOW-DECKS)
|
||
(DESC "Croocq")
|
||
(SYNONYM CROOCQ BOY)
|
||
(ADJECTIVE MAXIMILIAN)
|
||
(FLAGS NDESCBIT PERSON DUTCHBIT NOABIT NOTHEBIT)
|
||
(ACTION CROOCQ-F)>
|
||
|
||
<ROUTINE CROOCQ-F ("OPT" (RARG <>))
|
||
<COND (<RARG? SUBJ>
|
||
<RFALSE>)
|
||
(<RARG? WINNER>
|
||
<COND (<P? TELL-ME-ABOUT (APPLE ROPER)>
|
||
<TELL
|
||
"Croocq says, \"I don't know anything about it, Pilot.\"" CR>)
|
||
(<P? (RAISE REPAIR LOWER) FORESAILS>
|
||
<RFALSE>)
|
||
(<SEND-HIM-OUT?>
|
||
<SETG WINNER ,PLAYER>
|
||
<PERFORM ,V?SEND ,CROOCQ ,ROOMS>
|
||
<RTRUE>)
|
||
(ELSE
|
||
<TELL
|
||
G"The only responses are muttered curses in Dutch." CR>)>)
|
||
(<VERB? TELL>
|
||
<COND (<OR <IN? ,CROOCQ ,CAULDRON>
|
||
<IN? ,CROOCQ ,VILLAGE-SQUARE>>
|
||
<TELL
|
||
"He's in no condition to respond." CR>
|
||
<END-QUOTE>
|
||
<RFATAL>)>)
|
||
(<P? SEND CROOCQ>
|
||
<TELL
|
||
"He's too far gone to go on deck; almost too tired to stand." CR>)>>
|
||
|
||
<ROUTINE SEND-HIM-OUT? ()
|
||
<COND (<SCENE? ,S-ERASMUS>
|
||
<OR <VERB? REPLACE>
|
||
<P? FOLLOW ME>
|
||
<P? WALK (P?UP P?OUT)>
|
||
<P? (STEP-ON TAKE BOARD WALK-TO CLIMB-ON)
|
||
(DECK BRIDGE-OF-ERASMUS ON-DECK)>>)>>
|
||
|
||
<END-SEGMENT ;"ERASMUS+YABU+PIT">
|