Quick addition: Matt W, here’s a bit of code to fix the scope issue (from here):
The most recent actor is an object that varies.
After reading a command (this is the reset distant actor before multiple-command rule):
now the most recent actor is nothing. [This ensures we don't leave the actor in scope for multiple command-entries, only when multiple commands are entered on the same line.]
First persuasion (this is the reset most recent actor rule):
now the most recent actor is the person asked.
After deciding the scope of the player while parsing for persuasion (this is the multiple commands to a distant actor rule):
if the most recent actor is not nothing:
place the most recent actor in scope, but not its contents.