|
|
1.1 ! root 1: cg = ($say "Can't go that way.\n"); ! 2: ny = ($say "That exit seems impassable today!?\n"); ! 3: ! 4: die = ($say "You are dead. Better luck next time.\n") ! 5: ($spec 3 0 0 0 0); ! 6: ! 7: VERB n,s,e,w,ne,se,nw,sw; ! 8: VERB up,down; ! 9: VERB enter,out; ! 10: ! 11: u=up; d=down; ! 12: north=n; south=s; east=e; west=w; ! 13: ! 14: Looks = ($setg LOOKP TRUE)(($dobj): ($say "Huh?\n")($exit 1)); ! 15: ccg = (($not @GO) : ! 16: (cg) ! 17: ) ! 18: ($setg GO FALSE) ! 19: ; ! 20: ! 21: ! 22: n (PREACT) = Looks; n (ACTION) = ccg; ! 23: s (PREACT) = Looks; s (ACTION) = ccg; ! 24: e (PREACT) = Looks; e (ACTION) = ccg; ! 25: w (PREACT) = Looks; w (ACTION) = ccg; ! 26: ! 27: nw(PREACT) = Looks; nw(ACTION) = ccg; ! 28: ne(PREACT) = Looks; ne(ACTION) = ccg; ! 29: sw(PREACT) = Looks; sw(ACTION) = ccg; ! 30: se(PREACT) = Looks; se(ACTION) = ccg; ! 31: ! 32: u (PREACT) = Looks; u (ACTION) = ccg; ! 33: d (PREACT) = Looks; d (ACTION) = ccg; ! 34: ! 35: out (PREACT) = Looks; out(ACTION) = ccg; ! 36: enter (PREACT) = Looks; enter(ACTION) = ccg; ! 37: ! 38: VERB say; ! 39: say (PREACT) = ! 40: (($not ($dobj)): ! 41: ($say "Type just what you want to say: ") ! 42: ($setg Dobj ($read))) ! 43: (($ge ($dobj) 0) : ! 44: ($say "You want to make ") ! 45: (($sdisc ($dobj))) ! 46: ($say " a linguistic artifact?? Strange!\n") ! 47: ($exit 1)); ! 48: say (ACTION) = ! 49: (($eqst ($dobj) Shazm) : ! 50: (WzTgl) ! 51: :{else} ! 52: ($say "Very well. '")($say ($dobj))($say "'.\n")); ! 53: incant = say; chant = say; shout = say; yell = say; ! 54: ! 55: VERB take; VERB drop; ! 56: take(PREACT) = (Avail ($dobj)) ! 57: (($eq ($prop ($dobj) WEIGH) CAPAC): ! 58: ($say "You can't take that!\n") ! 59: ($exit 1) ! 60: ) ! 61: (($ge ($plus ($prop .ME HAS) ! 62: ($prop ($dobj) WEIGH)) ! 63: ($prop .ME HOLDS)): ! 64: ($say "You can't carry that much more!\n") ! 65: ($exit 1) ! 66: ); ! 67: drop(PREACT) = ! 68: (($ne ($loc ($dobj)) .ME) : ! 69: ($say "You don't have it with you.\n")($exit 1)); ! 70: ROUTINE ctake; ROUTINE cdrop; ! 71: ! 72: ! 73: DWIMD = (($not (See ($dobj) ($cont ($loc .ME)))): ! 74: ($rtrn 0) ! 75: ) ! 76: (($not (Reach ($dobj) ($cont ($loc .ME)))): ! 77: ($rtrn 0) ! 78: ) ! 79: (($and ($eq ($verb) take) ($eq ($loc ($dobj)) .ME)): ! 80: ($rtrn 0) ! 81: ) ! 82: (($and ($eq ($verb) drop) ($ne ($loc ($dobj)) .ME)): ! 83: ($rtrn 0) ! 84: ) ! 85: ($rtrn 1) ! 86: ; ! 87: ! 88: DWIMI = (($not (See ($iobj) ($cont ($loc .ME)))): ! 89: ($rtrn 0) ! 90: ) ! 91: (($not (Reach ($iobj) ($cont ($loc .ME)))): ! 92: ($rtrn 0) ! 93: ) ! 94: (($and ($eq ($verb) take) ($eq ($loc ($iobj)) .ME)): ! 95: ($rtrn 0) ! 96: ) ! 97: (($and ($eq ($verb) drop) ($ne ($loc ($iobj)) .ME)): ! 98: ($rtrn 0) ! 99: ) ! 100: ! 101: ($rtrn 1) ! 102: ; ! 103: ! 104: ! 105: ! 106: ! 107: ! 108: take(ACTION) = (ctake); ! 109: ctake = ! 110: ($setp .ME HAS ($plus ($prop .ME HAS) ($prop ($dobj) WEIGH) ) ) ! 111: {($say "You are holding ")($num ($prop .ME HAS))($say " lbs.\n")} ! 112: ($say "Taken.\n") ($move ($dobj) .ME) ! 113: ; ! 114: ! 115: drop(ACTION) = (cdrop); ! 116: cdrop = ! 117: ($say "Dropped.\n") ($move ($dobj) ($loc .ME)) ! 118: ($setp .ME HAS ($minus ($prop .ME HAS)($prop ($dobj) WEIGH))) ! 119: ; ! 120: ! 121: VERB put; ! 122: put (PREACT) = ! 123: (($ne ($loc ($dobj)) .ME) : ! 124: ($say "You don't have it with you.\n")($exit 1)) ! 125: (Avail ($iobj)); ! 126: put(ACTION) = ! 127: (($not ($and ($prop ($iobj) OPEN) ! 128: ($prop ($iobj) OPENS))): ! 129: ($say "You can't seem to manage that trick.\n")($exit 0)) ! 130: (($gt ($plus ($prop ($iobj) HAS) ! 131: ($prop ($dobj) WEIGH)) ! 132: ($prop ($iobj) HOLDS)): ! 133: ($say "It won't fit!\n")($exit 0)) ! 134: ($say "OK\n") ($move ($dobj) ($iobj)) ! 135: ($setp ($iobj) HAS ($plus ($prop ($iobj) HAS) ($prop ($dobj) WEIGH))) ! 136: ; ! 137: ! 138: ! 139: ! 140: ! 141: ! 142: ! 143: ! 144: ! 145: ! 146: VERB open; VERB close; ! 147: open(PREACT) = (Avail ($dobj))(($iobj):(Avail ($iobj))); ! 148: close(PREACT) = (Avail ($dobj))(($iobj):(Avail ($iobj))); ! 149: open(ACTION) = ! 150: (($not ($prop ($dobj) OPENS)): ! 151: ($say "I don't know how to open that!\n")($exit 0)) ! 152: (($and ($prop ($dobj) LOCKS) ! 153: ($prop ($dobj) LOCKD)): ! 154: ($say "I can't open it, it's locked!\n")($exit 0)) ! 155: (($prop ($dobj) OPEN): ! 156: ($say "It's already open!\n")($exit 0)) ! 157: ($setp ($dobj) OPEN TRUE) ! 158: ($say "Opened.\n") ! 159: (($and ($ne 0 ($cont ($dobj))) ($not ($prop ($dobj) TRANS))): ! 160: (Llook 1 ($cont ($dobj))) ! 161: ) ! 162: ; ! 163: ! 164: close (ACTION) = ! 165: (($not ($prop ($dobj) OPENS)): ! 166: ($say "I don't know how to close that!\n")($exit 0)) ! 167: (($not ($prop ($dobj) OPEN)): ! 168: ($say "It's already closed!\n")($exit 0)) ! 169: ($setp ($dobj) OPEN FALSE) ! 170: ($say "Closed\n") ! 171: ; ! 172: ! 173: ! 174: VERB lock; VERB unlock; ! 175: lock(PREACT) = (Avail ($dobj))(($iobj):(Avail ($iobj))); ! 176: unlock(PREACT) = (Avail ($dobj))(($iobj):(Avail ($iobj))); ! 177: ! 178: Lockact = ! 179: (($prop ($dobj) LOCKS) : ! 180: ($say "Hm, you don't seem to have the right key.\n") ! 181: {else}: ! 182: ($say "I don't know how to lock or unlock such a thing.\n") ! 183: ); ! 184: ! 185: lock(ACTION) = Lockact; ! 186: unlock(ACTION) = Lockact; ! 187: ! 188: Lockup = ! 189: (($prop %1 OPEN): ! 190: ($say "You must close it first.\n")($exit 1)) ! 191: (($prop %1 LOCKD): ! 192: ($say "It's already locked!\n")($exit 1)) ! 193: (($not ($prop %1 LOCKS)):($exit 0)) ! 194: (($eq ($loc %2) .ME): ! 195: ($say %3) ! 196: ($setp %1 LOCKD TRUE) ! 197: ($exit 1)) ! 198: ; ! 199: Ulock = ! 200: (($not($prop %1 LOCKD)): ! 201: ($say "It's already unlocked!\n")($exit 1)) ! 202: (($not ($prop %1 LOCKS)):($exit 0)) ! 203: (($eq ($loc %2) .ME): ! 204: ($say %3) ! 205: ($setp %1 LOCKD FALSE) ! 206: ($exit 1)) ! 207: ; ! 208: ! 209: ! 210: ! 211: ! 212: VERB move; ! 213: move(PREACT) = (Avail ($dobj)); ! 214: move(ACTION) = ! 215: ($say "Nothing seems to happen.\n"); ! 216: push=move; ! 217: pull=move; ! 218: lift=move; ! 219: ! 220: VERB break; ! 221: break(PREACT) = (Avail ($dobj)); ! 222: break(ACTION) = ! 223: ($say "It seems to be unbreakable.\n"); ! 224: ! 225: VERB wake; ! 226: wake(PREACT) = (Avail ($dobj)); ! 227: wake(ACTION) = ($say "I don't know how to wake ")(($sdisc ($dobj))) ! 228: ($say ".\n"); ! 229: ! 230: VERB strike; hit=strike; kill=strike; ! 231: strike(PREACT) = (Avail ($dobj)) ! 232: (($iobj): ! 233: (($ne ($loc ($iobj)) .ME): ! 234: ($say "You don't have it with you.\n") ! 235: ($exit 1) ! 236: ) ! 237: ); ! 238: strike(ACTION) = ($say "Hitting ")(($sdisc ($dobj)))($say ! 239: " doesn't seem to do anything."); ! 240: ! 241: VERB touch; feel=touch; ! 242: touch(PREACT) = (Avail ($dobj)) ! 243: (($iobj): ! 244: (($ne ($loc ($iobj)) .ME): ! 245: ($say "You don't have it with you.\n") ! 246: ($exit 1) ! 247: ) ! 248: ); ! 249: touch(ACTION) = ($say "Touching ")(($sdisc ($dobj))) ! 250: ($say " doesn't seem too useful.\n"); ! 251: ! 252: ! 253: ! 254: ! 255: ! 256: ! 257: VERB rub; ! 258: rub(PREACT) = (Avail ($dobj)); ! 259: rub(ACTION) = ($say "Nothing happens when you rub ") ! 260: (($sdisc ($dobj)))($say ".\n"); ! 261: ! 262: VERB cut; ! 263: cut(PREACT) = (($not ($iobj)): ($say "You need tools to do that.\n") ! 264: ($exit 1)) ! 265: (Avail ($iobj)); ! 266: ! 267: VERB pry; ! 268: pry(PREACT) = (Avail ($dobj)) ! 269: (($not ($iobj)): ($say "You need tools to do that.\n") ! 270: ($exit 1)) ! 271: (Avail ($iobj)); ! 272: ! 273: pry(ACTION) = ($say "I can't seem to manage that.\n"); ! 274: ! 275: VERB throw; ! 276: throw(PREACT) = (($ne ($loc ($dobj)) .ME): ($say "You aren't holding it!\n") ! 277: ($exit 1)); ! 278: throw(ACTION) = ($move ($dobj) ($loc .ME)) ! 279: ($say "Thrown.\n"); ! 280: ! 281: VERB read; ! 282: read(PREACT) = (Avail ($dobj)); ! 283: read(ACTION) = ($say "It doesn't have anything on it to read.\n"); ! 284: ! 285: VERB light; ! 286: light(PREACT) = (Avail ($dobj)); ! 287: ! 288: tress = ($say "You were warned about trespassing! The fence is electrified!\n") ! 289: (die); ! 290: ! 291: ! 292: ! 293: VERB look; ! 294: VERB quit; ! 295: VERB inven; ! 296: VERB score; ! 297: VERB save; ! 298: VERB restore; ! 299: ! 300: look(ACTION) = (Llook 0 ($loc .ME)) ! 301: ; ! 302: inven(ACTION) = (($not ($cont .ME)): ! 303: ($say "You are empty-handed.\n") ! 304: ($exit 1)) ! 305: ($setp .ME CONTS TRUE) ! 306: ($say "You are carrying:\n") ! 307: (Slook 1 ($cont .ME)) ! 308: ; ! 309: quit(ACTION) = ($spec 3 0 0 0 0); ! 310: ! 311: score(ACTION) = ! 312: (($eq ($loc .ME) town5): ! 313: ($say ! 314: "A mysterious glowing network of lights appears, and you can ! 315: just make out the words: ! 316: Your account is now at $") ! 317: ($num @SCORE) ! 318: ($say ". ! 319: Thank you for letting Arpa-Citizen's be your host.\n") ! 320: ($say ! 321: "The network then disappears.\n") ! 322: {else}: ! 323: ($say ! 324: "Hmm, you'll have to check at the local bank.\n")); ! 325: ! 326: ! 327: save(ACTION) = ($spec 4 0 0 0 0); ! 328: restore(ACTION) = ($spec 5 0 0 0 0); ! 329: ! 330: VERB Debug, BEAM, JOIN, Open, GLOW,GRAB; ! 331: WizP = (($not @Wizrd) : ! 332: ($say "Only a real Wizard can do that!\n") ! 333: ($exit 1) ! 334: ); ! 335: Debug(PREACT) = WizP; ! 336: BEAM(PREACT) = WizP; ! 337: GRAB(PREACT) = WizP; ! 338: JOIN(PREACT) = WizP; ! 339: Open(PREACT) = WizP; ! 340: GLOW(PREACT) = WizP; ! 341: ! 342: Debug(ACTION) = ($spec 8 8 0 0 0); ! 343: BEAM(ACTION) = ($move .ME ($dobj)) ! 344: ($setg LOOKP TRUE); ! 345: JOIN(ACTION) = ($move .ME ($loc ($dobj))) ! 346: ($setg LOOKP TRUE); ! 347: Open(ACTION) = ($setp ($dobj) OPEN TRUE)($say "Opened.\n"); ! 348: GLOW(ACTION) = ($setp .ME LIGHT ($not ($prop .ME LIGHT))) ! 349: (($prop .ME LIGHT) : ($say ! 350: "Your body begins to radiate a strong but gentle white light!\n") ! 351: : ($say ! 352: "The light from your body fades away.\n")); ! 353: GRAB(ACTION) = ($say "You have the ")($name ($dobj))($say ", Boss!\n") ! 354: ($move ($dobj) .ME); ! 355:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.