; THE CURSE OF ELDOR ; ----------------------------------------------------------------------------- ; Release 3, by Stuart Allen Copyright (C) 1995, 1996. variable DIRECTION_MOVED variable DEATH_PROOVED variable POTION_DRUNK variable DRAGON_PEPPERED variable BREAD_EATEN variable SAILOR_LISTENED variable TAP_POSITION variable DEBRIS_EXAMINED variable INTOXICATION_LEVEL variable SUSTENANCE_LEVEL variable ELDOR_FIGHT variable BIRD_EATING variable MOVEMENT_TIMER variable NAVIGATOR variable PHOTO_TIMER {global_eachturn if grue(location) = here ensure grue has CUSTOM endif if grue(location) != here ensure grue hasnt CUSTOM endif set there to grue(location) increment MOVEMENT_TIMER if MOVEMENT_TIMER = 3 execute "global_wander" set MOVEMENT_TIMER to 0 endif if grue has CUSTOM if grue(location) != here write "The retired grue heads " execute "global_to_direction" endif if grue hasnt CUSTOM if grue(location) = here write "The retired grue enters from " execute "global_from_direction" endif increment PHOTO_TIMER if PHOTO_TIMER = 14 if grue(location) = here write "The grue produces a camera from his pocket, holds it out at an " write "arms length, then proceeds to take a few happy snaps with " write "himself in the foreground." return endif if grue(location) = log_cabin if kryten(location) = log_cabin if MOVEMENT_TIMER = 2 write "The grue stands by the fire, taking a moment to warm his " write "hands." return endif if grue(location) = ledge if kryten(location) = ledge if MOVEMENT_TIMER = 2 write "The grue stands towards the entrance of the tunnel, peers " write "down its length then shrugs nervously." return endif if grue(location) = tower if kryten(location) = tower if MOVEMENT_TIMER = 2 write "The grue takes out his camera and takes a photo of the " write "mystical bird." return endif if monk has CUSTOM write return "Seeing you appear the monk nods at you knowingly." return ensure monk hasnt CUSTOM endif decrement SUSTENANCE_LEVEL if SUSTENANCE_LEVEL = 30 write return "You are beginning to feel hungry." return endif if SUSTENANCE_LEVEL = 20 write return "You are now very, very hungry." return endif if SUSTENANCE_LEVEL = 10 write return "You are now completely famished." return endif if SUSTENANCE_LEVEL = 0 write return "Collapsing to the ground you lay unconscious for several " write "hours before eventually dying of hunger." return execute "global_death" endif if SAILOR_LISTENED > false increment SAILOR_LISTENED if SAILOR_LISTENED = 10 set bow(north) to deck_sea set stern(south) to deck_sea set galley(up) to deck_sea set dock(west) to nowhere if kryten(location) >= dock if kryten(location) < deck_sea execute "global_setsail" write return write "At moments notice the order is given for the gang plank " write "to be raised and the ship slowly begins to set sail. " write "As it leaves the sheltered area of the docks " write "it begins to rock in the moderate swell of the northern " write "sea." return if kryten(location) >= deck_sea if kryten(location) <= nest_sea write return look endif if SAILOR_LISTENED = 30 set bow(north) to deck_cove set stern(south) to deck_cove set galley(up) to deck_cove if kryten(location) >= stern if kryten(location) <= nest_sea execute "global_arrive" write return "Finaly, after you long voyage at sea, the ship comes " write "to a halt on the beach of a small island." return points 5 if kryten(location) >= deck_cove if kryten(location) <= nest_cove write return look endif if kryten(location) >= balloon_sea if kryten(location) <= balloon_castle write "The hot air balloon is blown eastward." return return if kryten(location) = balloon_castle write "Much to your distress the hot air balloon blows straight into " write "the side of one of the range's highest mountains sending you " write "tumbling down is rocky face." return execute "global_death" endif if kryten(location) = balloon_mountains execute "global_frommountains" look endif if kryten(location) = balloon_forest execute "global_fromforest" look endif if kryten(location) = balloon_sea execute "global_fromsea" look endif if kryten(location) = balloon_beach if TAP_POSITION = true execute "global_frombeach" look endif if kryten(location) = river move falls to river endif if kryten(location) = beh_waterfall move falls to beh_waterfall endif if kryten(location) = ben_waterfall move falls to ben_waterfall endif if kryten(location) = waterfall move falls to waterfall endif if kryten(location) = graveyard move door to graveyard endif if kryten(location) = crypt move door to crypt endif if kryten(location) = stern move trap_door to stern ensure trap_door hasnt OUT_OF_REACH endif if kryten(location) = hold move trap_door to hold ensure trap_door has OUT_OF_REACH endif if DRAGON_PEPPERED != false increment DRAGON_PEPPERED if DRAGON_PEPPERED = 2 if kryten(location) = lair write return write "The dragon opens it's mouth wide and shuts it's eyes tight in" write "preparation for a sneeze that you don't want to be present " write "for." return endif if DRAGON_PEPPERED = 3 if kryten(location) = lair write return write "The dragon's lungs inhale vast quantities of air like two " write "enormous bellows as it prepares to sneeze." return endif if DRAGON_PEPPERED = 4 if kryten(location) = lair write return write "The dragon sneezes unleashing a huge ball of flame. " write "Unfortunately your front row seat of the spectacle has left you " write "worse for wear, much worse..." return execute "global_death" endif if DRAGON_PEPPERED = 4 if kryten(location) >= ledge if kryten(location) <= tunnel write return write "A great roar comes from the west followed by a strong " write "gust of hot air." return return write quote "Bless me," quote " a surprisingly high pitched voice " write "chirps from within the lair." return endif if DRAGON_PEPPERED = 4 set DRAGON_PEPPERED to 0 endif if kryten(location) >= stern if kryten(location) <= beach if uniform hasnt WORN execute "global_no_uniform" endif if kryten(location) >= stern if kryten(location) <= beach if crystal childof player execute "global_crystal_stolen" endif if kryten(location) >= stern if kryten(location) <= beach if knife childof player if knife has CUSTOM execute "global_blood_spotted" endif if POTION_DRUNK > 0 increment POTION_DRUNK if POTION_DRUNK = 5 write return write "Gradually the feeling of strength you acquired from the potion " write "begins to subside." return set POTION_DRUNK to 0 endif if INTOXICATION_LEVEL > 0 decrement INTOXICATION_LEVEL if INTOXICATION_LEVEL = 0 write return "You begin to feel sober again." return endif if kryten(location) = main_street if mug childof player write return write "As you step out into the street the bartender comes running out " write "of the tavern and takes back his mug, then returns inside." return move mug to limbo endif if kryten(location) = study if ELDOR_FIGHT = 0 write return "Looking up as you enter, a look of anger comes of Eldor's " write "face. Without hesitation he thrusts a finger in your direction " write "from which a bright bolt of lightening leaps " if amulet has WORN write "stiking the amulet which appears to absorb it's energy. " write "Trying hard to look unpreturbed, Eldor places the palms " write "of his hands on his desk and stares at you expectantly." return endif if kryten(location) = study if ELDOR_FIGHT = 0 increment ELDOR_FIGHT if amulet hasnt WORN write "striking you in chest. Stunned, you stagger to you feet " write "and in a state of confusion and panic step back towards " write "the exit. Sweat dripping from you brow you attempt to " write "scramble back down the stairs but not before a second " write "bolt causes you to loose you grip and fall to your death " write "on the cold stone floor of the tower below." return execute "global_death" endif if BIRD_EATING != false decrement BIRD_EATING if BIRD_EATING = false set tower(up) to nowhere move fruit to limbo describe bird as "An enourmous mystical bird is perched on the bottom step of the stairs." if kryten(location) = tower write return "Having finished the fruit, the enourmous bird goes " write "back to guarding the stairs." return endif } {global_wander if there = junction if DIRECTION_MOVED = 5 if NAVIGATOR = false toggle NAVIGATOR move grue to track_west set DIRECTION_MOVED to 7 break endif if there = junction if DIRECTION_MOVED = 5 if NAVIGATOR = true toggle NAVIGATOR move grue to track_east set DIRECTION_MOVED to 3 break endif if there = junction if DIRECTION_MOVED = 3 move grue to path set DIRECTION_MOVED to 5 break endif if there = junction if DIRECTION_MOVED = 7 move grue to path set DIRECTION_MOVED to 5 break endif if there = path if DIRECTION_MOVED = 5 move grue to forest set DIRECTION_MOVED to 3 break endif if there = ledge move grue to m_path set DIRECTION_MOVED to 5 break endif if there = m_path if DIRECTION_MOVED = 5 move grue to mountains set DIRECTION_MOVED to 3 break endif if there = mountains if DIRECTION_MOVED = 3 set DIRECTION_MOVED to 5 move grue to trail break endif if DIRECTION_MOVED = 1 if there(north) != false set there to there(north) move grue to there break endif if DIRECTION_MOVED = 2 if there(northeast) != false set there to there(northeast) move grue to there break endif if DIRECTION_MOVED = 3 if there(east) != false set there to there(east) move grue to there break endif if DIRECTION_MOVED = 4 if there(southeast) != false set there to there(southeast) move grue to there break endif if DIRECTION_MOVED = 5 if there(south) != false set there to there(south) move grue to there break endif if DIRECTION_MOVED = 6 if there(southwest) != false set there to there(southwest) move grue to there break endif if DIRECTION_MOVED = 7 if there(west) != false set there to there(west) move grue to there break endif if DIRECTION_MOVED = 8 if there(northwest) != false set there to there(northwest) move grue to there break endif if DIRECTION_MOVED = 9 if there(up) != false set there to there(up) move grue to there break endif if DIRECTION_MOVED = 10 if there(down) != false set there to there(down) move grue to there break endif if DIRECTION_MOVED = 11 if there(in) != false set there to there(in) move grue to there break endif if DIRECTION_MOVED = 12 if there(out) != false set there to there(out) move grue to there break endif if there(north) != false set there to there(north) move grue to there set DIRECTION_MOVED to 1 break endif if there(northeast) != false set there to there(northeast) move grue to there set DIRECTION_MOVED to 2 break endif if there(east) != false set there to there(east) move grue to there set DIRECTION_MOVED to 3 break endif if there(southeast) != false set there to there(southeast) move grue to there set DIRECTION_MOVED to 4 break endif if there(south) != false set there to there(south) move grue to there set DIRECTION_MOVED to 5 break endif if there(southwest) != false set there to there(southwest) move grue to there set DIRECTION_MOVED to 6 break endif if there(west) != false set there to there(west) move grue to there set DIRECTION_MOVED to 7 break endif if there(northwest) != false set there to there(northwest) move grue to there set DIRECTION_MOVED to 8 break endif if there(up) != false set there to there(up) move grue to there set DIRECTION_MOVED to 9 break endif if there(down) != false set there to there(down) move grue to there set DIRECTION_MOVED to 10 break endif if there(in) != false set there to there(in) move grue to there set DIRECTION_MOVED to 11 break endif if there(out) != false set there to there(out) move grue to there set DIRECTION_MOVED to 12 break } {global_to_direction if DIRECTION_MOVED = 1 write "north." return break endif if DIRECTION_MOVED = 2 write "northeast." return break endif if DIRECTION_MOVED = 3 write "east." return break endif if DIRECTION_MOVED = 4 write "southeast." return break endif if DIRECTION_MOVED = 5 write "south." return break endif if DIRECTION_MOVED = 6 write "southwest." return break endif if DIRECTION_MOVED = 7 if here = mountains write "west along a barely identifiable path." return break endif if DIRECTION_MOVED = 7 write "west." return break endif if DIRECTION_MOVED = 8 write "northwest." return break endif if DIRECTION_MOVED = 9 write "up." return break endif if DIRECTION_MOVED = 10 write "down." return break endif if DIRECTION_MOVED = 11 write "inside." return break endif if DIRECTION_MOVED = 12 write "outside." return } {global_from_direction if DIRECTION_MOVED = 1 write "the south." return break endif if DIRECTION_MOVED = 2 write "the southwest." return break endif if DIRECTION_MOVED = 3 write "the west." return break endif if DIRECTION_MOVED = 4 write "the northwest." return break endif if DIRECTION_MOVED = 5 write "the north." return break endif if DIRECTION_MOVED = 6 write "the northeast." return break endif if DIRECTION_MOVED = 7 write "the east." return break endif if DIRECTION_MOVED = 8 write "the southeast." return break endif if DIRECTION_MOVED = 9 write "above." return break endif if DIRECTION_MOVED = 10 write "below." return break endif if DIRECTION_MOVED = 11 write "outside." return break endif if DIRECTION_MOVED = 12 write "inside." return } {global_arrive loop if noun3(location) = deck_sea move noun3 to deck_cove endif endloop loop if noun3(location) = nest_sea move noun3 to nest_cove endif endloop } {global_setsail loop if noun3(location) = deck_docked move noun3 to deck_sea endif endloop loop if noun3(location) = nest_docked move noun3 to nest_sea endif endloop } {global_intro clear write quote write "Who can save us now!" quote " the chief councillor cries as he peers " write "at the frightened, fire lit faces that fill the village's hall. " quote write "For twenty days now the black rain has fallen, slowly killing the " write "forest and threatening the lively hood of all those who inhabit it." write quote " Stepping carefully around a large stone pillar near the back " write "of the hall you slowly make your way to the front of the crowd. " quote write "Unless someone can defeat Eldor and recover the artefacts necessary " write "to lift the curse we will have no choice but to leave our home land " write "forever" quote " the councillor continues pulling his hood back from " write "his grim face. " quote "Who will be that someone?" quote return return write "Pausing for a while, the councillor pulls a leather pouch from " write "his pocket and holds them up for all to see, " quote "Who ever can " write "return Eldor's head to me along with the artefacts we need to lift " write "the curse shall receive these coins as their reward. It is not much, " write "but the best we can do. May your journey be safe and our village soon " write "be free to live in peace once more." quote return return return more clear write bold centre "T H E C U R S E O F E L D O R" write plain return centre "Adventure written by Stuart Allen (stuart@perf.no.itg.telecom.com.au)" centre "Release 3 Copyright (C) 1995 - 1996" write plain return return return return set CURRENT_PLAYER to kryten set kryten(location) to hall set SUSTENANCE_LEVEL to 100 set MAX_CARRIED to 45 look } location hall "Village Hall" west village out village no_go "The only exit from here is west, out into the street." {look write "A large open fire both lights and warms the village hall. Wide stone " write "pillars rise tall and strong from the floor to meet the ceiling high " write "above your head where the sounds a young birds can be heard calling " write "from their nests hidden in the shadows. A polished wooden podium " write "stands at the far end of the hall with several rows of benches before " write "it. A set of large double doors stand open to the west." return if kryten has SITTING write "(You are sitting on the benches.)" return } {listen write "You can hear the sounds of young birds calling from their nests." return } object nest a plain nest has OUT_OF_REACH inventory "nest" synonym nests nest {examine write "The bird's nests are hidden high up in the shadows." return } object bench a wooden bench inventory "wooden bench" mass scenery synonym benches bench {examine write "The wooden benches do not look particularly comfortable." return } {sit_on if kryten has SITTING write "You already are sitting." return break endif write "You plonk yourself down on the end of one of the benches and wriggle " write "around until you are still no longer comfortable." return ensure kryten has SITTING } {look_under write "Nothing but dust." return } object fire an open fire inventory "open fire" mass scenery synonym hearth fire {examine write "The bright orange flames dance hipnotically as you stare deeper and " write "deeper into their heart." return } object pillar a tall pillar inventory "tall pillar" mass scenery synonym pillars pillar {look_behind write "Looking behind the pillar you see nothing other than footsteps in " write "the dust from when you were standing there." return } {examine write "The pillars are made from large stone blocks and rise from the floor " write "to the ceiling almost thirty feet above your head." return } object pouch a leather pouch inventory "leather pouch" starts childof councillor {ask_for write quote "You know what is required from you if you wish to earn the " write "coins" quote " says the councillor sternly." return } object councillor a plain councillor has ANIMATE described "The councillor is here, standing by the podium." inventory "councillor" mass scenery {tell_about_eldor if eldor has DEAD if DEATH_PROOVED = false write "You tell the councillor the tale of your valiant battle with " write "Eldor resulting in his death to which he demands proof." return write return quote "To begin the ceremony required to lift the curse " write "while Eldor is still alive would undoubtedly lead to our " write "destruction" quote " the councillor goes on to explain. " quote write "Therefore it would be irresponsible of me to allow it without " write "conclusive proof of his demise." quote return break endif if eldor has DEAD if DEATH_PROOVED = true write "You enthusiastically recall you battle with Eldor in great " write "detail." return break endif write quote "So, I hear this Eldor is a pretty bad dude" quote " you inform " write "the councillor." return } {ask_for_clove_override write "I think I should hang onto it for now." return } {ask_for_staff_override write "I think I should hang onto it for now." return } {ask_for_scroll_override write "I think I should hang onto it for now." return } {examine write "The councillor is a well respected man throughout the whole forest. " write "For the most part he rules the land with little intervention, allowing " write "the people to live their lives with as little interference as " write "possible. On the other hand, however, he is also a kind man, willing " write "to help where ever and when ever he can." return } {listen_to write "You can not make out what the councillor is saying to the historian, " write "but from the grave tone of his voice, you are sure he is discussing " write "the curse." return } {attack_with_sword write "As you draw you sword six royal guards appear from nowhere and have " write "you pinned to the ground in seconds. Within a week you are tried and " write "found guilty for the attempted murder of the Councillor. Life from " write "this point onward is pretty rough until one day, at the Councillors " write "own command, you are hung." return return execute "global_death" } object historian a village historian has ANIMATE described "The village historian is here talking to the councillor." inventory "historian" mass scenery {ask_about_eldor write "Eldor is an evil man. He placed the curse on our village through spite " write "of our peaceful existence. Basically he's just a real smeg head." return } {examine write "The historian an old man, dressed humbly in a dark brown cloak." return execute "global_contents" } {listen_to write "The historian is desperately trying to reassure the councillor that " write "Eldor will be defeated and that the curse will be lifted from the " write "land before it is too late." return } {attack_with_sword write "Before you have even fully drawn your sword you notice the historian " write "staring you straight in the eyes. You stand mesmerised by his gaze, a " write "strange and unfamiliar feeling of peace and harmony over comes you, " write "causing you to wonder why you would ever even consider hurting such a " write "good friend. With a knowing smile the historian returns to his " write "conversation with the councillor." return } {talk_to write "Politely excusing yourself to the councillor, you press the historian " write "for information on you quest." return return " " quote write "In order to lift the curse once Eldor has been defeated, three " write "artefacts will be required. The first, a clove of the herb Hujara, can " write "be found growing wild in the northern regions of the forest. The last " write "two however," quote " the historian informs you, " quote "I know not " write "of their whereabouts. The Scroll of Summoning is said to have been " write "hidden by the Druids in order to 'save it from corruption', what ever " write "they mean by that" quote " the councillor mutters something inaudible " write "under his breath then continues, " quote "It has a magic far " write "greater that our own, and without it we will have no chance of " write "conjuring up the power necessary to break the curse. Finally, we will " write "need Adreal's staff. Last seen over a century ago, it was lost when " write "Adreal was knocked from his horse during the goblin invasion of 912 " write "and no one has seen it since. Without it our magic will have no form " write "and will dissipate long before we are able to channel it to our cause." write quote return if note childof historian write return "Reaching into his pocket, the historian takes out a note " write "and places it one the podium for you to take then turns back to the " write "councillor." return move note to podium endif } {kiss write "Flattered, the historian gives you a strange smile." return } object note a small note inventory "small note" described "There is a small note resting here." starts childof historian mass 1 {read execute "examine_note" } {examine write "The note is a small piece of parchment with the following scrawled " write "on it..." return return write " A clove of Hujara." return write " Adreal's staff." return write " The Scroll of Summoning." return } object podium a polished podium has SURFACE inventory "polished podium" quantity 20 mass scenery {clean write "The podium is already so clean that you can make out your reflection." write return } {examine write "The podium is made from fine maple and is obviously polished on a " write "regular basis with great pride and care." return execute "global_details" } object doors a double door has CLOSABLE LOCKABLE inventory "set of double doors" mass scenery synonym doors door {open write "The double door are already open." return } {close write "The double doors are always left open as all are welcome to meet here." write return } {examine write "The large double doors are wide open inviting anyone to meet here." write return } location village "Village" north road south graveyard east hall west church {look write "You are standing in the centre of the village square. The rough cobble " write "stone ground rises and falls unevenly from the many years of use. The " write "village hall lies to the east while the church's doors stand open " write "to the west. Through the village centre runs a narrow north-south road " write "leading from the graveyard's gates in the south, deep into the forest " write "in the north." return } object cobble some cobble stone inventory "cobble stones" synonym stones stone {examine write "Worn smooth from years of weather and use the cobble stones are now " write "very uneven." return } {take write "Thinking of paving your backgarden are you?" return } location graveyard "Graveyard" north village east nowhere no_east "The door is closed." {look write "This is the village graveyard. Generations of common villagers and " write "gallant heroes alike rest here side by side. Around the various tombs " write "stones a small path weaves it's way east to the front door of a large " write "stone crypt standing tall by the perimeter fence. The only other exit " write "is back north, into the village. " if door hasnt CLOSED write "The heavy stone door leading into the crypt is open." return break endif write "The heavy stone door leading into the crypt is firmly shut." return } object tomb some tomb stone inventory "tomb stones" mass scenery {examine write "The tomb stones tell of the generations of villager's to have been " write "buried here since the village was first settled over five hundred " write "years ago." return } object tumblers some plain tumblers inventory "tumblers" mass scenery {pick_with_wire execute "unlock_with_wire_door" } {examine write "The tumblers are reasonably crude yet sturdy." return } object crypt_obj a stone crypt inventory "stone crypt" mass scenery {examine write "The crypt is obviously that of a nobleman. It's ornately carved " write "gargoyles seem to stare at you as you move about the graveyard. " if door hasnt CLOSED write "The heavy stone door leading into the crypt is open." return break endif write "The heavy stone door leading into the crypt is firmly shut." return } object door a stone door has CLOSABLE LOCKABLE inventory "stone door" mass scenery has CLOSED LOCKED {pick_with_wire execute "unlock_with_wire_door" } {unlock_with_wire write "Inserting the wire into the lock you run it along the tumblers whilst " write "applying pressure on the handle until it unlocks." return ensure door hasnt LOCKED } {lock_with_wire write "You lock the door using the wire." return ensure door has LOCKED } {close_override ensure door has CLOSED ensure crypt has DARK write "The door groans as you push it closed." return set crypt(west) to nowhere set graveyard(east) to nowhere if kryten(location) = crypt if crypt(luminance) = dark write "With the door closed, the crypt is in complete darkness." return endif } {open_override write "With a heave, you pull the door open." return ensure crypt hasnt DARK ensure door hasnt CLOSED set crypt(west) to graveyard set graveyard(east) to crypt } {examine write "A large set of iron tumblers can be seen in the crude lock of the " write "heavy stone door which is currently " if door hasnt CLOSED write "open." return break endif write "closed." return } {knock_on write "Quite predictably, there is no answer." return } location crypt "Crypt" has DARK west nowhere no_west "The door to is closed." {look write "You are standing in the middle of a large windowless crypt. In the " write "centre of the room you can make out a large sarcophagus with a square " write "bronze plate set in the centre of it's heavy stone lid. Brightly " write "coloured banners hang on the walls indicating this to the be the " write "final resting place of a knight of the king's army. There is a large " write "stone door to the west. " if crypt(west) = false write "The door is closed." return break endif write "The door is open." return } object banners some plain banners inventory "brightly coloured banners" mass scenery {examine write "The banners depict scenes from great battles throughout history." return } {look_behind write "For a moment, you thought you saw Elvis." return } object lid a stone lid inventory "stone lid" {open proxy "open sarcophagus" } {close proxy "close sarcophagus" } {examine proxy "examine sarcophagus" } object plate a bronze plate inventory "bronze plate" {read execute "examine_plate" } {examine write "The plate reads as follows..." return return return write " R. I. P." return return write " THALOS 1149-1193" return return write " KNIGHT OF THE KINGS ARMY" return } object sarcophagus a stone sarcophagus has CONTAINER CLOSABLE CLOSED inventory "stone sarcophagus" quantity 25 {examine write "The sarcophagus is made completely from stone with a square bronze " write "plate set in the centre of it's lid. " execute "global_details" } location church "Church" east village up clock_tower go_up "The stairs creek as walk up them." {look write "This is the village church. The only exit from here, other than back " write "east, into the village, is a set of stairs in the corner leading up. " write "A tall monk in a plain brown robe stands next to a battered wooden " write "sign in the corner." return } object stairs_bot a wooden stairs inventory "set of wooden stairs" synonym steps stairs {examine write "The stairs lead up into the church's clock tower." return } {climb proxy "u" } {climb_up proxy "u" } {climb_down write "You are already at the bottom of the stairs." return } object sign a wooden sign inventory "wooden sign" {read execute "examine_sign" } {examine write "The sign reads..." return return write " LIFE INSURANCE POLICIES" return write " 1 GOLD PIECE" return } {take write "Stealing from a church?" return } object monk a plain monk has ANIMATE inventory "monk" {examine write "Something about the monk makes you feel uneasy but you can't quite " write "put your finger on it. " execute "global_contents" } {ask_for_g_coin_override write quote "No way!" return } {ask_for_policy write quote "Give me a gold piece and I will," quote " the monk snaps." return } {attack write "You couldn't... could you?" return } {attack_with_sword write "You couldn't... could you?" return } {attack_with_knife write "You couldn't... could you?" return } {talk_to if policy childof monk write "Pointing to the sign the monk informs you of the dangers of " write "adventuring without the appropriate life insurance." return break endif write "The monk seems oddly disinterested in talking to you." return } object policy an insurance policy described "Lying on the ground is an insurance policy." inventory "insurance policy" starts childof monk {examine execute "read_policy" } {read write "This policy entitles the holder to one (1) resurrection. Upon " write "resurrection you will be transported to our nearest office as " write "soon as the excess payment of one piece of treasure has been payed " write "to your administrating angel." return } object drumstick a turkey drumstick inventory "turkey drumstick" initial "There is a succulent drumstick on one of the tables." described "There is a succulent drumstick here." mass 5 {eat if SUSTENANCE_LEVEL > 120 write "You are not hungry." return break endif increment SUSTENANCE_LEVEL by 30 move drumstick to limbo write "You eat the drumstick." return } location clock_tower "Clock Tower" down church {look write "You are in the top of the Church's clock tower. Straight infront of " write "you an enormous cog turns slowly driven by an equally enormous set " write "of weights. A set of smaller cogs mesh with the main cog filling the " write "room with a loud grinding noise. The only exit is back down the stairs " write "into the church." return } {listen write "It's hard to hear anything over the loud grinding noise of the cogs." write return } object clock a plain clock inventory "clock" {examine write "The clock is made up from a main cog, a set of smaller cogs that mesh " write "with it and a set of weights suspended from a strong chain." return } object stairs_top a wooden stairs inventory "set of wooden stairs" {examine write "The stairs lead down into the church's main hall." return } {climb proxy "d" } {climb_up write "You are already at the top of the stairs." return } {climb_down proxy "d" } object weights an enourmous weights inventory "enourmouns set of weights" {examine write "The enourmous weights are suspended from the main clock mechanism by a " write "strong chain." return } object chain a strong chain inventory "strong chain" mass scenery {examine write "The strong chain suspends two enourmous weights from the main clock write "mechanism." return } {climb write "A nice idea, but quite unneccesary." return } object cogs some small cogs inventory "small cogs" mass scenery synonym smaller small {examine write "The smaller cogs mesh with the main cog to drive the hands on the face." write return } object cog the main cog inventory "main cog" mass scenery {examine write "The main cog of the clock is almost a metre in diameter. It turns on a " write "crudely fashioned wooden shaft and meshed with a set of smaller cogs " write "filling the room with a loud grinding noise. Having seen the inner " write "workings of this town monument you are no longer suprised by the fact " write "that it never seems to show the right time." return } location road "Road" north bridge south village east riverbank_east west riverbank_west {look write "You are on a narrow dirt road leading north out of the village, into " write "the dark lifeless forest. To the north the road crosses a small " write "wooden bridge that spans a slow flowing river while to the east and " write "west grassy fields line it's southern bank." return } object grue a retired grue has ANIMATE inventory "retired grue" described "There is a grue here wearing dark shades and a Hawaiian shirt." starts road mass heavy {kiss write "The grue looks at his feet and blushes." return } {examine write "Quite a site really. Loud baggy shorts that come down to his rather " write "knobly knees clash about as badly as possible with a gaudy Hawaiian " write "shirt. Peering from side to side through dark sun glasses he appears " write "very interested in the surroundings." return } {talk_to write "The grue turns to you smiles, muttering something in what sounds " write "suspiciously like Japanese." return } {attack_with_sword write "The grue pulls out a small can of Mace and sprays you in the face." write return } {attack_with_knife write "The grue pulls out a small can of Mace and sprays you in the face." write return } {attack write "The grue pulls out a small can of Mace and sprays you in the face." write return } location riverbank_east "River Bank (East)" north river east waterfall west road {look write "You are standing by the southern bank of a slow flowing river. Up " write "stream, to the east, you can hear the sound of falling water. The " write "ground here, although still grassy, is already beginning to show signs " write "of decay as black rains creep further south towards the village." return } object grass a plain grass inventory "patch of grass" mass scenery {examine write "Brown and withering." return } location waterfall "Waterfall" north ben_waterfall west riverbank_east no_up "The cliff is far to steep and slippery for you to climb." no_east "A tall steep cliff blocks any further progress east." {look write "You are standing on the bank of a river, just south of a tall " write "waterfall. The sound here is almost deafening as the water crashes " write "from above. A tall cliff blocks any further progress to the east." write return } object falls a plain waterfall inventory "waterfall" mass scenery synonym curtain waterfall synonym falls waterfall {examine write "Although a powerful torrent of water, you notice that a rocky outcrop " write "halfway up the cliff reduces the flow to nothing more than a thin " write "curtain of water near the centre." return } object cliff a plain cliff inventory "cliff" mass scenery {examine write "The cliff is over one hundred feet tall and covered with a slimy green " write "moss." return } {climb write "Try as you might, you can not manage to get more than a few feet off " write "the ground without sliding back down on the slippery surface." return } location ben_bridge "Beneath Wooden Bridge" has ON_WATER south drain east river west ford {look write "You are standing in the river directly beneath a small wooden bridge. " write "Storm water flows into the river from a drain tunnelled into the " write "southern bank. The grate that once sealed the drain has long since " write "rusted and fallen away." return } object drain a plain drain inventory "storm water drain" mass scenery {examine write "Peering into the storm water drain you can not see very far before " write "the pale light gives way to an eerie blackness." return } location river "In River" has ON_WATER south riverbank_east no_north "The river bank is too steep to the north." east ben_waterfall west ben_bridge {look write "You are standing about waist deep in the middle of the river, " write "constantly fighting the slow but strong current pulling you west " write "towards the bridge. To the east water falls from a high cliff forming " write "a furious white curtain." return } location ben_waterfall "Beneath Waterfall" has ON_WATER south waterfall no_north "The river bank is too steep to the north." east beh_waterfall go_east "Fighting to keep your footing you force you way through the curtain of water." west river {look write "You are standing directly beneath a torrent of cascading water. " write "Visibility is less than a foot in every direction due to the white " write "foaming water falling all around you. You struggle to keep your " write "footing here." return } location beh_waterfall "Behind Waterfall" no_go "Back through the waterfall is the only way out from here." west ben_waterfall {look write "You are in a small, dry cave carved into the cliff behind the " write "waterfall. The sound of the waterfall is almost deafening here as it " write "echoes backwards and forwards against the smooth stone walls. The only " write "exit from here is back west into the water. " write "A small bare tree grows out of the floor here to within a few feet of " if crystal !childof depression write "a circular depression in the ceiling. " return break endif if crystal childof depression write "a large glowing crystal fixed into a circular depression in the " write "ceiling. " return endif } {listen write "Falling water." return } object pink_flower a pink flower inventory "pink flower" described "A large pink flower grows out of the tip of a high branch." mass 2 starts limbo {take_override if flower hasnt CUSTOM write "You pluck the flower from the end of the branch." return ensure flower has CUSTOM move pink_flower to player break endif write "You take the pink flower." return move pink_flower to player } {rub_with_blue_flower if flower has CUSTOM write "A pleasant fragrance is released." return break endif write "No sooner have you finished than the pink flower begins to transform " write "into a large fruit, growing and growing until it hangs firm and ripe " write "on the branch." return move pink_flower to limbo move fruit to here } {examine write "The pink flower is, well, pink." return } object fruit a mystical fruit has EDIBLE inventory "piece of mystical fruit" described "A ripe mystical fruit hangs from the tip of a high branch." mass 10 starts limbo {give_to_bird write "You put the fruit down in front of the bird who, with a brief " write "glance around the room, begins to eat enjoying itself immensely." write return move fruit to here set BIRD_EATING to 10 set tower(up) to study describe bird as "An enourmous mystical bird is here perched infront of a large fruit." points 5 } {examine write "Firm, yet ripe, the mystical fruit smells divine." return } {eat if SUSTENANCE_LEVEL > 120 write "You are not hungry." return break endif write "Not bad. Not bad at all." return move fruit to limbo increment SUSTENANCE_LEVEL by 100 } {take_override if BIRD_EATING != false write "You get your fingers pecked. Hard." return break endif if fruit has CUSTOM write "You take the mystical fruit." return endif if fruit hasnt CUSTOM write "With a light snap, you pick the fruit from the tree." return describe fruit as "A large mystical fruit rests on the ground." ensure fruit has CUSTOM endif move fruit to player } object tree a bare tree inventory "tree" mass scenery {examine write "The tree is very odd indeed. It appears to grow out of the stone floor " write "to within a few feet of a hemispherical depression in the ceiling." if pink_flower(location) = here if flower hasnt CUSTOM write "A pink flower is glowing out from the tip of one of the higher " write "branches." return endif if fruit(location) = here if fruit hasnt CUSTOM write "A large mystical fruit hangs ripe from one of the higher " write "branches." return } object depression a circular depression inventory "circular depression" mass scenery {examine write "The depression is roughly hemispherical and about the size of a small " write "apple." return } location riverbank_west "River Bank (West)" north ford east road west east_road {look write "You are standing on the southern bank of a river, just to the west of " write "the main forest road. To the north a shallow ford spans the river " write "while a modest path slowly widens to the west." return } location ford "Ford" has ON_WATER south riverbank_west east ben_bridge west clearing {look write "You are standing in the middle of the river in a shallow ford. A steep " write "bank prevents any further progress north while a bend in the river to " write "the south allows passage to a clearing in the west." return } location clearing "Clearing" north ruins up ruins east ford in pit down pit {look write "This a large green clearing set deep in the western reaches of the " write "forest. The trees all around here droop solemnly, slowly succumbing to " write "the effects of Eldor's curse. A set of roughly carved steps head north " write "though a gap in the trees to higher ground. In the centre of the " write "clearing is a deep circular pit about twelve feet deep." return } object pit_obj a plain deep pit inventory "deep pit" mass scenery {examine write "The pit circular and about twelve feet deep." return } object steps_bot a carved stairs inventory "set of carved steps" mass scenery {climb proxy "u" } {climb_up proxy "u" } {climb_down write "You are already at the bottom of the steps." return } {examine write "The steps, carved into a bank of mossy rock, lead up through a " write "gap in the trees to some ruins." return } location pit "Pit" up nowhere no_go "The wall crumbles as you attempt to climb out, making escape impossible." {look write "You are standing in the bottom of a deep pit. The walls, over twelve " write "feet high, are made from soft earth. Looking straight up you can see " write "only grey sky above you." return } object blue_flower a blue flower inventory "blue flower" described "Resting on the ground here is a blue flower." mass 2 {rub_with_pink_flower write "A pleasant fragrance is released." return } {examine write "The flower, despite having been picked and left without water, appears " write "quite fresh and health. A fine yellow powder covers it's upper surface." write return } {lick write "You stand proud of your yellow tongue." return } location heaven "Heaven" no_go "I'm afraid walking away isn't going to help." {look write "You are standing on a fluffy white cloud. Several people in long white " write "robes are here milling about playing golden harps etc etc. Standing " write "behind a long marble counter is an angel who is currently reviewing " write "your insurance policy." return if angel hasnt CUSTOM write return "Looking up at you the administrative angel speaks, " write quote "According to your policy, you age and occupation " write "excess payment is one piece of treasure. Simply give it to me " write "and you will be on your way back to the land of the living in " write "no time." quote return ensure angel has CUSTOM } object counter a marble counter inventory "marble counter" mass scenery {examine write "The marble counter stretches are far as the eye can see to you left " write "and right." return } {knock_on write quote "Yes?" quote " the administritive angel asks with an irritated " write "tone of voice. " quote "You know the sooner you give me the excess " write "payment the sooner you can be on your way." quote return } object angel an administrative angel has ANIMATE inventory "administrative angel" mass scenery {examine write "Crumpled and badly fitting, the angel's gown compliments his attitude " write "towards customer service." return } location ruins "Ruins" south clearing down clearing {look write "Set amongst the trees here are the remains of an ancient temple, " write "destroyed long ago during the goblin invasion. Still standing in the " write "middle of the ruins is a dark stone altar." return } object steps_top a carved stairs inventory "set of carved steps" {climb proxy "d" } {climb_up write "You are already at the top of the steps." return } {climb_down proxy "d" } {examine write "The steps, carved into a bank of mossy rock, lead down through a " write "gap in the trees into a clearing." return } object ruins_obj an ancient temple inventory "ancient temple" mass scenery synonym ruins temple {examine write "A crooked column and several moss covered blocks are all that remain " write "of the once grand temple." return } object altar a stone altar inventory "stone altar" mass scenery {examine write "The altar is made from a dark grey stone and stands about three feet " write "high. Set into the front of the altar is a small niche, about a foot " write "high, shaped like the figure of a woman." return } object niche a plain niche inventory "niche" mass scenery {examine execute "examine_altar" } object scroll a crumpled scroll inventory "crumpled scroll" described "A crumpled scroll rests on top of the altar." starts limbo mass 5 {examine write "Strange symbols and glyphs cover the scroll. As far as you can tell " write "they appear to be football results, but you could be wrong..." return } {give_to_councillor_override write "The historian takes the scroll from you hands, careful not to damage " write "it." return move scroll to councillor points 5 } location bridge "Wooden Bridge" no_east "A sturdy railing prevents you from falling into the river below." no_west "A sturdy railing prevents you from falling into the river below." north path south road {look write "You are standing in the middle of a narrow wooden bridge that spans a " write "slow flowing river. To the north the forest road continues as far as " write "the eye can see while to the south it heads back into the village." write return } object railing a sturdy railing inventory "sturdy railing" {examine write "The sturdy railing prevents you from falling into the river below." } location drain "Drain" north ben_bridge south ben_village {look write "You are crouched down in a narrow dank drain that runs gently uphill " write "to the south. The sound of rats can be heard coming from the darkness " write "ahead while thin trails of light filter down from above through write "gratings high above your head." return } location ben_village "Beneath Village" north drain {look write "You are standing in a large cavern directly beneath the village " write "square. Water drips down from small openings high above your head, " write "forming slimy pools that cover the floor while large piles of debris " write "fill each corner. The only exit from here is back north into the " write "drain." return } object pools some slimy pool inventory "slimy pools" mass scenery synonym pool pools {examine write "To put it bluntly, they stink." return } object wire a plain wire inventory "piece of wire" described "There is a short piece of wire here." mass 1 starts limbo {examine write "About five inches long, the wire is bent slightly at the end and " write "shows no sign of beginning to rust." return } object goblin a plain goblin has ANIMATE inventory "goblin" described "There is a goblin here, snarling at you from the shadows." {examine if goblin hasnt DEAD write "Green, mean and very, very ugly." return break endif write "Green, no long very mean and very, very ugly (even with your" write "rather amateur attempt at cosmetic surgury)." return } {ask_for_staff write "The goblin looks at you suspiciously." return } {attack_with_sword write "With a flurry of hacks and slashes you reduce the goblin to something " write "that resembles a hamper rather more than a fierce monster. As the " write "goblin hits the ground, a tall staff rolls out from within it's " write "cloak." return describe goblin as "The hacked remains of the goblin litter the floor." ensure goblin has DEAD ensure sword has CUSTOM move staff to here points 5 } {attack_with_knife write "Unfortunately the knife doesn't even seem to penetrate the thick " write "green skin of the goblin. Displeased by your attack, the goblin " write "retaliates with a swift headbutt." return } {attack write "Beating upon the goblins forehead with your fists does little to " write "increase your credibility as an adventurer." return } object debris some plain debris inventory "debris" mass scenery {examine increment DEBRIS_EXAMINED if DEBRIS_EXAMINED = 1 write "A quick rummage through the scrap metal and wood reveals nothing " write "of interest." return break endif if DEBRIS_EXAMINED = 2 write "Looking further through the debris you come across a small piece " write "of wire that appears usefully strong." return move wire to here break endif if DEBRIS_EXAMINED > 2 write "Take it easy..." return } object staff name plain staff inventory "Adreal's staff" described "Adreal's staff is here." starts childof goblin mass 15 {examine write "The staff is about two foot long and feels quite light despite it's " write "strength." return } {give_to_councillor_override write "You can see that the councillor is deeply moved by the site of Adreal's " write "staff. Taking it into his arms he nods to you. " quote "You have done " write "well." quote return move staff to councillor points 5 } location path "Forest Path" north junction south bridge east forest {look write "The forest path cuts north through the trees towards a range of " write "mountains that are slowly beginning to appear, looming over the " write "horizon. To the east you can make out the trunk of a tree, by far the " write "largest you have ever seen." return } location forest "Forest" west path up t_house no_up "Without the bottom branch there is no way up the tree." no_down "You can't go that way." no_go "The forest is too dense to allow passage." {look write "You are standing at the base of giant oak tree just to the east of " write "the forest path. Nestled high up in the tree's sturdy bows sits a " write "large wooden tree house. " if branch hasnt CUSTOM write "A low strong branch allows you to climb up into the tree house." write return break endif write return } object oak_tree a oak tree inventory "oak tree" {climb proxy "up" } object branch a tree branch inventory "tree branch" described "Lying on the ground is a branch from an oak tree." mass scenery {break if branch has CUSTOM write "You can't break the branch any further." return break endif write "Rocking the branch backwards and forwards with all your strength you " write "manage to break it away from the trunk of the tree." return points 5 ensure branch has CUSTOM set here(up) to nowhere set branch(mass) to 15 } {take_override if fan has CUSTOM write "The force of the fan on the branch prevents you from removing " write "it." return break endif if branch hasnt CUSTOM write "The branch is firmly attached to the tree." return break endif if MAX_CARRIED < 20 write "You are carrying too much to take the branch." return break endif write "You take the branch." return move branch to player } {insert_in_fan if branch hasnt CUSTOM write "You thrust the branch in between the fan blades only to have it " write "splinter into a thousand pieces. The fan continues to turn." return move branch to limbo break endif write "You thrust the branch in between the fan blades causing it to stop " write "turning. The fan begins to hum loudly, fighting against the " write "obstruction." return points 5 set here(south) to alcove move branch to limbo ensure fan has CUSTOM } location t_house "Tree House" east platform up platform down forest {look write "This tree house appears to be the home of one of the few remaining " write "elves in the whole northern regions. Sparsely but comfortably " write "furnished, the tree house appears to contain nothing of particular " write "interest. To the east a narrow ramp heads out and up through a doorway " write "to a platform suspended high in a neighbouring tree." return } object ramp a narrow ramp inventory "narrow ramp" {examine write "Seems safe enough." return } object lantern a brass lantern has FLAMMABLE inventory "brass lantern" described "There is a shiny brass lantern here." initial "There is a shiny brass lantern hanging from a hook on the wall." quantity 30 mass 10 synonym lamp lantern {examine write "Made from finely crafted brass, a wire frame protects the glass bowl " write "which in turn protects its bright flame from the wind" if lantern has BURNING write "." return break endif write " when lit." return } {turn_off execute "global_extinguish" } {light_with_matches_override write "Tearing a match from the book, you strike it and light the lantern." write return ensure lantern has LUMINOUS ensure lantern has BURNING } location platform "Platform" down t_house west t_house {look write "From this platform you can see for miles in every direction - from the " write "great mountain range in the north, to the columns of smoke gently " write "rising from the village homes in the south. To the west you can make " write "out the sandy white beaches that line the deep blue waters of the " write "northern sea while to the east the forest ends in savanna stretching " write "as far as the eye can see." write return } object sack the hessian sack has CLOSABLE CLOSED CONTAINER inventory "hessian sack" described "On the floor there is a small hessian sack." quantity 12 mass 10 object bread a fresh bread has EDIBLE inventory "loaf of fresh bread" described "There is a fresh loaf of bread here." starts childof sack mass 5 {eat if SUSTENANCE_LEVEL > 120 write "You are not hungry." return break endif increment SUSTENANCE_LEVEL by 80 increment BREAD_EATEN if BREAD_EATEN = 3 write "You eat the last of the bread." return move bread to limbo break endif write "You eat some of the bread." return } {examine write "The loaf of bread is still very fresh." return if BREAD_EATEN = 0 write "There is enough bread for about three meals." return break endif if BREAD_EATEN = 1 write "There is still about two thirds of the bread left." return break endif if BREAD_EATEN = 2 write "There is only enough bread left for one last meal." return } location junction "Junction" north trail up trail south path east track_east west track_west {look write "You are standing at a cross road in the forest path. To the north the " write "path continues the long gentle climb towards the mountains while " write "smaller tracks head off to the east and west." return } location track_west "Track (West)" east junction west field {look write "You are on a track running east-west through the forest. To the west " write "the track opens out into a large grassy field." return } location field "Grassy Field" east track_west west log_cabin in log_cabin go_in "You step into the log cabin." {look write "This is a large grassy field that seems oddly unaffected by the curse. " write "Standing in the centre of the field is simple log cabin." return } location log_cabin "Log Cabin" east field out field go_up "You climb up the narrow ladder." up loft {look write "A strange sense of well being comes over you as you stand in the " write "cabin. A large open fire burns at one end of the room while a large " write "dining table fills the majority of the western half. A narrow ladder " write "leads up from here into the loft." return } object ladder_bot a narrow ladder inventory "narrow ladder" mass scenery {examine write "The narrow ladder leads up into the loft." return } {climb proxy "u" } {climb_up proxy "u" } {climb_down write "You are already at the bottom of the ladder." return } object log_fire an open fire inventory "open fire" mass scenery {examine write "The fire is a comforting sight away from the cold wet day outside." write return } object table a dining table inventory "dining table" mass scenery {examine write "The dining table contains nothing more than a few useless odds and " write "ends." return } location loft "Loft" down log_cabin {look write "This is the cabin's loft. The only furnishing here is a low bed in " write "the centre. A narrow ladder leads down back into the cabin." return } object ladder_top a narrow ladder inventory "narrow ladder" mass scenery {examine write "The narrow ladder leads down into the cabin." return } {climb proxy "d" } {climb_down proxy "d" } {climb_up write "You are already at the top of the ladder." return } object low_bed a low bed inventory "low bed" mass scenery {examine write "The bed made from a simple straw filled matress and a blanket." return } object blanket a plain blanket inventory "blanket" mass scenery {take write "Blankets are a very personal thing, I sugest leaving it." return } {examine write "The blanket has little ducks sewn all over it." return } object vial a glass vial has CLOSABLE CLOSED CONTAINER inventory "glass vial" described "There is a glass vial here." quantity 1 mass 5 starts here {examine write "A small white label on the outside of the vial indicates that it " write "contains some sort of strength potion. " execute "global_details" } object potion a green potion has LIQUID inventory "green potion" mass 1 starts childof vial {drink write "You drink the pale green potion. At first you notice nothing out " write "of the ordinary then suddenly a feeling of great strength wells up " write "in your body." return set POTION_DRUNK to true } location track_east "Track (East)" east track_end west junction {look write "You are on a track running east-west throughout the forest. To the " write "east the track appears to become narrower and less defined." return } location track_end "End of Track" west track_east {look write "At this point the track ceases to be a track. Thick bushes here " write "prevent any further progress in any direction other than back west " write "towards the junction." return } object bushes some plain bushes inventory "bushes" mass scenery {examine if clove has CUSTOM write "There is a Hujara plant growing amongst the bushes." return break endif write "Searching through the bushes you come across a small green plant. On " write "closer examination you recognise it to be a Hujara plant with a large " write "healthy clove hanging from one of it's upper branches." return move clove to here move plant to here } object plant a hujara plant inventory "Hujara plant" mass scenery starts limbo {examine if clove has CUSTOM write "It is a Hujara plant." return break endif write "The Hujara plant has a healthy clove hanging from one of it's " write "upper branches." return } object clove a plain clove inventory "clove of Hujara" described "There is a clove of Hujara here." return initial "There is a clove of Hujara hanging on the plant." starts limbo mass 2 {take_override if clove hasnt CUSTOM write "You pluck the clove from the Hujara plant." return endif if clove has CUSTOM write "You take the clove." return endif move clove to player ensure clove has CUSTOM } {give_to_councillor_override write quote "Ah! Excellent!" quote " the councillor exclaims as you hand him " write "the clove." return points 5 move clove to councillor } {eat write "Not particularly pleasant tasting, but..." return move clove to limbo } location ledge "Rocky Ledge" south m_path up m_path west tunnel {look write "The mountain path ends here on a small rocky ledge protruding from the " write "western wall of the chasm. To the west a large cave entrance leads " write "into the granite wall around which large clawed footprints can be " write "seen." return } location tunnel "Tunnel" east ledge west lair {look write "You are halfway along a tunnel that slopes downwards to the west. " write "Footprints similar to those outside can be seem heading up and down this tunnel." return } location lair "Dragon's Lair" east tunnel {look write "The tunnel opens up here in a large cavern. Perched proudly atop " write "an enourmous pile of treasure is a rather large dragon peering at you " write "cautiously through one half open eye." return } object dragon a gold dragon has ANIMATE inventory "gold dragon" mass scenery {examine write "The dragon is peering at out of one half open eye." return } {talk_to if dragon hasnt CUSTOM write "You begin to inform the dragon of the pleasant weather outside, but " write "are stopped short by a curl of smoke that rises menacingly from the " write "dragons left nostril." return ensure dragon has CUSTOM break endif write "Don't push your luck..." return } {attack_with_sword write "Bravely lunging at the dragon with you sword held high you are sliced " write "into four even segments by a single swift blow of the dragon's " write "taloned paw." return return execute "global_death" } object treasure a plain treasure inventory "pile of treasure" mass scenery {examine write "The pile of treasure is a sight beyond anything you have ever seen " write "before. Golden chalices and crowns, strings of giant pearls and " write "diamonds lie amongst an uncountable mountain of gold and silver " write "coins. The spectacle is marred only by the rather large dragon " write "perched on top, guarding it like a mother would her children." return } object amulet a large amulet has WEARABLE inventory "large amulet" described "Resting on the pile of treasure, near the front, is a large amulet." mass 10 {examine write "The amulet is a smooth jade stone set into an ornately carved gold " write "plate which a fine chain allows to be worn." return } {give_to_angel write "Okay, I guess it will have to do..." return return more move amulet to angel set kryten(location) to church ensure monk has CUSTOM write return look } {take_override if kryten(location) = lair if DRAGON_PEPPERED > 1 if DRAGON_PEPPERED < 4 write "You sneak over and grab the amulet while the dragon has his " write "eyes closed preparing to sneeze." return points 5 move amulet to player describe amulet as "Lying on the ground is an amulet." break endif if kryten(location) = lair write "Bad career move. As you reach out and take the amulet, the dragon " write "reaches out and takes your spleen. Needless to say, this does very " write "little for your well being." return execute "global_death" endif write "You take the amulet." return move amulet to player } location trail "Trail" north mountains south junction up mountains {look write "At this point the forest road is nothing more than a narrow rocky " write "trail that winds it's way up the steep southern peaks of the great " write "mountain range. It is noticeably colder here than the forest below." write return } location mountains "Mountains" south trail east courtyard west m_path down trail {look write "The trail bends sharply here, heading down to the south and flatly to " write "the east where it passes through an open archway leading into a giant " write "castle perched high between the mountain peaks. A light snow is falling " write "here, slowly covering the bare stone ground beneath you feet." return } object snow some plain snow inventory "snow" {examine write "The snow is quite icy making the ground here very treacherous in " write "places." return } object archway an plain archway inventory "archway" {examine write "The archway is set into the high stone wall that surrounds the castle. " write return } {look_through write "Through the archway you can see a checkered courtyard within the " write "castle grounds." return } location m_path "Mountain Path" east mountains north ledge down ledge {look write "You are standing on a narrow path that heads east through the " write "mountains. From here the path winds steeply down to the north curling " write "around the western wall of a deep chasm." return } location courtyard "Courtyard" north dungeon south balcony east tower west mountains down dungeon {look write "This is the main courtyard of the castle. The floor is a large " write "checkerboard pattern made from giant squares of marble. There are " write "doorways to the north and east here while a large balcony can be " write "reached to the south. Proceeded by a small set of steps, the " write "northern doorway leads down beneath the courtyard; the western into " write "a tall black tower." return } object floor a checkerboard floor inventory "checkerboard floor" {examine write "The floor of the courtyard is made from giant squares of marble " write "formed into a checkboard pattern." return } object tower_obj a black tower inventory "tall black tower" {examine write "The tower is several stories high and made from dark granite blocks. " write "It may be entered to the east through an open doorway." return } location balcony "Balcony" north courtyard {look write "You are standing on a large Balcony surrounded by an ornately carved " write "wall. Peering over the wall reveals a drop of several hundred feet " write "causing your stomach to lurch and your feet to involuntarily step back " write "away from the edge." return if here(in) != false write "Standing majestically in the centre of the balcony is a hot air " write "balloon." return } location dungeon "Dungeon" east cell west armoury south courtyard up courtyard {look write "This is the castle's dungeon. Although sheltered from the wind in " write "here, it is bitterly cold due to minimal amount of sunlight that " write "filters through a small doorway at the top of a set of stairs to " write "the south. Both the ceiling, floor and all four walls are made from " write "large stone blocks. Rusted doors lay crumpled on the ground allowing " write "access through two dark doorways, one in the west wall, one is the " write "east. An assortment of racks and shackles are set into the north " write "wall." return } object rusted_doors a rusted door inventory "rusted door" mass scenery {examine write "Laying rusted on the floor it has been long time since the doors have " write "served their purpose." return } object torture some torture racks inventory "torture racks" mass scenery {examine write "The torture racks make you cringle as your mind imagines the horror " write "of being a prisioner in a dungeon such as this." return } object shackles some plain shackles inventory "shackles" mass scenery {examine write "Rusted and broken the shackles are no longer usable." return } location armoury "Armoury" has DARK east dungeon {look write "Ransacked long ago, the armoury is all but empty. Splintered racks " write "line the walls, while many rusted, broken weapons litter the floor. " write "The only exit from here is back into the dungeon." return } object knife a sharp knife inventory "sharp knife" described "Hanging a rack amongst the other rusted and damaged weapons is a sharp knife." mass 8 {examine if knife has CUSTOM write "The knife is almost a foot long, extremely sharp and covered in " write "fresh blood." return break endif write "The knife is almost a foot long and extremely sharp." return } {global_blood_spotted write "Spotting the blood dripping from the knife you are grabbed and " write "disarmed. Before long sailors have searched the ship and island, " write "discovering the guards body and sentencing you to immediate " write "execution." return execute "global_death" } {clean if knife has CUSTOM write "You wipe the blood off the knife using your shirt then pull your " write "coat closed to conceal the stains." return ensure knife hasnt CUSTOM break endif write "The knife is already quite clean." return } location cell "Cell" has DARK west dungeon {look write "A dark depressing place, this small confined cell was the final home " write "of many a poor soul. Strange markings cover the bare stone walls " write "while the rooms only furnishing, a hard wooden bench, rests stained " write "and scratched on the cold, uneven floor." return } object bench a wooden bench inventory "wooden bench" mass scenery {examine write "Needless to say it doesn't look very comfortable." return } {sit_on write "Not a very tempting prospect I'm afraid." return } object pearl a smooth pearl described "A smooth pearl rolls about your feet." return inventory "smooth pearl" mass 5 starts limbo {give_to_angel write "Rubbing the pearl on his teeth the angel concedes that it is real " write "and that you shall be returned to the nearest earth based office " write "immediately." return points 5 write return more move pearl to angel set kryten(location) to church ensure monk has CUSTOM write return look } object thief a sly thief has ANIMATE inventory "sly looking thief" described "Leaning against the wall in one corner a sly looking thief eyes you smugly." {ask_for_knife write quote "Having second thoughts are we?" quote " sneers the thief." write return } {attack_with_sword if knife childof thief write "Lunging at the thief with the sword, he quickly darts to once side " write "cutting you with the knife at you pass. Without turning, you swing " write "the sword behind you wildly, giving you the space you need to regain " write "your composure. Standing face to face, you circle about the room " write "until the thief darts out a stab with the knife barely missing your " write "neck. Taking advantage of his over extension, you push him into the " write "back wall of the cell then deliver a fatal blow with the sword " write "before he recovers. As he collapses, slumping over the bench, a " write "smooth white pearl rolls of from his pocket and onto the floor." write return move pearl to here points 5 ensure thief has DEAD describe thief as "The body of the thief lies slumped over the bench." ensure sword has CUSTOM describe sword as "A blood stained sword rests as your feet." break endif write "Seeing you draw the sword, the thief changes his stance and " write "smiles. " quote "You wouldn't attack an unarmed man would you?" quote write " the thief questions as he holds his hands up for you to see. " write "Although suspicious of the thief, you lower the sword." return } {attack_with_knife if sword childof thief write "You lung at the thief with the knife slicing his side. Startled, " write "he jumps onto the bench and swings the sword wildly at your head " write "missing by only an inch. In retaliation, you thrust the knife " write "upward towards the thief's stomach but, he is ready and returns " write "the attack, taking advantage of the swords extra range. Wounded, " write "you step backwards, only to have the thief leaps off the bench " write "bringing the sword crashing down onto your head." return execute "global_death" endif write "Seeing you draw the knife, the thief changes his stance and " write "smiles. " quote "You wouldn't attack an unarmed man would you?" quote write " the thief questions as he holds his hands up for you to see. " write " Although suspicious of the thief, you lower the knife." return } location tower "Tower" west courtyard up nowhere no_up "The bird pecks at you with it's giant beak prompting you to change your mind." down nowhere {look write "You are in the base of a tall black tower. Besides the doorway to the " write "east, and a set of rickety wooden stairs leading up, the only other " write "feature worthy of mention is a stone idol that stands about six foot " write "high in very centre of the room." return if idol has CUSTOM write "A square opening in the floor leads down into darkness." return endif if BIRD_EATING != false write "An enourmous mystical bird is perched before a gaint piece of " write "fruit, consuming it's ripe flesh at an astounding rate." return break endif write "An enourmous mystical bird is perched on the bottom step of the stairs." write return } object stair_bot a wooden stairs inventory "set of wooden stairs" mass scenery {examine write "The stairs lead up into the top of the tower." return } {climb proxy "u" } {climb_up proxy "u" } {climb_down write "You are already at the bottom of the stairs." return } object sign a wooden sign inventory "wooden sign" mass scenery {read execute "examine_sign" } object bird a mystical bird inventory "mystical bird" mass scenery {attack write "The bird dexterously avoid you attack with a single flap of it's " write "enourmous wings." return } {attack_with_knife write "The bird dexterously avoid you attack with a single flap of it's " write "enourmous wings." return } {attack_with_sword write "The bird dexterously avoid you attack with a single flap of it's " write "enourmous wings." return } object idol a stone idol inventory "stone idol" mass scenery {move if POTION_DRUNK = false write "You push will all you might by are unable to budge the idol." return break endif if idol hasnt CUSTOM ensure idol has CUSTOM write "Utilising your new found strength you push the idol far enough " write "to one side to reveal a square opening in the floor." return set here(down) to laboratory points 5 break endif write "You push the idol back to where it was, covering the opening in the " write "floor." return set here(down) to nowhere ensure idol hasnt CUSTOM } {examine write "No." return } location study "Study" down tower {look write "The first thing you notice about this room is the books. Literally " write "thousands of them line the walls, precariously balanced on crooked " write "wooden shelves. In the centre of the room stands an enormous wooden " write "desk cluttered with a variety of mysterious odds and ends, obviously " write "magical in nature." return } object stair_top a wooden stairs inventory "set of wooden stairs" mass scenery {examine write "The stairs lead down into the base of the tower." return } {climb proxy "d" } {climb_up write "You are already at the top of the stairs." return } {climb_down proxy "d" } object shelves a crooked shelves inventory "set of crooked shelves" mass scenery {examine write "The crooked wooden shelves are filled with leather bound books of all " write "descriptions." return } object desk a plain desk inventory "desk" mass scenery {examine write "The desk is covered in an assortment of mysterious odds and ends that " write "you wouldn't even begin to know how to use." return } object books some plain books inventory "books" mass scenery {examine write "The books cover various topics from basic spell casting to world " write "domination." return } {take_override write "Although an avid reader, the thought of lugging books all the way " write "back home does not appeal." return } {press write "I really do wish that a secret passage would open up allowing you " write "to follow a trail of Scooby Snacks into to a secret room full of " write "treasure but the reality is that I'm just too damn lazy." return } object head name eldor's head inventory "Eldor's head" described "Eldor's head rests motionless on the ground." mass 10 starts limbo synonym eldors eldor's {show_to_councillor write "Seeing the head, a smile breaks out on both the councillor and the " write "historian's faces. Calling for a guard, the councillor orders for the " write "head to be taken away and destroyed." return move head to limbo points 5 set DEATH_PROOVED to true } {show_to_historian execute "show_to_councillor_head" } {give_to_councillor_override proxy "show head to councillor" } {give_to_historian_override proxy "show head to councillor" } {examine write "There's not much I really care to say about that I'm afraid." return } object eldor name plain eldor has ANIMATE inventory "Eldor" described "Eldor is standing here glaring at you ominously." {attack write "You leap at Eldor in attempt to grab his throat only to find yourself " write "impaled on a long sword that he produces from within his cloak. " write "gasping you colapse to the ground as he pushes you off with the heal " write "of his boot then begins to laugh insanely. It is the last sound you " write "hear." return execute "global_death" } {attack_with_knife write "You draw the knife and slowly advance, adjusting your grip on it's " write "handle as you approach. " return return write quote "Your time is up Eldor!" quote " you bark confidently." return write return quote "Not today pesant, not today..." return return write "Drawing his sword, Eldor kicks over his desk and leaps over the " write "scattered books driving the tip of his sword deep into your chest. " write "Pushing you back with the heal of his boot Eldor begin to laugh " write "insanely. It is the last sound you hear." return execute "global_death" } {attack_with_sword write "Leaping over the counter you swing your sword wildly causing Eldor " write "to step back hastily. Drawing his sword he spirals around to your left " write "where your swords clash in a fortunate parry. Mustering all your " write "strength, you kick Eldor away then attack ferociously, decapitating " write "Eldor with a single blow." return move head to here describe eldor as "The headless body of Eldor lies slumped on the floor." ensure eldor has DEAD points 5 } {examine if eldor hasnt DEAD write "A tall and menacing character, Eldor stands behind is desk, leaning " write "forward as if to stare you into submission." return break endif write "There is nothing special about Eldor." return return write "Well, unless of course you consider the fact that he no longer has a " write "head to slightly out of the ordinary." return } location laboratory "Laboratory" has DARK up tower south nowhere no_south "The fan is turning to quickly for you to get past." go_south "Nervously you squeeze through the blades of the fan." {look write "This room is odd. Many strange contraptions and apparatus line the " write "walls and adorn the solid work benches scattered throughout. In the " write "centre of the room a ladder leads up through a small opening. " if FAN_STOPPED = true write "There is a large fan set into the southern wall. A tree branch, " write "wedged into the blades, prevents it from spinning causing it to " write "hum loudly." return break endif write "There is a large turning fan set into the southern wall." return } object apparatus some strange apparatus inventory "strange apparatus" mass scenery synonym contraptions apparatus {take_override write "Probably not a good idea." return } {examine write "Look at the strange contraptions and apparatus you recall your " write "mother's advice not to touch what you don't understand." return } object benches some work benches inventory "work benches" mass scenery synonym bench benches {examine write "The work benches are covered in all sorts of strange contraptions and " write "apparatus." return } object fan a plain fan inventory "fan" mass scenery {examine if FAN_STOPPED = true write "There is a large branch wedged into the blades of the fan " write "preventing it from spinning. Behind the fan you can see a " write "dark alcove." return break endif write "Through the blades of the spinning fan you can barely make out " write "a dark alcove behind it." return } location alcove "Alcove" has DARK north laboratory {look write "You are standing in dark alcove about ten foot square. To the north " write "you can see into the laboratory through the blades of the fan." return } object statue a black statue described "There is small black statue of a woman here." inventory "black statue" mass 10 {insert_in_niche write "As you place the statue in the niche it starts to glow a pale green " write "colour, steadily increasing in intensity until it is so bright you " write "have no choice but to turn away. Moments later the glowing ceases " write "completely and the front of the altar turns to a completely smooth " write "stone surface. Looking up from where the niche once was you notice " write "that a crumpled scroll has appeared on the top of the altar." return points 5 move scroll to here } {examine write "Small and black, the statue is of a woman." return } location east_road "Great Eastern Road" no_north "You dare not venture from the road into the wilderness." no_south "You dare not venture from the road into the wilderness." east riverbank_west west outskirts {look write "You are standing on the Great Eastern Road. Built over six " write "hundred years ago when people first landed here, hundreds of " write "thousands of people have since travelled it's length. Heading east " write "from the sea port town of Jurin they would seek a new beginning, a " write "chance to claim a piece of land as their own and begin the peaceful " write "life of farmer, far away from the increasing crime and corruption of " write "Jurin." return } location outskirts "Village Outskirts" east east_road no_south "There is nothing of interest in the hovels." west main_street no_north "The river, now wide and deep, blocks you path." {look write "You have entered the outskirts of the sea port town of Jurin. Small " write "hovels line the hills on the south side of the road while the river " write "to the north is beginning to widen. From here you can make out the " write "town centre to the west while the road disappears over the horizon " write "to the east." return } location main_street "Main Street" north inn east outskirts west dock {look write "You are standing in the main street of Jurin. To the west the street " write "winds it's way down to the docks, while to the north lies the " write "Angler's Rest, the towns main inn. The Great Eastern Road stretches " write "out east from here as far as the eye can see. Many people as milling " write "about here, tending to their daily business." return } location storage "Storage Area" north dock east boat_house {look write "This is a large flat area filled almost entirely with shipping " write "crates. To the east lies a small run-down boat house." return } object ship_crates some shipping crates inventory "shipping crates" mass scenery synonym crate crates {examine write "The shipping crates are plain wooden boxes." return } {open write "It would take several men to open a crate of that size." return } location boat_house "Boat House" west storage {look write "You are standing in a small run down boat house. The smell of fish and " write "salt is almost overwhelming here. A moderate fishing boat, currently " write "under repair fills the majority of the space here. The only exit is " write "back west, out onto the storage area." return } object boat a fishing boat has CONTAINER inventory "fishing boat" mass scenery quantity 100 {examine write "The fishing boat is currently having a long tear down it's side " write "repaired. " execute "global_details" } object uniform a black uniform has WEARABLE described "There is a plain black uniform here." inventory "black uniform" mass 10 starts childof boat {global_no_uniform write return "Spotting you as an outsider a group of sailors descend upon you, " write "quickly wrestling you to the ground. Once tied, you are carried off " write "and thrown into the water where you sink and drown." return execute "global_death" } {wear_override write "Slipping into the black sailors uniform you raise the collar and " write "adjust the cuffs - not a bad fit." return ensure uniform has WORN } location inn "The Angler's Rest" north bar south main_street west fire {look write "This is the Angler's Rest, undoubtedly the most famous inn in the " write "entire land. First opened only twelve years after the first settlers " write "arrived here, almost fifteen hundred years ago now, the pub as " write "flourished endlessly. The room here is filled with smoke and the " write "roar of hundreds of voices enthusiastically recalling tales of a " write "time gone by. To the north you can make out a bar through the crowd, " write "while a large open fire can be seen roaring to the west." return } location fire "By the Fire" east inn {look write "This end of the inn is a lot more subdued than the common room to " write "the east. A few men wearing plain black uniforms sit quietly around " write "a roughly cut table, warming themselves by the fire. The wheel from " write "an ancient ship hangs proudly above the hearth." return } object by_fire name plain fire inventory "fire" mass scenery {examine write "Reasonably ordinary as far as open fires go." return } object wheel a plain wheel inventory "wheel" mass scenery {examine write "The ancient wheel is typical of the decorations here." return } {turn write "I would like to say that a myserious secret passage opens up beside " write "the hearth but unfortunately all that actually happens is that people " write "stop to look at the stranger who is obviously so drunk that they " write "decided it would be fun to play sailor." return } object sailor a swarthy sailor has ANIMATE inventory "swarthy sailor" described "An old, swarthy looking sailor is here talking to the other men." mass heavy {talk_to write "You don't have to go getting yourself beaten up in a bar to win this " write "game." return } {hello write quote "Hello Sailor!" quote ", you call the swarthy looking man. " write write "Looking up he gives you a strange knowing look then returns to " write "his conversation." return } {listen_to if SAILOR_LISTENED = false write "You draw closer to hear what the sailor is discussing. Although " write "hard to hear over the background noise, you make out that the " write "ship he owns is about to set sailor for a small island somewhere " write "in the northern sea, and island where he hides the majority of his " write "valuable loot - if you believe his boasting that is..." return set SAILOR_LISTENED to true break endif if SAILOR_LISTENED > false if SAILOR_LISTENED < 10 write "The sailor continues to discuss the imminent departure of " write "his ship." return break endif write "The sailor is now silently thinking." return } object men some uniformed men has ANIMATE inventory "uniformed men" {talk_to write "You don't have to go getting yourself beaten up in a bar to win this " write "game." return } {listen_to if SAILOR_LISTENED = false write "The men are listening intently to the swarthy sailor." return break endif if SAILOR_LISTEN > false if SAILOR_LISTENED < 10 write "The men are discussing the imminent deprature of the swathy " write "sailor's ship with him." return break endif write "The sailors are now furiously debating who can drink the most." return } location bar "Bar" south inn down cellar west cellar {look write "You are standing by the bar of the Angler's Rest. Over a thousand " write "years of stains and scratches clearly show the heritage of the inn. " write "Several gruff looking men sit at the bar, perched firmly on " write "tall stools drinking mugs of ale. A narrow set of stairs lead down " write "on the west side of the bar while an old and beaten poker machine " write "stands against the wall." return } object men a gruff men inventory "group of gruff looking men" {talk if men hasnt CUSTOM write "The men turn around, look at you, then turn back to their drinks " write "without saying a word." return ensure men has CUSTOM break endif write "The men don't respond." return } object stools a bar stool inventory "bar stool" synonym stools stool {sit write "There are none free." return } {take if stools hasnt CUSTOM write "Ripping a stool out from beneath one of the gruff looking men " write "would not be a great idea." return break endif write "What did I just tell you?!" return } object drink a plain drink inventory "drink" starts limbo {order proxy "ask bartender for ale } object bartender a elderly bartender has ANIMATE inventory "bartender" described "An elderly bartender stands behind the bar washing glasses." mass heavy synonym landlord bartender synonym barman bartender synonym publican bartender {talk_to write "The bartender listens to your tale with a professional ear." return } {pay proxy "give coin to bartender" } {ask_for_drink proxy "ask bartender for ale" } {ask_for_ale if mug(location) != limbo write "Now I don't want to sound like your mother but I don't think it's " write "appropriate for you to sit around drinking ale all day when the " write "village is about to be destroyed by an evil curse." return break endif if drink has CUSTOM write "I don't think he's forgotten your order, perhaps you should give " write "him the money." return break endif write "You stride up to the bar and order a mug of ale. " if bartender has CUSTOM write quote "There you go sir." quote " the landlord says as he places " write "the mug on the bar top, " quote "thankyou very much." quote return ensure bartender hasnt CUSTOM move mug to here break endif write quote "That will be one copper piece thank you sir" quote " the " write "bartender requests." return ensure drink has CUSTOM } object ale a plain ale has LIQUID inventory "quantity of ale" mass 5 starts childof mug synonym lager ale synonym beer ale synonym usual ale synonym bitter ale {order proxy "ask bartender for ale" } {drink write quote "Cheers." quote return return write "Moments after you finish your ale you begin to feel slightly " write "intoxicated. Well, slightly is probably a bit of an " write "understatement..." return set INTOXICATION_LEVEL to 10 move ale to limbo } object mug a large mug has CONTAINER inventory "large mug" initial "There is a large mug on the counter." described "A large mug is nearby." return mass 5 quantity 5 starts limbo {give_to_bartender write "The bartender thanks you for returning the mug." return move mug to bartender } object matches a plain matches has IGNITABLE initial "There is a book of matches resting on the bar." described "There is a book of matches resting here." inventory "book of matches" mass 2 object machine a poker machine inventory "poker machine" mass scenery {examine write "The poker machine is old an beaten. On the front there is a display " write "with three turning wheels and a coin slot. Attached to it's right " write "side is a long handle while a metal tray runs along it's width at " write "waist height. A small plaque above the slot reads " quote write "ONE SILVER COIN" quote . return } object g_coin a gold coin described "There is a gold coin here." inventory "gold coin" starts limbo mass 1 synonym piece coin {give_to_bartender write quote "I'm sorry, I don't have any change" quote " the bartender " write "appologises. " quote "Do you have anything smaller?" quote return } {insert_in_machine write "When you insert the gold coin into the slot, it falls straight " write "through the poker machine and into the metal tray." return move g_coin to tray } {insert_in_slot write "When you insert the gold coin into the slot, it falls straight " write "through the poker machine and into the metal tray." return move g_coin to tray } {give_to_monk write "Gleefully pocketing the gold coin the monk hands you the insurance " write "policy." return move g_coin to monk move policy to player } object s_coin a silver coin described "There is a silver coin here." inventory "silver coin" starts childof kryten mass 1 {insert_in_machine if INTOXICATION_LEVEL < 1 write "No body in their right mind would gamble away their last silver " write "coin in a machine like that." return break endif write "In you drunken state you happily insert your last silver coin into " write "the poker machine which responds with a loud click." return move s_coin to limbo ensure machine has CUSTOM } {insert_in_slot proxy "insert_in_machine_s_coin" } {give_to_bartender write quote "I'm sorry, I don't have any change" quote " the bartender " write "appologises. " quote "Do you have anything smaller?" quote return } object c_coin a copper coin described "There is a copper coin here." inventory "copper coin" starts childof kryten mass 1 {insert_in_machine write "When you insert the copper coin into the slot, it falls straight " write "through the poker machine and into the metal tray." return move c_coin to tray } {insert_in_slot write "When you insert the copper coin into the slot, it falls straight " write "through the poker machine and into the metal tray." return move c_coin to tray } {give_to_bartender move c_coin to bartender if drink hasnt CUSTOM write quote "Is this a tip or is there something I can get for you?" write quote " the bartender inquires cheekily." return move c_coin to bartender ensure bartender has CUSTOM break endif write quote "There you go sir." quote " the landlord says as he places " write "the mug on the bar top, " quote "thankyou very much." quote return ensure drink hasnt CUSTOM move mug to here move c_coin to limbo } object tray a metal tray has CONTAINER inventory "metal tray" quantity 10 object slot a plain slot inventory "slot" object handle a plain handle inventory "handle" {pull if machine has CUSTOM write "As you pull the handle the wheels in the display of the " write "poker machine begin to spin rapidly eventually coming to rest " write "on:" return return write " CAMEL CAMEL COCONUT" return return write "A gold coin drops into the metal tray." return ensure machine hasnt CUSTOM move g_coin to tray points 5 break endif write "You pull the handle on the poker machine resulting in the handle on " write "the poker machine being pulled." return } location cellar "Cellar" up bar east bar {look write "This dimly lit room is the inn's cellar. Well stocked, the cellar is " write "a fine example of the affluence of the west. Racks of wine, line the " write "walls, while crates of food cover the floor. The only exit from here " write "is back up the stairs to the bar." return } object food some plain food inventory "food" {take write "The food is all packed into crates, and besides, I don't think it " write "go down to well the management if you were to walk off this it." return } {examine write "The food is all packed into crates having been recently shiped from " write "rural areas in the south." return } object crates some wooden crates inventory "wooden crates" {examine write "The crates are all filled with various food stuffs." return } {open write "The crates are all tightly nailed shut." return } object wine some plain wine inventory "wine" {examine write "The wines are some of the finest produced locally and overseas." return } {take write "Just say no!" return } {take_override write "Fortunately for the programmer you are not much of wine drinker and " write "decide to leave the bottle of wine alone." return } object racks some wine racks inventory "wine racks" synonym rack racks {examine write "The racks are filled with bottles of some of the finest wine produced " write "both locally and overseas." return } object corn a pepper corn has EDIBLE inventory "pepper corn" described "There is a large pepper corn here." mass 2 {eat write "You pop the pepper corn in your mouth an swallow it whole." return move corn to limbo } {insert_in_cogs proxy "insert corn in cog" } {insert_in_cog write "Careful not crush your hand you put the pepper on the main cog. " write "Before long it has turned to the point where the corn is crushed " write "between the main cog and a smaller one causing a small pile of " write "pepper to form on the floor." return points 5 move corn to limbo move pepper to here } {insert_on_cog proxy "insert corn in cog" } object pepper a crushed pepper inventory "pinch of pepper" described "There is a small pile of pepper on the ground." mass 2 starts limbo {eat write "Well, I hope you enjoyed it..." return move pepper to limbo } {throw_at_dragon proxy "blow pepper at dragon" } {blow_at_dragon write "Getting as close as you dare, you place the grains of pepper onto your " write "palm, hold out you hand, then blow the them at the dragon. At first " write "the dragon seems unaffected, but moments later it's nose begins to " write "twitch." return set DRAGON_PEPPERED to 1 move pepper to limbo } location dock "Dock" south storage west deck_docked no_west "There is no ship currently docked." east main_street {look write "You are standing in the docks. A heavy mist covers entire area " write "reducing visibility to only a few hundred feet. A storage area for " write "incoming and outgoing cargo can be seen to the south while waves can " write "be heard crashing against the dock to the west. The road winds east " write "from here into the centre of town. " if here(west) != false write "A long gangplank leads west from here onto the deck of an enourmous " write "wooden pirate ship that is crawling, quite predicatably, with " write "pirates." return break endif write return } {global_pirate_death write "Not very smart. Within seconds a group of sailors descend upon you, " write "quickly wrestling you to the ground. Once tied, you are carried off " write "and thrown into the water where you sink and drown." return execute "global_death" } location stern "Stern" south deck_docked down hold no_down "The trap door is currently closed." go_down "Hanging from the edge of a trap door's frame you drop carefully to the floor below." {look write "You are at the stern of the ship. A strong wooden railing lines this " write "area, preventing any unwary passenger or sailor from falling overboard " write "during rough seas. A large number of pirates are here scrubbing the " write "decks. " if trap_door hasnt CLOSED write "An open trap door leads down into the cargo hold." return break endif write "A trap door lies closed at your feet." return } object s_pirates some plain pirates has ANIMATE inventory "pirates" {talk_to write quote "Get back to work!" quote ", a rather seedy looking pirate " write "responds." return } {attack execute "global_pirate_death" } {attack_with_sword execute "global_pirate_death" } {attack_with_knife execute "global_pirate_death" } location bow "Bow" north deck_docked {look write "This is the bow of the ship. Standing here, a strange sensation comes " write "over you, the feeling that you can somehow share the experience of the " write "hundreds of miles this vessel has travelled, the storms it has " write "weathered and the sights it has been witness to. A small group of " write "pirates are here adjusting the rigging." return } object b_pirates some plain pirates has ANIMATE inventory "pirates" {talk_to write "A rough growl is your only reply." return } {attack execute "global_pirate_death" } {attack_with_sword execute "global_pirate_death" } {attack_with_knife execute "global_pirate_death" } location galley "Galley" north hold south cabin up deck_docked {look write "Although cramped, the ship's galley is plentiful and well organised. " write "Old, but comfortable benches surround the main dining table in the " write "centre of the room. The hold can be entered to the north while the " write "captains cabin lies to the south." return } location hold "Hold" south galley no_up "The trap door is far too high to climb through." return {look write "By far the largest room below deck, the hold is currently all but " write "empty. " if trap_door hasnt CLOSED write "Light streams in from an open trap door high above your head." write return break endif write "A tightly shut trap door hangs high above your head." return } object trap_door a trap door has OUT_OF_REACH CLOSED CLOSABLE inventory "trap door" {open_override write "Pulling with all your strength you manage to open the trap door." return ensure noun1 hasnt CLOSED set stern(down) to hold } {close_override write "With a loud slam the trap door falls into position." return ensure noun1 has CLOSED set stern(down) to false } location cabin "Captain's Cabin" north galley {look write "The captains cabin is simply but tastefully decorated with the spoils " write "of his many years at sea travelling to strange, distant lands. A " write "large soft bed fills the centre of the room while a small oak writing " write "desk stands in the corner. Round windows afford a view of the " write "ocean outside." return } object desk a writting desk inventory "writting desk" {examine write "Flicking through the various charts and papers on the desk you come " write "across nothing of interest." return } object bed a plain bed inventory "bed" {look_under if bed has CUSTOM write "There is nothing else of interest under the bed." return break endif write "Bending down to look under the bed you notice a large iron key lying " write "on the floor." return move key to here ensure bed has CUSTOM points 5 } object key an iron key inventory "iron key" described "There is a large iron key lying under the bed." starts limbo mass 2 location deck_docked "Ship's Deck (Docked)" east dock north stern south bow down galley up nest_docked {look write "You are standing on the deck of a large wooden ship. A set of stairs " write "lead down from here while the stern can be reached to the north and " write "the bow to the south. The main mast raises up tall and straight from " write "here with a web of ropes allowing access to the crow's nest hight " write "above your head. A sinister group of pirates are lurking around the " write "top of the gang plank that heads east back onto the docks." return } object pirates some plain pirates has ANIMATE inventory "pirates" {talk_to write "The pirates glare at you then return to their work." return } {attack execute "global_pirate_death" } {attack_with_sword execute "global_pirate_death" } {attack_with_knife execute "global_pirate_death" } location nest_docked "Crow's Nest (Docked)" down deck_docked {look write "Perched precariously in the crow's nest you have a commanding view of " write "the docks and town below. The wind here is strong and bitterly cold." write return } location deck_sea "Ship's Deck (At Sea)" north stern south bow down galley up nest_sea east nowhere no_east "You can't leave the ship whilst at sea." {look write "You are standing on the deck of a large wooden ship. A set of stairs " write "lead down from here while the stern can be reached to the north and " write "the bow to the south. The main mast raises up tall and straight from " write "here with a web of ropes allowing access to the crow's nest hight " write "above your head. All around you the ocean stretches to every horizon. " write "The pirates are all busy working the ropes as the ship rocks endlessly " write "in the moderate swell." return } location nest_sea "Crow's Nest (At Sea)" down deck_sea {look write "Perched precariously in the crow's nest you have a commanding view of " write "the surrounding ocean. The wind on your face is refreshing as the " write "strong aft wind speeds you to your destination." return } location deck_cove "Ship's Deck (In Cove)" north stern south bow down galley up nest_cove east beach {look write "You are standing on the deck of a large wooden ship. A set of stairs " write "lead down from here while the stern can be reached to the north and " write "the bow to the south. The main mast raises up tall and straight from " write "here with a web of ropes allowing access to the crow's nest hight " write "above your head. To the east an improbably long gang plank leads down " write "onto the white sandy beach of a small remote island." return } location nest_cove "Crow's Nest (In Cove)" down deck_cove {look write "Perched precariously in the crow's nest you have a commanding view " write "of the small island below. Anchored on the beach there appears to be " write "a hot air balloon. The sun here is quite warm." return } location beach "Beach" west deck_cove north island up balloon_beach in balloon_beach {look write "You are standing on the beach of a small island somewhere in the " write "northern sea. A small trail heads north through a group of palm trees " write "over a hill while the ship can be boarded to the west. Anchored here " write "is a silk hot air balloon. Small wooden footholds enable you " write "to climb easily up into the basket." return } object i_pirates some plain pirates has ANIMATE inventory "pirates" {talk_to write "The pirates are all too busy to pay you any attention." return } {attack execute "global_pirate_death" } {attack_with_sword execute "global_pirate_death" } {attack_with_knife execute "global_pirate_death" } location island "Island" south beach east nowhere no_east "The guard raises his sword to block your path." {look write "You are standing at the western end of a small island. A narrow trail " write "heads south while a small cave can be entered to the east." return } object sword a broad sword inventory "broad sword" described "A finely crafted broad sword rests gently at your feet." starts childof guard mass 10 {examine write "The quite large and made from the finest steel. It's handle is both " write "ornate and comfortable to the hand. Overall the sword feels quite " write "balanced, obviously of a fine make." return } object guard a plain guard has ANIMATE inventory "guard" described "There is a guard standing here blocking the entrance to the cave." {ask_for_sword write "Nice try..." return } {examine if guard hasnt DEAD write "The guard is standing here blocking the enterance to the cave. " write "This duty is facilitated by a rather large sword which he is " write "brandishing menacingly." return break endif write "The guards body lies slumped on the ground by the entrance to the " write "cave." return } {attack_with_knife write "Glancing from one side to the other you approach the guard, smile " write "sweetly, put you arm around his shoulder then stick the knife between " write "his ribs. Dropping his sword, he collapses to the ground." return ensure guard has DEAD describe guard as "The limp corpse of the guard lies here." describe knife as "A long blood stained knife rests here." ensure knife has CUSTOM set here(east) to cave move sword to here } {attack write "You walk up to the guard and punch him fair and square on the nose. " write "Shaking his head clear the guard removes your's with one almighty " write "swing of his sword." return execute "global_death" } location cave "Cave" west island {look write "This is a small dry cave deep in the side of hill. The only exit from " write "here is back west. There is a wooden chest here half buried in the " write "sand." return } object chest a plain chest has CLOSABLE LOCKABLE LOCKED CLOSED inventory "chest" {unlock_with_key write "You insert the key into the lock of the chest and turn it " write "producing an audible click." return ensure chest hasnt LOCKED } {lock_with_key write "You lock the chest using the key." return ensure chest has LOCKED } object crystal a large crystal inventory "large crystal" described "A crystal of unparalleled beauty rests at your feet." mass 10 starts childof chest {examine write "The crystal, almost the size of a small apple, sparkles with the " write "clarity and purity of the brightest star on a clear winter's night." write return } {insert_in_depression write "Wiping away a thin film of slim, you stand of the tips of your toes " write "and insert the crystal in the circular depression in the ceiling. As " write "you do so it begins to glow, showering the bare tree in a golden " write "light. Moments later, a radiant pink flower grows out from the tip of " write "one of the upper branches before your very eyes." return move pink_flower to here move crystal to depression points 5 } {give_to_angel write "Examining the crystal the angel's eye's light up, " quote "Very nice " write "indeed. Okay, on your bike..." return return more move crystal to angel set kryten(location) to church ensure monk has CUSTOM write return look } {global_crystal_stolen write "Seeing you with the crystal a group of sailors descend upon you and " write "tackle you to the ground. Once back of your feet they lead take you to " write "the captain who on realising you to be an intruder, orders your " write "execution." return execute "global_death" } location balloon_beach "Balloon (On Beach)" down beach out beach {look write "You are standing in a large wicker basket suspended beneath a " write "balloon of silk that is filled with hot air. Just above your head, a " write "crude furnace idles with a low flame keeping the balloon inflated. " write "Climbing down, out of the basket leads onto a small, white sand beach." write return } object burner a plain burner inventory "burner" {examine write "The burner is suspended just above your head, below the opening to the " write "balloon. A large pipe leads from the burner to gas tank near your " write "feet. Halfway along the pipe is a valve with small tap attached." return } object tap a plain tap inventory "tap" {turn toggle TAP_POSITION if TAP_POSITION = true write "You turn the tap to the open position. As you do so, the burner " write "splutters then emits a tall hot flame causing the balloon to rise " write "gently into the air." return if kryten(location) = balloon_beach write return "Below you many sailors gather, waving cutlasses " write "menacingly in your direction as the balloon blows eastward, " write "towards the mainland." return return break endif if TAP_POSITION = true if kryten(location) = balloon_balcony execute "global_frombalcony" set kryten(location) to balloon_castle write return break endif if TAP_POSITION = false write "You turn the tap to the closed position. As you do so, the flame " write "above the burner shrinks back to a low idle causing the balloon to " write "begin descending slowly." return return if kryten(location) = balloon_sea write "Before long the balloon splashes down in the middle of the Northern " write "Sea. As the basket begins to sink you notice several shark fins " write "slowly circling you..." return execute "global_death" endif if kryten(location) = balloon_forest write "Before long the balloon's basket has reached the level of the " write "tallest tree tops where is catches, throwing you from the basket " write "to the earth below..." return execute "global_death" endif if kryten(location) = balloon_mountains write "Before long the balloon's basket has reached the level of the " write "mountain range's highest peaks where is catching, throwing you from " write "the basket into a valley several miles below..." return execute "global_death" endif if kryten(location) = balloon_castle write "Before long the balloon's basket comes to rest in the centre " write "of a large balcony at the southern end of a castle." return execute "global_landing" set balcony(up) to balloon_balcony set balcony(in) to balloon_balcony points 5 write return look } {global_frombeach loop if noun3(location) = balloon_beach move noun3 to balloon_sea endif endloop } {global_fromsea loop if noun3(location) = balloon_sea move noun3 to balloon_forest endif endloop } {global_fromforest loop if noun3(location) = balloon_forest move noun3 to balloon_mountains endif endloop } {global_frommountains loop if noun3(location) = balloon_mountains move noun3 to balloon_castle endif endloop } {global_frombalcony loop if noun3(location) = balloon_balcony move noun3 to balloon_castle endif endloop } {global_landing loop if noun3(location) = balloon_castle move noun3 to balloon_balcony endif endloop } object valve a gas valve inventory "gas valve" {examine write "The valve is situated halfway along the pipe between the burner and " write "the gas tank. The valve has a small tap attached to it." return } location balloon_sea "Balloon (Over Sea)" down nowhere no_down "You would fall to your death if you jumped out now." out nowhere no_out "You would fall to your death if you jumped out now." {look write "You are standing in a large wicker basket suspended beneath a " write "balloon of silk that is filled with hot air. Just above your head, a " write "crude furnace burns furiously keeping the balloon aloft. " write "Looking down you can see the ocean far below." return } location balloon_forest "Balloon (Over Forest)" down nowhere no_down "You would fall to your death if you jumped out now." out nowhere no_out "You would fall to your death if you jumped out now." {look write "You are standing in a large wicker basket suspended beneath a " write "balloon of silk that is filled with hot air. Just above your head, a " write "crude furnace burns furiously keeping the balloon aloft. " write "Looking down you can see the tops of the forest trees." return } location balloon_mountains "Balloon (Over Mountains)" down nowhere no_down "You would fall to your death if you jumped out now." out nowhere no_out "You would fall to your death if you jumped out now." {look write "You are standing in a large wicker basket suspended beneath a " write "balloon of silk that is filled with hot air. Just above your head, a " write "crude furnace burns furiously keeping the balloon aloft. " write "Looking down you can see the peaks of a northern mountain range." write return } location balloon_castle "Balloon (Over Castle)" down nowhere no_down "You would fall to your death if you jumped out now." out nowhere no_out "You would fall to your death if you jumped out now." {look write "You are standing in a large wicker basket suspended beneath a " write "balloon of silk that is filled with hot air. Just above your head, a " write "crude furnace burns furiously keeping the balloon aloft. " write "Looking down you can see the balcony of a large castle." return } location balloon_balcony "Balloon (On Balcony)" down balcony out balcony {look write "You are standing in a large wicker basket suspended beneath a " write "balloon of silk that is filled with hot air. Just above your head, a " write "crude furnace idles with a low flame keeping the balloon inflated. " write "Climbing down, out of the basket, leads onto a large balcony." return } {global_death write return " *** YOU HAVE DIED *** " return return execute "global_score" if policy childof player write return "After a momentary feeling of disorientation you realise " write "that you surroundings have changed..." return return more set kryten(location) to heaven move policy to angel look break endif endgame } {global_end write return execute "global_score" write return write "Having killed Eldor and recovered all the items necessary to remove " write "the curse the Historian sets about weaving his magic. Anxious crowds " write "being to gather outside and word spreads that soon the land with " write "prosper again. Before long you, the historian and the councillor " write "emerge from the town hall and announce that the curse has been lifted. " write "Moments later you are carried into the local tavern on the shoulders " write "of the joyous crowd." return return more endgame } {global_movement if kryten has SITTING write return "(Getting off the bench first.)" return return ensure kryten hasnt SITTING endif if here = inn if destination = main_street if mug childof player write quote "Those mugs cost money you know!" quote " the bartender " write "yells as he cuts you off at the door. " quote "I don't know, " write "a man tries to make an honest living..." quote " he mumbles " write "as he takes the mug back to the bar." return move mug to limbo break true endif break false } ; *********************************************************************** ; *** JACL library file by Stuart Allen *** ; *** Release 2, Copyright (C) Plenty Good Software 1996. *** ; *********************************************************************** filter the filter a filter of filter please filter quickly filter carefully filter quietly variable INDEX variable OBJECT_BACKUP variable OXYGEN synonym onto on synonym into in synonym inside in synonym floor ground synonym self myself synonym me myself object kryten name plain myself has ANIMATE inventory "yourself" mass scenery ;[LOCAL] The next 20 lines are local this game. {attack write "You beat your hands upon your chest achieving nothing more than a mild " write "cinematic effect." return } {attack_with_knife write "In a fit of desperation, you slit your throat from ear to ear." return execute "global_death" } {attack_with_sword write "In a fit of desperation, you slit your throat from ear to ear." return execute "global_death" } {examine write "God's gift to grues." return return execute "global_inventory" } {global_death write return " *** YOU HAVE DIED *** " return return execute "global_score" write return endgame } {global_end write return execute "global_score" write return "Congratulations you have completed the adventure!" return return more endgame } {global_grued write return write "Oh dear... Your efforts at stumbling around in the dark trying to " write "find the light switch appear to have been cut tragically short by " write "the salivating fangs of a Grue sinking deep into your person." return execute "global_death" } {global_starved write return write "Collapsing to the ground you lay unconscious for several hours " write "before eventually dying of hunger." return execute "global_death" } grammar say xyzzy ->xyzzy grammar xyzzy ->xyzzy {global_xyzzy write "Suddenly a magical white glove appears floating in the air before you, " write "slaps you several times across the face, then disappears." return } grammar offer to held *present ->help_other grammar help *present ->help_other grammar help out *present ->help_other {global_help_other write "How did you intend to help " noun1 ? return } grammar help ->help {global_help write "Some common verbs to try are..." return return write bold N plain " To travel north." bold " TAKE" plain write " To pick up an object." return write bold S plain " To travel south." bold " DROP" plain write " To drop an object you are carrying." return write bold E plain " To travel east." bold " EXAMINE" plain write " To examine an object closely." return write bold W plain " To travel west." bold " OPEN" plain write " To open an object." return write bold U plain " To travel up." bold " CLOSE" plain write " To close an object." return write bold D plain " To travel down." bold " LOOK" plain write " To read the location description again." return write bold IN plain " To enter location." bold " I" plain write " To see a list of what you are carrying." return write bold OUT plain " To leave a location." bold " EAT" plain write " To eat an object." return write return "Characters can be interacted with using the " write "following..." return return write bold "TALK TO" plain " " return write bold GIVE plain " " bold TO plain " " return write bold ASK plain " " bold FOR plain " " return write bold ASK plain " " bold ABOUT plain " " return write bold TELL plain " " bold ABOUT plain " " return write return "For more specific help type " bold HELP plain ", followed by " write "the topic you require help with." return noturn } grammar help games ->help_games {global_help_games write "`GAMES' REFERS TO MODELS, SIMULATIONS AND GAMES WHICH HAVE TACTICAL " write "AND STRATEGIC APPLICATIONS." return } grammar hug *present ->hug grammar comfort *present ->hug grammar cuddle *present ->hug grammar console *present ->hug {global_hug if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif if noun1 hasnt ANIMATE write "Odd." return break endif write "I'm sure " noun1 " feels a whole lot better now." return } grammar kiss *present ->kiss grammar snog *present ->kiss {global_kiss if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif write "Hmmmmmm..." return } grammar pick *present with *held ->pick_with {pick_with if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif write "You can't pick " noun1 " with " noun2 . return } grammar rub *present ->rub grammar pat *present ->rub grammar stroke *present ->rub {global_rub if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif write "I'm sure " noun1 " feels a lot better now." return } grammar rub *present with *held ->rub_with grammar stroke *present with *held ->rub_with grammar pat *present with *held ->rub_with {global_rub_with if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif write "They both just get a little warmer." return } grammar lick *present ->lick grammar taste *present ->lick {global_lick if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif write "Yeuucck!" return } grammar pull *present ->pull grammar yank *present ->pull grammar tug *present ->pull {global_pull if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif write "You can't pull " noun1 . return } grammar break *present ->break grammar smash *present ->break grammar crush *present ->break grammar destroy *present ->break grammar wrech *present ->break grammar crack *present ->break {global_break if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif write "Don't be so destructive." return } grammar clean *present ->clean grammar wipe *present ->clean grammar scrub *present ->clean grammar polish *present ->clean {global_clean if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif write "That's very thoughtful of you." return } grammar swear ->swear grammar shit ->swear grammar crap ->swear grammar bollocks ->swear grammar bugger ->swear grammar smeg ->swear {global_swear write "Delightful." return } grammar yell at *present ->yell_at grammar scream at *present ->yell_at grammar roar at *present ->yell_at {global_yell_at write "Oooo scary..." return } grammar pay *present ->pay grammar reimburse *present ->pay {global_pay write "You can't pay" noun1 . return } grammar order *anywhere ->order grammar buy *anywhere ->order {global_order write "Your order appears to have fallen on deaf ears." return } grammar knock on *present ->knock_on grammar rap on *present ->knock_on {global_knock_on if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif write "Devastating productive..." return } grammar play *held ->play {global_play write "You can't play " noun1 . return noturn } grammar fill *held with *present ->fill_with {global_fill_with if noun2 has OUT_OF_REACH write Noun2 " is out of reach." return break endif if noun1 hasnt CONTAINER write "You can't fill " noun1 . return break endif if noun1 has CLOSABLE if noun1 has CLOSED write Noun1 " is closed." return noturn break endif if noun1(info) < noun2(mass) write "There is not enough room in " noun1 . return noturn break endif override if noun2 hasnt LIQUID write "You can only fill " noun1 " with a liquid." return break endif write "You fill " noun1 " with " noun2 . return move noun1 to noun2 } grammar fill *held ->fill {global_fill write "What did you want to fill " noun1 " with?" return noturn } grammar stand ->stand grammar stand up ->stand {global_stand if kryten has SITTING write "Using your arms to push yourself off the bench, you stand up." write return ensure kryten hasnt SITTING break endif write "You are already standing." return } grammar sit on *present ->sit_on grammar sit in *present ->sit_on {global_sit_on if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif write "You can't sit on " noun1 . return } grammar empty *present ->take_all_from grammar pick up everything on *present ->take_all_from grammar pick up everything from on *present ->take_all_from grammar take everything on *present ->take_all_from grammar take everything from on *present ->take_all_from grammar pick up everything in *present ->take_all_from grammar pick up everything from in *present ->take_all_from grammar take everything in *present ->take_all_from grammar take everything from in *present ->take_all_from grammar pick everything up from *present ->take_all_from grammar pick up everything from *present ->take_all_from grammar take everything from *present ->take_all_from grammar pick everything up from *present ->take_all_from synonym taek take {global_take_all_from if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif if noun1 has ANIMATE write "You will have to ask " noun1 " for anything that you want." return break endif if noun1 hasnt CONTAINER write "It's a bit hard to know what to say to that..." return break endif if noun1 has CLOSED write "It's going to be a bit hard to take anything from " noun1 " while " write "it is closed." return break endif set INDEX to 0 loop if noun3 childof noun1 if noun3(mass) != scenery if noun3 hasnt LIQUID if noun3(mass) <= MAX_CARRIED set OBJECT_BACKUP to noun1 proxy "take " noun3 set noun1 to OBJECT_BACKUP increment INDEX endif if noun3 childof noun1 if noun3(mass) != scenery if noun3 hasnt LIQUID if noun3(mass) > MAX_CARRIED write "You are carrying too much to take " noun3 . return increment INDEX endif if noun3 childof noun1 if noun3(mass) != scenery if noun3(mass) <= MAX_CARRIED if noun3 has LIQUID write Noun4 " runs through your fingers." return increment INDEX endif endloop if INDEX = 0 write "I don't see what you are referring to." return endif } grammar pick everything up ->take_all grammar pick up everything ->take_all grammar take everything ->take_all synonym all everything {global_take_all set INDEX to 0 loop if noun3(location) = here if noun3(mass) != scenery if noun3 hasnt LIQUID if noun3(mass) <= MAX_CARRIED proxy "take " noun3 increment INDEX endif if noun3(location) = here if noun3(mass) != scenery if noun3 hasnt LIQUID if noun3(mass) > MAX_CARRIED write "You are carrying too much to take " noun3 . return increment INDEX endif if noun3(location) = here if noun3(mass) != scenery if noun3(mass) <= MAX_CARRIED if noun3 has LIQUID write Noun4 " runs through your fingers." return increment INDEX endif endloop if INDEX = 0 write "I don't see what you are referring to." return endif } grammar pick *here up ->take grammar pick up *here ->take grammar take *here ->take grammar pick *here ->take synonym get take synonym steal take synonym snatch take synonym snaffle take {global_take if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif if noun1(mass) >= heavy write "You can't be serious..." return noturn break endif if noun1(mass) > MAX_CARRIED write "You are carrying too much to take " noun1 . return noturn break endif if noun1 has LIQUID write Noun1 " runs through your fingers." return noturn break endif override write "You take " noun1 . return move noun1 to player ensure noun1 has TOUCHED } grammar drop everything ->drop_all grammar put everything down ->drop_all grammar put everything on ground ->drop_all grammar put down everything ->drop_all grammar lose everything ->drop_all {global_drop_all if here has ON_WATER write "Dropping everything you own into the water probably isn't such " write "a great idea." return break endif set INDEX to 0 loop if noun3 childof player if noun3 hasnt WEARABLE proxy "drop " noun3 increment INDEX endif if noun3 childof player if noun3 has WEARABLE if noun3 hasnt WORN proxy "drop " noun3 increment INDEX endif if noun3 childof player if noun3 has WEARABLE if noun3 has WORN write "You must first remove " noun3 . return increment INDEX endif endloop if INDEX = 0 write "You are not carrying anything." return endif } grammar drop *held ->drop grammar put *held down ->drop grammar put *held on ground ->drop grammar put down *held ->drop grammar lose *held ->drop {global_drop if noun1 has WEARABLE if noun1 has WORN write "You must first remove " noun1 . return noturn break endif override if here has ON_WATER write "You drop " noun1 " into the water where it rapidly sinks, " write "disappearing from site." return move noun1 to limbo break endif write "You drop " noun1 . return move noun1 to here } grammar insert *held on *present ->insert_on grammar poke *held on *present ->insert_on synonym wedge insert synonym thrust insert synonym put insert {global_insert_on if noun2 has OUT_OF_REACH write Noun2 " is out of reach." return break endif if noun2 childof noun1 write "I'm afraid that's just not possible." return noturn break endif if noun1 has WEARABLE if noun1 has WORN write "You must first remove " noun1 . return noturn break endif if noun2 hasnt SURFACE write "There isn't a flat surface on " noun2 . return noturn break endif if noun2(info) < noun1(mass) write "There is not enough room on " noun2 " for " noun1 . return noturn break endif override write "You put " noun1 " on " noun2 . return move noun1 to noun2 } grammar insert *held in *present ->insert_in grammar poke *held in *present ->insert_in {global_insert_in if noun2 has OUT_OF_REACH write Noun2 " is out of reach." return break endif if noun2 childof noun1 write "I'm afraid that's just not possible." return noturn break endif if noun1 has WEARABLE if noun1 has WORN write "You must first remove " noun1 . return noturn break endif if noun2 hasnt CONTAINER write Noun2 " isn't designed to receive " noun1 . return noturn break endif if noun2 has CLOSED write Noun2 " is closed." return noturn break endif if noun2(info) < noun1(mass) write "There is not enough room in " noun2 " for " noun1 . return noturn break endif override write "You put " noun1 " in " noun2 . return move noun1 to noun2 } grammar insert everything in *present ->insert_all_in grammar poke everything in *present ->insert_all_in {global_insert_all_in if noun1 hasnt CONTAINER write Noun1 " isn't designed to hold things." return noturn break endif if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif if noun1 has CLOSED write Noun1 " is closed." return noturn break endif set INDEX to 0 loop if noun3 !childof player endloop execute "global_encumbered" break endif if noun3 = noun1 endloop execute "global_encumbered" break endif if noun3 has WEARABLE if noun1 has WORN write "You must first remove " noun3 " . return increment INDEX endloop break endif set OBJECT_BACKUP to noun1 proxy "insert " noun3 " in " noun1 set noun1 to OBJECT_BACKUP increment INDEX endloop } grammar insert everything on *present ->insert_all_on {global_insert_all_on if noun1 hasnt SURFACE write "There is no flat surface on the " noun1 " to put things." return noturn break endif if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif set INDEX to 0 loop if noun3 !childof player endloop execute "global_encumbered" break endif if noun3 = noun1 endloop execute "global_encumbered" break endif if noun3 has WEARABLE if noun1 has WORN write "You must first remove " noun3 " . return increment INDEX endloop break endif set OBJECT_BACKUP to noun1 proxy "insert " noun3 " on " noun1 set noun1 to OBJECT_BACKUP increment INDEX endloop } {global_encumbered if INDEX = 0 write "You are not carrying anything." return } grammar ask *present for *anywhere ->ask_for {global_ask_for if here has UNDER_WATER write "Talking under water isn't very easy." return noturn break endif if noun1 hasnt ANIMATE write Noun1 " seems to be ignoring your request." return break endif if noun1 has DEAD write Noun1 " is a bit too dead to respond." return noturn break endif if noun1 = CURRENT_PLAYER write "I think it might be time to take a break and get a cup of tea." return break endif if noun2 childof noun1 if noun2(mass) > MAX_CARRIED write "With your current load you are unable to accept " noun2 . return noturn break endif if noun2 childof noun1 override write Noun1 " hands you " noun2 . return move noun2 to player break endif write Noun1 " doesn't seem to have " noun2 . return } grammar tell *present about *anywhere ->tell_about grammar tell *present all about *anywhere ->tell_about {global_tell_about if here has UNDER_WATER write "Talking under water isn't very easy." return noturn break endif if noun1 hasnt ANIMATE write "I don't think talking to " noun1 " is going to help somehow." return noturn break endif if noun1 has DEAD write Noun1 " is a bit too dead to even pretend to be interested." return noturn break endif if noun1 = CURRENT_PLAYER write "It's the first sign of madness you know..." return break endif override write Noun1 " seems fascinated by your story about " noun2 . return } grammar ask *present about *anywhere ->ask_about grammar ask *present all about *anywhere ->ask_about {global_ask_about if here has UNDER_WATER write "Talking under water isn't very easy." return noturn break endif if noun1 hasnt ANIMATE write "I don't think talking to " noun1 " is going to help somehow." return noturn break endif if noun1 has DEAD write Noun1 " is a bit too dead to tell you anything useful." return noturn break endif if noun1 = CURRENT_PLAYER write "It's the first sign of madness you know..." return break endif override write Noun1 " reluctantly admits to knowing little about " noun2 . return } grammar offer *held to *present ->give_to grammar give *held to *present ->give_to grammar give over *held to *present ->give_to {global_give_to if noun2 hasnt ANIMATE write "You can't give " noun1 " to " noun2 . return noturn break endif if noun2 = CURRENT_PLAYER write "I think it might be time to take a break and get a cup of tea." return break endif if noun2 has OUT_OF_REACH write Noun2 " is out of reach." return break endif override ;[LOCAL] The next 4 lines are local to this game. if noun2 = angel write "Don't bother, it's not nearly good enough." return break endif move noun1 to noun2 write "You give " noun1 " to " noun2 . return } grammar move *present ->move grammar push against *present ->move grammar push *present ->move {global_move if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif if noun1(mass) >= heavy write "You can't be serious..." return noturn break endif if noun1 has LIQUID write Noun1 " runs through your fingers." return noturn break endif if noun1 has WEARABLE if noun1 has WORN write "You must first remove " noun1 . return noturn break endif if noun1 childof player override write "You juggle " noun1 " in your hands." return break endif override write "You move " noun1 " a short distance to one side." return ensure noun1 has TOUCHED } grammar read *present ->read {global_read write "There is nothing on " noun1 " to read." return } grammar look down ->look_down {global_look_down if here has TIGHT_ROPE write "You see the ground far below." return break endif if here has MID_AIR write "You see the ground far below." return break endif if here has ON_WATER write "You can't see beyond the surface of the water." return break endif write "You take a moment to admire your investigating feet." return } grammar look up *anywhere in *present ->look_up_in {global_look_up_in write "You don't find any reference to " noun1 " in " noun2 . return } grammar look up ->look_up {global_look_up if here has OUTDOORS write "You scan the sky with your eyes to no avail." return break endif if here has UNDER_WATER write "You can see the surface of the water ripling above your head." return break endif write "There is nothing unusual about the ceiling." return } grammar feel *present ->feel grammar touch *present ->feel grammar grope *present ->feel {global_feel if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif if noun1 has ANIMATE write "I'm not so sure that would be polite." return break endif write "Feels just like " noun1(inventory) . return } grammar smell *present ->smell grammar sniff *present ->smell {global_smell write "Smells an awful lot like " noun1(inventory) . return } grammar taste *present ->taste grammar lick *present ->taste {global_taste if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif if noun1 has ANIMATE write "You are one sick puppy." return break endif write "Tastes just like you would expect " noun1(inventory) " to taste." return } grammar look *present ->examine grammar look at *present ->examine grammar look in *present ->examine grammar look on *present ->examine grammar examine *present ->examine synonym watch examine synonym search examine synonym x examine synonym exmaine examine synonym examein examine synonym examien examine {global_examine if noun1 hasnt CLOSABLE if noun1 hasnt CONTAINER if noun1 hasnt SURFACE write "There is nothing special about " noun1 . return break endif if noun1 has CLOSABLE execute "global_details" break endif set INDEX to 0 loop if noun3 childof noun1 increment INDEX endif endloop if INDEX = 0 write "There is nothing special about " noun1 . return break endif execute "global_details" } {global_details if noun1 has CLOSABLE if noun1 hasnt CLOSED write Noun1 " is open" endif if noun1 has CLOSABLE if noun1 has CLOSED write Noun1 " is closed." return break endif if noun1 has CONTAINER execute "global_contents" break endif } {global_contents set INDEX to 0 loop if noun3 childof noun1 increment INDEX endif endloop if INDEX = 0 if noun1 has CLOSABLE if noun1 has CONTAINER write . return break endif if INDEX = 0 if noun1 hasnt SURFACE write return break endif if INDEX = 0 break endif if noun1 has CONCEALING break endif if noun1 has ANIMATE write Noun1 " is carrying " endif if noun1 has SURFACE write "On " noun1 " there is " endif if noun1 has CONTAINER if noun1 has CLOSABLE write " and contains " endif if noun1 has CONTAINER if noun1 hasnt CLOSABLE write Noun1 " contains " endif loop if noun3 childof noun1 decrement INDEX if INDEX > 1 write noun3(inventory) ", " endif if noun3 childof noun1 if INDEX = 1 write noun3(inventory) " and " endif if noun3 childof noun1 if INDEX = 0 write noun3(inventory) . return break endif endloop } grammar inventory ->inventory synonym i inventory synonym inv inventory {global_inventory set INDEX to 0 loop if noun3 childof player increment INDEX endif endloop if INDEX = 0 write "You are empty handed." return break endif write "You are carrying " loop if noun3 childof player decrement INDEX write noun3(inventory) execute "global_additional" if INDEX = 0 write . return break endif endloop } {global_additional if noun3 has WEARABLE if noun3 has WORN write " (being worn)" endif if noun3 has LUMINOUS write " (providing light)" endif if noun3 has ON write " (on)" endif if noun3 has CLOSABLE if noun3 hasnt CLOSED write " (open)" endif if INDEX > 1 write ", " endif if INDEX = 1 write " and " endif } grammar relax ->relax {global_relax write "Taking a deep breath you release the tension from your mind and " write "muscles as you exhale slowly." return } grammar thanks ->thankyou grammar thankyou ->thankyou {global_thankyou write "You're welcome." return } grammar thank *present ->thank {global_thank if noun1 hasnt ANIMATE write "Cooky." return break endif write Noun1 " nods." return } grammar greet *present ->greet {global_greet if noun1 hasnt ANIMATE write "I wouldn't hold your breath waiting for a reply." return break endif write Noun1 " smiles and returns your greeting." return } grammar score ->score {global_score noturn if TOTAL_MOVES = 1 write "Your score is " CURRENT_SCORE "% in 1 move giving you the rank of " endif if TOTAL_MOVES != 1 write "Your score is " CURRENT_SCORE "% in " TOTAL_MOVES " moves giving " write "you the rank of " endif if CURRENT_SCORE = 0 write "Pleb's Assistant." return break endif if CURRENT_SCORE < 20 write "Self Professed Hero." return break endif if CURRENT_SCORE < 40 write "Amateur Explorer." return break endif if CURRENT_SCORE < 60 write "Explorer." return break endif if CURRENT_SCORE < 80 write "Novice Adventurer." return break endif if CURRENT_SCORE < 100 write "Adventurer." return break endif write "Master Adventurer." return } grammar open *present ->open {global_open if noun1 hasnt CLOSABLE write "You can't open " noun1 . return noturn break endif if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif if noun1 has LOCKED write Noun1 " is locked." return noturn break endif if noun1 hasnt CLOSED write Noun1 " is already open." return noturn break endif override write "You open " noun1 . return ensure noun1 hasnt CLOSED } grammar close *present ->close synonym shut close {global_close if noun1 hasnt CLOSABLE write "You can't close " noun1 . return noturn break endif if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif if noun1 has CLOSED write Noun1 " is already closed." return noturn break endif override write "You close " noun1 . return ensure noun1 has CLOSED } grammar lock *present ->lock {global_lock if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif if noun1 has LOCKABLE if noun1 has LOCKED write Noun1 " is already locked." return break endif if noun1 hasnt LOCKABLE write "You can't lock " noun1 . return break endif override write "What did you want to lock " noun1 " with?" return } grammar lock *present with *held ->lock_with {global_lock_with if noun1 hasnt LOCKABLE write "You can't lock " noun1 . return noturn break endif if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif if noun1 has LOCKED write Noun1 " is already locked." return break endif override write "You can't lock " noun1 " with " noun2 . return noturn } grammar unlock *present ->unlock {global_unlock if noun1 hasnt LOCKABLE write "You can't unlock " noun1 . return noturn break endif if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif if noun1 hasnt LOCKED write Noun1 " is already unlocked." return noturn break endif override write "What did you want to unlock " noun1 " with?" return } grammar unlock *present with *held ->unlock_with {global_unlock_with if noun1 hasnt LOCKABLE write "You can't unlock " noun1 . return noturn break endif if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif if noun1 hasnt LOCKED write Noun1 " is already unlocked." return break endif override write "You can't unlock " noun1 " with " noun2 . return noturn } grammar show *held to *present ->show_to grammar show off *held to *present ->show_to grammar display *held to *present ->show_to grammar present *held to *present ->show_to {global_show_to if noun1 = noun2 write "You can't show " noun1 " to itself." return noturn break endif override write Noun2 " doesn't seem overly impressed by " noun1 . return } grammar attack *present ->attack synonym thump attack synonym hit attack synonym fight attack synonym kill attack synonym murder attack synonym punch attack {global_attack if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif if noun1 has ANIMATE if noun1 has DEAD write Noun1 " is already dead." return noturn break endif override write "Attacking " noun1 " with your hands has little effect." return } grammar attack *present with *held ->attack_with {global_attack_with if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif if noun2 has LIQUID write Noun1 " runs through your fingers." return noturn break endif if noun2 has WEARABLE if noun1 has WORN write "You must first remove " noun1 . return noturn break endif if noun1 has ANIMATE if noun1 has DEAD write Noun1 " is already dead." return noturn break endif override write "Attacking " noun1 " with " noun2 " has little effect." return } grammar jump on to *here ->jump_on grammar hop on to *here ->jump_on grammar leap on to *here ->jump_on grammar jump on *here ->jump_on grammar hop on *here ->jump_on grammar leap on *here ->jump_on grammar stamp on *here ->jump_on grammar stand on *here ->jump_on {global_jump_on write "You can't jump on " noun1 . return noturn } grammar jump ->jump grammar jump up and down ->jump grammar jump around ->jump grammar jump about ->jump {global_jump if here has MID_AIR write "Not likely." return break endif if here has TIGHT_ROPE write "Something tells me that might be a bit too dangerous, not to " write "mention totally unnecessary." return break endif if here has UNDER_WATER write "Whilst underwater?" return break endif if here has ON_WATER write "Whilst in water?" return break endif write "Consider it done." return } grammar yes ->yes {global_yes write "That was a rhetorical question." return noturn } grammar no ->no {global_no write "That was a rhetorical question." return noturn } grammar blow *held at *here ->blow_at grammar blow *held to *here ->blow_at {global_blow_at write "You can't blow " noun1 " at " noun2 . return } grammar throw *held at *here ->throw_at grammar throw *held to *here ->throw_at synonym chuck throw synonym pitch throw synonym lob throw synonym hurl throw {global_throw_at if noun1 has WEARABLE if noun1 has WORN write "You must first remove " noun1 . return noturn break if noun2(location) > 100 write "You can't throw " noun1 " at " noun2 " while it is in " write "something else." return noturn break endif override if kryten(location) >= ben_bridge if kryten(location) <= ben_waterfall write "You throw " noun1 " at " noun2 " which it bounces off of landing " write "in the water where it rapidly sinks, disappearing from site." write return move noun1 to limbo break endif write Noun1 " bounces off " noun2 " and lands on the ground." return move noun1 to here } grammar shed *present ->remove grammar remove *present ->remove grammar take off *present ->remove grammar doff *present ->remove {global_remove if noun1 has WEARABLE if noun1 has WORN override ensure noun1 hasnt WORN write "You remove " noun1 . return break endif write "You are not wearing " noun1 . return noturn } grammar wear *held ->wear grammar put on *held ->wear grammar put *held on ->wear grammar don *held ->wear {global_wear if noun1 hasnt WEARABLE write "You can't wear " noun1 . return noturn break endif if noun1 has WORN write "You are already wearing " noun1 . return noturn break endif override ensure noun1 has WORN write "You put on " noun1 . return } grammar talk to *present ->talk_to synonym speak talk {global_talk_to if here has UNDER_WATER write "Talking under water isn't very easy." return noturn break endif if noun1 hasnt ANIMATE write "I don't think talking to " noun1 " is going to help somehow." return noturn break endif if noun1 has DEAD write Noun1 " is a bit too dead to respond." return noturn break endif if noun1 = CURRENT_PLAYER write "It's the first sign of madness you know..." return break endif override write Noun1 " doesn't appear very interested in a conversation." return } grammar eat *held ->eat grammar consume *held ->eat grammar munch *held ->eat grammar gobble *held ->eat {global_eat write "You can't eat " noun1 . return noturn } grammar drink *anywhere ->drink {global_drink set noun3 parentof noun1 if noun3 has CLOSED write "I don't see " noun1 " here." return noturn break endif if noun3(location) = here override write "You drink " noun1 . return break endif if noun3(location) = 100 override write "You drink " noun1 . return break endif write "I don't see " noun1 " here." return noturn } grammar press *present ->press {global_press if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif if noun1 has LIQUID write "A wet hand is your only reward." return break endif override write "Pressing " noun1 " has no discernible effect." return } grammar light *present with *held ->light_with grammar burn *present with *held ->light_with grammar ignite *present with *held ->light_with {global_light_with if here has UNDER_WATER write "I don't think you are going to be lighting anything under water." write return noturn break endif if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif if noun1 hasnt FLAMMABLE write "You can't light " noun1 " with " noun2 . return noturn break endif if noun2 hasnt IGNITABLE write "I don't see how you can light " noun1 " using " noun2 . return noturn break endif if noun1(info) = 0 write Noun1 " has run out." return break endif if noun1 has BURNING write Noun1 " is already lit." return noturn break endif override write "You light " noun1 " using " noun2 . return ensure noun1 has BURNING ensure noun1 has LUMINOUS } grammar burn *present ->light grammar light *present ->light grammar ignite *present ->light {global_light if here has UNDER_WATER write "I don't think you are going to be lighting anything under water." write return noturn break endif if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif if noun1 has IGNITABLE override write "You produce a brief flame." return break endif if noun1 hasnt FLAMMABLE write "You can't light " noun1 . return noturn break endif if noun1 has BURNING write Noun1 " is already alight." return noturn break endif write "What did you intent to light " noun1 " with?" return noturn } grammar extinguish *present ->extinguish grammar put out *present ->extinguish {global_extinguish if noun1 hasnt BURNING write Noun1 " is not lit." return noturn break endif if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif override write "You put out " noun1 . return ensure noun1 hasnt BURNING ensure noun1 hasnt LUMINOUS } grammar swim west ->swim_west synonym paddle swim {global_swim_west if here has UNDER_WATER move player west break endif if here has ON_WATER move player west break endif write "I don't see how you can swim when you are not in water." return noturn } grammar west ->west grammar go west ->west grammar walk west ->west synonym w west {global_west move player west } grammar swim east ->swim_east {global_swim_east if here has UNDER_WATER move player east break endif if here has ON_WATER move player east break endif write "I don't see how you can swim when you are not in water." return noturn } grammar east ->east grammar go east ->east grammar walk east ->east synonym e east {global_east move player east } grammar swim south ->swim_south {global_swim_south if here has UNDER_WATER move player south break endif if here has ON_WATER move player south break endif write "I don't see how you can swim when you are not in water." return noturn } grammar south ->south grammar go south ->south grammar walk south ->south synonym s south {global_south move player south } grammar swim southeast ->swim_southeast {global_swim_southeast if here has UNDER_WATER move player southeast break endif if here has ON_WATER move player southeast break endif write "I don't see how you can swim when you are not in water." return noturn } grammar southeast ->southeast grammar go southeast ->southeast grammar walk southeast ->southeast synonym se southeast {global_southeast move player southeast } grammar swim southwest ->swim_southwest {global_swim_southwest if here has UNDER_WATER move player southwest break endif if here has ON_WATER move player southwest break endif write "I don't see how you can swim when you are not in water." return noturn } grammar southwest ->southwest grammar go southwest ->southwest grammar walk southwest ->southwest synonym sw southwest {global_southwest move player southwest } grammar swim north ->swim_north {global_swim_north if here has UNDER_WATER move player north break endif if here has ON_WATER move player north break endif write "I don't see how you can swim when you are not in water." return noturn } grammar north ->north grammar go north ->north grammar walk north ->north synonym n north {global_north move player north } grammar swim northeast ->swim_northeast {global_swim_northeast if here has UNDER_WATER move player northeast break endif if here has ON_WATER move player northeast break endif write "I don't see how you can swim when you are not in water." return noturn } grammar northeast ->northeast grammar go northeast ->northeast grammar walk northeast ->northeast synonym ne northeast {global_northeast move player northeast } grammar swim northwest ->swim_northwest {global_swim_northwest if here has UNDER_WATER move player northwest break endif if here has ON_WATER move player northwest break endif write "I don't see how you can swim when you are not in water." return noturn } grammar northwest ->northwest grammar go northwest ->northwest grammar walk northwest ->northwest synonym nw northwest {global_northwest move player northwest } grammar climb up *here ->climb_up grammar walk up *here ->climb_up grammar go up *here ->climb_up {global_climb_up write "You can not climb up " noun1 . return } grammar climb down *here ->climb_down grammar walk down *here ->climb_down grammar go down *here ->climb_down {global_climb_down write "You can not climb down " noun1 . return } grammar climb *here ->climb grammar scale *here ->climb {global_climb write "You can not climb up " noun1 . return } grammar swim in ->swim_in {global_swim_in if here has UNDER_WATER move player in break endif if here has ON_WATER move player in break endif write "I don't see how you can swim when you are not in water." return noturn } grammar get in ->in grammar climb in ->in grammar in ->in grammar enter ->in grammar walk in ->in grammar get in ->in {global_in move player in } grammar swim out ->swim_out {global_swim_out if here has UNDER_WATER move player out break endif if here has ON_WATER move player out break endif write "I don't see how you can swim when you are not in water." return noturn } grammar get out ->out grammar out ->out grammar leave ->out grammar climb out ->out grammar walk out ->out grammar go out ->out {global_out move player out } grammar surface ->swim_up grammar swim up ->swim_up {global_swim_up if here has UNDER_WATER move player up break endif if here has ON_WATER move player up break endif write "I don't see how you can swim when you are not in water." return noturn } grammar up ->up grammar climb ->up grammar climb up ->up grammar go up ->up grammar walk up ->up synonym u up {global_up move player up } grammar swim down ->swim_down grammar dive down ->swim_down grammar dive ->swim_down {global_swim_down if here has UNDER_WATER move player down break endif if here has ON_WATER move player down break endif write "I don't see how you can swim when you are not in water." return noturn } grammar down ->down grammar climb down ->down grammar go down ->down grammar walk down ->down synonym d down {global_down move player down } grammar look ->look_around grammar watch ->look_around synonym l look synonym ls look {global_look_around look } grammar look under *present ->look_under synonym beneath under {global_look_under if noun1(mass) = scenery write "You can't see under " noun1 . return noturn break endif write "There is nothing unusual under " noun1 . return } grammar look behind *present ->look_behind {global_look_behind if noun1(mass) = scenery write "You can't see behind " noun1 . return noturn break endif write "There is nothing unusual behind " noun1 . return } grammar look through *present ->look_through {global_look_through write "You can't look through " noun1 . return noturn } grammar look at *present through *held ->look_at_through {global_look_at_through if noun1 = noun2 write "You can't look at " noun1 " through itself." return noturn break endif write "You can't look at " noun1 " through " noun2 . return noturn } grammar wait ->wait synonym z wait {global_wait write "Time passes..." return } grammar listen ->listen {global_listen write "You don't hear anything out of the ordinary." return } grammar listen to *present ->listen_to {global_listen_to write "You don't hear anything out of the ordinary." return } grammar rotate *present ->turn grammar turn *present ->turn grammar twist *present ->turn {global_turn if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif write "You can't turn " noun1 . return noturn } grammar turn on *present ->turn_on grammar turn *present on ->turn_on grammar switch on *present ->turn_on grammar switch *present on ->turn_on {global_turn_on if noun1 hasnt SWITCHABLE write "You can't turn " noun1 " on." return noturn break endif if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif if noun1 has ON write Noun1 " is already on." return noturn break endif override write "You switch on " noun1 . return ensure noun1 has ON } grammar turn off *present ->turn_off grammar turn *present off ->turn_off grammar switch off *present ->turn_on grammar switch *present off ->turn_on {global_turn_off if noun1 hasnt SWITCHABLE write "You can't turn " noun1 " off." return noturn break endif if noun1 has OUT_OF_REACH write Noun1 " is out of reach." return break endif if noun1 hasnt ON write Noun1 " is already off." return noturn break endif override write "You switch off " noun1 . return ensure noun1 hasnt ON } grammar pour *anywhere ->pour {global_pour if noun1 hasnt LIQUID write "You can't pour " noun1 . return noturn break endif set noun3 parentof noun1 if noun3 has CLOSED write "I don't see " noun1 " here." return noturn break endif if noun3 !childof player write "You do not have " noun1 . return noturn break endif override write "You pour " noun1 " all over the ground." return move noun1 to here } grammar pour *anywhere on *present ->pour_on grammar pour *anywhere in *present ->pour_on grammar pour *anywhere over *present ->pour_on {global_pour_on if noun1 hasnt LIQUID write "You can't pour " noun1 . return noturn break endif set noun3 parentof noun1 if noun3 has CLOSED write "I don't see " noun1 " here." return noturn break endif if noun3 !childof player write "You do not have " noun1 . return noturn break endif if noun2 has OUT_OF_REACH write Noun2 " is out of reach." return break endif if noun2 has CONTAINER if noun2 hasnt CLOSED override write "You pour " noun1 " into " noun2 . return move noun1 to noun2 break endif if noun2(location) > objects set noun3 parentof noun2 if noun3 has CONTAINER if noun3 hasnt CLOSED write Noun1 " runs off " noun2 " and goes into " noun3 . return move noun1 to noun3 ;[LOCAL] The next 3 lines are local to this game. if noun2 = branch ensure branch has CUSTOM endif break endif write Noun1 " runs off " noun2 " and goes all over the ground." return move noun1 to limbo } ; Grammar statements beginning with an object must be defined last in the game ; to avoid confusion with verbs that may also be objects such as "drink drink" grammar *present give myself *anywhere ->ask_for grammar *present give *anywhere to myself ->ask_for grammar *present tell myself about *anywhere ->ask_about grammar *present tell myself all about *anywhere ->ask_about grammar *present thanks ->thank grammar *present thankyou ->thank grammar *present hello ->greet grammar *present hi there ->greet grammar *present hi ->greet