According to page 18.36 in “Writing with Inform,” one should be able to re-include a particular item of scenery in a TAKE ALL action, as follows:
[code]The Recreation Room is a room. “A beautiful billiard table is the centerpiece in this room.”
The billiard table is scenery in the Recreation Room.
Instead of taking the billiard table:
say “It’s much too heavy for you to pick up, but when you try to lift it, it rocks slightly, as if the floor beneath it is uneven.”
Rule for deciding whether all includes the billiard table: it does.[/code]
(I’m revising my I7 Handbook. This is one of the examples.)
However, this doesn’t work. The response to TAKE ALL is still “There are none at all available!”
Is this a bug in the Standard Rules, or am I making a silly mistake?
I think there is something that says “scenery cannot be portable” which is overriding this. The rule for deciding whether all etc. works in reverse to exclude normally takeable items, but if you try specifying a scenery object as portable and taking it individually, that also doesn’t work; you get the same “that’s hardly portable” message in response.
The problem is that your rule winds up lower in precedence than the library’s “exclude scenery from take all” rule.
(Why? Because the library rule has a bunch of conditions on it:
Rule for deciding whether all includes scenery while taking or taking off or removing (this is the exclude scenery from take all rule): it does not.
So it’s not obviously more general than your rule.)
To get around this, you can relist your rule. This requires naming it:
Rule for deciding whether all includes the billiard table (this is the table exclusion exclusion rule): it does.
The table exclusion exclusion rule is listed before the exclude scenery from take all rule in the for deciding whether all includes rules.
Thanks, Zarf. For the record, this also works, and is slightly simpler:
Rule for deciding whether all includes the billiard table while taking or taking off or removing: it does.
This level of specificity seems to allow the compiler to put the rules in the desired order.