|
|
1.1 root 1: ADJECTIVE red,green,blue,clear;
2: ADJECTIVE glass;
3:
4: NOUN red message(road2); { It's red so there can be others elsewhere }
5: red message(WEIGH) = CAPAC;
6: red message(LDESC) = ($say "There is a message scratched in the dirt.\n");
7: red message(SDESC) = ($say "a message in the dirt");
8: red message(ACTION) = (($eq ($verb) read):
9: ($say "'in' is a preposition. 'enter' is a verb.\n")
10: ($exit 1)
11: );
12:
13: NOUN keys (town4);
14: keys(WEIGH) = 2;
15: keys(LDESC) = ($say "There's a set of keys here.\n");
16: keys(SDESC) = ($say "a set of keys");
17:
18: NOUN toolbox (farm5);
19: toolbox(WEIGH) = CAPAC;
20: toolbox(HOLDS) = 50;
21: toolbox(OPENS) = TRUE;
22: toolbox(LOCKS) = TRUE;
23: toolbox(LOCKD) = TRUE;
24: toolbox(LIGHT) = TRUE;
25: toolbox(LDESC) = (($eq ($loc .ME) toolbox):
26: ($say
27: "You are in a huge wooden structure, towering up at least 80 feet
28: above your head, with wooden walls formed of immense 10-foot by 50-foot
29: boards. Everything here, even the grains of dust which cover the wooden
30: floor, seems immense. ")
31: (($prop toolbox OPEN):
32: ($say
33: "Above your head, the top of the structure is open,
34: and sunlight streams in.\n")
35: : ($say
36: "The structure is closed at the top, but
37: enough light comes in from between the boards to enable you to see.\n")
38: )
39: : {else} ($say
40: " Against
41: the house is a heavy ")
42: (($prop toolbox OPEN):
43: ($say "toolbox with the lid open.\n")
44: { (($cont toolbox) :
45: ($say "In the toolbox, you see:\n")
46: ($setp toolbox CONTS TRUE)
47: (Slook 1 ($cont toolbox))
48: ($setp toolbox CONTS FALSE)
49: )}
50: :{else} (($prop toolbox LOCKD) :
51: ($say "toolbox with a rusty lock, painted
52: with an insignia composed of blue and green squares, joined at
53: their corners.\n") :
54: ($say "toolbox, the lid of which is ajar.\n")
55: )
56: )
57: );
58:
59: toolbox(SDESC) =
60: (($eq ($loc .ME) toolbox):
61: ($say "Inside huge box.\n")
62: :{else} ($say "a toolbox"));
63:
64: toolbox(ACTION) =
65: (($eq ($loc .ME) toolbox) :
66: (($or ($eq ($verb) drop)
67: ($eq ($verb) throw)):
68: ($say "You just lost ")(($sdisc ($dobj)))
69: ($say " in a crack between the wooden floorboards!\n")
70: ($move ($dobj) .ALL)
71: )
72: ($miss cg cg cg cg cg cg cg cg cg cg)
73:
74: {else} :
75: (($eq ($verb) lock):
76: (Lockup toolbox keys "The toolbox seals with a CLICK!\n"))
77: (($eq ($verb) unlock):
78: (Ulock toolbox keys
79: "One of the keys fits! The toolbox can be opened now.\n")
80: )
81: );
82:
83: NOUN signpost(roadx);
84: signpost(RDLOC)=10;
85: signpost(WEIGH)=CAPAC;
86: signpost(LDESC)=($say "There is a signpost by the side of the road.\n");
87: signpost(SDESC)=($say "a signpost");
88: signpost(ACTION) = (($eq ($verb) read):
89: ($say
90: "Pointing east, it says: 'Unuchevala: 10 miles'\n")
91: ($exit 1)
92: );
93: NOUN globe(toolbox);
94: globe(WEIGH) = 20;
95: globe(LDESC) = (($prop globe LIGHT):
96: ($say "A globe of stone glows brightly here.\n")
97: {else}:
98: ($say "There is a strange globe of polished stone here.\n")
99: );
100: globe(SDESC) = (($prop globe LIGHT): ($say "a glowing globe of stone")
101: : ($say "a stone globe"));
102: globe(ACTION) = (($eq ($verb) rub):
103: (($prop globe LIGHT):
104: ($say "The light from the stone globe fades away.\n")
105: ($setp globe LIGHT FALSE)
106: {else}:
107: ($say "The stone globe glows brightly!\n")
108: ($setp globe LIGHT TRUE)
109: )
110: ($setg LOOKP TRUE)
111: ($exit 1)
112: )
113: ;
114:
115:
116: NOUN crowbar (town3);
117: crowbar(WEIGH) = 100;
118: crowbar(LDESC) = ($say "There is a long crowbar here.\n");
119: crowbar(SDESC) = ($say "a crowbar");
120:
121: crydie =
122: ($say
123: "What POWER! The magic crystal releases a flood of energy in
124: a split-second! Unfortunately, you were a little close...\n")
125: (die);
126:
127:
128:
129: { Dragon Stuff }
130: AWAKE=MISC1;
131:
132: NOUN dragon (cel06);
133:
134:
135: white=clear;
136: NOUN green crystal(cel07);
137: NOUN red crystal(cel08);
138: NOUN blue crystal(cel10);
139: NOUN clear crystal(cel09);
140:
141: {NOUN diamond { = clear crystal;
142: {NOUN sapphire{= blue crystal;
143: {NOUN ruby (cel08){= red crystal;
144: {NOUN emerald (cel07){= green crystal;}
145:
146:
147: green crystal(WEIGH)=15;
148: green crystal(POINT)=25;
149: green crystal(LDESC) = ($say "There is a beautiful green crystal here!\n");
150: green crystal(SDESC) = ($say "a green crystal");
151:
152: green crystal(ACTION) =
153: (($eq ($verb) take):
154: (($eq ($loc .ME) cel07):
155: (($not ($prop dragon AWAKE)):
156: ($say "You hear a stirring in the Ice Cavern.\n")
157: ($setg Tempr ($plus @Tempr 2))
158: ($setp dragon AWAKE TRUE)
159: ($setp cel06 VISIT FALSE)
160:
161: :{else} ($setg Tempr 0)
162: )
163: )
164: )
165: (($eq ($verb) drop):
166: (($eq ($loc .ME) cel07):
167: ($setg Tempr ($minus @Tempr 2))
168: (($le @Tempr 0) :
169: ($setp dragon AWAKE FALSE)
170: ($say
171: "You hear a deep Y A W N from the Cavern.\n"))
172: ($setp cel06 VISIT FALSE)
173: )
174: )
175: (($eq ($verb) touch):
176: (($eq ($dobj) [red crystal]) :
177: ($say "The red and green crystals flare briefly!\n")
178: (Grow)
179: ($move .ME cel01)
180: ($setg LOOKP TRUE)
181: ($exit 1)
182: )
183: (($eq ($dobj) [blue crystal]) :
184: ($say "The blue and green crystals flare briefly!\n")
185: ($move .ME toolbox)
186: (Shrink)
187: ($setg LOOKP TRUE)
188: ($exit 1)
189: )
190: )
191: (($eq ($verb) break):
192: (($eq ($dobj) [green crystal]):
193: (crydie)
194: )
195: );
196: ROUTINE CRout;
197: WORKD = MISC1; { Has Clear crystal shed its light? }
198: red crystal(WEIGH)=15;
199: red crystal(POINT)=25;
200: red crystal(LDESC) = ($say "There is a beautiful red crystal here!\n");
201: red crystal(SDESC) = ($say "a red crystal");
202: red crystal(ACTION) =
203: (($eq ($verb) touch):
204: (($eq ($dobj) [clear crystal]) :
205: (($not ($prop [clear crystal] WORKD)):
206: ($say "The red and clear crystals flare briefly!\n")
207: ($setp [clear crystal] WORKD TRUE)
208: ($setp [clear crystal] LIGHT TRUE)
209: ($say
210: "The clear crystal blazes forth with a magical incandescence brilliant
211: enough to penetrate even the deepest darkness!!\n\n")
212: ($sfus CRout 4)
213: ($setg LOOKP TRUE)
214: ($exit 1)
215: {else} :
216: ($say
217: "The clear crystal seems curiously inert now.\n")
218: ($exit 1)
219: )
220: )
221: (($eq ($dobj) [green crystal]) :
222: ($say "The red and green crystals flare briefly!\n")
223: (Grow)
224: ($move .ME cel01)
225: ($setg LOOKP TRUE)
226: ($exit 1)
227: )
228: )
229: (($eq ($verb) break):
230: (($eq ($dobj) [red crystal]):
231: (crydie)
232: )
233: );
234:
235:
236: blue crystal(WEIGH)=15;
237: blue crystal(POINT)=25;
238: blue crystal(LDESC) = ($say "There is a beautiful blue crystal here!\n");
239: blue crystal(SDESC) = ($say "a blue crystal");
240: blue crystal(ACTION) =
241: (($eq ($verb) touch):
242: (($eq ($dobj) [red crystal]) :
243: ($say "The red and blue crystals flare briefly!\n")
244: ($exit 1)
245: )
246: (($eq ($dobj) [green crystal]) :
247: ($say "The blue and green crystals flare briefly!\n")
248: ($move .ME toolbox)
249: (Shrink)
250: ($setg LOOKP TRUE)
251: ($exit 1)
252: )
253: )
254: (($eq ($verb) break):
255: (($eq ($dobj) [blue crystal]):
256: (crydie)
257: )
258: );
259:
260:
261: CRout = ($say "The glowing magical crystal seems to have gone dark.\n> ")
262: ($setp [clear crystal] LIGHT FALSE)
263: ;
264: clear crystal(WEIGH)=15;
265: clear crystal(POINT)=25;
266: clear crystal(LDESC) = ($say "There is a beautiful clear crystal here")
267: (($prop [clear crystal] LIGHT): ($say " (GLOWING!)"))
268: ($say "!\n");
269: clear crystal(SDESC) = ($say "a clear crystal")
270: (($prop [clear crystal] LIGHT): ($say " (GLOWING!)"))
271: ;
272: clear crystal(ACTION) =
273: (($eq ($verb) touch):
274: (($eq ($dobj) [red crystal]) :
275: (($not ($prop [clear crystal] WORKD)):
276: ($say "The red and clear crystals flare briefly!\n")
277: ($setp [clear crystal] WORKD TRUE)
278: ($setp [clear crystal] LIGHT TRUE)
279: ($say
280: "The clear crystal blazes forth with a magical incandescence brilliant
281: enough to penetrate even the deepest darkness!!\n\n")
282: ($setg LOOKP TRUE)
283: ($sfus CRout 4)
284: ($exit 1)
285: {else} :
286: ($say
287: "The clear crystal seems curiously inert now.\n")
288: ($exit 1)
289: )
290: )
291: )
292: (($eq ($verb) break):
293: (($eq ($dobj) [red crystal]):
294: (crydie)
295: )
296: );
297:
298:
299:
300: ROUTINE DRdem; { Dragon Daemon. Increases temper in .my presence }
301: DRdem= (($not ($prop dragon AWAKE)): ($exit 0))
302: (($eq ($loc .ME) ($loc dragon)):
303: (($eq ($loc [green crystal]) .ME): { even worse! }
304: ($setg Tempr ($plus @Tempr 1)))
305: ($setg Tempr ($plus @Tempr 1)) )
306: { ($say "His temper is now at ")($num @Tempr)($say "\n") }
307: (($ge @Tempr 7):
308: ($say
309: "Jeez, I didn't know ice dragons could reach their boiling point!
310: In a final flare of rage, he opens his mouth and breathes his frigid
311: breath in a blast in your direction. It's a bit much for you.\n")
312: (die)
313: )
314: (($ge @Tempr 6) :
315: ($say "Gee, he looks like he's really at the edge!\n")
316: ($exit 0))
317: (($ge @Tempr 5) :
318: ($say "This is one upset dragon! Be careful!\n")
319: ($exit 0))
320: (($ge @Tempr 3) :
321: ($say "He's getting angrier...\n")($exit 0))
322: ;
323:
324: dragon(WEIGH)=CAPAC;
325: dragon(LDESC)=
326: (($prop dragon AWAKE):
327: ($say
328: "There is a fierce ice dragon glaring balefully in your direction.\n")
329: :{else}
330: ($say
331: "There is a large white dragon sleeping peacefully in the middle
332: of the cavern floor.\n")
333: )
334: (DRdem);
335: dragon(SDESC)=
336: (($prop dragon AWAKE): ($say "a fierce dragon")
337: : ($say "a somnolent dragon")
338: )
339: (@LOOKP: ($say "\n") (DRdem))
340: ;
341:
342: dragon(ACTION)= { Man, the things you can try here... }
343: (($prop dragon AWAKE): { This is the harder stuff }
344: (($eq ($verb) strike):
345: ($say "This just seems to get him angrier!\n")
346: ($setg Tempr ($plus @Tempr 1))
347: ($exit 1))
348: (($eq ($verb) throw):
349: (($eq ($iobj) dragon):
350: (($gt ($prop ($dobj) WEIGH) 75):
351: ($say
352: "This just bruises him! Now he's getting mad!\n")
353: ($setg Tempr ($plus @Tempr 1))
354: ($exit 1) :
355: {else}
356: ($say
357: "That object is just too light to hurt him.\n")
358: ($exit 1)
359: )
360: : ($say "This amuses the dragon no end!\n")
361: ($exit 1)
362: )) { end of Throw case}
363: :{else}
364: { he's snoozing}
365: (($eq ($verb) wake):
366: ($say "You manage to waken him. He's not happy.\n")
367: ($setg Tempr 1)
368: ($setp dragon AWAKE TRUE)
369: ($exit 1))
370: (($eq ($verb) strike):
371: ($say "Now you woke him up! He's upset, too!\n")
372: ($setg Tempr 2)
373: ($setp dragon AWAKE TRUE)
374: ($exit 1))
375: (($eq ($verb) throw):
376: (($eq ($iobj) dragon):
377: (($gt ($prop ($dobj) WEIGH) 75):
378: ($say
379: "It's just heavy enough to waken him. The bruise doesn't help
380: his temper any either.\n")
381: ($setp dragon AWAKE TRUE)
382: ($setg Tempr 3)
383: ($exit 1) :
384: {else}
385: ($say
386: "That object is just too light to wake him.\n")
387: ($exit 1)
388: )
389: : ($say "Don't hurt yourself trying!\n")
390: ($exit 1)
391: )) { end of Throw case}
392: );
393:
394:
395:
396:
397: NOUN bed (farm7);
398: bed(WEIGH) = CAPAC;
399: bed(SDESC) = ($say "an old, rickety bed");
400:
401: bed(ACTION) =
402: (($eq ($verb) move):
403: (($prop bed OPEN) :
404: ($say "Stop messing with the bed, it's fragile!\n")
405: ($exit 1)
406: )
407: ($say
408: "Moving the bed seems to have loosened one of the wall panels
409: on the west wall.\n")
410: ($setp bed OPEN TRUE)
411: ($exit 1)
412: );
413:
414: NOUN panel (farm7);
415: panel(OPENS) = TRUE;
416: panel(WEIGH) = CAPAC;
417: panel(ACTION) =
418: (($or ($eq ($verb) open)
419: ($eq ($verb) pry) ):
420: (($and ($eq ($iobj) crowbar)
421: ($eq ($loc crowbar) .ME)):
422: (($not ($prop bed OPEN)):
423: ($say "There aren't any loose enough.\n")
424: ($exit 1))
425: ($say
426: "The loose panel comes away, revealing a secret stairway down, down...\n")
427: ($setp panel OPEN TRUE)
428: {else}:
429: ($say "You can't seem to get the panel open.\n")
430: )
431: ($exit 1)
432:
433: );
434:
435: NOUN knife (farm6);
436: knife(LDESC)=
437: (($prop farm6 VISIT):
438: ($say "There is a carving knife here.\n")
439: :{else} ($say "However,
440: on the table is a large carving knife (suitable for blind mice).\n")
441: );
442: knife(SDESC)=($say "a carving knife");
443:
444:
445:
446: NOUN bottle(town6);
447: bottle (LDESC) = ($say "There is a bottle here.\n");
448: bottle (SDESC) = ($say "a bottle");
449: bottle (TRANS) = TRUE;
450: bottle (ACTION) =
451: (($eq ($verb) open):
452: ($say "Hm, the bottle is somehow sealed shut.\n")
453: ($exit 1))
454: (($eq ($verb) break):
455: ($say "Wow, is that heavy glass! It won't break!\n")
456: ($exit 1))
457: (($eq ($verb) strike):
458: (($eq ($iobj) bottle):
459: ($say "Weird thing to do with it.\n")
460: : ($say "Nice try, but it isn't even scratched.\n")
461: )
462: ($exit 1));
463:
464: NOUN ship(bottle);
465: ship (LDESC) = ($say "There is a model ship here.\n");
466: ship (SDESC) = ($say "a model ship");
467: ship (POINT) = 50;
468:
469: ROUTINE TWN5y;
470: NOUN well(town5);
471: well (WEIGH) = CAPAC;
472: well (ACTION) =
473: (($eq ($iobj) well):
474: (($eq ($verb) put):
475: (cdrop)
476: (TWN5y)
477: ($exit 1)
478: )
479: );
480:
481: NOUN insignia;
482: insignia (WEIGH) = CAPAC;
483: insignia (ACTION) = ($say "There's nothing useful to do with the insignia.\n")
484: ($exit 1);
485: square=insignia;
486:
487: NOUN glass box(cel08);
488: glass box(HOLDS)=1;
489: glass box(TRANS)=TRUE;
490: glass box(OPENS)=TRUE;
491: glass box(OPEN)=FALSE;
492: glass box(SHRNK)=TRUE; { First seen as a tiny box }
493: glass box(LDESC) =
494: (($eq ($prop .ME SHRNK) ($prop [glass box] SHRNK)):
495: ($say "There is a big glass case here.\n")
496: ($setp [glass box] WEIGH CAPAC)
497: ($setp [glass box] HOLDS 50)
498:
499: {else}:
500: (($prop .ME SHRNK):
501: ($say
502: "Before you looms a huge glass wall, inscribed with the words,
503: 'program error!'\n")
504: {else} :
505: ($say
506: "There is a tiny glass box with a snap lid here.\n")
507: ($setp [glass box] WEIGH 5)
508: ($setp [glass box] HOLDS 1)
509:
510: )
511: );
512: glass box(SDESC) =
513: (($eq ($prop .ME SHRNK) ($prop [glass box] SHRNK)):
514: ($say "a glass case")
515: ($setp [glass box] WEIGH CAPAC)
516: ($setp [glass box] HOLDS 50)
517:
518: {else}:
519: (($prop .ME SHRNK):
520: ($say
521: "a huge glass wall, inscribed with the words,
522: 'program error'")
523: {else} :
524: ($say "a tiny glass box")
525: ($setp [glass box] WEIGH 5)
526: ($setp [glass box] HOLDS 1)
527:
528: )
529: );
530: case=glass box;
531:
532: NOUN sand(glass box);
533: sand(SHRNK)=TRUE;
534: sand(WEIGH)=1;
535: sand(LDESC)=(($and ($prop sand SHRNK)
536: ($not ($prop .ME SHRNK))):
537: ($setp sand POINT 0)
538: ($say "There is a grain of sand here.\n")
539:
540: {else}: ($say "There is a beautiful porcelain statue here!\n")
541: ($setp sand POINT 50)
542: );
543: sand(SDESC)=(($and ($prop sand SHRNK)
544: ($not ($prop .ME SHRNK))):
545: ($setp sand POINT 0)
546: ($say "a grain of sand") :
547: ($say "a porcelain statue")
548: ($setp sand POINT 50)
549: );
550: statue=sand;
551: sand(ACTION)=(($eq ($verb) take):
552: (($and ($prop sand SHRNK)
553: ($not ($prop .ME SHRNK))):
554: ($say "You fumble the grain of sand and lose it on the ground.\n")
555: ($move sand .ALL)
556: ($exit 1)
557: )
558: );
559:
560: NOUN hole;
561:
562:
563: NOUN rock(road5);
564: rock(LDESC)=($say "There is a plain-looking rock here.\n");
565: rock(SDESC)=($say "an ordinary rock");
566: rock(ACTION)=
567: (($and ($eq ($verb) take)
568: ($eq ($dobj) rock)):
569: ($say "Mmph! Heavy!\n"));
570: rock(WEIGH)=100;
571: {
572: {NOUN saw(toolbox);
573: {saw(WEIGH) = 20;
574: {saw(LDESC) = ($say "There is a saw here.\n");
575: {saw(SDESC) = ($say "a saw");
576: {saw(ACTION) = (($eq ($verb) cut):
577: { (($eq ($dobj) hole):
578: { (($eq ($loc .ME) cel13):
579: { (($prop cel13 HOLED):
580: { ($say "There's already one here!\n")
581: { ($exit 1)
582: { :{else}
583: { ($say
584: {"You cut a hole in the thick ice; icy water sloshes about two feet down.\n")
585: { ($setp cel13 HOLED TRUE)
586: { ($move hole cel13)
587: { ($exit 1)
588: { )
589: { )
590: { { cutting a hole somewhere else }
591: { ($say "There's nowhere to cut a hole.\n")
592: { ($exit 1)
593: { )
594: { ($say "The saw isn't used that way.\n")
595: { ($exit 1)
596: { ); /* I Know A better way to make a Hole */}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.