I want the player to be able to refer to nonexistent but possible things. An example will show my meaning better.
[code]Temperature is a kind of value. The temperatures are hot and cold.
A thing has a temperature. Understand the temperature property as referring to a thing.
Temperature Lab is a room. “The perfect place to HEAT or COOL things!”
The very mysterious substance is a cold thing, here. The description of the substance is “Very mysterious and [temperature].”
Heating is an action applying to one thing. Understand “heat [thing]” as heating.
Carry out heating: now the noun is hot.
Report heating: say “You heat [the noun].”
Cooling is an action applying to one thing. Understand “cool [thing]” as cooling.
Carry out cooling: now the noun is cold.
Report cooling: say “You cool [the noun].”.
Pondering is an action applying to one visible thing. Understand “ponder [any thing]” as pondering.
Report pondering: say “You ponder [the noun].”
Considering is an action applying to one temperature and one visible thing. Understand “consider [temperature] [any thing]” as considering.
Report considering: say “You consider [the second noun], which is [temperature understood].”[/code]
In this example, I have a substance with a temperature. I can say TAKE COLD SUBSTANCE when it is cold, but not when it is hot, and vice versa. This I expect and it is not the problem.
Then I have pondering. I want PONDER COLD SUBSTANCE to always work, but it fails if the substance is hot. How can I make it always work?
A solution like considering (see code) is not ideal, because I would like to be able to do this with an arbitrary number of adjectives in any order, like PONDER TEPID STICKY VISCOUS GREEN SUBSTANCE.
If I understand Inform right, this problem happens because the parser is equipped to only look for things that do exist, not things that could exist. I have looked at Parser.i6t to see if I could mess around with it but I really don’t know what I’m doing, so I didn’t.