I have to redesign the gossip section of the network, as the current system can't be converted to Erasmo-language. Moreover, this is a crucial part of the overall system, likely to be re-used in almost any title, and so I might as well get it right this time.
The triggering event in gossip is always somebody else's action. This trigger event permits a third party who finds out about it after the fact to comment on the action. Thus, Character A tells Character B something about Character C, and B responds with, "I never did like that C". Character A then has the option to respond with his/her own assessment of C, and then the discussion can expand from there. How to organize this?
Here's a good simplifying assumption: the response to a triggering event must be confined to a single dimension. In other words, you can't talk about affection, dominance, and trust in response to a bit of news; your comment is restricted to one of those three areas. This will be natural from the nature of the triggering event. If you learn that Joe did something cowardly, you can talk about your dominance over him; if you find that he did something deceitful, then you can talk about your trust, and so forth. Thus, the call to the Gossip function will specify which of the three dimensions will be used. The gossiper will simply assign a value based on his feelings.
The next step is trickier: how does the interlocutor respond to a description of feelings? The interlocutor can respond in the same dimension &emdash; but the nature of agreement or disagreement should be a factor here. The interlocutor could respond in a different dimension, or ask about a different dimension. Which of these options should be available? Note that this problem is recursive: once the original gossiper takes his action, the roles are reversed. Thus, I need a fairly general solution.
The first decision is to agree or disagree, based on the dominance and the actual feelings. Thus, if I disagree but am submissive to the speaker, then I'll not describe my feelings. If I disagree and am dominant, then I'll state my opinion. Instead, I will inquire in another dimension or close the discussion.
If I agree, then I will determine whether I have already described my feelings. If not, I will proceed to do so; if so, then I will change dimension and offer my feelings there. Dimensions always proceed in a fixed cyclic order: affection, dominance, trust.
Let's sleep on that.