An overenthusiastic check [answered]

I am trying to put in a simple check to reading such that some things are readable and will return the written content, while other things aren’t readable and will return an appropriate message.

I initially tried using “readable” and “unreadable” conditions to write the check:

A thing can be readable or unreadable. Things are usually unreadable. Understand the command "read" as something new. Understand "read [something]" as reading. Reading is an action applying to one thing. Check reading: if the thing is not readable: say "an appropriate message" instead.

However, when I tried to read a thing that was created as The player carries a schedule. The schedule is readable. , it printed the check message instead.

I then tried creating a subclass of “thing” called a readable (“A readable is a kind of thing.”), modifying the schedule to be “a readable”, and modifying the check to look for “if the thing is not a readable”, which had the exact same result.

In both cases, checking the world index showed that the schedule was readable/a readable (and therefore should not have been caught in the check). I had a very silly facepalm earlier today when I couldn’t figure out why a thing was created to be known and displayed as such in the index kept behaving as though it were unknown, and then realized I had set everything to unknown when play began (no, I don’t remember why I did that). However, this was not the case with readability.

What am I doing wrong?

“The thing” doesn’t refer to what you think it does. Basically “if the thing is not readable” means “if there is any one thing that is not readable” and that’s always true. What you want instead is “if the noun is not readable”. “The noun” refers to the object that’s being checked against.

Another approach is to have the rule apply only to unreadable things:

Check reading an unreadable thing: say "an appropriate message" instead.

Oh. My goodness. I see! Thank you for explaining.