#!/usr/local/jacl-1.5/bin/jacl # ----------------------------------------------------------------------------- # THE DOWN DRAGON # Copyright (C) Stuart Allen 1998. All rights resevered. # email: stuart@jacl.animats.net web: http://jacl.animats.net variable GAME_VERSION 1 # ----------------------------------------------------------------------------- prefix DRAGON- location tavern: tavern big fat south square out square {movement if destination != nowhere write "

You squint as you step back out into the light.^^" break false endif write "

The only way out of here is south, through the front doors.^" break } {look write "

Seedy Bar^" if here hasnt VISITED write "You can barely make out the back wall of this seedy bar through a " write "thick haze of smoke. Your nausea has begun to subside now that you " write "have acclimatised to the stench of stale beer" if dragon hasnt DEAD write ", but the sorrowful wailing of a dragon sitting at the bar " write "continues to grate" endif write ". A barmaid, who is making no attempt to hide how much she hates " write "her job, is walking through the crowd.^^" endif set noun1 = bar execute "+contents" write "^" } {eachturn set bar(one) + 1 if bar(one) = 1 if dragon hasnt DEAD write "

^The dragon induges in a fit of pitiful crying then chugs " write "down another pint.^" endif endif if bar(one) = 2 write "

^A grubby-looking man sitting near the back of the room " write "grabs a bottle of red wine from the " write "barmaid's tray then slaps her on the arse as she turns to leave. " write "With practiced ease, he screws a bottle opener into the cork " write "then pushes down on the levers to open the bottle.^" endif if bar(one) = 3 write "

^~Hey! Check it out!~ the grubby-looking man yells to the " write "women at his table as he holds the bottle opener vertically " write "against his chest. With a sleazy grin, he presses the handle " write "for the screw up and down repeatedly causing the tips of the " write "levers to describe small arcs across the region of his nipples. " write "~Settle down sweet jugs,~ he shouts to a woman who wasn't even " write "paying him the slightest bit of attention. ~It's your turn " write "next.~^" endif if bar(one) = 4 write "

^The grubby-looking man takes a swig of wine from the bottle " write "then proceeds to pour everyone a glass, starting with himself.^" endif if bar(one) = 5 if dragon hasnt DEAD write "

^Dragon cries!^" endif endif if bar(one) = 6 write "

^The grubby-looking man ducks down beneath his table, tears a " write "small triangle out of a coaster, then wedges it onto his nose. " write "Sitting up straight again, he yells out at the top of his " write "voice, ~Okay! Who threw that?!~^" endif if bar(one) = 7 write "

^~I've got a joke for you,~ the grubby man says as he leans " write "forward across the table. ~These three guys walk into a bar: " write "an Inform programmer, a TADS programmer and a JACL programmer. " write "As they sit down at a table, the Inform programmer says, 'I bet you " write "a Midori and Lemonade that I can write a port of Rippled Flesh " write "faster than I either of you.'^^" write "'Your on!' the other two reply after a short pause.^^" write "Ready to do battle, they all sit down, pull out their " write "notebook PCs and switch them on.~^" endif if bar(one) = 8 write "

^~Well, who won?~ a man across the table asks.^^" write "

~No one,~ the grubby man replies. ~You see it turned out to be a " write "biker bar and all three of them got bashed for being geeks " write "before their PCs had even finished booting!~^" endif if bar(one) = 9 write "

^~Damned fools,~ the barmaid mumbles as she continues to clear " write "away a stack of empty glasses. ~Everyone knows bikers use Hugo.~^" endif if bar(one) = 10 if dragon hasnt DEAD write "

^Dragon cries!^" endif endif } object bowl: wooden bowl has CONTAINER short a "wooden bowl" long "There is a wooden bowl here." mass 5 quantity 5 parent bar {take if bowl(parent) != alcove break false endif if brass_rod(parent) = right_hole : brass_rod(parent) = left_hole if copper_rod(parent) = right_hole : copper_rod(parent) = left_hole write "

The rods prevent you from being able to take the bowl out of " write "the alcove.^" break endif endif if brass_rod(parent) = right_hole : brass_rod(parent) = left_hole write "

The brass cylindrical weight prevents you from being able " write "to take the bowl out of the alcove.^" break endif if copper_rod(parent) = right_hole : copper_rod(parent) = left_hole write "

The copper cylindrical weight prevents you from being able " write "to take the bowl out of the alcove.^" break endif break false } object grapes: bunch of grapes short a "bunch of grapes" long "There is a bunch of grapes here." mass 5 parent bowl grammar juice *present >break grammar squash *present >break grammar squeeze *present >break grammar mash *present >break {break write "

You mash the grapes until they are nothing more than juice.^" move juice to grapes(parent) move grapes to limbo } {eat if grapes has CUSTOM3 write "

Okay, that's it. You obviously aren't responsible enough to look " write "after the grapes. I'm afraid I'm going to have to confiscate " write "them until you are responsible enough to look after them in an " write "appropriate manner.^^" write "

~You want the grapes? Well you can't handle the grapes!~^" move grapes to limbo break endif if grapes has CUSTOM2 write "

What is your problem! LEAVE THE SMEGGING GRAPES ALONE!^" ensure grapes has CUSTOM3 break endif if grapes has CUSTOM1 write "

No! How much more obvious do I have to make it: IF YOU EAT THE " write "GRAPES YOU CAN'T WIN THE GAME. There, I said it.^" ensure grapes has CUSTOM2 break endif write "

But what if they are of some other use? If I let you eat them, you " write "might be getting your life into an unsolvable state, and then who " write "would you blame? Me. That's right, me. " write "I can see the newsgroup messages now: ~STUART BREAKS RULE #1 OF " write "PLAYER'S BILL OF RIGHTS~. Is that what you want? Is that what you " write "want me to become? Some sort of IF outcast? A lonner on the " write "outskirts of IF acceptance? Well no thanks. Go find something else " write "to do and stop trying to eat the grapes.^" ensure grapes has CUSTOM1 } object juice: grape juice has LIQUID mass 5 parent limbo {drink write "

No.^" } object drink: drink beer ale lager short a "drink" {order write "

You don't have a single yorkquid to your name.^" } object barmaid: busty barmaid maid short a "barmaid" has ANIMATE FEMALE {attack_with_sword if sword hasnt CUSTOM1 write "

You leap forward swinging the sword only to be hit fair and " write "square on the nose by a well-thrown beer mug. Once you can see " write "clearly again you notice the barmaid standing in front of you " write "waving her finger and telling you to settle down.^" ensure sword has CUSTOM1 break endif write "

Not after last time.^" } {examine write "

The barmaid looks about as bored as humanly possible.^" } {ask_for_drink write "

You don't have a single copper piece to your name.^" } {talk_to if barmaid has CUSTOM1 write "

I think you've had enough rejection for one day.^" break endif write "

Your brief attempt to chat up the barmaid comes to and end when " write "she asks you about your job. Fantasy IF actor with a job? Forget it.^" ensure barmaid has CUSTOM1 } object slease: grubby-looking man gubby has ANIMATE short a "grubby-looking man" long "A grubby-looking man sits in the corner of the room with a group of women." {examine write "

The grubby-looking man has an oily, red face, garnished with a thin " write "butt-fluff moustache. His grin, with its vaguely curled upper lip; " write "his eyes, rolling intermittently into the back of his lolling head; " write "and his rambling speech, punctuated with bursts of articulate " write "obsenities, all strike you as an omens of his imminent lapse into " write "unconsciousness.^" } {attack_with_sword write "

You attempt to walk over to the grubby-looking man but a repelled " write "by an invisible barrier. You dismiss any thoughts of the man having " write "Jedi powers when you realise that is it just his breath.^" } object bar: bar counter has SURFACE short a "bar" quantity 50 object vomit: small pool of dragon vomit has LIQUID short a "small pool of dragon vomit" mass 5 parent bar {examine write "

The less said the better, I feel.^" } {eat : drink : take : smell : taste if dragon has DEAD write "

ERROR 469: COMMAND TOO DISGUSTING - PLEASE DON'T CONTACT YOUR " write "SYSTEM ADMINISTRATOR^" break endif write "

You better not, I think the dragon is saving it for later.^" } object dragon: bleary-eyed dragon has ANIMATE short the "dragon" {examine if dragon has DEAD write "

The dragon lying belly-up on the floor, quite dead.^^" write "

~Lucky bastard,~ you think.^" break endif write "

The dragon looks very down -- almost suicidal.^" } {attack_with_sword_override write "

The dragon is far to drunk to defend himself.^^" write "

~Oh the pain! the pain!~ he moans as he keels over backwards, " write "falling off his bar stool.^" ensure dragon has DEAD points 15 set dragon(status) = 5 } {talk_to_override write "

~No job!~ the dragon blubbers, bursting into tears.^" } object sword: rusty old broad sword short a "sword" long long_sword mass 10 {long if sword hasnt TOUCHED write "

Hanging on the wall behind the bar is a rusty old broad sword.^" else write "

A rusty old broad sword rests on the ground.^" } {give_to_dragon write "

You would give a weapon to a dragon that is feeling suicidal? " write "For all you know he might kill himself before you get the chance. " write "Where's the fun in that?^" } {take_override if sword hasnt TOUCHED write "

A cloud of dust fills the air as you take the sword from its " write "rack.^" ensure sword has TOUCHED else write "

You take the sword.^" endif move sword to player } {examine write "

The sword is rusty and chipped.^" } location square: square north tavern in tavern west town {look if here has VISITED write "

You are back in the city square.^" break endif write "

The hustle and bustle of city life at its worst. People rush " write "everywhere around this square leaving trails of turbulence behind " write "themselves in the foul polluted air. Some rush north to the bar, " write "some west to the village. Others just circle the square getting " write "nowhere and not enjoying the journey.^" } location town: town east square south club west market north studio {look write "

The town centre is a bit on the quite side.^" } object sign: sign short a "sign" long "There is a sign before a building to the north." mass heavy {read : examine write ^

centre "I.F. Studios^^" write ^

