Hey Folks! Still struggling a bit with this encounter system. I'm not a lot further along with it than yesterday, though I've had a bit more time to explore and test ideas.
Ultimately, the problem boils down to me not knowing how to describe how this system should work. It's a really abstract idea that I can see pieces of fairly clearly, but I can't figure out how they come together. And whenever I think I've discovered a concrete rule, it seems like that rule gets broken easily by other needs.
Maybe I just need to enumerate those pieces, and I can reread this Monday with a fresh perspective.
- I need a way to locate another person somewhere in the system that fulfills certain criteria.
- Some criteria are related to social relations: friend/enemy/family
- Some criteria are related to their pspec data: name, career, homeworld, age
- Some criteria are related to traits and other game flags: treacherous, faction1
- Each of these three types of criteria involves a separate data type.
- If I can't find a suitable person above, I need to be able to generate that person.
- I need to be able to specify certain criteria in relation to the current encounter's participants. E.g. third party should not be on this station
- I need some way to apply one or more conditions to one or more of the third parties found/generated above. E.g. so when I encounter them later, special conversation options are available
- I need to be able to assign new relationships to the player and other characters based on interactions.
That last one might be a key point: my interaction system has no relationship info, since that was added to the game later. In addition to the usual tools for adding/removing/transferring items and condition flags, maybe my interactions need to affect social relations. And/or generate new people like life events from chargen? Maybe interactions just need to have room for life event data, and those get executed along with other rewards in the interaction?
Hmm. I'll have to see if this makes sense Monday. Hope everyone has a good weekend!