-------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 (
[email protected])
//
// 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;
}
}
;
----------------------------