The core dialog is in communicate().
When a player talks, there are two cases:
This enables special things like 'Player asks: What is this?'.
The following tags can be used in the obj::msg field:
@match xxxintroduces a dialog message.
xxxcan be either '*' or a regexp, with | to separate alternatives
@reply value textis one possible reply the player can give to the message.
valueis what the player should say (using
testis what will be actually displayed
@question value textis the same as @reply except the player will ask
value can't contain spaces.