From c976ed3334ff791575e32d88d493efa6f39f44a5 Mon Sep 17 00:00:00 2001 From: CSRG Date: Sat, 2 Aug 1980 08:56:56 -0800 Subject: [PATCH] BSD 4_1_snap development Work on file usr/src/games/mpu/verbs Synthesized-from: CSRG/cd1/4.1.snap --- usr/src/games/mpu/verbs | 305 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 305 insertions(+) create mode 100644 usr/src/games/mpu/verbs diff --git a/usr/src/games/mpu/verbs b/usr/src/games/mpu/verbs new file mode 100644 index 0000000000..b790f88b17 --- /dev/null +++ b/usr/src/games/mpu/verbs @@ -0,0 +1,305 @@ +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") + ); + -- 2.20.1