diff --git a/assets/bundles/bundle.properties b/assets/bundles/bundle.properties index ac37513..d05a15a 100644 --- a/assets/bundles/bundle.properties +++ b/assets/bundles/bundle.properties @@ -7,14 +7,12 @@ shar-stat.power = Power: {0}/{1} shar-stat.powerIn = InPower: {0}/s shar-stat.powerOut = OutPower: {0}/s shar-stat.ammos = Ammo: {0}/{1} -shar-stat.commandUnits = Commands: {0}/{1} shar-stat.reload = Reload: {0}% shar-stat.progress = Progress: {0}% shar-stat.attr = Attribute: x{0} shar-stat-waveAmount = [lightgray]Enemy Amount:[] {0} shar-stat-waveShield = [lightgray]Shield:[] {0} shar-stat.waveStatus = [lightgray]Status:[] -shar-stat.waveItem = [lightgray]Item:[] #Settings setting.barstyle.name = Unit UI: Change Bar Style @@ -28,11 +26,6 @@ setting.emptywave.description = Displays empty waves in the wave list. setting.schem.name = Display Schematic HUD setting.schem.description = Displays schem hud on right-side, which helps quick select. -setting.aliceRange.name = Display Alice Range -setting.aliceRange.description = Displays alice turret range too. -setting.RangeShader.name = Enable Animation -setting.RangeShader.description = Activate easy-to-see animations in return for large frame drops. - setting.selectopacity.name = Select Arrow Opacity setting.selectopacity.description = Sets the opacity of selection arrow. setting.baropacity.name = Health Bar Opacity @@ -44,20 +37,32 @@ setting.powerNode.name = enable Power Node setting.powerNode.description = display power node link lines setting.massDriver.name = enable Mass Driver setting.massDriver.description = display mass driver link lines -setting.airRange.name = enable air range -setting.airRange.description = display turret range that can target air units -setting.groundRange.name = enable ground range -setting.groundRange.description = display turret range that can target ground units + +setting.blockRange.name = Display Block Range +setting.blockRange.description = Displays every available turrets range +setting.unitRange.name = Display Unit Range +setting.unitRange.description = Displays every available units range +setting.invalidRange.name = Display Invalid Range +setting.invalidRange.description = Displays every available units range +setting.airRange.name = Display Air range +setting.airRange.description = display every available turrets/units which can target air units +setting.groundRange.name = Display Ground range +setting.groundRange.description = display every available turrets/units which can target ground units or blocks +setting.aliceRange.name = Display Alice Range +setting.aliceRange.description = Displays alice turret/unit range +setting.RangeShader.name = Enable Animation +setting.RangeShader.description = Use animation shader for make it ease to see + setting.pathLine.name = enable Path Line setting.pathLine.description = display wave ground unit's ai path lineline setting.logicLine.name = enable Logic Line setting.logicLine.description = display lines between logic processor and controlled units setting.unitLine.name = enable Unit Line -setting.unitLine.description = display ai path each ground units +setting.unitLine.description = display ai path each ground unit setting.unitItem.name = enable Unit Item -setting.unitItem.description = display item amount under each units +setting.unitItem.description = display item amount under each unit setting.unitBar.name = enable Unit Bar -setting.unitBar.description = display health bar under each units +setting.unitBar.description = display health bar under each unit setting.autoShooting.name = Enable Auto Shooting setting.autoShooting.description = no don't do hack diff --git a/assets/bundles/bundle_ko.properties b/assets/bundles/bundle_ko.properties index 0d16564..1b64d47 100644 --- a/assets/bundles/bundle_ko.properties +++ b/assets/bundles/bundle_ko.properties @@ -2,108 +2,105 @@ shar-stat.health = 체력: {0} shar-stat.shield = 방어막: {0} shar-stat.payloadCapacity = 화물: {0}²/{1}² +shar-stat.capacity = {0}: {1}/{2} shar-stat.power = 전력: {0}/{1} shar-stat.powerIn = 전력 생산량: {0}/s shar-stat.powerOut = 전력 소모량: {0}/s shar-stat.ammos = 탄약: {0}/{1} -shar-stat.commandUnits = 지휘 유닛: {0}/{1} shar-stat.reload = 재장전: {0}% shar-stat.progress = 진행도: {0}% shar-stat.attr = 친화력: x{0} shar-stat-waveAmount = [lightgray]유닛 수:[] {0} shar-stat-waveShield = [lightgray]방어막:[] {0} shar-stat.waveStatus = [lightgray]상태이상:[] -shar-stat.waveItem = [lightgray]아이템:[] # Settings setting.barstyle.name = 바 스타일 변경 setting.barstyle.description = 유닛 탭의 바 스프라이트를 바꿉니다. -setting.infoUiScale.name = 정보 UI 스케일링 -setting.infoUiScale.description = 좌측 정보 UI의 크기를 설정합니다. -setting.coreItemCheckRate.name = 자원 탭: 업데이트 주기 -setting.coreItemCheckRate.description = 코어 자원을 확인하는 주기를 설정합니다. 더 느릴수록 기기 부하가 줄어듭니다. setting.wavemax.name = 표시할 단계 수 setting.wavemax.description = 단계 탭에서 표시할 웨이브 수 제한을 설정합니다. -setting.infoui.name = 정보 UI 표시 -setting.infoui.description = 좌측 탭 UI를 표시합니다. 비활성 시 관련된 모든 업데이트가 중지됩니다. setting.pastwave.name = 이전 단계 표시 setting.pastwave.description = 단계 탭에서 이전 단계를 표시합니다. 현재 단계는 빨간색으로 강조됩니다. setting.emptywave.name = 빈 단계 표시 setting.emptywave.description = 단계 탭에서 빈 단계를 표시합니다. -setting.itemcal.name = 자원 탭: 입출력 속도 계산 -setting.itemcal.description = 아이템의 증가/감소 속도를 계산하여 표시합니다. setting.schem.name = 설계도 HUD 표시 setting.schem.description = 빠른 설계도 선택을 보조해주는 설계도 HUD를 화면 우측에 표시합니다. -setting.rangeRadius.name = 사거리 접근 거리 -setting.rangeRadius.description = 사거리 감지 거리를 설정합니다. -setting.rangeNearby.name = 자동 사거리 표시 -setting.rangeNearby.description = 자동 사거리 표시 기능을 활성화합니다. 적 사거리에 일정 거리만큼 접근하면 사거리를 미리 표시합니다. -setting.allTargetRange.name = 모든 목표물 사거리 표시 -setting.allTargetRange.description = 모든 사거리를 표시합니다. 자신을 조준할 수 없는 대상의 사거리는 회색으로 보여집니다. -setting.aliceRange.name = 아군 사거리 표시 -setting.aliceRange.description = 아군 사거리도 표시합니다. -setting.RangeShader.name = 에니매이션 활성화 -setting.RangeShader.description = 큰 프레임 드랍을 대가로 보기 편한 에니메이션을 활성화합니다. - setting.selectopacity.name = 선택 화살표 투명도 setting.selectopacity.description = 선택 화살표의 투명도를 조절합니다. setting.baropacity.name = 유닛 바 투명도 setting.baropacity.description = 유닛 바의 투명도를 조절합니다. -setting.uiopacity.name = UI 배경 투명도 -setting.uiopacity.description = UI 배경 투명도를 조절합니다. -setting.softRangeOpacity.name = 포탑 사거리 투명도 -setting.softRangeOpacity.description = 포탑 사거리의 투명도를 조절합니다. -setting.pathlinelimit.name = 단계 경로선 제한 -setting.pathlinelimit.description = 다수의 선들은 기기 부하를 크게 일으킵니다.\n기기 환경에 맞추어 조절해야 합니다. -setting.unitlinelimit.name = 유닛 경로선 제한 -setting.unitlinelimit.description = 다수의 선들은 기기 부하를 크게 일으킵니다.\n기기 환경에 맞추어 조절해야 합니다. -setting.logiclinelimit.name = 로직선 제한 -setting.logiclinelimit.description = 다수의 선들은 기기 부하를 크게 일으킵니다.\n기기 환경에 맞추어 조절해야 합니다. -setting.spawnarrowlimit.name = 단계 화살표 제한 -setting.spawnarrowlimit.description = 다수의 화살표들은 기기 부하를 크게 일으킵니다.\n기기 환경에 맞추어 조절해야 합니다. -setting.gaycursor.name = 마우스 꼬리효과 -setting.gaycursor.description = 마우스 커서에 무지개 효과를 생성합니다. -setting.unithealthui.name = 유닛 바 표시 -setting.unithealthui.description = 각 유닛의 체력, 탄약, 방어막, 상태이상, 화물에 대해서 간략하게 표시합니다. -setting.blockfont.name = 블록 정보 표시 -setting.blockfont.description = 각 블록의 체력, 보호막, 재장전 등에 대해서 숫자로 표시합니다. -setting.linkedMass.name = 매스 드라이버 연결선 표시 -setting.linkedMass.description = 선택한 매스 드라이버와 연결된 매스 드라이버들을 선으로 이어서 표시합니다. -setting.linkedNode.name = 노드 연결선 표시 -setting.linkedNode.description = 선택한 블록과 전기적으로 연결된 블록들을 선으로 이어서 표시합니다. -setting.select.name = 선택 화살표 표시 -setting.select.description = 어떤 유닛이나 블록을 선택했는지 표시합니다. -setting.deadTarget.name = 고정 목표물이 죽더라도 계속 고정하기 -setting.deadTarget.description = 고정 목표물이 죽어도 그 좌표와 대상 정보를 계속 표시합니다. -setting.distanceLine.name = 목표물과의 거리선 표시 -setting.distanceLine.description = 목표물과 어느정도나 멀어졌는지 점선과 숫자로 표시합니다. +setting.blockStatus.name = 블록 상태 표시 +setting.blockStatus.description = 블록 왼쪽아래에 상태를 표시합니다. +setting.powerNode.name = 노드 연결선 표시 +setting.powerNode.description = 선택한 블록과 전기적으로 연결된 블록들을 선으로 이어서 표시합니다. +setting.massDriver.name = 매스 드라이버 연결선 표시 +setting.massDriver.description = 선택한 매스 드라이버와 연결된 매스 드라이버들을 선으로 이어서 표시합니다. + +setting.blockRange.name = 블록 사거리 표시 +setting.blockRange.description = 가능한 모든 포탑 사거리를 표시합니다 +setting.unitRange.name = 유닛 사거리 표시 +setting.unitRange.description = 가능한 모든 유닛 사거리를 표시합니다 +setting.invalidRange.name = 유효하지 않은 사거리 표시 +setting.invalidRange.description = 여러가지 이유로 공격할 수 없어 유효하지 않은 모든 사거리를 표시합니다 +setting.airRange.name = 공중 사거리 표시 +setting.airRange.description = 공중 유닛을 공격할 수 있는 가능한 모든 포탑/유닛 사거리를 표시합니다 +setting.groundRange.name = 지상 사거리 표시 +setting.groundRange.description = 지상 유닛을 공격할 수 있는 가능한 모든 포탑/유닛 사거리를 표시합니다 +setting.aliceRange.name = 아군 사거리 표시 +setting.aliceRange.description = 가능한 모든 아군 포탑/유닛 사거리를 표시합니다 +setting.RangeShader.name = 애니메이션 활성화 +setting.RangeShader.description = 사거리를 더 쉽게 보기 위한 애니메이션 쉐이더를 활성화합니다. 비활성화 시 점선이 표시됩니다. + +setting.pathLine.name = 단계 길 표시 +setting.pathLine.description = 단계 지상/해상 유닛들의 ai 길찾기를 가시화합니다. +setting.logicLine.name = 로직 조종선 표시 +setting.logicLine.description = 프로세서와 조종중인 유닛의 관계를 가시화합니다. +setting.unitLine.name = 유닛 길 표시 +setting.unitLine.description = 지상/해상 유닛들의 AI 길찾기를 가시화합니다. 단계 길보다 더 정확합니다. +setting.unitItem.name = = 유닛 아이템 표시 +setting.unitItem.description = 유닛이 들고 있는 아이템의 수량을 표시합니다. +setting.unitBar.name = 유닛 바 표시 +setting.unitBar.description = 각 유닛의 체력, 탄약, 방어막, 상태이상, 화물에 대해서 간략하게 표시합니다. +setting.autoShooting.name = 자동 사격 활성화 +setting.autoShooting.description = 데스크톱에서 모바일의 자동 사격을 사용할 수 있게 됩니다. + setting.spawnerarrow.name = 스폰포인트 화살표 setting.spawnerarrow.description = 적 단계 생성지점을 가르키는 화살표를 표시합니다. +setting.select.name = 선택 화살표 표시 +setting.select.description = 어떤 유닛이나 블록을 선택했는지 표시합니다. +setting.distanceLine.name = 목표물과의 거리선 표시 +setting.distanceLine.description = 목표물과 어느정도나 멀어졌는지 점선과 숫자로 표시합니다. setting.elementdebug.name = UI 디버깅 setting.elementdebug.description = 모든 UI 요소의 외곽선을 표시합니다. setting.hiddenElem.name = 숨겨진 요소 표시 setting.hiddenElem.description = 숨겨진 요소의 외곽선도 표시합니다. -setting.autoShooting.name = 자동 사격 활성화 -setting.autoShooting.description = - setting.shar-title = Informatis 설정 setting.shar-ui = 정보UI 설정 -setting.shar-range = 자동 사거리 설정 -setting.shar-opacity = 투명도 설정 setting.shar-draw = 덧그리기 설정 -setting.shar-etc = 기타 #UI -mode.custom.name = ?? +mode.custom.name = 사용자 지정 #Hud -hud.unit = 유닛 정보 -hud.wave = 단계 정보 -hud.item = 자원 정보 -hud.cancel = 닫음 +hud.schematic-list = 설계도 퀵슬롯 + +#Window +window.unit.name = 유닛 디스플레이 +window.wave.name = 단계 디스플레이 +window.core.name = 코어 디스플레이 +window.player.name = 플레이어 디스플레이 +window.tool.name = 도구 디스플레이 [red](WIP)[] +window.editor.name = 맵 편집 디스플레이 [red](WIP)[] + +#Other +default-bar = 기본 바 +th-bar = 번째 바 +empty = [lightgray][] +none = +tiles = 타일 #Mod shar-description = 여러가지 다양한 정보들을 인게임에서 보여주는 다기능 정보 모드.\n\n[#AE00FB]인게임 UI:[] 좌측 탭에 위치했으며 커서를 통한 유닛/건물이나 단계 목록, 코어, 자원 정보를 알려줍니다.\n\n[#B5FFD9]유닛/건물 정보:[] 커서로 유닛이나 건물의 정보를 표시합니다.\n\n[#B5FFD9]단계 정보:[] 유닛 종류와 수, 보스 유무를 목록에 담아 보여줍니다. 클릭해서 유닛 정보도 열람할 수 있습니다.\n\n[#B5FFD9]코어 정보:[] 각 팀의 코어 위치와 체력을 보여줍니다. 클릭해서 카메라 위치를 변경할 수 있습니다.\n\n[#B5FFD9]타일 정보:[] 커서 위치의 블록/타일/광물 아이콘과 좌표를 보여줍니다. 남은 단계 유닛도 보여줍니다.\n\n[#B5FFD9]자원 정보:[] 각 팀의 현재 자원(증감치)와 유닛 수를 보여줍니다.\n\n\n[#AE00FB]인게임 그리기:[] 각 유닛이나 블록같은 특정 위치에 여러가지 정보를 덧그립니다.\n\n[#B5FFD9]블록 스캐너:[] 커서 주변의 포탑과 벽의 사거리와 체력을 바로 표시합니다.\n\n[#B5FFD9]유닛 바:[] 각 팀의 유닛의 탄약, 방어막, 체력을 바로 보여줍니다.\n\n[#B5FFD9]포탑 사거리:[] 포탑 사거리를 표시합니다.\n\n[#B5FFD9]전선 연결 표시:[] 커서에 있는 블록과 전력으로 연결된 다른 블록들을 초록색 전선으로 이어서 그립니다.\n\n[#B5FFD9]매스 연결 표시:[] 커서에 있는 드라이버와 연결된 다른 드라이버들을 선으로 이어서 그립니다. diff --git a/src/informatis/core/OverDrawer.java b/src/informatis/core/OverDrawer.java index c1f5c6c..07c7d07 100644 --- a/src/informatis/core/OverDrawer.java +++ b/src/informatis/core/OverDrawer.java @@ -38,6 +38,7 @@ public class OverDrawer { float rot = i * 90f + 45f + (-Time.time) % 360f; Draw.rect("select-arrow", target.x() + Angles.trnsx(rot, length), target.y() + Angles.trnsy(rot, length), length / 1.9f, length / 1.9f, rot - 135f); } + Draw.color(); } if(settings.getBool("distanceLine")) { @@ -65,6 +66,7 @@ public class OverDrawer { //global drawing, which needs camera-clipping Core.camera.bounds(Tmp.r1); for(OverDraw drawer : OverDraws.all) drawer.draw(); + Draw.reset(); }); } } diff --git a/src/informatis/ui/draws/OverDraw.java b/src/informatis/ui/draws/OverDraw.java index ef3e0d6..1e55e31 100644 --- a/src/informatis/ui/draws/OverDraw.java +++ b/src/informatis/ui/draws/OverDraw.java @@ -25,8 +25,12 @@ public class OverDraw { public void displayStats(Table parent) { if(options.isEmpty()) return; parent.background(Styles.squarei.up); - - options.each(name-> parent.check(bundle.get("setting."+name+".name"), settings.getBool(name), b->settings.put(name, b)).tooltip(t->t.background(Styles.black8).add(bundle.get("setting."+name+".description"))).disabled(!enabled).row()); + parent.left(); + options.each(name-> parent + .check(bundle.get("setting."+name+".name"), settings.getBool(name), b->settings.put(name, b)) + .tooltip(t->t.background(Styles.black8).add(bundle.get("setting."+name+".description"))) + .disabled(!enabled) + .left().row()); } public void draw() {} diff --git a/src/informatis/ui/draws/RangeDraw.java b/src/informatis/ui/draws/RangeDraw.java index 11761ab..d5bc9f7 100644 --- a/src/informatis/ui/draws/RangeDraw.java +++ b/src/informatis/ui/draws/RangeDraw.java @@ -8,6 +8,7 @@ import mindustry.Vars; import mindustry.game.Team; import mindustry.gen.*; import mindustry.graphics.Drawf; +import mindustry.graphics.Pal; import mindustry.type.Weapon; import mindustry.world.blocks.defense.turrets.*; @@ -24,6 +25,7 @@ public class RangeDraw extends OverDraw { registerOption("blockRange"); registerOption("unitRange"); registerOption("aliceRange"); + registerOption("invalidRange"); registerOption("airRange"); registerOption("groundRange"); } @@ -44,6 +46,7 @@ public class RangeDraw extends OverDraw { boolean includeBlock = settings.getBool("blockRange"), includeUnit = settings.getBool("unitRange"), + includeInvalid = settings.getBool("invalidRange"), includeAir = settings.getBool("airRange"), isAir = target == null || target.isFlying(), includeGround = settings.getBool("groundRange"), isGround = target == null || !target.isFlying(), includeAlice = settings.getBool("aliceRange"), @@ -59,7 +62,7 @@ public class RangeDraw extends OverDraw { if(includeBlock) { for(Building building : Groups.build) { if(!((includeAlice || player.team() != building.team) - && building instanceof BaseTurret.BaseTurretBuild turret && isInCamera(building.x, building.y, turret.range()))) continue; + && building instanceof BaseTurret.BaseTurretBuild turret && isInCamera(building.x, building.y, turret.range() * 2))) continue; boolean valid = false; if (building instanceof Turret.TurretBuild turretBuild) { @@ -76,6 +79,8 @@ public class RangeDraw extends OverDraw { && tractorBeamBuild.canConsume()) valid = true; } + if(!includeInvalid && !valid) continue; + //non-base teams are considered as crux int index = valid ? building.team.id > 5 ? 2 : building.team.id : 0; float range = turret.range(); @@ -84,12 +89,13 @@ public class RangeDraw extends OverDraw { Draw.z(166+(Team.baseTeams.length-index)*3); Fill.poly(building.x, building.y, Lines.circleVertices(range), range); } else Drawf.dashCircle(building.x, building.y, range, Team.baseTeams[index].color); + Draw.reset(); } } if(includeUnit) { for(Unit unit : Groups.unit) { - if(!((includeAlice || player.team() != unit.team) && isInCamera(unit.x, unit.y, unit.range()))) continue; + if(!((includeAlice || player.team() != unit.team) && isInCamera(unit.x, unit.y, unit.range() * 2))) continue; boolean valid = false; if (target == null) valid = true; @@ -98,14 +104,17 @@ public class RangeDraw extends OverDraw { || (unit.type.targetGround && isGround && includeGround)) && unit.canShoot()) valid = true; + if(!includeInvalid && !valid) continue; + //non-base teams are considered as crux int index = valid ? unit.team.id > 5 ? 2 : unit.team.id : 0; float range = unit.range(); - Draw.color(Team.baseTeams[index].color); + Draw.color(Team.baseTeams[index].color.cpy().shiftSaturation(0.25f)); if (shader) { Draw.z(166 + (Team.baseTeams.length - index) * 3); Fill.poly(unit.x, unit.y, Lines.circleVertices(range), range); } else Drawf.dashCircle(unit.x, unit.y, range, Team.baseTeams[index].color); + Draw.color(); } } } diff --git a/src/informatis/ui/windows/ToolWindow.java b/src/informatis/ui/windows/ToolWindow.java index b277742..c408d69 100644 --- a/src/informatis/ui/windows/ToolWindow.java +++ b/src/informatis/ui/windows/ToolWindow.java @@ -61,8 +61,8 @@ public class ToolWindow extends Window implements Updatable { if(selected==null) return; tool.top(); tool.table(Tex.underline2, label->label.add(selected.name).color(Pal.accent)).row(); - tool.table(des-> selected.displayStats(des)).name("unit-stats").row(); - tool.check("enable", selected.enabled, c->{ + tool.table(des-> selected.displayStats(des)).name("unit-stats").left().row(); + tool.check("@mod.enable", selected.enabled, c->{ selected.enabled=c; selected.onEnabled(find("unit-stats")); });