Okay, so maybe it’s not misbehaving; maybe I just don’t know what I’m doing.
I’ve been bashing my head against this for a few days and I can’t seem to figure out the behavior of setting action variables. It seems like it’s working properly in a superficial sense, but improperly when used in practice.
Example:
[code]House is a room.
Dummy is a person in House.
An appendage is a kind of thing. An appendage is a part of every person.
Understand “hand/foot/leg/arm/head” as appendage.
Setting action variables when the noun is an appendage which is part of a person (called holder):
now the noun is the holder.
After doing something other than looking:
say “[The noun] was the target of [our] action!”
[Problem: Why does “touch dummy’s head” not say “Dummy might not like that.” when this statement is used?]
[Problem: This reports the noun to be Dummy regardless of whether the parser received ‘dummy’ or ‘dummy’s head’ (as expected), yet the statement below still does not properly go into effect.]
Before doing something to a person:
say “[The noun] does not interest [us] in the slightest.” instead.
[Problem: If setting action variables happens previous to the Before statement checks, then why does “kiss dummy’s head” return a different response than “kiss dummy”? Shouldn’t ‘dummy’s head’ really be treated as just ‘dummy’ at that point, so far as Inform understands? Isn’t that the very point of Setting Action Variables?][/code]
As explained in my comments, why the inconsistency between what Inform reports as the noun after substituted through Setting Action Variables and how it is applying rules to that same noun?