X-Git-Url: http://git.localhorst.tv/?p=blobs.git;a=blobdiff_plain;f=src%2Fcreature%2FGenome.hpp;h=3361fdef2037d6f913a72ba12c098fe1ddc2e5de;hp=b14efc1a756396dd405906786eaffe7f1bc96fea;hb=6c1097479fd1ea41f0f76b91e67613822acf2e90;hpb=2ab70a92ae39cebc6166ef15545ebcbd31a31c38 diff --git a/src/creature/Genome.hpp b/src/creature/Genome.hpp index b14efc1..3361fde 100644 --- a/src/creature/Genome.hpp +++ b/src/creature/Genome.hpp @@ -20,9 +20,13 @@ struct Genome { template struct PropertySet { + /// the age at which to transition to the next phase T age; + /// maximum body mass T mass; + /// fertility factor T fertility; + /// skin highlight pronounciation T highlight; }; template @@ -40,6 +44,20 @@ struct Genome { const PropertySet &Elder() const noexcept { return props[4]; } PropertySet &Death() noexcept { return props[5]; } const PropertySet &Death() const noexcept { return props[5]; } + + /// "typical" properties + /// every one of these should have at least one + /// negative impact to prevent super-beings evolving + /// power at the cost of higher solid intake + T strength; + /// more endurance at the cost of higher liquid intake + T stamina; + /// more speed at the cost of higher fatigue + T dexerty; + /// higher mental capacity at the cost of boredom + T intelligence; + /// how likely to mutate + T mutability; }; Properties properties; @@ -87,7 +105,12 @@ struct Genome { Instantiate(p.props[2], rand), Instantiate(p.props[3], rand), Instantiate(p.props[4], rand), - Instantiate(p.props[5], rand) + Instantiate(p.props[5], rand), + p.strength.FakeNormal(rand.SNorm()), + p.stamina.FakeNormal(rand.SNorm()), + p.dexerty.FakeNormal(rand.SNorm()), + p.intelligence.FakeNormal(rand.SNorm()), + p.mutability.FakeNormal(rand.SNorm()) }; }