diff --git a/assets/bundles/bundle.properties b/assets/bundles/bundle.properties index cd4ed1f..549198a 100644 --- a/assets/bundles/bundle.properties +++ b/assets/bundles/bundle.properties @@ -39,8 +39,10 @@ setting.uiopacity.description = set opacityof ui background by slider. setting.scan.name = Enable block scanner setting.scan.description = enable scanner that shows nearly turret and wall hp. -setting.range.name = Display turret range -setting.range.description = enable scanner can show turret range too. +setting.rangeNearby.name = Display near range +setting.rangeNearby.description = display range circle when you approached enemy ranges. +setting.rangeRadius.name = Near range margin +setting.rangeRadius.description = set additional distances to show range. setting.rangemax.name = Block scanner range setting.rangemax.description = set scan radius of scanner\ntype number to tap pencil button. diff --git a/assets/bundles/bundle_ko.properties b/assets/bundles/bundle_ko.properties index 7502d71..c440236 100644 --- a/assets/bundles/bundle_ko.properties +++ b/assets/bundles/bundle_ko.properties @@ -33,8 +33,10 @@ setting.wavemax.description = 연필 아이콘을 눌러서 인게임 단계 탭 setting.scan.name = 블록 스캐너 활성화 setting.scan.description = 주변 포탑과 벽의 체력을 표시하는 스캐터를 활성화합니다. -setting.range.name = 포탑 사거리 표시 -setting.range.description = 스캐터가 포탑 사거리도 표시하게 만듭니다. +setting.rangeNearby.name = 주변 사거리 표시 +setting.rangeNearby.description = 적 사거리에 접근했을 경우 사거리를 표시합니다. +setting.rangeRadius.name = 사거리 접근 거리 +setting.rangeRadius.description = 사거리를 표시할 추가 거리를 설정합니다. setting.rangemax.name = 블록 스캐너 사거리 setting.rangemax.description = 연필 아이콘을 눌러서 스캐너 사거리를 설정합니다. diff --git a/src/UnitInfo/core/Main.java b/src/UnitInfo/core/Main.java index 3d6c60f..f08412e 100644 --- a/src/UnitInfo/core/Main.java +++ b/src/UnitInfo/core/Main.java @@ -9,8 +9,10 @@ import arc.graphics.g2d.Fill; import arc.graphics.g2d.Lines; import arc.math.Angles; import arc.math.Mathf; +import arc.math.geom.Position; import arc.scene.ui.layout.Scl; import arc.util.Align; +import arc.util.Log; import arc.util.Time; import arc.util.Tmp; import mindustry.Vars; @@ -18,8 +20,11 @@ import mindustry.content.Fx; import mindustry.game.EventType.*; import mindustry.game.Team; import mindustry.gen.Groups; +import mindustry.gen.Teamc; +import mindustry.graphics.Drawf; import mindustry.graphics.Layer; import mindustry.graphics.Pal; +import mindustry.logic.Ranged; import mindustry.mod.Mod; import mindustry.ui.Fonts; import mindustry.world.Block; @@ -90,9 +95,9 @@ public class Main extends Mod { Lines.swirl(Core.input.mouseWorldX(), Core.input.mouseWorldY(), range, 0.15f, 90 + Time.time % 360); Lines.swirl(Core.input.mouseWorldX(), Core.input.mouseWorldY(), range, 0.15f, 180 + Time.time % 360); Lines.swirl(Core.input.mouseWorldX(), Core.input.mouseWorldY(), range, 0.15f, 270 + Time.time % 360); - Draw.reset(); } + if(!mobile && !Vars.state.isPaused() && settings.getBool("gaycursor")) Fx.mine.at(Core.input.mouseWorldX(), Core.input.mouseWorldY(), Tmp.c2.set(Color.red).shiftHue(Time.time * 1.5f)); @@ -103,6 +108,13 @@ public class Main extends Mod { Pal.accent, 0.25f * unit.itemTime / Scl.scl(1f), false, Align.center); Draw.reset(); }); + + if(settings.getBool("rangeNearby")) Groups.all.each(entityc -> entityc instanceof Ranged && player != null && player.team() != ((Ranged) entityc).team(), entityc -> { + float range = ((Ranged) entityc).range(); + float margin = settings.getInt("rangeRadius") * tilesize; + if(Vars.player.dst((Position) entityc) <= range + margin) + Drawf.dashCircle(((Ranged) entityc).x(), ((Ranged) entityc).y(), range, ((Ranged) entityc).team().color); + }); }); } diff --git a/src/UnitInfo/core/Setting.java b/src/UnitInfo/core/Setting.java index fc75c32..6c12d94 100644 --- a/src/UnitInfo/core/Setting.java +++ b/src/UnitInfo/core/Setting.java @@ -274,7 +274,8 @@ public class Setting { Seq scanSeq = new Seq<>(); addGraphicCheckSetting("scan", false, scanSeq); - addGraphicCheckSetting("range", false, scanSeq); + addGraphicCheckSetting("rangeNearby", true, scanSeq); + addGraphicSlideSetting("rangeRadius", 5, 0, 20, 1, s -> s + "tiles", scanSeq); addGraphicTypeSetting("rangemax", 10, "@editrange","@invalid", 100, scanSeq); addGraphicDialogSetting("wavesetting", scanSeq, scanTable);