|
|
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.