-------cut here--------------

//
//  This is a very simple piece of code that allows the player to choose
//  whether or not they want to be notified when they're score changes.  It
//  is should be bug-free, being a simple hack.  Just include this in your
//  game and *POOF*, instant notify.  Oh yeah, if you DO find a bug in it
//  through some miracle, let me know.
//		Gerry Kevin Wilson (whizzard@uclink.berkeley.edu)
//


// notify.t - This is a fairly small, very straightforward piece of code.
//    What is does exactly is this:  Whenever the player's score changes,
//    it prints out a message saying how much it changed by, either up or
//    down.  It has a special case for 1 and -1 as well.  It will not let
//    call incscore with a 0 value, which is usually a mistake.  All such
//    notifications are in bold type, which is easily removed.  Lastly, a
//    one-time message lets the player know how to turn the notifications
//    on and off.  There are no spaces between the messages and the
//    brackets.

modify global: object
                   //  Set this to nil for a default of off for messages.
  notifie = true;  //  Do NOT change this to notify.  That would conflict
                   //  with the notify() command and you will get errors.

  warned = nil;    //  Kind of wasteful, but I couldn't think of a better
                   //  way to tell whether the first notify had popped up
                   //  yet or not.
;

replace incscore: function( amount )
{
    global.score := global.score + amount;
    if (global.notifie <> nil) {
      if (amount = 0) {
        "Incscore() called with value of 0.\n ";
        return(nil);
                      }
      if (amount > 0)

// This covers positive values for amount.
        switch(amount)
        {
      case 1:
        "\b\([Your score just went up by <<amount>> point.\)";
        break;
      default:
        "\b\([Your score just went up by <<amount>> points.\)";
        }
      if (amount < 0)

// This covers negative values for amount.
        switch(amount) 
        {
      case -1:
        "\b\([Your score just went down by <<amount*(-1)>> point.\)";
        break;
      default:
        "\b\([Your score just went down by <<amount*(-1)>> points.\)";
        }
      if (global.warned)
      {

// Closing bracket for all calls but the first.
      "\(]\)\b";
      } else {

// This message is only recieved in the first notify
  "\( You can turn these notifications at any time by typing 'notify'.]\)\b";
      global.warned := true;
             }
                       }

// The old standby call to scoreStatus.
    scoreStatus( global.score, global.turnsofar );
}

notifyVerb: sysverb
  verb = 'notify'
  sdesc = "notify"
  action( actor ) =
  {
     if(global.notifie) {
       "Notify is now OFF. ";
       global.notifie := nil;
                       }
     else {
       "Notify is now ON. ";
       global.notifie := true;
          }
  }
;

----------------------------
