OK, almost everyone thinks that stat bonuses for traits are important. Fair enough.
Let me show you all what I have in mind. I'm sure I posted something like this already, but I can't find it, search as I may). Anyway...
<traits>
<trait name="pretty">
<handler name="onGain">
--
-- lua code that specifies what happens when a girl gains this trait
-- the girl in question is found under wm.girl
--
wm.girl.add_to_stat("beauty", 10)
</handler>
<handler name="onLoss">
--
-- if she loses the trait, she needs to lose the bonus
--
wm.girl.add_to_stat("beauty", -10)
</handler>
</trait>
</traits>
The code inside the "handler" tags is lua. The "onGain" code will get executed when the girl gains the trait, and the "onLoss" one when she loses it. So, just to reassure people, there's no real way to prevent traits from conferring stat bonuses.
The questions I'm mulling over right now are: what other handlers do we need to replicate current trait functionality? And how best to manage the interaction between traits and events
Other handlers: combat ones, certainly. I'm not worried about being able to set combat bonuses (boost the skill for that) but a preCombat handler would allow traits that let a girl avoid a fight entirely - if she could turn invisible or intangible, say. Or teleport. A postCombat handler would be useful for healing damage - or maybe an onDamage event would be better, so the damage taken could be changed.
We'd need a sex handler of some sort I suspect, although I can't think of anything specific that needs it right now. Unless we decide to track STDs through the customer pool in which case this lets us propagate the things.
We could also use trait handlers to duplicate some of the functionaliy of events. I mean a "sadistic" trait could come with a low %chance that the girl loses it during sex and badly hurts a patron. What do we do if there's also a girl-specific event that wants to fire? I'd say the girl's events have to take priority, but giving traits their own events would let us propagate a lot of consistent behaviour across a lot of girls.
And if we can't make random girls less boring with that sort of functionality at our disposal, it's probably time to give up
