I want to report the condition of a mug or a flagon. Even though the statements are verbatim (except for the flagon/mug noun), the parser flags an error on mug but not flagon?! It says punctuation problem.
A fluid container is a kind of container.
A flagon is a fluid container.
The flagon can be full, two-thirds full, one-third full, or empty. The flagon is full.
The printed name of the flagon is “flagon ([flagon condition] of ale)”.
Instead of examining the flagon: say “The flagon is [flagon condition] of ale.”.
Instead of drinking the flagon: say “Don’t be a cretin! Use a mug.”.
A mug is a fluid container.
A mug can be empty or full. A mug is empty.
The printed name of the mug is “mug ([mug condition] of ale).”.
Oh yes! The index has the flagon and its condition, and the mug, but there is no entry for the mug’s condition. Is there a typo somewhere? Any help is appreciated.
Binary (two-state) properties are handled somewhat differently from multi-state properties.
In this case, it sounds like you want a more general approach:
A fluid container is a kind of container.
Fullness is a kind of value.
The fullnesses are entirely full, two-thirds full, one-third full, and entirely empty.
A fluid container has a fullness.
A flagon is a fluid container.
The flagon is entirely full.
The printed name of the flagon is “flagon ([fullness of flagon] of ale)”.
Unfortunately this isn’t very satisfactory because “full” and “empty” are already adjectives defined in the Standard Rules. (Applying to tables and rulebooks, not containers, but they’re defined.) So you can’t say what you really want:
[This is an error.]
The fullnesses are full, two-thirds full, one-third full, and empty.
I don’t have a great workaround for you, I’m afraid.
Andrew,
This cleared up a lot for me, but I got an error when using your suggested code. I made minor (insignificant) changes to
A fluid container is a kind of container. A fluid container has a fullness. Fullness is a kind of value.
The fullnesses are brimming, two-thirds full, one-third full, and entirely empty.
A flagon is a fluid container. The flagon is brimming.
Description of flagon is “A metal container [fullness of flagon] of ale. [if brimming]It looks like it can hold three mugs of ale.[end if]”.
The printed name of the flagon is “flagon ([fullness of flagon] of ale)”.
The error message is
I am reading the sentence ‘The flagon is brimming’ as saying that a thing called ‘flagon’ is a value, but this makes no sense to me - it would be like saying ‘the chair is 10’.
It looks like this is just because you wrote “A fluid container has a fullness.” before defining “fullness”. Inform is usually good about letting you declare things in any order, but in this case, not so much. If you move the lines
Fullness is a kind of value.
The fullnesses are brimming, two-thirds full, one-third full, and entirely empty.