curiousdannii-testing / inform7-imported-bugs

0 stars 0 forks source link

[I7-2036] [Mantis 2073] Both examine containers and examine supporters rules inconsistent when contents are concealed #48

Open curiousdannii-testing opened 2 years ago

curiousdannii-testing commented 2 years ago

Reported by : Eleas

Description :

When a container or supporter holds nothing but concealed things, a spurious message ("In [the container] is nothing.") is printed on examination.

Steps to reproduce :

a box is a kind of container. some mud is a kind of thing.
some mud is in every box.

box1, box2, box3, box4 are boxes.
The description of the box1 is "Papery."
The description of the box3 is "Papery."

every box is here.
Rule for deciding the concealed possessions of box3: yes.
Rule for deciding the concealed possessions of box4: yes.

test me with "x box1 / x box2 / x box3 / x box4".

Additional information :

Suggested fix:

Carry out examining (this is the tweaked examine containers rule):
if the noun is a container:
if the noun is open or the noun is transparent and the noun holds a not concealed thing:
if something described which is not scenery is in the noun and something which
is not the player is in the noun:
say "In [the noun] " (A);
list the contents of the noun, as a sentence, tersely, not listing
concealed items, prefacing with is/are;
say ".";
now examine text printed is true;
otherwise if examine text printed is false:
if the player is in the noun:
make no decision;
say "[The noun] [are] empty." (B);
now examine text printed is true.

and

Carry out examining (this is the tweaked examine supporters rule):
if the noun is a supporter and the noun supports a not concealed thing:
if something described which is not scenery is on the noun and something which is
not the player is on the noun:
say "On [the noun] " (A);
list the contents of the noun, as a sentence, tersely, not listing
concealed items, prefacing with is/are, including contents,
giving brief inventory information;
say ".";
now examine text printed is true.

imported from: [Mantis 2073] Both examine containers and examine supporters rules inconsistent when contents are concealed
  • status: Reported
  • resolution: Open
  • resolved: 2022-04-07T05:02:41+10:00
  • imported: 2022/01/10
curiousdannii-testing commented 2 years ago

557058:4c095ffd-6d6f-47ce-9e73-77c613347b86:

Comment by zarf :
Note: this is about the I7 "deciding the concealed possessions" rulebook, not the I6 "concealed" ("described") property.

(The proposed fix tests "described", but only because the existing Standard Rules code does. This confused me briefly.)

curiousdannii-testing commented 2 years ago

557058:4c095ffd-6d6f-47ce-9e73-77c613347b86:

Comment by zarf :
As to your fix: I think that if all the contents are concealed, it should fall into the existing "[The noun] [are] empty" case. That is, undescribed and concealed objects should be equivalent in the logic.

curiousdannii-testing commented 2 years ago

557058:4c095ffd-6d6f-47ce-9e73-77c613347b86:

Comment by zarf :
I was thinking of

if something for-real-visible is in the noun and something which is not the player is in the noun:

...where "for-real-visible" is true if the object is described and unconcealed and not-scenery.

curiousdannii-testing commented 2 years ago

557058:4c095ffd-6d6f-47ce-9e73-77c613347b86:

Comment by Eleas :
Another instance of this bug is found in the you-can-also-see rule (evidenced by starting the game with the player inside box3).

Also, the logical precedence of my tweak to the examine containers rule is unclear. That probably ought to be simplified:

Carry out examining (this is the examine containers rule):
if the noun is a container and an unconcealed thing is in the noun:
if the noun is open or the noun is transparent:
if something described which is not scenery is in the noun and something which
is not the player is in the noun:
say "In [the noun] " (A);
list the contents of the noun, as a sentence, tersely, not listing
concealed items, prefacing with is/are;
say ".";
now examine text printed is true;
otherwise if examine text printed is false:
if the player is in the noun:
make no decision;
say "[The noun] [are] empty." (B);
now examine text printed is true.

curiousdannii-testing commented 2 years ago

557058:4c095ffd-6d6f-47ce-9e73-77c613347b86:

Comment by Eleas :
I'm slightly confused. When a container is described but empty, the "[The noun] [are] empty" case does not trigger. Is that behavior as intended? If so, would


Carry out examining (this is the examine containers rule):
if the noun is a container:
if the noun is open or the noun is transparent:
if something described which is not scenery is in the noun and something unconcealed which
is not the player is in the noun:
say "In [the noun] " (A);
list the contents of the noun, as a sentence, tersely, not listing
concealed items, prefacing with is/are;
say ".";
now examine text printed is true;
otherwise if examine text printed is false:
if the player is in the noun:
make no decision;
say "[The noun] [are] empty." (B);
now examine text printed is true.

do the trick?

curiousdannii-testing commented 2 years ago

557058:4c095ffd-6d6f-47ce-9e73-77c613347b86:

Comment by Eleas :
Fair enough. Anyway, bug confirmed?