!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!! I'M NOT SURE IF IT WILL INTEREST ANYONE, OR IF !!!!! ANYONE OTHER THAN MYSELF CAN MAKE SENSE OF !!!!! THIS MESS, BUT HERE IT IS. I WAS LEARNING THE !!!!! INFORM LANGUAGE AS I WAS WRITING THIS GAME. !!!!! IF IT WORKED, I WAS HAPPY. !!!!! --GRAHAM LOWTHER !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !%-~S Constant Story "BENEATH: a Transformation"; Constant Headline "^Copyright 2007 by Graham Lowther.^[For instructions and other information type ABOUT.]^^Note: Some parts of this game have violence.^^"; Constant START_MOVE 1; Constant MAX_CARRIED 5; Constant NO_PLACES; constant DEATH_MENTION_UNDO; constant NO_SCORE; Replace DrawStatusLine; Include "Parser"; [ ChooseObjects obj code; if (code < 2) { if (obj has scenery) return 2; rfalse; } if (action_to_be == ##swing && obj == player) return 3; if (obj has animate) return 1; if (obj hasnt scenery) return 2; return 1; ]; Object LibraryMessages with before [; answer, ask, tell, order: "You ramble on and on... and on... but get no reply."; go: "^On second thought, that direction doesn't look very promising. You turn back."; tie: "That's not something that can be tied."; climb: if (noun == rope) "That would get you nowhere."; else "That's not something you can climb."; swing: if (noun == player) "You swing your arms and hop around."; else "That would serve no useful purpose."; attack: if (noun == player || noun has animate) "That's unwarranted."; else "That wouldn't be very effective."; ]; Include "VerbLib"; Include "moveclass"; Include "scoper"; Include "orcenter"; [ DrawStatusLine; @split_window 2; @set_window 1; @set_cursor 1 1; style reverse; spaces (0->33); @set_cursor 2 1; style reverse; spaces (0->33); @set_cursor 1 2; print (name) location; if (b_mark2 notin worm_book) {@set_cursor 1 40; print "Your hands are shaped like scoops";} else if (b_mark1 notin worm_book) {@set_cursor 1 40; print "The whites of your eyes are thin rims";} else if (time in limbo) {@set_cursor 1 40; print "You have a thirst for strange knowledge";} else {@set_cursor 1 40; print "A segment of your brain is atrophied";} @set_cursor 2 40; print "Moves: ", sline2; @set_cursor 1 1; style roman; @set_window 0; ]; Class Coin; !!! LOCATIONS !!! room Street4 "Sidewalk, Downtown" with description "This is downtown Stregoicavar; though, as far as commerce goes, it only consists of three shops. Also, sitting on a hill to the southwest, you can see a bloated, meticulously maintained institutional building: the police station. To the east you can see the library roof rising majestic above the tattered shells that surround it: an ancient reminder both of Stregoicavar's age and that it has certainly seen more prosperous times. Across the street is a gas station/convenience store. Beyond that is the forest that covers all the land south of town. On this side of the street are the two other shops, to the northeast and northwest." , name 'downtown', before [; go: if (owl in woods_trees) print "Before proceeding, you quickly glance toward the forest.^"; else print "Before proceeding, you cast a quick glance around the neighborhood. It's completely deserted.^"; ], after [; Look: if (Locale(street3, "You see", "You also see")) print " down the street, to the east.^"; if (Locale(street2, "You see", "You also see")) print " down the street, to the east.^"; if (Locale(street5, "You see", "You also see")) print " down the street, to the west.^"; if (Locale(cop_station, "You see", "You also see")) print " in the town's outskirts, to the southwest.^"; ], each_turn [; if ((spot in street3 && dropoff notin limbo) && (mo_c in limbo)) print "^You see the mad cop move.^"; else if ((spot in backyard || spot in junction || spot in library_steps) && (mo_c in limbo)) print "^You see the mad cop move into view.^"; else if (((spot in cop_station || spot in street2) || (spot in street3 && dropoff in limbo)) && (mo_c in limbo)) print "^You see the mad cop move out of view.^"; else if (spot in street2 && mo_c in wilderness) print "^You see the mad cop move.^"; else if ((spot in street1 || spot in junction) && (mo_c in wilderness))print "^You see the mad cop move into view.^"; else if ((spot in cop_station || spot in street5) && (mo_c in wilderness)) print "^You see the mad cop move out of view.^"; if ((hook in limbo) && (track in street3)) print "^You see the black lab move.^"; if ((hook in limbo) && (track in street2)) print "^You see the black lab move out of view.^"; if ((hook in player) && (dog in street3 || dog in street5)) print "^The black lab arrives.^"; if (cop in backyard) npc_path(cop, preset_move, patrol, 28); if (dog in self && daemonic in wilderness) {move daemonic to limbo; startdaemon (dog); starttimer (dog, 6); npc_path(dog, preset_move, beeline, 7);} if ((owl in woods_trees) && ((cop in dirt_rd1 && mo_c in wilderness) || (cop in cop_station && mo_c in wilderness))) print "^You see the great horned owl, on a branch, behind the gas station, swivel its head back and forth, scanning the downtown area for small animals.^"; ], ne_to [; if (time in limbo) "^The Coffee Shop is closed. There's a light in a second floor window but the shop is dark, and locked up."; else PlayerTo (Cafe, 2); return true; ], s_to [; if (Gas_store has visited)"^The gas station is now closed."; else PlayerTo (Gas_store, 2); return true; ], e_to street3, w_to Street5, nw_to [; if (dark_man in self || dark_man in cliff) "^The pet store is now closed."; else PlayerTo (Pet_store, 2); return true; ], has light; scoper -> with locs street3 street5 street2 cop_station, dirs "down the street" "down the street" "down the street" "in the town's outskirts"; room home "Your House" with description [; if (dollar in nail) "Your house contains a single room. You remember that you're in need of new light bulbs. The last one blew last night, leaving you in the pitch dark; as you almost are now. There is a futon on the floor in one corner. There is an old dollar bill nailed to a wall. Your various other possessions are arrayed about the room."; else if (nail in self) "Your house contains a single room. There is a futon on the floor in one corner. There is a rusty nail sticking out of one of the walls. Your various other possessions are arrayed about the room."; else "Your house contains a single room. There is a futon on the floor in one corner. Your various other possessions are arrayed about the room."; ], before [; go: if (player in futon) "You'll have to get off of the futon first."; else print "You walk across the room.^"; exit: if (noun == exithome && player in futon) "You'll have to get off of the futon first."; else if ((noun == exithome || noun == 0) && (player notin futon)) {print "You walk across the room.^"; PlayerTo (street1, 2); return true;} ], each_turn [; if (hook in player && dog in street1) move dog to wilderness; if (dog in wilderness) {print "^The black lab arrives.^"; move dog to self;} if (cop in backyard) npc_path(cop, preset_move, patrol, 28); ], s_to street1, has light proper; room Library_steps "Library Steps" with description "You are standing in front of a large brick building. The sign over the door reads, STREGOICAVAR PVBLIC LIBRARY. The library is at the north end of a short, dead end street. At the other end it meets a street running east and west. All around you are dark, dilapidated buildings." , before [; go: if (player in steps) "You'll have to get off of the cracked steps first."; else print "Your feet click on the cement.^"; ], after [; Look: if (Locale(street3, "You see", "You also see")) print " down the street, to the east.^"; ], each_turn [; if (spot in street4 && mo_c in limbo) print "^You see the mad cop move into view.^"; else if (spot in street2 && mo_c in wilderness) print "^You see the mad cop move into view.^"; else if (spot in street3 && mo_c in wilderness) print "^You see the cop move out of view.^"; if ((hook in limbo) && (track in street3)) print "^You see the black lab move out of view.^"; if ((hook in player) && (dog in street3)) print "^The black lab arrives.^"; if (cop in backyard) npc_path(cop, preset_move, patrol, 28); ], s_to Street3, n_to "^The library is closed.", has light ; Scoper -> with locs street3, dirs "down the street"; object Gas_store "Convenience Store" with description "When you enter the convenience store a bell jingles and a clerk yells, without turning to look at you, ~Sorry, we're closed! I've just shut down the computers.~ You can see another man on the customer's side of the counter complaining about the price of an item. ^^~It isn't worth half that!~ ^^~You can have it for half if you leave the store now. I'd like to get home.~ ^^The customer tosses a couple coins on the counter, snatches the item, and heads for the door. You exit the building just before him and the door swings shut in front of him. He looks at you indignantly, through the glass, then exits the store and walks down the street and into one of the dilapidated buildings.", each_turn [; PlayerTo (Street4, 2); return true ;], has light; room Pet_store "Pet Store" with description "Inside the dimly lit store there is a stooped man with an especially wrinkled face behind a high counter. Most of the store is empty. The only other things of note are a large cage against one wall, a fish tank on a low table, and a wooden box hanging from the ceiling. The door to the street is to the southeast. How this store manages to stay in business in this town is the second remaining wonder of the world. You wonder why it's open this late.", before [; go: print "You walk across the room.^"; open: if (noun == square_cage || noun == bird_cage || noun == fish_tank) "You'd better let the old man do that."; buy: "Just pay the man the right amount."; exit: if (noun == exitpet || noun == 0) {print "You walk across the room.^"; PlayerTo (street4, 2); return true;} ], each_turn [; if (dog in street4 && daemonic in wilderness) {move daemonic to limbo; startdaemon (dog); starttimer (dog, 6); npc_path(dog, preset_move, beeline, 7);} ], se_to Street4, has light; object Cafe "Coffee Shop" with description "Inside the coffee shop there is a counter, a glass cabinet, a single table with a single chair, a clerk behind the counter, and a blackboard on the wall. Everything is well lit and clean. The door to the street is to the southwest. You are surprised the shop is open at this time of day.", name 'room' 'coffee' 'shop' 'store' 'cafe', each_turn [; if (time in limbo) PlayerTo (Street4, 2); return true ;], before [; go: if (player notin chair) print "You walk across the room.^"; else "You'll have to get out of the chair first."; buy: "Just pay the clerk the right amount."; exit: if ((noun == exitcafe || noun == 0) && (player notin chair)) {print "You walk across the room.^"; PlayerTo (street4, 2); return true;} if ((noun == exitcafe) && (player in chair)) "You'll have to get out of the chair first."; ], sw_to Street4, has light; room Junction "Junction" with description "The street comes from town, to the northeast, and ends here at an interstate, running east and west. Across the interstate a freshly paved drive rises to the pinnacle of the hill and the huge institutional cube." , before [; go: print "Your feet click on the pavement.^"; ], after [; Look: if (Locale(street5, "You see", "You also see")) print " down the street, to the northeast.^"; if (Locale(cop_station, "You see", "You also see")) print " in the town's outskirts, to the south.^"; ], each_turn [; if (spot in backyard && mo_c in limbo) print "^You see the cop move into sight.^"; else if (spot in street5 && mo_c in limbo) print "^You see the mad cop move out of sight.^"; else if (spot in street4 && mo_c in wilderness) print "^You see the mad cop move into sight.^"; else if (spot in cop_station && mo_c in wilderness) print "^You see the mad cop move out of sight.^"; if ((hook in player) && (dog in cop_station || dog in street5)) print "^The black lab arrives.^"; if (cop in backyard) npc_path(cop, preset_move, patrol, 28); if (cell has visited && dark_man notin cliff && player in self) move dark_man to street4; ], ne_to Street5, e_to "^Taking the interstate on foot would be a long trek. You aren't prepared for such a journey and soon turn back.", w_to "^Taking the interstate on foot would be a long trek. You aren't prepared for such a journey and soon turn back.", s_to cop_station, has light ; scoper -> with locs street5 cop_station, dirs "down the street" "in the town's outskirts"; room Street1 "Winding Street" with description "You are standing in front of a small, fragile looking shack, sandwiched between two large, empty, square buildings with FOR RENT signs in the windows of both of them. The shack is your home. The door is directly to the north of you. The street comes from the west and does an S before turning to dirt and continuing east." , before [; go: print "Before proceeding, you think about the maintenance your house is in need of.^"; ], each_turn [; if ((hook in player) && (dog in street2 || dog in dirt_rd2 || dog in home)) print "^The black lab arrives.^"; if (cop in backyard) npc_path(cop, preset_move, patrol, 28); ], w_to Street2, e_to Dirt_rd2, n_to home, has light ; room Wood_path "Woodland Path" with description "When the road to the north enters the forest it almost immediately becomes so overgrown that it's indistinguishable from the rest of the forest floor. The trees press in closely from all sides. Most directions are too thick for walking through but there is an animal path to the east that you can use if you crouch down." , before [; go: stoptimer (self); print "You wade through the underbrush.^"; if (noun == e_obj && dark_man in street4) move dark_man to cliff; if (noun == n_obj && clearing2 has visited) "^It's getting late and you know that if you head back to town you'll end up going straight home. You're not ready, at this time, to return to town."; sleep, wait: starttimer (self, 3); "You drift off to sleep on the soft ground."; ], each_turn [; if ((hook in player) && (dog in dirt_rd1 || dog in clearing || dog in cliff)) print "^The black lab arrives.^"; if (cop in backyard) npc_path(cop, preset_move, patrol, 28); ], time_left, time_out ("^A low branch of one of the firs is swaying but the air is still."), n_to Dirt_rd1, e_to Cliff, sw_to Clearing, has light ; room Cliff "Bottom of the Cliff" with description "You are standing before a high cliff. There is an old... no... ancient man nestled in a vertical groove running straight and clean cut up the entire cliff, from bottom to top. At the bottom of the groove a rough seat is carved out of the rock, the back of the groove used as the back of the seat. The man is sitting in the seat. He doesn't seem conscious of your presence, if he's conscious at all. He has the appearance of having been there for longer than you've been alive; possibly far longer than that. In the cliff face, to the right of the man, is a patch of hardened, yellow clay. At the man's feet is a deep circular pit. The animal path emerges from the west, out of the forest. It then continues in trodden grass, directly to the edge of the pit." , before [; go: print "You creep as quietly as possible.^"; ], each_turn [; if ((hook in player) && (dog in wood_path)) print "^The black lab arrives.^"; if (cop in backyard) npc_path(cop, preset_move, patrol, 28); ], w_to Wood_path, d_to [; if (dark_man in cliff && rope in hook && hook in clay) move rope to tunnel; if (dark_man in cliff && tunnel hasnt visited && rope in tunnel) print "^You walk toward the pit but quickly stop and move back a couple steps when the sleeper stirs, then jerks up suddenly and yells out, ~I am Gonar! I am old beyond your imagining and Bran Mac Morn lives still, in the Dark Man! Who are you to interrupt... The Dark Man! The Dark Man, here! You are well on your way to screaming madness. That is a warning. You may pass. Sleep in the wood and strange happenings can happen. If you're awake you'll even witness them.~^^The ancient makes a sweeping gesture, vaguely at the pit. His eyes then grow bleary and his head drops. He is no longer aware of your presence.^"; if (rope in tunnel && dark_man in cliff) PlayerTo (Tunnel, 2); if (dark_man in cliff && tunnel hasnt visited && rope in tunnel) print "^You climb down into the dark pit. You soon realize that it only looked black from above because it turns abruptly from a vertical shaft to a horizontal tunnel and the rock you are now standing on is black. The tunnel continues for another thirty or thirty-five feet and then turns upward again and emerges in light.^^Sunlight.^^Sunlight where there should be only the solid rock of the cliff towering above you.^"; if (dark_man notin cliff) print "^You walk toward the pit but quickly stop and move back a couple steps when the sleeper stirs, then jerks up suddenly and yells out, ~I am Gonar! I am old beyond your imagining and Bran Mac Morn lives still, in the Dark Man. Who are you to interrupt my rest? Sleep in the wood and strange happenings can happen. If you're awake you'll even witness them.~^^He angrily glares at you for a few moments before his eyes grow bleary and his head drops. He is no longer aware of your presence but you fear to approach the pit.^"; if (rope notin tunnel && dark_man in cliff) print "^The pit is deep. It also goes straight down and the sides are smooth. Jumping in could mean your death.^"; return true; ], u_to "You can't scale the cliff. The cliff face is flat and vertical with few imperfections. Also, you have no climbing experience.^", has light ; room Dirt_rd1 "Dirt Road" with description "The road runs through fields and trees. It comes from the northwest and gradually turns south, where it narrows to a path upon entering a forest that stretches across the southern horizon. Some distance away, a cliff rises from the trees and the forest continues, at least sixty feet higher, on top." , before [; go: print "You kick up dust as you walk.^"; ], after [; Look: if (Locale(dirt_rd2, "You see", "You also see")) print " down the road, to the northwest.^"; ], each_turn [; if ((spot in street1) && (mo_c in limbo)) print "^You see the mad cop move into view.^"; if ((hook in player) && (dog in dirt_rd2 || dog in wood_path)) print "^The black lab arrives.^"; if (cop in backyard) npc_path(cop, preset_move, patrol, 28); ], nw_to Dirt_rd2, s_to Wood_path, has light ; scoper -> with locs dirt_rd2, dirs "down the road"; room cell "Cell" with description "You are in a small, concrete cell. There are no windows. The heavy metal door is to the west and a crack runs down the wall opposite.", before [; go: if (self has light) print "You are anxious to leave the cell.^"; else print "You step cautiously forward with your hands outstretched before you.^"; throwat: if ((noun == hook) && (second == crack || second == debris)) {move leash to wilderness; move hook to crack; "You grab the blood stained hook in a loose grip and toss it just inside the open space. It will be easy to retrieve." ;} else if (second == crack || second == debris) {move (noun) to crack; print "You grab the "; printshortname (noun); " in a loose grip and toss it just inside the open space. It will be easy to retrieve.";} touch: if (self hasnt light) "All you can feel from your present position is the cold, rough floor."; exit: if ((noun == exitcell || noun == 0) && (self has light)) print "You are anxious to leave the cell.^"; if ((noun == exitcell || noun == 0) && (cop in self && b_mark1 notin worm_book)) {print "^You slip quietly out the door.^"; PlayerTo (backyard, 2); return true;} else if ((noun == exitcell || noun == 0) && (cop in self && b_mark1 in worm_book)) "^When you try to leave the Dark Man appears in the doorway, blocking your exit. The light in the room seems momentarily unbearably bright. You step back in surprise and the Dark Man is back in its original location."; else if ((noun == exitcell || noun == 0) && (self has light)) "^The door is locked."; ], time_left, time_out [; move cop to self; if (dog in self) {move dog to limbo; starttimer (cop, 4); move dead_dog to self; "^The door opens suddenly and the bright light of the moon through the door is almost too much for you. Colors swim across your vision and your head throbs. The cop is standing in the doorway with a tire iron in his hand. Four-Feet runs at him, barking and baring his teeth. There is nothing you can do. Your dog doesn't last long. The cop is now busy bludgeoning the dog's far-past dead body with the tire iron and seems to have forgotten your presence... for now.";} else {deadflag = 1; "^The door opens suddenly and the bright light of the moon through the door is almost too much for you. Colors swim across your vision and your head throbs. The cop is standing in the doorway. He lifts the tire iron and sends it flying, whirling through the air...";} ], w_to [; if (cop in self && b_mark1 notin worm_book) {print "^You slip quietly out the door.^"; PlayerTo (backyard, 2); return true;} else if (cop in self && b_mark1 in worm_book) "^When you try to leave the Dark Man appears in the doorway, blocking your exit. The light in the room seems momentarily unbearably bright. You step back in surprise and the Dark Man is back in its original location."; else if (self has light) "^The door is locked."; else "^Your hands feel an obstruction of cold metal. You know it to be the door, but, of course, it's locked."; ], s_to [; if (self hasnt light) "^Your hands feel an obstruction of cold cement. Your foot kicks something to your left."; ], e_to [; if (self hasnt light) "^Your hands feel an obstruction of cold cement with a vertical crack in it. The crack is fairly wide, but not wide enough for you to fit through it. Your foot kicks something to your right."; else "^The crack is fairly wide, but not wide enough for you to fit through it."; ], n_to [; if (self hasnt light) "^Your hands feel an obstruction of cold cement."; ], nw_to [; if (self hasnt light) "^Your hands feel an obstruction of cold cement."; ], sw_to [; if (self hasnt light) "^Your hands feel an obstruction of cold cement."; ], ne_to [; if (self hasnt light) "^Your hands feel an obstruction of cold cement."; ], se_to [; if (time notin limbo && self hasnt light) {deadflag = 3; "Your hands feel something cold and smooth, like polished stone. For some unidentified reason you strongly feel that it isn't completely inanimate. Somehow you feel that the object is searching your mind and is disappointed.^^Something is storming your brain.^^Your muscles tense and your eyes open wider.^^The words and actions of the cop, you begin to understand.";} else if (self hasnt light) {print "^Your hands feel something cold and smooth, like polished stone. For some unidentified reason you strongly feel that it isn't completely inanimate. Your eyes discern the outlines of your fingers and you realize the object is giving off a faint light. The light then spreads and grows, reaching, perhaps, a height of ten feet and a width of three. It's in the shape of a man. There is something unreal about the light. You find yourself reluctant to believe it is light. You can see clearly, the whole interior of the pitch dark...^"; starttimer (cell, 14); give self light; return true;} ]; room cop_station "Front of the Police Station" with description "You are on top of the hill. The police station is an enormous institutional building. It has almost no windows. It is simply a featureless, hollow cube. It blocks the view to the south but there is a good view in all other directions and you can see part of the street through town. There is a thick hedge beginning at both front corners and encircling the backyard. There's a gap in the hedge, to the southwest. The front door is to the south.", before [; go: print "You move as quickly and quietly as possible.^"; hear: if (noun == dog && cop in wilderness) "Tense and bristling and baring its teeth..."; ], after [; Look: if (Locale(junction, "You see", "You also see")) print " at the interstate, to the north.^"; if (Locale(street5, "You see", "You also see")) print " down the street, to the northeast.^"; if (Locale(street4, "You see", "You also see")) print " down the street, to the northeast.^";], each_turn [; if (hook in player && cop in wilderness) print "^You hear a low growl coming from the black lab.^"; if ((spot in street4 || spot in street5) && (mo_c in wilderness)) print "^You see the mad cop move.^"; else if (spot in street3 && mo_c in wilderness) print "^You see the mad cop move into view.^"; if (hook in limbo && track in street2) print "^You see the black lab move out of view.^"; if ((hook in player) && (dog in junction)) print "^The black lab arrives.^"; if (cop in backyard) npc_path(cop, preset_move, patrol, 28); if ((owl in woods_trees) && ((cop in dirt_rd1 && mo_c in wilderness) || (cop in cop_station && mo_c in wilderness))) print "^You see the great horned owl, on a branch, behind the gas station, swivel its head back and forth, scanning the downtown area for small animals.^"; ], n_to junction, s_to "^The front door is locked.", sw_to Backyard, has light; scoper -> with locs junction street5 street4, dirs "at the interstate" "down the street" "down the street"; room Clearing "Clearing" with description "You are in a clearing. There is a giant stump in the center, about three feet in diameter. The top of the stump is a jagged claw: it's been broken rather than cut. It seems logical that there should be an enormous log, with the other jagged end, but you can see no logs at all. The clearing is surrounded, on all sides, by impenetrable, knotted underbrush; except to the northeast where there is a narrow gap concealed by fir branches." , name 'clearing', before [; go: print "You wade through the underbrush.^"; ], each_turn [; if ((hook in player) && (dog in wood_path)) print "^The black lab arrives.^"; if (cop in backyard) npc_path(cop, preset_move, patrol, 28); ], ne_to Wood_path, has light ; room backyard "Backyard" with description "You are on the west side of the police station. You realize you're trespassing but trust in your ability at evading capture. There is a heavy metal door leading into the side of the building. The gap in the hedge is to the northeast.", name 'backyard' 'yard', each_turn [; if (hook in player && cop in wilderness) {deadflag = 1; "^There are two men here, but they haven't spotted you. One of them is wearing a police uniform. You leap to the ground. The top of the hill is rounded and the grass is fairly tall, so that, lying flat, you are mostly hidden from their sight. However, Four-Feet wanders in after you and is immediately spotted, as are you. The cop draws his gun and shoots you through the chest. You notice the appalled look on the other man's face before you sink into oblivion.";} else if (cop in wilderness) {print "^There are two men here, but they haven't spotted you. You leap to the ground. The top of the hill is rounded and the grass is fairly tall, so that, lying flat, you are mostly hidden from their sight. You are close enough to hear most of what they are saying. One of them is wearing a police uniform. The other is well dressed in a plain, gray suit. He is older, thinner, and far more frail than the cop. He seems upset and is voicing his concerns to the cop: ~Its presence is not good for us. I've aged more in the last month than the entire decade before. That thing shouldn't have "; style underline; print "any"; style roman; print " contact with the human race. It should be dropped into the earth, back where it came from, and walled off permanently...~^^The cop interrupts: ~I'm not interested in your complaints. I believe the statue has had negative effects on us because we have grown different from people of its time. We haven't been responding to its influence in the right way...~^^~What the hell are you talking about? Where are you getting that information? From the top of your head?...~^^You see the cop pull something out of his pocket: It looks like a metal nail file. The look of cynicism on the frail man's face quickly turns to fear before the file sinks into his eye. The cop then stands bewildered for a few moments, pockets the file, then glances down at the still body of the frail man, sprawled on the grass.^^You begin to creep backward, away from the bloody scene, careful not to make any noise; but you're not completely silent. The cop's head whips around...^"; PlayerTo (cell, 2); move body to self; move pants to self; move coat to self;} if (hook in cop_station && cop in wilderness) {move dog to cell; move hook to cell; print "^You are lucky. The cop must have used up some of his fury on the old man. You are alive. However, you have been locked in a small, windowless cell. Before shutting the door, the cop turned, smiled at you, and said, more to himself than to you, ~I'll keep the trespasser in here for a while and we'll see what "; style underline; print "effect it has"; style roman; ".~^^A few minutes later the door opens, you see Four-Feet--carrying the blood stained hook in his mouth--being tossed in; and the door closes again.";} else if (cop in wilderness) {print "^You are lucky. The cop must have used up some of his fury on the old man. You are alive. However, you have been locked in a small, windowless cell. Before shutting the door, the cop turned, smiled at you, and said, more to himself than to you, ~I'll keep the trespasser in here for a while and we'll see what "; style underline; print "effect it has"; style roman; ".~"; } ], before [; go: print "You move as quickly and quietly as possible.^"; ], ne_to cop_station, e_to [; if (cop in cell) {print "^^You reluctantly go back into the cell.^"; PlayerTo (cell, 2); return true;} else "^^The heavy metal door is closed and locked."; ], has light; room Street3 "Sidewalk" with description "You can't help feeling that the brick buildings to the south are about to crumble. All the lower windows are boarded up and, of course, the doors are locked. You can see no way of gaining entrance, had you wanted to. A rickety fire-escape terminates several feet above your head. The street runs east and west. The library is to the north." , before [; go: print "Your feet click on the cement.^"; ], after [; Look: if (Locale(library_steps, "You see", "You also see")) print " down the street, to the north.^"; if (Locale(street4, "You see", "You also see")) print " down the street, to the west.^"; if (Locale(street2, "You see", "You also see")) print " down the street, to the east.^"; if (Locale(street5, "You see", "You also see")) print " down the street, to the west.^"; ], each_turn [; if (spot in street5 && mo_c in limbo) print "^You see the mad cop move.^"; else if (spot in junction && mo_c in limbo) print "^You see the mad cop move into view.^"; else if (spot in street2 && mo_c in limbo) print "^You see the mad cop move out of view.^"; else if (spot in street4 && mo_c in wilderness) print "^You see the mad cop move.^"; else if (spot in street1 && mo_c in wilderness) print "^You see the mad cop move into view.^"; else if (spot in street5 && mo_c in wilderness) print "^You see the mad cop move out of view.^"; if (hook in limbo && track in street2) print "^You see the black lab move out of view.^"; if ((hook in player) && (dog in street4 || dog in street2 || dog in library_steps)) print "^The black lab arrives.^"; if (cop in backyard) npc_path(cop, preset_move, patrol, 28); if ((owl in woods_trees) && ((cop in dirt_rd1 && mo_c in wilderness) || (cop in cop_station && mo_c in wilderness))) print "^You see the great horned owl, on a branch, behind the gas station, swivel its head back and forth, scanning the downtown area for small animals.^"; ], e_to Street2, w_to Street4, n_to Library_steps, u_to [; if (~~(hook in railing && rope in hook)) "^You can't reach the fire-escape."; else print"^You climb the rope. The fire-escape creeks and shakes under your weight as you ascend to the roof.^"; PlayerTo (roof,2); return true;], has light ; scoper -> with locs library_steps street4 street2 street5, dirs "down the street" "down the street" "down the street" "down the street"; room Dirt_rd2 "Dirt Road" with description "The road runs through fields and trees. There are no houses here. To the west you can see the sharp, abrupt edge of town. There are no stray buildings on this side of that line. The road leads out of town, then turns gradually to the southeast." , before [; go: print "You kick up dust as you walk.^"; ], after [; Look: if (Locale(dirt_rd1, "You see", "You also see")) print " down the road, to the southeast.^"; ], each_turn [; if (spot in wood_path && mo_c in wilderness) print "^You see the cop move.^"; if ((hook in player) && (dog in dirt_rd1 || dog in street1)) print "^The black lab arrives.^"; if (cop in backyard) npc_path(cop, preset_move, patrol, 28); if (dog in self && hook in limbo) {print "^Four-Feet is in the field just to the side of the road. He has his nose to the ground and is pacing quickly back and forth over the same small area. Soon he begins to dig. Not far below the surface, he unearths something: A metal hook. You decide he must have buried it there sometime in the past.^"; move hook to dog_dug; move dog_dug to self; } ], w_to Street1, se_to Dirt_rd1, has light ; scoper -> with locs dirt_rd1, dirs "down the road"; room Street5 "Sidewalk" with description "There are rundown buildings lining both sides of the street. Downtown is to the east. In the other direction the street turns slightly, to the southwest, toward a steep hill capped with a fat boxy mansion." , before [; go: print "Your feet click on the cement.^"; ], after [; Look: if (Locale(street3, "You see", "You also see")) print " down the street, to the east.^"; if (Locale(street4, "You see", "You also see")) print " down the street, to the east.^"; if (Locale(street2, "You see", "You also see")) print " down the street, to the east.^"; if (Locale(junction, "You see", "You also see")) print " down the street, to the southwest.^"; if (Locale(cop_station, "You see", "You also see")) print " in the town's outskirts, to the southwest.^"; ], each_turn [; if (((spot in cop_station || spot in street4) || (spot in street3 && dropoff notin limbo)) && (mo_c in limbo)) print "^You see the mad cop move.^"; else if ((spot in backyard || spot in library_steps) && (mo_c in limbo)) print "^You see the mad cop move into view.^"; else if ((spot in street2 || spot in street3) && (mo_c in limbo)) print "^You see the mad cop move out of view.^"; else if ((spot in street2 || spot in street3 || spot in junction) && (mo_c in wilderness)) print "^You see the mad cop move.^"; else if (spot in street1 && mo_c in wilderness) print "^You see the mad cop move into view.^"; else if (spot in cop_station && mo_c in wilderness) print "^You see the mad cop move out of view.^"; if ((hook in limbo) && (track in street3 || track in street4)) print "^You see the black lab move.^"; if (hook in limbo && track in street2) print "^You see the black lab move out of view.^"; if ((hook in player) && (dog in street4 || dog in junction)) print "^The black lab arrives.^"; if (cop in backyard) npc_path(cop, preset_move, patrol, 28); if ((owl in woods_trees) && ((cop in dirt_rd1 && mo_c in wilderness) || (cop in cop_station && mo_c in wilderness))) print "^You see the great horned owl, on a branch, behind the gas station, swivel its head back and forth, scanning the downtown area for small animals.^"; ], e_to Street4, sw_to Junction, has light ; scoper -> with locs street3 street4 street2 cop_station junction, dirs "down the street" "down the street" "down the street" "in the town's outskirts" "down the street"; object roof "Roof of a Brick Building" with description "You are on the roof of one of the brick buildings. The fire-escape leads down to the street. In the center of the roof, to the south, there is a brick structure with a door in it, behind which, you imagine, are stairs leading down into the building. From here you can see for miles around.", before [; go: print "You feel a little dizzy at this height.^"; ], name 'roof' 'of' 'brick' 'building' 'the', after [; look: if (Locale(library_steps, "You see", "You also see")) print " down the street, to the north.^"; if (Locale(street1, "You see", "You also see")) print " down the street, to the east.^"; if (Locale(street2, "You see", "You also see")) print " down the street, to the east.^"; if (Locale(street3, "You see", "You also see")) print " below.^"; if (Locale(street4, "You see", "You also see")) print " down the street, to the west.^"; if (Locale(street5, "You see", "You also see")) print " down the street, to the west.^"; if (Locale(junction, "You see", "You also see")) print " in the town's outskirts, to the southwest.^"; if (Locale(dirt_rd1, "You see", "You also see")) print " outside of town, to the southeast.^"; if (Locale(dirt_rd2, "You see", "You also see")) print " outside of town, to the east.^"; if (Locale(cop_station, "You see", "You also see")) print " in the town's outskirts, to the southwest.^"; ], each_turn [; if ((spot in junction || spot in cop_station || spot in street5 || spot in street4 || spot in street2 || spot in library_steps || spot in street3 || spot in street1 || spot in dirt_rd2) && (mo_c in limbo)) print "^You see the mad cop move.^"; else if ((spot in backyard || spot in home) && (mo_c in limbo)) print "^You see the mad cop move into view.^"; else if (((spot in dirt_rd1) || (spot in street1 && tea in limbo)) && (mo_c in limbo)) print "^You see the mad cop move out of view.^"; else if ((spot in dirt_rd1 || spot in dirt_rd2 || spot in street1 || spot in street2 || spot in street3 || spot in street4 || spot in street5 || spot in junction || spot in cop_station) && (mo_c in wilderness)) print "^You see the mad cop move.^"; else if (spot in wood_path && mo_c in wilderness) print "^You see the mad cop move into view.^"; else if (spot in cop_station && mo_c in wilderness) print "^You see the mad cop move out of view.^"; if (cop in backyard) npc_path(cop, preset_move, patrol, 28); if ((owl in woods_trees) && ((cop in dirt_rd1 && mo_c in wilderness) || (cop in cop_station && mo_c in wilderness))) print "^You see the great horned owl, on a branch, behind the gas station, swivel its head back and forth, scanning the downtown area for small animals.^"; ], s_to "^The door to the interior of the building seems to be bolted on the inside.", d_to [; print "^The fire-escape creeks and shakes under your weight but you reach the rope, and then the street, safely.^"; playerto (street3, 2); return true; ], has light; scoper -> with locs library_steps street1 street2 street3 street4 street5 junction dirt_rd1 dirt_rd2 cop_station, dirs "down the street" "down the street" "down the street" "in the street" "down the street" "down the street" "in the town's outskirts" "outside of town" "outside of town" "in the town's outskirts"; room Street2 "Sidewalk" with description "There are rundown buildings lining both sides of the street. To the east is the same until the street turns. Toward the west you can see the Library roof." , before [; go: print "Your feet click on the cement.^"; ], after [; Look: if (Locale(street3, "You see", "You also see")) print " down the street, to the east.^"; if (Locale(street4, "You see", "You also see")) print " down the street, to the west.^"; if (Locale(street5, "You see", "You also see")) print " down the street, to the west.^"; ], each_turn [; if ((spot in street5 || spot in street4) && (mo_c in limbo)) print "^You see the cop move.^"; else if ((spot in junction || spot in library_steps) && (mo_c in limbo)) print "^You see the mad cop move into view.^"; else if (spot in street3 && dropoff in limbo && mo_c in limbo) print "^You see the mad cop move out of view.^"; else if ((spot in street3 || spot in street4) && (mo_c in wilderness)) print "^You see the mad cop move.^"; else if (spot in street5 && mo_c in wilderness) print "^You see the mad cop move out of view.^"; if ((hook in player) && (dog in street3 || dog in street1)) print "^The black lab arrives.^"; if (cop in backyard) npc_path(cop, preset_move, patrol, 28); if ((owl in woods_trees) && ((cop in dirt_rd1 && mo_c in wilderness) || (cop in cop_station && mo_c in wilderness))) print "^You see the great horned owl, on a branch, behind the gas station, swivel its head back and forth, scanning the downtown area for small animals.^"; ], e_to Street1, w_to street3, has light ; scoper -> with locs street3 street4 street5, dirs "down the street" "down the street" "down the street"; object tunnel "Large Tunnel" with description "You are in a dark tunnel. At either end is a circular exit and the fading light of the upper world. The rope is dangling through the exit above you. The other end of the tunnel, to the southeast, rises only gradually and you won't need a rope to reach the other exit.", name 'exit' 'tunnel' 'circular' 'light' 'fading' 'large' 'dark' 'damp' 'stone', before [; go: print "Your feet scrape across damp stone.^"; ], each_turn [; if (cop in backyard) npc_path(cop, preset_move, patrol, 28); if (cop in cliff && player in self) {deadflag = 1; "^A silhouette of a man appears in the circle of light, above. You look up and squint your eyes and see it is the cop carrying a large, heavy stone to the tunnel entrance. The stone drops and you don't have time to move a muscle.";} ], u_to [; move rope to hook; PlayerTo (cliff, 2); return true; ], se_to [; if (worm in self) {deadflag = 1; "^You begin to proceed down the tunnel when something lunges at your legs. An iron grip clamps onto your ankles and lifts. You tip backward and your head speeds toward the hard, stone floor of the tunnel.";} else {print "^You emerge in a...^"; PlayerTo (clearing2, 2); return true;} ], d_to [; if (radial in self) "^For all you know, the small tunnels could be entrances to a network of catacombs where you could become hopelessly lost. The tunnels are just barely large enough for you to squirm through. You think it wiser to stick to the large tunnel."; ], e_to [; if (radial in self) "^For all you know, the small tunnels could be entrances to a network of catacombs where you could become hopelessly lost. The tunnels are just barely large enough for you to squirm through. You think it wiser to stick to the large tunnel."; ], w_to [; if (radial in self) "^For all you know, the small tunnels could be entrances to a network of catacombs where you could become hopelessly lost. The tunnels are just barely large enough for you to squirm through. You think it wiser to stick to the large tunnel."; ], n_to [; if (radial in self) "^For all you know, the small tunnels could be entrances to a network of catacombs where you could become hopelessly lost. The tunnels are just barely large enough for you to squirm through. You think it wiser to stick to the large tunnel."; ], s_to [; if (radial in self) "^For all you know, the small tunnels could be entrances to a network of catacombs where you could become hopelessly lost. The tunnels are just barely large enough for you to squirm through. You think it wiser to stick to the large tunnel."; ], ne_to [; if (radial in self) "^For all you know, the small tunnels could be entrances to a network of catacombs where you could become hopelessly lost. The tunnels are just barely large enough for you to squirm through. You think it wiser to stick to the large tunnel."; ], nw_to [; if (radial in self) "^For all you know, the small tunnels could be entrances to a network of catacombs where you could become hopelessly lost. The tunnels are just barely large enough for you to squirm through. You think it wiser to stick to the large tunnel."; ], sw_to [; if (radial in self) "^For all you know, the small tunnels could be entrances to a network of catacombs where you could become hopelessly lost. The tunnels are just barely large enough for you to squirm through. You think it wiser to stick to the large tunnel."; ], has light; object clearing2 "Clearing" with description "There is a decrepit, stone ruin in this small, overgrown clearing. Thick, short trees press in on all sides. Surrounding the trees is sheer cliff. The cliff to the north you know must be very thin. The tunnel below crossed under it in less than forty feet. You are in a giant, circular indent in the earth. It hardly seems natural. Everything here lies in shadow.", name 'clearing', before [; go: print "You wade though the underbrush.^"; ], u_to [; "^You can't scale the cliff. The cliff face is flat and vertical with few imperfections. Also, you have no climbing experience.^"; ], s_to readroom2, d_to tunnel, has light; Object Readroom2 "Ruin" with description "There are piles of rubble everywhere and everything is covered in vines. There is a network of brown and dead vines entwined in a hump in one corner. The opening where a door used to be is to the north.", name 'rubble' 'rock' 'rocks' 'pile' 'piles' 'of' 'flourishing' 'vines' 'vine' 'layer', before [; go: print "You climb across the layer of vines.^"; exit: if (noun == exitruin || noun == 0) {if (liten in self) stoptimer (liten); if (liten in self) move liten to limbo; if (dimly in self) stoptimer (dimly); if (dimly in self) move dimly to limbo; if (darken in self) stoptimer (darken); if (darken in self) move darken to limbo; print "You climb across the layer of vines.^"; PlayerTo (clearing2, 2); return true; } ], n_to [; if (liten in self) stoptimer (liten); if (liten in self) move liten to limbo; if (dimly in self) stoptimer (dimly); if (dimly in self) move dimly to limbo; if (darken in self) stoptimer (darken); if (darken in self) move darken to limbo; playerto (clearing2, 2); return true; ], has light; object cave "Cave" with description "You are in a hollow enclosed by limestone and yellow clay. There is a natural cylinder of rock jutting from the cave floor. There is a tunnel to the north with light at the end. There are other, smaller tunnel entrances in the ceiling, directly above.", before [; examine: if (noun == player) "Strangely, a change seems to have been rendered. There is something unfamiliar about your appearance that you can't quite pinpoint. Your hands are covered in dirt and grime."; go: if (player notin cavefloor) print "You glide stealthily through the dark.^"; else "You'll have to get off of the floor first."; exit: if (noun == exitcave && player in cavefloor) "You'll have to get off of the floor first."; else if ((noun == exitcave || noun == 0) && (scorch notin limbo && player notin cavefloor)) {move scorch to limbo; print "You glide stealthily through the dark^^You step forward toward the exit and a shaft of light falls on you, bowling you back into the safety of darkness. You shrink and cringe and shudder and avert your gaze from that searing shaft. You have spent too much time underground and you have spent far too much time learning "; style underline; print "their"; style roman; print " methods. "; style underline; print "Their"; style roman; " dark ways have irrevocably rubbed off on you and are now permanently imprinted on your brain. There is but one thing left for you to do in the world of the upper branch of the human race before you can retire to a rich and lightless life as a worm.^^A WORM OF THE EARTH.";} else if ((noun == exitcave || noun == 0) && (player notin cavefloor)) "You glide stealthily through the dark^^You wouldn't be able to bear repeating that experience."; else if ((player in cavefloor && eyelock notin limbo) && (noun == cavefloor || noun == 0)) {move eyelock to limbo; print "With difficulty, you wrench your eyes from the black stone.^^"; } ], n_to [; if (scorch notin limbo && player notin cavefloor) {move scorch to limbo; print "^You step forward toward the exit and a shaft of light falls on you, bowling you back into the safety of darkness. You shrink and cringe and shudder and avert your gaze from that searing shaft. You have spent too much time underground and you have spent far too much time learning "; style underline; print "their"; style roman; print " methods. "; style underline; print "Their"; style roman; " dark ways have irrevocably rubbed off on you and are now permanently imprinted on your brain. There is but one thing left for you to do in the world of the upper branch of the human race before you can retire to a rich and lightless life as a worm.^^A WORM OF THE EARTH.";} else if (player notin cavefloor) "^You wouldn't be able to bear repeating that experience."; ], s_to "^Even after all that's happened, you can't just walk through solid earth.", e_to "^Even after all that's happened, you can't just walk through solid earth.", w_to "^Even after all that's happened, you can't just walk through solid earth.", d_to "^Even after all that's happened, you can't just walk through solid earth.", u_to "^The tunnels through the clay are too high to reach.", se_to "^Even after all that's happened, you can't just walk through solid earth.", sw_to "^Even after all that's happened, you can't just walk through solid earth.", ne_to "^Even after all that's happened, you can't just walk through solid earth.", nw_to "^Even after all that's happened, you can't just walk through solid earth.", has light; object inlib "Back Inside the Library" with description "You are between two tall shelves of books. Behind you is the entrance to your tunnel. Around it are scattered tiles from the floor.", has light; !!! IMAGINARY OBJECTS !!! object liten with time_left, time_out [; move self to limbo; move darken to readroom2; "^Atla flickers and dims till she is just a wispy outline."; ], has scenery; object dimly with time_left, time_out [; move self to limbo; move liten to readroom2; "^Atla brightens to an eery radiance, casting a pale light throughout the interior of the ruin."; ], has scenery; object darken with time_left, time_out [; move self to limbo; move dimly to readroom2; "^Atla brightens a little and can now be seen more clearly."; ], has scenery; object scorch; object eyelock; Object sale; object mo_c; object tea; object spot has scenery; Object time; Object limbo; object track has scenery; object leash; object wilderness; object daemonic wilderness; object dropoff; object subone; object subtwo; object subthree; object subfour; object earthworm; object stumper; !!! SCENERY !!! object limestone "limestone" cave with description "Parts of the cave walls are made of limestone.", name 'cave' 'walls' 'wall' 'stone' 'limestone', before [; dig: "The limestone is far too hard, even for you."; ], has scenery; object littunnel "lit tunnel" cave with description "There is a tunnel to the north with light at the end.", name 'tunnel' 'lit' 'light' 'shaft' 'of', before [; enter: if (scorch notin limbo && player notin cavefloor) {move scorch to limbo; print "You glide stealthily through the dark.^^You step forward toward the exit and a shaft of light falls on you, bowling you back into the safety of darkness. You shrink and cringe and shudder and avert your gaze from that searing shaft. You have spent too much time underground and you have spent far too much time learning "; style underline; print "their"; style roman; print " methods. "; style underline; print "Their"; style roman; " dark ways have irrevocably rubbed off on you and are now permanently imprinted on your brain. There is but one thing left for you to do in the world of the upper branch of the human race before you can retire to a rich and lightless life as a worm.^^A WORM OF THE EARTH.";} else if (player notin cavefloor) "You glide stealthily through the dark.^^You wouldn't be able to bear repeating that experience."; ], has scenery; object claytunnels "yellow clay" cave with description "Parts of the cave walls are made of clay. The clay looks the same as the clay you saw in the cliff, near the sleeper, except that this clay looks soft. The tunnels leading upward have been burrowed through the clay and immediately remind you of the small tunnels you saw from the large tunnel under the cliff.", name 'clay' 'yellow' 'tunnels' 'tunnel' 'soft' 'entrances' 'entrance' 'small' 'through' 'the', before [; take, push, pull: "Your disoriented state of mind doesn't lend itself to artistic expression."; enter: "The tunnels through the clay are too high to reach."; dig: if (scorch notin limbo) "You intuitively feel that your tunneling skills are excellent, but why go burrowing when you haven't tried the unobstructed exit?"; else {print "You rapidly burrow into the clay. You are surprised that you aren't surprised about your ability at digging. It seems you can dig without thinking, as if from long practice and much repetition. You aren't even surprised that you know exactly where you are and where you're going, without any external cues: all you can see is the tunnel you're digging, and the earth around you. When you reach your destination you see that it is night--just as you expected. You are glad the moon is new. You emerge from the ground and find yourself...^"; playerto (inlib, 2); deadflag = 4; print "You scuttle over to the checkout desk and place "; style underline; print "Worms of the Earth"; style roman; " in the return bin, then leave the same way you came.";} ], has scenery; object column "rock formation" cave with description "There is a natural cylinder of rock jutting from the cave floor.", name 'rock' 'formation' 'natural' 'cylinder' 'of', has scenery supporter; object cavefloor "floor" cave with description "The cave floor is smooth and made of limestone.", name 'smooth' 'floor', article 'the', has scenery supporter enterable; object hump "hump of vines" readroom2 with description "The vines in the hump are dead, dry, and brittle but all the other vines you see seem to be flourishing. You notice a dark area, deep within the hump, where there are no vines.", name 'vines' 'vine' 'hump' 'dead' 'dry' 'brittle' 'of' 'mass' 'network' 'intertwining', before [; attack, take, push, pull, search: move self to limbo; move hollow to readroom2; move black_stone to hollow; "You slash through the hump of vines and they break easily. Within the hump is a small, round hollow of empty space. In the center of the hollow is a black lump."; ], has scenery transparent container; object hollow "hollow" hump with description [; if (self in hump) "You see a dark area, deep within the hump, where there are no vines."; else "In the center of the hollow is a black lump."; ], before [; search: if (black_stone notin self) "It's hard to see much through the mass of vines."; receive: if (self in hump) "You can't reach the hollow through the mass of vines."; ], name 'hollow' 'dark' 'area', has scenery transparent container open; object exitcave "cave" cave with description "You are in a hollow enclosed by limestone and yellow clay. There is a natural cylinder of rock jutting from the cave floor. There is a tunnel to the north with light at the end. There are other, smaller tunnel entrances in the ceiling, directly above.", name 'cave', article 'the', before [; enter: "But you're already in the cave."; ], has scenery; object exitruin "interior of the ruin" readroom2 with description "There are piles of rubble everywhere and everything is covered in vines. There is a network of brown and dead vines entwined in a hump in one corner. The opening where a door used to be is to the north.", name 'ruin' 'stone' 'stones' 'decrepit' 'interior' 'of' 'the' 'door' 'opening', article 'the', before [; enter: "But you're already in the ruin."; ], has scenery; object exitcell "cell" cell with description "You are in a small, concrete cell. There are no windows. The heavy metal door is to the west and a crack runs down the wall opposite.", name 'room' 'cell' 'small' 'concrete', article 'the', before [; enter: "But you're already in the cell."; ], has scenery; object exitpet "interior of the pet store" pet_store with description "Inside the dimly lit store there is a stooped man with an especially wrinkled face behind a high counter. Most of the store is empty. The only other things of note are a large cage against one wall, a fish tank on a low table, and a wooden box hanging from the ceiling. The door to the street is to the southeast. How this store manages to stay in business in this town is the second remaining wonder of the world. You wonder why it's open this late.", name 'room' 'pet' 'store' 'interior' 'of' 'the', article 'the', before [; enter: "But you're already in the pet store."; ], has scenery; object exitcafe "interior of the coffee shop" cafe with description "Inside the coffee shop there is a counter, a glass cabinet, a single table with a single chair, a clerk behind the counter, and a blackboard on the wall. Everything is well lit and clean. The door to the street is to the southwest. You are surprised the shop is open at this time of day.", name 'room' 'coffee' 'shop' 'store' 'cafe' 'interior' 'of' 'the', article 'the', before [; enter: "But you're already in the coffee shop."; ], has scenery; object exithome "interior of your house" home with description [; if (dollar in nail) "Your house contains a single room. You remember that you're in need of new light bulbs. The last one blew last night, leaving you in the pitch dark; as you almost are now. There is a futon on the floor in one corner. There is an old dollar bill nailed to a wall. Your various other possessions are arrayed about the room."; else if (nail in home) "Your house contains a single room. There is a futon on the floor in one corner. There is a rusty nail sticking out of one of the walls. Your various other possessions are arrayed about the room."; else "Your house contains a single room. There is a futon on the floor in one corner. Your various other possessions are arrayed about the room."; ], name 'room' 'house' 'home' 'interior' 'of' 'your', article 'the', before [; enter: "But you're already in your house."; ], has scenery; object cleartrees "trees" clearing2 with description "There is a dense ring of trees, mostly oak, between the clearing and the cliff. Thick underbrush is covering the ground beneath them and flourishing just as well in the clearing.", name 'dense' 'ring' 'tree' 'trees' 'oak' 'thick' 'short' 'flourishing' 'underbrush', has scenery; object ruin "stone ruin" clearing2 with description "The ruin is almost completely covered in vines and lichen. The roof has long since fallen in and the door has long since rotted away. The door opening is to the south.", name 'ruin' 'stone' 'stones' 'vine' 'vines' 'lichen' 'covered' 'decrepit' 'door' 'opening', before [; enter: print "You wade through the underbrush.^"; playerto (readroom2, 2); return true; ], has scenery; object opening "door opening" with description "The door has long since rotted away.", name 'opening' 'door', article 'an', before [; search: "You see tangles of vines inside the ruin."; ], found_in clearing2 readroom2, has scenery; object radial "small tunnels" with description "Small tunnels are radiating out of all sides of the tunnel you are in.", name 'small' 'smaller' 'tunnel' 'tunnels' 'entrance' 'entrances' 'radiating', before [; enter: "Your feet scrape across damp stone.^^For all you know, the small tunnels could be entrances to a network of catacombs where you could become hopelessly lost. The tunnels are just barely large enough for you to squirm through. You think it wiser to stay out of them."; ], has scenery; object seat "stone seat" cliff with description "There is a vertical groove running straight and clean cut up the entire cliff, from bottom to top. At the bottom of the groove a rough seat is carved out of the rock, the back of the groove used as the back of the seat.", name 'stone' 'seat' 'groove' 'vertical' 'rock' 'carven' 'carved', has scenery; object pit2 "pit" clearing2 with description "Directly behind you is the entrance to the tunnel. It leads down at an angle. Looking into it, you see only blackness.", before [; enter: print "You wade through the underbrush.^"; playerto (tunnel, 2); ], name 'deep' 'circular' 'pit' 'blackness' 'edge' 'of' 'the' 'entrance' 'tunnel' 'to', has scenery; object pit "pit" cliff with description "At the sleeper's feet is a deep circular pit. It leads straight down. Looking into it, you see only blackness.", before [; enter: if (dark_man in cliff && rope in hook && hook in clay) move rope to tunnel; if (dark_man in cliff && tunnel hasnt visited && rope in tunnel) print "^You walk toward the pit but quickly stop and move back a couple steps when the sleeper stirs, then jerks up suddenly and yells out, ~I am Gonar! I am old beyond your imagining and Bran Mac Morn lives still, in the Dark Man! Who are you to interrupt... The Dark Man! The Dark Man, here! You are well on your way to screaming madness. That is a warning. You may pass. Sleep in the wood and strange happenings can happen. If you're awake you'll even witness them.~^^The ancient makes a sweeping gesture, vaguely at the pit. His eyes then grow bleary and his head drops. He is no longer aware of your presence.^"; if (rope in tunnel && dark_man in cliff) PlayerTo (Tunnel, 2); if (dark_man in cliff && tunnel hasnt visited && rope in tunnel) print "^You climb down into the dark pit. You soon realize that it only looked black from above because it turns abruptly from a vertical shaft to a horizontal tunnel and the rock you are now standing on is black. The tunnel continues for another thirty or thirty-five feet and then turns upward again and emerges in light.^^Sunlight.^^Sunlight where there should be only the solid rock of the cliff towering above you.^"; if (dark_man notin cliff) print "^You walk toward the pit but quickly stop and move back a couple steps when the sleeper stirs, then jerks up suddenly and yells out, ~I am Gonar! I am old beyond your imagining and Bran Mac Morn lives still, in the Dark Man. Who are you to interrupt my rest? Sleep in the wood and strange happenings can happen. If you're awake you'll even witness them.~^^He angrily glares at you for a few moments before his eyes grow bleary and his head drops. He is no longer aware of your presence but you fear to approach the pit.^"; if (rope notin tunnel && dark_man in cliff) print "^The pit is deep. It also goes straight down and the sides are smooth. Jumping in could mean your death.^"; return true; ], name 'deep' 'circular' 'pit' 'blackness' 'edge' 'of' 'the' 'entrance' 'tunnel' 'to', has scenery; object animal_path1 "animal path" cliff with description "The animal path emerges from the west, out of the forest. It then continues in trodden grass, directly to the edge of the pit." , name 'animal' 'path' 'trodden' 'grass', has scenery; object animal_path2 "animal path" wood_path with description "The animal path is almost a tunnel through the thick growth but it's large enough to allow passage if you crouch or crawl.", name 'animal' 'path', has scenery; object lib_sign "sign" library_steps with description "STREGOICAVAR PVBLIC LIBRARY", name 'sign', has scenery; object steps "cracked steps" library_steps with description "The steps are steep and made of granite. There are cracks in several places.", name 'steps' 'crack' 'cracks' 'granite' 'steep' 'step' 'cracked', before [; climb: "Your feet click on the cement.^^The library is closed."; ], has scenery supporter enterable; object futon "futon" home with description "It's a futon with a quilt and a wool blanket spread over it.", name 'futon' 'bed' 'blanket' 'blankets' 'quilt' 'wool', before [; pull, push, take: "You'd rather not mess up the bed. It's neatly made."; ], has scenery supporter enterable; object stump "giant stump" clearing with description "The stump is about three feet in diameter and, though the top is uneven and jagged, probably averages three feet high. It looks like the tree fell recently: though you can see no sign of where it could have fallen, the stump looks freshly broken. It is not gray or rotten. You can't imagine what force could have broken a tree of that size. You are far from the ocean. There are no hurricanes here.", name 'stump' 'giant' 'top' 'of' 'the' 'jagged' 'claw' 'end' 'uneven', has scenery; object possess "possessions" home with description "Be more specific.", article "your", before [; take: "Be more specific."; ], name 'possessions', has scenery pluralname; object nail "rusty nail" home with description "It's a rusty nail, nailed into the wall.", name 'nail' 'rusty', before [; receive: if (~~(noun == dollar)) "You can't hang that on the nail."; take, pull: move board to home; move insulation to home; if (dollar in nail) move dollar2 to nail2; move nail to limbo; "You tug on the nail but you can't extract it from the board it's nailed into. Instead, the whole board rips out of the wall and falls to the floor, revealing the insulation behind it."; ], has scenery supporter; object insulation "insulation" with description "It's pink foam insulation.", name 'insulation' 'pink' 'foam', before [; take, touch: "You don't want to touch that."; ], has scenery pluralname; Object window "lit window" Street4 with description [; "There is a light in a second floor window of the coffee shop. "; ], before [; open, close: "You can't reach the lit window."; search: "You can see light behind a closed shade. The clerk at the coffee shop probably lives upstairs."; ], name 'window' 'light' 'second' 'floor' 'lit' 'shade', has scenery; Object woods_trees "woods" Street4 with description [; if (owl in self) "Woods cover the landscape behind the gas station. The great horned owl can be seen perched in one of the trees. It looks alert for any movement that might mean prey."; else "Woods cover the landscape behind the gas station."; ], before [; enter: "Your feet click on the pavement.^^The woods look too thick for walking through."; receive: "Just drop it where you are, if you want to be rid of it."; ], name 'woods' 'trees' 'tree' 'wood' 'forest' 'branch' 'branches', has container transparent scenery pluralname; Object cafe_front "coffee shop" Street4 with description "It's the front of a coffee shop.", name 'storefront' 'store' 'shop' 'coffee' 'cafe', before [; enter: if (owl in woods_trees) print "Before proceeding, you quickly glance toward the forest.^"; if (owl notin woods_trees) print "Before proceeding, you cast a quick glance around the neighborhood. It's completely deserted.^"; if (time in limbo) "^The Coffee Shop is closed. There is a light in a second floor window but the shop is dark, and locked up."; PlayerTo (Cafe, 2); return true; ], has scenery; Object gas_front "gas station" Street4 with description "The gas station consists of a small convenience store and one old pump.", name 'store' 'gas' 'station' 'convenience' 'pump', before [; enter: if (owl in woods_trees) print "Before proceeding, you quickly glance toward the forest.^"; if (owl notin woods_trees) print "Before proceeding, you cast a quick glance around the neighborhood. It's completely deserted.^"; if (Gas_store has visited) "^The gas station is now closed."; PlayerTo (Gas_store, 2); return true; ], has scenery; Object pet_front "pet store" Street4 with description "It's the front of a small pet store.", name 'store' 'pet' 'storefront', before [; enter: if (owl in woods_trees) print "Before proceeding, you quickly glance toward the forest.^"; else print "Before proceeding, you cast a quick glance around the neighborhood. It's completely deserted.^"; if (dark_man in self || dark_man in cliff) "^The pet store is now closed."; playerto (pet_store, 2); return true; ], has scenery; object outside_open "sign" street4 with description [; if (time in limbo) "The sign in the coffee shop window reads: CLOSED"; else "The sign in the coffee shop window reads: OPEN"; ], name 'sign' 'open' 'closed', has scenery; object inside_open "sign" cafe with description "From the inside, the sign in the coffee shop window reads: CLOSED", name 'sign' 'open' 'closed' 'open', has scenery; Object chair "chair" Cafe with description "It's a plastic lawn chair.", name 'chair' 'lawn' 'plastic', before [; enter: if (bagel in shelf && biscotti in shelf) "you'd better buy something before you sit down."; ], has scenery container open enterable; Object counter "counter" Cafe with description "It's a thick, worn, pitted slab of granite.", name 'counter' 'granite' 'slab' 'thick' 'worn' 'pitted', has scenery supporter; object cafe_clerk "clerk" Cafe with description "The clerk is a woman with premature gray hair. She's waiting for you to buy something.", name 'clerk' 'woman' 'gray' 'premature' 'hair' 'person' 'human', life [; ask, tell, answer, order: "The response is...^^~Are you going to buy anything?~"; Give: if (noun == dime) move dime to self; if (noun == f_piece || noun == dollar || noun == dollar2) "The clerk opens a drawer behind the counter. ^^~I'm sorry. We're out of change. Do you have the exact amount?~"; if (noun == nickel) move nickel to self; if (noun == dime) move bagel to counter; if (noun == dime) "You give the clerk ten cents. She takes a bagel out of the cabinet and puts it on the counter. ^^~Thank you... anything else?~"; if (noun == nickel) move biscotti to counter; if (noun == nickel) "You give the clerk five cents. She takes a piece of biscotti out of the cabinet and puts it on the table. ^^~Thank you... Anything else?~ "; ], orders [; give: if (noun == bagel || noun == biscotti) "The response is...^^~I'll look and see if we have any left, but you'll have to pay first.~"; else "The response is...^^~That's not for sale.~"; ], has animate female scenery; Object shelf "glass cabinet" Cafe with description "It's a cabinet with glass shelves. It's closed but there is also glass in the door and you can look inside.", before [; open: "The cabinet is behind the counter and not for the customers to help themselves."; ], name 'cabinet' 'glass' 'shelves' 'shelf', has scenery container transparent; Object blackboard "blackboard" Cafe with description "The blackboard is above the table. Written on it in white chalk: ^^bagel - $0.10 ^biscotti - $0.05", name 'blackboard' 'price' 'prices', has scenery; Object table "table" Cafe with description "It's an simple wooden table.", name 'table' 'wooden' 'simple', has scenery supporter; Object door2 "door" with description "You see nothing interesting about any doors.", name 'door', before [; open, close: "You needn't concern yourself with such trivial matters."; ], found_in street3 street1 street2 street4 library_steps cafe pet_store home roof cop_station, has scenery; object windows "window" with description "All the windows in this town seem to be fogged and grimy.", name 'window' 'windows', before [; open, close: "You needn't concern yourself with such trivial matters."; search: "You can see nothing clearly. All the windows in this town seem to be fogged and grimy."; ], found_in street3 street1 street2 library_steps cafe pet_store home cop_station backyard street4, has scenery; object square_cage "large cage" Pet_store with description "There is a sturdy cage of the type used for dogs and cats on the floor, against a wall. There is a tag tied to it that reads: $0.80", name 'cage' 'sturdy' 'dog' 'cat' 'large' 'tag' 'price', has container transparent scenery; Object fish_tank "fish tank" Pet_store with description "There is a medium sized, rectangular tank on a low table. There is a sticker stuck to it that reads: $0.05", name 'tank' 'fish' 'rectangular' 'sticker', has container transparent scenery; Object bird_cage "wooden box" Pet_store with description "There is a large, square, heavy duty wooden box hanging from the ceiling in a especially dark corner of the room. There's a tag tied to it that reads: $1.30", name 'large' 'box' 'square' 'wooden' 'heavy' 'duty' 'tag' 'top' 'corner' 'dark' 'price' 'dark' 'wood', before [; take, push, pull, attack: if (owl in self) "The box swings from the ceiling, back and forth a few times before stopping. An eerie hoot sounds from within. The box is too high to remove from where it's hanging, and besides, it's not yours and only the animals are for sale."; else "The box swings from the ceiling, back and forth a few times before stopping. It is too high to remove from where it's hanging, and besides, it's not yours and only the animals are for sale."; hear: if (owl in self) "You hear a shifting of feathers."; ], has container scenery; Object fish_table "table" Pet_store with description "It's a coffee table with a fish tank on it.", name 'table' 'coffee' 'low', has scenery; Object pet_counter "counter" Pet_store with description "It's a high counter.", name 'counter' 'high', has scenery; object interstate "interstate" with description "The interstate is pretty much like any other.", name 'interstate' 'highway' 'pavement', found_in junction, has scenery; object sign "sign" street1 with description "FOR RENT", name 'sign' 'signs' 'for' 'rent', has scenery; object shack "shack" street1 with description "It doesn't look like much... but it's yours.", name 'shack' 'home' 'house' 'residence', before [; enter: print "Before proceeding, you think about the maintenance your house is in need of.^"; playerto (home, 2); return true; ], has scenery; Object town "buildings in disrepair" with description "Very few of the buildings look inhabited.", name 'town' 'buildings' 'building' 'house' 'houses' 'rundown' 'dilapidated' 'large' 'square' 'empty' 'brick' 'bricks' 'in' 'disrepair' 'stregoicavar' 'tattered' 'shells' 'shell' 'dark', before [; enter: "You can't go in there."; ], found_in dirt_rd2 street1 street2 street3 street4 street5 junction roof library_steps, has scenery pluralname; Object scene "scenery" dirt_rd1 with description "The scenery here is pristine and beautiful.", name 'tree' 'trees' 'scenery' 'path' 'forest' 'cliff' 'field' 'fields' 'wood' 'woods', has scenery pluralname; Object rd "road" with description "The dirt road is pretty much the same as any other.", name 'road' 'dirt' 'dust', found_in dirt_rd1 dirt_rd2 street1, has scenery; Object path "overgrown road" wood_path with description "The path appears to be the remains of a very old road.", name 'path' 'road' 'old' 'ground' 'overgrown', has scenery; object woodland "woods" with description "The trees in this part of the forest are mostly evergreens with a few oaks and an occasional birch. Nearly everywhere beneath them is covered in thorny underbrush.", name 'trees' 'firs' 'birches' 'birch' 'oak' 'oaks' 'evergreens' 'forest' 'woods' 'wood' 'fir' 'tree' 'underbrush' 'thorny' 'growth', before [; enter: if (location == cliff) "You creep as quietly as possible.^^The woods look too thick for walking through."; if (location == wood_path || location == clearing) "You wade through the underbrush.^^The woods look too thick for walking through."; receive: "Just drop it where you are, if you want to be rid of it."; ], found_in clearing cliff wood_path, has scenery pluralname; Object branch1 "low branch" Wood_path with description "One of the lower branches of one of the fir trees to the southwest conceals an area relatively free of growth." , name 'branch' 'branches' 'route' 'low' 'swaying' 'fir', before [; push: "You push aside the branch and see a low, but passable route."; pull: "You pull the branch to one side and see a low, but passable route."; ], has scenery ; Object branch2 "low branches" Clearing with description "Lower branches of fir trees to the northeast conceal an area relatively free of growth." , name 'branch' 'branches' 'route' 'low' 'lower' 'fir', before [; push: "You push aside the branches and see a low, but passable route."; pull: "You pull the branches to one side and see a low, but passable route."; ], has scenery pluralname; object ancient "sleeping man" cliff with description "You can see his chest moving up and down. He is alive. He's just asleep.", name 'old' 'ancient' 'sleeping' 'man' 'sleeper' 'gonar', life [; ask, tell, answer, order, wakeother: if (dark_man notin cliff) "The sleeper stirs, then jerks up suddenly and yells out, ~I am Gonar! I am old beyond your imagining and Bran Mac Morn lives still, in the Dark Man. Who are you to interrupt my rest? Sleep in the wood and strange happenings can happen. If you're awake you'll even witness them.~^^He angrily glares at you for a few moments before his eyes grow bleary and his head drops. He is no longer aware of your presence."; if (dark_man in cliff) "The sleeper stirs, then jerks up suddenly and yells out, ~I am Gonar! My age is beyond your imagining and Bran Mac Morn lives still, in the Dark Man! Who are you to interrupt... The Dark Man! The Dark Man, here! You are well on your way to screaming madness. Sleep in the wood and strange happenings can happen. If you're awake you'll even witness them.~^^He angrily glares at you for a few moments before his eyes grow bleary and his head drops. He is no longer aware of your presence."; ], has animate scenery male; object clay "patch of clay" cliff with description [; if (hook in self) "The clay is dry and hardened. It's of a dull yellow color with streaks of red. The point of the blood stained hook is embedded in it."; else "The clay is dry and hardened. It's of a dull yellow color with streaks of red."; ], name 'patch' 'of' 'hardened' 'clay' 'yellow' 'streaks' 'streak' 'red' 'dry', before [; take, dig: "The clay is much too hard-packed for you to dig any out."; receive: "The clay is much too hard-packed to put anything in it."; attack: if (second == hook) move leash to wilderness; if (second == hook) move hook to clay; if (second == hook && rope in hook) "You swing the hook at the patch of clay. The pointed tip sinks in and stays stuck there. The rope is now dangling down into the pit."; else if (second == hook) "You swing the hook at the patch of clay. The pointed tip sinks in and stays stuck there."; else if (second == 0) "The clay is much too hard-packed for you to damage it with your bare hands. Also, that would be senseless destruction."; else "That would be senseless destruction."; ], has scenery supporter; object cliff_face "cliff" cliff with description "The vertical cliff towers above you.", name 'cliff' 'face' 'rock' 'vertical' 'towering' 'flat' 'sheer', before [; climb: if (location == cliff) "You creep as quietly as possible.^^You can't scale the cliff. The cliff face is flat and vertical with few imperfections. Also, you have no climbing experience.^" ; else "You wade through the underbrush.^^You can't scale the cliff. The cliff face is flat and vertical with few imperfections. Also, you have no climbing experience.^"; ], found_in cliff clearing2, has scenery; Object side "sidewalk" with description "The sidewalk is pretty much the same as any other.", name 'sidewalk' 'cement', found_in street2 street4 street5, has scenery; Object street "street" with description "The street is pretty much the same as any other.", name 'street' 'pavement' 'sewer' 'drain', found_in library_steps street1 street2 street3 street4 street5 junction, has scenery; object station "police station" cop_station with description "The police station is an enormous institutional building. It has almost no windows. It's simply a featureless, hollow cube. There is a thick hedge beginning at both front corners and encircling the backyard.", name 'featureless' 'hollow' 'cube' 'huge' 'enormous' 'station' 'police' 'building' 'institutional' 'maintained' 'meticulously' 'bloated' 'mansion', before [; enter: if (player in cop_station)"You move as quickly and quietly as possible.^^The front door is locked."; if (player in backyard) if (cop in cell) {print "You move as quickly and quietly as possible.^^You reluctantly go back into the cell.^"; playerto (cell, 2); return true;} else "You move as quickly and quietly as possible.^^The heavy metal door is closed and locked."; ], found_in backyard, has scenery; object hill "hill" cop_station with description "The hill is steep and, besides the police station, is completely barren.", name 'steep' 'barren' 'hill' 'pinnacle' 'of' 'the', has scenery; object metal_door "heavy metal door" with description "The heavy metal door looks very substantial.", name 'substantial' 'heavy' 'metal' 'door', before [; open: "You needn't concern yourself with such trivial matters."; close: "You needn't concern yourself with such trivial matters."; ], found_in backyard cell, has scenery; object pants "pants" with description "The old man's pants match his coat.", name 'pants' 'gray' 'well' 'fitted' 'plain' 'suit' 'cloth' 'clothes', before [; take: "You'd rather not steal the man's clothes, even if he is dead."; ], has scenery pluralname; object coat "coat" with description "The old man's coat matches his pants.", name 'coat' 'gray' 'well' 'fitted' 'plain' 'suit' 'cloth' 'clothes', before [; take: "You'd rather not steal the man's clothes, even if he is dead."; ], has scenery; object grass "grass" with description "Some of the grass is green but most is yellowed.", name 'grass' 'green' 'yellowed' 'yellow' 'tall', found_in dirt_rd1 dirt_rd2 cop_station backyard, has scenery pluralname; object hedge "hedge" cop_station with description "The hedge is tall and perfectly trimmed. It encircles the backyard.", name 'hedge' 'tall' 'perfectly' 'trimmed' 'thick', found_in backyard, has scenery; object all_walls "walls" with description "You see nothing interesting about the walls.", name 'wall' 'walls', found_in pet_store cafe home, has scenery pluralname; object crack "crack" cell with description "There is a crack in the east wall. You can see, through the crack, a small open space.", name 'crack' 'wall' 'walls' 'wide' 'vertical' 'small' 'open' 'space' 'beyond' 'the' 'east', before [; enter: "You can see, through the crack, a small open space and the crack is fairly wide, but not wide enough for you to fit through it."; ], has scenery container open; Object scene1 "scenery" dirt_rd2 with description "The scenery here is pristine and beautiful.", name 'tree' 'trees' 'fields' 'field' 'scenery', has scenery pluralname; object cube "small structure" roof with description "There is a small, brick structure in the center of the roof.", name 'structure' 'small' 'brick' 'bricks', has scenery; object boards "boards" street3 with description "All the lower windows of the brick buildings are boarded up.", before [; pull, take: "The boards are securely nailed in place."; ], name 'boards' 'nails' 'board' 'nail', has scenery pluralname; object escape "fire-escape" street3 with description "It's a old, black fire-escape, running back and forth down the side of the building. It looks shaky and the railing is missing in some places, but you think it could support one person's weight.", name 'fire' 'escape' 'fire-escape' 'steps' 'old' 'black' 'shaky' 'step', before [; climb: "Your feet click on the cement.^^You can't reach the fire-escape."; attack: "You can't reach the fire-escape."; ], has scenery; object railing "railing" street3 with description [; if (hook in self) "The railing of the fire-escape is missing in some places but the section at the bottom is intact. The blood stained hook is hooked around one of the vertical bars."; else "The railing of the fire-escape is missing in some places but the section at the bottom is intact."; ], name 'railing' 'bar' 'bars' 'vertical', before [; climb: "Your feet click on the cement.^^You can't reach the railing."; attack, receive: "You can't reach the fire-escape."; ], has scenery supporter; Object library "library" with description "The library is, by far, the oldest building in town, and also one of the largest.", with name 'library' 'front' 'of' 'building' 'roof' 'the' 'stregoicavar' 'public' 'pvblic', before [; enter: if (player in library_steps) "Your feet click on the cement.^^The library is closed."; else "You can't reach the library, since it's down the street."; ], found_in library_steps street4 street3 street2, has scenery; object pet_man "owner of the pet store" pet_store with description "You assume the man with the wrinkled face is the owner of this store. You doubt anyone is employed here. You've come to the conclusion that that is why it's still open: the man probably lives in the back room, or upstairs.", article "the", name 'man' 'owner' 'mans' 'man^s' 'wrinkles' 'wrinkle' 'face' 'store' 'pet' 'Bernard' 'stooped' 'person' 'human', life [; Ask: if ((~~(second ofclass topic)) || (second has transparent && second ofclass topic)) "The store owner grins widely at your question."; switch(second) { stregopet: "The response is...^^~It's a very old town, but that name is even older. Not sure, myself, where it originated from.~"; lab: "The response is...^^~It's a black lab. Four-Feet. That's his name. Named him myself. Very likable dog. Tell it to fetch and it'll get the newspaper for you. Of course, it also has an amazing sense of smell... Oh, and it's a black lab.~"; man_name: "The response is...^^~My name's Bernard. This is a pet store.~"; smell: "The response is...^^~You think I smell... Oh, yes, all dogs have a keen sense of smell. Very much like Keen.~"; fetch: "The response is...^^~Just tell Four-Feet to fetch and if he sees a newspaper he'll run and get it. He's very smart.~"; keen: "The response is...^^~You know Keen? He's a good friend of mine. He's a salesman like me. His prices are a little high though. He tried to sell me a parrot and I said, 'WOW, that's not a high price, that's a soaring expense!'... Oh, yeah, and he's a salesman like me.~"; salesman: "The response is...^^~I'm a salesman.~"; fishy: "The response is...^^~I'm not sure what type of fish it is, but it's only $0.05. I caught it myself with my own two bare hands.~"; price: "The response is...^^~The prices are on the tags.~"; expense: if (~~(dog in square_cage)) "The response is...^^~If you don't like my prices go somewhere else. You won't find prices any better than mine.~"; else {move dog to pet_store; "The response is...^^~You think my prices are soaring? Well, I guess I can give you a deal on the dog. You can have Four-Feet for $0.60. That's $0.20 less. Here, I'll take him out of his cage so you can say hello.~^^When the cage is opened the dog immediately runs out.";} horned_owl: if (owl in glove) "The response is...^^~I think Wilbur likes you.~"; else if (~~(glove has worn)) "The response is...^^~That's a great horned owl. Its name's Wilbur. You have experience handling raptors? I wouldn't want to sell it to just anyone. I'd sell it to you but you can't carry it on your bare arm. I don't sell hawking gauntlets.~"; else move sale to limbo; "The response is...^^~That's a great horned owl. Its name's Wilbur... Ah, I can see you're wearing a hawking gauntlet. Where'd you hear I had an owl? I can give you a deal. I'm willing to take $0.30 off the already low price.~"; } tell, answer: "The store owner is more of a talker than a listener."; order: "The store owner grins widely at your request."; give: if (noun == nickel) move nickel to self; if (noun == nickel) {move fish to player; "The store owner thanks you for the money. ^^~O.K. You've bought the fish.~ ^^The store owner fills a ziplock sandwich bag with water and drops the ~fish~ into it. He hands you the bag.";} if (noun == dollar) {move dollar to self; "The store owner thanks you for the money."; } if (noun == dollar2) {move dollar2 to self; "The store owner thanks you for the money."; } if (noun == dime) {move dime to self; "The store owner thanks you for the money."; } if (noun == f_piece) {move f_piece to self; "The store owner thanks you for the money."; } ], orders [; give: if (((noun == dog) && ~~ (dime in self && f_piece in self )) || (noun == fish && fish in fish_tank) || (noun == dog && dog in square_cage && dime in self && f_piece in self)) "Your request doesn't get the store owner's attention. He's busy tracking a fly as it buzzes across the room."; else if (noun == fish || noun == dog || noun == owl) "~You already bought that.~"; ], each_turn [;if (f_piece in self && dime in self && dog in pet_store && dog notin square_cage) {print "^~O.K. Four-Feet is yours.~^^The black lab walks off to the southeast.^"; move dog to street4;} if ((sale in limbo && dollar in self && ~~ owl in glove) || (sale in limbo && dollar2 in self && ~~ owl in glove)) {print "^~O.K. That's the right amount. Wilbur is yours.~ ^^The store owner carefully takes the owl out of its box and gives it to you. You take hold of the jesses (thin leather straps, attached to its feet). It's difficult to get a good grip with the bulky winter glove. The owl flaps a few times, then settles on the glove.^"; move owl to glove;} ], has animate male scenery; !!! VISIBLE NONANIMATE OBJECTS !!! object dog_dug "hole" with description "A small hole next to the road, scratched out of the field.", name 'hole' 'small', before [; dig: "You doubt you'd find anything in there worth digging for."; ], has static container open; object black_stone "black stone" with name 'black' 'stone' 'lump', before [; take: if (ghost in readroom2) "Atla seems protective of the black lump. You feel it would be dangerous to go near it."; if (ghost in wilderness) {move ghost to readroom2; move darken to readroom2; "Just as you are about to reach down you are interrupted by a voice behind you.^^~I see I have a looter on my hands. What shall Atla do with the looter?~^^You cautiously turn around and see a transparent woman, barely more than a silhouette, dressed in rags, with a wolfish, deeply disturbing face.";} else if (self in hollow) print "You reach into the hollow and reach for the black stone. It is ice in your palm.^^"; else print "It is ice in your palm.^^"; touch: if (ghost in readroom2) "Atla seems protective of the black lump. You feel it would be dangerous to go near it."; if (ghost in wilderness) {move ghost to readroom2; move darken to readroom2; "Just as you are about to reach down you are interrupted by a voice behind you.^^~I see I have a looter on my hands. What shall Atla do with the looter?~^^You cautiously turn around and see a transparent woman, barely more than a silhouette, dressed in rags, with a wolfish, deeply disturbing face.";} else if (self in hollow) "You reach into the hollow and reach for the black stone. It is ice to your touch."; else "It is ice to your touch."; push, pull: if (ghost in readroom2) "Atla seems protective of the black lump. You feel it would be dangerous to go near it."; if (ghost in wilderness) {move ghost to readroom2; move darken to readroom2; print "Just as you are about to reach down you are interrupted by a voice behind you.^^~I see I have a looter on my hands. What shall Atla do with the looter?~^^You cautiously turn around and see a transparent woman, barely more than a silhouette, dressed in rags, with a wolfish, deeply disturbing face.^";} examine, search: if (ghost in readroom2) "Atla seems protective of the black lump. You feel it would be dangerous to go near it."; else if (self in hollow) {print "You peer into the dark hollow but, even with your "; style underline; print "improved"; style roman; " eyesight, can discern no details on the black lump.";} else if (location ~= cave) {move self to column; print "You look into the black stone and quickly become oblivious to the passing of time.^"; PlayerTo (cavefloor, 2); "^The small tunnels look barely large enough for you to squirm through but, though you have little recollection of the immediate past, other than vague images, that keep appearing and disappearing, of a giant dugout sliding down a subterranean river, you somehow know for a fact that you have not been through the tunnel with the light. You are sitting on the floor of this cave. Resting on top of the rock formation, at just about eye-level, is the black stone. Your eyes are slightly cross-eyed, as they are both locked onto the very center of the stone in a intense, unblinking, unwavering stare."; } else "It looks like it might be translucent if it wasn't black."; ]; object tangle "tangle of vines" ruin with description "You see tangles of vines inside the ruin.", name 'tangle' 'of' 'vines' 'tangles' 'vine', has static; object w_chalk "stick of chalk" table with description "It's a fat stick of white chalk.", before [; take: "you'd better leave that there. It's not yours and it's needed for the blackboard."; ], name 'chalk' 'stick' 'white' 'of' 'fat'; object body "frail man's body" with description "The frail old man lies here. Looking at his face, with its damaged eye, sends shivers down your spine. He is wearing a well fitted gray coat with matching pants.", name 'thin' 'old' 'frail' 'well' 'dressed' 'face' 'man' 'body' 'corpse' 'man^s' 'mans' 'cadaver' 'dead' 'remains' 'damaged' 'eye' 'eyes', article "the", has static; object dead_dog "Four-Feet's remains" with description "Four-Feet's body gets more mangled with each passing second. You hate to look at it.", name 'dog' 'black' 'lab' 'four' 'feet' 'four-feet' 'body' 'remains' 'mangled' 'corpse' 'cadaver' 'dead', has static proper; object debris "pile of refuse" crack with description [; if (newspaper in self) "There is a pile of refuse in the space beyond the crack. In the refuse you can see rusty cans, rotting garbage, a stuffed rabbit with a tattered, yellowed newspaper underneath it, and other junk."; else "There is a pile of refuse in the space beyond the crack. In the refuse you can see rusty cans, rotting garbage, and other junk."; ], name 'garbage' 'trash' 'junk' 'refuse' 'pile' 'of' 'rusty' 'can' 'cans' 'rotting' 'rotten' 'garbage' 'junk', before [; take, receive: "You reach your arm through the crack but the pile of refuse is still out of reach."; ], has static container open; Object bag "small paper bag" with description "It's a miniature crumpled paper bag.", name 'bag' 'paper' 'miniature' 'crumpled', before [; Receive: if (~~(noun ofclass Coin)) "That won't fit in the bag."; ], has openable container; coin dollar "dollar bill" nail with description "It's a dollar bill with an old date.", name 'old' 'dollar' 'bill' 'money' 'one', before [; take: give self ~ concealed; puton: if (second == nail) give self concealed; ], has concealed; coin dollar2 "dollar bill" with description "It's a dollar bill with an old date.", name 'dollar' 'bill' 'old' 'money'; Coin f_piece "fifty cent piece" bag with description "This large coin is worth fifty cents.", name 'coin' 'fifty' 'cent' 'piece' 'money' '50'; Coin dime "dime" bag with description "This coin is worth ten cents.", name 'dime' 'coin' 'ten' 'money'; Coin nickel "nickel" bag with description "This coin is worth five cents.", name 'nickel' 'coin' 'five' 'money'; object worm_book "book" with name 'book' 'worms' 'of' 'the' 'earth' 'back' 'front' 'cover', before [; examine: print "You glance over the front and back covers of the book. On the front is the title and author:^^"; style underline; center ("WORMS OF THE EARTH^by Robert E. Howard"); style roman; "^^Reading the back cover tells you that the book includes the story of the title as well as several others; most of which involve a pict named Bran Mac Morn.^^It's a book of medium thickness and most likely would require more than one sitting to read all the way through."; Open: if (Player in Chair) {move time to limbo; move window to street4; print "You start reading where you had left off at the library. Some time later, when the clerk finally asks you to leave, you have read almost half way through. Your gained knowledge of the "; style underline; print "worms"; style roman; print " almost feels like a physical possession. ^^As soon as you leave the shop, you hear the door being locked behind you and see the OPEN sign flip to CLOSED.^^";} else if (location == cell || location == readroom2) print "You flip through the pages to a random place.^^"; else if (location == Cafe && bagel in shelf && biscotti in shelf) "You'd better buy something if you want to stay in here."; else if (location == Cafe) "You don't like to read on your feet."; else if ((location == street4 && dark_man in street4) || (location == cliff && dark_man in cliff)) "You flip quickly through the book. Although the Dark Man's presence seems to enhance your vision in darkness, the effect seems to have faded somewhat since its initial appearance and you need a bit more light to read comfortably."; else "You flip quickly through the book. The light is not so good here. Not conducive to extended study."; Receive: "That won't fit in the book."; ], has openable container; Object glove "glove" Street5 with description "It's a brightly colored, padded winter glove. It's now fairly worn, but probably originally was waterproof.", name 'glove' 'padded' 'worn' 'winter' 'brightly' 'colored' 'bulky', before [; disrobe: if (owl in glove) "If you take off your glove the owl's talons will scratch you."; receive: "You can't put that on the glove."; ], has supporter clothing; Object bagel "bagel" shelf with description "It's a plain bagel.", before [; eat: if (Player in chair) move self to limbo; if (~~(Player in chair)) "you'd better sit down to eat that."; else "The bagel is stale but you manage to choke it down."; taste: "It tastes stale. "; ], name 'bagel' 'stale', has edible; Object biscotti "piece of biscotti" shelf with description "It's vanilla.", before [; eat: if (Player in chair) move self to limbo; if (~~(Player in chair)) "you'd better sit down to eat that."; else "Delicious!"; taste: "It's vanilla."; ], name 'biscotti' 'piece' 'vanilla' 'of', has edible; object board "broken board" with description "It's a three foot long one-by-six with one broken end and a rusty nail in the other end.", name 'board' 'plank' 'broken' 'end', before [; receive: "That can't contain things."; ], has container open; object hook "blood stained hook" limbo with description [; if ((rope in self && self in clay) || (rope in self && self in railing)) "It's a pointed butcher's hook, used for hanging meat. It's stained slightly red. The manila rope is tied to it and hanging from it."; else if (rope in self) "It's a pointed butcher's hook, used for hanging meat. It's stained slightly red. The manila rope is tied to it."; else "It's a pointed butcher's hook, used for hanging meat. It's stained slightly red."; ], name 'hook' 'blood' 'stained' 'butchers' 'butcher^s' 'red' 'meat' 'pointed' 'point' 'of' 'metal' 'the', before [; receive: "Putting things on the blood stained hook would achieve nothing."; sharpen: if (second == file) "You stabilize the hook and file the tip. However, the hook is made out of a super hard metal and you can't even scrape the surface with the cheap nail file."; take: if (self in clay) print "The hook is surprisingly well fixed in the clay but by lifting upward you are able to pull it free.^^"; if (self in railing) "You can't reach the hook."; else move leash to limbo; if ((leash in limbo && dead_dog notin cell) && (location == path || location == clearing || location == dirt_rd1 || location == dirt_rd2 || location == street1 || location == street2 || location == street3 || location == street4 || location == street5 || location == library_steps || location == junction || location == home || location == cliff || location == cop_station || location == backyard || location == cell)) print "Four-Feet runs over to you, whines, and paws at your leg. He wants the hook back and stays close at your heels.^^"; pull: if (self in clay) "You tug on the hook. It seems secure and you think it could hold a significant amount of weight."; if (self in railing) "You can't reach the hook."; drop: move leash to wilderness; throwat: if (second == clay) move leash to wilderness; if (second == clay) move self to clay; if (second == clay && rope in self) "You throw the hook at the patch of clay. The pointed tip sinks in and stays stuck there. The rope is now dangling down into the pit."; else if (second == clay) "You throw the hook at the patch of clay. The pointed tip sinks in and stays stuck there."; if (second == railing) move leash to wilderness; if (second == railing) move self to railing; if (second == railing && rope in hook) "You throw the hook at the fire-escape railing. It hooks around a vertical bar. The rope is now dangling down above the street."; else if (second == railing) "You throw the hook at the fire-escape railing. It hooks around a vertical bar."; if (second == escape) move leash to wilderness; if (second == escape) move hook to street3; if (second == escape) "You throw the hook at the fire-escape. It glances off a step and falls back down, clattering on the pavement."; swing: if (second == clay) move leash to wilderness; if (second == clay) move self to clay; if (second == clay && rope in hook) "You swing the hook at the patch of clay. The pointed tip sinks in and stays stuck there. The rope is now dangling down into the pit."; else if (second == clay) "You swing the hook at the patch of clay. The pointed tip sinks in and stays stuck there."; if (second == railing) "You can't reach the railing."; if (second == escape) "You can't reach the fire-escape."; if (second == 0) "Swinging the hook through empty air would serve no useful purpose."; ], each_turn [; if (location == cliff && dog notin limbo) { if (leash in limbo) move dog to cliff; } if (location == wood_path && dog notin limbo) { if (leash in limbo) move dog to wood_path; } if (location == clearing && dog notin limbo) { if (leash in limbo) move dog to clearing; } if (location == dirt_rd1 && dog notin limbo) { if (leash in limbo) move dog to dirt_rd1; } if (location == dirt_rd2 && dog notin limbo) { if (leash in limbo) move dog to dirt_rd2; } if (location == street1 && dog notin limbo) { if (leash in limbo) move dog to street1; } if (location == street2 && dog notin limbo) { if (leash in limbo) move dog to street2; } if (location == street3 && dog notin limbo) { if (leash in limbo) move dog to street3; } if (location == street4 && dog notin limbo) { if (leash in limbo) move dog to street4; } if (location == street5 && dog notin limbo) { if (leash in limbo) move dog to street5; } if (location == library_steps && dog notin limbo) { if (leash in limbo) move dog to library_steps; } if (location == junction && dog notin limbo) { if (leash in limbo) move dog to junction; } if (location == home && dog notin limbo) { if (leash in limbo) move dog to home; } if (location == cop_station && dog notin limbo) { if (leash in limbo) move dog to cop_station; } if (location == cell && dog notin limbo) { if (leash in limbo) move dog to cell; } if (location == backyard && dog notin limbo) {if (leash in limbo) move dog to backyard;} ], has supporter; object rope "manila rope" home with description [; if (location == tunnel) "The manila rope is worn, knotted, and thin, but fairly strong. It's dangling down from the circle of light, above."; else if (hook in clay && self in hook) "The manila rope is worn, knotted, and thin, but fairly strong. It's hanging from the hook and dangling down into the pit."; else if (hook in railing && self in hook) "The manila rope is worn, knotted, and thin, but fairly strong. It's hanging from the hook and dangling down above the street."; else if (self in hook) "The manila rope is worn, knotted, and thin, but fairly strong. It's tied to the hook."; else "The manila rope is worn, knotted, and thin, but fairly strong. It's coiled up."; ], name 'manila' 'rope' 'knotted' 'knot' 'knots' 'worn' 'thin', before [; tie: if (second == hook && self in hook) "The rope is already tied to that."; else if (second == hook && hook in clay) "You can just barely reach the hook, making it difficult to tie the rope to it. You'll have to take the hook down first."; else if (second == hook && hook in railing) "You can just barely reach the hook, making it difficult to tie the rope to it. You'll have to take the hook down first."; else if (second == hook) move self to hook; if (second == hook) "The rope is now tied to the hook."; else if (second == escape) "You can't reach the fire-escape."; else if (second == railing) "You can't reach the railing."; else if (second == 0) "You don't want to put knots in the rope unless they serve some useful purpose."; else "Tying the rope to that would serve no useful purpose."; untie: if ((location == tunnel) || (hook in railing && self in hook)) "The rope is dangling down from above. You can't reach the hook from here."; else if (self in hook) "You tied the rope more tightly than you thought and now you can't get the knot undone."; else "The rope is not tied to anything."; pull, take: if ((self in hook && hook in clay) || (location == tunnel)) "You test the rope with your full weight. It holds. If you are trying to pull the hook out of the clay, pulling straight down isn't going to do it."; if (self in hook && hook in railing) "You test the rope with your full weight. It holds. If you are trying to pull the hook off the railing, pulling straight down isn't going to do it. Maybe if you swung the rope..."; else if (self in hook) "You tied the rope more tightly than you thought and now you can't get the knot undone."; swing: if ((self in hook && hook in clay) || (location == tunnel)) "You swing the rope up and down but the hook remains firmly planted."; if (self in hook && hook in railing) print "You swing the rope up and down and the hook jumps off the railing and falls, clattering on the pavement.^"; if (self in hook && hook in railing) move hook to street3; return true; climb: if (self in hook) {if (hook in railing) print "Your feet click on the cement.^^You climb the rope. The fire-escape creeks and shakes under your weight as you ascend to the roof.^" ; if (hook in railing) PlayerTo (roof,2); if (hook in railing) return true; if (hook in clay && location == cliff) "You creep as quietly as possible.^^There's nowhere higher to climb to. To climb down, just use ~down~.^";} if (location == tunnel) {print "Your feet scrape across damp stone.^"; move rope to hook; PlayerTo (cliff, 2); return true; } ]; object newspaper "newspaper" debris with description "It's a tattered, yellowed newspaper. It looks fairly worthless.", name 'newspaper' 'tattered' 'yellowed', before [; take: if (self in debris) "You reach your arm through the crack but the pile of refuse is still out of reach."; ]; object rabbit "stuffed rabbit" debris with description "It's a stuffed rabbit; not the kind found in toy stores--it's of the kind found in natural history museums. Its ears are at odd angles but otherwise it looks fairly realistic.", name 'stuffed' 'rabbit' 'ears' 'paw' 'paws' 'ear', before [; take: if (self in debris) "You reach your arm through the crack but the pile of refuse is still out of reach."; if (self in street4 && owl in woods_trees) stoptimer (rabbit); drop: if (location == street4 && owl in woods_trees) starttimer (rabbit, 4);], time_left, time_out [; if (((spot in street5 && mo_c in limbo) && (location == street2 || location == street3 || location == roof)) || ((spot in street3 && mo_c in wilderness) && (location == street2 || location == street5 || location == cop_station || location == roof))) {move cop to limbo; move spot to limbo; move file to street4; starttimer (rabbit, 4); "^The great horned owl lifts off from its perch in the woods behind the gas station. It swoops low over the street. At the same time, the Dark Man seems to alter strangely. With each passing moment, it becomes taller, but without any actual, visible growth.^^The cop enters the downtown area, with gleaming, insane eyes, the tire iron clutched in both hands.^^Both the course of the cop and the flight of the owl converge on the stuffed rabbit: the cop seems nearly oblivious to his surroundings, the owl is intent on its prey. Just before reaching it, the owl lets out a shriek and abruptly changes course, from a downward angle, to a flight parallel to the ground, directly at the cop. It flaps swiftly a couple of times, then lands on the cop's head, sinking its talons into his scalp and would have pushed him over backward if it hadn't continued flapping, thus pulling him upright. The mad cop screeches, fiendishly. All logical thoughts seem to have left him. He staggers around, waving his arms, making no attempt at detaching the owl from his head. You see a small, metallic object fall out of a pocket before he runs in panic, crashing through the woods.^^The Dark Man looms over the street. You think you detect a slight widening of its mouth and small creases at the edges, that you hadn't noticed before.";} else if ((location == library_steps) && (~~(spot in street5 && mo_c in limbo)) && (~~(spot in street3 && mo_c in wilderness))) {move self to library_steps; "^You see a shadow moving along the street and look up to see the great horned owl with the stuffed rabbit clutched in its talons. The owl lets go. The rabbit bounces off the library roof and lands at the bottom of the steps.";} else if (location == street4 || location == street2 || location == street3 || location == street5 || location == cop_station || location == roof) {move self to library_steps; "^The great horned owl lifts off from its perch in the woods behind the gas station. It swoops low over the street and grabs the rabbit in its talons. It then flaps silently over the buildings, in a wide arc. It isn't fooled by the decoy for long. It is above the library when it drops the rabbit. Then the owl flies back into the woods.";} else if ((spot in street5 && mo_c in limbo) || (spot in street3 && mo_c in wilderness)) {move cop to limbo; move spot to limbo; move file to street4; } else move self to library_steps; ]; object file "nail file" with description "It's a small metal nail file.", name 'metallic' 'small' 'metal' 'nail' 'file' 'cheap'; object b_mark1 "bookmark for page 57" worm_book with name 'knowledge' 'bookmark' 'page' '57' 'fiftyseven' 'fifty-seven', before [; examine: if (location == cell) {move b_mark1 to limbo; print "Some part of you regrets having delved so deep into the book. Each time you learn more about the "; style underline; print "worms"; style roman; " you reflect on how they and yourself share certain similarities. ^^The bookmark slips out of its place and drifts away on an unexpected draft."; } else "You flip quickly through the book. The light is not so good here. Not conducive to extended study."; drop, take: "It's holding a place. You don't want to take it out."; ]; object b_mark2 "bookmark for the last page" worm_book with name 'knowledge' 'last' 'page' 'bookmark', before [; examine: if (b_mark1 in worm_book) "Don't skip ahead."; else if (location == Readroom2 && liten in readroom2) {move b_mark2 to limbo; print "Now that you've read the last page and completed the book, you have a much greater understanding of the "; style underline; print "worms"; style roman; " and their methods. Their arcane knowledge floods through your brain.^^The bookmark slips out of its place and drifts away on an unexpected draft."; } else if ((location == cell) || (location == street4 && dark_man in street4) || (location == cliff && dark_man in cliff)) "You flip quickly through the book. Although the Dark Man's presence seems to enhance your vision in darkness, the effect seems to have faded somewhat since its initial appearance and you need a bit more light to read comfortably."; else "You flip quickly through the book. The light is not good here. Not conducive to extended study."; drop, take: "It's marking a place. You don't want to take it out."; ]; object nail2 "rusty nail" board with description "It's a dull, rusty nail, nailed through the end of a plank.", name 'nail' 'rusty' 'dull', before [; take, pull: "You still can't get it out of the plank."; sharpen: if (second == file) {print "You're not sure that that's the type of nail the "; style underline; print "nail"; style roman; print " file is meant for, but you stabilize the board and file the end of the nail to a point. The nail turns out to consist mostly of rust and much of it breaks away before you hit solid metal. Now it is shorter but it has a shiny, dangerous looking tip that glints in the dull light.^"; move nail3 to board; move self to limbo; return true;} receive: if (~~(noun == dollar || noun == dollar2 || noun == newspaper)) "You can't hang that on the nail."; ], has supporter; object nail3 "sharp nail" with description "It's a sharp nail, nailed through the end of a plank. It's mostly rusty but the tip is shiny and reflects the light.", name 'sharp' 'sharpened' 'shiny' 'nail' 'rusty', before [; take, pull: "You still can't get it out of the plank."; sharpen: if (second == file) "The nail is already sharp."; receive: if (~~(noun == dollar || noun == dollar2)) "You can't hang that on the nail."; ], has supporter; !!! VISIBLE ANIMATES !!! object worm "glimpse of movement" tunnel with description "From the brief glimpses of the movement, you are glad the light is poor down here. A chill passes over your forehead and your stomach turns. Worse than the sight is the murmur.", name 'worm' 'of' 'the' 'earth' 'movement' 'glimpse' 'glimpses' 'murmur' 'softly' 'abhorrent' 'linguistic', before [; take, push, pull: deadflag = 1; "You begin to proceed down the tunnel when something lunges at your legs. An iron grip clamps onto your ankles and lifts. You tip backward and your head speeds toward the hard, stone floor of the tunnel."; hear: "There is a softly abhorrent, linguistic murmur following the movement."; ], life [; throwat, attack: if (second == board && nail3 in board) {move self to limbo; move radial to tunnel; "You grab the broken end of the board in a tight grip, raise it above your head, and begin to swing it down when the light from the entrance above glints on the shiny, sharpened nail. The nail and board fall on empty space. Now you see something you hadn't noticed before: smaller tunnels radiating out of all sides of the tunnel you are in. You can see no sign of the thing that had been moving.";} else if (second == 0) {deadflag = 1; print "You raise your clenched fists above your head and begin to swing them down when, abruptly, something lunges at your legs. Your fists seem an insufficient weapon against this adversary. An iron grip clamps onto your ankles and lifts. You tip backward and your head speeds toward the hard, stone floor of the tunnel.";} else {deadflag = 1; print "You grab the "; print (name) second; print " in a tight grip, raise it above your head, and begin to swing it down when, abruptly, something lunges at your legs. The "; print (name) second; print " seems an insufficient weapon against this adversary. An iron grip clamps onto your ankles and lifts. The "; print (name) second; " flies from your hand, into the darkness. You tip backward and your head speeds toward the hard, stone floor of the tunnel.";} ], has animate; object ghost "Atla" wilderness with description "A transparent woman, barely more than a silhouette, dressed in rags, with a wolfish, deeply disturbing face. Her name is Atla. You have read of her in the book. She was said to have lived in the time of Bran Mac Morn.", name 'atla' 'woman' 'ghost' 'spirit' 'transparent' 'rags' 'face' 'wolfish' 'deeply' 'disturbing' 'witch' 'silhouette' 'light' 'eery' 'radiance' 'wispy' 'outline' 'pale', life [; Ask, tell: if ((~~(second ofclass topic)) || (second hasnt transparent && second ofclass topic)) "Atla looks at you but doesn't respond: either she doesn't know anything about that, or just isn't saying."; switch(second) { stregoatla: if (subone in limbo) "The response is...~I've told you all I intend to about that.~"; else {move subone to limbo; "The response is...^^~Stregoicavar is older than any history book will tell you. The closest translation of the word would be 'witch-town'.~"; } stumpatla: if (stumper in limbo) "The response is...^^~I've told you all I intend to about that.~"; else if (b_mark2 in worm_book) "The response is...^^~You don't seem like the type that should be speaking of such things. You must be learned in certain preliminary matters before I put any light on that subject.~"; else {move stumper to limbo; print "The response is...^^~You know of the great canoe? That is surprising. You must be closer to "; style underline; print "them"; style roman; print " than the rest of your kind. The great dugout is their most recent project.~^^"; if (earthworm in limbo) "~You seem not so far removed.~"; else "~They live in close proximity but are far removed from you and your kind.~";} tree: "The response is...^^~I don't know anything about any living trees.~"; gonar: if (subtwo in limbo) "The response is...^^~I've told you all I intend to about that.~"; else { move subtwo to limbo; "The response is...^^~He is Gonar. His age is not known. He was old when he was with the picts, under Bran Mac Morn, and he lives still, though he sleeps almost all the time and is of little concern of mine.~";} you_atla: if (subthree in limbo) "The response is...^^~I've told you all I intend to about that.~"; else { move subthree to limbo; print "The response is...^^~I am Atla, the witch woman of Dagon Moor, where I lived most of my life. I moved from there long after I died, when this place was cut out of the earth--the work of "; style underline; print "those"; style roman; " who have such talent at burrowing through the earth and manipulating physical material, however massive and heavy, with inexplicable ease. I was born only partly a human of the upper world.~"; } b_stone: if ((b_mark2 in worm_book) || (~~(earthworm in limbo && stumper in limbo))) "The response is...^^~I am not convinced that you are someone who should be allowed possession of the black stone.~"; else { move ghost to limbo; if (liten in readroom2) stoptimer (liten); if (darken in readroom2) stoptimer (darken); if (dimly in readroom2) stoptimer (dimly); print "The response is...^^~That is the black stone, the only physical possession that "; style underline; print "they"; style roman; print " really prize.~^^"; "~I will know if you hold the stone...~^^~What I know the worms will know...~^^~If it is not returned they will find you...~^^~You have been warned.~^^~Look into the stone and what happened to a race over many centuries will happen to you in only a few days.~^^Atla smiles a sly, cynical smile as she fades from sight."; } bran_morn: if (subfour in limbo) "The response is...^^~I've told you all I intend to about that.~"; else { move subfour to limbo; print "The response is...^^~Bran Mac Morn was the last king of the picts. It is said that his spirit resides in the Dark Man. He is the only man in all history who met with the wor... "; style underline; print "them"; style roman; " and retained something of his sanity. He was a brave man. I remember him well.~^^Atla smiles a sly smile that sends chills down your spine.";} wormsatla: if (earthworm in limbo) "The response is...^^~I've told you all I intend to about that.~"; else if (b_mark2 in worm_book) "The response is...^^~You don't seem like the type that should be speaking of such things. You must be learned in certain preliminary matters before I put any light on that subject.~"; else { move earthworm to limbo; print "The response is...^^~You know of the WORMS OF THE EARTH? That is surprising. My assessment is apparently not quite right. It shall be revised. I know you met one just below here but I did not expect you to recognize what it was. They were driven underground by the picts in long forgotten times and they have lived separate ever since. They have veered further and further away from the main branch of the human race. They now bear little resemblance. Evolution has been swift in changing the worms to suit their environment.~^^"; if (stumper in limbo) "~You seem not so far removed.~"; else "~They live in close proximity but are far removed from you and your kind.~";} } order, answer: "Atla looks at you but doesn't respond: either she's not interested in what you have to tell her, or is just pretending not to be.";], each_turn [; if (liten in readroom2 && self in readroom2) starttimer (liten, 2); if (dimly in readroom2 && self in readroom2) starttimer (dimly, 2); if (darken in readroom2 && self in readroom2) starttimer (darken, 2); ], orders [; give: if (noun == black_stone) if ((b_mark2 in worm_book) || (~~(earthworm in limbo && stumper in limbo))) "The response is...^^~I am not convinced that you are someone who should be allowed possession of the black stone.~"; else { move ghost to limbo; move liten to wilderness; move darken to wilderness; move dimly to wilderness; print "The response is...^^~That is the black stone, the only physical possession that "; style underline; print "they"; style roman; print " really prize.~^^"; "~I will know if you hold the stone...~^^~What I know the worms will know...~^^~If it is not returned they will find you...~^^~You have been warned.~^^~Look into the stone and what happened to a race over many centuries will happen to you in only a few days.~^^Atla smiles a sly, cynical smile as she fades from sight."; } ], has animate female proper; Object fish "tadpole" fish_tank with description "A tiny tadpole swims back and forth in the murky water.", name 'tadpole' 'fish' 'ziplock' 'bag' 'sandwich' 'water', life [; ask, tell, answer, order: "Your words don't seem to register."; ], before [; drop: "The tadpole is yours now. Don't leave it in the store."; ], each_turn [; if (location == street4) move fish to limbo; if (location == street4) "^As soon as you step out of the pet store, the bottom of the ziplock bag breaks open and the water, with the tadpole still in it, spills onto the pavement and down a sewer drain. You regret having bought it. You toss the broken ziplock bag into the drain."; ], has animate; Object owl "great horned owl" bird_cage with description "It's a raptor. It's nocturnal. It looks sleepy, but anxious to get away.", name 'owl' 'great' 'horned' 'raptor' 'bird' 'nocturnal' 'sleepy' 'anxious' 'feathers' 'talons' 'jesses' 'thin' 'leather' 'straps' 'wing' 'wings' 'beak' 'talon' 'wilbur', life [; ask, tell, answer, order: "The owl ignores you."; ], before [; hear: "You hear a shifting of feathers."; take: if (self in woods_trees) "You can't reach the owl."; else "If you take the owl off your glove Its talons will scratch you."; drop: "You'd better not let it loose in the store."; ], each_turn [; if (location == street4 && owl in glove) {print "^As soon as you leave the pet shop and bring the owl into the open air, it begins to flap its wings. You aren't experienced in the handling of raptors and it gets away from you easily. It glides silently over the gas station and disappears into the woods. You're sad to see it go but you aren't disappointed. It has its freedom now and you don't have anywhere to keep it anyway.^"; move self to woods_trees;} ], has animate; Array beeline -> e_obj e_obj e_obj e_obj 0 0 0; moveclass dog "black lab" square_cage with description "You're getting the definite impression that this dog is of abnormal intelligence just by looking at it.", before [; take: if (self in square_cage) "The large cage isn't open."; ], before_action [; if (self in street4) move track to street4; if (self in street3) move track to street3; if (self in street2) move track to street2; if (self in street1) move track to street1; ], life [; give: if (noun == bagel) "The dog sniffs it, then looks away, disinterested."; if (noun == biscotti) move biscotti to limbo; if (noun == biscotti) "The dog wolfs it down with enthusiasm."; ask, tell, answer, order: "Four-Feet looks at you and cocks his head."; ], orders [; Fetch: if (noun == newspaper && newspaper in debris && self in crack) {move newspaper to cell; move rabbit to cell; "Four-Feet drags the yellowed newspaper over to you and the stuffed rabbit drags along with it.^^Four-Feet goes after the hook. The crack is just barely wide enough to allow him to squeeze through.";} else if (noun == newspaper && newspaper notin debris && self in crack) {print "Four-Feet runs over to the yellowed newspaper, picks it up in his mouth, carries it over to you, and drops it at your feet.^^Four-Feet goes after the hook. The crack is just barely wide enough to allow him to squeeze through.";} else if (noun == newspaper && newspaper notin debris) "Four-Feet runs over to the yellowed newspaper, picks it up in his mouth, carries it over to you, and drops it at your feet."; else "Four-Feet glances around, then looks at you and cocks his head."; ], name 'dog' 'black' 'lab' 'four' 'feet' 'four-feet' 'paw' 'paws' 'intelligent', time_left, time_out [; stopdaemon(dog); move track to limbo; ], each_turn [; if (self notin crack && hook in crack) {move self to crack; "^Four-Feet goes after the hook. The crack is just barely wide enough to allow him to squeeze through.";} ], has male animate; Array patrol -> ne_obj n_obj ne_obj e_obj e_obj n_obj s_obj e_obj e_obj n_obj s_obj e_obj se_obj s_obj sw_obj ne_obj e_obj w_obj n_obj nw_obj w_obj w_obj w_obj w_obj w_obj sw_obj s_obj sw_obj; moveclass cop "mad cop" wilderness with description "The cop has a savage and unnatural gleam in his eyes.", name 'cop' 'police' 'policeman' 'man' 'fiend' 'gleam' 'eyes' 'eye' 'savage' 'unnatural' 'crazed' 'mad' 'maddened' 'fury' 'madness' 'officer' 'insanity' 'tire' 'iron' 'crazy' 'furious' 'insane' 'psychotic', article "the", time_left, time_out [; if (player in cell) {deadflag = 1; "^The cop turns and grins, as if just remembering that you exist. He draws his gun and keeps firing till you are far past dead."; } else if (player in backyard) {deadflag = 1; "^The cop emerges from the cell, grins at you, as if just remembering that you exist, draws his gun and keeps firing till you are far past dead.";} else {move self to backyard; startdaemon (cop);} ], life [; throwat, attack: "You would be no match, in physical combat, for the cop's mad fury."; ask, tell, answer, order: "Your words don't seem to register."; ], before_action [; if (self in cliff) {move spot to cliff; move mo_c to wilderness;} if (self in clearing) move spot to clearing; if (self in wood_path) move spot to wood_path; if (self in dirt_rd1) move spot to dirt_rd1; if (self in dirt_rd2) move spot to dirt_rd2; if (self in street1) move spot to street1; if (self in home) move spot to home; if (self in street2) move spot to street2; if (self in street3) move spot to street3; if (self in library_steps) {move spot to library_steps; move dropoff to wilderness;} if (self in street4) move spot to street4; if (self in street5) move spot to street5; if (self in junction) move spot to junction; if (self in cop_station) move spot to cop_station; if (self in backyard) {move spot to backyard; move mo_c to limbo; move dropoff to limbo;} if ((player in cliff && self in cliff) || (player in clearing && self in clearing) || (player in wood_path && self in wood_path) || (player in dirt_rd1 && self in dirt_rd1) || (player in dirt_rd2 && self in dirt_rd2) || (player in street1 && self in street1) || (player in home && self in home) || (player in street2 && self in street2) || (player in street3 && self in street3) || (player in library_steps && self in library_steps) || (player in street4 && self in street4) || (player in street5 && self in street5) || (player in junction && self in junction) || (player in cop_station && self in cop_station) || (player in backyard && self in backyard)) {deadflag = 1; "^The cop runs at you with the tire iron raised. Before he reaches you, he sends it flying, whirling through the air...";} ], after_action [; if ((player in clay && self in clay) || (player in clearing && self in clearing) || (player in wood_path && self in wood_path) || (player in dirt_rd1 && self in dirt_rd1) || (player in dirt_rd2 && self in dirt_rd2) || (player in street1 && self in street1) || (player in home && self in home) || (player in street2 && self in street2) || (player in street3 && self in street3) || (player in library_steps && self in library_steps) || (player in street4 && self in street4) || (player in street5 && self in street5) || (player in junction && self in junction) || (player in cop_station && self in cop_station) || (player in backyard && self in backyard)) {deadflag = 1; "^The cop runs at you with the tire iron raised. Before he reaches you, he sends it flying, whirling through the air...";} ], has animate male; object dark_man "Dark Man" cell with description [; print "The statue is larger than life but the proportions indicate that it was meant to represent a short, stalky man. He is dressed in some type of pre-medieval, european garb. There is a short scabbard with a sheathed sword at his belt. The statue has a strong presence that you can't quite attribute to the workmanship alone, which is rough and not very detailed but is realistic in all other ways. The stone it's carved out of is pure black.^"; if (self in cell && dog notin cell && dog notin crack && dead_dog notin cell) "^You are getting the distinct feeling that the Dark Man somehow knows that the future is hopeless for you."; else if (self in street4 && rabbit notin debris && rabbit notin crack && rabbit notin cell) "^You can't imagine how a large, heavy statue could have overtaken you and gotten here before you. It looks southward, beyond the gas station, and seems to have grown enormously taller."; else if (self in street4) "^You can't imagine how a large, heavy statue could have overtaken you and gotten here before you. It looks southward, beyond the gas station, and seems to have grown enormously taller.^^You are getting the distinct feeling that the Dark Man somehow knows that the future is hopeless for you."; else if (self in cliff && cop notin limbo) "^The Dark man has moved again.^^You are getting the distinct feeling that the Dark Man somehow knows that the future is hopeless for you."; else if (self in cliff) "^The Dark Man has moved again. It throws a pointed stare at the patch of clay."; ], name 'dark' 'man' 'statue' 'garb' 'pre-medieval' 'european' 'scabbard' 'sheathed' 'sword' 'belt' 'stone' 'pure' 'black' 'rough', life [; ask, tell, answer, order: "The Dark Man responds with stony silence."; ], article "the" has animate; [ Initialise; titlepage (); lookmode = 2; location = Library_steps; move worm_book to player; move bag to player; player.description = "Your clothes are old but clean."; "^^^You were there for hours, pouring over massive volumes, until they sent you out and locked the door. You'd like to continue reading the book you checked out right away but you remember, now, that last night your last light bulb at your home blew, leaving you in the pitch dark.^^The bottom edge of the sun can be seen resting on the horizon.^^"; ]; [ Deathmessage; if (deadflag == 3) print "You have lost your sanity"; if (deadflag == 4) print "THE END"; ]; [ Titlepage i; @erase_window - 1; style bold; center (" S^( S^ @@92/ s^ _l @@92/ /@@92||^ @@92 / / @@92|^ |_ / @@92^ | | # |^==================================================^B E N E A T H:^^"); style roman; center (" a Transformation ^^^^" ,20 ,1); style bold; print "Press any key to begin.^^"; style roman; @read_char 1 -> i; @erase_window - 1; ]; Include "Grammar"; Include "Info"; !!! TOPICS !!! Object Topics; Topic stregoatla "Stregoicavar" Topics with name 'town' 'stregoicavar' has transparent; Topic stumpatla "log" Topics with name 'stump' 'log' 'canoe' 'dugout' 'great' 'clearing' 'giant' has transparent; Topic tree "tree" Topics with name 'tree' 'trunk' has transparent; Topic gonar "Gonar" Topics with name 'gonar' 'sleeper' 'picts' 'ancient' 'sleeping' 'man' has transparent; Topic you_atla "Atla" Topics with name 'atla' 'ghost' 'spirit' 'witch' 'woman' 'of' 'dagon' 'moor' 'dagon-moor' 'ruin' 'stone' 'cliff' 'cliffs' 'clearing' 'circular' 'indent' 'in' 'the' 'earth' has transparent; Topic b_stone "black stone" Topics with name 'black' 'stone' 'lump' has transparent; Topic bran_morn "Bran Mac Morn" Topics with name 'bran' 'mac' 'morn' 'dark' 'man' 'statue' 'spirit' 'king' 'of' 'the' 'picts' 'pict' has transparent; Topic wormsatla "worms" Topics with name 'worm' 'worms' 'of' 'the' 'earth' has transparent; Topic lab "dog" Topics with name 'dog' 'lab' 'black' 'four' 'feet' 'four-feet' 'name' 'feets' 'feet^s' 'labs' 'lab^s' 'dogs' 'dog^s' 'four-feets' 'four-feet^s' 'of' 'the'; Topic stregopet "Stregoicavar" Topics with name 'town' 'stregoicavar'; Topic man_name "owner of the pet store" Topics with name 'name' 'bernard' 'owner' 'owner^s' 'man' 'man^s' 'store' 'store^s' 'pet' 'old' 'of' 'the'; Topic smell "sense of smell" Topics with name 'smell' 'sense' 'of'; Topic fetch "fetch" Topics with name 'fetch' 'fetching' 'newspaper' 'smart' ; Topic keen "keen" Topics with name 'keen'; Topic salesman "salesman" Topics with name 'salesman'; Topic price "price" Topics with name 'price' 'prices' 'tag' 'tags' 'sticker'; Topic expense "expense" Topics with name 'expense' 'soaring' 'parrot'; Topic horned_owl "owl" Topics with name 'owl' 'great' 'horned' 'bird' 'raptor' 'wilbur' 'birds' 'bird^s' 'owls' 'owl^s' 'raptors' 'raptor^s' 'name' 'of' 'the' 'hawking' 'gauntlet'; Topic fishy "fishy" Topics with name 'fish' 'tadpole' 'tiny'; !!! VERBS !!! [ AboutSub; style bold; print "^About This Game"; style roman; print ":^"; style underline; print "Beneath"; style roman; print " is the first interactive fiction I have written. It was inspired by, and contains elements from, several stories by Robert E. Howard; namely, "; style underline; print "Worms of the Earth"; style roman; print ", "; style underline; print "The Dark Man"; style roman; print ", "; style underline; print "The Lost Race"; style roman; print ", and "; style underline; print "The Black Stone"; style roman; print "--Robert E. Howard was a writer who wrote numerous short stories, in a wide range of genres. He is best known as the creator of Conan. None of the stories just listed, however, are Conan stories.^^This game is played mainly like most other IF. If you've never played IF before, the basic idea is that you type commands to solve puzzles and/or advance the storyline. For each turn, decide what you want to do and phrase it in a simple way, usually beginning with a verb. The best way to learn how to play IF is by trying it. Read each new text carefully. Examine everything. There are often subtle clues. Below is a list of "; style underline; print "some"; style roman; print " of the commands that "; style underline; print "may"; style roman; print " be useful in "; style underline; print "Beneath"; style roman; print "--words listed together, divided by a slash, aren't necessarily interchangeable--the actions they perform can be the same, similar, or opposite. You should know the first seven lines in the list below but it's not necessary that you remember all the verbs. Type anything that seems logical. If the game doesn't recognize what you're attempting to do, no harm done.^^go in direction: NORTH, SOUTH, SOUTHEAST, UP, DOWN, etc.^INVENTORY^TELL (animate being) ABOUT/TO (topic)^ASK (animate being) ABOUT/FOR (topic)^LOOK^LOOK AT/EXAMINE/LOOK IN/LOOK ON/LOOK UNDER (object or animate being)^WAIT^LISTEN TO (object or animate being)^TOUCH (object or animate being)^ATTACK (object or animate being) WITH (object)^THROW (object) AT (object or animate being)^GIVE (object) TO (animate being)^TAKE/DROP (object)^PUSH/PULL (object)^PUT (object) IN/ON (object)^OPEN/CLOSE (object)^WEAR/REMOVE (object)^SIT IN/SIT ON/ENTER (object)^STAND/EXIT^repeat last action: AGAIN^undo last turn (can't undo successive turns): UNDO^^"; style underline; print "Beneath"; style roman; print " starts in VERBOSE mode, which means a description of your location will be printed every time you move to a different location. BRIEF mode will print a description of your location only if you haven't been there before. SUPERBRIEF mode will never print a description of your location until you LOOK. Type VERBOSE, BRIEF, or SUPERBRIEF to switch to the corresponding mode.^^If, at any time, you would like to view the walkthrough, type WALKTHRU.^^It is possible, and even probable, that at some point you will put the game into an unwinnable state; so, there may be times when you will want to restart or restore, and then try doing things differently, or in a different order. Keep an eye out for signs, or clues, that hint that the game has become unwinnable.^^"; style bold; print "Notes About Interpreters"; style roman; print ":^Though it's of minor importance, it is preferable with "; style underline; print "Beneath"; style roman; print ", if you have the choice, to use an interpreter that displays italics rather than underlining. If your interpreter uses italics the title in this paragraph should be italicized.^^The tree and house on the title page will not display correctly on some interpreters.^^"; style bold; print "Credits"; style roman; print ":^Graham Nelson for Inform, Daniel Barkalow for Scoper.h, Jesse Burneko for Info.h, Neil Brown and Alan Trewartha for Moveclass.h, Jim Fisher for orcenter.h.^^"; style bold; print "Shortly after the 2007 IF comp ends there will be a webpage about this game at stregoicavar.com"; style roman; print ".^^^^"; style bold; print "You can now proceed with the game. Type LOOK to see the description of what you can see from the "; print (name) location; style roman; ".^^"; ]; Verb 'about' 'help' 'instruct' * -> About; [ WalkthroughSub; style bold; print "^Warning"; style roman; print ":^It is better to figuring things out for yourself. I have included, however, in the walkthrough, some actions that aren't necessary in getting to the winning end, but which will bring up text that contains important clues and/or important parts of the storyline.^^Do you want to see the walkthrough? "; if (YesOrNo ()) {style bold; print "^^Walkthrough"; style roman; print "--^inventory^examine book^south^west^northwest^look in cage^ask man about lab^ask man about sense of smell^ask man about keen^ask man about expense^open bag^give fifty cent piece to man^give dime to man^southeast^east (four times)^take hook^west^north^tie rope to hook^pull nail^take board^south^west (four times)^take glove^^Do you want to see more of the walkthrough? "; if (YesOrNo ()) {print "^east^northwest^examine box^take box^listen to box^wear glove^ask man about bird^give bill to man^southeast^northeast^examine blackboard^give nickel to clerk^sit in chair^open book^west^southwest^south^drop hook^southwest^southeast^read page fifty-seven^look in crack^throw hook through crack^tell dog to fetch newspaper^^Do you want to see more of the walkthrough? "; if (YesOrNo ()) {print "^take hook^take rabbit^examine rabbit^wait (seven times)^west^northeast^north^northeast^east^drop rabbit^east^throw hook at railing^up^look (four times)^down^north^take rabbit^south^swing rope^take hook^west^wait (four times)^drop rabbit^west^^Do you want to see more of the walkthrough? "; if (YesOrNo ()) {print "^wait^wait^wait^east^take file^east (four times)^southeast^south^east^wake sleeper^west^wait (four times)^examine branch^southwest^northeast^east^examine dark man^throw hook at clay^down^examine movement^listen to murmur^file rusty nail with file^attack movement with board^southeast^^Do you want to see more of the walkthrough? "; if (YesOrNo ()) {print "^south^remove hump^take lump^ask atla about atla^ask atla about gonar^ask atla about bran^ask atla about stregoicavar^wait^wait^read last page^ask atla about worms^ask atla about stump^ask atla about lump^take black stone^look in black stone^examine self^stand^north^dig in clay^^";}}}}} ]; Verb 'walkthrough' 'walkthru' 'solution' * -> Walkthrough; [ HearSub; "You hear nothing unexpected."; ]; [ HearallSub; "Your keen ears pick up a multitude of sounds. You'll have to focus on something specific if you want to cut through the chaos."; ]; Extend 'listen' replace * -> Hearall * 'to' noun -> Hear; Extend 'dig' *noun -> Dig *'in' noun -> Dig; Verb 'burrow' 'tunnel' *'in' noun -> Dig; [ BludgeonSub; "With your bare hands?"; ]; Verb 'bludgeon' *noun -> Bludgeon *noun 'with' noun -> Attack; Extend 'attack' * noun 'with' noun -> Attack; [ TalkSub; "You move your mouth but nothing comes out."; ]; verb 'talk' * 'to' creature -> Talk * 'about' topic 'to' creature -> Answer * 'to' creature 'about' topic -> Answer reverse * 'to' creature 'about' noun -> Answer reverse * 'about' noun 'to' creature -> Answer; extend 'answer' * 'to' creature -> Talk * creature -> Talk * topic 'to' creature -> Answer * noun 'to' creature -> Answer * 'to' creature 'about' topic -> Answer * 'to' creature 'about' noun -> Answer * noun -> Answer * topic -> Answer; [ SharpenSub; "That would be futile."; ]; [ SharpSub; "With your bare hands?"; ]; verb 'sharpen' 'file' *noun -> Sharp *noun 'with' noun -> Sharpen; Extend 'swing' *noun 'at' noun -> Attack reverse *noun -> Swing; Extend 'throw' *noun 'through' noun -> ThrowAt; [ FetchSub; if (noun has pluralname) {print "What fetching "; print (name) noun; "!";} else {print "What a fetching "; print (name) noun; "!";}]; Verb 'fetch' 'retrieve' *noun -> Fetch *noun 'from' noun -> Fetch; [ UntieSub; "That's not something that can be untied."; ]; Verb 'untie' * noun -> Untie;