I7: [solved!] reporting a score change after move parsing

Actually, I have a better reason for this than the trolling code below but I hope the example is amusing.

Basically I want to be able to parse a command and award/penalize someone for something in the command string.
But the problem is, if I do so outside of standard actions, notifications don’t show up until standard actions are executed.

Is there any way to call a more low-level “check if the score changed” function earlier?

Thanks!

[code]“Lose Points” by Andrew

Rule for printing a parser error when the latest parser error is the I beg your pardon error:
say “You’ll lose a point for having nothing to say. But you’ll have to do something to see the proof!”;
say “[bracket]This is a fake notification your score just went down. To get a real one, do something.[close bracket][line break]”;
decrement the score;

after reading a command:
if the player’s command matches the text “xyzzy”:
say “Five demerits for trying to butter me up with a text adventuring in-joke, champ.”;
decrease the score by 5;
say “[bracket]This is a fake notification your score just went down. To get a real one, do something.[close bracket][line break]”;
reject the player’s command

room 1 is a room.
[/code]

Looks like you can throw in “follow the notify score changes rule” at any point, to bring the notified score up to date (and display a message if it’s changed).

Thanks! This works great.

I try to look through Graham Nelson’s general rules, and I think I’m getting better, but this eluded me. I was searching for ‘request.’ I have one more place to look now, though I could’ve looked for “score” and “scoring” in the general rules now I saw your response.

After posting this question & before reading the response, I went for a walk and figured that a band-aid would be to change the command line to some nonsense word and then have the game define a verb like that.

[code]chapter oiging

oiging is an action applying to nothing.

understand the command “oig” as something new.

understand “oig” as oiging.

carry out oiging:
the rule succeeds;

after reading the player’s command:
[if xyzzy-ish, deduct 5 points for xyzzy]
change the text of the player’s command to “oig”;
continue the action;

[/code]

But that is bad on many levels and nowhere near as simple. So maybe anyone reading this will be encouraged to find a way to make their own code simpler when they feel it should be.