X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fcreature%2Fgoal.cpp;h=a4f33304f3f75af56b86c376b0c653879405006e;hb=d364d8a9203138be1c569cdc31144f51883ec79f;hp=f3e0891c1e1ca5cf7e6b98846f4ed43aca0688f2;hpb=392826deaf802ac0960ed3924a3f98b9d18d381b;p=blobs.git diff --git a/src/creature/goal.cpp b/src/creature/goal.cpp index f3e0891..a4f3330 100644 --- a/src/creature/goal.cpp +++ b/src/creature/goal.cpp @@ -6,6 +6,7 @@ #include "Creature.hpp" #include "../app/Assets.hpp" +#include "../ui/string.hpp" #include "../world/Planet.hpp" #include "../world/Resource.hpp" #include "../world/Simulation.hpp" @@ -41,9 +42,9 @@ void BlobBackgroundTask::Tick(double dt) { // TODO: check if in compatible atmosphere double amount = GetCreature().GetStats().Breath().gain * -(1.5 + 0.5 * GetCreature().ExhaustionFactor()); GetCreature().GetStats().Breath().Add(amount * dt); - // maintain ~2.5% gas composition + // maintain ~1% gas composition double gas_amount = GetCreature().GetComposition().Get(gas); - if (gas_amount < GetCreature().GetComposition().TotalMass() * 0.025) { + if (gas_amount < GetCreature().GetComposition().TotalMass() * 0.01) { double add = std::min(GetCreature().GetComposition().TotalMass() * 0.025 - gas_amount, -amount * dt); GetCreature().Ingest(gas, add); } @@ -99,8 +100,8 @@ void BlobBackgroundTask::CheckStats() { void BlobBackgroundTask::CheckSplit() { if (GetCreature().Mass() > GetCreature().OffspringMass() * 2.0 && GetCreature().OffspringChance() > Assets().random.UNorm()) { - std::cout << "[" << int(GetCreature().GetSimulation().Time()) - << "s] " << GetCreature().Name() << " split" << std::endl; + std::cout << "[" << ui::TimeString(GetCreature().GetSimulation().Time()) + << "] " << GetCreature().Name() << " split" << std::endl; Split(GetCreature()); return; } @@ -110,7 +111,7 @@ void BlobBackgroundTask::CheckMutate() { // check for random property mutation if (GetCreature().MutateChance() > Assets().random.UNorm()) { double amount = 1.0 + (Assets().random.SNorm() * 0.05); - math::Distribution &d = GetCreature().GetGenome().properties.props[(int(Assets().random.UNorm() * 8.0) % 8)]; + math::Distribution &d = GetCreature().GetGenome().properties.props[Assets().random.UInt(9)]; if (Assets().random.UNorm() < 0.5) { d.Mean(d.Mean() * amount); } else {