"After taking" rule overrides "Taken" reply

Hello everyone,

This is probably an easy one… I don’t understand why an “after taking” rule overrides the default “Taken.” answer.

For example, using the following rule for eg. a hat:

After taking something, say "[The noun] [look] pretty sexy."

it seems logical to me that the reply would be:

but as you probably know, it doesn’t. Why is that?

The “Taken.” response is generated by the Report rules (specifically, by the “standard taking report rule”). The After rules run before the Report rules; but by default any After rule which runs completes the action and cuts off any further rules (i.e. further After rules or Report rules). You can prevent an After rule from cutting off later rules with a “continue the action” instruction.

But if you want the “Taken.” response to appear before your new rule fires, then you could make your rule a Report rather than an After rule, and make sure it’s listed after the standard taking report rule.

This is the compliment rule: say "[The noun] [look] pretty sexy."
The compliment rule is listed after the standard report taking rule in the report taking rules.

Or more concisely:

Last report taking something: say "[The noun] [look] pretty sexy."

Or, of course, you could just alter your after rule to include the “Taken.” response.

After taking something: 
      say "Taken.";
      say line break;
      say "[The noun] [look] pretty sexy."

I think the reason for this is is that after rules are often used as a shortcut to simply change the default report message. Another good use is to set something else in motion based on the player’s action that might thwart the default report message, or let the author just swap some scenery around.

After taking the obnoxious bowler hat: say "Oo, swanky!"; try wearing the obnoxious bowler hat.

While nothing stops you from putting incredible machinations within a report rule, it isn’t usually good form if someone is going to be reading your code later. The specific purpose of report rules is to tell the player the default message regarding what happened as a result of the action and everything should have switched around during the carry out phase. “After” serves as a sort of interrupt springboard to provide a more specific situational message or trigger new actions and scenery movement if necessary.

(Also, the Report rules don’t run if the action happens “silently”, or if the player is judged to not be aware of it.)

Thanks, everyone!