Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0001969Core InformUnderstandingpublic2016-11-17 21:052017-04-11 07:48
Assigned To 
PlatformMacintoshOSEl CapitanOS Version10.11.6
Product Version6M62 
Target VersionFixed in Version 
Summary0001969: taking multiple objects from a held container yields "none at all available" message
DescriptionWhen the player holds a container that contains more than one object and tries to "TAKE ALL FROM [container]", it will result in a "There are none at all available!" parser error message, even though taking the contents of the container is a sensible move and can be done by directly specifying the contents.

If the container only contains one thing, then "TAKE ALL FROM [container]" will succeed in taking that one thing.
Minimal Source Text To Reproduce
Lab is a room. 

A bucket is in Lab. A rock and a shovel are in the bucket.

test me with "take all from bucket/put all in bucket/take bucket/take all from bucket/take rock 
and shovel/put rock in bucket/take all from bucket".
Additional InformationOutput:

You can see a bucket (in which are a rock and a shovel) here.

>test me

>[1] take all from bucket
rock: Taken.
shovel: Taken.

>[2] put all in bucket
shovel: Done.
rock: Done.

>[3] take bucket

>[4] take all from bucket
There are none at all available!

>[5] take rock and shovel
rock: Taken.
shovel: Taken.

>[6] put rock in bucket
You put the rock into the bucket.

>[7] take all from bucket

The culprit is this rule:

Rule for deciding whether all includes things enclosed by the person reaching
while taking or taking off or removing (this is the exclude indirect
possessions from take all rule): it does not.

Deleting "or removing" fixes this case. I believe this should be safe, as the player will only be removing indirect possessions when they have typed something along the order of "take all from bucket," and that should be allowed. Maybe there would be a problem if the player types "take all from booth" when the booth is an enterable container that the player is in, but on a quick test it seems not to be causing a problem.
TagsNo tags attached.
Effect(serious/mild) Game compiles but misbehaves
Attached Files

- Relationships

-  Notes
mattweiner (reporter)
2016-11-17 21:11

Also, I'm not sure why "taking off" is even in the exclude indirect possessions from take all rule, because the grammar lines for the taking off action don't accept multiple objects. This might be left over from before those grammar lines were rewritten to eliminate spurious implicit takes for the taking off action, but even if we put a grammar line back in to allow taking off to accept multiple objects, it certainly shouldn't exclude things enclosed by the person reaching, as the whole point of the action is to remove worn things! I guess this is a different bug, potentially.
zarf (developer)
2016-11-18 07:47

Background: the "whether all includes" rules were heavily updated in 6L02. I think the cause was [^] .
mattweiner (reporter)
2016-11-18 09:28
edited on: 2016-11-18 09:47

On the subject of the taking off action, it seems as though "all" automatically excludes worn things irrespective of the "whether all includes" rules (as it properly does for the player's body). So no matter what we do to the "whether all includes" rules, taking off is going to break if we try to make it apply to multiple objects. Forum post: [^]

As I say there, I think it's probably best to eliminate "taking off" from the rule header, just because taking off multiple things is going to break no matter what the author does, so there's no point in backstopping it in this rule.

(Continuing this in this thread rather than posting it as a new issue, because it's not obviously a bug.)

mattweiner (reporter)
2017-02-01 18:51

I see now that the cause of this particular revision to the "whether all includes" rules was [^]
mattweiner (reporter)
2017-04-11 07:48

Just on another test, the proposed fix doesn't seem to break down in the case of nested possessions. This works as desired:

Rule for deciding whether all includes things enclosed by the person reaching while taking (this is the exclude indirect possessions from take all only rule): it does not.

The exclude indirect possessions from take all only rule substitutes for the exclude indirect possessions from take all rule.

Dacha is a room.

The player carries a large matryoshka. A medium matryoshka is in the large matryoshka. A small matryoshka is in the medium matryoshka. A speck of dust is in the large matryoshka.

test me with "i/take all from large/ i/take all from medium/put all in large/take all from large".

- Issue History
Date Modified Username Field Change
2016-11-17 21:05 mattweiner New Issue
2016-11-17 21:11 mattweiner Note Added: 0004592
2016-11-18 07:47 zarf Note Added: 0004593
2016-11-18 09:28 mattweiner Note Added: 0004595
2016-11-18 09:47 mattweiner Note Edited: 0004595 View Revisions
2017-02-01 18:51 mattweiner Note Added: 0004646
2017-04-11 07:48 mattweiner Note Added: 0004676

Copyright © 2000 - 2010 MantisBT Group
Powered by Mantis Bugtracker