This is probably a really silly one, but I can’t seem to puzzle it out: is there any way to fiddle with the grammar for asking an NPC to do something without hacking the template layer?
Specifically, I’m trying to create a rule that will allow persuasion to succeed for certain NPCs only if the player says “please” - i.e., “[character], please [action]” instead of “[character], [action]”. Any persuasion attempt without the “please” will be rejected as insufficiently polite.
Well, in a sense no. There are no ordinary grammar lines for asking someone to try doing something. The parser checks for a comma, sets the new actor to the person named before the comma and the action to be performed by him/her to what follows the comma. If what follows the comma doesn’t make sense as a command the whole thing is converted to the answering it that action. (Or so I think.)
Anyway, here’s the ad-hockery I came up with (there might be better solutions, of course):
[code]Civility is a truth state that varies. Civility is usually false.
Before reading a command: now civility is false.
After reading a command when the player’s command includes “please”: cut the matched text; now civility is true.
Instead of asking someone to try doing something when civility is false: say “[the person asked] ignores you. (You had better say the Magic Word!)[line break]”
[/code]