I’m looking to make a description paragraph include two people who are talking together (say, Alice and Bob). When the player sees Alice and Bob for the first time, it should print a single paragraph about both of them. I can add a “first-time description” text to Bob, but then I get this:
[code]On the Corner
You are standing on the street corner.
Bob and Alice are huddled together, talking in low tones.
Alice is here.[/code]
How do I make it not mention Alice, or indicate that Alice has already been mentioned?
If I remember rightly, the usual method is to do something like:
Rule for writing a paragraph about Alice when Alice is in the presence of Bob:
say "[Bob] and Alice are huddled together on the pavement.";
The basic idea is that Inform knows that Alice has been mentioned if you’ve already called the routine for printing Alice’s name. That means that whatever you have to print the first-time appearance for Bob should say “[Bob] and [Alice] are huddled together, talking in low tones.”; the brackets mean that Inform has to call the routine for printing Alice’s name, and that flags Alice as mentioned.
Peregrine’s solution also works–there Alice gets marked as mentioned because the rule is for writing a paragraph about Alice, and Bob gets marked as mentioned because his name is in brackets.
Exactly how you want to do this will depend on the details of your implementation of the first-time appearance, but bracketing the names is a safe bet.
You can also write “now Bob is mentioned” explicitly in the rule.
Thanks for the quick responses!
Does this only work if it is first-time text? What if Bob and Alice move to a new location, does that still fall under “writing a paragraph about” rules, or something else?
First-time text shows until an object becomes “handled”, which by default happens only when the player takes it. So for NPCs it will always appear.
Rules for writing a paragraph about always show, whether or not the object is handled. They also override the first-time text.