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