Looking for some group ideas on modeling conversations with NPCs.
Currently, characters have a command 'talk' by which they can initiate a dialog with an NPC but after that I'm kind of indecisive about how to have a rich selection of game topics to discuss without overcomplicating things.
I want my NPCs to have a few topics they are experts on, such as vendors understanding basic commands such as buy, sell, estimate, trade, repair, etc. of course but I also want them to be reasonably educated on game topics that are not directly related to their primary occupation but would be considered general knowledge. Maybe even dynamically updated as the character progresses.
I think what I need (or want anyway, feel free to suggest a better alternative) is a modal conversation where after greeting a NPC, the normal line by line command entry is temporarily suspended and the player's typed input is interpreted more loosely (where each word or line may not correspond to a command)
Another, possibly more realistic compromise may be to have a command called 'ask', the target NPC, with a set of optional prepositions eg. about, for, to... then topics.
something like:
ask [NPC|qualifiers] [about|for] [name|quests|equipment|weather|services|help] <- dynamic list of topics NPC knows about
The NPC would then blurt out a single response or list of options, each one of which may have different responses. 'ask Cletus about weather' might simply return a colorful string summarizing current weather conditions.
'ask Cletus about quests' might return a list of tasks. This much is doable already but how would one implement a context sensitive ability to agree to a specific item in the list that disappears after the conversation is ended?
If he responds to 'ask Cletus about quests', he might respond with 'Well, you could help me by: rid my farm of goblins, marry my daughter, or find my lost cow.'
What is a concise way of choosing among these options without unnecessary expansion of commands? If the character just happens to be in same room as Cletus, I don't want any spurious commands accidentally interacting with random NPCs that happen to have a keyword in common with a command intended for someone else.
Marcus