double Mass() const noexcept { return mass; }
void Ingest(int res, double amount) noexcept;
+ void DoWork(double amount) noexcept;
+
void Size(double s) noexcept { size = s; }
double Size() const noexcept { return size; }
/// age-depended multiplier, peak being the maximum in lifetime [0,1]
double AgeFactor(double peak) const noexcept;
+ double EnergyEfficiency() const noexcept;
double ExhaustionFactor() const noexcept;
double FatigueFactor() const noexcept;
double Lifetime() const noexcept;
double Fertility() const noexcept;
double Mutability() const noexcept;
+ double Adaptability() const noexcept;
double OffspringMass() const noexcept;
/// chance of giving birth per tick
double OffspringChance() const noexcept;
- /// chance of random genetic mutation per tick
+ /// chance of arbitrary genetic mutation per tick
double MutateChance() const noexcept;
+ /// chance of environmental genetic mutation per tick
+ double AdaptChance() const noexcept;
void Hurt(double d) noexcept;
void Die() noexcept;
+ bool Dead() const noexcept;
void OnDeath(Callback cb) noexcept { on_death = cb; }
void Remove() noexcept;
bool Removable() const noexcept { return removable; }