From 139d7626b23eac9a794f8b46c02e52cbcde61669 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 12 Feb 2026 12:22:00 -0500 Subject: [PATCH] Proper shield arc velocity nullification --- .../mindustry/entities/abilities/ShieldArcAbility.java | 8 +++++--- gradle.properties | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/core/src/mindustry/entities/abilities/ShieldArcAbility.java b/core/src/mindustry/entities/abilities/ShieldArcAbility.java index a4917590f7..36c61c5c64 100644 --- a/core/src/mindustry/entities/abilities/ShieldArcAbility.java +++ b/core/src/mindustry/entities/abilities/ShieldArcAbility.java @@ -92,11 +92,13 @@ public class ShieldArcAbility extends Ability{ }else if(paramField.pushUnits && !(!unit.isFlying() && paramUnit.isFlying())){ float reach = paramField.radius + paramField.width; - float overlapDst = reach - unit.dst(paramPos.x,paramPos.y); + float overlapDst = reach - unit.dst(paramPos.x, paramPos.y); if(overlapDst > 0){ - //stop - unit.vel.setZero(); + //only nullify velocity if it's heading towards the shield + if(Angles.angleDist(unit.angleTo(paramPos), unit.vel.angle()) < 90f){ + unit.vel.setZero(); + } // get out unit.move(Tmp.v1.set(unit).sub(paramUnit).setLength(overlapDst + 0.01f)); diff --git a/gradle.properties b/gradle.properties index 455327686a..d9352de179 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,4 +26,4 @@ org.gradle.caching=true org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.connectionTimeout=100000 android.enableR8.fullMode=false -archash=181f842e5c +archash=acf486b6f6