Conversations framework

Issue #38 on hold
Mads Boddum created an issue

Conversing with NPCs in-game. There are quite a few object controllers that are used by this feature.

It's very important that we can perform specialized events for certain conversation options. The flow of a conversation is like a tree structure. It starts the player interacting with the NPC, who then starts the conversation with the root message.

Store the defined conversation flows in JSON or XML. We already use JSON, so we might as well go with that.

A radial handler must be added in order to kick off the conversation. Being out of range shouldn't be possible. Also, running too far away from the NPC should stop the conversation.

Comments (14)

  1. Mads Boddum reporter

    AIObject has a creatureId field, which we could use to link a specific NPC to a given conversation.

  2. Peter Tigges

    remember that the same npc can be at multiple spots and have a different conversation for each location

  3. Mads Boddum reporter

    Okay, so we'll have to link it to the spawner somehow. That's probably for the best anyways.

  4. Mads Boddum reporter

    I really think we should find a way to link it to creatureId in AIObject. The AIObject doesn't know which spawner it belongs to.

  5. Mads Boddum reporter

    I'm thinking writing the conversations should perhaps be written as Groovy classes. We can make a conversation builder class so it's easy to do and there's a lot of flexibility.

    We associate creatureId in AIObject with a conversation class, as mentioned before. We can do this with radials.

  6. Log in to comment