So, I found this rather entertaining game of yours 2 months ago or thereabouts. After playing it for a while and seeing that the source was available I decided to have a go at moderately customizing a build for my own play style. What I've done so far is pretty mild, added a custom trait, added a few effects for existing traits and changed the inheritance for a few traits. Having done so, I can see why the request for custom traits usually gets the response "yes, that would be lovely". Traits can potentially touch so many different area's that it's dang tricky to provide a mechanism for adding custom traits at will.
Anyway, some of the other changes I'd like to make I think would make good additions to the trunk. Unfortunately, some of the idea's I have would require some significant changes to some core methods and I don't want to break compatibility between my custom build and the trunk.
So, suggestion 1. Four traits having to do with various married states. Married (not to the player), Divorced, Widowed, Your Wife (Married to the player)
First, it has always seemed strange to me that when you kidnap the wife and daughters of some poor schmuck who couldn't pay that the only difference between the wife and the daughters is their age. The wife should have the trait Married (and also MILF, we know she has daughters after all), and it should have an effect on her willingness to do certain kinds of tasks (primarily sex related jobs) and also her willingness to sleep with the player (ie, she should outright refuse unless you have drugged her up so high on aphrodisiac's that she'll take any dick she can get). Of course, you can still 'force' the issue. Unless of course you convince her that you're the better man and her husband was a loser (ie, make her fall in love with you) and convince her to get Divorced. Alternately, you can hunt down and 'deal' with her husband, in which case she becomes Widowed (which will make her weepy and depressive, ie, loses happiness faster). Once she no longer has the Married trait, if you feel so inclined, you can ask her to become Your Wife.
For normal girls on the other hand you just convince them that you are their True Love and ask them to become Your Wife.
And, this being Crossgate, no one is going to give a crap if you have more than one wife, nor for that matter are they going to care if you marry Your Daughter.
As for the effects, some jobs the girl should be more willing to do, and others less so. Non sex-related jobs she should be more willing to do to make you happy. Sex related jobs on the other hand, well, she's married to YOU, not this random guy on the street who wants to get laid (although, perhaps an exception could be made for Lesbian sex). Anyway, you wouldn't want to marry all of your girls, because most of them would refuse to work in the brothel. Possibly there should also be some sort of limit on how many wives you can handle (after all, theres only so much time in the week for making sure your wives are satisfied, and an unsatisfied wife is more likely to disobey).
Moving on, lineage tracking. We have the Your Daughter trait, and when a girl grows up the mom gets flagged as "has daughter", but there's no record of the relationship between the two. It would be fun to be able to look at a girl and see that her mom is X, or see that she has 2 daughters Y and Z, or possibly both.
So, now lets talk about the architectural changes need to make these ideas work. The first thing that would be needed is some way of adding required traits to a random girl when we create one. The first option would be that when you call the CreateRandomGirl method, instead of directly returning it to another function would be to return the object then call AddTrait a couple of times based on some if statements. The other option would be to have the CreateRandomGirl method take as an optional parameter an array which is a list of required traits.
The next part is figuring out how to store the mom<->daughter relationship in the save file and also how to create it in the first place. You've got two potential cases here. The easy one is when one of your girls gives birth. You just add a few lines into the child_is_grown method to add whatever bit of data to both the mom and daughter to track the relationship.
The more complicated case is when you kidnap a mother/wife and/or her daughters. Arguably, if your goons tell you that the deadbeat has a wife and three daughters, and you choose to only kidnap the daughters, the wife should still be created and tracked somehow. Likewise the opposite, if you kidnap the wife but not the daughters the daughters should still be created. Perhaps later the deadbeat will pay a visit to your brothel again and this time you'll kidnap whoever you didn't last time (which probably means we should be tracking the deadbeat as well). Or maybe the deadbeat shows up to buy his wife/daughters back from you (whether they're willing to go back is another question).
Anyway, the whole structure and interaction between these two elements can get pretty complicated pretty quick, but I think it would also add an entertaining element to the game. The one major major problem with the idea of lineage tracking is this, the save file format is pretty darn fixed as near as I can tell and I have no idea how to add this to the save file without breaking backwards compatibility.
Which brings me to my last thing. It's been over 10 years since I last did any real C/C++ programming. I am however a Perl and SQL programmer (and a windows sysadmin). To my mind this whole game is screaming for a database backend, both for the core game data and most especially for the save file. I saw in another thread, I think it was for one of the spinoff games that one of the devs is working on, that they were considering using sqlite for some portion of their game. So my question for devs is this, what would be your thoughts on ripping out the save system and replacing it with an sqlite driven save file?