I have no idea–you didn’t post that code.
Define any other room before the Cockpit in this example, though, and you’ll see that that room becomes Jake’s destination.
You have a property called “destination”, but writing the phrase
To decide which room is the destination of Jake:
doesn’t set that destination property. It just creates a form of words: Inform has no idea that “destination” in “destination of Jake” refers to the destination property, nor does it know that “Jake” refers to the person Jake. The compiler will simply look for the exact words “destination of Jake” and substitute the contents of your decision phrase. Since “destination of Jake” doesn’t appear anywhere in your source text, this phrase effectively doesn’t do anything at all.
There are a host of ways you could do this. Here’s one way to do it by using the “description” property:
[code]First every turn:
repeat with subject running through another people:
select goal of the subject.
To select goal of (J - Jake):
if Connor is conscious:
now the destination of J is the Cockpit;
otherwise:
now the destination of J is the Sickbay.
To select goal of (T - thing):
now the destination of T is the Hall.[/code]
Another option would be to remove the line that defines the description property and instead use the “form of words” approach, as outlined by zarf:
[code]To decide which room is the destination of (P - a person):
decide on the Hall.
To decide which room is the destination of (J - Jake):
if Connor is conscious, decide on the Cockpit;
decide on the Sickbay.[/code]
In this case, Inform will substitute a function that returns a room for the pattern "destination of " throughout your source code. In this way of doing it, there is no property in which the room is stored–Inform runs a function each time it encounters that pattern. Hope that helps.
–Erik