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); }