]> git.localhorst.tv Git - blobs.git/blobdiff - src/creature/Creature.hpp
remember remember
[blobs.git] / src / creature / Creature.hpp
index 3f86670eba4a9aa885e8056c5b3b1e7dd15a7c08..2c0b6b8dabd8198d85c6f6ef9dc9743e5710b7d4 100644 (file)
@@ -105,6 +105,8 @@ public:
        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; }
 
@@ -113,27 +115,40 @@ public:
        /// 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;
 
        // stats with effects applied
        double Strength() const noexcept;
+       double StrengthFactor() const noexcept;
        double Stamina() const noexcept;
+       double StaminaFactor() const noexcept;
        double Dexerty() const noexcept;
+       double DexertyFactor() const noexcept;
        double Intelligence() const noexcept;
+       double IntelligenceFactor() const noexcept;
        double Lifetime() const noexcept;
        double Fertility() const noexcept;
        double Mutability() const noexcept;
+       double Adaptability() const noexcept;
        double OffspringMass() const noexcept;
 
+       double PerceptionRange() const noexcept;
+       double PerceptionOmniRange() const noexcept;
+       double PerceptionField() const noexcept;
+       bool PerceptionTest(const glm::dvec3 &) 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;
-       void OnDeath(Callback cb) noexcept { on_death = cb; }
+       bool Dead() const noexcept;
+       void WhenDead(Callback cb) noexcept { on_death = cb; }
        void Remove() noexcept;
        bool Removable() const noexcept { return removable; }
        void Removed() noexcept;