Edit, tl;dr: Strange drop all response with empty inventory can be gotten rid of by adding code snippet below. Any way to get DROP ALL to ignore things the player doesn’t have, given I’m using the code snippet below?
Under certain circumstances when the player has nothing, entering the command DROP ALL leads to a message “What do you want to drop those things in?” After the name of a thing is entered, it gives the expected “There are none at all available!” I’d like it to skip straight to “There are none at all available!” whenever the DROP ALL command is entered with an empty inventory.
Whether the extra step happens or not depends on the world model. It requires (1) a non-scenery container, supporter, device or non-player person in the room (to drop into?) (2) a separate non-scenery, non-backdrop object in the room (Note: making the object “not portable” changes nothing).
So what happens after “What do you want to drop those things in?” It depends on the player’s answer. If the answer is a thing or direction, the response is “There are none at all available!” If the answer is a region, room, value, or random jumble of characters, the response is “You can’t use multiple objects with that verb.”
So it seems DROP ALL is interpreted as DROP ALL INTO (aka INSERT ALL INTO). Then the parser asks for a missing second noun. However, when the user answers the second noun request with something other than a direction or thing, the interpretation ?reverts? to DROP ALL and claims DROP doesn’t accommodate multiple objects (like ALL). But if the player has a bunch of things, DROP ALL does work (accommodating multiple objects).
To get my story to respond more sensibly to DROP ALL when the player has nothing, I first made sure it never thinks DROP ALL means INSERT ALL INTO. Then I stopped it trying to drop scenery or backdrops.
Understand "drop [things]" as dropping.
Rule for deciding whether all includes scenery while dropping (this is the exclude scenery from drop all rule): it does not.
Rule for deciding whether all includes fixed in place things while dropping (this is the exclude fixed in place things from drop all rule): it does not.
I also tried excluding items that the player doesn’t have, but it brings back the issue where empty inventory gets me “What do you want to drop those things in?” It seems this must have something to do with the multiple object list being empty. Perhaps DROP an empty list matches “drop [other things] in/into/down [something]” better than “drop [things preferably held]” (from the Standard Rules about understanding drop)?
I’d like it to work more like TAKE ALL: only report dropping things the player has, and say “There are none at all available!” if the player has nothing. Maybe there’s a way to silence the DROP ALL output for items the player doesn’t have while still letting it go through the whole list.
Thanks for any tips or suggestions!