No, “the location” is always the room. Testing for “in” gives the direct container so the gotcha is when you have something like “if the player is in the lounge” which is not true if the player is for example sitting on a chair in the lounge. (Which leads to curiosities like “if the player is in the location of the player” not being always true.)
That’s not quite true, as “the location” is a variable that is updated when going and “the location of the player” is a phrase that calls an I6 function that calculates the location of the player on the fly. In some cases, “the location” and “the location of the player” can mismatch, like so.
A persuasion rule: persuasion succeeds.
Every turn (this is the display location variables rule):
say “[The location] -> The location.[line break][The location of the player] -> The location of the player.”.
First Room is west of Second Room. Second Room is north of Third Room. Third Room is east of Fourth Room. Fourth Room is south of First Room.
Clark Gable is a person in the first room. The cage is in the first room. The cage is an enterable, pushable between rooms container. The automobile is in the first room. The automobile is a transparent vehicle.
Test me with “get in cage / clark, get in automobile / clark, push cage east / clark, push cage south / clark, push cage west / clark, push cage north”.[/code]
For this reason, it is recommended to use “the location of the player” rather than “the location” when the location of the player is needed.
You can use this as a temporary fix for the mismatch.
Carry out an actor going (this is the update player movement rule):
if the location is not the location of the player begin;
now the location is the location of the player;
surreptitiously reckon darkness;
update backdrop positions;
That’s interesting. I can see the reason for this. I don’t think it’s a bug and see a reason to change the behavior if people knows it does this.
If I have an object called the foo, can I specify “the location of the foo” or can I also do this with an NPC? And again, does this call a function on the fly? Does each object have a location variable or does “the location” only exist for the player?
Can I move an object this way, such as “the location of the foo is now the Beautiful Room.” ?