!Quest for the Magic Healing Plant !Copyright (c) 1995 !By Adam G Crutchlow Switches v5; Release 2; !Constant DEBUG; Constant Story "'Quest for the Magic Healing Plant'"; Constant Headline "^Copyright 1995, 1996 by Adam G Crutchlow.^Ported from AGT to Inform, 1996.^"; Constant max_score 140; Attribute legible; Include "Parser"; Include "Verblib"; Include "Adname"; ! ROOMS Object dark_cave "Dark Cave" with description "Water drips down from the roof of the small dingy cave. It looks like someone once lived here. There are bits and pieces scattered everywhere. ^^ Exits: Exit.", before [; search: if (noun==cave or pieces && self hasnt general) { give self general; move coin to location; score=score+10; "You discover a small gold coin."; } exit: playerto(mountains); rtrue; ], has light; Nearby pieces "bits and pieces" with description "There are bits and pieces of old clothing and broken furniture strewn about the cave. Anything could be hidden under them.", name "bits" "pieces", has scenery; Nearby cave "cave" class adnc, with description "It is a small cave dimly lit by the light from the entrance. It looks as if it was once inhabited.", name "cave", adname 'dark', has scenery; Object forest "Gloomy Forest" with description "The forest is less dense here. There is a little light breaking through the treetops. A few feet away you can see the remains of a small fire. ^^ Exits: East and Southeast.", e_to forest_b, se_to forest_c, has light; Nearby fire "small fire" class adnc, with description "On closer inspection it seems that many documents and pieces of paper have been burned in this fire.", name "fire", adname "small", before [; search: if (self hasnt general) {give self general; move note to location; score=score+10; "As you rummage through the ashes of the fire you discover an old torn note."; } ], has scenery; Object forest_b "Gloomy Forest" with description "Here the forest is dark and quiet. The trees tower high above you. ^^ Exits: East, West, South and Southeast.", w_to forest, s_to forest_c, e_to grassy_hills, se_to forest_d, has light; Object grassy_hills "Grassy Hills" with description "You stand at the top of one of many grassy hills. The breeze blows gently. From here you can see the forest to the south stretching into the distance, and the mountains to the east. ^^ Exits: East, West, South and Southwest.", w_to forest_b, e_to mountains, s_to forest_d, sw_to forest_c, has light; Object mountains "Mountains" with description "You are at the foot of a large mountain. It is very cold and windy here. Set in the side of the mountain there is an entrance to a cave. A path continues around the mountain to the east. ^^ Exits: East, West, South and Southwest.", w_to grassy_hills, e_to mountain_path, s_to north_road, sw_to forest_d, before [; goin: print "You creep through the entrance to the cave.^"; playerto(dark_cave); rtrue; ], has light; Nearby entrance "cave entrance" with description "It is the entrance to a small dark cave.", name "cave" "entrance", before [; enter: print "You creep through the entrance to the cave.^"; playerto(dark_cave); rtrue; ], has scenery enterable; Object mountain_path "Mountain Path" with description "You are travelling along a rocky mountain path. The rocks are lose and slippery. It would be very dangerous to continue further. ^^ Exits: East and West.", e_to [; deadflag=1; "As you continue along the trecherous path around the mountain, you slip on a small loose rock and tumble over the edge of the path, plumetting several thousand feet to your death on the rocks below. Due to your carelessness, your daughter Crystal became more and more ill as the days went by, until she finally died in searing agony, blinded and paralised by her illness."; ], w_to mountains, has light; Object forest_c "Gloomy Forest" with description "You are standing in the depths of the forest. All you can see is trees. ^^ Exits: North, South, East, Northeast, Northwest and Southeast.", n_to forest_b, nw_to forest, ne_to grassy_hills, e_to forest_d, s_to forest_e, se_to forest_f, has light; Object forest_d "Gloomy Forest" with description "You are in an especially dark part of the forest. You can barely see a thing. ^^ Exits: There are exits in all directions.", n_to grassy_hills, s_to forest_f, e_to north_road, w_to forest_c, nw_to forest_b, ne_to mountains, sw_to forest_e, se_to junction, has light; Object north_road "North Road" with description "You are on the North road, which takes you from the southern part of the forest to the mountains. It appears to be little travelled. ^^ Exits: North, South, West and Southwest.", n_to mountains, s_to junction, w_to forest_d, sw_to forest_f, has light; Object lake "Secluded Lake" with description "You stand on the bank of a beautiful sparkling lake surrounded by many plants of all kinds. There must be well over a thousand different types of plant here. ^^ Exits: East.", e_to stone_wall, has light; Nearby the_lake "lake" with description "The lake is very calm, around it can be seen all kinds of plants.", name "lake" "water", before [; drink: "The water slides down your throat, and you feel refreshed."; ], has scenery; Nearby plants "plants" with description "You have never seen so many different plants before. They have leaves of all shapes and sizes.", name "plants" "leaves" "plant" "leaf", has scenery; Object stone_wall "Edge of Forest" with description "You stand on the edge of the forest. There is a vertical wall of stone to the west. ^^ Exits: South, East, Northeast and Southeast.", ne_to forest_c, e_to forest_e, s_to edge_forest, se_to forest_g, before [; goin: if (wall has general) { print "You step through the opening in the wall.^"; playerto(lake); rtrue; } ], has light; Nearby wall "wall" with description [; if (self has general) "It is a large stone wall carved into the rock face. There is a small opening in it."; "This large stone wall looks as if it was purposely crafted from the rock face for some reason. There is definately no way around it."; ], name "wall" "stone", before [; enter: if (wall has general) { print "You step through the opening in the wall.^"; playerto(lake); rtrue; } ], has scenery; Object forest_e "Gloomy Forest" with description "You are travelling through the forest. Many pairs of eyes seem to be watching you. ^^ Exits: North, South, East, West, Northeast, Southeast and Southwest.", n_to forest_c, s_to forest_g, e_to forest_f, w_to stone_wall, ne_to forest_d, se_to forest_h, sw_to edge_forest, has light; Object forest_f "Gloomy Forest" with description "You are right in the very centre of the forest. Here the trees seem especially dark and threatening. In front of you is what appears to be a pit of some kind. ^^ Exits: There are exits in all directions.", n_to forest_d, s_to forest_h, w_to forest_e, e_to junction, ne_to north_road, nw_to forest_c, se_to road_bend, sw_to forest_g, has light; Nearby pit "pit" with description "You peer inside the pit and discover it has many sharp wooden spikes at the bottom. It appears to be some sort of animal trap.", before [; enter: deadflag=1; "As you climb into the pit you slip on the wet grass around the edge, and fall backwards onto the razor sharp wooden spikes at the bottom, killing you instantly. Hopefully whoever dug this pit wont be too dissapointed with what they've caught."; ], name "pit" "hole", has scenery; Object junction "Road Junction" with description "You are at a junction on the North road. The junction heads off east. ^^ Exits: North, South, East, West, Northwest, Southwest and Southeast.", n_to north_road, s_to road_bend, e_to fountain, w_to forest_f, nw_to forest_d, sw_to forest_h, se_to east_road, has light; Object fountain "Fountain" with description "You find yourself in a small alcove just off the North road. You see a small ornate water fountain here. It seems to have been put here for weary travellers in need of a drink. ^^ Exits: West.", w_to junction, has light; Nearby water_fountain "water fountain" class adnc, with description "This fountain has obviously been frequented by many travellers passing through the region as can be seen by the worn stone sides. It is very decorative. It must have taken a long time to carve all of these designs into the bare stone.", name "fountain" "well" "spring", adname "water", initial "An ornate water fountain stands here.", has open static container; Object edge_forest "Edge of Forest" with description "ou are standing in a small clearing on the edge of the forest surrounded by many large rocks and boulders. ^^ Exits: North, East and Northeast.", n_to stone_wall, e_to forest_g, ne_to forest_e, has light; Object forest_g "Gloomy Forest" with description "You are near the edge of the forest. The trees allow in more light here enabling you to see much more clearly. ^^ Exits: North, East, West, Northwest and Northeast.", n_to forest_e, e_to forest_h, w_to edge_forest, nw_to stone_wall, ne_to forest_f, has light; Object forest_h "Gloomy Forest" with description "You are at the edge of the forest. The forest becomes deeper to the north. ^^ Exits: North, West, East, Northeast and Northwest.", n_to forest_f, w_to forest_g, e_to road_bend, ne_to junction, nw_to forest_e, has light; Object road_bend "North-East Road Bend" with description "The road bends here, taking you either north or east. ^^ Exits: North, West, East and Northwest.", n_to junction, w_to forest_h, e_to east_road, nw_to forest_f, has light; Object east_road "East Road" with description "You are on the East road. To the south and west you can see forest. ^^ Exits: West, East, South, Northwest and Southeast.", nw_to junction, w_to road_bend, e_to east_road_b, s_to woodland, se_to clearing, has light; Object east_road_b "East Road" with description "The road continues in easterly and westerly directions. To the south you can just make out your small cottage in a clearing. ^^ Exits: West, East, South, Southwest and Southeast.", w_to east_road, e_to east_road_c, s_to clearing, sw_to woodland, se_to woodland_b, has light; Object east_road_c "East Road" with description "You are standing on the east road. To the south you can see trees. The path continues east and west. ^^ Exits: West, East, South and Southwest.", w_to east_road_b, e_to east_road_d, s_to woodland_b, sw_to clearing, has light; Object east_road_d "East Road" with description "You are travelling on the East road. The trees get suddenly very dense to the east, whereas to the west you see the road stretch into the distance. ^^ Exits: West, East and Southwest.", w_to east_road_c, e_to east_road_end, sw_to woodland_b, has light; Nearby sign "sign" class adnc, with description "This old sign has been here a very long time. It is badly weathered. The red writing on it seems to suggest it is important. Perhaps you would be well advised to read it.", initial "An old sign stands at the side of the road.", name "sign", adname 'old', before [; read: "The sign says ......^^ 'BEWARE OF THE ORCS !'"; ], has static legible; Object east_road_end "East Road's End" with description "This is the end of the east road. Heading east will take you deep into a very dangerous looking wood. You feel very wary. Going west takes you back to the road. ^^ Exits: West and East.", w_to east_road_d, e_to [; if (orc in self) "The orc won't let you past."; return dark_wood; ], has light; Nearby orc "angry orc" class adnc, with description "This creature is very ugly. He also seems a little peeved that you have disturbed him. Orcs aren't the best choice of creature to go around annoying.", name "orc" "creature" "monster" "beast", adname 'large' 'angry', initial "A large angry orc blocks your path.", before [; attack: if (knife in player) { remove orc; score=score+10; "You thrust the knife deep into the heart of the orc. It screams and writhes about in agony for a few seconds and then falls dead on the floor in a pool of blood.^Two other orcs run out of the nearby trees and drag the body away." ; } "You have nothing with which to kill the orc."; ], has animate; Object dark_wood "Dark Wood" with description "You can barely see anything in the small amount of light penetrating the thick leafy canopy above. You feel as if a hundred pairs of eyes are watching you. You'll be glad to leave this place. A strange carving on a tree near you catches your attention. ^^ Exits: West.", w_to east_road_end, has light; Nearby carving "strange carving" class adnc, with description "The carving looks as if it has been made with a blunt knife. It is difficult to read, but you work out it says something like... ^^ 'Walls have ears'", name "carving", adname 'strange', has scenery; Object woodland "Woodland" with description "This is a quiet peaceful place. Trees gently sway around you. The song of birds can be heard in the treetops. ^^ Exits: North, South, East, Northwest and Northeast.", n_to east_road, s_to woodland_c, e_to clearing, nw_to road_bend, ne_to east_road_b, has light; Object clearing "Small Clearing" with description "You stand in a small clearing in the wood. Just to your south you see a little cottage. It is totally silent here, even the birds have stopped singing. To the North is the East road. ^^ Exits: There are exits in all directions.", n_to east_road_b, w_to woodland, e_to woodland_b, s_to cottage, sw_to woodland_c, ne_to east_road_c, nw_to east_road, before [; goin: playerto(cottage); rtrue; ], has light; Object small_cottage "cottage" class adnc, with description "It is your home. The little cottage you built yourself many years ago, although the age doesnt show at all. You are very proud of this cottage. You and you daughter Crystal had lived here quite happily until she became ill.", name "cottage" "home" "hut" "cabin" "house", adname 'small', before [; enter: if (location==clearing) { playerto(cottage); rtrue; } "You are already in your cottage."; ], found_in clearing cottage, has scenery; Object woodland_b "Woodland" with description "This is a quiet peaceful place. Trees gently sway around you. The song of birds can be heard in the treetops. ^^ Exits: North, South, West, Northwest and Northeast.", n_to east_road_c, s_to woodland_d, w_to clearing, nw_to east_road_b, ne_to east_road_d, has light; Object woodland_c "Woodland" with description "This is a quiet peaceful place. Trees gently sway around you. The song of birds can be heard in the treetops. ^^ Exits: North and Northeast.", n_to woodland, ne_to clearing, has light; Object cottage "Small Cottage" with description "This is your home. A small cottage that you built for you and your daughter. Made from the wood of the surrounding trees, it blends in very well with the surroundings. The room is not well furnished. There is just a table, an old stove and two beds. In one of the beds lies your daughter, Crystal. Set in the south wall of the cottage is a small square window. ^^ Exits: Exit.", before [; exit: playerto(clearing); rtrue; ], has light; Nearby window "window" class adnc, with description "Through the small window you can see the trees outside and many small creatures scurrying about on the ground rummaging in the leaves for food.", name "window", adname 'small', has scenery; Nearby table "table" class adnc, with description "It is a simple wooden table. It seems to be made from the same wood as the cottage.", name "table", adname 'wood' 'wooden', has supporter scenery; Nearby beds "beds" class adnc, with description "There are just the two beds here. Very simple in design but very comfortable. In one of the beds lies your sick daughter.", name "beds", adname 'wood' 'wooden', has scenery; Nearby stove "stove" class adnc, with description "This is the stove where you cook all your meals. It might not look much but it has served you well.", name "stove", adname 'old', has scenery; Nearby crystal "Crystal" with description "This is your daughter Crystal. She looks very ill. It wont be long now before she dies unless you can cure her.", name "crystal" "girl" "daughter", initial "Your daughter Crystal is here lying on her bed.", before [; attack: deadflag=3; "In her weak state she succums to your violent actions quickly. Very soon Crystal lays dead in her bed. Murdered by her own father! The idea was to save her life, not take it."; ], has animate proper female; Object woodland_d "Woodland" with description "This is a very scenic part of the wood. The sun shines through the branches of the trees. Bird song can be heard all around. ^^ Exits: North, South and Northwest.", n_to woodland_b, nw_to clearing, s_to woodland_f, has light; Object woodland_e "Woodland" with description "You stand at the back of your house. The view is stunning. You can see right to the horizon between the trees. ^^ Exits: East.", e_to woodland_f, has light; Object woodland_f "Woodland" with description "It is a little darker here, with the trees being taller and denser, but there is still plenty of light to allow many plants to grow. ^^ Exits: North and West.", n_to woodland_d, w_to woodland_e, has light; ! ITEMS Object coin "gold coin" with description "A shiny new gold coin with a picture of a fountain on one side and some sort of plant on the other. It looks like it will come in handy.", name "coin" "gold" "money", before [; insert: if (second==water_fountain) { remove coin; score=score+20; move flute to water_fountain; "As the coin splashes into the water of the fountain there is a bright flash and you see that the gold coin has become a golden flute."; } ]; Object note "torn note" class adnc, with description "This old torn note looks as if it has been ripped from someones diary or notebook. There is some writing on it.", name "note" "paper", adname 'torn', before [; read: "The note says.... ^^ '.........only the rare magic clover plant will cure any ill.'^"; ], has legible; Object clover "clover leaves" lake class adnc, with description "These are the leaves of the magical clover plant. Legend has it that they can cure any illness if eaten.", name "clover", adname 'magic', article "some", before [; take: if (self has scenery) {give self ~scenery; move self to player; score=score+20; "You take some of the magic clover leaves."; } give: if (second==crystal) {score=score+50; deadflag=2; "Well Done! You have saved Crystal's life. ^Even as you feed the clover leaves to your daughter, you notice her perk up. After only a few days she has fully recovered. You decide to keep a few of the leaves in case they are needed in the future."; } ], has edible scenery; Object knife "sharp knife" woodland_e class adnc, with description "It is a very sharp little knife. You usually use it for sharpening sticks but it could be a very effective weapon.", name "knife" "dagger" "blade", adname 'sharp' 'little'; Object water "water" water_fountain class adnc, with description "The cool clear water looks very refreshing.", name "water", adname 'cool' 'clear' 'refreshing', before [; drink: "The water slides down your throat, and you feel refreshed."; ], has static proper; Object flute "golden flute" class adnc, with description "It is the most beautifully crafted flute you have ever seen. Every detail has been perfected. It is made from pure gold.", name "flute", adname 'gold' 'golden'; [ DeathMessage; if (deadflag==3) print "You have failed"; ]; [ Initialise; location = cottage; "^^Your daughter Crystal has recently become ill, but you do not know why. It is obvious to you that if she isn't cured soon she will die. You have heard stories about a magical plant which grows somewhere around this region, but you have never actually seen it. It is said to be able to cure any illness. You must set off to find it. It is your only chance to save your daughter. ^^Good luck!^"; ]; Include "Grammar"; [ ReadSub; <>; ]; [ PlaySub; if (noun==flute) { if (location==stone_wall) { if (stone_wall hasnt general) {give wall general; score=score+20; "As you begin to play the flute a small opening gradually appears in the rock wall."; } } "You listen to the sweet music it makes."; } "You can't play that."; ]; Verb "stab" = "kill"; Verb "toss" = "throw"; Verb "Play" * noun -> play; Extend "read" first * legible -> Read; end;