Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
335 changes: 335 additions & 0 deletions assets/bundles/bundle-mdtx.properties

Large diffs are not rendered by default.

337 changes: 336 additions & 1 deletion assets/bundles/bundle-mdtx_en.properties

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion patches/client/0013-HR-RenderExt-researchViewer.patch
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ index 244c04afc7f4d892b1dca301a1ab50344568682a..fbf8dde06bdf66cb336cee8eb3bbe246
b.table(desc -> {
desc.left().defaults().left();
- desc.add(selectable ? node.content.localizedName : "[accent]???");
+ desc.add(selectable ? node.content.localizedName : RenderExt.researchViewer ? node.content.localizedName + "\n[red]未满足前置科技" : "[accent]???");
+ desc.add(selectable ? node.content.localizedName : RenderExt.researchViewer ? node.content.localizedName + Core.bundle.get("ui.simple.unmet-prerequisite-tech") : "[accent]???");
desc.row();
if(locked(node) || (debugShowRequirements && !net.client())){

44 changes: 22 additions & 22 deletions patches/client/0018-HC-StatExt.patch
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ index e47316c1a1b7495f3e8b4672f89f89ba0bc8c82b..ede5dc36c5e133c3f1033c00f678d64c
+ }

if(mineTier >= 1){
+ stats.add(StatExt.mineLevel, "@级", mineTier);
+ stats.add(StatExt.mineLevel, Core.bundle.get("ui.simple.level-format"), mineTier);
stats.addPercent(Stat.mineSpeed, mineSpeed);
- stats.add(Stat.mineTier, StatValues.drillables(mineSpeed, 1f, 1, null, b ->
+ stats.add(Stat.mineTier, StatValues.drillables(mineHardnessScaling ? 50 : 65, mineHardnessScaling ? 1 : 0, mineSpeed, null, b ->
Expand Down Expand Up @@ -177,14 +177,14 @@ index eedcaa20c7b63b6c41d647cead5febc8b8c2dacb..c527a7c4e0164fcbb22240880692f58b

public void addStats(UnitType u, Table t){
+ t.row();
+ t.add("[lightgray]武器范围: [stat]" + String.format("%.1f", bullet.range/8f) + " []格");
+ t.add(Core.bundle.format("ui.simple.weapon-range", String.format("%.1f", bullet.range / 8f)));
+
+ if (rotate) {
+ t.row();
+ t.add("[lightgray]旋转速度: [stat]" + String.format("%.0f", rotateSpeed * 60f) + " []°/s");
+ t.add(Core.bundle.format("ui.simple.rotation-speed", String.format("%.0f", rotateSpeed * 60f)));
+ if (rotationLimit < 361f) {
+ t.row();
+ t.add("[lightgray]旋转范围: [stat]" + String.format("%.0f", rotationLimit) + " []" + StatUnit.degrees.localized());
+ t.add(Core.bundle.format("ui.simple.rotation-range", String.format("%.0f", rotationLimit), StatUnit.degrees.localized()));
+ }
+ }
+
Expand Down Expand Up @@ -597,12 +597,12 @@ index 58134e5c84363b261f6270c44802fbf471128261..72207f49403881823181169657a797fe

if(type.buildingDamageMultiplier != 1){
- sep(bt, Core.bundle.format("bullet.buildingdamage", ammoStat((int)(type.buildingDamageMultiplier * 100 - 100))));
+ sep(bt, multStat(type.buildingDamageMultiplier) + "[lightgray]x建筑伤害");
+ sep(bt, multStat(type.buildingDamageMultiplier) + Core.bundle.get("ui.simple.building-damage-multiplier"));
}

if(type.rangeChange != 0 && !compact){
- sep(bt, Core.bundle.format("bullet.range", ammoStat(type.rangeChange / tilesize)));
+ sep(bt, "[lightgray]射程 " + ammoStat(type.rangeChange / tilesize) + " [lightgray]格");
+ sep(bt, Core.bundle.format("ui.simple.range-tiles", ammoStat(type.rangeChange / tilesize)));
}

if(type.shieldDamageMultiplier != 1){
Expand All @@ -612,7 +612,7 @@ index 58134e5c84363b261f6270c44802fbf471128261..72207f49403881823181169657a797fe
if(!compact && !Mathf.equal(type.reloadMultiplier, 1f)){
- int val = (int)(type.reloadMultiplier * 100 - 100);
- sep(bt, Core.bundle.format("bullet.reload", ammoStat(val)));
+ sep(bt, multStat(type.reloadMultiplier) + "[lightgray]x射速");
+ sep(bt, multStat(type.reloadMultiplier) + Core.bundle.get("ui.simple.reload-multiplier"));
}

if(type.knockback > 0){
Expand All @@ -628,17 +628,17 @@ index 58134e5c84363b261f6270c44802fbf471128261..72207f49403881823181169657a797fe
+ boolean pierceUnit = type.pierce;
+ StringBuilder str = new StringBuilder("[stat]");
+ if(type instanceof RailBulletType rail){
+ str.append(Strings.autoFixed(rail.pierceDamageFactor * 100f, 1) + "%衰减");
+ str.append(Core.bundle.format("ui.simple.percent-falloff", Strings.autoFixed(rail.pierceDamageFactor * 100f, 1)));
+ }else{
+ str.append(type.pierceCap == -1 ? "无限" : type.pierceCap + "x");
+ str.append(type.pierceCap == -1 ? Core.bundle.get("ui.simple.infinite-pierce") : type.pierceCap + "x");
+ }
+ str.append("穿透[lightgray]");
+ str.append(Core.bundle.get("ui.simple.pierce-label"));
+ if(pierceBuilding && pierceUnit){
+ str.append("建筑与单位");
+ str.append(Core.bundle.get("ui.simple.buildings-and-units"));
+ }else{
+ str.append(pierceBuilding ? "建筑" : "单位");
+ str.append(pierceBuilding ? Core.bundle.get("ui.simple.building") : Core.bundle.get("ui.simple.unit"));
+ }
+ if(laserPierce) str.append("[stat](电性)");
+ if(laserPierce) str.append(Core.bundle.get("ui.simple.electric-property"));
+ sep(bt, str.toString());
}

Expand All @@ -648,7 +648,7 @@ index 58134e5c84363b261f6270c44802fbf471128261..72207f49403881823181169657a797fe

if(type.homingPower > 0.01f){
- sep(bt, "@bullet.homing");
+ sep(bt, "[stat]追踪[lightgray]~[]" + Strings.autoFixed(type.homingPower * 50 * Time.toSeconds, 1) + "°/s[lightgray]~[]" + Strings.fixed(type.homingRange / tilesize, 1) + "[lightgray]格");
+ sep(bt, Core.bundle.format("ui.simple.homing-detail", Strings.autoFixed(type.homingPower * 50 * Time.toSeconds, 1), Strings.fixed(type.homingRange / tilesize, 1)));
}

- if(type.lightning > 0){
Expand All @@ -672,18 +672,18 @@ index 58134e5c84363b261f6270c44802fbf471128261..72207f49403881823181169657a797fe
}

+ if(type instanceof EmpBulletType eb){
+ collapse(bt, Strings.format("[stat]EMP~@[lightgray]格[]~[white]\uE810[]@%/[white]\uE86D[]@%~[white]\uF899[][green]@%[]/[negstat]@%[]",
+ collapse(bt, Core.bundle.format("ui.simple.emp-summary",
+ Strings.autoFixed(eb.radius / tilesize, 0),
+ Strings.autoFixed(eb.powerDamageScl * 100, 0),
+ Strings.autoFixed(eb.unitDamageScl * 100, 0),
+ Strings.autoFixed(eb.timeIncrease * 100, 0),
+ Strings.autoFixed(eb.powerSclDecrease * 100, 0)
+ ), ec -> {
+ ec.defaults().padLeft(5f);
+ sep(ec, Strings.format("[stat]对敌方电网建筑造成@%子弹伤害", Strings.autoFixed(eb.powerDamageScl * 100, 0)));
+ sep(ec, Strings.format("[stat]对敌方单位造成@%子弹伤害", Strings.autoFixed(eb.unitDamageScl * 100, 0)));
+ sep(ec, Strings.format("[stat]对我方耗电建筑超速至@%", Strings.autoFixed(eb.timeIncrease * 100, 0)));
+ sep(ec, Strings.format("[stat]对敌方电网建筑减速至@%", Strings.autoFixed(eb.powerSclDecrease * 100, 0)));
+ sep(ec, Core.bundle.format("ui.simple.emp-damages-power", Strings.autoFixed(eb.powerDamageScl * 100, 0)));
+ sep(ec, Core.bundle.format("ui.simple.emp-damages-units", Strings.autoFixed(eb.unitDamageScl * 100, 0)));
+ sep(ec, Core.bundle.format("ui.simple.emp-speeds-friendly-power", Strings.autoFixed(eb.timeIncrease * 100, 0)));
+ sep(ec, Core.bundle.format("ui.simple.emp-slows-enemy-power", Strings.autoFixed(eb.powerSclDecrease * 100, 0)));
+ });
+ }
+
Expand All @@ -700,11 +700,11 @@ index 58134e5c84363b261f6270c44802fbf471128261..72207f49403881823181169657a797fe
+ if(shots > 0){
+ str += String.format("[stat]%d[]x", shots);
+ }
+ str += String.format("闪电~[stat]%s[]伤害~", Strings.autoFixed(damage, 1));
+ str += Core.bundle.format("ui.simple.lightning-damage", Strings.autoFixed(damage, 1));
+ if(lengthRand > 0){
+ str += String.format("[stat]%d~%d[]长度", length, length + lengthRand);
+ str += Core.bundle.format("ui.simple.lightning-length-range", length, length + lengthRand);
+ }else{
+ str += String.format("[stat]%d[]长度", length);
+ str += Core.bundle.format("ui.simple.lightning-length", length);
+ }
+ sep(table, str);
+ };
Expand Down
2 changes: 1 addition & 1 deletion patches/client/0027-H-misc.patch
Original file line number Diff line number Diff line change
Expand Up @@ -348,7 +348,7 @@ index d14fd47e8d0afa17a76b9112eb89cca4badeb2b8..d3dd7592465f420eb7c225b7dc7218ea
openDialog(keybind);
}).size(bw, bh);
}
+ table.button("取消绑定", tstyle, () -> {
+ table.button(Core.bundle.get("ui.simple.cancel-binding"), tstyle, () -> {
+ keybind.value = new Axis(KeyCode.unset);
+ keybind.save();
+ }).size(bw, bh).pad(2f).padLeft(4f);
Expand Down
8 changes: 4 additions & 4 deletions patches/client/0030-FR-ARC-setBars.patch
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ index 3c7b9653a58a5d4e92f9ba050de2f44757d91be2..dc337d182b0679e533c2389640b8edc7
+ @Override
+ public void setBars(){
+ super.setBars();
+ addBar("charge", (MendBuild entity) -> new Bar(() -> ("充能: " + (int)entity.charge + " / " + reload), () -> Pal.items, () -> (entity.charge / reload)));
+ addBar("charge", (MendBuild entity) -> new Bar(() -> Core.bundle.format("ui.simple.charge-bar", (int)entity.charge, reload), () -> Pal.items, () -> (entity.charge / reload)));
+ }
+
@Override
Expand All @@ -168,7 +168,7 @@ index c2a1f10f2fe32c093cb0142a7f1d93dabadb4e2f..31b67b7837d1c1b6c4c3ec00982478b5
super.setBars();
- addBar("boost", (OverdriveBuild entity) -> new Bar(() -> Core.bundle.format("bar.boost", Mathf.round(Math.max((entity.realBoost() * 100 - 100), 0))), () -> Pal.accent, () -> entity.realBoost() / (hasBoost ? speedBoost + speedBoostPhase : speedBoost)));
+ addBar("boost", (OverdriveBuild entity) -> new Bar(() ->
+ "超速:" + (entity.realBoost() <= 1 ? "[red]\uE815": "+" + (int)((entity.realBoost() - 1) * 100) + "%"),
+ Core.bundle.get("ui.simple.overdrive") + (entity.realBoost() <= 1 ? "[red]\uE815": "+" + (int)((entity.realBoost() - 1) * 100) + "%"),
+ () -> Pal.accent, () -> entity.realBoost() / (hasBoost ? speedBoost + speedBoostPhase : speedBoost)));
}

Expand Down Expand Up @@ -421,7 +421,7 @@ index a142f890eaf5c8252a04201c8485ecb0e260d3f6..2fdaf89d8bfafa089c5a6de09115ec81

addBar("drillspeed", (BeamDrillBuild e) ->
- new Bar(() -> Core.bundle.format("bar.drillspeed", Strings.fixed(e.lastDrillSpeed * 60, 2)), () -> Pal.ammo, () -> e.warmup));
+ new Bar(() -> (e.lastItem == null ? "挖掘速度:0.00/s" : e.lastItem.emoji() +" "+ Strings.fixed(e.lastDrillSpeed * 60 , 2) + "/s"), () -> Pal.ammo, () -> e.warmup));
+ new Bar(() -> (e.lastItem == null ? Core.bundle.get("ui.simple.drill-speed-empty") : Core.bundle.get("ui.simple.drill-speed") + e.lastItem.emoji() + " " + Strings.fixed(e.lastDrillSpeed * 60, 2) + "/s"), () -> Pal.ammo, () -> e.warmup));
}

@Override
Expand Down Expand Up @@ -498,7 +498,7 @@ index 9ae3c98364c860ed47d03592f9d660d1af1b753c..e13f83f830269f8485351d2a52c2edff

addBar("drillspeed", (WallCrafterBuild e) ->
- new Bar(() -> Core.bundle.format("bar.drillspeed", Strings.fixed(e.lastEfficiency * 60 / drillTime, 2)), () -> Pal.ammo, () -> e.warmup));
+ new Bar(() -> (output == null ? "挖掘速度:" : output.emoji()) +" "+ Strings.fixed(e.lastEfficiency * 60 / drillTime, 2) + "/s", () -> Pal.ammo, () -> e.warmup));
+ new Bar(() -> (output == null ? Core.bundle.get("ui.simple.drill-speed") : output.emoji()) + " " + Strings.fixed(e.lastEfficiency * 60 / drillTime, 2) + "/s", () -> Pal.ammo, () -> e.warmup));
}

@Override
Expand Down
8 changes: 4 additions & 4 deletions patches/client/0035-H-UI-HudFragment.patch
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,10 @@ index d6c8321377b26ee05636c41588fdaa6a0787e97a..44204c8e8383d5854e40654e42d599a8
+ .visible(() -> Core.settings.getBool("position") || Core.settings.getBool("mouseposition"))
+ .touchable(Touchable.disabled).style(Styles.outlineLabel).minWidth(120f);
+
+ tt.button("♐", Styles.cleart, MarkerType::toggleMarkHitterUI).size(iconMed).tooltip("进入标记模式");
+ tt.button("♐", Styles.cleart, MarkerType::toggleMarkHitterUI).size(iconMed).tooltip(Core.bundle.get("ui.simple.enter-mark-mode"));
+ tt.button("T", Styles.cleart, () -> ui.chatfrag.nextMode())
+ .checked(b -> ui.chatfrag.mode == ChatFragment.ChatMode.team).size(iconMed).tooltip("前缀添加/t");
+ tt.button("" + Iconc.zoom, Styles.cleart, MarkerType::lockOnLastMark).size(iconMed).tooltip("锁定上个标记点");
+ .checked(b -> ui.chatfrag.mode == ChatFragment.ChatMode.team).size(iconMed).tooltip(Core.bundle.get("ui.simple.add-prefix-t"));
+ tt.button("" + Iconc.zoom, Styles.cleart, MarkerType::lockOnLastMark).size(iconMed).tooltip(Core.bundle.get("ui.simple.lock-the-last-marked-point"));
+ }).name("position");
t.top().right();
});
Expand All @@ -60,7 +60,7 @@ index d6c8321377b26ee05636c41588fdaa6a0787e97a..44204c8e8383d5854e40654e42d599a8
info.row();

