diff --git a/core/src/mindustry/entities/Units.java b/core/src/mindustry/entities/Units.java index 49e33ec06b..88e458b30c 100644 --- a/core/src/mindustry/entities/Units.java +++ b/core/src/mindustry/entities/Units.java @@ -218,7 +218,7 @@ public class Units{ cdist = 0f; nearbyEnemies(team, x - range, y - range, range*2f, range*2f, e -> { - if(e.dead() || !predicate.get(e) || !e.within(x, y, range + e.hitSize/2f)) return; + 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){ diff --git a/core/src/mindustry/world/blocks/units/RepairPoint.java b/core/src/mindustry/world/blocks/units/RepairPoint.java index 905c1c63f7..b84ed1d119 100644 --- a/core/src/mindustry/world/blocks/units/RepairPoint.java +++ b/core/src/mindustry/world/blocks/units/RepairPoint.java @@ -102,8 +102,8 @@ public class RepairPoint extends Block{ if(target != null && (target.dead() || target.dst(tile) - target.hitSize/2f > repairRadius || target.health() >= target.maxHealth())){ target = null; }else if(target != null && consValid()){ - target.heal(repairSpeed * Time.delta * strength * efficiency()); - rotation = Mathf.slerpDelta(rotation, angleTo(target), 0.5f); + target.heal(repairSpeed * strength * edelta()); + rotation = Mathf.slerpDelta(rotation, angleTo(target), 0.5f * efficiency() * timeScale); targetIsBeingRepaired = true; }