Newbie Question: Locale Priorities

It does seem that I am too much of a newbie to realise what is advanced behaviour in Inform. :frowning:

Try this:

[code]“Test Game” by “C.E.J. Pacian”

Include Custom Library Messages by Ron Newcomb.

The Vague Room is a room. “What a roomy room!”

The Other Room is east of the Vague Room. “Bit cramped in here.”

The apple is a thing in the Other Room.

The handsome fellow is a man in the vague room.

Every turn:
if the location of the handsome fellow is not the location of the player:
now the handsome fellow is in the location of the player;
say “The handsome fellow comes too.”

After choosing notable locale objects:
if the handsome fellow is a notable-object listed in the Table of Locale Priorities:
now the handsome fellow is mentioned.
[This prevents the fellow from being printed twice.]

The list-the-sidekick rule is listed after the I-could-also-see rule in the for printing the locale description rules.
[The list-the-sidekick rule is listed after the you-can-also-see rule in the for printing the locale description rules.]

This is the list-the-sidekick rule:
if the location of the handsome fellow is the location of the player:
say “As always, there’s your trusty sidekick, the handsome fellow.”;
continue the activity.[/code]
Results in:

Comment out “Include Custom Library Messages by Ron Newcomb”, swap I-could-also-see for you-can-also-see, and the game is the same, except the last command results in:

And that would be the case I did not think to test. :slight_smile: For Looking action #6 we need to add [ignore library line break][paragraph break] to the very end of it, like this:

Looking action 6 "[if the library message object is not the location].[otherwise if the story tense is in any past tense] there.[otherwise] here.[end if][ignore library line break][paragraph break]"
Furthermore, this The list-the-sidekick rule is listed last in the for printing the locale description rules. works both with and without CLM.

Combined with the fix for Mark Tilford’s observation that say “[The player] saw [the player].” doesn’t work outside of 2nd person, I’m about ready to release version 4 of CLM. (But I think I’ll let it bake a few days to see if more issues crop up.)

Huzzah! :smiley:

Thanks!

As others have shown you can do it with some of the extensions. But that in itself points to a problem: that arguably fundamental behavior like this is (1) relegated to an extension (that also requires a framework extension) and (2) that it’s not the easiest to set up or even conceptualize from an end-user perspective.

The whole notion of the “locale,” while making sense from a back-end, programmatic perspective, is exposed way too much to authors who should not have to worry about so many of the internal mechanics as they clearly do.