I can look at python and generally know what's going on.
Cool. My general idea is that a creature has a bunch of stats (health, str, etc) and a list of Traits. Each trait is an object with an apply method that takes a creature and changes it: increate a stat, decrease a stat, whatever. Each creature also tells their traits when things happen and traits can handle that however they want. So a trait can also effect the creature when something happens: gain health when the creature attacks another, reroll failed attacks, whatever. This covers a lot of cases and keeps the logic contained in each trait. I plan on adding more traits and mechanics like modal traits such as a sneak mode, run mode, or even shapeshifting.
My current project is written in Haxe - a cross platform language similar to Java and other static languages. You can see the traits that I have so far, and the screen where you choose one, at
https://github.com/trystan/RogueHeroPlayground/blob/master/Source/CreateCharacterScreen.hxThe creature class is at
https://github.com/trystan/RogueHeroPlayground/blob/master/Source/Creature.hx. The addTrait, on, and trigger methods are related to the traits and their effects.
Let me know if anyone has any thoughts.