BSD 4_1_snap development
authorCSRG <csrg@ucbvax.Berkeley.EDU>
Sat, 2 Aug 1980 16:56:56 +0000 (08:56 -0800)
committerCSRG <csrg@ucbvax.Berkeley.EDU>
Sat, 2 Aug 1980 16:56:56 +0000 (08:56 -0800)
Work on file usr/src/games/mpu/verbs

Synthesized-from: CSRG/cd1/4.1.snap

usr/src/games/mpu/verbs [new file with mode: 0644]

diff --git a/usr/src/games/mpu/verbs b/usr/src/games/mpu/verbs
new file mode 100644 (file)
index 0000000..b790f88
--- /dev/null
@@ -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")
+       );
+