object conditions

I am doing an extensive review of the I7 manual, trying to pick up things that I missed while referring to it during the making of my games. (I learned as I went, as I was so eager to create. I’m sure I may have missed quite a few things.) I found out something–

You can give an item a number of conditions, without calling them ‘values’, such as –

The piece of paper is either blank, scribbled all over, folded in half, or wadded up.

As you did not call these things ‘value’, the system gives them value name, specifically here, the ‘piece of paper condition’.

I was able to refer to each of these conditions, such as in a text substitution–

The description of the piece of paper is "[if blank]As usual, it is blank.[otherwise if scribbled all over]You have covered it with your chicken scratching.[otherwise if folded in half]You have folded it in half, out of shame.[otherwise if wadded up]You have wadded it up in utter frustration."

However I was not able to refer to them in an itemized rule –

After writing on the piece of paper: if the piece of paper condition is: -- blank: say "You cover it with drivel."; now the piece of paper is scribbled all over'; -- scribbled all over: say "You add to the mess, and realizing your many errors, you fold it in half, in shame."'; now the piece of paper is folded in half; -- folded in half: say "You try to correct your errors, by re-writing the entire plot, but as the contradictions mount, you finally wad the paper into a ball, and hang your head in despair."; now the piece of paper is wadded up; -- wadded up: say "It's hopeless. Just hopeless. Forget it."

This returned an error, where ‘blank’ was supposed to be a constant value, specifically the ‘piece of paper condition’. But I thought that had already been created as a value in the initial line where it was introduced…?? I tried other ways of saying ‘if the piece of paper condition is’(condition of the piece of paper, the piece of paper, etc). None of them worked.
Anyway, I was able to re-write the rule, using a number of 'otherwise if’s, which worked.
But why didn’t the itemization above work??(by the way, if it did, would it foul up, anyway, because each subsequent item would be true after the condition is changed, with the result of each statement being printed…??)


When you define a property this way, the terms (“blank”, etc) are not first-class values. They’re only defined as adjectives. I’m not sure why; probably to avoid collision if you define a bunch of objects with different, but overlapping, terms.

Thanks! I was able to use the ‘if the…is:’/double-dash format with strictly defined values, such as ‘loudnesses’(very silently, softly, clearly, very loud, intolerably blaring)–which can be applied to anything that has a loudness. Also I recall that the ‘conditions’ can apply only to the specific object that they were originally attached to. So I figured that that had something to do with it.