ADJEC red,green,blue,clear; ADJEC glass, silver; NOUN red message(road2); // It's red so there can be others elsewhere red message(WEIGH) = CAPAC; red message(LDESC) = Proc() {"There is a message scratched in the dirt.\n";} red message(SDESC) = Proc() {"a message in the dirt";} red message(ACTION) = Proc() { If ((Verb == read) | (Verb == examine)) { "'in' is a preposition. 'enter' is a verb.\n"; $exit(1); } } NOUN keys (town4); keys(WEIGH) = 2; keys(LDESC) = Proc() {"There's a set of keys here.\n";} keys(SDESC) = Proc() {"a set of keys";} ADJEC tool; NOUN tool box (farm5); toolbox = tool box; toolbox(WEIGH) = CAPAC; toolbox(HOLDS) = 50; toolbox(OPENS) = TRUE; toolbox(LOCKS) = TRUE; toolbox(LOCKED) = TRUE; toolbox(LIGHT) = TRUE; toolbox(LDESC) = Proc() { If ($loc($ME) == toolbox) { "You are in a huge wooden structure, towering up at least 80 feet " "above your head, with wooden walls formed of immense 10-foot by " "50-foot boards. Everything here, even the grains of dust which " "cover the wooden floor, seems immense. "; If (toolbox.OPENED) "Above your head, the top of the structure is open, " "and sunlight streams in.\n"; Else "The structure is closed at the top, but enough light " "comes in from between the boards to enable you to see.\n"; } Else { "Against the house is a heavy "; If (toolbox.OPENED) "toolbox with the lid open.\n"; Else If (toolbox.LOCKED) "toolbox with a rusty lock, painted with an insignia " "composed of blue and green squares, joined at their " "corners.\n"; Else "toolbox, the lid of which is ajar.\n"; } } toolbox(SDESC) = Proc() { If ($loc($ME).toolbox) Return Sayer("Inside Huge Box", $arg(0)); Else "a toolbox"; } toolbox(ACTION) = Proc() { If ($phase() == 7) { // This is the room action If ((Verb == drop) | (Verb == throw)) { // We don't want to keep track of lots of small things "You just lost "; $sdesc(Dobj)(); " in a crack between the wooden floorboards!\n"; $move(Dobj, $ALL); } } Else If (Verb == lock) { If (toolbox == OPENED) { "You must close it first.\n"; $exit(1); } Else If (toolbox == LOCKED) { "It's already locked!\n"; $exit(1); } Else If ($loc(keys) == $ME) { "The toolbox seals with a CLICK!\n"; toolbox.LOCKED = TRUE; $exit(1); } } Else If (Verb == unlock) { If (!toolbox.LOCKED) { "It's already unlocked!\n"; $exit(1); } Else If ($loc(keys) == $ME) { "One of the keys fits! The box is unlocked.\n"; toolbox.LOCKED = FALSE; $exit(1); } } Else If (Verb == examine) { If (toolbox.OPENED) "The toolbox is open.\n"; Else If (toolbox.LOCKED) "The toolbox is locked.\n"; Else "The toolbox is ajar.\n"; $exit(1); } } NOUN silver spoon(farm6); silver spoon(POINT) = 25; silver spoon(WEIGH) = 1; silver spoon(LDESC) = Proc() {"There is a beautiful silver spoon here.\n";} silver spoon(SDESC) = Proc() {"a silver spoon";} NOUN wetsuit(cel15); WORN = MISC1; wetsuit(LDESC) = Proc() {"There is a wetsuit here.\n";} wetsuit(SDESC) = Proc() { "a wetsuit"; If (wetsuit.WORN) " (being worn)"; } wetsuit(WEIGH) = 50; wetsuit(ACTION) = Proc() { If (Verb == wear) { If ($loc(wetsuit) != $ME) { "You don't have the wetsuit!\n"; $exit(1); } Else If (wetsuit.WORN) { "You are already wearing it!\n"; $exit(1); } Else { wetsuit.WORN = TRUE; "OK, you're wearing the wetsuit.\n"; $exit(1); } } Else If (Verb == remove) { If (wetsuit.WORN) { wetsuit.WORN = FALSE; "OK, you're no longer wearing the wetsuit.\n"; $exit(1); } Else { "You are not wearing the wetsuit!\n"; $exit(1); } } Else If (Verb == drop) { If (wetsuit.WORN) { "You'll have to remove the wetsuit first.\n"; Skip = TRUE; } } } NOUN signpost(Roadx); signpost(RDLOC)=10; signpost(WEIGH)=CAPAC; signpost(LDESC) = Proc() {"There is a signpost by the side of the road.\n";} signpost(SDESC) = Proc() {"a signpost";} signpost(ACTION) = Proc() { If ((Verb == read) | (Verb == examine)) { "Pointing east, it says: 'Unuchevala: 10 miles'\n"; $exit(1); } } NOUN globe(toolbox); globe(WEIGH) = 20; globe(LDESC) = Proc() { If (globe.LIGHT) "A globe of stone glows brightly here.\n"; Else "There is a strange globe of polished stone here.\n"; } globe(SDESC) = Proc() { If (globe.LIGHT) "a glowing globe of stone"; Else "a stone globe"; } globe(ACTION) = Proc() { If (Verb == rub) { If (globe.LIGHT) { "The light from the stone globe fades away.\n"; globe.LIGHT = FALSE; } Else { "The stone globe glows brightly!\n"; globe.LIGHT = TRUE; } MyLoc = -1; $exit(1); } Else If (Verb == examine) { If (globe.LIGHT) { "The globe is glowing.\n"; $exit(1); } } } NOUN crowbar (town3); crowbar(WEIGH) = 100; crowbar(LDESC) = Proc() {"There is a long crowbar here.\n";} crowbar(SDESC) = Proc() {"a crowbar";} crydie = Proc() { "What POWER! The magic crystal releases a flood of energy in " "a split-second! Unfortunately, you were a little close...\n"; die(); } // Dragon Stuff AWAKE = MISC1; NOUN dragon (cel06); white=clear; NOUN green crystal(cel07); NOUN red crystal(cel08); NOUN blue crystal(cel10); NOUN clear crystal(cel09); diamond = clear crystal; sapphire = blue crystal; ruby = red crystal; emerald = green crystal; WORKD = MISC1; green crystal(WEIGH)=15; green crystal(POINT)=25; green crystal(LDESC) = Proc() {"There is a beautiful green crystal here!\n";} green crystal(SDESC) = Proc() {"a green crystal";} green crystal(ACTION) = Proc() { If (Verb == take) { If ((!dragon.KILLED) & ($loc($ME) == cel07)) { If (!dragon.AWAKE) { "You hear a stirring nearby.\n"; Tempr = Tempr + 2; dragon.AWAKE = TRUE; cel06.SEEN = FALSE; } Else { Tempr = 0; } } } Else If (Verb == drop) { If ((!dragon.KILLED) & ($loc($ME) == cel07)) { Tempr = Tempr - 2; If (Tempr <= 0) { dragon.AWAKE = FALSE; "You hear a deep Y A W N nearby.\n"; } cel06.SEEN = FALSE; } } Else If (Verb == touch) { If (Dobj == <red crystal>) { If ($loc($ME) == toolbox) { "The red and green crystals flare briefly!\n"; Grow(); $move($ME, cel01); MyLoc = -1; } Else { "Nothing happens.\n"; } $exit(1); } Else If (Dobj == <blue crystal>) { If (<green crystal>.WORKD > 2) { "Nothing happens.\n"; } Else { <green crystal>.WORKD = <green crystal>.WORKD + 1; "The blue and green crystals flare briefly!\n"; $move($ME, toolbox); Shrink(); MyLoc = -1; } $exit(1); } Else If (Dobj == <clear crystal>) { "Nothing happens.\n"; $exit(1); } } Else If ($verb == break) { If (Dobj == <green crystal>) { crydie(); } } } red crystal(WEIGH)=15; red crystal(POINT)=25; red crystal(LDESC) = Proc() {"There is a beautiful red crystal here!\n";} red crystal(SDESC) = Proc() {"a red crystal";} red crystal(ACTION) = Proc() { If (Verb == touch) { If (Dobj == <clear crystal>) { If (!<clear crystal>.WORKD) { "The red and clear crystals flare briefly!\n"; <clear crystal>.WORKD = TRUE; <clear crystal>.LIGHT = TRUE; "The clear crystal blazes forth with a magical " "incandescence brilliant enough to penetrate even " "the deepest darkness!!\n\n"; $move($ME, cel04); MyLoc = -1; $sfus($ME, CRout, 7); $exit(1); } Else { "Nothing happens.\n"; $exit(1); } } Else If (Dobj == <green crystal>) { If ($loc($ME) == toolbox) { "The red and green crystals flare briefly!\n"; Grow(); $move($ME, cel01); MyLoc = -1; } Else { "Nothing happens.\n"; } $exit(1); } Else If (Dobj == <blue crystal>) { If (($loc($ME) == desert) | ($loc($ME) == field)) { "The red and blue crystals flare briefly!\n"; $move($ME, cel08); MyLoc = -1; } Else If (!RBTouch) { "The red and blue crystals flare briefly!\n"; RBTouch = TRUE; } Else { "Nothing happens.\n"; } $exit(1); } } Else If (Verb == break) { If (Dobj == <red crystal>) { crydie(); } } } blue crystal(WEIGH)=15; blue crystal(POINT)=25; blue crystal(LDESC) = Proc() {"There is a beautiful blue crystal here!\n";} blue crystal(SDESC) = Proc() {"a blue crystal";} blue crystal(ACTION) = Proc() { If (Verb == touch) { If (Dobj == <red crystal>) { If (($loc($ME) == desert) | ($loc($ME) == field)) { "The red and blue crystals flare briefly!\n"; RBTouch = TRUE; $move($ME, cel08); MyLoc = -1; } Else If (!RBTouch) { "The red and blue crystals flare briefly!\n"; RBTouch = TRUE; } Else { "Nothing happens.\n"; } $exit(1); } Else If (Dobj == <green crystal>) { If (<green crystal>.WORKD > 2) { "Nothing happens.\n"; } Else { "The blue and green crystals flare briefly!\n"; $move($ME, toolbox); Shrink(); MyLoc = -1; <green crystal>.WORKD = <green crystal>.WORKD + 1; } $exit(1); } Else If (Dobj == <clear crystal>) { "Nothing happens.\n"; $exit(1); } } Else If (Verb == break) { If (Dobj == <blue crystal>) { crydie(); } } } CRout = Proc() { <clear crystal>.LIGHT = FALSE; "The glowing magical crystal seems to have gone dark.\n"; } clear crystal(WEIGH)=15; clear crystal(POINT)=25; clear crystal(LDESC) = Proc() { "There is a beautiful clear crystal here"; If (<clear crystal>.LIGHT) { " (GLOWING!)"; } "!\n"; } clear crystal(SDESC) = Proc() { "a clear crystal"; If (<clear crystal>.LIGHT) { " (GLOWING!)"; } } clear crystal(ACTION) = Proc() { If (Verb == touch) { If (Dobj == <red crystal>) { If (!<clear crystal>.WORKD) { "The red and clear crystals flare briefly!\n"; <clear crystal>.WORKD = TRUE; <clear crystal>.LIGHT = TRUE; "The clear crystal blazes forth with a magical incandescence " "brilliant enough to penetrate even the deepest " "darkness!!\n\n"; $move($ME, cel04); MyLoc = -1; $sfus($ME, CRout, 7); $exit(1); } Else { "Nothing happens.\n"; $exit(1); } } Else If (Dobj == <green crystal>) { "Nothing happens.\n"; $exit(1); } Else If (Dobj == <blue crystal>) { "Nothing happens.\n"; $exit(1); } } Else If (Verb == break) { If (Dobj == <red crystal>) { crydie(); } } } NOUN wood(cel20); ROUTINE KillDragon; DRdem = Proc(isLdesc) // Dragon Daemon. Increases temper in $my presence { If (dragon.KILLED | !dragon.AWAKE) { If (isLdesc) "\n"; Return 0; } If ($loc($ME) == $loc(dragon)) { If ($loc(<green crystal>) == $ME) { // even worse! Tempr = Tempr + 1; } Tempr = Tempr + 1; If (wood.FLAME & ($loc(wood) == $loc($ME))) { KillDragon(); Return 0; } } If (Tempr >= 7) { "Jeez, I didn't know ice dragons could reach their boiling point! " "In a final flare of rage, he opens his mouth and breathes his frigid " "breath in a blast in your direction. It's a bit much for you."; die(); } Else If (Tempr >= 6) "Gee, he looks like he's really at the edge!"; Else If (Tempr >= 5) "This is one upset dragon! Be careful!"; Else If (Tempr >= 3) "He's getting angrier..."; If (isLdesc) "\n"; } dragon(WEIGH) = CAPAC; dragon(LDESC) = Proc() { If (dragon.AWAKE) "There is a fierce ice dragon glaring balefully in your direction. "; Else "There is a large white dragon sleeping peacefully in the middle " "of the cavern floor. "; DRdem(1); } dragon(SDESC) = Proc() { If (dragon.AWAKE) "a fierce dragon. "; Else "a somnolent dragon. "; If (MyLoc != $loc($ME)) { DRdem(0); } } dragon(ACTION) = Proc() // Man, the things you can try here... { If (dragon.AWAKE) { // This is the harder stuff If (Verb == strike) { "This just seems to get him angrier!\n"; Tempr = Tempr + 1; $exit(1); } Else If (Verb == throw) { If (Iobj == dragon) { If (Dobj.WEIGH > 75) { "This just bruises him! Now he's getting mad!\n"; Tempr = Tempr + 1; $exit(1); } Else { "That object is just too light to hurt him.\n"; $exit(1); } } Else { // Dobj action "This amuses the dragon no end!\n"; $exit(1); } } // end of Throw case } Else { // he's snoozing If (Verb == wake) { "You manage to waken him. He's not happy.\n"; Tempr = 1; dragon.AWAKE = TRUE; If (($loc(wood) == $loc($ME)) & wood.FLAME) { KillDragon(); } $exit(1); } Else If (Verb == strike) { "Now you woke him up! He's upset, too!\n"; Tempr = 2; dragon.AWAKE = TRUE; $exit(1); } Else If (Verb == throw) { If (Iobj == dragon) { If (Dobj.WEIGH > 75) { "It's just heavy enough to waken him. The bruise " "doesn't help his temper any either.\n"; dragon.AWAKE = TRUE; Tempr = 3; $exit(1); } Else { "That object is just too light to wake him.\n"; $exit(1); } } Else { "Don't hurt yourself trying!\n"; $exit(1); } } // end of Throw case } } NOUN money; money(WEIGH) = 1; money(LDESC) = Proc() {"There is a stack of money here!\n";} money(SDESC) = Proc() {"a stack of money";} money(POINT) = 25; stack = money; FOUND = MISC1; NOUN bed (farm7); bed(WEIGH) = CAPAC; bed(SDESC) = Proc() {"an old, rickety bed";} bed(ACTION) = Proc() { If (Verb == move) { If (bed.OPENED) { "Stop messing with the bed, it's fragile!\n"; $exit(1); } "Moving the bed seems to have loosened one of the wall panels " "on the west wall.\n"; bed.OPENED = TRUE; $exit(1); } Else If ((Verb == look) & (Iobj == bed)) { If (Prep == under) { If (!money.FOUND) { "You find some money under the bed!\n"; $move(money, $loc($ME)); money.FOUND = TRUE; $exit(1); } } Else If (bed.OPENED) { "The bed has been moved.\n"; $exit(1); } } } NOUN panel (farm7); panel(OPENS) = TRUE; panel(WEIGH) = CAPAC; panel(ACTION) = Proc() { If ((Verb == open) | (Verb == pry)) { If ((Iobj == crowbar) & ($loc(crowbar) == $ME)) { If (!bed.OPENED) { "There aren't any loose enough.\n"; $exit(1); } "The loose panel comes away, revealing a secret stairway " "down, down...\n"; panel.OPENED = TRUE; } Else { "You can't seem to get the panel open.\n"; } $exit(1); } } NOUN bottle(town6); bottle (WEIGH) = 5; bottle (LDESC) = Proc() {"There is a bottle here.\n";} bottle (SDESC) = Proc() {"a bottle";} bottle (TRANS) = TRUE; bottle (ACTION) = Proc() { If (Verb == open) { "Hm, the bottle is somehow sealed shut.\n"; $exit(1); } Else If (Verb == break) { "Wow, is that heavy glass! It won't break!\n"; $exit(1); } Else If (Verb == strike) { If (Iobj == bottle) "Weird thing to do with it.\n"; Else "Nice try, but it isn't even scratched.\n"; $exit(1); } } NOUN ship(bottle); ship (LDESC) = Proc() {"There is a golden model ship here!\n";} ship (SDESC) = Proc() {"a golden model ship";} ship (WEIGH) = 5; ship (POINT) = 50; model = ship; NOUN well(town5); well(NOTAKE) = TRUE; well(OPENED) = TRUE; well (ACTION) = Proc() { If (Iobj == well) { If (Verb == drop) { TWN5y(); } } } NOUN painting(cel08); painting(ACTION) = Proc() { If (Verb == take) { "You can't take the painting.\n"; Skip = TRUE; } Else { "Fiddling with the painting is silly.\n"; $exit(1); } } NOUN grate(riverx); grate(Loc21) = GRATELOC; grate(ACTION) = Proc() { If (Verb == take) { "You can't take the grate.\n"; Skip = TRUE; } Else { "Fiddling with the grate is useless.\n"; $exit(1); } } NOUN insignia; insignia(NOTAKE) = TRUE; insignia (WEIGH) = CAPAC; insignia (ACTION) = Proc() { If (Verb == examine) { "The insignia consists of "; If ($loc($ME) == cel01) "red and green squares "; Else If ($loc($ME) == cel04) "red and clear squares "; Else If ($loc($ME) == cel08) "red and blue squares "; Else If ($loc($ME) == farm5) "blue and green squares "; "joined at the corners.\n" $exit(1); } "There's nothing useful to do with the insignia.\n"; $exit(1); } square=insignia; NOUN glass box(cel08); glass box(HOLDS)=1; glass box(TRANS)=TRUE; glass box(OPENS)=TRUE; glass box(OPENED)=FALSE; glass box(SHRNK)=TRUE; // First seen as a tiny box glass box(LDESC) = Proc() { If ($ME.SHRNK == <glass box>.SHRNK) { "There is a big glass case here.\n"; <glass box>.WEIGH = CAPAC; <glass box>.HOLDS = 50; } Else { If ($ME.SHRNK) { "Before you looms a huge glass wall, inscribed with the words, " "'program error!'\n"; } Else { "There is a tiny glass box with a snap lid here.\n"; <glass box>.WEIGH = 5; <glass box>.HOLDS = 1; } } } glass box(SDESC) = Proc() { If ($ME.SHRNK == <glass box>.SHRNK) { "a glass case"; <glass box>.WEIGH = CAPAC; <glass box>.HOLDS = 50; } Else { If ($ME.SHRNK) { "a huge glass wall, inscribed with the words, " "'program error'"; } Else { "a tiny glass box"; <glass box>.WEIGH = 5; <glass box>.HOLDS = 1; } } } glass box(ACTION) = Proc() { If (Verb == examine) { If (<glass box>.OPENED) "The case is opened.\n"; Else "The case is closed (pun not intended).\n"; $exit(1); } } case=glass box; NOUN statue(glass box); sand = statue; sand(SHRNK)=TRUE; sand(WEIGH)=1; sand(LDESC) = Proc() { If (sand.SHRNK & !$ME.SHRNK) { sand.POINT = 0; "There is a grain of sand here.\n"; } Else { "There is a beautiful porcelain statue here!\n"; sand.POINT = 50; } } sand(SDESC)= Proc() { If (sand.SHRNK & !$ME.SHRNK) { sand.POINT = 0; "a grain of sand"; } Else { "a porcelain statue"; sand.POINT = 50; } } sand(ACTION) = Proc() { If (Verb == take) { If (sand.SHRNK & !$ME.SHRNK) { "You fumble the grain of sand and lose it on the ground.\n"; $move(sand, $ALL); Skip = TRUE; } } } NOUN hole; hole(NOTAKE) = TRUE; hole(ACTION) = Proc() { "You can't do anything useful with the hole.\n"; $exit(1); } NOUN rock(road5); rock(LDESC) = Proc() {"There is a plain-looking rock here.\n";} rock(SDESC) = Proc() {"an ordinary rock";} rock(ACTION) = Proc() { If ((Verb == take) & (Dobj == rock)) { "Mmph! Heavy!\n"; } } rock(WEIGH)=100; IFOUND = MISC1; NOUN ivory(riverx); ivory(WEIGH) = 5; ivory(POINT) = 25; ivory(Loc21) = GRATELOC; ivory(LDESC) = Proc() { "There is a beautiful piece of ivory "; If (!ivory.IFOUND) { "wedged in the grate.\n"; ivory.IFOUND = TRUE; } Else { "here.\n"; } } ivory(SDESC) = Proc() { "a piece of ivory"; If (!ivory.IFOUND) { " (wedged in the grate)"; ivory.IFOUND = TRUE; } } NOUN matches(cel12); matches(LDESC) = Proc() {"There is a book of waterproof matches here.\n";} matches(SDESC) = Proc() {"a book of matches";} matches(ACTION) = Proc() { If (((Verb == light) | (Verb == burn)) & (Dobj == matches)) { "OK, you light a match, which quickly burns out.\n"; $exit(1); } } matches(WEIGH) = 1; book = matches; WoodBurn = Proc() { If ($loc(wood) == $loc($ME)) { "The wood burns down to a pile of ashes, which blows away.\n"; } $move(wood, $ALL); wood.FLAME = FALSE; } // NOUN wood(cel20); wood(LDESC) = Proc() { "There is a pile of "; If (wood.FLAME) "burning "; "wood here.\n"; } wood(SDESC) = Proc() { "a pile of "; If (wood.FLAME) "burning "; "wood"; } wood(WEIGH) = 100; wood(ACTION) = Proc() { If (wood.FLAME) { "The wood is too hot to touch.\n"; If ((Verb == take) | (Verb == drop)) { Skip = TRUE; Return 0; } Else { $exit(1); } } Else If ((Verb == burn) | (Verb == light)) { If (!Iobj) { "You must tell me how to do that!\n"; $exit(1); } Else If (Iobj != matches) { "That doesn't seem to work.\n"; $exit(1); } Else If ($loc(wood) == $ME) { "You can't manage that while you are holding the wood.\n"; $exit(1); } "You strike a match and apply it to the wood, which bursts " "into flames.\n"; If (dragon.AWAKE & ($loc($ME) == $loc(dragon))) { KillDragon(); } Else { wood.FLAME = TRUE; $sfus($ME, WoodBurn, 3); } $exit(1); } } KillDragon = Proc() { "The dragon, attracted by the bright flame of the burning wood, snaps it " "up in its jaws. Suddenly, the dragon realizes what it has done! It " "tries to spit out the wood, but it is too late! The dragon evaporates " "with a deafening whistle and a burst of steam! "; If (($loc(bottle) == $loc($ME)) | ($loc(bottle) == $ME)) { "The sound of the whistle shatters the bottle, " "releasing the golden ship model! "; $move(ship, $loc($ME)); $move(bottle, $ALL); } "Upon the death of the dragon, the ice melts with astonishing speed.\n"; $dfus($ME, WoodBurn); $move(wood, $ALL); dragon.KILLED = TRUE; $move(dragon, $ALL); SCORE = SCORE + 100; cel06.SEEN = FALSE; cel05.SEEN = FALSE; cel03.SEEN = FALSE; cel10.SEEN = FALSE; cel08.SEEN = FALSE; } NOUN goblet(cel19); FREED = MISC1; goblet(WEIGH) = 5; goblet(POINT) = 25; goblet(LDESC) = Proc() { If (!goblet.FREED) "There is a beautiful golden goblet frozen in the ice!\n"; Else "There is a beautiful golden goblet here!\n"; } goblet(SDESC) = Proc() { "a golden goblet"; If (!goblet.FREED) " (frozen in the ice)"; } goblet(ACTION) = Proc() { If (!goblet.FREED) { "There's not much you can do with the goblet while it's frozen " "in the ice.\n"; $exit(1); } } NOUN newspaper(town2); paper = newspaper; newspaper(LDESC) = Proc() { "There is a newspaper fluttering in the breeze here.\n"; } newspaper(SDESC) = Proc() {"a newspaper";} newspaper(ACTION) = Proc() { If ((Verb == read) | (Verb == examine)) { " UNUCHEVALA NEWS -- VOLUME II NUMBER 1\n" "\n" "VANDALS THREATEN COWLEY\n" "\n" "\tLast night, unknown vandals attacked the farm of Mr. Cowley, " "north of town. They sprayed \"DIE, HEATHENS\" on his front " "door (in reference to his admittedly strange beliefs). Cowley " "says that this is not the first such threat he has received. " "However, he says that he will deal with the vandals in his own " "way. Unfortunately, we have been unable to contact Mr. Cowley " "personally, since he has not been seen hereabouts " "since last night.\n" "\n" "DROUGHT IMMINENT, SAY LOCAL FARMERS\n" "\n" "\tThe Unuchevala River has recently been falling, and " "little relief is in sight for our local farmers. \"I'm agonna " "leave here, purty soon,\" said one farmer (who chose to " "remain anonymous). \"It's all that danged Cowley's fault, " "messin' about with things that ain't natrawl-like. I " "caint even raise 'nuff to feed myself, not mentionin' the " "resta the town.\"\n" "\n" "WEATHER -- Continued dry, with no rain in sight.\n" "\n"; $exit(1); } Else If ((Verb == burn) | (Verb == light)) { If (!Iobj) { "You must tell me how to do that!\n"; $exit(1); } Else If (Iobj != matches) { "That doesn't seem to work.\n"; $exit(1); } Else If ($loc(newspaper) == $ME) { "You can't manage to do that while holding the newspaper.\n"; $exit(1); } "The newspaper lights easily, burning down to ashes which blow away.\n"; If (($loc($ME) == $loc(dragon)) & dragon.AWAKE) { // give the player a hint "The dragon notices the flash and approaches the newspaper, " "but the fire dies down before the dragon can reach it.\n"; } $move(newspaper, $ALL); $exit(1); } } NOUN ice; ice(NOTAKE) = TRUE; ice(ACTION) = Proc() { If ((Verb == break) | (Verb == hit)) { If (Dobj == ice) { If (!Iobj) { "You must tell me how to do that.\n"; $exit(1); } If ($loc($ME) == cel19) { If (Iobj.WEIGH > 20) { If (!goblet.FREED) { "You manage to free the goblet.\n"; goblet.FREED = TRUE; $move(goblet, cel19); $exit(1); } } } Else If ($loc($ME) == cel13) { If (!cel13.HOLED) { If (Iobj.WEIGH > 75) { "You swing at the ice with the " $name(Iobj) ", which breaks through and sinks into " "the icy waters below!\n"; $move(Iobj, $ALL); cel13.HOLED = TRUE; $exit(1); } } } "The ice chips a bit, but does not break.\n"; $exit(1); } } "You can't do that!\n"; $exit(1); }