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