#include #include #include namespace kurator { namespace universe { double TurretType::effective_damage(const double distance) const { const auto overflow = distance - optimal_range; const auto falloff = std::max(0.0, overflow / optimal_range / falloff_modifier); return base_damage * std::round(std::pow(falloff_intensity, std::pow(falloff, 2)) * 1000) / 1000; } } // namespace universe } // namespace kurator