+ if (!android){
+ info.label(() -> "缩放: " + String.format("%.2f", renderer.getScale())).left().style(Styles.outlineLabel);
+ info.label(() -> VarsX.bundle.zoomScale(String.format("%.2f", renderer.getScale()))).left().style(Styles.outlineLabel);
+ info.row();
+ }
+
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ index 078026a393a19b36a66577a962f5984310375570..dfc6b9f31bdb9d1f890acc21f4ecca33
});
onResize(this::rebuild);

+ buttons.button("解禁", Styles.togglet, () -> {
+ buttons.button(Core.bundle.get("ui.simple.unlock"), Styles.togglet, () -> {
+ mindustryX.VarsX.allUnlocked.toggle();
+ rebuild();
+ }).checked((b) -> mindustryX.VarsX.allUnlocked.get());
Expand Down
6 changes: 3 additions & 3 deletions patches/client/0041-C-Editor.patch
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ index 49fe8dddaf6a14d47a6a8aec28ea16798f253ee7..0910b33d4b97886c5c6333b0235794e8

if(i++ % 3 == 2) tools.row();
}
+ tools.button("[violet]其他队伍", Styles.flatToggleMenut, () -> UIExt.teamSelect.pickOne(team -> editor.drawTeam = team))
+ tools.button(Core.bundle.get("ui.simple.other-teams"), Styles.flatToggleMenut, () -> UIExt.teamSelect.pickOne(team -> editor.drawTeam = team))
+ .update(b->{
+ boolean checked = !Seq.with(Team.baseTeams).contains(editor.drawTeam);
+ b.setColor(checked ? editor.drawTeam.color : Color.violet);
Expand All @@ -111,13 +111,13 @@ index 49fe8dddaf6a14d47a6a8aec28ea16798f253ee7..0910b33d4b97886c5c6333b0235794e8
mid.row();

+ mid.table(t -> {
+ t.add("辅助线:");
+ t.add(Core.bundle.get("ui.simple.guide-line"));
+ t.field(Integer.toString(editor.interval), TextField.TextFieldFilter.digitsOnly, value -> editor.interval = Integer.parseInt(value))
+ .valid(Strings::canParsePositiveInt).maxTextLength(4).width(100f);
+ }).row();
+
+ var brushField = mid.table().get()
+ .add("笔刷:").getTable()
+ .add(Core.bundle.get("ui.simple.brush")).getTable()
+ .field(Float.toString(editor.brushSize), value -> editor.brushSize = Float.parseFloat(value)).valid(Strings::canParsePositiveFloat).maxTextLength(4).width(100f).get();
+ mid.row();
mid.table(Tex.underline, t -> {
Expand Down
6 changes: 3 additions & 3 deletions patches/client/0046-UI-ARC-logic-Support.patch
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ index 74fb32ff56eec0fcf565cb7cf7aedf1335c978cc..39f29b027fe979cea410e52b2b8cd695
+ Seq<LStatement> lsStatement = LAssembler.read(code, privileged);
+ LStatement stNew = lsStatement.first();
+ if(stNew instanceof InvalidStatement){
+ UIExt.announce("[orange]警告:转换失败,请输入正确格式");
+ UIExt.announce(Core.bundle.get("ui.simple.orange-convert-failed"));
+ return;
+ }
+ newElem = new StatementElem(stNew);
Expand Down Expand Up @@ -194,7 +194,7 @@ index 4f172c5f66736634dac190b115827695ab7993f7..ecbe2ed06b45257a1deb16ce7dbab495
+ var scroll = (ScrollPane)canvas.parent;
+ scroll.setScrollY(scroll.getMaxY() - dest.y + scroll.getHeight() * 0.5f);
+ saveUI();
+ UIExt.announce("[gold]跳转行号:[] " + destIndex);
+ UIExt.announce(Core.bundle.format("ui.simple.jump-to-line", destIndex));
+
+ Element header = dest.getChildren().first();
+ dest.clearActions();
Expand Down Expand Up @@ -254,7 +254,7 @@ index 51c8576d8b41d43e25eb86400d169b9a108e6642..de370177beb5fec5b3b00abbb3dd8e2c
}).marginLeft(12f);
-
+ t.row();
+ t.button("[orange]丢弃更改", Icon.cancel,style, () -> ui.showConfirm("确认丢弃?", () -> {
+ t.button(Core.bundle.get("ui.simple.discard-changes"), Icon.cancel,style, () -> ui.showConfirm(Core.bundle.get("ui.simple.confirm-discard"), () -> {
+ noSave = true;
+ dialog.hide();
+ hide();
Expand Down
4 changes: 2 additions & 2 deletions patches/client/0047-UI-forceJoin.patch
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,9 @@ index 4bc5fa841571cfe3e7948f7a74a9f08c4d2a6cb9..497406bf761dfa63cdbbe554289c00f4
+ title.setAlignment(Align.center);
+ cont.add(Core.bundle.format("server.versions", Version.build, version)).row();
+ cont.row();
+ cont.add("[gold]MDTX[]: 目标版本可能兼容,你可以选择伪装版本强制加入。\n如果出现[red]网络错误[]或其他问题,表示无法兼容。").row();
+ cont.add("@forceJoin.tips").row();
+ cont.pack();
+ buttons.button("强制加入", () -> {
+ buttons.button(Core.bundle.get("ui.simple.force-join"), () -> {
+ hide();
+ ConnectPacket.clientVersion = version;
+ connect(ip, port);
Expand Down
Loading