diff --git a/core/src/mindustry/ai/BlockIndexer.java b/core/src/mindustry/ai/BlockIndexer.java index 28e387aceb..0372ca459e 100644 --- a/core/src/mindustry/ai/BlockIndexer.java +++ b/core/src/mindustry/ai/BlockIndexer.java @@ -356,7 +356,7 @@ public class BlockIndexer{ if(enemy == team || (enemy == Team.derelict && !state.rules.coreCapture)) continue; Building candidate = indexer.findTile(enemy, x, y, range, pred, true); - if(candidate == null) continue; + if(candidate == null || !candidate.isDiscovered(team)) continue; //if a block has the same priority, the closer one should be targeted float dist = candidate.dst(x, y) - candidate.hitSize() / 2f; diff --git a/core/src/mindustry/entities/comp/BuildingComp.java b/core/src/mindustry/entities/comp/BuildingComp.java index 5ede75ac5a..287ee21ac9 100644 --- a/core/src/mindustry/entities/comp/BuildingComp.java +++ b/core/src/mindustry/entities/comp/BuildingComp.java @@ -271,6 +271,19 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, //endregion //region utility methods + public boolean isDiscovered(Team viewer){ + if(block.size <= 2){ + return fogControl.isDiscovered(viewer, tile.x, tile.y); + }else{ + int s = block.size / 2; + return fogControl.isDiscovered(viewer, tile.x, tile.y) || + fogControl.isDiscovered(viewer, tile.x - s, tile.y - s) || + fogControl.isDiscovered(viewer, tile.x - s, tile.y + s) || + fogControl.isDiscovered(viewer, tile.x + s, tile.y + s) || + fogControl.isDiscovered(viewer, tile.x + s, tile.y - s); + } + } + public void addPlan(boolean checkPrevious){ addPlan(checkPrevious, false); } diff --git a/core/src/mindustry/world/blocks/defense/turrets/BaseTurret.java b/core/src/mindustry/world/blocks/defense/turrets/BaseTurret.java index 8e9c117406..a7e69007e4 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/BaseTurret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/BaseTurret.java @@ -63,6 +63,10 @@ public class BaseTurret extends Block{ super.drawPlace(x, y, rotation, valid); Drawf.dashCircle(x * tilesize + offset, y * tilesize + offset, range, Pal.placing); + + if(fogRadiusMultiuplier < 0.99f && state.rules.fog){ + Drawf.dashCircle(x * tilesize + offset, y * tilesize + offset, range * fogRadiusMultiuplier, Pal.lightishGray); + } } @Override diff --git a/gradle.properties b/gradle.properties index 2c5768409d..443cbf281e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -25,4 +25,4 @@ org.gradle.caching=true #used for slow jitpack builds; TODO see if this actually works org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.connectionTimeout=100000 -archash=8793e01874 +archash=5a1cbb8b59