Create Life Modules & Affiliations
Like skills and traits these two are pretty closely linked together. So it makes sense to create them at the same time.
These two are probably some of the hairier parts of character creation and I think there's a degree of "spiking out" that's going to be required to see what actually is going to work here.
Part of what makes these messy is that they need to be definable in a database, and not put directly into code. What shouldn't end up happening is code like:
if (character.affiliation === "Word of Blake") {
// Some code...
}
This is going to mean going through the notes in each affiliation and life module and figuring out what kind of exceptions the game allows for, and trying to find generic was of describing them.
For instance, some examples:
- Comstar/Word of Blake: can't be a sole affiliation
- Combine or Confederation: legal child labor (allows taking stage 4 as stage 2 modules)
- Many affiliations: Having particular traits aren't allowed
- Comstar/WoB: No Extra Income or Property
- Pirate Sub-affiliations: No Titles
All of those can obviously be expressed in more generic ways, it's just a matter of tracking down all the rules.
There are of course a few simple values that they need, like module costs and descriptions.
Still pretty simple, an affiliation has the following:
- A primary language skill
- A collection of secondary language skills
- A collection of "fixed XPs" that go into traits and skills
Less simple are "flexible XPs", which would require a user to decide where some given points should go. It's not entirely clear where those should go during the process of character creation, possibly some sort of wrapping interface around a character being created? A CharacterCreationHarness
? Some flexible XPs are very loosely defined. They aren't as simple as always being: "+10XP to three skills". They're often (an example) something like: "+25XP to any three Attributes or Traits, or combination thereof". So a flexible XP would need to know what it's applicable to, presumably.
A further confusion is that Clan characters need to take a caste; but the rule book is light on details on how to express that on a character sheet. Or how to know that an affiliation requires caste selection. Probably some sort of isClan
field.
There are several affiliations that allow characters to take "any" of a sub-skill, usually in relation to language. I think this could be a simple as checking that between all language skills there's at least the base allotment plus whatever the affiliation provides in XP.
Life Modules have almost all of the same issues as Affiliations, so solving issues with the one effectively solves the other.