diff --git a/core/assets/maps/three.msav b/core/assets/maps/three.msav index 54b7731cc7..024fff077a 100644 Binary files a/core/assets/maps/three.msav and b/core/assets/maps/three.msav differ diff --git a/core/src/mindustry/entities/Units.java b/core/src/mindustry/entities/Units.java index 7775cb5f3f..e3bd7b850c 100644 --- a/core/src/mindustry/entities/Units.java +++ b/core/src/mindustry/entities/Units.java @@ -19,7 +19,7 @@ import static mindustry.Vars.*; public class Units{ private static final Rect hitrect = new Rect(); private static Unit result; - private static float cdist; + private static float cdist, cpriority; private static boolean boolResult; private static int intResult; private static Building buildResult; @@ -271,14 +271,16 @@ public class Units{ result = null; cdist = 0f; + cpriority = -99999f; nearbyEnemies(team, x - range, y - range, range*2f, range*2f, e -> { if(e.dead() || !predicate.get(e) || e.team == Team.derelict || !e.within(x, y, range + e.hitSize/2f)) return; float cost = sort.cost(e, x, y); - if(result == null || cost < cdist){ + if((result == null || cost < cdist) && e.type.targetPriority >= cpriority){ result = e; cdist = cost; + cpriority = e.type.targetPriority; } }); diff --git a/core/src/mindustry/type/UnitType.java b/core/src/mindustry/type/UnitType.java index b3bb0d5c8d..0293d4b3e9 100644 --- a/core/src/mindustry/type/UnitType.java +++ b/core/src/mindustry/type/UnitType.java @@ -79,6 +79,8 @@ public class UnitType extends UnlockableContent{ public float payloadCapacity = 8; public float aimDst = -1f; public float buildBeamOffset = 3.8f; + /** WIP: Units of low priority will always be ignored in favor of those with higher priority, regardless of distance. */ + public float targetPriority = 0f; public boolean drawBuildBeam = true; public boolean rotateToBuilding = true; public int commandLimit = 8; diff --git a/core/src/mindustry/type/unit/MissileUnitType.java b/core/src/mindustry/type/unit/MissileUnitType.java index 0839e72722..08d9a51eb4 100644 --- a/core/src/mindustry/type/unit/MissileUnitType.java +++ b/core/src/mindustry/type/unit/MissileUnitType.java @@ -30,6 +30,7 @@ public class MissileUnitType extends UnitType{ lifetime = 60f * 1.7f; rotateSpeed = 2.5f; range = 30f; + targetPriority = -1f; //TODO weapons, etc } }