change order of parser response

Here is what I have:

A piece of cake is a thing.  The cake is edible.  The description of the cake is "It's a piece of cake."

After taking the cake for the first time:
    if the cake is unscored:
       now the cake is scored;
       increase the score by 5;
       say "Well, that was easy."

The results are:

>TAKE CAKE
Well, that was easy.

[You have just earned five points]

But I want the results to be reversed, so that the points are displayed before the say message, i.e.:

>TAKE CAKE
[You have just earned five points]

Well, that was easy.

because I think it’d make more sense for the player to sort of earn the points out of nowhere and then for the parser to say “Well, that was easy,” like earning the points was a piece of cake.

I tried using “Last after taking…” for the say message, but that ended up truncating the message from the response completely. Not sure what I’m doing wrong here… Is the score rule response displaying last an unchangeable thing?

Score notifications are displayed once per turn, after all the action rules have run; if you have NOTIFY OFF, they’re never displayed at all. Unfortunately changing the order for one thing like this is not trivial. Perhaps make it a timed event? Iirc those go off after score notifications?

by timed events, do you mean like:

After taking the cake for the first time:
      if the cake is unscored:
         now the cake is scored;
         increase the score by 5;
         the cake disappears in zero turns from now.

At the time when the cake disappears:
      say "Well, that was easy."

If so, I just tried it and it still put the say message first :frowning: Unless I have a wrong understanding of what a timed event is.

You can call the “notify score changes rule” whenever you like.

After taking the cake for the first time:
	increase the score by 5;
	follow the notify score changes rule;
	say "[line break]Well, that was easy."

it worked! thanks, jrb!

Well, that was easy. :wink:

easy as 3.141579… smirk