I just discovered an oddity in Object Response Tests by Juhana Leinonen:
[code]Include Object Response Tests by Juhana Leinonen.
Test is a room. A nose is part of the player.
Instead of doing anything with the nose:
now the noun is yourself;
continue the action.
Instead of smelling the nose, say “It smells.”
Test me with “smell nose/analyze nose”[/code]
Since object-analyzing is not an action out of world, Instead rules do apply to it. I guess it couldn’t be out of world anyway, because a meta-action can’t properly try an in-world action. But it’s a bit counterintuitive that “Instead of doing anything” would include a testing action. Is there a nice clean way to avoid this conflict?
More fundamentally, is there a smarter way to redirect actions from one noun to another? Doing it this way can mess up the order of accessibility, setting action variables, Before, and Instead rules, but I think I’ve had problems being able to change the noun and then re-try the current action.
Here’s how to reset the nouns before each test:
[code]The object-analyzing action has an object called the real noun.
The object-analyzing action has an object called the real second noun.
Setting action variables for object-analyzing:
now the real noun is the noun;
now the real second noun is the second noun.
[The same rule as in the extension but with noun-resetting added]
Carry out object-analyzing (this is the go through all analyzing rules with the original nouns rule):
repeat with x running from 1 to the number of rows in the table of analyzing actions:
now the noun is the real noun;
now the second noun is the real second noun;
follow the testing rule in row x of the table of analyzing actions.
[unlist the old rule]
The go through all analyzing rules rule is not listed in any rulebook.[/code]
(Nice catch by the way. I’ll add the fix to the next release, whenever that may be.)
Thanks! That looks good.
I came up with a somewhat hackier way to solve it:
[code]Examining is unredirectable.
Instead of doing anything with the nose:
if unredirectable and not examining, continue the action;
now the noun is yourself;
continue the action.
Section - Object Analyzing - Not For Release
Object-analyzing is unredirectable.
[/code]
I guess I could have used “waiting” as my template for the “unredirectable” KoA, but I actually did have a good deal of “anything other than examining” in my code, so I thought I’d set it as a default.
I just noticed something else:
“attacking” is listed twice in the Table of Analyzing Actions!