Annotation of 43BSD/games/ddl/sample/verbs.ddl, revision 1.1.1.1

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:                (($sdesc ($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 ")(($sdesc ($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 ")(($sdesc ($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 ")(($sdesc ($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:                (($sdesc ($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: { Wizardly Tricks }
                    331: 
                    332: VERB Debug, BEAM, JOIN, Open, GLOW,GRAB, WHERE;
                    333: WizP = (($not @Wizrd) :
                    334:                ($say "Only a real Wizard can do that!\n")
                    335:                ($exit 1)
                    336:        );
                    337: Debug(PREACT) = WizP;
                    338: BEAM(PREACT) = WizP;
                    339: GRAB(PREACT) = WizP;
                    340: JOIN(PREACT) = WizP;
                    341: Open(PREACT) = WizP;
                    342: GLOW(PREACT) = WizP;
                    343: WHERE(PREACT) = WizP;
                    344: 
                    345: Debug(ACTION) = ($spec 8 8 0 0 0);
                    346: BEAM(ACTION) = ($move .ME ($dobj))
                    347:                ($setg LOOKP TRUE);
                    348: JOIN(ACTION) = ($move .ME ($loc ($dobj)))
                    349:                ($setg LOOKP TRUE);
                    350: Open(ACTION) = ($setp ($dobj) OPEN TRUE)($say "Opened.\n");
                    351: GLOW(ACTION) = ($setp .ME LIGHT ($not ($prop .ME LIGHT)))
                    352:                (($prop .ME LIGHT) : 
                    353:                        ($say 
                    354: "Your body begins to radiate a strong but gentle white light!\n")
                    355:                :       ($say
                    356: "The light from your body fades away.\n"));
                    357: GRAB(ACTION) = ($say "You have the ")($name ($dobj))($say ", Boss!\n")
                    358:                ($move ($dobj) .ME);
                    359: WHERE(ACTION) = ($say "The True Name of this place is '")
                    360:                ($name ($loc .ME))
                    361:                ($say "'.\n");

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.