ADJECTIVE red,green,blue,clear;
NOUN red message(road2); { It's red so there can be others elsewhere }
red message(WEIGH) = CAPAC;
red message(LDESC) = ($say "There is a message scratched in the dirt.\n");
red message(SDESC) = ($say "a message in the dirt");
red message(ACTION) = (($eq ($verb) read):
($say "'in' is a preposition. 'enter' is a verb.\n")
keys(LDESC) = ($say "There's a set of keys here.\n");
keys(SDESC) = ($say "a set of keys");
toolbox(LDESC) = (($eq ($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
"Above your head, the top of the structure is open,
and sunlight streams in.\n")
"The structure is closed at the top, but
enough light comes in from between the boards to enable you to see.\n")
($say "toolbox with the lid open.\n")
($say "In the toolbox, you see:\n")
($setp toolbox CONTS TRUE)
(Slook 1 ($cont toolbox))
($setp toolbox CONTS FALSE)
:{else} (($prop toolbox LOCKD) :
($say "toolbox with a rusty lock, painted
with an insignia composed of blue and green squares, joined at
($say "toolbox, the lid of which is ajar.\n")
(($eq ($loc .ME) toolbox):
($say "Inside huge box.\n")
:{else} ($say "a toolbox"));
(($eq ($loc .ME) toolbox) :
($say "You just lost ")(($sdisc ($dobj)))
($say " in a crack between the wooden floorboards!\n")
($miss cg cg cg cg cg cg cg cg cg cg)
(Lockup toolbox keys "The toolbox seals with a CLICK!\n"))
"One of the keys fits! The toolbox can be opened now.\n")
signpost(LDESC)=($say "There is a signpost by the side of the road.\n");
signpost(SDESC)=($say "a signpost");
signpost(ACTION) = (($eq ($verb) read):
"Pointing east, it says: 'Unuchevala: 10 miles'\n")
globe(LDESC) = (($prop globe LIGHT):
($say "A globe of stone glows brightly here.\n")
($say "There is a strange globe of polished stone here.\n")
globe(SDESC) = (($prop globe LIGHT): ($say "a glowing globe of stone")
: ($say "a stone globe"));
globe(ACTION) = (($eq ($verb) rub):
($say "The light from the stone globe fades away.\n")
($setp globe LIGHT FALSE)
($say "The stone globe glows brightly!\n")
crowbar(LDESC) = ($say "There is a long crowbar here.\n");
crowbar(SDESC) = ($say "a crowbar");
"What POWER! The magic crystal releases a flood of energy in
a split-second! Unfortunately, you were a little close...\n")
NOUN green crystal(cel07);
NOUN blue crystal(cel10);
NOUN clear crystal(cel09);
{NOUN diamond { = clear crystal;
{NOUN sapphire{= blue crystal;
{NOUN ruby (cel08){= red crystal;
{NOUN emerald (cel07){= green crystal;}
green crystal(LDESC) = ($say "There is a beautiful green crystal here!\n");
green crystal(SDESC) = ($say "a green crystal");
(($not ($prop dragon AWAKE)):
($say "You hear a stirring in the Ice Cavern.\n")
($setg Tempr ($plus @Tempr 2))
($setp dragon AWAKE TRUE)
($setp cel06 VISIT FALSE)
($setg Tempr ($minus @Tempr 2))
($setp dragon AWAKE FALSE)
"You hear a deep Y A W N from the Cavern.\n"))
($setp cel06 VISIT FALSE)
(($eq ($dobj) [red crystal]) :
($say "The red and green crystals flare briefly!\n")
(($eq ($dobj) [blue crystal]) :
($say "The blue and green crystals flare briefly!\n")
(($eq ($dobj) [green crystal]):
WORKD = MISC1; { Has Clear crystal shed its light? }
red crystal(LDESC) = ($say "There is a beautiful red crystal here!\n");
red crystal(SDESC) = ($say "a red crystal");
(($eq ($dobj) [clear crystal]) :
(($not ($prop [clear crystal] WORKD)):
($say "The red and clear crystals flare briefly!\n")
($setp [clear crystal] WORKD TRUE)
($setp [clear crystal] LIGHT TRUE)
"The clear crystal blazes forth with a magical incandescence brilliant
enough to penetrate even the deepest darkness!!\n\n")
"The clear crystal seems curiously inert now.\n")
(($eq ($dobj) [green crystal]) :
($say "The red and green crystals flare briefly!\n")
(($eq ($dobj) [red crystal]):
blue crystal(LDESC) = ($say "There is a beautiful blue crystal here!\n");
blue crystal(SDESC) = ($say "a blue crystal");
(($eq ($dobj) [red crystal]) :
($say "The red and blue crystals flare briefly!\n")
(($eq ($dobj) [green crystal]) :
($say "The blue and green crystals flare briefly!\n")
(($eq ($dobj) [blue crystal]):
CRout = ($say "The glowing magical crystal seems to have gone dark.\n> ")
($setp [clear crystal] LIGHT FALSE)
clear crystal(LDESC) = ($say "There is a beautiful clear crystal here")
(($prop [clear crystal] LIGHT): ($say " (GLOWING!)"))
clear crystal(SDESC) = ($say "a clear crystal")
(($prop [clear crystal] LIGHT): ($say " (GLOWING!)"))
(($eq ($dobj) [red crystal]) :
(($not ($prop [clear crystal] WORKD)):
($say "The red and clear crystals flare briefly!\n")
($setp [clear crystal] WORKD TRUE)
($setp [clear crystal] LIGHT TRUE)
"The clear crystal blazes forth with a magical incandescence brilliant
enough to penetrate even the deepest darkness!!\n\n")
"The clear crystal seems curiously inert now.\n")
(($eq ($dobj) [red crystal]):
ROUTINE DRdem; { Dragon Daemon. Increases temper in .my presence }
DRdem= (($not ($prop dragon AWAKE)): ($exit 0))
(($eq ($loc .ME) ($loc dragon)):
(($eq ($loc [green crystal]) .ME): { even worse! }
($setg Tempr ($plus @Tempr 1)))
($setg Tempr ($plus @Tempr 1)) )
{ ($say "His temper is now at ")($num @Tempr)($say "\n") }
"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.\n")
($say "Gee, he looks like he's really at the edge!\n")
($say "This is one upset dragon! Be careful!\n")
($say "He's getting angrier...\n")($exit 0))
"There is a fierce ice dragon glaring balefully in your direction.\n")
"There is a large white dragon sleeping peacefully in the middle
(($prop dragon AWAKE): ($say "a fierce dragon")
: ($say "a somnolent dragon")
(@LOOKP: ($say "\n") (DRdem))
dragon(ACTION)= { Man, the things you can try here... }
(($prop dragon AWAKE): { This is the harder stuff }
($say "This just seems to get him angrier!\n")
($setg Tempr ($plus @Tempr 1))
(($gt ($prop ($dobj) WEIGH) 75):
"This just bruises him! Now he's getting mad!\n")
($setg Tempr ($plus @Tempr 1))
"That object is just too light to hurt him.\n")
: ($say "This amuses the dragon no end!\n")
($say "You manage to waken him. He's not happy.\n")
($setp dragon AWAKE TRUE)
($say "Now you woke him up! He's upset, too!\n")
($setp dragon AWAKE TRUE)
(($gt ($prop ($dobj) WEIGH) 75):
"It's just heavy enough to waken him. The bruise doesn't help
his temper any either.\n")
($setp dragon AWAKE TRUE)
"That object is just too light to wake him.\n")
: ($say "Don't hurt yourself trying!\n")
bed(SDESC) = ($say "an old, rickety bed");
($say "Stop messing with the bed, it's fragile!\n")
"Moving the bed seems to have loosened one of the wall panels
(($and ($eq ($iobj) crowbar)
($eq ($loc crowbar) .ME)):
(($not ($prop bed OPEN)):
($say "There aren't any loose enough.\n")
"The loose panel comes away, revealing a secret stairway down, down...\n")
($say "You can't seem to get the panel open.\n")
($say "There is a carving knife here.\n")
on the table is a large carving knife (suitable for blind mice).\n")
knife(SDESC)=($say "a carving knife");
bottle (LDESC) = ($say "There is a bottle here.\n");
bottle (SDESC) = ($say "a bottle");
($say "Hm, the bottle is somehow sealed shut.\n")
($say "Wow, is that heavy glass! It won't break!\n")
($say "Weird thing to do with it.\n")
: ($say "Nice try, but it isn't even scratched.\n")
ship (LDESC) = ($say "There is a model ship here.\n");
ship (SDESC) = ($say "a model ship");
insignia (WEIGH) = CAPAC;
insignia (ACTION) = ($say "There's nothing useful to do with the insignia.\n")
glass box(SHRNK)=TRUE; { First seen as a tiny box }
(($eq ($prop .ME SHRNK) ($prop [glass box] SHRNK)):
($say "There is a big glass case here.\n")
($setp [glass box] WEIGH CAPAC)
($setp [glass box] HOLDS 50)
"Before you looms a huge glass wall, inscribed with the words,
"There is a tiny glass box with a snap lid here.\n")
($setp [glass box] WEIGH 5)
($setp [glass box] HOLDS 1)
(($eq ($prop .ME SHRNK) ($prop [glass box] SHRNK)):
($setp [glass box] WEIGH CAPAC)
($setp [glass box] HOLDS 50)
"a huge glass wall, inscribed with the words,
($say "a tiny glass box")
($setp [glass box] WEIGH 5)
($setp [glass box] HOLDS 1)
sand(LDESC)=(($and ($prop sand SHRNK)
($not ($prop .ME SHRNK))):
($say "There is a grain of sand here.\n")
{else}: ($say "There is a beautiful porcelain statue here!\n")
sand(SDESC)=(($and ($prop sand SHRNK)
($not ($prop .ME SHRNK))):
($say "a grain of sand") :
($say "a porcelain statue")
sand(ACTION)=(($eq ($verb) take):
(($and ($prop sand SHRNK)
($not ($prop .ME SHRNK))):
($say "You fumble the grain of sand and lose it on the ground.\n")
rock(LDESC)=($say "There is a plain-looking rock here.\n");
rock(SDESC)=($say "an ordinary rock");
(($and ($eq ($verb) take)
($say "Mmph! Heavy!\n"));
{saw(LDESC) = ($say "There is a saw here.\n");
{saw(SDESC) = ($say "a saw");
{saw(ACTION) = (($eq ($verb) cut):
{ (($eq ($loc .ME) cel13):
{ ($say "There's already one here!\n")
{"You cut a hole in the thick ice; icy water sloshes about two feet down.\n")
{ ($setp cel13 HOLED TRUE)
{ { cutting a hole somewhere else }
{ ($say "There's nowhere to cut a hole.\n")
{ ($say "The saw isn't used that way.\n")
{ ); /* I Know A better way to make a Hole */}