Fifty Times Fifty Ways
There is only so much we can cram into a text property, so being able to swap in properties is useful but limited. Fortunately, we can also, if we want, create new phrases for how to say things in brackets:
Now to provide some meaning to these bracketed forms. We'll start with the easy one:
This is a "to say" phrase; we will learn more about phrases in a later chapter, but for now it may be enough to observe that whatever we write after "to say…" becomes a valid substitution in bracketed speech. In this particular case there is no advantage to using the boast token rather than spelling the text out in the quotation, but we might in theory add further instructions to randomize the output, for instance.
To say phrases can be more complex, as well, since we can have them incorporate extra information:
Here where we have (speaker - a person), we are leaving a slot which we can later fill in, madlibs-like, with any person we like. That is why we can write "insult for the noun": we are summoning the To say phrase and telling it to fill in the identity of the unknown speaker with the noun.
This differs from "insult of the noun" in the previous example; in that case, each person had his own insult property, and were merely printing that property out. Here we are actually telling Inform to calculate anew what the insult should be, and giving it some instructions about how to do that.
Our instructions can also get arbitrarily complex:
Test me with "kiss wasp / hit wasp / kiss wasp / kiss drone / hit drone / kiss drone".
You can see Wasp and Drone here.
>(Testing.)
>[1] kiss wasp
"You must not, small one! I have ferocious allies!"
>[2] hit wasp
"Get away, Larva!"
>[3] kiss wasp
"Stand back, Larva! I have ferocious allies!"
>[4] kiss drone
"You must not, small one! I have ferocious allies!"
>[5] hit drone
"Get away, Grasshopper!"
>[6] kiss drone
"You forget yourself, Grasshopper! I have ferocious allies!"
So the effects we can get with text substitutions are quite flexible. We could even, if we wanted, fill in the substitutions by random choice, or by selecting items from a long list or table, should we have so bellicose a set of characters that they cannot make do with one or two insulting remarks apiece.