bf
CI / build (push) Failing after 35s

This commit is contained in:
2025-09-21 22:28:17 -07:00
parent dd9eb361e9
commit b81fe009e1
+6 -7
View File
@@ -100,19 +100,18 @@ impl Patient {
pub fn update(&mut self, dt_seconds: f32) {
for organ in &mut self.organs { organ.update(dt_seconds); }
// Simple inter-organ signaling: low SpO2 nudges heart rate higher.
if let Some(lungs) = self.find_organ_typed::<Lungs>() {
if let Some(spo2) = self.find_organ_typed::<Lungs>().map(|l| l.spo2_pct) {
if let Some(heart) = self.find_organ_typed_mut::<Heart>() {
let target = if lungs.spo2_pct < 92.0 { 90.0 } else { 70.0 };
let target = if spo2 < 92.0 { 90.0 } else { 70.0 };
let diff = target - heart.heart_rate_bpm;
heart.heart_rate_bpm += 0.05 * diff;
}
}
// Kidneys produce urine into bladder
if let (Some(kidneys), Some(bladder)) = (
self.find_organ_typed::<crate::organs::Kidneys>(),
self.find_organ_typed_mut::<crate::organs::Bladder>(),
) {
let produced = (kidneys.gfr * (dt_seconds / 60.0)).max(0.0) * 0.5; // ml
let produced_opt = self
.find_organ_typed::<crate::organs::Kidneys>()
.map(|kidneys| (kidneys.gfr * (dt_seconds / 60.0)).max(0.0) * 0.5); // ml
if let (Some(produced), Some(bladder)) = (produced_opt, self.find_organ_typed_mut::<crate::organs::Bladder>()) {
bladder.volume_ml += produced;
}
}