From 1b14a09f1c9c3d39a22f87dd153d9df5b6598eb0 Mon Sep 17 00:00:00 2001 From: MEEPofFaith <54301439+MEEPofFaith@users.noreply.github.com> Date: Sat, 27 Jan 2024 18:24:48 -0800 Subject: [PATCH] Shield health should also be factored in pierce factor when maxDamageFraction is 0 (#9486) --- core/src/mindustry/entities/bullet/BulletType.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/src/mindustry/entities/bullet/BulletType.java b/core/src/mindustry/entities/bullet/BulletType.java index 4ab4c929a4..2870715f06 100644 --- a/core/src/mindustry/entities/bullet/BulletType.java +++ b/core/src/mindustry/entities/bullet/BulletType.java @@ -387,14 +387,14 @@ public class BulletType extends Content implements Cloneable{ if(entity instanceof Healthc h){ float damage = b.damage; + float shield = entity instanceof Shieldc s ? Math.max(s.shield(), 0f) : 0f; if(maxDamageFraction > 0){ - float cap = h.maxHealth() * maxDamageFraction; - if(entity instanceof Shieldc s){ - cap += Math.max(s.shield(), 0f); - } + float cap = h.maxHealth() * maxDamageFraction + shield; damage = Math.min(damage, cap); //cap health to effective health for handlePierce to handle it properly health = Math.min(health, cap); + }else{ + health += shield; } if(pierceArmor){ h.damagePierce(damage);