From e59e3d82a259a5ff833f81d7a39902e715e10578 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 13 Feb 2022 23:07:45 -0500 Subject: [PATCH] Misc bugfixes --- core/src/mindustry/content/UnitTypes.java | 4 ++-- core/src/mindustry/input/DesktopInput.java | 14 +------------- core/src/mindustry/input/InputHandler.java | 16 ++++++++++++++++ core/src/mindustry/input/MobileInput.java | 6 +++++- 4 files changed, 24 insertions(+), 16 deletions(-) diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index 8b55e3c24c..09c9d89ccb 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -3039,7 +3039,7 @@ public class UnitTypes{ unitSpawned = new MissileUnitType("disrupt-missile"){{ speed = 4.5f; - maxRange = 80f; + maxRange = 5f; outlineColor = Pal.darkOutline; health = 70; homingDelay = 10f; @@ -3072,7 +3072,7 @@ public class UnitTypes{ mirror = false; reload = 1f; shootOnDeath = true; - bullet = new ExplosionBulletType(145f, 25f){{ + bullet = new ExplosionBulletType(120f, 25f){{ suppressionRange = 140f; shootEffect = new ExplosionEffect(){{ lifetime = 50f; diff --git a/core/src/mindustry/input/DesktopInput.java b/core/src/mindustry/input/DesktopInput.java index 1dca223a35..1e0745ed26 100644 --- a/core/src/mindustry/input/DesktopInput.java +++ b/core/src/mindustry/input/DesktopInput.java @@ -231,19 +231,7 @@ public class DesktopInput extends InputHandler{ Draw.reset(); } - if(!valid && state.rules.placeRangeCheck){ - var blocker = Build.getEnemyOverlap(block, player.team(), cursorX, cursorY); - if(blocker != null){ - Drawf.selected(blocker, Pal.remove); - Tmp.v1.set(cursorX, cursorY).scl(tilesize).add(block.offset, block.offset).sub(blocker).scl(-1f).nor(); - Drawf.dashLineDst(Pal.remove, - cursorX * tilesize + block.offset + Tmp.v1.x * block.size * tilesize/2f, - cursorY * tilesize + block.offset + Tmp.v1.y * block.size * tilesize/2f, - blocker.x + Tmp.v1.x * -blocker.block.size * tilesize/2f, - blocker.y + Tmp.v1.y * -blocker.block.size * tilesize/2f - ); - } - } + drawOverlapCheck(block, cursorX, cursorY, valid); } } diff --git a/core/src/mindustry/input/InputHandler.java b/core/src/mindustry/input/InputHandler.java index e8d484a1bf..b91c6998c8 100644 --- a/core/src/mindustry/input/InputHandler.java +++ b/core/src/mindustry/input/InputHandler.java @@ -719,6 +719,22 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ } } + public void drawOverlapCheck(Block block, int cursorX, int cursorY, boolean valid){ + if(!valid && state.rules.placeRangeCheck){ + var blocker = Build.getEnemyOverlap(block, player.team(), cursorX, cursorY); + if(blocker != null){ + Drawf.selected(blocker, Pal.remove); + Tmp.v1.set(cursorX, cursorY).scl(tilesize).add(block.offset, block.offset).sub(blocker).scl(-1f).nor(); + Drawf.dashLineDst(Pal.remove, + cursorX * tilesize + block.offset + Tmp.v1.x * block.size * tilesize/2f, + cursorY * tilesize + block.offset + Tmp.v1.y * block.size * tilesize/2f, + blocker.x + Tmp.v1.x * -blocker.block.size * tilesize/2f, + blocker.y + Tmp.v1.y * -blocker.block.size * tilesize/2f + ); + } + } + } + public boolean requestMatches(BuildPlan request){ Tile tile = world.tile(request.x, request.y); return tile != null && tile.build instanceof ConstructBuild cons && cons.current == request.block; diff --git a/core/src/mindustry/input/MobileInput.java b/core/src/mindustry/input/MobileInput.java index dae619f04c..d4cc19c091 100644 --- a/core/src/mindustry/input/MobileInput.java +++ b/core/src/mindustry/input/MobileInput.java @@ -374,8 +374,12 @@ public class MobileInput extends InputHandler implements GestureListener{ //draw last placed request if(!request.breaking && request == lastPlaced && request.block != null && request.block.drawArrow){ + boolean valid = validPlace(tile.x, tile.y, request.block, rotation); Draw.mixcol(); - request.block.drawPlace(tile.x, tile.y, rotation, validPlace(tile.x, tile.y, request.block, rotation)); + request.block.drawPlace(tile.x, tile.y, rotation, valid); + + drawOverlapCheck(request.block, tile.x, tile.y, valid); + } }