VERB Debug; VERB n,s,e,w,ne,se,nw,sw; VERB up,down; u=up; d=down; north=n; south=s; east=e; west=w; Looks = ($setg LOOKP TRUE)(($dobj): ($say "Huh?\n")($exit 1)); n (PREACT) = Looks; s (PREACT) = Looks; e (PREACT) = Looks; w (PREACT) = Looks; nw(PREACT) = Looks; ne(PREACT) = Looks; sw(PREACT) = Looks; se(PREACT) = Looks; u (PREACT) = Looks; d (PREACT) = Looks; VERB take; VERB drop; get=take; carry=take; take(PREACT) = (Avail ($dobj)); drop(PREACT) = (Avail ($dobj)); ROUTINE ctake; ROUTINE cdrop; VERB save; VERB shell; VERB restore; save(ACTION) = ($spec 4 0 0 0 0); shell(ACTION) = ($spec 6 "/bin/csh" "-i" 0 0); restore(ACTION) = ($spec 5 0 0 0 0) ($say "Restored.\n"); DWIMD = (($not (See ($dobj) ($cont ($loc .ME)))): ($rtrn 0) ) (($not (Reach ($dobj) ($cont ($loc .ME)))): ($rtrn 0) ) (($and ($eq ($verb) take) ($eq ($loc ($dobj)) .ME)): ($rtrn 0) ) (($and ($eq ($verb) drop) ($ne ($loc ($dobj)) .ME)): ($rtrn 0) ) ($rtrn 1) ; DWIMI = (($not (See ($iobj) ($cont ($loc .ME)))): ($rtrn 0) ) (($not (Reach ($iobj) ($cont ($loc .ME)))): ($rtrn 0) ) (($and ($eq ($verb) take) ($eq ($loc ($iobj)) .ME)): ($rtrn 0) ) (($and ($eq ($verb) drop) ($ne ($loc ($iobj)) .ME)): ($rtrn 0) ) ($rtrn 1) ; take(ACTION) = (ctake); ctake = (($ge ($plus ($prop .ME HAS) ($prop ($dobj) WEIGH)) ($prop .ME HOLDS)): ($say "You can't take that!\n") ($exit 0) ) ($setp .ME HAS ($plus ($prop .ME HAS) ($prop ($dobj) WEIGH) ) ) ($say "Taken.\n") ($move ($dobj) .ME) ; drop(ACTION) = (cdrop); cdrop = (($ne ($loc ($dobj)) .ME) : ($say "You don't have it with you.\n")($exit 1)) ($say "Dropped.\n") ($move ($dobj) ($loc .ME)) ($setp .ME HAS ($minus ($prop .ME HAS)($prop ($dobj) WEIGH))) ; VERB put; put (PREACT) = (($ne ($loc ($dobj)) .ME) : ($say "You don't have it with you.\n")($exit 1)) (Avail ($iobj)); put(ACTION) = (($not ($and ($prop ($iobj) OPEN) ($prop ($iobj) OPENS))): ($say "You can't seem to manage that trick.\n")($exit 0)) (($gt ($plus ($prop ($iobj) HAS) ($prop ($dobj) WEIGH)) ($prop ($iobj) HOLDS)): ($say "It won't fit!\n")($exit 0)) ($say "OK\n") ($move ($dobj) ($iobj)) ($setp ($iobj) HAS ($plus ($prop ($iobj) HAS) ($prop ($dobj) WEIGH))) ; VERB open; VERB close; open(PREACT) = (Avail ($dobj))(($iobj):(Avail ($iobj))); close(PREACT) = (Avail ($dobj))(($iobj):(Avail ($iobj))); open(ACTION) = (($not ($prop ($dobj) OPENS)): ($say "I don't know how to open that!\n")($exit 0)) (($and ($prop ($dobj) LOCKS) ($prop ($dobj) LOCKD)): ($say "I can't open it, it's locked!\n")($exit 0)) (($prop ($dobj) OPEN): ($say "It's already open!\n")($exit 0)) ($setp ($dobj) OPEN TRUE) ($say "Opened.\n") (($and ($ne 0 ($cont ($dobj))) ($not ($prop ($dobj) TRANS))): (Llook 1 ($cont ($dobj))) ) ; close (ACTION) = (($not ($prop ($dobj) OPENS)): ($say "I don't know how to close that!\n")($exit 0)) (($not ($prop ($dobj) OPEN)): ($say "It's already closed!\n")($exit 0)) ($setp ($dobj) OPEN FALSE) ($say "Closed\n") ; VERB lock; VERB unlock; lock(PREACT) = (Avail ($dobj))(($iobj):(Avail ($iobj))); unlock(PREACT) = (Avail ($dobj))(($iobj):(Avail ($iobj))); Lockact = (($prop ($dobj) LOCKS) : ($say "Hm, you don't seem to have the right key.\n") {else}: ($say "I don't know how to lock or unlock such a thing.\n") ); lock(ACTION) = Lockact; unlock(ACTION) = Lockact; Lockup = (($prop %1 OPEN): ($say "You must close it first.\n")($exit 1)) (($prop %1 LOCKD): ($say "It's already locked!\n")($exit 1)) (($not ($prop %1 LOCKS)):($exit 0)) (($eq ($loc %2) .ME): ($say %3) ($setp %1 LOCKD TRUE) ($exit 1)) ; Ulock = (($not($prop %1 LOCKD)): ($say "It's already unlocked!\n")($exit 1)) (($not ($prop %1 LOCKS)):($exit 0)) (($eq ($loc %2) .ME): ($say %3) ($setp %1 LOCKD FALSE) ($exit 1)) ; VERB move; move(PREACT) = (Avail ($dobj)); move(ACTION) = ($say "Nothing seems to happen.\n"); push=move; pull=move; lift=move; VERB break; break(PREACT) = (Avail ($dobj)); break(ACTION) = ($say "It seems to be unbreakable.\n"); VERB strike; hit=strike; kill=strike; strike(PREACT) = (Avail ($dobj)) (($iobj): (($ne ($loc ($iobj)) .ME): ($say "You don't have it with you.\n") ($exit 1) ) ); strike(ACTION) = ($say "Hitting ")(($sdisc ($dobj)))($say " doesn't seem to do anything."); VERB touch; feel=touch; touch(PREACT) = (Avail ($dobj)) (($iobj): (($ne ($loc ($iobj)) .ME): ($say "You don't have it with you.\n") ($exit 1) ) ); touch(ACTION) = ($say "Touching ")(($sdisc ($dobj))) ($say " doesn't seem too useful.\n"); VERB rub; rub(PREACT) = (Avail ($dobj)); rub(ACTION) = ($say "Nothing happens when you rub ") (($sdisc ($dobj)))($say ".\n"); VERB cut; cut(PREACT) = (($not ($iobj)): ($say "You need tools to do that.\n") ($exit 1)) (Avail ($iobj)); VERB pry; pry(PREACT) = (Avail ($dobj)) (($not ($iobj)): ($say "You need tools to do that.\n") ($exit 1)) (Avail ($iobj)); pry(ACTION) = ($say "I can't seem to manage that.\n"); VERB BEAM; BEAM(ACTION)=($setg LOOKP TRUE)($move .ME ($dobj)); VERB JOIN; JOIN(ACTION) = ($setg LOOKP TRUE)($move .ME ($loc ($dobj))); VERB GRAB; GRAB(ACTION) = ($move ($dobj) .ME) ($say "You have the ")($name ($dobj))($say ", boss!\n"); VERB throw; throw(PREACT) = (($ne ($loc ($dobj)) .ME): ($say "You aren't holding it!\n") ($exit 1)); throw(ACTION) = ($move ($dobj) ($loc .ME)) ($say "Thrown.\n"); VERB wake; wake(PREAC) = (Avail ($dobj)); wake(ACTION) = ($say "I don't know how to wake ")(($sdisc ($dobj))) ($say ".\n"); VERB read; read(PREAC) = (Avail ($dobj)); read(ACTION) = ($say "It doesn't have anything on it to read.\n"); VERB light; light(PREACT) = (Avail ($dobj)); cg = ($say "Can't go that way. "); ny = ($say "That exit seems impassable today!?\n"); die = ($say "You are dead. Better luck next time.\n") ($spec 3 0 0 0 0); tress = ($say "You were warned about trespassing! The fence is electrified!\n") (die); VERB look; VERB quit; VERB inven; VERB score; look(ACTION) = (Llook 0 ($loc .ME)) ; inven(ACTION) = (($not ($cont .ME)): ($say "You are empty-handed.\n") ($exit 1)) ($setp .ME CONTS TRUE) ($say "You are carrying:\n") (Slook 1 ($cont .ME)) ; quit(ACTION) = ($spec 3 0 0 0 0); score(ACTION) = (($eq ($loc .ME) town5): ($say "A mysterious glowing network of lights appears, and you can just make out the words: Your account is now at $") ($num @SCORE) ($say ". Thank you for letting Arpa-Citizen's be your host.\n") ($say "The network then disappears.\n") {else}: ($say "Hmm, you'll have to check at the local bank.\n") );