centre "Now filming the cyber-psycho-techno-thiller^" centre "QUARKAZOID VII" } location club: club north town {look write "

You are in a very crowded and fashionable club.^" } {eachturn if outfit hasnt WORN write "

^~Sorry buddy -- no cloaks, no feathered hats and definitely no " write "codpieces,~ a burly bouncer yells as he pushes you back out " write "the door.^^" move player to town look break endif if sword(parent) = player write "

^As you walk through the door, the bouncer places a huge " write "palm against your chest to stop you.^^" write "~I'll take that, sunshine,~ he says as he takes the sword " write "from you.^" move sword to bouncer endif if club hasnt SCORED points 20 ensure club has SCORED endif } object thief : fat satiated man thief seae chiffon has ANIMATE short name "Seae Chiffon" long "Seae Chiffon is sitting in the corner of the room." mass heavy {examine write "

A fat, satiated gentleman, Seae Chiffon is dressed in a new " write "Armarni suit. " write "You first met him many years ago when he played a supporting role " write "as a thief in a game you starred in. " write "Three sci-fi thrillers and one comedy-romance later he " write "appears to have done quite well for himself.^" } {ask_about_studio : ask_about_script : ask_for_job : ask_aout_job if script(parent) = limbo write "

I think you might have already blown any chance of getting " write "a job out of Seae.^" break endif write "

~Oh, you want in? No Problem, baby,~ the fat " write "satiated gentleman says. " write "~I'll call the studio in the morning and tell Alfonzo he's out.~^" if script hasnt SCORED ensure script has SCORED points 14 endif } {talk_to write "

~Move with the times, baby,~ he advises cheerily.^^" write "

~Fat bastard,~ you think grumpily.^" } object job : support lead job role part in quarkazoid vii 7 seven short a "part in Quarkazoid VII" parent thief object bouncer : burly bouncer man guard heavy big has ANIMATE POSSESSIVE short the "bouncer" long "There is a burly bouncer standing by the door." mass heavy {examine write "

The bouncer is standing with his arms crossed and blank " write "expression on his face.^" } {talk write "

Silence.^" } {attack write "

It's been nice knowing you.^" execute "+game_over" } location studio : studio if studios south town west office {look write "

It has been a while since you've been inside I.F. Studios. The last " write "game you did, a racey little number where the hero (a dashing " write "knight in shining armour) descides to slay the maiden and pork the " write "dragon, was a bit of a box-office flop. Auditions are currently on, " write "however, for a more avant-garde endeavour. It is about butteryfly " write "that is born with only one wing, yet learns to live on, bolstered " write "by the love of a small orphan boy that keeps it in a jar. " write "There is a narrow doorway to the west.^" } {movement if destination = nowhere write "

The only exits are south, back onto the street, and west, " write "through the narrow doorway.^" break endif break false } object script: audition script short an "audition script" long "An audition script rests on the ground." mass 1 {read : examine write "

The script reads:" write "

"
print "BOY              GENTLY CARESS JAR WHILE GAZING LOVINGLY THROUGH THE^"
print "                 GLASS^"
print "BUTTERFLY        WAIT^"
print "BOY              SAY TO BUTTERYFLY, ~OH, HOW YOUR WILL TO SURVIVE^"
print "                 INSPIRES ME SO~^"
print "BUTTERFLY        WINK^"
print "BOY              LIFT THE JAR UP TOWARDS THE SUN, ALLOWING THE ^"
print "                 GOLDEN RAYS OF LIGHT TO ILLUMINATE THE BUTTERFLY'S^"
print "                 REMAINING WING^"
print "BUTTERFLY        PREEN^"
print "BOY              WIPE THE TEAR FROM MY EYE AND TOUCH THE GLASS^"
print "                 GENTLY WITH MY MOISTENED FINGER^"
print "BUTTERFLY        STARE^"
print "BOY              GENTLY PLACE THE JAR UPON THE VELVET PILLOW,^"
print "                 PRESSING AND TWISTING IT UNTIL IT IS SEATED^"
print "                 SECURELY^^"
write "
write "

You feel you would have a good chance at getting the role of the " write "butterfly if you were able to wink.^" } {show_to_thief write "

^Oh, you want in? No Problem,^ the fat satiated gentleman says. " write "~I'll call the studio in the morning at tell Alfonzo he's out.~^" if script hasnt SCORED ensure script has SCORED points 14 endif } {break if here = club write "

You clearly express to the fat, satiated gentleman how you feel " write "about the new genre of IF.^" points 15 move script to limbo break endif break false } {insert_in_thief write "

You clearly express to the fat, satiated gentleman how you feel " write "about the new genre of IF.^" points 15 move script to limbo } location office: studio office east studio {look if here has VISITED write "

You are back in the office at I.F. Studios.^" break endif write "

Eccentric and oddly pompous -- this office is unmistakably Seae " write "Chiffon's, the boss here at IF Studios. " write "Fortunately for you, however, he is not around at the moment so you " write "are free to take a seat in his plush leather chair. The last time " write "you were in this office you were sitting on the small chair opposite, " write "sweating profusely. The takings from your last game hadn't been good " write "and you were being told why in no uncertain terms. " write "86% of all critics used the term ~has been~ somewhere in their " write "review; 13% called you a ~never was~. One final write-up had been " write "quite kind, but the fact that its author coincidentally shared your " write "surname was unforunate to say the least. " write "The only other piece of furniture is a large grandfather clock. Its " write "ominous tick giving Seae the psycological edge in any negotiations " write "he conducts here.^" } {listen if clock(status) = true write "

You can hear the sound of the grandfather clock ticking loudly.^" else write "

You can hear an ominous silence that tells you that you better " write "not be around when Mr Chiffon returns.^" endif } object big_chair : big leather chair short a "big leather chair" object small_chair : small rickety chair short a "small rickety chair" object clock : grandfather clock has CONTAINER CLOSABLE CLOSED short a "grandfather clock" status true quantity 40 {examine write "

The grandfather clock is made from finely-crafted wood and stands " write "about six feet tall. " if clock has CLOSED write "A tall door, which is currently closed, stretches from the " write "clock face down to the solid base.^" break endif write "Through the clock's open door you can see a " if clock(status) = true write "swinging" else write "still" endif write " pendulum, hanging from the mechanism behind the clock's face. " write "Behind top of this pendulum a fine chain loops over a cog. The " write "chain is made from flat, oval-shaped links and has a small hook " write "at each end. " execute "+weights" } object chain : fine chain short a "fine chain" parent clock mass 2 {examine write "

The chain loops over a cog that has a tight-fitting guard " write "surrounding its top half. It is made from flat, " write "oval-shaped links and has a small hook at each end. " execute "+weights" } {+weights if brass_rod(status) = true if copper_rod(status) = true write "

There is a brass weight hanging from one hook and copper " write "weight hanging from the other." endall if brass_rod(status) = true if copper_rod(status) = false write "

A brass weight attached to one of the hooks rests in the " write "bottom of the clock while the other hook dangles " write "high up near the cog." endall if brass_rod(status) = false if copper_rod(status) = true write "A copper weight attached to one of the hooks rests in the " write "bottom of the clock while the other hook dangles high up near " write "the cog." endall write ^ } {take write "

The chain loops over a cog that has a tight-fitting guard " write "surrounding its top half. " if brass_rod(parent) = chain if copper_rod(parent) = chain write "With a large weight attached to each end of the chain it is " write "impossible to remove it.^" set TIME = false break endall write "Although the hooks on each end of the chain small, they are " write "still too large to fit through the guard.^" set TIME = false } object brass_rod: brass cylinder rod weight loop short a "cylindrical brass weight" parent clock status 1 mass 4 {take_override if copper_rod(status) = true if brass_rod(status) = true write "

Supporting the copper weight, you carefully unhook the brass " write "one. Without anything to balance it, you slowly lower the " write "copper weight to rest in the bottom of the clock.^" move brass_rod to player set brass_rod(status) = false ensure brass_rod has TOUCHED break endall if brass_rod(status) = true write "

You take the brass weight, unhooking it from the chain.^" move brass_rod to player set brass_rod(status) = false ensure brass_rod has TOUCHED break endif break false } {examine write "

The weight is cylindrical in shape, about one inch in diameter and " write "about eight inches long. It is made from highly-polished brass and " write "has a very small loop at one end.^" } {insert_in_left_hole : insert_in_right_hole if copper_rod(parent) = noun2 if lever has CUSTOM1 write

noun2{The} " is already filled with the " write "cylindrical copper weight.^" else write

noun2{The} " already has the cylindrical copper weight " write "protruding out from it.^" endif else if lever has CUSTOM1 write "

You slide the " noun1{the} " almost entirely into " write noun2{the} " where clicks into place.^" else write "

You slide " noun1{the} " about an inch up into " noun2{the} write " where is clicks into place, its lower end dangling three inches " write "above the bottom of the alcove.^" endif set noun1(parent) = noun2 endif } object copper_rod: copper cylinder rod weight loop short a "cylindrical copper weight" parent clock status true mass 4 {take_override if copper_rod(status) = true if brass_rod(status) = true write "

Supporting the brass weight, you carefully unhook the copper " write "one. Without anything to balance it, you slowly lower the " write "brass weight to rest in the bottom of the clock.^" move copper_rod to player ensure copper_rod has TOUCHED set copper_rod(status) = false break endall if copper_rod(status) = true write "

You take the copper weight, unhooking it from the chain.^" move copper_rod to player ensure copper_rod has TOUCHED set copper_rod(status) = false break endif break false } {examine write "

The weight is cylindrical in shape, about one inch in diameter and " write "about eight inches long. It is made from a copper and has a very " write "small loop at one end.^" } {insert_in_left_hole : insert_in_right_hole if brass_rod(parent) = noun2 if lever has CUSTOM1 write

noun2{The} " is already filled with the " write "cylindrical brass weight.^" else write

noun2{The} " already has the cylindrical brass weight " write "protruding out from it.^" endif else if lever has CUSTOM1 write "

You slide the " noun1{the} " almost entirely into " write noun2{the} " where clicks into place.^" else write "

You slide " noun1{the} " about an inch up into " noun2{the} write " where is clicks into place, its lower end dangling three inches " write "above the bottom of the alcove.^" endif set noun1(parent) = noun2 endif } {clean write "

I don't mean to be impolite, but it really doesn't look much better.^" } location road: road east market out pasture {look write "

Long, rocky and tedious. It frightens you how much this road reminds " write "you of your career. To the east, at its start, lies the bussling " write "excitement of the town centre. To the west, at its end, lies a " write "desert.^" } object road_sign: road sign short a "crooked road sign" long "A crooked road sign stands near by." mass heavy {examine : read write "

The sign reads:^^" write " EAST TO LIFE
^" write " WEST TO DEATH
^" write " OUT TO PASTURE
^" } location market: market east town west road {look write "

You are at a market just west of the town.^" } object baker: baker man short a "baker" long "Standing behind a trestle is a grumpy looking baker." mass heavy {attack_with_sword write "

The baker, seeing you begin to swing the sword, draws a silenced " write "automatic pistol from his jacket and shoots you three times through " write "the neck. You are sure that if you were still alive it would hurt - " write "alot.^" execute "+game_over" } {talk_to : greet write "

~Bugger off you has-been git!~ the baker yells in response to your " write "cheery greeting.^" } object trestle: trestle has SURFACE short a "trestle" quantity 50 {examine write "

There are several loaves of bread on the trestle.^" } object queue: queue short a "queue of people" long "There is a queue of people here, each pushing a wheelbarrow full of yorkquids." mass heavy {join : enter write "

There is no point as you don't have any money.^" } object yorkquids: wheelbarrow of yorkquids short a "wheelbarrow of yorkquids" {examine write "

Each wheelbarrow, although full, contains barely enough yorkquids to " write "buy a single loaf of bread.^" } object bread: loaf of bread short a "loaf of bread" {take : order write "

Due to the depreciation of the yorkquid, a loaf of bread now costs " write "56 grand. You, however, do not have a single one to your name.^" } location pasture: pasture in road north trail {look write "

A comfortable feeling of relief comes over you in this pasture, away " write "from the cut-throat pace of the town. You've always hated the way " write "people judge you there, but for some reason you always seem to " write "return. To the north, through a tick clump of bushes, a tail " write "becons.^" } {wait write "

It is with pleasure that you spend some quiet time in these " write "relaxing surroundings.^" } location trail : trail south pasture {look if here has VISITED write "

You have arrived back at the trail.^" break endif write "

The north end of this trail ends at a rocky cliff-face. " if stone_door has CLOSED write "There is a small alcove set into the cliff-face just beside a " write "large set of closed double doors. " else endif write "Beside the alcove, on the opposite side to the doors, is a long-" write "handled lever.^" } {movement if COMPASS = NORTH if destination = nowhere write "

The large double doors are closed.^" endif endif break false } object stone_door : large double stone door doors has CLOSED PLURAL short a "large double doors" {examine if stone_door has CLOSED write "

The large double doors are closed.^" else write "

The large double doors are open.^" endif } object alcove : small alcove has CONTAINER quantity 5 short an "alcove" {examine write "

The alcove is ten cubic centemeters in size. In the roof of the " write "alcove are two small holes. " execute "+contents" if lever has CUSTOM1 if brass_rod(parent) = right_hole if copper_rod(parent) = left_hole write "There is a brass cylindrical weight protruding about " write "an inch from the right hole and a " write "copper one from the left.^" break endif endif if brass_rod(parent) = left_hole if copper_rod(parent) = right_hole write "There is a copper cylindrical weight protruding about " write "an inch from the right hole and a " write "brass one from the left.^" break endif endif if copper_rod(parent) = right_hole if brass_rod(parent) != left_hole write "There is a copper cylindrical weight protruding about " write "an inch from the right hole.^" break endif endif if copper_rod(parent) = left_hole if brass_rod(parent) != right_hole write "There is a copper cylindrical weight protruding about " write "an inch from the left hole.^" break endif endif if brass_rod(parent) = right_hole if brass_rod(parent) != left_hole write "There is a brass cylindrical weight protruding about " write "an inch from the right hole.^" break endif endif if brass_rod(parent) = left_hole if brass_rod(parent) != right_hole write "There is a brass cylindrical weight protruding about " write "an inch from the left hole.^" break endif endif else if brass_rod(parent) = right_hole if copper_rod(parent) = left_hole write "There is a brass cylindrical weight protruding " write "from the right hole and a copper one from the left. " if bowl(parent) = alcove write "The weights reach down into the wooden bowl.^" else write "The weights reach down to about three inches from the " write "bottom of the alcove.^" endif break endif endif if brass_rod(parent) = left_hole if copper_rod(parent) = right_hole write "There is a copper cylindrical weight protruding " write "from the right hole and a brass one from the left. " if bowl(parent) = alcove write "The weights reach down into the wooden bowl.^" else write "The weights reach down to about three inches from the " write "bottom of the alcove.^" endif break endif endif if copper_rod(parent) = right_hole if brass_rod(parent) != left_hole write "There is a copper cylindrical weight protruding " write "the right hole. " if bowl(parent) = alcove write "The weight reaches down into the wooden bowl.^" else write "The weight reaches down to about three inches from the " write "bottom of the alcove.^" endif break endif endif if copper_rod(parent) = left_hole if brass_rod(parent) != right_hole write "There is a copper cylindrical weight protruding " write "from the left hole. " if bowl(parent) = alcove write "The weight reaches down into the wooden bowl.^" else write "The weight reaches down to about three inches from the " write "bottom of the alcove.^" endif break endif endif if brass_rod(parent) = right_hole if brass_rod(parent) != left_hole write "There is a brass cylindrical weight protruding " write "from the right hole. " if bowl(parent) = alcove write "The weight reaches down into the wooden bowl.^" else write "The weight reaches down to about three inches from the " write "bottom of the alcove.^" endif break endif endif if brass_rod(parent) = left_hole if brass_rod(parent) != right_hole write "There is a brass cylindrical weight protruding " write "from the left hole. " if bowl(parent) = alcove write "The weight reaches down into the wooden bowl.^" else write "The weight reaches down to about three inches from the " write "bottom of the alcove.^" endif break endif endif endif write ^ } object left_hole : left hole has CONTAINER long "There is a left hole here." short a "left hole" quantity 0 {examine if lever has CUSTOM1 # The rods is retracted. if brass_rod(parent) = left_hole : copper_rod(parent) = left_hole if brass_rod(parent) = left_hole write "

The brass rod is almost completely within the left hole, " write "only about an inch is left protruding.^" else write "

The copper rod is almost completely within the left hole, " write "only about an inch is left protruding.^" endif else write "

The left hole is about one inch in diameter" write " and about seven inches deep.^" endif break else # The rods are protruding. if brass_rod(parent) = left_hole : copper_rod(parent) = left_hole if brass_rod(parent) = left_hole write "

The brass rod is protruding from the left hole by " write "about seven inches, almost to the bottom of the alcove.^" else write "

The copper rod is protruding from the left hole by " write "about seven inches, almost to the bottom of the alcove.^" endif else write "

The left hole is about one inch in diameter" write " and about one inch deep.^" endif break endif } object right_hole : right hole has CONTAINER long "There is a right hole here." short the "right hole" quantity 0 {examine if lever has CUSTOM1 # The rods is retracted. if brass_rod(parent) = right_hole : copper_rod(parent) = right_hole if brass_rod(parent) = right_hole write "

The brass rod is almost completely within the right hole, " write "only about an inch is right protruding.^" else write "

The copper rod is almost completely within the right hole, " write "only about an inch is right protruding.^" endif else write "

The right hole is about one inch in diameter" write " and about seven inches deep.^" endif break else # The rods are protruding. if brass_rod(parent) = right_hole : copper_rod(parent) = right_hole if brass_rod(parent) = right_hole write "

The brass rod is protruding from the right hole by " write "about seven inches, almost to the bottom of the alcove.^" else write "

The copper rod is protruding from the right hole by " write "about seven inches, almost to the bottom of the alcove.^" endif else write "

The right hole is about one inch in diameter" write " and about one inch deep.^" endif break endif } object lever : long-handled lever has CUSTOM1 long "There is a lever here." short a "lever" {examine write "

The lever is current in the " if lever has CUSTOM1 write "up position.^" else write "down position.^" endif } {move if lever has CUSTOM1 write "

The lever is already in the up position.^" break endif ensure lever has CUSTOM1 if brass_rod(parent) = right_hole : brass_rod(parent) = left_hole if copper_rod(parent) = right_hole : copper_rod(parent) = left_hole write "

As you push the lever the two cylindrical weights retract " write "back into the holes in the roof of the alcove.^" break endif endif if brass_rod(parent) = right_hole write "

As you push the lever the cylindrical brass weight " write "retracts back up into the roof of the alcove.^" break endif if brass_rod(parent) = left_hole write "

As you push the lever the cylindrical brass weight " write "retracts back up into the roof of the alcove.^" break endif if copper_rod(parent) = right_hole write "

As you push the lever the cylindrical copper weight " write "retracts back up into the roof of the alcove.^" break endif if copper_rod(parent) = left_hole write "

As you push the lever the cylindrical copper weight " write "retracts back up into the roof of the alcove.^" break endif write "

You push the lever into the up position.^" } {pull if lever hasnt CUSTOM1 write "

The lever is already in the down position.^" break endif loop if noun3(parent) = alcove if noun3 != bowl if noun3(mass) > 4 break +rods endif endif endif endloop ensure lever hasnt CUSTOM1 if bowl(parent) = alcove if brass_rod(parent) = right_hole : brass_rod(parent) = left_hole if copper_rod(parent) = right_hole : copper_rod(parent) = left_hole write "

As you pull the lever the two cylindrical weights emerge " write "from the holes in the roof of the alcove and lower into " write "the bowl." if juice(parent) = bowl write " Moments later the ground begins to shake in a rather " write "cliched fashion and the large double doors open.^" points 25 ensure stone_door hasnt CLOSED set trail(north) = antechamber endif break endif endif if brass_rod(parent) = right_hole write "

As you pull the lever the cylindrical brass weight " write "emerges from the right hole in the roof of the alcove and lowers " write "into the bowl.^" break endif if brass_rod(parent) = left_hole write "

As you pull the lever the cylindrical brass weight " write "emerges from the left hole in the roof of the alcove and lowers " write "into the bowl.^" break endif if copper_rod(parent) = right_hole write "

As you pull the lever the cylindrical copper weight " write "emerges from the right hole in the roof of the alcove and lowers " write "into the bowl.^" break endif if copper_rod(parent) = left_hole write "

As you pull the lever the cylindrical copper weight " write "emerges from the left hole in the roof of the alcove and lowers " write "into the bowl.^" break endif write "

You pull the lever into the down position.^" else ; the bowl is not in the alcove if brass_rod(parent) = right_hole : brass_rod(parent) = left_hole if copper_rod(parent) = right_hole : copper_rod(parent) = left_hole write "

As you pull the lever the two cylindrical weights emerge " write "from the holes in the roof of the alcove and lower to " write "within three inches of the base of the alcove.^" break endif endif if brass_rod(parent) = right_hole write "

As you pull the lever the cylindrical brass weight " write "emerges from the right hole in the roof of the alcove and lowers " write "to within three inches of the base of the alcove.^" break endif if brass_rod(parent) = left_hole write "

As you pull the lever the cylindrical brass weight " write "emerges from the left hole in the roof of the alcove and lowers " write "to within three inches of the base of the alcove.^" break endif if copper_rod(parent) = right_hole write "

As you pull the lever the cylindrical copper weight " write "emerges from the right hole in the roof of the alcove and lowers " write "to within three inches of the base of the alcove.^" break endif if copper_rod(parent) = left_hole write "

As you pull the lever the cylindrical copper weight " write "emerges from the left hole in the roof of the alcove and lowers " write "to within three inches of the base of the alcove.^" break endif write "

You pull the lever into the down position.^" endif } location antechamber : antechamber long dark passage short the "long dark passage" south trail north show_room {look if here has VISITED write "

You are back in the long dark passage.^" break endif write "

Dark Passage
^" write "You are in a long dark passage that runs north-south. At the " write "northern end you can see a bright light.^" } {movement if destination = false write "

The passage runs north-south.^" break endif break false } location show_room : show_room south antechamber {look if here has VISITED write "

You have returned to the show room.^" break endif write "

There are many spotlights attached to the domed ceiling " write "of this room, all focused on a clothes rack in the very " write "centre of the floor. " set noun1 = rack execute "+details" write "^" } object outfit : sparkling sequin outfit has WEARABLE short a "sparkling sequin outfit" long "There is a sparkling sequin outfit here." mass 10 parent rack {wear_override if cloak has WORN write "

You can't put the outfit on over your cloak.^" break endif write "

You slip into the sparkling sequin outfit. Groovy.^" ensure outfit has WORN } {remove write "

The room goes completely silent. No, wait, somebody " write "has just broken the ice with a wolf whistle. What's left of the ice " write "has now been completely shattered by the ensuing " write "laughter. But wait! One fair maiden is not laughing. No, in fact she " write "stares with much admiration in her eyes.^^" write "

~I love a man who's not afraid to show his true colours,~ she " write "whispers into your ear. ~Take me you big butch fantasy-IF actor.~^^" write "

One year later...^^" write "

You are in the pasture just outside of town. A simple hut " write "stands in the centre, built with your own hands. Mary sits by the " write "hut playing with your new-born triplets, each one clad in a " write "codpiece nappy.^^" points 25 execute "+game_over" } object rack : rack has SURFACE short the "rack" capacity 20 object kryten: myself self me has ANIMATE short name "yourself" quantity 98 parent tavern player {attack if kryten has CUSTOM1 write "

I now pronounce you a genuine has-been.^" execute "+game_over" endif write "

Kill yourself, hey? Probably a good idea. After all, it's better to " write "burn out than to fade away...^" ensure kryten has CUSTOM1 } {examine execute "+inventory" } {take write "(seriously?)^" set TIME = false } object boots: leather boots has WEARABLE WORN PLURAL short "a pair of" "leather boots" mass 5 parent kryten object codpiece: leather codpiece has WEARABLE WORN short a "leather codpiece" mass 4 parent kryten {remove write "

Ever since your career as a fantasy adventurer has been on the slide " write "you have considered doing an I-F nasty, but you've always worried " write "that your mother would see a copy.^" } {examine write "

It looks a lot better since you stuffed those old rags in it.^" } object cloak: long cloak has WEARABLE WORN short a "long cloak" mass 8 parent kryten {examine write "

You ~borrowed~ it from wardrobe during your last job. At the time " write "you thought it would be good for your image, but now you're not so " write "sure. The large shiny sequins you can still tollerate, but the fluffy " write "pink edging is just a bit too much.^" } {wear if outfit has WORN write "

It would be such a shape to cover such a fine outfit with " write "the cloak.^" break endif break false } grammar xyzzy >xyzzy grammar say xyzzy >xyzzy {+xyzzy if player has CUSTOM5 write "

~Go away.~^" break endif write "

~That's the password, open the door.~^^" write "

~Are you sure? I don't recognise the voice.~^^" write "

~It's probably just the way this door muffles sound.~^^" write "

A previously invisible door swings open. Beyond the door you " write "see what you can only imagine to be God's workshop.^^" write "print ~Shit! I told you it wasn't him!~;^" write "set bouncer_1(panic) + 5;^" write "print ~Quick! Shut the door.~;^" write "set poo(parent) = bouncer_2s_trousers;^" write "ensure magic_door has CLOSED;^" write "

^The door shuts and disappears again. Something tells you it " write "is going to be one of those days.^" ensure player has CUSTOM5 } {+eachturn if dragon(status) <> 0 set dragon(status) - 1 if dragon(status) = 0 write "

^Oh, and in case you're wandering why " write "you got points for killing a poor " write "defenseless dragon for no established reason, don't be " write "so naive. You ALWAYS get points for killing the dragon. " write "And anyway, it's not like a dragon has any productive " write "role to play in modern IF.^" endall } grammar about >about {+about write "

THE DOWN DRAGON was written by Stuart Allen because he had nothing " write "better to do. He appologises for in advance to anyone who feels that " write "a signficant portion of their lifetime has been wasted playing it.^" write "Game version " GAME_VERSION .^ set TIME = false } {+intro clear centre "

WARNING

" if interpreter = TACL write "^" centre "This game contains coarse language, sexual references," centre "adult themes, low-level violence, extemely poor-taste 'humour'" centre "and a dragon.^" write "^^" centre "T H E D O W N D R A G O N" else write "

" write "

This game contains coarse language, sexual references,
" write "adult themes, low-level violence, extemely poor-taste 'humour'
" write "and a dragon." write "

" centre "

THE DOWN DRAGON

" endif centre "

by Stuart Allen" write "

^^" write "As an fantasy adventurer, the only commands you've used in a while have " write "been WAIT, DOWN and OUT. But look on the bright side, at least " write "you're not the only one...^^" more set player = kryten set player(parent) = tavern look } {+rods if copper_rod(parent) = left_hole : copper_rod(parent) = right_hole if brass_rod(parent) = left_hole : brass_rod(parent) = right_hole write "

As you try to pull the lever, the rods being to protrude " write "only to hit " noun3{the} ", preventing you from pulling the " write "lever any futher.^" break endif endif if copper_rod(parent) = left_hole : copper_rod(parent) = right_hole write "

As you try to pull the lever, the copper rod begins to protrude " write "only to hit " noun3{the} ", preventing you from pulling the " write "lever any futher.^" break endif if brass_rod(parent) = left_hole : brass_rod(parent) = right_hole write "

As you try to pull the lever, the brass rod begins to protrude " write "only to hit " noun3{the} ", preventing you from pulling the " write "lever any futher.^" break endif break false } {+before_insert_in if noun2 = left_hole : noun2 = right_hole loop if noun3(parent) = alcove if noun3(mass) > 4 write "

With " noun3{the} " in the way, you are unable to put " write noun1{the} " in " noun2{the} .^ break endif endif endloop endif if noun2 = alcove if noun1(mass) > 4 if lever hasnt CUSTOM1 if copper_rod(parent) = left_hole : copper_rod(parent) = right_hole if brass_rod(parent) = left_hole : brass_rod(parent) = right_hole write "

The weights are in the way.^" break endif endif if copper_rod(parent) = left_hole : copper_rod(parent) = right_hole write "

The copper weight is in the way.^" break endif if brass_rod(parent) = left_hole : brass_rod(parent) = right_hole write "

The brass weight is in the way.^" break endif endif endif endif break false } {+game_over write "

^" centre "

---[THE END]---

" if interpreter = TACL write "^" execute "+score" endif endgame loop if noun3(parent) = player set noun3(parent) = limbo endif endloop set player(parent) = prologue look } location prologue : prologue {look write "

The game is over. Type restart or restore." write "A restore command can optionally be followed by a filename.

^" } {+header write "Content-type: text/html" write "Expire: -1^^" write " write "" execute "+styles" write "" write "
" } {+footer write "
" execute "+exits" prompt execute "+score" write "" write "" write "" } {+styles write "" } # ---[ JACL LIBRARY FILE Release 11, Copyright (C) Stuart Allen 1990-2001 ]--- filter the filter a variable INDEX variable OB1 variable OB2 variable OB3 variable OB4 variable OXYGEN_LEFT variable WAY variable DIRECTION variable DESTINATION constant TACL 1 constant JACL 2 constant NORTH 0 constant SOUTH 1 constant EAST 2 constant WEST 3 constant NORTHEAST 4 constant NORTHWEST 5 constant SOUTHEAST 6 constant SOUTHWEST 7 constant UP 8 constant DOWN 9 constant IN 10 constant OUT 11 synonym onto on synonym into in synonym inside in synonym using with synonym me myself synonym gentleman man synonym 1 one synonym 2 two synonym 3 three synonym 4 four synonym 5 five synonym 6 six synonym 7 seven synonym 8 eight synonym 9 nine synonym 10 ten synonym taek take synonym all everything synonym speak talk synonym depress press synonym w west synonym e east synonym s south synonym se southeast synonym sw southwest synonym n north synonym ne northeast synonym nw northwest synonym u up synonym d down synonym l look synonym beneath under {+push_object if player(parent) = noun4(parent) if here hasnt DARK write

noun4{The} execute +to_direction else write "

You hear the footsteps nearby.^" endif set noun4(parent) = DESTINATION if player(parent) = noun4(parent) if here hasnt DARK write

noun4{The} execute +from_direction else write "

You hear the footsteps nearby.^" endif endif } {+to_direction if DIRECTION = NORTH write " heads off to the north.

^" break endif if DIRECTION = NORTHEAST write " heads off to the northeast.

^" break endif if DIRECTION = EAST write " heads off to the east.

^" break endif if DIRECTION = SOUTHEAST write " heads off to the southeast.

^" break endif if DIRECTION = SOUTH write " heads off to the south.

^" break endif if DIRECTION = SOUTHWEST write " heads off to the southwest.

^" break endif if DIRECTION = WEST write " heads off to the west.

^" break endif if DIRECTION = NORTHWEST write " heads off to the northwest.

^" break endif if DIRECTION = UP write " heads up from here.

^" break endif if DIRECTION = DOWN write " heads down from here.

^" } {+from_direction if DIRECTION = NORTH write " enters from the south.

^" break endif if DIRECTION = NORTHEAST write " enters from the southwest.

^" break endif if DIRECTION = EAST write " enters from the west.

^" break endif if DIRECTION = SOUTHEAST write " enters from the northwest.

^" break endif if DIRECTION = SOUTH write " enters from the north.

^" break endif if DIRECTION = SOUTHWEST write " enters from the northeast.

^" break endif if DIRECTION = WEST write " enters from the east.

^" break endif if DIRECTION = NORTHWEST write " enters from the southeast.

^" break endif if DIRECTION = UP write " enters from below.

^" break endif if DIRECTION = DOWN write "enters from above.

^" } {+exits set INDEX = false write "

YOU CAN GO: " if here(north) != nowhere hyperlink NORTH "go+north" write " " set INDEX = true endif if here(south) != nowhere hyperlink SOUTH "go+south" write " " set INDEX = true endif if here(east) != nowhere hyperlink EAST "go+east" write " " set INDEX = true endif if here(west) != nowhere hyperlink WEST "go+west" write " " set INDEX = true endif if here(up) != nowhere hyperlink UP "go+up" write " " set INDEX = true endif if here(down) != nowhere hyperlink DOWN "go+down" write " " set INDEX = true endif if here(in) != nowhere hyperlink IN "go+in" write " " set INDEX = true endif if here(out) != nowhere hyperlink OUT "go+out" write " " set INDEX = true endif if here(northeast) != nowhere hyperlink NORTHEAST "go+northeast" write " " set INDEX = true endif if here(northwest) != nowhere hyperlink NORTHWEST "go+northwest" write " " set INDEX = true endif if here(southeast) != nowhere hyperlink SOUTHEAST "go+southeast" write " " set INDEX = true endif if here(southwest) != nowhere hyperlink SOUTHWEST "go+southwest" set INDEX = true endif if INDEX = false write "NOWHERE!" endif write "

^" } {+list_here write "" } {+list_held write "" } {+darkness if here has DARKNESS execute "+no_light" break endif break false } {+reach if noun4 has OUT_OF_REACH write

noun4{The} " " noun4{is} " out of reach.

^" set TIME = false break endif break false } {+worn if noun4 has WORN write "

You must first remove " noun4{the} .

^ set TIME = false break endif break false } location limbo : limbo object north_wall: north north wall short the "north wall" object south_wall: south southern wall short the "south wall" object east_wall: east eastern wall short the "east wall" object west_wall: west western wall short the "west wall" object ground: ground floor has SURFACE short the "ground" grammar shake *held >shake grammar wave *held >shake {+shake write "

Consider it done.

^" } grammar say xyzzy >xyzzy grammar xyzzy >xyzzy {+xyzzy write "

Suddenly a magical white glove appears floating in the air before " write "you, slaps you several times across the face, then disappears.

^" } grammar verbose >verbose {+verbose if DISPLAY_MODE = 1 write "

Display mode already set to verbose.

^" break endif write "

Display mode set to verbose.

^" set DISPLAY_MODE = 1 look } grammar brief >brief {+brief if DISPLAY_MODE = 0 write "

Display mode already set to brief.

^" break endif write "

Display mode set to brief.

^" set DISPLAY_MODE = 0 } grammar help *present >help_other {+help_other write "

How did you intend to help " noun1{the} ?

^ } grammar hint *present >hint {+hint write "

There is no specific hint available for " noun1{the} .

^ set TIME = false } grammar hint >first_hint grammar hint one >first_hint {+first_hint write "

There is no hint available specific to this location.

^" set TIME = false } grammar hint two >second_hint {+second_hint write "

There is no second hint available for this location.

^" set TIME = false } grammar hint three >third_hint {+third_hint write "

There is no third hint available for this location.

^" set TIME = false } grammar hint four >fourth_hint {+fourth_hint write "

There is a maximum of three hints for each location.

^" set TIME = false } grammar help games >help_games {+help_games write "

`GAMES' REFERS TO MODELS, SIMULATIONS AND GAMES WHICH HAVE TACTICAL " write "AND STRATEGIC APPLICATIONS.

^" } grammar hug *present >hug grammar comfort *present >hug grammar cuddle *present >hug grammar console *present >hug {+hug break +darkness break +reach noun1 override if noun1 hasnt ANIMATE write "

Odd.

^" break endif write "

I'm sure " noun1{the} " feel" noun1{s} " a whole lot better now.

^" } grammar kiss *present >kiss {+kiss break +darkness break +reach noun1 override write "

Hmmmmmm...

^" } grammar pick *present with *held >pick_with {+pick_with break +darkness break +reach noun1 override write "

You can't pick " noun1{the} " with " noun2{the} .

^ } grammar rub *present >rub grammar pat *present >rub {+rub break +darkness break +reach noun1 override write "

I'm sure " noun1{the} " " noun1{is} " feeling a lot better now.

^" } grammar rub *held on *present >rub_on {+rub_on break +darkness override proxy "rub " noun2 " with " noun1 } grammar rub *present with *held >rub_with {+rub_with break +darkness break +reach noun1 override write "

They both just get a little warmer.

^" } grammar lick *present >lick grammar taste *present >lick {+lick break +darkness break +reach noun1 override write "

Yeuucck!

^" } grammar pull *present >pull grammar tug *present >pull {+pull break +darkness break +reach noun1 override write "

You can't pull " noun1{the} .

^ } grammar cut *present >cut grammar chop *present >cut grammar stab *present >cut {+cut write "

What did you want to cut " noun1{the} " with?

^" set TIME = false } grammar cut *present with *held >cut_with grammar chop *present with *held >cut_with grammar stab *present with *held >cut_with {+cut_with break +darkness break +reach noun1 override if noun1 has ANIMATE proxy "attack " noun1 " with " noun2 break endif write "

Vandal!

^" set TIME = false } grammar break *present >break grammar kick *present >break grammar smash *present >break grammar crush *present >break grammar destroy *present >break grammar wreck *present >break grammar crack *present >break grammar tear *present >break grammar tear up *present >break grammar tear *present up >break {+break break +darkness break +reach noun1 override write "

Don't be so destructive.

^" set TIME = false } grammar clean *present >clean grammar wash *present >clean grammar wipe *present >clean grammar scrub *present >clean grammar polish *present >clean {+clean break +darkness break +reach noun1 override if noun1 has LIQUID write "

How do you clean a liquid?

^" set TIME = false break endif override write "

That's very thoughtful of you.

^" } grammar clean *present with *held >clean_with grammar wipe *present with *held >clean_with grammar scrub *present with *held >clean_with grammar brush *present with *held >clean_with {+clean_with break +darkness break +reach noun1 override if noun1 has LIQUID write "

How do you clean a liquid?

^" set TIME = false break endif override write "

You can't clean " noun1{the} " with " noun2{the} .

^ set TIME = false } grammar yell at *present >yell_at grammar scream at *present >yell_at {+yell_at write "

Oooo, scary...

^" } grammar pay *present >pay {+pay write "

You can't pay " noun1{the} .

^ } grammar order *carried >order grammar buy *carried >order grammar order *anywhere >order grammar buy *anywhere >order {+order write "

Your order appears to have fallen on deaf ears.

^" } grammar knock on *present >knock_on grammar tap on *present >knock_on grammar tap *present >knock_on {+knock_on break +darkness break +reach noun1 override if noun1 has LIQUID write "

A wet hand is your only reward.

^" break endif write "

Devastatingly productive...

^" } grammar play *present >play {+play break +darkness override write "

You can't play " noun1{the} .

^ set TIME = false } grammar extract *here with *held >take_with grammar get *here with *held >take_with grammar take *here with *held >take_with grammar remove *present with *held >take_with grammar empty *present with *held >take_with {+take_with proxy "fill " noun2 " with " noun1 } grammar fill *held from *present >fill_from {+fill_from break +darkness execute +liquid noun2 if INDEX = false write

noun2{The} " " noun2{doesnt} "contain a liquid to fill " noun1{the} write " with.

^" set TIME = false break endif proxy "fill " noun1 " with " noun3 } grammar fill *held with *present >fill_with {+fill_with break +darkness break +reach noun2 if noun1 hasnt CONTAINER write

noun1{The} " " noun1{isnt} " a container and therefore can't be " write "filled.

^" break endif if noun1 has CLOSED write "

You can't fill " noun1{the} " while " if noun1 has PLURAL write "they are" else write "it is" endif write " closed.

^" set TIME = false break endif if noun2 hasnt LIQUID write "

You can only fill " noun1{the} " with a liquid.

^" break endif execute +liquidwrite noun1 if INDEX = true write

noun1{The} " already contains " noun3{the} ". If you were to also " write "add " noun2{the} " they would mix together.

^" set TIME = false break endif if noun1(quantity) < noun2(mass) write

noun1{The} " " noun1{isnt} " large enough to hold " write noun2{the} .

^ set TIME = false break endif override write "

You fill " noun1{the} " with " noun2{the} .

^ move noun2 to noun1 } {+liquid? set INDEX = false loop if noun3(parent) = noun4 if noun3 has LIQUID set INDEX = true break endif endif endloop } grammar fill *present >fill {+fill break +darkness override write "

What did you want to fill " noun1{the} " with?

^" set TIME = false } grammar stand >stand grammar stand up >stand grammar get up >stand {+stand if player has SITTING write "

Using your arms to push yourself up, you stand.

^" ensure player hasnt SITTING break endif write "

You are already standing.

^" } grammar sleep >sleep {+sleep write "

There will be plenty of time for that later...

^" set TIME = false } grammar lie on *present >lie_on grammar lie down on *present >lie_on grammar sleep on *present >lie_on grammar sleep in *present >lie_on {+lie_on break +darkness break +reach noun1 override write

noun1{The} " " noun1{doesnt} " look like the ideal place to take a " write "nap.

^" } grammar sit >sit grammar sit down >sit {+sit set TIME = false if player has SITTING write "

You are already sitting.

^" break endif if here has UNDER_WATER write "

While underwater?

^" break endif if here has ON_WATER write "

While in water?

^" break endif write "

You plonk yourself down for a moment's rest.

^" ensure player has SITTING } grammar sit on *here >sit_on grammar sit in *here >sit_on {+sit_on break +darkness break +reach noun1 override write

noun1{The} " " noun1{doesnt} " look very comfortable.

^" } grammar drop everything >drop_all grammar put everything down >drop_all grammar put down everything >drop_all {+drop_all set TIME = false if here has MID_WATER : here has ON_WATER write "

Dropping everything you own into the water probably isn't such " write "a great idea.

^" break endif set INDEX = 0 loop if noun3(parent) = player if noun3 hasnt WORN if noun3(mass) < heavy if TIME = true set TOTAL_MOVES + 1 execute +eachturn endif write "

You drop " noun3{the} .

^ move noun3 to here set TIME = true set INDEX + 1 endif else write "

You must first remove " noun3{the} .

^ set TIME = false set INDEX + 1 endif endif endloop if INDEX = 0 write "

You are not carrying anything.

^" break } grammar drop *held >drop grammar throw *held >drop grammar put *held down >drop grammar put down *held >drop {+drop if noun1 has WEARABLE if noun1 has WORN write "

You must first remove " noun1{the} .

^ set TIME = false break endif endif if noun1(mass) >= heavy : noun1 has LOCATION execute +move_scenery break endif override if here has MID_WATER : here has ON_WATER write "

You drop " noun1{the} " which rapidly sink" noun1{s} " out of " write "view.

^" move noun1 to limbo break endif write "

You drop " noun1{the} .^ move noun1 to here } grammar remove everything from *present >take_all_from grammar take everything from *present >take_all_from grammar get everything from *present >take_all_from grammar take everything out of *present >take_all_from grammar get everything out of *present >take_all_from grammar empty *present >take_all_from grammar take everything on *present >take_all_from grammar get everything on *present >take_all_from grammar take everything from on *present >take_all_from grammar get everything from on *present >take_all_from grammar take everything in *present >take_all_from grammar get everything in *present >take_all_from grammar take everything from in *present >take_all_from grammar get everything from in *present >take_all_from {+take_all_from set TIME = false break +darkness break +reach noun1 override if noun1 has ANIMATE write "

You will have to ask " noun1{the} " for anything that you write "want.

^" break endif if noun1 hasnt CONTAINER if noun1 hasnt SURFACE write "

There isn't anything in " noun1{the} .

^ break endif endif if noun1 has CLOSED write "

It's going to be a bit hard to take anything from " noun1{the} write " while " noun1{the} " " noun1{is} " closed."

^ break endif set INDEX = 0 loop if noun3(parent) = noun1 if noun3(mass) < heavy if noun3 hasnt LIQUID if noun3(mass) <= player(quantity) if TIME = true set TOTAL_MOVES + 1 execute +eachturn endif execute +take_routine set INDEX + 1 else write "

You are carrying too much to take " noun3{the} .

^ set INDEX + 1 endif else write "

" noun3{The} " run" noun3{s} " through your fingers.

^" set INDEX + 1 endif endif endif endloop if INDEX = 0 write "

I don't see what you are referring to.

^" } grammar take everything >take_all grammar get everything >take_all {+take_all break +darkness set TIME = false set INDEX = 0 loop if noun3(parent) = here if noun3(mass) < heavy if noun3 hasnt LIQUID if TIME = true set TOTAL_MOVES + 1 execute +eachturn endif execute +take_routine set INDEX + 1 else write "

" noun3{The} " run" noun3{s} " through your fingers.

^" set INDEX + 1 endif endif endif endloop if INDEX = 0 write "

I don't see what you are referring to.

^" } {+take_routine break +reach noun3 if noun3(mass) > player(quantity) write "

You are carrying too much to take " noun3{the} .

^ set TIME = false break endif break noun3.take override write "

You take " noun3{the} .

^ set TIME = true move noun3 to player ensure noun3 has TOUCHED } grammar take *here >take grammar get *here >take {+take break +darkness break +reach noun1 if player has SITTING write "

You will have to stand up first.

^" set TIME = false break endif if noun1(mass) >= heavy : noun1 has LOCATION execute +move_scenery break endif if noun1(mass) > player(quantity) write "

You are carrying too much to take " noun1{the} .

^ set TIME = false break endif if noun1 has LIQUID write

noun1{The} " run" noun1{s} " through your fingers.

^" break endif override write "

You take " noun1{the} .

^ move noun1 to player ensure noun1 has TOUCHED } {+move_scenery set TIME = false if noun1 has LOCATION write "

That would be an impressive feat of strength.

^" break endif set noun3 = noun1(parent) set INDEX = noun3 if noun3 has LOCATION write

noun1{The} " " noun1{isnt} " something that you can pick up.

^" break endif write

noun1{The} " " noun1{is} " attached to " noun3{the} .

^ } grammar insert *held on *present >insert_on grammar put *held on *present >insert_on {+insert_on break +darkness break +reach noun2 if noun2 = noun1 write "

Put " noun1{the} " on " if noun1 has PLURAL write "themselves?" else write "itself?" endif write "I don't think so.

^" set TIME = false break endif if noun2(parent) = noun1 write "

I'm afraid that's just not possible.

^" set TIME = false break endif if noun1(mass) >= heavy : noun1 has LOCATION execute +move_scenery break endif break +worn noun1 if noun2 hasnt SURFACE write "

There isn't a flat surface on " noun2{the} .

^ set TIME = false break endif if noun2(quantity) < noun1(mass) write "

There is not enough room on " noun2{the} " for " noun1{the} .

^ set TIME = false break endif override write "

You put " noun1{the} " on " noun2{the} .

^ move noun1 to noun2 } grammar insert *held in *present >insert_in grammar put *held in *present >insert_in {+insert_in break +darkness break +reach noun2 if noun1(mass) >= heavy : noun1 has LOCATION execute +move_scenery break endif if noun2 = noun1 write "

Put " noun1{the} " in " if noun1 has PLURAL write "themselves?" else write "itself?" endif write "I don't think so.

^" set TIME = false break endif if noun2(parent) = noun1 write "

I'm afraid that's just not possible.

^" set TIME = false break endif break +worn noun1 if noun2 = player write "

I would ask how you intend to do that, but something tells me I " write "don't want to know.

^" set TIME = false break endif if noun2 hasnt CONTAINER write

noun2{The} " " noun2{isnt} " designed to receive " noun1{the} .

^ set TIME = false break endif if noun2 has CLOSED write

noun2{The} " " noun2{is} " closed.

^" set TIME = false break endif if noun2(quantity) < noun1(mass) write "

There is not enough room in " noun2{the} " for " noun1{the} .

^ set TIME = false break endif override write "

You put " noun1{the} " in " noun2{the} .

^ move noun1 to noun2 } grammar insert everything in *present >insert_all_in grammar put everything in *present >insert_all_in {+insert_all_in break +darkness if noun1 hasnt CONTAINER write

noun1{The} " " noun1{isnt} " designed to hold things.

^" set TIME = false break endif break +reach noun1 if noun1 has CLOSED write

noun1{The} " " noun1{is} " closed.

^" set TIME = false break endif set INDEX = 0 loop if noun3(parent) <> player : noun3(mass) >= heavy : noun3 = noun1 endloop execute +encumbered break endif if noun1 has WORN write "

You must first remove " noun3{the} .

^ set INDEX + 1 endloop break endif set OB1 = noun1 set OB2 = noun3 proxy "insert" noun3 " in " noun1 set noun1 = OB1 set noun3 = OB2 set INDEX + 1 endloop } grammar insert everything on *present >insert_all_on grammar put everything on *present >insert_all_on {+insert_all_on break +darkness if noun1 hasnt SURFACE write "

There is no flat surface on " noun1{the} " to put things.

^" set TIME = false break endif break +reach noun1 set INDEX = 0 loop if noun3(parent) <> player : noun3(mass) >= heavy : noun3 = noun1 endloop execute +encumbered break endif if noun1 has WORN write "

You must first remove " noun3{the} .

^ set INDEX + 1 endloop break endif set OB1 = noun1 set OB2 = noun3 proxy "insert" noun3 " on " noun1 set noun1 = OB1 set noun3 = OB2 set INDEX + 1 endloop } {+encumbered if INDEX = 0 write "

You are not carrying anything.

^" } grammar ask *present for *carried >ask_for grammar tell *present to give me *carried >ask_for {+ask_for if here has UNDER_WATER write "

Talking under water isn't very easy.

^" set TIME = false break endif if noun1 hasnt ANIMATE write

noun1{The} " seem" noun1{s} " to be ignoring your request.

^" break endif if noun1 has DEAD write

noun1{The} " " noun1{is} " a bit too dead to respond.

^" set TIME = false break endif if noun1 = player write "

I think it might be time to take a break and get a cup of tea.

^" set TIME = false break endif if noun1 !grandof noun2 write

noun1{The} " " noun1{doesnt} " seem to have " noun2{the} .

^ set TIME = false break endif if noun2(mass) > player(quantity) write "

With your current load you would be unable to accept" write noun2{the} .

^ set TIME = false break endif override if noun1 has POSSESSIVE write

noun1{The} " refuses to give you " noun2{the} .

^ break endif move noun2 to player if noun2 has WORN write

noun1{The} " remove" noun1{s} " " noun2{the} " then hand" noun1{s} if noun2 has PLURAL write " them" else write " it" endif write " to you.

^" ensure noun2 hasnt WORN break endif write

noun1{The} " hands you " noun2{the} .

^ } grammar tell *present about *carried >tell_about grammar talk to *present about *carried >tell_about grammar tell *present about *anywhere >tell_about grammar talk to *present about *anywhere >tell_about {+tell_about if here has UNDER_WATER write "

Talking under water isn't very easy.

^" set TIME = false break endif if noun1 hasnt ANIMATE write "

I don't think talking to " noun1{the} " is going to help somehow.

^" set TIME = false break endif if noun1 has DEAD write

noun1{The} " " noun1{is} " a bit too dead to even pretend to be " write "interested.

^" set TIME = false break endif if noun1 = noun2 write "

I think " noun1{the} " already know" noun1{s} " more than you do.

^" set TIME = false break endif if noun1 = player write "

It's the first sign of madness you know...

^" break endif override write

noun1{The} " seem" noun1{s} " fascinated by your story about " write noun2{the} .

^ } grammar ask *present about *carried >ask_about grammar ask *present about *anywhere >ask_about {+ask_about if here has UNDER_WATER write "

Talking under water isn't very easy.

^" set TIME = false break endif if noun1 hasnt ANIMATE write "

I don't think talking to " noun1{the} " is going to help somehow.

^" set TIME = false break endif if noun1 has DEAD write

noun1{The} " " noun1{is} " a bit too dead to tell you anything write "useful.

^" set TIME = false break endif if noun1 = player write "

It's the first sign of madness you know...

^" break endif override if noun2 = noun1 write noun1(The} if noun1 has PLURAL write " are too shy to say much.

^" else write " is too shy to say much.

^" endif break endif write

noun1{The} " reluctantly admit" noun1{s} " to knowing little about " write noun2{the} .

^ } grammar offer *held to *present >give_to grammar give *held to *present >give_to {+give_to if noun2 hasnt ANIMATE write "

You can't give " noun1{the} " to " noun2 .

^ set TIME = false break endif if noun2 = player write "

I think it might be time to take a break and get a cup of tea.

^" break endif break +reach noun2 if noun1(mass) >= heavy : noun1 has LOCATION execute +move_scenery break endif break +worn noun1 override move noun1 to noun2 write "

You give " noun1{the} " to " noun2{the} .

^ } grammar move *present >move grammar push *present >move {+move break +darkness break +reach noun1 if player has SITTING write "

You will have to stand up first.

^" set TIME = false break endif if noun1(mass) >= heavy : noun1 has LOCATION execute +move_scenery break endif if noun1 has LIQUID write

noun1{The} " run" noun1{s} " through your fingers.

^" break endif break +worn noun1 if noun1(parent) = player override write "

You juggle " noun1{the} " in your hands.

^" break endif override write "

You move " noun1{the} " a short distance to one side.

^" ensure noun1 has TOUCHED } grammar read *present >read {+read break +darkness write "

There is nothing on " noun1{the} " to read.

^" } grammar look down >look_down {+look_down break +darkness if here has TIGHT_ROPE : here has MID_AIR write "

You see the ground far below.

^" break endif if here has ON_WATER write "

You can't see beyond the surface of the water.

^" break endif write "

You take a moment to admire your investigating feet.

^" } grammar look up *anywhere in *present >look_up_in grammar look for *anywhere in *present >look_up_in {+look_up_in break +darkness write "

You don't find any reference to " noun1{the} " in " noun2{the} .

^ } grammar consult *present about *anywhere >consult grammar consult *present re *anywhere >consult grammar consult *present on *anywhere >consult {+consult break +darkness proxy "look up " noun2 " in " noun1 } grammar feel *present >feel grammar touch *present >feel {+feel break +reach noun1 if noun1 has ANIMATE write "

I'm not so sure that would be polite.

^" break endif write "

Feels just like " noun1{list} .

^ } grammar smell >smell grammar sniff >smell {+smell write "

Nothing strikes you as out of the ordinary.

^" } grammar smell *present >sniff grammar sniff *present >sniff {+sniff if noun1 has ANIMATE write "

I'm not so sure that would be polite.

^" break endif write "

Smells an awful lot like " noun1{list} .

^ } grammar taste *present >taste grammar lick *present >taste {+taste break +reach noun1 if noun1 has ANIMATE write "

You are one sick puppy.

^" break endif write "

Tastes just like you would expect " noun1{list} " to taste.

^" } grammar look in *present >look_in {+look_in break +darkness if noun1 hasnt CONTAINER write "

There is nothing in " noun1{the} .

^ break endif if noun1 has CLOSED write

noun1{The} " " noun1{is} " currently closed.

^" break endif set INDEX = 0 loop if noun3(parent) = noun1 set INDEX + 1 endif endloop if INDEX = 0 write "

There is nothing in " noun1{the} .

^ break endif execute +details write "^" } grammar look *present >examine grammar look at *present >examine grammar look on *present >examine grammar examine *present >examine grammar x *present >examine grammar search *present >examine grammar watch *present >examine {+examine break +darkness override if noun1 hasnt CLOSABLE if noun1 hasnt CONTAINER if noun1 hasnt SURFACE write "

There is nothing special about " noun1{the} .

^ break endall if noun1 has CLOSABLE execute +details write "^" break endif set INDEX = 0 loop if noun3(parent) = noun1 set INDEX + 1 endif endloop if INDEX = 0 write "

There is nothing special about " noun1{the} .

^ break endif execute +details write "^" } {+details if noun1 has CLOSABLE if noun1 hasnt CLOSED write

noun1{The} " " noun1{is} " open" else write

noun1{The} " " noun1{is} " closed.

" break endif endif if noun1 has CONTAINER : noun1 has SURFACE execute +contents break endif write .

} {+contents set INDEX = 0 loop if noun3(parent) = noun1 if noun3(mass) != scenery set INDEX + 1 endif endif endloop if INDEX = 0 if noun1 has CLOSABLE if noun1 has CONTAINER write . break endall if INDEX = 0 : noun1 has CONCEALING break endif if noun1 has ANIMATE write

noun1{The} " " noun1{is} " carrying " endif if noun1 has SURFACE write "

On " noun1{the} " is " endif if noun1 has CONTAINER if noun1 has CLOSABLE write " and contains " else write

noun1{The} " contains " endif endif loop if noun3(parent) = noun1 if noun3(mass) != scenery set INDEX - 1 write noun3{list} execute +object_info execute +list_structure if INDEX = 0 write .

break endif endif endif endloop } {+first_child set INDEX = false loop if noun3(parent) = noun4 set INDEX = true break endall endloop } {+children? set INDEX = false loop if noun3(parent) = noun4 set INDEX = true break endif endloop } grammar inv >list_inventory grammar list >list_inventory {+list_inventory set INDEX = 0 loop if noun3(parent) = player if noun3(mass) != scenery set INDEX + 1 endif endif endloop if INDEX = 0 write "

You are empty-handed.

^" break endif write "

You are carrying:
^" loop if noun3(parent) = player if noun3(mass) != scenery write " " noun3{list} execute +object_info write "
^" if noun3 has CONTAINER if noun3 hasnt CLOSED execute +object_children noun3 endif endif endif endif endloop write "

" } {+object_children loop if noun3(parent) = noun4 if interpreter = TACL write " " noun3{list} else write " - " noun3{list} endif execute +object_info write "
^" endif endloop set noun3 = noun4 } grammar inventory >inventory grammar i >inventory {+inventory set INDEX = 0 loop if noun3(parent) = player if noun3(mass) != scenery set INDEX + 1 endif endif endloop if INDEX = 0 write "

You are empty handed.

^" break endif write "

You are carrying " loop if noun3(parent) = player if noun3(mass) != scenery set INDEX - 1 write noun3{list} execute +object_info execute +list_structure if INDEX = 0 write .

^ break endif endif endif endloop } {+list_structure if INDEX > 1 write ", " endif if INDEX = 1 write " and " } {+object_info if noun3 has WORN write " (being worn)" endif if noun3 has LUMINOUS write " (providing light)" endif if noun3 has ON write " (on)" endif if noun3 has CLOSABLE if noun3 hasnt CLOSED write " (open)" } grammar sorry >sorry {+sorry write "

That's quite all right.

^" } grammar thanks >thankyou grammar thank you >thankyou {+thankyou write "

You're welcome.

^" } grammar score >score grammar points >score {+score set TIME = false if TOTAL_MOVES = 1 write "

Your score is " SCORE "% in 1 move.

^" else write "

Your score is " SCORE "% in " TOTAL_MOVES " moves.

^" } grammar open *present >open {+open break +darkness break +reach noun1 if noun1 has LOCKED write

noun1{The} " " noun1{is} " locked.

^" set TIME = false break endif if noun1 hasnt CLOSABLE write "

You can't open " noun1{the} .

^ set TIME = false break endif if noun1 hasnt CLOSED write

noun1{The} " " noun1{is} " already open.

^" set TIME = false break endif override ensure noun1 hasnt CLOSED if noun1 has CONTAINER execute +revealing break endif write "

You open " noun1{the} .

^ } {+revealing set INDEX = 0 loop if noun3(parent) = noun1 set INDEX + 1 endif endloop write "

You open " noun1{the} if INDEX = 0 write ", which" noun1{is} " empty.

^" break endif write " revealing " loop if noun3(parent) = noun1 set INDEX - 1 write noun3{list} execute +object_info execute +list_structure if INDEX = 0 write .

^ break endif endif endloop } grammar close *present >close grammar shut *present >close {+close break +darkness break +reach noun1 if noun1 hasnt CLOSABLE write "

You can't close " noun1{the} .

^ set TIME = false break endif break +reach noun1 if noun1 has CLOSED write

noun1{The} " " noun1{is} " already closed.

^" set TIME = false break endif override write "

You close " noun1{the} .

^ ensure noun1 has CLOSED } grammar lock *present >lock {+lock break +darkness break +reach noun1 if noun1 has LOCKABLE if noun1 has LOCKED write

noun1{The} " " noun1{is} " already locked.

^" break endif endif if noun1 has CLOSABLE if noun1 hasnt CLOSED write "

You can't lock " noun1{the} " while " if noun1 has PLURAL write "they are" else write "it is" endif write " open.

^" set TIME = false break endif endif if noun1 hasnt LOCKABLE write "

You can't lock " noun1{the} .

^ break endif override write "

What did you want to lock " noun1{the} " with?

^" } grammar lock *present with *held >lock_with {+lock_with break +darkness if noun1 hasnt LOCKABLE write "

You can't lock " noun1{the} .

^ set TIME = false break endif break +reach noun1 if noun1 has LOCKED write

noun1{The} " " noun1{is} " already locked.

^" break endif if noun1 has CLOSABLE if noun1 hasnt CLOSED write "

You can't lock " noun1{the} " while " if noun1 has PLURAL write "they are" else write "it is" endif write " open.

^" set TIME = false break endif override write "

You can't lock " noun1{the} " with " noun2{the} .

^ set TIME = false } grammar unlock *present >unlock {+unlock break +darkness if noun1 hasnt LOCKABLE write "

You can't unlock " noun1{the} .

^ set TIME = false break endif break +reach noun1 if noun1 hasnt LOCKED write

noun1{The} " " noun1{is} " already unlocked.

^" set TIME = false break endif override write "

What did you want to unlock " noun1{the} " with?

^" } grammar unlock *present with *held >unlock_with grammar open *present with *held >unlock_with {+unlock_with if noun1 hasnt LOCKABLE write "

You can't unlock " noun1{the} .

^ set TIME = false break endif break +reach noun1 if noun1 hasnt LOCKED write

noun1{The} " " noun1{is} " already unlocked.

^" break endif override write "

You can't unlock " noun1{the} " with " noun2{the} .

^ set TIME = false } grammar show *held to *present >show_to {+show_to break +darkness if noun1 = noun2 write "

You can't show " noun1{the} " to " if noun1 has PLURAL write "themselves." else write "itself.

^" endif set TIME = false break endif override write

noun2{The} " " noun2{doesnt} " seem overly impressed by " noun1{the} .

^ } grammar untie *present >untie grammar free *present >untie grammar undo *present >untie {+untie break +darkness write

noun1{The} " " noun1{is} " not tied to anything.

^" set TIME = false } grammar tie *held >tie grammar attach *held >tie {+tie break +darkness write "

What do you want to tie " noun1{the} " to?

^" set TIME to false } grammar tie *held to *present >tie_to grammar fix *held to *present >tie_to grammar attach *held to *present >tie_to {+tie_to break +darkness break +reach noun2 override write "

You can't tie " noun1{the} " to " noun2{the} .

^ set TIME = false } grammar attack *present >attack grammar hit *present >attack grammar fight *present >attack grammar kill *present >attack grammar murder *present >attack grammar punch *present >attack {+attack break +darkness break +reach noun1 if noun1 has ANIMATE if noun1 has DEAD write

noun1{The} " " noun1{is} " already dead.

^" set TIME = false break endif endif override write "

Attacking " noun1{the} " with your hands would have little effect.

^" set TIME = false } grammar attack *present with *held >attack_with grammar hit *present with *held >attack_with grammar fight *present with *held >attack_with grammar kill *present with *held >attack_with grammar murder *present with *held >attack_with grammar punch *present with *held >attack_with grammar stab *present with *held >attack_with grammar poke *present with *held >attack_with {+attack_with break +darkness break +reach noun1 if noun2 has LIQUID write

noun2{The} " run" noun2{s} " through your fingers.

^" break endif break +worn noun1 if noun1 has ANIMATE if noun1 has DEAD write

noun1{The} " " noun1{is} " already dead.

^" set TIME = false break endif endif override write "

Attacking " noun1{the} " with " noun2{the} " would have little " write "effect.

^" set TIME = false } grammar wave >wave {+wave write "

You wave your arms around a bit.

^" } grammar wave to *present >wave_to {+wave_to break +darkness if noun1 hasnt ANIMATE write "

Not surpisingly, you get no response.

^" break endif write

noun1{The} " barely raises an eye brow.

^" } grammar jump on to *here >jump_on grammar jump on *here >jump_on grammar hop on *here >jump_on grammar stand on *here >jump_on {+jump_on break +darkness set TIME = false if noun1 hasnt SURFACE write "

You can't jump on " noun1{the} .

^ break endif write "

This would achieve little.

^" } grammar jump over *here >jump_over {+jump_over break +darkness write "

You can't jump over " noun1{the} .

^ set TIME = false } grammar jump >jump {+jump if here has MID_AIR write "

Not likely." break endif if here has TIGHT_ROPE write "

Something tells me that might be a bit too dangerous, not to " write "mention totally unnecessary.

^" break endif if here has UNDER_WATER : here has ON_WATER write "

While underwater?

^" break endif if player has SITTING write "

You would have to get up first.

^" break endif write "

Consider it done.

^" } grammar yes >yes grammar okay >yes grammar yeah >yes {+yes write "

That was a rhetorical question.

^" set TIME = false } grammar no >no {+no write "

That was a rhetorical question.

^" set TIME = false } grammar why >why grammar why? >why {+why write "

Because.

^" set TIME = false } grammar blow *held at *here >blow_at grammar blow *held to *here >blow_at {+blow_at break +darkness write "

You can't blow " noun1{the} " at " noun2{the} .

^ set TIME = false } grammar throw *held at *here >throw_at grammar throw *held to *here >throw_at {+throw_at break +darkness if noun2 has ANIMATE write "

I don't think " noun2{the} " would really appreciate you throwing " write noun1{the} " at " if noun2 has FEMALE write "her.

^" else write "him.

^" endif set TIME = false break endif break +worn noun1 if noun2(parent) hasnt LOCATION write "

You can't throw " noun1{the} " at " noun2{the} " while " if noun2 has PLURAL write "they are" else write "it is" write " in something else.

^" set TIME = false break endif if noun1(mass) >= heavy : noun1 has LOCATION execute +move_scenery break endif override if noun1(mass) => 20 write

noun1{The} if noun1 has PLURAL write " are " else write " is " endif write "a bit too heavy to go throwing around.

^" set TIME = false break endif if here has UNDER_WATER write "

Throwing things underwater is never as easy as you might think.

^" set TIME = false break endif if here has ON_WATER write "

You throw " noun1{the} " at " noun2{the} " which " if noun1 has PLURAL write "they bounce" else write "it bounces" endif write " off, landing in the water where " if noun1 has PLURAL write "they" else write "it" endif write " rapidly sink" noun1{s} ", disappearing from sight.

^" move noun1 to limbo break endif write

noun1{The} " bounce" noun1{s} " off " noun2{the} " and land" noun1{s} write " on the ground.

^" move noun1 to here } grammar remove *present from *present >remove_from grammar take *present from *present >remove_from grammar get *present from *present >remove_from grammar take *present out of *present >remove_from grammar get *present out of *present >remove_from grammar take *present on *present >remove_from grammar get *present on *present >remove_from {+remove_from break +darkness if noun1(parent) <> noun2 write

noun1{The} " " noun1{is} " not in " noun2{the} .

^ set TIME = false break endif proxy "take" noun1 } grammar remove *present >remove grammar take off *present >remove grammar doff *present >remove {+remove if noun1 hasnt WORN if noun1(parent) = player write "

You are not wearing " noun1{the} .

^ set TIME = false break endif endif if noun1 hasnt WORN proxy "take" noun1 break endif if noun1(mass) > player(quantity) write "

You are carrying too much to remove " noun1{the} .

^ set TIME = false break endif override set player(quantity) - noun1(mass) ensure noun1 hasnt WORN write "

You remove " noun1{the} .

^ } grammar wear *held >wear grammar put on *held >wear grammar put *held on >wear grammar don *held >wear {+wear if noun1 hasnt WEARABLE write "

You can't wear " noun1{the} .

^ set TIME = false break endif if noun1 has WORN write "

You are already wearing " noun1{the} .

^ set TIME = false break endif override set player(quantity) + noun1(mass) ensure noun1 has WORN write "

You put " noun1{the} " on.

^" } grammar talk to *present >talk_to {+talk_to if here has UNDER_WATER write "

Talking under water isn't very easy.

^" set TIME = false break endif if noun1 hasnt ANIMATE write "

I don't think talking to " noun1{the} " is going to help somehow.

^" set TIME = false break endif if noun1 has DEAD write

noun1{The} " " noun1{is} " a bit too dead to respond.

^" set TIME = false break endif if noun1 = player write "

It's the first sign of madness you know...

^" break endif override write

noun1{The} " " noun1{doesnt} " appear very interested in a " write "conversation.

^" } grammar eat *present >eat {+eat break +darkness write "

You can't eat " noun1{the} .

^ set TIME = false } grammar drink from *present >drink_from grammar sip from *present >drink_from {+drink_from break +darkness execute +liquidwrite noun1 if INDEX = true proxy "drink " noun3 set TIME = false break endif write "

There is nothing to drink in " noun1{the} .

^ set TIME = false } grammar drink *present >drink grammar sip *present >drink {+drink break +darkness break +reach noun1 if noun1 hasnt LIQUID write "

You can't drink " noun1{the} .

^ set TIME = false break endif override write "

You drink " noun1{the} .

^ move noun1 to limbo } grammar flick *present >flick {+flick break +darkness break +reach noun1 if noun1 has LIQUID write "

A wet hand is your only reward.

^" break endif override write "

Flicking " noun1{the} " achieves nothing more than causing a sharp " write "pain in your index finger.

^" } grammar press *present >press grammar poke *present >press {+press break +darkness break +reach noun1 if noun1 has LIQUID write "

A wet hand is your only reward.

^" break endif override write "

Pressing " noun1{the} " has no discernible effect.

^" } grammar light *present with *held >light_with grammar burn *present with *held >light_with grammar ignite *present with *held >light_with grammar set fire to *present with *held >light_with {+light_with if here has UNDER_WATER write "

I don't think you are going to be lighting anything under water.

^" set TIME = false break endif break +reach noun1 if noun1 hasnt FLAMMABLE write

noun1{The} " " noun1{is} " not at all flammable.

^" set TIME = false break endif if noun2 hasnt IGNITABLE write "

I don't see how you can light " noun1{the} " using " noun2 .

^ set TIME = false break endif if noun1(quantity) = 0 write

noun1{The} " has run out.

^" break endif if noun1 has BURNING write

noun1{The} " " noun1{is} " already lit.

^" set TIME = false break endif override write "

You light " noun1{the} " using " noun2 .

^ ensure noun1 has BURNING ensure noun1 has LUMINOUS } grammar burn *present >light grammar light *present >light grammar ignite *present >light grammar set fire to *present >light {+light if here has UNDER_WATER write "

I don't think you are going to be lighting anything under water.

^" set TIME = false break endif break +reach noun1 if noun1 has IGNITABLE override write "

You produce a brief flame.

^" break endif if noun1 hasnt FLAMMABLE write

noun1{The} " " noun1{is} " not at all flammable.

^" set TIME = false break endif if noun1 has BURNING write

noun1{The} " " noun1{is} " already alight.

^" set TIME = false break endif write "

What did you intent to light " noun1{the} " with?

^" set TIME = false } grammar extinguish *present >extinguish grammar put out *present >extinguish grammar put *present out >extinguish {+extinguish if noun1 hasnt BURNING write

noun1{The} " " noun1{is} " not lit.

^" set TIME = false break endif break +reach noun1 override write "

You put out " noun1{the} .

^ ensure noun1 hasnt BURNING ensure noun1 hasnt LUMINOUS } grammar swim west >swim_west {+swim_west if here has UNDER_WATER set WAY = WEST travel west break endif if here has ON_WATER set WAY = WEST travel west break endif write "

I don't see how you can swim when you are not in water.

^" set TIME = false } grammar west >west grammar go west >west grammar walk west >west {+west set WAY = WEST travel west } grammar swim east >swim_east {+swim_east if here has UNDER_WATER set WAY = EAST travel east break endif if here has ON_WATER set WAY = EAST travel east break endif write "

I don't see how you can swim when you are not in water.

^" set TIME = false } grammar east >east grammar go east >east grammar walk east >east {+east set WAY = EAST travel east } grammar swim south >swim_south {+swim_south if here has UNDER_WATER set WAY = SOUTH travel south break endif if here has ON_WATER set WAY = SOUTH travel south break endif write "

I don't see how you can swim when you are not in water.

^" set TIME = false } grammar south >south grammar go south >south grammar walk south >south {+south set WAY = SOUTH travel south } grammar swim southeast >swim_southeast {+swim_southeast if here has UNDER_WATER set WAY = SOUTHEAST travel southeast break endif if here has ON_WATER set WAY = SOUTHEAST travel southeast break endif write "

I don't see how you can swim when you are not in water.

^" set TIME = false } grammar southeast >southeast grammar go southeast >southeast grammar walk southeast >southeast {+southeast set WAY = SOUTHEAST travel southeast } grammar swim southwest >swim_southwest {+swim_southwest if here has UNDER_WATER set WAY = SOUTHWEST travel southwest break endif if here has ON_WATER set WAY = SOUTHWEST travel southwest break endif write "

I don't see how you can swim when you are not in water.

^" set TIME = false } grammar southwest >southwest grammar go southwest >southwest grammar walk southwest >southwest {+southwest set WAY = SOUTHWEST travel southwest } grammar swim north >swim_north {+swim_north if here has UNDER_WATER set WAY = NORTH travel north break endif if here has ON_WATER set WAY = NORTH travel north break endif write "

I don't see how you can swim when you are not in water.

^" set TIME = false } grammar north >north grammar go north >north grammar walk north >north {+north set WAY = NORTH travel north } grammar swim northeast >swim_northeast {+swim_northeast if here has UNDER_WATER set WAY = NORTHEAST travel northeast break endif if here has ON_WATER set WAY = NORTHEAST travel northeast break endif write "

I don't see how you can swim when you are not in water.

^" set TIME = false } grammar northeast >northeast grammar go northeast >northeast grammar walk northeast >northeast {+northeast set WAY = NORTHEAST travel northeast } grammar swim northwest >swim_northwest {+swim_northwest if here has UNDER_WATER set WAY = NORTHWEST travel northwest break endif if here has ON_WATER set WAY = NORTHWEST travel northwest break endif write "

I don't see how you can swim when you are not in water.

^" set TIME = false } grammar northwest >northwest grammar go northwest >northwest grammar walk northwest >northwest {+northwest set WAY = NORTHWEST travel northwest } grammar climb up *here >climb_up grammar walk up *here >climb_up grammar go up *here >climb_up {+climb_up write "

You can not climb up " noun1{the} .

^ set TIME = false } grammar climb down *here >climb_down grammar walk down *here >climb_down grammar go down *here >climb_down {+climb_down write "

You can not climb down " noun1{the} .

^ set TIME = false } grammar enter *here >enter grammar go *here >enter grammar go through *here >enter grammar go in *here >enter grammar climb on *here >enter grammar climb in *here >enter grammar get in *here >enter grammar get on *here >enter grammar jump in *here >enter {+enter break +reach noun1 write "

You can not enter " noun1{the} .

^ set TIME = false } grammar enter *anywhere >enter_location grammar go *anywhere >enter_location grammar go through *anywhere >enter_location grammar go to *anywhere >enter_location grammar go in *anywhere >enter_location grammar climb on *anywhere >enter_location grammar climb in *anywhere >enter_location grammar get in *anywhere >enter_location grammar jump in *anywhere >enter_location grammar get on *anywhere >enter_location {+enter_location break +reach noun1 set INDEX = 0 repeat if here(INDEX) = noun1 execute "+go_direction" INDEX break endif set INDEX + 1 until INDEX = 12 write "

You can not go to " noun1{the} .

^ set TIME = false } {+go_direction if noun4 = NORTH proxy "go north" break endif if noun4 = NORTHEAST proxy "go northeast" break endif if noun4 = EAST proxy "go east" break endif if noun4 = SOUTHEAST proxy "go southeast" break endif if noun4 = SOUTH proxy "go south" break endif if noun4 = SOUTHWEST proxy "go southwest" break endif if noun4 = WEST proxy "go west" break endif if noun4 = NORTHWEST proxy "go northwest" break endif if noun4 = UP proxy "go up" break endif if noun4 = DOWN proxy "go down" } grammar climb *here >climb grammar scale *here >climb {+climb write "

You can not climb up " noun1{the} .

^ set TIME = false } grammar swim in >swim_in {+swim_in if here has UNDER_WATER set WAY = IN travel in break endif if here has ON_WATER set WAY = IN travel in break endif write "

I don't see how you can swim when you are not in water.

^" set TIME = false } grammar get in >in grammar climb in >in grammar in >in grammar enter >in grammar walk in >in {+in set WAY = IN travel in } grammar swim out >swim_out {+swim_out if here has UNDER_WATER set WAY = OUT travel out break endif if here has ON_WATER set WAY = OUT travel out break endif write "

I don't see how you can swim when you are not in water.

^" set TIME = false } grammar get out >out grammar out >out grammar exit >out grammar leave >out grammar climb out >out grammar walk out >out grammar go out >out {+out set WAY = OUT travel out } grammar surface >swim_up grammar swim up >swim_up {+swim_up if here has UNDER_WATER set WAY = UP travel up break endif if here has ON_WATER set WAY = UP travel up break endif write "

I don't see how you can swim when you are not in water.

^" set TIME = false } grammar up >up grammar climb >up grammar climb up >up grammar jump up >up grammar go up >up grammar walk up >up {+up set WAY = UP travel up } grammar swim down >swim_down grammar dive down >swim_down grammar dive >swim_down {+swim_down if here has UNDER_WATER set WAY = DOWN travel down break endif if here has ON_WATER set WAY = DOWN travel down break endif write "

I don't see how you can swim when you are not in water.

^" set TIME = false } grammar down >down grammar climb down >down grammar jump down >down grammar go down >down grammar walk down >down {+down set WAY = DOWN travel down } grammar look >look_around grammar watch >look_around {+look_around break +darkness look } grammar look under *present >look_under {+look_under break +darkness if noun1(mass) >= heavy : noun1 has LOCATION write "

You can't see under " noun1{the} .

^ set TIME = false break endif write "

There is nothing unusual under " noun1{the} .

^ } grammar look behind *present >look_behind {+look_behind break +darkness if noun1(mass) >= heavy : noun1 has LOCATION write "

You can't see behind " noun1{the} .

^ set TIME = false break endif write "

There is nothing unusual behind " noun1{the} .

^ } grammar look through *present >look_through grammar look out *present >look_through {+look_through break +darkness write "

You can't look through " noun1{the} .

^ set TIME = false } grammar look through *held at *present >look_through_at {+look_through_at break +darkness proxy "look at " noun2 " through " noun1 } grammar look at *present through *held >look_at_through grammar look at *present with *held >look_at_through {+look_at_through break +darkness if noun1 = noun2 write "

You can't look at " noun1{the} " through " if noun1 has PLURAL write "themselves.

^" else write "itself.

^" set TIME = false break endif override write "

You can't look at " noun1{the} " through " noun2{the} .

^ set TIME = false } grammar wait >wait grammar z >wait {+wait write "

Time passes...

^" } grammar listen >listen {+listen write "

You don't hear anything out of the ordinary.

^" } grammar listen to *present >listen_to grammar listen at *present >listen_to {+listen_to write "

You don't hear anything out of the ordinary.

^" } grammar use *present >use grammar work *present >use grammar operate *present >use {+use break +darkness if noun1 has ANIMATE write "

I acknoweledge that I probably don't want to know the answer to " write "this question, but in what way did you want to use " noun1{the} .

^ set TIME = false break endif write "

I'm afraid you are going to have to be a bit more specific.

^" } grammar rotate *present >turn grammar turn *present >turn grammar twist *present >turn grammar spin *present >turn {+turn break +darkness break +reach noun1 write "

You can't turn " noun1{the} .

^ set TIME = false } grammar turn on *present >turn_on grammar turn *present on >turn_on grammar switch on *present >turn_on grammar switch *present on >turn_on {+turn_on if noun1 hasnt SWITCHABLE write "

You can't turn " noun1{the} " on.

^" set TIME = false break endif break +reach noun1 if noun1 has ON write

noun1{The} " " noun1{is} " already on.

^" set TIME = false break endif override write "

You switch on " noun1{the} .

^ ensure noun1 has ON } grammar turn off *present >turn_off grammar turn *present off >turn_off grammar switch off *present >turn_off grammar switch *present off >turn_off {+turn_off if noun1 hasnt SWITCHABLE write "

You can't turn " noun1{the} " off.

^" set TIME = false break endif break +reach noun1 if noun1 hasnt ON write

noun1{The} " " noun1{is} " already off.

^" set TIME = false break endif override write "

You switch off " noun1{the} .

^ ensure noun1 hasnt ON } grammar pour *present >pour {+pour break +darkness if noun1 hasnt LIQUID write "

You can't pour " noun1{the} .

^ set TIME = false break endif set noun3 = noun1(parent) if noun3 = false : noun3(parent) <> player write "

You don't have " noun1{the} .

^ set TIME = false break endif if noun3 has CLOSED write "

I don't see " noun1{the} " here.

^" set TIME = false break endif break +reach noun1 override write "

You pour " noun1{the} " all over the ground.

^" move noun1 to limbo } grammar list objects >list_objs {+list_objs select noun3(mass) > 0 write noun3{The}
next } grammar diag *anywhere >diag {+diag set INDEX = noun1 write

noun1{The} ":
^" write "MASS: " noun1(mass)
^ write "NUMBER: " INDEX
^ write "QUANTITY: " noun1(quantity)
^ set noun4 = noun1(parent) write "PARENT: " noun4{The}
^ write "HAS DARK?: " if noun1 has DARK write YES
^ else write NO
^ endif write "HAS DARKNESS?: " if noun1 has DARKNESS write YES
^ else write NO
^ endif } grammar tip *present on *present >pour_on grammar tip *present down *present >pour_on grammar tip *present in *present >pour_on grammar tip *present over *present >pour_on grammar pour *present down *present >pour_on grammar pour *present on *present >pour_on grammar pour *present in *present >pour_on grammar pour *present over *present >pour_on {+pour_on break +darkness if noun1 hasnt LIQUID write "

You can't pour " noun1{the} .

^ set TIME = false break endif break +reach noun1 set noun3 = noun1(parent) if noun3 = false : noun3(parent) <> player write "

You do not have " noun1{the} .

^ set TIME = false break endif if noun3 has CLOSED write "

I can't see " noun1{the} " here.

^" set TIME = false break endif break +reach noun2 override execute +liquidwrite noun2 if INDEX = true write

noun2{The} " already contain" noun2{s} " " noun3{the} ". If you " write "were to also add " noun1{the} " they would mix together.

^" set TIME = false break endif if noun2 has CONTAINER if noun2 hasnt CLOSED override write "

You pour " noun1{the} " into " noun2{the} .

^ move noun1 to noun2 break endif endif if noun2(parent) > max_objects set noun3 = noun2(parent) if noun3 has CONTAINER if noun3 hasnt CLOSED write

noun1{the} " run" noun1{s} " off " noun2{the} " and goes into " write noun3 .

^ move noun1 to noun3 break endif endif endif write

noun1{The} " runs off " noun2{the} " and goes all over the ground.

^" move noun1 to limbo } grammar blankjacl >blankjacl {+blankjacl write "

A fiendishly clever move.

^" } grammar instructions >instructions grammar help >instructions {+instructions write "

Interactive fiction involves the reader in a way that static stories " write "do not. Rather than reading sequentially from beginning to end, you " write "control the actions of the main character by typing commands in the " write "form of simple English sentences. Before setting out on your adventure " write "there are a few concepts that must be explained in order for you to " write "interact successfully with the virtual world created by the author." write "

The physical space that you will be exploring is divided up into " write "discrete units called locations. Locations may be travelled between " write "using the "You can go:" hyperlinks or the following commands...

^" write "
" write " write "" write "" write "" write "" write "" write "" write "" write "" write "" write "" write "" write "" write "
CommandTo travelCommandTo travel
NNorthSSouth
EEastWWest
NENortheastNWNorthwest
SESoutheastSWSouthwest
UUpDDown
INInOUTOut
" write "

The description of each location will tell you which way you can " write "travel from it. Be aware however that some exits may only be " write "available under certain circumstances such as while a door is open " write "or a bridge lowered.

^" write "

Within these locations you will find many objects that you may " write "manipulate. These objects may be referred to by as few " write "or as many of their names as is required to uniquely identify it." write "For example, if the story informs you that ~There is a silver key " write "resting here.~ Then it may be referred to as either ~silver~, ~key~ or " write "~silver key~. If your reference is ambiguous, such as using ~key~ " write "when there is both a silver and a gold key in the current location " write "then you will be prompted to be more specific.

^" write "
write "

The next major concept of interactive fiction to understand is the " write "way in which you interact with these objects within " write "the locations. The main aspect of the command interface " write "to come to grips with is the scale, in other words, how much can be " write "achieved with a single command. As you have seen earlier, moving from " write "one location to another requires a single command. Commands such as " write "~find dave~ or ~go to the library~ are not valid. You must manually " write "move around the available world to achieve these tasks yourself. For " write "this reason, making a map as you go is highly recommended.

^" write "

The basic sentence structures understood by the game are...

^" write "
" write "" write "" write "" write "" write "" write "" write "
actioneg. scream
action objecteg. take book
action object preposition objecteg. unlock door with key
" write "

An action does not necessarily have to be a single word. For instance, " write "~examine rock through magnifying glass~, an example of the last " write "syntax, may also be expressed as ~look at rock through magnifying " write "glass~.

^" write "

To further illustrate how much can be achieved in a single turn, " write "consider the following list (being just some of the valid actions)...

^" write "
" write "" write "" write "" write "" write "" write "" write "" write "" write "" write "
turnreadpullpusheatcut
lockunlockrubattacktastedrink
breaksmelllistenpourmovelight
attackblowthrowwearopenclose
takedropinsertremove
" write "

The words ~it,~ ~them,~ ~him~ and ~her~ may be used to indicate the " write "last appropriate object referred to in one of your commands. " write "The words ~itself,~ ~themselves,~ ~himself~ and ~herself~ may be used " write "to refer to the subject of the current command such as, ~ask dan about " write "himself~.

^" write "

The word ~all~ or ~everything~ may be used in place of an object " write "when using one of the verbs in the bottom row of the table above.

^" write "
" write "

However, a task such as defusing a bomb would generally not be achieved by " write "typing ~defuse bomb~. The following is a sample transcript to give " write "you a better idea of how this task such as this might be achieved.

^" write "

>examine bomb
" write "The bomb is about a foot square and has a small panel in its upper " write "surface. The panel is currently closed.

^" write "

>listen to bomb
" write "The bomb is making an ominous ticking sound.

^" write "

>open panel
" write "You open the panel to reveal a red wire, a green wire, a blue wire, " write "a clock and some dynamite.

^" write "

>i
" write "You are carrying a bomb manual, an insurance policy and some wire " write "cutters.

^" write "

>read manual
" write "Leafing through the book you come to the page on diffusing. Seems " write "straight forward enough, just cut the blue wire then the red one.

^" write "

>cut blue wire with cutters
" write "Reaching carefully in to the bomb's casing you cut the blue wire. So " write "far so good.

^" write "

>cut red wire with cutters"
write "Holding you breath you snip the red wire."

^ write "

>listen to bomb"
write "The bomb, thankfully, is now silent."

^ write "

As you can see, each task you wish to achieve must be broken down " write "into its component actions.

^" write "
" write "

During the course of the story you may encounter other computer " write "controlled characters. These characters may be interacted with using " write "the following commands...

^" write "

TALK TO <character>"
write "GIVE <object> TO <character>"
write "SHOW <object> TO <character>"
write "ASK <character> FOR <object>"
write "ASK <character> ABOUT <object>"
write "TELL <character> ABOUT <object>"

^ write "

There are also some special commands for interacting with the " write "program rather than the world it simulates...

^" write "

write "" write "" write "" write "" write "" write "" write "" write "" write "" write "" write "" write "" write "" write "" write "" write "" write "" write "" write "" write "" write "" write "" write "" write "" write "" write "" write "" write "
CommandAction
VERBOSEalways describe locations
BRIEFonly describe new locations
RESTARTstart from the beginning
SCOREdisplay your score and rank
LOOKdescribe the current location
SAVEsave the current position
RESTORErestore a saved position
Ihorizontal list of possessions
INVvertical list of possessions
UNDOtake back last command
AGAINrepeat the last command
INFOdisplay version information
ABOUTdisplay game information
" write "

NOTE: If you are looking for a clue relevant to a specific location, " write "type ~hint~, ~first hint~ or ~hint one~ in that location. The first " write "hint will be a subtle clue with ~hint two~ being more blatant and " write "~hint three~ being exact commands to type.

^" write "
" write "

You are now ready to embark on your first adventure into the " write "world of interactive fiction." write " Remember to make a map as you go and read each " write "part carefully as vital clues may be hidden in the descriptions of the " write "locations and objects you come across. Examining every object you can " write "refer to is a good idea, as is saving your position often. Well, good " write "luck, and above all have fun!

^" set TIME = false } ; SPEAKING TO OTHER OBJECTS ; ---------------------------------------------------------------------------- ; Grammar statements beginning with an object must be defined last in the game ; to avoid confusion with verbs that may also be objects such as "drink drink" grammar *present give myself *carried >ask_for grammar *present give *carried to myself >ask_for grammar *present give *carried to me >ask_for grammar *present give myself *anywhere >ask_for grammar *present give *anywhere to myself >ask_for grammar *present give *anywhere to me >ask_for grammar *present tell myself about *carried >ask_about grammar *present tell myself all about *carried >ask_about grammar *present what do you know about *carried >ask_about grammar *present tell myself about *anywhere >ask_about grammar *present tell myself all about *anywhere >ask_about grammar *present what do you know about *anwhere >ask_about grammar *present who are you >who? grammar *present what is your name >who? grammar *present what is your name? >who? {+who? proxy "ask " noun1 " about " noun1 } grammar *present sorry >apologise grammar *present im sorry >apologise grammar *present i am sorry >apologise grammar apologise to *present >apologise {+apologise if noun1 hasnt ANIMATE write "

Kooky.

^" break endall write

noun1{the} " assure" noun1{s} " you that no apology is necessary.

^" } grammar *present thanks >thank grammar *present thank you >thank grammar thank *present >thank {+thank if noun1 hasnt ANIMATE write "

Kooky.

^" break endall write "

~Don't mention it,~ " noun1{the} " replies.

^" } grammar greet *present >greet grammar *present hello >greet grammar *present hi there >greet grammar *present dr >greet grammar *present doctor >greet grammar *present hi >greet {+greet if here has UNDER_WATER write "

Talking under water isn't very easy.

^" set TIME = false break endall if noun1 hasnt ANIMATE write "

I don't think talking to " noun1{the} " is going to help somehow.

^" set TIME = false break endall if noun1 has DEAD write

noun1{The} " " noun1{is} " a bit too dead to respond.

^" set TIME = false break endall if noun1 = player write "

It's the first sign of madness you know...

^" break endall override write

noun1{The} if noun1 has PLURAL write " nod.

^" else write " nods.

^" } grammar *present yes >say_yes grammar *present okay >say_yes grammar *present yeah >say_yes {+say_yes write

noun1{The} " appear" noun1{s} " to pay no attention.

^" } grammar *present no >say_no {+say_no write

noun1{The} " appears to pay no attention.

^" } grammar *present *carried >say_object grammar *present *anywhere >say_object {+say_object proxy "say " noun2 " to " noun1 } grammar *anywhere >noun_only {+noun_only if noun1 isnt *present write "

You don't see any such thing.

^" set TIME = false break endif write "There is no verb in that sentence.

^" set TIME = false }