Okay, folks, I’m clearly rusty at Inform 7. What I think I’m observing is that if the player is wearing or carrying an object that has a part that is a container, “take all” from that container no longer works.
Here’s some code I have:
The player wears a vacation outfit.
A container called your pocket is part of the vacation outfit.
The player carries a camera.
Currency called a credit card is in your pocket.
The credit card is plastic.
The description of the credit card is "The credit card is embossed with the usual codes. It expires tomorrow."
Currency called a twenty-dollar bill is in your pocket.
The twenty-dollar bill is paper.
The description of the twenty-dollar bill is "This is just some money that you didn't convert to local currency."
Understand "bill" as the twenty-dollar bill.
Currency called a seven-sided coin is in your pocket.
The seven-sided coin is coin.
The description of the seven-sided coin is "It’s standard British currency, worth fifty pence."
Understand "fifty-pence" and "fifty pence" as the seven-sided coin.
I want to take everything from the pocket. Here’s the output:
Notice that no actions seem to fire at all. Am I incorrect in expecting this to work?
Notice that if I do this:
A basket is in Palace Gate.
A container called the pouch is part of the basket.
A widget is in the pouch.
A wobble is in the pouch.
A weeble is in the pouch.
So this seems to be some issue with my “pocket” object versus my “pouch” object. So another test:
A vacation outfit is in Palace Gate.
[The player wears a vacation outfit.]
Here I’m just changing the vacation outfit to not be worn. And sure enough:
BUT … notice what happens if I simply take the outfit:
So clearly when I carry or wear an object that has a container part, I can no longer “take all” from that part. I’m assuming this is not intentional but figured I would check in.
I think that’s probably a bug; I’ve filed it here, but Graham has yet to weigh in on it.
Anyway, the culprit is the “exclude indirect possessions from take all” rule, which is meant to prevent you from taking things that you are indirectly enclosing when you type TAKE ALL. As I say there, the fix is to rewrite that rule so it doesn’t have “or removing” in the header; that will allow TAKE ALL FROM POCKET (which gets understood as a removing action–the part where removing gets turned into taking happens after the multiple-object processing, so it is undisturbed), while still excluding indirect possessions from TAKE ALL, as is desired.
Thanks for the pointers! Based on the information provided, what I did is this:
The exclude indirect possessions from take all rule is not listed in the for deciding whether all includes rulebook.
Rule for deciding whether all includes things enclosed by the person reaching while taking or taking off: it does not.