ADL Scenario Source Code

    VERB
      pry,  strike, wake,   say,
      beam, join,   opener, glow,
      grab, weigh,  rname,  score,
      debug;

    feel	= touch;
    shake	= wake;
    hit	= strike;
    kill	= strike;
    shut	= close;
    push	= move;
    pull	= move;
    lift	= move;
    destroy	= break;
    incant	= say;
    chant	= say;
    shout	= say;
    yell	= say;
    out	= exit;

    cg = Proc()
    {
        "You can't go that way.\n";
        MyLoc = $loc($ME);
    }

    die = Proc()
    {
        "You are dead.  Better luck next time.\n";
        Die();
    }

    Looks = Proc()
    {
        If (Dobj) {
    	"Huh?\n";
    	$exit(1);
        }
        GOVERB = TRUE;
        MyLoc = -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;

    out (PREACT) = Looks;
    enter (PREACT) = Looks;

    say (PREACT) = Proc()
    {
        Expect(NO_OBJ|ONE_OBJ|STR_OBJ|PLAIN_OBJ, NO_OBJ);
        If (!Dobj) {
    	"Type just what you want to say: ";
    	Dobj = $read();
        }
        If (Dobj >= 0) {
    	"You want to make " $name(Dobj)
    	" a linguistic artifact??  Strange!\n";
    	$exit(1);
        }
    }
    say (ACTION) = Proc()
    {
        If (Dobj ?= Shazm) {
    	WzTgl();
        }
        Else {
    	"Very well.  '" Dobj "'.\n";
        }
    }

    DWIMD = Proc() {Return Dwimmer($arg(1));}

    DWIMI = Proc() {Return Dwimmer($arg(1));}

    wake(PREACT) = Preact;
    wake(ACTION) = Proc() {"I don't know how to wake " $name(Dobj) ".\n";}

    strike(PREACT) = Preact;
    strike(ACTION) = Proc()
    {
        "Hitting the " $name(Dobj) " doesn't seem to do anything.";
    }

    pry(PREACT) = Proc()
    {
        Expect(ONE_OBJ|PLAIN_OBJ, ONE_OBJ|PLAIN_OBJ);
        CheckAvail();
    }
    pry(ACTION) = Proc() {"I can't seem to manage that.\n";}

    Tress = Proc()
    {
        "You were warned about trespassing! The fence is electrified!\n";
        die();
    }

    score(ACTION) = Proc()
    {
        If ($loc($ME) == town5) {
            "A mysterious glowing network of lights appears, and you can "
            "just make out the words:\n"
            "\tYour account is now at $" $str(SCORE) ". "
            "\tThank you for letting Arpa-Citizen's be your host. "
            "The network then disappears.\n";
        }
        Else {
    	"Hmm, you'll have to check at the local bank.\n";
        }
    }

    WizP = Proc()
    {
        If (!Wizrd) {
    	"Only a real Wizard can do that!\n";
    	$exit(1);
        }
    }

    rname(PREACT) = Proc()
    {
        If (Dobj) {
    	WizP();
    	$sdesc(Dobj)();
        }
        Else {
    	$sdesc($loc($ME))();
        }
        $exit(1);
    }
    beam(PREACT) = WizP;
    grab(PREACT) = WizP;
    join(PREACT) = WizP;
    opener(PREACT) = WizP;
    glow(PREACT) = WizP;
    weigh(PREACT) = WizP;
    debug(PREACT) = WizP;

    beam(ACTION) = Proc()
    {
        If (Dobj) {
    	$move($ME, Dobj);
    	MyLoc = -1;
        }
    }

    join(ACTION) = Proc()
    {
        If (Dobj) {
    	$move($ME, $loc(Dobj));
    	MyLoc = -1;
        }
    }

    opener(ACTION) = Proc()
    {
        If (Dobj) {
    	Dobj.OPENED = TRUE;
    	"Opened.\n";
        }
    }

    glow(ACTION) = Proc()
    {
        $ME.LIGHT = !$ME.LIGHT;
        If ($ME.LIGHT)
    	"Your body begins to radiate a strong but gentle white light!\n";
        Else
    	"The light from your body fades away.\n";
    }

    grab(ACTION) = Proc()
    {
        If (Dobj) {
    	"You have the " $name(Dobj) ", Boss!\n";
    	$move(Dobj, $ME);
    	$ME.HAS = $ME.HAS + Dobj.WEIGH;
        }
    }

    weigh(ACTION) = Proc()
    {
        If (Dobj)
    	"The " $name(Dobj) " weighs " $str(Dobj.WEIGH);
        Else
    	"You are carrying " $str($ME.HAS);
        " pounds, Boss!\n";
    }

    debug(ACTION) = Proc()
    {
        $spec(DEBUG);	// Turn on debugging
    }