- PropertySet<T> props[6];
- PropertySet<T> &Birth() noexcept { return props[0]; }
- const PropertySet<T> &Birth() const noexcept { return props[0]; }
- PropertySet<T> &Child() noexcept { return props[1]; }
- const PropertySet<T> &Child() const noexcept { return props[1]; }
- PropertySet<T> &Youth() noexcept { return props[2]; }
- const PropertySet<T> &Youth() const noexcept { return props[2]; }
- PropertySet<T> &Adult() noexcept { return props[3]; }
- const PropertySet<T> &Adult() const noexcept { return props[3]; }
- PropertySet<T> &Elder() noexcept { return props[4]; }
- const PropertySet<T> &Elder() const noexcept { return props[4]; }
- PropertySet<T> &Death() noexcept { return props[5]; }
- const PropertySet<T> &Death() const noexcept { return props[5]; }
+ /// every one of these should have at least one
+ /// negative impact to prevent super-beings evolving
+ T props[9];
+ /// power at the cost of higher solid intake
+ T &Strength() noexcept { return props[0]; }
+ const T &Strength() const noexcept { return props[0]; }
+ /// more endurance at the cost of higher liquid intake
+ T &Stamina() noexcept { return props[1]; }
+ const T &Stamina() const noexcept { return props[1]; }
+ /// more speed at the cost of higher fatigue
+ T &Dexerty() noexcept { return props[2]; }
+ const T &Dexerty() const noexcept { return props[2]; }
+ /// higher mental capacity at the cost of boredom
+ T &Intelligence() noexcept { return props[3]; }
+ const T &Intelligence() const noexcept { return props[3]; }
+ /// average lifetime in seconds
+ T &Lifetime() noexcept { return props[4]; }
+ const T &Lifetime() const noexcept { return props[4]; }
+ /// how likely to succeed in reproduction
+ T &Fertility() noexcept { return props[5]; }
+ const T &Fertility() const noexcept { return props[5]; }
+ /// how likely to mutate
+ T &Mutability() noexcept { return props[6]; }
+ const T &Mutability() const noexcept { return props[6]; }
+ /// how likely to adapt to new environments
+ T &Adaptability() noexcept { return props[7]; }
+ const T &Adaptability() const noexcept { return props[7]; }
+ /// mass of offspring
+ T &OffspringMass() noexcept { return props[8]; }
+ const T &OffspringMass() const noexcept { return props[8]; }