near range

This commit is contained in:
Sharlotte
2021-07-22 16:44:22 +09:00
parent 3d3ca3cfe1
commit 7856672eea
4 changed files with 23 additions and 6 deletions

View File

@@ -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.

View File

@@ -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 = 연필 아이콘을 눌러서 스캐너 사거리를 설정합니다.

View File

@@ -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);
});
});
}

View File

@@ -274,7 +274,8 @@ public class Setting {
Seq<SettingsMenuDialog.SettingsTable.Setting> 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);