From ca7f34e6e1e087ae94c65654117db5f1c1ac9b62 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 12 Jan 2025 10:02:42 -0500 Subject: [PATCH] Fixed #10410 --- core/src/mindustry/entities/comp/HealthComp.java | 3 +++ core/src/mindustry/entities/comp/ShieldComp.java | 2 ++ 2 files changed, 5 insertions(+) diff --git a/core/src/mindustry/entities/comp/HealthComp.java b/core/src/mindustry/entities/comp/HealthComp.java index c06e6909e3..f315b3fb75 100644 --- a/core/src/mindustry/entities/comp/HealthComp.java +++ b/core/src/mindustry/entities/comp/HealthComp.java @@ -59,6 +59,8 @@ abstract class HealthComp implements Entityc, Posc{ } void damage(float amount){ + if(Float.isNaN(health)) health = 0f; + health -= amount; hitTime = 1f; if(health <= 0 && !dead){ @@ -86,6 +88,7 @@ abstract class HealthComp implements Entityc, Posc{ void clampHealth(){ health = Math.min(health, maxHealth); + if(Float.isNaN(health)) health = 0f; } /** Heals by a flat amount. */ diff --git a/core/src/mindustry/entities/comp/ShieldComp.java b/core/src/mindustry/entities/comp/ShieldComp.java index c290fa6251..f2f6e4c808 100644 --- a/core/src/mindustry/entities/comp/ShieldComp.java +++ b/core/src/mindustry/entities/comp/ShieldComp.java @@ -45,6 +45,8 @@ abstract class ShieldComp implements Healthc, Posc{ protected void rawDamage(float amount){ boolean hadShields = shield > 0.0001f; + if(Float.isNaN(health)) health = 0f; + if(hadShields){ shieldAlpha = 1f; }