Who would have thought that a thing, contained in a thing you are holding, isn’t held?
We have a room. In the room is an animal that wants to be fed. The player carries the perfect meal – a little bird in a little cage. The cage is a container. The command “feed” is understood as “give”. When the player issues the command “FEED BIRD TO ANIMAL” the response is “You aren’t holding the little bird.” If the player says “DROP BIRD” the response is “You haven’t got that.”
So, we check out the Standard Rules and find that “a thing is held if the player is holding it.” We also learn that “a thing is carried if the player is carrying it.” There’s no definition extending “held” or “carried” to things inside held or carried containers, so we write one:
Definition: a thing is held if the player is holding a container containing it.
This compiles without complaint. We get to the room and say “FEED BIRD TO ANIMAL” and the response remains “You aren’t holding the little bird.” Trying to drop the bird still results in “You haven’t got that.”
More research in the Standard Rules tells us that the DROP action checks “if the actor is carrying the noun”. So, we try:
Definition: a thing is carried if the player is carrying a container containing it.
This too compiles without complaint. But, alas, there is no change. Sill the bird isn’t held or carried (at least we’re told the bird isn’t held or carried).
More research reveals that the Standard Rules for the giving it to action check “if the actor is not the holder of the noun”. One would assume that if the the noun fits the definition of held with respect to the actor, the actor would naturally be the holder of the noun. Apparently not.
I have tried every variation on this theme I could think of to get Inform to recognize the contents of a held/carried container as held/carried, and in every case the story compiled without complaint but the responses remained the same.
Anyone know what I’m missing here?