From: Daniel Karbach Date: Mon, 4 Dec 2017 14:05:16 +0000 (+0100) Subject: log death just once X-Git-Url: https://git.localhorst.tv/?a=commitdiff_plain;h=d238457803553ba9d83be68993758102c962c4f5;p=blobs.git log death just once --- diff --git a/src/creature/creature.cpp b/src/creature/creature.cpp index 39b96b2..8c7d235 100644 --- a/src/creature/creature.cpp +++ b/src/creature/creature.cpp @@ -209,22 +209,6 @@ void Creature::DoWork(double amount) noexcept { void Creature::Hurt(double amount) noexcept { stats.Damage().Add(amount); if (stats.Damage().Full()) { - std::ostream &log = sim.Log() << name << " "; - if (stats.Exhaustion().Full()) { - log << "died of exhaustion"; - } else if (stats.Breath().Full()) { - log << "suffocated"; - } else if (stats.Thirst().Full()) { - log << "died of thirst"; - } else if (stats.Hunger().Full()) { - log << "starved to death"; - } else { - log << "succumed to wounds"; - } - log << " at an age of " << ui::TimeString(Age()) - << " (" << ui::PercentageString(Age() / properties.Lifetime()) - << " of life expectancy of " << ui::TimeString(properties.Lifetime()) - << ")" << std::endl; Die(); } } @@ -232,6 +216,23 @@ void Creature::Hurt(double amount) noexcept { void Creature::Die() noexcept { if (Dead()) return; + std::ostream &log = sim.Log() << name << " "; + if (stats.Exhaustion().Full()) { + log << "died of exhaustion"; + } else if (stats.Breath().Full()) { + log << "suffocated"; + } else if (stats.Thirst().Full()) { + log << "died of thirst"; + } else if (stats.Hunger().Full()) { + log << "starved to death"; + } else { + log << "succumed to wounds"; + } + log << " at an age of " << ui::TimeString(Age()) + << " (" << ui::PercentageString(Age() / properties.Lifetime()) + << " of life expectancy of " << ui::TimeString(properties.Lifetime()) + << ")" << std::endl; + sim.SetDead(this); death = sim.Time(); steering.Off();