I was unhappy to learn that while the Old Man was playing the game I made for him, he typed in “Take all” and got something like:
field: that’s hardly portable
sun: that’s hardly portable
sky: that’s hardly portable
grass: It’s best not to pick plants at random in the jungle.
moss: the moss is of no use to you
and so forth.
Luckily, the couple of REALLY hidden things in my game that I wanted to remain hidden, I put in limbo and had them only appear after a certain action is done (i.e. after looking in pocket: now the clippers are in the pocket). So I was lucky I was that OCD and it didn’t ruin anything important, BUT, it’s rather ugly, and actually could give him ideas that he didn’t have before, because maybe an item was intended to get noticed/described only after several layers of examining.
Can this be flatly disabled? I tried:
After taking everything:
say "You can only take one thing at a time."
But it still reported everything before giving the response.
It’s my fault that I didn’t know about “take all” and implement something for it, but does anyone else see this as sort of an Inform bug? I mean what’s the point of defining the sun as scenery if it’s going to get mentioned during “take all” – and who really makes a game so simple that “take all” isn’t going to reveal ugly messages about things you never would have tried to take?
Rule for deciding whether all includes scenery: it does not.
Rule for deciding whether all includes people: it does not.
Rule for deciding whether all includes insects: it does not.
Rule for deciding whether all includes the private plane: it does not.
Rule for deciding whether all includes the military plane: it does not.
Rule for deciding whether all includes the jeep: it does not.
Rule for deciding whether all includes the hammock: it does not.
Though I would sure prefer something that just disables the command.
That would generally be true, but in my case, I had several vehicles that were junked and nonoperational. After discovering in testing that a NPC could get into them and drive off west, I made them into fixed-in-place containers instead.
Rules for deciding whether all includes [whatever] are actually specifically designed for this exact problem. I would suggest that you not attempt to disable the “all” grammar, since it would 1) be quite difficult, 2) possibly have unexpected consequences, and 3) not be nice to players who would expect TAKE ALL to work as it normally should.
Having lots of individual cases is really not a problem (in terms of how your code behaves). Remember that you can group items together with any available descriptor. For example:
Rule for deciding whether all includes fixed-in-place things: it does not.
You might also consider making a new kind for junked vehicles.
A wreck is a kind of vehicle. A wreck is usually fixed in place. Instead of going a direction by a wreck, say "This wreck is not going anywhere."
So a rule for deciding whether all includes vehicles (presumably, it does not) would apply to wrecks, too.