I have the following situation. The PC meets two NPCs and gets some stuff from them. (It is Heidi, Joe and Sally)
I’ve implemented a ‘Thank’ action.
DefineTAction(Thank);
VerbRule(Thank)
'thank' singleDobj
: ThankAction
verbPhrase = 'thank/thanking (whom)'
;
Now I can implement a reaction, let’s say for Sally like this:
dobjFor(Thank)
{
verify() {}
check() {}
action() {
"<q>Never mind</q> Sally says. "
}
}
But I want to generalize the reaction for all Actors in the game, I want them all to be polite. I’ve tried the following:
modify Actor
dobjFor(Thank)
{
verify() {}
check() {}
action() {
mainReport ('<q>Never mind</q> {actor/he} says. ');
}
}
;
But the {actor/he}
part is not replaced with anything.
Questions are:
- Is
action()
the right place for politeness, that doesn’t alter the game state? - Where and how can I set up a response for all actors which properly reflects thier gender and whether their name is known by the PC or not?
- As a bonus, I want to utilize a shuffledList, that selects a response from “Never mind” and “You’re welcome”.
How could this be done with minimal effort, using the mechanics that are already there for all the standard library responses?