From 3ebdb5309e8b2ccbb01a9725d3d9710a644fcb1d Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 13 Feb 2022 21:02:33 -0500 Subject: [PATCH] Placement range check rule implemented --- core/assets/bundles/bundle.properties | 1 + core/src/mindustry/graphics/Drawf.java | 2 +- core/src/mindustry/input/DesktopInput.java | 2 +- core/src/mindustry/ui/dialogs/CustomRulesDialog.java | 1 + .../src/mindustry/world/blocks/defense/turrets/BaseTurret.java | 3 ++- 5 files changed, 6 insertions(+), 3 deletions(-) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 74cc3ee417..aa71685ccf 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -1061,6 +1061,7 @@ rules.aitier = AI Tier rules.cleanupdeadteams = Clean Up Defeated Team Buildings (PvP) rules.corecapture = Capture Core On Destruction rules.polygoncoreprotection = Polygonal Core Protection +rules.placerangecheck = Placement Range Check rules.enemyCheat = Infinite AI (Red Team) Resources rules.blockhealthmultiplier = Block Health Multiplier rules.blockdamagemultiplier = Block Damage Multiplier diff --git a/core/src/mindustry/graphics/Drawf.java b/core/src/mindustry/graphics/Drawf.java index 3bb9a345aa..d6483b60e3 100644 --- a/core/src/mindustry/graphics/Drawf.java +++ b/core/src/mindustry/graphics/Drawf.java @@ -119,7 +119,7 @@ public class Drawf{ } public static void dashLineDst(Color color, float x, float y, float x2, float y2){ - dashLine(color, x, y, x2, y2, (int)(Mathf.dst(x, y, x2, y2) / tilesize * 2)); + dashLine(color, x, y, x2, y2, (int)(Mathf.dst(x, y, x2, y2) / tilesize)); } public static void dashLine(Color color, float x, float y, float x2, float y2){ diff --git a/core/src/mindustry/input/DesktopInput.java b/core/src/mindustry/input/DesktopInput.java index 2c5942a30a..1dca223a35 100644 --- a/core/src/mindustry/input/DesktopInput.java +++ b/core/src/mindustry/input/DesktopInput.java @@ -234,7 +234,7 @@ public class DesktopInput extends InputHandler{ if(!valid && state.rules.placeRangeCheck){ var blocker = Build.getEnemyOverlap(block, player.team(), cursorX, cursorY); if(blocker != null){ - Drawf.selected(blocker, blocker.team.color); + 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, diff --git a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java index b4b07906f2..7d9b3810e7 100644 --- a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java +++ b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java @@ -185,6 +185,7 @@ public class CustomRulesDialog extends BaseDialog{ check("@rules.attack", b -> rules.attackMode = b, () -> rules.attackMode); check("@rules.buildai", b -> rules.teams.get(rules.waveTeam).ai = rules.teams.get(rules.waveTeam).infiniteResources = b, () -> rules.teams.get(rules.waveTeam).ai); check("@rules.corecapture", b -> rules.coreCapture = b, () -> rules.coreCapture); + check("@rules.placerangecheck", b -> rules.placeRangeCheck = b, () -> rules.placeRangeCheck); check("@rules.polygoncoreprotection", b -> rules.polygonCoreProtection = b, () -> rules.polygonCoreProtection); number("@rules.enemycorebuildradius", f -> rules.enemyCoreBuildRadius = f * tilesize, () -> Math.min(rules.enemyCoreBuildRadius / tilesize, 200), () -> !rules.polygonCoreProtection); diff --git a/core/src/mindustry/world/blocks/defense/turrets/BaseTurret.java b/core/src/mindustry/world/blocks/defense/turrets/BaseTurret.java index a4bffba45b..1ad3ac4a15 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/BaseTurret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/BaseTurret.java @@ -16,6 +16,7 @@ import static mindustry.Vars.*; public class BaseTurret extends Block{ public float range = 80f; + public float placeOverlapMargin = 8 * 6f; public float rotateSpeed = 5; public float coolantUsage = 0.2f; @@ -45,7 +46,7 @@ public class BaseTurret extends Block{ consumes.add(coolantOverride != null ? new ConsumeLiquid(coolantOverride, coolantUsage) : new ConsumeCoolant(coolantUsage)).update(false).boost(); } - placeOverlapRange = Math.max(placeOverlapRange, range); + placeOverlapRange = Math.max(placeOverlapRange, range + placeOverlapMargin); super.init(); }