Conditions on Things

Maybe I’m not getting conditions in Inform. I’m trying to structure a test example, and I have this:

Broad Walk is a room.

A cask is in Broad Walk
The cask is either customs sealed, liable to tax or stolen goods.

A vendor is a kind of person.
A vendor is either selling, providing a paid for product, or closed for business.

A person called the aged woman is in the Broad Walk.
The aged woman is a vendor.

The cask bit was added to check something.

With this my index shows:

Looking at 4.10 in the manual, it seems that I should be able to reference the condition. Sure enough, I can do this:

The description of the cask is "It is [cask condition]."

But I can’t do this:

The description of the aged woman is "She is [aged woman condition]."

The error upon compiling is:

I get that’s a “vendor condition”, not an “aged woman condition” but this doesn’t work either:

The description of the aged woman is "She is [vendor condition]."

I’m missing something obvious here; I’m not sure what.

“vendor condition” works fine for me:

[code]Broad Walk is a room.

A cask is in Broad Walk.
The cask is either customs sealed, liable to tax or stolen goods.

A vendor is a kind of person.
A vendor is either selling, providing a paid for product, or closed for business.

A person called the aged woman is in the Broad Walk.
The aged woman is a vendor.

The description of the aged woman is “She is [vendor condition].”[/code]

Maybe there’s something else in your code messing it up? NB after “A cask is in Broad Walk” there’s a missing period.

Also if this sort of thing is giving you trouble it might just be easier to explicitly name the condition:

[code]Broad Walk is a room.

A cask is in Broad Walk.
The cask is either customs sealed, liable to tax or stolen goods.

A vendor is a kind of person.
A vendor is either selling, providing a paid for product, or closed for business (this is its economic condition).

A person called the aged woman is in the Broad Walk.
The aged woman is a vendor.

The description of the aged woman is “She is [economic condition].”[/code]

Huh. Okay, weird. It definitely did not work for me. Here was my exact pasted source code:

Broad Walk is a room.

A vendor is a kind of person.
A person is either selling, providing a paid for product, or closed for business.

A person called the aged woman is in the Broad Walk.
The aged woman is a vendor.

The description of the aged woman is "She is [vendor condition]."

When I compile, I get:

This is Inform version 1.65 (1.65.1) in the about box.

HOWEVER … your example did compile for me.

After that, I reverted to my example – and now it (my original version) compiles.

That looks suspiciously like user error, I’ll admit. But I’m not sure what happened.

Well, for this:

[code]Broad Walk is a room.

A vendor is a kind of person.
A person is either selling, providing a paid for product, or closed for business.

A person called the aged woman is in the Broad Walk.
The aged woman is a vendor.[/code]

you need “person condition.” The property winds up being named after the kind it’s defined on, and in this case it was defined on persons (in the code you had in your previous post it was defined on vendors), so it gets called “person condition.” Not sure why it seems to be compiling but I’d bet that you don’t have the exact code you just pasted into the window.

In general if you want to figure out the exact name you can use the Index–if the property you need isn’t listed in the objects listing in the World tab, it’ll be listed on one of the kinds it belongs to in the Kinds tab.