On a somewhat related note, it would be nice if the traits had more unique effects instead of just directly effecting stats. As is with most traits just effecting stats, that means that if a girl has been trained up for a long time or has equipment and has 100 in most things, being Cute/Big Boobs/Lolita etc has no impact on her performance. Obviously that would require a lot of coding and is only tangentially related to the AGL but I just wanted to throw that out there.
I forgot to say this, but the traits do have additional unique effects in most jobs that the developers finished. They just happen under the hood, so you won't notice it during regular play. Incorporeal obviously has all those game-breaking effects where she doesn't get tired and doesn't get damaged. Quick Learner adds bonus experience to every action and Slow Learner reduces it. Here's what you get with the security job:
if (g_Girls.HasTrait(girl, "Psychic")) // I sense danger
SecLev += 10;
if (g_Girls.HasTrait(girl, "Fleet of Foot")) // Moves around quickly
SecLev += 5;
if (g_Girls.HasTrait(girl, "Charming")) // Gets more cooperation
SecLev += 5;
if (g_Girls.HasTrait(girl, "Cool Person")) // Gets more cooperation redux
SecLev += 5;
if (g_Girls.HasTrait(girl, "Adventurer")) // Has experience
SecLev += 5;
if (g_Girls.HasTrait(girl, "Aggressive")) // Rawr! I kill you now!
SecLev += 5;
if (g_Girls.HasTrait(girl, "Sadistic")) // I kill you slowly with this dull knife!
SecLev += 5;
if (g_Girls.HasTrait(girl, "Merciless")) // Your cries for clemency amuse me
SecLev += 5;
if (g_Girls.HasTrait(girl, "Fearless")) // Chhhhaaaarrrrrggggeeeeee!!
SecLev += 5;
if (g_Girls.HasTrait(girl, "Iron Will")) // Hold the line!
SecLev += 5;
if (g_Girls.HasTrait(girl, "Construct") || g_Girls.HasTrait(girl, "Not Human")) // Scary
SecLev += 5;
if (g_Girls.HasTrait(girl, "Demon")) // Even scarier
SecLev += 10;
if (g_Girls.HasTrait(girl, "Incorporeal")) // I'm fucking Superman!
SecLev += 20;
if (g_Girls.HasTrait(girl, "Strange Eyes")) // I'm watching you
SecLev += 2;
if (g_Girls.HasTrait(girl, "Assassin")) // I was born for this job. I know how you think.
SecLev += 50; // Is 50 too high? Assassin is a relatively rare trait, and there's no way to gain it
// (That I'm aware of) so it trades off(?)
if (g_Girls.HasTrait(girl, "Lolita")) // Hi there kiddo. Lost your mommy? OHMYGOD! She has two Swords of Forever!
SecLev += 5;
// Bad traits
if (g_Girls.HasTrait(girl, "Nerd")) // Gets no respect
SecLev -= 5;
if (g_Girls.HasTrait(girl, "Tsundere")) // Puts people off
SecLev -= 5;
if (g_Girls.HasTrait(girl, "Twisted")) // Wierd ideas about security rarely work
SecLev -= 5;
if (g_Girls.HasTrait(girl, "Broken Will")) // I'm too tired to patrol
SecLev -= 5;
if (g_Girls.HasTrait(girl, "Nymphomaniac")) // Wait! The security officer is a nymphomaniac in a brothel?
SecLev -= 20; // This hurts people like me who use the automation functions.
if (g_Girls.HasTrait(girl, "Meek")) // Wait... bad person... come back
SecLev -= 5;
if (g_Girls.HasTrait(girl, "Clumsy")) // "Stop thief!" ..... "Ahhhhh! I fell again!"
SecLev -= 5;
if (g_Girls.HasTrait(girl, "Dependant")) // I can't do this alone
SecLev -= 5;
if (g_Girls.HasTrait(girl, "Mind Fucked")) // duurrrrrr..... secu.... sec... what?
SecLev -= 50; // (Mind fucked can be cured btw.)
Also traits add to fetishes, which are virtually required to get customers when working as a whore. You may notice when you start out that if you buy a girl from the market with a lot of fetishes, she is much better as a whore than a girl who only has 1. This is the main reason why giving a girl way too many traits is problematic, but I'm ok with that as long as the girl actually possesses all of the traits. Probably what should be done there is forcing girls with a lot of traits to not appear in the slave market so they're more difficult to get. I didn't think about that, so thanks for bringing this kind of thing up!
Another balance "issue" is when you explore the catacombs. The game uses the stats of the girls you have in the catacombs - any unique catacomb girls, monster girls, bunny girls, etc. So when you set yourself to explore the catacombs, your girls' combat stats are matched up against the stats of the random/unique girls. If everybody in your .rgirlsx and uniques have 100 combat, you can't even set foot in the catacombs until your girl has 100 in a combat stat, and likewise if they all have 0 combat, you never lose with as little as 50 combat or magic. This is the main factor with success there, so moving every girl to 20 max in combat stats will make it so a girl only needs something like 60-70 in combat to beat everything, and then you can easily farm the catacombs.
So, say you have all random girls with 20 combat/magic in the catacombs, and you have no problems beating everything with your 50 combat girl. Then suddenly out of nowhere she gets raped after losing. It turns out, let's say Horo has 100 combat and she's set in the catacombs. Then Horo is the one raping your girl every time she loses.
Anyway most of the stuff you're suggesting would probably work quite well, Xela, and I trust your judgment on the matter because I see you're absolutely thinking this through.