From 2387963936de244db8bfd19d7adbc40351763d83 Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Sat, 20 Jan 2024 22:50:22 +0800 Subject: [PATCH 001/437] hell --- core/src/mindustry/logic/LogicSound.java | 110 +++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 core/src/mindustry/logic/LogicSound.java diff --git a/core/src/mindustry/logic/LogicSound.java b/core/src/mindustry/logic/LogicSound.java new file mode 100644 index 0000000000..8a37df0688 --- /dev/null +++ b/core/src/mindustry/logic/LogicSound.java @@ -0,0 +1,110 @@ +package mindustry.logic; + +import mindustry.gen.*; + +public enum LogicSound{ + artillery(Sounds.artillery), + bang(Sounds.bang), + bigshot(Sounds.bigshot), + blaster(Sounds.blaster), + bolt(Sounds.bolt), + boom(Sounds.boom), + break(Sounds.break), + buttonClick(Sounds.buttonClick), + cannon(Sounds.cannon), + cannonLarge(Sounds.largeCannon), + click(Sounds.click), + coreExplode(Sounds.corexplode), + door(Sounds.door), + drillImpact(Sounds.drillImpact), + explosion(Sounds.explosion), + explosionBig(Sounds.explosionbig), + explosionDull(Sounds.dullExplosion), + explosionLarge(Sounds.largeExplosion), + explosionTitan(Sounds.titanExplosion), + flame(Sounds.flame), + flame2(Sounds.flame2), + laser(Sounds.laser), + laserBig(Sounds.laserbig), + laserCharge(Sounds.lasercharge), + laserCharge2(Sounds.lasercharge2), + laserShoot(Sounds.lasershoot), + malignShoot(Sounds.malignShoot), + mineDeploy(Sounds.mineDeploy), + mineBeam(Sounds.mineBeam), + missile(Sounds.missile), + missileLarge(Sounds.missileLarge), + missileLaunch(Sounds.missileLaunch), + missileSmall(Sounds.missileSmall), + mud(Sounds.mud), + noAmmo(Sounds.noammo), + pew(Sounds.pew), + place(Sounds.place), + plantBreak(Sounds.plantBreak), + plasmaBoom(Sounds.plasmaboom), + plasmaDrop(Sounds.plasmadrop), + pulseBlast(Sounds.pulseBlast), + railgun(Sounds.railgun), + release(Sounds.release), + respawn(Sounds.respawn), + rockBreak(Sounds.rockBreak), + sap(Sounds.sap), + shockBlast(Sounds.shockBlast), + shoot(Sounds.shoot), + shootAlt(Sounds.shootAlt), + shootAltLong(Sounds.shootAltLong), + shootBig(Sounds.shootBig), + shootSmite(Sounds.shootSmite), + shootSnap(Sounds.shootSnap), + shotgun(Sounds.shotgun), + spark(Sounds.spark), + splash(Sounds.splash), + wave(Sounds.wave), + wind3(Sounds.wind3), + + beamLoop(Sounds.beam), + bioLoop(Sounds.bioLoop), + buildLoop(Sounds.build), + combustionLoop(Sounds.combustion), + conveyorLoop(Sounds.conveyor), + cutterLoop(Sounds.cutter), + drillLoop(Sounds.drill), + drillChargeLoop(Sounds.drillCharge), + extractLoop(Sounds.extractLoop), + fireLoop(Sounds.fire), + fluxLoop(Sounds.flux), + glowLoop(Sounds.glow), + grindingLoop(Sounds.grinding), + humLoop(Sounds.hum), + humElectricLoop(Sounds.electricHum), + laserBeamLoop(Sounds.laserbeam), + machineLoop(Sounds.machine), + missileTrailLoop(Sounds.missileTrail), + pulseLoop(Sounds.pulse), + rainLoop(Sounds.rain), + respawnLoop(Sounds.respawning), + shieldLoop(Sounds.shield), + smelterLoop(Sounds.smelter), + spellLoop(Sounds.spell), + sprayLoop(Sounds.spray), + steamLoop(Sounds.steam), + techLoop(Sounds.techloop), + thrusterLoop(Sounds.thruster), + torchLoop(Sounds.torch), + tractorBeamLoop(Sounds.tractorbeam), + windLoop(Sounds.wind), + wind2Loop(Sounds.wind2), + windHowlLoop(Sounds.windhowl), + + backUi(Sounds.back), + chatMessageUi(Sounds.chatMessage), + messageUi(Sounds.message), + pressUi(Sounds.press), + unlockUi(Sounds.unlock); + + public final Sound sound; + + LogicSound(Sound sound){ + this.sound = sound; + } +} \ No newline at end of file From eed30eb2e781c83e278c32e38b3b6e9b789d9144 Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Sat, 20 Jan 2024 22:53:14 +0800 Subject: [PATCH 002/437] hell --- core/src/mindustry/logic/LogicSound.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/logic/LogicSound.java b/core/src/mindustry/logic/LogicSound.java index 8a37df0688..a1d41d9241 100644 --- a/core/src/mindustry/logic/LogicSound.java +++ b/core/src/mindustry/logic/LogicSound.java @@ -85,7 +85,7 @@ public enum LogicSound{ respawnLoop(Sounds.respawning), shieldLoop(Sounds.shield), smelterLoop(Sounds.smelter), - spellLoop(Sounds.spell), + spellLoop(Sounds.spellLoop), sprayLoop(Sounds.spray), steamLoop(Sounds.steam), techLoop(Sounds.techloop), @@ -107,4 +107,4 @@ public enum LogicSound{ LogicSound(Sound sound){ this.sound = sound; } -} \ No newline at end of file +} From 1edfd9b0e1d91070e4f91b2997aaea332f756bea Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Sat, 20 Jan 2024 22:55:32 +0800 Subject: [PATCH 003/437] issue --- core/src/mindustry/logic/LogicSound.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/logic/LogicSound.java b/core/src/mindustry/logic/LogicSound.java index a1d41d9241..96a9996159 100644 --- a/core/src/mindustry/logic/LogicSound.java +++ b/core/src/mindustry/logic/LogicSound.java @@ -9,7 +9,8 @@ public enum LogicSound{ blaster(Sounds.blaster), bolt(Sounds.bolt), boom(Sounds.boom), - break(Sounds.break), + /* break(Sounds.break), + one hell of a problem */ buttonClick(Sounds.buttonClick), cannon(Sounds.cannon), cannonLarge(Sounds.largeCannon), From 2b0653bda29ac08366612b6cd5012b46e7c425f3 Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Sat, 20 Jan 2024 22:59:45 +0800 Subject: [PATCH 004/437] aaaa --- core/src/mindustry/logic/LogicSound.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/logic/LogicSound.java b/core/src/mindustry/logic/LogicSound.java index 96a9996159..37a51a42d7 100644 --- a/core/src/mindustry/logic/LogicSound.java +++ b/core/src/mindustry/logic/LogicSound.java @@ -1,5 +1,6 @@ package mindustry.logic; +import arc.audio.*; import mindustry.gen.*; public enum LogicSound{ @@ -32,7 +33,6 @@ public enum LogicSound{ laserShoot(Sounds.lasershoot), malignShoot(Sounds.malignShoot), mineDeploy(Sounds.mineDeploy), - mineBeam(Sounds.mineBeam), missile(Sounds.missile), missileLarge(Sounds.missileLarge), missileLaunch(Sounds.missileLaunch), @@ -80,6 +80,7 @@ public enum LogicSound{ humElectricLoop(Sounds.electricHum), laserBeamLoop(Sounds.laserbeam), machineLoop(Sounds.machine), + mineBeam(Sounds.minebeam), missileTrailLoop(Sounds.missileTrail), pulseLoop(Sounds.pulse), rainLoop(Sounds.rain), From 57e317fa3f3532c40e058a18f83eb72f9b7655d3 Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Sat, 20 Jan 2024 23:00:15 +0800 Subject: [PATCH 005/437] foror --- core/src/mindustry/logic/LogicSound.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/logic/LogicSound.java b/core/src/mindustry/logic/LogicSound.java index 37a51a42d7..00a78870a9 100644 --- a/core/src/mindustry/logic/LogicSound.java +++ b/core/src/mindustry/logic/LogicSound.java @@ -80,7 +80,7 @@ public enum LogicSound{ humElectricLoop(Sounds.electricHum), laserBeamLoop(Sounds.laserbeam), machineLoop(Sounds.machine), - mineBeam(Sounds.minebeam), + mineBeamLoop(Sounds.minebeam), missileTrailLoop(Sounds.missileTrail), pulseLoop(Sounds.pulse), rainLoop(Sounds.rain), From 05d499fb18c8d27ceef531bbb048d0723bfc951d Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Fri, 12 Apr 2024 12:09:52 +0800 Subject: [PATCH 006/437] bingor --- core/src/mindustry/logic/LExecutor.java | 28 +++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index 91cb4575e2..ade424afd4 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -2023,6 +2023,34 @@ public class LExecutor{ } } + public static class PlaySoundI implements LInstruction{ + public boolean positional; + public LogicSound sound; + public int volume, pitch, pan, x, y; + + public PlaySoundI(){ + } + + public PlaySoundI(boolean positional, LogicSound sound, int volume, int pitch, int pan, int x, int y){ + this.positional = positional; + this.sound = sound; + this.volume = volume; + this.pitch = pitch; + this.pan = pan; + this.x = x; + this.y = y; + } + + @Override + public void run(LExecutor exec){ + if(positional){ + sound.sound.at(World.unconv(exec.numf(x)), World.unconv(exec.numf(y)), exec.numf(pitch), exec.numf(volume)); + }else{ + sound.sound.play(exec.numf(volume), exec.numf(pitch), exec.numf(pan)); + } + } + } + public static class SetMarkerI implements LInstruction{ public LMarkerControl type = LMarkerControl.pos; public int id, p1, p2, p3; From 63783a17951460a33c37043ed071a505c0e86a63 Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Fri, 12 Apr 2024 12:15:32 +0800 Subject: [PATCH 007/437] why don't you do this by default --- core/src/mindustry/logic/LExecutor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index ade424afd4..91d62b1a06 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -2046,7 +2046,7 @@ public class LExecutor{ if(positional){ sound.sound.at(World.unconv(exec.numf(x)), World.unconv(exec.numf(y)), exec.numf(pitch), exec.numf(volume)); }else{ - sound.sound.play(exec.numf(volume), exec.numf(pitch), exec.numf(pan)); + sound.sound.play(exec.numf(volume) * Core.audio.sfxVolume, exec.numf(pitch), exec.numf(pan)); } } } From 38b5ce0853fb0b76e702116ee22e749e38198925 Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Fri, 12 Apr 2024 12:22:05 +0800 Subject: [PATCH 008/437] i have no idea how to do this automatically --- core/src/mindustry/logic/LogicSound.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/core/src/mindustry/logic/LogicSound.java b/core/src/mindustry/logic/LogicSound.java index 00a78870a9..fdd4322ff9 100644 --- a/core/src/mindustry/logic/LogicSound.java +++ b/core/src/mindustry/logic/LogicSound.java @@ -10,8 +10,7 @@ public enum LogicSound{ blaster(Sounds.blaster), bolt(Sounds.bolt), boom(Sounds.boom), - /* break(Sounds.break), - one hell of a problem */ + breakBlock(Sounds.breaks), buttonClick(Sounds.buttonClick), cannon(Sounds.cannon), cannonLarge(Sounds.largeCannon), From 75106282c323c6114764b7e3df1191a09378d76b Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Fri, 12 Apr 2024 12:35:32 +0800 Subject: [PATCH 009/437] forgor --- core/src/mindustry/logic/LogicSound.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/src/mindustry/logic/LogicSound.java b/core/src/mindustry/logic/LogicSound.java index fdd4322ff9..f655e612fd 100644 --- a/core/src/mindustry/logic/LogicSound.java +++ b/core/src/mindustry/logic/LogicSound.java @@ -104,6 +104,8 @@ public enum LogicSound{ unlockUi(Sounds.unlock); public final Sound sound; + + public static final LMarkerControl[] all = values(); LogicSound(Sound sound){ this.sound = sound; From e9a4699c8b686697134c70613e71f5d62572c535 Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Fri, 12 Apr 2024 12:36:02 +0800 Subject: [PATCH 010/437] the ctrl+c ctrl+v is real --- core/src/mindustry/logic/LogicSound.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/logic/LogicSound.java b/core/src/mindustry/logic/LogicSound.java index f655e612fd..4d7b13731b 100644 --- a/core/src/mindustry/logic/LogicSound.java +++ b/core/src/mindustry/logic/LogicSound.java @@ -105,7 +105,7 @@ public enum LogicSound{ public final Sound sound; - public static final LMarkerControl[] all = values(); + public static final LogicSound[] all = values(); LogicSound(Sound sound){ this.sound = sound; From 780f13be57ba98f4fd8c4d9ad9c2cfbcc9c261a5 Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Fri, 12 Apr 2024 13:02:25 +0800 Subject: [PATCH 011/437] el ui --- core/src/mindustry/logic/LStatements.java | 67 +++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/core/src/mindustry/logic/LStatements.java b/core/src/mindustry/logic/LStatements.java index 31cce56e0c..86336f9c77 100644 --- a/core/src/mindustry/logic/LStatements.java +++ b/core/src/mindustry/logic/LStatements.java @@ -2085,6 +2085,73 @@ public class LStatements{ return LCategory.world; } } + + @RegisterStatement("playsound") + public static class PlaySoundStatement extends LStatement{ + public boolean positional; + public LogicSound sound = LogicSound.pew; + public String volume = "1", pitch = "1", pan = "0", x = "@thisx", y = "@thisy"; + + @Override + public void build(Table table){ + rebuid(table); + } + + void rebuild(Table table){ + table.clearChildren(); + + table.button(positional ? "positional" : "global", Styles.logict, () -> { + positional = !positional; + rebuild(table); + }).size(160f, 40f).pad(4f).color(table.color); + + row(table); + + table.add("play"); + + table.button(b -> { + b.label(() -> sound.name()); + b.clicked(() -> showSelect(b, LogicSound.all, sound, s -> { + sound = s; + rebuild(table); + }, 3, cell -> cell.size(150, 50))); + }, Styles.logict, () -> {}).size(190, 40).color(table.color).left().padLeft(2); + + row(table); + + fieldst(table, "volume", volume, str -> volume = str); + fieldst(table, "pitch", pitch, str -> pitch = str); + + row(table); + + if(positional){ + table.add("at "); + + fields(table, x, str -> x = str); + + table.add(", "); + + fields(table, y, str -> y = str); + }else{ + fieldst(table, "pan", pan, str -> pan = str); + } + } + + @Override + public boolean privileged(){ + return true; + } + + @Override + public LInstruction build(LAssembler builder){ + return new PlaySoundI(positional, sound, builder.var(volume), builder.var(pitch), builder.var(pan), builder.var(x), builder.var(y)); + } + + @Override + public LCategory category(){ + return LCategory.world; + } + } @RegisterStatement("setmarker") public static class SetMarkerStatement extends LStatement{ From 67fc5ba15b40e1f02253c3f03267c61fb62807ba Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Fri, 12 Apr 2024 13:47:58 +0800 Subject: [PATCH 012/437] h --- core/src/mindustry/logic/LExecutor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index 91d62b1a06..ade424afd4 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -2046,7 +2046,7 @@ public class LExecutor{ if(positional){ sound.sound.at(World.unconv(exec.numf(x)), World.unconv(exec.numf(y)), exec.numf(pitch), exec.numf(volume)); }else{ - sound.sound.play(exec.numf(volume) * Core.audio.sfxVolume, exec.numf(pitch), exec.numf(pan)); + sound.sound.play(exec.numf(volume), exec.numf(pitch), exec.numf(pan)); } } } From c77b866e567d37bba759939852441f5d1aca5cb1 Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Fri, 12 Apr 2024 13:58:54 +0800 Subject: [PATCH 013/437] much error --- core/src/mindustry/logic/LStatements.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/logic/LStatements.java b/core/src/mindustry/logic/LStatements.java index 86336f9c77..87160a1afd 100644 --- a/core/src/mindustry/logic/LStatements.java +++ b/core/src/mindustry/logic/LStatements.java @@ -2094,7 +2094,7 @@ public class LStatements{ @Override public void build(Table table){ - rebuid(table); + rebuild(table); } void rebuild(Table table){ From 74cf56d43c5ea9bb295b0261dc41c915e163eb17 Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Fri, 12 Apr 2024 14:03:32 +0800 Subject: [PATCH 014/437] h --- core/src/mindustry/logic/LExecutor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index ade424afd4..db7a528f63 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -2046,7 +2046,7 @@ public class LExecutor{ if(positional){ sound.sound.at(World.unconv(exec.numf(x)), World.unconv(exec.numf(y)), exec.numf(pitch), exec.numf(volume)); }else{ - sound.sound.play(exec.numf(volume), exec.numf(pitch), exec.numf(pan)); + sound.sound.play(exec.numf(volume) * (Core.settings.getInt("sfxvol") / 100f), exec.numf(pitch), exec.numf(pan)); } } } From 23aa93fe12374ad7d0b32d99cf966ba4504d7ab4 Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Fri, 12 Apr 2024 17:45:46 +0800 Subject: [PATCH 015/437] rear --- core/assets/contributors | 1 + 1 file changed, 1 insertion(+) diff --git a/core/assets/contributors b/core/assets/contributors index 3b3153b7ee..9ef53eb655 100644 --- a/core/assets/contributors +++ b/core/assets/contributors @@ -165,3 +165,4 @@ OpalSoPL BalaM314 Redstonneur1256 ApsZoldat +Mythril382 From 753e992d6e3abbdf08bf7d95e8910c1d8a73dc84 Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Fri, 12 Apr 2024 21:48:49 +0800 Subject: [PATCH 016/437] slight desktop issue --- core/src/mindustry/logic/LStatements.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/logic/LStatements.java b/core/src/mindustry/logic/LStatements.java index 87160a1afd..c88b4e7426 100644 --- a/core/src/mindustry/logic/LStatements.java +++ b/core/src/mindustry/logic/LStatements.java @@ -2122,7 +2122,7 @@ public class LStatements{ fieldst(table, "volume", volume, str -> volume = str); fieldst(table, "pitch", pitch, str -> pitch = str); - row(table); + table.row(); if(positional){ table.add("at "); From 64986a58e1fb6219cd72d85ec6892e408e2a28b1 Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Fri, 12 Apr 2024 21:55:47 +0800 Subject: [PATCH 017/437] tooltip --- core/assets/bundles/bundle.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index cbf4f022d1..ec9d1e7c21 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -2366,6 +2366,7 @@ lst.getflag = Check if a global flag is set. lst.setprop = Sets a property of a unit or building. lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nLimited to 20 times a second per variable. +lst.playsound = Plays a sound either at input position\nif positional or anywhere if global. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction.\n[accent]null []values are ignored. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. From bc2be5de25b4433861941ec1249a8a4d22692819 Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Mon, 27 May 2024 02:10:12 +0800 Subject: [PATCH 018/437] Delete core/src/mindustry/logic/LogicSound.java --- core/src/mindustry/logic/LogicSound.java | 113 ----------------------- 1 file changed, 113 deletions(-) delete mode 100644 core/src/mindustry/logic/LogicSound.java diff --git a/core/src/mindustry/logic/LogicSound.java b/core/src/mindustry/logic/LogicSound.java deleted file mode 100644 index 4d7b13731b..0000000000 --- a/core/src/mindustry/logic/LogicSound.java +++ /dev/null @@ -1,113 +0,0 @@ -package mindustry.logic; - -import arc.audio.*; -import mindustry.gen.*; - -public enum LogicSound{ - artillery(Sounds.artillery), - bang(Sounds.bang), - bigshot(Sounds.bigshot), - blaster(Sounds.blaster), - bolt(Sounds.bolt), - boom(Sounds.boom), - breakBlock(Sounds.breaks), - buttonClick(Sounds.buttonClick), - cannon(Sounds.cannon), - cannonLarge(Sounds.largeCannon), - click(Sounds.click), - coreExplode(Sounds.corexplode), - door(Sounds.door), - drillImpact(Sounds.drillImpact), - explosion(Sounds.explosion), - explosionBig(Sounds.explosionbig), - explosionDull(Sounds.dullExplosion), - explosionLarge(Sounds.largeExplosion), - explosionTitan(Sounds.titanExplosion), - flame(Sounds.flame), - flame2(Sounds.flame2), - laser(Sounds.laser), - laserBig(Sounds.laserbig), - laserCharge(Sounds.lasercharge), - laserCharge2(Sounds.lasercharge2), - laserShoot(Sounds.lasershoot), - malignShoot(Sounds.malignShoot), - mineDeploy(Sounds.mineDeploy), - missile(Sounds.missile), - missileLarge(Sounds.missileLarge), - missileLaunch(Sounds.missileLaunch), - missileSmall(Sounds.missileSmall), - mud(Sounds.mud), - noAmmo(Sounds.noammo), - pew(Sounds.pew), - place(Sounds.place), - plantBreak(Sounds.plantBreak), - plasmaBoom(Sounds.plasmaboom), - plasmaDrop(Sounds.plasmadrop), - pulseBlast(Sounds.pulseBlast), - railgun(Sounds.railgun), - release(Sounds.release), - respawn(Sounds.respawn), - rockBreak(Sounds.rockBreak), - sap(Sounds.sap), - shockBlast(Sounds.shockBlast), - shoot(Sounds.shoot), - shootAlt(Sounds.shootAlt), - shootAltLong(Sounds.shootAltLong), - shootBig(Sounds.shootBig), - shootSmite(Sounds.shootSmite), - shootSnap(Sounds.shootSnap), - shotgun(Sounds.shotgun), - spark(Sounds.spark), - splash(Sounds.splash), - wave(Sounds.wave), - wind3(Sounds.wind3), - - beamLoop(Sounds.beam), - bioLoop(Sounds.bioLoop), - buildLoop(Sounds.build), - combustionLoop(Sounds.combustion), - conveyorLoop(Sounds.conveyor), - cutterLoop(Sounds.cutter), - drillLoop(Sounds.drill), - drillChargeLoop(Sounds.drillCharge), - extractLoop(Sounds.extractLoop), - fireLoop(Sounds.fire), - fluxLoop(Sounds.flux), - glowLoop(Sounds.glow), - grindingLoop(Sounds.grinding), - humLoop(Sounds.hum), - humElectricLoop(Sounds.electricHum), - laserBeamLoop(Sounds.laserbeam), - machineLoop(Sounds.machine), - mineBeamLoop(Sounds.minebeam), - missileTrailLoop(Sounds.missileTrail), - pulseLoop(Sounds.pulse), - rainLoop(Sounds.rain), - respawnLoop(Sounds.respawning), - shieldLoop(Sounds.shield), - smelterLoop(Sounds.smelter), - spellLoop(Sounds.spellLoop), - sprayLoop(Sounds.spray), - steamLoop(Sounds.steam), - techLoop(Sounds.techloop), - thrusterLoop(Sounds.thruster), - torchLoop(Sounds.torch), - tractorBeamLoop(Sounds.tractorbeam), - windLoop(Sounds.wind), - wind2Loop(Sounds.wind2), - windHowlLoop(Sounds.windhowl), - - backUi(Sounds.back), - chatMessageUi(Sounds.chatMessage), - messageUi(Sounds.message), - pressUi(Sounds.press), - unlockUi(Sounds.unlock); - - public final Sound sound; - - public static final LogicSound[] all = values(); - - LogicSound(Sound sound){ - this.sound = sound; - } -} From 7f80a1879e156d661f3b560c39b6fe079c3c8cfb Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Mon, 27 May 2024 03:35:37 +0800 Subject: [PATCH 019/437] sound id --- core/src/mindustry/logic/GlobalVars.java | 16 ++++++++++++- core/src/mindustry/logic/LExecutor.java | 15 +++++++----- core/src/mindustry/logic/LStatements.java | 28 +++++++++++++++-------- 3 files changed, 43 insertions(+), 16 deletions(-) diff --git a/core/src/mindustry/logic/GlobalVars.java b/core/src/mindustry/logic/GlobalVars.java index 65df2c3821..8648697edb 100644 --- a/core/src/mindustry/logic/GlobalVars.java +++ b/core/src/mindustry/logic/GlobalVars.java @@ -1,6 +1,7 @@ package mindustry.logic; import arc.*; +import arc.audio.*; import arc.files.*; import arc.graphics.*; import arc.math.*; @@ -9,6 +10,7 @@ import arc.util.*; import mindustry.*; import mindustry.content.*; import mindustry.ctype.*; +import mindustry.gen.*; import mindustry.game.*; import mindustry.logic.LExecutor.*; import mindustry.type.*; @@ -35,7 +37,9 @@ public class GlobalVars{ private IntSet privilegedIds = new IntSet(); private UnlockableContent[][] logicIdToContent; private int[][] contentIdToLogicId; - + + public static final Seq soundNames = new Seq<>(); + public void init(){ putEntryOnly("sectionProcessor"); @@ -89,6 +93,16 @@ public class GlobalVars{ put("@ctrlProcessor", ctrlProcessor); put("@ctrlPlayer", ctrlPlayer); put("@ctrlCommand", ctrlCommand); + + //sounds + for(Sound sound : Core.assets.getAll(Sound.class, new Seq<>(Sound.class))){ + if(sound != Sounds.none && sound != Sounds.swish){ + String name = sound.toString(); + name = name.substring(20, name.length - 4); + soundNames.put(name); + put("@sfx-" + name, Sounds.getSoundId(sound)); + } + } //store base content diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index db7a528f63..e62d0b65b7 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -1,6 +1,7 @@ package mindustry.logic; import arc.*; +import arc.audio.*; import arc.graphics.*; import arc.math.*; import arc.math.geom.*; @@ -2025,15 +2026,14 @@ public class LExecutor{ public static class PlaySoundI implements LInstruction{ public boolean positional; - public LogicSound sound; - public int volume, pitch, pan, x, y; + public int id, volume, pitch, pan, x, y; public PlaySoundI(){ } - public PlaySoundI(boolean positional, LogicSound sound, int volume, int pitch, int pan, int x, int y){ + public PlaySoundI(boolean positional, int id, int volume, int pitch, int pan, int x, int y){ this.positional = positional; - this.sound = sound; + this.id = id; this.volume = volume; this.pitch = pitch; this.pan = pan; @@ -2043,10 +2043,13 @@ public class LExecutor{ @Override public void run(LExecutor exec){ + Sound sound = Sounds.getSound(exec.numi(id)); + if(sound == Sounds.none || sound == Sounds.swish) sound = Sounds.pew; //no. + if(positional){ - sound.sound.at(World.unconv(exec.numf(x)), World.unconv(exec.numf(y)), exec.numf(pitch), exec.numf(volume)); + sound.at(World.unconv(exec.numf(x)), World.unconv(exec.numf(y)), exec.numf(pitch), exec.numf(volume)); }else{ - sound.sound.play(exec.numf(volume) * (Core.settings.getInt("sfxvol") / 100f), exec.numf(pitch), exec.numf(pan)); + sound.play(exec.numf(volume) * (Core.settings.getInt("sfxvol") / 100f), exec.numf(pitch), exec.numf(pan)); } } } diff --git a/core/src/mindustry/logic/LStatements.java b/core/src/mindustry/logic/LStatements.java index c88b4e7426..9142d0dc0c 100644 --- a/core/src/mindustry/logic/LStatements.java +++ b/core/src/mindustry/logic/LStatements.java @@ -1,6 +1,7 @@ package mindustry.logic; import arc.*; +import arc.audio.*; import arc.func.*; import arc.graphics.*; import arc.scene.style.*; @@ -2089,8 +2090,9 @@ public class LStatements{ @RegisterStatement("playsound") public static class PlaySoundStatement extends LStatement{ public boolean positional; - public LogicSound sound = LogicSound.pew; - public String volume = "1", pitch = "1", pan = "0", x = "@thisx", y = "@thisy"; + public String id = "@sfx-pew", volume = "1", pitch = "1", pan = "0", x = "@thisx", y = "@thisy"; + + private transient TextField tfield; @Override public void build(Table table){ @@ -2107,15 +2109,18 @@ public class LStatements{ row(table); - table.add("play"); + table.add("play "); + + tfield = field(table, id, str -> id = str).padRight(0f).get(); table.button(b -> { - b.label(() -> sound.name()); - b.clicked(() -> showSelect(b, LogicSound.all, sound, s -> { - sound = s; + b.image(Icon.pencilSmall); + + b.clicked(() -> showSelect(b, GlobalVars.soundNames.toArray(String.class), id, t -> { + sid("@sfx-" + t); rebuild(table); - }, 3, cell -> cell.size(150, 50))); - }, Styles.logict, () -> {}).size(190, 40).color(table.color).left().padLeft(2); + }, 4, cell -> cell.size(160, 50))); + }, Styles.logict, () -> {}).size(40).color(table.color).left().padLeft(-1); row(table); @@ -2137,6 +2142,11 @@ public class LStatements{ } } + private void sid(String text){ + tfield.setText(text); + id = text; + } + @Override public boolean privileged(){ return true; @@ -2144,7 +2154,7 @@ public class LStatements{ @Override public LInstruction build(LAssembler builder){ - return new PlaySoundI(positional, sound, builder.var(volume), builder.var(pitch), builder.var(pan), builder.var(x), builder.var(y)); + return new PlaySoundI(positional, builder.var(id), builder.var(volume), builder.var(pitch), builder.var(pan), builder.var(x), builder.var(y)); } @Override From d24f031cb46dfc858fdf23140614eda909ff4bb8 Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Mon, 27 May 2024 04:13:35 +0800 Subject: [PATCH 020/437] it's 4:14, i should sleep anuke was right, this is a mess --- core/src/mindustry/logic/GlobalVars.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/logic/GlobalVars.java b/core/src/mindustry/logic/GlobalVars.java index 8648697edb..defc11f01f 100644 --- a/core/src/mindustry/logic/GlobalVars.java +++ b/core/src/mindustry/logic/GlobalVars.java @@ -98,7 +98,10 @@ public class GlobalVars{ for(Sound sound : Core.assets.getAll(Sound.class, new Seq<>(Sound.class))){ if(sound != Sounds.none && sound != Sounds.swish){ String name = sound.toString(); - name = name.substring(20, name.length - 4); + int startIndex = name.indexOf("sounds/") + 7; + int endIndex = name.indexOf(".ogg"); + if(endIndex == -1) endIndex = name.indexOf(".mp3"); + name = name.substring(startIndex, endIndex); soundNames.put(name); put("@sfx-" + name, Sounds.getSoundId(sound)); } From 580d35cf1e2ac15277bf5ee7fb66f15f02f578e1 Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Mon, 27 May 2024 12:54:27 +0800 Subject: [PATCH 021/437] the arc pr --- core/src/mindustry/logic/GlobalVars.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/core/src/mindustry/logic/GlobalVars.java b/core/src/mindustry/logic/GlobalVars.java index defc11f01f..9a8de13755 100644 --- a/core/src/mindustry/logic/GlobalVars.java +++ b/core/src/mindustry/logic/GlobalVars.java @@ -97,11 +97,7 @@ public class GlobalVars{ //sounds for(Sound sound : Core.assets.getAll(Sound.class, new Seq<>(Sound.class))){ if(sound != Sounds.none && sound != Sounds.swish){ - String name = sound.toString(); - int startIndex = name.indexOf("sounds/") + 7; - int endIndex = name.indexOf(".ogg"); - if(endIndex == -1) endIndex = name.indexOf(".mp3"); - name = name.substring(startIndex, endIndex); + String name = sound.file.nameWithoutExtension(); soundNames.put(name); put("@sfx-" + name, Sounds.getSoundId(sound)); } From dbb62bd87cff823feb85148a76fc9c4347756b08 Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Mon, 27 May 2024 23:10:07 +0800 Subject: [PATCH 022/437] nullcheck --- core/src/mindustry/logic/LExecutor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index e62d0b65b7..6dc97e0598 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -2044,7 +2044,7 @@ public class LExecutor{ @Override public void run(LExecutor exec){ Sound sound = Sounds.getSound(exec.numi(id)); - if(sound == Sounds.none || sound == Sounds.swish) sound = Sounds.pew; //no. + if(sound == null || sound == Sounds.none || sound == Sounds.swish) sound = Sounds.pew; //no. if(positional){ sound.at(World.unconv(exec.numf(x)), World.unconv(exec.numf(y)), exec.numf(pitch), exec.numf(volume)); From ff35e6a7d81b43f2fd3327f8a5969d09b0ce8bcf Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Mon, 27 May 2024 23:13:43 +0800 Subject: [PATCH 023/437] mythril that's a seq, NOT an objectmap --- core/src/mindustry/logic/GlobalVars.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/logic/GlobalVars.java b/core/src/mindustry/logic/GlobalVars.java index 9a8de13755..2823c8c771 100644 --- a/core/src/mindustry/logic/GlobalVars.java +++ b/core/src/mindustry/logic/GlobalVars.java @@ -98,7 +98,7 @@ public class GlobalVars{ for(Sound sound : Core.assets.getAll(Sound.class, new Seq<>(Sound.class))){ if(sound != Sounds.none && sound != Sounds.swish){ String name = sound.file.nameWithoutExtension(); - soundNames.put(name); + soundNames.add(name); put("@sfx-" + name, Sounds.getSoundId(sound)); } } From 0067af0e2c54580f8e27a7f0df0da3848273cdf4 Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Tue, 28 May 2024 00:31:00 +0800 Subject: [PATCH 024/437] changes --- core/src/mindustry/logic/LExecutor.java | 2 +- core/src/mindustry/logic/LStatements.java | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index 6dc97e0598..77ee71e9fe 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -2044,7 +2044,7 @@ public class LExecutor{ @Override public void run(LExecutor exec){ Sound sound = Sounds.getSound(exec.numi(id)); - if(sound == null || sound == Sounds.none || sound == Sounds.swish) sound = Sounds.pew; //no. + if(sound == null || sound == Sounds.swish) sound = Sounds.none; //no. if(positional){ sound.at(World.unconv(exec.numf(x)), World.unconv(exec.numf(y)), exec.numf(pitch), exec.numf(volume)); diff --git a/core/src/mindustry/logic/LStatements.java b/core/src/mindustry/logic/LStatements.java index 9142d0dc0c..02b4791933 100644 --- a/core/src/mindustry/logic/LStatements.java +++ b/core/src/mindustry/logic/LStatements.java @@ -2109,17 +2109,17 @@ public class LStatements{ row(table); - table.add("play "); + table.add(" play "); tfield = field(table, id, str -> id = str).padRight(0f).get(); table.button(b -> { b.image(Icon.pencilSmall); - b.clicked(() -> showSelect(b, GlobalVars.soundNames.toArray(String.class), id, t -> { + b.clicked(() -> showSelect(b, GlobalVars.soundNames.toArray(String.class), id.substring(4), t -> { sid("@sfx-" + t); rebuild(table); - }, 4, cell -> cell.size(160, 50))); + }, 2, cell -> cell.size(160, 50))); }, Styles.logict, () -> {}).size(40).color(table.color).left().padLeft(-1); row(table); From 5e3ee08c2c40a83e402bfaffda68646873075335 Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Tue, 28 May 2024 00:38:05 +0800 Subject: [PATCH 025/437] remove that --- core/assets/contributors | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/assets/contributors b/core/assets/contributors index 9ef53eb655..d72d494713 100644 --- a/core/assets/contributors +++ b/core/assets/contributors @@ -165,4 +165,4 @@ OpalSoPL BalaM314 Redstonneur1256 ApsZoldat -Mythril382 +Mythril From 30480a6eda1d5550471d3ab8899650aa5ee33746 Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Sun, 2 Jun 2024 16:18:43 +0800 Subject: [PATCH 026/437] wack --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index dd42df65ea..f6e7927c9e 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=eac3d7211c +archash=480129c79d From 07d20a8da5c3ec76be72863ac5ccd3a7f1d713b3 Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Mon, 17 Jun 2024 02:21:55 +0800 Subject: [PATCH 027/437] refactor 1 --- core/src/mindustry/logic/LExecutor.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index b5c7583f43..03a214c93f 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -1913,12 +1913,12 @@ public class LExecutor{ public static class PlaySoundI implements LInstruction{ public boolean positional; - public int id, volume, pitch, pan, x, y; + public LVar id, volume, pitch, pan, x, y; public PlaySoundI(){ } - public PlaySoundI(boolean positional, int id, int volume, int pitch, int pan, int x, int y){ + public PlaySoundI(boolean positional, LVar id, LVar volume, LVar pitch, LVar pan, LVar x, LVar y){ this.positional = positional; this.id = id; this.volume = volume; @@ -1930,13 +1930,13 @@ public class LExecutor{ @Override public void run(LExecutor exec){ - Sound sound = Sounds.getSound(exec.numi(id)); + Sound sound = Sounds.getSound(id.numi()); if(sound == null || sound == Sounds.swish) sound = Sounds.none; //no. if(positional){ - sound.at(World.unconv(exec.numf(x)), World.unconv(exec.numf(y)), exec.numf(pitch), exec.numf(volume)); + sound.at(World.unconv(x.numf()), World.unconv(y.numf()), pitch.numf(), volume.numf()); }else{ - sound.play(exec.numf(volume) * (Core.settings.getInt("sfxvol") / 100f), exec.numf(pitch), exec.numf(pan)); + sound.play(volume.numf() * (Core.settings.getInt("sfxvol") / 100f), pitch.numf(), pan.numf()); } } } From 94ebec4b6d1e7afdf36e9343f225436e7b7ba232 Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Fri, 21 Jun 2024 01:50:48 +0800 Subject: [PATCH 028/437] should --- core/src/mindustry/logic/LExecutor.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index 03a214c93f..45b5125db0 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -1934,9 +1934,9 @@ public class LExecutor{ if(sound == null || sound == Sounds.swish) sound = Sounds.none; //no. if(positional){ - sound.at(World.unconv(x.numf()), World.unconv(y.numf()), pitch.numf(), volume.numf()); + sound.at(World.unconv(x.numf()), World.unconv(y.numf()), pitch.numf(), Math.min(volume.numf(), 2f)); }else{ - sound.play(volume.numf() * (Core.settings.getInt("sfxvol") / 100f), pitch.numf(), pan.numf()); + sound.play(Math.min(volume.numf() * (Core.settings.getInt("sfxvol") / 100f), 2f), pitch.numf(), pan.numf()); } } } From 36f07c2590039e98a51ee7f1732422a2482f1612 Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Sat, 6 Jul 2024 12:17:22 +0800 Subject: [PATCH 029/437] im not even sure if this is reliable --- core/src/mindustry/logic/GlobalVars.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/core/src/mindustry/logic/GlobalVars.java b/core/src/mindustry/logic/GlobalVars.java index 9c0d128ec0..47292d4130 100644 --- a/core/src/mindustry/logic/GlobalVars.java +++ b/core/src/mindustry/logic/GlobalVars.java @@ -92,11 +92,13 @@ public class GlobalVars{ put("@ctrlCommand", ctrlCommand); //sounds - for(Sound sound : Core.assets.getAll(Sound.class, new Seq<>(Sound.class))){ - if(sound != Sounds.none && sound != Sounds.swish){ - String name = sound.file.nameWithoutExtension(); - soundNames.add(name); - put("@sfx-" + name, Sounds.getSoundId(sound)); + if(Core.assets != null){ + for(Sound sound : Core.assets.getAll(Sound.class, new Seq<>(Sound.class))){ + if(sound != Sounds.none && sound != Sounds.swish){ + String name = sound.file.nameWithoutExtension(); + soundNames.add(name); + put("@sfx-" + name, Sounds.getSoundId(sound)); + } } } From daa493c0b1df1a78251393ba3b5aa090f185a73d Mon Sep 17 00:00:00 2001 From: WayZer Date: Wed, 31 Jul 2024 02:04:02 +0800 Subject: [PATCH 030/437] Why write `Pool` don't write `reset` (#10066) --- core/src/mindustry/world/blocks/storage/Unloader.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/world/blocks/storage/Unloader.java b/core/src/mindustry/world/blocks/storage/Unloader.java index db0fdbfe1e..08a9880162 100644 --- a/core/src/mindustry/world/blocks/storage/Unloader.java +++ b/core/src/mindustry/world/blocks/storage/Unloader.java @@ -7,6 +7,7 @@ import arc.struct.*; import arc.util.*; import arc.util.io.*; import arc.util.pooling.*; +import arc.util.pooling.Pool.*; import mindustry.annotations.Annotations.*; import mindustry.entities.units.*; import mindustry.gen.*; @@ -68,7 +69,7 @@ public class Unloader extends Block{ removeBar("items"); } - public static class ContainerStat{ + public static class ContainerStat implements Poolable{ Building building; float loadFactor; boolean canLoad; @@ -76,6 +77,11 @@ public class Unloader extends Block{ /** Cached !(building instanceof StorageBuild) */ boolean notStorage; int lastUsed; + + @Override + public void reset(){ + building = null; + } } public class UnloaderBuild extends Building{ @@ -255,4 +261,4 @@ public class Unloader extends Block{ sortItem = id == -1 ? null : content.item(id); } } -} \ No newline at end of file +} From c7154f9460da14f1495e942ecf0bc56b0383ed27 Mon Sep 17 00:00:00 2001 From: summoner001 Date: Fri, 2 Aug 2024 22:53:17 +0200 Subject: [PATCH 031/437] Update bundle_hu.properties (#10071) * Update bundle_hu.properties Make the translation of the "tile" word coherent so that it has the same translation everywhere, because several translations have been used for it, which can confuse the player. Minor sentence fixes. * Update bundle_hu.properties Make sentence understandable. * Update bundle_hu.properties Fix sentence. --- core/assets/bundles/bundle_hu.properties | 54 ++++++++++++------------ 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index 30fc904248..4d4fb8f650 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -230,7 +230,7 @@ server.kicked.customClient = Ez a kiszolgáló nem támogatja a saját készít server.kicked.gameover = Vége a játéknak! server.kicked.serverRestarting = Ez a kiszolgáló újraindul. server.versions = A te játékverziód:[accent] {0}[]\nA kiszolgáló verziója:[accent] {1}[] -host.info = A [accent]kiszolgáló indítása[] gomb egy kiszolgálót indít a [scarlet]6567-es[] porton.\nEzen a [lightgray]Wi-Fi-n vagy a helyi hálózaton[] bárki láthatja a kiszolgálót a kiszolgálólistán.\n\nHa azt szeretnéd, hogy bárhonnan, IP-címmel kapcsolódhassanak, akkor [accent]porttovábbítás[] szükséges.\n\n[lightgray]Megjegyzés: ha valakinek problémái vannak a LAN-játékhoz való kapcsolódással, győződj meg arról, hogy a tűzfal beállításaiban engedélyezted-e a Mindustry hozzáférését a helyi hálózathoz. Ne feledd, hogy a nyilvános hálózatok néha nem teszik lehetővé a kiszolgálók felderítését. +host.info = A [accent]kiszolgáló indítása[] gomb egy kiszolgálót indít a [scarlet]6567-es[] porton.\nEzen a [lightgray]Wi-Fi-n vagy a helyi hálózaton[] bárki láthatja a kiszolgálót a kiszolgálólistán.\n\nHa azt szeretnéd, hogy bárki, aki ismeri az IP-címedet, bárhonnan kapcsolódhasson a kiszolgálódhoz, akkor a [accent]porttovábbítás[] beállítására lesz szükséged.\n\n[lightgray]Megjegyzés: ha problémáid vannak a LAN-játékhoz való kapcsolódással, győződj meg arról, hogy a tűzfal beállításaiban engedélyezted-e a Mindustry hozzáférését a helyi hálózathoz. Ne feledd, hogy a nyilvános hálózatok néha nem teszik lehetővé a kiszolgálók felderítését. join.info = Itt megadhatod egy [accent]kiszolgáló IP-címét[] a kapcsolódáshoz, vagy felfedezhetsz [accent]helyi[] vagy [accent]globális[] kiszolgálókat.\nA LAN és WAN többjátékos mód is támogatott.\n\n[lightgray]Ha valakihez IP-cím alapján szeretnél kapcsolódni, akkor meg kell tudnod az IP-címét, amelyet például a „my ip” webes kereséssel találhatsz meg. hostserver = Többjátékos játék invitefriends = Barátok meghívása @@ -864,8 +864,8 @@ sector.origin.name = Eredet sector.onset.description = Kezdd meg az Erekir meghódítását. Gyűjts nyersanyagokat, állíts elő egységeket, és kezdd el a technológiai fejlesztéseket. sector.aegis.description = Ez a szektor volfrám-lelőhelyeket tartalmaz.\nFejleszd ki az [accent]Ütvefúrót[], hogy ki tudd bányászni ezt a nyersanyagot, és pusztítsd el az ellenséges bázist a szektorban. sector.lake.description = Az ebben a szektorban lévő salakos tó nagymértékben korlátozza a használható egységeket. A lebegőegységek használata az egyetlen lehetőség.\nFejleszd ki a [accent]Repülőgépgyártót[], és állíts elő egy [accent]Elude[] egységet, amilyen hamar csak lehet. -sector.intersect.description = A letapogatások arra utalnak, hogy ezt a szektort a leszállás után hamarosan több oldalról is megtámadják.\nÁllítsd fel gyorsan a védelmedet, és terjeszkedj minél hamarabb.\n[accent]Mech[] egységekre lesz szükség a terület zord terepviszonyai miatt. -sector.atlas.description = Ez a szektor változatos terepet tartalmaz, és az ütőképes támadáshoz többféle egységre lesz szükség.\nAz itt felfedezett ellenséges bázisok némelyikén való átjutáshoz is továbbfejlesztett egységekre lehet szükség.\nFejleszd ki az [accent]Elektrolizátort[] és a [accent]Tankújratervezőt[]. +sector.intersect.description = A letapogatások arra utalnak, hogy ezt a szektort a leszállás után hamarosan több oldalról is megtámadják.\nÁllítsd fel gyorsan a védelmedet, és terjeszkedj minél gyorsabban.\n[accent]Mech[] egységekre lesz szükség a terület zord terepviszonyai miatt. +sector.atlas.description = Ez a szektor változatos tereppel rendelkezik, ezért az ütőképes támadáshoz többféle egységre lesz szükség.\nAz itt felfedezett ellenséges bázisok némelyikén való átjutáshoz is továbbfejlesztett egységekre lehet szükség.\nFejleszd ki az [accent]Elektrolizátort[] és a [accent]Tankújratervezőt[]. sector.split.description = A minimális ellenséges jelenlét miatt ez a szektor tökéletes az új nyersanyagszállító technológiák tesztelésére. sector.basin.description = Jelentős ellenséges jelenlét lett érzékelve ebben a szektorban.\nÉpíts gyorsan egységeket, és foglald el az ellenséges támaszpontokat, hogy megvethesd a lábad. sector.marsh.description = Ebben a szektorban rengeteg arkicit található, de kevés a kürtő.\nÉpíts [accent]Kémiai égetőkamrát[] az áramfejlesztéshez. @@ -1010,7 +1010,7 @@ stat.immunities = Immunitások stat.healing = Gyógyulás ability.forcefield = Erőtér -ability.forcefield.description = Erőteret vetít ki, mely elnyeli a lövedékeket +ability.forcefield.description = Olyan erőteret vetít ki, amely elnyeli a lövedékeket ability.repairfield = Javító mező ability.repairfield.description = Megjavítja a közeli egységeket ability.statusfield = Állapotmező @@ -1024,7 +1024,7 @@ ability.movelightning.description = Mozgás közben villámokat bocsát ki ability.armorplate = Páncéllemez ability.armorplate.description = Csökkenti a kapott sebzést lövés közben ability.shieldarc = Pajzs ív -ability.shieldarc.description = Erőteret vetít ki egy ívben, mely elnyeli a lövedékeket +ability.shieldarc.description = Olyan erőteret vetít ki egy ívben, amely elnyeli a lövedékeket ability.suppressionfield = Javítás elnyomása ability.suppressionfield.description = Leállítja a közeli javítóépületeket ability.energyfield = Energiamező @@ -1048,7 +1048,7 @@ ability.stat.cooldown = [stat]{0} mp[lightgray] újratöltődés ability.stat.maxtargets = [stat]{0}[lightgray] max. célpont ability.stat.sametypehealmultiplier = [stat]{0}%[lightgray] javítási mennyiség (azonos típusnál) ability.stat.damagereduction = [stat]{0}%[lightgray] sebzéscsökkentés -ability.stat.minspeed = [stat]{0} csempe/mp[lightgray] min. sebesség +ability.stat.minspeed = [stat]{0} mező/mp[lightgray] min. sebesség ability.stat.duration = [stat]{0} mp[lightgray] időtartam ability.stat.buildtime = [stat]{0} mp[lightgray] építési idő @@ -1056,7 +1056,7 @@ bar.onlycoredeposit = Csak a támaszpont elhelyezése megengedett bar.drilltierreq = Erősebb fúró szükséges bar.noresources = Hiányzó nyersanyagok bar.corereq = Támaszpont szükséges -bar.corefloor = Támaszpont zónacsempe szükséges +bar.corefloor = Támaszpont zónamező szükséges bar.cargounitcap = A rakományszállító egység teljes kapacitáson bar.drillspeed = Termelés: {0}/mp bar.pumpspeed = Termelés: {0}/mp @@ -1086,12 +1086,12 @@ bar.strength = [stat]{0}[lightgray]x erő units.processorcontrol = [lightgray]Processzorvezérelt bullet.damage = [stat]{0}[lightgray] sebzés -bullet.splashdamage = [stat]{0}[lightgray] területi sebzés ~[stat] {1}[lightgray] csempe +bullet.splashdamage = [stat]{0}[lightgray] területi sebzés ~[stat] {1}[lightgray] mező bullet.incendiary = [stat]gyújtó bullet.homing = [stat]nyomkövető bullet.armorpierce = [stat]páncéltörő bullet.maxdamagefraction = [stat]{0}%[lightgray] sebzési határérték -bullet.suppression = [stat]{0} mp[lightgray] javításelnyomás ~[stat]{1}[lightgray] csempe +bullet.suppression = [stat]{0} mp[lightgray] javításelnyomás ~[stat]{1}[lightgray] mező bullet.interval = [stat]{0}/mp[lightgray] gyakoriságú lövedékek: bullet.frags = [stat]{0}[lightgray]db repeszlövedék: bullet.lightning = [stat]{0}[lightgray]db villámcsapás ~[stat]{1}[lightgray] sebzés @@ -1108,7 +1108,7 @@ bullet.range = [stat]{0}[lightgray] csempés hatótávolság unit.blocks = blokk unit.blockssquared = blokk² unit.powersecond = áramegység/mp -unit.tilessecond = csempe/mp +unit.tilessecond = mező/mp unit.liquidsecond = folyadékegység/mp unit.itemssecond = nyersanyag/mp unit.liquidunits = folyadékegység @@ -1338,7 +1338,7 @@ rules.schematic = Vázlatok engedélyezése rules.wavetimer = Hullámok időzítése rules.wavesending = Hullámok küldése rules.allowedit = Szabályok szerkesztésének engedélyezése -rules.allowedit.info = Ha engedélyezve van, a játékos szerkesztheti a szabályokat a játékban a Szünet menü bal alsó sarkában található gomb segítségével. +rules.allowedit.info = Ha engedélyezve van, akkor a játékos szerkesztheti a szabályokat a játékban a Szünet menü bal alsó sarkában található gomb segítségével. rules.waves = Hullámok rules.airUseSpawns = A légi egységek használjanak kezdőpontokat rules.attack = Támadási mód @@ -1365,7 +1365,7 @@ rules.unitcapvariable = A támaszpontok befolyásolják a gyártható egységek rules.unitpayloadsexplode = A szállított rakományok az egységgel együtt felrobbannak rules.unitcap = Alap egységdarabszám rules.limitarea = Játékterület korlátozása -rules.enemycorebuildradius = Ellenséges támaszpont körüli tiltott zóna sugara:[lightgray] (csempe) +rules.enemycorebuildradius = Ellenséges támaszpont körüli tiltott zóna sugara:[lightgray] (mező) rules.wavespacing = A hullámok közötti szünetek ideje:[lightgray] (mp) rules.initialwavespacing = Az első hullám előtti szünet ideje:[lightgray] (mp) rules.buildcostmultiplier = Építési költség szorzója @@ -1373,7 +1373,7 @@ rules.buildspeedmultiplier = Építési sebesség szorzója rules.deconstructrefundmultiplier = Bontási visszatérítés szorzója rules.waitForWaveToEnd = Az ellenség kivárja a korábbi hullám végét rules.wavelimit = A pálya az utolsó hullám után ér véget -rules.dropzoneradius = A ledobási zóna sugara:[lightgray] (csempe) +rules.dropzoneradius = A ledobási zóna sugara:[lightgray] (mező) rules.unitammo = Az egységeknek lőszer kell [red](törölhető) rules.enemyteam = Ellenséges csapat rules.playerteam = Saját csapat @@ -1724,9 +1724,9 @@ block.silicon-crucible.name = Szilíciumolvasztó block.overdrive-dome.name = Túlhajtó búra block.interplanetary-accelerator.name = Bolygóközi gyorsító block.constructor.name = Építő -block.constructor.description = Legfeljebb 2×2-es csempeméretű épületeket gyárt. +block.constructor.description = Legfeljebb 2×2-es mezőméretű épületeket gyárt. block.large-constructor.name = Nagy építő -block.large-constructor.description = Akár 4×4-es csempeméretű épületeket is gyárt. +block.large-constructor.description = Akár 4×4-es mezőméretű épületeket is gyárt. block.deconstructor.name = Lebontó block.deconstructor.description = Lebontja az épületeket és az egységeket. Visszaadja az építési költség 100%-át. block.payload-loader.name = Rakománycsomagoló @@ -1824,8 +1824,8 @@ block.shockwave-tower.name = Sokkhullámtorony block.shield-projector.name = Pajzskivetítő block.large-shield-projector.name = Nagy pajzskivetítő block.armored-duct.name = Páncélozott szállítószalag -block.overflow-duct.name = Túlcsorduló szállítószalag -block.underflow-duct.name = Alulcsorduló szállítószalag +block.overflow-duct.name = Túlcsorduló kapu +block.underflow-duct.name = Alulcsorduló kapu block.duct-unloader.name = Szállítószalag-kirakodó block.surge-conveyor.name = Elektrometál-szállítószalag block.surge-router.name = Elektrometál-elosztó @@ -1952,7 +1952,7 @@ gz.conveyors.mobile = Fejleszd ki, és építs \uf896 [accent]Szállítószalago gz.drills = Bővítsd a bányászati kapacitást.\nÉpíts több mechanikus fúrót.\nBányássz 100 rezet. gz.lead = Az \uf837 [accent]ólom[] egy másik gyakran használt nyersanyag.\nÉpíts fúrókat az ólom kitermelésére. gz.moveup = \ue804 Menj tovább a további utasításokért. -gz.turrets = Fejleszd ki, és építs két \uf861 [accent]Duo[] lövegtornyot, hogy megvédd a támaszpontot.\nA Duo lövegtornyoknak \uf838 [accent]lőszerre[] van szükségük, mely szállítószalaggal juttatható el hozzájuk. +gz.turrets = Fejleszd ki, és építs két \uf861 [accent]Duo[] lövegtornyot, hogy megvédd a támaszpontot.\nA Duo lövegtornyoknak \uf838 [accent]lőszerre[] van szükségük, amelyet szállítószalaggal juttathatsz el hozzájuk. gz.duoammo = Szállítószalagok segítségével lásd el [accent]rézzel[] a Duo lövegtornyokat. gz.walls = A [accent]falak[] megakadályozhatják, hogy az épületekben károk keletkezzenek.\nÉpíts \uf8ae [accent]Rézfalakat[] a lövegtornyok köré. gz.defend = Az ellenség közeledik, készülj fel a védekezésre. @@ -2035,7 +2035,7 @@ liquid.ozone.description = Az anyaggyártásban oxidálószerként, illetve üze liquid.hydrogen.description = A nyersanyagok kitermelésében, egységgyártásban és szerkezetjavításban használatos. Gyúlékony. liquid.cyanogen.description = Lőszerként, fejlett egységek építéséhez és különböző reakciókhoz használatos a fejlett blokkokban. Erősen gyúlékony. liquid.nitrogen.description = A nyersanyagok kitermelésénél, gáztermelésnél és egységgyártásnál is használatos. Semleges gáz. -liquid.neoplasm.description = A neoplázia reaktor veszélyes biológiai mellékterméke. Gyorsan átterjed minden szomszédos víztartalmú blokkra, amelyhez hozzáér, és közben károsítja azokat. Sűrű folyadék. +liquid.neoplasm.description = A neopláziareaktor veszélyes biológiai mellékterméke. Gyorsan átterjed minden szomszédos víztartalmú blokkra, amelyhez hozzáér, és közben károsítja azokat. Sűrű folyadék. liquid.neoplasm.details = Neoplazma. Egy kontrollálhatatlan, gyorsan osztódó, iszap állagú, szintetikus sejtmassza. Hőálló. Rendkívül veszélyes minden vízzel kapcsolatos szerkezetre.\n\nTúl összetett és instabil a szabványos elemzésekhez. Potenciális alkalmazási területe ismeretlen. A salakmedencékben való elégetés ajánlott. block.derelict = \uf77e [lightgray]Elhagyatott @@ -2129,7 +2129,7 @@ block.solar-panel-large.description = Napfényből állít elő kevés áramot. block.thorium-reactor.description = Jelentős mennyiségű áramot állít elő tóriumból. Állandó hűtést igényel. Ha nincs megfelelően hűtőfolyadékkal ellátva, akkor felrobban. block.impact-reactor.description = Csúcsra járatva rengeteg áramot termel. A reakció beindítása jelentős árambefektetést igényel. block.mechanical-drill.description = Ércre helyezve lassú tempóban termeli ki az adott nyersanyagot. Csak alapvető nyersanyagok kitermelésére képes. -block.pneumatic-drill.description = Egy fejlettebb fúró, mely titán kitermelésére is képes. Gyorsabban dolgozik a mechanikus fúrónál. +block.pneumatic-drill.description = Egy olyan, fejlettebb fúró, amely titán kitermelésére is alkalmas. Gyorsabban dolgozik a mechanikus fúrónál. block.laser-drill.description = Lézerek használatával még gyorsabban tud dolgozni, de áramot igényel. Képes tóriumot kitermelni. block.blast-drill.description = A technológia csúcsa. Nagy mennyiségű áramot igényel. block.water-extractor.description = Kiszivattyúzza a talajvizet. Olyan helyeken használatos, ahol nem érhető el felszíni vízforrás. @@ -2210,7 +2210,7 @@ block.slag-heater.description = Fűti a vele szemben álló épületeket. Salako block.phase-heater.description = Fűti a vele szemben álló épületeket. Tóritkvarcot igényel. block.heat-redirector.description = Más blokkokba irányítja a felgyülemlett hőt. block.heat-router.description = A felgyülemlett hőt három kimeneti irányba osztja. -block.electrolyzer.description = A vizet hidrogénné és ózonná alakítja. A keletkező gázokat két ellentétes irányba adja ki, melyeket a megfelelő színek jelölik. +block.electrolyzer.description = A vizet hidrogénné és ózonná alakítja. A keletkező gázokat két ellentétes irányba adja ki, amelyek a megfelelő színnel vannak jelölve. block.atmospheric-concentrator.description = Koncentrálja a légkörben lévő nitrogént. Hőt igényel. block.surge-crucible.description = Salakból és szilíciumból elektrometált olvaszt. Hőt igényel. block.phase-synthesizer.description = Tóriumból, homokból és ózonból tóritkvarcot szintetizál. Hőt igényel. @@ -2245,7 +2245,7 @@ block.duct-router.description = A nyersanyagokat egyenlően osztja el három ir block.overflow-duct.description = Csak akkor ad ki nyersanyagot oldalra, ha előrefelé már nem tud. block.duct-bridge.description = Nyersanyagokat szállít épületek és terepakadályok fölött. block.duct-unloader.description = A kiválasztott nyersanyagokat kirakodja a mögötte lévő épületekből. Támaszpontokból nem tud kirakodni. -block.underflow-duct.description = A túlcsorduló szállítószalag ellentettje. Csak akkor ad ki nyersanyagot előrefelé, ha oldalra már nem tud. +block.underflow-duct.description = A túlcsorduló kapu ellentettje. Csak akkor ad ki nyersanyagot előrefelé, ha oldalra már nem tud. block.reinforced-liquid-junction.description = Csomópontként működik két egymást keresztező csővezeték között. block.surge-conveyor.description = A nyersanyagokat rakományokban mozgatja. Árammal felgyorsítható. Vezeti az áramot. block.surge-router.description = Egyenletesen osztja el a nyersanyagokat három irányba az elektrometál-szállítószalagról. Árammal felgyorsítható. Vezeti az Áramot. @@ -2307,7 +2307,7 @@ unit.mono.description = Automatikusan rezet és ólmot bányászik, a támaszpon unit.poly.description = Automatikusan újjáépíti az elpusztult épületeket és segít más egységeknek az építkezésben. unit.mega.description = Automatikusan javítja a sérült épületeket. Kis blokkok és földi egységek szállítására képes. unit.quad.description = Plazmabombákat szór földi célpontokra, amelyek sebzik az ellenséget, de javítják a szövetséges épületeket. Közepes méretű földi egységek szállítására képes. -unit.oct.description = Megvédi a közeli szövetségeseket egy regeneráló pajzssal. A legtöbb földi egység szállítására képes. +unit.oct.description = Megvédi a közeli szövetségeseket egy regeneráló pajzzsal. A legtöbb földi egység szállítására képes. unit.risso.description = Rakéták és lövedékek záporát zúdítja minden közeli ellenségre. unit.minke.description = Tüzérségi és szokásos lövedékeket lő közeli földi célpontokra. unit.bryde.description = Nagy távolságú tüzérségi lövedékeket és rakétákat lő az ellenségre. @@ -2319,7 +2319,7 @@ unit.gamma.description = Megvédi at Atommag támaszpontot az ellenségtől. Ép unit.retusa.description = Célkövető torpedókat lő ki minden közeli ellenségre. Javítja a szövetséges egységeket. unit.oxynoe.description = Épületjavító lángcsóvát lő az ellenséges célpontokra. Célba veszi az ellenséges lövedékeket egy pontvédelmi toronnyal. unit.cyerce.description = Célkereső kazettás rakétákat lő ki az ellenségre. Javítja a szövetséges egységeket. -unit.aegires.description = Elektromosan sokkolja az összes ellenséges egységet és építményt, amely az energiamezőjébe lép. Javítja az összes szövetségest. +unit.aegires.description = Elektromosan sokkolja az összes ellenséges egységet és építményt, amely az energiamezejébe lép. Javítja az összes szövetségest. unit.navanax.description = Robbanékony EMI-lövedékeket lő ki, jelentős károkat okozva az ellenséges energiahálózatokban, és megjavítva a szövetségesek építményeit. Szétolvasztja a közeli ellenséges célpontokat a 4 autonóm lézertornyával. #Erekir @@ -2364,8 +2364,8 @@ lst.unitbind = Összekapcsolás a következő egységtípussal, és tárolás a lst.unitcontrol = A jelenleg összekapcsolt egység vezérlése. lst.unitradar = Egységek keresése a jelenleg összekapcsolt egység körül. lst.unitlocate = Egy adott típusú pozíció/épület keresése bárhol a pályán.\nÖsszekapcsolt egységet igényel. -lst.getblock = Csempeadatok lekérdezése tetszőleges helyen. -lst.setblock = Csempeadatok beállítása tetszőleges helyen. +lst.getblock = Mezőadatok lekérdezése tetszőleges helyen. +lst.setblock = Mezőadatok beállítása tetszőleges helyen. lst.spawnunit = Egység lerakása az adott helyen. lst.applystatus = Állapothatás alkalmazása vagy törlése egy egységről. lst.weathersense = Ellenőrzés, hogy egy bizonyos típusú időjárás aktív-e. @@ -2444,7 +2444,7 @@ laccess.controller = Egységvezérlő. Ha processzor vezérli, akkor a processzo laccess.dead = Egy épület/egység halott-e, vagy már nem érvényes-e. laccess.controlled = Ezt adja vissza:\n[accent]@ctrlProcessor[], ha az egységvezérlő egy processzor\n[accent]@ctrlPlayer[], ha az egység/épület vezérlője a játékos\n[accent]@ctrlFormation[], ha az egység formációban van\nKülönben 0. laccess.progress = Művelet előrehaladása, 0 és 1 között.\nA termelés, a lövegtorony-újratöltés vagy az építés előrehaladását adja vissza. -laccess.speed = Az egység legnagyobb sebessége, csempe/mp-ben. +laccess.speed = Az egység legnagyobb sebessége, mező/mp-ben. laccess.id = Egy egység/blokk/nyersanyag/folyadék azonosítója.\nEz a keresési művelet fordítottja. lcategory.unknown = Ismeretlen From ccb1e72318a09c6003a9eff7aac6de9d7344f1f3 Mon Sep 17 00:00:00 2001 From: meiqiu <119494143+MEIQIUawa@users.noreply.github.com> Date: Sat, 3 Aug 2024 04:53:25 +0800 Subject: [PATCH 032/437] Update servers_v7.json (#10075) --- servers_v7.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers_v7.json b/servers_v7.json index 613e8bcac1..3a62ce9493 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -29,7 +29,7 @@ }, { "name": "meiqiuMDT", - "address": ["cn1.meiqiumdt.top","cn1.meiqiumdt.top:7000","cn1.meiqiumdt.top:8000","cn1.meiqiumdt.top:7013","cn1.meiqiumdt.top:9000"] + "address": ["cn.meiqiumdt.top","ai.meiqiumdt.top","cn2.meiqiumdt.top"] }, { "name": "DontVin", From 8b24030d7a74261f7afc99d54080e8a2304020fa Mon Sep 17 00:00:00 2001 From: Joan Josep Date: Fri, 2 Aug 2024 22:53:32 +0200 Subject: [PATCH 033/437] Update bundle_ca.properties (#10074) --- core/assets/bundles/bundle_ca.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/assets/bundles/bundle_ca.properties b/core/assets/bundles/bundle_ca.properties index 3be98ea31b..468a0d49cb 100644 --- a/core/assets/bundles/bundle_ca.properties +++ b/core/assets/bundles/bundle_ca.properties @@ -1122,7 +1122,7 @@ category.crafting = Entrada/Sortida category.function = Funcionament category.optional = Millores opcionals setting.alwaysmusic.name = Reprodueix música sempre -setting.alwaysmusic.description = Quan està activat, la música es reproduirà en bucle durant les partides.Quan està desactivat, només es reproduirà a intervals aleatoris. +setting.alwaysmusic.description = Quan està activat, la música es reproduirà en bucle durant les partides.\nQuan està desactivat, només es reproduirà a intervals aleatoris. setting.skipcoreanimation.name = Omet l’animació del llançament i aterratge del nucli setting.landscape.name = Bloca el paisatge setting.shadows.name = Ombres From 76717664699dc259a24395cfbc7bb6eab7c498ab Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 2 Aug 2024 17:42:22 -0400 Subject: [PATCH 034/437] Beam node link previews, closes Anuken/Mindustry-Suggestions/issues/5140 --- core/src/mindustry/world/Block.java | 8 ++ .../world/blocks/power/BeamNode.java | 93 +++++++++++++++++++ gradle.properties | 2 +- 3 files changed, 102 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index d2b2cbf2fa..1576cfb162 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -441,6 +441,14 @@ public class Block extends UnlockableContent implements Senseable{ Drawf.square(other.x, other.y, other.block.size * tilesize / 2f + 2f, Pal.place); }); + + BeamNode.getNodeLinks(tile, this, player.team(), other -> { + BeamNode node = (BeamNode)other.block; + Draw.color(node.laserColor1, Renderer.laserOpacity * 0.5f); + node.drawLaser(other.x, other.y, x * tilesize + offset, y * tilesize + offset, size, other.block.size); + + Drawf.square(other.x, other.y, other.block.size * tilesize / 2f + 2f, Pal.place); + }); } } } diff --git a/core/src/mindustry/world/blocks/power/BeamNode.java b/core/src/mindustry/world/blocks/power/BeamNode.java index b99590d2be..163a074a52 100644 --- a/core/src/mindustry/world/blocks/power/BeamNode.java +++ b/core/src/mindustry/world/blocks/power/BeamNode.java @@ -1,14 +1,17 @@ package mindustry.world.blocks.power; +import arc.func.*; import arc.graphics.*; import arc.graphics.g2d.*; import arc.math.*; import arc.math.geom.*; import arc.struct.*; +import arc.util.*; import mindustry.*; import mindustry.annotations.Annotations.*; import mindustry.core.*; import mindustry.entities.*; +import mindustry.game.*; import mindustry.gen.*; import mindustry.graphics.*; import mindustry.input.*; @@ -20,6 +23,9 @@ import java.util.*; import static mindustry.Vars.*; public class BeamNode extends PowerBlock{ + //maximum expected range of any beam node; used for previews + private static final int maxRange = 30; + public int range = 5; public @Load(value = "@-beam", fallback = "power-beam") TextureRegion laser; @@ -105,12 +111,99 @@ public class BeamNode extends PowerBlock{ } } + /** Iterates through linked nodes of a block at a tile. All returned buildings are beam nodes. */ + public static void getNodeLinks(Tile tile, Block block, Team team, Cons others){ + var tree = team.data().buildingTree; + + if(tree == null) return; + + float cx = tile.worldx() + block.offset, cy = tile.worldy() + block.offset, s = block.size * tilesize/2f, r = maxRange * tilesize; + + for(int i = 0; i < 4; i++){ + int dx = Geometry.d4[i].x, dy = Geometry.d4[i].y; + for(int length = 1; length < maxRange; length++){ + Tile other = tile.nearby(dx * i, dy * i); + if(other == null || other.build == null || other.build.isInsulated()) break; + + Building build = other.build; + + if(build.team == team && build.block.hasPower && build.block.connectedPower){ + if(build instanceof BeamNodeBuild){ + if(build.tileX() == tile.x || build.tileY() == tile.y){ + others.get(build); + break; + } + }else{ //it's a power structure that is blocking the way to any potential beam node. + break; + } + } + } + + switch(i){ + case 0 -> Tmp.r1.set(cx - s, cy - s, r, s * 2f); + case 1 -> Tmp.r1.set(cx - s, cy - s, s * 2f, r); + case 2 -> Tmp.r1.set(cx + s, cy - s, -r, s * 2f).normalize(); + case 3 -> Tmp.r1.set(cx - s, cy + s, s * 2f, -r).normalize(); + } + + tempBuilds.clear(); + tree.intersect(Tmp.r1, tempBuilds); + int fi = i; + Building closest = tempBuilds.min(b -> b instanceof BeamNodeBuild node && node.couldConnect((fi + 2) % 4, block, tile.x, tile.y), b -> b.dst2(cx, cy)); + if(closest != null){ + others.get(closest); + } + } + } + + /** Note that x1 and y1 are expected to be coordinates of the node to draw the beam from. */ + public void drawLaser(float x1, float y1, float x2, float y2, int size1, int size2){ + float w = laserWidth; + float dst = Math.max(Math.abs(x1 - x2), Math.abs(y2 - y1)) / tilesize; + float sizeOff = dst * tilesize - (size1 + size2) * tilesize/2f; + + //don't draw lasers for adjacent blocks + if(dst > 1 + size/2){ + var point = Geometry.d4(Tile.relativeTo(x1, y1, x2, y2)); + float poff = tilesize/2f; + Drawf.laser(laser, laserEnd, x1 + poff*size*point.x, y1 + poff*size*point.y, x1 + (poff*size + sizeOff) * point.x, y1 + (poff*size + sizeOff) * point.y, w); + } + } + public class BeamNodeBuild extends Building{ //current links in cardinal directions public Building[] links = new Building[4]; public Tile[] dests = new Tile[4]; public int lastChange = -2; + /** @return whether a beam could theoretically connect with the specified block at a position */ + public boolean couldConnect(int direction, Block target, int targetX, int targetY){ + int offset = -(target.size - 1) / 2; + int minX = targetX + offset, minY = targetY + offset, maxX = targetX + offset + target.size - 1, maxY = targetY + offset + target.size - 1; + var dir = Geometry.d4[direction]; + + int rangeOffset = size/2; + + //find first block with power in range + for(int j = 1 + rangeOffset; j <= range + rangeOffset; j++){ + var other = world.tile(tile.x + j * dir.x, tile.y + j * dir.y); + + if(other == null) return false; + + //hit insulated wall + if((other.build != null && other.build.isInsulated()) || (other.block().hasPower && other.block().connectedPower && other.team() == team)){ + return false; + } + + //within target rectangle + if(other.x >= minX && other.y >= minY && other.x <= maxX && other.y <= maxY){ + return true; + } + } + + return false; + } + @Override public void updateTile(){ //TODO this block technically does not need to update every frame, perhaps put it in a special list. diff --git a/gradle.properties b/gradle.properties index 5c00967a82..048ee4d9ef 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,4 +26,4 @@ org.gradle.caching=true org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.connectionTimeout=100000 android.enableR8.fullMode=false -archash=1fdfcdc213 +archash=6676d38433 From 52d10f11f8986a2ac038a88dc91c0003bf9878f2 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 2 Aug 2024 23:59:21 -0400 Subject: [PATCH 035/437] Cleanup --- .../world/blocks/power/BeamNode.java | 20 +------------------ 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/core/src/mindustry/world/blocks/power/BeamNode.java b/core/src/mindustry/world/blocks/power/BeamNode.java index 163a074a52..d5477e182c 100644 --- a/core/src/mindustry/world/blocks/power/BeamNode.java +++ b/core/src/mindustry/world/blocks/power/BeamNode.java @@ -120,25 +120,6 @@ public class BeamNode extends PowerBlock{ float cx = tile.worldx() + block.offset, cy = tile.worldy() + block.offset, s = block.size * tilesize/2f, r = maxRange * tilesize; for(int i = 0; i < 4; i++){ - int dx = Geometry.d4[i].x, dy = Geometry.d4[i].y; - for(int length = 1; length < maxRange; length++){ - Tile other = tile.nearby(dx * i, dy * i); - if(other == null || other.build == null || other.build.isInsulated()) break; - - Building build = other.build; - - if(build.team == team && build.block.hasPower && build.block.connectedPower){ - if(build instanceof BeamNodeBuild){ - if(build.tileX() == tile.x || build.tileY() == tile.y){ - others.get(build); - break; - } - }else{ //it's a power structure that is blocking the way to any potential beam node. - break; - } - } - } - switch(i){ case 0 -> Tmp.r1.set(cx - s, cy - s, r, s * 2f); case 1 -> Tmp.r1.set(cx - s, cy - s, s * 2f, r); @@ -150,6 +131,7 @@ public class BeamNode extends PowerBlock{ tree.intersect(Tmp.r1, tempBuilds); int fi = i; Building closest = tempBuilds.min(b -> b instanceof BeamNodeBuild node && node.couldConnect((fi + 2) % 4, block, tile.x, tile.y), b -> b.dst2(cx, cy)); + tempBuilds.clear(); if(closest != null){ others.get(closest); } From 571e788170e6b7a93ceba272f1a45a112aed58a7 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 3 Aug 2024 00:17:54 -0400 Subject: [PATCH 036/437] Fixed sound instruction layout --- core/src/mindustry/logic/GlobalVars.java | 2 +- core/src/mindustry/logic/LStatements.java | 22 ++++------------------ 2 files changed, 5 insertions(+), 19 deletions(-) diff --git a/core/src/mindustry/logic/GlobalVars.java b/core/src/mindustry/logic/GlobalVars.java index 47292d4130..ffafbc9437 100644 --- a/core/src/mindustry/logic/GlobalVars.java +++ b/core/src/mindustry/logic/GlobalVars.java @@ -94,7 +94,7 @@ public class GlobalVars{ //sounds if(Core.assets != null){ for(Sound sound : Core.assets.getAll(Sound.class, new Seq<>(Sound.class))){ - if(sound != Sounds.none && sound != Sounds.swish){ + if(sound != Sounds.none && sound != Sounds.swish && sound.file != null){ String name = sound.file.nameWithoutExtension(); soundNames.add(name); put("@sfx-" + name, Sounds.getSoundId(sound)); diff --git a/core/src/mindustry/logic/LStatements.java b/core/src/mindustry/logic/LStatements.java index c33aa851ef..7c8bd8558f 100644 --- a/core/src/mindustry/logic/LStatements.java +++ b/core/src/mindustry/logic/LStatements.java @@ -1,7 +1,6 @@ package mindustry.logic; import arc.*; -import arc.audio.*; import arc.func.*; import arc.graphics.*; import arc.scene.style.*; @@ -2128,8 +2127,6 @@ public class LStatements{ public boolean positional; public String id = "@sfx-pew", volume = "1", pitch = "1", pan = "0", x = "@thisx", y = "@thisy"; - private transient TextField tfield; - @Override public void build(Table table){ rebuild(table); @@ -2145,15 +2142,13 @@ public class LStatements{ row(table); - table.add(" play "); - - tfield = field(table, id, str -> id = str).padRight(0f).get(); + field(table, id, str -> id = str).padRight(0f).get(); table.button(b -> { b.image(Icon.pencilSmall); b.clicked(() -> showSelect(b, GlobalVars.soundNames.toArray(String.class), id.substring(4), t -> { - sid("@sfx-" + t); + id = "@sfx-" + t; rebuild(table); }, 2, cell -> cell.size(160, 50))); }, Styles.logict, () -> {}).size(40).color(table.color).left().padLeft(-1); @@ -2166,23 +2161,14 @@ public class LStatements{ table.row(); if(positional){ - table.add("at "); + fieldst(table, "x", x, str -> x = str); - fields(table, x, str -> x = str); - - table.add(", "); - - fields(table, y, str -> y = str); + fieldst(table, "y", y, str -> y = str); }else{ fieldst(table, "pan", pan, str -> pan = str); } } - private void sid(String text){ - tfield.setText(text); - id = text; - } - @Override public boolean privileged(){ return true; From e7759989e553fbe3e1a96ac06500576b1eed8216 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 3 Aug 2024 00:20:18 -0400 Subject: [PATCH 037/437] Description rewording --- core/assets/bundles/bundle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index e1e52ad477..f551aac13c 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -2383,7 +2383,7 @@ lst.getflag = Check if a global flag is set. lst.setprop = Sets a property of a unit or building. lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nLimited to 20 times a second per variable. -lst.playsound = Plays a sound either at input position\nif positional or anywhere if global. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction.\n[accent]null []values are ignored. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. From 27f20b7a363526d5511b29387f1287c12a28494c Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 3 Aug 2024 00:51:31 -0400 Subject: [PATCH 038/437] Better implementation of #10047 --- core/assets/bundles/bundle.properties | 2 +- core/src/mindustry/logic/GlobalVars.java | 7 ++++++- core/src/mindustry/logic/LExecutor.java | 13 +++++++++---- core/src/mindustry/logic/LStatements.java | 6 ++++-- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index f551aac13c..9488bd9f50 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -2376,7 +2376,7 @@ lst.setrate = Set processor execution speed in instructions/tick. lst.fetch = Lookup units, cores, players or buildings by index.\nIndices start at 0 and end at their returned count. lst.packcolor = Pack [0, 1] RGBA components into a single number for drawing or rule-setting. lst.setrule = Set a game rule. -lst.flushmessage = Display a message on the screen from the text buffer.\nWill wait until the previous message finishes. +lst.flushmessage = Display a message on the screen from the text buffer.\nIf the success result variable is [accent]@wait[],\nwill wait until the previous message finishes.\nOtherwise, outputs whether displaying the message succeeded. lst.cutscene = Manipulate the player camera. lst.setflag = Set a global flag that can be read by all processors. lst.getflag = Check if a global flag is set. diff --git a/core/src/mindustry/logic/GlobalVars.java b/core/src/mindustry/logic/GlobalVars.java index ffafbc9437..3b954d986d 100644 --- a/core/src/mindustry/logic/GlobalVars.java +++ b/core/src/mindustry/logic/GlobalVars.java @@ -27,7 +27,7 @@ public class GlobalVars{ public static final Rand rand = new Rand(); //non-constants that depend on state - private static LVar varTime, varTick, varSecond, varMinute, varWave, varWaveTime, varMapW, varMapH, varServer, varClient, varClientLocale, varClientUnit, varClientName, varClientTeam, varClientMobile; + private static LVar varTime, varTick, varSecond, varMinute, varWave, varWaveTime, varMapW, varMapH, varWait, varServer, varClient, varClientLocale, varClientUnit, varClientName, varClientTeam, varClientMobile; private ObjectMap vars = new ObjectMap<>(); private Seq varEntries = new Seq<>(); @@ -73,6 +73,7 @@ public class GlobalVars{ varMapW = putEntry("@mapw", 0); varMapH = putEntry("@maph", 0); + varWait = putEntry("@wait", null); putEntryOnly("sectionNetwork"); @@ -209,6 +210,10 @@ public class GlobalVars{ } } + public LVar waitVar(){ + return varWait; + } + public Seq getEntries(){ return varEntries; } diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index 3b7f8c08d3..4a977b3dcd 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -42,7 +42,6 @@ public class LExecutor{ maxDisplayBuffer = 1024, maxTextBuffer = 400; - public LInstruction[] instructions = {}; /** Non-constant variables used for network sync */ public LVar[] vars = {}; @@ -1601,7 +1600,7 @@ public class LExecutor{ public void run(LExecutor exec){ //set default to success outSuccess.setnum(1); - if(headless && type != MessageType.mission) { + if(headless && type != MessageType.mission){ exec.textBuffer.setLength(0); return; } @@ -1611,8 +1610,14 @@ public class LExecutor{ type == MessageType.notify && ui.hudfrag.hasToast() || type == MessageType.toast && ui.hasAnnouncement() ){ - //set outSuccess=false to let user retry. - outSuccess.setnum(0); + //backwards compatibility; if it is @wait, block execution + if(outSuccess == logicVars.waitVar()){ + exec.counter.numval--; + exec.yield = true; + }else{ + //set outSuccess=false to let user retry. + outSuccess.setnum(0); + } return; } diff --git a/core/src/mindustry/logic/LStatements.java b/core/src/mindustry/logic/LStatements.java index 7c8bd8558f..a27e35304b 100644 --- a/core/src/mindustry/logic/LStatements.java +++ b/core/src/mindustry/logic/LStatements.java @@ -1594,7 +1594,7 @@ public class LStatements{ @RegisterStatement("message") public static class FlushMessageStatement extends LStatement{ public MessageType type = MessageType.announce; - public String duration = "3", outSuccess = "success"; + public String duration = "3", outSuccess = "@wait"; @Override public void build(Table table){ @@ -1616,9 +1616,11 @@ public class LStatements{ case announce, toast -> { table.add(" for "); fields(table, duration, str -> duration = str); - table.add(" secs "); + table.add(" sec "); } } + row(table); + table.add(" success "); fields(table, outSuccess, str -> outSuccess = str); } From 0b0db7bab2f2fad5385e3d5b3dd204c4df16cd9e Mon Sep 17 00:00:00 2001 From: Github Actions Date: Sat, 3 Aug 2024 04:52:20 +0000 Subject: [PATCH 039/437] Automatic bundle update --- core/assets/bundles/bundle_be.properties | 1 + core/assets/bundles/bundle_bg.properties | 1 + core/assets/bundles/bundle_ca.properties | 1 + core/assets/bundles/bundle_cs.properties | 1 + core/assets/bundles/bundle_da.properties | 1 + core/assets/bundles/bundle_de.properties | 1 + core/assets/bundles/bundle_es.properties | 1 + core/assets/bundles/bundle_et.properties | 1 + core/assets/bundles/bundle_eu.properties | 1 + core/assets/bundles/bundle_fi.properties | 1 + core/assets/bundles/bundle_fil.properties | 1 + core/assets/bundles/bundle_fr.properties | 1 + core/assets/bundles/bundle_hu.properties | 1 + core/assets/bundles/bundle_id_ID.properties | 1 + core/assets/bundles/bundle_it.properties | 1 + core/assets/bundles/bundle_ja.properties | 1 + core/assets/bundles/bundle_ko.properties | 1 + core/assets/bundles/bundle_lt.properties | 1 + core/assets/bundles/bundle_nl.properties | 1 + core/assets/bundles/bundle_nl_BE.properties | 1 + core/assets/bundles/bundle_pl.properties | 1 + core/assets/bundles/bundle_pt_BR.properties | 1 + core/assets/bundles/bundle_pt_PT.properties | 1 + core/assets/bundles/bundle_ro.properties | 1 + core/assets/bundles/bundle_ru.properties | 1 + core/assets/bundles/bundle_sr.properties | 1 + core/assets/bundles/bundle_sv.properties | 1 + core/assets/bundles/bundle_th.properties | 1 + core/assets/bundles/bundle_tk.properties | 1 + core/assets/bundles/bundle_tr.properties | 1 + core/assets/bundles/bundle_uk_UA.properties | 1 + core/assets/bundles/bundle_vi.properties | 1 + core/assets/bundles/bundle_zh_CN.properties | 1 + core/assets/bundles/bundle_zh_TW.properties | 1 + 34 files changed, 34 insertions(+) diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties index 442b6afcdd..ca5a3ac828 100644 --- a/core/assets/bundles/bundle_be.properties +++ b/core/assets/bundles/bundle_be.properties @@ -2329,6 +2329,7 @@ lst.getflag = Check if a global flag is set. lst.setprop = Sets a property of a unit or building. lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. diff --git a/core/assets/bundles/bundle_bg.properties b/core/assets/bundles/bundle_bg.properties index 7e895bada1..fc6c006c33 100644 --- a/core/assets/bundles/bundle_bg.properties +++ b/core/assets/bundles/bundle_bg.properties @@ -2343,6 +2343,7 @@ lst.getflag = Check if a global flag is set. lst.setprop = Sets a property of a unit or building. lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. diff --git a/core/assets/bundles/bundle_ca.properties b/core/assets/bundles/bundle_ca.properties index 468a0d49cb..117208e5d0 100644 --- a/core/assets/bundles/bundle_ca.properties +++ b/core/assets/bundles/bundle_ca.properties @@ -2353,6 +2353,7 @@ lst.getflag = Obtén un senyal global. lst.setprop = Estableix una propietat d’una unitat o estructura. lst.effect = Crea un efecte de partícula. lst.sync = Sincronitza una variable a través de la xarxa.\nS’invoca com a molt 10 vegades per segon. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Crea una marca lògica al món.\nS’ha de donar un ID per a identificar-la.\nEs poden establir fins a 20.000 marcadors per món. lst.setmarker = Estableix una propietat per a la marca.\nL’ID que es faci servir ha de ser el mateix que el de la instrucció de crear la marca. lst.localeprint = Afegeix el valor d’una propietat de la traducció d’un mapa a la cua d’impressió.\nPer a establir paquets de traducció de mapes a l’editor de mapes, comproveu [accent]Informació del mapa > Paquets de traducció[].\nSi el client és un dispositiu mòbil, primer intenta imprimir una propietat que acabi en «.mobile». diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index 66acc27401..9295bff0f1 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -2348,6 +2348,7 @@ lst.getflag = Check if a global flag is set. lst.setprop = Sets a property of a unit or building. lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. diff --git a/core/assets/bundles/bundle_da.properties b/core/assets/bundles/bundle_da.properties index caac178e24..5aa9563038 100644 --- a/core/assets/bundles/bundle_da.properties +++ b/core/assets/bundles/bundle_da.properties @@ -2329,6 +2329,7 @@ lst.getflag = Check if a global flag is set. lst.setprop = Sets a property of a unit or building. lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index 6bd88461d2..6ef9683e35 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -2378,6 +2378,7 @@ lst.getflag = Überprüfe, ob eine Flag gesetzt ist. lst.setprop = Setzt eine Eigenschaft einer Einheit oder eines Blockes. lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index 93a2f0f3a4..e852a91148 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -2371,6 +2371,7 @@ lst.getflag = Comprueba si se ha establecido una etiqueta global. lst.setprop = Sets a property of a unit or building. lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties index f7fd198ab3..3c7dce81ee 100644 --- a/core/assets/bundles/bundle_et.properties +++ b/core/assets/bundles/bundle_et.properties @@ -2331,6 +2331,7 @@ lst.getflag = Check if a global flag is set. lst.setprop = Sets a property of a unit or building. lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties index c2f4e97364..a9c716446c 100644 --- a/core/assets/bundles/bundle_eu.properties +++ b/core/assets/bundles/bundle_eu.properties @@ -2333,6 +2333,7 @@ lst.getflag = Check if a global flag is set. lst.setprop = Sets a property of a unit or building. lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties index 06da2a8ea5..9de48f463d 100644 --- a/core/assets/bundles/bundle_fi.properties +++ b/core/assets/bundles/bundle_fi.properties @@ -2334,6 +2334,7 @@ lst.getflag = Tarkista, onko globaali tunniste asetettu. lst.setprop = Sets a property of a unit or building. lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. diff --git a/core/assets/bundles/bundle_fil.properties b/core/assets/bundles/bundle_fil.properties index 466a2dd69e..90d555a229 100644 --- a/core/assets/bundles/bundle_fil.properties +++ b/core/assets/bundles/bundle_fil.properties @@ -2330,6 +2330,7 @@ lst.getflag = Check if a global flag is set. lst.setprop = Sets a property of a unit or building. lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index 8c57d0bb1e..43cc996633 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -2378,6 +2378,7 @@ lst.getflag = Vérifie si une variable globale est présente. lst.setprop = Change une propriété d'une unité ou d'un bâtiment. lst.effect = Crée un effet de particules. lst.sync = Synchronise une variable dans le réseau.\nLimité à 20 fois par seconde et par variable. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Crée un marqueur dans le monde.\nUn ID pour identifier le marqueur doit être donné.\nLes marqueurs sont limités à 20,000 par monde. lst.setmarker = Change une propriété d'un marqueur.\nL'ID utilisé doit être le même que celui de l'instruction "Make Marker". lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index 4d4fb8f650..db8acaf19b 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -2383,6 +2383,7 @@ lst.getflag = Ellenőrzés, hogy egy globális jelölő be van-e állítva. lst.setprop = Beállítja egy egység vagy épület tulajdonságát. lst.effect = Részecskehatás létrehozása. lst.sync = Egy változó szinkronizálása a hálózaton keresztül.\nMásodpercenként legfeljebb 20-szor hívható meg. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Új logikai jelölő létrehozása a világban.\nMeg kell adni egy azonosítót a jelölő azonosításához.\nA jelölők száma jelenleg világonként 20 000-re van korlátozva. lst.setmarker = Egy jelölő tulajdonságának beállítása.\nA használt azonosítónak meg kell egyeznie a Make Marker utasításban megadottal.\nA [accent]null []értékek figyelmen kívül lesznek hagyva. lst.localeprint = Hozzáadja a pálya nyelvi csomagjainak tulajdonságértékét a szövegpufferhez.\nA pálya nyelvi csomagjainak beállításait a térképszerkesztőben ellenőrizheted: [accent]Pályainformációk > Nyelvi csomagok[].\nHa a kliens egy mobileszköz, akkor először próbáld kiíratni a „.mobile” végződésű tulajdonságot. diff --git a/core/assets/bundles/bundle_id_ID.properties b/core/assets/bundles/bundle_id_ID.properties index 9c058872ca..4b4e1972cc 100644 --- a/core/assets/bundles/bundle_id_ID.properties +++ b/core/assets/bundles/bundle_id_ID.properties @@ -2369,6 +2369,7 @@ lst.getflag = Periksa apakah ada global flag yang ditentukan. lst.setprop = Sets a property of a unit or building. lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties index 5b6dc2407d..686a87f47e 100644 --- a/core/assets/bundles/bundle_it.properties +++ b/core/assets/bundles/bundle_it.properties @@ -2343,6 +2343,7 @@ lst.getflag = Check if a global flag is set. lst.setprop = Sets a property of a unit or building. lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index ab9b095823..fd2d8422d6 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -2347,6 +2347,7 @@ lst.getflag = グローバルフラグが設定されているかどうかを確 lst.setprop = Sets a property of a unit or building. lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index 79f23ca5ab..302f988d44 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -2346,6 +2346,7 @@ lst.getflag = 전역 플래그가 설정되어 있는지 확인 lst.setprop = 기체 혹은 건물의 속성을 설정합니다. lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties index d197bd3657..b4fcf72fd0 100644 --- a/core/assets/bundles/bundle_lt.properties +++ b/core/assets/bundles/bundle_lt.properties @@ -2331,6 +2331,7 @@ lst.getflag = Check if a global flag is set. lst.setprop = Sets a property of a unit or building. lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index 21df1a3d23..43527d6ef2 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -2344,6 +2344,7 @@ lst.getflag = Check if a global flag is set. lst.setprop = Sets a property of a unit or building. lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties index bb32cf85be..8ccd1c72e0 100644 --- a/core/assets/bundles/bundle_nl_BE.properties +++ b/core/assets/bundles/bundle_nl_BE.properties @@ -2331,6 +2331,7 @@ lst.getflag = Check if a global flag is set. lst.setprop = Sets a property of a unit or building. lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index 87477c01ab..95721ba0d0 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -2365,6 +2365,7 @@ lst.getflag = Sprawdź, czy ustawiona jest flaga globalna. lst.setprop = Ustaw właściwość jednostki lub budynku. lst.effect = Stwórz efekt cząsteczki. lst.sync = Synchronizuje zmienną poprzez sieć.\nWywoływane maksymalnie 10 razy na sekundę. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Stwórz nowy marker logiki.\nMusisz podać ID, aby móc go później zidentyfikować.\nLimit markerów to 20,000. lst.setmarker = Ustaw właściwości markera.\nID markera musi być takie samo jak podczas jego tworzenia. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index 2aadc7d22f..4aad82a234 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -2364,6 +2364,7 @@ lst.getflag = Verifique se um sinalizador global está definido. lst.setprop = Define uma propriedade de uma unidade ou edifício. lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties index 3dbe0a7975..3a842817db 100644 --- a/core/assets/bundles/bundle_pt_PT.properties +++ b/core/assets/bundles/bundle_pt_PT.properties @@ -2331,6 +2331,7 @@ lst.getflag = Check if a global flag is set. lst.setprop = Sets a property of a unit or building. lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. diff --git a/core/assets/bundles/bundle_ro.properties b/core/assets/bundles/bundle_ro.properties index cae469702e..cf63c7a775 100644 --- a/core/assets/bundles/bundle_ro.properties +++ b/core/assets/bundles/bundle_ro.properties @@ -2348,6 +2348,7 @@ lst.getflag = Check if a global flag is set. lst.setprop = Sets a property of a unit or building. lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index 23fd6df9b6..83a3e866bd 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -2350,6 +2350,7 @@ lst.getflag = Проверяет, установлен ли глобальный lst.setprop = Устанавливает свойство единицы или постройки. lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. diff --git a/core/assets/bundles/bundle_sr.properties b/core/assets/bundles/bundle_sr.properties index 6e6cf07481..e29b6ff97a 100644 --- a/core/assets/bundles/bundle_sr.properties +++ b/core/assets/bundles/bundle_sr.properties @@ -2351,6 +2351,7 @@ lst.getflag = Check if a global flag is set. lst.setprop = Sets a property of a unit or building. lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties index a9cb83d9fb..2e05519d22 100644 --- a/core/assets/bundles/bundle_sv.properties +++ b/core/assets/bundles/bundle_sv.properties @@ -2331,6 +2331,7 @@ lst.getflag = Check if a global flag is set. lst.setprop = Sets a property of a unit or building. lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index 1fe1ed195a..116b3d2065 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -2368,6 +2368,7 @@ lst.getflag = เช็กว่าธงทั่วโลกนั้นได lst.setprop = ตั้งค่าคุณสมบัติของยูนิตและสิ่งก่อสร้าง lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index e625322820..225f52f523 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -2331,6 +2331,7 @@ lst.getflag = Check if a global flag is set. lst.setprop = Sets a property of a unit or building. lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index db687017f7..884156b591 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -2348,6 +2348,7 @@ lst.getflag = Evrensel İşaretli Numara Oku. lst.setprop = Bir bina veya birime nitelik atar. lst.effect = Parçacık efekti oluştur. lst.sync = Ağ boyunca bir değişkeni senkronize et.\nSaniyede en fazla 10 kere yapılabilir. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Dünyada yeni bir İşlemci İşareti koy.\nBu İşarete bir Kimlik adamalısın.\nDünya başına 20.000 limit bulunmakta. lst.setmarker = Bir İşlemci İşareti için bir arazi seç.\nKimlik, İşaret Koyucudaki ile aynı olmalı. lst.localeprint = Harita yerel paket özellik değerini metin arabelleğine ekleyin.\nHarita düzenleyicide harita yerel ayar paketlerini ayarlamak için şunu işaretleyin: [accent]Harita Bilgisi > Yerel Paketler[].\nİstemci bir mobil cihazsa, önce ".mobile" ile biten bir özelliği yazdırmaya çalışır. diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index b50afe1626..0a2055e7a1 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -2375,6 +2375,7 @@ lst.getflag = Перевіряє, чи встановлено глобальни lst.setprop = Установлює властивість одиниці чи будівлі. lst.effect = Створює ефект частинок. lst.sync = Синхронізувати змінну по мережі.\nВикликається щонайбільше 10 разів за секунду. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Створює новий логічний маркер у світі.\nПотрібно надати ідентифікатор для ідентифікації цього маркера.\nНаразі кількість маркерів на світ обмежена 20 тисячами. lst.setmarker = Установлює властивість для маркера.\nВикористаний ідентифікатор має збігатися з інструкцією «Створити маркер». lst.localeprint = Додає значення властивості мовного пакету мапи до текстового буфера.\nЩоби встановити мовного пакету мапи в редакторі мапи, перейдіть до [accent]Інформація про мапу > Мовні пакети [].\nЯкщо клієнтом є мобільний пристрій, то спочатку намагається надрукувати властивість, що закінчується на ".mobile". diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties index c9622ac982..e9c9bd7bd4 100644 --- a/core/assets/bundles/bundle_vi.properties +++ b/core/assets/bundles/bundle_vi.properties @@ -2383,6 +2383,7 @@ lst.getflag = Kiểm tra nếu cờ toàn cục được đặt. lst.setprop = Thiết đặt một thuộc tính của đơn vị hoặc công trình. lst.effect = Tạo một phần hiệu ứng nhỏ. lst.sync = Đồng bộ biến số qua mạng.\nChỉ gọi tối đa 20 lần mỗi giây cho mỗi biến. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Tạo mới điểm đánh dấu logic trên thế giới.\nMột định danh cho điểm đánh dấu này phải được cung cấp.\nĐiểm đánh dấu hiện tại bị giới hạn 20,000 trên mỗi thế giới. lst.setmarker = Thiết đặt một thuộc tính cho một điểm đánh dấu.\nĐịnh danh phải giống như định danh ở chỉ lệnh Tạo Điểm đánh dấu (Make Marker).\nGiá trị [accent]null[] sẽ bị phớt lờ. lst.localeprint = Thêm một giá trị thuộc tính ngôn ngữ của bản đồ vào bộ đệm văn bản.\nĐể thiết đặt gói ngôn ngữ trong trình chỉnh sửa bản đồ, xem qua [accent]Thông tin bản đồ > Gói ngôn ngữ[].\nNếu máy khách là một thiết bị di động, sẽ cố in thuộc tính kết thúc bằng ".mobile" trước tiên. diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index 60a25dd6d4..a53676e106 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -2375,6 +2375,7 @@ lst.getflag = 检查是否设置了全局标志。 lst.setprop = 设置单位或建筑物的属性。 lst.effect = 创建一个粒子效果。 lst.sync = 在网络中同步一个变量。\n最多每秒调用10次。 +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = 在世界中创建一个新的逻辑标记。\n必须提供一个用于标识此标记的ID。\n目前每个世界限制最多20000个标记。 lst.setmarker = 为标记设置属性。\n使用的ID必须与制作标记指令中的相同。 lst.localeprint = 将地图本地化文本属性值添加到文本缓冲区中。\n要在地图编辑器中设置地图本地化包,请检查 [accent]地图信息 > 本地化包[]。\n如果客户端是移动设备,则尝试首先打印以 ".mobile" 结尾的属性。 diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index 7ef0eea54f..44732346f9 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -2360,6 +2360,7 @@ lst.getflag = 檢查某一全局flag是否存在 lst.setprop = Sets a property of a unit or building. lst.effect = Create a particle effect. lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. +lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. From e0c455bca8ada8073efaa330c3d98aa5b90e9e40 Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Sat, 3 Aug 2024 12:53:45 +0800 Subject: [PATCH 040/437] Allow Mods To Modify RegionPart's Heat Light Region (#10048) * actually work * betterize i think --- core/src/mindustry/entities/part/RegionPart.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/entities/part/RegionPart.java b/core/src/mindustry/entities/part/RegionPart.java index 0088e46f34..4323f5f9aa 100644 --- a/core/src/mindustry/entities/part/RegionPart.java +++ b/core/src/mindustry/entities/part/RegionPart.java @@ -15,7 +15,7 @@ public class RegionPart extends DrawPart{ public String suffix = ""; /** Overrides suffix if set. */ public @Nullable String name; - public TextureRegion heat; + public TextureRegion heat, light; public TextureRegion[] regions = {}; public TextureRegion[] outlines = {}; @@ -133,7 +133,7 @@ public class RegionPart extends DrawPart{ float hprog = heatProgress.getClamp(params); heatColor.write(Tmp.c1).a(hprog * heatColor.a); Drawf.additive(heat, Tmp.c1, rx, ry, rot, turretShading ? turretHeatLayer : Draw.z() + heatLayerOffset); - if(heatLight) Drawf.light(rx, ry, heat, rot, Tmp.c1, heatLightOpacity * hprog); + if(heatLight) Drawf.light(rx, ry, light.found() ? light : heat, rot, Tmp.c1, heatLightOpacity * hprog); } Draw.xscl *= sign; @@ -187,6 +187,7 @@ public class RegionPart extends DrawPart{ } heat = Core.atlas.find(realName + "-heat"); + light = Core.atlas.find(realName + "-light"); for(var child : children){ child.turretShading = turretShading; child.load(name); From a336dc74a7a1145eaa94cb2be545c28d9d28dfcd Mon Sep 17 00:00:00 2001 From: SITUVNgcd <44901211+SITUVNgcd@users.noreply.github.com> Date: Sat, 3 Aug 2024 20:23:45 +0700 Subject: [PATCH 041/437] Update Vietnamese translation (#10079) New string and changes from https://github.com/Anuken/Mindustry/commit/0b0db7bab2f2fad5385e3d5b3dd204c4df16cd9e --- core/assets/bundles/bundle_vi.properties | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties index e9c9bd7bd4..9788071f51 100644 --- a/core/assets/bundles/bundle_vi.properties +++ b/core/assets/bundles/bundle_vi.properties @@ -1440,8 +1440,8 @@ liquid.neoplasm.name = Tế bào tân sinh liquid.arkycite.name = Arkycite liquid.gallium.name = Gali liquid.ozone.name = Ôzôn -liquid.hydrogen.name = Hydro -liquid.nitrogen.name = Nitro +liquid.hydrogen.name = Hy-dro lỏng +liquid.nitrogen.name = Ni-tơ lỏng liquid.cyanogen.name = Cyano unit.dagger.name = Dagger @@ -2196,7 +2196,7 @@ block.core-acropolis.description = Trung tâm của căn cứ. Được bọc gi block.breach.description = Bắn đạn beryl hoặc tungsten xuyên thấu vào kẻ địch. block.diffuse.description = Bắn một loạt đạn mảnh theo hình nón. Đẩy kẻ địch về phía sau. block.sublimate.description = Thổi tia lửa mạnh liên tục vào kẻ địch. Xuyên giáp. -block.titan.description = Bắn đạn pháo nổ khổng lồ vào các mục tiêu trên mặt đất. Yêu cầu hydro. +block.titan.description = Bắn đạn pháo nổ khổng lồ vào các mục tiêu trên mặt đất. Yêu cầu hy-đrô lỏng. block.afflict.description = Bắn ra các mảnh vỡ của một quả cầu tích điện khổng lồ. Yêu cầu nhiệt. block.disperse.description = Bắn các mảnh vỡ vào các mục tiêu trên không. block.lustre.description = Bắn một tia laser di chuyển chậm một mục tiêu vào các mục tiêu của địch. @@ -2210,25 +2210,25 @@ block.slag-heater.description = Làm nóng công trinh. Yêu cầu xỉ. block.phase-heater.description = Làm nóng công trình. Yêu cầu sợi lượng tử. block.heat-redirector.description = Chuyển lượng nhiệt nhận được sang các khối khác. block.heat-router.description = Phân phát nhiệt nhận được sang ba hướng đầu ra. -block.electrolyzer.description = Chuyển đổi nước thành hydro và ôzôn. Các khí xuất hai hướng đối nhau, được đánh dấu bằng các màu tương ứng. -block.atmospheric-concentrator.description = Cô đặc nitro từ khí quyển. Yêu cầu nhiệt. +block.electrolyzer.description = Chuyển đổi nước thành hy-đrô lỏng và khí ô-zôn. Các khí xuất hai hướng đối nhau, được đánh dấu bằng các màu tương ứng. +block.atmospheric-concentrator.description = Cô đặc ni-tơ từ khí quyển. Yêu cầu nhiệt. block.surge-crucible.description = Tinh chế hợp kim từ xỉ và silicon. Yêu cầu nhiệt. block.phase-synthesizer.description = Tổng hợp sợi lượng tử từ thori, cát, và ôzôn. Yêu cầu nhiệt. block.carbide-crucible.description = Kết hợp than chì và tungsten để tạo ra carbide. Yêu cầu nhiệt. block.cyanogen-synthesizer.description = Tổng hợp cyano từ arkycite và than chì. Yêu cầu nhiệt. block.slag-incinerator.description = Đốt các vật phẩm hoặc chất lỏng không bay hơi. Yêu cầu xỉ. block.vent-condenser.description = Ngưng tụ khí từ lỗ hơi nước để tạo ra nước. Tiêu thụ điện. -block.plasma-bore.description = Khi được đặt đối diện với một bức tường quặng, sản xuất vô hạn vật phẩm. Yêu cầu một lượng điện nhỏ.\nTùy chọn sử dụng hydro để tăng hiệu suất. -block.large-plasma-bore.description = Một máy khoan plasma lớn hơn. Có thể khoan tungsten và thori. Yêu cầu hydro và điện.\nTùy chọn sử dụng nitro để tăng hiệu suất. +block.plasma-bore.description = Khi được đặt đối diện với một bức tường quặng, sản xuất vô hạn vật phẩm. Yêu cầu một lượng điện nhỏ.\nTùy chọn sử dụng hy-đrô lỏng để tăng hiệu suất. +block.large-plasma-bore.description = Một máy khoan plasma lớn hơn. Có thể khoan tungsten và thori. Yêu cầu hy-đrô lỏng và điện.\nTùy chọn sử dụng ni-tơ lỏng để tăng hiệu suất. block.cliff-crusher.description = Nghiền vách đá, xuất ra cát vô hạn. Yêu cầu năng lượng. Hiệu quả thay đổi dựa theo loại vách đá. block.impact-drill.description = Khi được đặt lên một loại quặng, sản xuất vô hạn vật phẩm. Yêu cầu điện và nước. -block.eruption-drill.description = Phiên bản cải tiến của máy khoan động lực. Có thể khoan thori. Yêu cầu hydro. +block.eruption-drill.description = Phiên bản cải tiến của máy khoan động lực. Có thể khoan thori. Yêu cầu hy-đrô lỏng. block.reinforced-conduit.description = Di chuyển chất lỏng về phía trước. Không nhận đầu vào nếu không phải ống dẫn từ các bên. block.reinforced-liquid-router.description = Phân chia chất lỏng đều cho tất cả các bên. block.reinforced-liquid-tank.description = Lưu trữ một lượng chất lỏng lớn. block.reinforced-liquid-container.description = Lưu trữ một lượng chất lỏng vừa phải. block.reinforced-bridge-conduit.description = Vận chuyển chất lỏng qua các công trình và địa hình. -block.reinforced-pump.description = Bơm chất lỏng lên. Yêu cầu hydro. +block.reinforced-pump.description = Bơm chất lỏng lên. Yêu cầu hy-đrô lỏng. block.beryllium-wall.description = Bảo vệ các công trình khỏi đạn của kẻ địch. block.beryllium-wall-large.description = Bảo vệ các công trình khỏi đạn của kẻ địch. block.tungsten-wall.description = Bảo vệ các công trình khỏi đạn của kẻ địch. @@ -2259,7 +2259,7 @@ block.pyrolysis-generator.description = Tạo ra một lượng điện lớn t block.flux-reactor.description = Tạo ra một lượng điện lớn khi được làm nóng. Yêu cầu sử dụng cyano như một chất làm ổn định. Lượng điện tạo ra và lượng tiêu thụ cyano tỷ lệ thuận với lượng nhiệt nhận được.\nPhát nổ nếu không cung cấp đủ cyano. block.neoplasia-reactor.description = Sử dụng arkycite, nước và sợi lượng tử để tạo ra lượng điện khổng lồ. Tạo ra nhiệt và lượng tế bào tân sinh nguy hiểm như sản phẩm phụ trong quá trình hoạt động.\nPhát nổ dữ dội nếu tế bào tân sinh không được loại bỏ khỏi lò phản ứng. block.build-tower.description = Tự động xây dựng lại các công trình trong phạm vi và hỗ trợ các đơn vị khác trong quá trình xây dựng. -block.regen-projector.description = Sửa chữa các công trình một cách chậm rãi trong phạm vi hình vuông. Yêu cầu hydro.\nTùy chọn sử dụng sợi lượng tử để tăng hiệu suất. +block.regen-projector.description = Sửa chữa các công trình một cách chậm rãi trong phạm vi hình vuông. Yêu cầu hy-đrô lỏng.\nTùy chọn sử dụng sợi lượng tử để tăng hiệu suất. block.reinforced-container.description = Lưu trữ một lượng nhỏ vật phẩm. Nội dung có thể được lấy ra thông qua các điểm dỡ hàng. Không làm tăng khả năng lưu trữ của lõi. block.reinforced-vault.description = Lưu trữ một lượng lớn vật phẩm. Nội dung có thể được lấy ra thông qua các điểm dỡ hàng. Không làm tăng khả năng lưu trữ của lõi. block.tank-fabricator.description = Chế tạo đơn vị Stell. Các đơn vị được chế tạo có thể được sử dụng trực tiếp hoặc được chuyển vào các máy tái chế tạo khác để được nâng cấp. @@ -2376,14 +2376,14 @@ lst.setrate = Đặt tốc độ thực thi khối xử lý theo chỉ lệnh/t lst.fetch = Tra cứu các đơn vị, lõi, người chơi hoặc công trình bằng chỉ số.\nCác chỉ số bắt đầu từ 0 và kết thúc tại số lượng đếm của chúng. lst.packcolor = Đóng gói màu thành phần RGBA [0, 1] thành một số đơn dùng cho vẽ hoặc thiết lập quy tắc. lst.setrule = Thiết đặt một quy tắc trò chơi. -lst.flushmessage = Hiển thị một tin nhắn trên màn hình từ bộ đệm văn bản.\nSẽ đợi cho đến khi tin nhắn trước đó hoàn tất. +lst.flushmessage = Hiển thị một tin nhắn trên màn hình từ bộ đệm văn bản.\nNếu giá trị [accent]thành công[] (success) trả về là [accent]@wait[],\nsẽ đợi cho đến khi tin nhắn trước đó hoàn tất.\nNgược lại, xuất ra liệu rằng tin nhắn đã hiển thị thành công. lst.cutscene = Điều khiển máy quay của người chơi. lst.setflag = Thiết đặt một cờ toàn cục mà có thể đọc được bởi tất cả khối xử lý. lst.getflag = Kiểm tra nếu cờ toàn cục được đặt. lst.setprop = Thiết đặt một thuộc tính của đơn vị hoặc công trình. lst.effect = Tạo một phần hiệu ứng nhỏ. lst.sync = Đồng bộ biến số qua mạng.\nChỉ gọi tối đa 20 lần mỗi giây cho mỗi biến. -lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. +lst.playsound = Phát một âm thanh.\nÂm lượng và hướng xoay có thể là một giá trị toàn cục, hoặc được tính toán dựa vào vị trí. lst.makemarker = Tạo mới điểm đánh dấu logic trên thế giới.\nMột định danh cho điểm đánh dấu này phải được cung cấp.\nĐiểm đánh dấu hiện tại bị giới hạn 20,000 trên mỗi thế giới. lst.setmarker = Thiết đặt một thuộc tính cho một điểm đánh dấu.\nĐịnh danh phải giống như định danh ở chỉ lệnh Tạo Điểm đánh dấu (Make Marker).\nGiá trị [accent]null[] sẽ bị phớt lờ. lst.localeprint = Thêm một giá trị thuộc tính ngôn ngữ của bản đồ vào bộ đệm văn bản.\nĐể thiết đặt gói ngôn ngữ trong trình chỉnh sửa bản đồ, xem qua [accent]Thông tin bản đồ > Gói ngôn ngữ[].\nNếu máy khách là một thiết bị di động, sẽ cố in thuộc tính kết thúc bằng ".mobile" trước tiên. From 4c3a4d78020496cfc5c85486f16eaf04b32205b1 Mon Sep 17 00:00:00 2001 From: summoner001 Date: Sat, 3 Aug 2024 15:23:51 +0200 Subject: [PATCH 042/437] Update bundle_hu.properties (#10078) Translation of the new English texts. --- core/assets/bundles/bundle_hu.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index db8acaf19b..bf6720961c 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -2376,14 +2376,14 @@ lst.setrate = A processzor végrehajtási sebességének beállítása utasítá lst.fetch = Egységek, támaszpontok, játékosok, vagy épületek keresése index szerint.\nAz indexek 0-tól indulnak és a visszaadott számuknál végződnek. lst.packcolor = Egyetlen számba tömöríti a [0, 1] RGBA komponenseket a rajzoláshoz vagy szabálymeghatározáshoz. lst.setrule = Játékszabály beállítása. -lst.flushmessage = Üzenet megjelenítése a képernyőn a szövegpufferből.\nMegvárja, amíg az előző üzenet befejeződik. +lst.flushmessage = Üzenet megjelenítése a képernyőn a szövegpufferből. Ha a sikeres válasz változója [accent]@wait[],\nakkor, megvárja, amíg az előző üzenet befejeződik.\nMáskülönben azt adja ki, hogy az üzenet megjelenítése sikeres volt-e. lst.cutscene = A játékos kamerájának mozgatása. lst.setflag = Egy globális jelölő beállítása, amely minden processzor által olvasható. lst.getflag = Ellenőrzés, hogy egy globális jelölő be van-e állítva. lst.setprop = Beállítja egy egység vagy épület tulajdonságát. lst.effect = Részecskehatás létrehozása. lst.sync = Egy változó szinkronizálása a hálózaton keresztül.\nMásodpercenként legfeljebb 20-szor hívható meg. -lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. +lst.playsound = Egy hangot játszik le.\nA hangerő és a panoráma lehet globális érték, vagy a pozíció alapján kiszámított érték. lst.makemarker = Új logikai jelölő létrehozása a világban.\nMeg kell adni egy azonosítót a jelölő azonosításához.\nA jelölők száma jelenleg világonként 20 000-re van korlátozva. lst.setmarker = Egy jelölő tulajdonságának beállítása.\nA használt azonosítónak meg kell egyeznie a Make Marker utasításban megadottal.\nA [accent]null []értékek figyelmen kívül lesznek hagyva. lst.localeprint = Hozzáadja a pálya nyelvi csomagjainak tulajdonságértékét a szövegpufferhez.\nA pálya nyelvi csomagjainak beállításait a térképszerkesztőben ellenőrizheted: [accent]Pályainformációk > Nyelvi csomagok[].\nHa a kliens egy mobileszköz, akkor először próbáld kiíratni a „.mobile” végződésű tulajdonságot. From 733f642aa375e0bda87439b865e64897ee55293b Mon Sep 17 00:00:00 2001 From: summoner001 Date: Sun, 4 Aug 2024 05:09:59 +0200 Subject: [PATCH 043/437] Update bundle_hu.properties (#10080) Correcting minor spelling mistakes. Thanks to the Hungarian mindustry community! Nice catch! :) --- core/assets/bundles/bundle_hu.properties | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index bf6720961c..64b7d8eb54 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -76,11 +76,11 @@ schematic.disabled = [scarlet]Vázlatok letiltva[]\nNem használhatsz vázlatoka schematic.tags = Címkék: schematic.edittags = Címkék szerkesztése schematic.addtag = Címke hozzáadása -schematic.texttag = Szöveg címke -schematic.icontag = Ikon címke +schematic.texttag = Szövegcímke +schematic.icontag = Ikoncímke schematic.renametag = Címke átnevezése schematic.tagged = {0} Címkézve -schematic.tagdelconfirm = Teljesen törlöd ezt a címkét? +schematic.tagdelconfirm = Biztosan törlöd ezt a címkét? schematic.tagexists = Ez a címke már létezik. stats = Statisztika From f0b931380adb9046b577972f9e30aa536efb1a0b Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 4 Aug 2024 22:20:20 -0400 Subject: [PATCH 044/437] Fixed #10085 --- core/src/mindustry/logic/LAssembler.java | 1 - core/src/mindustry/logic/LStatement.java | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/core/src/mindustry/logic/LAssembler.java b/core/src/mindustry/logic/LAssembler.java index 29cb396a35..37b79e845f 100644 --- a/core/src/mindustry/logic/LAssembler.java +++ b/core/src/mindustry/logic/LAssembler.java @@ -10,7 +10,6 @@ import mindustry.logic.LExecutor.*; /** "Compiles" a sequence of statements into instructions. */ public class LAssembler{ public static ObjectMap> customParsers = new ObjectMap<>(); - public static final int maxTokenLength = 36; private static final int invalidNum = Integer.MIN_VALUE; diff --git a/core/src/mindustry/logic/LStatement.java b/core/src/mindustry/logic/LStatement.java index 42e0c2ee67..76bcd781b3 100644 --- a/core/src/mindustry/logic/LStatement.java +++ b/core/src/mindustry/logic/LStatement.java @@ -103,7 +103,7 @@ public abstract class LStatement{ protected Cell field(Table table, String value, Cons setter){ return table.field(value, Styles.nodeField, s -> setter.get(sanitize(s))) - .size(144f, 40f).pad(2f).color(table.color).maxTextLength(LAssembler.maxTokenLength); + .size(144f, 40f).pad(2f).color(table.color); } protected Cell fields(Table table, String desc, String value, Cons setter){ From 35052b0ecc2f6a785b1c6f0d57a33d9fc8c86a8a Mon Sep 17 00:00:00 2001 From: summoner001 Date: Mon, 5 Aug 2024 17:38:25 +0200 Subject: [PATCH 045/437] Update bundle_hu.properties (#10088) Fixing sentences. Thanks for the error finds to the hungarian mindustry community. --- core/assets/bundles/bundle_hu.properties | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index 64b7d8eb54..68e61dc112 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -64,8 +64,8 @@ schematic.import = Vázlat importálása... schematic.exportfile = Exportálás fájlba schematic.importfile = Importálás fájlból schematic.browseworkshop = Steam Műhely megtekintése -schematic.copy = Végólapra másolás -schematic.copy.import = Importálás vágólapról +schematic.copy = Másolás a vágólapra +schematic.copy.import = Importálás a vágólapról schematic.shareworkshop = Megosztás a Steam Műhelyben schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Vázlat tükrözése schematic.saved = Vázlat elmentve. @@ -230,7 +230,7 @@ server.kicked.customClient = Ez a kiszolgáló nem támogatja a saját készít server.kicked.gameover = Vége a játéknak! server.kicked.serverRestarting = Ez a kiszolgáló újraindul. server.versions = A te játékverziód:[accent] {0}[]\nA kiszolgáló verziója:[accent] {1}[] -host.info = A [accent]kiszolgáló indítása[] gomb egy kiszolgálót indít a [scarlet]6567-es[] porton.\nEzen a [lightgray]Wi-Fi-n vagy a helyi hálózaton[] bárki láthatja a kiszolgálót a kiszolgálólistán.\n\nHa azt szeretnéd, hogy bárki, aki ismeri az IP-címedet, bárhonnan kapcsolódhasson a kiszolgálódhoz, akkor a [accent]porttovábbítás[] beállítására lesz szükséged.\n\n[lightgray]Megjegyzés: ha problémáid vannak a LAN-játékhoz való kapcsolódással, győződj meg arról, hogy a tűzfal beállításaiban engedélyezted-e a Mindustry hozzáférését a helyi hálózathoz. Ne feledd, hogy a nyilvános hálózatok néha nem teszik lehetővé a kiszolgálók felderítését. +host.info = A [accent]kiszolgáló indítása[] gomb egy kiszolgálót indít a [scarlet]6567-es[] porton.\nEzen a [lightgray]Wi-Fi-n vagy a helyi hálózaton[] bárki láthatja a kiszolgálót a kiszolgálólistán.\n\nHa azt szeretnéd, hogy bárki, aki ismeri az IP-címedet, bárhonnan kapcsolódhasson a kiszolgálódhoz, akkor a [accent]porttovábbítás[] beállítására lesz szükséged.\n\n[lightgray]Megjegyzés: ha problémáid vannak a LAN-játékhoz való kapcsolódással, győződj meg arról, hogy a tűzfal beállításaiban engedélyezted-e a Mindustry hozzáférését a helyi hálózathoz. Ne feledd, hogy a nyilvános hálózatok néha nem teszik lehetővé a kiszolgálók felderítését. join.info = Itt megadhatod egy [accent]kiszolgáló IP-címét[] a kapcsolódáshoz, vagy felfedezhetsz [accent]helyi[] vagy [accent]globális[] kiszolgálókat.\nA LAN és WAN többjátékos mód is támogatott.\n\n[lightgray]Ha valakihez IP-cím alapján szeretnél kapcsolódni, akkor meg kell tudnod az IP-címét, amelyet például a „my ip” webes kereséssel találhatsz meg. hostserver = Többjátékos játék invitefriends = Barátok meghívása @@ -274,7 +274,7 @@ player.trace = Követés player.admin = Admin be/ki player.team = Csapatváltás -server.bans = Tiltások +server.bans = Tiltottak server.bans.none = Nincsenek tiltott játékosok! server.admins = Adminok server.admins.none = Nem található admin! @@ -306,7 +306,7 @@ connecting.data = [accent]Világadatok betöltése... server.port = Port: server.addressinuse = A cím már használatban van! server.invalidport = Érvénytelen port! -server.error = [scarlet]Kiszolgálási hiba. +server.error = [scarlet]Kiszolgálóhiba. save.new = Új mentés save.overwrite = Biztosan felülírod\nezt a mentést? save.nocampaign = A hadjáratból származó egyes mentési fájlok nem importálhatóak. From 728cb2b3e3cb010769e6e01523bb2b9436d113c9 Mon Sep 17 00:00:00 2001 From: WayZer Date: Tue, 6 Aug 2024 04:34:40 +0800 Subject: [PATCH 046/437] Fix Lag in LCanvas.java (#10090) --- core/src/mindustry/logic/LCanvas.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/logic/LCanvas.java b/core/src/mindustry/logic/LCanvas.java index 04871c02fb..c2fc83138b 100644 --- a/core/src/mindustry/logic/LCanvas.java +++ b/core/src/mindustry/logic/LCanvas.java @@ -257,7 +257,7 @@ public class LCanvas extends Table{ } } - invalidateHierarchy(); + if(parent != null) parent.invalidateHierarchy();//don't invalid self if(parent != null && parent instanceof Table){ setCullingArea(parent.getCullingArea()); From 5869b0b51b28b57251e241686cbc14300cdf3f69 Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 5 Aug 2024 22:31:42 -0400 Subject: [PATCH 047/437] Removed tungsten from Ravine loadout to fix confusion --- core/assets/maps/ravine.msav | Bin 44847 -> 45028 bytes gradle.properties | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/core/assets/maps/ravine.msav b/core/assets/maps/ravine.msav index 14daf93199ca62b501977f6f22bc19357ebe2899..271afb2bfa6938932efffa3ad1f9e6730b020044 100644 GIT binary patch literal 45028 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 TE3Q4| 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 Q*$dejpXwQ&Rd9R-09qr;6951J literal 44847 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 C5ST*zVe!b>pxfe|M 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 diff --git a/gradle.properties b/gradle.properties index 048ee4d9ef..fb828d215b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,4 +26,4 @@ org.gradle.caching=true org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.connectionTimeout=100000 android.enableR8.fullMode=false -archash=6676d38433 +archash=bd12b5581a From 942069e89a1fdea6b5fe142a1f908e346a0603bb Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Tue, 6 Aug 2024 10:34:28 +0800 Subject: [PATCH 048/437] Allow JSON Mods To Use TeamEntry Content Type (#10089) * for mods * tem enry * screw it, its GOING to be necessary for absolutely no reason * screw it * skill issue i have skill issue * dumb dumb i need an ide * explode * hello my name is stupid --- core/src/mindustry/mod/ContentParser.java | 35 +++++++++++++++++++++++ core/src/mindustry/type/TeamEntry.java | 8 ++++-- 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/mod/ContentParser.java b/core/src/mindustry/mod/ContentParser.java index 05198c401e..19d033b01c 100644 --- a/core/src/mindustry/mod/ContentParser.java +++ b/core/src/mindustry/mod/ContentParser.java @@ -327,6 +327,20 @@ public class ContentParser{ readFields(consume, data); return consume; }); + put(Team.class, (type, data) -> { + if(data.isString()){ + Team out = Structs.find(Team.baseTeams, t -> t.name.equals(data.asString())); + if(out == null) throw new IllegalArgumentException("Unknown team: " + data.asString()); + return out; + }else if(data.isNumber()){ + if(data.asInt() >= Team.all.length || data.asInt() < 0){ + throw new IllegalArgumentException("Unknown team: " + data.asString()); + } + return Team.get(data.asInt()); + }else{ + throw new IllegalArgumentException("Unknown team: " + data.asString() + ". Team must either be a string or a number."); + } + }); }}; /** Stores things that need to be parsed fully, e.g. reading fields of content. * This is done to accommodate binding of content names first.*/ @@ -674,6 +688,27 @@ public class ContentParser{ currentContent = planet; read(() -> readFields(planet, value)); return planet; + }, + ContentType.team, (TypeParser)(mod, name, value) -> { + TeamEntry entry; + Team team; + if(value.has("team")){ + team = (Team)classParsers.get(Team.class).parse(Team.class, value.get("team")); + }else{ + throw new RuntimeException("Team field missing."); + } + value.remove("team"); + + if(locate(ContentType.team, name) != null){ + entry = locate(ContentType.team, name); + readBundle(ContentType.team, name, value); + }else{ + readBundle(ContentType.team, name, value); + entry = new TeamEntry(mod + "-" + name, team); + } + currentContent = entry; + read(() -> readFields(entry, value)); + return entry; } ); diff --git a/core/src/mindustry/type/TeamEntry.java b/core/src/mindustry/type/TeamEntry.java index e3f1d42868..3d4f9880c3 100644 --- a/core/src/mindustry/type/TeamEntry.java +++ b/core/src/mindustry/type/TeamEntry.java @@ -9,11 +9,15 @@ import mindustry.game.*; public class TeamEntry extends UnlockableContent{ public final Team team; - public TeamEntry(Team team){ - super(team.name); + public TeamEntry(String name, Team team){ + super(name); this.team = team; } + public TeamEntry(Team team){ + this(team.name, team); + } + @Override public void displayExtra(Table table){ table.add("@team." + name + ".log").pad(6).padTop(20).width(400f).wrap().fillX(); From 548c6961eb41822b1dd245c7008379fceca084ed Mon Sep 17 00:00:00 2001 From: alex <67626131+alexpvpmindustry@users.noreply.github.com> Date: Tue, 6 Aug 2024 11:37:23 +0800 Subject: [PATCH 049/437] add v7 server (#10091) --- servers_v7.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers_v7.json b/servers_v7.json index 3a62ce9493..da2f7648c0 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -258,7 +258,7 @@ }, { "name": "Alex Multiverse", - "address": ["alexmindustryv7.servegame.com:25588", "172.234.80.96:6768", "139.162.41.78:6767", "172.245.187.143:6868", "172.245.187.143:6869", "92.119.127.171:6888", "181.215.58.13:1025", "181.215.58.13:1027"] + "address": ["alexmindustryv7.servegame.com:25588", "172.234.80.96:6768", "139.162.41.78:6767", "172.245.187.143:6868", "172.245.187.143:6869", "92.119.127.171:6888", "181.215.58.8:1025", "181.215.58.8:1027", "181.215.58.7:1820"] }, { "name": "Open PVP", From bace523de4302ac35ed81821d8661abb237a0605 Mon Sep 17 00:00:00 2001 From: Mythril382 <77225817+Mythril382@users.noreply.github.com> Date: Tue, 6 Aug 2024 23:14:29 +0800 Subject: [PATCH 050/437] Allow PlaySound To Work Normally With High IPT World Processor (#10083) * allow global sound to play more than once per frame might need an arc pr for the positional * carhash * thing * extra field * change "check frame" to "limit" * description * Update core/assets/bundles/bundle.properties --------- Co-authored-by: Anuken --- core/assets/bundles/bundle.properties | 2 ++ core/src/mindustry/logic/LExecutor.java | 9 +++++---- core/src/mindustry/logic/LStatements.java | 8 ++++++-- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 9488bd9f50..97d7e72411 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -2563,6 +2563,8 @@ unitlocate.outx = Output X coordinate. unitlocate.outy = Output Y coordinate. unitlocate.group = Building group to look for. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. + lenum.idle = Don't move, but keep building/mining.\nThe default state. lenum.stop = Stop moving/mining/building. lenum.unbind = Completely disable logic control.\nResume standard AI. diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index 4a977b3dcd..f57cdffc9e 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -1919,12 +1919,12 @@ public class LExecutor{ public static class PlaySoundI implements LInstruction{ public boolean positional; - public LVar id, volume, pitch, pan, x, y; + public LVar id, volume, pitch, pan, x, y, limit; public PlaySoundI(){ } - public PlaySoundI(boolean positional, LVar id, LVar volume, LVar pitch, LVar pan, LVar x, LVar y){ + public PlaySoundI(boolean positional, LVar id, LVar volume, LVar pitch, LVar pan, LVar x, LVar y, LVar limit){ this.positional = positional; this.id = id; this.volume = volume; @@ -1932,6 +1932,7 @@ public class LExecutor{ this.pan = pan; this.x = x; this.y = y; + this.limit = limit; } @Override @@ -1940,9 +1941,9 @@ public class LExecutor{ if(sound == null || sound == Sounds.swish) sound = Sounds.none; //no. if(positional){ - sound.at(World.unconv(x.numf()), World.unconv(y.numf()), pitch.numf(), Math.min(volume.numf(), 2f)); + sound.at(World.unconv(x.numf()), World.unconv(y.numf()), pitch.numf(), Math.min(volume.numf(), 2f), limit.bool()); }else{ - sound.play(Math.min(volume.numf() * (Core.settings.getInt("sfxvol") / 100f), 2f), pitch.numf(), pan.numf()); + sound.play(Math.min(volume.numf() * (Core.settings.getInt("sfxvol") / 100f), 2f), pitch.numf(), pan.numf(), false, limit.bool()); } } } diff --git a/core/src/mindustry/logic/LStatements.java b/core/src/mindustry/logic/LStatements.java index a27e35304b..b68faeaf94 100644 --- a/core/src/mindustry/logic/LStatements.java +++ b/core/src/mindustry/logic/LStatements.java @@ -2127,7 +2127,7 @@ public class LStatements{ @RegisterStatement("playsound") public static class PlaySoundStatement extends LStatement{ public boolean positional; - public String id = "@sfx-pew", volume = "1", pitch = "1", pan = "0", x = "@thisx", y = "@thisy"; + public String id = "@sfx-pew", volume = "1", pitch = "1", pan = "0", x = "@thisx", y = "@thisy", limit = "true"; @Override public void build(Table table){ @@ -2169,6 +2169,10 @@ public class LStatements{ }else{ fieldst(table, "pan", pan, str -> pan = str); } + + table.row(); + + fieldst(table, "limit", limit, str -> limit = str); } @Override @@ -2178,7 +2182,7 @@ public class LStatements{ @Override public LInstruction build(LAssembler builder){ - return new PlaySoundI(positional, builder.var(id), builder.var(volume), builder.var(pitch), builder.var(pan), builder.var(x), builder.var(y)); + return new PlaySoundI(positional, builder.var(id), builder.var(volume), builder.var(pitch), builder.var(pan), builder.var(x), builder.var(y), builder.var(limit)); } @Override From b4a1232407c1bf1e6fa8a984559e6bfbdd01b8d8 Mon Sep 17 00:00:00 2001 From: Github Actions Date: Tue, 6 Aug 2024 15:15:20 +0000 Subject: [PATCH 051/437] Automatic bundle update --- core/assets/bundles/bundle_be.properties | 1 + core/assets/bundles/bundle_bg.properties | 1 + core/assets/bundles/bundle_ca.properties | 1 + core/assets/bundles/bundle_cs.properties | 1 + core/assets/bundles/bundle_da.properties | 1 + core/assets/bundles/bundle_de.properties | 1 + core/assets/bundles/bundle_es.properties | 1 + core/assets/bundles/bundle_et.properties | 1 + core/assets/bundles/bundle_eu.properties | 1 + core/assets/bundles/bundle_fi.properties | 1 + core/assets/bundles/bundle_fil.properties | 1 + core/assets/bundles/bundle_fr.properties | 1 + core/assets/bundles/bundle_hu.properties | 1 + core/assets/bundles/bundle_id_ID.properties | 1 + core/assets/bundles/bundle_it.properties | 1 + core/assets/bundles/bundle_ja.properties | 1 + core/assets/bundles/bundle_ko.properties | 1 + core/assets/bundles/bundle_lt.properties | 1 + core/assets/bundles/bundle_nl.properties | 1 + core/assets/bundles/bundle_nl_BE.properties | 1 + core/assets/bundles/bundle_pl.properties | 1 + core/assets/bundles/bundle_pt_BR.properties | 1 + core/assets/bundles/bundle_pt_PT.properties | 1 + core/assets/bundles/bundle_ro.properties | 1 + core/assets/bundles/bundle_ru.properties | 1 + core/assets/bundles/bundle_sr.properties | 1 + core/assets/bundles/bundle_sv.properties | 1 + core/assets/bundles/bundle_th.properties | 1 + core/assets/bundles/bundle_tk.properties | 1 + core/assets/bundles/bundle_tr.properties | 1 + core/assets/bundles/bundle_uk_UA.properties | 1 + core/assets/bundles/bundle_vi.properties | 1 + core/assets/bundles/bundle_zh_CN.properties | 1 + core/assets/bundles/bundle_zh_TW.properties | 1 + 34 files changed, 34 insertions(+) diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties index ca5a3ac828..96dcc89d10 100644 --- a/core/assets/bundles/bundle_be.properties +++ b/core/assets/bundles/bundle_be.properties @@ -2482,6 +2482,7 @@ unitlocate.building = Выводзіць зменную для выбранна unitlocate.outx = Выводзіць X каардынату. unitlocate.outy = Выводзіць Y каардынату. unitlocate.group = Знаходзіць группу будынкаў. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = Не рухацца, а будаваць/дабываць.\nЗвычайны стан. lenum.stop = Перастаць рухацца/дабываць/будаваць. lenum.unbind = Поўнасццю адключыць кантраляванне працэссарамі.\nАднавіць звычайныя паводзіны AI. diff --git a/core/assets/bundles/bundle_bg.properties b/core/assets/bundles/bundle_bg.properties index fc6c006c33..e26ee0698b 100644 --- a/core/assets/bundles/bundle_bg.properties +++ b/core/assets/bundles/bundle_bg.properties @@ -2511,6 +2511,7 @@ unitlocate.building = Променлива в която да запише на unitlocate.outx = Резултатна X координата. unitlocate.outy = Резултатна Y координата. unitlocate.group = Група постройки за които да търси. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = Не се движи, но продължи да строиш/добиваш ресурси.\nСтандартното поведение. lenum.stop = Спри да се движиш/добиваш ресурси/строиш. diff --git a/core/assets/bundles/bundle_ca.properties b/core/assets/bundles/bundle_ca.properties index 117208e5d0..b376c31b82 100644 --- a/core/assets/bundles/bundle_ca.properties +++ b/core/assets/bundles/bundle_ca.properties @@ -2524,6 +2524,7 @@ unitlocate.building = Variable de sortida per al bloc localitzat. unitlocate.outx = Coordenada X de la sortida. unitlocate.outy = Coordenada Y de la sortida. unitlocate.group = Categoria de blocs a buscar. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = La unitat no es mourà, però continuarà construint i extraient minerals.\nÉs l’estat per defecte. lenum.stop = Para de moure, construir o extreure minerals. diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index 9295bff0f1..071f78d584 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -2519,6 +2519,7 @@ unitlocate.building = Výstup hodnot pro lokalizovanou budovu. unitlocate.outx = Výstup X pozice. unitlocate.outy = Výstup Y pozice. unitlocate.group = Vyhledat skupinu budov. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = Nehýbat se, ale pokračovat ve stavění/těžení.\nVýchozí stav. lenum.stop = Přestat pohybovat se/těžit/stavět. diff --git a/core/assets/bundles/bundle_da.properties b/core/assets/bundles/bundle_da.properties index 5aa9563038..427f92b696 100644 --- a/core/assets/bundles/bundle_da.properties +++ b/core/assets/bundles/bundle_da.properties @@ -2482,6 +2482,7 @@ unitlocate.building = Output variable for located building. unitlocate.outx = Output X coordinate. unitlocate.outy = Output Y coordinate. unitlocate.group = Building group to look for. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = Don't move, but keep building/mining.\nThe default state. lenum.stop = Stop moving/mining/building. lenum.unbind = Completely disable logic control.\nResume standard AI. diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index 6ef9683e35..891ba73ec7 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -2550,6 +2550,7 @@ unitlocate.building = Variable für das Ergebnis. unitlocate.outx = Variable für die X-Koordinate. unitlocate.outy = Variable für die Y-Koordinate. unitlocate.group = Gesuchter Blocktyp. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = Bewegt sich nicht, baut aber weiter ab.\nDer normale Zustand. lenum.stop = Bewegung / Abbau / Bau abbrechen. diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index e852a91148..86abffb144 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -2543,6 +2543,7 @@ unitlocate.building = Variable de salida para contrucciones localizadas. unitlocate.outx = Coordenada X devuelta. unitlocate.outy = Coordenada Y devuelta. unitlocate.group = Grupo de bloque a buscar. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = No se mueve, pero seguirá construyendo/extrayendo minerales.\nEs el estado por defecto. lenum.stop = Deja de moverse/extraer minerales/contruir. diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties index 3c7dce81ee..8e73c45c6f 100644 --- a/core/assets/bundles/bundle_et.properties +++ b/core/assets/bundles/bundle_et.properties @@ -2484,6 +2484,7 @@ unitlocate.building = Output variable for located building. unitlocate.outx = Output X coordinate. unitlocate.outy = Output Y coordinate. unitlocate.group = Building group to look for. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = Don't move, but keep building/mining.\nThe default state. lenum.stop = Stop moving/mining/building. lenum.unbind = Completely disable logic control.\nResume standard AI. diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties index a9c716446c..86d65b0b6e 100644 --- a/core/assets/bundles/bundle_eu.properties +++ b/core/assets/bundles/bundle_eu.properties @@ -2486,6 +2486,7 @@ unitlocate.building = Output variable for located building. unitlocate.outx = Output X coordinate. unitlocate.outy = Output Y coordinate. unitlocate.group = Building group to look for. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = Don't move, but keep building/mining.\nThe default state. lenum.stop = Stop moving/mining/building. lenum.unbind = Completely disable logic control.\nResume standard AI. diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties index 9de48f463d..083b228f34 100644 --- a/core/assets/bundles/bundle_fi.properties +++ b/core/assets/bundles/bundle_fi.properties @@ -2487,6 +2487,7 @@ unitlocate.building = Ulostulomuuttuja paikannetulle rakennukselle. unitlocate.outx = X-koodinaatin ulostulo. unitlocate.outy = Y-koodinaatin ulostulo. unitlocate.group = Etsittävä rakennusjoukko. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = Lopeta liikkuminen, mutta jatka rakentamista/kaivamista.\nOletustila. lenum.stop = Lopeta liikkuminen/kaivaminen/rakentaminen. lenum.unbind = Poista logiikkahallinta kokonaan.\nAnna hallinta tavalliselle AI:lle. diff --git a/core/assets/bundles/bundle_fil.properties b/core/assets/bundles/bundle_fil.properties index 90d555a229..a46362d3bd 100644 --- a/core/assets/bundles/bundle_fil.properties +++ b/core/assets/bundles/bundle_fil.properties @@ -2483,6 +2483,7 @@ unitlocate.building = Output variable for located building. unitlocate.outx = Output X coordinate. unitlocate.outy = Output Y coordinate. unitlocate.group = Building group to look for. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = Don't move, but keep building/mining.\nThe default state. lenum.stop = Stop moving/mining/building. lenum.unbind = Completely disable logic control.\nResume standard AI. diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index 43cc996633..bf87912183 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -2550,6 +2550,7 @@ unitlocate.building = Retourne une variable pour le bâtiment localisé. unitlocate.outx = Retourne la coordonnée X. unitlocate.outy = Retourne la coordonnée Y. unitlocate.group = Le groupe de bâtiments à rechercher. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = L'Unité ne bouge plus, mais elle continue de construire/miner.\nL'état par défaut. lenum.stop = Empêche l'unité de bouger/miner/construire. diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index 68e61dc112..934dc7ceef 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -2562,6 +2562,7 @@ unitlocate.building = Kimeneti változó a megtalált épülethez. unitlocate.outx = Kimenet X koordinátája. unitlocate.outy = Kimenet Y koordinátája. unitlocate.group = Keresendő épületcsoport. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = Ne mozdulj, de folytasd az építkezést/bányászatot.\nAz alapértelmezett állapot. lenum.stop = Mozgás/bányászás/építés leállítása. diff --git a/core/assets/bundles/bundle_id_ID.properties b/core/assets/bundles/bundle_id_ID.properties index 4b4e1972cc..5f4cc9247b 100644 --- a/core/assets/bundles/bundle_id_ID.properties +++ b/core/assets/bundles/bundle_id_ID.properties @@ -2541,6 +2541,7 @@ unitlocate.building = Mengeluarkan variabel untuk bangunan yang terlihat. unitlocate.outx = Mengeluarkan koordinat X. unitlocate.outy = Mengeluarkan koordinat Y. unitlocate.group = Kumpulan bangunan yang akan dicari. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = Tidak bergerak, namun tetap membangun/menambang.\nSifat awalan. lenum.stop = Berhenti bergerak/menambang/membangun. diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties index 686a87f47e..193b474fbb 100644 --- a/core/assets/bundles/bundle_it.properties +++ b/core/assets/bundles/bundle_it.properties @@ -2496,6 +2496,7 @@ unitlocate.building = Output variable for located building. unitlocate.outx = Output X coordinate. unitlocate.outy = Output Y coordinate. unitlocate.group = Building group to look for. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = Don't move, but keep building/mining.\nThe default state. lenum.stop = Stop moving/mining/building. lenum.unbind = Completely disable logic control.\nResume standard AI. diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index fd2d8422d6..4fe44e98c2 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -2500,6 +2500,7 @@ unitlocate.building = 見つけた建物を出力する変数 unitlocate.outx = X座標を出力する変数 unitlocate.outy = Y座標を出力する変数 unitlocate.group = 探す建物のグループ +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = 移動はしませんが、建築・採掘は続けます。 lenum.stop = 移動・採掘・建造を中止します。 lenum.unbind = ロジック制御を完全に無効にします。\n標準的なAI制御に移行します。 diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index 302f988d44..47ab2f186e 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -2517,6 +2517,7 @@ unitlocate.building = 찾은 건물을 대입할 변수 unitlocate.outx = X좌표 unitlocate.outy = Y좌표 unitlocate.group = 찾을 건물 집단 +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = 이동 정지, 채광/건설 유지\n기본 상태입니다. lenum.stop = 이동/채광/건설 중단 diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties index b4fcf72fd0..9086006d56 100644 --- a/core/assets/bundles/bundle_lt.properties +++ b/core/assets/bundles/bundle_lt.properties @@ -2484,6 +2484,7 @@ unitlocate.building = Output variable for located building. unitlocate.outx = Output X coordinate. unitlocate.outy = Output Y coordinate. unitlocate.group = Building group to look for. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = Don't move, but keep building/mining.\nThe default state. lenum.stop = Stop moving/mining/building. lenum.unbind = Completely disable logic control.\nResume standard AI. diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index 43527d6ef2..62ec0c3317 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -2497,6 +2497,7 @@ unitlocate.building = Output variable for located building. unitlocate.outx = Output X coordinate. unitlocate.outy = Output Y coordinate. unitlocate.group = Building group to look for. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = Don't move, but keep building/mining.\nThe default state. lenum.stop = Stop moving/mining/building. lenum.unbind = Completely disable logic control.\nResume standard AI. diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties index 8ccd1c72e0..c5718e10ba 100644 --- a/core/assets/bundles/bundle_nl_BE.properties +++ b/core/assets/bundles/bundle_nl_BE.properties @@ -2484,6 +2484,7 @@ unitlocate.building = Output variable for located building. unitlocate.outx = Output X coordinate. unitlocate.outy = Output Y coordinate. unitlocate.group = Building group to look for. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = Don't move, but keep building/mining.\nThe default state. lenum.stop = Stop moving/mining/building. lenum.unbind = Completely disable logic control.\nResume standard AI. diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index 95721ba0d0..5600cee5d0 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -2536,6 +2536,7 @@ unitlocate.building = Zmienna wyjściowa dla zlokalizowanego budynku. unitlocate.outx = Wyjściowa współrzędna X. unitlocate.outy = Wyjściowa współrzędna Y. unitlocate.group = Grupa szukanych budynków. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = Przestań się poruszać, jednak nadal buduj/wydobywaj.\nDomyślny stan. lenum.stop = Przestań poruszać się/kopać/budować. diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index 4aad82a234..e56f3c5f4f 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -2534,6 +2534,7 @@ unitlocate.building = Variável de saída para edifício localizado. unitlocate.outx = Coordenada X de saída. unitlocate.outy = Coordenada Y de saída. unitlocate.group = Grupo de construção para procurar. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = Não se mova, mas continue construindo/minerando.\nO estado padrão. lenum.stop = Pare de mover/mineração/construção. diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties index 3a842817db..70235d6448 100644 --- a/core/assets/bundles/bundle_pt_PT.properties +++ b/core/assets/bundles/bundle_pt_PT.properties @@ -2484,6 +2484,7 @@ unitlocate.building = Output variable for located building. unitlocate.outx = Output X coordinate. unitlocate.outy = Output Y coordinate. unitlocate.group = Building group to look for. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = Don't move, but keep building/mining.\nThe default state. lenum.stop = Stop moving/mining/building. lenum.unbind = Completely disable logic control.\nResume standard AI. diff --git a/core/assets/bundles/bundle_ro.properties b/core/assets/bundles/bundle_ro.properties index cf63c7a775..d0ba3ca619 100644 --- a/core/assets/bundles/bundle_ro.properties +++ b/core/assets/bundles/bundle_ro.properties @@ -2519,6 +2519,7 @@ unitlocate.building = Clădirea detectată. unitlocate.outx = Coordonata X a obiectului detectat. unitlocate.outy = Coordonata Y a obiectului detectat. unitlocate.group = Grupul clădirilor de detectat. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = Nu mișca, dar continuă să construiești/minezi.\nModul prestabilit. lenum.stop = Oprește acțiunea curentă. Nu mișca/mina/construi. diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index 83a3e866bd..25a942f67f 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -2521,6 +2521,7 @@ unitlocate.building = Переменная для записи обнаруже unitlocate.outx = Вывод X координаты. unitlocate.outy = Вывод Y координаты. unitlocate.group = Группа построек для поиска. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = Остановка движения, но продолжение строительства/копания.\nСостояние по умолчанию. lenum.stop = Остановка движения/копания/строительства. diff --git a/core/assets/bundles/bundle_sr.properties b/core/assets/bundles/bundle_sr.properties index e29b6ff97a..f69083baaa 100644 --- a/core/assets/bundles/bundle_sr.properties +++ b/core/assets/bundles/bundle_sr.properties @@ -2522,6 +2522,7 @@ unitlocate.building = Output variable for located building. unitlocate.outx = Output X coordinate. unitlocate.outy = Output Y coordinate. unitlocate.group = Grupa građevina koja se traži. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = Zaustavi kretanje, ali nastavi gradnju/iskopavanje.\nThe default state. lenum.stop = Zaustavi kretanje/gradnju/iskopavanje. diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties index 2e05519d22..836b95d5e8 100644 --- a/core/assets/bundles/bundle_sv.properties +++ b/core/assets/bundles/bundle_sv.properties @@ -2484,6 +2484,7 @@ unitlocate.building = Output variable for located building. unitlocate.outx = Output X coordinate. unitlocate.outy = Output Y coordinate. unitlocate.group = Building group to look for. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = Don't move, but keep building/mining.\nThe default state. lenum.stop = Stop moving/mining/building. lenum.unbind = Completely disable logic control.\nResume standard AI. diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index 116b3d2065..f31434de45 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -2540,6 +2540,7 @@ unitlocate.building = ตัวแปรสิ่งก่อสร้างท unitlocate.outx = ตัวแปรพิกัด X unitlocate.outy = ตัวแปรพิกัด Y unitlocate.group = กลุ่มสิ่งก่อสร้างที่มองหา +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = หยุดขยับ แต่ยังคงขุด/ก่อสร้าง\nสถานะเริ่มต้นของยูนิต lenum.stop = หยุดขยับ/ขุด/ก่อสร้าง diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index 225f52f523..66c5786774 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -2484,6 +2484,7 @@ unitlocate.building = Output variable for located building. unitlocate.outx = Output X coordinate. unitlocate.outy = Output Y coordinate. unitlocate.group = Building group to look for. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = Don't move, but keep building/mining.\nThe default state. lenum.stop = Stop moving/mining/building. lenum.unbind = Completely disable logic control.\nResume standard AI. diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index 884156b591..b4c9f219c4 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -2519,6 +2519,7 @@ unitlocate.building = Bulunan binanın Türü. unitlocate.outx = X kordinatı. unitlocate.outy = Y kordinatı. unitlocate.group = Aranan binanın türü. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = Hareket etmez ancak kazmaya ve inşa etmeye devam eder. lenum.stop = Dur! diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index 0a2055e7a1..5e8ca2e415 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -2547,6 +2547,7 @@ unitlocate.building = Змінна для запису знайденої буд unitlocate.outx = Виводить координату X. unitlocate.outy = Виводить координату Y. unitlocate.group = Група будівель для пошуку. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = Зупиняти рух, проте продовжути будувати чи видобувати.\nСтан за замовчуванням. lenum.stop = Зупинити або рух, або видобуток, або будівництво. diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties index 9788071f51..3127bd7c66 100644 --- a/core/assets/bundles/bundle_vi.properties +++ b/core/assets/bundles/bundle_vi.properties @@ -2562,6 +2562,7 @@ unitlocate.building = Biến xuất ra cho công trình đã định vị. unitlocate.outx = Tọa độ X xuất ra. unitlocate.outy = Tọa độ Y xuất ra. unitlocate.group = Nhóm công trình để tìm kiếm. +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = Không di chuyển, nhưng vẫn xây dựng/đào.\nTrạng thái mặc định. lenum.stop = Dừng di chuyển/đào/xây dựng. diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index a53676e106..09161c92df 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -2548,6 +2548,7 @@ unitlocate.building = 找到的建筑存入此变量 unitlocate.outx = 存入找到的X轴坐标 unitlocate.outy = 存入找到的Y轴坐标 unitlocate.group = 所搜寻的建筑分类 +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = 原地不动,但继续进行手上的采矿/建造动作\n单位的默认状态 lenum.stop = 停止移动/采矿/建造动作 diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index 44732346f9..4427209c0f 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -2532,6 +2532,7 @@ unitlocate.building = 回傳找到的建築為變數 unitlocate.outx = 回傳 X 座標 unitlocate.outy = 回傳 Y 座標 unitlocate.group = 搜索建築種類 +playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. lenum.idle = 預設AI lenum.stop = 停止 From 2ad38fc3b080288af7e21a2d0effd87adf315f70 Mon Sep 17 00:00:00 2001 From: JeanJPNM <61994401+JeanJPNM@users.noreply.github.com> Date: Tue, 6 Aug 2024 21:27:25 -0300 Subject: [PATCH 052/437] Fix the sfx selection gui for playsound (#10095) * fix the index used to get the sfx substring * handle cases where the sxf variable is not a built-in This prevents a crash that happened whenever the sfx variable's name had less than 5 characters (4 before this pr), since the substring method was called regardless of the name's size. --- core/src/mindustry/logic/LStatements.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/logic/LStatements.java b/core/src/mindustry/logic/LStatements.java index b68faeaf94..9d8faa880a 100644 --- a/core/src/mindustry/logic/LStatements.java +++ b/core/src/mindustry/logic/LStatements.java @@ -2149,7 +2149,8 @@ public class LStatements{ table.button(b -> { b.image(Icon.pencilSmall); - b.clicked(() -> showSelect(b, GlobalVars.soundNames.toArray(String.class), id.substring(4), t -> { + String soundName = id.startsWith("@sfx-") ? id.substring(5) : id; + b.clicked(() -> showSelect(b, GlobalVars.soundNames.toArray(String.class), soundName, t -> { id = "@sfx-" + t; rebuild(table); }, 2, cell -> cell.size(160, 50))); From 9cf4cf0bdb0b81aaf732149b30c152379a88ab63 Mon Sep 17 00:00:00 2001 From: SITUVNgcd <44901211+SITUVNgcd@users.noreply.github.com> Date: Thu, 8 Aug 2024 04:09:57 +0700 Subject: [PATCH 053/437] Update Vietnamese translation (#10094) New string from https://github.com/SITUVNgcd/Mindustry/commit/b4a1232407c1bf1e6fa8a984559e6bfbdd01b8d8 --- core/assets/bundles/bundle_vi.properties | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties index 3127bd7c66..ec0526feaa 100644 --- a/core/assets/bundles/bundle_vi.properties +++ b/core/assets/bundles/bundle_vi.properties @@ -2562,7 +2562,8 @@ unitlocate.building = Biến xuất ra cho công trình đã định vị. unitlocate.outx = Tọa độ X xuất ra. unitlocate.outy = Tọa độ Y xuất ra. unitlocate.group = Nhóm công trình để tìm kiếm. -playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. + +playsound.limit = Nếu [accent]true[], ngăn âm thanh này phát\nnếu nó đã phát trong chung một khung hình. lenum.idle = Không di chuyển, nhưng vẫn xây dựng/đào.\nTrạng thái mặc định. lenum.stop = Dừng di chuyển/đào/xây dựng. From a90a81b3ae2a9139d9bb2aaf5d50427a5dfecfc6 Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 7 Aug 2024 17:10:04 -0400 Subject: [PATCH 054/437] arc --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index fb828d215b..1aee74fc4a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,4 +26,4 @@ org.gradle.caching=true org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.connectionTimeout=100000 android.enableR8.fullMode=false -archash=bd12b5581a +archash=3f26197a0c From b06a8658d2012c38a512a7c66ae6346500203396 Mon Sep 17 00:00:00 2001 From: Kenny Setiawan <146146416+Kenny-Ofc@users.noreply.github.com> Date: Thu, 8 Aug 2024 18:06:39 +0700 Subject: [PATCH 055/437] Update Indonesian Translation Bundle (#10024) * Update Indonesian Translation Bundle Fix literally every each words, respelling word that not make sense, grammar issue, revision on each string line. The Issue : - Rewrite the existing translation from lasted PR - I know, the string was messed up, and i'd read it again from a top - The name for faction, turret and unit is supposed to remain the same. Example one is "Baluarti" are actually spanish. - reposition some words that based on ( Butuh, Perlu, Tenaga, Daya, Barang, Benda, Sumber Daya, Bijih, Anda, Kamu, Target, Sasaran, Pipa, Saluran, and more !) - last one, this PR probably or even not being the Ofc-PR. I'll wait Oct to confirmed this. the existing changes by me remain in here. and if needed, i have the File Bundle-ID.txt so The ID Translator could take a revision on it. hopefully this would be push to the branch, in case there is Beta Version of Mindustry. Literally, ID Translation for V7 are not completely done since last year * change "armor" into it's international word "pelindung" * Reanalyze Some Words then rewrite it Reposition words based on ( Pabrikator, Rekonstruktor, Opsional, Posisi Unit, Mekanis, Mekanik, Terlindungi, Proyektor, Pengarah, Ubin, Sandbox Eksklusif ) * typo issue - rewrite some block desc - minor fix * Last Commit for This PR August 1 - 2024 Discuss on Discord for further explanation. * Requested by DaGamerFiles - "Anda" should always have its first letter capitalized according to Indonesian orthography general guide (Pedoman Umum Ejaan Bahasa Indonesia/PUEBI) * Add Translation for "lst.playsound" * Notice un-translated "Surge Alloy" on Sector Ravine Description * . * Rewrite description of Serpulo Junction Block * Add Translation for "playsound.limit" --- core/assets/bundles/bundle_id_ID.properties | 1872 ++++++++++--------- 1 file changed, 951 insertions(+), 921 deletions(-) diff --git a/core/assets/bundles/bundle_id_ID.properties b/core/assets/bundles/bundle_id_ID.properties index 5f4cc9247b..14237cbfa1 100644 --- a/core/assets/bundles/bundle_id_ID.properties +++ b/core/assets/bundles/bundle_id_ID.properties @@ -2,10 +2,10 @@ credits.text = Diciptakan oleh [royal]Anuken[] - [sky]anukendev@gmail.com[] credits = Kredit contributors = Penerjemah dan Kontributor discord = Bergabung di Discord Mindustry! -link.discord.description = Discord Mindustry Resmi +link.discord.description = Discord Mindustry resmi link.reddit.description = Subreddit Mindustry -link.github.description = Sumber Kode Permainan -link.changelog.description = Daftar Rekam Pembaruan +link.github.description = Sumber kode permainan +link.changelog.description = Daftar rekam pembaruan link.dev-builds.description = Bentuk pengembangan kurang stabil link.trello.description = Papan Trello resmi untuk fitur terencana link.itch.io.description = Halaman itch.io dengan unduhan PC @@ -15,8 +15,8 @@ link.wiki.description = Wiki Mindustry resmi link.suggestions.description = Saran fitur baru link.bug.description = Menemukan bug? Laporkan di sini linkopen = Server ini mengirimkan Anda sebuah tautan. Apakah Anda yakin ingin membukanya?\n\n[sky]{0} -linkfail = Gagal membuka tautan!\nURL disalin ke papan salin. -screenshot = Tangkapan layar disimpan di {0} +linkfail = Gagal membuka tautan!\nURL disalin ke papan klip. +screenshot = Tangkapan layar tersimpan di {0} screenshot.invalid = Peta terlalu besar, tidak cukup memori untuk menangkap layar. gameover = Permainan Selesai gameover.disconnect = Jaringan Terputus @@ -24,7 +24,7 @@ gameover.pvp = Tim[accent] {0}[] menang! gameover.waiting = [accent]Menunggu peta selanjutnya... highscore = [accent]Rekor baru! copied = Tersalin. -indev.notready = Bagian tersebut saat ini belum siap +indev.notready = Bagian permainan saat ini belum siap load.sound = Suara load.map = Peta @@ -35,11 +35,11 @@ load.mod = Mod load.scripts = Skrip be.update = Versi Bleeding Edge terbaru tersedia: -be.update.confirm = Unduh dan ulang kembali sekarang? +be.update.confirm = Unduh dan mulai ulang sekarang? be.updating = Memperbarui... be.ignore = Abaikan be.noupdates = Tidak ada pembaruan yang ditemukan. -be.check = Cek versi baru +be.check = Periksa pembaruan mods.browser = Browser Mod mods.browser.selected = Mod yang Dipilih @@ -47,49 +47,49 @@ mods.browser.add = Pasang mod mods.browser.reinstall = Pasang kembali mods.browser.view-releases = Lihat Rilis mods.browser.noreleases = [scarlet]Tidak Ada Rilis Ditemukan\n[accent]Tidak dapat menemukan rilis untuk mod ini. Periksa apakah repositori mod memiliki rilis publik. -mods.browser.latest = +mods.browser.latest = [lightgray][Terbaru] mods.browser.releases = Rilis mods.github.open = Repo mods.github.open-release = Laman Rilis mods.browser.sortdate = Urut berdasarkan waktu mods.browser.sortstars = Urut berdasarkan bintang -schematic = Bagan -schematic.add = Menyimpan bagan... -schematics = Kumpulan bagan -schematic.search = Search schematics... -schematic.replace = Bagan dengan nama tersebut sudah ada. Ganti dengan yang baru? -schematic.exists = Sebuah bagan dengan nama tersebut sudah ada. -schematic.import = Mengimpor bagan... -schematic.exportfile = Ekspor File -schematic.importfile = Impor File +schematic = Skema +schematic.add = Menyimpan skema... +schematics = Kumpulan skema +schematic.search = Cari skema... +schematic.replace = Skema dengan nama tersebut sudah ada. Ganti dengan yang baru? +schematic.exists = Skema dengan nama tersebut sudah ada. +schematic.import = Mengimpor skema... +schematic.exportfile = Ekspor Berkas +schematic.importfile = Impor Berkas schematic.browseworkshop = Cari di Workshop schematic.copy = Salin ke papan klip schematic.copy.import = Impor dari papan klip schematic.shareworkshop = Bagikan di Workshop -schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Balik Bagan -schematic.saved = Bagan telah disimpan. -schematic.delete.confirm = Bagan ini akan benar-benar dihapus. -schematic.edit = Edit Schematic +schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Balik Skema +schematic.saved = Skema telah disimpan. +schematic.delete.confirm = Skema ini akan benar-benar dihapus. +schematic.edit = Sunting Skema schematic.info = {0}x{1}, {2} blok -schematic.disabled = [scarlet]Bagan dilarang[]\nAnda tidak diperbolehkan untuk menggunakan bagan di [accent]peta[] atau [accent]server ini. +schematic.disabled = [scarlet]Skema dimatikan[]\nPenggunaan skema tidak diperbolehkan di [accent]peta[] atau [accent]server[] ini. schematic.tags = Tanda: schematic.edittags = Ubah Tanda schematic.addtag = Tambah Tanda -schematic.texttag = Teks Tanda -schematic.icontag = Ikon Tanda +schematic.texttag = Tanda Teks +schematic.icontag = Tanda Ikon schematic.renametag = Ubah Nama Tanda -schematic.tagged = {0} tagged -schematic.tagdelconfirm = Hapus tanda ini sepenuhnya? +schematic.tagged = {0} ditandai +schematic.tagdelconfirm = Ingin menghapus tanda ini? schematic.tagexists = Tanda tersebut sudah ada. stats = Statistik stats.wave = Gelombang Terkalahkan stats.unitsCreated = Unit Terbentuk -stats.enemiesDestroyed = Musuh Terhancurkan +stats.enemiesDestroyed = Musuh yang Dihancurkan stats.built = Jumlah Blok yang Dibangun stats.destroyed = Jumlah Blok Dihancurkan Musuh -stats.deconstructed = Jumlah Blok Dihancurkan Pemain +stats.deconstructed = Jumlah Blok yang Dihancurkan Pemain stats.playtime = Waktu Bermain globalitems = [accent]Bahan Keseluruhan @@ -98,13 +98,13 @@ level.highscore = Nilai Tertinggi: [accent]{0} level.select = Pilih Level level.mode = Mode Permainan: coreattack = < Inti sedang diserang! > -nearpoint = [[ [scarlet]TINGGALKAN TITIK JATUH SEGERA[] ]\npenghancuran akan terjadi +nearpoint = [[ [scarlet]TINGGALKAN ZONA PENDARATAN SEGERA[] ]\npenghancuran akan terjadi database = Basis Data Inti database.button = Basis Data savegame = Simpan Permainan loadgame = Muat Permainan -joingame = Bermain Bersama -customgame = Permainan Modifikasi +joingame = Gabung Permainan +customgame = Permainan Kustom newgame = Permainan Baru none = none.found = [lightgray] @@ -112,14 +112,14 @@ none.inmap = [lightgray] minimap = Peta Kecil position = Posisi close = Tutup -website = Situs Jaringan +website = Situs Web quit = Keluar save.quit = Simpan & Keluar maps = Peta maps.browse = Cari Peta continue = Lanjutkan maps.none = [lightgray]Peta tidak ditemukan! -invalid = Tidak valid +invalid = Tidak Valid pickcolor = Pilih Warna preparingconfig = Menyiapkan Konfigurasi preparingcontent = Menyiapkan Konten @@ -129,59 +129,63 @@ committingchanges = Membuat Perubahan done = Selesai feature.unsupported = Perangkat Anda tidak mendukung fitur ini. -mods.initfailed = [red]⚠[] Proses Mindustry sebelumnya gagal untuk dimulai. Kemungkinan besar disebabkan oleh mod yang bermasalah.\n\nUntuk menghindari kesalahan berulang, [red]semua mod telah dinonaktifkan.[] +mods.initfailed = [red]\u26A0[] Proses Memuat Mindustry sebelumnya gagal untuk dimulai. Kemungkinan besar disebabkan oleh mod yang bermasalah.\n\nUntuk menghindari kesalahan berulang, [red]semua mod telah dinonaktifkan.[] mods = Mod mods.none = [lightgray]Tidak ada mod yang ditemukan! -mods.guide = Panduan Memodifikasi -mods.report = Lapor Bug +mods.guide = Panduan Modifikasi +mods.report = Laporkan Bug mods.openfolder = Buka Folder Mod mods.viewcontent = Buka Konten mods.reload = Muat Ulang -mods.reloadexit = Game akan keluar, untuk mengulang mod. +mods.reloadexit = Game akan ditutup, untuk memuat ulang mod. mod.installed = [[Terpasang] mod.display = [gray]Mod:[orange] {0} mod.enabled = [lightgray]Aktif -mod.disabled = [scarlet]Nonaktif -mod.multiplayer.compatible = [gray]Bisa Digunakan dalam Multiplayer +mod.disabled = [red]Nonaktif +mod.multiplayer.compatible = [gray]Kompatibel dalam Multipemain mod.disable = Nonaktifkan mod.content = Konten: mod.delete.error = Tidak dapat menghapus mod. File mungkin sedang digunakan. -mod.incompatiblegame = [red]Outdated Game -mod.incompatiblemod = [red]Incompatible -mod.blacklisted = [red]Unsupported -mod.unmetdependencies = [red]Unmet Dependencies + +mod.incompatiblegame = [red]Game telah Kedaluwarsa +mod.incompatiblemod = [red]Tidak Kompatibel +mod.blacklisted = [red]Tidak Didukung +mod.unmetdependencies = [red]Dependensi Tidak Terpenuhi mod.erroredcontent = [scarlet]Konten Mengalami Kesalahan -mod.circulardependencies = [red]Circular Dependencies -mod.incompletedependencies = [red]Incomplete Dependencies -mod.requiresversion.details = Requires game version: [accent]{0}[]\nYour game is outdated. This mod requires a newer version of the game (possibly a beta/alpha release) to function. -mod.outdatedv7.details = This mod is incompatible with the latest version of the game. The author must update it, and add [accent]minGameVersion: 136[] to its [accent]mod.json[] file. -mod.blacklisted.details = This mod has been manually blacklisted for causing crashes or other issues with this version of the game. Do not use it. -mod.missingdependencies.details = This mod is missing dependencies: {0} -mod.erroredcontent.details = This game caused errors when loading. Ask the mod author to fix them. -mod.circulardependencies.details = This mod has dependencies that depends on each other. -mod.incompletedependencies.details = This mod is unable to be loaded due to invalid or missing dependencies: {0}. -mod.requiresversion = Requires game version: [red]{0} +mod.circulardependencies = [red]Dependensi Sirkular +mod.incompletedependencies = [red]Dependensi Tidak Lengkap + +mod.requiresversion.details = Membutuhkan versi game: [accent]{0}[]\nGame Anda telah kadaluarsa. Mod ini membutuhkan versi game yang lebih baru (kemungkinan versi beta/alpha) untuk berfungsi. +mod.outdatedv7.details = Mod ini tidak kompatibel dengan versi game ini. Pencipta harus memperbaruinya, and add [accent]minGameVersion: 136[] ke dalam file [accent]mod.json[]. +mod.blacklisted.details = Mod ini terdapat di dalam blacklist karena menyebabkan crash atau masalah lain dengan versi game saat ini. Mohon jangan dipakai. +mod.missingdependencies.details = Mod ini kekurangan dependensi: {0} +mod.erroredcontent.details = Mod ini menimbulkan masalah pada saat proses memuat. Tanyakan pembuat mod untuk memperbaikinya. +mod.circulardependencies.details = Mod ini memiliki dependensi yang membutuhkan satu sama lain. +mod.incompletedependencies.details = Mod ini gagal memuat karena kekurangan dependensi atau tidak valid: {0}. + +mod.requiresversion = Membutuhkan versi game: [red]{0} + mod.errors = Terjadi kesalahan saat memuat konten. mod.noerrorplay = [scarlet]Anda memiliki mod dengan suatu kesalahan.[] Nonaktifkan mod yang bersangkutan atau perbaiki kesalahan tersebut sebelum bermain. -mod.nowdisabled = [scarlet]Mod '{0}' tidak memiliki ketergantungan:[accent] {1}\n[lightgray]Mod ini harus diunduh terlebih dahulu.\nMod ini akan dinonaktifkan secara otomatis. +mod.nowdisabled = [scarlet]Mod '{0}' tidak memiliki dependensi:[accent] {1}\n[lightgray]Mod ini harus diunduh terlebih dahulu.\nMod ini akan dinonaktifkan secara otomatis. mod.enable = Aktifkan -mod.requiresrestart = Game akan keluar untuk mengaktifkan perubahan mod. -mod.reloadrequired = [scarlet]Muat Ulang Diperlukan +mod.requiresrestart = Game akan ditutup untuk mengaktifkan perubahan mod. +mod.reloadrequired = [scarlet]Mulai Ulang Dibutuhkan mod.import = Impor Mod mod.import.file = Impor File mod.import.github = Impor dari GitHub mod.jarwarn = [scarlet]Mod dari JAR sebenarnya tidak aman.[]\nPastikan Anda mengimpor mod dari sumber terpercaya! -mod.item.remove = Item ini merupakan bagian dari mod[accent] '{0}'[]. Untuk dihilangkan, hapus mod ini. +mod.item.remove = Konten ini merupakan bagian dari mod[accent] '{0}'[]. Untuk menghilangkannya, hapus mod yang tersebut. mod.remove.confirm = Mod ini akan dihapus. mod.author = [lightgray]Pencipta:[] {0} -mod.missing = Simpanan ini mengandung mod yang telah diperbarui atau sudah lama tidak dipasang. Kemungkinan akan terjadi perubahan. Apakah Anda yakin untuk memuatnya?\n[lightgray]Mods:\n{0} -mod.preview.missing = Sebelum memposting mod di workshop, kamu harus memberi foto pratinjau.\nBeri sebuah foto berformat[accent] preview.png[] ke dalam folder mod dan ulang kembali. -mod.folder.missing = Hanya mod dengan format folder yang dapat diposting di workshop.\nUntuk mengubah mod menjadi folder, ekstrak file mod tersebut dan pastikan berbentuk sebuah folder, kemudian ulang game Anda atau mod Anda. -mod.scripts.disable = Perangkat anda tidak mendukung mod berformat skrip/JS. Anda harus menonaktifkan mod untuk lanjut bermain! +mod.missing = Simpanan ini berisikan mod yang telah diperbarui atau sudah lama tidak dipasang. Kerusakan simpanan dapat terjadi. Apakah Anda yakin ingin memuatnya?\n[lightgray]Mod:\n{0} +mod.preview.missing = Sebelum mengunggah mod ini ke workshop, Anda harus memberi gambar pratinjau.\nBeri sebuah gambar bernama[accent] preview.png[] ke dalam folder mod dan coba lagi. +mod.folder.missing = Hanya mod dengan format folder yang dapat diunggah ke workshop.\nUntuk mengubah mod menjadi folder, ekstrak mod dalam folder dan hapus arsip zip, kemudian mulai ulang game atau mod Anda. +mod.scripts.disable = Perangkat Anda tidak mendukung mod dengan skrip/JS. Anda harus menonaktifkan mod tersebut untuk dapat bermain. about.button = Tentang name = Nama: -noname = Pilih[accent] nama pemain[] dahulu. +noname = Masukkan[accent] nama pemain[] dahulu. search = Cari: planetmap = Peta Planet launchcore = Luncurkan Inti @@ -189,17 +193,17 @@ filename = Nama File: unlocked = Konten baru terbuka! available = Penelitian baru tersedia! unlock.incampaign = < Buka dalam kampanye untuk detail lebih lanjut > -campaign.select = Select Starting Campaign -campaign.none = [lightgray]Select a planet to start on.\nThis can be switched at any time. -campaign.erekir = Newer, more polished content. Mostly linear campaign progression.\n\nHigher quality maps and overall experience. -campaign.serpulo = Older content; the classic experience. More open-ended.\n\nPotentially unbalanced maps and campaign mechanics. Less polished. +campaign.select = Pilih untuk Memulai Kampanye +campaign.none = [lightgray]Pilih planet untuk memulai.\nPilihan ini dapat diubah setiap saat. +campaign.erekir = Konten baru yang disempurnakan. Kemajuan kampanye lebih linier.\n\nKualitas peta yang tinggi dan pengalaman lebih mantap. +campaign.serpulo = Konten lawas; pengalaman klasik. Lebih terbuka dan banyak konten.\n\nPeta dan mekanisme kampanye yang berpotensi tidak seimbang. Kurang halus completed = [accent]Terselesaikan techtree = Pohon Teknologi techtree.select = Pemilihan Pohon Teknologi techtree.serpulo = Serpulo techtree.erekir = Erekir research.load = Muat -research.discard = Abaikan +research.discard = Buang research.list = [lightgray]Penelitian: research = Penelitian researched = [lightgray]{0} telah diteliti. @@ -213,32 +217,32 @@ server.kicked.kick = Anda telah dikeluarkan dari server! server.kicked.whitelist = Anda tidak ada di dalam whitelist. server.kicked.serverClose = Server ditutup. server.kicked.vote = Anda dipilih untuk dikeluarkan. Sampai jumpa. -server.kicked.clientOutdated = Klien kadaluarsa! Perbarui game Anda! -server.kicked.serverOutdated = Server kadaluarsa! Tanya host untuk memperbarui! +server.kicked.clientOutdated = Klien kedaluwarsa! Perbarui game Anda! +server.kicked.serverOutdated = Server kedaluwarsa! Tanyakan host untuk memperbarui! server.kicked.banned = Anda telah dilarang untuk memasuki server ini. server.kicked.typeMismatch = Server ini tidak cocok dengan versi build Anda. server.kicked.playerLimit = Server ini penuh. Tunggu slot kosong. server.kicked.recentKick = Anda baru saja dikeluarkan dari server ini.\nTunggu sesaat sebelum masuk lagi. server.kicked.nameInUse = Sudah ada pemain dengan nama tersebut\ndi server ini. server.kicked.nameEmpty = Nama yang dipilih tidak valid. -server.kicked.idInUse = Anda telah berada di server ini! Memasuki dengan dua akun tidak diizinkan. -server.kicked.customClient = Server ini tidak mendukung versi modifikasi. Unduh versi resmi. +server.kicked.idInUse = Anda telah berada di server ini! Menghubungkan dengan dua akun tidak diizinkan. +server.kicked.customClient = Server ini tidak mendukung build kostum. Unduh versi resmi. server.kicked.gameover = Permainan telah berakhir! -server.kicked.serverRestarting = Server sedang mengulang kembali. +server.kicked.serverRestarting = Server sedang dimulai ulang. server.versions = Versi Anda:[accent] {0}[]\nVersi server:[accent] {1}[] -host.info = Tombol [accent]host[] akan membuat server sementara di port [scarlet]6567[]. \nSemua orang yang memiliki [lightgray]Wi-Fi atau jaringan lokal[] akan bisa melihat server Anda di daftar server mereka.\n\nJika Anda ingin pemain dari mana saja memasuki server Anda dengan IP, [accent]port forwarding[] sangat diperlukan.\n\n[lightgray]Catatan: Jika seseorang mengalami masalah memasuki permainan lokal Anda, pastikan Anda telah mengizinkan Mindustry akses ke jaringan lokalmu di pengaturan firewall. Perlu diingat bahwa jaringan publik terkadang tidak mengizinkan pencarian server. -join.info = Di sini, Anda bisa memasukkan [accent]IP server[] untuk dihubungkan, serta mencari [accent]jaringan lokal[] atau server [accent]global[] untuk dihubungkan.\nLAN dan WAN mendukung permainan bersama.\n\n[lightgray]Jika Anda ingin bergabung dengan seseorang melalui IP, Anda perlu menanyakan host tentang IP mereka, yang dapat dicari dengan meng-google "my ip" melalui perangkat mereka. -hostserver = Host Permainan +host.info = Tombol [accent]host[] akan membuat server sementara di port [scarlet]6567[]. \nSemua orang di dalam [lightgray]Wi-Fi atau jaringan lokal[] yang sama dapat melihat server Anda di daftar server mereka.\n\nJika Anda ingin pemain dari mana saja memasuki server Anda dengan IP, [accent]port forwarding[] sangat dibutuhkan.\n\n[lightgray]Catatan: Jika seseorang mengalami masalah memasuki permainan lokal Anda, pastikan Mindustry memiliki akses ke jaringan lokal di pengaturan firewall Anda. Perlu diingat jaringan publik terkadang tidak mengizinkan pencarian server. +join.info = Di sini, Anda bisa memasukkan [accent]IP server[] untuk dihubungkan, serta mencari [accent]jaringan lokal[] atau server [accent]global[] untuk dihubungkan.\nLAN dan WAN mendukung multipemain.\n\n[lightgray]Jika Anda ingin bergabung dengan seseorang melalui IP, Anda perlu menanyakan host tentang IP mereka, yang dapat dicari dengan meng-google "my ip" melalui perangkat mereka. +hostserver = Host Permainan Multi Pemain invitefriends = Undang Teman hostserver.mobile = Host\nPermainan host = Host hosting = [accent]Membuka server... -hosts.refresh = Muat Ulang +hosts.refresh = Segarkan hosts.discovering = Mencari permainan lokal hosts.discovering.any = Mencari permainan server.refreshing = Memuat ulang server hosts.none = [lightgray]Permainan lokal tidak ditemukan! -host.invalid = [scarlet]Tidak bisa menyambung dengan pemilik. +host.invalid = [scarlet]Tidak dapat menyambung ke host. servers.local = Server Lokal servers.local.steam = Permainan Publik & Server Lokal @@ -255,28 +259,30 @@ trace = Lacak Pemain trace.playername = Nama pemain: [accent]{0} trace.ip = IP: [accent]{0} trace.id = ID: [accent]{0} -trace.language = Language: [accent]{0} -trace.mobile = Client Mobile: [accent]{0} -trace.modclient = Client Modifikasi: [accent]{0} +trace.language = Bahasa: [accent]{0} +trace.mobile = Klien Mobile: [accent]{0} +trace.modclient = Klien Modifikasi: [accent]{0} trace.times.joined = Total Bergabung: [accent]{0} trace.times.kicked = Total Dikeluarkan: [accent]{0} -trace.ips = IPs: -trace.names = Names: -invalidid = ID client tidak valid! Kirimkan laporan bug. +trace.ips = IP: +trace.names = Nama: +invalidid = ID klien tidak valid! Kirimkan laporan bug. + player.ban = Ban -player.kick = Kick -player.trace = Trace -player.admin = Toggle Admin -player.team = Change Team +player.kick = Keluarkan +player.trace = lacak +player.admin = Beri/Lepas Admin +player.team = Ganti Tim + server.bans = Pemain Dilarang Masuk -server.bans.none = Tidak ada pemain yang tidak diberi izin masuk! +server.bans.none = Tidak ada pemain yang tidak diizinkan masuk! server.admins = Admin server.admins.none = Tidak ada admin ditemukan! server.add = Tambah Server server.delete = Anda yakin ingin menghapus server ini? server.edit = Sunting Server -server.outdated = [scarlet]Server Kadaluarsa![] -server.outdated.client = [scarlet]Client Kadaluarsa![] +server.outdated = [scarlet]Server Kedaluwarsa![] +server.outdated.client = [scarlet]Klien Kedaluwarsa![] server.version = [gray]v{0} {1} server.custombuild = [accent]Bentuk Modifikasi confirmban = Anda yakin ingin melarang pemain ini untuk masuk lagi? @@ -284,27 +290,27 @@ confirmkick = Anda yakin ingin mengeluarkan pemain ini? confirmunban = Anda yakin ingin mengizinkan pemain ini untuk masuk lagi? confirmadmin = Anda yakin ingin membuat pemain ini sebagai admin? confirmunadmin = Anda yakin ingin menghapus status admin dari pemain ini? -votekick.reason = Vote-Kick Reason -votekick.reason.message = Are you sure you want to vote-kick "{0}[white]"?\nIf yes, please enter the reason: -joingame.title = Bermain Bersama +votekick.reason = Pilih-Alasan dikeluarkan +votekick.reason.message = Anda yakin ingin memulai pemungutan suara untuk mengeluarkan "{0}[white]"?\nJika ya, masukkan alasan: +joingame.title = Gabung Permainan joingame.ip = Alamat: disconnect = Terputus. -disconnect.error = Koneksi bermasalah. -disconnect.closed = Koneksi ditutup. -disconnect.timeout = Waktu habis. +disconnect.error = Sambungan bermasalah. +disconnect.closed = Sambungan ditutup. +disconnect.timeout = Waktu koneksi habis. disconnect.data = Gagal memuat data dunia! -cantconnect = Gagal menyambungkan ke permainan ([accent]{0}[]). +cantconnect = Gagal tersambung ke permainan ([accent]{0}[]). connecting = [accent]Menghubungkan... reconnecting = [accent]Menghubungkan kembali... connecting.data = [accent]Memuat data dunia... server.port = Port: server.addressinuse = Alamat sudah dipakai! -server.invalidport = Nomor port tidak sah! -server.error = [crimson]Terjadi kesalahan saat menghosting server: [accent]{0} +server.invalidport = Nomor port tidak valid! +server.error = [scarlet]Terjadi kesalahan saat menghosting server: [accent]{0} save.new = Simpanan Baru -save.overwrite = Anda yakin ingin menindih \ntempat simpanan ini? -save.nocampaign = Individual save files from the campaign cannot be imported. -overwrite = Tindih +save.overwrite = Anda yakin ingin menimpa \nsimpanan ini? +save.nocampaign = File simpanan individual dari kampanye tidak dapat diimpor. +overwrite = Timpa save.none = Tidak ada simpanan! savefail = Gagal menyimpan permainan! save.delete.confirm = Anda yakin ingin menghapus simpanan ini? @@ -320,7 +326,7 @@ save.rename.text = Nama baru: selectslot = Pilih simpanan. slot = [accent]Tempat {0} editmessage = Atur Pesan -save.corrupted = [accent]File simpanan rusak atau tidak sah!\nJika Anda baru saja memperbarui permainannya, ini karena perubahan di format penyimpanan dan [scarlet]bukan[] sebuah isu. +save.corrupted = File simpanan rusak atau tidak valid! empty = on = Aktif off = Nonaktif @@ -341,37 +347,37 @@ open = Buka customize = Sunting Peraturan cancel = Batal command = Perintah -command.queue = [lightgray][Queuing] +command.queue = Antrian command.mine = Tambang command.repair = Perbaiki command.rebuild = Bangun Kembali command.assist = Bantu Pemain command.move = Maju -command.boost = Boost -command.enterPayload = Enter Payload Block -command.loadUnits = Load Units -command.loadBlocks = Load Blocks -command.unloadPayload = Unload Payload -stance.stop = Cancel Orders -stance.shoot = Stance: Shoot -stance.holdfire = Stance: Hold Fire -stance.pursuetarget = Stance: Pursue Target -stance.patrol = Stance: Patrol Path -stance.ram = Stance: Ram\n[lightgray]Straight line movement, no pathfinding +command.boost = Pendorongan +command.enterPayload = Masukkan Muatan Blok +command.loadUnits = Muat Unit +command.loadBlocks = Muat Blok +command.unloadPayload = Turunkan Muatan +stance.stop = Batalkan Perintah +stance.shoot = Posisi Unit: Menembak +stance.holdfire = Posisi Unit: Gencatan Senjata +stance.pursuetarget = Posisi Unit: Kejar Target +stance.patrol = Posisi Unit: Patroli Jalur +stance.ram = Posisi Unit: Seruduk\n[lightgray]Pergerakan lurus, tanpa pathfinding openlink = Buka Tautan copylink = Salin Tautan back = Kembali -max = Batas +max = Batas Maximum objective = Peta Tujuan -crash.export = Ekspor Crash Log -crash.none = Tidak ada crash log ditemukan. -crash.exported = Crash log diekspor. +crash.export = Ekspor Laporan Error +crash.none = Tidak ada Laporan Error ditemukan. +crash.exported = Laporan Error diekspor. data.export = Ekspor Data data.import = Impor Data data.openfolder = Buka Folder Data -data.exported = Data telah di ekspor. -data.invalid = Data permainan ini tidak sah. -data.import.confirm = Mengimpor data eksternal akan menghapus [scarlet] semua[] data yang tersimpan.\n[accent]Tidak dapat diundur lagi![]\n\nSetelah data diimpor, game akan segera ditutup. +data.exported = Data telah diekspor. +data.invalid = Data permainan ini tidak valid. +data.import.confirm = Mengimpor data eksternal akan menghapus [scarlet] semua[] data yang tersimpan.\n[accent]Ini tidak dapat dibatalkan![]\n\nSetelah data diimpor, game akan segera keluar. quit.confirm = Apakah Anda yakin ingin keluar? loading = [accent]Memuat... downloading = [accent]Mengunduh... @@ -383,8 +389,8 @@ pausebuilding = [accent][[{0}][] untuk jeda membangun resumebuilding = [scarlet][[{0}][] untuk lanjut membangun enablebuilding = [scarlet][[{0}][] untuk mulai membangun showui = UI disembunyikan.\nTekan [accent][[{0}][] untuk menampilkan UI. -commandmode.name = [accent]Command Mode -commandmode.nounits = [no units] +commandmode.name = [accent]Mode Perintah +commandmode.nounits = [unit kosong] wave = [accent]Gelombang {0} wave.cap = [accent]Gelombang {0}/{1} wave.waiting = [lightgray]Gelombang di {0} @@ -399,54 +405,54 @@ wave.guardianwarn = Penjaga akan tiba dalam [accent]{0}[] gelombang. wave.guardianwarn.one = Penjaga akan tiba dalam [accent]{0}[] gelombang. loadimage = Memuat Gambar saveimage = Simpan Gambar -unknown = Tak diketahui +unknown = Tidak diketahui custom = Modifikasi -builtin = Terpasang -map.delete.confirm = Anda yakin ingin menghapus peta ini? Aksi ini tidak bisa diubah! +builtin = Bawaan +map.delete.confirm = Anda yakin ingin menghapus peta ini? Tindakan ini tidak bisa diubah! map.random = [accent]Peta Acak -map.nospawn = Peta ini tidak memiliki inti agar pemain bisa muncul! Tambahkan inti {0} ke dalam peta di penyunting. -map.nospawn.pvp = Peta ini tidak memiliki inti agar pemain lawan bisa muncul! Tambahkan inti [scarlet]selain jingga[] ke dalam peta di penyunting. -map.nospawn.attack = Peta ini tidak memiliki inti musuh agar pemain bisa menyerang! Tambahkan inti {0} ke dalam peta di penyunting. +map.nospawn = Peta ini tidak memiliki inti agar pemain bisa muncul! Tambahkan inti [#{0}]{1}[] ke dalam peta di penyunting. +map.nospawn.pvp = Peta ini tidak memiliki inti agar pemain lawan bisa muncul! Tambahkan inti[scarlet] selain jingga[] ke dalam peta di penyunting. +map.nospawn.attack = Peta ini tidak memiliki inti musuh agar pemain bisa menyerang! Tambahkan inti [#{0}]{1}[] ke dalam peta di penyunting. map.invalid = Terjadi kesalahan saat memuat peta: rusak atau file peta tidak valid. -workshop.update = Perbarui Item +workshop.update = Perbarui Konten workshop.error = Terjadi kesalahan saat mengambil detail workshop: {0} -map.publish.confirm = Apakah Anda yakin untuk menerbitkan peta ini?\n\n[lightgray]Pastikan Anda setuju dengan Workshop EULA terlebih dahulu, atau peta anda tidak akan muncul! -workshop.menu = Pilih apa yang Anda ingin lakukan dengan item ini. -workshop.info = Informasi item +map.publish.confirm = Apakah Anda yakin untuk menerbitkan peta ini?\n\n[lightgray]Pastikan Anda setuju dengan Workshop EULA terlebih dahulu, atau peta Anda tidak akan muncul! +workshop.menu = Pilih apa yang Anda ingin lakukan dengan konten ini. +workshop.info = Informasi Konten changelog = Catatan Pembaruan (opsional): updatedesc = Timpa Judul & Deskripsi eula = EULA Steam -missing = Item ini telah dihapus atau dipindah.\n[lightgray]Daftar Workshop sekarang telah tidak terhubung secara otomatis. +missing = Konten ini telah dihapus atau dipindah.\n[lightgray]Daftar Workshop sekarang telah tidak terhubung secara otomatis. publishing = [accent]Menerbitkan... -publish.confirm = Apakah Anda yakin untuk menerbitkan ini?\n\n[lightgray]Pastikan Anda setuju dengan EULA Workshop terlebih dahulu, atau item Anda tidak akan muncul! -publish.error = Terjadi kesalahan saat menerbitkan item: {0} +publish.confirm = Apakah Anda yakin untuk menerbitkan ini?\n\n[lightgray]Pastikan Anda setuju dengan EULA Workshop terlebih dahulu, atau konten Anda tidak akan muncul! +publish.error = Terjadi kesalahan saat menerbitkan konten: {0} steam.error = Gagal untuk menjalankan layanan Steam.\nKesalahan: {0} editor.planet = Planet: editor.sector = Sektor: editor.seed = Benih: -editor.cliffs = Dinding Ke Jurang +editor.cliffs = Dinding Ke Tebing editor.brush = Kuas -editor.openin = Buka di Penyunting +editor.openin = Buka di Penyuntingan editor.oregen = Generasi Sumber Daya editor.oregen.info = Generasi Sumber Daya: editor.mapinfo = Info Peta editor.author = Pencipta: editor.description = Deskripsi: -editor.nodescription = Setiap peta harus memiliki sebuah deskripsi setidaknya 4 karakter sebelum diterbitkan. +editor.nodescription = Setiap peta harus memiliki deskripsi setidaknya 4 huruf sebelum diunggah. editor.waves = Gelombang: editor.rules = Peraturan: editor.generation = Generasi: editor.objectives = Tujuan -editor.locales = Locale Bundles -editor.worldprocessors = World Processors -editor.worldprocessors.editname = Edit Name -editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below. -editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this? -editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall. +editor.locales = Paket Lokal +editor.worldprocessors = Prosesor Dunia +editor.worldprocessors.editname = Sunting Nama +editor.worldprocessors.none = [lightgray]Tidak ada blok prosesor dunia yang ditemukan!\nTambahkan satu di penyunting peta, atau gunakan \ue813 tombol Tambah di bawah. +editor.worldprocessors.nospace = Tidak ada ruang kosong untuk menempatkan prosesor dunia!\nApakah Anda mengisi peta dengan bangunan? Mengapa Anda melakukan ini? +editor.worldprocessors.delete.confirm = Apakah Anda yakin ingin menghapus prosesor dunia ini?\n\nJika dikelilingi tembok maka akan diganti dengan tembok lingkungan. editor.ingame = Sunting dalam Permainan editor.playtest = Tes Bermain -editor.publish.workshop = Terbitkan di Workshop +editor.publish.workshop = Unggah ke Workshop editor.newmap = Peta Baru editor.center = Pusat editor.search = Cari peta... @@ -469,15 +475,15 @@ waves.shields = perisai/gelombang waves.to = sampai waves.spawn = muncul: waves.spawn.all = -waves.spawn.select = Pilih tempat Muncul -waves.spawn.none = [scarlet]tidak ada tempat muncul di peta +waves.spawn.select = Pilih Tempat Pendaratan Musuh +waves.spawn.none = [scarlet]tidak ada tempat pendaratan musuh di peta waves.max = unit maks waves.guardian = Penjaga waves.preview = Pratinjau waves.edit = Sunting... -waves.random = Random -waves.copy = Salin ke Papan klip -waves.load = Tempel dari Papan klip +waves.random = Acak +waves.copy = Salin ke Papan Klip +waves.load = Tempel dari Papan Klip waves.invalid = Gelombang tidak valid di papan klip. waves.copied = Gelombang tersalin. waves.none = Tidak ada musuh yang didefinisikan.\nIngat bahwa susunan gelombang yang kosong akan diubah menjadi susunan gelombang standar secara otomatis. @@ -486,10 +492,10 @@ waves.sort.reverse = Urut Balik waves.sort.begin = Mulai waves.sort.health = Darah waves.sort.type = Tipe -waves.search = Search waves... -waves.filter = Unit Filter +waves.search = Cari gelombang... +waves.filter = Filter Unit waves.units.hide = Sembunyikan Semua -waves.units.show = Lihat Semua +waves.units.show = Perlihatkan Semua #these are intentionally in lower case wavemode.counts = jumlah @@ -498,23 +504,24 @@ wavemode.health = darah editor.default = [lightgray] details = Detail... -edit = Sunting... +edit = Sunting variables = Vars -logic.clear.confirm = Are you sure you want to clear all code from this processor? -logic.globals = Built-in Variables +logic.clear.confirm = Apakah Anda yakin ingin menghapus semua kode dari prosesor ini? +logic.globals = Variabel Bawaan + editor.name = Nama: editor.spawn = Munculkan Unit editor.removeunit = Hapus Unit editor.teams = Tim editor.errorload = Terjadi kesalahan saat memuat file. editor.errorsave = Terjadi kesalahan saat menyimpan file. -editor.errorimage = Itu gambar biasa, bukan peta. +editor.errorimage = Itu gambar, bukan peta. editor.errorlegacy = Peta ini terlalu tua, dan memakai format peta "legacy" yang tidak didukung lagi. -editor.errornot = Ini bukan merupakan file peta. -editor.errorheader = File peta ini bisa jadi tidak sah atau rusak. +editor.errornot = Ini bukan file peta. +editor.errorheader = File peta ini Kemungkinan tidak valid atau rusak. editor.errorname = Peta tidak ada nama. Apakah Anda mencoba untuk memuat file simpanan? -editor.errorlocales = Error reading invalid locale bundles. -editor.update = Perbaruan +editor.errorlocales = Terjadi kesalahan saat membaca paket lokal yang tidak valid. +editor.update = Perbarui editor.randomize = Acak editor.moveup = Pindah Ke Atas editor.movedown = Pindah Ke Bawah @@ -525,54 +532,54 @@ editor.sectorgenerate = Generasi Sektor editor.resize = Ubah Ukuran editor.loadmap = Memuat Peta editor.savemap = Simpan Peta -editor.savechanges = [scarlet]You have unsaved changes!\n\n[]Do you want to save them? +editor.savechanges = [scarlet]Anda memiliki perubahan yang belum disimpan!\n\n[]Apakah Anda ingin menyimpannya? editor.saved = Tersimpan! editor.save.noname = Peta Anda tidak ada nama! Tambahkan di menu 'info peta'. -editor.save.overwrite = Peta ini menindih peta built-in! Pilih nama yang berbeda di menu 'info peta'. -editor.import.exists = [scarlet]Tidak bisa mengimpor:[] peta built-in bernama '{0}' sudah ada! +editor.save.overwrite = Peta ini menimpa peta bawaan! Pilih nama yang berbeda di menu 'info peta'. +editor.import.exists = [scarlet]Tidak bisa mengimpor:[] peta bawaan bernama '{0}' sudah ada! editor.import = Mengimpor... editor.importmap = Impor Peta editor.importmap.description = Mengimpor peta yang telah ada editor.importfile = Impor File -editor.importfile.description = Mengimpor file peta dari luar +editor.importfile.description = Mengimpor file peta eksternal editor.importimage = Impor File Gambar -editor.importimage.description = Mengimpor file peta berbentuk gambar dari luar +editor.importimage.description = Mengimpor file peta eksternal berbentuk gambar editor.export = Ekspor... editor.exportfile = Ekspor File editor.exportfile.description = Mengekspor sebuah file peta -editor.exportimage = Expor Gambar Dunia +editor.exportimage = Ekspor Gambar Medan editor.exportimage.description = Ekspor sebuah file gambar peta -editor.loadimage = Impor Dunia -editor.saveimage = Ekspor Dunia +editor.loadimage = Impor Medan +editor.saveimage = Ekspor Medan editor.unsaved = Yakin ingin keluar?\n[scarlet]Perubahan yang belum disimpan akan hilang. editor.resizemap = Ubah Ukuran Peta editor.mapname = Nama Peta: -editor.overwrite = [accent]Peringatan!\nIni akan menindih peta yang telah ada. -editor.overwrite.confirm = [scarlet]Peringatan![] Peta dengan nama ini sudah ada. Yakin ingin menindihnya?\n"[accent]{0}[]" +editor.overwrite = [accent]Peringatan!\nIni akan menimpa peta yang telah ada. +editor.overwrite.confirm = [scarlet]Peringatan![] Peta dengan nama ini sudah ada. Yakin ingin menimpanya?\n"[accent]{0}[]" editor.exists = Sebuah peta dengan nama ini sudah ada. editor.selectmap = Pilih peta untuk dimuat: toolmode.replace = Ganti -toolmode.replace.description = Hanya dapat digambar pada balok padat. +toolmode.replace.description = Menggambar pada blok padat. toolmode.replaceall = Ganti Semua -toolmode.replaceall.description = Ganti semua balok di peta. +toolmode.replaceall.description = Ganti semua blok di peta. toolmode.orthogonal = Ortogonal -toolmode.orthogonal.description = Hanya menggambar garis ortogonal. +toolmode.orthogonal.description = Menggambar dalam garis ortogonal. toolmode.square = Persegi -toolmode.square.description = Sikat bangun persegi. +toolmode.square.description = Bangun persegi. toolmode.eraseores = Hapus Bijih -toolmode.eraseores.description = Hanya menghapus bijih. +toolmode.eraseores.description = Menghapus bijih. toolmode.fillteams = Isi Tim toolmode.fillteams.description = Mengisi tim bukannya blok. -toolmode.fillerase = Fill Erase -toolmode.fillerase.description = Erase blocks of the same type. +toolmode.fillerase = Hapus +toolmode.fillerase.description = Hapus blok dengan tipe yang sama. toolmode.drawteams = Gambar Tim toolmode.drawteams.description = Menggambar tim bukannya blok. #unused toolmode.underliquid = Di Bawah Cairan toolmode.underliquid.description = Gambarlah lantai di bawah ubin cair. -filters.empty = [lightgray]Tidak ada filter! Tambahkan dengan tombol dibawah. +filters.empty = [lightgray]Tidak ada penyaring! Tambahkan dengan tombol di bawah. filter.distort = Kerusakkan filter.noise = Kebisingan @@ -582,7 +589,7 @@ filter.corespawn = Pilih Inti filter.median = Median filter.oremedian = Median Bijih filter.blend = Campur -filter.defaultores = Bijih Standar +filter.defaultores = Sumber Daya Bawaan filter.ore = Sumber Daya filter.rivernoise = Kebisingan Sungai filter.mirror = Cermin @@ -590,7 +597,7 @@ filter.clear = Bersih filter.option.ignore = Biarkan filter.scatter = Penebaran filter.terrain = Lahan -filter.logic = Logic +filter.logic = Logika filter.option.scale = Ukuran filter.option.chance = Kemungkinan @@ -614,25 +621,26 @@ filter.option.floor2 = Lantai Sekunder filter.option.threshold2 = Ambang Sekunder filter.option.radius = Radius filter.option.percentile = Perseratus -filter.option.code = Code -filter.option.loop = Loop -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) -locales.deletelocale = Are you sure you want to delete this locale bundle? -locales.applytoall = Apply Changes To All Locales -locales.addtoother = Add To Other Locales -locales.rollback = Rollback to last applied -locales.filter = Property filter -locales.searchname = Search name... -locales.searchvalue = Search value... -locales.searchlocale = Search locale... -locales.byname = By name -locales.byvalue = By value -locales.showcorrect = Show properties that are present in all locales and have unique values everywhere -locales.showmissing = Show properties that are missing in some locales -locales.showsame = Show properties that have same values in different locales -locales.viewproperty = View in all locales -locales.viewing = Viewing property "{0}" -locales.addicon = Add Icon +filter.option.code = Kode +filter.option.loop = Perulangan + +locales.info = Di sini, Anda dapat menambahkan paket lokal untuk bahasa tertentu ke peta Anda. Dalam paket lokal, setiap properti memiliki nama dan nilai. Properti ini dapat digunakan prosesor dunia dan tujuan dengan menggunakan namanya. Mereka mendukung pemformatan teks (mengganti placeholder dengan nilai sebenarnya).\n\n[cyan]Contoh properti:\n[]nama: [accent]waktu[]\nnilai: [accent]Contoh pengatur waktu, waktu tersisa: {0}[]\n\n[cyan]Penggunaan:\n[]Tetapkan sebagai teks tujuan: [accent]@timer\n\n[]Cetak dalam prosesor dunia:\n[accent]cetak lokal "timer"\nformat time\n[gray](di mana waktu adalah variabel yang dihitung secara terpisah) +locales.deletelocale = Apakah Anda yakin ingin menghapus paket lokal ini? +locales.applytoall = Terapkan Perubahan Ke Semua Paket Lokal +locales.addtoother = Tambahkan Ke Paket Lokal Lain +locales.rollback = Kembalikan ke yang terakhir diterapkan +locales.filter = Filter properti +locales.searchname = Cari nama... +locales.searchvalue = Cari nilai... +locales.searchlocale = Cari lokal... +locales.byname = Dengan nama +locales.byvalue = Dengan nilai +locales.showcorrect = Tampilkan properti yang ada di semua paket lokal dan memiliki nilai unik di mana pun +locales.showmissing = Tampilkan properti yang tidak ada di beberapa paket lokal +locales.showsame = Tampilkan properti yang memiliki nilai yang sama di lokasi berbeda +locales.viewproperty = Lihat di semua paket lokal +locales.viewing = Melihat properti "{0}" +locales.addicon = Tambahkan Ikon width = Lebar: height = Tinggi: @@ -646,23 +654,23 @@ ping = Ping: {0}ms tps = TPS: {0} memory = Mem: {0}mb memory2 = Mem:\n {0}mb +\n {1}mb -language.restart = Silahkan mengulang kembali permainan agar pengaturan bahasa berpengaruh. +language.restart = Silahkan memulai ulang game agar pengaturan bahasa diterapkan settings = Pengaturan tutorial = Tutorial -tutorial.retake = Ulang Tutorial +tutorial.retake = Ulangi Tutorial editor = Penyunting mapeditor = Penyunting Peta abandon = Tinggalkan -abandon.text = Zona ini dan semua sumber daya didalamnya akan berada di tangan musuh. +abandon.text = Zona ini dan semua sumber daya di dalamnya akan berada di tangan musuh. locked = Terkunci complete = [lightgray]Selesaikan: requirement.wave = Raih gelombang {0} dalam {1} requirement.core = Hancurkan inti musuh dalam {0} -requirement.research = Kembangkan {0} +requirement.research = Riset {0} requirement.produce = Produksi {0} requirement.capture = Kuasai {0} -requirement.onplanet = Kendalikan Sektor Dalam {0} +requirement.onplanet = Kendalikan Sektor Di {0} requirement.onsector = Mendarat Di Sektor: {0} launch.text = Luncurkan research.multiplayer = Hanya host yang dapat meneliti barang. @@ -672,8 +680,8 @@ configure = Konfigurasi Muatan objective.research.name = Riset objective.produce.name = Peroleh -objective.item.name = Peroleh Barang -objective.coreitem.name = Barang Inti +objective.item.name = Peroleh Suatu Bahan +objective.coreitem.name = Bahan Inti objective.buildcount.name = Jumlah Bangunan objective.unitcount.name = Jumlah Unit objective.destroyunits.name = Hancurkan Unit @@ -685,42 +693,42 @@ objective.commandmode.name = Mode Perintah objective.flag.name = Bendera marker.shapetext.name = Teks Berbentuk -marker.point.name = Point +marker.point.name = Titik marker.shape.name = Bentuk marker.text.name = Teks -marker.line.name = Line -marker.quad.name = Quad -marker.texture.name = Texture +marker.line.name = Garis +marker.quad.name = Segi empat +marker.texture.name = Tekstur marker.background = Latar Belakang marker.outline = Garis Luar objective.research = [accent]Riset:\n[]{0}[lightgray]{1} -objective.produce = [accent]Memperoleh:\n[]{0}[lightgray]{1} +objective.produce = [accent]Peroleh:\n[]{0}[lightgray]{1} objective.destroyblock = [accent]Hancurkan:\n[]{0}[lightgray]{1} objective.destroyblocks = [accent]Hancurkan: [lightgray]{0}[white]/{1}\n{2}[lightgray]{3} -objective.item = [accent]Memperoleh: [][lightgray]{0}[]/{1}\n{2}[lightgray]{3} +objective.item = [accent]Peroleh: [][lightgray]{0}[]/{1}\n{2}[lightgray]{3} objective.coreitem = [accent]Pindahkan ke Inti:\n[][lightgray]{0}[]/{1}\n{2}[lightgray]{3} objective.build = [accent]Bangun: [][lightgray]{0}[]x\n{1}[lightgray]{2} -objective.buildunit = [accent]Bangun Unit: [][lightgray]{0}[]x\n{1}[lightgray]{2} +objective.buildunit = [accent]Buat Unit: [][lightgray]{0}[]x\n{1}[lightgray]{2} objective.destroyunits = [accent]Hancurkan: [][lightgray]{0}[]x Units -objective.enemiesapproaching = [accent]Musuh akan datang pada [lightgray]{0}[] -objective.enemyescelating = [accent]Enemy production escalating in [lightgray]{0}[] -objective.enemyairunits = [accent]Enemy air unit production beginning in [lightgray]{0}[] +objective.enemiesapproaching = [accent]Musuh akan datang dalam [lightgray]{0}[] +objective.enemyescelating = [accent]Produksi musuh meningkat dalam [lightgray]{0}[] +objective.enemyairunits = [accent]Produksi pasukan udara musuh dimulai dalam [lightgray]{0}[] objective.destroycore = [accent]Hancurkan Inti Musuh objective.command = [accent]Perintahkan Unit -objective.nuclearlaunch = [accent]⚠ Terdeteksi peluncuran nuklir: [lightgray]{0} +objective.nuclearlaunch = [accent]\u26A0 Terdeteksi peluncuran nuklir: [lightgray]{0} -announce.nuclearstrike = [red]⚠ SERANGAN NUKLIR ⚠ +announce.nuclearstrike = [red]\u26A0 SERANGAN NUKLIR \u26A0\n[lightgray]bangun inti cadangan sesegera mungkin loadout = Muatan resources = Sumber Daya resources.max = Maks -bannedblocks = Balok yang Dilarang +bannedblocks = Blok yang Dilarang objectives = Tujuan bannedunits = Unit yang Dilarang -bannedunits.whitelist = Banned Units As Whitelist -bannedblocks.whitelist = Banned Blocks As Whitelist +bannedunits.whitelist = Unit yang Dilarang Sebagai Whitelist +bannedblocks.whitelist = Blok yang Dilarang Sebagai Whitelist addall = Tambah Semua launch.from = Meluncurkan Dari: [accent]{0} launch.capacity = Kapasitas Barang yang Diluncurkan: [accent]{0} @@ -732,21 +740,22 @@ guardian = Penjaga connectfail = [scarlet]Gagal menyambung ke server:\n\n[accent]{0} error.unreachable = Server tidak dapat dihubungi.\nApakah alamatnya benar? error.invalidaddress = Alamat tidak valid. -error.timedout = Kehabisan waktu!\nPastikan pemilik mempunyai port forwarding, dan alamatnya benar! -error.mismatch = Paket terjadi kekeliruan:\nbisa terjadi apabila versi client/server berbeda.\nPastikan Anda dan host mempunyai versi terbaru Mindustry! +error.timedout = Kehabisan waktu!\nPastikan pemilik mempunyai port penerusan, dan alamatnya benar! +error.mismatch = Paket bermasalah:\nkemungkinan versi client/server berbeda.\nPastikan Anda dan host mempunyai versi terbaru Mindustry! error.alreadyconnected = Sudah tersambung. error.mapnotfound = File peta tidak ditemaukan! error.io = Terjadi kesalahan jaringan I/O. error.any = Terjadi kesalahan Jaringan tidak diketahui. -error.bloom = Gagal untuk menjalankan bloom.\nPerangkat Anda mungkin tidak mendukung fitur ini. +error.bloom = Gagal untuk menjalankan efek bloom.\nPerangkat Anda mungkin tidak mendukung fitur ini. weather.rain.name = Hujan weather.snowing.name = Salju weather.sandstorm.name = Badai Pasir weather.sporestorm.name = Badai Spora weather.fog.name = Kabut -campaign.playtime = \uf129 [lightgray]Sector Playtime: {0} -campaign.complete = [accent]Congratulations.\n\nThe enemy on {0} has been defeated.\n[lightgray]The final sector has been conquered. + +campaign.playtime = \uF129 [lightgray]Waktu bermain di sektor: {0} +campaign.complete = [accent]Selamat.\n\nMusuh di {0} telah dikalahkan.\n[lightgray]Sektor terakhir telah dikuasai. sectorlist = Sektor sectorlist.attacked = {0} sedang diserang @@ -762,12 +771,12 @@ sectors.stored = Terisi: sectors.resume = Lanjutkan sectors.launch = Luncurkan sectors.select = Pilih -sectors.nonelaunch = [lightgray]tidak ada (matahari) +sectors.nonelaunch = [lightgray]nihil (matahari) sectors.rename = Ganti Nama Sektor sectors.enemybase = [scarlet]Markas Musuh sectors.vulnerable = [scarlet]Rawan diserang sectors.underattack = [scarlet]Dalam Serangan! [accent]Kerusakan sebesar {0}% -sectors.underattack.nodamage = [scarlet]Belum Ditaklukkan +sectors.underattack.nodamage = [scarlet]Belum Dikuasai sectors.survives = [accent]Bertahan sebanyak {0} gelombang sectors.go = Mulai sector.abandon = Tinggalkan @@ -777,11 +786,11 @@ sector.curlost = Sektor Gagal Bertahan sector.missingresources = [scarlet]Sumber Daya Inti Tidak Cukup sector.attacked = Sektor [accent]{0}[white] sedang diserang! sector.lost = Sektor [accent]{0}[white] telah dihancurkan! -sector.capture = Sector [accent]{0}[white]Captured! -sector.capture.current = Sector Captured! +sector.capture = Sector [accent]{0}[white]Dikuasai! +sector.capture.current = Sektor Dikuasai! sector.changeicon = Ubah Ikon -sector.noswitch.title = Tidak Dapat beralih Sektor -sector.noswitch = Andak tidak boleh berpindah sektor jika salah satu sektor terkena serangan.\nSektor: [accent]{0}[] di [accent]{1}[] +sector.noswitch.title = Tidak Dapat berpindah Sektor +sector.noswitch = Anda tidak boleh berpindah sektor jika salah satu sektor sedang di serang.\nSektor: [accent]{0}[] di [accent]{1}[] sector.view = Lihat Sektor threat.low = Rendah @@ -815,74 +824,73 @@ sector.planetaryTerminal.name = Pusat Peluncuran Planet sector.coastline.name = Tepi Pantai sector.navalFortress.name = Benteng Laut -sector.groundZero.description = Lokasi yang optimal untuk bermain satu kali lagi. Sangat sedikit musuh. Beberapa sumber daya dapat dikumpulkan.\nKumpulkan timah dan tembaga sebanyak yang kamu bisa.\nMulai dari sini. -sector.frozenForest.description = Disini, dekat dengan gunung, spora sudah menyebar. Suhu dingin tidak dapat menahannya.\n\nHasilkan listrik. Bangun generator pembakar. Pelajari cara menggunakan mender. -sector.saltFlats.description = Di pinggiran padang pasir terdapat Daratan Garam. Beberapa sumber daya dapat ditemukan disini.\n\nMusuh telah membangun gudang disini. Hancurkan inti mereka. Jangan biarkan satupun tersisa. +sector.groundZero.description = Lokasi yang optimal untuk bermain satu kali lagi. Sangat sedikit musuh. Sedikit sumber daya.\nKumpulkan timah dan tembaga sebanyak yang Anda bisa.\nMulai dari sini. +sector.frozenForest.description = Di sini, dekat dengan gunung, spora sudah menyebar. Suhu dingin tidak dapat menahannya.\n\nMulailah hasilkan listrik. Bangun generator pembakar. Pelajari cara menggunakan mender. +sector.saltFlats.description = Di pinggiran padang pasir terdapat Daratan Garam. Beberapa sumber daya dapat ditemukan di sini.\n\nMusuh telah mendirikan penyimpanan sumber daya kompleks di sini. Hancurkan inti mereka. Jangan biarkan satupun tersisa. sector.craters.description = Air banyak terkumpul di kawah ini, sebuah peninggalan dari perang masa lalu. Klaim area ini lagi. Kumpulkan pasir. Lebur metaglass. Pompa air untuk mendinginkan turret dan bor. -sector.ruinousShores.description = Keluar dari lembah gunung, terdapat garis pantai. Sebelumnya, area ini adalah garis pertahanan pantai. Sekarang tidak banyak yang tersisa. Hanya pertahanan dasar yang tersisa, yang lain hancur berkeping keping.\nBangun kembali pertahanan di sini. Pelajari lebih banyak teknologi. -sector.stainedMountains.description = Area ini terletak di dekat pegunungan, namun belum tersentuh oleh spora.\nTambang titanium yang ada di area ini. Pelajari fungsinya.\n\nMusuh jauh lebih kuat disini. Jangan biarkan mereka meluncurkan unit yang lebih kuat. -sector.overgrowth.description = Area ini banyak ditumbuhi spora, karena dekat dengan sumber spora.\nMusuh telah membangun basis disini. Bangun unit Mace. Hancurkan mereka. Klaim apapun yang tersisa. -sector.tarFields.description = Terletak di pinggiran zona produksi minyak, diantara gunung dan padang pasir. Salah satu dari beberapa area yang memiliki cadangan minyak yang dapat digunakan.\nMeskipun ditinggalkan, area ini terdapat pertahanan musuh yang sangat kuat disekitarnya. Jangan meremehkan mereka.\n\n[lightgray]Pelajari proses penyulingan minyak bila memungkinkan. -sector.desolateRift.description = Zona yang sangat berbahaya. Banyak sumber daya, tetapi terdapat sedikit ruang. Sangat beresiko tinggi untuk dihancurkan. Buatlah pertahanan udara dan darat secepat yang kamu bisa. Jangan terlena karena waktu antara gelombang yang lama. -sector.nuclearComplex.description = Sebuah fasilitas untuk memproduksi dan memproses thorium, telah hancur.\n[lightgray]Pelajari thorium dan cara penggunaanya.\n\nMusuh disini menyerang dalam jumlah besar, yang siap untuk menghadapi siapapun. -sector.fungalPass.description = Area ini terdapat diantara pegunungan yang lebih tinggi dengan yang lebih rendah, juga daerah yang dipenuhi spora. Musuh membangun basis kecil disini.\nHancurkan itu.\nGunakan unit Dagger dan Crawler. Hancurkan dua inti mereka. +sector.ruinousShores.description = Keluar dari lembah gunung, terdapat garis pantai. Sebelumnya, area ini adalah garis pertahanan pantai. Sekarang tidak banyak yang tersisa. Hanya pertahanan dasar yang tersisa, yang lain telah hancur berkeping keping.\nBangun kembali pertahanan di sini. Pelajari lebih banyak teknologi. +sector.stainedMountains.description = Area ini terletak di dekat pegunungan, namun belum tersentuh oleh spora.\nTambang titanium yang ada di area ini. Pelajari fungsinya.\n\nMusuh jauh lebih kuat di sini. Jangan biarkan mereka meluncurkan unit yang lebih kuat. +sector.overgrowth.description = Area ini banyak ditumbuhi spora, karena dekat dengan sumber spora.\nMusuh telah membangun pangkalan di sini. Buat unit Mace. Hancurkan mereka. Klaim apapun yang tersisa. +sector.tarFields.description = Terletak di pinggiran zona produksi minyak, di antara gunung dan padang pasir. Salah satu dari beberapa area yang memiliki cadangan minyak yang dapat digunakan.\nMeskipun ditinggalkan, area ini terdapat pasukan musuh yang berbahaya di sekitarnya. Jangan meremehkan mereka.\n\n[lightgray]Pelajari proses penyulingan minyak bila memungkinkan. +sector.desolateRift.description = Zona yang sangat berbahaya. Banyak sumber daya, tetapi terdapat sedikit ruang. Sangat resiko kehancuran sangat tinggi. Buatlah pertahanan udara dan darat secepat yang Anda bisa. Jangan terlena dengan waktu antar gelombang yang lama. +sector.nuclearComplex.description = Sebuah fasilitas untuk memproduksi dan memproses torium, yang telah hancur.\n[lightgray]Pelajari torium dan cara penggunaanya.\n\nMusuh yang hadir di sini menyerang dalam jumlah besar, tak henti mengintai penyerang. +sector.fungalPass.description = Area ini terdapat di antara pegunungan yang lebih tinggi dengan yang lebih rendah, juga daerah yang dipenuhi spora. Musuh membangun markas pengintaian kecil di sini.\nHancurkan itu.\nGunakan unit Dagger dan Crawler. Hancurkan dua inti mereka. sector.biomassFacility.description = Asal dari semua spora di planet ini. Tempat ini adalah fasilitas dimana spora dipelajari dan diproduksi.\nPelajari teknologi yang terkait dengannya. Budi dayakan spora untuk memproduksi bahan bakar dan plastik.\n\n[lightgray]Setelah fasilitas ini hancur, spora menyebar. Tidak ada di ekosistem lokal yang dapat bersaing dengan organisme invasif seperti itu. -sector.windsweptIslands.description = Jauh dari pantai terdapat sekumpulan pulau. Catatan yang ada mengatakan bahwa mereka memiliki struktur untuk memproduksi [accent]Plastanium[].\n\nKalahkan unit laut musuh. Bangun basis di kepulauan ini. Pelajari pabriknya. -sector.extractionOutpost.description = Sebuah pos jarak jauh, dibangun musuh untuk meluncurkan sumber daya ke sektor yang lain.\n\nTeknologi tarnsportasi antar sektor dapat memudahkan untuk menaklukan lebih banyak sektor. Hancurkan basis itu. Pelajari Alas Peluncur mereka. +sector.windsweptIslands.description = Jauh dari pantai terdapat sekumpulan pulau. Catatan yang ada mengatakan bahwa mereka memiliki struktur untuk memproduksi [accent]Plastanium[].\n\nKalahkan unit laut musuh. Bangun markas di kepulauan ini. Pelajari pabriknya. +sector.extractionOutpost.description = Sebuah pos jarak jauh, dibangun musuh untuk meluncurkan sumber daya ke sektor yang lain.\n\nTeknologi transportasi antar sektor dapat memudahkan untuk menaklukan lebih banyak sektor. Hancurkan markasnya . Pelajari Alas Peluncur mereka. sector.impact0078.description = Di sini terletak sisa-sisa pesawat antarbintang yang pertama kali memasuki sistem ini.\n\nSelamatkan apapun yang ada dari sisa-sisa pesawat. Pelajari teknologi apa pun yang utuh. -sector.planetaryTerminal.description = Target terakhir.\n\nBasis pantai ini memiliki struktur yang dapat meluncurkan inti ke planet disekitarnya. Memiliki pertahanan yang sangat bagus.\n\nProduksi unit laut. Hancurkan musuh secepat mungkin. Pelajari struktur peluncuran mereka. -sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. -sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. +sector.planetaryTerminal.description = Target terakhir.\n\nMarkas pesisir pantai ini memiliki struktur yang dapat meluncurkan inti ke planet di sekitarnya. Memiliki pertahanan yang sangat bagus.\n\nProduksi unit laut. Hancurkan musuh secepat mungkin. Pelajari struktur peluncuran mereka. +sector.coastline.description = Sisa-sisa teknologi Unit Laut telah terdeteksi di lokasi ini. Tolak serangan musuh, rebut sektor ini, dan dapatkan teknologinya. +sector.navalFortress.description = Musuh telah mendirikan markas di sebuah pulau terpencil, dibentengi secara alami. Hancurkan pangkalan ini. Dapatkan teknologi Unit Laut mereka yang canggih, dan telitilah -sector.onset.name = Pemulaan +sector.onset.name = Serangan Awal sector.aegis.name = Aegis sector.lake.name = Danau sector.intersect.name = Perempatan sector.atlas.name = Atlas -sector.split.name = Split -sector.basin.name = Basin -sector.marsh.name = Marsh -sector.peaks.name = Peaks -sector.ravine.name = Ravine -sector.caldera-erekir.name = Caldera -sector.stronghold.name = Stronghold -sector.crevice.name = Crevice -sector.siege.name = Siege -sector.crossroads.name = Crossroads -sector.karst.name = Karst +sector.split.name = Pisahan +sector.basin.name = Cekungan +sector.marsh.name = Rawa +sector.peaks.name = Puncak +sector.ravine.name = Jurang +sector.caldera-erekir.name = Kaldera +sector.stronghold.name = Benteng +sector.crevice.name = Retakan +sector.siege.name = Pengepungan +sector.crossroads.name = Simpangan +sector.karst.name = Kars sector.origin.name = Origin -sector.onset.description = Sektor latihan. Tujuan ini belum dibuat. Tunggu informasi selanjutnya. -#TODO - no shield breaker anymore. -sector.aegis.description = Musuh dilindungi oleh perisai. Modul pemutus pelindung eksperimental telah terdeteksi di sektor ini.\nTemukan struktur ini. Pasok dengan amunisi tungsten dan hancurkan markas musuh. -sector.lake.description = Danau terak di sektor ini sangat membatasi pilihan unit yang kita gunakan. Pilihan satu-satunya dengan menggunakan unit amphibi.\nRiset [accent]fabrikator kapal[] dan buat unit [accent]elude[] secepat mungkin. -sector.intersect.description = Pemindai mensugesti bahwa sektor ini akan diserang dari berbagai arah setelah kita mendarat.\nSegera siapkan pertahanan dan perluas wilayah secepat mungkin.\nUnit [accent]meka[] akan diperlukan untuk dataran yang sulit dilalui. -sector.atlas.description = Sektor ini memiliki dataran yang unik dan akan memerlukan beraneka ragam unit untuk menyerang secara efektif.\nUnit tingkat lanjut dapat diperlukan untuk melewati beberapa markas musuh yang kuat di sekitar sini.\nRiset [accent]Elektroliser[] dan [accent]Refabrikator Tank[]. +sector.onset.description = Permulaan Penaklukan Erekir. Kumpulkan sumber daya, produksi unit, dan mulailah meneliti teknologi. +sector.aegis.description = Sektor ini mengandung deposit Tungsten.\nRiset [accent]Bor Tumbukan[] untuk menambang sumber daya ini, dan hancurkan markas musuh di area tersebut. +sector.lake.description = Danau lava di sektor ini sangat membatasi pilihan unit yang kita gunakan. Unit Kapal adalah satu-satunya pilihan.\nRiset [accent]fabrikator kapal[] dan produksi unit [accent]elude[] secepat mungkin. +sector.intersect.description = Pemindai menunjukkan bahwa sektor ini akan diserang dari berbagai arah setelah kita mendarat.\nSegera siapkan pertahanan dan perluas wilayah secepat mungkin.\nUnit [accent]mech[] akan dibutuhkan untuk dataran yang sulit dilalui. +sector.atlas.description = Sektor ini memiliki dataran yang unik dan akan membutuhkan beraneka ragam unit untuk menyerang secara efektif.\nUnit yang ditingkatkan mungkin dibutuhkan untuk melewati beberapa markas musuh yang kuat di sekitar sini.\nRiset [accent]Elektroliser[] dan [accent]Refabrikator Tank[]. sector.split.description = Keberadaan musuh yang minim di sektor ini sangat bagus untuk menguji coba teknologi transportasi baru. -sector.basin.description = {Temporary}\n\nSektor terakhir untuk saat ini. Anggap ini sebagai level tantangan! -sector.marsh.description = This sector has an abundance of arkycite, but has limited vents.\nBuild [accent]Chemical Combustion Chambers[] to generate power. -sector.peaks.description = The mountainous terrain in this sector make most units useless. Flying units will be required.\nBe aware of enemy anti-air installations. It may be possible to disable some of these installations by targeting their supporting buildings. -sector.ravine.description = Tidak ada inti musuh yang ditemukan di sini, namun sangat penting sebagai rute transportasi untuk musuh. Expect berbagai jenis musuh.\nProduksi [accent]surge alloy[]. Bangun menara [accent]Afflict[]. -sector.caldera-erekir.description = The resources detected in this sector are scattered across several islands.\nResearch and deploy drone-based transportation. -sector.stronghold.description = The large enemy encampment in this sector guards significant deposits of [accent]thorium[].\nUse it to develop higher tier units and turrets. -sector.crevice.description = The enemy will send fierce attack forces to take out your base in this sector.\nDeveloping [accent]carbide[] and the [accent]Pyrolysis Generator[] may be imperative for survival. -sector.siege.description = This sector features two parallel canyons that will force a two-pronged attack.\nResearch [accent]cyanogen[] to gain the capability to create even stronger tank units.\nCaution: enemy long-range missiles have been detected. The missiles may be shot down before impact. -sector.crossroads.description = The enemy bases in this sector have been established in varying terrain. Research different units to adapt.\nAdditionally, some bases are protected by shields. Figure out how they are powered. -sector.karst.description = This sector is rich in resources, but will be attacked by the enemy once a new core lands.\nTake advantage of the resources and research [accent]phase fabric[]. -sector.origin.description = The final sector with a significant enemy presence.\nNo probable research opportunities remain - focus solely on destroying all enemy cores. +sector.basin.description = Kehadiran musuh dalam jumlah besar terdeteksi di sektor ini.\nBangun unit dengan cepat dan Kuasai inti musuh untuk mendapatkan pijakan +sector.marsh.description = Sektor ini memiliki kelimpahan arkisit, namun memiliki ventilasi yang terbatas.\nBangun [accent]Ruang Pembakaran Kimia[] untuk menghasilkan tenaga. +sector.peaks.description = Medan pegunungan di sektor ini membuat sebagian besar unit tidak berguna. Unit terbang akan dibutuhkan.\nWaspadai instalasi anti-udara yang dimiliki musuh. Beberapa instalasi ini mungkin dapat dinonaktifkan dengan menargetkan bangunan pendukungnya. +sector.ravine.description = Jalur transportasi penting bagi musuh. Tidak ada inti musuh yang ditemukan di sini, namun hati-hati terhadap berbagai jenis musuh.\nProduksi [accent]Paduan Logam[]. Bangun menara [accent]Afflict[]. +sector.caldera-erekir.description = Sumber daya yang terdeteksi di sektor ini tersebar di beberapa pulau.\nRiset dan sebarkan transportasi berbasis drone. +sector.stronghold.description = Markas musuh yang besar di sektor ini menjaga simpanan [accent]torium[] dalam jumlah besar .\nGunakan itu untuk mengembangkan unit dan menara ke tingkat yang lebih tinggi. +sector.crevice.description = Musuh akan mengirimkan pasukan serangan yang hebat untuk menghancurkan markasmu di sektor ini.\nKembangkan [accent]karbit[] dan [accent]Generator Pirolisis[] mungkin imperatif untuk bertahan hidup. +sector.siege.description = Sektor ini memiliki dua ngarai paralel yang akan memaksa serangan dari dua arah.\nRiset [accent]sianogen[] untuk mendapatkan kemampuan untuk membuat unit tank yang lebih kuat.\nPeringatan: Rudal jarak jauh milik musuh telah terdeteksi. Rudal tersebut mungkin ditembak jatuh sebelum terjadi benturan. +sector.crossroads.description = Pangkalan musuh di sektor ini telah didirikan di berbagai medan. Riset unit yang berbeda untuk beradaptasi.\nSelain itu, beberapa markas telah dilindungi oleh perisai. Cari tahu bagaimana mereka diberi daya. +sector.karst.description = Sektor ini kaya akan sumber daya, namun akan diserang oleh musuh begitu inti baru mendarat.\nManfaatkan sumber daya dan riset [accent]Phase Fabric[]. +sector.origin.description = Sektor terakhir dengan kehadiran musuh yang signifikan.\nTidak ada peluang penelitian yang tersisa - fokuslah pada menghancurkan semua inti musuh. status.burning.name = Terbakar status.freezing.name = Membeku status.wet.name = Basah status.muddy.name = Berlumpur status.melting.name = Meleleh -status.sapped.name = Terlemahkan -status.electrified.name = Dialiri Listrik +status.sapped.name = Melemah +status.electrified.name = Terkena Listrik status.spore-slowed.name = Spora Melambat status.tarred.name = Berminyak status.overdrive.name = Dipercepat status.overclock.name = Melebihi Batas -status.shocked.name = Mengkejut +status.shocked.name = Tersengat status.blasted.name = Meledak status.unmoving.name = Terdiam status.boss.name = Penjaga @@ -897,7 +905,7 @@ settings.game = Permainan settings.sound = Suara settings.graphics = Grafik settings.cleardata = Menghapus Data Permainan... -settings.clear.confirm = Anda yakin ingin menghapus data ini?\nWaktu tidak bisa diulang kembali! +settings.clear.confirm = Anda yakin ingin menghapus data ini?\nApa yang sudah dilakukan tidak dapat dibatalkan! settings.clearall.confirm = [scarlet]PERINGATAN![]\nIni akan menghapus semua data permainan, termasuk simpanan, peta, bukaan dan keybind.\nSetelah Anda menekan 'ok' permainan akan menghapus semua data dan keluar otomatis. settings.clearsaves.confirm = Anda yakin ingin menghapus semua simpanan? settings.clearsaves = Bersihkan Simpanan @@ -919,22 +927,22 @@ lastaccessed = [lightgray]Terakhir Diakses: {0} lastcommanded = [lightgray]Terakhir Diperintah: {0} block.unknown = [lightgray]??? -stat.showinmap = +stat.showinmap = stat.description = Kegunaan -stat.input = Masukan +stat.input = Pemasukan stat.output = Pengeluaran stat.maxefficiency = Batas Efisiensi stat.booster = Pendorong -stat.tiles = Petak yang Diperlukan +stat.tiles = Ubin yang Diperlukan stat.affinities = Kecocokan stat.opposites = Bertentangan stat.powercapacity = Kapasitas Tenaga stat.powershot = Tenaga/Tembakan -stat.damage = Kerusakan -stat.targetsair = Sasaran Udara -stat.targetsground = Sasaran Darat -stat.itemsmoved = Kecepatan Gerak -stat.launchtime = Waktu Diantara Peluncuran +stat.damage = Damage +stat.targetsair = Target Udara +stat.targetsground = Target Darat +stat.itemsmoved = Kecepatan Barang +stat.launchtime = Waktu Antara Peluncuran stat.shootrange = Jarak stat.size = Ukuran stat.displaysize = Ukuran Tampilan @@ -944,21 +952,21 @@ stat.linkrange = Jarak Tautan stat.instructions = Instruksi stat.powerconnections = Batas Sambungan stat.poweruse = Penggunaan Tenaga -stat.powerdamage = Tenaga/Pukulan +stat.powerdamage = Tenaga/Tembakan stat.itemcapacity = Kapasitas Bahan stat.memorycapacity = Kapasitas Memori -stat.basepowergeneration = Basis Generasi Tenaga +stat.basepowergeneration = Dasar Generasi Tenaga stat.productiontime = Waktu Produksi -stat.repairtime = Waktu Memperbaiki Blok Penuh -stat.repairspeed = Kecepatan Memperbaiki +stat.repairtime = Waktu Perbaikan Blok Penuh +stat.repairspeed = Kecepatan Perbaikan stat.weapons = Senjata stat.bullet = Peluru stat.moduletier = Tingkatan Modul -stat.unittype = Unit Type -stat.speedincrease = Tambahan Kecepatan +stat.unittype = Jenis Unit +stat.speedincrease = Peningkatan Kecepatan stat.range = Jarak stat.drilltier = Sumber Daya yang Ditambang -stat.drillspeed = Basis Kecepatan Bor +stat.drillspeed = Kecepatan Bor Dasar stat.boosteffect = Efek Pendorong stat.maxunits = Batas Unit Aktif stat.health = Darah @@ -968,14 +976,14 @@ stat.maxconsecutive = Batas Konsekutif stat.buildcost = Biaya Bangunan stat.inaccuracy = Jarak Melenceng stat.shots = Tembakan -stat.reload = Kecepatan Tembakan +stat.reload = Kecepatan Penembakan stat.ammo = Amunisi stat.shieldhealth = Darah Perisai stat.cooldowntime = Waktu Pendinginan stat.explosiveness = Daya Ledak stat.basedeflectchance = Peluang Defleksi Dasar stat.lightningchance = Peluang Menghasilkan Petir -stat.lightningdamage = Kerusakan Petir +stat.lightningdamage = Damage Petir stat.flammability = Daya Bakar stat.radioactivity = Daya Radioaktif stat.charge = Setruman @@ -985,74 +993,75 @@ stat.temperature = Suhu stat.speed = Kecepatan stat.buildspeed = Kecepatan Membangun stat.minespeed = Kecepatan Menambang -stat.minetier = Tingkat Menambang +stat.minetier = Tingkat Tambang stat.payloadcapacity = Kapasitas Muatan stat.abilities = Kemampuan -stat.canboost = Dapat Dipercepat +stat.canboost = Memiliki Pendorong stat.flying = Terbang stat.ammouse = Penggunaan Amunisi -stat.ammocapacity = Ammo Capacity +stat.ammocapacity = Kapasitas Amunisi stat.damagemultiplier = Penggandaan Kekuatan (dmg) stat.healthmultiplier = Penggandaan Darah stat.speedmultiplier = Penggandaan Kecepatan stat.reloadmultiplier = Penggandaan Isi Ulang stat.buildspeedmultiplier = Penggandaan Kecepatan Membangun -stat.reactive = Reaktif +stat.reactive = Reaksi stat.immunities = Kekebalan stat.healing = Menyembuhkan ability.forcefield = Bidang Kekuatan -ability.forcefield.description = Projects a force shield that absorbs bullets +ability.forcefield.description = Memproyeksikan perisai kekuatan yang menyerap peluru ability.repairfield = Bidang Perbaikan -ability.repairfield.description = Repairs nearby units +ability.repairfield.description = Memperbaiki unit terdekat ability.statusfield = Bidang Status -ability.statusfield.description = Applies a status effect to nearby units +ability.statusfield.description = Menerapkan efek status ke unit terdekat ability.unitspawn = Pabrik -ability.unitspawn.description = Constructs units +ability.unitspawn.description = Membangun unit ability.shieldregenfield = Bidang Regenerasi Perisai -ability.shieldregenfield.description = Regenerates shields of nearby units +ability.shieldregenfield.description = Meregenerasi perisai unit di sekitar ability.movelightning = Pergerakan Petir -ability.movelightning.description = Releases lightning while moving -ability.armorplate = Armor Plate -ability.armorplate.description = Reduces damage taken while shooting -ability.shieldarc = Shield Arc -ability.shieldarc.description = Projects a force shield in an arc that absorbs bullets -ability.suppressionfield = Regen Suppression Field -ability.suppressionfield.description = Stops nearby repair buildings -ability.energyfield = Bidang Tenaga -ability.energyfield.description = Zaps nearby enemies -ability.energyfield.healdescription = Zaps nearby enemies and heals allies -ability.regen = Regeneration -ability.regen.description = Regenerates own health over time -ability.liquidregen = Liquid Absorption -ability.liquidregen.description = Absorbs liquid to heal itself -ability.spawndeath = Death Spawns -ability.spawndeath.description = Releases units on death -ability.liquidexplode = Death Spillage -ability.liquidexplode.description = Spills liquid on death -ability.stat.firingrate = [stat]{0}/sec[lightgray] firing rate -ability.stat.regen = [stat]{0}[lightgray] health/sec -ability.stat.shield = [stat]{0}[lightgray] shield -ability.stat.repairspeed = [stat]{0}/sec[lightgray] repair speed -ability.stat.slurpheal = [stat]{0}[lightgray] health/liquid unit -ability.stat.cooldown = [stat]{0} sec[lightgray] cooldown -ability.stat.maxtargets = [stat]{0}[lightgray] max targets -ability.stat.sametypehealmultiplier = [stat]{0}%[lightgray] same type repair amount -ability.stat.damagereduction = [stat]{0}%[lightgray] damage reduction -ability.stat.minspeed = [stat]{0} tiles/sec[lightgray] min speed -ability.stat.duration = [stat]{0} sec[lightgray] duration -ability.stat.buildtime = [stat]{0} sec[lightgray] build time +ability.movelightning.description = Melepaskan petir sambil bergerak +ability.armorplate = Pelindung Baja +ability.armorplate.description = Mengurangi kerusakan yang diterima saat menembak +ability.shieldarc = Perisai Busur +ability.shieldarc.description = Memproyeksikan perisai kekuatan dalam busur yang menyerap peluru +ability.suppressionfield = Bidang Penahan Regen +ability.suppressionfield.description = Menghentikan bangunan perbaikan di dekatnya +ability.energyfield = Bidang Energi +ability.energyfield.description = Menyengat musuh di sekitar +ability.energyfield.healdescription = Menyengat musuh di sekitar dan menyembuhkan sekutu +ability.regen = Regenerasi Diri Sendiri +ability.regen.description = Meregenerasi darah sendiri secara terus menerus +ability.liquidregen = Penyerapan Cairan +ability.liquidregen.description = Menyerap cairan untuk menyembuhkan dirinya sendiri +ability.spawndeath = Kematian-Munculkan +ability.spawndeath.description = Melepaskan unit saat mati +ability.liquidexplode = Kematian-Tumpahkan +ability.liquidexplode.description = Menumpahkan cairan saat mati + +ability.stat.firingrate = [stat]{0}/sec[lightgray] laju penembakan +ability.stat.regen = [stat]{0}[lightgray] darah/detik +ability.stat.shield = [stat]{0}[lightgray] perisai +ability.stat.repairspeed = [stat]{0}/sec[lightgray] kecepatan perbaikan +ability.stat.slurpheal = [stat]{0}[lightgray] darah/unit cair +ability.stat.cooldown = [stat]{0} sec[lightgray] waktu jeda +ability.stat.maxtargets = [stat]{0}[lightgray] target maksimal +ability.stat.sametypehealmultiplier = [stat]{0}%[lightgray] jumlah jenis perbaikan yang sama +ability.stat.damagereduction = [stat]{0}%[lightgray] pengurangan kerusakan +ability.stat.minspeed = [stat]{0} tiles/sec[lightgray] kecepatan minimal +ability.stat.duration = [stat]{0} sec[lightgray] durasi +ability.stat.buildtime = [stat]{0} sec[lightgray] waktu membangun bar.onlycoredeposit = Hanya Penyetoran Inti yang Diizinkan bar.drilltierreq = Membutuhkan Bor yang Lebih Baik -bar.noresources = Sumber Daya Tidak Ditemukan -bar.corereq = Memerlukan Inti Dasar +bar.noresources = Sumber Daya Tidak Cukup +bar.corereq = Membutuhkan Inti Markas bar.corefloor = Ubin Zona Inti Dibutuhkan -bar.cargounitcap = Kapasitas Kargo Unit Melebihi Batas +bar.cargounitcap = Kapasitas Unit Kargo Telah Mencapai Batas bar.drillspeed = Kecepatan Bor: {0}/s bar.pumpspeed = Kecepatan Pompa: {0}/s -bar.efficiency = Daya Guna: {0}% -bar.boost = Percepatan: +{0}% +bar.efficiency = Efisiensi: {0}% +bar.boost = Pendorongan: +{0}% bar.powerbalance = Tenaga: {0}/s bar.powerstored = Disimpan: {0}/{1} bar.poweramount = Tenaga: {0} @@ -1067,9 +1076,9 @@ bar.instability = Instabilitas bar.heatamount = Panas: {0} bar.heatpercent = Panas: {0} ({1}%) bar.power = Tenaga -bar.progress = Perkembangan Pembangunan -bar.loadprogress = Kemajuan -bar.launchcooldown = Pendinginan Peluncuran +bar.progress = Proses Pembangunan +bar.loadprogress = Proses Muatan +bar.launchcooldown = Waktu Jeda Peluncuran bar.input = Masukan bar.output = Keluaran bar.strength = [stat]{0}[lightgray]x penguatan @@ -1080,16 +1089,16 @@ bullet.damage = [stat]{0}[lightgray] kekuatan (dmg) bullet.splashdamage = [stat]{0}[lightgray] kekuatan percikan~[stat] {1}[lightgray] kotak bullet.incendiary = [stat]membakar bullet.homing = [stat]mengejar -bullet.armorpierce = [stat]menembus baju besi -bullet.maxdamagefraction = [stat]{0}%[lightgray] damage limit -bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles -bullet.interval = [stat]{0}/sec[lightgray] interval bullets: +bullet.armorpierce = [stat]menembus pelindung +bullet.maxdamagefraction = [stat]{0}%[lightgray] batas kerusakan +bullet.suppression = [stat]{0}[lightgray] detik penahanan perbaikan ~ [stat]{1}[lightgray] ubin +bullet.interval = [stat]{0}/detik[lightgray] jarak antar peluru: bullet.frags = [stat]{0}[lightgray]x pecahan: -bullet.lightning = [stat]{0}[lightgray]x petir ~ [stat]{1}[lightgray] kerusakan -bullet.buildingdamage = [stat]{0}%[lightgray] kerusakan bangunan +bullet.lightning = [stat]{0}[lightgray]x petir ~ [stat]{1}[lightgray] damage +bullet.buildingdamage = [stat]{0}%[lightgray] damage bangunan bullet.knockback = [stat]{0}[lightgray] terdorong bullet.pierce = [stat]{0}[lightgray]x tembus -bullet.infinitepierce = [stat]menembus +bullet.infinitepierce = [stat]tembus bullet.healpercent = [stat]{0}[lightgray]% menyembuhkan bullet.healamount = [stat]{0}[lightgray] perbaikan langsung bullet.multiplier = [stat]{0}[lightgray]x penggandaan amunisi @@ -1097,9 +1106,9 @@ bullet.reload = [stat]{0}[lightgray]x laju tembakan bullet.range = [stat]{0}[lightgray] jarak ubin unit.blocks = blok -unit.blockssquared = blok² +unit.blockssquared = blok\u00B2 unit.powersecond = unit tenaga/detik -unit.tilessecond = petak/detik +unit.tilessecond = ubin/detik unit.liquidsecond = unit zat cair/detik unit.itemssecond = bahan/detik unit.liquidunits = unit zat cair @@ -1127,26 +1136,26 @@ category.items = Barang category.crafting = Pemasukan/Pengeluaran category.function = Fungsi category.optional = Peningkatan Opsional -setting.alwaysmusic.name = Always Play Music -setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. -setting.skipcoreanimation.name = Lewati Animasi Peluncuran/Pendaratan Inti +setting.alwaysmusic.name = Selalu Putar Musik +setting.alwaysmusic.description = Saat diaktifkan, musik akan selalu diputar berulang-ulang di dalam game. Saat dinonaktifkan, musik hanya diputar secara acak. +setting.skipcoreanimation.name = Lewati Animasi Peluncuran atau Pendaratan Inti setting.landscape.name = Kunci Pemandangan setting.shadows.name = Bayangan -setting.blockreplace.name = Usulan Blok Otomatis -setting.linear.name = Filter Bergaris +setting.blockreplace.name = Saran Blok Otomatis +setting.linear.name = Filter Linear setting.hints.name = Petunjuk setting.logichints.name = Petunjuk Logika setting.backgroundpause.name = Jeda di Latar -setting.buildautopause.name = Jeda Otomatis saat Membangun -setting.doubletapmine.name = Dua-kali Sentuh untuk Menambang +setting.buildautopause.name = Jeda Otomatis ketika Membangun +setting.doubletapmine.name = Ketuk Dua Kali untuk Menambang setting.commandmodehold.name = Tahan Untuk Mode Perintah -setting.distinctcontrolgroups.name = Limit One Control Group Per Unit -setting.modcrashdisable.name = Matikan Mod Ketika Ada Masalah Saat Memulai Permainan +setting.distinctcontrolgroups.name = Batasi Satu Grup Kontrol Per Unit +setting.modcrashdisable.name = Matikan Mod Ketika Ada Masalah Saat Memulai Game setting.animatedwater.name = Animasi Perairan setting.animatedshields.name = Animasi Perisai setting.playerindicators.name = Indikasi Pemain -setting.indicators.name = Indikasi Musuh/Teman Lain -setting.autotarget.name = Target Secara Otomatis +setting.indicators.name = Indikasi Musuh +setting.autotarget.name = Bidik Musuh Secara Otomatis setting.keyboard.name = Kontrol Tetikus+Papan Ketik setting.touchscreen.name = Kontrol Layar Sentuh setting.fpscap.name = Batas FPS @@ -1154,7 +1163,7 @@ setting.fpscap.none = Tidak Ada setting.fpscap.text = {0} FPS setting.uiscale.name = Skala UI setting.uiscale.description = Mulai ulang diperlukan untuk menerapkan perubahan. -setting.swapdiagonal.name = Selalu Penaruhan Diagonal +setting.swapdiagonal.name = Penaruhan Selalu Diagonal setting.difficulty.training = Latihan setting.difficulty.easy = Mudah setting.difficulty.normal = Normal @@ -1167,7 +1176,7 @@ setting.bloomblur.name = Blur Bloom setting.effects.name = Munculkan Efek setting.destroyedblocks.name = Tunjukkan Blok yang Telah Hancur setting.blockstatus.name = Tunjukan Status Blok -setting.conveyorpathfinding.name = Navigasi Pengantar Otomatis +setting.conveyorpathfinding.name = Navigasi Konveyor/Pipa Otomatis setting.sensitivity.name = Sensitivitas Kontroler setting.saveinterval.name = Jarak Menyimpan setting.seconds = {0} detik @@ -1187,26 +1196,26 @@ setting.position.name = Tunjukkan Posisi Pemain setting.mouseposition.name = Tunjukkan Posisi Tetikus setting.musicvol.name = Volume Musik setting.atmosphere.name = Tunjukkan Atmosfer Planet -setting.drawlight.name = Draw Darkness/Lighting +setting.drawlight.name = Gambar Kegelapan atau Pencahayaan setting.ambientvol.name = Volume Sekeliling -setting.mutemusic.name = Diamkan Musik -setting.sfxvol.name = Volume Efek Suara -setting.mutesound.name = Diamkan Suara -setting.crashreport.name = Laporkan Masalah +setting.mutemusic.name = Bisukan Musik +setting.sfxvol.name = Volume Suara Efek +setting.mutesound.name = Bisukan Suara +setting.crashreport.name = Laporkan Masalah Secara Anonim setting.savecreate.name = Otomatis Menyimpan -setting.steampublichost.name = Public Game Visibility +setting.steampublichost.name = Visibilitas Game Publik setting.playerlimit.name = Batas pemain setting.chatopacity.name = Jelas-Beningnya Pesan -setting.lasersopacity.name = Jelas-Beningnya Tenaga Laser +setting.lasersopacity.name = Jelas-Beningnya Laser Tenaga setting.bridgeopacity.name = Jelas-Beningnya Jembatan -setting.playerchat.name = Tunjukkan Pesan dalam Permainan +setting.playerchat.name = Tunjukkan Pesan Pemain setting.showweather.name = Perlihatkan Cuaca setting.hidedisplays.name = Sembunyikan Tampilan Logika -setting.macnotch.name = Sesuaikan antarmuka untuk menampilkan takik +setting.macnotch.name = Sesuaikan tampilan dengan batas layar setting.macnotch.description = Mulai ulang diperlukan untuk menerapkan perubahan -steam.friendsonly = Friends Only -steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join. -public.beta = Ingat bahwa game versi beta tidak dapat membuat lobi publik. +steam.friendsonly = Hanya Teman +steam.friendsonly.tooltip = Mengatur bisa atau tidaknya teman Steam bergabung ke permainanmu.\nMenghapus centang pada kotak ini akan membuat permainan Anda menjadi publik - siapa saja dapat bergabung. +public.beta = Ingat bahwa game dalam versi beta tidak dapat membuat lobi publik. uiscale.reset = Skala UI telah diubah.\nTekan "OK" untuk mengonfirmasi.\n[scarlet]Kembali dan keluar di[accent] {0}[] pengaturan... uiscale.cancel = Batal & Keluar setting.bloom.name = Bloom @@ -1214,7 +1223,7 @@ keybind.title = Ganti Tombol keybinds.mobile = [scarlet]Mayoritas tombol tidak didukung oleh perangkat ponsel. Hanya gerakan dasar yang didukung. category.general.name = Umum category.view.name = Melihat -category.command.name = Unit Command +category.command.name = Perintah Unit category.multiplayer.name = Bermain Bersama category.blocks.name = Pilih Blok placement.blockselectkeys = \n[lightgray]Tombol: [{0}, @@ -1224,7 +1233,7 @@ keybind.clear_building.name = Hapus Bangunan keybind.press = Tekan tombol... keybind.press.axis = Tekan sumbu atau tombol... keybind.screenshot.name = Tangkapan Layar Peta -keybind.toggle_power_lines.name = Aktifkan Tenaga Laser +keybind.toggle_power_lines.name = Aktifkan Laser Tenaga keybind.toggle_block_status.name = Status Blok keybind.move_x.name = Pindah X keybind.move_y.name = Pindah Y @@ -1232,29 +1241,32 @@ keybind.mouse_move.name = Ikuti Tetikus keybind.pan.name = Tampilan Geser keybind.boost.name = Dorongan keybind.command_mode.name = Mode Perintah -keybind.command_queue.name = Unit Command Queue -keybind.create_control_group.name = Create Control Group -keybind.cancel_orders.name = Cancel Orders -keybind.unit_stance_shoot.name = Unit Stance: Shoot -keybind.unit_stance_hold_fire.name = Unit Stance: Hold Fire -keybind.unit_stance_pursue_target.name = Unit Stance: Pursue Target -keybind.unit_stance_patrol.name = Unit Stance: Patrol -keybind.unit_stance_ram.name = Unit Stance: Ram -keybind.unit_command_move.name = Unit Command: Move -keybind.unit_command_repair.name = Unit Command: Repair -keybind.unit_command_rebuild.name = Unit Command: Rebuild -keybind.unit_command_assist.name = Unit Command: Assist -keybind.unit_command_mine.name = Unit Command: Mine -keybind.unit_command_boost.name = Unit Command: Boost -keybind.unit_command_load_units.name = Unit Command: Load Units -keybind.unit_command_load_blocks.name = Unit Command: Load Blocks -keybind.unit_command_unload_payload.name = Unit Command: Unload Payload -keybind.unit_command_enter_payload.name = Unit Command: Enter Payload -keybind.rebuild_select.name = Rebuild Region +keybind.command_queue.name = Antrian Perintah Unit +keybind.create_control_group.name = Buat Grup Kendali +keybind.cancel_orders.name = Batalkan Perintah + +keybind.unit_stance_shoot.name = Posisi Unit: Tembak +keybind.unit_stance_hold_fire.name = Posisi Unit: Tahan Tembakan +keybind.unit_stance_pursue_target.name = Posisi Unit: Mengejar Target +keybind.unit_stance_patrol.name = Posisi Unit: Patroli +keybind.unit_stance_ram.name = Posisi Unit: Tabrak + +keybind.unit_command_move = Perintah Unit: Bergerak +keybind.unit_command_repair = Perintah Unit: Perbaiki +keybind.unit_command_rebuild = Perintah Unit: Bangun kembali +keybind.unit_command_assist = Perintah Unit: Ikuti Player +keybind.unit_command_mine = Perintah Unit: Menambang +keybind.unit_command_boost = Perintah Unit: Melayang +keybind.unit_command_load_units = Perintah Unit: Muat Unit +keybind.unit_command_load_blocks = Perintah Unit: Muat Blok +keybind.unit_command_unload_payload = Perintah Unit: Bongkar Muatan +keybind.unit_command_enter_payload.name = Perintah Unit: Masuk ke Muatan + +keybind.rebuild_select.name = Membangun Wilayah Kembali keybind.schematic_select.name = Pilih Daerah keybind.schematic_menu.name = Menu Skema -keybind.schematic_flip_x.name = Balik Skema X -keybind.schematic_flip_y.name = Balik Skema Y +keybind.schematic_flip_x.name = Balik Skematik Horizontal +keybind.schematic_flip_y.name = Balik Skematik Vertikal keybind.category_prev.name = Kategori Sebelumnya keybind.category_next.name = Kategori Selanjutnya keybind.block_select_left.name = Pilih Blok Kiri @@ -1276,8 +1288,8 @@ keybind.select.name = Pilih/Tembak keybind.diagonal_placement.name = Penaruhan Diagonal keybind.pick.name = Memilih Blok keybind.break_block.name = Menghancurkan Blok -keybind.select_all_units.name = Select All Units -keybind.select_all_unit_factories.name = Select All Unit Factories +keybind.select_all_units.name = Pilih Semua Unit +keybind.select_all_unit_factories.name = Pilih Semua Pabrik Unit keybind.deselect.name = Batal Memilih keybind.pickupCargo.name = Angkat Muatan keybind.dropCargo.name = Turunkan Muatan @@ -1291,78 +1303,78 @@ keybind.planet_map.name = Peta Planet keybind.research.name = Penelitian keybind.block_info.name = Info Blok keybind.chat.name = Pesan -keybind.player_list.name = Daftar pemain +keybind.player_list.name = Daftar Pemain keybind.console.name = Papan Konsol keybind.rotate.name = Putar -keybind.rotateplaced.name = Putar yang ada (Tekan dan Tahan) -keybind.toggle_menus.name = Muncul Tidaknya Menu +keybind.rotateplaced.name = Putar yang telah Dibangun (Tekan dan Tahan) +keybind.toggle_menus.name = Aktifkan Menu keybind.chat_history_prev.name = Sejarah Pesan Sebelumnya keybind.chat_history_next.name = Sejarah Pesan Setelahnya -keybind.chat_scroll.name = Scroll Pesan +keybind.chat_scroll.name = Gulir Pesan keybind.chat_mode.name = Ubah Mode Pesan -keybind.drop_unit.name = Jatuhkan Unit +keybind.drop_unit.name = Turunkan Unit keybind.zoom_minimap.name = Perbesar Peta Kecil -mode.help.title = Deskripsi mode +mode.help.title = Deskripsi mode permainan mode.survival.name = Bertahan Hidup -mode.survival.description = Mode normal. Sumber daya terbatas dan gelombang otomatis.\n[gray]Membutuhkan titik munculnya musuh di dalam peta untuk main. -mode.sandbox.name = Mode Sandbox/Bebas +mode.survival.description = Mode normal. Sumber daya terbatas dan gelombang otomatis.\n[gray]Membutuhkan zona pendaratan musuh di dalam peta untuk bermain. +mode.sandbox.name = Sandbox/Bebas mode.sandbox.description = Sumber daya tak terbatas dan tidak ada gelombang otomatis. mode.editor.name = Penyunting mode.pvp.name = PvP -mode.pvp.description = Melawan pemain lain.\n[gray]Membutuhkan setidaknya 2 inti berbeda warna di dalam peta untuk main. +mode.pvp.description = Lawan pemain lain dalam permainan lokal.\n[gray]Membutuhkan setidaknya 2 inti dengan warna berbeda di dalam peta untuk bermain. mode.attack.name = Penyerangan mode.attack.description = Hancurkan markas musuh. Membutuhkan inti merah di dalam peta untuk main. mode.custom = Pengaturan Modifikasi -rules.invaliddata = Invalid clipboard data. -rules.hidebannedblocks = Hide Banned Blocks +rules.invaliddata = Data papan klip tidak valid. +rules.hidebannedblocks = Sembunyikan Blok Terlarang rules.infiniteresources = Sumber Daya Tak Terbatas rules.onlydepositcore = Hanya Izinkan Penyetoran Inti -rules.derelictrepair = Allow Derelict Block Repair +rules.derelictrepair = Izinkan Perbaikan Blok rules.reactorexplosions = Ledakan Reaktor rules.coreincinerates = Penghangusan Luapan Inti rules.disableworldprocessors = Nonaktifkan Prosesor Dunia -rules.schematic = Bagan Diperbolehkan +rules.schematic = Skema Diperbolehkan rules.wavetimer = Pengaturan Waktu Gelombang -rules.wavesending = Wave Sending -rules.allowedit = Allow Editing Rules -rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.wavesending = Pengiriman Gelombang +rules.allowedit = Izinkan Aturan Pengeditan +rules.allowedit.info = Ketika diaktifkan, pemain dapat mengedit aturan dalam game melalui tombol di sudut kiri bawah pada menu Jeda. rules.waves = Gelombang -rules.airUseSpawns = Air units use spawn points +rules.airUseSpawns = Unit udara menggunakan titik muncul rules.attack = Mode Penyerangan -rules.buildai = Base Builder AI -rules.buildaitier = Builder AI Tier -rules.rtsai = A.I. RTS +rules.buildai = A.I. Pembangun Markas +rules.buildaitier = Tingkat A.I. Pembangun +rules.rtsai = A.I. RTS [red](WIP) rules.rtsminsquadsize = Ukuran Regu Minimum rules.rtsmaxsquadsize = Ukuran Regu Maksimum rules.rtsminattackweight = Berat Serangan Minimum rules.cleanupdeadteams = Bersihkan Bangunan Tim yang Kalah (PvP) -rules.corecapture = Tangkap Inti Saat Kehancuran +rules.corecapture = Kuasai Inti Saat Penghancuran rules.polygoncoreprotection = Poligon Pelindung Inti -rules.placerangecheck = Pemeriksaan Rentang Penempatan -rules.enemyCheat = Sumber Daya A.I. (Tim Merah) Tak Terbatas +rules.placerangecheck = Pemeriksaan Jarak Penempatan +rules.enemyCheat = Sumber Daya Musuh Tak Terbatas rules.blockhealthmultiplier = Penggandaan Darah Blok rules.blockdamagemultiplier = Penggandaan Kekuatan Blok rules.unitbuildspeedmultiplier = Penggandaan Kecepatan Munculnya Unit -rules.unitcostmultiplier = Unit Cost Multiplier +rules.unitcostmultiplier = Penggandaan Bahan Pembuatan Unit rules.unithealthmultiplier = Penggandaan Darah Unit rules.unitdamagemultiplier = Penggandaan Kekuatan Unit -rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier +rules.unitcrashdamagemultiplier = Penggandaan Kerusakan Jatuhnya Unit rules.solarmultiplier = Penggandaan Tenaga Surya rules.unitcapvariable = Inti Memengaruhi Batas Unit -rules.unitpayloadsexplode = Carried Payloads Explode With The Unit +rules.unitpayloadsexplode = Muatan yang Dibawa Meledak Bersama Unit rules.unitcap = Batas Unit Dasar rules.limitarea = Batas Area Peta -rules.enemycorebuildradius = Dilarang Membangun Radius Inti Musuh :[lightgray] (blok) +rules.enemycorebuildradius = Dilarang Membangun di Radius Inti Musuh :[lightgray] (ubin) rules.wavespacing = Jarak Gelombang:[lightgray] (detik) -rules.initialwavespacing = Rentang Gelombang Awal:[lightgray] (sec) +rules.initialwavespacing = Jarak Gelombang Awal:[lightgray] (detik) rules.buildcostmultiplier = Penggandaan Harga Bangunan -rules.buildspeedmultiplier = Penggandaan Waktu Pembuatan Bangunan +rules.buildspeedmultiplier = Penggandaan Waktu Pembangunan rules.deconstructrefundmultiplier = Penggandaan Kembalinya Bahan Bangunan yang Dihancurkan rules.waitForWaveToEnd = Gelombang Menunggu Musuh -rules.wavelimit = Map Ends After Wave -rules.dropzoneradius = Radius Titik Muncul:[lightgray] (ubin) -rules.unitammo = Unit Membutuhkan Amunisi +rules.wavelimit = Peta Berakhir Setelah Gelombang +rules.dropzoneradius = Radius Zona Pendaratan :[lightgray] (ubin) +rules.unitammo = Unit Membutuhkan Amunisi [red](mungkin dihapus) rules.enemyteam = Tim Musuh rules.playerteam = Tim Pemain rules.title.waves = Gelombang @@ -1378,13 +1390,14 @@ rules.fog = Kabut Perang rules.fire = Api rules.anyenv = rules.explosions = Kekuatan Ledakan Blok/Unit -rules.ambientlight = Sinar Disekeliling +rules.ambientlight = Cahaya Di Sekeliling rules.weather = Cuaca rules.weather.frequency = Frekuensi: rules.weather.always = Selalu rules.weather.duration = Durasi: -rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. -rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. + +rules.placerangecheck.info = Mencegah pemain menempatkan apa pun di dekat bangunan musuh. Ketika mencoba memasang menara, jangkauannya akan ditingkatkan sehingga menara tidak akan bisa menjangkau musuh. +rules.onlydepositcore.info = Mencegah unit menyimpan bahan ke dalam bangunan apa pun kecuali inti. content.item.name = Bahan content.liquid.name = Zat Cair @@ -1404,15 +1417,15 @@ item.titanium.name = Titanium item.thorium.name = Torium item.silicon.name = Silikon item.plastanium.name = Plastanium -item.phase-fabric.name = Kain Phase -item.surge-alloy.name = Campuran Logam +item.phase-fabric.name = Phase Fabric +item.surge-alloy.name = Paduan Logam item.spore-pod.name = Polong Spora item.sand.name = Pasir item.blast-compound.name = Senyawa Peledak item.pyratite.name = Pyratit item.metaglass.name = Metaglass item.scrap.name = Rongsokan -item.fissile-matter.name = Materi Fissil +item.fissile-matter.name = Bahan Fisil item.beryllium.name = Berilium item.tungsten.name = Tungsten item.oxide.name = Oksida @@ -1422,9 +1435,9 @@ item.dormant-cyst.name = Kista Nonaktif liquid.water.name = Air liquid.slag.name = Lava liquid.oil.name = Minyak -liquid.cryofluid.name = Cairan Dingin +liquid.cryofluid.name = Kriogenik liquid.neoplasm.name = Neoplasma -liquid.arkycite.name = Arkisit +liquid.arkycite.name = Arkycite liquid.gallium.name = Galium liquid.ozone.name = Ozon liquid.hydrogen.name = Hidrogen @@ -1499,7 +1512,7 @@ block.sand-boulder.name = Batu Pasir Besar block.basalt-boulder.name = Batu Basal Besar block.grass.name = Rumput block.molten-slag.name = Lahar -block.pooled-cryofluid.name = Cairan Dingin +block.pooled-cryofluid.name = Kriogenik block.space.name = Luar Angkasa block.salt.name = Garam block.salt-wall.name = Bukit Garam @@ -1522,19 +1535,19 @@ block.scrap-wall-large.name = Dinding Rongsokan Besar block.scrap-wall-huge.name = Dinding Rongsokan Sangat Besar block.scrap-wall-gigantic.name = Dinding Rongsokan Raksasa block.thruster.name = Pendorong -block.kiln.name = Pengeringan +block.kiln.name = Pembakar block.graphite-press.name = Pencetak Grafit block.multi-press.name = Multi-Cetak -block.constructing = {0} [lightgray](Konstruksi) -block.spawn.name = Muncul Musuh -block.core-shard.name = Inti: Bagian -block.core-foundation.name = Inti: Pondasi -block.core-nucleus.name = Inti: Nukleus -block.deep-water.name = Air Dalam +block.constructing = {0} [lightgray](Membangun) +block.spawn.name = Titik Musuh Muncul +block.core-shard.name = Inti: Shard +block.core-foundation.name = Inti: Foundation +block.core-nucleus.name = Inti: Nucleus +block.deep-water.name = Air yang Dalam block.shallow-water.name = Air -block.tainted-water.name = Air Ternoda -block.deep-tainted-water.name = Air Dalam Ternoda -block.darksand-tainted-water.name = Air Ternodai Pasir Hitam +block.tainted-water.name = Air Tercemar +block.deep-tainted-water.name = Air Tercemar yang Dalam +block.darksand-tainted-water.name = Air Tercemar pada Pasir Hitam block.tar.name = Minyak Mentah block.stone.name = Batu block.sand-floor.name = Pasir @@ -1542,8 +1555,8 @@ block.darksand.name = Pasir Hitam block.ice.name = Es block.snow.name = Salju block.crater-stone.name = Kawah -block.sand-water.name = Air Pasir -block.darksand-water.name = Air Pasir Hitam +block.sand-water.name = Air pada Pasir +block.darksand-water.name = Air pada Pasir Hitam block.char.name = Bara block.dacite.name = Dasit block.rhyolite.name = Riolit @@ -1585,39 +1598,39 @@ block.plastanium-wall.name = Dinding Plastanium block.plastanium-wall-large.name = Dinding Plastanium Besar block.phase-wall.name = Dinding Phase block.phase-wall-large.name = Dinding Phase Besar -block.thorium-wall.name = Dinding Thorium -block.thorium-wall-large.name = Dinding Thorium Besar +block.thorium-wall.name = Dinding Torium +block.thorium-wall-large.name = Dinding Torium Besar block.door.name = Pintu block.door-large.name = Pintu Besar block.duo.name = Duo -block.scorch.name = Penyembur Api -block.scatter.name = Penghambur -block.hail.name = Penghujan +block.scorch.name = Scorch +block.scatter.name = Scatter +block.hail.name = Hail block.lancer.name = Lancer -block.conveyor.name = Pengantar -block.titanium-conveyor.name = Pengantar Berbahan Titanium -block.plastanium-conveyor.name = Pengantar Berbahan Plastanium -block.armored-conveyor.name = Pengantar Berlapis Pelindung +block.conveyor.name = Konveyor +block.titanium-conveyor.name = Konveyor Berbahan Titanium +block.plastanium-conveyor.name = Konveyor Berbahan Plastanium +block.armored-conveyor.name = Konveyor Berlapis Baja block.junction.name = Simpangan block.router.name = Pengarah block.distributor.name = Distributor block.sorter.name = Penyortir block.inverted-sorter.name = Penyortir Terbalik block.message.name = Pesan -block.reinforced-message.name = Reinforced Message -block.world-message.name = World Message -block.world-switch.name = World Switch +block.reinforced-message.name = Pesan yang Diperkuat +block.world-message.name = Pesan Dunia +block.world-switch.name = Saklar Dunia block.illuminator.name = Lampu block.overflow-gate.name = Gerbang Luap block.underflow-gate.name = Gerbang Luap Terbalik block.silicon-smelter.name = Pelebur Silikon -block.phase-weaver.name = Pengrajut Phase +block.phase-weaver.name = Pengerajut Phase block.pulverizer.name = Penghancur -block.cryofluid-mixer.name = Penyampur Cairan Dingin +block.cryofluid-mixer.name = Pencampur Kriogenik block.melter.name = Pencair -block.incinerator.name = Penghangus +block.incinerator.name = Insinerator block.spore-press.name = Penekan Spora -block.separator.name = Pemisah +block.separator.name = Pemisah Rongsokan block.coal-centrifuge.name = Sentrifugal Batu Bara block.power-node.name = Simpul Tenaga block.power-node-large.name = Simpul Tenaga Besar @@ -1627,70 +1640,70 @@ block.battery.name = Baterai block.battery-large.name = Baterai Besar block.combustion-generator.name = Generator Pembakar block.steam-generator.name = Generator Uap -block.differential-generator.name = Generator Majemuk +block.differential-generator.name = Generator Diferensial block.impact-reactor.name = Reaktor Tumbukan -block.mechanical-drill.name = Bor Mekanik +block.mechanical-drill.name = Bor Mekanis block.pneumatic-drill.name = Bor Pneumatik block.laser-drill.name = Bor Laser block.water-extractor.name = Pengekstrak Air block.cultivator.name = Pembudidaya -block.conduit.name = Pipa -block.mechanical-pump.name = Pompa Mekanik +block.conduit.name = Saluran +block.mechanical-pump.name = Pompa Mekanis block.item-source.name = Sumber Bahan block.item-void.name = Penghilang Bahan block.liquid-source.name = Sumber Zat Cair block.liquid-void.name = Penghilang Zat Zair block.power-void.name = Penghilang Tenaga block.power-source.name = Sumber Tenaga -block.unloader.name = Pembongkar Muatan +block.unloader.name = Pembongkar block.vault.name = Gudang -block.wave.name = Penyemprot +block.wave.name = Wave block.tsunami.name = Tsunami -block.swarmer.name = Peluncur Misil +block.swarmer.name = Swarmer block.salvo.name = Salvo -block.ripple.name = Mortir -block.phase-conveyor.name = Pengantar Berbahan Phase -block.bridge-conveyor.name = Jembatan Pengantar +block.ripple.name = Ripple +block.phase-conveyor.name = Konveyor Berbahan Phase +block.bridge-conveyor.name = Jembatan Konvenyor block.plastanium-compressor.name = Kompresor Plastanium -block.pyratite-mixer.name = Penyampur Pyratit -block.blast-mixer.name = Penyampur Bahan Peledak +block.pyratite-mixer.name = Pencampur Pyratit +block.blast-mixer.name = Pencampur Bahan Peledak block.solar-panel.name = Panel Surya block.solar-panel-large.name = Panel Surya Besar block.oil-extractor.name = Pengekstrak Minyak -block.repair-point.name = Tempat Perbaikan -block.repair-turret.name = Menara Pembaikan -block.pulse-conduit.name = Selang Denyut -block.plated-conduit.name = Pipa Terlapis -block.phase-conduit.name = Selang Phase +block.repair-point.name = Titik Perbaikan +block.repair-turret.name = Menara Perbaikan +block.pulse-conduit.name = Saluran Denyut +block.plated-conduit.name = Saluran Terlapis +block.phase-conduit.name = Saluran Phase block.liquid-router.name = Pengarah Cairan block.liquid-tank.name = Tangki Cairan block.liquid-container.name = Kontainer Cairan block.liquid-junction.name = Simpangan Cairan block.bridge-conduit.name = Jembatan Saluran block.rotary-pump.name = Pompa Putaran -block.thorium-reactor.name = Reaktor Thorium -block.mass-driver.name = Penggerak Massal +block.thorium-reactor.name = Reaktor Torium +block.mass-driver.name = Penembak Massal block.blast-drill.name = Bor Ledakan Udara block.impulse-pump.name = Pompa Suhu Panas block.thermal-generator.name = Generator Panas block.surge-smelter.name = Pelebur Paduan Logam block.mender.name = Mender -block.mend-projector.name = Mender Projektor -block.surge-wall.name = Dinding Listrik -block.surge-wall-large.name = Dinding Listrik Besar -block.cyclone.name = Topan -block.fuse.name = Murang -block.shock-mine.name = Ranjau Listrik -block.overdrive-projector.name = Projektor Pemercepat -block.force-projector.name = Projektor Pelindung -block.arc.name = Busur Petir +block.mend-projector.name = Proyektor Mender +block.surge-wall.name = Dinding Logam +block.surge-wall-large.name = Dinding Logam Besar +block.cyclone.name = Cyclone +block.fuse.name = Fuse +block.shock-mine.name = Ranjau Kejut +block.overdrive-projector.name = Proyektor Pemercepat +block.force-projector.name = Proyektor Pelindung +block.arc.name = Arc block.rtg-generator.name = Generator Radiasi -block.spectre.name = Momok -block.meltdown.name = Pelumer +block.spectre.name = Spectre +block.meltdown.name = Meltdown block.foreshadow.name = Foreshadow block.container.name = Kontainer block.launch-pad.name = Alas Peluncur -block.segment.name = Segmen +block.segment.name = Segment block.ground-factory.name = Pabrik Unit Darat block.air-factory.name = Pabrik Unit Udara block.naval-factory.name = Pabrik Unit Laut @@ -1698,28 +1711,28 @@ block.additive-reconstructor.name = Rekonstruktor Aditif block.multiplicative-reconstructor.name = Rekonstruktor Multiplikatif block.exponential-reconstructor.name = Rekonstruktor Eksponensial block.tetrative-reconstructor.name = Rekonstruktor Tetratif -block.payload-conveyor.name = Pengantar Massa -block.payload-router.name = Pengarah Massa -block.duct.name = Saluran -block.duct-router.name = Pengarah Saluran -block.duct-bridge.name = Jembatan Saluran -block.large-payload-mass-driver.name = Large Payload Mass Driver +block.payload-conveyor.name = Konveyor Muatan +block.payload-router.name = Pengarah Muatan +block.duct.name = Pipa +block.duct-router.name = Pengarah Pipa +block.duct-bridge.name = Jembatan Pipa +block.large-payload-mass-driver.name = Penembak Muatan Massal Besar block.payload-void.name = Penghilang Muatan block.payload-source.name = Sumber Muatan -block.disassembler.name = Pembongkar -block.silicon-crucible.name = Pelebur Raksasa -block.overdrive-dome.name = Kubah Projektor Pemercepat +block.disassembler.name = Pembongkar Rongsokan +block.silicon-crucible.name = Tungku Peleburan Silikon +block.overdrive-dome.name = Kubah Proyektor Pemercepat block.interplanetary-accelerator.name = Akselerator Antarplanet block.constructor.name = Konstruktor -block.constructor.description = Membuat struktur hingga ubin berukuran 2x2. +block.constructor.description = Membuat bangunan hingga ubin berukuran 2x2. block.large-constructor.name = Konstruktor Besar -block.large-constructor.description = Membuat struktur hingga ubin berukuran 4x4. -block.deconstructor.name = Deskontruktor +block.large-constructor.description = Membuat bangunan hingga ubin berukuran 4x4. +block.deconstructor.name = Dekonstruktor Besar block.deconstructor.description = Mendekonstruksi bangunan dan unit. Mengembalikan 100% dari biaya bahan. -block.payload-loader.name = Pemuat Blok -block.payload-loader.description = Memuat cairan dan item ke dalam blok. -block.payload-unloader.name = Pembongkar Blok -block.payload-unloader.description = Membongkar cairan dan item dari blok. +block.payload-loader.name = Pemuat Muatan +block.payload-loader.description = Memuat cairan dan bahan ke dalam blok. +block.payload-unloader.name = Pembongkar Muatan +block.payload-unloader.description = Membongkar cairan dan bahan dari blok. block.heat-source.name = Sumber Panas block.heat-source.description = Blok ukuran 1x1 yang memberikan panas tak terhingga. @@ -1746,7 +1759,7 @@ block.carbon-vent.name = Ventilasi Karbon block.arkyic-vent.name = Ventilasi Arkisit block.yellow-stone-vent.name = Ventilasi Batu Kuning block.red-stone-vent.name = Ventilasi Batu Merah -block.crystalline-vent.name = Crystalline Vent +block.crystalline-vent.name = Ventilasi Kristal block.redmat.name = Matras Merah block.bluemat.name = Matras Biru block.core-zone.name = Zona Inti @@ -1782,42 +1795,42 @@ block.silicon-arc-furnace.name = Tungku Listrik Silikon block.electrolyzer.name = Elektroliser block.atmospheric-concentrator.name = Konsentrator Atmosfer block.oxidation-chamber.name = Ruangan Oksidasi -block.electric-heater.name = Penghangat Listrik -block.slag-heater.name = Penghangat Terak -block.phase-heater.name = Penghangat Phase -block.heat-redirector.name = Pengatur Panas -block.heat-router.name = Heat Router -block.slag-incinerator.name = Insinerator Terak -block.carbide-crucible.name = Pelembur Karbit Raksasa -block.slag-centrifuge.name = Sentrifugal Terak -block.surge-crucible.name = Pelembur Surge Raksasa -block.cyanogen-synthesizer.name = Sintesiser Sianogen -block.phase-synthesizer.name = Sintetiser Phase +block.electric-heater.name = Pemanas Listrik +block.slag-heater.name = Pemanas Lava +block.phase-heater.name = Pemanas Phase +block.heat-redirector.name = Pengalih Panas +block.heat-router.name = Pengarah Panas +block.slag-incinerator.name = Insinerator Lava +block.carbide-crucible.name = Tungku Peleburan Karbit +block.slag-centrifuge.name = Sentrifugal Lava +block.surge-crucible.name = Tungku Peleburan Logam +block.cyanogen-synthesizer.name = Penyintesis Sianogen +block.phase-synthesizer.name = Penyintesis Phase block.heat-reactor.name = Reaktor Panas block.beryllium-wall.name = Dinding Berilium block.beryllium-wall-large.name = Dinding Berilium Besar -block.tungsten-wall.name = Dingding Tungsten +block.tungsten-wall.name = Dinding Tungsten block.tungsten-wall-large.name = Dinding Tungsten Besar block.blast-door.name = Pintu Blast block.carbide-wall.name = Dinding Karbit -block.carbide-wall-large.name = Dinding Karbit Raksasa -block.reinforced-surge-wall.name = Dinding Surge yang Diperkuat -block.reinforced-surge-wall-large.name = Dinding Surge Besar yang Diperkuat -block.shielded-wall.name = Shielded Wall +block.carbide-wall-large.name = Dinding Karbit Besar +block.reinforced-surge-wall.name = Dinding Logam yang Diperkuat +block.reinforced-surge-wall-large.name = Dinding Logam Besar yang Diperkuat +block.shielded-wall.name = Dinding Berperisai block.radar.name = Radar -block.build-tower.name = Menara Pembangunan +block.build-tower.name = Menara Pembangun block.regen-projector.name = Proyektor Penyembuhan -block.shockwave-tower.name = Shockwave Tower -block.shield-projector.name = Proyektor Pelindung -block.large-shield-projector.name = Proyektor Pelindung Besar +block.shockwave-tower.name = Menara Gelombang Kejut +block.shield-projector.name = Proyektor Perisai +block.large-shield-projector.name = Proyektor Perisai Besar block.armored-duct.name = Pipa Lapis Baja block.overflow-duct.name = Pipa Luapan block.underflow-duct.name = Pipa Arus Bawah block.duct-unloader.name = Pipa Pembongkar Muatan -block.surge-conveyor.name = Konveyor Surge -block.surge-router.name = Pengarah Surge -block.unit-cargo-loader.name = Pemuat Kargo Unit -block.unit-cargo-unload-point.name = Titik Pembongkaran Kargo Unit +block.surge-conveyor.name = Konveyor Berbahan Logam +block.surge-router.name = Pengarah Berbahan Logam +block.unit-cargo-loader.name = Pemuat Unit Kargo +block.unit-cargo-unload-point.name = Titik Bongkar Muatan Unit Kargo block.reinforced-pump.name = Pompa yang Diperkuat block.reinforced-conduit.name = Saluran yang Diperkuat block.reinforced-liquid-junction.name = Persimpangan Cairan yang Diperkuat @@ -1837,9 +1850,9 @@ block.plasma-bore.name = Bor Plasma block.large-plasma-bore.name = Bor Plasma Besar block.impact-drill.name = Bor Tumbukan block.eruption-drill.name = Bor Erupsi -block.core-bastion.name = Inti: Baluarti -block.core-citadel.name = Inti: Kastel -block.core-acropolis.name = Inti: Akropolis +block.core-bastion.name = Inti: Bastion +block.core-citadel.name = Inti: Citadel +block.core-acropolis.name = Inti: Acropolis block.reinforced-container.name = Kontainer yang Diperkuat block.reinforced-vault.name = Gudang yang Diperkuat block.breach.name = Breach @@ -1849,25 +1862,25 @@ block.disperse.name = Disperse block.afflict.name = Afflict block.lustre.name = Lustre block.scathe.name = Scathe -block.tank-refabricator.name = Refabrikator Tank -block.mech-refabricator.name = Refabrikator Mech -block.ship-refabricator.name = Refabrikator Kapal +block.tank-refabricator.name = Pabrikator Ulang Tank +block.mech-refabricator.name = Pabrikator Ulang Mech +block.ship-refabricator.name = Pabrikator Ulang Kapal block.tank-assembler.name = Perakitan Tank block.ship-assembler.name = Perakitan Kapal block.mech-assembler.name = Perakitan Mech block.reinforced-payload-conveyor.name = Konveyor Muatan yang Diperkuat block.reinforced-payload-router.name = Pengarah Muatan yang Diperkuat -block.payload-mass-driver.name = Penggerak Massal Muatan -block.small-deconstructor.name = Dekonstruktor Kecil +block.payload-mass-driver.name = Penembak Muatan Massal +block.small-deconstructor.name = Dekonstruktor block.canvas.name = Kanvas block.world-processor.name = Prosessor Dunia block.world-cell.name = Sel Dunia -block.tank-fabricator.name = Fabrikator Tank -block.mech-fabricator.name = Fabrikator Mech -block.ship-fabricator.name = Fabrikator Kapal -block.prime-refabricator.name = Refabrikator Perdana +block.tank-fabricator.name = Pabrikator Tank +block.mech-fabricator.name = Pabrikator Mech +block.ship-fabricator.name = Pabrikator Kapal +block.prime-refabricator.name = Pabrikator Ulang Perdana block.unit-repair-tower.name = Menara Perbaikan Unit -block.diffuse.name = Pembaur +block.diffuse.name = Diffuse block.basic-assembler-module.name = Modul Perakitan Dasar block.smite.name = Smite block.malign.name = Malign @@ -1886,115 +1899,116 @@ block.memory-bank.name = Bank Memori team.malis.name = Malis team.crux.name = Crux team.sharded.name = Sharded -team.derelict.name = Derelict +team.derelict.name = Derelik team.green.name = Hijau team.blue.name = Biru hint.skip = Lewati -hint.desktopMove = Tekan [accent][[WASD][] untuk bergerak. -hint.zoom = [accent]Skrol[] untuk membesarkan atau mengecilkan layar. -hint.desktopShoot = [accent][[Klik][] untuk menembak. -hint.depositItems = Untuk memindahkan bahan, tarik bahan dari pesawatmu ke inti. +hint.desktopMove = Gunakan [accent][[WASD][] untuk bergerak. +hint.zoom = [accent]Gulir[] untuk membesarkan atau mengecilkan layar. +hint.desktopShoot = [accent][[Klik Kanan][] untuk menembak. +hint.depositItems = Untuk memindahkan bahan, seret dari pesawatmu ke inti. hint.respawn = Untuk muncul kembali seperti awal, tekan [accent][[V][]. -hint.respawn.mobile = Kamu telah mengambil alih kendali dari sebuah unit/struktur. Untuk muncul kembali, [accent]tekan avatar di kiri atas.[] +hint.respawn.mobile = Anda telah mengambil alih kendali dari sebuah unit atau bangunan. Untuk muncul kembali sebagai pesawat, [accent]ketuk avatar di kiri atas.[] hint.desktopPause = Tekan [accent][[Spasi][] untuk menjeda dan menghentikan jeda permainan. hint.breaking = [accent]Klik kanan[] dan tarik untuk menghancurkan blok. -hint.breaking.mobile = Aktifkan \ue817 [accent]palu[] di kanan bawah dan tekan untuk menghancurkan blok.\n\nTahan jari kamu sebentar dan seret untuk menghancurkannya. +hint.breaking.mobile = Aktifkan \uE817 [accent]palu[] di kanan bawah dan ketuk untuk menghancurkan blok.\n\nTahan jari Anda untuk beberapa saat lalu seret pada bagian yang dipilih untuk menghancurkannya. hint.blockInfo = Lihat informasi dari sebuah blok dengan memilihnya di [accent]menu bangun[], lalu pilih tombol [accent][[?][] di sebelah kanan. hint.derelict = Bangunan berwarna [accent]abu-abu[] adalah sisa-sisa dari markas lama yang hancur dan tidak dapat berfungsi kembali.\n\nBangunan tersebut dapat [accent]didekonstruksi[] menjadi sumber daya. -hint.research = Gunakan tombol \ue875 [accent]Riset[] untuk mempelajari teknologi baru. -hint.research.mobile = Gunakan tombol \ue875 [accent]Riset[] di \ue88c [accent]Menu[] untuk mempelajari teknologi baru. -hint.unitControl = Tahan [accent][[L-ctrl][] dan [accent]klik[] untuk mengendalikan unit atau turret teman. -hint.unitControl.mobile = [accent][Klik dua kali[] untuk mengendalikan unit atau turret teman. -hint.unitSelectControl = To control units, enter [accent]command mode[] by holding [accent]L-shift.[]\nWhile in command mode, click and drag to select units. [accent]Right-click[] a location or target to command units there. -hint.unitSelectControl.mobile = To control units, enter [accent]command mode[] by pressing the [accent]command[] button in the bottom left.\nWhile in command mode, long-press and drag to select units. Tap a location or target to command units there. -hint.launch = Ketika sumber daya sudah mencukupi, kamu bisa [accent]Meluncurkan[] dengan memilih sektor terdekat dari \ue827 [accent]Map[] di kanan bawah. -hint.launch.mobile = Ketika sumber daya sudah mencukupi, kamu bisa [accent]Meluncurkan[] dengan memilih sektor terdekat dari \ue827 [accent]Map[] di \ue88c [accent]Menu[]. -hint.schematicSelect = Tahan [accent][[F][] dan tarik ke bangunan untuk menyalin bangunan.\n\n[accent][[Klik tengah][] untuk menyalin blok setipe. -hint.rebuildSelect = Hold [accent][[B][] and drag to select destroyed block plans.\nThis will rebuild them automatically. -hint.rebuildSelect.mobile = Select the \ue874 copy button, then tap the \ue80f rebuild button and drag to select destroyed block plans.\nThis will rebuild them automatically. -hint.conveyorPathfind = Tahan [accent][[L-Ctrl][] ketika menarik pengantar untuk membuat jalur secara otomatis. -hint.conveyorPathfind.mobile = Aktifkan \ue844 [accent]diagonal mode[] dan tarik pengantar untuk membuat jalur secara otomatis. -hint.boost = Tahan [accent][[L-Shift][] untuk terbang dengan unit sekarang.\n\nHanya beberapa unit darat yang memiliki pendorong. -hint.payloadPickup = Tekan [accent][[[] untuk membawa blok kecil atau unit. -hint.payloadPickup.mobile = [accent]Tekan dan tahan[] untuk membawa blok kecil atau unit. +hint.research = Gunakan tombol \uE875 [accent]Penelitian[] untuk mempelajari teknologi baru. +hint.research.mobile = Gunakan tombol \uE875 [accent]Riset[] di \uE88C [accent]Menu[] untuk mempelajari teknologi baru. +hint.unitControl = Tekan dan Tahan [accent][[L-ctrl][] dan [accent]klik[] untuk mengendalikan unit atau turret sekutu. +hint.unitControl.mobile = [accent][Ketuk dua kali[] untuk mengendalikan unit atau turret sekutu. +hint.unitSelectControl = Untuk mengendalikan unit, masuki [accent]mode perintah[] dengan menahan tombol [accent]L-shift.[]\nDalam mode perintah, klik dan seret untuk memilih unit. [accent]Klik Kanan[] pada suatu lokasi atau target untuk memerintahkan unit. +hint.unitSelectControl.mobile = Untuk mengendalikan unit, masuki [accent]mode perintah[] dengan menekan tombol [accent]perintah[] di pojok kanan bawah.\nDalam mode perintah, tekan layar untuk beberapa saat dan seret untuk memilih unit. ketuk pada suatu lokasi atau target untuk memerintahkan unit. +hint.launch = Ketika sumber daya sudah mencukupi, Anda dapat [accent]Meluncurkan Inti[] dengan memilih sektor terdekat dari \uE827 [accent]Peta[] di kanan bawah. +hint.launch.mobile = Ketika sumber daya sudah mencukupi, Anda bisa [accent]Meluncurkan Inti[] dengan memilih sektor terdekat dari \uE827 [accent]Peta[] dibagian \uE88C [accent]Menu[]. +hint.schematicSelect = Tahan tombol [accent][[F][] dan seret ke bangunan untuk menyalin bangunan.\n\n[accent][[Klik tengah][] untuk menyalin satu jenis blok. +hint.rebuildSelect = Tahan tombol [accent][[B][] dan seret untuk memilih bagian blok yang hancur.\nIni akan membangunnya kembali secara otomatis. +hint.rebuildSelect.mobile = Pilih Tombol \uE874 salin, lalu ketuk tombol \uE80F bangun kembali dan seret untuk memilih blok yang hancur.\nIni akan membangun ulang secara otomatis. +hint.conveyorPathfind = Tahan [accent][[L-Ctrl][] ketika menarik konveyor untuk membuat jalur secara otomatis. +hint.conveyorPathfind.mobile = Ketuk \uE844 [accent]mode diagonal[] dan tarik konveyor untuk membuat jalur secara otomatis. +hint.boost = Tahan [accent][[L-Shift][] untuk terbang dengan unit.\n\nHanya beberapa unit darat yang memiliki pendorong. +hint.payloadPickup = Tekan [accent][[[] untuk mengambil blok kecil atau unit. +hint.payloadPickup.mobile = [accent]Ketuk dan tahan[] untuk mengambil blok kecil atau unit. hint.payloadDrop = Tekan [accent]][] untuk menurunkan muatan. hint.payloadDrop.mobile = [accent]Tekan dan tahan[] di lokasi yang kosong untuk menurunkan muatan. hint.waveFire = [accent]Wave[] yang terisi dengan air akan memadamkan air dalam jangkauannya. -hint.generator = \uf879 [accent]Generator Pembakar[] membakar batu bara dan menghasilkan energik ke blok yang berdekatan.\n\nTransmisi energi dapat diperluas menggunakan \uf87f [accent]Tiang Listrik[]. -hint.guardian = Unit [accent]Penjaga[] adalah unit yang diperkuat. Amunisi lemah seperti [accent]Tembaga[] dan [accent]Timah[] [scarlet]tidak efektif[].\n\nGunakan menara yang lebih bagus atau amunisi yang lebih kuat seperti \uf835 [accent]Grafit[] \uf861Duo/\uf859Salvo untuk menghancurkan Penjaga. -hint.coreUpgrade = Inti dapat ditingkatkan dengan cara [accent]meletakkan yang lebih besar diatasnya[].\n\nLetakan sebuah inti \uf868 [accent]Fondasi[] diatas inti \uf869 [accent]Shard[]. Pastikan terdapat ruang kosong dari bangunan yang lain. -hint.presetLaunch = [accent]Zona pendaratan[] yang berwarna abu-abu, seperti [accent]Hutan yang Beku[], dapat diluncurkan dari mana saja. Sektor seperti ini tidak perlu diluncurkan dari sektor terdekat milik kamu.\n\n[accent]Sektor yang bernomor[], seperti yang ini, bisa [accent]dikuasai atau diabaikan[]. -hint.presetDifficulty = Sektor ini memiliki [scarlet]ancaman bahaya musuh yang tinggi[].\nMeluncurkan ke sektor tersebut [accent]tidak disarankan[] tanpa teknologi yang sesuai dan persiapan yang matang. -hint.coreIncinerate = Setelah inti penuh dengan suatu barang, barang yang setipe akan [accent]dihancurkan[]. +hint.generator = \uF879 [accent]Generator Pembakar[] membakar batu bara dan menghasilkan energi ke blok yang berdekatan.\n\nTransmisi energi dapat diperluas dengan \uF87F [accent]Simpul Daya[]. +hint.guardian = Unit [accent]Penjaga[] adalah unit yang diperkuat. Amunisi lemah seperti [accent]Tembaga[] dan [accent]Timah[] [scarlet]tidak efektif[].\n\nGunakan menara yang lebih bagus atau amunisi yang lebih kuat seperti \uF835 [accent]Grafit[] \uF861Duo/\uF859Salvo untuk menghancurkan Penjaga. +hint.coreUpgrade = Inti dapat ditingkatkan dengan cara [accent]meletakkan Inti yang lebih besar di atasnya[].\n\nLetakan sebuah inti \uF868 [accent]Foundation[] diatas inti \uF869 [accent]Shard[]. Pastikan terdapat ruang kosong dari bangunan yang lain. +hint.presetLaunch = [accent]Zona pendaratan[] yang berwarna abu-abu, seperti [accent]Hutan yang Beku[], dapat diluncurkan dari mana saja. Sektor seperti ini tidak perlu diluncurkan dari sektor terdekat milik Anda.\n\n[accent]Sektor yang bernomor[], seperti yang ini, bersifat [accent]opsional[]. +hint.presetDifficulty = Sektor ini memiliki [scarlet]tingkat ancaman musuh yang tinggi[].\nMeluncurkan ke sektor tersebut [accent]tidak disarankan[] tanpa teknologi yang sesuai dan persiapan yang matang. +hint.coreIncinerate = Setelah inti penuh dengan suatu barang, barang yang sejenis akan [accent]dihanguskan[]. hint.factoryControl = Untuk menentukan [accent]tempat keluar[] unit pabrik, klik blok pabrik ketika dalam mode perintah, lalu klik kanan lokasi yang diinginkan.\nUnit yang diproduksi akan langsung bergerak ke tempat yang ditentukan. -hint.factoryControl.mobile = Untuk menentukan [accent]tempat keluar[] unit pabrik, tekan blok pabrik ketika dalam mode perintah, lalu tekan lokasi yang diinginkan.\nUnit yang diproduksi akan langsung bergerak ke tempat yang ditentukan. -gz.mine = Move near the \uf8c4 [accent]copper ore[] on the ground and click to begin mining. -gz.mine.mobile = Move near the \uf8c4 [accent]copper ore[] on the ground and tap it to begin mining. -gz.research = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nClick on a copper patch to place it. -gz.research.mobile = Open the \ue875 tech tree.\nResearch the \uf870 [accent]Mechanical Drill[], then select it from the menu in the bottom right.\nTap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm. -gz.conveyors = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate. -gz.conveyors.mobile = Research and place \uf896 [accent]conveyors[] to move the mined resources\nfrom drills to the core.\n\nHold down your finger for a second and drag to place multiple conveyors. -gz.drills = Expand the mining operation.\nPlace more Mechanical Drills.\nMine 100 copper. -gz.lead = \uf837 [accent]Lead[] is another commonly used resource.\nSet up drills to mine lead. -gz.moveup = \ue804 Move up for further objectives. -gz.turrets = Research and place 2 \uf861 [accent]Duo[] turrets to defend the core.\nDuo turrets require \uf838 [accent]ammo[] from conveyors. -gz.duoammo = Supply the Duo turrets with [accent]copper[], using conveyors. -gz.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace \uf8ae [accent]copper walls[] around the turrets. -gz.defend = Enemy incoming, prepare to defend. -gz.aa = Flying units cannot easily be dispatched with standard turrets.\n\uf860 [accent]Scatter[] turrets provide excellent anti-air, but require \uf837 [accent]lead[] as ammo. -gz.scatterammo = Supply the Scatter turret with [accent]lead[], using conveyors. -gz.supplyturret = [accent]Supply Turret -gz.zone1 = This is the enemy drop zone. -gz.zone2 = Anything built in the radius is destroyed when a wave starts. -gz.zone3 = A wave will begin now.\nGet ready. -gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[]. -onset.mine = Click to mine \uf748 [accent]beryllium[] from walls.\n\nUse [accent][[WASD] to move. -onset.mine.mobile = Tap to mine \uf748 [accent]beryllium[] from walls. -onset.research = Open the \ue875 tech tree.\nResearch, then place a \uf73e [accent]turbine condenser[] on the vent.\nThis will generate [accent]power[]. -onset.bore = Research and place a \uf741 [accent]plasma bore[].\nThis automatically mines resources from walls. -onset.power = To [accent]power[] the plasma bore, research and place a \uf73d [accent]beam node[].\nConnect the turbine condenser to the plasma bore. -onset.ducts = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\nClick and drag to place multiple ducts.\n[accent]Scroll[] to rotate. -onset.ducts.mobile = Research and place \uf799 [accent]ducts[] to move the mined resources from the plasma bore to the core.\n\nHold down your finger for a second and drag to place multiple ducts. -onset.moremine = Expand the mining operation.\nPlace more Plasma Bores and use beam nodes and ducts to support them.\nMine 200 beryllium. -onset.graphite = More complex blocks require \uf835 [accent]graphite[].\nSet up plasma bores to mine graphite. -onset.research2 = Begin researching [accent]factories[].\nResearch the \uf74d [accent]cliff crusher[] and \uf779 [accent]silicon arc furnace[]. -onset.arcfurnace = The arc furnace needs \uf834 [accent]sand[] and \uf835 [accent]graphite[] to create \uf82f [accent]silicon[].\n[accent]Power[] is also required. -onset.crusher = Use \uf74d [accent]cliff crushers[] to mine sand. -onset.fabricator = Use [accent]units[] to explore the map, defend buildings, and attack the enemy. Research and place a \uf6a2 [accent]tank fabricator[]. -onset.makeunit = Produce a unit.\nUse the "?" button to see selected factory requirements. -onset.turrets = Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\nPlace a \uf6eb [accent]Breach[] turret.\nTurrets require \uf748 [accent]ammo[]. -onset.turretammo = Supply the turret with [accent]beryllium ammo.[] -onset.walls = [accent]Walls[] can prevent oncoming damage from reaching buildings.\nPlace some \uf6ee [accent]beryllium walls[] around the turret. -onset.enemies = Enemy incoming, prepare to defend. -onset.defenses = [accent]Set up defenses:[lightgray] {0} -onset.attack = The enemy is vulnerable. Counter-attack. -onset.cores = New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a \uf725 core. -onset.detect = The enemy will be able to detect you in 2 minutes.\nSet up defenses, mining, and production. +hint.factoryControl.mobile = Untuk menentukan [accent]tempat keluar[] unit pabrik, ketuk blok pabrik ketika dalam mode perintah, lalu ketuk lokasi yang diinginkan.\nUnit yang diproduksi akan langsung bergerak ke tempat yang ditentukan. -#Don't translate these yet! -onset.commandmode = Hold [accent]shift[] to enter [accent]command mode[].\n[accent]Left-click and drag[] to select units.\n[accent]Right-click[] to order selected units to move or attack. -onset.commandmode.mobile = Press the [accent]command button[] to enter [accent]command mode[].\nHold down a finger, then [accent]drag[] to select units.\n[accent]Tap[] to order selected units to move or attack. -aegis.tungsten = Tungsten can be mined using an [accent]impact drill[].\nThis structure requires [accent]water[] and [accent]power[]. -split.pickup = Some blocks can be picked up by the core unit.\nPick up this [accent]container[] and place it onto the [accent]payload loader[].\n(Default keys are [ and ] to pick up and drop) -split.pickup.mobile = Some blocks can be picked up by the core unit.\nPick up this [accent]container[] and place it onto the [accent]payload loader[].\n(To pick up or drop something, long-press it.) -split.acquire = You must acquire some tungsten to build units. -split.build = Units must be transported to the other side of the wall.\nPlace two [accent]Payload Mass Drivers[], one on each side of the wall.\nSet up the link by pressing one of them, then selecting the other. -split.container = Similar to the container, units can also be transported using a [accent]Payload Mass Driver[].\nPlace a unit fabricator adjacent to a mass driver to load them, then send them across the wall to attack the enemy base. +gz.mine = Bergerak di dekat \uF8C4 [accent]bijih tembaga[] di tanah dan klik untuk mulai menambang. +gz.mine.mobile = Bergerak di dekat \uF8C4 [accent]bijih tembaga[] di tanah dan ketuk untuk mulai menambang. +gz.research = Buka \uE875 pohon teknologi.\nRiset \uF870 [accent]Bor Mekanik[], lalu pilih dari menu di kanan bawah.\nKlik pada tambalan tembaga untuk menempatkannya. +gz.research.mobile = Buka \uE875 pohon teknologi.\nRiset \uF870 [accent]Bor Mekanik[], lalu pilih dari menu di kanan bawah.\nKetuk pada tambalan tembaga untuk menempatkannya.\n\nKetuk \uE800 [accent]tanda centang[] di kanan bawah untuk mengonfirmasi. +gz.conveyors = Riset dan tempatkan \uF896 [accent]konveyor[] untuk memindahkan sumber daya yang ditambang\ndari bor ke inti.\n\nKlik dan seret untuk menempatkan beberapa konveyor.\n[accent]Gulir[] untuk memutar arah konveyor +gz.conveyors.mobile = Riset dan tempatkan \uF896 [accent]konveyor[] untuk memindahkan sumber daya yang ditambang\ndari bor ke inti.\n\nTahan jari Anda sebentar dan seret untuk menempatkan beberapa konveyor. +gz.drills = Perluas operasi penambangan.\ntempatkan lebih banyak Bor Mekanik.\nTambang 100 tembaga. +gz.lead = \uF837 [accent]Timah[] adalah sumber daya lain yang umum digunakan.\nSiapkan bor untuk menambang timah. +gz.moveup = \uE804 Bergerak ke atas untuk objektif lebih lanjut. +gz.turrets = Riset dan tempatkan 2 menara \uF861 [accent]Duo[] untuk mempertahankan inti.\nMenara Duo membutuhkan \uF838 [accent]amunisi[] dari konveyor. +gz.duoammo = Suplai menara Duo dengan [accent]tembaga[], menggunakan konveyor. +gz.walls = [accent]Dinding[] dapat menahan kerusakan yang mencapai bangunan.\nTempatkan \uF8AE [accent]dinding tembaga[] di sekitar menara. +gz.defend = Musuh datang, bersiaplah untuk bertahan. +gz.aa = Unit terbang tidak dapat dengan mudah dibunuh dengan menara standar.Menara\n\uF860 [accent]Scatter[] memberikan anti-udara yang sangat baik, tetapi membutuhkan \uF837 [accent]timah[] sebagai amunisi. +gz.scatterammo = Suplai Menara Scatter dengan [accent]timah[], menggunakan konveyor. +gz.supplyturret = [accent]Suplai Menara +gz.zone1 = Ini adalah zona pendaratan musuh. +gz.zone2 = Apa pun yang dibangun dalam radius tersebut akan hancur ketika gelombang mulai. +gz.zone3 = Gelombang akan dimulai sekarang.\Bersiap. +gz.finish = Bangun lebih banyak menara, tambang lebih banyak sumber daya,\ndan bertahan melawan semua gelombang [accent]untuk menaklukkan sektor[]. + +onset.mine = Klik untuk menambang \uF748 [accent]berillium[] dari dinding.\n\nGunakan tombol [accent][[WASD] untuk bergerak. +onset.mine.mobile = Ketuk untuk menambang \uF748 [accent]berillium[] dari dinding. +onset.research = Buka \uE875 pohon teknologi.\nRiset, dan tempatkan \uF73e [accent]kondensor turbin[] di ventilasi.\nIni akan menghasilkan [accent]tenaga[]. +onset.bore = Riset dan tempatkan \uF741 [accent]bor plasma[].\nIni secara otomatis mengekstraksi sumber daya dari dinding. +onset.power = Untuk [accent]menyalakan[] bor plasma, riset dan tempatkan \uF73D [accent]simpul sinar[].\nHubungkan kondensor turbin ke bor plasma. +onset.ducts = Riset dan tempatkan \uF799 [accent]pipa[] untuk memindahkan sumber daya yang ditambang dari bor plasma ke inti.\nklik dan seret untuk menempatkan beberapa saluran.\n[accent]Gulir[] untuk memutar. +onset.ducts.mobile = Riset dan tempatkan \uF799 [accent]saluran[] untuk memindahkan sumber daya yang ditambang dari bor plasma ke inti.\n\nTahan jari Anda sebentar dan seret untuk menempatkan beberapa saluran. +onset.moremine = Perluas operasi penambangan.\nTempatkan lebih banyak Bor Plasma dan gunakan simpul sinar dan pipa untuk menambangnya.\nTambang 200 berillium. +onset.graphite = Blok yang lebih kompleks membutuhkan \uF835 [accent]grafit[].\nSiapkan bor plasma untuk menambang grafit. +onset.research2 = Mulailah meneliti [accent]bangunan pabrik[].\nRiset \uF74D [accent]penghancur tebing[] dan \uF779 [accent]tungku listrik silikon[]. +onset.arcfurnace = Tungku Listrik Silikon membutuhkan \uF834 [accent]pasir[] dan \uF835 [accent]grafit[] untuk membuat \uF82F [accent]silikon[].\n[accent]Tenaga[] juga dibutuhkan. +onset.crusher = Gunakan \uF74D [accent]penghancur tebing[] untuk menambang pasir. +onset.fabricator = Gunakan [accent]unit[] untuk menjelajah peta, mempertahakan bangunan, dan menyerang musuh. Riset dan tempatkan \uF6A2 [accent]fabricator tank[]. +onset.makeunit = Produksi sebuah unit.\nGunakan tombol "?" untuk melihat persyaratan pabrik yang dipilih. +onset.turrets = Unit sangatlah efektif, namun [accent]menara[] memberikan kemampuan pertahanan yang lebih baik jika digunakan secara efektif.\nTempatkan menara \uF6EB [accent]Breach[].\nMenara membutuhkan \uF748 [accent]amunisi[]. +onset.turretammo = Suplai menara dengan [accent]amunisi berillium.[] +onset.walls = [accent]Dinding[] dapat mencegah kerusakan yang datang pada bangunan.\nTempatkan beberapa \uF6EE [accent]dinding berillium[] di sekitar menara. +onset.enemies = Musuh datang, bersiaplah untuk bertahan. +onset.defenses = [accent]Siapkan pertahanan:[lightgray] {0} +onset.attack = Musuh dalam keadaan rentan diserang. Luncurkan Serangan balik. +onset.cores = Inti baru dapat ditempatkan di [accent]ubin inti[].\nInti baru berfungsi sebagai pangkalan depan dan berbagi sumber daya dengan inti lainnya.\nTempatkan inti\uF725. +onset.detect = Musuh akan dapat mendeteksi Anda dalam 2 menit.\nSiapkan pertahanan, penambangan, dan produksi. +onset.commandmode = Tahan [accent]shift[] untuk masuk ke[accent]mode perintah[].\n[accent]Klik kiri dan seret[] untuk memilih unit.\n[accent]Klik kanan[] untuk memerintahkan unit yang dipilih untuk bergerak atau menyerang. +onset.commandmode.mobile = Tekan [accent]tombol perintah[] untuk masuk ke [accent]mode perintah[].\nTekan dan tahan jari Anda, lalu [accent]seret[] untuk memilih unit.\n[accent]Ketuk[] untuk memerintahkan unit yang dipilih untuk bergerak atau menyerang. +aegis.tungsten = Tungsten dapat ditambang menggunakan [accent]bor tumbukan[].\nBangunan ini membutuhkan [accent]air[] dan [accent]tenaga[]. + +split.pickup = Beberapa blok dapat diambil oleh unit inti.\nAmbil [accent]kontainer ini[] dan letakan di [accent]pembongkar muatan[].\n(Tombol bawaan nya ialah [ dan ] untuk mengambil dan menurun kan) +split.pickup.mobile = Beberapa blok dapat diambil oleh unit inti.\nAmbil [accent]kontainer ini[] dan letakan di [accent]pembongkar muatan[].\n(Untuk mengambil atau menurunkan sesuatu, tekan lama blok tersebut) +split.acquire = Anda harus memperoleh beberapa tungsten untuk membangun unit. +split.build = Unit harus diangkut ke sisi lain tembok.\nTempatkan dua [accent]Penembak Muatan Massal[], satu di setiap sisi dinding.\nHubungkan Penembak dengan menekan salah satunya, lalu pilih penembak yang lain. +split.container = Mirip dengan kontainer, unit juga dapat diangkut menggunakan [accent]Penembak Muatan Massal[].\nTempatkan unit fabrikator berdekatan dengan penggerak massal untuk memuatnya, lalu kirim mereka melintasi dinding untuk menyerang markas musuh. item.copper.description = Digunakan pada semua tipe konstruksi dan amunisi. item.copper.details = Tembaga. Logam yang sangat melimpah di Serpulo. Lemah secara struktural kecuali jika diperkuat. item.lead.description = Digunakan pada transportasi cairan dan bangunan listrik. -item.lead.details = Padat. Lembam. Biasanya digunakan untuk baterai.\nCatatan: Kemungkinan beracun untuk kehidupan biologis. Bukan berarti tidak banyak disini. -item.metaglass.description = Digunakan pada bangunan distribusi cairan/penyimpanan. +item.lead.details = Padat. Lembam. Biasanya digunakan untuk baterai.\nCatatan: Kemungkinan beracun untuk kehidupan biologis. Bukan berarti tidak banyak di sini. +item.metaglass.description = Digunakan pada bangunan distribusi cairan atau penyimpanan. item.graphite.description = Digunakan pada komponen listrik dan amunisi menara. item.sand.description = Digunakan sebagai bahan produksi untuk material yang akan dimurnikan. item.coal.description = Digunakan sebagai bahan bakar dan memurnikan material. -item.coal.details = Merupakan hasil dari tumbuhan yang menjadi fosil, sudah terjadi sangat lama sebelum spora-spora menyebar. +item.coal.details = Merupakan hasil dari tumbuhan yang menjadi fosil, sudah terjadi sangat lama sebelum spora menyebar. item.titanium.description = Digunakan pada bangunan transportasi cairan, bor dan pesawat terbang. item.thorium.description = Digunakan pada bangunan yang kuat dan sebagai bahan bakar nuklir. item.scrap.description = Digunakan pada Pelebur dan Penghancur untuk dimurnikan menjadi material lain. -item.scrap.details = Sisa-sisa dari bangunan dan unit tua. +item.scrap.details = Sisa-sisa dari unit dan bangunan tua. item.silicon.description = Digunakan pada panel surya, bahan elektronik yang kompleks dan amunisi yang bisa mengejar. item.plastanium.description = Digunakan dalam unit canggih, isolasi dan amunisi fragmentasi. item.phase-fabric.description = Digunakan di elektronik canggih dan teknologi perbaikan diri sendiri. @@ -2005,125 +2019,125 @@ item.blast-compound.description = Digunakan sebagai bom dan amunisi peledak. item.pyratite.description = Digunakan di senjata pembakar dan generator yang membutuhkan bahan mudah terbakar. #Erekir -item.beryllium.description = Used in many types of construction and ammunition on Erekir. -item.tungsten.description = Used in drills, armor and ammunition. Required in the construction of more advanced structures. -item.oxide.description = Used as a heat conductor and insulator for power. -item.carbide.description = Used in advanced structures, heavier units, and ammunition. +item.beryllium.description = Digunakan pada banyak jenis konstruksi dan amunisi di Erekir. +item.tungsten.description = Digunakan dalam bor, pelindung dan amunisi. Dibutuhkan dalam pembangunan struktur yang lebih canggih +item.oxide.description = Digunakan sebagai konduktor panas dan isolator tenaga. +item.carbide.description = Digunakan dalam bangunan canggih, unit yang lebih berat, dan amunisi. liquid.water.description = Umumnya digunakan untuk mendinginkan mesin dan pengolahan limbah. liquid.slag.description = Dapat dipadatkan menjadi logam tertentu, atau disemprotkan ke musuh sebagai senjata. -liquid.oil.description = Digunakan di produksi material lanjutan dan sebagai amunisi yang mudah terbakar. +liquid.oil.description = Digunakan pada produksi material canggih dan sebagai amunisi yang mudah terbakar. liquid.cryofluid.description = Digunakan sebagai pendingin di reaktor, menara, dan pabrik. #Erekir -liquid.arkycite.description = Used in chemical reactions for power generation and material synthesis. -liquid.ozone.description = Used as an oxidizing agent in material production, and as fuel. Moderately explosive. -liquid.hydrogen.description = Used in resource extraction, unit production and structure repair. Flammable. -liquid.cyanogen.description = Used for ammunition, construction of advanced units, and various reactions in advanced blocks. Highly flammable. -liquid.nitrogen.description = Used in resource extraction, gas creation and unit production. Inert. -liquid.neoplasm.description = A dangerous biological byproduct of the Neoplasia reactor. Quickly spreads to any adjacent water-containing block it touches, damaging them in the process. Viscous. -liquid.neoplasm.details = Neoplasm. An uncontrollable mass of rapidly-dividing synthetic cells with a sludge-like consistency. Heat-resistant. Extremely dangerous to any structures involving water.\n\nToo complex and unstable for standard analysis. Potential applications unknown. Incineration in slag pools is recommended. +liquid.arkycite.description = Digunakan dalam reaksi kimia untuk pembangkit listrik dan material sintesis. +liquid.ozone.description = Digunakan sebagai zat pengoksidasi dalam memproduki material, dan sebagai bahan bakar. Cukup eksplosif. +liquid.hydrogen.description = Digunakan dalam ekstraksi sumber daya, produksi unit, dan perbaikan bangunan. Mudah terbakar. +liquid.cyanogen.description = Digunakan untuk amunisi, pembangunan unit canggih, dan berbagai reaksi pada blok canggih. Sangat mudah terbakar. +liquid.nitrogen.description = Digunakan dalam ekstraksi sumber daya, pembuatan gas, dan produksi unit. Lembam. +liquid.neoplasm.description = Produk sampingan biologis yang berbahaya dari reaktor Neoplasia. Sangat cepat menyebar ketika menyentuh blok yang mengandung air yang ada di dekatnya, dan merusak blok tersebut secara perlahan. Kental. +liquid.neoplasm.details = Neoplasma. Sel sintetik Massa yang membelah dengan cepat dan tak terkendali dengan konsistensi seperti lumpur. Tahan panas. Sangat berbahaya bagi bangunan apa pun yang melibatkan air.\n\nTerlalu rumit dan tidak stabil untuk analisis standar. Potensi penerapan tidak diketahui. Dianjurkan untuk dibakar pada kolam lava. -block.derelict = \uf77e [lightgray]Derelik +block.derelict = \uF77E [lightgray]Derelik block.armored-conveyor.description = Memindahkan barang ke depan. Tidak dapat menerima masukan dari samping. block.illuminator.description = Memancarkan cahaya. block.message.description = Menyimpan pesan untuk komunikasi antar sekutu. -block.reinforced-message.description = Stores a message for communication between allies. -block.world-message.description = A message block for use in mapmaking. Cannot be destroyed. +block.reinforced-message.description = Menyimpan pesan untuk komunikasi antar sekutu. +block.world-message.description = Blok pesan untuk digunakan dalam pembuatan peta. Tidak dapat dihancurkan. block.graphite-press.description = Memadatkan bongkahan batu bara menjadi lempengan grafit. block.multi-press.description = Memadatkan bongkahan batu bara menjadi lempengan grafit. Membutuhkan air sebagai pendingin. block.silicon-smelter.description = Memproduksi silikon dari pasir dan batu bara. block.kiln.description = Membakar pasir dan timah menjadi metaglass. block.plastanium-compressor.description = Memproduksi plastanium dari minyak dan titanium. -block.phase-weaver.description = Memproduksi kain phase dari thorium dan banyak pasir. +block.phase-weaver.description = Memproduksi phase fabric dari torium dan pasir. block.surge-smelter.description = Memproduksi campuran logam dari titanium, timah, silikon dan tembaga. -block.cryofluid-mixer.description = Mencampur air dan titanium menjadi cairan dingin. +block.cryofluid-mixer.description = Mencampur air dan titanium untuk memproduksi cairan dingin. block.blast-mixer.description = Memproduksi senyawa peledak dari pyratit dan polong spora. block.pyratite-mixer.description = Mencampur batu bara, timah dan pasir menjadi pyratit. block.melter.description = Melelehkan rongsokan menjadi lava. -block.separator.description = Mengekstrak komponen mineral dari lava. +block.separator.description = Memisahkan komponen mineral dari lava. block.spore-press.description = Menekan polong spora menjadi minyak. block.pulverizer.description = Menghancurkan kepingan menjadi pasir. block.coal-centrifuge.description = Memadatkan minyak menjadi bongkahan batu bara. block.incinerator.description = Menghancurkan bahan atau zat cair yang masuk. -block.power-void.description = Menghilangkan semua tenaga yang masuk kedalamnya. Sandbox eksklusif. -block.power-source.description = Menghasilkan tenaga tak terhingga. Sandbox eksklusif. -block.item-source.description = Mengeluarkan bahan tak terhingga. Sandbox eksklusif. -block.item-void.description = Menghancurkan bahan yang masuk. Sandbox eksklusif. -block.liquid-source.description = Mengeluarkan zat cair tak terhingga. Sandbox eksklusif. -block.liquid-void.description = Menghancurkan zat cair yang masuk. Sandbox eksklusif. -block.payload-source.description = Mengeluarkan muatan tak terhingga. Sandbox eksklusif. -block.payload-void.description = Menghancurkan muatan apapun. Sandbox eksklusif. +block.power-void.description = Menghilangkan semua tenaga yang masuk ke dalamnya. Khusus mode sandbox. +block.power-source.description = Menghasilkan tenaga tak terhingga. Khusus mode sandbox. +block.item-source.description = Mengeluarkan bahan tak terhingga. Khusus mode sandbox. +block.item-void.description = Menghancurkan bahan yang masuk. Khusus mode sandbox. +block.liquid-source.description = Mengeluarkan zat cair tak terhingga. Khusus mode sandbox. +block.liquid-void.description = Menghancurkan zat cair yang masuk. Khusus mode sandbox. +block.payload-source.description = Mengeluarkan muatan tak terhingga. Khusus mode sandbox. +block.payload-void.description = Menghancurkan muatan apapun. Khusus mode sandbox. block.copper-wall.description = Melindungi bangunan dari tembakan musuh. block.copper-wall-large.description = Melindungi bangunan dari tembakan musuh. block.titanium-wall.description = Melindungi bangunan dari tembakan musuh. block.titanium-wall-large.description = Melindungi bangunan dari tembakan musuh. -block.plastanium-wall.description = Melindungi bangunan dari tembakan musuh. Mampu menyerap laser dan listrik arca. Memblokir koneksi simpul tenaga secara otomatis. -block.plastanium-wall-large.description = Melindungi bangunan dari tembakan musuh. Mampu menyerap laser dan listrik arca. Memblokir koneksi simpul tenaga secara otomatis. +block.plastanium-wall.description = Melindungi bangunan dari tembakan musuh. Mampu menyerap laser dan listrik. Memblokir koneksi simpul tenaga secara otomatis. +block.plastanium-wall-large.description = Melindungi bangunan dari tembakan musuh. Mampu menyerap laser dan listrik. Memblokir koneksi simpul tenaga secara otomatis. block.thorium-wall.description = Melindungi bangunan dari tembakan musuh. block.thorium-wall-large.description = Melindungi bangunan dari tembakan musuh. block.phase-wall.description = Melindungi bangunan dari tembakan musuh, dan dapat memantulkan beberapa jenis peluru senjata. block.phase-wall-large.description = Melindungi bangunan dari tembakan musuh, dan dapat memantulkan beberapa jenis peluru senjata. -block.surge-wall.description = Melindungi bangunan dari tembakan musuh, dan dapat mengeluarkan setruman arca. -block.surge-wall-large.description = Melindungi bangunan dari tembakan musuh, dan dapat mengeluarkan setruman arca. +block.surge-wall.description = Melindungi bangunan dari tembakan musuh, dan dapat mengeluarkan setruman listrik. +block.surge-wall-large.description = Melindungi bangunan dari tembakan musuh, dan dapat mengeluarkan setruman listrik. block.door.description = Dinding yang bisa dibuka dan ditutup. block.door-large.description = Dinding yang bisa dibuka dan ditutup. -block.mender.description = Menyembuhkan blok di sekelilingnya secara berkala.\nDapat menggunakan silikon untuk meningkatkan jangkauan dan efisiensi. -block.mend-projector.description = Menyembuhkan blok di sekelilingnya secara berkala.\nDapat menggunakan kain phase untuk meningkatkan jangkauan dan efisiensi. -block.overdrive-projector.description = Menambah kecepatan bangunan sekitar.\nDapat menggunakan kain phase untuk meningkatkan jangkauan dan efisiensi. -block.force-projector.description = Membentuk medan gaya berbentuk heksagon disekitar, melindungi bangunan dan unit didalamnya dari kerusakan.\nDapat mengalami kelebihan panas jika membendung terlalu banyak kerusakan. Dapat menggunakan cairan pendingin untuk mencegah kepanasan. Gunakan fabrik phase untuk memperbesar jangkauan. -block.shock-mine.description = Mengeluarkan setruman listrik kepada musuh yang menginjak ranjau. +block.mender.description = Menyembuhkan blok di sekelilingnya secara berkala.\nGunakan silikon untuk meningkatkan jangkauan dan efisiensi (Opsional). +block.mend-projector.description = Menyembuhkan blok di sekelilingnya secara berkala.\nGunakan phase fabric untuk meningkatkan jangkauan dan efisiensi (Opsional). +block.overdrive-projector.description = Menambah kecepatan bangunan sekitar.\nGunakan phase fabric untuk meningkatkan jangkauan dan efisiensi (Opsional). +block.force-projector.description = Menciptakan medan gaya heksagonal di sekelilingnya, melindungi bangunan dan unit di dalamnya dari kerusakan. Terlalu panas jika menerima banyak kerusakan. Gunakan cairan pendingin untuk mencegah panas berlebih (Opsional). Phase fabric meningkatkan ukuran perisai. +block.shock-mine.description = Mengeluarkan setruman listrik setelah di injak musuh. block.conveyor.description = Memindahkan barang ke depan. -block.titanium-conveyor.description = Memindahkan barang ke depan. Lebih cepat daripada pengantar biasa. +block.titanium-conveyor.description = Memindahkan barang ke depan. Lebih cepat daripada konveyor biasa. block.plastanium-conveyor.description = Memindahkan barang secara bertumpuk. Menerima barang dari belakang, dan membaginya ke tiga arah di depan. Membutuhkan beberapa titik pemuat dan pembongkar untuk hasil yang maksimal. -block.junction.description = Berguna seperti jembatan untuk dua pengantar yang bersimpangan. +block.junction.description = Bertindak sebagai jembatan untuk dua konveyor yang bersimpangan. block.bridge-conveyor.description = Memindahkan barang melewati tanah atau bangunan. -block.phase-conveyor.description = Memindahkan barang secara instan melewati tanah atau bangunan. Memiliki jarak yang lebih jauh daripada jembatan, namun memerlukan tenaga. +block.phase-conveyor.description = Memindahkan barang secara instan melewati tanah atau bangunan. Memiliki jarak yang lebih jauh daripada jembatan, namun membutuhkan tenaga. block.sorter.description = Jika barang yang masuk cocok dengan seleksi, barang akan diperbolehkan lewat ke depan. Jika tidak, barang akan dikeluarkan ke kiri dan kanan. block.inverted-sorter.description = Sama seperti penyortir, namun mengeluarkan barang terpilih ke samping. -block.router.description = Membagi barang ke 3 arah secara rata. -block.router.details = Bisa sangat menggangu. Jangan meletakannya disamping input produksi, karena laju pengeluaran barang dapat tersumbat. -block.distributor.description = Pemisah canggih yang memisah barang ke 7 arah secara rata. +block.router.description = Mendistribusikan barang ke 3 arah secara merata. +block.router.details = Bisa sangat menggangu. Jangan meletakannya disamping bangunan pabrik, karena laju pengeluaran barang dapat tersumbat. +block.distributor.description = Mendistribusikan barang ke 7 arah secara merata. block.overflow-gate.description = Hanya mengeluarkan barang ke kiri dan ke kanan jika bagian depan tertutup. block.underflow-gate.description = Kebalikan dari gerbang luap. Mengeluarkan barang ke depan jika bagian kiri dan kanan tertutup. -block.mass-driver.description = Blok transportasi barang jarak jauh. Membawa beberapa barang dan menembaknya ke penggerak massal lainnya. -block.mechanical-pump.description = Memompa dan mengeluarkan cairan. Tidak memerlukan tenaga. -block.rotary-pump.description = Memompa dan mengeluarkan cairan. Menggunakan tenaga. -block.impulse-pump.description = Memeompa dan mengluarkan cairan. +block.mass-driver.description = Blok transportasi barang jarak jauh. Membawa beberapa barang dan menembaknya ke penembak massal lainnya. +block.mechanical-pump.description = Memompa dan mengeluarkan cairan. Tidak membutuhkan tenaga. +block.rotary-pump.description = Memompa dan mengeluarkan cairan. Membutuhkan tenaga. +block.impulse-pump.description = Memompa dan mengeluarkan cairan. block.conduit.description = Memindahkan cairan ke depan. Digunakan dengan pompa dan saluran lainnya. block.pulse-conduit.description = Memindahkan cairan ke depan. Mengantarkan lebih cepat dan banyak daripada saluran biasa. block.plated-conduit.description = Memindahkan cairan ke depan. Tidak menerima cairan dari samping. Tidak bocor. block.liquid-router.description = Menerima cairan dari satu arah dan mengeluarkannya ke 3 arah secara rata. Dapat digunakan untuk menyimpan sejumlah cairan. block.liquid-container.description = Menyimpan jumlah cairan yang banyak. Mengeluarkan cairan ke segala arah, sama seperti pengarah cairan. block.liquid-tank.description = Menyimpan jumlah cairan yang sangat banyak. Mengeluarkan cairan ke segala arah, sama seperti pengarah cairan. -block.liquid-junction.description = Berguna seperti jembatan untuk dua saluran yang bersimpangan. +block.liquid-junction.description = Bertindak sebagai jembatan untuk dua saluran yang bersimpangan. block.bridge-conduit.description = Memindahkan cairan melewati tanah atau bangunan. -block.phase-conduit.description = Memindahkan cairan melewati tanah atau bangunan. Memiliki jarak yang lebih jauh daripada jembatan cairan, namun memerlukan tenaga. -block.power-node.description = Membawa tenaga ke tiang tersambung. Tiang akan menerima atau memberi tenaga ke atau dari blok yang disambung. -block.power-node-large.description = Mempunyai radius lebih besar dari tiang listrik biasa dan bisa menyambung hingga enam sumber listrik, sambungan atau tiang lainnya. -block.surge-tower.description = Sebuah menara listrik dengan jangkauan sangat jauh tetapi sambungan yang sedikit. +block.phase-conduit.description = Memindahkan cairan melewati tanah atau bangunan. Memiliki jarak yang lebih jauh daripada jembatan cairan, namun membutuhkan tenaga. +block.power-node.description = Membawa tenaga ke simpul tersambung. Simpul akan menerima atau memberi tenaga ke atau dari blok yang disambung. +block.power-node-large.description = Mempunyai radius lebih besar dari simpul listrik biasa dan bisa menyambung hingga enam sumber listrik, sambungan atau simpul lainnya. +block.surge-tower.description = Sebuah menara listrik dengan jangkauan sangat jauh dengan sambungan yang sedikit. block.diode.description = Tenaga baterai dapat mengalir hanya dari satu arah, tetapi hanya jika tenaga di sebelah lebih sedikit. -block.battery.description = Menyimpan tenaga jika ada kelebihan. Memberikan tenaga jika ada kekurangan. -block.battery-large.description = Menyimpan tenaga jika ada kelebihan. Memberikan tenaga jika ada kekurangan. Memiliki kapasitas yang besar daripada baterai biasa. -block.combustion-generator.description = Menghasilkan tenaga dengan membakar bahan yang mudah terbakar, seperti batu bara. -block.thermal-generator.description = Menghasilkan tenaga saat ditaruh di lokasi yang panas. -block.steam-generator.description = Menghasilkan tenaga dengan membakar bahan yang mudah terbakar dan mengubah air menjadi uap. +block.battery.description = Menyimpan tenaga pada saat tenaga berlebih. Memberikan tenaga pada saat tenaga berkurang. +block.battery-large.description = Menyimpan tenaga pada saat tenaga berlebih. Memberikan tenaga pada saat tenaga berkurang. Memiliki kapasitas yang besar daripada baterai biasa. +block.combustion-generator.description = Menghasilkan tenaga dengan membakar material yang mudah terbakar, seperti batu bara. +block.thermal-generator.description = Menghasilkan tenaga saat ditempatkan di lokasi yang panas. +block.steam-generator.description = Menghasilkan tenaga dengan membakar material yang mudah terbakar dan mengubah air menjadi uap. block.differential-generator.description = Menghasilkan tenaga dalam jumlah banyak. Memanfaatkan perbedaan suhu cairan pendingin dan pyratit yang terbakar. block.rtg-generator.description = Menggunakan panas dari senyawa radioaktif untuk memproduksi tenaga secara perlahan. block.solar-panel.description = Menghasilkan sedikit tenaga dari sinar matahari. block.solar-panel-large.description = Menghasilkan sedikit tenaga dari sinar matahari. Lebih efisien daripada panel surya biasa. -block.thorium-reactor.description = Menghasilkan tenaga yang besar dari konsumsi thorium. Membutuhkan pendinginan konstan. Akan meledak jika tidak cukup pendingin yang diterima. -block.impact-reactor.description = Menghasilkan tenaga dengan jumlah yang sangat banyak secara efisien. Memerlukan tenaga untuk menyalakan reaktor terlebih dahulu. -block.mechanical-drill.description = Bor murah. Saat ditaruh ditempat yang sesuai, mengeluarkan bahan dengan pelan tanpa batas. -block.pneumatic-drill.description = Bor lebih cepat dari bor mekanik dan bisa memproses bahan lebih keras dengan menggunakan tekanan udara. -block.laser-drill.description = Mengebor lebih cepat lewat teknologi laser, tapi membutuhkan tenaga. Dapat menambang thorium. +block.thorium-reactor.description = Menghasilkan tenaga yang besar dari konsumsi torium. Membutuhkan pendinginan konstan. Akan meledak jika jumlah cairan pendingin yang disediakan tidak mencukupi +block.impact-reactor.description = Menghasilkan tenaga dengan jumlah yang sangat banyak secara efisien. Membutuhkan banyak tenaga agar dapat menyalakan reaktor. +block.mechanical-drill.description = Ketika ditempatkan pada bijih, mengeluarkan bahan dengan kecepatan lambat tanpa batas. Hanya mampu menambang sumber daya dasar. +block.pneumatic-drill.description = Bor yang ditingkatkan, mampu menambang titanium. Menambang dengan kecepatan lebih cepat daripada bor mekanik. +block.laser-drill.description = Mengebor lebih cepat lewat teknologi laser, tapi membutuhkan tenaga. Dapat menambang torium. block.blast-drill.description = Bor tercanggih. Membutuhkan banyak tenaga. block.water-extractor.description = Memompa air dari tanah. Gunakan jika tidak ada sumber air di sekitar. block.cultivator.description = Menumbuhkan konsentrasi spora yang kecil di atmosfer menjadi polong spora. -block.cultivator.details = Teknologi yang dipulihkan. Digunakan untuk memproduksi biomassa secara efisien. Kemungkinan merupakan inkubator awal dari spora yang sekarang menutupi Serpulo. +block.cultivator.details = Teknologi yang dipulihkan. Digunakan untuk memproduksi biomassa dalam jumlah besar secara efisien. Kemungkinan merupakan inkubator awal dari spora yang sekarang menutupi Serpulo. block.oil-extractor.description = Menggunakan jumlah tenaga, pasir dan air yang banyak untuk diolah menjadi minyak. block.core-shard.description = Inti markas. Jika hancur, sektormu akan hilang. -block.core-shard.details = Iterasi pertama. Padat. Bisa menggandakan dirinya (untuk menguasai sektor disekitarnya). Dilengkapi dengan pendorong yang sekali pakai. Tidak didesain untuk perjalanan antar planet. +block.core-shard.details = Iterasi pertama. Padat. Bisa menggandakan dirinya (untuk menguasai sektor di sekitarnya). Dilengkapi dengan pendorong sekali pakai. Tidak didesain untuk perjalanan antar planet. block.core-foundation.description = Inti markas. Lebih kuat. Menyimpan banyak sumber daya. block.core-foundation.details = Iterasi kedua. block.core-nucleus.description = Inti markas. Sangat kuat. Menyimpan sangat banyak sumber daya. @@ -2131,39 +2145,39 @@ block.core-nucleus.details = Iterasi ketiga dan yang terakhir. block.vault.description = Menyimpan semua tipe bahan dalam jumlah besar. Bahan dapat dikeluarkan dengan pembongkar muatan. block.container.description = Menyimpan semua tipe bahan dalam jumlah kecil. Bahan dapat dikeluarkan dengan pembongkar muatan. block.unloader.description = Mengeluarkan bahan yang ditentukan dari bangunan. -block.launch-pad.description = Meluncurkan beberapa bahan ke sektor yang dipilih. +block.launch-pad.description = Meluncurkan muatan bahan ke sektor yang dipilih. block.launch-pad.details = Sistem sub-orbital untuk transportasi sumber daya point-to-point. Pod muatan mudah rapuh dan tidak dapat bertahan bila masuk ke tujuan. block.duo.description = Menembakkan peluru bergantian ke musuh. -block.scatter.description = Menembakkan gumpalan timah, rongsokan atau metaglass ke musuh udara. +block.scatter.description = Menembakkan gumpalan timah, rongsokan atau metaglass ke target udara. block.scorch.description = Membakar musuh darat yang dekat dengannya. Sangat efektif dalam jarak dekat. block.hail.description = Menembakkan peluru kecil ke musuh darat dari jarak jauh. -block.wave.description = Menembakkan aliran cairan ke musuh. Secara otomatis memadamkan api saat disuplai dengan air. +block.wave.description = Menembakkan aliran cairan ke musuh. Secara otomatis memadamkan api bila disuplai dengan air. block.lancer.description = Memuat dan menembakkan sinar energi yang kuat ke target darat. -block.arc.description = Menembakkan sambaran arca ke musuh darat. +block.arc.description = Menembakkan busur listrik ke target darat block.swarmer.description = Menembakkan misil yang mengejar ke arah musuh. block.salvo.description = Menembakkan peluru cepat ke arah musuh. block.fuse.description = Menembakkan tiga penusuk tajam jarak dekat ke musuh terdekat. -block.ripple.description = Menembakkan cangkang berkelompok ke musuh darat dari jarak jauh. +block.ripple.description = Menembakkan gugusan peluru ke musuh darat dari jarak jauh. block.cyclone.description = Menembakkan gumpalan peledak ke musuh terdekat. -block.spectre.description = Menembakkan peluru besar yang menembus lapis baja ke target udara dan darat. +block.spectre.description = Menembakkan peluru besar yang menembus pelindung ke target udara dan darat. block.meltdown.description = Mengisi dan menembakkan sinar laser yang terus-menerus ke musuh di sekitar. Membutuhkan pendingin untuk beroperasi. block.foreshadow.description = Menembakkan baut besar jarak jauh yang hanya menembak satu target. Mengutamakan musuh dengan batas darah tertinggi. -block.repair-point.description = Memulihkan unit terluka disekitar secara terus-menerus. +block.repair-point.description = Memulihkan unit yang terluka di sekitar secara terus-menerus. block.segment.description = Merusakkan dan menghancurkan proyektil yang datang. Proyektil laser tidak akan ditargetkan. block.parallax.description = Menembakkan laser yang menarik target udara, juga merusaknya selama dalam proses. -block.tsunami.description = Menembakkan cairan dalam jumlah dan tekanan besar ke arah musuh. Akan memadamkan api secara otomatis jika diisi dengan air. -block.silicon-crucible.description = Memurnikan silikon dari pasir dan batubara, menggunakan pyratit sebagai sumber panas tambahan. Lebih efesien jika diletakkan di area yang panas. -block.disassembler.description = Memisahkan lava menjadi mineral langka dalam efesiensi rendah. Bisa memproduksi thorium. -block.overdrive-dome.description = Menambahkan kecepatan pada bangunan disekitarnya. Membutuhkan kain phase dan silikon untuk bekerja. +block.tsunami.description = Menembakkan cairan dalam jumlah dan tekanan besar ke arah musuh. Dapat memadamkan api secara otomatis jika diisi dengan air. +block.silicon-crucible.description = Memurnikan silikon dari pasir dan batu bara, menggunakan pyratit sebagai sumber panas tambahan. Lebih efesien jika diletakkan di area yang panas. +block.disassembler.description = Memisahkan lava menjadi mineral langka dalam efesiensi rendah. Bisa memproduksi torium. +block.overdrive-dome.description = Menambahkan kecepatan pada bangunan di sekitarnya. Membutuhkan phase fabric dan silikon untuk bekerja. block.payload-conveyor.description = Memindahkan muatan yang besar, seperti unit dari pabrik. block.payload-router.description = Membagi muatan masukan menjadi 3 arah keluaran. -block.ground-factory.description = Memproduksi unit darat. Hasil unit dapat digunakan secara langsung, atau dipindah ke rekonstruktor untuk ditingkatkan. -block.air-factory.description = Memproduksi unit udara. Hasil unit dapat digunakan secara langsung, atau dipindah ke rekonstruktor untuk ditingkatkan. -block.naval-factory.description = Memproduksi unit laut. Hasil unit dapat digunakan secara langsung, atau dipindah ke rekonstruktor untuk ditingkatkan. -block.additive-reconstructor.description = Meningkatkan unit didalamnya menjadi tingkat dua. -block.multiplicative-reconstructor.description = Meningkatkan unit didalamnya menjadi tingkat tiga. -block.exponential-reconstructor.description = Meningkatkan unit didalamnya menjadi tingkat empat. -block.tetrative-reconstructor.description = Meningkatkan unit didalamnya menjadi tingkat lima dan terakhir. +block.ground-factory.description = Memproduksi unit darat. Hasil unit dapat digunakan secara langsung, atau dipindahkan ke rekonstruktor untuk ditingkatkan. +block.air-factory.description = Memproduksi unit udara. Hasil unit dapat digunakan secara langsung, atau dipindahkan ke rekonstruktor untuk ditingkatkan. +block.naval-factory.description = Memproduksi unit laut. Hasil unit dapat digunakan secara langsung, atau dipindahkan ke rekonstruktor untuk ditingkatkan. +block.additive-reconstructor.description = Meningkatkan unit di dalamnya menjadi tingkat dua. +block.multiplicative-reconstructor.description = Meningkatkan unit di dalamnya menjadi tingkat tiga. +block.exponential-reconstructor.description = Meningkatkan unit di dalamnya menjadi tingkat empat. +block.tetrative-reconstructor.description = Meningkatkan unit di dalamnya menjadi tingkat lima dan terakhir. block.switch.description = Sakelar yang dapat dialihkan. Status dapat dibaca dan dikendalikan dengan prosesor logika. block.micro-processor.description = Menjalankan urutan instruksi logika dalam satu lingkaran. Dapat digunakan untuk mengontrol unit dan bangunan. block.logic-processor.description = Menjalankan urutan instruksi logika dalam satu lingkaran. Dapat digunakan untuk mengontrol unit dan bangunan. Lebih cepat dibandingkan prosesor mikro. @@ -2173,117 +2187,118 @@ block.memory-bank.description = Menyimpan informasi untuk prosesor. Berkapasitas block.logic-display.description = Menampilkan grafik sembarang dari prosesor. block.large-logic-display.description = Menampilkan grafik sembarang dari prosesor. Lebih besar. block.interplanetary-accelerator.description = Sebuah menara railgun elektromagnetik raksasa. Meluncurkan Inti dengan kecepatan tinggi untuk peluncuran antarplanet. -block.repair-turret.description = Memperbaiki unit terdekat yang sekarat dalam jangkauan secara terus-menerus. Dapat menerima pendingin. +block.repair-turret.description = Memulihkan unit terdekat yang sekarat dalam jangkauan secara terus-menerus. Dapat menerima pendingin (Opsional). #Erekir block.core-bastion.description = Inti markas. Terlindungi. Jika hancur, sektor jatuh ke tangan musuh. -block.core-citadel.description = Inti markas. Sangat dilindungi. Menyimpan lebih banyak sumber daya dibandingkan Inti Baluarti. -block.core-acropolis.description = Inti markas. Sangat amat dilindungi. Menyimpan lebih banyak sumber daya dibandingkan Inti Kastil. -block.breach.description = Fires piercing beryllium or tungsten ammunition at enemy targets. -block.diffuse.description = Fires a burst of bullets in a wide cone. Pushes enemy targets back. -block.sublimate.description = Fires a continuous jet of flame at enemy targets. Pierces armor. -block.titan.description = Fires a massive explosive artillery shell at ground targets. Requires hydrogen. -block.afflict.description = Fires a massive charged orb of fragmentary flak. Requires heating. -block.disperse.description = Fires bursts of flak at aerial targets. -block.lustre.description = Fires a slow-moving single-target laser at enemy targets. -block.scathe.description = Launches a powerful missile at ground targets over vast distances. -block.smite.description = Fires bursts of piercing, lightning-emitting bullets. -block.malign.description = Fires a barrage of homing laser charges at enemy targets. Requires extensive heating. -block.silicon-arc-furnace.description = Refines silicon from sand and graphite. -block.oxidation-chamber.description = Converts beryllium and ozone into oxide. Emits heat as a by-product. -block.electric-heater.description = Heats facing blocks. Requires large amounts of power. -block.slag-heater.description = Heats facing blocks. Requires slag. -block.phase-heater.description = Heats facing blocks. Requires phase fabric. -block.heat-redirector.description = Redirects accumulated heat to other blocks. -block.heat-router.description = Spreads accumulated heat in three output directions. -block.electrolyzer.description = Converts water into hydrogen and ozone gas. -block.atmospheric-concentrator.description = Concentrates nitrogen from the atmosphere. Requires heat. -block.surge-crucible.description = Forms surge alloy from slag and silicon. Requires heat. -block.phase-synthesizer.description = Synthesizes phase fabric from thorium, sand, and ozone. Requires heat. -block.carbide-crucible.description = Fuses graphite and tungsten into carbide. Requires heat. -block.cyanogen-synthesizer.description = Synthesizes cyanogen from arkycite and graphite. Requires heat. -block.slag-incinerator.description = Incinerates non-volatile items or liquids. Requires slag. -block.vent-condenser.description = Condenses vent gases into water. Consumes power. -block.plasma-bore.description = When placed facing an ore wall, outputs items indefinitely. Requires small amounts of power. -block.large-plasma-bore.description = A larger plasma bore. Capable of mining tungsten and thorium. Requires hydrogen and power. -block.cliff-crusher.description = Crushes walls, outputting sand indefinitely. Requires power. Efficiency varies based on type of wall. -block.impact-drill.description = When placed on ore, outputs items in bursts indefinitely. Requires power and water. -block.eruption-drill.description = An improved impact drill. Capable of mining thorium. Requires hydrogen. -block.reinforced-conduit.description = Moves fluids forward. Doesn't accept non-conduit inputs to the sides. -block.reinforced-liquid-router.description = Distributes fluids equally to all sides. -block.reinforced-liquid-tank.description = Stores a large amount of fluids. -block.reinforced-liquid-container.description = Stores a sizeable amount of fluids. -block.reinforced-bridge-conduit.description = Transports fluids over structures and terrain. -block.reinforced-pump.description = Pumps and outputs liquids. Requires hydrogen. -block.beryllium-wall.description = Protects structures from enemy projectiles. -block.beryllium-wall-large.description = Protects structures from enemy projectiles. -block.tungsten-wall.description = Protects structures from enemy projectiles. -block.tungsten-wall-large.description = Protects structures from enemy projectiles. -block.carbide-wall.description = Protects structures from enemy projectiles. -block.carbide-wall-large.description = Protects structures from enemy projectiles. -block.reinforced-surge-wall.description = Protects structures from enemy projectiles, periodically launching electric arcs upon projectile contact. -block.reinforced-surge-wall-large.description = Protects structures from enemy projectiles, periodically launching electric arcs upon projectile contact. -block.shielded-wall.description = Protects structures from enemy projectiles. Deploys a shield that absorbs most projectiles when power is provided. Conducts power. -block.blast-door.description = A wall that opens when allied ground units are in range. Cannot be manually controlled. -block.duct.description = Moves items forward. Only capable of storing a single item. -block.armored-duct.description = Moves items forward. Does not accept non-duct inputs from the sides. -block.duct-router.description = Distributes items equally across three directions. Only accepts items from the back side. Can be configured as an item sorter. -block.overflow-duct.description = Only outputs items to the sides if the front path is blocked. -block.duct-bridge.description = Moves items over structures and terrain. -block.duct-unloader.description = Unloads the selected item from the block behind it. Cannot unload from cores. -block.underflow-duct.description = Opposite of an overflow duct. Outputs to the front if the left and right paths are blocked. -block.reinforced-liquid-junction.description = Acts as a junction between two crossing conduits. -block.surge-conveyor.description = Moves items in batches. Can be sped up with power. Conducts power. -block.surge-router.description = Equally distributes items in three directions from surge conveyors. Can be sped up with power. Conducts power. -block.unit-cargo-loader.description = Constructs cargo drones. Drones automatically distribute items to Cargo Unload Points with a matching filter. -block.unit-cargo-unload-point.description = Acts as an unloading point for cargo drones. Accepts items that match the selected filter. -block.beam-node.description = Transmits power to other blocks orthogonally. Stores a small amount of power. -block.beam-tower.description = Transmits power to other blocks orthogonally. Stores a large amount of power. Long-range. -block.turbine-condenser.description = Generates power when placed on vents. Produces a small amount of water. -block.chemical-combustion-chamber.description = Generates power from arkycite and ozone. -block.pyrolysis-generator.description = Generates large amounts of power from arkycite and slag. Produces water as a byproduct. -block.flux-reactor.description = Generates large amounts of power when heated. Requires cyanogen as a stabilizer. Power output and cyanogen requirements are proportional to heat input.\nExplodes if insufficient cyanogen is provided. -block.neoplasia-reactor.description = Uses arkycite, water and phase fabric to generate large amounts of power. Produces heat and dangerous neoplasm as a byproduct.\nExplodes violently if neoplasm is not removed from the reactor via conduits. -block.build-tower.description = Automatically rebuilds structures in range and assists other units in construction. -block.regen-projector.description = Slowly repairs allied structures in a square perimeter. Requires hydrogen. -block.reinforced-container.description = Stores a small amount of items. Contents can be retrieved via unloaders. Does not increase core storage capacity. -block.reinforced-vault.description = Stores a large amount of items. Contents can be retrieved via unloaders. Does not increase core storage capacity. -block.tank-fabricator.description = Constructs Stell units. Outputted units can be used directly, or moved into refabricators for upgrading. -block.ship-fabricator.description = Constructs Elude units. Outputted units can be used directly, or moved into refabricators for upgrading. -block.mech-fabricator.description = Constructs Merui units. Outputted units can be used directly, or moved into refabricators for upgrading. -block.tank-assembler.description = Assembles large tanks out of inputted blocks and units. Output tier may be increased by adding modules. -block.ship-assembler.description = Assembles large ships out of inputted blocks and units. Output tier may be increased by adding modules. -block.mech-assembler.description = Assembles large mechs out of inputted blocks and units. Output tier may be increased by adding modules. -block.tank-refabricator.description = Upgrades inputted tank units to the second tier. -block.ship-refabricator.description = Upgrades inputted ship units to the second tier. -block.mech-refabricator.description = Upgrades inputted mech units to the second tier. -block.prime-refabricator.description = Upgrades inputted units to the third tier. -block.basic-assembler-module.description = Increases assembler tier when placed next to a construction boundary. Requires power. Can be used as a payload input. -block.small-deconstructor.description = Deconstructs inputted structures and units. Returns 100% of the build cost. -block.reinforced-payload-conveyor.description = Moves payloads forward. -block.reinforced-payload-router.description = Distributes payloads into adjacent blocks. Functions as a sorter when a filter is set. -block.payload-mass-driver.description = Long-range payload transport structure. Shoots received payloads to linked payload mass drivers. -block.large-payload-mass-driver.description = Long-range payload transport structure. Shoots received payloads to linked payload mass drivers. -block.unit-repair-tower.description = Repairs all units in its vicinity. Requires ozone. -block.radar.description = Gradually uncovers terrain and enemy units in a large radius. Requires power. -block.shockwave-tower.description = Damages and destroys enemy projectiles in a radius. Requires cyanogen. -block.canvas.description = Displays a simple image with a pre-defined palette. Editable. +block.core-citadel.description = Inti markas. Sangat terlindungi. Menyimpan lebih banyak sumber daya dari pada Inti Bastion. +block.core-acropolis.description = Inti markas. Sangat amat terlindungi. Menyimpan lebih banyak sumber daya dari pada Inti Citadel. +block.breach.description = Menembakkan amunisi berilium atau tungsten yang menusuk ke arah musuh. +block.diffuse.description = Menembakkan semburan peluru dalam kerucut yang lebar. Mendorong musuh kebelakang. +block.sublimate.description = Menembakkan pancaran api terus menerus ke arah musuh. Menembus pelindung. +block.titan.description = Menembakkan peluru artileri eksplosif besar ke target darat. Membutuhkan hidrogen. +block.afflict.description = Menembakkan bola anti-peluru fragmentaris bermuatan besar. Membutuhkan pemanasan. +block.disperse.description = Menembakkan semburan anti-peluru ke target udara. +block.lustre.description = Menembakkan laser target tunggal yang bergerak lambat ke arahmusuh. +block.scathe.description = Meluncurkan rudal yang kuat ke target darat dalam jarak yang sangat jauh. +block.smite.description = Menembakan semburan peluru yang menusuk dan menyambar. +block.malign.description = Menembakkan rentetan muatan laser pelacak ke target musuh. Membutuhkan pemanasan ekstensif. +block.silicon-arc-furnace.description = Memurnikan silikon dari pasir dan grafit. +block.oxidation-chamber.description = Mengubah berilium dan ozon menjadi oksida. Memancarkan panas sebagai produk sampingan. +block.electric-heater.description = Pemanas yang menghadap ke arah blok. Membutuhkan daya yang besar. +block.slag-heater.description = Pemanas yang menghadap ke arah blok. Membutuhkan lava. +block.phase-heater.description = Pemanas yang menghadap ke arah blok. Membutuhkan phase fabric. +block.heat-redirector.description = Mengalihkan akumulasi panas ke blok lain. +block.heat-router.description = Menyebarkan akumulasi panas ke tiga arah. +block.electrolyzer.description = Mengubah air menjadi gas hidrogen dan ozon. +block.atmospheric-concentrator.description = Mengkonsentrasikan nitrogen dari atmosfer. Membutuhkan panas. +block.surge-crucible.description = Membentuk Paduan Logam dari lava dan silikon. Membutuhkan panas. +block.phase-synthesizer.description = Mensintesis phase fabric dari torium, pasir, dan ozon. Membutuhkan panas. +block.carbide-crucible.description = Memadukan grafit dan tungsten menjadi karbida. Membutuhkan panas. +block.cyanogen-synthesizer.description = Mensintesis sianogen dari arkycite dan grafit. Membutuhkan panas. +block.slag-incinerator.description = Membakar benda atau cairan yang tidak mudah menguap. Membutuhkan lava. +block.vent-condenser.description = Mengondensasi gas ventilasi ke dalam air. Membutuhkan tenaga. +block.plasma-bore.description = Saat ditempatkan menghadap dinding bijih, mengeluarkan bahan tanpa batas. Membutuhkan daya dalam jumlah kecil. +block.large-plasma-bore.description = Bor plasma yang lebih besar. Mampu menambang tungsten dan thorium. Membutuhkan hidrogen dan tenaga. +block.cliff-crusher.description = Menghancurkan dinding, mengeluarkan pasir tanpa batas. Membutuhkan tenaga. Efisiensi bervariasi berdasarkan jenis dinding. +block.impact-drill.description = Saat ditempatkan pada bijih, mengeluarkan bahan dalam ledakan tanpa batas. Membutuhkan listrik dan air. +block.eruption-drill.description = Bor tumbukan yang ditingkatkan. Mampu menambang thorium. Membutuhkan hidrogen. +block.reinforced-conduit.description = Memindahkan cairan ke depan. Tidak menerima masukkan ke samping. +block.reinforced-liquid-router.description = Mendistribusikan cairan secara merata ke semua sisi. +block.reinforced-junction.description = Bertindak sebagai jembatan untuk dua saluran penyeberangan. +block.reinforced-liquid-tank.description = Menyimpan sejumlah besar cairan. +block.reinforced-liquid-container.description = Menyimpan jumlah cairan yang cukup besar. +block.reinforced-bridge-conduit.description = Memindahkan cairan melintasi bangunan dan medan. +block.reinforced-pump.description = Memompa dan mengeluarkan cairan. Membutuhkan hidrogen. +block.beryllium-wall.description = Melindungi bangunan dari proyektil musuh. +block.beryllium-wall-large.description = Melindungi bangunan dari proyektil musuh. +block.tungsten-wall.description = Melindungi bangunan dari proyektil musuh. +block.tungsten-wall-large.description = Melindungi bangunan dari proyektil musuh. +block.carbide-wall.description = Melindungi bangunan dari proyektil musuh. +block.carbide-wall-large.description = Melindungi bangunan dari proyektil musuh. +block.reinforced-surge-wall.description = Melindungi bangunan dari proyektil musuh, melepaskan listrik secara berkala saat proyektil mengenai dinding. +block.reinforced-surge-wall-large.description = Melindungi bangunan dari proyektil musuh, melepaskan listrik secara berkala saat proyektil mengenai dinding. +block.shielded-wall.description = Melindungi bangunan dari proyektil musuh. Menyebarkan perisai yang menyerap sebagian besar proyektil saat daya tersedia. Menghantarkan tenaga. +block.blast-door.description = Dinding yang terbuka ketika unit darat sekutu berada dalam jangkauan. Tidak dapat dikontrol secara manual. +block.duct.description = Memindahkan barang ke depan. Hanya mampu menyimpan satu barang. +block.armored-duct.description = Memindahkan barang ke depan. Tidak menerima masukan dari samping. +block.duct-router.description = Mendistribusikan barang secara merata ke tiga arah. Hanya menerima barang dari sisi belakang. Dapat dikonfigurasi sebagai penyortir barang. +block.overflow-duct.description = Hanya mengeluarkan barang ke samping jika jalur depan diblokir. +block.duct-bridge.description = Memindahkan barang di atas bangunan dan medan. +block.duct-unloader.description = Membongkarkan barang yang dipilih dari blok di belakangnya. Tidak dapat membongkar dari inti. +block.underflow-duct.description = Di seberang saluran pelimpah. Keluaran ke depan jika jalur kiri dan kanan terhalang. +block.reinforced-liquid-junction.description = Bertindak sebagai persimpangan antara dua saluran yang bersilangan. +block.surge-conveyor.description = Memindahkan barang secara berkelompok. Dapat dipercepat dengan tenaga. Menghantarkan tenaga. +block.surge-router.description = Mendistribusikan barang secara merata ke tiga arah dari konveyor lonjakan. Dapat dipercepat dengan tenaga. Menghantarkan tenaga. +block.unit-cargo-loader.description = Membuat drone kargo. Drone secara otomatis mendistribusikan barang ke Titik Bongkar muatan Kargo dengan filter yang cocok. +block.unit-cargo-unload-point.description = Bertindak sebagai titik bongkar muatan drone kargo. Menerima barang yang cocok dengan filter yang dipilih. +block.beam-node.description = Mentransmisikan daya ke blok lain secara ortogonal. Menyimpan sejumlah kecil daya. +block.beam-tower.description = Mentransmisikan daya ke blok lain secara ortogonal. Menyimpan sejumlah besar daya. Jarak jauh. +block.turbine-condenser.description = Menghasilkan tenaga ketika ditempatkan pada ventilasi. Menghasilkan sedikit air. +block.chemical-combustion-chamber.description = Menghasilkan tenaga dari arkycite dan ozon. +block.pyrolysis-generator.description = Menghasilkan tenaga dalam jumlah besar dari arkisit dan terak. Menghasilkan air sebagai produk sampingan. +block.flux-reactor.description = Menghasilkan daya dalam jumlah besar ketika dipanaskan. Membutuhkan sianogen sebagai penstabil. Daya yang dihasilkan dan kebutuhan sianogen sebanding dengan panas yang masuk.\nMeledak jika sianogen yang disediakan tidak mencukupi. +block.neoplasia-reactor.description = Menggunakan arkisit, air, dan phase fabric untuk menghasilkan daya dalam jumlah besar. Menghasilkan panas dan neoplasma yang berbahaya sebagai produk sampingan.\nMeledak hebat jika neoplasma tidak dikeluarkan dari reaktor melalui saluran. +block.build-tower.description = Secara otomatis membangun kembali bangunan dalam jangkauan dan membantu unit lain dalam konstruksi. +block.regen-projector.description = Perlahan memperbaiki bangunan sekutu di perimeter persegi. Membutuhkan hidrogen. Gunakan phase fabric untuk meningkatkan efisiensi (Opsional). +block.reinforced-container.description = Menyimpan sejumlah kecil barang. Isi kontainer dapat diambil melalui pembongkaran. Tidak dapat meningkatkan kapasitas penyimpanan inti. +block.reinforced-vault.description = Menyimpan sejumlah besar barang. Isi gudang dapat diambil melalui pembongkaran. Tidak dapat meningkatkan kapasitas penyimpanan inti. +block.tank-fabricator.description = Membangun unit Stell. Unit dapat digunakan secara langsung, atau dipindahkan ke pabrikator ulang untuk ditingkatkan. +block.ship-fabricator.description = Membangun unit Elude. Unit dapat digunakan secara langsung, atau dipindahkan ke pabrikator ulang untuk ditingkatkan. +block.mech-fabricator.description = Membangun unit Merui. Unit dapat digunakan secara langsung, atau dipindahkan ke pabrikator ulang untuk ditingkatkan. +block.tank-assembler.description = Merakit Unit Tank besar dari blok dan unit yang dimasukkan. Tingkat keluaran dapat ditingkatkan dengan menambahkan modul. +block.ship-assembler.description = Merakit Unit Kapal besar dari blok dan unit yang dimasukkan. Tingkat keluaran dapat ditingkatkan dengan menambahkan modul. +block.mech-assembler.description = Merakit Unit Mech besar dari blok dan unit yang dimasukkan. Tingkat keluaran dapat ditingkatkan dengan menambahkan modul. +block.tank-refabricator.description = Meningkatkan unit tank yang dimasukkan ke tingkat kedua. +block.ship-refabricator.description = Meningkatkan unit kapal yang dimasukkan ke tingkat kedua. +block.mech-refabricator.description = Meningkatkan unit mech yang dimasukkan ke tingkat kedua. +block.prime-refabricator.description = Meningkatkan unit yang dimasukkan ke tingkat ketiga. +block.basic-assembler-module.description = Meningkatkan tingkat perakit ketika ditempatkan di sebelah batas konstruksi. Membutuhkan tenaga. Dapat digunakan sebagai penerima muatan. +block.small-deconstructor.description = Mendekonstruksi bangunan dan unit yang dimasukkan. Mengembalikan 100% biaya pembangunan. +block.reinforced-payload-conveyor.description = Memindahkan muatan ke depan. +block.reinforced-payload-router.description = Mendistribusikan muatan ke blok yang berdekatan. Berfungsi sebagai penyortir ketika filter disetel. +block.payload-mass-driver.description = Struktur transportasi muatan jarak jauh. Menembak muatan ke penembak muatan massal yang terhubung. +block.large-payload-mass-driver.description = Struktur transportasi muatan jarak jauh. Menembak muatan ke penembak muatan massal yang terhubung. +block.unit-repair-tower.description = Memulihkan semua unit di sekitarnya. Membutuhkan ozon. +block.radar.description = Secara bertahap mengungkap medan dan unit musuh dalam radius besar. Membutuhkan tenaga. +block.shockwave-tower.description = Merusak dan menghancurkan proyektil musuh dalam radius. Membutuhkan sianogen. +block.canvas.description = Menampilkan gambar sederhana dengan palet yang telah ditentukan sebelumnya. Dapat diedit. unit.dagger.description = Menembak musuh terdekat dengan amunisi standar. unit.mace.description = Menyerang musuh terdekat dengan cara membakarnya. unit.fortress.description = Menembak musuh darat dengan artileri jarak jauh. unit.scepter.description = Menembak semua musuh terdekat dengan rentetan peluru bermuatan listrik. -unit.reign.description = Menembak semua musuh terdekat dengan gugusan peluru tajam dalam jumlah banyak. -unit.nova.description = Menembak baut laser yang dapat merusak musuh dan memperbaiki bangunan teman. Dapat terbang. -unit.pulsar.description = Menembak petir yang dapat merusak musuh dan memperbaiki bangunan teman. Dapat terbang. -unit.quasar.description = Menembak sinar laser yang dapat menembus bangunan yang dapat merusak musuh dan memperbaiki bangunan teman. Dapat terbang. Memiliki perisai. -unit.vela.description = Menembak sinar laser besar dan kontinu yang dapat merusak musuh, membakarnya dan memperbaiki bangunan teman. Dapat terbang. -unit.corvus.description = Menembak sinar laser besar yang dapat merusak musuh dan memperbaiki bangunan teman. Dapat berjalan diatas hampir semua medan. +unit.reign.description = Menembak semua musuh terdekat dengan rentetan peluru tajam dalam jumlah banyak. +unit.nova.description = Menembak baut laser yang dapat merusak musuh dan memperbaiki bangunan sekutu. Dapat terbang. +unit.pulsar.description = Menembak petir yang dapat merusak musuh dan memperbaiki bangunan sekutu. Dapat terbang. +unit.quasar.description = Menembak sinar laser yang dapat menembus bangunan yang dapat merusak musuh dan memperbaiki bangunan sekutu. Dapat terbang. Memiliki perisai. +unit.vela.description = Menembak sinar laser besar dan kontinu yang dapat merusak musuh, membakarnya dan memperbaiki bangunan sekutu. Dapat terbang. +unit.corvus.description = Menembak sinar laser besar yang dapat merusak musuh dan memperbaiki bangunan sekutu. Dapat berjalan diatas hampir semua medan. unit.crawler.description = Berlari menuju musuh dan menghancurkan dirinya, yang dapat menghasilkan ledakan besar. unit.atrax.description = Menembak musuh dengan cairan lava kepada target darat. Dapat berjalan diatas hampir semua medan. unit.spiroct.description = Menembak laser pelemah kepada musuh, dapat memperbaiki dirinya dalam proses. Dapat berjalan diatas hampir semua medan. unit.arkyid.description = Menembak laser pelemah besar kepada musuh, dapat memperbaiki dirinya dalam proses. Dapat berjalan diatas hampir semua medan. -unit.toxopid.description = Menembak gugusan cangkang energi besar dan laser penusuk kepada musuh. Dapat berjalan diatas hampir semua medan. +unit.toxopid.description = Menembak gugusan peluru listrik besar dan laser penusuk kepada musuh. Dapat berjalan diatas hampir semua medan. unit.flare.description = Menembak musuh darat terdekat dengan amunisi standar. unit.horizon.description = Menjatuhkan gugusan bom kepada musuh darat. unit.zenith.description = Menembak misil kepada musuh terdekat. @@ -2292,46 +2307,46 @@ unit.eclipse.description = Menembak dua sinar laser dan rentetan peluru kepada m unit.mono.description = Menambang tembaga dan timah secara otomatis, membawanya menuju inti. unit.poly.description = Membangun kembali bangunan yang hancur secara otomatis dan membantu unit lain dalam pembangunan. unit.mega.description = Memperbaiki bangunan secara otomatis. Dapat membawa bangunan dan unit darat kecil. -unit.quad.description = Menjatuhkan bom besar kepada target darat, yang bisa memberbaiki struktur teman dan merusak musuh. Dapat membawa unit darat berukuran sedang. -unit.oct.description = Melindungi teman disekitarnya dengan perisai yang dapat beregenerasi. Dapat membawa hampir semua unit darat. -unit.risso.description = Menembak misil dan peluru kepada semua musuh terdekat. +unit.quad.description = Menjatuhkan bom besar kepada target darat, yang bisa memberbaiki bangunan sekutu dan merusak musuh. Dapat membawa unit darat berukuran sedang. +unit.oct.description = Melindungi sekutu di sekitarnya dengan perisai yang dapat beregenerasi. Dapat membawa hampir semua unit darat. +unit.risso.description = Menembak rentetan misil dan peluru kepada semua musuh terdekat. unit.minke.description = Menembak cangkang pembakar dan peluru standar kepada musuh darat terdekat. unit.bryde.description = Menembak artileri jarak jauh dan misil kepada musuh. -unit.sei.description = Menembak rentetan misil dan peluru yang dapat menembus baju besi kepada musuh. +unit.sei.description = Menembak rentetan misil dan peluru yang dapat menembus pelindung kepada musuh. unit.omura.description = Menembak railgun jarak jauh kepada musuh. Dapat memproduksi unit flare. -unit.alpha.description = Melindungi Inti Bagian dari musuh. Dapat membangun. -unit.beta.description = Melindungi Inti Fondasi dari musuh. Dapat membangun. -unit.gamma.description = Melindungi Inti Nukleus dari musuh. Dapat membangun. -unit.retusa.description = Menembak torpedo pelacak. Memperbaiki unit teman. +unit.alpha.description = Melindungi Inti Bagian dari musuh. Dapat membangun struktur. +unit.beta.description = Melindungi Inti Fondasi dari musuh. Dapat membangun struktur. +unit.gamma.description = Melindungi Inti Nukleus dari musuh. Dapat membangun struktur. +unit.retusa.description = Menembak torpedo pelacak. Memperbaiki unit sekutu. unit.oxynoe.description = Menembak aliran api pada musuh terdekat. Menargetkan proyektil musuh terdekat dengan titik menara pertahanan. -unit.cyerce.description = Menembak misil yang membidik otomatis secara beruntun pada musuh. Memperbaiki unit teman. -unit.aegires.description = Mengkejutkan semua bangunan dan unit musuh yang ada di dalam medan energi. Memperbaiki seluruh unit teman. -unit.navanax.description = Menembak proyektil elektromagnetik yang meledak, memberikan kerusakan yang signifikan pada jaringan tenaga musuh dan memperbaiki bangunan teman. Melelehkan musuh terdekat dengan 4 menara laser secara otomatis. +unit.cyerce.description = Menembak misil yang membidik otomatis secara beruntun pada musuh. Memperbaiki unit sekutu. +unit.aegires.description = Mengkejutkan semua bangunan dan unit musuh yang ada di dalam medan energi. Memperbaiki seluruh unit sekutu. +unit.navanax.description = Menembak proyektil elektromagnetik yang meledak, memberikan kerusakan yang signifikan pada jaringan tenaga musuh dan memperbaiki bangunan sekutu. Melelehkan musuh terdekat dengan 4 menara laser secara otomatis. #Erekir -unit.stell.description = Fires standard bullets at enemy targets. -unit.locus.description = Fires alternating bullets at enemy targets. -unit.precept.description = Fires piercing cluster bullets at enemy targets. -unit.vanquish.description = Fires large piercing splitting bullets at enemy targets. -unit.conquer.description = Fires large piercing cascades of bullets at enemy targets. -unit.merui.description = Fires long-range artillery at enemy ground targets. Can step over most terrain. -unit.cleroi.description = Fires dual shells at enemy targets. Targets enemy projectiles with point defense turrets. Can step over most terrain. -unit.anthicus.description = Fires long-range homing missiles at enemy targets. Can step over most terrain. -unit.tecta.description = Fires homing plasma missiles at enemy targets. Protects itself with a directional shield. Can step over most terrain. -unit.collaris.description = Fires long-range fragmenting artillery at enemy targets. Can step over most terrain. -unit.elude.description = Fires pairs of homing bullets at enemy targets. Can float over bodies of liquid. -unit.avert.description = Fires twisting pairs of bullets at enemy targets. -unit.obviate.description = Fires twisting pairs of lightning orbs at enemy targets. -unit.quell.description = Fires long-range homing missiles at enemy targets. Suppresses enemy structure repair blocks. -unit.disrupt.description = Fires long-range homing suppression missiles at enemy targets. Suppresses enemy structure repair blocks. -unit.evoke.description = Builds structures to defend the Bastion core. Repairs structures with a beam. -unit.incite.description = Builds structures to defend the Citadel core. Repairs structures with a beam. -unit.emanate.description = Builds structures to defend the Acropolis core. Repairs structures with beams. +unit.stell.description = Menembak peluru standar pada musuh. +unit.locus.description = Menembak peluru bergantian pada musuh. +unit.precept.description = Menembak gugusan peluru penusuk pada musuh. +unit.vanquish.description = Menembak peluru penusuk pemisahan besar pada musuh. +unit.conquer.description = Menembak peluru penusuk besar yang berpancar pada musuh. +unit.merui.description = Menembak artileri jarak jauh pada musuh di darat. Dapat melewati berbagai dataran. +unit.cleroi.description = Menembak peluru ganda pada musuh. Menargetkan proyektil musuh terdekat dengan titik menara pertahanan. Dapat melewati berbagai dataran. +unit.anthicus.description = Menembak misil pelacak jarak jauh pada musuh. Dapat melewati berbagai dataran. +unit.tecta.description = Menembak misil plasma pelacak pada musuh. Melindungi diri sendiri dengan perisai searah. Dapat melewati berbagai dataran. +unit.collaris.description = Menembak pecahan artileri jarak jauh pada musuh. Dapat melewati berbagai dataran. +unit.elude.description = Menembak sepasang peluru pelacak pada musuh. Dapat melayang diatas permukaan cairan. +unit.avert.description = Menembak sepasang peluru yang memutar pada musuh. +unit.obviate.description = Menembak sepasang bola listrik yang memutar pada musuh. +unit.quell.description = Menembak misil pelacak jarak jauh pada musuh. Menahan bangunan perbaikan musuh. +unit.disrupt.description = Menembak misil pelacak penekanan jarak jauh pada musuh. Menahan bangunan perbaikan musuh. +unit.evoke.description = Membangun struktur untuk melindungi inti Bastion. Memperbaiki bangunan dengan sebuah sinar. Dapat membawa bangunan hingga ukuran 2x2. +unit.incite.description = Membangun struktur untuk melindungi inti Citadel. Memperbaiki bangunan dengan sebuah sinar. Dapat membawa bangunan hingga ukuran 2x2. +unit.emanate.description = Membangun struktur untuk melindungi inti Acropolis. Memperbaiki bangunan dengan sebuah sinar. Dapat membawa bangunan hingga ukuran 2x2 lst.read = Membaca angka dari memori sel yang dihubungkan. lst.write = Menulis angka ke memori sel yang dihubungkan. lst.print = Menambahkan teks ke daftar cetak.\nTidak dapat menampilkan apapun sampai [accent]Print Flush[] dipakai. -lst.format = Replace next placeholder in text buffer with a value.\nDoes not do anything if placeholder pattern is invalid.\nPlaceholder pattern: "{[accent]number 0-9[]}"\nExample:\n[accent]print "test {0}"\nformat "example" +lst.format = Ganti placeholder berikutnya di buffer teks dengan sebuah nilai.\nTidak melakukan apa pun jika pola placeholder tidak valid.\nPola placeholder: "{[accent]nomor 0-9[]}"\nContoh:\n[accent]print "test {0}"\nformat "example" lst.draw = Menambahkan perintah ke daftar gambar.\nTidak dapat menampilkan apapun sampai [accent]Draw Flush[] dipakai. lst.drawflush = Mengeluarkan perintah [accent]Draw[] dari daftar antrean untuk ditampilkan. lst.printflush = Mengeluarkan perintah [accent]Print[] dari daftar antrean untuk blok pesan. @@ -2349,13 +2364,13 @@ lst.jump = Loncati secara bersyarat ke pernyataan berikutnya. lst.unitbind = Menautkan ke unit jenis berikutnya, dan menyimpannya di [accent]@unit[]. lst.unitcontrol = Mengendalikan unit yang saat ini dihubungkan. lst.unitradar = Mendeteksi unit lain di sekitar unit yang saat ini dihubungkan. -lst.unitlocate = Mendeteksi sebuah tipe tertentu dari posisi/bangunan di mana saja di peta.\nMemerlukan unit yang dihubungkan. -lst.getblock = Mendapatkan data petak di lokasi manapun. -lst.setblock = Menentukan data petak di lokasi manapun. +lst.unitlocate = Mendeteksi sebuah tipe tertentu dari posisi/bangunan di mana saja di peta.\nMembutuhkan unit yang dihubungkan. +lst.getblock = Mendapatkan data ubin di lokasi manapun. +lst.setblock = Menentukan data ubin di lokasi manapun. lst.spawnunit = Munculkan unit pada tempat yang ditentukan. lst.applystatus = Menerapkan atau menghapus status efek dari sebuah unit. -lst.weathersense = Check if a type of weather is active. -lst.weatherset = Set the current state of a type of weather. +lst.weathersense = Periksa apakah jenis cuaca aktif. +lst.weatherset = Tetapkan suatu keadaan pada jenis cuaca saat ini. lst.spawnwave = Simulasikan adanya gelombang pada lokasi acak.\nTidak akan ditambahkan pada jumlah gelombang keseluruhan. lst.explosion = Membuat sebuah ledakan pada lokasi yang ditentukan. lst.setrate = Menentukan kecepatan eksekusi prosesor dalam instruksi per tick. @@ -2366,66 +2381,80 @@ lst.flushmessage = Tampilkan sebuah pesan di layar dari antrian teks.\nAkan menu lst.cutscene = Mengendalikan kamera pemain. lst.setflag = Menentukan global flag yang dapat dibaca oleh semua prosesor. lst.getflag = Periksa apakah ada global flag yang ditentukan. -lst.setprop = Sets a property of a unit or building. -lst.effect = Create a particle effect. -lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most. -lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position. -lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world. -lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction. -lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. +lst.setprop = Menetapkan properti unit atau bangunan. +lst.effect = Buat efek partikel. +lst.sync = Sinkronkan variabel di seluruh jaringan.\nHanya dipanggil paling banyak 10 kali per detik. +lst.playsound = Memutar suara. \nVolume dan kontrol suara dapat berupa nilai global, atau dihitung berdasarkan posisi. +lst.makemarker = Buat penanda logika baru di dunia.\nSebuah ID untuk mengidentifikasi penanda ini harus disediakan.\nPenanda saat ini dibatasi hingga 20.000 per dunia. +lst.setmarker = Tetapkan properti untuk penanda.\nID yang digunakan harus sama dengan instruksi Membuat Marker. +lst.localeprint = Tambahkan nilai properti peta lokal ke buffer teks.\nUntuk menyetel paket peta lokal di editor peta, cek [accent]Info Peta > Paket Local[].\nJika klien adalah perangkat seluler, coba cetak properti yang diakhiri dengan ".mobile" terlebih dahulu. +lst.setprop = Menetapkan properti unit atau bangunan. +lst.effect = Buat efek partikel. +lst.sync = Sinkronkan variabel di seluruh jaringan.\nHanya dipanggil paling banyak 10 kali per detik. +lst.playsound = Memutar suara. \nVolume dan kontrol suara dapat berupa nilai global, atau dihitung berdasarkan posisi. +lst.makemarker = Buat penanda logika baru di dunia.\nSebuah ID untuk mengidentifikasi penanda ini harus disediakan.\nPenanda saat ini dibatasi hingga 20.000 per dunia. +lst.setmarker = Tetapkan properti untuk penanda.\nID yang digunakan harus sama dengan instruksi Membuat Marker. +lst.localeprint = Tambahkan nilai properti peta lokal ke buffer teks.\nUntuk menyetel paket peta lokal di editor peta, cek [accent]Info Peta > Paket Local[].\nJika klien adalah perangkat seluler, coba cetak properti yang diakhiri dengan ".mobile" terlebih dahulu. + lglobal.false = 0 lglobal.true = 1 lglobal.null = null -lglobal.@pi = The mathematical constant pi (3.141...) -lglobal.@e = The mathematical constant e (2.718...) -lglobal.@degToRad = Multiply by this number to convert degrees to radians -lglobal.@radToDeg = Multiply by this number to convert radians to degrees -lglobal.@time = Playtime of current save, in milliseconds -lglobal.@tick = Playtime of current save, in ticks (1 second = 60 ticks) -lglobal.@second = Playtime of current save, in seconds -lglobal.@minute = Playtime of current save, in minutes -lglobal.@waveNumber = Current wave number, if waves are enabled -lglobal.@waveTime = Countdown timer for waves, in seconds -lglobal.@mapw = Map width in tiles -lglobal.@maph = Map height in tiles -lglobal.sectionMap = Map -lglobal.sectionGeneral = General -lglobal.sectionNetwork = Network/Clientside [World Processor Only] -lglobal.sectionProcessor = Processor -lglobal.sectionLookup = Lookup -lglobal.@this = The logic block executing the code -lglobal.@thisx = X coordinate of block executing the code -lglobal.@thisy = Y coordinate of block executing the code -lglobal.@links = Total number of blocks linked to this processors -lglobal.@ipt = Execution speed of the processor in instructions per tick (60 ticks = 1 second) -lglobal.@unitCount = Total number of types of unit content in the game; used with the lookup instruction -lglobal.@blockCount = Total number of types of block content in the game; used with the lookup instruction -lglobal.@itemCount = Total number of types of item content in the game; used with the lookup instruction -lglobal.@liquidCount = Total number of types of liquid content in the game; used with the lookup instruction -lglobal.@server = True if the code is running on a server or in singleplayer, false otherwise -lglobal.@client = True if the code is running on a client connected to a server -lglobal.@clientLocale = Locale of the client running the code. For example: en_US -lglobal.@clientUnit = Unit of client running the code -lglobal.@clientName = Player name of client running the code -lglobal.@clientTeam = Team ID of client running the code -lglobal.@clientMobile = True is the client running the code is on mobile, false otherwise +lglobal.@pi = Konstan matematikal pi (3.141...) +lglobal.@e = Konstan matematikal e (2.718...) +lglobal.@degToRad = Mengalikan dengan angka ini untuk mengubah derajat ke radian +lglobal.@radToDeg = Mengalikan dengan angka ini untuk mengubah radian ke derajat -logic.nounitbuild = [red]Logika unit membangun tidak diperbolehkan di sini. +lglobal.@time = Waktu main dari simpanan saat ini, dalam milidetik +lglobal.@tick = Waktu main dari simpanan saat ini, dalam tick (1 detik = 60 ticks) +lglobal.@second = Waktu main dari simpanan saat ini, dalam detik +lglobal.@minute = Waktu main dari simpanan saat ini, dalam menit +lglobal.@waveNumber = Angka gelombang saat ini, jika gelombang diaktifkan +lglobal.@waveTime = Pewaktu hitung mundur untuk gelombang, dalam detik +lglobal.@mapw = Lebar peta, dalam ubin. +lglobal.@maph = Tinggi peta, dalam ubin. + +lglobal.sectionMap = Peta +lglobal.sectionGeneral = Umum +lglobal.sectionNetwork = Jaringan/Sisi-klien [Hanya Prosesor Dunia] +lglobal.sectionProcessor = Prosesor +lglobal.sectionLookup = Pencarian + +lglobal.@this = Blok logika yang mengeksekusi suatu kode +lglobal.@thisx = Koordinat X dari blok yang mengeksekusi suatu kode +lglobal.@thisy = Koordinat Y dari blok yang mengeksekusi suatu kode +lglobal.@links = Jumlah total blok yang ditautkan ke prosesor ini +lglobal.@ipt = Kecepatan eksekusi dari prosesor dalam intruksi per tick (60 tick = 1 detik) + +lglobal.@unitCount = Jumlah total dari tipe pada konten unit di dalam game; digunakan dengan intruksi pencarian +lglobal.@blockCount = Jumlah total dari tipe pada konten blok di dalam game; digunakan dengan intruksi pencarian +lglobal.@itemCount = Jumlah total dari tipe pada konten item di dalam game; digunakan dengan intruksi pencarian +lglobal.@liquidCount = Jumlah total dari tipe pada konten cairan di dalam game; digunakan dengan intruksi pencarian + +lglobal.@server = True jika kode dijalankan di server atau di singleplayer, false sebaliknya +lglobal.@client = True jika kode dijalankan dalam sebuah klien disambungkan ke sebuah server + +lglobal.@clientLocale = Lokalisasi pada klien yang menjalankan suatu kode. Untuk contoh: en_US +lglobal.@clientUnit = Unit pada klien yang menjalankan suatu kode +lglobal.@clientName = Nama player pada klien yang menjalankan suatu kode +lglobal.@clientTeam = ID Tim pada klien yang menjalankan suatu kode +lglobal.@clientMobile = True jika kode dijalankan di server atau di singleplayer, false sebaliknya + +logic.nounitbuild = [red]Logika unit membangun tidak diizinkan. lenum.type = Bentuk dari bangunan/unit.\nMisalnya, untuk blok pengarah masa, akan tampil sebagai [accent]@router[].\nBukan string. lenum.shoot = Menembak pada suatu posisi yang ditentukan. lenum.shootp = Menembak pada unit/bangunan dengan prediksi kecepatan. lenum.config = Pengaturan bangunan, misalnya menyortir barang. lenum.enabled = Menentukan aktif tidaknya suatu blok. -laccess.currentammotype = Current ammo item/liquid of a turret. +laccess.currentammotype = Bahan amunisi/cairan menara saat ini. laccess.color = Warna lampu. laccess.controller = Pengendali unit. Jika dikendalikan prosesor, mengembalikan prosesor.\nJika unit dalam barisan, mengembalikan leader.\nSebaliknya, mengembalikan unit itu sendiri. laccess.dead = Menentukan apakah unit/bangunan itu hancur atau tidak ada lagi. laccess.controlled = Mengembalikan:\n[accent]@ctrlProcessor[] bila pengendali unit adalah prosesor\n[accent]@ctrlPlayer[] bila pengendali unit/bangunan adalah pemain\n[accent]@ctrlFormation[] bila unit dalam formasi\nSebaliknya, 0. laccess.progress = Memeriksa hasil kemajuan, 0 sampai 1.\nMengembalikan hasil laju produksi, pengisian ulang menara atau pembangunan. -laccess.speed = Kecepatan tertinggi dari suatu unit, dalam petak/detik. -laccess.id = ID of a unit/block/item/liquid.\nThis is the inverse of the lookup operation. +laccess.speed = Kecepatan tertinggi dari suatu unit, dalam ubin/detik. +laccess.id = ID suatu unit/blok/bahan/cairan.\nIni adalah kebalikan dari operasi pencarian. lcategory.unknown = Tak Diketahui lcategory.unknown.description = Instruksi tanpa kategori. @@ -2453,7 +2482,7 @@ graphicstype.poly = Mengisi sebuah poligon beraturan. graphicstype.linepoly = Menggambar sebuah garis poligon beraturan. graphicstype.triangle = Mengisi sebuah segitiga. graphicstype.image = Membentuk sebuah gambar dari suatu konten.\nMisal: [accent]@router[] atau [accent]@dagger[]. -graphicstype.print = Draws text from the print buffer.\nClears the print buffer. +graphicstype.print = Mengambar teks dari buffer cetak.\nHanya karakter ASCII yang diperbolehkan.\nMenghapus buffer cetak. lenum.always = Selalu benar. lenum.idiv = Pembagian integer. @@ -2473,7 +2502,7 @@ lenum.xor = Bitwise XOR. lenum.min = Minimum dari dua angka. lenum.max = Maksimum dari dua angka. lenum.angle = Sudut vektor dalam derajat. -lenum.anglediff = Absolute distance between two angles in degrees. +lenum.anglediff = Jarak mutlak antara dua sudut dalam derajat. lenum.len = Panjang vektor. lenum.sin = Sinus, dalam derajat. @@ -2485,7 +2514,7 @@ lenum.acos = Arc kosinus, dalam derajat. lenum.atan = Arc tangen, dalam derajat. #bukan typo, lihat 'daerah hasil fungsi' -lenum.rand = Angka Acak dalam jarak [0, value). +lenum.rand = Angka acak dalam jarak [0, value). lenum.log = Logaritma natural (ln). lenum.log10 = Logaritma basis 10. lenum.noise = Kebisingan simpleks 2D. @@ -2493,7 +2522,7 @@ lenum.abs = Nilai absolut. lenum.sqrt = Akar kuadrat. lenum.any = Unit apapun. -lenum.ally = Unit teman. +lenum.ally = Unit sekutu. lenum.attacker = Unit dengan senjata. lenum.enemy = Unit musuh. lenum.boss = Unit penjaga. @@ -2502,7 +2531,7 @@ lenum.ground = Unit darat. lenum.player = Unit yang dikendalikan oleh pemain. lenum.ore = Bahan tambang. -lenum.damaged = Bangunan teman yang rusak. +lenum.damaged = Bangunan sekutu yang rusak. lenum.spawn = Titik munculnya musuh.\nDapat berupa inti atau suatu posisi. lenum.building = Bangunan dalam suatu kumpulan. @@ -2513,7 +2542,7 @@ lenum.factory = Bangunan yang mengubah sumber daya. lenum.repair = Tempat perbaikan. lenum.battery = Baterai apapun. lenum.resupply = Titik pemasok ulang.\nHanya berguna ketika [accent]"Amunisi Unit"[] dihidupkan. -lenum.reactor = Reaktor Benturan/Thorium. +lenum.reactor = Reaktor Benturan/Torium. lenum.turret = Menara apapun. sensor.in = Bangunan/unit yang akan dilacak. @@ -2541,7 +2570,7 @@ unitlocate.building = Mengeluarkan variabel untuk bangunan yang terlihat. unitlocate.outx = Mengeluarkan koordinat X. unitlocate.outy = Mengeluarkan koordinat Y. unitlocate.group = Kumpulan bangunan yang akan dicari. -playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. +playsound.limit = Jika benar, cegah suara ini diputar \njika sudah diputar pada frame yang sama. lenum.idle = Tidak bergerak, namun tetap membangun/menambang.\nSifat awalan. lenum.stop = Berhenti bergerak/menambang/membangun. @@ -2549,7 +2578,7 @@ lenum.unbind = Mematikan kendali logika.\nLanjutkan A.I. standar. lenum.move = Bergerak ke posisi yang ditentukan. lenum.approach = Mendekati posisi dalam radius. lenum.pathfind = Mencari arah ke tempat munculnya musuh. -lenum.autopathfind = Automatically pathfinds to the nearest enemy core or drop point.\nThis is the same as standard wave enemy pathfinding. +lenum.autopathfind = Secara otomatis menemukan jalur ke inti atau zona pendaratan musuh terdekat.\nIni sama dengan pathfinding musuh pada gelombang standar. lenum.target = Menembak pada posisi. lenum.targetp = Menembak target dengan perkiraan kecepatan. lenum.itemdrop = Menjatuhkan bahan. @@ -2560,13 +2589,14 @@ lenum.payenter = Masuk/mendarat pada blok muatan yang saat ini unit sedang berdi lenum.flag = Tanda numerik unit. lenum.mine = Menambang pada sebuah posisi. lenum.build = Membangun sebuah sttruktur. -lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned. +lenum.getblock = Ambil tipe bangunan, lantai dan blok pada koordinat.\nUnit harus berada dalam jangkauan posisinya, jika tidak maka null akan dikembalikan. lenum.within = Memeriksa apakah unit di dekat suatu posisi. -lenum.boost = Mulai/berhenti mempercepat. -lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. -lenum.texture = Texture name straight from game's texture atlas (using kebab-case naming style).\nIf printFlush is set to true, consumes text buffer content as text argument. -lenum.texturesize = Size of texture in tiles. Zero value scales marker width to original texture's size. -lenum.autoscale = Whether to scale marker corresponding to player's zoom level. -lenum.posi = Indexed position, used for line and quad markers with index zero being the first position. -lenum.uvi = Texture's position ranging from zero to one, used for quad markers. -lenum.colori = Indexed position, used for line and quad markers with index zero being the first color. +lenum.boost = Mulai/berhenti memdorong. + +lenum.flushtext = Flush cetak konten buffer ke penanda, jika ada.\nJika pengambilan disetel ke true, coba ambil properti dari paket peta lokal atau paket game. +lenum.texture = Nama tekstur langsung dari atlas tekstur game (menggunakan gaya penamaan kebab-case).\nJika printFlush disetel ke true, gunakan konten buffer teks sebagai argumen teks. +lenum.texturesize = Ukuran tekstur pada ubin. Nilai nol mengskalakan lebar penanda ke ukuran tekstur asli. +lenum.autoscale = Apakah akan menskalakan penanda sesuai dengan tingkat zoom pemain. +lenum.posi = Posisi terindeks, digunakan untuk penanda garis dan segi empat dengan indeks nol sebagai posisi pertama. +lenum.uvi = Posisi tekstur mulai dari nol hingga satu, digunakan untuk penanda segi empat. +lenum.colori = Warna terindeks, digunakan untuk penanda garis dan segi empat dengan indeks nol sebagai warna pertama. From f5901b715fd58bc25df568a956ecf1734b346b0b Mon Sep 17 00:00:00 2001 From: Github Actions Date: Thu, 8 Aug 2024 11:07:29 +0000 Subject: [PATCH 056/437] Automatic bundle update --- core/assets/bundles/bundle_id_ID.properties | 113 +++++++++----------- 1 file changed, 52 insertions(+), 61 deletions(-) diff --git a/core/assets/bundles/bundle_id_ID.properties b/core/assets/bundles/bundle_id_ID.properties index 14237cbfa1..6a04aef2a1 100644 --- a/core/assets/bundles/bundle_id_ID.properties +++ b/core/assets/bundles/bundle_id_ID.properties @@ -129,7 +129,7 @@ committingchanges = Membuat Perubahan done = Selesai feature.unsupported = Perangkat Anda tidak mendukung fitur ini. -mods.initfailed = [red]\u26A0[] Proses Memuat Mindustry sebelumnya gagal untuk dimulai. Kemungkinan besar disebabkan oleh mod yang bermasalah.\n\nUntuk menghindari kesalahan berulang, [red]semua mod telah dinonaktifkan.[] +mods.initfailed = [red]⚠[] Proses Memuat Mindustry sebelumnya gagal untuk dimulai. Kemungkinan besar disebabkan oleh mod yang bermasalah.\n\nUntuk menghindari kesalahan berulang, [red]semua mod telah dinonaktifkan.[] mods = Mod mods.none = [lightgray]Tidak ada mod yang ditemukan! mods.guide = Panduan Modifikasi @@ -717,9 +717,9 @@ objective.enemyescelating = [accent]Produksi musuh meningkat dalam [lightgray]{ objective.enemyairunits = [accent]Produksi pasukan udara musuh dimulai dalam [lightgray]{0}[] objective.destroycore = [accent]Hancurkan Inti Musuh objective.command = [accent]Perintahkan Unit -objective.nuclearlaunch = [accent]\u26A0 Terdeteksi peluncuran nuklir: [lightgray]{0} +objective.nuclearlaunch = [accent]⚠ Terdeteksi peluncuran nuklir: [lightgray]{0} -announce.nuclearstrike = [red]\u26A0 SERANGAN NUKLIR \u26A0\n[lightgray]bangun inti cadangan sesegera mungkin +announce.nuclearstrike = [red]⚠ SERANGAN NUKLIR ⚠\n[lightgray]bangun inti cadangan sesegera mungkin loadout = Muatan resources = Sumber Daya @@ -754,7 +754,7 @@ weather.sandstorm.name = Badai Pasir weather.sporestorm.name = Badai Spora weather.fog.name = Kabut -campaign.playtime = \uF129 [lightgray]Waktu bermain di sektor: {0} +campaign.playtime = \uf129 [lightgray]Waktu bermain di sektor: {0} campaign.complete = [accent]Selamat.\n\nMusuh di {0} telah dikalahkan.\n[lightgray]Sektor terakhir telah dikuasai. sectorlist = Sektor @@ -1106,7 +1106,7 @@ bullet.reload = [stat]{0}[lightgray]x laju tembakan bullet.range = [stat]{0}[lightgray] jarak ubin unit.blocks = blok -unit.blockssquared = blok\u00B2 +unit.blockssquared = blok² unit.powersecond = unit tenaga/detik unit.tilessecond = ubin/detik unit.liquidsecond = unit zat cair/detik @@ -1250,16 +1250,15 @@ keybind.unit_stance_hold_fire.name = Posisi Unit: Tahan Tembakan keybind.unit_stance_pursue_target.name = Posisi Unit: Mengejar Target keybind.unit_stance_patrol.name = Posisi Unit: Patroli keybind.unit_stance_ram.name = Posisi Unit: Tabrak - -keybind.unit_command_move = Perintah Unit: Bergerak -keybind.unit_command_repair = Perintah Unit: Perbaiki -keybind.unit_command_rebuild = Perintah Unit: Bangun kembali -keybind.unit_command_assist = Perintah Unit: Ikuti Player -keybind.unit_command_mine = Perintah Unit: Menambang -keybind.unit_command_boost = Perintah Unit: Melayang -keybind.unit_command_load_units = Perintah Unit: Muat Unit -keybind.unit_command_load_blocks = Perintah Unit: Muat Blok -keybind.unit_command_unload_payload = Perintah Unit: Bongkar Muatan +keybind.unit_command_move.name = Unit Command: Move +keybind.unit_command_repair.name = Unit Command: Repair +keybind.unit_command_rebuild.name = Unit Command: Rebuild +keybind.unit_command_assist.name = Unit Command: Assist +keybind.unit_command_mine.name = Unit Command: Mine +keybind.unit_command_boost.name = Unit Command: Boost +keybind.unit_command_load_units.name = Unit Command: Load Units +keybind.unit_command_load_blocks.name = Unit Command: Load Blocks +keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Perintah Unit: Masuk ke Muatan keybind.rebuild_select.name = Membangun Wilayah Kembali @@ -1912,79 +1911,79 @@ hint.respawn = Untuk muncul kembali seperti awal, tekan [accent][[V][]. hint.respawn.mobile = Anda telah mengambil alih kendali dari sebuah unit atau bangunan. Untuk muncul kembali sebagai pesawat, [accent]ketuk avatar di kiri atas.[] hint.desktopPause = Tekan [accent][[Spasi][] untuk menjeda dan menghentikan jeda permainan. hint.breaking = [accent]Klik kanan[] dan tarik untuk menghancurkan blok. -hint.breaking.mobile = Aktifkan \uE817 [accent]palu[] di kanan bawah dan ketuk untuk menghancurkan blok.\n\nTahan jari Anda untuk beberapa saat lalu seret pada bagian yang dipilih untuk menghancurkannya. +hint.breaking.mobile = Aktifkan \ue817 [accent]palu[] di kanan bawah dan ketuk untuk menghancurkan blok.\n\nTahan jari Anda untuk beberapa saat lalu seret pada bagian yang dipilih untuk menghancurkannya. hint.blockInfo = Lihat informasi dari sebuah blok dengan memilihnya di [accent]menu bangun[], lalu pilih tombol [accent][[?][] di sebelah kanan. hint.derelict = Bangunan berwarna [accent]abu-abu[] adalah sisa-sisa dari markas lama yang hancur dan tidak dapat berfungsi kembali.\n\nBangunan tersebut dapat [accent]didekonstruksi[] menjadi sumber daya. -hint.research = Gunakan tombol \uE875 [accent]Penelitian[] untuk mempelajari teknologi baru. -hint.research.mobile = Gunakan tombol \uE875 [accent]Riset[] di \uE88C [accent]Menu[] untuk mempelajari teknologi baru. +hint.research = Gunakan tombol \ue875 [accent]Penelitian[] untuk mempelajari teknologi baru. +hint.research.mobile = Gunakan tombol \ue875 [accent]Riset[] di \ue88c [accent]Menu[] untuk mempelajari teknologi baru. hint.unitControl = Tekan dan Tahan [accent][[L-ctrl][] dan [accent]klik[] untuk mengendalikan unit atau turret sekutu. hint.unitControl.mobile = [accent][Ketuk dua kali[] untuk mengendalikan unit atau turret sekutu. hint.unitSelectControl = Untuk mengendalikan unit, masuki [accent]mode perintah[] dengan menahan tombol [accent]L-shift.[]\nDalam mode perintah, klik dan seret untuk memilih unit. [accent]Klik Kanan[] pada suatu lokasi atau target untuk memerintahkan unit. hint.unitSelectControl.mobile = Untuk mengendalikan unit, masuki [accent]mode perintah[] dengan menekan tombol [accent]perintah[] di pojok kanan bawah.\nDalam mode perintah, tekan layar untuk beberapa saat dan seret untuk memilih unit. ketuk pada suatu lokasi atau target untuk memerintahkan unit. -hint.launch = Ketika sumber daya sudah mencukupi, Anda dapat [accent]Meluncurkan Inti[] dengan memilih sektor terdekat dari \uE827 [accent]Peta[] di kanan bawah. -hint.launch.mobile = Ketika sumber daya sudah mencukupi, Anda bisa [accent]Meluncurkan Inti[] dengan memilih sektor terdekat dari \uE827 [accent]Peta[] dibagian \uE88C [accent]Menu[]. +hint.launch = Ketika sumber daya sudah mencukupi, Anda dapat [accent]Meluncurkan Inti[] dengan memilih sektor terdekat dari \ue827 [accent]Peta[] di kanan bawah. +hint.launch.mobile = Ketika sumber daya sudah mencukupi, Anda bisa [accent]Meluncurkan Inti[] dengan memilih sektor terdekat dari \ue827 [accent]Peta[] dibagian \ue88c [accent]Menu[]. hint.schematicSelect = Tahan tombol [accent][[F][] dan seret ke bangunan untuk menyalin bangunan.\n\n[accent][[Klik tengah][] untuk menyalin satu jenis blok. hint.rebuildSelect = Tahan tombol [accent][[B][] dan seret untuk memilih bagian blok yang hancur.\nIni akan membangunnya kembali secara otomatis. -hint.rebuildSelect.mobile = Pilih Tombol \uE874 salin, lalu ketuk tombol \uE80F bangun kembali dan seret untuk memilih blok yang hancur.\nIni akan membangun ulang secara otomatis. +hint.rebuildSelect.mobile = Pilih Tombol \ue874 salin, lalu ketuk tombol \ue80f bangun kembali dan seret untuk memilih blok yang hancur.\nIni akan membangun ulang secara otomatis. hint.conveyorPathfind = Tahan [accent][[L-Ctrl][] ketika menarik konveyor untuk membuat jalur secara otomatis. -hint.conveyorPathfind.mobile = Ketuk \uE844 [accent]mode diagonal[] dan tarik konveyor untuk membuat jalur secara otomatis. +hint.conveyorPathfind.mobile = Ketuk \ue844 [accent]mode diagonal[] dan tarik konveyor untuk membuat jalur secara otomatis. hint.boost = Tahan [accent][[L-Shift][] untuk terbang dengan unit.\n\nHanya beberapa unit darat yang memiliki pendorong. hint.payloadPickup = Tekan [accent][[[] untuk mengambil blok kecil atau unit. hint.payloadPickup.mobile = [accent]Ketuk dan tahan[] untuk mengambil blok kecil atau unit. hint.payloadDrop = Tekan [accent]][] untuk menurunkan muatan. hint.payloadDrop.mobile = [accent]Tekan dan tahan[] di lokasi yang kosong untuk menurunkan muatan. hint.waveFire = [accent]Wave[] yang terisi dengan air akan memadamkan air dalam jangkauannya. -hint.generator = \uF879 [accent]Generator Pembakar[] membakar batu bara dan menghasilkan energi ke blok yang berdekatan.\n\nTransmisi energi dapat diperluas dengan \uF87F [accent]Simpul Daya[]. -hint.guardian = Unit [accent]Penjaga[] adalah unit yang diperkuat. Amunisi lemah seperti [accent]Tembaga[] dan [accent]Timah[] [scarlet]tidak efektif[].\n\nGunakan menara yang lebih bagus atau amunisi yang lebih kuat seperti \uF835 [accent]Grafit[] \uF861Duo/\uF859Salvo untuk menghancurkan Penjaga. -hint.coreUpgrade = Inti dapat ditingkatkan dengan cara [accent]meletakkan Inti yang lebih besar di atasnya[].\n\nLetakan sebuah inti \uF868 [accent]Foundation[] diatas inti \uF869 [accent]Shard[]. Pastikan terdapat ruang kosong dari bangunan yang lain. +hint.generator = \uf879 [accent]Generator Pembakar[] membakar batu bara dan menghasilkan energi ke blok yang berdekatan.\n\nTransmisi energi dapat diperluas dengan \uf87f [accent]Simpul Daya[]. +hint.guardian = Unit [accent]Penjaga[] adalah unit yang diperkuat. Amunisi lemah seperti [accent]Tembaga[] dan [accent]Timah[] [scarlet]tidak efektif[].\n\nGunakan menara yang lebih bagus atau amunisi yang lebih kuat seperti \uf835 [accent]Grafit[] \uf861Duo/\uf859Salvo untuk menghancurkan Penjaga. +hint.coreUpgrade = Inti dapat ditingkatkan dengan cara [accent]meletakkan Inti yang lebih besar di atasnya[].\n\nLetakan sebuah inti \uf868 [accent]Foundation[] diatas inti \uf869 [accent]Shard[]. Pastikan terdapat ruang kosong dari bangunan yang lain. hint.presetLaunch = [accent]Zona pendaratan[] yang berwarna abu-abu, seperti [accent]Hutan yang Beku[], dapat diluncurkan dari mana saja. Sektor seperti ini tidak perlu diluncurkan dari sektor terdekat milik Anda.\n\n[accent]Sektor yang bernomor[], seperti yang ini, bersifat [accent]opsional[]. hint.presetDifficulty = Sektor ini memiliki [scarlet]tingkat ancaman musuh yang tinggi[].\nMeluncurkan ke sektor tersebut [accent]tidak disarankan[] tanpa teknologi yang sesuai dan persiapan yang matang. hint.coreIncinerate = Setelah inti penuh dengan suatu barang, barang yang sejenis akan [accent]dihanguskan[]. hint.factoryControl = Untuk menentukan [accent]tempat keluar[] unit pabrik, klik blok pabrik ketika dalam mode perintah, lalu klik kanan lokasi yang diinginkan.\nUnit yang diproduksi akan langsung bergerak ke tempat yang ditentukan. hint.factoryControl.mobile = Untuk menentukan [accent]tempat keluar[] unit pabrik, ketuk blok pabrik ketika dalam mode perintah, lalu ketuk lokasi yang diinginkan.\nUnit yang diproduksi akan langsung bergerak ke tempat yang ditentukan. -gz.mine = Bergerak di dekat \uF8C4 [accent]bijih tembaga[] di tanah dan klik untuk mulai menambang. -gz.mine.mobile = Bergerak di dekat \uF8C4 [accent]bijih tembaga[] di tanah dan ketuk untuk mulai menambang. -gz.research = Buka \uE875 pohon teknologi.\nRiset \uF870 [accent]Bor Mekanik[], lalu pilih dari menu di kanan bawah.\nKlik pada tambalan tembaga untuk menempatkannya. -gz.research.mobile = Buka \uE875 pohon teknologi.\nRiset \uF870 [accent]Bor Mekanik[], lalu pilih dari menu di kanan bawah.\nKetuk pada tambalan tembaga untuk menempatkannya.\n\nKetuk \uE800 [accent]tanda centang[] di kanan bawah untuk mengonfirmasi. -gz.conveyors = Riset dan tempatkan \uF896 [accent]konveyor[] untuk memindahkan sumber daya yang ditambang\ndari bor ke inti.\n\nKlik dan seret untuk menempatkan beberapa konveyor.\n[accent]Gulir[] untuk memutar arah konveyor -gz.conveyors.mobile = Riset dan tempatkan \uF896 [accent]konveyor[] untuk memindahkan sumber daya yang ditambang\ndari bor ke inti.\n\nTahan jari Anda sebentar dan seret untuk menempatkan beberapa konveyor. +gz.mine = Bergerak di dekat \uf8c4 [accent]bijih tembaga[] di tanah dan klik untuk mulai menambang. +gz.mine.mobile = Bergerak di dekat \uf8c4 [accent]bijih tembaga[] di tanah dan ketuk untuk mulai menambang. +gz.research = Buka \ue875 pohon teknologi.\nRiset \uf870 [accent]Bor Mekanik[], lalu pilih dari menu di kanan bawah.\nKlik pada tambalan tembaga untuk menempatkannya. +gz.research.mobile = Buka \ue875 pohon teknologi.\nRiset \uf870 [accent]Bor Mekanik[], lalu pilih dari menu di kanan bawah.\nKetuk pada tambalan tembaga untuk menempatkannya.\n\nKetuk \ue800 [accent]tanda centang[] di kanan bawah untuk mengonfirmasi. +gz.conveyors = Riset dan tempatkan \uf896 [accent]konveyor[] untuk memindahkan sumber daya yang ditambang\ndari bor ke inti.\n\nKlik dan seret untuk menempatkan beberapa konveyor.\n[accent]Gulir[] untuk memutar arah konveyor +gz.conveyors.mobile = Riset dan tempatkan \uf896 [accent]konveyor[] untuk memindahkan sumber daya yang ditambang\ndari bor ke inti.\n\nTahan jari Anda sebentar dan seret untuk menempatkan beberapa konveyor. gz.drills = Perluas operasi penambangan.\ntempatkan lebih banyak Bor Mekanik.\nTambang 100 tembaga. -gz.lead = \uF837 [accent]Timah[] adalah sumber daya lain yang umum digunakan.\nSiapkan bor untuk menambang timah. -gz.moveup = \uE804 Bergerak ke atas untuk objektif lebih lanjut. -gz.turrets = Riset dan tempatkan 2 menara \uF861 [accent]Duo[] untuk mempertahankan inti.\nMenara Duo membutuhkan \uF838 [accent]amunisi[] dari konveyor. +gz.lead = \uf837 [accent]Timah[] adalah sumber daya lain yang umum digunakan.\nSiapkan bor untuk menambang timah. +gz.moveup = \ue804 Bergerak ke atas untuk objektif lebih lanjut. +gz.turrets = Riset dan tempatkan 2 menara \uf861 [accent]Duo[] untuk mempertahankan inti.\nMenara Duo membutuhkan \uf838 [accent]amunisi[] dari konveyor. gz.duoammo = Suplai menara Duo dengan [accent]tembaga[], menggunakan konveyor. -gz.walls = [accent]Dinding[] dapat menahan kerusakan yang mencapai bangunan.\nTempatkan \uF8AE [accent]dinding tembaga[] di sekitar menara. +gz.walls = [accent]Dinding[] dapat menahan kerusakan yang mencapai bangunan.\nTempatkan \uf8ae [accent]dinding tembaga[] di sekitar menara. gz.defend = Musuh datang, bersiaplah untuk bertahan. -gz.aa = Unit terbang tidak dapat dengan mudah dibunuh dengan menara standar.Menara\n\uF860 [accent]Scatter[] memberikan anti-udara yang sangat baik, tetapi membutuhkan \uF837 [accent]timah[] sebagai amunisi. +gz.aa = Unit terbang tidak dapat dengan mudah dibunuh dengan menara standar.Menara\n\uf860 [accent]Scatter[] memberikan anti-udara yang sangat baik, tetapi membutuhkan \uf837 [accent]timah[] sebagai amunisi. gz.scatterammo = Suplai Menara Scatter dengan [accent]timah[], menggunakan konveyor. gz.supplyturret = [accent]Suplai Menara gz.zone1 = Ini adalah zona pendaratan musuh. gz.zone2 = Apa pun yang dibangun dalam radius tersebut akan hancur ketika gelombang mulai. -gz.zone3 = Gelombang akan dimulai sekarang.\Bersiap. +gz.zone3 = Gelombang akan dimulai sekarang.Bersiap. gz.finish = Bangun lebih banyak menara, tambang lebih banyak sumber daya,\ndan bertahan melawan semua gelombang [accent]untuk menaklukkan sektor[]. -onset.mine = Klik untuk menambang \uF748 [accent]berillium[] dari dinding.\n\nGunakan tombol [accent][[WASD] untuk bergerak. -onset.mine.mobile = Ketuk untuk menambang \uF748 [accent]berillium[] dari dinding. -onset.research = Buka \uE875 pohon teknologi.\nRiset, dan tempatkan \uF73e [accent]kondensor turbin[] di ventilasi.\nIni akan menghasilkan [accent]tenaga[]. -onset.bore = Riset dan tempatkan \uF741 [accent]bor plasma[].\nIni secara otomatis mengekstraksi sumber daya dari dinding. -onset.power = Untuk [accent]menyalakan[] bor plasma, riset dan tempatkan \uF73D [accent]simpul sinar[].\nHubungkan kondensor turbin ke bor plasma. -onset.ducts = Riset dan tempatkan \uF799 [accent]pipa[] untuk memindahkan sumber daya yang ditambang dari bor plasma ke inti.\nklik dan seret untuk menempatkan beberapa saluran.\n[accent]Gulir[] untuk memutar. -onset.ducts.mobile = Riset dan tempatkan \uF799 [accent]saluran[] untuk memindahkan sumber daya yang ditambang dari bor plasma ke inti.\n\nTahan jari Anda sebentar dan seret untuk menempatkan beberapa saluran. +onset.mine = Klik untuk menambang \uf748 [accent]berillium[] dari dinding.\n\nGunakan tombol [accent][[WASD] untuk bergerak. +onset.mine.mobile = Ketuk untuk menambang \uf748 [accent]berillium[] dari dinding. +onset.research = Buka \ue875 pohon teknologi.\nRiset, dan tempatkan \uf73e [accent]kondensor turbin[] di ventilasi.\nIni akan menghasilkan [accent]tenaga[]. +onset.bore = Riset dan tempatkan \uf741 [accent]bor plasma[].\nIni secara otomatis mengekstraksi sumber daya dari dinding. +onset.power = Untuk [accent]menyalakan[] bor plasma, riset dan tempatkan \uf73d [accent]simpul sinar[].\nHubungkan kondensor turbin ke bor plasma. +onset.ducts = Riset dan tempatkan \uf799 [accent]pipa[] untuk memindahkan sumber daya yang ditambang dari bor plasma ke inti.\nklik dan seret untuk menempatkan beberapa saluran.\n[accent]Gulir[] untuk memutar. +onset.ducts.mobile = Riset dan tempatkan \uf799 [accent]saluran[] untuk memindahkan sumber daya yang ditambang dari bor plasma ke inti.\n\nTahan jari Anda sebentar dan seret untuk menempatkan beberapa saluran. onset.moremine = Perluas operasi penambangan.\nTempatkan lebih banyak Bor Plasma dan gunakan simpul sinar dan pipa untuk menambangnya.\nTambang 200 berillium. -onset.graphite = Blok yang lebih kompleks membutuhkan \uF835 [accent]grafit[].\nSiapkan bor plasma untuk menambang grafit. -onset.research2 = Mulailah meneliti [accent]bangunan pabrik[].\nRiset \uF74D [accent]penghancur tebing[] dan \uF779 [accent]tungku listrik silikon[]. -onset.arcfurnace = Tungku Listrik Silikon membutuhkan \uF834 [accent]pasir[] dan \uF835 [accent]grafit[] untuk membuat \uF82F [accent]silikon[].\n[accent]Tenaga[] juga dibutuhkan. -onset.crusher = Gunakan \uF74D [accent]penghancur tebing[] untuk menambang pasir. -onset.fabricator = Gunakan [accent]unit[] untuk menjelajah peta, mempertahakan bangunan, dan menyerang musuh. Riset dan tempatkan \uF6A2 [accent]fabricator tank[]. +onset.graphite = Blok yang lebih kompleks membutuhkan \uf835 [accent]grafit[].\nSiapkan bor plasma untuk menambang grafit. +onset.research2 = Mulailah meneliti [accent]bangunan pabrik[].\nRiset \uf74d [accent]penghancur tebing[] dan \uf779 [accent]tungku listrik silikon[]. +onset.arcfurnace = Tungku Listrik Silikon membutuhkan \uf834 [accent]pasir[] dan \uf835 [accent]grafit[] untuk membuat \uf82f [accent]silikon[].\n[accent]Tenaga[] juga dibutuhkan. +onset.crusher = Gunakan \uf74d [accent]penghancur tebing[] untuk menambang pasir. +onset.fabricator = Gunakan [accent]unit[] untuk menjelajah peta, mempertahakan bangunan, dan menyerang musuh. Riset dan tempatkan \uf6a2 [accent]fabricator tank[]. onset.makeunit = Produksi sebuah unit.\nGunakan tombol "?" untuk melihat persyaratan pabrik yang dipilih. -onset.turrets = Unit sangatlah efektif, namun [accent]menara[] memberikan kemampuan pertahanan yang lebih baik jika digunakan secara efektif.\nTempatkan menara \uF6EB [accent]Breach[].\nMenara membutuhkan \uF748 [accent]amunisi[]. +onset.turrets = Unit sangatlah efektif, namun [accent]menara[] memberikan kemampuan pertahanan yang lebih baik jika digunakan secara efektif.\nTempatkan menara \uf6eb [accent]Breach[].\nMenara membutuhkan \uf748 [accent]amunisi[]. onset.turretammo = Suplai menara dengan [accent]amunisi berillium.[] -onset.walls = [accent]Dinding[] dapat mencegah kerusakan yang datang pada bangunan.\nTempatkan beberapa \uF6EE [accent]dinding berillium[] di sekitar menara. +onset.walls = [accent]Dinding[] dapat mencegah kerusakan yang datang pada bangunan.\nTempatkan beberapa \uf6ee [accent]dinding berillium[] di sekitar menara. onset.enemies = Musuh datang, bersiaplah untuk bertahan. onset.defenses = [accent]Siapkan pertahanan:[lightgray] {0} onset.attack = Musuh dalam keadaan rentan diserang. Luncurkan Serangan balik. -onset.cores = Inti baru dapat ditempatkan di [accent]ubin inti[].\nInti baru berfungsi sebagai pangkalan depan dan berbagi sumber daya dengan inti lainnya.\nTempatkan inti\uF725. +onset.cores = Inti baru dapat ditempatkan di [accent]ubin inti[].\nInti baru berfungsi sebagai pangkalan depan dan berbagi sumber daya dengan inti lainnya.\nTempatkan inti\uf725. onset.detect = Musuh akan dapat mendeteksi Anda dalam 2 menit.\nSiapkan pertahanan, penambangan, dan produksi. onset.commandmode = Tahan [accent]shift[] untuk masuk ke[accent]mode perintah[].\n[accent]Klik kiri dan seret[] untuk memilih unit.\n[accent]Klik kanan[] untuk memerintahkan unit yang dipilih untuk bergerak atau menyerang. onset.commandmode.mobile = Tekan [accent]tombol perintah[] untuk masuk ke [accent]mode perintah[].\nTekan dan tahan jari Anda, lalu [accent]seret[] untuk memilih unit.\n[accent]Ketuk[] untuk memerintahkan unit yang dipilih untuk bergerak atau menyerang. @@ -2038,7 +2037,7 @@ liquid.nitrogen.description = Digunakan dalam ekstraksi sumber daya, pembuatan g liquid.neoplasm.description = Produk sampingan biologis yang berbahaya dari reaktor Neoplasia. Sangat cepat menyebar ketika menyentuh blok yang mengandung air yang ada di dekatnya, dan merusak blok tersebut secara perlahan. Kental. liquid.neoplasm.details = Neoplasma. Sel sintetik Massa yang membelah dengan cepat dan tak terkendali dengan konsistensi seperti lumpur. Tahan panas. Sangat berbahaya bagi bangunan apa pun yang melibatkan air.\n\nTerlalu rumit dan tidak stabil untuk analisis standar. Potensi penerapan tidak diketahui. Dianjurkan untuk dibakar pada kolam lava. -block.derelict = \uF77E [lightgray]Derelik +block.derelict = \uf77e [lightgray]Derelik block.armored-conveyor.description = Memindahkan barang ke depan. Tidak dapat menerima masukan dari samping. block.illuminator.description = Memancarkan cahaya. block.message.description = Menyimpan pesan untuk komunikasi antar sekutu. @@ -2225,7 +2224,6 @@ block.impact-drill.description = Saat ditempatkan pada bijih, mengeluarkan bahan block.eruption-drill.description = Bor tumbukan yang ditingkatkan. Mampu menambang thorium. Membutuhkan hidrogen. block.reinforced-conduit.description = Memindahkan cairan ke depan. Tidak menerima masukkan ke samping. block.reinforced-liquid-router.description = Mendistribusikan cairan secara merata ke semua sisi. -block.reinforced-junction.description = Bertindak sebagai jembatan untuk dua saluran penyeberangan. block.reinforced-liquid-tank.description = Menyimpan sejumlah besar cairan. block.reinforced-liquid-container.description = Menyimpan jumlah cairan yang cukup besar. block.reinforced-bridge-conduit.description = Memindahkan cairan melintasi bangunan dan medan. @@ -2388,13 +2386,6 @@ lst.playsound = Memutar suara. \nVolume dan kontrol suara dapat berupa nilai glo lst.makemarker = Buat penanda logika baru di dunia.\nSebuah ID untuk mengidentifikasi penanda ini harus disediakan.\nPenanda saat ini dibatasi hingga 20.000 per dunia. lst.setmarker = Tetapkan properti untuk penanda.\nID yang digunakan harus sama dengan instruksi Membuat Marker. lst.localeprint = Tambahkan nilai properti peta lokal ke buffer teks.\nUntuk menyetel paket peta lokal di editor peta, cek [accent]Info Peta > Paket Local[].\nJika klien adalah perangkat seluler, coba cetak properti yang diakhiri dengan ".mobile" terlebih dahulu. -lst.setprop = Menetapkan properti unit atau bangunan. -lst.effect = Buat efek partikel. -lst.sync = Sinkronkan variabel di seluruh jaringan.\nHanya dipanggil paling banyak 10 kali per detik. -lst.playsound = Memutar suara. \nVolume dan kontrol suara dapat berupa nilai global, atau dihitung berdasarkan posisi. -lst.makemarker = Buat penanda logika baru di dunia.\nSebuah ID untuk mengidentifikasi penanda ini harus disediakan.\nPenanda saat ini dibatasi hingga 20.000 per dunia. -lst.setmarker = Tetapkan properti untuk penanda.\nID yang digunakan harus sama dengan instruksi Membuat Marker. -lst.localeprint = Tambahkan nilai properti peta lokal ke buffer teks.\nUntuk menyetel paket peta lokal di editor peta, cek [accent]Info Peta > Paket Local[].\nJika klien adalah perangkat seluler, coba cetak properti yang diakhiri dengan ".mobile" terlebih dahulu. lglobal.false = 0 lglobal.true = 1 From 98676af510b7dc170d6abb15c95d304dcb6ef96a Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 8 Aug 2024 07:17:02 -0400 Subject: [PATCH 057/437] Fixed #10101 --- core/src/mindustry/input/DesktopInput.java | 12 +++++++++--- .../defense/turrets/ContinuousLiquidTurret.java | 4 ++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/core/src/mindustry/input/DesktopInput.java b/core/src/mindustry/input/DesktopInput.java index 1fc15522d1..6aef02f339 100644 --- a/core/src/mindustry/input/DesktopInput.java +++ b/core/src/mindustry/input/DesktopInput.java @@ -108,6 +108,10 @@ public class DesktopInput extends InputHandler{ @Override public void drawTop(){ + if(cursorType != SystemCursor.arrow && scene.hasMouse()){ + graphics.cursor(cursorType = SystemCursor.arrow); + } + Lines.stroke(1f); int cursorX = tileX(Core.input.mouseX()); int cursorY = tileY(Core.input.mouseY()); @@ -446,6 +450,8 @@ public class DesktopInput extends InputHandler{ Tile cursor = tileAt(Core.input.mouseX(), Core.input.mouseY()); + cursorType = SystemCursor.arrow; + if(cursor != null){ if(cursor.build != null && cursor.build.interactable(player.team())){ cursorType = cursor.build.getCursor(); @@ -498,9 +504,9 @@ public class DesktopInput extends InputHandler{ if(!Core.scene.hasMouse()){ Core.graphics.cursor(cursorType); + }else{ + cursorType = SystemCursor.arrow; } - - cursorType = SystemCursor.arrow; } @Override @@ -668,7 +674,7 @@ public class DesktopInput extends InputHandler{ lastLineY = cursorY; mode = placing; updateLine(selectX, selectY); - }else if(plan != null && !plan.breaking && mode == none && !plan.initialized){ + }else if(plan != null && !plan.breaking && mode == none && !plan.initialized && plan.progress <= 0f){ splan = plan; }else if(plan != null && plan.breaking){ deleting = true; diff --git a/core/src/mindustry/world/blocks/defense/turrets/ContinuousLiquidTurret.java b/core/src/mindustry/world/blocks/defense/turrets/ContinuousLiquidTurret.java index ffd50d5b3d..0d80699d8b 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/ContinuousLiquidTurret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/ContinuousLiquidTurret.java @@ -73,9 +73,9 @@ public class ContinuousLiquidTurret extends ContinuousTurret{ @Override public void updateTile(){ - unit.ammo(unit.type().ammoCapacity * liquids.currentAmount() / liquidCapacity); - super.updateTile(); + + unit.ammo(unit.type().ammoCapacity * liquids.currentAmount() / liquidCapacity); } @Override From 9063fca2b5d0782900d392c7d50a88104f3cdf67 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 8 Aug 2024 19:57:29 -0400 Subject: [PATCH 058/437] Fixed crash related to uninitialized content --- core/src/mindustry/core/ContentLoader.java | 7 +++++++ core/src/mindustry/ctype/UnlockableContent.java | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/core/ContentLoader.java b/core/src/mindustry/core/ContentLoader.java index 7abaf35f29..1e2afa02de 100644 --- a/core/src/mindustry/core/ContentLoader.java +++ b/core/src/mindustry/core/ContentLoader.java @@ -171,6 +171,13 @@ public class ContentLoader{ public void handleMappableContent(MappableContent content){ if(contentNameMap[content.getContentType().ordinal()].containsKey(content.name)){ + var list = contentMap[content.getContentType().ordinal()]; + + //this method is only called when registering content, and after handleContent. + //If this is the last registered content, and it is invalid, make sure to remove it from the list to prevent invalid stuff from being registered + if(list.size > 0 && list.peek() == content){ + list.pop(); + } throw new IllegalArgumentException("Two content objects cannot have the same name! (issue: '" + content.name + "')"); } if(currentMod != null){ diff --git a/core/src/mindustry/ctype/UnlockableContent.java b/core/src/mindustry/ctype/UnlockableContent.java index 2692c28a94..c8eacc4f6a 100644 --- a/core/src/mindustry/ctype/UnlockableContent.java +++ b/core/src/mindustry/ctype/UnlockableContent.java @@ -64,7 +64,7 @@ public abstract class UnlockableContent extends MappableContent{ @Override public void loadIcon(){ fullIcon = - Core.atlas.find(fullOverride, + Core.atlas.find(fullOverride == null ? "" : fullOverride, Core.atlas.find(getContentType().name() + "-" + name + "-full", Core.atlas.find(name + "-full", Core.atlas.find(name, From 4f66323bb33abaf9129f4f955f1e0cea1e8053f1 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 8 Aug 2024 23:27:47 -0400 Subject: [PATCH 059/437] Cleanup --- core/src/mindustry/core/ContentLoader.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/core/ContentLoader.java b/core/src/mindustry/core/ContentLoader.java index 1e2afa02de..1005a4a2b1 100644 --- a/core/src/mindustry/core/ContentLoader.java +++ b/core/src/mindustry/core/ContentLoader.java @@ -81,7 +81,7 @@ public class ContentLoader{ for(int k = 0; k < contentMap.length; k++){ Log.debug("[@]: loaded @", ContentType.all[k].name(), contentMap[k].size); } - Log.debug("Total content loaded: @", Seq.with(ContentType.all).mapInt(c -> contentMap[c.ordinal()].size).sum()); + Log.debug("Total content loaded: @", Seq.with(ContentType.all).sum(c -> contentMap[c.ordinal()].size)); Log.debug("-------------------"); } From c4741c622fc0e411abfc4fc227e8867d3ef9eb51 Mon Sep 17 00:00:00 2001 From: Hahaa13 <108379326+Hahaa13@users.noreply.github.com> Date: Sat, 10 Aug 2024 18:20:54 +0000 Subject: [PATCH 060/437] Update servers_v7.json (#10105) --- servers_v7.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers_v7.json b/servers_v7.json index da2f7648c0..73180988e0 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -282,7 +282,7 @@ }, { "name": "AZDustry", - "address": ["8.245.23.28:25874"] + "address": ["148.251.77.197:2012"] }, { "name": "Erepulo", From c601918602dbccad73fc923d0413d66b14266ba1 Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 12 Aug 2024 16:46:51 -0400 Subject: [PATCH 061/437] Fixed GL2 SpriteBatch crash --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 1aee74fc4a..3f66c1d0b1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,4 +26,4 @@ org.gradle.caching=true org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.connectionTimeout=100000 android.enableR8.fullMode=false -archash=3f26197a0c +archash=6ecc39b0bf6e5484a69ab6cd960d1011637f5c59 From 796392301362952775d6cfe32c2834fbd9657b79 Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 14 Aug 2024 00:25:51 -0400 Subject: [PATCH 062/437] Fixed #10116 --- core/src/mindustry/entities/comp/BuildingComp.java | 4 ++++ core/src/mindustry/world/blocks/payloads/BuildPayload.java | 1 + 2 files changed, 5 insertions(+) diff --git a/core/src/mindustry/entities/comp/BuildingComp.java b/core/src/mindustry/entities/comp/BuildingComp.java index 067ebd0afd..309451907e 100644 --- a/core/src/mindustry/entities/comp/BuildingComp.java +++ b/core/src/mindustry/entities/comp/BuildingComp.java @@ -1370,6 +1370,10 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, /** Called when the block is destroyed. The tile is still intact at this stage. */ public void onDestroyed(){ + if(sound != null){ + sound.stop(); + } + float explosiveness = block.baseExplosiveness; float flammability = 0f; float power = 0f; diff --git a/core/src/mindustry/world/blocks/payloads/BuildPayload.java b/core/src/mindustry/world/blocks/payloads/BuildPayload.java index 90e37e9e16..57d0812e8c 100644 --- a/core/src/mindustry/world/blocks/payloads/BuildPayload.java +++ b/core/src/mindustry/world/blocks/payloads/BuildPayload.java @@ -53,6 +53,7 @@ public class BuildPayload implements Payload{ @Override public void destroyed(){ + build.dead = true; build.onDestroyed(); } From 2941fe83d2e5d2a9e60c67545e83b894a4940b60 Mon Sep 17 00:00:00 2001 From: abcxyzDustry <138785336+abcxyzDustry@users.noreply.github.com> Date: Wed, 14 Aug 2024 11:26:16 +0700 Subject: [PATCH 063/437] Update servers_v7.json (#10115) --- servers_v7.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers_v7.json b/servers_v7.json index 73180988e0..e7e4858d0c 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -246,7 +246,7 @@ }, { "name": "abcxyz remaster", - "address": ["144.76.57.59:30302", "23.88.73.88:16895"] + "address": ["144.76.57.59:35150"] }, { "name": "CroCraft Network", From 4f4370fa15cbee9c658c1e3453d21b366480c92d Mon Sep 17 00:00:00 2001 From: abcxyzDustry <138785336+abcxyzDustry@users.noreply.github.com> Date: Thu, 15 Aug 2024 15:36:27 +0700 Subject: [PATCH 064/437] Update servers_v7.json (#10120) --- servers_v7.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers_v7.json b/servers_v7.json index e7e4858d0c..fd33709eb3 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -246,7 +246,7 @@ }, { "name": "abcxyz remaster", - "address": ["144.76.57.59:35150"] + "address": ["144.76.57.59:35150", "23.88.73.88:11066", "23.88.73.88:9171"] }, { "name": "CroCraft Network", From b8c2d39c7156ac3b3f4761f5a0b69c134eccecd8 Mon Sep 17 00:00:00 2001 From: abcxyzDustry <138785336+abcxyzDustry@users.noreply.github.com> Date: Fri, 16 Aug 2024 13:21:44 +0700 Subject: [PATCH 065/437] Update servers_v7.json (#10123) --- servers_v7.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers_v7.json b/servers_v7.json index fd33709eb3..840f4cfca7 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -246,7 +246,7 @@ }, { "name": "abcxyz remaster", - "address": ["144.76.57.59:35150", "23.88.73.88:11066", "23.88.73.88:9171"] + "address": ["144.76.57.59:35150", "23.88.73.88:11066", "23.88.73.88:9171", "23.88.73.88:10911"] }, { "name": "CroCraft Network", From 5cc5bbece5f6da95a1a008dd53158709d1eb9306 Mon Sep 17 00:00:00 2001 From: Valeriy Date: Fri, 16 Aug 2024 19:13:19 +1000 Subject: [PATCH 066/437] Update servers_v7.json (#10118) * Update servers_v7.json * Update servers_v7.json --- servers_v7.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers_v7.json b/servers_v7.json index 840f4cfca7..6ce665d9ab 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -73,7 +73,7 @@ }, { "name": "SMoke of Anarchy", - "address": ["86.102.97.27"] + "address": ["mindustry.smokeofanarchy.ru", "mindustry.smokeofanarchy.ru:6568", "mindustry.smokeofanarchy.ru:6569", "mindustry.smokeofanarchy.ru:6570", "mindustry.smokeofanarchy.ru:6571", "mindustry.smokeofanarchy.ru:6572", "mindustry.smokeofanarchy.ru:6573", "mindustry.smokeofanarchy.ru:6574", "mindustry.smokeofanarchy.ru:6575", "mindustry.smokeofanarchy.ru:6576"] }, { "name": "Mindustry.pl", From f347dc4c84a44dff6f26aaf170d6e3f355eff22f Mon Sep 17 00:00:00 2001 From: camelStyleUser <124447863+camelStyleUser@users.noreply.github.com> Date: Fri, 16 Aug 2024 22:35:36 +0300 Subject: [PATCH 067/437] Update LAssembler.java (#10126) anook please dont forget --- core/src/mindustry/logic/LAssembler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/logic/LAssembler.java b/core/src/mindustry/logic/LAssembler.java index 37b79e845f..362754afe6 100644 --- a/core/src/mindustry/logic/LAssembler.java +++ b/core/src/mindustry/logic/LAssembler.java @@ -58,7 +58,7 @@ public class LAssembler{ /** @return a variable by name. * This may be a constant variable referring to a number or object. */ public LVar var(String symbol){ - LVar constVar = Vars.logicVars.get(symbol); + LVar constVar = Vars.logicVars.get(symbol, privileged); if(constVar != null) return constVar; symbol = symbol.trim(); From 8e8b99d42195bf66c1396e4559c6c75e661e2271 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 16 Aug 2024 16:00:47 -0400 Subject: [PATCH 068/437] Removed most usage of Scene#hit --- core/src/mindustry/core/UI.java | 2 +- core/src/mindustry/editor/MapView.java | 2 +- core/src/mindustry/logic/LCanvas.java | 2 +- core/src/mindustry/ui/Minimap.java | 2 +- core/src/mindustry/ui/dialogs/PlanetDialog.java | 2 +- core/src/mindustry/ui/dialogs/ResearchDialog.java | 2 +- core/src/mindustry/ui/fragments/BlockConfigFragment.java | 2 +- core/src/mindustry/ui/fragments/PlacementFragment.java | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/core/src/mindustry/core/UI.java b/core/src/mindustry/core/UI.java index d634e122b5..085f97d6d8 100644 --- a/core/src/mindustry/core/UI.java +++ b/core/src/mindustry/core/UI.java @@ -158,7 +158,7 @@ public class UI implements ApplicationListener, Loadable{ Core.scene.draw(); if(Core.input.keyTap(KeyCode.mouseLeft) && Core.scene.hasField()){ - Element e = Core.scene.hit(Core.input.mouseX(), Core.input.mouseY(), true); + Element e = Core.scene.getHoverElement(); if(!(e instanceof TextField)){ Core.scene.setKeyboardFocus(null); } diff --git a/core/src/mindustry/editor/MapView.java b/core/src/mindustry/editor/MapView.java index dd1c447f61..4131bc2bcd 100644 --- a/core/src/mindustry/editor/MapView.java +++ b/core/src/mindustry/editor/MapView.java @@ -329,7 +329,7 @@ public class MapView extends Element implements GestureListener{ return Core.scene != null && Core.scene.getKeyboardFocus() != null && Core.scene.getKeyboardFocus().isDescendantOf(ui.editor) && ui.editor.isShown() && tool == EditorTool.zoom && - Core.scene.hit(Core.input.mouse().x, Core.input.mouse().y, true) == this; + Core.scene.getHoverElement() == this; } @Override diff --git a/core/src/mindustry/logic/LCanvas.java b/core/src/mindustry/logic/LCanvas.java index c2fc83138b..dd3c0133cd 100644 --- a/core/src/mindustry/logic/LCanvas.java +++ b/core/src/mindustry/logic/LCanvas.java @@ -171,7 +171,7 @@ public class LCanvas extends Table{ } StatementElem checkHovered(){ - Element e = Core.scene.hit(Core.input.mouseX(), Core.input.mouseY(), true); + Element e = Core.scene.getHoverElement(); if(e != null){ while(e != null && !(e instanceof StatementElem)){ e = e.parent; diff --git a/core/src/mindustry/ui/Minimap.java b/core/src/mindustry/ui/Minimap.java index 99c7a32303..ee03fc2435 100644 --- a/core/src/mindustry/ui/Minimap.java +++ b/core/src/mindustry/ui/Minimap.java @@ -111,7 +111,7 @@ public class Minimap extends Table{ update(() -> { - Element e = Core.scene.hit(Core.input.mouseX(), Core.input.mouseY(), true); + Element e = Core.scene.getHoverElement(); if(e != null && e.isDescendantOf(this)){ requestScroll(); }else if(hasScroll()){ diff --git a/core/src/mindustry/ui/dialogs/PlanetDialog.java b/core/src/mindustry/ui/dialogs/PlanetDialog.java index c8f4fb44c2..6ef9bb6397 100644 --- a/core/src/mindustry/ui/dialogs/PlanetDialog.java +++ b/core/src/mindustry/ui/dialogs/PlanetDialog.java @@ -587,7 +587,7 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ @Override public void act(float delta){ - if(scene.getDialog() == PlanetDialog.this && !scene.hit(input.mouseX(), input.mouseY(), true).isDescendantOf(e -> e instanceof ScrollPane)){ + if(scene.getDialog() == PlanetDialog.this && (scene.getHoverElement() == null || !scene.getHoverElement().isDescendantOf(e -> e instanceof ScrollPane))){ scene.setScrollFocus(PlanetDialog.this); } diff --git a/core/src/mindustry/ui/dialogs/ResearchDialog.java b/core/src/mindustry/ui/dialogs/ResearchDialog.java index a251419f31..e601e02b5d 100644 --- a/core/src/mindustry/ui/dialogs/ResearchDialog.java +++ b/core/src/mindustry/ui/dialogs/ResearchDialog.java @@ -472,7 +472,7 @@ public class ResearchDialog extends BaseDialog{ if(mobile){ tapped(() -> { - Element e = Core.scene.hit(Core.input.mouseX(), Core.input.mouseY(), true); + Element e = Core.scene.getHoverElement(); if(e == this){ hoverNode = null; rebuild(); diff --git a/core/src/mindustry/ui/fragments/BlockConfigFragment.java b/core/src/mindustry/ui/fragments/BlockConfigFragment.java index 356c63fca4..79ad799a3a 100644 --- a/core/src/mindustry/ui/fragments/BlockConfigFragment.java +++ b/core/src/mindustry/ui/fragments/BlockConfigFragment.java @@ -67,7 +67,7 @@ public class BlockConfigFragment{ } public boolean hasConfigMouse(){ - Element e = Core.scene.hit(Core.input.mouseX(), Core.graphics.getHeight() - Core.input.mouseY(), true); + Element e = Core.scene.getHoverElement(); return e != null && (e == table || e.isDescendantOf(table)); } diff --git a/core/src/mindustry/ui/fragments/PlacementFragment.java b/core/src/mindustry/ui/fragments/PlacementFragment.java index 2c3e6ad524..8bbc475022 100644 --- a/core/src/mindustry/ui/fragments/PlacementFragment.java +++ b/core/src/mindustry/ui/fragments/PlacementFragment.java @@ -615,7 +615,7 @@ public class PlacementFragment{ blocksSelect.margin(4).marginTop(0); blockPane = blocksSelect.pane(blocks -> blockTable = blocks).height(194f).update(pane -> { if(pane.hasScroll()){ - Element result = Core.scene.hit(Core.input.mouseX(), Core.input.mouseY(), true); + Element result = Core.scene.getHoverElement(); if(result == null || !result.isDescendantOf(pane)){ Core.scene.setScrollFocus(null); } From 0b19379b8c982f752ae3e4a4f8d2ee6141716e28 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 16 Aug 2024 18:03:22 -0400 Subject: [PATCH 069/437] arc --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 3f66c1d0b1..d3dfb1a2c3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,4 +26,4 @@ org.gradle.caching=true org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.connectionTimeout=100000 android.enableR8.fullMode=false -archash=6ecc39b0bf6e5484a69ab6cd960d1011637f5c59 +archash=e9573c9fb06d64d996ab6666f65e6a0649992ebc From e4b1bde97472dff2b5af8640e98cfa38b4b717d6 Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 21 Aug 2024 03:21:31 -0400 Subject: [PATCH 070/437] Fixed #10132 --- core/src/mindustry/logic/LExecutor.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index f57cdffc9e..5c75ca95d2 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -555,7 +555,7 @@ public class LExecutor{ int address = position.numi(); Building from = target.building(); - if(from instanceof MemoryBuild mem && (exec.privileged || from.team == exec.team)){ + if(from instanceof MemoryBuild mem && (exec.privileged || (from.team == exec.team && !mem.block.privileged))){ output.setnum(address < 0 || address >= mem.memory.length ? 0 : mem.memory[address]); } } @@ -662,7 +662,7 @@ public class LExecutor{ LogicAI ai = null; if(base instanceof Ranged r && (exec.privileged || r.team() == exec.team) && - (base instanceof Building || (ai = UnitControlI.checkLogicAI(exec, base)) != null)){ //must be a building or a controllable unit + ((base instanceof Building b && (!b.block.privileged || exec.privileged)) || (ai = UnitControlI.checkLogicAI(exec, base)) != null)){ //must be a building or a controllable unit float range = r.range(); Healthc targeted; @@ -1050,7 +1050,7 @@ public class LExecutor{ @Override public void run(LExecutor exec){ - if(target.building() instanceof MessageBuild d && (d.team == exec.team || exec.privileged)){ + if(target.building() instanceof MessageBuild d && (exec.privileged || (d.team == exec.team && !d.block.privileged))){ d.message.setLength(0); d.message.append(exec.textBuffer, 0, Math.min(exec.textBuffer.length(), maxTextBuffer)); From 8cb6348c12a1b02a083418d02b207901bca00f87 Mon Sep 17 00:00:00 2001 From: camelStyleUser <124447863+camelStyleUser@users.noreply.github.com> Date: Wed, 21 Aug 2024 10:27:57 +0300 Subject: [PATCH 071/437] real (#10130) --- core/src/mindustry/logic/LAssembler.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/logic/LAssembler.java b/core/src/mindustry/logic/LAssembler.java index 362754afe6..8af2c4e87f 100644 --- a/core/src/mindustry/logic/LAssembler.java +++ b/core/src/mindustry/logic/LAssembler.java @@ -33,8 +33,9 @@ public class LAssembler{ Seq st = read(data, privileged); - asm.instructions = st.map(l -> l.build(asm)).retainAll(l -> l != null).toArray(LInstruction.class); asm.privileged = privileged; + + asm.instructions = st.map(l -> l.build(asm)).retainAll(l -> l != null).toArray(LInstruction.class); return asm; } From 7bab8d1e3d097b9c7e708671a2737b4a71cbbcec Mon Sep 17 00:00:00 2001 From: PolarStar <107398572+PoIarStar@users.noreply.github.com> Date: Wed, 21 Aug 2024 10:30:15 +0300 Subject: [PATCH 072/437] Update servers_v7.json (#10129) --- servers_v7.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers_v7.json b/servers_v7.json index 6ce665d9ab..f834888fa4 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -286,7 +286,7 @@ }, { "name": "Erepulo", - "address": ["95.84.198.97:5401", "95.84.198.97:5402", "95.84.198.97:5403", "95.84.198.97:5404", "95.84.198.97:2357", "95.84.198.97:5500"] + "address": ["95.84.198.97:5401", "95.84.198.97:5402", "95.84.198.97:5403", "95.84.198.97:5404", "95.84.198.97:2357", "95.84.198.97:5500", "199.83.103.251"] }, { "name": "MineCore", From 67fb9f6a9434a48eb81f13f5e53fbd7244986e89 Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 12 Jun 2024 21:07:54 -0400 Subject: [PATCH 073/437] Core database tabs --- core/assets/bundles/bundle.properties | 1 + core/src/mindustry/content/Blocks.java | 12 +++++ core/src/mindustry/content/TechTree.java | 5 ++ .../mindustry/ctype/UnlockableContent.java | 6 ++- core/src/mindustry/type/Planet.java | 4 ++ core/src/mindustry/type/StatusEffect.java | 2 + core/src/mindustry/type/UnitType.java | 2 + .../mindustry/ui/dialogs/DatabaseDialog.java | 53 ++++++++++++++++++- core/src/mindustry/world/Block.java | 2 + 9 files changed, 83 insertions(+), 4 deletions(-) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 97d7e72411..f78bf1406b 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -502,6 +502,7 @@ wavemode.counts = counts wavemode.totals = totals wavemode.health = health +all = All editor.default = [lightgray] details = Details... edit = Edit diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index dfd856d56a..912e1ecb09 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -5755,43 +5755,51 @@ public class Blocks{ requirements(Category.power, BuildVisibility.sandboxOnly, with()); powerProduction = 1000000f / 60f; alwaysUnlocked = true; + allDatabaseTabs = true; }}; powerVoid = new PowerVoid("power-void"){{ requirements(Category.power, BuildVisibility.sandboxOnly, with()); alwaysUnlocked = true; + allDatabaseTabs = true; }}; itemSource = new ItemSource("item-source"){{ requirements(Category.distribution, BuildVisibility.sandboxOnly, with()); alwaysUnlocked = true; + allDatabaseTabs = true; }}; itemVoid = new ItemVoid("item-void"){{ requirements(Category.distribution, BuildVisibility.sandboxOnly, with()); alwaysUnlocked = true; + allDatabaseTabs = true; }}; liquidSource = new LiquidSource("liquid-source"){{ requirements(Category.liquid, BuildVisibility.sandboxOnly, with()); alwaysUnlocked = true; + allDatabaseTabs = true; }}; liquidVoid = new LiquidVoid("liquid-void"){{ requirements(Category.liquid, BuildVisibility.sandboxOnly, with()); alwaysUnlocked = true; + allDatabaseTabs = true; }}; payloadSource = new PayloadSource("payload-source"){{ requirements(Category.units, BuildVisibility.sandboxOnly, with()); size = 5; alwaysUnlocked = true; + allDatabaseTabs = true; }}; payloadVoid = new PayloadVoid("payload-void"){{ requirements(Category.units, BuildVisibility.sandboxOnly, with()); size = 5; alwaysUnlocked = true; + allDatabaseTabs = true; }}; heatSource = new HeatProducer("heat-source"){{ @@ -5945,6 +5953,7 @@ public class Blocks{ size = 1; maxInstructionsPerTick = 1000; range = Float.MAX_VALUE; + allDatabaseTabs = true; }}; worldCell = new MemoryBlock("world-cell"){{ @@ -5954,6 +5963,7 @@ public class Blocks{ privileged = true; memoryCapacity = 128; forceDark = true; + allDatabaseTabs = true; }}; worldMessage = new MessageBlock("world-message"){{ @@ -5961,6 +5971,7 @@ public class Blocks{ targetable = false; privileged = true; + allDatabaseTabs = true; }}; worldSwitch = new SwitchBlock("world-switch"){{ @@ -5968,6 +5979,7 @@ public class Blocks{ targetable = false; privileged = true; + allDatabaseTabs = true; }}; //endregion diff --git a/core/src/mindustry/content/TechTree.java b/core/src/mindustry/content/TechTree.java index b782b8204d..e169c82845 100644 --- a/core/src/mindustry/content/TechTree.java +++ b/core/src/mindustry/content/TechTree.java @@ -139,6 +139,11 @@ public class TechTree{ } } + /** Adds the specified tab to all the content in this tree. */ + public void addDatabaseTab(UnlockableContent tab){ + each(node -> node.content.databaseTabs.add(tab)); + } + public Drawable icon(){ return icon == null ? new TextureRegionDrawable(content.uiIcon) : icon; } diff --git a/core/src/mindustry/ctype/UnlockableContent.java b/core/src/mindustry/ctype/UnlockableContent.java index c8eacc4f6a..55628afe0c 100644 --- a/core/src/mindustry/ctype/UnlockableContent.java +++ b/core/src/mindustry/ctype/UnlockableContent.java @@ -35,8 +35,6 @@ public abstract class UnlockableContent extends MappableContent{ public boolean hideDetails = true; /** If false, all icon generation is disabled for this content; createIcons is not called. */ public boolean generateIcons = true; - /** Special logic icon ID. */ - public int iconId = 0; /** How big the content appears in certain selection menus */ public float selectionSize = 24f; /** Icon of the content to use in UI. */ @@ -45,6 +43,10 @@ public abstract class UnlockableContent extends MappableContent{ public TextureRegion fullIcon; /** Override for the full icon. Useful for mod content with duplicate icons. Overrides any other full icon.*/ public String fullOverride = ""; + /** If true, this content will appear in all database tabs. */ + public boolean allDatabaseTabs = false; + /** Content - usually a planet - that dictates which database tab(s) this content will appear in. If nothing is defined, Serpulo is considered to be the "default" tab. */ + public ObjectSet databaseTabs = new ObjectSet<>(); /** The tech tree node for this content, if applicable. Null if not part of a tech tree. */ public @Nullable TechNode techNode; /** Tech nodes for all trees that this content is part of. */ diff --git a/core/src/mindustry/type/Planet.java b/core/src/mindustry/type/Planet.java index c25852881f..b8bd7e0646 100644 --- a/core/src/mindustry/type/Planet.java +++ b/core/src/mindustry/type/Planet.java @@ -338,6 +338,10 @@ public class Planet extends UnlockableContent{ techTree = TechTree.roots.find(n -> n.planet == this); } + if(techTree != null){ + techTree.addDatabaseTab(this); + } + for(Sector sector : sectors){ sector.loadInfo(); } diff --git a/core/src/mindustry/type/StatusEffect.java b/core/src/mindustry/type/StatusEffect.java index 79d0177b41..0e36616cd4 100644 --- a/core/src/mindustry/type/StatusEffect.java +++ b/core/src/mindustry/type/StatusEffect.java @@ -68,10 +68,12 @@ public class StatusEffect extends UnlockableContent{ public StatusEffect(String name){ super(name); + allDatabaseTabs = true; } @Override public void init(){ + super.init(); if(initblock != null){ initblock.run(); } diff --git a/core/src/mindustry/type/UnitType.java b/core/src/mindustry/type/UnitType.java index 3408948807..15ed66ce9c 100644 --- a/core/src/mindustry/type/UnitType.java +++ b/core/src/mindustry/type/UnitType.java @@ -675,6 +675,8 @@ public class UnitType extends UnlockableContent implements Senseable{ @CallSuper @Override public void init(){ + super.init(); + if(constructor == null) throw new IllegalArgumentException("no constructor set up for unit '" + name + "'"); Unit example = constructor.get(); diff --git a/core/src/mindustry/ui/dialogs/DatabaseDialog.java b/core/src/mindustry/ui/dialogs/DatabaseDialog.java index 9fdefa9e1c..a8ca315826 100644 --- a/core/src/mindustry/ui/dialogs/DatabaseDialog.java +++ b/core/src/mindustry/ui/dialogs/DatabaseDialog.java @@ -5,11 +5,13 @@ import arc.graphics.*; import arc.input.*; import arc.math.*; import arc.scene.event.*; +import arc.scene.style.*; import arc.scene.ui.*; import arc.scene.ui.layout.*; import arc.struct.*; import arc.util.*; import mindustry.*; +import mindustry.content.*; import mindustry.ctype.*; import mindustry.gen.*; import mindustry.graphics.*; @@ -24,16 +26,30 @@ public class DatabaseDialog extends BaseDialog{ private TextField search; private Table all = new Table(); + private @Nullable Seq allTabs; + //sun means "all content" + private UnlockableContent tab = Planets.sun; + public DatabaseDialog(){ super("@database"); shouldPause = true; addCloseButton(); - shown(this::rebuild); + shown(() -> { + checkTabList(); + if(state.isCampaign() && allTabs.contains(state.getPlanet())){ + tab = state.getPlanet(); + }else if(state.isGame() && state.rules.planet != null && allTabs.contains(state.rules.planet)){ + tab = state.rules.planet; + } + + rebuild(); + }); onResize(this::rebuild); all.margin(20).marginTop(0f); + cont.top(); cont.table(s -> { s.image(Icon.zoom).padRight(8); search = s.field(null, text -> rebuild()).growX().get(); @@ -43,18 +59,51 @@ public class DatabaseDialog extends BaseDialog{ cont.pane(all).scrollX(false); } + void checkTabList(){ + if(allTabs == null){ + Seq[] allContent = Vars.content.getContentMap(); + ObjectSet all = new ObjectSet<>(); + for(var contents : allContent){ + for(var content : contents){ + if(content instanceof UnlockableContent u){ + all.addAll(u.databaseTabs); + } + } + } + allTabs = all.toSeq().sort(); + allTabs.insert(0, Planets.sun); + } + } + void rebuild(){ + checkTabList(); + all.clear(); var text = search.getText().toLowerCase(); Seq[] allContent = Vars.content.getContentMap(); + all.table(t -> { + int i = 0; + for(var content : allTabs){ + t.button(content == Planets.sun ? Icon.eyeSmall : content instanceof Planet ? Icon.planet : new TextureRegionDrawable(content.uiIcon), Styles.clearNoneTogglei, iconMed, () -> { + tab = content; + rebuild(); + }).size(50f).checked(b -> tab == content).tooltip(content == Planets.sun ? "@all" : content.localizedName).with(but -> { + but.getStyle().imageUpColor = content instanceof Planet p ? p.iconColor : Color.white.cpy(); + }); + + if(++i % 10 == 0) t.row(); + } + }).row();; + for(int j = 0; j < allContent.length; j++){ ContentType type = ContentType.all[j]; Seq array = allContent[j] - .select(c -> c instanceof UnlockableContent u && !u.isHidden() && + .select(c -> c instanceof UnlockableContent u && !u.isHidden() && (tab == Planets.sun || u.allDatabaseTabs || (u.databaseTabs.isEmpty() && tab == Planets.serpulo) || u.databaseTabs.contains(tab)) && (text.isEmpty() || u.localizedName.toLowerCase().contains(text))).as(); + if(array.size == 0) continue; all.add("@content." + type.name() + ".name").growX().left().color(Pal.accent); diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index 1576cfb162..11cd6fee57 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -1168,6 +1168,8 @@ public class Block extends UnlockableContent implements Senseable{ @Override @CallSuper public void init(){ + super.init(); + //disable standard shadow if(customShadow){ hasShadow = false; From e1fb13847b2c797ec568c9e1a3fe2475f1d71603 Mon Sep 17 00:00:00 2001 From: Github Actions Date: Wed, 21 Aug 2024 19:26:41 +0000 Subject: [PATCH 074/437] Automatic bundle update --- core/assets/bundles/bundle_be.properties | 1 + core/assets/bundles/bundle_bg.properties | 1 + core/assets/bundles/bundle_ca.properties | 1 + core/assets/bundles/bundle_cs.properties | 1 + core/assets/bundles/bundle_da.properties | 1 + core/assets/bundles/bundle_de.properties | 1 + core/assets/bundles/bundle_es.properties | 1 + core/assets/bundles/bundle_et.properties | 1 + core/assets/bundles/bundle_eu.properties | 1 + core/assets/bundles/bundle_fi.properties | 1 + core/assets/bundles/bundle_fil.properties | 1 + core/assets/bundles/bundle_fr.properties | 1 + core/assets/bundles/bundle_hu.properties | 1 + core/assets/bundles/bundle_id_ID.properties | 1 + core/assets/bundles/bundle_it.properties | 1 + core/assets/bundles/bundle_ja.properties | 1 + core/assets/bundles/bundle_ko.properties | 1 + core/assets/bundles/bundle_lt.properties | 1 + core/assets/bundles/bundle_nl.properties | 1 + core/assets/bundles/bundle_nl_BE.properties | 1 + core/assets/bundles/bundle_pl.properties | 1 + core/assets/bundles/bundle_pt_BR.properties | 1 + core/assets/bundles/bundle_pt_PT.properties | 1 + core/assets/bundles/bundle_ro.properties | 1 + core/assets/bundles/bundle_ru.properties | 1 + core/assets/bundles/bundle_sr.properties | 1 + core/assets/bundles/bundle_sv.properties | 1 + core/assets/bundles/bundle_th.properties | 1 + core/assets/bundles/bundle_tk.properties | 1 + core/assets/bundles/bundle_tr.properties | 1 + core/assets/bundles/bundle_uk_UA.properties | 1 + core/assets/bundles/bundle_vi.properties | 1 + core/assets/bundles/bundle_zh_CN.properties | 1 + core/assets/bundles/bundle_zh_TW.properties | 1 + 34 files changed, 34 insertions(+) diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties index 96dcc89d10..ed06804542 100644 --- a/core/assets/bundles/bundle_be.properties +++ b/core/assets/bundles/bundle_be.properties @@ -489,6 +489,7 @@ waves.units.show = Паказаць Усё wavemode.counts = колькацсь адзінак wavemode.totals = усяго здароўя wavemode.health = здароўе +all = All editor.default = [lightgray]<Па змаўчанні> details = Падрабязнасці... diff --git a/core/assets/bundles/bundle_bg.properties b/core/assets/bundles/bundle_bg.properties index e26ee0698b..b3ad23c548 100644 --- a/core/assets/bundles/bundle_bg.properties +++ b/core/assets/bundles/bundle_bg.properties @@ -495,6 +495,7 @@ waves.units.show = Show All wavemode.counts = бройки wavemode.totals = общи бройки wavemode.health = точки живот +all = All editor.default = [lightgray]<Стандартно> details = Детайли... diff --git a/core/assets/bundles/bundle_ca.properties b/core/assets/bundles/bundle_ca.properties index b376c31b82..dd1a5c6546 100644 --- a/core/assets/bundles/bundle_ca.properties +++ b/core/assets/bundles/bundle_ca.properties @@ -495,6 +495,7 @@ waves.units.show = Mostra-les totes wavemode.counts = comptades wavemode.totals = totals wavemode.health = salut +all = All editor.default = [lightgray] details = Detalls diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index 071f78d584..069eee3479 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -496,6 +496,7 @@ waves.units.show = Zobrazit vše wavemode.counts = počty wavemode.totals = součty wavemode.health = zdraví +all = All editor.default = [lightgray][] details = Podrobnosti... diff --git a/core/assets/bundles/bundle_da.properties b/core/assets/bundles/bundle_da.properties index 427f92b696..e54d3b9f00 100644 --- a/core/assets/bundles/bundle_da.properties +++ b/core/assets/bundles/bundle_da.properties @@ -490,6 +490,7 @@ waves.units.show = Show All wavemode.counts = tal wavemode.totals = i alt wavemode.health = liv +all = All editor.default = [lightgray] details = Detaljer... diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index 891ba73ec7..bf5e187361 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -498,6 +498,7 @@ waves.units.show = Alle anzeigen wavemode.counts = Menge wavemode.totals = Gesamtmenge wavemode.health = Lebenspunkte +all = All editor.default = [lightgray] details = Details diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index 86abffb144..dd316e0383 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -495,6 +495,7 @@ waves.units.show = Mostrar todo wavemode.counts = limitadas wavemode.totals = totales wavemode.health = por salud +all = All editor.default = [lightgray] details = Detalles... diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties index 8e73c45c6f..23d5d3de70 100644 --- a/core/assets/bundles/bundle_et.properties +++ b/core/assets/bundles/bundle_et.properties @@ -490,6 +490,7 @@ waves.units.show = Show All wavemode.counts = counts wavemode.totals = totals wavemode.health = health +all = All editor.default = [lightgray] details = Üksikasjad... diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties index 86d65b0b6e..a3c3f2a694 100644 --- a/core/assets/bundles/bundle_eu.properties +++ b/core/assets/bundles/bundle_eu.properties @@ -492,6 +492,7 @@ waves.units.show = Show All wavemode.counts = counts wavemode.totals = totals wavemode.health = health +all = All editor.default = [lightgray] details = Xehetasunak... diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties index 083b228f34..83abf0d3a4 100644 --- a/core/assets/bundles/bundle_fi.properties +++ b/core/assets/bundles/bundle_fi.properties @@ -490,6 +490,7 @@ waves.units.show = Näytä kaikki wavemode.counts = lukumäärä wavemode.totals = yhteismäärä wavemode.health = elämäpisteet +all = All editor.default = [lightgray] details = Yksityiskohdat... diff --git a/core/assets/bundles/bundle_fil.properties b/core/assets/bundles/bundle_fil.properties index a46362d3bd..08dd5e1cb5 100644 --- a/core/assets/bundles/bundle_fil.properties +++ b/core/assets/bundles/bundle_fil.properties @@ -490,6 +490,7 @@ waves.units.show = Ipakita lahat wavemode.counts = counts wavemode.totals = totals wavemode.health = health +all = All editor.default = [lightgray] details = Details... diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index bf87912183..4b171c7fca 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -501,6 +501,7 @@ waves.units.show = Afficher tout wavemode.counts = compte wavemode.totals = totaux wavemode.health = santé +all = All editor.default = [lightgray] details = Détails... diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index 934dc7ceef..b779362412 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -501,6 +501,7 @@ waves.units.show = Összes megjelenítése wavemode.counts = típusokra bontva wavemode.totals = összesítés wavemode.health = életpontok +all = All editor.default = [lightgray] details = Részletek... diff --git a/core/assets/bundles/bundle_id_ID.properties b/core/assets/bundles/bundle_id_ID.properties index 6a04aef2a1..e0f2a925fc 100644 --- a/core/assets/bundles/bundle_id_ID.properties +++ b/core/assets/bundles/bundle_id_ID.properties @@ -501,6 +501,7 @@ waves.units.show = Perlihatkan Semua wavemode.counts = jumlah wavemode.totals = total wavemode.health = darah +all = All editor.default = [lightgray] details = Detail... diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties index 193b474fbb..7daf0b09cd 100644 --- a/core/assets/bundles/bundle_it.properties +++ b/core/assets/bundles/bundle_it.properties @@ -493,6 +493,7 @@ waves.units.show = Mostra tutto wavemode.counts = conteggi wavemode.totals = totali wavemode.health = salute +all = All editor.default = [lightgray] details = Dettagli... diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index 4fe44e98c2..0053e421af 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -495,6 +495,7 @@ waves.units.show = すべて表示 wavemode.counts = 数 wavemode.totals = 総数 wavemode.health = 総体力 +all = All editor.default = [lightgray]<デフォルト> details = 詳細... diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index 47ab2f186e..24ad30681f 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -494,6 +494,7 @@ waves.units.show = 모두 보이기 wavemode.counts = 기 wavemode.totals = 총 wavemode.health = 체력 +all = All editor.default = [lightgray]<기본값> details = 설명... diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties index 9086006d56..f79a675a1a 100644 --- a/core/assets/bundles/bundle_lt.properties +++ b/core/assets/bundles/bundle_lt.properties @@ -490,6 +490,7 @@ waves.units.show = Show All wavemode.counts = counts wavemode.totals = totals wavemode.health = health +all = All editor.default = [lightgray] details = Detaliau... diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index 62ec0c3317..283c7fb129 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -498,6 +498,7 @@ waves.units.show = Toon Alle wavemode.counts = telt wavemode.totals = totalen wavemode.health = levenspunten +all = All editor.default = [lightgray] details = Details... diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties index c5718e10ba..832f8dbb7e 100644 --- a/core/assets/bundles/bundle_nl_BE.properties +++ b/core/assets/bundles/bundle_nl_BE.properties @@ -490,6 +490,7 @@ waves.units.show = Show All wavemode.counts = counts wavemode.totals = totals wavemode.health = health +all = All editor.default = [lightgray] details = Details... diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index 5600cee5d0..0720a339ea 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -495,6 +495,7 @@ waves.units.show = Pokaż Wszystkie wavemode.counts = liczba wavemode.totals = sumy wavemode.health = życie +all = All editor.default = [lightgray] details = Detale... diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index e56f3c5f4f..fd27e0538c 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -495,6 +495,7 @@ waves.units.show = Mostrar tudo wavemode.counts = quantidade wavemode.totals = total wavemode.health = vida +all = All editor.default = [lightgray] details = Detalhes... diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties index 70235d6448..46ad16e2eb 100644 --- a/core/assets/bundles/bundle_pt_PT.properties +++ b/core/assets/bundles/bundle_pt_PT.properties @@ -490,6 +490,7 @@ waves.units.show = Show All wavemode.counts = counts wavemode.totals = totals wavemode.health = health +all = All editor.default = [lightgray] details = Detalhes... diff --git a/core/assets/bundles/bundle_ro.properties b/core/assets/bundles/bundle_ro.properties index d0ba3ca619..b5a11e3cce 100644 --- a/core/assets/bundles/bundle_ro.properties +++ b/core/assets/bundles/bundle_ro.properties @@ -495,6 +495,7 @@ waves.units.show = Vezi Tot wavemode.counts = numere wavemode.totals = totaluri wavemode.health = viață +all = All editor.default = [lightgray] details = Detalii... diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index 25a942f67f..e0d05c7252 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -495,6 +495,7 @@ waves.units.show = Показать все wavemode.counts = количество единиц wavemode.totals = всего единиц wavemode.health = всего прочности +all = All editor.default = [lightgray]<По умолчанию> details = Подробности… diff --git a/core/assets/bundles/bundle_sr.properties b/core/assets/bundles/bundle_sr.properties index f69083baaa..971cad09e4 100644 --- a/core/assets/bundles/bundle_sr.properties +++ b/core/assets/bundles/bundle_sr.properties @@ -495,6 +495,7 @@ waves.units.show = Pokaži Sve wavemode.counts = količina wavemode.totals = ukupno wavemode.health = snaga +all = All editor.default = [lightgray] details = Detalji... diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties index 836b95d5e8..0daa35f28f 100644 --- a/core/assets/bundles/bundle_sv.properties +++ b/core/assets/bundles/bundle_sv.properties @@ -490,6 +490,7 @@ waves.units.show = Show All wavemode.counts = counts wavemode.totals = totals wavemode.health = health +all = All editor.default = [lightgray] details = Details... diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index f31434de45..ee41ccf953 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -495,6 +495,7 @@ waves.units.show = แสดงทั้งหมด wavemode.counts = จำนวน wavemode.totals = ทั้งหมด wavemode.health = พลังชีวิต +all = All editor.default = [lightgray]<ค่าเริ่มต้น> details = รายละเอียด... diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index 66c5786774..c8a3ca2173 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -490,6 +490,7 @@ waves.units.show = Show All wavemode.counts = counts wavemode.totals = totals wavemode.health = health +all = All editor.default = [lightgray] details = Details... diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index b4c9f219c4..207a7a91a7 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -495,6 +495,7 @@ waves.units.show = Hepsini Göster wavemode.counts = miktarlar wavemode.totals = toplamlar wavemode.health = can +all = All editor.default = [lightgray] details = Detaylar... diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index 5e8ca2e415..d416bcb7be 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -497,6 +497,7 @@ waves.units.show = Показати все wavemode.counts = кількість wavemode.totals = усього wavemode.health = здоров’я +all = All editor.default = [lightgray]<За замовчуванням> details = Подробиці… diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties index ec0526feaa..0e04d120f1 100644 --- a/core/assets/bundles/bundle_vi.properties +++ b/core/assets/bundles/bundle_vi.properties @@ -501,6 +501,7 @@ waves.units.show = Hiện tất cả wavemode.counts = số lượng wavemode.totals = tổng số wavemode.health = độ bền +all = All editor.default = [lightgray] details = Chi tiết... diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index 09161c92df..8ac2aebb27 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -498,6 +498,7 @@ waves.units.show = 全部显示 wavemode.counts = 数目 wavemode.totals = 总数 wavemode.health = 生命值 +all = All editor.default = [lightgray]<默认> details = 详情… diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index 4427209c0f..63d3873294 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -495,6 +495,7 @@ waves.units.show = 全部顯示 wavemode.counts = 數量 wavemode.totals = 總數 wavemode.health = 生命值 +all = All editor.default = [lightgray](預設) details = 詳細資訊…… From 2dbd9e5ea951fd013622dd0fa6f7287bddcbc1ff Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 21 Aug 2024 18:01:16 -0400 Subject: [PATCH 075/437] Added shownPlanets for content --- core/src/mindustry/content/TechTree.java | 7 ++- .../mindustry/ctype/UnlockableContent.java | 30 ++++++++++- core/src/mindustry/mod/ContentParser.java | 50 ++++++++++++------- core/src/mindustry/type/Planet.java | 6 +++ .../mindustry/ui/dialogs/DatabaseDialog.java | 4 +- core/src/mindustry/world/Block.java | 6 ++- 6 files changed, 77 insertions(+), 26 deletions(-) diff --git a/core/src/mindustry/content/TechTree.java b/core/src/mindustry/content/TechTree.java index e169c82845..c4e05638b0 100644 --- a/core/src/mindustry/content/TechTree.java +++ b/core/src/mindustry/content/TechTree.java @@ -139,11 +139,16 @@ public class TechTree{ } } - /** Adds the specified tab to all the content in this tree. */ + /** Adds the specified database tab to all the content in this tree. */ public void addDatabaseTab(UnlockableContent tab){ each(node -> node.content.databaseTabs.add(tab)); } + /** Adds the specified planet to the shownPlanets of all the content in this tree. */ + public void addPlanet(Planet planet){ + each(node -> node.content.shownPlanets.add(planet)); + } + public Drawable icon(){ return icon == null ? new TextureRegionDrawable(content.uiIcon) : icon; } diff --git a/core/src/mindustry/ctype/UnlockableContent.java b/core/src/mindustry/ctype/UnlockableContent.java index 55628afe0c..e727e933fe 100644 --- a/core/src/mindustry/ctype/UnlockableContent.java +++ b/core/src/mindustry/ctype/UnlockableContent.java @@ -9,6 +9,7 @@ import arc.scene.ui.layout.*; import arc.struct.*; import arc.util.*; import mindustry.annotations.Annotations.*; +import mindustry.content.*; import mindustry.content.TechTree.*; import mindustry.game.EventType.*; import mindustry.graphics.*; @@ -45,14 +46,25 @@ public abstract class UnlockableContent extends MappableContent{ public String fullOverride = ""; /** If true, this content will appear in all database tabs. */ public boolean allDatabaseTabs = false; - /** Content - usually a planet - that dictates which database tab(s) this content will appear in. If nothing is defined, Serpulo is considered to be the "default" tab. */ + /** + * Planets that this content is made for. If empty, it is shown on all planets. + * Currently, this is only meaningful for blocks. + * */ + public ObjectSet shownPlanets = new ObjectSet<>(); + /** + * Content - usually a planet - that dictates which database tab(s) this content will appear in. + * If nothing is defined, it will use the values in shownPlanets. + * If shownPlanets is also empty, it will use Serpulo as the "default" tab. + * Note: When reading, use {@link #getDatabaseTabs} instead. + * */ public ObjectSet databaseTabs = new ObjectSet<>(); /** The tech tree node for this content, if applicable. Null if not part of a tech tree. */ public @Nullable TechNode techNode; /** Tech nodes for all trees that this content is part of. */ public Seq techNodes = new Seq<>(); - /** Unlock state. Loaded from settings. Do not modify outside of the constructor. */ + /** Unlock state. Loaded from settings. Do not modify outside the constructor. */ protected boolean unlocked; + private boolean initializedDatabaseTabs; public UnlockableContent(String name){ super(name); @@ -63,6 +75,20 @@ public abstract class UnlockableContent extends MappableContent{ this.unlocked = Core.settings != null && Core.settings.getBool(this.name + "-unlocked", false); } + public ObjectSet getDatabaseTabs(){ + //the problem here is that the planet hasn't initialized yet in init(), which means it hasn't assigned the shownPlanets yet. + //initialization has to be deferred to a getter + if(!initializedDatabaseTabs){ + initializedDatabaseTabs = true; + + databaseTabs.addAll(shownPlanets); + if(databaseTabs.isEmpty()){ + databaseTabs.add(Planets.serpulo); + } + } + return databaseTabs; + } + @Override public void loadIcon(){ fullIcon = diff --git a/core/src/mindustry/mod/ContentParser.java b/core/src/mindustry/mod/ContentParser.java index 19d033b01c..0cbcdbcea3 100644 --- a/core/src/mindustry/mod/ContentParser.java +++ b/core/src/mindustry/mod/ContentParser.java @@ -1097,29 +1097,41 @@ public class ContentParser{ } Field field = metadata.field; try{ - boolean isMap = ObjectMap.class.isAssignableFrom(field.getType()) || ObjectIntMap.class.isAssignableFrom(field.getType()) || ObjectFloatMap.class.isAssignableFrom(field.getType()); - boolean mergeMap = isMap && child.has("add") && child.get("add").isBoolean() && child.getBoolean("add", false); + if(child.isObject() && child.has("add") && (Seq.class.isAssignableFrom(field.getType()) || ObjectSet.class.isAssignableFrom(field.getType()))){ + Object readField = parser.readValue(field.getType(), metadata.elementType, child.get("add"), metadata.keyType); + Object fieldObj = field.get(object); - if(mergeMap){ - child.remove("add"); - } - - Object readField = parser.readValue(field.getType(), metadata.elementType, child, metadata.keyType); - Object fieldObj = field.get(object); - - //if a map has add: true, add its contents to the map instead - if(mergeMap && (fieldObj instanceof ObjectMap || fieldObj instanceof ObjectIntMap || fieldObj instanceof ObjectFloatMap)){ - if(field.get(object) instanceof ObjectMap baseMap){ - baseMap.putAll((ObjectMap)readField); - }else if(field.get(object) instanceof ObjectIntMap baseMap){ - baseMap.putAll((ObjectIntMap)readField); - }else if(field.get(object) instanceof ObjectFloatMap baseMap){ - baseMap.putAll((ObjectFloatMap)readField); + if(fieldObj instanceof ObjectSet set){ + set.addAll((ObjectSet)fieldObj); + }else if(fieldObj instanceof Seq seq){ + seq.addAll((Seq)fieldObj); + }else{ + throw new SerializationException("This should be impossible"); } }else{ - field.set(object, readField); - } + boolean isMap = ObjectMap.class.isAssignableFrom(field.getType()) || ObjectIntMap.class.isAssignableFrom(field.getType()) || ObjectFloatMap.class.isAssignableFrom(field.getType()); + boolean mergeMap = isMap && child.has("add") && child.get("add").isBoolean() && child.getBoolean("add", false); + if(mergeMap){ + child.remove("add"); + } + + Object readField = parser.readValue(field.getType(), metadata.elementType, child, metadata.keyType); + Object fieldObj = field.get(object); + + //if a map has add: true, add its contents to the map instead + if(mergeMap && (fieldObj instanceof ObjectMap || fieldObj instanceof ObjectIntMap || fieldObj instanceof ObjectFloatMap)){ + if(field.get(object) instanceof ObjectMap baseMap){ + baseMap.putAll((ObjectMap)readField); + }else if(field.get(object) instanceof ObjectIntMap baseMap){ + baseMap.putAll((ObjectIntMap)readField); + }else if(field.get(object) instanceof ObjectFloatMap baseMap){ + baseMap.putAll((ObjectFloatMap)readField); + } + }else{ + field.set(object, readField); + } + } }catch(IllegalAccessException ex){ throw new SerializationException("Error accessing field: " + field.getName() + " (" + type.getName() + ")", ex); }catch(SerializationException ex){ diff --git a/core/src/mindustry/type/Planet.java b/core/src/mindustry/type/Planet.java index b8bd7e0646..72e901d51e 100644 --- a/core/src/mindustry/type/Planet.java +++ b/core/src/mindustry/type/Planet.java @@ -150,6 +150,8 @@ public class Planet extends UnlockableContent{ public Seq hiddenItems = new Seq<>(); /** The only items available on this planet, if defined. */ public Seq itemWhitelist = new Seq<>(); + /** If true, all content in this planet's tech tree will be assigned this planet in their shownPlanets. */ + public boolean autoAssignPlanet = true; /** Content (usually planet-specific) that is unlocked upon landing here. */ public Seq unlockedOnLand = new Seq<>(); /** Loads the mesh. Clientside only. Defaults to a boring sphere mesh. */ @@ -340,6 +342,10 @@ public class Planet extends UnlockableContent{ if(techTree != null){ techTree.addDatabaseTab(this); + + if(autoAssignPlanet){ + techTree.addPlanet(this); + } } for(Sector sector : sectors){ diff --git a/core/src/mindustry/ui/dialogs/DatabaseDialog.java b/core/src/mindustry/ui/dialogs/DatabaseDialog.java index a8ca315826..1951bf61cf 100644 --- a/core/src/mindustry/ui/dialogs/DatabaseDialog.java +++ b/core/src/mindustry/ui/dialogs/DatabaseDialog.java @@ -66,7 +66,7 @@ public class DatabaseDialog extends BaseDialog{ for(var contents : allContent){ for(var content : contents){ if(content instanceof UnlockableContent u){ - all.addAll(u.databaseTabs); + all.addAll(u.getDatabaseTabs()); } } } @@ -101,7 +101,7 @@ public class DatabaseDialog extends BaseDialog{ ContentType type = ContentType.all[j]; Seq array = allContent[j] - .select(c -> c instanceof UnlockableContent u && !u.isHidden() && (tab == Planets.sun || u.allDatabaseTabs || (u.databaseTabs.isEmpty() && tab == Planets.serpulo) || u.databaseTabs.contains(tab)) && + .select(c -> c instanceof UnlockableContent u && !u.isHidden() && (tab == Planets.sun || u.allDatabaseTabs || u.getDatabaseTabs().contains(tab)) && (text.isEmpty() || u.localizedName.toLowerCase().contains(text))).as(); if(array.size == 0) continue; diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index 11cd6fee57..7b2f60c399 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -900,7 +900,7 @@ public class Block extends UnlockableContent implements Senseable{ } public boolean isVisibleOn(Planet planet){ - return !Structs.contains(requirements, i -> planet.hiddenItems.contains(i.item)); + return !Structs.contains(requirements, i -> planet.hiddenItems.contains(i.item)) && (shownPlanets.isEmpty() || shownPlanets.contains(planet)); } public boolean isPlaceable(){ @@ -948,7 +948,9 @@ public class Block extends UnlockableContent implements Senseable{ } public boolean environmentBuildable(){ - return (state.rules.hiddenBuildItems.isEmpty() || !Structs.contains(requirements, i -> state.rules.hiddenBuildItems.contains(i.item))); + return + (state.rules.hiddenBuildItems.isEmpty() || !Structs.contains(requirements, i -> state.rules.hiddenBuildItems.contains(i.item))) && + (state.getPlanet() == null || shownPlanets.isEmpty() || shownPlanets.contains(state.getPlanet())); } public boolean isStatic(){ From d8edf2334977af479c87ecdce29f7707fddf1d44 Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 21 Aug 2024 18:11:15 -0400 Subject: [PATCH 076/437] Fixed adding to seq/sets in JSON --- core/src/mindustry/mod/ContentParser.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/mod/ContentParser.java b/core/src/mindustry/mod/ContentParser.java index 0cbcdbcea3..0395da4e09 100644 --- a/core/src/mindustry/mod/ContentParser.java +++ b/core/src/mindustry/mod/ContentParser.java @@ -1102,9 +1102,9 @@ public class ContentParser{ Object fieldObj = field.get(object); if(fieldObj instanceof ObjectSet set){ - set.addAll((ObjectSet)fieldObj); + set.addAll((ObjectSet)readField); }else if(fieldObj instanceof Seq seq){ - seq.addAll((Seq)fieldObj); + seq.addAll((Seq)readField); }else{ throw new SerializationException("This should be impossible"); } From 6961417a87b84969569cee3526b54f676b6191c3 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 22 Aug 2024 02:22:18 -0400 Subject: [PATCH 077/437] arc --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index d3dfb1a2c3..7f29f90ebe 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,4 +26,4 @@ org.gradle.caching=true org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.connectionTimeout=100000 android.enableR8.fullMode=false -archash=e9573c9fb06d64d996ab6666f65e6a0649992ebc +archash=e020cc5626d824006d99d6f67932a7a9c442f4f9 From 074684e9353d3866ae7b23c1ce32c71e3434edc0 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 22 Aug 2024 03:21:24 -0400 Subject: [PATCH 078/437] Closes Anuken/Mindustry-Suggestions/issues/5184 --- core/src/mindustry/logic/LExecutor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index 5c75ca95d2..f9930a610b 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -1295,7 +1295,7 @@ public class LExecutor{ @Override public void run(LExecutor exec){ - Tile tile = world.tile(x.numi(), y.numi()); + Tile tile = world.tile(Mathf.round(x.numf()), Mathf.round(y.numf())); if(tile == null){ dest.setobj(null); }else{ From 8df50a67ecf2061770b9a00ff20a0d6b085bda7d Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 22 Aug 2024 04:51:37 -0400 Subject: [PATCH 079/437] Removed blacklist/whitelist-based planet item system --- core/src/mindustry/content/Planets.java | 2 -- core/src/mindustry/core/Logic.java | 1 - core/src/mindustry/core/World.java | 1 - .../mindustry/ctype/UnlockableContent.java | 4 ++++ core/src/mindustry/game/Rules.java | 7 +++++-- .../maps/generators/BaseGenerator.java | 2 +- core/src/mindustry/service/GameService.java | 8 ++++---- core/src/mindustry/type/Item.java | 13 +++--------- core/src/mindustry/type/Planet.java | 20 ++----------------- .../ui/dialogs/CustomRulesDialog.java | 13 +----------- .../ui/dialogs/LaunchLoadoutDialog.java | 8 ++++---- core/src/mindustry/world/Block.java | 4 ---- 12 files changed, 24 insertions(+), 59 deletions(-) diff --git a/core/src/mindustry/content/Planets.java b/core/src/mindustry/content/Planets.java index c5e4531e55..7eec1f10b0 100644 --- a/core/src/mindustry/content/Planets.java +++ b/core/src/mindustry/content/Planets.java @@ -65,7 +65,6 @@ public class Planets{ clearSectorOnLose = true; defaultCore = Blocks.coreBastion; iconColor = Color.valueOf("ff9266"); - hiddenItems.addAll(Items.serpuloItems).removeAll(Items.erekirItems); enemyBuildSpeedMultiplier = 0.4f; //TODO disallowed for now @@ -152,7 +151,6 @@ public class Planets{ startSector = 15; alwaysUnlocked = true; landCloudColor = Pal.spore.cpy().a(0.5f); - hiddenItems.addAll(Items.erekirItems).removeAll(Items.serpuloItems); }}; verilus = makeAsteroid("verlius", sun, Blocks.stoneWall, Blocks.iceWall, 0.5f, 12, 2f, gen -> { diff --git a/core/src/mindustry/core/Logic.java b/core/src/mindustry/core/Logic.java index 59f9b3cdcd..be096bf715 100644 --- a/core/src/mindustry/core/Logic.java +++ b/core/src/mindustry/core/Logic.java @@ -143,7 +143,6 @@ public class Logic implements ApplicationListener{ //set up hidden items state.rules.hiddenBuildItems.clear(); - state.rules.hiddenBuildItems.addAll(state.rules.sector.planet.hiddenItems); } //save settings diff --git a/core/src/mindustry/core/World.java b/core/src/mindustry/core/World.java index 92e3e46a8c..cac92019f6 100644 --- a/core/src/mindustry/core/World.java +++ b/core/src/mindustry/core/World.java @@ -322,7 +322,6 @@ public class World{ state.rules.env = sector.planet.defaultEnv; state.rules.planet = sector.planet; state.rules.hiddenBuildItems.clear(); - state.rules.hiddenBuildItems.addAll(sector.planet.hiddenItems); sector.planet.applyRules(state.rules); sector.info.resources = content.toSeq(); sector.info.resources.sort(Structs.comps(Structs.comparing(Content::getContentType), Structs.comparingInt(c -> c.id))); diff --git a/core/src/mindustry/ctype/UnlockableContent.java b/core/src/mindustry/ctype/UnlockableContent.java index e727e933fe..4b7157b05d 100644 --- a/core/src/mindustry/ctype/UnlockableContent.java +++ b/core/src/mindustry/ctype/UnlockableContent.java @@ -102,6 +102,10 @@ public abstract class UnlockableContent extends MappableContent{ uiIcon = Core.atlas.find(getContentType().name() + "-" + name + "-ui", fullIcon); } + public boolean isOnPlanet(@Nullable Planet planet){ + return planet == null || shownPlanets.isEmpty() || shownPlanets.contains(planet); + } + public int getLogicId(){ return logicVars.lookupLogicId(this); } diff --git a/core/src/mindustry/game/Rules.java b/core/src/mindustry/game/Rules.java index bd405c793e..c87e3311c0 100644 --- a/core/src/mindustry/game/Rules.java +++ b/core/src/mindustry/game/Rules.java @@ -153,8 +153,11 @@ public class Rules{ public ObjectSet revealedBlocks = new ObjectSet<>(); /** Unlocked content names. Only used in multiplayer when the campaign is enabled. */ public ObjectSet researched = new ObjectSet<>(); - /** Block containing these items as requirements are hidden. */ - public ObjectSet hiddenBuildItems = Items.erekirOnlyItems.asSet(); + /** + * Block containing these items as requirements are hidden. + * @deprecated May be removed in the near future. + * */ + public @Deprecated ObjectSet hiddenBuildItems = Items.erekirOnlyItems.asSet(); /** In-map objective executor. */ public MapObjectives objectives = new MapObjectives(); /** Flags set by objectives. Used in world processors. */ diff --git a/core/src/mindustry/maps/generators/BaseGenerator.java b/core/src/mindustry/maps/generators/BaseGenerator.java index 9671a83a42..71ccc7810c 100644 --- a/core/src/mindustry/maps/generators/BaseGenerator.java +++ b/core/src/mindustry/maps/generators/BaseGenerator.java @@ -34,7 +34,7 @@ public class BaseGenerator{ Seq wallsSmall = content.blocks().select(b -> b instanceof Wall && b.isVanilla() && b.size == size && !b.insulated && b.buildVisibility == BuildVisibility.shown && !(b instanceof Door) - && !(Structs.contains(b.requirements, i -> state.rules.hiddenBuildItems.contains(i.item)))); + && b.isOnPlanet(state.getPlanet())); wallsSmall.sort(b -> b.buildCost); return wallsSmall.getFrac(difficulty * 0.91f); } diff --git a/core/src/mindustry/service/GameService.java b/core/src/mindustry/service/GameService.java index ce008a3c88..fd4eb01a61 100644 --- a/core/src/mindustry/service/GameService.java +++ b/core/src/mindustry/service/GameService.java @@ -81,12 +81,12 @@ public class GameService{ } private void registerEvents(){ - allTransportSerpulo = content.blocks().select(b -> b.category == Category.distribution && b.isVisibleOn(Planets.serpulo) && b.isVanilla() && b.buildVisibility == BuildVisibility.shown).toArray(Block.class); - allTransportErekir = content.blocks().select(b -> b.category == Category.distribution && b.isVisibleOn(Planets.erekir) && b.isVanilla() && b.buildVisibility == BuildVisibility.shown).toArray(Block.class); + allTransportSerpulo = content.blocks().select(b -> b.category == Category.distribution && b.isOnPlanet(Planets.serpulo) && b.isVanilla() && b.buildVisibility == BuildVisibility.shown).toArray(Block.class); + allTransportErekir = content.blocks().select(b -> b.category == Category.distribution && b.isOnPlanet(Planets.erekir) && b.isVanilla() && b.buildVisibility == BuildVisibility.shown).toArray(Block.class); //cores are ignored since they're upgrades and can be skipped - allSerpuloBlocks = content.blocks().select(b -> b.synthetic() && b.isVisibleOn(Planets.serpulo) && b.isVanilla() && !(b instanceof CoreBlock) && b.buildVisibility == BuildVisibility.shown).toArray(Block.class); - allErekirBlocks = content.blocks().select(b -> b.synthetic() && b.isVisibleOn(Planets.erekir) && b.isVanilla() && !(b instanceof CoreBlock) && b.buildVisibility == BuildVisibility.shown).toArray(Block.class); + allSerpuloBlocks = content.blocks().select(b -> b.synthetic() && b.isOnPlanet(Planets.serpulo) && b.isVanilla() && !(b instanceof CoreBlock) && b.buildVisibility == BuildVisibility.shown).toArray(Block.class); + allErekirBlocks = content.blocks().select(b -> b.synthetic() && b.isOnPlanet(Planets.erekir) && b.isVanilla() && !(b instanceof CoreBlock) && b.buildVisibility == BuildVisibility.shown).toArray(Block.class); unitsBuilt = Core.settings.getJson("units-built" , ObjectSet.class, String.class, ObjectSet::new); blocksBuilt = Core.settings.getJson("blocks-built" , ObjectSet.class, String.class, ObjectSet::new); diff --git a/core/src/mindustry/type/Item.java b/core/src/mindustry/type/Item.java index 1c59b0d07a..3ba4dc9de5 100644 --- a/core/src/mindustry/type/Item.java +++ b/core/src/mindustry/type/Item.java @@ -47,8 +47,6 @@ public class Item extends UnlockableContent implements Senseable{ /** If true, this material is used by buildings. If false, this material will be incinerated in certain cores. */ public boolean buildable = true; public boolean hidden = false; - /** For mods. Adds this item to the listed planets' hidden items Seq. */ - public @Nullable Planet[] hiddenOnPlanets; public Item(String name, Color color){ super(name); @@ -60,14 +58,9 @@ public class Item extends UnlockableContent implements Senseable{ } @Override - public void init(){ - super.init(); - - if(hiddenOnPlanets != null){ - for(Planet planet : hiddenOnPlanets){ - planet.hiddenItems.add(this); - } - } + public boolean isOnPlanet(Planet planet){ + //hidden items should not appear on any planet's resource selection screen + return super.isOnPlanet(planet) && !hidden; } @Override diff --git a/core/src/mindustry/type/Planet.java b/core/src/mindustry/type/Planet.java index 72e901d51e..66309f71ac 100644 --- a/core/src/mindustry/type/Planet.java +++ b/core/src/mindustry/type/Planet.java @@ -15,7 +15,6 @@ import mindustry.content.*; import mindustry.content.TechTree.*; import mindustry.ctype.*; import mindustry.game.*; -import mindustry.game.EventType.ContentInitEvent; import mindustry.gen.*; import mindustry.graphics.*; import mindustry.graphics.g3d.*; @@ -146,10 +145,6 @@ public class Planet extends UnlockableContent{ public @Nullable TechNode techTree; /** TODO remove? Planets that can be launched to from this one. Made mutual in init(). */ public Seq launchCandidates = new Seq<>(); - /** Items not available on this planet. Left out for backwards compatibility. */ - public Seq hiddenItems = new Seq<>(); - /** The only items available on this planet, if defined. */ - public Seq itemWhitelist = new Seq<>(); /** If true, all content in this planet's tech tree will be assigned this planet in their shownPlanets. */ public boolean autoAssignPlanet = true; /** Content (usually planet-specific) that is unlocked upon landing here. */ @@ -181,13 +176,6 @@ public class Planet extends UnlockableContent{ parent.updateTotalRadius(); } - //if an item whitelist exists, add everything else not in that whitelist to hidden items - Events.on(ContentInitEvent.class, e -> { - if(itemWhitelist.size > 0){ - hiddenItems.addAll(content.items().select(i -> !itemWhitelist.contains(i))); - } - }); - //calculate solar system for(solarSystem = this; solarSystem.parent != null; solarSystem = solarSystem.parent); } @@ -219,7 +207,6 @@ public class Planet extends UnlockableContent{ rules.env = defaultEnv; rules.planet = this; rules.hiddenBuildItems.clear(); - rules.hiddenBuildItems.addAll(hiddenItems); } public @Nullable Sector getLastSector(){ @@ -340,12 +327,9 @@ public class Planet extends UnlockableContent{ techTree = TechTree.roots.find(n -> n.planet == this); } - if(techTree != null){ + if(techTree != null && autoAssignPlanet){ techTree.addDatabaseTab(this); - - if(autoAssignPlanet){ - techTree.addPlanet(this); - } + techTree.addPlanet(this); } for(Sector sector : sectors){ diff --git a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java index a277593dd3..a906d45509 100644 --- a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java +++ b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java @@ -229,19 +229,8 @@ public class CustomRulesDialog extends BaseDialog{ } number("@rules.dropzoneradius", false, f -> rules.dropZoneRadius = f * tilesize, () -> rules.dropZoneRadius / tilesize, () -> rules.waves); - category("resourcesbuilding"); - check("@rules.infiniteresources", b -> { - rules.infiniteResources = b; - - //reset to serpulo if any env was enabled - if(!b && rules.hiddenBuildItems.isEmpty()){ - rules.env = Planets.serpulo.defaultEnv; - rules.hiddenBuildItems.clear(); - rules.hiddenBuildItems.addAll(Planets.serpulo.hiddenItems); - setup(); - } - }, () -> rules.infiniteResources); + check("@rules.infiniteresources", b -> rules.infiniteResources = b, () -> rules.infiniteResources); check("@rules.onlydepositcore", b -> rules.onlyDepositCore = b, () -> rules.onlyDepositCore); check("@rules.derelictrepair", b -> rules.derelictRepair = b, () -> rules.derelictRepair); check("@rules.reactorexplosions", b -> rules.reactorExplosions = b, () -> rules.reactorExplosions); diff --git a/core/src/mindustry/ui/dialogs/LaunchLoadoutDialog.java b/core/src/mindustry/ui/dialogs/LaunchLoadoutDialog.java index 61d3358233..86ca0c8e16 100644 --- a/core/src/mindustry/ui/dialogs/LaunchLoadoutDialog.java +++ b/core/src/mindustry/ui/dialogs/LaunchLoadoutDialog.java @@ -48,7 +48,7 @@ public class LaunchLoadoutDialog extends BaseDialog{ ItemSeq launch = universe.getLaunchResources(); if(sector.planet.allowLaunchLoadout){ for(var item : content.items()){ - if(sector.planet.hiddenItems.contains(item)){ + if(!item.isOnPlanet(sector.planet)){ launch.set(item, 0); } } @@ -72,7 +72,7 @@ public class LaunchLoadoutDialog extends BaseDialog{ if(destination.preset != null){ var rules = destination.preset.generator.map.rules(); for(var stack : rules.loadout){ - if(!sector.planet.hiddenItems.contains(stack.item)){ + if(stack.item.isOnPlanet(sector.planet)){ resources.add(stack.item, stack.amount); } } @@ -136,7 +136,7 @@ public class LaunchLoadoutDialog extends BaseDialog{ ItemSeq realItems = sitems.copy(); selected.requirements().each(realItems::remove); - loadout.show(lastCapacity, realItems, out, i -> i.unlocked() && !sector.planet.hiddenItems.contains(i), out::clear, () -> {}, () -> { + loadout.show(lastCapacity, realItems, out, i -> i.unlocked() && i.isOnPlanet(sector.planet), out::clear, () -> {}, () -> { universe.updateLaunchResources(new ItemSeq(out)); update.run(); rebuildItems.run(); @@ -172,7 +172,7 @@ public class LaunchLoadoutDialog extends BaseDialog{ Cons handler = s -> { if(s.tiles.contains(tile -> !tile.block.supportsEnv(sector.planet.defaultEnv) || //make sure block can be built here. - (!sector.planet.hiddenItems.isEmpty() && Structs.contains(tile.block.requirements, stack -> sector.planet.hiddenItems.contains(stack.item))))){ + tile.block.isOnPlanet(sector.planet))){ return; } diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index 7b2f60c399..9c21acd8f8 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -899,10 +899,6 @@ public class Block extends UnlockableContent implements Senseable{ return !isHidden() && (state.rules.editor || (!state.rules.hideBannedBlocks || !state.rules.isBanned(this))); } - public boolean isVisibleOn(Planet planet){ - return !Structs.contains(requirements, i -> planet.hiddenItems.contains(i.item)) && (shownPlanets.isEmpty() || shownPlanets.contains(planet)); - } - public boolean isPlaceable(){ return isVisible() && (!state.rules.isBanned(this) || state.rules.editor) && supportsEnv(state.rules.env); } From 20ddbe9d289a7d880bb93cd2b4a1eda9fc268dfc Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 22 Aug 2024 04:54:53 -0400 Subject: [PATCH 080/437] Minor cleanup --- core/src/mindustry/service/GameService.java | 2 +- core/src/mindustry/world/blocks/ItemSelection.java | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/core/src/mindustry/service/GameService.java b/core/src/mindustry/service/GameService.java index fd4eb01a61..84495f5f77 100644 --- a/core/src/mindustry/service/GameService.java +++ b/core/src/mindustry/service/GameService.java @@ -526,7 +526,7 @@ public class GameService{ } for(Building entity : player.team().cores()){ - if(!content.items().contains(i -> !state.rules.hiddenBuildItems.contains(i) && entity.items.get(i) < entity.block.itemCapacity)){ + if(!content.items().contains(i -> i.isOnPlanet(state.getPlanet()) && entity.items.get(i) < entity.block.itemCapacity)){ fillCoreAllCampaign.complete(); break; } diff --git a/core/src/mindustry/world/blocks/ItemSelection.java b/core/src/mindustry/world/blocks/ItemSelection.java index 483ba28134..24e49706de 100644 --- a/core/src/mindustry/world/blocks/ItemSelection.java +++ b/core/src/mindustry/world/blocks/ItemSelection.java @@ -9,7 +9,6 @@ import arc.struct.*; import arc.util.*; import mindustry.ctype.*; import mindustry.gen.*; -import mindustry.type.*; import mindustry.ui.*; import mindustry.world.*; @@ -65,7 +64,7 @@ public class ItemSelection{ Seq list = items.select(u -> (text.isEmpty() || u.localizedName.toLowerCase().contains(text.toLowerCase()))); for(T item : list){ - if(!item.unlockedNow() || (item instanceof Item checkVisible && state.rules.hiddenBuildItems.contains(checkVisible)) || item.isHidden()) continue; + if(!item.unlockedNow() || !item.isOnPlanet(state.getPlanet()) || item.isHidden()) continue; ImageButton button = cont.button(Tex.whiteui, Styles.clearNoneTogglei, Mathf.clamp(item.selectionSize, 0f, 40f), () -> { if(closeSelect) control.input.config.hideConfig(); From 4cab03a1bad2818656694a1c39c50c04fdc796d4 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 22 Aug 2024 05:12:39 -0400 Subject: [PATCH 081/437] Rules.hiddenBuildItems removed --- core/src/mindustry/core/Logic.java | 3 --- core/src/mindustry/core/World.java | 1 - core/src/mindustry/game/Rules.java | 5 ----- core/src/mindustry/type/Planet.java | 1 - core/src/mindustry/ui/dialogs/CustomRulesDialog.java | 1 - core/src/mindustry/world/Block.java | 4 +--- 6 files changed, 1 insertion(+), 14 deletions(-) diff --git a/core/src/mindustry/core/Logic.java b/core/src/mindustry/core/Logic.java index be096bf715..d1c7c5ca60 100644 --- a/core/src/mindustry/core/Logic.java +++ b/core/src/mindustry/core/Logic.java @@ -140,9 +140,6 @@ public class Logic implements ApplicationListener{ core.items.set(item, core.block.itemCapacity); } } - - //set up hidden items - state.rules.hiddenBuildItems.clear(); } //save settings diff --git a/core/src/mindustry/core/World.java b/core/src/mindustry/core/World.java index cac92019f6..a9e858a0c7 100644 --- a/core/src/mindustry/core/World.java +++ b/core/src/mindustry/core/World.java @@ -321,7 +321,6 @@ public class World{ state.rules.cloudColor = sector.planet.landCloudColor; state.rules.env = sector.planet.defaultEnv; state.rules.planet = sector.planet; - state.rules.hiddenBuildItems.clear(); sector.planet.applyRules(state.rules); sector.info.resources = content.toSeq(); sector.info.resources.sort(Structs.comps(Structs.comparing(Content::getContentType), Structs.comparingInt(c -> c.id))); diff --git a/core/src/mindustry/game/Rules.java b/core/src/mindustry/game/Rules.java index c87e3311c0..6bb08a5245 100644 --- a/core/src/mindustry/game/Rules.java +++ b/core/src/mindustry/game/Rules.java @@ -153,11 +153,6 @@ public class Rules{ public ObjectSet revealedBlocks = new ObjectSet<>(); /** Unlocked content names. Only used in multiplayer when the campaign is enabled. */ public ObjectSet researched = new ObjectSet<>(); - /** - * Block containing these items as requirements are hidden. - * @deprecated May be removed in the near future. - * */ - public @Deprecated ObjectSet hiddenBuildItems = Items.erekirOnlyItems.asSet(); /** In-map objective executor. */ public MapObjectives objectives = new MapObjectives(); /** Flags set by objectives. Used in world processors. */ diff --git a/core/src/mindustry/type/Planet.java b/core/src/mindustry/type/Planet.java index 66309f71ac..2a11f41ff2 100644 --- a/core/src/mindustry/type/Planet.java +++ b/core/src/mindustry/type/Planet.java @@ -206,7 +206,6 @@ public class Planet extends UnlockableContent{ rules.attributes.add(defaultAttributes); rules.env = defaultEnv; rules.planet = this; - rules.hiddenBuildItems.clear(); } public @Nullable Sector getLastSector(){ diff --git a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java index a906d45509..6ae81fc338 100644 --- a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java +++ b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java @@ -338,7 +338,6 @@ public class CustomRulesDialog extends BaseDialog{ t.button("@rules.anyenv", style, () -> { rules.env = Vars.defaultEnv; - rules.hiddenBuildItems.clear(); rules.planet = Planets.sun; }).group(group).checked(b -> rules.planet == Planets.sun); }).left().fill(false).expand(false, false).row(); diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index 9c21acd8f8..64cc26af00 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -944,9 +944,7 @@ public class Block extends UnlockableContent implements Senseable{ } public boolean environmentBuildable(){ - return - (state.rules.hiddenBuildItems.isEmpty() || !Structs.contains(requirements, i -> state.rules.hiddenBuildItems.contains(i.item))) && - (state.getPlanet() == null || shownPlanets.isEmpty() || shownPlanets.contains(state.getPlanet())); + return isOnPlanet(state.getPlanet()); } public boolean isStatic(){ From f888b3b77e18f4c7ec281de7ac93cb4c131fa945 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 22 Aug 2024 06:54:07 -0400 Subject: [PATCH 082/437] Automatic planet detection for content --- core/src/mindustry/ClientLauncher.java | 4 ++- core/src/mindustry/content/Blocks.java | 31 ------------------- core/src/mindustry/core/ContentLoader.java | 1 + core/src/mindustry/core/GameState.java | 2 +- core/src/mindustry/ctype/Content.java | 3 ++ .../mindustry/ctype/UnlockableContent.java | 20 +++--------- .../mindustry/ui/dialogs/DatabaseDialog.java | 4 +-- .../ui/dialogs/LaunchLoadoutDialog.java | 2 +- core/src/mindustry/world/Block.java | 16 ++++++++++ 9 files changed, 32 insertions(+), 51 deletions(-) diff --git a/core/src/mindustry/ClientLauncher.java b/core/src/mindustry/ClientLauncher.java index 2e8d7396c1..c68681b7a9 100644 --- a/core/src/mindustry/ClientLauncher.java +++ b/core/src/mindustry/ClientLauncher.java @@ -62,7 +62,9 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform } long ram = Runtime.getRuntime().maxMemory(); boolean gb = ram >= 1024 * 1024 * 1024; - Log.info("[RAM] Available: @ @", Strings.fixed(gb ? ram / 1024f / 1024 / 1024f : ram / 1024f / 1024f, 1), gb ? "GB" : "MB"); + if(!OS.isIos){ + Log.info("[RAM] Available: @ @", Strings.fixed(gb ? ram / 1024f / 1024 / 1024f : ram / 1024f / 1024f, 1), gb ? "GB" : "MB"); + } Time.setDeltaProvider(() -> { float result = Core.graphics.getDeltaTime() * 60f; diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 912e1ecb09..03c6cf3f2e 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -1513,27 +1513,23 @@ public class Blocks{ requirements(Category.defense, with(Items.copper, 6)); health = 80 * wallHealthMultiplier; researchCostMultiplier = 0.1f; - envDisabled |= Env.scorching; }}; copperWallLarge = new Wall("copper-wall-large"){{ requirements(Category.defense, ItemStack.mult(copperWall.requirements, 4)); health = 80 * 4 * wallHealthMultiplier; size = 2; - envDisabled |= Env.scorching; }}; titaniumWall = new Wall("titanium-wall"){{ requirements(Category.defense, with(Items.titanium, 6)); health = 110 * wallHealthMultiplier; - envDisabled |= Env.scorching; }}; titaniumWallLarge = new Wall("titanium-wall-large"){{ requirements(Category.defense, ItemStack.mult(titaniumWall.requirements, 4)); health = 110 * wallHealthMultiplier * 4; size = 2; - envDisabled |= Env.scorching; }}; plastaniumWall = new Wall("plastanium-wall"){{ @@ -1542,7 +1538,6 @@ public class Blocks{ insulated = true; absorbLasers = true; schematicPriority = 10; - envDisabled |= Env.scorching; }}; plastaniumWallLarge = new Wall("plastanium-wall-large"){{ @@ -1552,20 +1547,17 @@ public class Blocks{ insulated = true; absorbLasers = true; schematicPriority = 10; - envDisabled |= Env.scorching; }}; thoriumWall = new Wall("thorium-wall"){{ requirements(Category.defense, with(Items.thorium, 6)); health = 200 * wallHealthMultiplier; - envDisabled |= Env.scorching; }}; thoriumWallLarge = new Wall("thorium-wall-large"){{ requirements(Category.defense, ItemStack.mult(thoriumWall.requirements, 4)); health = 200 * wallHealthMultiplier * 4; size = 2; - envDisabled |= Env.scorching; }}; phaseWall = new Wall("phase-wall"){{ @@ -1573,7 +1565,6 @@ public class Blocks{ health = 150 * wallHealthMultiplier; chanceDeflect = 10f; flashHit = true; - envDisabled |= Env.scorching; }}; phaseWallLarge = new Wall("phase-wall-large"){{ @@ -1582,14 +1573,12 @@ public class Blocks{ size = 2; chanceDeflect = 10f; flashHit = true; - envDisabled |= Env.scorching; }}; surgeWall = new Wall("surge-wall"){{ requirements(Category.defense, with(Items.surgeAlloy, 6)); health = 230 * wallHealthMultiplier; lightningChance = 0.05f; - envDisabled |= Env.scorching; }}; surgeWallLarge = new Wall("surge-wall-large"){{ @@ -1597,13 +1586,11 @@ public class Blocks{ health = 230 * 4 * wallHealthMultiplier; size = 2; lightningChance = 0.05f; - envDisabled |= Env.scorching; }}; door = new Door("door"){{ requirements(Category.defense, with(Items.titanium, 6, Items.silicon, 4)); health = 100 * wallHealthMultiplier; - envDisabled |= Env.scorching; }}; doorLarge = new Door("door-large"){{ @@ -1612,14 +1599,12 @@ public class Blocks{ closefx = Fx.doorcloselarge; health = 100 * 4 * wallHealthMultiplier; size = 2; - envDisabled |= Env.scorching; }}; scrapWall = new Wall("scrap-wall"){{ requirements(Category.defense, BuildVisibility.sandboxOnly, with(Items.scrap, 6)); health = 60 * wallHealthMultiplier; variants = 5; - envDisabled |= Env.scorching; }}; scrapWallLarge = new Wall("scrap-wall-large"){{ @@ -1627,7 +1612,6 @@ public class Blocks{ health = 60 * 4 * wallHealthMultiplier; size = 2; variants = 4; - envDisabled |= Env.scorching; }}; scrapWallHuge = new Wall("scrap-wall-huge"){{ @@ -1635,21 +1619,18 @@ public class Blocks{ health = 60 * 9 * wallHealthMultiplier; size = 3; variants = 3; - envDisabled |= Env.scorching; }}; scrapWallGigantic = new Wall("scrap-wall-gigantic"){{ requirements(Category.defense, BuildVisibility.sandboxOnly, ItemStack.mult(scrapWall.requirements, 16)); health = 60 * 16 * wallHealthMultiplier; size = 4; - envDisabled |= Env.scorching; }}; thruster = new Thruster("thruster"){{ requirements(Category.defense, BuildVisibility.sandboxOnly, with(Items.scrap, 96)); health = 55 * 16 * wallHealthMultiplier; size = 4; - envDisabled |= Env.scorching; }}; berylliumWall = new Wall("beryllium-wall"){{ @@ -5755,51 +5736,43 @@ public class Blocks{ requirements(Category.power, BuildVisibility.sandboxOnly, with()); powerProduction = 1000000f / 60f; alwaysUnlocked = true; - allDatabaseTabs = true; }}; powerVoid = new PowerVoid("power-void"){{ requirements(Category.power, BuildVisibility.sandboxOnly, with()); alwaysUnlocked = true; - allDatabaseTabs = true; }}; itemSource = new ItemSource("item-source"){{ requirements(Category.distribution, BuildVisibility.sandboxOnly, with()); alwaysUnlocked = true; - allDatabaseTabs = true; }}; itemVoid = new ItemVoid("item-void"){{ requirements(Category.distribution, BuildVisibility.sandboxOnly, with()); alwaysUnlocked = true; - allDatabaseTabs = true; }}; liquidSource = new LiquidSource("liquid-source"){{ requirements(Category.liquid, BuildVisibility.sandboxOnly, with()); alwaysUnlocked = true; - allDatabaseTabs = true; }}; liquidVoid = new LiquidVoid("liquid-void"){{ requirements(Category.liquid, BuildVisibility.sandboxOnly, with()); alwaysUnlocked = true; - allDatabaseTabs = true; }}; payloadSource = new PayloadSource("payload-source"){{ requirements(Category.units, BuildVisibility.sandboxOnly, with()); size = 5; alwaysUnlocked = true; - allDatabaseTabs = true; }}; payloadVoid = new PayloadVoid("payload-void"){{ requirements(Category.units, BuildVisibility.sandboxOnly, with()); size = 5; alwaysUnlocked = true; - allDatabaseTabs = true; }}; heatSource = new HeatProducer("heat-source"){{ @@ -5953,7 +5926,6 @@ public class Blocks{ size = 1; maxInstructionsPerTick = 1000; range = Float.MAX_VALUE; - allDatabaseTabs = true; }}; worldCell = new MemoryBlock("world-cell"){{ @@ -5963,7 +5935,6 @@ public class Blocks{ privileged = true; memoryCapacity = 128; forceDark = true; - allDatabaseTabs = true; }}; worldMessage = new MessageBlock("world-message"){{ @@ -5971,7 +5942,6 @@ public class Blocks{ targetable = false; privileged = true; - allDatabaseTabs = true; }}; worldSwitch = new SwitchBlock("world-switch"){{ @@ -5979,7 +5949,6 @@ public class Blocks{ targetable = false; privileged = true; - allDatabaseTabs = true; }}; //endregion diff --git a/core/src/mindustry/core/ContentLoader.java b/core/src/mindustry/core/ContentLoader.java index 1e2afa02de..5dfa75d09a 100644 --- a/core/src/mindustry/core/ContentLoader.java +++ b/core/src/mindustry/core/ContentLoader.java @@ -88,6 +88,7 @@ public class ContentLoader{ /** Calls Content#init() on everything. Use only after all modules have been created. */ public void init(){ initialize(Content::init); + initialize(Content::postInit); if(logicVars != null) logicVars.init(); Events.fire(new ContentInitEvent()); } diff --git a/core/src/mindustry/core/GameState.java b/core/src/mindustry/core/GameState.java index 17d3b3bfe9..1066e6d2a6 100644 --- a/core/src/mindustry/core/GameState.java +++ b/core/src/mindustry/core/GameState.java @@ -78,7 +78,7 @@ public class GameState{ } public @Nullable Planet getPlanet(){ - return rules.sector != null ? rules.sector.planet : null; + return rules.sector != null ? rules.sector.planet : rules.planet; } public boolean isEditor(){ diff --git a/core/src/mindustry/ctype/Content.java b/core/src/mindustry/ctype/Content.java index 58a75b4dc8..97816377e2 100644 --- a/core/src/mindustry/ctype/Content.java +++ b/core/src/mindustry/ctype/Content.java @@ -25,6 +25,9 @@ public abstract class Content implements Comparable{ /** Called after all content and modules are created. Do not use to load regions or texture data! */ public void init(){} + /** Called after init(). */ + public void postInit(){} + /** * Called after all content is created, only on non-headless versions. * Use for loading regions or other image data. diff --git a/core/src/mindustry/ctype/UnlockableContent.java b/core/src/mindustry/ctype/UnlockableContent.java index 4b7157b05d..6cbe82e287 100644 --- a/core/src/mindustry/ctype/UnlockableContent.java +++ b/core/src/mindustry/ctype/UnlockableContent.java @@ -9,7 +9,6 @@ import arc.scene.ui.layout.*; import arc.struct.*; import arc.util.*; import mindustry.annotations.Annotations.*; -import mindustry.content.*; import mindustry.content.TechTree.*; import mindustry.game.EventType.*; import mindustry.graphics.*; @@ -47,7 +46,7 @@ public abstract class UnlockableContent extends MappableContent{ /** If true, this content will appear in all database tabs. */ public boolean allDatabaseTabs = false; /** - * Planets that this content is made for. If empty, it is shown on all planets. + * Planets that this content is made for. If empty, a planet is decided based on item requirements. * Currently, this is only meaningful for blocks. * */ public ObjectSet shownPlanets = new ObjectSet<>(); @@ -55,7 +54,6 @@ public abstract class UnlockableContent extends MappableContent{ * Content - usually a planet - that dictates which database tab(s) this content will appear in. * If nothing is defined, it will use the values in shownPlanets. * If shownPlanets is also empty, it will use Serpulo as the "default" tab. - * Note: When reading, use {@link #getDatabaseTabs} instead. * */ public ObjectSet databaseTabs = new ObjectSet<>(); /** The tech tree node for this content, if applicable. Null if not part of a tech tree. */ @@ -64,7 +62,6 @@ public abstract class UnlockableContent extends MappableContent{ public Seq techNodes = new Seq<>(); /** Unlock state. Loaded from settings. Do not modify outside the constructor. */ protected boolean unlocked; - private boolean initializedDatabaseTabs; public UnlockableContent(String name){ super(name); @@ -75,18 +72,11 @@ public abstract class UnlockableContent extends MappableContent{ this.unlocked = Core.settings != null && Core.settings.getBool(this.name + "-unlocked", false); } - public ObjectSet getDatabaseTabs(){ - //the problem here is that the planet hasn't initialized yet in init(), which means it hasn't assigned the shownPlanets yet. - //initialization has to be deferred to a getter - if(!initializedDatabaseTabs){ - initializedDatabaseTabs = true; + @Override + public void postInit(){ + super.postInit(); - databaseTabs.addAll(shownPlanets); - if(databaseTabs.isEmpty()){ - databaseTabs.add(Planets.serpulo); - } - } - return databaseTabs; + databaseTabs.addAll(shownPlanets); } @Override diff --git a/core/src/mindustry/ui/dialogs/DatabaseDialog.java b/core/src/mindustry/ui/dialogs/DatabaseDialog.java index 1951bf61cf..e8ffe18778 100644 --- a/core/src/mindustry/ui/dialogs/DatabaseDialog.java +++ b/core/src/mindustry/ui/dialogs/DatabaseDialog.java @@ -66,7 +66,7 @@ public class DatabaseDialog extends BaseDialog{ for(var contents : allContent){ for(var content : contents){ if(content instanceof UnlockableContent u){ - all.addAll(u.getDatabaseTabs()); + all.addAll(u.databaseTabs); } } } @@ -101,7 +101,7 @@ public class DatabaseDialog extends BaseDialog{ ContentType type = ContentType.all[j]; Seq array = allContent[j] - .select(c -> c instanceof UnlockableContent u && !u.isHidden() && (tab == Planets.sun || u.allDatabaseTabs || u.getDatabaseTabs().contains(tab)) && + .select(c -> c instanceof UnlockableContent u && !u.isHidden() && (tab == Planets.sun || u.allDatabaseTabs || u.databaseTabs.contains(tab)) && (text.isEmpty() || u.localizedName.toLowerCase().contains(text))).as(); if(array.size == 0) continue; diff --git a/core/src/mindustry/ui/dialogs/LaunchLoadoutDialog.java b/core/src/mindustry/ui/dialogs/LaunchLoadoutDialog.java index 86ca0c8e16..1b309e05b6 100644 --- a/core/src/mindustry/ui/dialogs/LaunchLoadoutDialog.java +++ b/core/src/mindustry/ui/dialogs/LaunchLoadoutDialog.java @@ -172,7 +172,7 @@ public class LaunchLoadoutDialog extends BaseDialog{ Cons handler = s -> { if(s.tiles.contains(tile -> !tile.block.supportsEnv(sector.planet.defaultEnv) || //make sure block can be built here. - tile.block.isOnPlanet(sector.planet))){ + !tile.block.isOnPlanet(sector.planet))){ return; } diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index 64cc26af00..c324ae4978 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -1160,6 +1160,22 @@ public class Block extends UnlockableContent implements Senseable{ return buildVisibility != BuildVisibility.hidden; } + @Override + public void postInit(){ + //usually, an empty set of planets is a configuration error. auto-assign based on requirements + if(requirements.length > 0 && shownPlanets.isEmpty()){ + for(Planet planet : content.planets()){ + if(planet.isLandable()){ + if(!Structs.contains(requirements, s -> !s.item.isOnPlanet(planet))){ + shownPlanets.add(planet); + } + } + } + } + + super.postInit(); + } + /** Called after all blocks are created. */ @Override @CallSuper From 587c23605a6c9f1c06f7e16347122ea64fc35ece Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 22 Aug 2024 07:18:38 -0400 Subject: [PATCH 083/437] Added temporary no-op fields for item/planet hidden items --- core/src/mindustry/type/Item.java | 4 ++++ core/src/mindustry/type/Planet.java | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/core/src/mindustry/type/Item.java b/core/src/mindustry/type/Item.java index 3ba4dc9de5..5d81790919 100644 --- a/core/src/mindustry/type/Item.java +++ b/core/src/mindustry/type/Item.java @@ -48,6 +48,10 @@ public class Item extends UnlockableContent implements Senseable{ public boolean buildable = true; public boolean hidden = false; + /** @deprecated no-op, do not use. */ + @Deprecated + public @Nullable Planet[] hiddenOnPlanets; + public Item(String name, Color color){ super(name); this.color = color; diff --git a/core/src/mindustry/type/Planet.java b/core/src/mindustry/type/Planet.java index 2a11f41ff2..047a288093 100644 --- a/core/src/mindustry/type/Planet.java +++ b/core/src/mindustry/type/Planet.java @@ -154,6 +154,11 @@ public class Planet extends UnlockableContent{ /** Loads the planet grid outline mesh. Clientside only. */ public Prov gridMeshLoader = () -> MeshBuilder.buildPlanetGrid(grid, outlineColor, outlineRad * radius); + /** @deprecated no-op, do not use. */ + @Deprecated + public Seq itemWhitelist = new Seq<>(), hiddenItems = new Seq<>(); + + public Planet(String name, Planet parent, float radius){ super(name); From 8b2b5d4682afaa618efa8b47675f4daea977c1e3 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 23 Aug 2024 01:06:28 -0400 Subject: [PATCH 084/437] Shields retain broken state when replaced --- .../mindustry/world/blocks/defense/ForceProjector.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/core/src/mindustry/world/blocks/defense/ForceProjector.java b/core/src/mindustry/world/blocks/defense/ForceProjector.java index 74f0fd4860..58ee4b6c2d 100644 --- a/core/src/mindustry/world/blocks/defense/ForceProjector.java +++ b/core/src/mindustry/world/blocks/defense/ForceProjector.java @@ -6,6 +6,7 @@ import arc.graphics.*; import arc.graphics.g2d.*; import arc.math.*; import arc.math.geom.*; +import arc.struct.*; import arc.util.*; import arc.util.io.*; import mindustry.annotations.Annotations.*; @@ -266,6 +267,14 @@ public class ForceProjector extends Block{ Draw.reset(); } + @Override + public void overwrote(Seq previous){ + if(previous.size > 0 && previous.first().block == block && previous.first() instanceof ForceBuild b){ + broken = b.broken; + buildup = b.buildup; + } + } + @Override public void write(Writes write){ super.write(write); From c0e4c9c5b53b568762d3e3b4c63e9552aa34bff0 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 23 Aug 2024 03:52:39 -0400 Subject: [PATCH 085/437] Payload unit destroy on derelict --- core/src/mindustry/game/Teams.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/core/src/mindustry/game/Teams.java b/core/src/mindustry/game/Teams.java index 9fb472bf50..c9a38fcb17 100644 --- a/core/src/mindustry/game/Teams.java +++ b/core/src/mindustry/game/Teams.java @@ -8,6 +8,7 @@ import arc.struct.*; import arc.util.*; import mindustry.*; import mindustry.ai.*; +import mindustry.annotations.Annotations.*; import mindustry.gen.*; import mindustry.type.*; import mindustry.world.*; @@ -359,6 +360,10 @@ public class Teams{ //TODO this may cause a lot of packet spam, optimize? Call.setTeam(build, Team.derelict); + if(build.getPayload() instanceof UnitPayload){ + Call.destroyPayload(build); + } + if(Mathf.chance(0.25)){ Time.run(Mathf.random(0f, 60f * 6f), build::kill); } @@ -425,6 +430,14 @@ public class Teams{ } } + @Remote(called = Loc.server, unreliable = true) + public static void destroyPayload(Building build){ + if(build != null && build.getPayload() instanceof UnitPayload && build.takePayload() instanceof UnitPayload unit){ + unit.dump(); + unit.unit.killed(); + } + } + /** Represents a block made by this team that was destroyed somewhere on the map. * This does not include deconstructed blocks.*/ public static class BlockPlan{ From 55dfffa4bc2752b2fd5e349d0e2135f13d538448 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 23 Aug 2024 04:00:18 -0400 Subject: [PATCH 086/437] Hide internal units from logic --- core/src/mindustry/logic/GlobalVars.java | 4 +++- core/src/mindustry/logic/LExecutor.java | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/logic/GlobalVars.java b/core/src/mindustry/logic/GlobalVars.java index 3b954d986d..4832be2ce8 100644 --- a/core/src/mindustry/logic/GlobalVars.java +++ b/core/src/mindustry/logic/GlobalVars.java @@ -132,7 +132,9 @@ public class GlobalVars{ } for(UnitType type : Vars.content.units()){ - put("@" + type.name, type); + if(!type.internal){ + put("@" + type.name, type); + } } for(Weather weather : Vars.content.weathers()){ diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index f9930a610b..c9fdbef37d 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -1380,7 +1380,7 @@ public class LExecutor{ Team t = team.team(); - if(type.obj() instanceof UnitType type && !type.hidden && t != null && Units.canCreate(t, type)){ + if(type.obj() instanceof UnitType type && !type.internal && !type.hidden && t != null && Units.canCreate(t, type)){ //random offset to prevent stacking var unit = type.spawn(t, World.unconv(x.numf()) + Mathf.range(0.01f), World.unconv(y.numf()) + Mathf.range(0.01f)); spawner.spawnEffect(unit, rotation.numf()); From f5a75de872f66fbcefdb2df0e0b1c8c774858df1 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 23 Aug 2024 04:09:06 -0400 Subject: [PATCH 087/437] Fetch player block fix --- core/src/mindustry/logic/LExecutor.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index c9fdbef37d..b3eb8dd628 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -1242,7 +1242,8 @@ public class LExecutor{ result.setobj(units == null || i < 0 || i >= units.size ? null : units.get(i)); } } - case player -> result.setobj(i < 0 || i >= data.players.size ? null : data.players.get(i).unit()); + case player -> result.setobj(i < 0 || i >= data.players.size ? null : + data.players.get(i).unit() instanceof BlockUnitc block ? block.tile() : data.players.get(i).unit()); case core -> result.setobj(i < 0 || i >= data.cores.size ? null : data.cores.get(i)); case build -> { Block block = extra.obj() instanceof Block b ? b : null; From a2531cdc430c133b89f0166ae112be10dff2a5f7 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 23 Aug 2024 18:12:06 -0400 Subject: [PATCH 088/437] Fixed #10141 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 7f29f90ebe..17ec33f127 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,4 +26,4 @@ org.gradle.caching=true org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.connectionTimeout=100000 android.enableR8.fullMode=false -archash=e020cc5626d824006d99d6f67932a7a9c442f4f9 +archash=aafecc8a29125e70255e6cdb34a92690531d1a57 From c89df39fd7c1723d70bc2da2bb0198eec4de0e7e Mon Sep 17 00:00:00 2001 From: nicknamewhat801 Date: Sat, 24 Aug 2024 03:14:17 +0500 Subject: [PATCH 089/437] Update servers_v7.json (#10142) EscoCorp server --- servers_v7.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/servers_v7.json b/servers_v7.json index f834888fa4..98193f0a53 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -1,4 +1,8 @@ [ + { + "name": "EscoCorp", + "address": ["81.30.105.171:6567"] + }, { "name": "Redundancy Dept", "address": ["min7.include-once.org:8000", "min7.include-once.org:8001"] From b451b51e6127982215cafdc481333a422fdc9160 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 24 Aug 2024 14:01:00 -0400 Subject: [PATCH 090/437] Fixed logic variables being 0 by default --- core/src/mindustry/logic/LAssembler.java | 2 ++ gradle.properties | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/logic/LAssembler.java b/core/src/mindustry/logic/LAssembler.java index 8af2c4e87f..a73ca077c6 100644 --- a/core/src/mindustry/logic/LAssembler.java +++ b/core/src/mindustry/logic/LAssembler.java @@ -121,7 +121,9 @@ public class LAssembler{ if(vars.containsKey(name)){ return vars.get(name); }else{ + //variables are null objects by default LVar var = new LVar(name); + var.isobj = true; vars.put(name, var); return var; } diff --git a/gradle.properties b/gradle.properties index 17ec33f127..ba4f2e7402 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,4 +26,4 @@ org.gradle.caching=true org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.connectionTimeout=100000 android.enableR8.fullMode=false -archash=aafecc8a29125e70255e6cdb34a92690531d1a57 +archash=aafecc8a29 From 22bd8c634fd043352eb57095ddc16b2d21451177 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 24 Aug 2024 14:08:04 -0400 Subject: [PATCH 091/437] Fixed counter displaying as null / Revert #10090 --- core/src/mindustry/logic/LAssembler.java | 2 +- core/src/mindustry/logic/LCanvas.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/logic/LAssembler.java b/core/src/mindustry/logic/LAssembler.java index a73ca077c6..847e409100 100644 --- a/core/src/mindustry/logic/LAssembler.java +++ b/core/src/mindustry/logic/LAssembler.java @@ -21,7 +21,7 @@ public class LAssembler{ public LAssembler(){ //instruction counter - putVar("@counter"); + putVar("@counter").isobj = false; //currently controlled unit putConst("@unit", null); //reference to self diff --git a/core/src/mindustry/logic/LCanvas.java b/core/src/mindustry/logic/LCanvas.java index dd3c0133cd..5bff3e8757 100644 --- a/core/src/mindustry/logic/LCanvas.java +++ b/core/src/mindustry/logic/LCanvas.java @@ -257,7 +257,7 @@ public class LCanvas extends Table{ } } - if(parent != null) parent.invalidateHierarchy();//don't invalid self + invalidateHierarchy(); if(parent != null && parent instanceof Table){ setCullingArea(parent.getCullingArea()); From 6e3cc13a26cf6660f92e734ad1d63f2ef62950e5 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 24 Aug 2024 16:01:06 -0400 Subject: [PATCH 092/437] Fixed logic scroll bar glitch --- core/src/mindustry/logic/LCanvas.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/logic/LCanvas.java b/core/src/mindustry/logic/LCanvas.java index 5bff3e8757..3a49fcb8bf 100644 --- a/core/src/mindustry/logic/LCanvas.java +++ b/core/src/mindustry/logic/LCanvas.java @@ -128,6 +128,8 @@ public class LCanvas extends Table{ if(toLoad != null){ load(toLoad); } + + Core.app.post(() -> statements.invalidateHierarchy()); } @Override @@ -257,7 +259,7 @@ public class LCanvas extends Table{ } } - invalidateHierarchy(); + if(parent != null) parent.invalidateHierarchy(); if(parent != null && parent instanceof Table){ setCullingArea(parent.getCullingArea()); From fc883ca2f3f7c931d746dfdf724ff106e26b3253 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 25 Aug 2024 09:02:13 -0400 Subject: [PATCH 093/437] Logic canvas cleanup --- core/src/mindustry/logic/LCanvas.java | 9 --------- gradle.properties | 2 +- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/core/src/mindustry/logic/LCanvas.java b/core/src/mindustry/logic/LCanvas.java index 3a49fcb8bf..b78908ef6f 100644 --- a/core/src/mindustry/logic/LCanvas.java +++ b/core/src/mindustry/logic/LCanvas.java @@ -116,20 +116,11 @@ public class LCanvas extends Table{ jumps.cullable = false; }).grow().get(); pane.setFlickScroll(false); - pane.setScrollYForce(s); - pane.updateVisualScroll(); - //load old scroll percent - Core.app.post(() -> { - pane.setScrollYForce(s); - pane.updateVisualScroll(); - }); if(toLoad != null){ load(toLoad); } - - Core.app.post(() -> statements.invalidateHierarchy()); } @Override diff --git a/gradle.properties b/gradle.properties index ba4f2e7402..d2f69e9d02 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,4 +26,4 @@ org.gradle.caching=true org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.connectionTimeout=100000 android.enableR8.fullMode=false -archash=aafecc8a29 +archash=277a7cc689 From 9898daeee9032ffce9dae06af7b43fa7024f73e0 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 25 Aug 2024 10:12:54 -0400 Subject: [PATCH 094/437] More logic fixes --- .../mindustry/world/blocks/logic/LogicBlock.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/world/blocks/logic/LogicBlock.java b/core/src/mindustry/world/blocks/logic/LogicBlock.java index 655cf48e4f..ed2872c406 100644 --- a/core/src/mindustry/world/blocks/logic/LogicBlock.java +++ b/core/src/mindustry/world/blocks/logic/LogicBlock.java @@ -752,8 +752,17 @@ public class LogicBlock extends Block{ //load up the variables that were stored for(int i = 0; i < varcount; i++){ LVar var = asm.getVar(names[i]); - if(var.objval instanceof Boxed boxed){ - var.objval = boxed.unbox(); + if(var != null && (!var.constant || var.name.equals("@unit"))){ + var value = values[i]; + if(value instanceof Boxed boxed) value = boxed.unbox(); + + if(value instanceof Number num){ + var.numval = num.doubleValue(); + var.isobj = false; + }else{ + var.objval = value; + var.isobj = true; + } } } }); From 85c3edec6a3cec093450bf807e3e1d30fdef75fb Mon Sep 17 00:00:00 2001 From: a-big-fish-fish <111189982+a-big-fish-fish@users.noreply.github.com> Date: Sun, 25 Aug 2024 22:38:22 +0800 Subject: [PATCH 095/437] Update servers_v7.json (#10147) --- servers_v7.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers_v7.json b/servers_v7.json index 98193f0a53..66a87ac7c9 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -258,7 +258,7 @@ }, { "name": "Extra Utilities", - "address": ["p1.i9mr.com:44922", "p1.i9mr.com:44834", "p1.i9mr.com:43189", "203.135.99.189:15142", "203.135.99.189:15143", "203.135.99.190:15142", "203.135.99.190:15143"] + "address": ["p1.i9mr.com:44922", "p1.i9mr.com:44834", "p1.i9mr.com:43189", "203.135.99.65:15142", "203.135.99.65:15143", "203.135.99.71:15142", "203.135.99.71:15143"] }, { "name": "Alex Multiverse", From 493b9807fff47b1653cde6d251f9aede1872e4cb Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 25 Aug 2024 17:01:06 -0400 Subject: [PATCH 096/437] Removed `@solid` remnants --- core/src/mindustry/logic/LExecutor.java | 1 - 1 file changed, 1 deletion(-) diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index b3eb8dd628..b8af74f60d 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -978,7 +978,6 @@ public class LExecutor{ return obj == null ? "null" : obj instanceof String s ? s : - obj == Blocks.stoneWall ? "solid" : //special alias obj instanceof MappableContent content ? content.name : obj instanceof Content ? "[content]" : obj instanceof Building build ? build.block.name : From e5bb2674ddfd1bac09a90abd7fccd5e10b6bb18a Mon Sep 17 00:00:00 2001 From: liangliangsan <88579991+liangliangsan@users.noreply.github.com> Date: Tue, 27 Aug 2024 08:24:29 +0800 Subject: [PATCH 097/437] Update servers_v7.json (#10153) --- servers_v7.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers_v7.json b/servers_v7.json index 66a87ac7c9..7996cf8d0b 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -17,7 +17,7 @@ }, { "name": "gods field", - "address": ["n2.akiracloud.net:10225"] + "address": ["n2.akiracloud.net:10225","n2.akiracloud.net:10335"] }, { "name": "STP", From 9a8c26379af9bfd48ca28406b1866243887b6b93 Mon Sep 17 00:00:00 2001 From: nicknamewhat801 Date: Tue, 27 Aug 2024 05:24:35 +0500 Subject: [PATCH 098/437] Update servers_v7.json escoCorp suvival server (#10152) --- servers_v7.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers_v7.json b/servers_v7.json index 7996cf8d0b..252a535ed6 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -1,7 +1,7 @@ [ { "name": "EscoCorp", - "address": ["81.30.105.171:6567"] + "address": ["81.30.105.171:6567", "81.30.105.171:6568"] }, { "name": "Redundancy Dept", From 9a15d1a5b84ca695b9dbad9017b1097ec18a2967 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 29 Aug 2024 17:23:25 -0400 Subject: [PATCH 099/437] Fixed #10155 --- core/src/mindustry/ctype/UnlockableContent.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/ctype/UnlockableContent.java b/core/src/mindustry/ctype/UnlockableContent.java index 6cbe82e287..e86da73fea 100644 --- a/core/src/mindustry/ctype/UnlockableContent.java +++ b/core/src/mindustry/ctype/UnlockableContent.java @@ -9,6 +9,7 @@ import arc.scene.ui.layout.*; import arc.struct.*; import arc.util.*; import mindustry.annotations.Annotations.*; +import mindustry.content.*; import mindustry.content.TechTree.*; import mindustry.game.EventType.*; import mindustry.graphics.*; @@ -93,7 +94,7 @@ public abstract class UnlockableContent extends MappableContent{ } public boolean isOnPlanet(@Nullable Planet planet){ - return planet == null || shownPlanets.isEmpty() || shownPlanets.contains(planet); + return planet == null || planet == Planets.sun || shownPlanets.isEmpty() || shownPlanets.contains(planet); } public int getLogicId(){ From 7dee6d8b8930444bcc099e45567ab373569b21f0 Mon Sep 17 00:00:00 2001 From: summoner001 Date: Fri, 30 Aug 2024 03:35:35 +0200 Subject: [PATCH 100/437] Update bundle_hu.properties (#10107) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update bundle_hu.properties I tried to rewrite the question sentences, but eventually I realised that they should not be rewritten. Two reasons: 1) if someone starts translating after me, they won't understand what happened to the question sentences and will see it as a mistake and will try to correct it. 2) the sentences became longer after the rewrite, and nobody likes to read a lot while playing. Another solution: There is one solution to fix the question sentences and that is to introduce a Yes answer in the answer options instead of OK. However, this only applies to sentences ending in ?. The other sentences should remain with the OK answer option. Yes I know, there is no time for this and it is not such a fatal mistake. Unfortunately I can't do it because I'm a programming noob. It will be done when it's done, it's not that important. -----------This Pull Request----------- This PR includes recovery of accidentally deleted items, typing corrections, spelling corrections, simplification of question sentences, and translation of the new sentence. * Update bundle_hu.properties Fixing 2 sentences * Update bundle_hu.properties Sentence fix * Update bundle_hu.properties fixing the „tile” word translation = mező * Update bundle_hu.properties sentence fixes * Update bundle_hu.properties Sentence- and block names fixes. * Update bundle_hu.properties Fix block names * Update bundle_hu.properties insert line break due to long sentence * Update bundle_hu.properties Fixes * Update bundle_hu.properties use of electricity consumption jargon consistently throughout the text * Update bundle_hu.properties keep the consistency of the shield word throughout the text * Update bundle_hu.properties Fixing names of incinerators * Update bundle_hu.properties Minor sentence and blokk name fixes * Update bundle_hu.properties Fixing translation of cargo and payload. * Update bundle_hu.properties Fixing unit cargo space * Update bundle_hu.properties Translate th new string * Update bundle_hu.properties Fixing coherence * Update bundle_hu.properties fixing a typo * Update bundle_hu.properties fixing a typo * Update bundle_hu.properties * Update bundle_hu.properties Fix script word translation * Update bundle_hu.properties Fixing sentences. * Update bundle_hu.properties minor fixes * Update bundle_hu.properties Fixing liquid container/ tank coherence. --- core/assets/bundles/bundle_hu.properties | 285 ++++++++++++----------- 1 file changed, 143 insertions(+), 142 deletions(-) diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index b779362412..3104bf8f2b 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -14,7 +14,7 @@ link.f-droid.description = Listázás az F-Droidon link.wiki.description = Hivatalos Mindustry wiki link.suggestions.description = Új funkciók ajánlása link.bug.description = Találtál egy szoftverhibát? Itt jelentheted -linkopen = Ez a kiszolgáló egy hivatkozást küldött. Biztos vagy benne, hogy megnyitod?\n\n[sky]{0} +linkopen = Ez a kiszolgáló egy hivatkozást küldött. Biztosan megnyitod?\nAkár kártékony is lehet!\n\n[sky]{0} linkfail = Nem sikerült megnyitni a hivatkozást!\nA webcím a vágólapra lett másolva. screenshot = Képernyőkép mentve ide: {0} screenshot.invalid = Túl nagy a pálya, nincs elég memória a képernyőképhez. @@ -32,10 +32,10 @@ load.image = Képek load.content = Tartalom load.system = Rendszer load.mod = Modok -load.scripts = Szkriptek +load.scripts = Parancsfájlok be.update = Új Bleeding Edge verzió áll rendelkezésre: -be.update.confirm = Letöltöd és újraindítod a játékot? +be.update.confirm = Letöltöd és frissíted a játékot?\n\nAmint kész a frissítés, a játék automatikusan újraindul. be.updating = Frissítés... be.ignore = Most nem be.noupdates = Nem található frissítés. @@ -97,7 +97,7 @@ map.delete = Biztosan törölni akarod a(z) „[accent]{0}[]” nevű pályát? level.highscore = Legmagasabb pontszám: [accent]{0} level.select = Szint kiválasztása level.mode = Játékmód: -coreattack = < A támaszpont támadás alatt van! > +coreattack = < A támaszpont támadás alatt áll! > nearpoint = [[ [scarlet]AZONNAL HAGYD EL A LEDOBÁSI PONTOT![] ]\nA megsemmisülés fenyeget! database = Támaszpont adatbázisa database.button = Adatbázis @@ -137,7 +137,7 @@ mods.report = Hiba jelentése mods.openfolder = Mappa megnyitása mods.viewcontent = Tartalom megtekintése mods.reload = Újratöltés -mods.reloadexit = A játék most kilép, hogy újratöltse a modokat. +mods.reloadexit = most kilép, hogy újratöltse a modokat a következő indításkor. mod.installed = [[Telepítve] mod.display = [gray]Mod:[orange] {0} mod.enabled = [lightgray]Aktív @@ -166,10 +166,10 @@ mod.incompletedependencies.details = Ez a mod nem tölthető be az érvénytelen mod.requiresversion = Szükséges játékverzió: [red]{0}[] mod.errors = Hiba történt a tartalom betöltése közben. -mod.noerrorplay = [red]Hibákkal rendelkező modjaid vannak.[] Kapcsold ki, vagy javítsd ki őket a játék előtt. +mod.noerrorplay = [red]Hibákkal rendelkező modjaid vannak.[] Kapcsold ki, vagy javítsd ki őket a játék elindítása előtt. mod.nowdisabled = [red]A(z) „{0}” modnak nincs megfelelő függősége:[accent] {1}\n[lightgray]Ezeket előbb le kell tölteni.\nEz a mod automatikusan ki lesz kapcsolva. mod.enable = Engedélyezés -mod.requiresrestart = A játék kilép a módosítások alkalmazásához. +mod.requiresrestart = A játék most kilép, hogy a módosítások érvénybe lépjenek a következő indításkor. mod.reloadrequired = [red]Újraindítás szükséges mod.import = Mod importálása mod.import.file = Fájl importálása @@ -180,8 +180,8 @@ mod.remove.confirm = Ez a mod törölve lesz. mod.author = [lightgray]Készítő:[] {0} mod.missing = Ez a mentés nemrég törölt vagy frissített modokat tartalmaz. Elképzelhető, hogy nem fog működni. Biztosan betöltöd?\n[lightgray]Modok:\n{0} mod.preview.missing = Mielőtt közzéteszed ezt a modot a Steam Műhelyben, adj hozzá egy borítóképet.\nKészíts egy[accent] preview.png[] nevű képet a Mod mappájába, majd próbáld újra. -mod.folder.missing = Csak mappa formában lehet feltölteni a Steam Műhelybe.\nHogy átalakítsd, bontsd ki a ZIP-fájlt egy mappába és töröld le a régit, majd indítsd újra a játékot, vagy töltsd újra a modokat. -mod.scripts.disable = Ez az eszköz nem támogatja a szkriptekkel rendelkező modokat.\nA játékhoz tiltsd le ezeket a modokat. +mod.folder.missing = Csak mappa formában lehet feltölteni a Steam Műhelybe.\nAhhoz, hogy átalakítsd, ki kell bontanod a ZIP-fájlt egy mappába és le kell törölnöd a régit, majd indítsd újra a játékot, vagy töltsd újra a modokat. +mod.scripts.disable = Ez az eszköz nem támogatja a parancsfájlokkal rendelkező modokat.\nA játékhoz tiltsd le ezeket a modokat. about.button = Névjegy name = Név: @@ -193,7 +193,7 @@ filename = Fájlnév: unlocked = Új tartalom feloldva! available = Új fejlesztés érhető el! unlock.incampaign = < Oldd fel a hadjáratban a részletekért > -campaign.select = Válassz kezdő hadjáratot +campaign.select = Válassz ki egy kezdő hadjáratot campaign.none = [lightgray]Válassz egy bolygót a kezdéshez.\nEzt bármikor megváltoztathatod. campaign.erekir = Újabb, csiszoltabb tartalom. Többnyire lineáris játékmenet.\n\nSokkal nehezebb. Magasabb minőségű pályák és élmények. campaign.serpulo = Régebbi tartalom. A klasszikus élmény. Nyíltabb végű, több tartalommal.\n\nPotenciálisan kiegyensúlyozatlan pályák és hadjárat. Kevésbé csiszolt. @@ -226,7 +226,7 @@ server.kicked.recentKick = Nemrég lettél kirúgva.\nVárj egy kicsit az újbó server.kicked.nameInUse = Már van egy ilyen nevű játékos\nezen a kiszolgálón. server.kicked.nameEmpty = A kiválasztott név érvénytelen. server.kicked.idInUse = Már kapcsolódva vagy ehhez a kiszolgálóhoz! Nem lehet egyszerre két fiókot használni. -server.kicked.customClient = Ez a kiszolgáló nem támogatja a saját készítésű játék-összeállításokat. Használj egy hivatalos változatot. +server.kicked.customClient = Ez a kiszolgáló nem támogatja a saját készítésű játék-összeállításokat. Használj egy hivatalos változatot! server.kicked.gameover = Vége a játéknak! server.kicked.serverRestarting = Ez a kiszolgáló újraindul. server.versions = A te játékverziód:[accent] {0}[]\nA kiszolgáló verziója:[accent] {1}[] @@ -354,10 +354,10 @@ command.rebuild = Újraépítés command.assist = Segítség a játékosnak command.move = Mozgás command.boost = Erősítés -command.enterPayload = Berakodás a rakományszállítóba +command.enterPayload = Berakodás a raktérbe command.loadUnits = Egységek felvétele command.loadBlocks = Blokkok felvétele -command.unloadPayload = Kirakodás a rakományszállítóból +command.unloadPayload = Kirakodás a raktérből stance.stop = Parancsok visszavonása stance.shoot = Viselkedés: lövés stance.holdfire = Viselkedés: tüzet szüntess @@ -376,8 +376,8 @@ data.export = Adatok exportálása data.import = Adatok importálása data.openfolder = Adatok mappájának megnyitása data.exported = Adatok exportálva. -data.invalid = Ezek nem érvényes játékadatok. -data.import.confirm = A külső adatok importálása felülírja[scarlet] minden[] jelenlegi játékadatodat.\n[accent]Nem vonható vissza![]\n\nAmint kész az importálás, a játék azonnal kilép. +data.invalid = Ezek érvénytelen játékadatok. +data.import.confirm = A külső adatok importálása felülírja[scarlet] minden[] jelenlegi játékadatodat.\n[accent]Ezt a műveletet nem lehet visszavonni![]\n\nAmint kész az importálás, a játék automatikusan kilép. quit.confirm = Biztosan kilépsz? loading = [accent]Betöltés... downloading = [accent]Letöltés... @@ -408,7 +408,7 @@ saveimage = Kép mentése unknown = Ismeretlen custom = Egyéni builtin = Beépített -map.delete.confirm = Biztosan törlöd ezt a pályát? Ez a művelet nem vonható vissza! +map.delete.confirm = Biztosan törlöd ezt a pályát? Ezt a műveletet nem lehet visszavonni! map.random = [accent]Véletlenszerű pálya map.nospawn = Ez a pálya nem rendelkezik támaszponttal, amellyel a játékos kezdhetne. Adj hozzá egy {0} támaszpontot a pályához a szerkesztőben. map.nospawn.pvp = Ezen a pályán nincs ellenséges támaszpont, amellyel egy játékos kezdhet. Adj hozzá egy [scarlet]nem narancssárga[] támaszpontot a pályához a szerkesztőben. @@ -416,7 +416,7 @@ map.nospawn.attack = Ezen a pályán nincs ellenséges támaszpont. Adj hozzá { map.invalid = Hiba történt a pálya betöltésekor: sérült vagy érvénytelen fájl. workshop.update = Elem frissítése workshop.error = Hiba történt a Steam Műhely részleteinek lekérdezésekor: {0} -map.publish.confirm = Biztos, hogy közzéteszed ezt a pályát?\n\n[lightgray]Győződj meg róla, hogy elfogadtad a Steam Műhely EULA-t, különben a pályáid nem jelennek meg. +map.publish.confirm = Biztosan közzéteszed ezt a pályát?\n\n[lightgray]Győződj meg arról, hogy elfogadtad a Steam Műhely EULA-t, különben a pályáid nem jelennek meg. workshop.menu = Válaszd ki, hogy mit szeretnél csinálni ezzel az elemmel. workshop.info = Eleminformációk changelog = Változásnapló (nem kötelező): @@ -424,7 +424,7 @@ updatedesc = Cím és leírás felülírása eula = Steam EULA missing = Ezt az elemet törölték vagy áthelyezték.\n[lightgray]A Steam Műhely adatai automatikusan le lettek választva. publishing = [accent]Közzététel... -publish.confirm = Biztosan közzéteszed?\n\n[lightgray]Győződj meg róla, hogy elfogadtad a Steam Műhely EULA-t, különben az elemeid nem jelennek meg! +publish.confirm = Biztosan közzéteszed ezt az elemet?\n\n[lightgray]Győződj meg arról, hogy elfogadtad a Steam Műhely EULA-t, különben az elemeid nem jelennek meg! publish.error = Hiba az elem közzétételekor: {0} steam.error = Nem sikerült előkészíteni a Steam szolgáltatásokat.\nHiba: {0} @@ -449,7 +449,7 @@ editor.worldprocessors = Világprocesszorok editor.worldprocessors.editname = Név szerkesztése editor.worldprocessors.none = [lightgray]Nem találhatóak világprocesszor blokkok!\nAdj hozzá egyet a pályaszerkesztőben, vagy használd az alábbi \ue813 hozzáadás gombot. editor.worldprocessors.nospace = Nincs szabad hely egy világprocesszor elhelyezéséhez!\nKitöltötted a pályát struktúrákkal? Miért tetted ezt? -editor.worldprocessors.delete.confirm = Biztos, hogy törölni akarod ezt a világprocesszort?\n\nHa falakkal van körülvéve, akkor egy környezeti fal fog a helyére kerülni. +editor.worldprocessors.delete.confirm = Biztosan törölni akarod ezt a világprocesszort?\n\nHa falakkal van körülvéve, akkor egy környezeti fal fog a helyére kerülni. editor.ingame = Szerkesztés a játékban editor.playtest = Teszt a játékban editor.publish.workshop = Közzététel a Steam Műhelyben @@ -471,7 +471,7 @@ waves.every = minden waves.waves = hullámonként waves.health = élet: {0}% waves.perspawn = kezdőpontonként -waves.shields = pajzs/hullám +waves.shields = erőpajzs/hullám waves.to = - waves.spawn = kezdőpont: waves.spawn.all = @@ -497,17 +497,17 @@ waves.filter = Egységszűrő waves.units.hide = Összes elrejtése waves.units.show = Összes megjelenítése -#these are intentionally in lower case +#Az alábbi szövegek szándékosan vannak kisbetűvel írva wavemode.counts = típusokra bontva wavemode.totals = összesítés wavemode.health = életpontok -all = All +all = Összes editor.default = [lightgray] details = Részletek... edit = Szerkesztés variables = Változók -logic.clear.confirm = Biztos, hogy törölni akarod az összes kódot ebből a processzorból? +logic.clear.confirm = Biztosan törölni akarod az összes kódot ebből a processzorból? logic.globals = Beépített változók editor.name = Név: @@ -552,7 +552,7 @@ editor.exportimage = Domborzati kép exportálása editor.exportimage.description = Csak alapvető domborzatot tartalmazó képfájl exportálása editor.loadimage = Domborzat importálása editor.saveimage = Domborzat exportálása -editor.unsaved = Biztos, hogy ki akarsz lépni?\n[scarlet]A nem mentett módosításaid elvesznek. +editor.unsaved = Biztosan ki akarsz lépni?\n[scarlet]A nem mentett módosításaid elvesznek. editor.resizemap = Pálya átméretezése editor.mapname = Pálya neve: editor.overwrite = [accent]Vigyázz!\nEzzel felülírsz egy már létező pályát. @@ -576,7 +576,7 @@ toolmode.fillerase = Kitöltés törlése toolmode.fillerase.description = Az azonos típusú blokkok törlése. toolmode.drawteams = Csapatok rajzolása toolmode.drawteams.description = Csapatok rajzolása blokkok helyett. -#unused +#Nem használt szövegek toolmode.underliquid = Folyadékok alá toolmode.underliquid.description = Padlók rajzolása a folyadékblokkok alá. @@ -625,8 +625,8 @@ filter.option.percentile = Százalék filter.option.code = Kód filter.option.loop = Hurok -locales.info = Itt adhatsz hozzá különböző nyelvi csomagokat a pályádhoz. A nyelvi csomagokban minden tulajdonságnak van egy neve és egy értéke. Ezeket a tulajdonságokat a világprocesszorok és a célkitűzések is használhatják a saját neveikkel. Támogatják a szövegformázást (a helyőrzőket a tényleges értékükkel helyettesítik).\n\n[cyan]Példa tulajdonság:\n[]name: [accent]időzítő[]\nvalue: [accent]Példa időzítő, hátralévő idő: {0}[]\n\n[cyan]Használat:\n[]Beállítás célkitűzés szövegeként: [accent]@időzítő\n\n[]Írd be egy világprocesszorba:\n[accent]localeprint "időzítő"\nformat time\n[gray](ahol az idő egy külön számított változó) -locales.deletelocale = Biztos, hogy törölni akarod ezt a nyelvi csomagot? +locales.info = Itt adhatsz hozzá különböző nyelvi csomagokat a pályádhoz. A nyelvi csomagokban minden tulajdonságnak van egy neve és egy értéke. Ezeket a tulajdonságokat a világprocesszorok és a pálya célkitűzései is használhatják a saját neveikkel. Támogatják a szövegformázást (a helyőrzőket a tényleges értékükkel helyettesítik).\n\n[cyan]Példa tulajdonság:\n[]name: [accent]időzítő[]\nvalue: [accent]Példa időzítő, hátralévő idő: {0}[]\n\n[cyan]Használat:\n[]Beállítás a pálya célkitűzésének szövegeként: [accent]@időzítő\n\n[]Írd be egy világprocesszorba:\n[accent]localeprint „időzítő”\nformat time\n[gray](ahol az idő egy külön számított változó) +locales.deletelocale = Biztosan törölni akarod ezt a nyelvi csomagot? locales.applytoall = Változások alkalmazása az összes nyelvi csomagra locales.addtoother = Hozzáadás más nyelvi csomagokhoz locales.rollback = Visszaállítás az utoljára elfogadottra @@ -729,11 +729,11 @@ bannedblocks = Tiltott épületek objectives = Feladatok bannedunits = Tiltott egységek bannedunits.whitelist = Tiltott egységek fehérlistára -bannedblocks.whitelist = Tiltott blokkok fehérlistára +bannedblocks.whitelist = Tiltott épületek fehérlistára addall = Összes hozzáadása launch.from = Kilövés a(z) [accent]{0} szektorból launch.capacity = Nyersanyag-kapacitás a kilövéskor: [accent]{0} -launch.destination = Úticél: {0} +launch.destination = Úti cél: {0} configure.invalid = A mennyiségnek 0 és {0} között kell lennie. add = Hozzáadás... guardian = Őrző @@ -741,8 +741,8 @@ guardian = Őrző connectfail = [scarlet]Kapcsolódási hiba:\n\n[accent]{0} error.unreachable = A kiszolgálót nem lehet elérni.\nBiztosan jól írtad be a címet? error.invalidaddress = Érvénytelen cím. -error.timedout = Időtúllépés!\nGyőződj meg róla, hogy a porttovábbítás be van kapcsolva a kiszolgálógépen, és a cím helyes! -error.mismatch = Csomaghiba:\nLehetséges kliens- vagy kiszolgálóverzió-eltérés.\nGyőződj meg róla, hogy te és a kiszolgáló is a Mindustry legfrissebb verzióját használjátok! +error.timedout = Időtúllépés!\nGyőződj meg arról, hogy a porttovábbítás be van kapcsolva a kiszolgálógépen, és a cím helyes! +error.mismatch = Csomaghiba:\nLehetséges kliens- vagy kiszolgálóverzió-eltérés.\nGyőződj meg arról, hogy te és a kiszolgáló is a Mindustry legfrissebb verzióját használjátok! error.alreadyconnected = Már kapcsolódva vagy. error.mapnotfound = A pályafájl nem található! error.io = Internet I/O hiba. @@ -781,7 +781,7 @@ sectors.underattack.nodamage = [scarlet]Nincs meghódítva sectors.survives = [accent]Túlél {0} hullámot sectors.go = Visszatérés sector.abandon = Elhagyás -sector.abandon.confirm = Ennek a szektornak a támaszpontjai önmegsemmisítésre kerülnek.\nFolytatod? +sector.abandon.confirm = Ebben a szektorban minden támaszpontod megsemmisül.\nBiztosan feladod ezt a szektort? sector.curcapture = A szektor elfoglalva sector.curlost = A szektor elveszett sector.missingresources = [scarlet]Nincs elég nyersanyag @@ -823,7 +823,7 @@ sector.windsweptIslands.name = Szélfútta szigetek sector.extractionOutpost.name = Kivonási helyőrség sector.planetaryTerminal.name = Bolygó körüli kilövőállás sector.coastline.name = Partvonal -sector.navalFortress.name = Tengerészeti erőd +sector.navalFortress.name = Haditengerészeti erőd sector.groundZero.description = Az ideális helyszín, hogy ismét belekezdjünk. Alacsony ellenséges fenyegetés. Kevés nyersanyag.\nGyűjts annyi rezet és ólmot, amennyit csak tudsz.\nHaladj tovább. sector.frozenForest.description = Még itt, a hegyekhez közel is elterjedtek a spórák. A fagypont alatti hőmérséklet nem tudja örökké fogva tartani őket.\n\nFedezd fel az elektromosság erejét! Építs égetőerőműveket! Tanuld meg a foltozók használatát! @@ -840,7 +840,7 @@ sector.biomassFacility.description = A spórák származási helye. Ebben a lét sector.windsweptIslands.description = Távolabb, a partvonalon túl fekszik ez az elszigetelt szigetcsoport. A feljegyzések szerint egykor [accent]műanyagot[] gyártottak itt.\n\nVerd vissza az ellenség vízi egységeit! Állíts fel egy bázist a szigeteken! Fedezd fel az itt talált gyárakat! sector.extractionOutpost.description = Egy távoli ellenséges támaszpont, amelyet az ellenség azért épített, hogy nyersanyagokat juttasson el más szektorokba.\n\nA szektorok közötti szállítási technológia elengedhetetlen a további hódításhoz. Pusztítsd el a bázist. Fejleszd ki a kilövőállást. sector.impact0078.description = Itt nyugszanak az ebbe a csillagrendszerbe érkező első csillagközi űrhajó maradványai.\n\nMents ki a romok alól mindent amit csak tudsz. Fedezd fel az épen maradt technológiákat. -sector.planetaryTerminal.description = A végső célpont.\n\nEzen a vízparti bázison egy olyan építmény található, amely képes támaszpontokat kilőni a közeli bolygókra. Rendkívül jól őrzik.\n\nKészíts vízi egységeket! Ártalmatlanítsd az ellenséget, amilyen gyorsan csak tudod! Találd meg a kilövőszerkezetet! +sector.planetaryTerminal.description = A végső célpont.\n\nEzen a vízparti bázison egy olyan építmény található, amely képes támaszpontokat kilőni a közeli bolygókra. Rendkívül jól őrzik.\n\nGyárts vízi egységeket! Ártalmatlanítsd az ellenséget, amilyen gyorsan csak tudod! Találd meg a kilövőszerkezetet! sector.coastline.description = Ezen a helyen egy haditengerészeti egység technológiájának maradványait azonosították. Verd vissza az ellenséges támadásokat, foglald el ezt a szektort, és szerezd meg a technológiát. sector.navalFortress.description = Az ellenség bázist létesített egy távoli, természetes erődítményes szigeten. Pusztítsd el ezt az előőrsöt. Szerezd meg a fejlett hadihajó-technológiájukat, és fejleszd ki te is. @@ -876,7 +876,7 @@ sector.caldera-erekir.description = Ebben a szektorban a feltárható nyersanyag sector.stronghold.description = A nagy ellenséges tábor ebben a szektorban jelentős mennyiségű [accent]tóriumot[] őriz.\nHasználd magasabb szintű egységek és lövegtornyok fejlesztésére. sector.crevice.description = Ebben a szektorban az ellenség kegyetlen támadóerőket fog mozgósítani, hogy kiiktassa a bázisodat.\nA [accent]karbid[] és a [accent]Pirolízis-erőmű[] kifejlesztése nélkülözhetetlen lehet a túléléshez. sector.siege.description = Ebben a szektorban két párhuzamos kanyon található, amelyek két irányból érkező támadásokat tesznek lehetővé.\nFejleszd ki a [accent]diciánt[], hogy még erősebb tankegységeket hozhass létre.\nVigyázat: ellenséges, nagy hatótávolságú rakéták észlelve. A rakéták a becsapódásuk előtt megsemmisíthetőek. -sector.crossroads.description = Az ellenséges támaszpontok ebben a szektorban változó terepviszonyok között alakultak ki. Ahhoz, hogy alkalmazkodni tudj, fejlessz ki különböző egységeket.\nEzenkívül egyes bázisokat pajzsok védenek. Találd ki, hogyan táplálják őket. +sector.crossroads.description = Az ellenséges támaszpontok ebben a szektorban változó terepviszonyok között alakultak ki. Ahhoz, hogy alkalmazkodni tudj, fejlessz ki különböző egységeket.\nEzenkívül egyes bázisokat erőpajzsok védenek. Találd ki, hogyan táplálják őket. sector.karst.description = Ez a szektor gazdag a nyersanyagokban, de amint egy új támaszpont leszáll, az ellenség megtámadja azt.\nHasználd ki a nyersanyagokat és fedezd fel a [accent]tóritkvarcot[]. sector.origin.description = Az utolsó szektor, jelentős ellenséges jelenléttel.\nNem valószínű, hogy maradtak további fejlesztési lehetőségek – koncentrálj az ellenséges támaszpontok elpusztítására. @@ -906,7 +906,7 @@ settings.game = Játék settings.sound = Hangok settings.graphics = Grafika settings.cleardata = Játékadatok törlése... -settings.clear.confirm = Biztosan törlöd ezeket az adatokat?\nA műveletet nem lehet visszavonni! +settings.clear.confirm = Biztosan törlöd ezeket az adatokat?\nEzt a műveletet nem lehet visszavonni! settings.clearall.confirm = [scarlet]FIGYELEM![]\nEz törli az összes adatot, beleértve a mentéseket, pályákat, felfedezéseket és a billentyűbeállításokat.\nAz „OK” gomb megnyomásával a játék minden adatot töröl, és automatikusan kilép. settings.clearsaves.confirm = Biztosan törlöd az összes mentést? settings.clearsaves = Mentések törlése @@ -952,7 +952,7 @@ stat.powerrange = Hatótávolság stat.linkrange = Kapcsolat hatótávolsága stat.instructions = Utasítások stat.powerconnections = Max. kapcsolatok -stat.poweruse = Áramhasználat +stat.poweruse = Áramfogyasztás stat.powerdamage = Áram/sebzés stat.itemcapacity = Nyersanyag-kapacitás stat.memorycapacity = Memóriakapacitás @@ -979,7 +979,7 @@ stat.inaccuracy = Pontatlanság stat.shots = Lövések stat.reload = Tüzelési sebesség stat.ammo = Lőszer -stat.shieldhealth = Pajzs életereje +stat.shieldhealth = Erőpajzs életereje stat.cooldowntime = Újratöltés időtartama stat.explosiveness = Robbanékonyság stat.basedeflectchance = Alap hárítási esély @@ -995,7 +995,7 @@ stat.speed = Sebesség stat.buildspeed = Építési sebesség stat.minespeed = Termelési sebesség stat.minetier = Termelési szint -stat.payloadcapacity = Rakománykapacitás +stat.payloadcapacity = Raktérkapacitás stat.abilities = Képességek stat.canboost = Erősíthető stat.flying = Repül @@ -1010,22 +1010,22 @@ stat.reactive = Reakciók stat.immunities = Immunitások stat.healing = Gyógyulás -ability.forcefield = Erőtér -ability.forcefield.description = Olyan erőteret vetít ki, amely elnyeli a lövedékeket +ability.forcefield = Erőpajzs +ability.forcefield.description = Olyan erőpajzsot vetít ki, amely elnyeli a lövedékeket ability.repairfield = Javító mező ability.repairfield.description = Megjavítja a közeli egységeket ability.statusfield = Állapotmező ability.statusfield.description = Állapothatást alkalmaz a közeli egységekre ability.unitspawn = Gyár ability.unitspawn.description = Egységeket gyárt -ability.shieldregenfield = Pajzsregeneráló mező -ability.shieldregenfield.description = Regenerálja a közeli egységek pajzsát +ability.shieldregenfield = Erőpajzs-regeneráló mező +ability.shieldregenfield.description = Regenerálja a közeli egységek erőpajzsát ability.movelightning = Villámcsapás ability.movelightning.description = Mozgás közben villámokat bocsát ki ability.armorplate = Páncéllemez ability.armorplate.description = Csökkenti a kapott sebzést lövés közben -ability.shieldarc = Pajzs ív -ability.shieldarc.description = Olyan erőteret vetít ki egy ívben, amely elnyeli a lövedékeket +ability.shieldarc = Erőpajzs-ív +ability.shieldarc.description = Olyan erőpajzsot vetít ki egy ívben, amely elnyeli a lövedékeket ability.suppressionfield = Javítás elnyomása ability.suppressionfield.description = Leállítja a közeli javítóépületeket ability.energyfield = Energiamező @@ -1042,7 +1042,7 @@ ability.liquidexplode.description = Megsemmisülésekor folyadék ömlik ki bel ability.stat.firingrate = [stat]{0}/mp[lightgray] tüzelési sebesség ability.stat.regen = [stat]{0}[lightgray] életerő/mp -ability.stat.shield = [stat]{0}[lightgray] pajzs +ability.stat.shield = [stat]{0}[lightgray] erőpajzs ability.stat.repairspeed = [stat]{0}/mp[lightgray] javítási sebesség ability.stat.slurpheal = [stat]{0}[lightgray] életerő/folyadékegység ability.stat.cooldown = [stat]{0} mp[lightgray] újratöltődés @@ -1053,12 +1053,12 @@ ability.stat.minspeed = [stat]{0} mező/mp[lightgray] min. sebesség ability.stat.duration = [stat]{0} mp[lightgray] időtartam ability.stat.buildtime = [stat]{0} mp[lightgray] építési idő -bar.onlycoredeposit = Csak a támaszpont elhelyezése megengedett +bar.onlycoredeposit = Nyersanyagtárolás csak a támaszpontban. bar.drilltierreq = Erősebb fúró szükséges bar.noresources = Hiányzó nyersanyagok bar.corereq = Támaszpont szükséges bar.corefloor = Támaszpont zónamező szükséges -bar.cargounitcap = A rakományszállító egység teljes kapacitáson +bar.cargounitcap = Az egység raktere megtelt bar.drillspeed = Termelés: {0}/mp bar.pumpspeed = Termelés: {0}/mp bar.efficiency = Hatásfok: {0}% @@ -1104,7 +1104,7 @@ bullet.healpercent = [stat]{0}%[lightgray] javítás bullet.healamount = [stat]{0}[lightgray] közvetlen javítás bullet.multiplier = [stat]{0}[lightgray] lőszer/nyersanyag bullet.reload = [stat]{0}%[lightgray] tüzelési sebesség -bullet.range = [stat]{0}[lightgray] csempés hatótávolság +bullet.range = [stat]{0}[lightgray] mezős hatótávolság unit.blocks = blokk unit.blockssquared = blokk² @@ -1122,7 +1122,7 @@ unit.persecond = /mp unit.perminute = /perc unit.timesspeed = x sebesség unit.percent = % -unit.shieldhealth = pajzs életereje +unit.shieldhealth = erőpajzs életereje unit.items = nyersanyag unit.thousands = k unit.millions = mil @@ -1153,7 +1153,7 @@ setting.commandmodehold.name = Lenyomva tartás a parancs módhoz setting.distinctcontrolgroups.name = Egységenként legfeljebb egy vezérlőcsoport setting.modcrashdisable.name = Modok letiltása indításkori összeomláskor setting.animatedwater.name = Animált felületek -setting.animatedshields.name = Animált pajzsok +setting.animatedshields.name = Animált erőpajzsok setting.playerindicators.name = Játékosjelzők setting.indicators.name = Ellenségjelzők setting.autotarget.name = Automatikus célzás @@ -1163,7 +1163,7 @@ setting.fpscap.name = FPS-korlát setting.fpscap.none = Nincs setting.fpscap.text = {0} FPS setting.uiscale.name = Felület méretezése -setting.uiscale.description = A módosítások alkalmazásához újraindítás szükséges. +setting.uiscale.description = A módosítások érvénybe lépéséhez újraindítás szükséges. setting.swapdiagonal.name = Mindig átlós elhelyezés setting.difficulty.training = Kiképzés setting.difficulty.easy = Könnyű @@ -1210,14 +1210,14 @@ setting.chatopacity.name = Csevegő átlátszatlansága setting.lasersopacity.name = Villanyvezeték átlátszatlansága setting.bridgeopacity.name = Híd átlátszatlansága setting.playerchat.name = Játékosok csevegőbuborékainak megjelenítése -setting.showweather.name = Időjárásgrafika megjelenítése +setting.showweather.name = Időjárás-grafika megjelenítése setting.hidedisplays.name = Logikai kijelzők elrejtése setting.macnotch.name = A felület igazítása a kijelző bevágásához setting.macnotch.description = A változtatások érvénybe lépéséhez újraindítás szükséges steam.friendsonly = Csak barátok steam.friendsonly.tooltip = Csak a Steam-barátok tudnak kapcsolódni a játékodhoz.\nHa nem jelölöd be ezt a négyzetet, a játékod nyilvános lesz – bárki kapcsolódhat hozzá. public.beta = Ne feledd, hogy a játék béta verziójában nem tudsz nyilvános szobát nyitni. -uiscale.reset = A felület mérete megváltozott.\nAz „OK” gombbal megerősítheted ezt a méretet.\n[scarlet]Visszavonás és kilépés [accent] {0}[] másodperc múlva... +uiscale.reset = A felület mérete megváltozott.\nAz „OK” gombbal megerősítheted ezt a méretet.\n[scarlet]Automatikus visszavonás és kilépés [accent] {0}[] másodperc múlva... uiscale.cancel = Mégse és kilépés setting.bloom.name = Bloom keybind.title = Billentyűk átállítása @@ -1291,7 +1291,7 @@ keybind.pick.name = Blokk kiválasztása keybind.break_block.name = Blokk törlése keybind.select_all_units.name = Összes egység kijelölése keybind.select_all_unit_factories.name = Összes egységgyár kijelölése -keybind.deselect.name = Blokkkijelölés törlése +keybind.deselect.name = Blokk-kijelölés törlése keybind.pickupCargo.name = Rakomány felvétele keybind.dropCargo.name = Rakomány lerakása keybind.shoot.name = Lövés @@ -1328,7 +1328,7 @@ mode.attack.description = Pusztítsd el az ellenség bázisát. \n[gray]Piros t mode.custom = Egyéni szabályok rules.invaliddata = Érvénytelen adatok vannak a vágólapon. -rules.hidebannedblocks = Tiltott blokkok elrejtése +rules.hidebannedblocks = Tiltott épületek elrejtése rules.infiniteresources = Végtelen nyersanyagforrás rules.onlydepositcore = Csak a támaszpontok elhelyezése engedélyezett rules.derelictrepair = Az elhagyatott épületek javításának engedélyezése @@ -1373,7 +1373,7 @@ rules.buildcostmultiplier = Építési költség szorzója rules.buildspeedmultiplier = Építési sebesség szorzója rules.deconstructrefundmultiplier = Bontási visszatérítés szorzója rules.waitForWaveToEnd = Az ellenség kivárja a korábbi hullám végét -rules.wavelimit = A pálya az utolsó hullám után ér véget +rules.wavelimit = A pálya érjen véget ennyi hullám után rules.dropzoneradius = A ledobási zóna sugara:[lightgray] (mező) rules.unitammo = Az egységeknek lőszer kell [red](törölhető) rules.enemyteam = Ellenséges csapat @@ -1397,7 +1397,7 @@ rules.weather.frequency = Gyakoriság: rules.weather.always = Mindig rules.weather.duration = Időtartam: -rules.placerangecheck.info = Megakadályozza, hogy a játékosok lövegtornyokat helyezzenek el az ellenséges épületek közelében. Amikor megpróbálnak egy lövegtornyot elhelyezni, az építési távolság megnő, így a lövegtorony nem fogja elérni az ellenséget. +rules.placerangecheck.info = Megakadályozza, hogy a játékosok lövegtornyokat helyezzenek el az ellenséges épületek közelében.\nAmikor megpróbálnak egy lövegtornyot elhelyezni, az építési távolság megnő, így a lövegtorony nem fogja elérni az ellenséget. rules.onlydepositcore.info = Megakadályozza, hogy az egységek nyersanyagokat helyezzenek el a támaszponton kívül más épületekbe. content.item.name = Nyersanyagok @@ -1541,9 +1541,9 @@ block.graphite-press.name = Grafitprés block.multi-press.name = Grafitsajtoló block.constructing = {0} [lightgray](építés alatt) block.spawn.name = Ellenséges kezdőpont -block.core-shard.name = Támaszpont: Szilánk -block.core-foundation.name = Támaszpont: Alapítvány -block.core-nucleus.name = Támaszpont: Atommag +block.core-shard.name = Szilánk +block.core-foundation.name = Alapítvány +block.core-nucleus.name = Atommag block.deep-water.name = Mély víz block.shallow-water.name = Víz block.tainted-water.name = Szennyezett víz @@ -1624,12 +1624,12 @@ block.world-switch.name = Világkapcsoló block.illuminator.name = Világítótest block.overflow-gate.name = Túlcsorduló kapu block.underflow-gate.name = Alulcsorduló kapu -block.silicon-smelter.name = Szilícium kohó +block.silicon-smelter.name = Szilíciumkohó block.phase-weaver.name = Tóritkvarcképző -block.pulverizer.name = Porlasztó +block.pulverizer.name = Törmelékdaráló block.cryofluid-mixer.name = Hűtőfolyadék-keverő block.melter.name = Olvasztó -block.incinerator.name = Törmelékégető +block.incinerator.name = Égetőkamra block.spore-press.name = Spóraprés block.separator.name = Leválasztó block.coal-centrifuge.name = Széncentrifuga @@ -1646,7 +1646,7 @@ block.impact-reactor.name = Ütközéses erőmű block.mechanical-drill.name = Mechanikus fúró block.pneumatic-drill.name = Pneumatikus fúró block.laser-drill.name = Lézerfúró -block.water-extractor.name = Vízkinyerő +block.water-extractor.name = Kútfúró torony block.cultivator.name = Betakarító block.conduit.name = Csővezeték block.mechanical-pump.name = Mechanikus szivattyú @@ -1670,7 +1670,7 @@ block.pyratite-mixer.name = Piratitkeverő block.blast-mixer.name = Robbanóelegy-keverő block.solar-panel.name = Napelem block.solar-panel-large.name = Nagy napelem -block.oil-extractor.name = Olajleválasztó +block.oil-extractor.name = Olajfúró torony block.repair-point.name = Javítási pont block.repair-turret.name = Javítótorony block.pulse-conduit.name = Impulzus-csővezeték @@ -1678,7 +1678,7 @@ block.plated-conduit.name = Lemezelt csővezeték block.phase-conduit.name = Tóritkvarc-csővezeték block.liquid-router.name = Folyadékelosztó block.liquid-tank.name = Folyadéktartály -block.liquid-container.name = Folyadéktároló +block.liquid-container.name = Folyadéktározó block.liquid-junction.name = Csővezeték-átkötés block.bridge-conduit.name = Csővezetékhíd block.rotary-pump.name = Fogaskerekes szivattyú @@ -1696,9 +1696,9 @@ block.cyclone.name = Cyclone block.fuse.name = Fuse block.shock-mine.name = Sokkoló taposóakna block.overdrive-projector.name = Túlhajtó kivetítő -block.force-projector.name = Erőkivetítő +block.force-projector.name = Erőpajzs-kivetítő block.arc.name = Arc -block.rtg-generator.name = RTG erőmű +block.rtg-generator.name = R. T. Generátor block.spectre.name = Spectre block.meltdown.name = Meltdown block.foreshadow.name = Foreshadow @@ -1771,7 +1771,7 @@ block.carbon-wall.name = Szénfal block.ferric-stone-wall.name = Vasaskő-fal block.beryllic-stone-wall.name = Berilliumoskő-fal block.arkyic-wall.name = Arkicites fal -block.crystalline-stone-wall.name = Kristályos kőFal +block.crystalline-stone-wall.name = Kristályos kőfal block.red-ice-wall.name = Vörösjég-fal block.red-stone-wall.name = Vöröskő-fal block.red-diamond-wall.name = Vörösgyémánt-fal @@ -1792,7 +1792,7 @@ block.red-ice-boulder.name = Vörösjég-szikla block.rhyolite-boulder.name = Riolit szikla block.red-stone-boulder.name = Vöröskő-szikla block.graphitic-wall.name = Grafit fal -block.silicon-arc-furnace.name = Szilícium ívkemence +block.silicon-arc-furnace.name = Szilícium-ívkemence block.electrolyzer.name = Elektrolizátor block.atmospheric-concentrator.name = Atmoszferikus sűrítő block.oxidation-chamber.name = Oxidációs kamra @@ -1801,7 +1801,7 @@ block.slag-heater.name = Salakos fűtőtest block.phase-heater.name = Tóritkvarcos fűtőtest block.heat-redirector.name = Hőelvezető block.heat-router.name = Hőelosztó -block.slag-incinerator.name = Salakégető kemence +block.slag-incinerator.name = Salakos égetőkamra block.carbide-crucible.name = Karbidolvasztó block.slag-centrifuge.name = Salakcentrifuga block.surge-crucible.name = Elektrometál-olvasztó @@ -1822,8 +1822,8 @@ block.radar.name = Radar block.build-tower.name = Építőtorony block.regen-projector.name = Regeneráló kivetítő block.shockwave-tower.name = Sokkhullámtorony -block.shield-projector.name = Pajzskivetítő -block.large-shield-projector.name = Nagy pajzskivetítő +block.shield-projector.name = Erőpajzs-kivetítő +block.large-shield-projector.name = Nagy erőpajzs-kivetítő block.armored-duct.name = Páncélozott szállítószalag block.overflow-duct.name = Túlcsorduló kapu block.underflow-duct.name = Alulcsorduló kapu @@ -1837,7 +1837,7 @@ block.reinforced-conduit.name = Megerősített csővezeték block.reinforced-liquid-junction.name = Megerősített folyadékátkötés block.reinforced-bridge-conduit.name = Megerősített csővezetékhíd block.reinforced-liquid-router.name = Megerősített folyadékelosztó -block.reinforced-liquid-container.name = Megerősített folyadékkonténer +block.reinforced-liquid-container.name = Megerősített folyadéktározó block.reinforced-liquid-tank.name = Megerősített folyadéktartály block.beam-node.name = Sugárcsomópont block.beam-tower.name = Sugártorony @@ -1855,7 +1855,7 @@ block.core-bastion.name = Bástya block.core-citadel.name = Citadella block.core-acropolis.name = Akropolisz block.reinforced-container.name = Megerősített konténer -block.reinforced-vault.name = Megerősített tároló +block.reinforced-vault.name = Megerősített raktár block.breach.name = Breach block.sublimate.name = Sublimate block.titan.name = Titan @@ -1935,10 +1935,10 @@ hint.payloadPickup.mobile = [accent]Koppints és tartsd lenyomva az ujjad[] egy hint.payloadDrop = Nyomd le a [accent]][] gombot a rakomány lerakásához. hint.payloadDrop.mobile = [accent]Koppints és tartsd lenyomva az ujjad[] egy üres területen a rakomány lerakásához. hint.waveFire = A vizet lőszerként használó [accent]Wave[] lövegtornyok automatikusan eloltják a közeli tüzeket. -hint.generator = Az \uf879 [accent]égetőerőmű[] szenet éget, és áramot ad át a vele érintkező épületeknek.\n\nAz áramszállítás távolsága [accent]villanyoszlopokkal[] növelhető. -hint.guardian = Az [accent]Őrzők[] páncélozottak. A gyenge lövedékek, mint a [accent]réz[] vagy az [accent]ólom[] [scarlet]nem hatásosak[] az Őrző páncéljával szemben.\n\nHasználj magasabb szintű lövegtornyokat, vagy \uf835 [accent]grafitot[] a Duo/\uf859Salvo lövegtornyokban, hogy leszedd az Őrzőket. +hint.generator = Az \uf879 [accent]Égetőerőmű[] szenet éget, és áramot ad át a vele érintkező épületeknek.\n\nAz áramszállítás távolsága további \uf87f [accent]Villanyoszlopokkal[] növelhető. +hint.guardian = Az [accent]Őrzők[] páncélozottak. A gyenge lövedékek, mint a [accent]réz[] vagy az [accent]ólom[] [scarlet]nem hatásosak[] az Őrző páncéljával szemben.\n\nHasználj magasabb szintű lövegtornyokat, vagy juttass \uf835 [accent]grafitot[] a \uf861 Duo / \uf859 Salvo lövegtornyokba, hogy leszedd az Őrzőket. hint.coreUpgrade = A támaszpont úgy fejleszthető, hogy [accent]magasabb szintű támaszpontot teszel rá[].\n\nHelyezz egy \uf868 [accent]Alapítvány[] támaszpontot a \uf869 [accent]Szilánk[] támaszpontra. Figyelj rá, hogy ne legyenek az új támaszpont területén épületek. -hint.presetLaunch = A szürke [accent]landolási zónát tartalmazó szektorokba[], amilyen például a [accent]Fagyott erdő[], bárhonnan kilőhetsz. Nem szükséges hozzá szomszédos területet elfoglalnod.\n\nA [accent]számozott szektorok[], mint ez is, [accent]nem kötelezők[]. +hint.presetLaunch = A szürke [accent]landolási zónát tartalmazó szektorokba[], amilyen például a [accent]Fagyott erdő[], bárhonnan kilőhetsz. Nem szükséges hozzá szomszédos területet elfoglalnod.\n\nA [accent]számozott szektorokat[], mint ez is, a játékmenet szempontjából [accent]nem fontos[] elfoglalni. hint.presetDifficulty = Ebben a szektorban [scarlet]magas az ellenséges fenyegetettségi szint[].\nAz ilyen szektorokba való indulás [accent]nem ajánlott[] megfelelő technológia és felkészülés nélkül. hint.coreIncinerate = Ha a támaszpont egy nyersanyagból elérte a maximumot, a beérkező további nyersanyagok azonnal [accent]megsemmisítésre kerülnek[]. hint.factoryControl = Egy egységgyár [accent]kimeneti célpontjának[] beállításához kattints parancs módban egy gyárépületre, majd kattints jobb egérgombbal egy helyre.\nAz előállított egységek automatikusan odamennek. @@ -1946,8 +1946,8 @@ hint.factoryControl.mobile = Egy egységgyár [accent]kimeneti célpontjának[] gz.mine = Menj a földön lévő \uf8c4 [accent]rézérc[] közelébe, és kattints a bányászat megkezdéséhez. gz.mine.mobile = Menj a földön lévő \uf8c4 [accent]rézérc[] közelébe, és koppints a bányászat megkezdéséhez. -gz.research = Nyisd meg a \ue875 Technológia fát.\nFejleszd ki a \uf870 [accent]Mechanikus fúrót[], majd válaszd ki a jobb alsó sarokban lévő menüből.\nKattints egy rézfoltra az elhelyezéséhez. -gz.research.mobile = Nyisd meg a \ue875 Technológia fát.\nFejleszd ki a \uf870 [accent]Mechanikus fúrót[], majd válaszd ki a jobb alsó sarokban lévő menüből.\nKattints egy rézfoltra az elhelyezéséhez.\n\nA megerősítéshez nyomd meg a jobb alsó sarokban lévő \ue800 [accent]pipát[]. +gz.research = Nyisd meg a \ue875 Technológia fát.\nFejleszd ki a \uf870 [accent]Mechanikus fúrót[], majd válaszd ki a jobb alsó sarokban lévő \ue85e menüből.\nKattints egy rézfoltra az elhelyezéséhez. +gz.research.mobile = Nyisd meg a \ue875 Technológia fát.\nFejleszd ki a \uf870 [accent]Mechanikus fúrót[], majd válaszd ki a jobb alsó sarokban lévő \ue85e menüből.\nKattints egy rézfoltra az elhelyezéséhez.\n\nA megerősítéshez nyomd meg a jobb alsó sarokban lévő \ue800 [accent]pipát[]. gz.conveyors = Fejleszd ki, és építs \uf896 [accent]Szállítószalagokat[], hogy a kitermelt\nnyersanyagokat eljuttasd a fúróktól a támaszpontba.\n\nKattints és húzd az egeret, hogy több szállítószalagot helyezz el.\nHasználd a [accent]görgőt[] a forgatáshoz. gz.conveyors.mobile = Fejleszd ki, és építs \uf896 [accent]Szállítószalagokat[], hogy a kitermelt\nnyersanyagokat eljuttasd a fúróktól a támaszpontba.\n\nTartsd lenyomva az ujjad és húzd el, hogy több szállítószalagot helyezz el. gz.drills = Bővítsd a bányászati kapacitást.\nÉpíts több mechanikus fúrót.\nBányássz 100 rezet. @@ -1962,7 +1962,7 @@ gz.scatterammo = Szállítószalagok segítségével lásd el \uf837 [accent]ól gz.supplyturret = [accent]Lövegtorony ellátása gz.zone1 = Ez az ellenség leszállóhelye. gz.zone2 = Bármi, ami a hatósugarában épült, elpusztul, amikor egy hullám elindul. -gz.zone3 = Egy hullám most kezdődik.\nKészülj fel. +gz.zone3 = Egy hullám most kezdődik.\nKészülj fel! gz.finish = Építs több lövegtornyot, bányássz több nyersanyagot,\nés védekezz az ellenséges hullámok ellen, hogy [accent]elfoglald a szektort[]. onset.mine = Kattints bal egérgombbal a \uf748 [accent]berillium[] kibányászáshoz a falakból.\n\nA mozgáshoz használd a [accent][[WASD] gombokat. @@ -1974,8 +1974,8 @@ onset.ducts = Fejleszd ki, és építs \uf799 [accent]Szállítószalagot[], hog onset.ducts.mobile = Fejleszd ki, és építs \uf799 [accent]Szállítószalagot[], hogy a kitermelt nyersanyagokat eljuttasd a plazmafúrótól a támaszpontba.\n\nTartsd lenyomva az ujjad és húzd el, hogy több szállítószalagot helyezz el. onset.moremine = Bővítsd a bányászati kapacitást.\nHelyezz el több plazmavágót, és a támogatásukhoz használj sugárcsomópontokat és szállítószalagokat.\nBányássz 200 berilliumot. onset.graphite = Az összetettebb épületekhez \uf835 [accent]grafit[] szükséges.\nÉpíts plazmavágókat a grafit kibányászásához. -onset.research2 = Kezdd el a [accent]gyárak[] fejlesztését.\nFejleszd ki a \uf74d [accent]Sziklazúzót[] és a \uf779 [accent]Szilícium ívkemencét[]. -onset.arcfurnace = A szilícium ívkemencének \uf834 [accent]homokra[] és \uf835 [accent]grafitra[] van szüksége, hogy \uf82f [accent]szilíciumot[] gyártson.\nTovábbá [accent]áram[] is szükséges a működéséhez. +onset.research2 = Kezdd el a [accent]gyárak[] fejlesztését.\nFejleszd ki a \uf74d [accent]Sziklazúzót[] és a \uf779 [accent]Szilícium-ívkemencét[]. +onset.arcfurnace = A szilícium-ívkemencének \uf834 [accent]homokra[] és \uf835 [accent]grafitra[] van szüksége, hogy \uf82f [accent]szilíciumot[] gyártson.\nTovábbá [accent]áram[] is szükséges a működéséhez. onset.crusher = Használj \uf74d [accent]Sziklazúzókat[], hogy homokot bányász. onset.fabricator = Használd az [accent]egységeket[], hogy felfedezd a pályát, megvédd az épületeket, és megtámadhasd velük az ellenséget. Fejleszd ki, és helyezz el egy \uf6a2 [accent]Tankgyártót[]. onset.makeunit = Állíts elő egy egységet.\nHasználd a „?” gombot, hogy megnézd a kiválasztott gyár követelményeit. @@ -1984,8 +1984,8 @@ onset.turretammo = Szállítótalagok használatával lásd el a lövegtornyokat onset.walls = A [accent]falak[] megakadályozhatják, hogy az épületekben károk keletkezzenek.\nÉpíts \uf6ee [accent]Berillium falakat[] a lövegtornyok körül. onset.enemies = Az ellenség közeledik, készülj fel a védekezésre. onset.defenses = [accent]Állíts fel védelmet:[lightgray] {0} -onset.attack = Az ellenség most sebezhető. Indíts ellentámadást. -onset.cores = Új támaszpont csak a [accent]támaszpontcsempére[] helyezhető.\nAz új támaszpontok előretolt bázisként működnek, és megosztják a nyersanyagkészletüket más támaszpontokkal.\nHelyezz el egy \uf725 támaszpontot. +onset.attack = Az ellenség most sebezhető. Indíts ellentámadást! +onset.cores = Új támaszpont csak a [accent]támaszpontmezőre[] helyezhető.\nAz új támaszpontok előretolt bázisként működnek, és megosztják a nyersanyagkészletüket más támaszpontokkal.\nHelyezz el egy \uf725 támaszpontot. onset.detect = Az ellenség 2 percen belül észrevesz téged.\nÁllíts fel védelmet, bányászatot és termelést. onset.commandmode = Tartsd nyomva a [accent]Shift[] gombot, hogy [accent]parancs módba[] lépj.\n[accent]Bal egérgombbal és húzással[] lehet egységeket kijelölni.\n[accent]Jobb egérgombbal[] az egységek mozgásra vagy támadásra utasíthatóak. onset.commandmode.mobile = Nyomd meg a [accent]parancs gombot[], hogy [accent]parancs módba[] lépj.\nTartsd nyomva az ujjad, majd [accent]húzd[] az egységek kiválasztásához.\n[accent]Koppintással[] az egységek mozgásra vagy támadásra utasíthatóak. @@ -2037,7 +2037,7 @@ liquid.hydrogen.description = A nyersanyagok kitermelésében, egységgyártásb liquid.cyanogen.description = Lőszerként, fejlett egységek építéséhez és különböző reakciókhoz használatos a fejlett blokkokban. Erősen gyúlékony. liquid.nitrogen.description = A nyersanyagok kitermelésénél, gáztermelésnél és egységgyártásnál is használatos. Semleges gáz. liquid.neoplasm.description = A neopláziareaktor veszélyes biológiai mellékterméke. Gyorsan átterjed minden szomszédos víztartalmú blokkra, amelyhez hozzáér, és közben károsítja azokat. Sűrű folyadék. -liquid.neoplasm.details = Neoplazma. Egy kontrollálhatatlan, gyorsan osztódó, iszap állagú, szintetikus sejtmassza. Hőálló. Rendkívül veszélyes minden vízzel kapcsolatos szerkezetre.\n\nTúl összetett és instabil a szabványos elemzésekhez. Potenciális alkalmazási területe ismeretlen. A salakmedencékben való elégetés ajánlott. +liquid.neoplasm.details = Neoplazma. Egy kontrollálhatatlan, gyorsan osztódó, iszap állagú, szintetikus sejtmassza. Hőálló. Rendkívül veszélyes minden vízzel kapcsolatos szerkezetre.\n\nTúl összetett és instabil a szabványos elemzésekhez. Potenciális alkalmazási területe ismeretlen. Ajánlott elégetni a salakos égetőkamrákban. block.derelict = \uf77e [lightgray]Elhagyatott block.armored-conveyor.description = Nyersanyagokat szállít. Nem fogad el oldalról nem szállítószalagról érkező nyersanyagot. @@ -2046,19 +2046,19 @@ block.message.description = Üzenetet tárol a szövetségesek kommunikációjá block.reinforced-message.description = Üzenetet tárol a szövetségesek közötti kommunikációhoz. block.world-message.description = A pályakészítésben használható üzenetblokk. Nem lehet megsemmisíteni. block.graphite-press.description = Grafittá préseli a szenet. -block.multi-press.description = Grafittá sajtolja a szenet. Hűtéséhez viz szükséges. +block.multi-press.description = Grafittá sajtolja a szenet. Hűtéséhez víz szükséges. block.silicon-smelter.description = A homokot és a szenet szilíciummá finomítja. block.kiln.description = Ólomüveget olvaszt az ólomból és a homokból. block.plastanium-compressor.description = Olaj és titán felhasználásával műanyagot gyárt. block.phase-weaver.description = Tórium és homok keverékéből tóritkvarcot állít elő. block.surge-smelter.description = Titán, ólom, szilícium és réz ötvözésével elektrometált állít elő. block.cryofluid-mixer.description = Finom titánpor vízhez keverésével hűtőfolyadékot állít elő. -block.blast-mixer.description = Robbanóelegyet készít a piratitból és a spórakapszulákból. +block.blast-mixer.description = Robbanóelegyet gyárt piratitból és spórakapszulából. block.pyratite-mixer.description = Piratittá vegyíti a szenet, a homokot és az ólmot. block.melter.description = Salakká olvasztja a törmeléket. block.separator.description = Ásványi összetevőire bontja a salakot. block.spore-press.description = Olajat sajtol a spórakapszulából. -block.pulverizer.description = Finom homokká őrli a törmeléket. +block.pulverizer.description = Finom homokká darálja a törmeléket. block.coal-centrifuge.description = Szénné alakítja az olajat. block.incinerator.description = Megsemmisít minden nyersanyagot és folyadékot. block.power-void.description = Elnyel minden áramot. Csak homokozó módban. @@ -2085,15 +2085,15 @@ block.door.description = Nyitható és zárható fal. block.door-large.description = Nyitható és zárható fal. block.mender.description = Időnként javítja a közeli épületeket.\nSzilíciummal növelhető a hatósugara és hatékonysága. block.mend-projector.description = Javítja a közeli épületeket.\nTóritkvarccal növelhető a hatósugara és hatékonysága. -block.overdrive-projector.description = Növeli a közeli épületek termelési sebességét.\nTóritkvarccal növelhető a hatósugara és hatékonysága. -block.force-projector.description = Hatszögletű erőteret hoz létre maga körül, amely megvédi az épületeket és a benne lévő egységeket a sérüléstől.\nTúlmelegszik, ha túl sok sérülést szenved. Hűtőfolyadékot használva megakadályozható a túlmelegedés. A tóritkvarc növeli a pajzs méretét. +block.overdrive-projector.description = Megöveli a környező épületek termelési sebességét.\nTóritkvarccal növelhető a hatósugara és hatékonysága. +block.force-projector.description = Hatszögletű erőpajzsot hoz létre maga körül, amely megvédi a benne lévő épületeket és egységeket a sérüléstől.\nTúlmelegszik, ha túl sok sérülést szenved. Hűtőfolyadék használatával megakadályozható a túlmelegedés. A tóritkvarc megnöveli az erőpajzs méretét. block.shock-mine.description = Elektromos kisülést hoz létre, ha ellenséggel érintkezik. block.conveyor.description = Nyersanyagokat szállít. block.titanium-conveyor.description = Nyersanyagokat szállít. Gyorsabb a sima szállítószalagnál. block.plastanium-conveyor.description = Nyersanyagokat szállít tömbösítve. Hátulról fogadja a nyersanyagokat, elöl három irányba osztja szét őket. Több kezdő- és végponttal növelhető az áteresztőképessége. block.junction.description = Hídként működik két egymást keresztező szállítószalag között. block.bridge-conveyor.description = Nyersanyagokat szállít épületek és terepakadályok fölött. -block.phase-conveyor.description = Nyersanyagokat szállít épületek és terepakadályok fölött. Nagyobb távolságra ér, mint a sima szállítószalaghíd, de áramot igényel. +block.phase-conveyor.description = Nyersanyagokat szállít épületek és terepakadályok fölött. Nagyobb távolságra ér, mint a sima szállítószalaghíd, de áramot fogyaszt. block.sorter.description = Csak a kiválasztott nyersanyagot engedi tovább egyenesen, minden mást oldalra ad ki. block.inverted-sorter.description = Hasonló a szokásos válogatóhoz, de a kiválasztott nyersanyagot oldalra adja ki. block.router.description = Egyenletesen háromfelé osztja szét a beérkező nyersanyagokat. @@ -2102,8 +2102,8 @@ block.distributor.description = Egyenletesen hétfelé osztja szét a beérkező block.overflow-gate.description = Csak akkor ad ki nyersanyagot oldalra, ha előrefelé már nem tud. block.underflow-gate.description = A túlcsorduló kapu ellentettje. Csak akkor ad ki nyersanyagot előrefelé, ha oldalra már nem tud. block.mass-driver.description = Nagy hatótávolságú nyersanyagszállító eszköz. Rakományokat gyűjt össze, és átlövi egy másik, hozzákapcsolt tömegmozgatónak. -block.mechanical-pump.description = Folyadékot szivattyúz és ad ki. Nem igényel áramot. -block.rotary-pump.description = Folyadékot szivattyúz és ad ki. Áramot igényel. +block.mechanical-pump.description = Folyadékot szivattyúz és ad ki. Nem fogyaszt áramot. +block.rotary-pump.description = Folyadékot szivattyúz és ad ki. Áramot fogyaszt. block.impulse-pump.description = Folyadékot szivattyúz és ad ki. block.conduit.description = Folyadékot szállít. Szivattyúkkal és egyéb csővezetékekkel együtt használatos. block.pulse-conduit.description = Folyadékot szállít. Gyorsabban szállít, és nagyobb tárolókapacitású, mint a szokásos csővezeték. @@ -2113,11 +2113,11 @@ block.liquid-container.description = Jelentős mennyiségű folyadékot tárol. block.liquid-tank.description = Nagy mennyiségű folyadékot tárol. Minden oldalon kiadja, hasonlóan a folyadékelosztóhoz. block.liquid-junction.description = Hídként működik két egymást keresztező csővezeték között. block.bridge-conduit.description = Folyadékot szállít épületek és terepakadályok fölött. -block.phase-conduit.description = Folyadékot szállít épületek és terepakadályok fölött. Nagyobb távolságra ér, mint a sima csővezetékhíd, de áramot igényel. -block.power-node.description = Áramot vezet az összekapcsolt csomópontokhoz. A szomszédos blokkokkal automatikusan kapcsolatban van. +block.phase-conduit.description = Folyadékot szállít épületek és terepakadályok fölött. Nagyobb távolságra ér, mint a sima csővezetékhíd. Áramot fogyaszt. +block.power-node.description = Áramot vezet az összekapcsolt csomópontokhoz. A szomszédos blokkokkal automatikusan kapcsolatba kerül megépítéskor. block.power-node-large.description = Nagyobb villanyoszlop, nagyobb hatótávolsággal. block.surge-tower.description = Hosszútávú villanyoszlop, kevesebb elérhető kapcsolattal. -block.diode.description = Az eltárolt áramot irányítja egy irányba továbbítja, de csak akkor, ha a fogadó oldalon kevesebb van tárolva. +block.diode.description = Az eltárolt áramot egy irányba engedi át, de csak akkor, ha a fogadó oldalon kevesebb van tárolva. block.battery.description = Áramot tárol el, ha túltermelés van. Leadja az áramot, ha hiány van. block.battery-large.description = Áramot tárol el, ha túltermelés van. Leadja az áramot, ha hiány van. Nagyobb kapacitású a szokásos akkumulátornál. block.combustion-generator.description = Áramot termel éghető anyagok, például szén, elégetésével. @@ -2127,24 +2127,24 @@ block.differential-generator.description = Nagy mennyiségű áramot termel. A h block.rtg-generator.description = A radioaktív bomlás energiáját hasznosítja, hogy lassan, de biztosan áramot termeljen. block.solar-panel.description = Napfényből állít elő kevés áramot. block.solar-panel-large.description = Napfényből állít elő kevés áramot. Hatékonyabb a szokásos napelemnél. -block.thorium-reactor.description = Jelentős mennyiségű áramot állít elő tóriumból. Állandó hűtést igényel. Ha nincs megfelelően hűtőfolyadékkal ellátva, akkor felrobban. -block.impact-reactor.description = Csúcsra járatva rengeteg áramot termel. A reakció beindítása jelentős árambefektetést igényel. +block.thorium-reactor.description = Jelentős mennyiségű áramot termel tóriumból. Állandó hűtést igényel. Ha nincs megfelelően hűtőfolyadékkal ellátva, akkor felrobban. +block.impact-reactor.description = Csúcsra járatva rengeteg áramot termel. A reakció beindítása jelentős áramfogyasztással jár. block.mechanical-drill.description = Ércre helyezve lassú tempóban termeli ki az adott nyersanyagot. Csak alapvető nyersanyagok kitermelésére képes. block.pneumatic-drill.description = Egy olyan, fejlettebb fúró, amely titán kitermelésére is alkalmas. Gyorsabban dolgozik a mechanikus fúrónál. -block.laser-drill.description = Lézerek használatával még gyorsabban tud dolgozni, de áramot igényel. Képes tóriumot kitermelni. -block.blast-drill.description = A technológia csúcsa. Nagy mennyiségű áramot igényel. +block.laser-drill.description = Lézerek használatával még gyorsabban tud dolgozni. Áramot fogyaszt. Képes tóriumot kitermelni. +block.blast-drill.description = A technológia csúcsa. Nagy mennyiségű áramot fogyaszt. block.water-extractor.description = Kiszivattyúzza a talajvizet. Olyan helyeken használatos, ahol nem érhető el felszíni vízforrás. block.cultivator.description = A légkörben szálló spórákat kapszulákba sűríti. block.cultivator.details = Visszaszerzett technológia. Hatalmas tömegű biomassza gyártására alkalmas a lehető leghatékonyabban. Valószínűleg a Serpulo felszínét ma borító spórák kezdeti inkubátora. -block.oil-extractor.description = Nagy mennyiségű áramot, homokot és vizet használ, hogy olajat fúrjon. +block.oil-extractor.description = Nagy mennyiségű áramot fogyaszt, továbbá homokot és vizet igényel az olajfúráshoz. block.core-shard.description = Támaszpont. Ha elpusztul, a szektor elveszett. block.core-shard.details = Az első modell. Kompakt. Önsokszorosító. Egyszer használatos gyorsítórakétákkal van felszerelve, nem bolygóközi utazásra tervezték. block.core-foundation.description = Támaszpont. Jól páncélozott. Több nyersanyagot tárol, mint a Szilánk. block.core-foundation.details = A második modell. block.core-nucleus.description = Támaszpont. Rendkívül jól páncélozott. Hatalmas mennyiségű nyersanyag tárolására képes. block.core-nucleus.details = A harmadik, végső modell. -block.vault.description = Nagy mennyiséget tárol minden nyersanyagtípusból. Bővíti a raktárat, ha egy támaszpont mellé van helyezve. A tartalma kirakodó segítségével nyerhető ki. -block.container.description = Kis mennyiséget tárol minden nyersanyagtípusból. Bővíti a raktárat, ha egy támaszpont mellé van helyezve. A tartalma kirakodó segítségével nyerhető ki. +block.vault.description = Nagy mennyiséget tárol minden nyersanyagtípusból. Növeli a támaszpont tárolókapacitását, ha egy támaszpont mellé van helyezve. A tartalma kirakodó segítségével nyerhető ki. +block.container.description = Kis mennyiséget tárol minden nyersanyagtípusból. Növeli a támaszpont tárolókapacitását, ha egy támaszpont mellé van helyezve. A tartalma kirakodó segítségével nyerhető ki. block.unloader.description = Kirakodja a szomszédos épületekből a kiválasztott nyersanyagot. block.launch-pad.description = Nyersanyagokat juttat el más szektorokba. block.launch-pad.details = Szuborbitális rendszer a nyersanyagok szektorok között történő szállítására. A teherkapszulák törékenyek, ezért nem képesek túlélni a légkörbe való visszatérést. @@ -2163,11 +2163,11 @@ block.cyclone.description = Robbanó lövedékeket lő közeli ellenségekre. block.spectre.description = Nagy lövedékekkel tüzel légi és földi célpontokra. block.meltdown.description = Feltöltődés után folyamatos lézersugarat lő a közeli ellenségekre. A működéséhez hűtőfolyadékot igényel. block.foreshadow.description = Egy nagy villámot lő ki egy nagy távolságra lévő célpontra. A magasabb maximális életerővel rendelkező ellenségeket részesíti előnyben. -block.repair-point.description = Folyamatosan javítja a legközelebbi sérült egységet a közelében. +block.repair-point.description = Folyamatosan javítja a hatósugarában lévő legközelebbi sérült egységet. block.segment.description = Megsemmisíti a beérkező lövedékeket. A lézerrel szemben hatástalan. block.parallax.description = Vonónyalábot bocsát ki, amivel magához vonzza, és közben sebzi a légi egységeket. block.tsunami.description = Erős folyadékhullámot lő az ellenségre. Eloltja a tüzeket, ha vízzel van ellátva. -block.silicon-crucible.description = Szilíciumot finomít homokból és szénből, piratitot használ kiegészítő hőforrásként. Forró környezetben még hatékonyabb. +block.silicon-crucible.description = Szilíciumot finomít homokból és szénből, piratitot igényel kiegészítő hőforrásként. Forró környezetben még hatékonyabb. block.disassembler.description = Ritka ásványi összetevőire bontja le a salakot, alacsony hatékonysággal. Képes tóriumot kinyerni. block.overdrive-dome.description = Megnöveli a környező épületek termelési sebességét. A működtetése tóritkvarcot és szilíciumot igényel. block.payload-conveyor.description = Nagy méretű terhet mozgat, például gyárakból érkező egységeket. Mágneses. Használható súlytalanságban. @@ -2188,7 +2188,7 @@ block.memory-bank.description = Információt tárol egy logikai processzor szá block.logic-display.description = Tetszőleges ábrákat jelenít meg egy logikai processzor alapján. block.large-logic-display.description = Tetszőleges ábrákat jelenít meg egy logikai processzor alapján. block.interplanetary-accelerator.description = Hatalmas elektromágneses sínágyútorony. Képes a támaszpontokat szökési sebességre gyorsítani a bolygóközi bevetéshez. -block.repair-turret.description = Folyamatosan javítja a közelében lévő legközelebbi sérült egységet. Opcionálisan elfogad hűtőfolyadékot. +block.repair-turret.description = Folyamatosan javítja a hatósugarában lévő legközelebbi sérült egységet. Opcionálisan elfogad hűtőfolyadékot. #Erekir block.core-bastion.description = Támaszpont. Páncélozott. Ha elpusztul, a szektor elveszett. @@ -2206,7 +2206,7 @@ block.smite.description = Átütő erejű, villámló lövedékeket lő ki. block.malign.description = Lézertöltetekből álló célzott sortüzet zúdít az ellenséges célpontokra. Jelentős fűtést igényel. block.silicon-arc-furnace.description = A homokot és a grafitot szilíciummá finomítja. block.oxidation-chamber.description = A berilliumot és az ózont oxiddá alakítja. Melléktermékként hőt bocsát ki. -block.electric-heater.description = Fűti a vele szemben álló épületeket. Nagy mennyiségű áramot igényel. +block.electric-heater.description = Fűti a vele szemben álló épületeket. Nagy mennyiségű áramot fogyaszt. block.slag-heater.description = Fűti a vele szemben álló épületeket. Salakot igényel. block.phase-heater.description = Fűti a vele szemben álló épületeket. Tóritkvarcot igényel. block.heat-redirector.description = Más blokkokba irányítja a felgyülemlett hőt. @@ -2218,11 +2218,11 @@ block.phase-synthesizer.description = Tóriumból, homokból és ózonból tóri block.carbide-crucible.description = A grafitot és a volfrámot karbiddá olvasztja. Hőt igényel. block.cyanogen-synthesizer.description = Arkicitből és grafitból diciánt szintetizál. Hőt igényel. block.slag-incinerator.description = Elégeti a nem illékony nyersanyagokat vagy folyadékokat. Salakot igényel. -block.vent-condenser.description = A kürtőkből kiáramló gázokat vízzé kondenzálja. Áramot igényel. -block.plasma-bore.description = Ércfallal szemben elhelyezve, korlátlanul termel nyersanyagokat. Kis mennyiségű áramot igényel.\nHidrogén felhasználásával növelhető a hatékonysága. -block.large-plasma-bore.description = Egy nagyobb plazmafúró. Képes a volfrám és a tórium bányászatára. Hidrogént és áramot igényel.\nNitrogén felhasználásával növelhető a hatékonysága. -block.cliff-crusher.description = Felőrli a falakat, és korlátlan mennyiségű homokot termel. Áramot igényel. A hatékonysága a fal típusától függően változik. -block.impact-drill.description = Ha ércre helyezik, korlátlan ideig, sorozatokban termeli ki a nyersanyagokat. Áramot és vizet igényel. +block.vent-condenser.description = A kürtőkből kiáramló gázokat vízzé kondenzálja. Áramot fogyaszt. +block.plasma-bore.description = Ércfallal szemben elhelyezve, korlátlanul termel nyersanyagokat. Kis mennyiségű áramot fogyaszt.\nHidrogén felhasználásával növelhető a hatékonysága. +block.large-plasma-bore.description = Egy nagyobb plazmafúró. Képes a volfrám és a tórium bányászatára. Hidrogént igényel és áramot fogyaszt.\nNitrogén felhasználásával növelhető a hatékonysága. +block.cliff-crusher.description = Felőrli a falakat, és korlátlan mennyiségű homokot termel. Áramot fogyaszt. A hatékonysága a fal típusától függően változik. +block.impact-drill.description = Ha ércre helyezik, korlátlan ideig, sorozatokban termeli ki a nyersanyagokat. Áramot fogyaszt és vizet igényel. block.eruption-drill.description = Továbbfejlesztett ütvefúró. Képes tóriumot bányászni. Hidrogént igényel. block.reinforced-conduit.description = Előre szállítja a folyadékokat. Nem fogad nem csővezetékes bemeneteket oldalról. block.reinforced-liquid-router.description = Egyenletesen osztja el a folyadékokat minden oldalra. @@ -2238,18 +2238,18 @@ block.carbide-wall.description = Megvédi az építményeket az ellenséges löv block.carbide-wall-large.description = Megvédi az építményeket az ellenséges lövedékektől. block.reinforced-surge-wall.description = Megvédi az építményeket az ellenséges lövedékektől, a lövedékekkel való érintkezésekor időszakosan elektromos íveket bocsát ki. block.reinforced-surge-wall-large.description = Megvédi az építményeket az ellenséges lövedékektől, a lövedékekkel való érintkezésekor időszakosan elektromos íveket bocsát ki. -block.shielded-wall.description = Megvédi az építményeket az ellenséges lövedékektől. Olyan pajzsot képez, amely a legtöbb lövedéket elnyeli, ha az áramellátás biztosítva van. Vezeti az áramot. +block.shielded-wall.description = Megvédi az építményeket az ellenséges lövedékektől. Olyan erőpajzsot képez, amely a legtöbb lövedéket elnyeli, ha az áramellátás biztosítva van. Vezeti az áramot. block.blast-door.description = Egy fal, amely kinyílik, ha szövetséges földi egységek vannak a közelében. Kézzel nem irányítható. block.duct.description = Előre mozgatja a nyersanyagokat. Csak egyetlen nyersanyag tárolására alkalmas. block.armored-duct.description = Előre mozgatja a nyersanyagokat. Csak szállítószalagos bemeneteket fogad el oldalról. -block.duct-router.description = A nyersanyagokat egyenlően osztja el három irányba. Csak hátulról fogad el nyersanyagokat. Nyersanyagválogatóként is beállítható. +block.duct-router.description = A nyersanyagokat egyenlően osztja el három irányba. Csak hátulról fogad el nyersanyagokat. Nyersanyag-válogatóként is beállítható. block.overflow-duct.description = Csak akkor ad ki nyersanyagot oldalra, ha előrefelé már nem tud. block.duct-bridge.description = Nyersanyagokat szállít épületek és terepakadályok fölött. block.duct-unloader.description = A kiválasztott nyersanyagokat kirakodja a mögötte lévő épületekből. Támaszpontokból nem tud kirakodni. block.underflow-duct.description = A túlcsorduló kapu ellentettje. Csak akkor ad ki nyersanyagot előrefelé, ha oldalra már nem tud. block.reinforced-liquid-junction.description = Csomópontként működik két egymást keresztező csővezeték között. block.surge-conveyor.description = A nyersanyagokat rakományokban mozgatja. Árammal felgyorsítható. Vezeti az áramot. -block.surge-router.description = Egyenletesen osztja el a nyersanyagokat három irányba az elektrometál-szállítószalagról. Árammal felgyorsítható. Vezeti az Áramot. +block.surge-router.description = Egyenletesen osztja el a nyersanyagokat három irányba az elektrometál-szállítószalagról. Árammal felgyorsítható. Vezeti az áramot. block.unit-cargo-loader.description = Teherszállító drónokat épít. A drónok automatikusan szétosztják a nyersanyagokat a megfelelő szűrővel rendelkező kirakodási pontokra. block.unit-cargo-unload-point.description = A teherszállító drónok kirakodási pontjaként működik. Csak a kiválasztott szűrőnek megfelelő nyersanyagokat fogadja be. block.beam-node.description = Merőlegesen áramot vezet a többi blokkhoz. Kis mennyiségű áramot tárol. @@ -2273,14 +2273,14 @@ block.tank-refabricator.description = Kettes szintre fejleszti a beérkező tank block.ship-refabricator.description = Kettes szintre fejleszti a beérkező repülőgép típusú egységeket. block.mech-refabricator.description = Kettes szintre fejleszti a beérkező mech típusú egységeket. block.prime-refabricator.description = Hármas szintre fejleszti a beérkező tank típusú egységeket. -block.basic-assembler-module.description = Növeli az összeszerelő szintjét, ha annak az építési határvonala mellé helyezik. Áramot igényel. Használható nyersanyagrakomány-bemenetként. +block.basic-assembler-module.description = Növeli az összeszerelő szintjét, ha annak az építési határvonala mellé helyezik. Áramot fogyaszt. Használható nyersanyagrakomány-bemenetként. block.small-deconstructor.description = Lebontja a beadott építményeket és egységeket. Visszaadja az építési költség 100%-át. block.reinforced-payload-conveyor.description = Előre mozgatja a rakományokat. block.reinforced-payload-router.description = A rakományokat szomszédos a blokkokba osztja szét. Szűrő beállítása esetén válogatóként működik. block.payload-mass-driver.description = Nagy hatótávolságú rakományszállító épület. A kapott rakományokat egy másik, hozzákapcsolt rakomány-tömegmozgatónak lövi át. block.large-payload-mass-driver.description = Nagy hatótávolságú rakományszállító épület. A kapott rakományokat egy másik, hozzákapcsolt rakomány-tömegmozgatónak lövi át. block.unit-repair-tower.description = Javítja a közelében lévő összes egységet. Ózont igényel. -block.radar.description = Fokozatosan feltárja a terepet és az ellenséges egységeket egy nagy sugarú körben. Áramot igényel. +block.radar.description = Fokozatosan feltárja a terepet és az ellenséges egységeket egy nagy sugarú körben. Áramot fogyaszt. block.shockwave-tower.description = Sérülést okoz és megsemmisíti az ellenséges lövedékeket egy körön belül. Diciánt igényel. block.canvas.description = Egy egyszerű képet jelenít meg egy előre meghatározott palettával. Szerkeszthető. @@ -2291,7 +2291,7 @@ unit.scepter.description = Töltött lövedékek záporát lövi közeli ellens unit.reign.description = Méretes átütő erejű lövedékeket zúdít minden közeli ellenségre. unit.nova.description = Lézerlövedékeket lő ki, amelyek sebzik az ellenséges célpontokat, és megjavítják a szövetséges épületeket. Repülésre alkalmas. unit.pulsar.description = Elektromos szikrákat szór, amelyek sebzik az ellenséges célpontokat, és megjavítják a szövetséges épületeket. Repülésre alkalmas. -unit.quasar.description = Átütő erejű lézersugarakat lő, amelyek sebzik az ellenséges célpontokat, és megjavítják a szövetséges épületeket. Repülésre alkalmas. Pajzsa van. +unit.quasar.description = Átütő erejű lézersugarakat lő, amelyek sebzik az ellenséges célpontokat, és megjavítják a szövetséges épületeket. Repülésre alkalmas. Erőpajzsa van. unit.vela.description = Folyamatos lézernyalábot bocsát ki, amelyek sebzik az ellenséges célpontokat, tüzet okoznak, és megjavítják a szövetséges épületeket. Repülésre alkalmas. unit.corvus.description = Hatalmas lézersugarat lő, amelyek sebzik az ellenséges célpontokat, és megjavítják a szövetséges épületeket. Átlépi a legtöbb terepakadályt. unit.crawler.description = Az ellenséghez rohan és megsemmisíti önmagát, nagy robbanást okozva. @@ -2305,10 +2305,10 @@ unit.zenith.description = Rakétasorozatokat lő közeli ellenségekre. unit.antumbra.description = Lövedékek záporát zúdítja minden közeli ellenségre. unit.eclipse.description = Két átütő erejű lézersugarat és rengeteg lövedéket zúdít minden közeli ellenségre. unit.mono.description = Automatikusan rezet és ólmot bányászik, a támaszpontba juttatva őket. -unit.poly.description = Automatikusan újjáépíti az elpusztult épületeket és segít más egységeknek az építkezésben. -unit.mega.description = Automatikusan javítja a sérült épületeket. Kis blokkok és földi egységek szállítására képes. -unit.quad.description = Plazmabombákat szór földi célpontokra, amelyek sebzik az ellenséget, de javítják a szövetséges épületeket. Közepes méretű földi egységek szállítására képes. -unit.oct.description = Megvédi a közeli szövetségeseket egy regeneráló pajzzsal. A legtöbb földi egység szállítására képes. +unit.poly.description = Automatikusan újjáépíti a lerombolt épületeket és segít más egységeknek az építkezésben. +unit.mega.description = Automatikusan javítja a sérült épületeket. Kis blokkok és földi egységek szállítására is alkalmas. +unit.quad.description = Plazmabombákat szór földi célpontokra, amelyek sebzik az ellenséget, de javítják a szövetséges épületeket. Közepes méretű földi egységek szállítására is alkalmas. +unit.oct.description = Megvédi a közeli szövetségeseket egy regeneráló pajzzsal. A legtöbb földi egység szállítására is alkalmas. unit.risso.description = Rakéták és lövedékek záporát zúdítja minden közeli ellenségre. unit.minke.description = Tüzérségi és szokásos lövedékeket lő közeli földi célpontokra. unit.bryde.description = Nagy távolságú tüzérségi lövedékeket és rakétákat lő az ellenségre. @@ -2316,7 +2316,7 @@ unit.sei.description = Rakéták és páncéltörő lövedékek záporát zúdí unit.omura.description = Nagy hatótávolságú átütő erejű lövedékeket lő az ellenségre. Flare egységeket gyárt. unit.alpha.description = Megvédi a Szilánk támaszpontot az ellenségtől. Épületeket épít. unit.beta.description = Megvédi az Alapítvány támaszpontot az ellenségtől. Épületeket épít. -unit.gamma.description = Megvédi at Atommag támaszpontot az ellenségtől. Épületeket épít. +unit.gamma.description = Megvédi az Atommag támaszpontot az ellenségtől. Épületeket épít. unit.retusa.description = Célkövető torpedókat lő ki minden közeli ellenségre. Javítja a szövetséges egységeket. unit.oxynoe.description = Épületjavító lángcsóvát lő az ellenséges célpontokra. Célba veszi az ellenséges lövedékeket egy pontvédelmi toronnyal. unit.cyerce.description = Célkereső kazettás rakétákat lő ki az ellenségre. Javítja a szövetséges egységeket. @@ -2339,14 +2339,14 @@ unit.avert.description = Forgó lövedékpárokat lő ki az ellenséges célpont unit.obviate.description = Forgó, páros villámgömböket lő ki az ellenséges célpontokra. unit.quell.description = Nagy hatótávolságú célkövető rakétát lő ki az ellenséges célpontokra. Elnyomja az ellenséges szerkezetjavító épületeket. Csak földi célpontokat támad. unit.disrupt.description = Nagy hatótávolságú célkövető elnyomó rakétát lő ki az ellenséges célpontokra. Elnyomja az ellenséges szerkezetjavító épületeket. Csak földi célpontokat támad. -unit.evoke.description = A Bástya védelmére szolgáló építményeket épít. Sugárral javítja az építményeket. 2×2-es épületek szállítására képes. -unit.incite.description = A Citadella védelmére szolgáló építményeket épít. Sugárral javítja az építményeket. 2×2-es épületek szállítására képes. -unit.emanate.description = Az Akropolisz védelmére szolgáló építményeket épít. Sugárral javítja az építményeket. 2×2-es épületek szállítására képes. +unit.evoke.description = A Bástya védelmére szolgáló építményeket épít. Sugárral javítja az építményeket. 2×2-es épületek szállítására is alkalmas. +unit.incite.description = A Citadella védelmére szolgáló építményeket épít. Sugárral javítja az építményeket. 2×2-es épületek szállítására is alkalmas. +unit.emanate.description = Az Akropolisz védelmére szolgáló építményeket épít. Sugárral javítja az építményeket. 2×2-es épületek szállítására is alkalmas. lst.read = Szám kiolvasása egy összekapcsolt memóriacellából. lst.write = Szám beírása egy összekapcsolt memóriacellába. -lst.print = Szöveg hozzáadása a nyomtatási pufferhez.\nA [accent]Print Flush[] használatáig nem jelenít meg semmit. -lst.format = A szövegpufferben lévő következő helyőrző cseréje egy értékre.\nNem csinál semmit, ha a helyőrzőminta érvénytelen.\nHelyőrzőminta: "{[accent]number 0-9[]}"\nPélda:\n[accent]print "test {0}"\nformat "example" +lst.print = Szöveg hozzáadása a kiírási pufferhez.\nA [accent]Print Flush[] használatáig nem jelenít meg semmit. +lst.format = A szövegpufferben lévő következő helyőrző cseréje egy értékre.\nNem csinál semmit, ha a helyőrzőminta érvénytelen.\nHelyőrzőminta: „{[accent]number 0-9[]}”\nPélda:\n[accent]print „test {0}”\nformat „example” lst.draw = Művelet hozzáadása a rajzpufferhez.\nA [accent]Draw Flush[] használatáig nem jelenít meg semmit. lst.drawflush = Sorba állított [accent]Draw[] műveletek megjelenítése a kijelzőn. lst.printflush = Sorba állított [accent]Print[] műveletek kiírása egy üzenetblokkba. @@ -2392,19 +2392,19 @@ lst.localeprint = Hozzáadja a pálya nyelvi csomagjainak tulajdonságértékét lglobal.false = 0 lglobal.true = 1 lglobal.null = null -lglobal.@pi = A pí matematikai állandó (3.141...) +lglobal.@pi = A pi matematikai állandó (3.141...) lglobal.@e = Az e matematikai állandó (2.718...) lglobal.@degToRad = Ezzel a számmal szoroz a fok radiánra való átalakításához lglobal.@radToDeg = Ezzel a számmal szoroz a radián fokra való átalakításához -lglobal.@time = A jelenelgi mentés játékideje ezredmásodpercben +lglobal.@time = A jelenlegi mentés játékideje ezredmásodpercben lglobal.@tick = Az aktuális mentés játékideje, órajelciklusban (1 másodperc = 60 órajelciklus) -lglobal.@second = A jelenelgi mentés játékideje másodpercben -lglobal.@minute = A jelenelgi mentés játékideje percben +lglobal.@second = A jelenlegi mentés játékideje másodpercben +lglobal.@minute = A jelenlegi mentés játékideje percben lglobal.@waveNumber = A jelenlegi hullám száma, ha a hullámok engedélyezve vannak lglobal.@waveTime = Visszaszámláló a hullámokhoz, másodpercben -lglobal.@mapw = A pálya szélessége csempékben -lglobal.@maph = A pálya magassága csempékben +lglobal.@mapw = A pálya szélessége mezőben +lglobal.@maph = A pálya magassága mezőben lglobal.sectionMap = Pálya lglobal.sectionGeneral = Általános @@ -2443,7 +2443,7 @@ laccess.currentammotype = Egy lövegtorony jelenlegi lőszer nyersanyaga/folyad laccess.color = Megvilágítás színe. laccess.controller = Egységvezérlő. Ha processzor vezérli, akkor a processzort adja vissza.\nKülönben magát az egységet adja vissza. -laccess.dead = Egy épület/egység halott-e, vagy már nem érvényes-e. +laccess.dead = Egy épület/egység megsemmisült-e, vagy érvénytelen-e. laccess.controlled = Ezt adja vissza:\n[accent]@ctrlProcessor[], ha az egységvezérlő egy processzor\n[accent]@ctrlPlayer[], ha az egység/épület vezérlője a játékos\n[accent]@ctrlFormation[], ha az egység formációban van\nKülönben 0. laccess.progress = Művelet előrehaladása, 0 és 1 között.\nA termelés, a lövegtorony-újratöltés vagy az építés előrehaladását adja vissza. laccess.speed = Az egység legnagyobb sebessége, mező/mp-ben. @@ -2506,7 +2506,7 @@ lenum.asin = Arkusz szinusz, fokban. lenum.acos = Arkusz koszinusz, fokban. lenum.atan = Arkusz tangens, fokban. -#not a typo, look up 'range notation' +#Az alábbi zárójel nem elírás, nézz utána a „nyitott/zárt intervallum/tartomány jelöléseknek” lenum.rand = Véletlenszerű decimális szám a [0, érték) tartományban. lenum.log = Természetes logaritmus (ln). lenum.log10 = 10-es alapú logaritmus. @@ -2529,7 +2529,7 @@ lenum.spawn = Ellenséges kezdőpont.\nLehet támaszpont vagy pozíció. lenum.building = Épület egy adott csoportban. lenum.core = Bármilyen támaszpont. -lenum.storage = Raktárépület, például tároló. +lenum.storage = Raktárépület, például raktár. lenum.generator = Energiát termelő épületek. lenum.factory = Nyersanyagokat feldolgozó épületek. lenum.repair = Javítási pontok. @@ -2563,11 +2563,12 @@ unitlocate.building = Kimeneti változó a megtalált épülethez. unitlocate.outx = Kimenet X koordinátája. unitlocate.outy = Kimenet Y koordinátája. unitlocate.group = Keresendő épületcsoport. -playsound.limit = If true, prevents this sound from playing\nif it has already been played in the same frame. + +playsound.limit = Ha igaz, megakadályozza a hang lejátszását,\nha már lejátszották ugyanabban a keretben. lenum.idle = Ne mozdulj, de folytasd az építkezést/bányászatot.\nAz alapértelmezett állapot. lenum.stop = Mozgás/bányászás/építés leállítása. -lenum.unbind = A logikai vezérlés teljes kikapcsolása.\nSzokásos mesterséges intelligencia folytatása. +lenum.unbind = A logikai vezérlés teljes kikapcsolása.\nA szokásos mesterséges intelligencia használatának folytatása. lenum.move = Mozgás a pontos pozícióba. lenum.approach = Egy pozíció megközelítése egy sugárral. lenum.pathfind = Útkeresés a megadott pozícióhoz. @@ -2588,7 +2589,7 @@ lenum.boost = Erősítés indítása/leállítása. lenum.flushtext = Az írási puffer tartalmának ürítése a jelölőre, ha alkalmazható.\nHa a „fetch” igaz, akkor megpróbálja lekérni a tulajdonságokat a pálya nyelvi csomagjából vagy a játék csomagjából. lenum.texture = A textúra neve közvetlenül a játék textúraatlaszából (ún. kebab-case elnevezési stílus használatával).\nHa a „printFlush” igaz, akkor a szöveges puffer tartalmát használja szöveges argumentumként. -lenum.texturesize = A textúra mérete csempékben. A nulla érték a jelölő szélességét az eredeti textúra méretére skálázza. +lenum.texturesize = A textúra mérete mezőben. A nulla érték a jelölő szélességét az eredeti textúra méretére skálázza. lenum.autoscale = Skálázva legyen-e a jelölő a játékos nagyítási szintjének megfelelően. lenum.posi = Indexelt pozíció, vonal- és négyszögjelzőkhöz használatos, ahol a nulla az első pozíció. lenum.uvi = A textúra pozíciója nullától egyig, négyzetjelölőkhöz használatos. From c78d950e2c7462c2b0925065aeeb14fc033379a3 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 29 Aug 2024 22:19:15 -0400 Subject: [PATCH 101/437] test build trigger (1) --- core/src/mindustry/net/BeControl.java | 2 +- desktop/build.gradle | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/net/BeControl.java b/core/src/mindustry/net/BeControl.java index 668e687d7c..2ce1821d2f 100644 --- a/core/src/mindustry/net/BeControl.java +++ b/core/src/mindustry/net/BeControl.java @@ -31,7 +31,7 @@ public class BeControl{ /** @return whether this is a bleeding edge build. */ public boolean active(){ - return Version.type.equals("bleeding-edge"); + return Version.type.equals("bleeding-edge") || !steam; } public BeControl(){ diff --git a/desktop/build.gradle b/desktop/build.gradle index 7f4ecdcf0a..6dfafb65fe 100644 --- a/desktop/build.gradle +++ b/desktop/build.gradle @@ -68,6 +68,7 @@ if(!project.ext.hasSprites() && System.getenv("JITPACK") != "true"){ //this is only for local testing //add -Prelease -PversionModifier=steam as build properties task steamtest(dependsOn: dist){ + println new File("../JDKs").absolutePath doLast{ copy{ from "build/libs/Mindustry.jar" From c2f304d3bae7909677ff72c50f5c925670b5954d Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 29 Aug 2024 22:30:51 -0400 Subject: [PATCH 102/437] test build trigger (2) --- desktop/build.gradle | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/desktop/build.gradle b/desktop/build.gradle index 6dfafb65fe..a5e3f60d2b 100644 --- a/desktop/build.gradle +++ b/desktop/build.gradle @@ -68,7 +68,6 @@ if(!project.ext.hasSprites() && System.getenv("JITPACK") != "true"){ //this is only for local testing //add -Prelease -PversionModifier=steam as build properties task steamtest(dependsOn: dist){ - println new File("../JDKs").absolutePath doLast{ copy{ from "build/libs/Mindustry.jar" @@ -94,6 +93,8 @@ platforms.each{ platform -> task "packr${platform.toString()}"{ dependsOn dist + println "JDK dir: " + new File("${JDK_DIR}").getAbsolutePath() + doLast{ copy{ into "build/packr/" @@ -119,20 +120,20 @@ platforms.each{ platform -> } }else{ def jarPath = JDK_DIR + "packr.jar" - def args = ["java", "-jar", jarPath] as String[] + def args = new String[]{"java", "-jar", jarPath} - args += [ - "--platform", platform == "MacOS" ? "Mac" : platform.toString(), - "--jdk", JDK_DIR + "jre-${platform.toString().toLowerCase()}", - "--executable", appName, - "--classpath", "$rootDir/desktop/build/packr/desktop.jar".toString(), - "--mainclass", project.ext.mainClassName, - "--verbose", - "--bundle", getPackage() + ".mac", - "--icon", ICON_DIR, - "--output", "$rootDir/desktop/build/packr/output".toString(), - "--removelibs", "$rootDir/desktop/build/packr/desktop.jar".toString() - ] + args += new String[]{ + "--platform", platform == "MacOS" ? "Mac" : platform.toString(), + "--jdk", JDK_DIR + "jre-${platform.toString().toLowerCase()}", + "--executable", appName, + "--classpath", "$rootDir/desktop/build/packr/desktop.jar".toString(), + "--mainclass", project.ext.mainClassName, + "--verbose", + "--bundle", getPackage() + ".mac", + "--icon", ICON_DIR, + "--output", "$rootDir/desktop/build/packr/output".toString(), + "--removelibs", "$rootDir/desktop/build/packr/desktop.jar".toString() + } args += "--vmargs" From 5bda7b8b8c509f6c42531a7a089d8c28f6bd3f73 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 29 Aug 2024 22:41:01 -0400 Subject: [PATCH 103/437] test build trigger (3) From 7ad3c0417b3f018d24047bd95b4728ea0eca7e52 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 29 Aug 2024 22:49:38 -0400 Subject: [PATCH 104/437] test build trigger (4) From bf9db6b6d5edf7bd87f2d98101f557cb979cae47 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 29 Aug 2024 22:54:19 -0400 Subject: [PATCH 105/437] test build trigger (5) From e5c4bcc380b025395b2e5ad3cb2abd7e88f5f6ea Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 29 Aug 2024 23:04:10 -0400 Subject: [PATCH 106/437] test build trigger (6) From c4a48e55c962b8adec535529f784751d533da67e Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 30 Aug 2024 00:09:22 -0400 Subject: [PATCH 107/437] test build trigger (7) From 7a71db26b63fec498d54d6f68886c35a35074063 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 30 Aug 2024 00:23:00 -0400 Subject: [PATCH 108/437] test build trigger (8) From a3dc2cecbd81d8f4768de2788ed534c7985a2c04 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 30 Aug 2024 00:25:14 -0400 Subject: [PATCH 109/437] Fixed BE updater running on Steam --- core/src/mindustry/net/BeControl.java | 2 +- desktop/build.gradle | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/core/src/mindustry/net/BeControl.java b/core/src/mindustry/net/BeControl.java index 2ce1821d2f..2b96a3f231 100644 --- a/core/src/mindustry/net/BeControl.java +++ b/core/src/mindustry/net/BeControl.java @@ -31,7 +31,7 @@ public class BeControl{ /** @return whether this is a bleeding edge build. */ public boolean active(){ - return Version.type.equals("bleeding-edge") || !steam; + return Version.type.equals("bleeding-edge") && !steam; } public BeControl(){ diff --git a/desktop/build.gradle b/desktop/build.gradle index a5e3f60d2b..b4d9955e70 100644 --- a/desktop/build.gradle +++ b/desktop/build.gradle @@ -93,8 +93,6 @@ platforms.each{ platform -> task "packr${platform.toString()}"{ dependsOn dist - println "JDK dir: " + new File("${JDK_DIR}").getAbsolutePath() - doLast{ copy{ into "build/packr/" From 268b2c4cd09fcf086eaf407508530e072049d5dc Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 30 Aug 2024 00:36:17 -0400 Subject: [PATCH 110/437] Fixed BE server list loading --- core/src/mindustry/ui/dialogs/JoinDialog.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/ui/dialogs/JoinDialog.java b/core/src/mindustry/ui/dialogs/JoinDialog.java index 3c3fd58ba4..e4c8bee716 100644 --- a/core/src/mindustry/ui/dialogs/JoinDialog.java +++ b/core/src/mindustry/ui/dialogs/JoinDialog.java @@ -631,7 +631,7 @@ public class JoinDialog extends BaseDialog{ Core.settings.remove("server-list"); } - var url = becontrol.active() ? serverJsonBeURL : serverJsonURL; + var url = Version.type.equals("bleeding-edge") ? serverJsonBeURL : serverJsonURL; Log.info("Fetching community servers at @", url); //get servers From 27603165ab0d62d60f4b9d759586d568f767ee70 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 30 Aug 2024 10:50:23 -0400 Subject: [PATCH 111/437] arc --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index d2f69e9d02..b430244756 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,4 +26,4 @@ org.gradle.caching=true org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.connectionTimeout=100000 android.enableR8.fullMode=false -archash=277a7cc689 +archash=31a570ab27 From acbd8bb190839a35349922bf3e189b43b4563d85 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 30 Aug 2024 12:40:47 -0400 Subject: [PATCH 112/437] Added rule for editing world processors in-game --- core/assets/bundles/bundle.properties | 2 ++ core/src/mindustry/content/Blocks.java | 8 ++++---- core/src/mindustry/game/Rules.java | 2 ++ core/src/mindustry/ui/dialogs/CustomRulesDialog.java | 1 + core/src/mindustry/world/blocks/logic/LogicBlock.java | 2 +- core/src/mindustry/world/blocks/logic/MemoryBlock.java | 2 +- core/src/mindustry/world/blocks/logic/MessageBlock.java | 2 +- core/src/mindustry/world/blocks/logic/SwitchBlock.java | 2 +- core/src/mindustry/world/meta/BuildVisibility.java | 1 + 9 files changed, 14 insertions(+), 8 deletions(-) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index f78bf1406b..85b9e6d471 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -1340,6 +1340,8 @@ rules.wavetimer = Wave Timer rules.wavesending = Wave Sending rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Waves rules.airUseSpawns = Air units use spawn points rules.attack = Attack Mode diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 03c6cf3f2e..873e1a9d45 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -5916,7 +5916,7 @@ public class Blocks{ }}; worldProcessor = new LogicBlock("world-processor"){{ - requirements(Category.logic, BuildVisibility.editorOnly, with()); + requirements(Category.logic, BuildVisibility.worldProcessorOnly, with()); canOverdrive = false; targetable = false; @@ -5929,7 +5929,7 @@ public class Blocks{ }}; worldCell = new MemoryBlock("world-cell"){{ - requirements(Category.logic, BuildVisibility.editorOnly, with()); + requirements(Category.logic, BuildVisibility.worldProcessorOnly, with()); targetable = false; privileged = true; @@ -5938,14 +5938,14 @@ public class Blocks{ }}; worldMessage = new MessageBlock("world-message"){{ - requirements(Category.logic, BuildVisibility.editorOnly, with()); + requirements(Category.logic, BuildVisibility.worldProcessorOnly, with()); targetable = false; privileged = true; }}; worldSwitch = new SwitchBlock("world-switch"){{ - requirements(Category.logic, BuildVisibility.editorOnly, with()); + requirements(Category.logic, BuildVisibility.worldProcessorOnly, with()); targetable = false; privileged = true; diff --git a/core/src/mindustry/game/Rules.java b/core/src/mindustry/game/Rules.java index 6bb08a5245..7bee6a6e68 100644 --- a/core/src/mindustry/game/Rules.java +++ b/core/src/mindustry/game/Rules.java @@ -85,6 +85,8 @@ public class Rules{ public boolean ghostBlocks = true; /** Whether to allow units to build with logic. */ public boolean logicUnitBuild = true; + /** If true, world processors can be edited and placed on this map. */ + public boolean allowEditWorldProcessors = false; /** If true, world processors no longer update. Used for testing. */ public boolean disableWorldProcessors = false; /** How much health blocks start with. */ diff --git a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java index 6ae81fc338..247625c248 100644 --- a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java +++ b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java @@ -230,6 +230,7 @@ public class CustomRulesDialog extends BaseDialog{ number("@rules.dropzoneradius", false, f -> rules.dropZoneRadius = f * tilesize, () -> rules.dropZoneRadius / tilesize, () -> rules.waves); category("resourcesbuilding"); + check("@rules.alloweditworldprocessors", b -> rules.allowEditWorldProcessors = b, () -> rules.allowEditWorldProcessors); check("@rules.infiniteresources", b -> rules.infiniteResources = b, () -> rules.infiniteResources); check("@rules.onlydepositcore", b -> rules.onlyDepositCore = b, () -> rules.onlyDepositCore); check("@rules.derelictrepair", b -> rules.derelictRepair = b, () -> rules.derelictRepair); diff --git a/core/src/mindustry/world/blocks/logic/LogicBlock.java b/core/src/mindustry/world/blocks/logic/LogicBlock.java index ed2872c406..b7baa0c587 100644 --- a/core/src/mindustry/world/blocks/logic/LogicBlock.java +++ b/core/src/mindustry/world/blocks/logic/LogicBlock.java @@ -109,7 +109,7 @@ public class LogicBlock extends Block{ } public boolean accessible(){ - return !privileged || state.rules.editor || state.playtestingMap != null; + return !privileged || state.rules.editor || state.playtestingMap != null || state.rules.allowEditWorldProcessors; } @Override diff --git a/core/src/mindustry/world/blocks/logic/MemoryBlock.java b/core/src/mindustry/world/blocks/logic/MemoryBlock.java index 37a6c2af61..44af66623a 100644 --- a/core/src/mindustry/world/blocks/logic/MemoryBlock.java +++ b/core/src/mindustry/world/blocks/logic/MemoryBlock.java @@ -28,7 +28,7 @@ public class MemoryBlock extends Block{ } public boolean accessible(){ - return !privileged || state.rules.editor; + return !privileged || state.rules.editor || state.rules.allowEditWorldProcessors; } @Override diff --git a/core/src/mindustry/world/blocks/logic/MessageBlock.java b/core/src/mindustry/world/blocks/logic/MessageBlock.java index f81e7d4672..eb644b57de 100644 --- a/core/src/mindustry/world/blocks/logic/MessageBlock.java +++ b/core/src/mindustry/world/blocks/logic/MessageBlock.java @@ -58,7 +58,7 @@ public class MessageBlock extends Block{ } public boolean accessible(){ - return !privileged || state.rules.editor; + return !privileged || state.rules.editor || state.rules.allowEditWorldProcessors; } @Override diff --git a/core/src/mindustry/world/blocks/logic/SwitchBlock.java b/core/src/mindustry/world/blocks/logic/SwitchBlock.java index 6c166fd331..db49b70f6c 100644 --- a/core/src/mindustry/world/blocks/logic/SwitchBlock.java +++ b/core/src/mindustry/world/blocks/logic/SwitchBlock.java @@ -28,7 +28,7 @@ public class SwitchBlock extends Block{ } public boolean accessible(){ - return !privileged || state.rules.editor; + return !privileged || state.rules.editor || state.rules.allowEditWorldProcessors; } @Override diff --git a/core/src/mindustry/world/meta/BuildVisibility.java b/core/src/mindustry/world/meta/BuildVisibility.java index ee84452779..d37f1d0012 100644 --- a/core/src/mindustry/world/meta/BuildVisibility.java +++ b/core/src/mindustry/world/meta/BuildVisibility.java @@ -10,6 +10,7 @@ public class BuildVisibility{ shown = new BuildVisibility(() -> true), debugOnly = new BuildVisibility(() -> false), editorOnly = new BuildVisibility(() -> Vars.state.rules.editor), + worldProcessorOnly = new BuildVisibility(() -> Vars.state.rules.editor || Vars.state.rules.allowEditWorldProcessors), sandboxOnly = new BuildVisibility(() -> Vars.state == null || Vars.state.rules.infiniteResources), campaignOnly = new BuildVisibility(() -> Vars.state == null || Vars.state.isCampaign()), lightingOnly = new BuildVisibility(() -> Vars.state == null || Vars.state.rules.lighting || Vars.state.isCampaign()), From 7114402b7b053e0ae40db070177299d9a4c2dfde Mon Sep 17 00:00:00 2001 From: Github Actions Date: Fri, 30 Aug 2024 16:41:50 +0000 Subject: [PATCH 113/437] Automatic bundle update --- core/assets/bundles/bundle_be.properties | 2 ++ core/assets/bundles/bundle_bg.properties | 2 ++ core/assets/bundles/bundle_ca.properties | 2 ++ core/assets/bundles/bundle_cs.properties | 2 ++ core/assets/bundles/bundle_da.properties | 2 ++ core/assets/bundles/bundle_de.properties | 2 ++ core/assets/bundles/bundle_es.properties | 2 ++ core/assets/bundles/bundle_et.properties | 2 ++ core/assets/bundles/bundle_eu.properties | 2 ++ core/assets/bundles/bundle_fi.properties | 2 ++ core/assets/bundles/bundle_fil.properties | 2 ++ core/assets/bundles/bundle_fr.properties | 2 ++ core/assets/bundles/bundle_hu.properties | 2 ++ core/assets/bundles/bundle_id_ID.properties | 2 ++ core/assets/bundles/bundle_it.properties | 2 ++ core/assets/bundles/bundle_ja.properties | 2 ++ core/assets/bundles/bundle_ko.properties | 2 ++ core/assets/bundles/bundle_lt.properties | 2 ++ core/assets/bundles/bundle_nl.properties | 2 ++ core/assets/bundles/bundle_nl_BE.properties | 2 ++ core/assets/bundles/bundle_pl.properties | 2 ++ core/assets/bundles/bundle_pt_BR.properties | 2 ++ core/assets/bundles/bundle_pt_PT.properties | 2 ++ core/assets/bundles/bundle_ro.properties | 2 ++ core/assets/bundles/bundle_ru.properties | 2 ++ core/assets/bundles/bundle_sr.properties | 2 ++ core/assets/bundles/bundle_sv.properties | 2 ++ core/assets/bundles/bundle_th.properties | 2 ++ core/assets/bundles/bundle_tk.properties | 2 ++ core/assets/bundles/bundle_tr.properties | 2 ++ core/assets/bundles/bundle_uk_UA.properties | 2 ++ core/assets/bundles/bundle_vi.properties | 2 ++ core/assets/bundles/bundle_zh_CN.properties | 2 ++ core/assets/bundles/bundle_zh_TW.properties | 2 ++ 34 files changed, 68 insertions(+) diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties index ed06804542..258bfff8a2 100644 --- a/core/assets/bundles/bundle_be.properties +++ b/core/assets/bundles/bundle_be.properties @@ -1308,6 +1308,8 @@ rules.wavetimer = Інтэрвал хваляў rules.wavesending = Адпраўка Хваль rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Хвалі rules.airUseSpawns = Air units use spawn points rules.attack = Рэжым атакі diff --git a/core/assets/bundles/bundle_bg.properties b/core/assets/bundles/bundle_bg.properties index b3ad23c548..0e8a611cdf 100644 --- a/core/assets/bundles/bundle_bg.properties +++ b/core/assets/bundles/bundle_bg.properties @@ -1319,6 +1319,8 @@ rules.wavetimer = Таймер за Вълни rules.wavesending = Wave Sending rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Вълни rules.airUseSpawns = Air units use spawn points rules.attack = Режим Атака diff --git a/core/assets/bundles/bundle_ca.properties b/core/assets/bundles/bundle_ca.properties index dd1a5c6546..f1c199e8df 100644 --- a/core/assets/bundles/bundle_ca.properties +++ b/core/assets/bundles/bundle_ca.properties @@ -1322,6 +1322,8 @@ rules.wavetimer = Temporitzador d’onades rules.wavesending = Enviament d’onades rules.allowedit = Permet editar les regles rules.allowedit.info = Quan està activat, el jugador pot editar les regles de la partida amb el botó que hi ha a la part inferior esquerra del menú de pausa. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Onades rules.airUseSpawns = Les unitats aèries fan servir els punts d’aparició rules.attack = Mode d’atac diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index 069eee3479..bdfb68b293 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -1321,6 +1321,8 @@ rules.wavetimer = Časovač vln rules.wavesending = Wave Sending rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Vlny rules.airUseSpawns = Air units use spawn points rules.attack = Režim útoku diff --git a/core/assets/bundles/bundle_da.properties b/core/assets/bundles/bundle_da.properties index e54d3b9f00..0a5ac198ef 100644 --- a/core/assets/bundles/bundle_da.properties +++ b/core/assets/bundles/bundle_da.properties @@ -1310,6 +1310,8 @@ rules.wavetimer = Bølge-æggeur rules.wavesending = Wave Sending rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Bølger rules.airUseSpawns = Air units use spawn points rules.attack = Angrebsmode diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index bf5e187361..d03ce1366f 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -1332,6 +1332,8 @@ rules.wavetimer = Wellen-Timer rules.wavesending = Manuelle Wellen möglich rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Wellen rules.airUseSpawns = Air units use spawn points rules.attack = Angriff-Modus diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index dd316e0383..569afc52f9 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -1328,6 +1328,8 @@ rules.wavetimer = Temporizador de oleadas rules.wavesending = Envío de oleadas rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Oleadas rules.airUseSpawns = Air units use spawn points rules.attack = Modo de ataque diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties index 23d5d3de70..d8c7d04c0f 100644 --- a/core/assets/bundles/bundle_et.properties +++ b/core/assets/bundles/bundle_et.properties @@ -1310,6 +1310,8 @@ rules.wavetimer = Kasuta taimerit rules.wavesending = Wave Sending rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Kasuta lahingulaineid rules.airUseSpawns = Air units use spawn points rules.attack = Mänguviis "Rünnak" diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties index a3c3f2a694..7aba1daccb 100644 --- a/core/assets/bundles/bundle_eu.properties +++ b/core/assets/bundles/bundle_eu.properties @@ -1312,6 +1312,8 @@ rules.wavetimer = Boladen denboragailua rules.wavesending = Wave Sending rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Boladak rules.airUseSpawns = Air units use spawn points rules.attack = Eraso modua diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties index 83abf0d3a4..74bc5fe3d2 100644 --- a/core/assets/bundles/bundle_fi.properties +++ b/core/assets/bundles/bundle_fi.properties @@ -1309,6 +1309,8 @@ rules.wavetimer = Tasojen aikaraja rules.wavesending = Wave Sending rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Tasot rules.airUseSpawns = Air units use spawn points rules.attack = Hyökkäystila diff --git a/core/assets/bundles/bundle_fil.properties b/core/assets/bundles/bundle_fil.properties index 08dd5e1cb5..1cc87bd619 100644 --- a/core/assets/bundles/bundle_fil.properties +++ b/core/assets/bundles/bundle_fil.properties @@ -1309,6 +1309,8 @@ rules.wavetimer = Wave Timer rules.wavesending = Wave Sending rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Waves rules.airUseSpawns = Air units use spawn points rules.attack = Attack Mode diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index 4b171c7fca..b031586257 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -1336,6 +1336,8 @@ rules.wavetimer = Compte à rebours des vagues rules.wavesending = Déclenchement des Vagues rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Vagues rules.airUseSpawns = Air units use spawn points rules.attack = Mode « Attaque » diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index 3104bf8f2b..0907244254 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -1340,6 +1340,8 @@ rules.wavetimer = Hullámok időzítése rules.wavesending = Hullámok küldése rules.allowedit = Szabályok szerkesztésének engedélyezése rules.allowedit.info = Ha engedélyezve van, akkor a játékos szerkesztheti a szabályokat a játékban a Szünet menü bal alsó sarkában található gomb segítségével. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Hullámok rules.airUseSpawns = A légi egységek használjanak kezdőpontokat rules.attack = Támadási mód diff --git a/core/assets/bundles/bundle_id_ID.properties b/core/assets/bundles/bundle_id_ID.properties index e0f2a925fc..de0b75b9fc 100644 --- a/core/assets/bundles/bundle_id_ID.properties +++ b/core/assets/bundles/bundle_id_ID.properties @@ -1339,6 +1339,8 @@ rules.wavetimer = Pengaturan Waktu Gelombang rules.wavesending = Pengiriman Gelombang rules.allowedit = Izinkan Aturan Pengeditan rules.allowedit.info = Ketika diaktifkan, pemain dapat mengedit aturan dalam game melalui tombol di sudut kiri bawah pada menu Jeda. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Gelombang rules.airUseSpawns = Unit udara menggunakan titik muncul rules.attack = Mode Penyerangan diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties index 7daf0b09cd..34118f7cb5 100644 --- a/core/assets/bundles/bundle_it.properties +++ b/core/assets/bundles/bundle_it.properties @@ -1315,6 +1315,8 @@ rules.wavetimer = Timer Ondate rules.wavesending = Wave Sending rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Ondate rules.airUseSpawns = Air units use spawn points rules.attack = Modalità Attacco diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index 0053e421af..69ec46b255 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -1321,6 +1321,8 @@ rules.wavetimer = ウェーブの自動進行 rules.wavesending = ウェーブスキップ rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = ウェーブ rules.airUseSpawns = Air units use spawn points rules.attack = アタックモード diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index 24ad30681f..6648830d48 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -1320,6 +1320,8 @@ rules.wavetimer = 시간 제한이 있는 단계 rules.wavesending = 단계 넘김 rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = 단계 rules.airUseSpawns = Air units use spawn points rules.attack = 공격 모드 diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties index f79a675a1a..870b4119cd 100644 --- a/core/assets/bundles/bundle_lt.properties +++ b/core/assets/bundles/bundle_lt.properties @@ -1310,6 +1310,8 @@ rules.wavetimer = Bangų Laikmatis rules.wavesending = Wave Sending rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Bangos rules.airUseSpawns = Air units use spawn points rules.attack = Puolimo Režimas diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index 283c7fb129..49af83b96a 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -1322,6 +1322,8 @@ rules.wavetimer = Vijandelijke Golven Timer rules.wavesending = Golven Sturen rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Golven rules.airUseSpawns = Air units use spawn points rules.attack = Aanvalmodus diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties index 832f8dbb7e..d514fcbc51 100644 --- a/core/assets/bundles/bundle_nl_BE.properties +++ b/core/assets/bundles/bundle_nl_BE.properties @@ -1310,6 +1310,8 @@ rules.wavetimer = Wave Timer rules.wavesending = Wave Sending rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Waves rules.airUseSpawns = Air units use spawn points rules.attack = Attack Mode diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index 0720a339ea..ccda9e4635 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -1319,6 +1319,8 @@ rules.wavetimer = Zegar Fal rules.wavesending = Wysyłanie Fal rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Fale rules.airUseSpawns = Air units use spawn points rules.attack = Tryb Ataku diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index fd27e0538c..10888eb071 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -1329,6 +1329,8 @@ rules.wavetimer = Tempo de horda rules.wavesending = Wave Sending rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Hordas rules.airUseSpawns = Air units use spawn points rules.attack = Modo de ataque diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties index 46ad16e2eb..ab3113e762 100644 --- a/core/assets/bundles/bundle_pt_PT.properties +++ b/core/assets/bundles/bundle_pt_PT.properties @@ -1310,6 +1310,8 @@ rules.wavetimer = Tempo de horda rules.wavesending = Wave Sending rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Hordas rules.airUseSpawns = Air units use spawn points rules.attack = Modo de ataque diff --git a/core/assets/bundles/bundle_ro.properties b/core/assets/bundles/bundle_ro.properties index b5a11e3cce..337cc12fef 100644 --- a/core/assets/bundles/bundle_ro.properties +++ b/core/assets/bundles/bundle_ro.properties @@ -1321,6 +1321,8 @@ rules.wavetimer = Valuri pe Timp rules.wavesending = Wave Sending rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Valuri rules.airUseSpawns = Air units use spawn points rules.attack = Modul Atac diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index e0d05c7252..06b071eb66 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -1320,6 +1320,8 @@ rules.wavetimer = Интервал волн rules.wavesending = Отправка волн rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Волны rules.airUseSpawns = Air units use spawn points rules.attack = Режим атаки diff --git a/core/assets/bundles/bundle_sr.properties b/core/assets/bundles/bundle_sr.properties index 971cad09e4..4076f7ed01 100644 --- a/core/assets/bundles/bundle_sr.properties +++ b/core/assets/bundles/bundle_sr.properties @@ -1323,6 +1323,8 @@ rules.wavetimer = Talasna Štoperica rules.wavesending = Slanje Talasa rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Talasi rules.airUseSpawns = Air units use spawn points rules.attack = Mod Napada diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties index 0daa35f28f..89c67f315c 100644 --- a/core/assets/bundles/bundle_sv.properties +++ b/core/assets/bundles/bundle_sv.properties @@ -1310,6 +1310,8 @@ rules.wavetimer = Vågtimer rules.wavesending = Wave Sending rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Vågor rules.airUseSpawns = Air units use spawn points rules.attack = Attack Mode diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index ee41ccf953..9ca9cdb6a3 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -1322,6 +1322,8 @@ rules.wavetimer = นับถอยหลังการปล่อยคล rules.wavesending = กดเพื่อปล่อยคลื่น rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = คลื่น rules.airUseSpawns = Air units use spawn points rules.attack = โหมดการโจมตี diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index c8a3ca2173..624c3ab78e 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -1310,6 +1310,8 @@ rules.wavetimer = Wave Timer rules.wavesending = Wave Sending rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Waves rules.airUseSpawns = Air units use spawn points rules.attack = Attack Mode diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index 207a7a91a7..4d0685417b 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -1319,6 +1319,8 @@ rules.wavetimer = Dalga Zamanlayıcısı rules.wavesending = Dalga Gönderiliyor rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Dalgalar rules.airUseSpawns = Hava Birimleri doğuş bölgelerini kullanır rules.attack = Saldırı Modu diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index d416bcb7be..429205fbb5 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -1330,6 +1330,8 @@ rules.wavetimer = Таймер для хвиль rules.wavesending = Ручне надсилання хвиль rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Хвилі rules.airUseSpawns = Air units use spawn points rules.attack = Режим атаки diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties index 0e04d120f1..8c933ffc04 100644 --- a/core/assets/bundles/bundle_vi.properties +++ b/core/assets/bundles/bundle_vi.properties @@ -1340,6 +1340,8 @@ rules.wavetimer = Đếm ngược đợt rules.wavesending = Gửi đợt rules.allowedit = Cho phép sửa quy tắc rules.allowedit.info = Khi được bật, người chơi có thể chỉnh sửa các quy tắc trong lúc chơi thông qua nút ở góc dưới bên trái của Trình đơn tạm dừng. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Đợt rules.airUseSpawns = Các đơn vị không quân dùng điểm xuất hiện rules.attack = Chế độ tấn công diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index 8ac2aebb27..1a21564743 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -1332,6 +1332,8 @@ rules.wavetimer = 波次计时器 rules.wavesending = 波次可跳波 rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = 波次 rules.airUseSpawns = Air units use spawn points rules.attack = 进攻模式 diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index 63d3873294..f97f59f92f 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -1327,6 +1327,8 @@ rules.wavetimer = 波次時間 rules.wavesending = Wave Sending rules.allowedit = Allow Editing Rules rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. +rules.alloweditworldprocessors = Allow Editing World Processors +rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = 波次 rules.airUseSpawns = Air units use spawn points rules.attack = 攻擊模式 From f5505388276f7a91d3015c34bbe704aa7b6f9601 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 30 Aug 2024 13:27:39 -0400 Subject: [PATCH 114/437] Crash fix --- core/src/mindustry/service/GameService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/service/GameService.java b/core/src/mindustry/service/GameService.java index 84495f5f77..4cad46716b 100644 --- a/core/src/mindustry/service/GameService.java +++ b/core/src/mindustry/service/GameService.java @@ -171,7 +171,7 @@ public class GameService{ } } - if(campaign() && player.unit().type.canBoost && player.unit().elevation >= 0.25f){ + if(campaign() && !player.dead() && player.unit().type.canBoost && player.unit().elevation >= 0.25f){ boostUnit.complete(); } }); From 5f164b6270831d1b10a18f17acee0e51dc9f8a50 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 30 Aug 2024 13:52:07 -0400 Subject: [PATCH 115/437] Fixed derelict repair not working on servers --- core/src/mindustry/core/NetServer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/core/NetServer.java b/core/src/mindustry/core/NetServer.java index 3558877cbb..bcf22cedd6 100644 --- a/core/src/mindustry/core/NetServer.java +++ b/core/src/mindustry/core/NetServer.java @@ -674,7 +674,7 @@ public class NetServer implements ApplicationListener{ //auto-skip done requests if(req.breaking && tile.block() == Blocks.air){ continue; - }else if(!req.breaking && tile.block() == req.block && (!req.block.rotate || (tile.build != null && tile.build.rotation == req.rotation))){ + }else if(!req.breaking && tile.block() == req.block && tile.team() != Team.derelict && (!req.block.rotate || (tile.build != null && tile.build.rotation == req.rotation))){ continue; }else if(con.rejectedRequests.contains(r -> r.breaking == req.breaking && r.x == req.x && r.y == req.y)){ //check if request was recently rejected, and skip it if so continue; From 46cc0d4cc1a5822a58daa0fad7da13b196b381ef Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 30 Aug 2024 14:22:33 -0400 Subject: [PATCH 116/437] Fixed #10163 --- core/src/mindustry/input/DesktopInput.java | 2 +- .../world/blocks/distribution/Conveyor.java | 27 +++++++++++++++---- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/core/src/mindustry/input/DesktopInput.java b/core/src/mindustry/input/DesktopInput.java index 6aef02f339..ecdb253ea1 100644 --- a/core/src/mindustry/input/DesktopInput.java +++ b/core/src/mindustry/input/DesktopInput.java @@ -457,7 +457,7 @@ public class DesktopInput extends InputHandler{ cursorType = cursor.build.getCursor(); } - if(cursor.build != null && player.team() != Team.derelict && cursor.build.team == Team.derelict && Build.validPlace(cursor.block(), player.team(), cursor.build.tileX(), cursor.build.tileY(), cursor.build.rotation)){ + if(cursor.build != null && player.team() != Team.derelict && cursor.build.team == Team.derelict && cursor.build.block.unlockedNow() && Build.validPlace(cursor.block(), player.team(), cursor.build.tileX(), cursor.build.tileY(), cursor.build.rotation)){ cursorType = ui.repairCursor; } diff --git a/core/src/mindustry/world/blocks/distribution/Conveyor.java b/core/src/mindustry/world/blocks/distribution/Conveyor.java index 1d9b895049..b41c2b733b 100644 --- a/core/src/mindustry/world/blocks/distribution/Conveyor.java +++ b/core/src/mindustry/world/blocks/distribution/Conveyor.java @@ -380,13 +380,20 @@ public class Conveyor extends Block implements Autotiler{ } } + @Override + public byte version(){ + return 1; + } + @Override public void write(Writes write){ super.write(write); write.i(len); for(int i = 0; i < len; i++){ - write.i(Pack.intBytes((byte)ids[i].id, (byte)(xs[i] * 127), (byte)(ys[i] * 255 - 128), (byte)0)); + write.s(ids[i].id); + write.b((byte)(xs[i] * 127)); + write.b((byte)(ys[i] * 255 - 128)); } } @@ -397,10 +404,20 @@ public class Conveyor extends Block implements Autotiler{ len = Math.min(amount, capacity); for(int i = 0; i < amount; i++){ - int val = read.i(); - short id = (short)(((byte)(val >> 24)) & 0xff); - float x = (float)((byte)(val >> 16)) / 127f; - float y = ((float)((byte)(val >> 8)) + 128f) / 255f; + short id; + float x, y; + + if(revision == 0){ + int val = read.i(); + id = (short)(((byte)(val >> 24)) & 0xff); + x = (float)((byte)(val >> 16)) / 127f; + y = ((float)((byte)(val >> 8)) + 128f) / 255f; + }else{ + id = read.s(); + x = (float)read.b() / 127f; + y = ((float)read.b() + 128f) / 255f; + } + if(i < capacity){ ids[i] = content.item(id); xs[i] = x; From 9f877c9f205490e8174b0e76a96f7fafd09d8eb1 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 31 Aug 2024 08:44:23 -0400 Subject: [PATCH 117/437] Fixed setblock not being synced --- core/src/mindustry/logic/LExecutor.java | 2 +- gradle.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index b8af74f60d..e74d4134af 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -1349,7 +1349,7 @@ public class LExecutor{ if(t == null) t = Team.derelict; if(tile.block() != b || tile.team() != t){ - tile.setBlock(b, t, Mathf.clamp(rotation.numi(), 0, 3)); + tile.setNet(b, t, Mathf.clamp(rotation.numi(), 0, 3)); } } } diff --git a/gradle.properties b/gradle.properties index b430244756..39d5565595 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,4 +26,4 @@ org.gradle.caching=true org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.connectionTimeout=100000 android.enableR8.fullMode=false -archash=31a570ab27 +archash=3284de5f0f From 0e4bb9d028bd99c29dbca79b992f6226d6d51587 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 31 Aug 2024 13:39:56 -0400 Subject: [PATCH 118/437] Fixed locked items getting unlocked through deconstructing --- core/src/mindustry/world/blocks/ConstructBlock.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/world/blocks/ConstructBlock.java b/core/src/mindustry/world/blocks/ConstructBlock.java index f45822964a..a68424552b 100644 --- a/core/src/mindustry/world/blocks/ConstructBlock.java +++ b/core/src/mindustry/world/blocks/ConstructBlock.java @@ -358,7 +358,9 @@ public class ConstructBlock extends Block{ int target = Mathf.round(requirements[i].amount * state.rules.buildCostMultiplier * state.rules.deconstructRefundMultiplier); int remaining = target - itemsLeft[i]; - core.items.add(current.requirements[i].item, Mathf.clamp(remaining, 0, core.storageCapacity - core.items.get(current.requirements[i].item))); + if(requirements[i].item.unlockedNowHost()){ + core.items.add(requirements[i].item, Mathf.clamp(remaining, 0, core.storageCapacity - core.items.get(requirements[i].item))); + } itemsLeft[i] = target; } } From be09a5e9372e65d814ffae72b93a92907fc59252 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 31 Aug 2024 14:20:50 -0400 Subject: [PATCH 119/437] Ruinous shores submission for testing / Craters flying enemies added --- core/assets/maps/craters.msav | Bin 13811 -> 13938 bytes core/assets/maps/ruinousShores.msav | Bin 18279 -> 22682 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/core/assets/maps/craters.msav b/core/assets/maps/craters.msav index 9eb3d18444bee2f4f68b82ede857ba9aead955cf..52aa3f3714d829d3112c469cec2fc50dfb59d9e4 100644 GIT binary patch delta 13857 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 YnirmV`tPWGT}m#;zrXhC=T9#M09Ck*3jhEB delta 13781 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 HT^9fVu|S0F diff --git a/core/assets/maps/ruinousShores.msav b/core/assets/maps/ruinousShores.msav index 441fb2044d19e8b1c634b40d545512ab1d0be5ae..90d120449a53cdbe3f164e31825d7d347cf1f8b1 100644 GIT binary patch literal 22682 zcmb=Jb9ZlKK}_T{iL&@-r)wRVI(rpP_)K7#uH+!3vLmeY`mL*Xjjz6%`Ep)i#M@^U zj4F+9yc90ZWQcrICcH+^a~ki)E~#v>{$rbz-*im;`jq2kymtg&?^FNU2*Gd5?PVT* z5c*gCdtUYVviP*7HLs*vQ{6(IM!(yeZvXvG@%h>x_xSJqwN3UpH{;Lz*^!g)zuz`b zuB7a?+OEV;{!#t6->KC;zQsFP^2Tl5;K<#zzu*1p{r&yg`*nBs=04gxEjQrr+{5SM z-WOc>bI@=7eYqKT9{c@1S(l%%YWnqe_oDZgB|m+4w)%QrjN#6`_m*W(ti1Ay@0Qwa zE1M0mKHu8?&7zxSCo|4yei8rw#dCK5@3;BqeTkmiJa_81d)Jz`N^3X&y_S}q|NG$C zsRz?mzg}0j@sV`i)@|Ew|DD?Vtt|ch!CM{Evajdutbculx&4@&kwr|>eCg|X>$j9u zw^y_CzYExYw(hm(bj7>R@?NjHF8lrcJFnjt7k_(pW1o3G*DR@Lx-L^3*58%zeIoV! z;j-i#g~cMz+kUm&Sn0QY$K|yP{r-M?{4Fl~Jwx@~UHUwNv#xarf3N$PEG%DQW^Xq6 z_4fDi(ee9BKY#1pYW;fqySw|7zrJ2jYGAN({{KTy%A$Y!tuJb?mVf_s-kX`P((>Og zxc|EBcC`JLg0;6~%XTl@ara*Jm6vi`elvfb|L4W?*>|rcd|>$Un*H}$^=dKq|3@Ab zCfr_=^KQ#Gv)j{-nqSLXZ}aL~RjqZ#`-2O%Zr}PUFWhX`-n0FGn|tpimao2B|JISO zsyg?Le{6k@k#zgqchfxAuA5o0eS7N4-xF(pEZJPTA^FnwygLRr=a!{cKR<9kch@GtKuRW~a z{`P;}#z#5F_ZCmLcksNkyZZ4lt}k!5?E2qVwQn1r{=AZJ4<0s0n}_K%{ylf>VWaGk zK1&8UKDh;|+xUL1_4hEpw%7GuI_G^g&i9de6Y^|cZTppb{nInsyh`@9$tnFUqSgxK zA_AB81=f~F&(3}G^5SkywanZqmwv@o{{_43Rt4`jmiTh4%yOdD>*rSXuipkf|9$eD z`sM5S@-lo;$=3ZYW$VAssJgRf_M44mN;@1xwuzS=(^Fn(`|2zInrwNVQmHp3x9+ZG z>`>$^T5K*6@c-}OcMD9#QaYaYhws{ZE$sb=2M7D>_Iz4$*Xl;*_qD4oU0rUl_w4ep-n@GoPVKw>%Vpl(T|3{+EB$6?@n$=pmF)weZI9HyUwd#eZT
Yi<61 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 literal 18279 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 v{(sN)`A>fnE|CKODR7u^ From 863611a3e33c079039e83499de4a29864d371afb Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 1 Sep 2024 12:05:53 -0400 Subject: [PATCH 120/437] Ruinous shores detail fixes --- core/assets/maps/ruinousShores.msav | Bin 22682 -> 20837 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/core/assets/maps/ruinousShores.msav b/core/assets/maps/ruinousShores.msav index 90d120449a53cdbe3f164e31825d7d347cf1f8b1..ac0363a6ea7b09783d888f4ce007b201f7880162 100644 GIT binary patch literal 20837 zcmb=Jb9ZlKK}_T{iL&^8(|`9J@oHdkFxtta;?PhXdi_@DUE8a#X1<(P7_s)51*6J= zH(n`=j3=fnyzRSTS4!lzBYIg&B5kBj_H9s7d3{>&+J4>krxzmrU1=9ltbOHdANNn@ zU%~Hr)#r=eANHQGW?f)}TZm!&zVi1sx9{Hj=iT@Fzhjq%`2GK0zcO;F^^0wNeAd5n zMc1snbNSljZ9j$9-Hix-x$xhv#iw4E=ilA8we0!3V{dzVOGUp%?Q(p&-F(<=gyS*|w_vyQ})#lgMt@>29zue+QxxL&McXsEk9}nMK zaXYqha(&&BO?&@sJ2>fHZfSe&)XZK!)2OLG4_x3;m$u&=PnDCLu1zopum|JwDiHukk|{qo-*Tsw8)yTo;M`;w&JZTa@?R`b-g z-{O{kPq1D1^j9zM=k1=h0w&)C9u#!eUdy`^m-+U)``*Ls^HUEj%XF00%Z?K#Q%;_>C@UT!%!*UYa( zYRmjB)obr5e!I0ppGk1uHBX`Mb^nw_Wy`kNhkiYK`+I&)Uf!KsJ9cl}R{8wi-P^Yk z_@mpeac%m&mN|LF&A|7Uwj#1 zo0n}-!*J}|-{xzV=PkQLoe{n2~hZWH@>>(|?Gb{3xf`m2 zxAW=?Ry_Xm!Dacw$9}ta8?%@m3C#Q2?)<9W;1yqVa^SC!e;G?}=fC~p-p*h5WAW7G zZ?8Rk{LNvuR_xnv-^0FH@9k%MJHO}F-nYuRZriVI+4z3D-Q;TN?Ph29`n^AVaY5;g zm(5c)h~D41ov(b`@4xT*`keXA-sRqj-e3FpU9PW*;^odI&y#o8e-D$n`Rni5vl2$m zliPDX-;));`Rmx+=9kJav8zIVsk>P6@O$GATDsudA_ zbndr;>I;?(3tsK7&d%r6+239#2dw1wR``TI&~>*w`oRh>22@7_a>#K zudKZyr}vU!$CapCi_EN^m6pDE`*v%-&ff=x=_?dvbYAvr_y1;p8!Ow{KdtKT;iZ1> zH|)KA?d|+mXLem-f9P=fVJP!@X2zQIEqCKyZJoDem$$O)#5V6+89Y%dQc8+_?`GWC zw~*_bHH%Y%hILMMTKR7^>lMXsn}RNDZN6)7k-;BwC3kySNZtP08@HMR))rMaUptsA zs~yU+Fvj)v->~qfeAex2Y7fdiUD3 zj_J{&?TZh_Rfl#jtY7l!FthH|tIhxVR^>SMUw!-UU*on*vau6o8}&?I{Ryisxbl{1 z#hr&Mwwv4Jd=J_6KQi5Y`PR4B61erWc3aIU+4c5n?c|t{%;oksuD>iP{hd)E!BX$u zy7rvIWX^>VOSkWydpCBfp=GM9eg4DeY;}2$p6CAA(>%ZY<7c_Ld*PAX>AiZ_UOp0w z&AD(?E%wf`ZtGPWF6YUwvCCz=`BYKDFwX&9q08ZE2Z!j}5;m*A z_x)udY3}I(Yaicv@G)>dcX;TosI5CfT*J>)_lNIv%)4-}dG+yCC0EQgDc#zl`K9`c z@9usx^FLt+^Tn2|J9lx(i^^DT$Jwj*UCw^I*65zoD`~xTp}BXhB3AryIDOu1{ktvI zw@y5D6VtPfY7#yBP0*log4c(+hSO)p#{QFCrDT-2Kf(L+(szOhd7%=s|Hc*XG$=RP z)mp}pn|(J>TJO@Wg8&jANtvpSL{ZclK1x0&J{6#H3gzJtjo$1 z*SWM@cZJN`+TywFM{k{86uRbb(t_J!4b4*h9Bwm1viAR4lf*4FxwS88)7jY2+tIx7 z`)_a_&D`fR|H6*F@lIQB=J&On{Vr8=|K$spteTSsSBms@pQugyQDJb4$+6ME)=@U2 zMT4zaa%TN%f5lVlUah$wceha?W`eYp#*BHlW9OD`ac)Sp&E2l((#N(sTG{rKc2s9( z?#mBzj;@NF$|LqGY}=L-&dbf(ITEiNy}vg2bh(H{z5C3|-=(?^&X{q3Xh`t-Gr<9@p)DT6_D$zTB$&H5wBf9?U+t zcoX~EwYoEyPrUTlXZ)gMtDw~5jgofk*Ue5Jo_h9{MK72WNrSybcNtt_f zZs?l;UoJNfnXPQMSMOfz$S+j9^6u5tHF78985?e1TiADoeV1R0&h___0n3VIxm1Hi z*1sy*yPx$&PWatVg}0a7P)e!!)x>l#KlDe-mTQtP?4;r@-n+oerkwra#igjjO+HKF zO><@LX@woTlTh?~#nspE9Um56xh(qTLdTN4lLh%xCrq2BdSsSKRPX21(Ee$rvy5&U zE@OGGy=|qHSz?s$(Y%D+LQxxXO&-=A7GpJ0o~-(0*1V``Z-aLpTYizRWfs$)({B$N zuC$F8zItx%afOR*#mVb8FF(9oZ%c8z75mK#C-0>x`u(~e8TTSzMgP0@#niKRFIbyq z9Ck?Bz$+MXW48Yu-y)UQ8;VNy3yPL?+&(sERqU$tPi!?=$6x-x5tX=jeXM)?cJAQ^g?rQaS&$o!%Wy&|QZ+iN1ZJT)ahqSe(4Tg{U?wtHvapks|^Z8YB)^8gwUs&9= z)$rfEiyP1U$acRkaln8fKjlJbx0TRMPtCi#cqZLy{jz8I-k4A~g_NIhcdi>|U-by$ z=lbgLSzuL|_ne<$E%lll90s4yFh1L|^~>r_KaE};oWs0A)S0m`aMOLk0$H|gt8aOH z`?dN;;<25n3tt>uEcb22t2*gt!q&H~`s8}P@rM*%xW0If^6#ZrZnj%a-1c|c)gNVU zbDcxCnZL|FI_0bNpS^e9{$X*lXSM#rCA>nHqheJ@`4%<%(9l1JtX6lN6Odkcre>{G zU($(L1$hCBjnD11_+$AzlIQB1lX)kO{5h$9==_(H?QL5RF-rW;TECwCmg!En=|=_k zmQMKM#~zis{fxmMkEtJ-Zu`ADvsycBa^IHKiI-L!W;wp^+MGM9_!5sD+G)6Var>LM zjeg3q>k}&rc08}q<@+r)S+_Uj?oX$UlatJsPV6%4y|!)1)IVYmOxK8=S^D(!y=zaO zE}wO4B44zvcCN(N%$0fedGDof7ynpXa{Gd5v)|>z=PoSVykvFPd5O%u*WWpNyx8(1 z?5ttNipRUGBEQ~Jw(YoFdHbHmE4e7qAFR%sbF+^9T>bWZiC}{AeX}V({%el>n!E1v z3MOUO_UW5u$~1nlso^o>D|x%Uq|)ZX;}q#PccN9N%y*5+Sj+%E~$LE_1&ZU~))h>8YH?ck-)sBCHrr@ViIfJ!j|gWXnlKt>w)-^oqZ1 z&dDwh7jLcV;D4;ltIj;f=9+H%Zv*d17vEjEX}r~#qo(w_#%~Y)CTr$@L1v%Z|CH|9 zy7_YB%)s21s3NI1Cn8QXt=!IUvMcP+<(=Qs*=Je5p8jv~%)@3O3)O$W2>iwi?&`e0F!1g+$4>+yC}kvNG7OxnA#EK5f(gtuN{vub1Z=zI{=7M)r5oNwx08`X!mmOg=5)FYdkN z@%^Ray&A*sn$I5zpW5(D^6}wz)n9pvvo11zy?iiz$!nWzy}RGyvVUh>eeu?zzgD{9 zutvw4dbNkow0xxIdsZdfY<~tE2h% zOCTuOFrWtU}pXI}i%jHr;*?@?u13U|$odv_jpw`P{$e|2rH^PWY9 zNl|B4tVmaj*#5<1$K~6>JMTK~{u^9u`s(fX`3I&RTi2YkW%cGxuKBMPOu8rk_Ki&A zol=d-M#)2M%61!~Xr3 z)}@!s+5117rdTP(VUarxP(b<;NL^_Q^Sl9GA(N>gT=b=1<|%DigH*JDDL{l6Kw ze*N0I-z#|YX60`EZk2YQCuPw*HM6^~UKvH64*A{V^?vJ?@`I0|OF=dfHV_T|C(k?NNuLtpP@^}6I4dwKn( zx9>bA&uyzzn0xwnw7-?w=d1$>U!OHszm~CW@p2FS*fc*QtlFS)-nC@T4KKe<-Z#yY zZ3^GEd)F==YPh>8Y{~wzvfr_?o(AEzg@?=UvAzNPVmCu+0SV$(aX?M>78 zwO5q+RjoLD#?H^`_UnS}`kyfDmI&ae4o@wKw$w=Hdq+R~;4pJLw4&1LR*)kN3&@bW14`_~*D;$J0h z);wIckDL3#udEfXA{t&ry{}$;xOrdO`fjVY76#4TttZ`|u(sX}^k?t9-?FruX~zP! z?<==m-t+B3|Cz2GWjeua>(<`gyWGn%4L({D3Z6}$Xv zlq-25vQXDs-Lyk6q1RcoG%Iv`GdwX{6V!EnyQLrQ; zn6==F`Z2DBZyL5T?JiVXoO=DDgp&2ojaS(_r~6#`#hTsTvV!VZ1B6?N)Hb_#O&9`CLY2#X6(2%kHu+yVT_mhY7~omW9G^Yb-ig~l0{P*-p+aJeM4oP z??x4EyC+=j1+K=85N& zS3OXD`uOdHUqN*z1olkUS*_YOC%sSPyMWC0n~&2Yzf~R+Q+0?-vpeF|wQs7A(b?1k zh2jM%KjTimk4~%i{(QCkK~~%1NY({+HY;9l7BbKkmG4?ud33qS(c1F{?xM@|AD><@ zh2g!`>5^&6LA?v_BpDdvnj?Gg5nwmIWl$vAXxI_1rQc*?Y?J%hw*8Zrif7>x0&_wJ*POM7U?K z`K)xj*XDG7mCU_{x0a_X92e~8kzBe`g1hI1n)*W~Y2Onpu02IVbvpoKl!8$`!e|^2CeEW^xWO%?|5qYf}Cmr)=2dgLabfuRYE#X zvge%A6s!Ih!gWMvNdQ;mN5RXJ%2ZrLLUycQGFfF$=Cv?A#`OjBybefjR8jRcxuM$3 zlGFCfIH$l+dCws+MaN?ayAR&*+NQs?yQZ_-^kl$8weKFrtde==2e&MddHg-4bn?>K zF5OE$iNv@1gwD(qT;;R7^xf?A+r2;LsqB<$S9q8!x9-{w{j6synWxyLelZzeJ>hIN z)k@ju?l~id=JM9HwqG_b-I@PDV`hQR;l1pIGQMjTtlON>%DVBnhFc-wuZ-XhyIoX-+u1;k(F; z1>AP4jh^X5++W1#KC4yu*Nv9=4R@ytEm#)mKIw|+>+d$k5f2meZUj8voVUxksPBf7 zp7B}F8<+0rr3iL!Tz1o$Tjx>qv=hm1rX@;Gx>Mm9xM#fqgQSDEu0o{m#^pzD#6PS~ zRbx)i>EY?y`Ntsq{Db+)4S!hcMHi&JU_5;)W^Q7vR8i_3-B#ZN+Z0=_zY)FKX=G&< zzPe!Q;{zEpW~Lmvt~0UQW8J1FLfnGE@&?UD9Md`*jAb;u)&$H9o75yHb$idOucGyB zzrE_ZcjPPktyApqIK7$EW68u4o3l$qBiW4B3vIMrK4VKwQ}XkfCvJudhkWpLcqP=i zThZI&RI&3dn|Q|GX1BXlxuS)NxMe1|er!9)srE^2f}qgEc%{tq4__M#@SR-$rdaQZ zm*@2K%qbBcEutL*U8nFk)N8ix?=g9<^YDuEvx!d9oBJ1jG}b<%FM9FM(uI~=_&sh2 zN*7Fg*qN_ua5nOrE+>Eb4USN!k8(e1Iy9y2UdbG8>1Xq14i!vx`<(d5@xUf=yAKCH zb}Gnr`z{oIEmmlu{xE7;w?XqnrmlUwPj4Pd;%R%MXKMC^=klb7F0GR})TT~m_qgM+ zai(Ngu-)o~sq@$PotPS<7AF34&9j+T*Zem*uj66EJ7cDaz3D zQ{yfKh1q`kI#XIM=v6Ua-o}KRCF&kY-^2^Aoi&VBywAO3eNoPw8J#<$CO%ftGoK-M zTBkSFrE}qx56@B!lIs^~JPf+Q-{^hxnTFhiq*<<_s>`&_{z;QncG+BNBK)%~LB}w8 zzMf)=@ULe(JWqwkbw&0@hz3tnDB3T)@yLyr&rc*A@L~7UP<_}kXYrjz&dgm;W^bAz z(8ybx)Hm;Sn&rMFwe2&KC$h+R-?_5!%(412no}iwHi}C7uD`KHP4rapyN{OI|7N~@ ztupaI=9`x>IpG%euRm*l)9IGZoaQ*|_qmP2?tQO=a?IIeKI}cP@ka9OCppW4*SzDL z|8k13tN$|L#VIu(&RkvJGP{Indg?RXqkB#+Nq_Nt@h1yCUU`e%s(TXO{WE&HIn+Nv zdy}u-_Ww06r3!q)&I<(In&c>QLTAR5d_%pZE@wVW)hXo4kEoT6KL6Wj!>h=a`o5i8 z#HT9mjA!%vqNsN?+&6TAOxXNl1EB@y?`)OTWKxaR?MZe^+i2YPva?EMOTfArNv3Hh z7kBU{{<`5NdOB6B@w8O&&S$+cHVo$tj2=idWpsW_>$=%BsmC`>+EVm|XWx|kMVp$W z4D*vbB>3&VN7g=zzQMURNVxxgX`7BSgUQe2aG%I?qMJl!r3Y}^T^1@%aXh&8-|-cO zN!_K#Rpv8G9$ETHlUHZDNUh3+N1wQ+a&O#Zt-y9NqCa+<$mXa7wxfSjKHN=cH!W_u zyie6Dc8$h#%WEm~#CD3UFx>gNF3!U`b7F^1!MllCi|zVOWZPw0Hca34>@(}LCp||u z_UyFYu**a*^V&QgAC-;Eclha8cdmb#XJdK#*o3s1vp73GPg6G9VY6I#rR1uf^2s0D z=2&LS@D-lseQ0pYXz~+r-KD4V?kC9PZ_h0;S*P}}O(ZJCrL=UDjrm7OrnlZVKV4vP ziOd!|{o?YY{7i?+`<)7HlIP#P4%_b=Q)_YhS;o9WHJ80_<{BTb<&N<>7j19Ukzu91 zDf~%-sM_`ux1thUCiZ8XIu&QK_Y8~fZq~+-Ef!jfo-W`RV{xN;q5Q??HLE_^nK>Uc;a>irTCVR{hMVnKrqxEe8@r@yqm-7d zbn6TJ-F5Vf*!yO!8`UmuCtiA<5cqJEr76WKAm{AbfN4Kp-MA*`S1W39^y9|W$F|Sh zXLGsys@o3LZ$^g#6IUtC*LtWt)q#6?h|{l?WY_uH@39tr&y&MZG**{y_JGi zT{`hz+M-2&w@!;+Hvp6 zAsf})Qcs?=pQpCW_LVryR;PH#RkgPEosB|nV5zQZ->1mZ_J@y*r^KA!aKu-{Hkr3i zs4c@ysmki$gP=1Drp)2Jznghmb4R3U+0>oR(?Z9Ly~S{w~9;=H6`XuL^DaQ3CiPuH=E?Y=X) z_x-XR+D66;m4znCvrZ{tG7g=;Wlrb{2Sc45UO$(nJQB(;7F*h4XEQnC+~(3#L6O%w zc|snEOxd2Hrs|jT%lNf7$MojX`!^1iPV3xr)`e?|OnQ=xL+}dm+bceV&hwnC+pgpi zd2-5=)GhkEAEX4j&JeqF>4@Mrmo?9QoW1Wat6go{;j5w9 z&Mxz(M6({R@BF-Ia_3%#_$2>nKeai}GG3lkG{f#>Sl`N11rsI~Y<}Qfbn4_emHm^} z|K++YGdbmI;jYO`PTo}23{F{T=EioX`r$cYz0G|dS(_9MpBvmg^0B=~T0L^oO_ryU ztJG#{EtZVj5%@+R=I~yQNEONS%&A3xrZlhZoNTqJOHP25zi9DJ4-1T66a{iTXDZk;nAKQzkF! znVBLR)-*Ba{_0=nROBA4`#-D9$kO4^v{>iNY4eXf`eae`{)5Ou79&NC<$Dgs&iY8cJtn1xlDDV0E6`wQ5jLQ z;!k~u-#B$g=t_5$cfFqqLULR_mBf8qX(YGwhN)WQ94GJ2%$?^B?R?Gi%_ein-yh-M z?z$!=UE5gAWyESW-|9Q>--hX_Pv`m<+@16^`DAKnA9J_#j2+X`mMx$0Qb_yC0-h6U z@uxoCC}BD^V{Tlc7*m?T+tuzr`OHpE^maO^;=WFE_wiZt-0WD55{%EpYzl1Mv@S7J zO*-jB>ZIIb*DDXZ>$QIET)2;2pR-+N%8asSHJw`KE|;dh;V^KXsivK9%f3M6bke5x ziqqE%GbzfFeZ2Gd7`WExlZ)DVYEOI?KXAO&~VJnpHcdRs`@;=-AaONg^%WN z%uiMJ`MmPJ0psjB4xJLS-#A5Wi*rokvP=_S+i3FEvvGPwNV!D@`MWlz$S%@QcZY+ckkQ7MveonUG9H@uRP%QFo}-h#y<+?K zD@*|?mfO>PPlgTp7WLKm+0)UJ)W02pUGHl zCgYyTVS$?^F3DNGj^4EDtK~iKjUFm~acNvmYBo=m%fH74pD{}bsp0LKktL(SRL!=5 z(M+$hTj#fZ(K+WiD&`&v+fQm8w(1d?-}U|LuCupz3eT)=I=*i5ltu;P!pO33DgqOu z&uzQ9MRLEFe9vt0%$a@OIp?%z z!g^2q44iLwB)hjRoAGOo^Izj>e~r~n)INBtP+4~zs%*Pib7yZzJ8mTHS50`M|`rJ)g_bPHCNL2=90P|O@pTbbv;kdtUK@X zz(Bc3ZIzhC>}5G(znWyhC-yzOSb4mFF+a{M2_-Z&Cf6t&9I8>-qNI z-579B?9e2kJsHbp^q45mPZzsn7BGP`rRK!OC6ZPzC(pU-^6!|Z-I^Dh{IA(xc=`S*FWErwX+Ou|TTvi#dc!z>+^yay)tBk@*T67O{nO?cRbDL=Tq{;fH+J2?i z2`QeP^Ke6Fe&vTdC5HlMN-}sESUvl*@x;@f5QdUekJHBTg0~${giR{uSR^-beW>N@ zgUh$+e6{G`aw2eM(CnS3tXr8IyJqm07d15fWUYwW7ZVq#5#tm+puvc(baJ zQ~CXr)D)&XLq#2rB*pa|e>P~U`aSt9X1#URL&a0d+gy&S7Dk2hhMjvBtDlxv!L}|f z=giNh-l;q{?#}ypro1_M`o0VPUYcD8;@j+M-`%$Jm}JkkN=f^TXUJPsv$o=#-NiPx zilt=-+&T(ROr169=N#cywTWt}a#B`-Up0e84^3V8RR6$ru5P`u2}T7RLYr&zP6ikn zSL;UYnK|RQL)*pM`H`yrixx?p3;8xlU)*U*>XUztW>b@-xoYO~Rn8Fn;Ib*;!|WW7 zV@rZ;?$3ODaIICSp6dPtPeay)hyN+@O>(;C-YdBD&7xB(uNFUBBPb9j=yJ|{>XiAh zJgkz(SEz0cygOwRoHe+q9Rx7hl?KPr09L~?pE4s^G4T(vsR z;VAcGlfB^AJtA{Ix9VC=db_7>+WTlr|3w}}W^I+s8)xUtbqdw9>n}O;W#WueerNZe zSik6Mz`gVntlhancNI?mI{Ra5Yv;z*KF3&&ua-Ig?LoKd3Jv`mr^3zarvJTDP%=~9 zg7?B}hAjsUYIr;_I^TG)_BU&#^1jF08@rjzcN!TzSbuX>zR<+yH?O5!WBBf%r?_9R zKP`E;P~nLi2QG{As<&Mf-4`@x&W}~O?oWNLxobYxPD&S@az0grB!W9ty{g&M4e}J4Zis->Qv$DT01oEhg%MH;dJSH>%F> zF;T8RF{^UEX~Y(0>-$N zfMpvad3L9`|5Gv8Y<}Ru-^TkA*VeqPo1hwPXjZ5y>#QmGulC)vM|nH0H@tJ*wjuLT zRsWkTuC=9li$vG|TA*jNLV8Y+`OSZ4+!8I_6BuGx8H%`^7<@K)1o0$H`dZdLUuwaQ z{e2C3KOJ24p6OQ9EPJ?gkFtJJ7oo#9!1>Afm^5JUv46&PyJ02W2FkkqPQIWm!p3|}e!aq+OG>A{RIaA3^ zZ~glIy{}6SHhtQ5>hw1i^9yDL{_Tuh`7Jexa#Ln*mt6MBs(so|mOh>f+|x|>Uxczn zr7rjscSF*w&FHfEd55z$rNuHA=6p>NI?{5sIb)mtlNCFj@NZ73I(B+a7~}M{Q+p0x z++t+0(!0iY?wp)OPyb~eXUXt>XL{dn{iZPeiI$Trl66j86UtJ0&ouG-^|QwNpR%l- zwWIo|6o=!%;#ZrJCkTkniJ6#kz}M!F-ihpMhi2a+6>TWAHNK$%wW#S$m zf8ny0O2mhL##@;^1TyJtRqy6_acLiE|7eZ_jeHJ;v`|Eb$R zu{|a+`x5*854{Ul?rHKWQ$5w^{k`>G%4Aish$oAEijyx+T=K%|c!!SibmKC~`?HqK z@bGkHRGuEASiHV`W)tUqvnl7dY>@i(QAbLnwWr{0?N71T*iR3Sws9ScJEQrga=A>*kqout zhbHd3vCd#u*W2VXzbekoPFR(r_1SECpk#k>3X5IAw42lJ+CE6q`c$NNH1Nx$&##zo zZt~o{Ijr{F(>*V3ivMlPE$aFF$H-;c;^!M{uRrSbeXgsVVz*KGqLOK|`8T)l8s@`F zk9zm6bo`l}JSjcJGsbVh3BPSJ?IurUN)@wron%n6m=L?ANrB5LztU@`_NL?0?9yk( z^le%CXSK-j=}RlVC`MhAbhx|xsq{aswY%fAFQ2)`vV8Z#mKT#}%2v+yesgw}>ukRh zX4h_Zot0J+slKvAf7y-OQXjYaf4MsMh1jLOpRYGsA5~>OZ*#vp)W}jTD6U_pl+*8T zrF%n4aY{31{pra6zDhDjU#{7Z`lm9`@Rd|`!yKJykusI_zm2*j;Naapat|!*DbhlF9NH2eF5RH8KSA}g$)l5% z?%$rUrR!c6dOdI95$5{h&{NMlW_ITD9g=^nFu5pR=+Y5R4(Ey^f&Omui*odmW~Bz! z-F(;^qIlb~MR|_2Vqef>ncKC!FO2_bbv~7p+W+L1MEc~uidkNh(# zTXklI(@!o9wGV~Io-+$qG@tjiDW2mJSMu)7jYG1cr}e%rn-rH|`8)4J&>e?3?ky!+ zwLhF^2bJv((^=mi@^1CIm3c;G3j6yrPFO7exHn|qBxbd<92c+f7|S?5@fEN979g3{ zA@KTK$)QErOcSlj#B=XjRQ9mix=#@Qw68t2ec$A|m%sD_^@D@bei*zi)=QdxUv{F2 zpzycYXUb1(`8>EMa!-gq5y+;UtgF{80-rf$)M$ddRdferlAA~qPmVLTLg;%j4wq~WXgHzcz!=iZ#V zh;3Q?iSxWu{|e}_TmJd}@6uk^bBw;ztL%P?FOSq>y?nT*;Yqvo-T5LhM><#BS=~8B z_Q;Odk2jV^o{FEzJ5`)ZB6-H9dG3>^7+!iMrdl~~f|~S_r1UvFI~9Ms-@JL|bB}pL z&B5DtHtUb(+)A0O)T&qbK+pJVk=i?%=i7zYjb=`pJm>j7_O&Ow#a!ZFxI8$2_p(9J zsROq2eHMt#H2K-N*VTPPukia>CQ);@2TC5^fA`PQ8ZM{w;w4i8<+uf-ch5F&k8oa@wUwG5z?feW&uRW=`_vGrY zWzu;}a@%HP1=sb5)NwqJ`Mv5a*`AWRyK~-F#bv6PgoTA#8S9GRLuM~DVvPs`i zQnj7OKTPPjao=>?V%;-$H$I(M*ylN0!rkrKsRbwBZ(4Ap<>Sv8+4;BZ*58;ABvYXj zUuiUDT9zkAkey?AjqAzNu}@TEH!ZYH2%REx&Qoupyw_QYvcv9Qc<(DM@#ytcxo#nm zS~E9YVyDm3B{frKpIINWfR|4aW{e4^s_Gj}&=pVOTD!&EJK(!vL)Kkw=2o89cUNW|aF+T!z@U2ZDn7JOH0Pw>}1 zJvp1}>2{yubMJQR2Sh(Rdwmi!PhYg(3+01mIVrhGxoR~>?oAFz$*Gj9|8Q!Bv3Ypn zK`9sW$ox$*G2aAF-p*d4nEa4q`Xr{=J`?`MFv(*<4oxRbjLQ@s4+!c_KKrnuE4%{7wNe=onv!f0uO zkn_(A;S6zt&%10REo0`n$f+unr>lB~wJq><`*&cwUnTD@5yRj=A$85mkA(?2M5vrkn10M z1L|Dto-&IDPh_l{+juH}*3()qXEVmmE1nKd&G%)=%=dlF%_%f}`{GmQr*@=Gt99IA z-7)(e*HY`p8#Z_=Jbp+1^O)<`Wd8vjw z>n7gMotOA@s>Gj2Hm&vBrpn9s7%OSAr_a!e)SX&BIV{p**<2O&@9CvMy3zLLm_fGJ`=7i0Q=)?7oHh2#s}_3vC@3!%aL>D`F?-AG z897<|5>z){k^H1{StrqATf-Z%2XgYoIgf+a1Ze8Neq%9x2Gh^42AtDgl$flWVA;ya zCo)Ow^P0~ReQL93?gqbej5LM)@Q!Y%$};O-s2@7es_;{$ibaVbZ6C9qelibT<`Rr|f(ZfA@NT z!tT>g=N^2wXbOAk)TPpfBAj_{-^Bl}Dmhs6ZteFqMLoV7pL?>*`@E3D{Zsd1!&P|& zcQ_>Hxv(+6Z(6_jXLzxuQb&?I6 ze_Tb?+=r=>_f!s7Uthoe$#n6%;$JF1q=kB@r!MK~*Zme2 zD9pcZqw9%Zb#0~^OWp1sSJZAWl-ZHzP&zs1;-n(Cx~kBm-;s4%#u?qyyo1(O-?+eC z`{$a=?hh9drU=!fPM-V5r)zI}WSrxBy^0C!DZ&A#qK>OnZ}Mq-a`PDL(i`jc6cinr zzT|_pr>9wA%9TaGyK)7W>!hDr6p}Oj3RAm@VHW4%ray}FmmUb5U19U`>=B`vR|Skt z)#z_~e&k8~=6?6Ozei)IW+oZcJW!tgeO=d#BR^7qZ9Z^P&Fo8tkPU3e(N^9gmwK@#E@-HAZ2Ur%q3Zu5*aJ#;*OwHZr~= zs8P>YH-g*5Z;xG&*{u`D41X?-y|}99hfAH2cwAymQh}O({s!yif1bASoL+z6SXAOU z*K=}fJY@~tc< z%q{jUSrfBj{T`;6Edjm<0_{aN>HP4zf8&og&!;8)mh%}Zr`D=XJN>CgH|(e0Mw65- zw@uwwR6ngg*YwsZVe;RgqBo&#-Im)-n-`y|Ia2Us#%GO2b7RBeUenm5`4gimZ}RU9 z`nY5BuDF=VhufylR4)Fv=Us)!N&le0gWp3Xg`d~R7+ue)ib<65b!C71!IydSF6QIY zXM}s$7}T6GK5Nu=wm78I*Fj=Wc9Ptx(PT~D?tUf(*lG{1%HH#z8PPGz!pUU08 zCbnr`&&H*7D-Cp;)}D&#s#870`9vmp_ER|_-DkDhVin$XHF-boC9m<@cB$jY)AF6I zc86!rDWAAiX(RI;KR=60Yi6?Auj>pm?pb`wqNgvd=4Yy;#=Kai1(SRBywmnq6Uxv7VqzTH#oGe76>x=jMA4SpYknZFo$ z2i4Wyd9t1RP5xz`kT`yQV_B#Bs%fPc!*9B(+n7{3b4pfCWoT+Xer(n!xJblGjm zG;fEKf4qHdgYE~-&sZk+a^flVD2{%U{P`ItZ7*G)pK(ck<^OAyahK*d{_}Z#e$Kx+ zSLfF|YhJFCyS;a@{pnxA_f)4}oFDnO(ye}9h{FfvyT|InzSjPj<5*Mqm-D^oOlK>R zd+q0SE^S?4|9=+~=i%Da2h4M({F`&6?6lv1p1QV;|1RjY&JR6u+2NnkAG_W!0rd}d zcg@%QGsnGR@~_P;e;MKqAJ~3h{Oj{w|NdlqNmhyp=xv!@bZhSQ`Ibk@1MB~#PSL(# zx!nG|LR?0?VbPZR=NH>KwV&Jk>$A8MmarT@-inKf^n&d+!r=Yqt28*)`Y1xm&(}StkGDyxO6ePL}aUzA1j% zxcY%A!?%4-7OBeYM++S9<+7^(S$nsYV|~V-8^8XlysBltJ=cBjj<=^g@-IeoAKkz9 z!P9%&YG0f%KK_wEY3J4QYY#U4$Oowc`OQP$hT-4w4*OpcP{FZNw zZ_iuS%`vmfdit%}El;nu|4Quf^v3tAPsDr2*SGx8sJnO6E@iq)vG7yAs-FVM51ie% z38?EW^1Ewx|42Gl>h6}3Ae-8bKd}YBYC5cJ+jH+9JnD!XdUGF`<5crL>A%gdi(MP5Q{ULP=B96WYt3Qaz0c8d zRcGz8iE6KyO=_F}9{8nr^S^7ee+E*7&Of}laYIGyOjD1I~5o6lY)B(Htkv#rQG{x zSM7Pl*o5TrjpwbsvertyQtZC3KIMwqhe(I`Scm9Yg%9?0zg6m)`6PU%M9hZLMRQBo z&%amv|M}H?*2ZO@4m0226K7j6zn;y>IM652Av=Iz5$I zV`^ix?zhH))|6xMz6-oBxT>6($}2d-t;xYHWF}iiqoUBJgj)-8&fMRB@r8QRck{&U zDx3%Y=`KF*mLa)N`SpQ=?DI`~@))D?PgS%TSp~Z}TswVEid()t_+7o=V%CcNEhbMU zrnd?{l(}@lVLi8RNl1)iedwH(4{R6D;@>}Yjnv-=$zWl_ryq@5k8kD_CZr3P-CT1h!Oucrg}%}{ zBenjW8~d#9bsP&8-rID^+ptr2fr{dmxvpH@ZOYy^*E^pUYV(=kBH8S9a*0s(1FnzF zpQjx2c*wV=6j> zjzQPn3D>On?aMBol%los*!uYgQ^h{Um~7ZLYa8>|<-cw+9e=RM>gV_6ja6sEu2rp) z(BgWwPxqL^>sbBJKatwpTAWEzISrT%+V~%;mK9g*}(t ztv%nS&)Ku={mpc3#y$EIRU!)m)*IY+ZO?C-Wvd%8@6#I-PaO@(EVF><#)rrJJ}wdA z&8_vDT*_FpyJnZnRD-_Wi%(X6GVpo(H{Wf=d;Oh94_RFEOTK9p6MK@!Me-(#dNupa z9+`{&MaSvCo)%gvb;8X_L%q9Guf(R>hC{pE0N2d z*YohK81I7%Cdmcj%yE1lEWaH6=)7o00oT0lj^lk!nJg;{mNEW&!||f8DR4oXw9CBp zQ*@H5{SW_Vz3-jT?(4rL^xDMJ8tX5=XmwIwE|+MSTx#9@<)HdmE593B9!+-2)+9vbhd92Sn?o)jy^b_o*-Y%OsJ-ds|Wd4UAj2Zje z{~Et~zt4#Gf2@w9i}ikq4_VJR%dqEtMoR6s)+{`F$@t}g zea#yVeh#1bIX`iJ=Ms(oRmzPvVUJFCDD@xO-2#!CP(EK3x?;5c^|F6sH)qP!k#OWX#gTz-|t=AJYm#1D zNcg6SixA*;k(}E8fhIV4L@SLJOy=@%b&6CO_=tnXWRcQ}rUZ=H))lV}&gp zi=Rv>sqE1<*}QW>ikSGPQ%9~FoRJD=UUJNCqjQ$E_os&LAn!`vxii~N_@3D!oZOxm zWLq(n-8q4HJn>i7B_<$+)eGM+|!kr#vxc`NSW zx^;}@Q_A(lIjjZj%q$OfE=;h!{AyWS$&(H8slT+o-FC4_sMh9+tJV0MwL<>XR^Ba} z9WGYMyg9JBhWXy>4)fl>uQT`;yf?m47kg2q`$3GW^}59WnQQ#6iTWPVn0K3B;9S?H ztFm8b9$Dg@t>vmLKeKD;*V(UEaKAEd{Ca@x(p-1TiTn)fvi;_ps$RX!c4@Au%`Fuc zgR~9&AHsXT-V7=G#rwr@dCL0(Tb!kN+qyNFXVvXqo#AvQtVM8}_F|h;8O*agem8Bp zIQ^SfjPs4mqPO5mP*&uZ^3+TSVF=n)_Ie|28_|N5_{v)d&~5)=Pz+r*f6uj5V=o7=vb zqHb~AGym4t2wMER`NJ-}`L>klzx5*L6Ka+uwB8n~yB2Xr`b4VDt`Acd8ck#}`uoAY zdfhyBlU*B@TnuR{^4PO{&F8tsoBkT#-M+@|&+@+2e`dbiCHB~;ciXo@CXQFd@}KXN z&oN6-3}FsAws?2{%6GzdzwF!ekY!7J@qy+36Ipb(*I$3hzvB6o``2n;)=P68Ji5PK zks;>)vL@GMh3l9&g_p@b6ZBee^WOvcxkk265}F$R%UektJ6Q7Df#Hv!+S8>QL#`Ue z`u2ZavA%xI^OH6wUjE+PX#VrF_TT53NB-Ru_*^X^H(kckCxIzfrR~jwseFIlpZ>dE z{2G_nwxvtULk~`y{c&|bfZqYBJ0&0X@jCqf(#sqW_SZT4i}!NLzxF0vfB#-r;oNlP zOvK}J7RDX%JB+*8x)XLST3{yCzp~@&_nzdU#|g`?*l&pW7rwmkCqGZm{>HC|etwkM zqZXQftp3ykaj6A)yPkadCUrWpFzZvFS)AtogwXr;|GB&y+EyRTG`_F*_N35>eTV9D zRKHYBy`On!59iYL&e4LecWv&RA`;)o`RZ2r2DZH>ZLjQ)luf^1@GM2>xKQ|hvAa%R zzweq{TpxH-aLb7cvC^BTzS?RSqPos-Puo4SW3N1x-ECOs?RIH>oX-Cj*_-}+4bFLP zqW@RXZTIK(sh`!~S#UpoINv!@U_MLT57X?=tG#q>p5A<)WLaeBQO!DKsb+4<*MAXq zliugoy)Ef`|Jgc1X+o3=4ePQ{1mgAlrde_Y7+WRkJPy3uOE&r$KqsQ!h zM`ND_c>bh-Y2|8P@x{q`wyk1nb9zwh#y!#uz|*kI|W$|70M z**muA_5EjG`k-Fr*=m(@@3k!&7F>~6>AL&d{@Aa~r$@eSJRev7{_%B7=M4?Q1@$&= zZ}zMIpU?F4nWoLn|Mh!+_EpR@@16Wwv%PBiJ%_s-{)WQ;l$C!@eaL_6czis&=WeEy z-}l5{{g1!>{lWX!n~z!Pz1EmB`|slG8@yI;y}b5~$!qU>M;XPwt!r}J!m{S~`VAhp z|9!o5{zu~Tm%rN{Rvfkd&-dZLp{LPYHrkx8uC5P!p1-g4&Dp{|uVfA}|NVJB{^GN~ ze}BZ6Z<*=T`FG}`o=~C9uH_J?)Y)|s`TWt|o#mBw$YQ*ls)p6!iV)re7eDjKU!T&OzLtgtFu>3zJI9mkWpT0MEIuK)@ggD z7o5^-ulhT0(ObbXZ~iH9*FWCl-NJdRj^TB}Qp4Qv!mF*f1bC%ysJ%b&%X~@>=PK*m zqCTBtTTd?XX?UN%*eB~o+YjDAwa;E^%-1*O%5Go1Mp35qyx5exUt|;G!|NBc%jN{T z$9>``mwf2=U|XN`jc;oomFSntu1hO^bL`bh6iU5S@Z{6RO}F)eR%E}}-LgY}v5)eU zROa6`OHw`;@NEy#(c1l&TTL=O;F@sX+chlq7ww$?|1K?zy~!+4nYvvfHE>yIOZnZ6 z`c1+arxr~6-D>amRyuuwIaB+YG+$X?!Kn| zvo@ulYB;xL(cbxDesVwgKUg2REbuVi@n^1-b?s$lrhL1%zn<+**uO7kPGH&oqH7=Y zqx&~$NZ2+(?srY2q9DOT%GW9`bv{ut~9gBZ9tdWQIiv3#`E6t*@ zQrzH&Ss}kH$GcD2)A|o;dj$rixSjmxdn>kv|6|;j4}G&APhhSUXgj{OioI8XZ}PnP zZtvGrwKxi=JbD+k$&>HfWT%a+ttXcn8b>U5)>r=WDB{=jjYnlZG5&T)pV*(h+`*q! zK4SB~qY|698QxcI2+-5IX~eUWW812E2P5V_us`)~S;bYqiG^;zqO6^!>|r^Xws?I- zTHPJCjg?!xZav-G5yUoa{k~;S`{zqc+Wag2X!ddU-un1=+I5>e z<Y~FZWo9XVph?F2^Obp*gG%&Lf}sZV}D=UL)$MzyqPd7 z(W9c&C#3K6Y$nDFPS0KZWM}hlC1v~JpCi*z zPqm~>^YoQ<|L?jO8?O0z{K}MH!go`xrWL<<@6V*P<&_3|+nkA$%xf-&oU!&;QJWk+ zDPp1gfh`5+7x`b%TsmvhRJor92mU(Tw0&yYGP`fB+1zb9g;BYiSJ)lYY;w2J*R6bcyw-0qn?v$5%^rt4`!CO^(JlYQ`PcqD@6>qpHJVp6BE4kUAE=z=515tk&DB-C zG(LW@ctCa~kDsaQ^YEOg+VGpgoZr@5z47V04J-jr1uw z-NlPTgwM@;d-=l!n`b=gX_cu9WZmlzeO}2gx_8lqL-L2iJa4|7ojE1P)%MZ$IXBI_ zIA2uqwC8JAKJ<8O>UsXbh5JW~<1Wtru;#?M1sN}%$Q_t(eKq{8$d#T+mn+N#&ROR( zs2`9pdD`){P5IPzLBER;9r=}!ArF^K3T`#Oxapp=)TJBS%d&V*XjWM>x8`KKnDnu9 zu1{{MmKUAl`YucT+U3+oeQKwf-`IEBx&GBneH{Pe(^Ymy^>pSFGH*p5ss(-aU81%) zBkBupc4n)4)kA;2ZH?hM37X#oS1C2~gdaEZNngFvPSIobi{tmZ95)@;Te@%OqlC8e z?-hzIRf{j4+KFhi?FE?v!&XEXHDGSXtdDGL^DObVaeLq)Cr642^_5VKDqFE z@eTC@Qj_CWdFo%eTkxx?t}goK;S|j+Gr0NgiJY1lX8vNvj@#@H;=)aSX9>%0+1s!9 z>Gvr)Q)P?UH`p>NSHAcvHqBk)%LQ(u`uLlVLoN5PJ5TD_wA!Y=iz>f-vA^IqpRGrU}wo?27pfAgw!m7BKs zf&aN*IpSL$?!T`4c#E#~?n6c17f;L8%6!r3Z~VYNalgd)Nat zf&20rmQ!Mmq<^_|e*aUKNx!|)3NpVk@~t{&QLx5FC%523DWCFjdCP4P_%A8|4-tr+M)CfQahh~SscD>Nr3!@DrbF;rOz|Bgm0MW`uwN- z;ys(Z;%XUIdy324+5W+DOLR^-0wY#llaEPVW4#ernynr5pd6s;=M0QvKuhsdevm zo_~3FHrM?13U(Ds&z1Hl{@=Q(eeULszw7;PcD|Rnb(rhX&);2PE7#hE3I3~JJY{0M z*zNz`OL=5jdzOERx>Ub3MfDNSy>^RWSBw8qH=R@u`Dd4x9f=Ppa`^e*Wxs}IwA8tU zHg!u^1WlW6@ZZb!(BU87tp5GKZ?r{2c&~`up3oV4-^9O4w>LNVdjCJSu2_H@009a4 A+yDRo literal 22682 zcmb=Jb9ZlKK}_T{iL&@-r)wRVI(rpP_)K7#uH+!3vLmeY`mL*Xjjz6%`Ep)i#M@^U zj4F+9yc90ZWQcrICcH+^a~ki)E~#v>{$rbz-*im;`jq2kymtg&?^FNU2*Gd5?PVT* z5c*gCdtUYVviP*7HLs*vQ{6(IM!(yeZvXvG@%h>x_xSJqwN3UpH{;Lz*^!g)zuz`b zuB7a?+OEV;{!#t6->KC;zQsFP^2Tl5;K<#zzu*1p{r&yg`*nBs=04gxEjQrr+{5SM z-WOc>bI@=7eYqKT9{c@1S(l%%YWnqe_oDZgB|m+4w)%QrjN#6`_m*W(ti1Ay@0Qwa zE1M0mKHu8?&7zxSCo|4yei8rw#dCK5@3;BqeTkmiJa_81d)Jz`N^3X&y_S}q|NG$C zsRz?mzg}0j@sV`i)@|Ew|DD?Vtt|ch!CM{Evajdutbculx&4@&kwr|>eCg|X>$j9u zw^y_CzYExYw(hm(bj7>R@?NjHF8lrcJFnjt7k_(pW1o3G*DR@Lx-L^3*58%zeIoV! z;j-i#g~cMz+kUm&Sn0QY$K|yP{r-M?{4Fl~Jwx@~UHUwNv#xarf3N$PEG%DQW^Xq6 z_4fDi(ee9BKY#1pYW;fqySw|7zrJ2jYGAN({{KTy%A$Y!tuJb?mVf_s-kX`P((>Og zxc|EBcC`JLg0;6~%XTl@ara*Jm6vi`elvfb|L4W?*>|rcd|>$Un*H}$^=dKq|3@Ab zCfr_=^KQ#Gv)j{-nqSLXZ}aL~RjqZ#`-2O%Zr}PUFWhX`-n0FGn|tpimao2B|JISO zsyg?Le{6k@k#zgqchfxAuA5o0eS7N4-xF(pEZJPTA^FnwygLRr=a!{cKR<9kch@GtKuRW~a z{`P;}#z#5F_ZCmLcksNkyZZ4lt}k!5?E2qVwQn1r{=AZJ4<0s0n}_K%{ylf>VWaGk zK1&8UKDh;|+xUL1_4hEpw%7GuI_G^g&i9de6Y^|cZTppb{nInsyh`@9$tnFUqSgxK zA_AB81=f~F&(3}G^5SkywanZqmwv@o{{_43Rt4`jmiTh4%yOdD>*rSXuipkf|9$eD z`sM5S@-lo;$=3ZYW$VAssJgRf_M44mN;@1xwuzS=(^Fn(`|2zInrwNVQmHp3x9+ZG z>`>$^T5K*6@c-}OcMD9#QaYaYhws{ZE$sb=2M7D>_Iz4$*Xl;*_qD4oU0rUl_w4ep-n@GoPVKw>%Vpl(T|3{+EB$6?@n$=pmF)weZI9HyUwd#eZT
Yi<61 zeQfmp?2~VE{~Qsz&&a%8q`Ck1yLnq5ZF}2k_Mcn0`ReS9vs1R+YCc<+F3)EA|HIw1 z{d;f!+Hv>K$%hXXR9?v5HT#@n@%6q-cQUsBTHBkq`{wQJsG?bKm%nwqY;_=Q^-jm! zHRoSPUEjU^?!Ie(9{QyxxZlXXHUG5r-oM|JUw6(o`(DL<_S`+k-+{Nc)hDH2OXHux ztjivLr$V;iL3I1-x&W?V=$Nn~Z*^BoF1(_UoI^Gug zz2bQqd-2Er=cJ3TrI=U${{41e=kB-HrfI&}#vgV2!7AUn-S=6fRlwf}wl zZB?rC`<0qJ-*m&nzE?*t+r?-bW?sGfcbNC~9EPtVDVdJqX1D$>zpKYH)!yRHZ8@1O z-+h*S_e?+Smpyy!Kem_<`N;B1FSmu4-+hvFDthm~b#wi~&FAy+`Kw&q+3|5~e+VYhYp{pXdeRd{f+=ED;9&m5POl%sasUb}Z2@2MsGb8oQQ zsQ);*V0$Wi&!YclmqgFq_f+AGklN;(Z*8hlHs$S#K74=nk81Av>mR?H{kwPY{_Y>u z{Ppi=&yj!57Q5!+QQuuVT*Y6P6wcOrH{(&*?!EheEn$^e%i~a9?f>H20@kQqt=ogw zrT)k%TYdHajaG(-pBGg>Tfh3wvHQ#UqiTb1Z*R+*!@$Zf`!=nHsfy z>)VK}H_c{#d-v~Pa7Wo1dE=+P1`qzN+TXo);mwGO#ikjh{62Zh({+!rdAHuZ_AT#p zte9$qVWrcdBhhpB^(vO}Z}%xX?e{J$_|xCH%lGQV_+GfWsy%hp-+K?gozpTu@%{Gg zg00D?{BQS#x6Hm8B(QV;=4rXQjPF-fJa6ApXqRQZcm5Wi4bxKQzuEdRkX2ssTPbh$ zRjGMjlb2oC{^#>q^=-GRul;-C$fsvLtvS^DTd;zVyVhY_=XC}<&5UdfR8}suejvv>@}x5=N@^~$Q$M>HQ~(d|7&;M=E+Eq zeq?`p9mBlpujvgL7pn!o?|9K@m+2Vrdj9U$OdQwZr|n7j+bex{JA=fP9}|wPnBeg@ z*F$TYg4xfD6MgsX6x&)K!vC~;?u5DT(#kv@{i~Eb`s}?(``udJciXMX`pUOG;mBHf zS}$n6?3*wA<_&=d&NKx67E{=CF!tEH|HA$WOc7fdJ*!K(pS3Tt+2D8Z>zy~ZI4?@E zWL%qECcWo-Vtwi33+tS{=Ou?ll|4I==#YPkkLzxzjozmqUFieP7KI=8nrH2FZ~JWf zY0kUsGX+&fvK$kCFXVYq*R-amV|MkOn=f{2s(xJL#eZi}D#N-H_rL#|cCl2~Pi{`i z$%sv27bklP8rW(bJaZ;(eO}o1sB4=Y{T%K0NZz~0m4E&4?b~Iiw#Y=>-EJIyech%n zch5d}7gn%c?oR9C11wDCe0?Y1Za2@VNLkGF`sDUsbJvABEw{1zapLe+euoFA*hMPu zANZzsSd?8(wY>eHJ8Pbb#|K@_fEBw10~D?-cB^Zg@AFYuaz)oge#vJ`zAU=9veQ(K z1gmWpj~ z-jg9NAeQnxozIUy-a$a}481~iX8QbOA{?XNYb2)70y}S9K>Oq9j z%ZnHKPjz^oR(=#JwbkwJnp>@VSc4U9k7+9IIBF*Br5>|-<`L$ca5vs>z01DHZqryK zwKLLb-OIJ=H}_A?u941fT&;QN|4v&8wXM&y4@KGDWbC_kwfSuyZ}(c$NcM#13h%9M z-ulyV`JwG+?zg=^mgaNnuYbpPe`cNZHH*K#9~L;>dpWVcvww-~y#8N(8$PUlZ+33w zwI$!~>|xx0t)R;OV^qZZ$jckwy)BHkU32R2+I#DsPIh)S-Eev1TCwn z_Gc7ux&P?5*Y?lB1%IEs`5;!b zTeqNMS&RP~6?-$`io-^$yUqwmb)LEFr{P?f;k%OkN`|AYcVE5NUhjrk^6%PQ=E&74 ze>uaqzhsH%cgLUM->b@UV<%^uMEaOjFrUmRT@adgIF)1GEUvhO+nLs%Z*^Stb-#9{ z;L?niJEzx8ontdg!okSZcE;UJ-rvgZ`zg;|khrvd!`eLW=6S78oRy7N=A9^?^nO|9 zlC03hTQx6xB{Dy-3hI7$>GD(g+aEq9cfVa&8eKi__J&uRWA5I`d~bC(_{+tT=;?UVh|my7Yp;@zS>`Td&(~>9(-W|IMy?`*0Ui{sq(D z%kt*#zxD438{@stxlSj(+$dgi{pG6g&{ZJzq%YnZ@wyf*zBx0a*pjo!ux{Fx9wye%#AHyQC{Yo zbao&2Z_RJ(w%&aI_V$mvYrQ?wjr*ggnM_WfZzMZQ&}{X}<@?;LUT;V*+Tow{cRB0E zoym{phAr=2c``@*o8K?B+{b#mZ){SG-G2Mmk#Chra}^u5c`rF`;8tBN9(H?Y^TCI4 z+1ryJxwmhKyz&0c`*OwFZzY>wPrJ~cpkKIrYwGlyI}h3&Nho{D>!|$1-?xl8Wq)$f zf|mvki3K|@zJ1f=er|{5ktb_~w9*K6JUsEWPg?$7(QC4<-M4bb6}9{4wr$&HHDSwEuMErdcH0uEO)nn3t>s>4`snS- zZ|c9NS>;cExO!)^naje%wQsblZjI^z8%e0jBP>3pYR*^jI8cyF-9MmI)iJ$L`CF_kx6bKOMdB6i{ICZz%E}cdGQE~Q zv8yb)tm<2Un1bx>?fZ(>zg3!e?b))}ipuZvZ*TQJaLsJS+sWq|O@DD(*M6xMu+RHd z`qE|l_S~&rwl^xdv}Gy-Zsopb(ki>6cR%MqP3*_ogOMfC{<=H;N**45la~FyFk8Sy zw&lu^$#M7DH*>6dA#dR!TJM{CzF=MKqWss}6Ut@&{CFw2UN?MA#+uXNmA}sY>&vx0 z%wLnz)}Jo?*5l>#$>%N2q+T_CeE!IT;mfy@P1E~kif$-dz54JMwfzefEN>>6-7KHM z@IR($_ru=4M4hKsD?E1aNHn=P?rv(yx2U`R$iaK_yP9xCfnVa^Kb@H|J!6JZ%Ie*` zAA?r!&#&EQv(4q!g;TTl&U|)UZ)>OLPS3hu9A;T>kE}Vd`PdCPho)n1PwJVS1UKy+OB5Bdew||YL!*-|aD>%=*O8vlZ-VPPN8FhB1J)(PO`75>Q zubb(mP?oB&f&2M4E|6N&YsG;S}TLgp+Gy&b(FmwP4Dm+NR^_LbXTIcV17j z?i4>+x2Ji|o9Pu3->6%k=&b7$SMu^7TN#m$^Rt<6Zc*HQ@8!KOvu)(J zJ3mj2{gQawugk0BU1l|d+yz~Ev9=j`(|!AI>$QeouGn!cv~_)H>BgC@SuPpUyZ_$a z68rRKsZjpAXN8?Rvp;Q7%q&Vtn>p|HLurSO2%ri0i`#uT;i{OXufqbN1Zf=y8*^bo=vf-d#+{P2FxvK+KU%GX9DOXvQ{e}ld(`rA?yS@Fc#hdq~-?sVw3*3MA-^|@scW%G6 zZPPv-WvzRx|BcesCG&4oYHzOIvGuFSA%#JX*=8`Vc8uuEo0*jU z-Z16i+b>g1?>EJkYP1^}hRlp~+Hi?8Z1>yRfQdc4zur7DXzS9R{B^32T6QJV{*TG4 z0|M4vs?SN@B6Dr-%%0UNn_IJwSBdWaP!e4!wz2u1`rg{=iG`vi0qhUBj{AH|e`|YV z+4<-``FD9=qSdb7dsFs}J+HiSeR|UF8TDD~b1QO_xNA;pt(CQS+;vSS+q(K%myz_} z?(I%-)#70+1!`riN1I4z1vY07jgYvWQy_HcmMii zYYw|TP}_WW(?+W)Mh+6QH@;!}^zH4bD@I43e!Eezt<3(; z?R7ucCzu-wR~*dOSy{b7cK*i81~)Q)7oPv5!o7*@cW(6Zmu+`HoJ!8O?yrj7t#|P1 zi{Rb&idhBhtPecadfj{~#PD3Mb?Ez**AuRm$-WPJR>!(T=$Yl@qe@K@t4{q%`*A?( zmfpLv-><(czPBy5MxO6mtkC_c{=U?g3lh%FUKH>CH}rJE{`!B3;;XVw_y4k8Z7aV^ z@yrpoKxp~aNmSaZU^3Nx#GN#|m`g;HU+jr%+=g;tr1oSV5{7k;VPfA?2Kg6NX3 zH;&58*5zQ0TK%@}_hY`C(g^Xr+xIe`O1OEojwe)ZrsHzn-4hU6XpccU+@ z_vWoPW$EjaK3%)SxAyHLgO6rs%4Y7p*H|jDvsp~!Xruhb*S8MmoqwX^y=J>yMtfK8 zqD%ALwJ&z9l)h~6`B>JeO@^Y?xz8SC$*tomC}mrxRWP+_b@!b-sdZuxv$)nROIVR+ zafK&lZqsU^7~KO`YjDDffVhXF}U;PPs_7g7ExL45d4)xWk1DLfaXqRW^85 z1U9d>+;Qq~C`-5?|5q{orv?#8L3abh4=-F*V9Fc*bVAXC1v?K}>@IsQnQnfiQexEs zUjeq*rIM>7cl=_Dx%wkFN#pp!p1<)dL7SWwIw~JK%DBp?JxIB&{E^|ANnD$c*q&}z zkoE8GDW0~|OqkF9xPq+I^c}Ii?d5N~bozI(d!7-KC|r@&=d7ugIBC9a@$Nu_BAYlC z1HH{6cQ%`RU;DY@r9hkX(;SZEd4-yWhd<10{m6EpKxAoT?W>-t8e0QGo(2~2T<@(> zyV5MV=)H4_PMB$(N;JwWu|^>)-*PrJOj4p5z0&Q z8y_x;6iCsCn+5#@A)cXZ>4yG_|+Tb7Q8(eB<*wIC_*G2c`bBI%!hz zq=IG3=6(8(!u!n*&so!^96qyNu)j#JWn${$)0_Qu410{Szww;bP0F*#Om&L1>Pwe& zQ#ScF<9^ytuNNB3cV;Wzv3fk6E4J;x+_X5;$|p?0DLdK^>^LiCe}0d?!Ip|6C%k>y zGdwk~Ov*gAlgZ#6Q;&?jc6+UMPQK*6U%WeJCFh5=2EMDDF5M$!sCTtMr2Vs3M`qV= zJpC4+4c`&TrhdSl8stbHUq(Y!0v3z>>d7ZpzHK#);{eAO;Gi=}lw3;ph8`kY@TbEo60;A#kF_Q3qkFIu9>kGg6lMzTii3n%Fjq}_$wb%U=DBdO`dlAbl+ix!(T9=4U0hWXD|2`Jp#_77I#P+!Bl66z-~=xz$Cc|L_B;9C@wN5Xf;-W`0n(Z>~yU$E@t_$7;E~Rtj!So~iY){w7AF3NjUxC&Db5Y0&eI(HhSATLBDC;5e1_u z-Cp?zLwoN|mwv^>Z+ejV#1%#6IS)^&J<1c7duQae>x@{{yqhoCVng#PZtn4EU3Y-@ zeu}0=q5edNepQt+gK0D8c1~=3FZOh!;x_)IOCs@v)F&7r1u&UI))1h8W$84*6ch|keoGX%1*_; z{YN}cHu>}iRCct-%@SCrBgJz&y3zK!YnW|elxAJn;}r_hyLilE`FSNiDlHCit+>E2 zM_NMfOl6^Uwn~QUu`e|zI3oGP_rAOo)xkVFdFJv+Bd*?_N8Zc^OFdJrDZ4ORY*#s@ zzhv3Xz$+2AxfS(R*nQ4AW>@y8Gjiu9o7rYF%p4a#X*B=Coge0EcBA9s4v8q&w!N+s zSxYZFTR)PV#xgajwoqSBYSyMzHeF9xz0RCFa;sJMX++X|mi1vjB3lCw@0pT(L(r`6 z?^WX;_XTPWXuM`|W+2|5!tF-e76xyG~c;@o=EtfK+u2JbIl;dU@= zmYh~M@uT(G@B_T^=Q`$b!nu}gU%xSMSJL$LKgm=HzZZQ$pCO+?` z&tig~<2(+CyF0&=f0>b0nIhS{^1^5DQ)edB|C6b$HpqX;l0KO?UF50B)8lbXCZ||# zH=PlXOgqw2&Y<^4L0PbTa*}FEk4I~dNA)wAjWf+|%oOHVNfPPTyrW@YUi9!b)8whf zjx73jPPA7|Ncz5@w{O?cd6q{eNm;+t`D`Nm%B|JZsrq*Mg(o}rx#roli+}1d2^7%Z zyw37q_@R})C;B^IoVSdw){#4B@HF}Bfeka0l9$|>ebB|Dw?+GyyNrc zXWpM;G=EdI>^8@RF-4)A#vPVHCybwF)`=CyALi1T$mID+LQlND?K!oENiwbF39E(m;xCqbr6*GFZ<^Pq zwojvKoAA@mcPx&s>27=>GFg7}oiv-QCtPiN=3V~nKk-F}q@ZTKKacn4DN=^!mwLKY z+)vBYEjd)7@#$UE73&YGmPO|C(`VG2N#>g@zgjKthw40&ehUSKD%to~Yk0KltftL) zZTbDjl+wpD->+8N=V7Y0bwY?smwLNJ%8{89YBsX^&9CTQweibkom*3$t5nrlCwn_w zND;PAGT(G0g4L$s|IWV%ra zyDjO$UrYHE9;H80*H%;xdi7TD_RCw)Q z7Dt7b_}tzUAr?MAfrb6d@lCHTyqnrGC$NUIqT%DqiQ9kZE9t*v`}4kIx|>q1%Ij{A zN~cF{KRCqAC67*e{zfA8Li(wA+0%1mRz_+B#W_VLk52%gs%j?nzy)R*tA+WwvpC5UHkJs}z~X8DJ{3l|`_8jgqpGci7a+S{@dc zqT260zdYeo`a&zd&S|q)maO}DVpELMZ;MMZr#?4FeX&8U@)3Rh=CnO+ zwQYvZ*O;T6-V0a$++}(1ZHkq=_acwNn3$k%8`l^+q{=%x7qDy!qYRtOsUKi`o*F*$2y*M&^W7L8WP->Xy0UYmrd&5+hLEYbd| z)!h>+lN6eI{Bec7s9p(Ayr+oD>jsvBGZO{R?I_=4)1tCWk-5yvO4RA3_#?@4M&6fN z-g%#SDa@%S9umIMYx31M9EE+7&rQzPOj4v$?N45u zFp%wD*mIyNZkhW9!;O{_fejGBZS8T@OvojXw6lQOIJqsim|55FSDtVzygD^hPt zO7>q(w_4G2<5Ho$))^lBTfk z0L#YK~u#*WI_-IB!%S9!ENe^NNFa(>t+1+`bL5)Z}u7k6lj zh0J1bo}+gDuJ^1{TevRFt7a0-)#NMSJzllk$+1&%#s%9QE#1}6HvRVQI;CLKe`uyl zSC-M5sx^Z8s#ipRUfZ*D!mEX+MQ2Z2@z3(UUAVr-sx3Ja1unLH@e0dWacIFy&%ZH6 zuQ$o>I&eyBrMB)`)o;6f-(9;R9N%c0-KV}&@n01TL;=aaCvyWn; zZp;QhWXz2wY)e@Zkj#`SG;OZ@$+L+Zf&nXwdw7pVh|c!BwD*{l;O~jkB|I-Z(wI^* z&DFZ=MeBur@f*RL_txsYOY8KU`@y(y!SYVYixaKnrGB?mX@B#sz5LM4v2AJ|HTbgPTXW}S#^1Or21!>wa2yoDNmo~;45^_X#KLC7iKNKF1~5H)Mo~9$&)h5nw#4cW}1q; zpO@|zc9U_zN>kgXT&9taLM0S^3fPv~ZCtpaa3bTwz=aHokx!rBV2nv{m@3GzR8o+8SX%h4aq6urxnUb)MK-To`^MCuba%?Tqmsw;15NbP zS0DK}<#4D^Yvl8143<19tCer)`}R8{)Pd zWr>;>`ABGCsr|!A=LOZ0?zes4JzxD=Wl^1Dmv^D#y(>#q(<3>L#`{hE1e&Z^Rj zt^z5Up^EFLOFAyN;jWk<9D0s@o#ggEOj?(Hp3Y6=T;Wi0 z=1ApNe?yfVwN?u|2`Vmkn{eRf{qsvVgimpdP*+*7nrqG$g}8?|l(J7O=9aR&rX5qS z^ZAylNBAkBr9ylY_@=HFxRq-4g6n>O4>Cp4cV-CywQ#jq^^o6&6Gm@LPz+(l&+BK|qGsXI+ z^z8WQ{LPs+TJHE2{Yz)gtywi?!QF|Htp|;k2`#m7_WK&*fY_+LfMZDvLfAd!+cb}2ZX(Cie!E}U83!v@Xg0upcxjF`IJEH9NeO=HshJ`kQYqJ)$F3(Xo#R%P2d|q?kaEHga??#u!4Eb5s zJ#kom)4HpEX4-p;$NuYeikJE^gn#oDF8t>Dev3vyflGR%uF9!WEqie-XIqwa;%bif z+&@WIy~_P`WK+-aJ84(n9X62q^p$aYMNFFAc{TpIL1{X!pDd=`FqC5aZc-f6{?U7l z*6AHGWyfpJX-A9hnBp)+$8*sipKx})$2Uz*EZj5UYxI!<*Xx^j#Q%N2bo0HEyz=S3 zhS@Wo7^v>*Iesb3Hqu*xzi1U}8{^M8(^>0H&jC2$acK9chiWZbzNDwtn?Ia-+R z{ORtA==B8I(IG3zf*|B=1`s@zbqBAQ*4@m`CE?Xt26sPKU z-^%~Tw*L#fWbb^iv6{zTH~H8_@8gmsy)g#Yy_OykT0AZ3N=ax-NR`l}7aG$HV@g-m z%vxJEFYveG)hWSWbC?S~wcA*a-zm!aG%4LZ=3`mQmZM&GOlr>=6@*Kh9?ke8H=V;R z=H%?K(hA1LqHQ}LJ+yniDF0?rUEf_JMYg;`Gxmbze{)Rx>pm^Kb!V#XUH^}fU6D%X zz6&K!NIMd&SWs)%n)33(iZ&q;v#U22y8Pp*l;v@M#C+*vef(SxX*YAJ#&<^DJj^^o zHCi{r%dMyNctpPKmd`xAk|9j5JT@@ZqUB|q)*<=O+DR*fcnjJr8@M)e{H|d6HZkad za{v8}24SzJrbni%6fBuCvu{>Z{>0h0gO=;BxTR<%SbgJk{mGMThvrRTTrK|efK$Nd zcODZ?1%5m)^girLw9WrSp|9*a>RqhlHU_-%N$8sU)J)s=m&+!eN z{9Su&slxd^6@7~*ICL_|G*&)slCn89(fvjDhc)h#K6OmJz`6cm?EJ++rxHB*+xjN5 zzEeBva{A|roQUxJDY>j`PFEP3eet`bqy1q;GMAHr+^@yIm@i(I>3(C=Ew@eg<02|H^a2mP;s`&%SV{t43Zy1b-r;rVzr;dguF-%DOUC-ZUQngdmr ze9pMbnDGfZyUQ#R_$_(NZv6)JBf&itB6~QrHqPUp`B_F;?(@WrQ!dF|>g^ExFX#R6 zw({FQJD<(6le~DKp=4I?$`vmv`s8B!*k*j3{CZ;CuXAm7>Pbg^Dzc25bPlJ~&i8$B z`(DZX%_1k(r$%xWZPHxa^TV>p=4|QzLV?RQf`;EV8C$KLbG&$Mwwj6+*H%A~m;R9z zg1&8y-}7GZ9xJvxkg*`~b-%R0H^bV9VbdB6^rKUe2uyE029|0w`J8FGF?7Egt!u~pQ?s$DxKm0`d zjqi$$F@;O6l`OA)@LzJ8>T->y?H%4cmkw~KeoKsOo_OTsGj3bP+O94Yb|>Na>>fW2 z9&kKAJw@puNAn_g#mI?D-WK;h{10Y|ec);FborX|H>6hnFg(S2jeKEz|@8vgp zE&UVYm}STvKDl7)iZ84BioG0Ji#j!)2>_aM+)<@ zUzC(iudv(Q-@9|o4r?pp=d$P1*Q{A`VAr~zkr{06Qu|9RqL-dfte?pD@p62llHWg; z4PCaImj`YUkCZ&O>D|0XTRf6}`_vmb*i3phe`3$2fC*k6UL74;{y%EZ{8;+%RN~k0 z2is2hJXwF}XVj!AP97pZcDf%{5qY<@fV0Tax}k0IgZ%13|HUU>&AD@Uvw6@Rqn?1i ziyZtfW{JEG6}eS8OI%w}eLw5;`$PSXG5?YF16op`tKw9!i=<|yeMe>ZJ5xMKarTgF_kknMWo9xjFMHy;*FaNg7E zF*TU)?y_}lB{dU;%-OHY>Xh78yl$yeeBs^)#pfoEf)ZHIu`QAF{>U4~u`qG}mH86U z*M8Rpu{}G~pZ}{NBt|p#Vf+sT{-UGX7ysy5eW8Ep7Eiwr-jDZEZ@#Y3T9ubkulTgm z!9eflhIWG!EmZ+2?@mpRTAFs|L-a>!zIUz?Pj#OboqUwP`IYa7&|X$4?Y&BWjBHkW zE?pjS<&^c3t^3}-}B6r zPKMKD;*Ny>SeSQdnayEcax*=qXJ-gEzp);lG6^1JL( zwW@>FPD}1E?|*W&kmo~c*w36x2lXF+m)oTBBU$f;h1l%l@(Y6P8^75zNXDxjO;adhcF z1Cy_|vX6q2W1gJoOi)#K{n+*9yUbyM{fTZ4(yDUb^rz^H%@NLYPFZActR??+TGYoQ zl^Z1Ay>`3E?SCouIqNy&I~gqHbM2C&Ixno%ntuC2_0vb*X?w*p5;7)eOn>^bd7rdE zNYc_Dt`|M_h#7>1KbX+wx$g&0auom6(zedB#b*pBed4{$Gkg9Y-&t0_4OW^yeI(}E z^iS{HCN9q_RtHQYmBIzC_^WNxKQ=+Z?l|uQu8^!ZUcHC(6ShrgSQ^gaTfcMOmI#B~ zNhvMoxlV455imP^%~o`h>DeDA)yo2AzxpL`_zcIi6EnF#CVtXoo7iO6=VIZ_TP*YF zPQqKC1g*x^e&O&^gId z9R5T7(aBcfcRvNgo-K%#Z!{JQ*2%W>=KVY8QL%w!+GM_&TVlmbf9Z%kR5IW?^G#&4 zZR3uB%4SoaKKV1%%LQ1@c&wU|Zua9zin5OK!igVuKk|M1`ds@t^E95IMC;|>-&HFw zzq;ty)@ZKjv)yy1i`2cyZ`J)Q@20e%%L0=*g782v);6a|{L3 zOAhK3pDh$HmIy2Pd$QkQ@6#_KUB`vZd+s}BDP(o#tIaGhkFlGpY-;!@b4$JA|Mp+o zkF4vT^2@5=U6}0Q4JMZx^za7 z-PAP57$N?dT{gJ|EeyDY&+L)y1zXXPMnB6FL?6%ds`(%srir z4<4)mNyw&DMD)fv*Gqi2M2a<5&-rI8QY3P1{xYXL z1LaAflY{H_BnI`G2m3IuJkfFA>T%7?A9XWiRHlbSH0IW~oSFLe^Sou^ds?>c*cJV3 zi}u9%QqT8&+5U3=$F*n9oxhOi{W} zyN@-tIKeo5=9(`Yn`FHGK9?wMPHB9c{!?JL-qb^TbL0CIo>uRwn|^FIU#`{K57`y@ z--1*+3SFAdM*iPA?Y!lmud6p2`^?sGZrav5!K`QftD0l)W*Wu*yzI2h)IZw2Yeu5lmDQL3nE7;Ej+*1)(H=A-Wag>1YpZX_yqqL$TPpLA zYtqx-O!jUL!P4vcW}h%nm;8BUbz;&b&!iKqXWP#RI!cNaO*^bSGh2Al&eJJNcP8+@ zowI>mLjQ@eR??eC^S$TwxrAJ}vaVt71MfJm>P>gJYWh5<>i%YV)O}`ur@%)Z|Kn|6 zA7b=+sqvg zWHcSBF1Js6w&l0!dv*&a{^!$*BXoX9PUm2=V_MvkkQ}R4%D(;N=784DiKcfW=UqAd zCN9-p!L=q#NAecGsH^&s%UNnaL*$=Md0bG~VSL>3)r_5q>dNuU3IubVI~UpgTKueY zj>*5hM_s;lUhX)*;n|HAi{+sk_qA+IxjXTY<%wITT@1W$E!iip7;iiy`OSSU@0}@f zF$sq?TOLhQvR7DSnQ)Gj)O!$MQ z&&7N#&67-i+&9$tx-oF!=OT;a`t7Y=EuTfC*SJLK-F$GZV|nGgbHxV*{F5DT&3EGE z^LW`D?mn;n@WhFF>DGQfi;GUnY!^Om{3dhDY1w0TNxc*FJ$5GCc3nS%dwG-gKbt+9 z+)gg=y{O{!HD=N~-hH`i!&fTtpPIDfE=G?en=GBBhfAd2ArT#gr zs&wJVFQc=ZCp$uyo{3m0a=SBQ=8q)}j@wl8T36H-w;be(+{8U0$tQKz)H~WyAqx&f z9y3WYx7qSncE$GF&tktDU)~faaP{V5?q!R08oDb*lvC7Yd5=$BYc6!j-Bs9e`tzkZuh(Ch<``P}AoWh! zq`UQh7Ckd4__!w6XG>hwiQ{(jH-72gGI#eblbcrMi`Q)WYjtn>-q=aCJzZ_>COsOf zjHM=h_uTk$*RI1dpAWc3U4M|(rzy`GqjjagyE$avsk=}7?<|veav>^Ll3V+!@Ls*V zC~iZ6)D!JHmP`(cIQD31hpSnt)Gz+rQ|C6F%U9u3*GZ0Dm++zzABefr_@+@^;T->Oq`K6Q&7L+*_E&IrxJXZtTg(ewra!X6rq*R z6Z)Q~{P(`OZLA>)gO0x?rsRt^HvJkw^*~DUwl#a{wnS%CT#wuqjJXPDa(wz?lJUozMIGp7kI?PK&hBxt?>tTty?)OIAfkRrTtj@=k9f> zoB2X1GfmAHU-+7G3M>4y+5RxkLd5dECYuU}Z{>gYX*$~LZHk>giG7`LwC2D~?Gv+? z1kGFisr|w0I~GS%L?xLeBTd|kGJkv**I2h(T59r{tWAr=tuC!mFxuGDG%fu~7LV_e z2fK7z3sig6=4VZ_U!qX|D~M&6$S3`?FJ?{fy197zuKF{3)D1Y)>;jLoNEP$cSc%+w zDX8$#crq`qvgn~198*tQHbk}=9`2bc)NsV@?~;X)zG}Y0eD!VYQ}-_je6*T}c~V22 z9*auxJ)V_+3T617GUyh?&wP^dwy9lxjz~uAG&%OQ=V~Tys?}WJIbmwD#G-mhxub6% z>_2@WZLgB)*7tML_6Ks>E(}n4eDcnT;~)N1{kIKWA{!B@D$;Of(qx|Gc^jvnR1EY} zsdqON4Jzr%&2H126j3+n>=&hEfzK6>c3eD?c~(>Y!`!6hs>L;prb>*-Gev{KE5R?xBi^SRkxl;n;vDF zJzC9kJyT*1*N3ZyMyFgPthw}77Km)@57*gtr@nHI_nI}9?^bu~bvU16)!mpq(f5^(^JFH?!2IWO z_Y!(1*y~P7HS`iOkvueER!fdY;Gzx5U3aJZu!v5ZX7ShfPuQoUy#A`3k@e|K0p6O5 z`ky;{mfcfaZ_M^+*3w-yvtk_|>94yIx$c7r#JosTQ*R=ntvdr`uAwZxOUOmgQiJMtC zam@r4mPb31#cm2Ew;pt{{Zm|}GEcMZ;sd#)=bcYi7X*FlTE*l0<-G5g?Kc>g++aLW z80N`7?`hzYX%-uIO=fMH(q$!)ofhYWNJjNl&uhGzHDmzY^}}wxlv;;_)LK8I#oyO^6b*{H3^Tnn$o|f={~vmvX|I zO|GhGM~>W7U703me2SaB`cg>#2Dd5BJA!01xjUH-i@w)&oc3fD*TU{I#&^7Z*8je6amgmPhs6oDNzeIi z>GX$lWS%bWKh2YT^Mbn2hsj}|w=q|*Y;o<>pSWtP(BZl1|DHP8ao^Ea%>DGSRVY}~ z{oS0m=Z)26--}1)b#myJD&6s}v)RNy(@I59;bPF#Lcxqlu>wE4%BM{H%#%B>x?{Pe z?5iC;*Hdoy+k`bvwe+2`%KqUG&1K;qinpA+c}M57{}%>+MZq2(?=-_Nok~}A4$nxC z@N+9x{9k0FA@^dL<8sL#DH?ku!)8fw?>u0eX6uyl`%}Ay)Ea4_@>B73LY!jmJYU)T z8`C8Ue=3VDm)P%lEWc@{hF*Ew{audwhU(`x=-j1^H`qK>U4|f(mK5U`++q(Dd zw2=Qg|CR~=T^P$%uP)#x`?C9Eo!G~P{~W%v{9E?nyGfsUZvE*S{Kr=B{`j}{@V|98 z?KT7wO(96Z_9csyI;SHHTt(4`rPyPuj;3p z3I8v1xPSLw{ZI7?zfACsjQaF9f2TAR%iW$jF)yQB@~7F_ACsJaUE;`>`W+g;|Bu=A zdgxL1N#-vdy-te$3V*Br;&r_FG28a~>u=wyJc>NYn)7OvoCL2=Uz0dZ@7yHhT%Bf3xj-{q8ICt@)v4a|+E~{rvX3FJEeZ`?GbMA{YGT zx^#Whb$KP5PxH$+^1oDlxTmLveP>OB-3Q;J(I14x1D5SNyZysl$9rai{-2iTE7d*^ zozEYzEPdl!>mSwkUamVn_svtYZM}hFDvL{x9^Z30`NV;r`wpC zI55MQUu`uN#}xff)%_SB{cs=s2ksGa=wz-`5s|5@4n z3z(|>EMvbEXs{_*WVQqw9=j>_;lZ?z#SQO-wJo0PXFTqGWBMPRFRhi!I%_$Pdwx+h zJY~{fTXf?5=417D#C~0{v2FjdrB|2cNIjR$5np^>W%ntyW2~|2cRb5J{FA#>f9ua_jZG1C8~9UazvOuG zS-&y!T({(xG|M-<-&2(*hVyOIUSz&RQmb2L@A?Hh3Ky5_YzbcZz5dz4P@ezQ@8u8v z|Ihz>SJu7!U)Nb5&zF48p%US#9g-wAtB|S9E_1QyHElV~>$NEl9%USg?_J>bf=Ovf zr87sGfZ_u|*JXlP2~vWQCAkyK-`)S8bkKk1_iGFJW=K5vue7cae1k2|4 zjaxt5y{u_sw)#+*?Xk(57aTkH=*E)GY;!FSGAzI65Ft9p#;@1(&POj3x!FHNXT?HR!fvFIj(i0$LM9g^eGKVarKmm|KBVA z5AHfY^Tia|k2x-G#)e#pw~zg;>DOFdM56@74o$=X`S;8ch=iQ>irnoF(snTOLOjtNk*I z&+hl}Sle}DZg9xcfZdlmWDD|b15(ysS6 zywAE=UGE+EadmtzkH{Y8hS2!K70o^?SM&v$7_L9TllNGnFC|%Z@vO(aE6Trp4cU_N zXO@K6yzc_7n#wcNZ@oNOq~yHVWoAUu-UUXhLku{Tdks!$Ezw>OzwpenMH6-O&S(e6 zA2!O4;h7-y`Lhryu24wd->S&FPpo5hpK+n=`)-u z@mN~zjA{_u3m&cXtGe@e-}P7CS$^k}C{snh{@e6ld)wOk`c0oK&*R^Dn!WAY;y-rs z4~#oES+w(sf2d-YWq50NYTnfM;qG%zd7NiC^&obMWX7(}A3iI$`Oe9d_M7c|c*&jB zj#3%^IYPguZ>VQfUb8!cG3CLQ8w-EWsXP&R!KiQgp^vLpNC$gNzTf{z@PKTI0K@ZH zjemXgXG=Yrc)ZT!vVX$<(iY}j+mjwB@4vLZ?bE`Y+xn`+ByaUMzq0i=Kd`r}!1zYJ z&{xJMdmG+f=TVJhd8YNMkoWibq>@c(8iL6d+vOixXdiPgzmhJc9(yZT)AFB(*0gW= z>lW#(xG!>ydAq=Srca$Y3<-M|{<>ozWP8_XPjR1{J?BA*;v4KQW_x^zG`IW9_Q@i3 zNm)YJL$~gSLZ2Eg<(KoS9;tDWNZ!r$X>pU)hQ1BwrQg@C412^YW4*X!bx&=cat^P0 z>!y-%`~no3sn-XB8p`76FIPT_iq&{p1*Crb=)oKRL{b{X8-@J`T72C&xd`p1l#6I_`Ix^3;*zI-9lRr`M34V zFRhHrrma*ce=o7B;G^}wkdGhQ8gCvic6t8F-i80?w8pz;?|U7*kLBn{JpN|3@VNQL z#^2Z{`uX7gfMuV=*S+p#nJRf@Ykt2()2}VqEq3;N9aZ-znez zvhU+NmL>7QhtvHYu;gy9_y5X%VfmT+TWeq1zvnu5WPiUNgU|n6jlRnYmoW*eEs^zm ztT9pb_uu*wrz#IeruP5uwKyIhyHb0A@t=hH(`OND)CzaalFbf`{~x9QpmNIg^UoJ6 z{QRu_TYo~w|L3u1-Y>4s(X#V-$Py+0a?|2)sSo>g&+ostF>JzS-P3!u*}U?Oy?1i7 zV5~0Ke6ji-jep&!+LEAQ;s82s#gwbuXc$t(W+&gO=;G*aJW+vc=?;u z?MTlYE-$I|PwKa1&7WW0s^)O`>Wd|3wjZlCVJ}*LL0+D7Z`_k|A=7xa%hwOCZ7IAv zbK;CCag3agZf!SY+iSu0+Wt`4^nEGMQlzd6h3^x)>Gb9Mu9G|WXZ_)ds#x*;Sk01O z$0XLcy))d?b|ck~?8P<3AU0#1r=l_T7OMkWsmpoU|{wr9uyLkQ5&(8i=j#d29 zS2XZYYrOww*3zG$JEz$_y!$@UqDb)+3*(gInvW~K-ixquvycCO>!Zy5=jDbjHrfB? zC(ctVklET@{>j+e{&NCP{jm=ZdJW|=rr4jEe`I~e#eLBa7&d1J{g3Ygt+i}UCc;+}Q|E1}l$G^Rj*KMkoH_iGuwdiiig|>Ui zn(kk?ZuXvg-0!Q{bHvazX_-}K&*T@qeihcMY|nH|V2}H=)%I_+@~!_>Qf7VO``7KQ zQT1|9GOjyV6Lh6)l6{4&eX;2V+Yj06le+`#N|Sq*#NYS2FLmi^;Mz;cy2&B0KU>}E zm5b^<^q;9>-;=M)K1TXfeS31+L+*I*nXe*CLhNK^-GcL`TzUtr^{6i z?}_wTw_N0#)cq4N-t!lz{pp|bB)rd#L%zONvS$_7gim|VpZUN4)b|JXuP^VNykl*$ zf%)&_>laRq%Tmw2>3Pe1R~NI%8(HS=jKYZT@e3#J`}^A0{_*s=>eqP>f9%@+pZ7px z@9FJ45!Y4(uCM7e`u|BaC0_2>>T`-V8}|QyC7S#0#{K^vTg;44Y}{{9;&a;j)qH6y zy{D#6=0ARRL$l`p{fA;|f0T89w@-IVsL%-<{*%&!6heN zxS0FiVX>$8kH~zMyt8w6kLJ<+i8U|XnA7iQ?@0gXUBka8#(2W{Z@U%u&%IF;b=2i$ zB+ryE;kU=$R>d0E{hrsC9vt8B*P2t}`h+&kDThsK*b3~7Lzca{A1nW{FYC^OyQMYX zulL-)wY=PXgM7}Kdk!=In5l7TN1WP_wxp(Y+n(7oHl1D^vp;`@&7tXE9A1=)&X0AT zyWkV^4R-DR%-vnP^{%uP>}bv9>bkx^bBRhu(AJaMaXs0So#!#!z3)2j$_Czxv)$&+ zF`L8_b9me2h;>EG#|?kvUHq}=y~OXVpN%rxHk?(t6m+0)dchq{o!2|sa?eZbS7v{& zv}A4Lo>j@w2N=IapOcC&-`P+VdBn_g$xFpsfy}q(x>YW_sK?#;?Y?11*pu%it1_1J zChw?ev72hpYqM5+U(M|wo4Q3#N&PYt{HFROvuDqm4++0-2{4uJYwbu0U`6-O^B%Qa;ubabkN&cbjkIN=~ z^^!lgzx(p#w4A_?Pnp;C<5_=yJ$p3r@$0F@eRZ0)rxf#7yesGXIyY;k@|V-I!l%10 zG2NH+^T-Q>4@)L>y)b3&+wbExZR0hiHMhR{HK=`6vbvwTW+C&j*s8N1469rT?@kQmF@4T_UmB(5uD{9+X?il_%RiNx=VzTuW*rcY-TFk`a)o+p0yop- z?qs6~_5Qen7rm1|#vc+}K7nrq^IUhUdlrdbLcZ(^e;wZ!nEn2n=gjj7~8LNcw>^K8d_;S;k3i2sn@Uk`Pivw zx%z+TnzB9De{6rc^Pzt9lE8}fn(M-+-k5u6W(8Nes|AC_alx12mnMc^o)#nW`@-qV zVUpR$)z5POo9$A!iM_db)=$YTA6K6;c+Oj!b*La=nSb*>E;ru93k%DBluP|p(%E(F z?fTB=e#%d7I9A*4Ua<@d*bi?V#A z>TIqoYqDxxd`3B%;Z^mq^%hSP?pnC+$oO-yziHuOwYaSe|MOQ&{1mZJg zE7ZMTi0zYfl*yJMUoT;jDdt!9b48PDT= z`8B?kyvNU~l+E_LHO)eETjq>@1J@4|ra%2BKX=u~iI>@r)wA|LIKJ-ekGmHp8%oKa zo?GMeUw`w0Pp@UN*;Kt|8Fg|OJbL!~gm1v_Ned_MTCaccv&L2?tL3v6e%7vwsy+Tg znDgJ7t2e4%Pj(OqWK1tO>n+BquzaElgJd$pH{Zwo(=Glzo^0AHbkR!4VqcrwJ6n+gzLl$a-!Aul)Hms= z;J5j1vlso7+x$_!=I5*K1rKu=Rxb7zT&HYy-zjHP+oeVEM$^nHmWcm5dC+V_SF}V| zZO5V$N(Y6LIhSp|Dl-3q$Loya_dR=_^v8PD6h}I?-M{bf=#yK~#l^{UPoEHb^>g;I zdRDb=r)3{LOiGgf!}O<|r*`t`0*~s80cAI}4}S0Y|3XRDX!XM@TY3yH`#$c^_$!(t zuBp02Gw;%g#Jiqvf{)t0Pnd71EML@8?>mK2_QUUejh}q>AIns^_g8G6wvtZsmn#?7 ztm-r~Em5B`aetf5LbE9%pEwmVUzbZhSz%uB;l5eXi?2H0It`93>Cd{vUYfshpThk6 zhW`vAxlEt!X`1b1cljNgtnl^PggdL-Hm$E))V%HcMc01^ek@KiIcK$vF(yvx*Phnp zf?~E`8qe4p{Hq9+n}2YUO7RmE8{=lT1kWom3&=RNM9y3WVq?kc0Y<;6QXI0&olT$=aF_-1PU|#seuK5?2)un*<|5<)cHU9LH`G&96`h@#OzHj(l z8F+AM^SbFh{{^xHE1lm?K7V{`{PE}FA1fUX`r7^X4@@t5RVjG;^5@jg7k<8&R5kDD z^Y9I}J;ky=ivn%`2R|Xgc!Kfif9|)7a%wUvxPE@rcAmJYrsZe&Gex;$->;wi e|F7@xQH%GfA0Dhdc=PoC;?F<-bMs!%hy?(SPsu(2 From a6da8cb02f00830ec6b94d4e890251a9720d8500 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 1 Sep 2024 12:31:56 -0400 Subject: [PATCH 121/437] Minor fixes, crawler coal research removed --- core/src/mindustry/content/SerpuloTechTree.java | 4 +++- core/src/mindustry/content/UnitTypes.java | 2 +- core/src/mindustry/mod/Scripts.java | 12 ++++++++++++ core/src/mindustry/type/ItemStack.java | 5 +---- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/core/src/mindustry/content/SerpuloTechTree.java b/core/src/mindustry/content/SerpuloTechTree.java index 6b7ab42668..e6efb47eca 100644 --- a/core/src/mindustry/content/SerpuloTechTree.java +++ b/core/src/mindustry/content/SerpuloTechTree.java @@ -2,6 +2,7 @@ package mindustry.content; import arc.struct.*; import mindustry.game.Objectives.*; +import mindustry.type.*; import static mindustry.content.Blocks.*; import static mindustry.content.SectorPresets.craters; @@ -359,7 +360,8 @@ public class SerpuloTechTree{ }); }); - node(crawler, () -> { + //override research requirements to have graphite, not coal + node(crawler, ItemStack.with(Items.silicon, 400, Items.graphite, 400), () -> { node(atrax, () -> { node(spiroct, () -> { node(arkyid, () -> { diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index ab6b1942f2..1a68d3ce6f 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -1912,7 +1912,7 @@ public class UnitTypes{ trailWidth = 3f; trailLength = 8; - splashDamage = 33f; + splashDamage = 36f; splashDamageRadius = 32f; }}; }}); diff --git a/core/src/mindustry/mod/Scripts.java b/core/src/mindustry/mod/Scripts.java index 6334d2491f..3ba21c03b3 100644 --- a/core/src/mindustry/mod/Scripts.java +++ b/core/src/mindustry/mod/Scripts.java @@ -12,6 +12,7 @@ import rhino.module.provider.*; import java.io.*; import java.net.*; +import java.util.*; import java.util.regex.*; public class Scripts implements Disposable{ @@ -46,7 +47,18 @@ public class Scripts implements Disposable{ Object o = context.evaluateString(scope, text, "console.js", 1); if(o instanceof NativeJavaObject n) o = n.unwrap(); if(o == null) o = "null"; + else if(o instanceof Undefined) o = "undefined"; + + else if(o instanceof Object[] arr) o = Arrays.toString(arr); + else if(o instanceof int[] arr) o = Arrays.toString(arr); + else if(o instanceof float[] arr) o = Arrays.toString(arr); + else if(o instanceof byte[] arr) o = Arrays.toString(arr); + else if(o instanceof double[] arr) o = Arrays.toString(arr); + else if(o instanceof long[] arr) o = Arrays.toString(arr); + else if(o instanceof char[] arr) o = Arrays.toString(arr); + else if(o instanceof boolean[] arr) o = Arrays.toString(arr); + var out = o.toString(); return out == null ? "null" : out; }catch(Throwable t){ diff --git a/core/src/mindustry/type/ItemStack.java b/core/src/mindustry/type/ItemStack.java index 1da2c72231..a0e0f4c587 100644 --- a/core/src/mindustry/type/ItemStack.java +++ b/core/src/mindustry/type/ItemStack.java @@ -80,9 +80,6 @@ public class ItemStack implements Comparable{ @Override public String toString(){ - return "ItemStack{" + - "item=" + item + - ", amount=" + amount + - '}'; + return item + ": " + amount; } } From 0e6b1221063b97f941c540583724bc463cceb515 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 1 Sep 2024 13:03:35 -0400 Subject: [PATCH 122/437] Fixed network error --- core/src/mindustry/entities/Units.java | 1 + 1 file changed, 1 insertion(+) diff --git a/core/src/mindustry/entities/Units.java b/core/src/mindustry/entities/Units.java index 659112d57a..c0f02cb196 100644 --- a/core/src/mindustry/entities/Units.java +++ b/core/src/mindustry/entities/Units.java @@ -83,6 +83,7 @@ public class Units{ @Remote(called = Loc.server) public static void unitDespawn(Unit unit){ + if(unit == null) return; Fx.unitDespawn.at(unit.x, unit.y, 0, unit); unit.remove(); } From 124f7cbcb6faa88df59cecc5ba46bc573d60c4cc Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 1 Sep 2024 13:26:17 -0400 Subject: [PATCH 123/437] Biomass facility slight wave buff --- core/assets/maps/biomassFacility.msav | Bin 15380 -> 16985 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/core/assets/maps/biomassFacility.msav b/core/assets/maps/biomassFacility.msav index 738d890f7032a728525001d20d8b4820d701bbba..cd355b9c6296f30290fa41b3b233c18354bd173f 100644 GIT binary patch literal 16985 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 From ef4d5153339d78df5d90d789b0429ff3854ea8ee Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 1 Sep 2024 15:25:03 -0400 Subject: [PATCH 124/437] Minor Serpulo tech changes / Removed debug hidden keybind for map editor --- .../mindustry/content/SerpuloTechTree.java | 2 +- .../src/mindustry/editor/MapEditorDialog.java | 22 ------------------- 2 files changed, 1 insertion(+), 23 deletions(-) diff --git a/core/src/mindustry/content/SerpuloTechTree.java b/core/src/mindustry/content/SerpuloTechTree.java index e6efb47eca..b452004f7d 100644 --- a/core/src/mindustry/content/SerpuloTechTree.java +++ b/core/src/mindustry/content/SerpuloTechTree.java @@ -399,7 +399,7 @@ public class SerpuloTechTree{ }); }); - node(navalFactory, Seq.with(new SectorComplete(ruinousShores)), () -> { + node(navalFactory, Seq.with(new OnSector(windsweptIslands)), () -> { node(risso, () -> { node(minke, () -> { node(bryde, () -> { diff --git a/core/src/mindustry/editor/MapEditorDialog.java b/core/src/mindustry/editor/MapEditorDialog.java index a4c2de9dc3..c1f3a6e888 100644 --- a/core/src/mindustry/editor/MapEditorDialog.java +++ b/core/src/mindustry/editor/MapEditorDialog.java @@ -695,28 +695,6 @@ public class MapEditorDialog extends Dialog implements Disposable{ editor.undo(); } - //more undocumented features, fantastic - if(Core.input.keyTap(KeyCode.t)){ - - //clears all 'decoration' from the map - for(int x = 0; x < editor.width(); x++){ - for(int y = 0; y < editor.height(); y++){ - Tile tile = editor.tile(x, y); - if(tile.block().breakable && tile.block() instanceof Prop){ - tile.setBlock(Blocks.air); - editor.renderer.updatePoint(x, y); - } - - if(tile.overlay() != Blocks.air && tile.overlay() != Blocks.spawn){ - tile.setOverlay(Blocks.air); - editor.renderer.updatePoint(x, y); - } - } - } - - editor.flushOp(); - } - if(Core.input.keyTap(KeyCode.y)){ editor.redo(); } From ee01e3656066179fc689d9585e481e06e49caf1e Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 2 Sep 2024 14:16:39 -0400 Subject: [PATCH 125/437] Stained mountains remake submission / WIP wave graph improvements --- README.md | 2 +- core/assets/maps/stainedMountains.msav | Bin 18213 -> 18935 bytes core/src/mindustry/Vars.java | 2 +- core/src/mindustry/editor/WaveGraph.java | 27 +++++++++++++++++- core/src/mindustry/editor/WaveInfoDialog.java | 14 +++++++++ core/src/mindustry/mod/Mods.java | 7 +++-- gradle/wrapper/gradle-wrapper.properties | 2 +- server/build.gradle | 2 ++ settings.gradle | 4 +-- 9 files changed, 51 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 9624632b29..095c70ed3a 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ See [CONTRIBUTING](CONTRIBUTING.md). Bleeding-edge builds are generated automatically for every commit. You can see them [here](https://github.com/Anuken/MindustryBuilds/releases). If you'd rather compile on your own, follow these instructions. -First, make sure you have [JDK 16-17](https://adoptium.net/archive.html?variant=openjdk17&jvmVariant=hotspot) installed. **Other JDK versions will not work.** Open a terminal in the Mindustry directory and run the following commands: +First, make sure you have [JDK 17](https://adoptium.net/archive.html?variant=openjdk17&jvmVariant=hotspot) installed. **Other JDK versions will not work.** Open a terminal in the Mindustry directory and run the following commands: ### Windows diff --git a/core/assets/maps/stainedMountains.msav b/core/assets/maps/stainedMountains.msav index ee28f1dc237d8989cbed6edd71bfb60bd389720e..af8a2b8e3b7261592527f588f22792f9abecdb26 100644 GIT binary patch literal 18935 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 literal 18213 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 KXO9%xTn7MBepFKc diff --git a/core/src/mindustry/Vars.java b/core/src/mindustry/Vars.java index bc4c6a494a..e7bca60cd6 100644 --- a/core/src/mindustry/Vars.java +++ b/core/src/mindustry/Vars.java @@ -145,7 +145,7 @@ public class Vars implements Loadable{ "modeSurvival", "commandRally", "commandAttack", }; /** maximum TCP packet size */ - public static final int maxTcpSize = 900; + public static final int maxTcpSize = 1100; /** default server port */ public static final int port = 6567; /** multicast discovery port.*/ diff --git a/core/src/mindustry/editor/WaveGraph.java b/core/src/mindustry/editor/WaveGraph.java index 398443c177..2d64af5be9 100644 --- a/core/src/mindustry/editor/WaveGraph.java +++ b/core/src/mindustry/editor/WaveGraph.java @@ -1,8 +1,10 @@ package mindustry.editor; +import arc.*; import arc.graphics.*; import arc.graphics.g2d.*; import arc.math.*; +import arc.math.geom.*; import arc.scene.ui.*; import arc.scene.ui.layout.*; import arc.struct.*; @@ -26,12 +28,16 @@ public class WaveGraph extends Table{ private float maxHealth; private Table colors; private ObjectSet hidden = new ObjectSet<>(); + private StringBuilder countStr = new StringBuilder(); public WaveGraph(){ background(Tex.pane); rect((x, y, width, height) -> { Lines.stroke(Scl.scl(3f)); + countStr.setLength(0); + + Vec2 mouse = stageToLocalCoordinates(Core.input.mouse()); GlyphLayout lay = Pools.obtain(GlyphLayout.class, GlyphLayout::new); Font font = Fonts.outline; @@ -50,6 +56,8 @@ public class WaveGraph extends Table{ float graphX = x + offsetX, graphY = y + offsetY, graphW = width - offsetX, graphH = height - offsetY; float spacing = graphW / (values.length - 1); + int selcol = Rect.contains(x, y, width, height, mouse.x, mouse.y) ? Mathf.round((mouse.x - graphX) / spacing) : -1; + if(mode == Mode.counts){ for(UnitType type : used.orderedItems()){ Draw.color(color(type)); @@ -97,6 +105,23 @@ public class WaveGraph extends Table{ Lines.endLine(); } + + if(selcol >= 0 && selcol < values.length){ + Draw.color(1f, 0f, 0f, 0.2f); + Fill.crect(selcol * spacing + graphX - spacing/2f, graphY, spacing, graphH); + Draw.color(); + font.getData().setScale(1.5f); + for(UnitType type : used.orderedItems()){ + int amount = values[Mathf.clamp(selcol, 0, values.length - 1)][type.id]; + if(amount > 0){ + countStr.append(type.emoji()).append(" ").append(amount).append("\n"); + } + } + float pad = Scl.scl(5f); + font.draw(countStr, selcol * spacing + graphX - spacing/2f + pad, graphY + graphH - pad); + font.getData().setScale(1f); + } + //how many numbers can fit here float totalMarks = Mathf.clamp(maxY, 1, 10); @@ -123,7 +148,7 @@ public class WaveGraph extends Table{ float cy = y + fh, cx = graphX + graphW / (values.length - 1) * i; Lines.line(cx, cy, cx, cy + len); - if(i == values.length / 2){ + if(i == selcol){ font.draw("" + (i + from + 1), cx, cy - Scl.scl(2f), Align.center); } } diff --git a/core/src/mindustry/editor/WaveInfoDialog.java b/core/src/mindustry/editor/WaveInfoDialog.java index d3f2e7ca6e..ca4a24404d 100644 --- a/core/src/mindustry/editor/WaveInfoDialog.java +++ b/core/src/mindustry/editor/WaveInfoDialog.java @@ -6,6 +6,7 @@ import arc.graphics.*; import arc.input.*; import arc.math.*; import arc.math.geom.*; +import arc.scene.*; import arc.scene.event.*; import arc.scene.style.*; import arc.scene.ui.*; @@ -201,6 +202,19 @@ public class WaveInfoDialog extends BaseDialog{ cont.add(graph = new WaveGraph()).grow(); + graph.scrolled((scroll) -> { + view(Mathf.sign(scroll)); + }); + + graph.touchable = Touchable.enabled; + graph.addListener(new InputListener(){ + + @Override + public void enter(InputEvent event, float x, float y, int pointer, Element fromActor){ + graph.requestScroll(); + } + }); + buildGroups(); } diff --git a/core/src/mindustry/mod/Mods.java b/core/src/mindustry/mod/Mods.java index 3ece15b1d9..9fa83c39ee 100644 --- a/core/src/mindustry/mod/Mods.java +++ b/core/src/mindustry/mod/Mods.java @@ -62,12 +62,13 @@ public class Mods implements Loadable{ return mainLoader; } - /** @return the folder where configuration files for this mod should go. The folder may not exist yet; call mkdirs() before writing to it. - * Call this in init(). */ + /** @return the folder where configuration files for this mod should go. Call this in init(). */ public Fi getConfigFolder(Mod mod){ ModMeta load = metas.get(mod.getClass()); if(load == null) throw new IllegalArgumentException("Mod is not loaded yet (or missing)!"); - return modDirectory.child(load.name); + Fi result = modDirectory.child(load.name); + result.mkdirs(); + return result; } /** @return a file named 'config.json' in the config folder for the specified mod. diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 0d1842103b..e1adfb4938 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/server/build.gradle b/server/build.gradle index 7359fdac3c..f348e41dbf 100644 --- a/server/build.gradle +++ b/server/build.gradle @@ -47,6 +47,8 @@ task dist(type: Jar, dependsOn: configurations.runtimeClasspath){ exclude("icons/icon.ico") exclude("icons/icon_64.png") + duplicatesStrategy = 'exclude' + manifest{ attributes 'Main-Class': project.mainClassName } diff --git a/settings.gradle b/settings.gradle index b74305dad2..dafd6bdf99 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,5 +1,5 @@ -if(JavaVersion.current().ordinal() < JavaVersion.VERSION_16.ordinal()){ - throw new Exception("!!! YOU MUST USE JAVA 16 OR ABOVE TO COMPILE AND RUN MINDUSTRY !!! Read the README. Your version: ${System.properties["java.version"]}") +if(JavaVersion.current().ordinal() < JavaVersion.VERSION_17.ordinal()){ + throw new Exception("!!! YOU MUST USE JAVA 17 OR ABOVE TO COMPILE AND RUN MINDUSTRY !!! Read the README. Your version: ${System.properties["java.version"]}") } include 'desktop', 'core', 'server', 'ios', 'annotations', 'tools', 'tests' From 21a2eccf692e2ef70fa24aeb67fbb1a6fc0dd615 Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 2 Sep 2024 14:18:53 -0400 Subject: [PATCH 126/437] Wave spacing adjustment for stained mountains --- core/assets/maps/stainedMountains.msav | Bin 18935 -> 18955 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/core/assets/maps/stainedMountains.msav b/core/assets/maps/stainedMountains.msav index af8a2b8e3b7261592527f588f22792f9abecdb26..87f93f906c46e456ff28f6ceed1d5e14736d1c1b 100644 GIT binary patch delta 18785 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 delta 18790 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 From 0d8d73f9e6a7df52413d14f7922d94ddb5a5c1b6 Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 3 Sep 2024 13:36:46 -0400 Subject: [PATCH 127/437] WIP map submission --- core/assets/bundles/bundle.properties | 3 +++ core/assets/maps/facility32m.msav | Bin 0 -> 19018 bytes core/src/mindustry/content/SectorPresets.java | 7 ++++++- .../mindustry/content/SerpuloTechTree.java | 18 +++++++++++------- core/src/mindustry/editor/WaveInfoDialog.java | 2 +- 5 files changed, 21 insertions(+), 9 deletions(-) create mode 100644 core/assets/maps/facility32m.msav diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 85b9e6d471..19703a139c 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -821,6 +821,7 @@ sector.fungalPass.name = Fungal Pass sector.biomassFacility.name = Biomass Synthesis Facility sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -843,6 +844,8 @@ sector.impact0078.description = Here lie remnants of the interstellar transport sector.planetaryTerminal.description = The final target.\n\nThis coastal base contains a structure capable of launching Cores to local planets. It is extremely well guarded.\n\nProduce naval units. Eliminate the enemy as quickly as possible. Research the launch structure. sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. +#do not translate +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis diff --git a/core/assets/maps/facility32m.msav b/core/assets/maps/facility32m.msav new file mode 100644 index 0000000000000000000000000000000000000000..c9bcae8de5bde3dbfca3c20a68ba36b88857cf93 GIT binary patch literal 19018 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 a8Wugd$?ePkpE!MM{&%1M`u}AmUjYD { + node(extractionOutpost, Seq.with( + new SectorComplete(stainedMountains), + new SectorComplete(windsweptIslands), + new Research(groundFactory), + new Research(nova), + new Research(airFactory), + new Research(mono) + ), () -> { + }); }); node(saltFlats, Seq.with( diff --git a/core/src/mindustry/editor/WaveInfoDialog.java b/core/src/mindustry/editor/WaveInfoDialog.java index ca4a24404d..e99008e54e 100644 --- a/core/src/mindustry/editor/WaveInfoDialog.java +++ b/core/src/mindustry/editor/WaveInfoDialog.java @@ -72,7 +72,7 @@ public class WaveInfoDialog extends BaseDialog{ groups = maps.readWaves(Core.app.getClipboardText()); buildGroups(); }catch(Exception e){ - e.printStackTrace(); + Log.err(e); ui.showErrorMessage("@waves.invalid"); } dialog.hide(); From 3573a2b99bf196699b1f004dbf7c3e7e76562751 Mon Sep 17 00:00:00 2001 From: Github Actions Date: Tue, 3 Sep 2024 17:37:47 +0000 Subject: [PATCH 128/437] Automatic bundle update --- core/assets/bundles/bundle_be.properties | 2 ++ core/assets/bundles/bundle_bg.properties | 2 ++ core/assets/bundles/bundle_ca.properties | 2 ++ core/assets/bundles/bundle_cs.properties | 2 ++ core/assets/bundles/bundle_da.properties | 2 ++ core/assets/bundles/bundle_de.properties | 2 ++ core/assets/bundles/bundle_es.properties | 2 ++ core/assets/bundles/bundle_et.properties | 2 ++ core/assets/bundles/bundle_eu.properties | 2 ++ core/assets/bundles/bundle_fi.properties | 2 ++ core/assets/bundles/bundle_fil.properties | 2 ++ core/assets/bundles/bundle_fr.properties | 2 ++ core/assets/bundles/bundle_hu.properties | 2 ++ core/assets/bundles/bundle_id_ID.properties | 2 ++ core/assets/bundles/bundle_it.properties | 2 ++ core/assets/bundles/bundle_ja.properties | 2 ++ core/assets/bundles/bundle_ko.properties | 2 ++ core/assets/bundles/bundle_lt.properties | 2 ++ core/assets/bundles/bundle_nl.properties | 2 ++ core/assets/bundles/bundle_nl_BE.properties | 2 ++ core/assets/bundles/bundle_pl.properties | 2 ++ core/assets/bundles/bundle_pt_BR.properties | 2 ++ core/assets/bundles/bundle_pt_PT.properties | 2 ++ core/assets/bundles/bundle_ro.properties | 2 ++ core/assets/bundles/bundle_ru.properties | 2 ++ core/assets/bundles/bundle_sr.properties | 2 ++ core/assets/bundles/bundle_sv.properties | 2 ++ core/assets/bundles/bundle_th.properties | 2 ++ core/assets/bundles/bundle_tk.properties | 2 ++ core/assets/bundles/bundle_tr.properties | 2 ++ core/assets/bundles/bundle_uk_UA.properties | 2 ++ core/assets/bundles/bundle_vi.properties | 2 ++ core/assets/bundles/bundle_zh_CN.properties | 2 ++ core/assets/bundles/bundle_zh_TW.properties | 2 ++ 34 files changed, 68 insertions(+) diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties index 258bfff8a2..e2c8ba9ce9 100644 --- a/core/assets/bundles/bundle_be.properties +++ b/core/assets/bundles/bundle_be.properties @@ -795,6 +795,7 @@ sector.fungalPass.name = Глыбковы Праход sector.biomassFacility.name = Аб'ект Сінтэзу Біямасы sector.windsweptIslands.name = Абветраныя Астравы sector.extractionOutpost.name = Здабвываючы Фарпост +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Планетарны Пускавы Тэрмінал sector.coastline.name = Берагавая Лінія sector.navalFortress.name = Марская Крэпасць @@ -817,6 +818,7 @@ sector.impact0078.description = Here lie remnants of the interstellar transport sector.planetaryTerminal.description = The final target.\n\nThis coastal base contains a structure capable of launching Cores to local planets. It is extremely well guarded.\n\nProduce naval units. Eliminate the enemy as quickly as possible. Research the launch structure. sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = Пачатак sector.aegis.name = Ахова sector.lake.name = Рака diff --git a/core/assets/bundles/bundle_bg.properties b/core/assets/bundles/bundle_bg.properties index 0e8a611cdf..7eef226ede 100644 --- a/core/assets/bundles/bundle_bg.properties +++ b/core/assets/bundles/bundle_bg.properties @@ -804,6 +804,7 @@ sector.fungalPass.name = Гъбеният Пролом sector.biomassFacility.name = Биосинтезиращо Съоръжение sector.windsweptIslands.name = Ветровитите Острови sector.extractionOutpost.name = Добивен лагер +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Терминал за космически мисии sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -826,6 +827,7 @@ sector.impact0078.description = Тук лежат останките от пър sector.planetaryTerminal.description = Крайна цел.\n\nТази крайбрежна база съдържа структура, създадена с цел междупланетарен транспорт на ядра, макар и само в рамките на локалната звездна система. Тази локация има изключително висока защита.\n\nИзползвайте военноморски единици. Елиминирайте врага възможно най - бързо. Проучете изстрелващата структура sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_ca.properties b/core/assets/bundles/bundle_ca.properties index f1c199e8df..a49b12ca15 100644 --- a/core/assets/bundles/bundle_ca.properties +++ b/core/assets/bundles/bundle_ca.properties @@ -808,6 +808,7 @@ sector.fungalPass.name = El port de muntanya dels fongs sector.biomassFacility.name = Centre de síntesi de biomassa sector.windsweptIslands.name = Les illes escombrades pel vent sector.extractionOutpost.name = Post avançat d’extracció +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Terminal de llançament interplanetari sector.coastline.name = Línia de costa sector.navalFortress.name = Fortalesa naval @@ -830,6 +831,7 @@ sector.impact0078.description = Aquí hi ha les restes de la primera nau de tran sector.planetaryTerminal.description = L’objectiu final.\n\nAquesta base costera conté una estructura capaç de llançar nuclis a altres planetes. Està molt ben vigilida.\n\nProduïu unitats navals, elimineu l’enemic tan aviat com pugueu i investigueu l’estructura de llançament. sector.coastline.description = S’han detectat restes de tecnologia naval a prop. Repel·liu els atacs enemics, captureu el sector i aconseguiu la tecnologia. sector.navalFortress.description = L’enemic ha establert una base en una illa distant amb defenses geològiques naturals. Destruïu el post avançat i aconseguiu i investigueu les seves tecnologies navals avançades. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = El principi sector.aegis.name = L’ègida diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index bdfb68b293..3de90b7a2f 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -806,6 +806,7 @@ sector.fungalPass.name = Plísňový průsmyk sector.biomassFacility.name = Zařízení pro syntézu biomasy sector.windsweptIslands.name = Větrné ostrovy sector.extractionOutpost.name = Extrakční základna +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Planetární odpalovací terminál sector.coastline.name = Pobřežní čára sector.navalFortress.name = Námořní pevnost @@ -828,6 +829,7 @@ sector.impact0078.description = Zde leží zbytky mezihvězdné lodi, která vst sector.planetaryTerminal.description = Konečný cíl.\n\nTato pobřežní základna obsahuje konstrukce schopné vyslat jádra na okolní planety. Je mimořádně dobře opevněna.\n\nVyrob námořní jednotky. Odstraň nepřítele tak rychle, jak umíš. Vyzkoumej vysílací konstrukci. sector.coastline.description = V této lokaci byly objeveny pozůstatky techniky námořních jednotek. Odražte nepřátelské útoky, dobijte tento sektor a získejte technologii. sector.navalFortress.description = Nepřítel si vybudoval základnu na odlehlém, přírodou opevněném ostrově. Zničte tuto základnu. Získejte jejich pokročilou technologii námořních plavidel a vyzkoumejte ji. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = Nástup sector.aegis.name = Aegis sector.lake.name = Jezero diff --git a/core/assets/bundles/bundle_da.properties b/core/assets/bundles/bundle_da.properties index 0a5ac198ef..10d1b38a19 100644 --- a/core/assets/bundles/bundle_da.properties +++ b/core/assets/bundles/bundle_da.properties @@ -796,6 +796,7 @@ sector.fungalPass.name = Fungal Pass sector.biomassFacility.name = Biomass Synthesis Facility sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -818,6 +819,7 @@ sector.impact0078.description = Here lie remnants of the interstellar transport sector.planetaryTerminal.description = The final target.\n\nThis coastal base contains a structure capable of launching Cores to local planets. It is extremely well guarded.\n\nProduce naval units. Eliminate the enemy as quickly as possible. Research the launch structure. sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index d03ce1366f..780c1574ee 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -816,6 +816,7 @@ sector.fungalPass.name = Infizierter Gebirgspass sector.biomassFacility.name = Biomassensyntheselabor sector.windsweptIslands.name = Windgepeitschte Inseln sector.extractionOutpost.name = Extraktionsaußenposten +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Planetares Launchterminal sector.coastline.name = Küstenlinie sector.navalFortress.name = Wasserfestung @@ -838,6 +839,7 @@ sector.impact0078.description = Hier liegen Reste der interplanetarischen Transp sector.planetaryTerminal.description = Das Endziel.\n\nDiese Uferbasis besitzt ein Gerät, mit dem es möglich ist, Kerne auf andere Planeten zu schicken. Es ist [accent]sehr[] gut beschützt.\n\nStelle Wassereinheiten her. Eliminiere den Gegner so schnell wie möglich. Erforsche das Launchgerät. sector.coastline.description = Überreste alter Schiffstechnologien wurden hier entdeckt. Wehre dich gegen die gegnischen Angriffe, erobere den Sektor und erforsche diese Technologie. sector.navalFortress.description = Der Gegner hat auf einer abgelegenen, von Natur aus sicheren Insel eine Basis aufgebaut. Zerstöre diesen Außenposten. Finde deren fortgeschrittene Schiffstechnologien und erforsche diese weiter. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = Der Anfang sector.aegis.name = Aegis diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index 569afc52f9..4ec7e82b6c 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -812,6 +812,7 @@ sector.fungalPass.name = Desfiladero Contaminado sector.biomassFacility.name = Centro de Sintetización de Biomasa sector.windsweptIslands.name = Islas Windswept sector.extractionOutpost.name = Puesto avanzado de Extracción +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Terminal de Lanzamiento Interplanetario sector.coastline.name = Ruta Costera sector.navalFortress.name = Fortaleza Naval @@ -834,6 +835,7 @@ sector.impact0078.description = Aquí yacen las ruinas de la primera nave de tra sector.planetaryTerminal.description = El objetivo final.\n\nEsta base costera alberga una estructura capaz de lanzar núcleos a planeteas locales. Está extremadamente bien protegida.\n\nProduce unidades navales. Acaba con el enemigo lo antes posible. Analiza la estructura de lanzamiento. sector.coastline.description = Se han detectado restos de tecnología de unidades navales en esta ubicación. Repele los ataques enemigos, captura este sector, y consigue esa tecnología. sector.navalFortress.description = El enemigo ha establecido una base en una remota isla naturalmente fortificada. Destruye este puesto de avanzada. Hazte con su tecnología naval avanzada, e investígala. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = El Inicio sector.aegis.name = Égida diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties index d8c7d04c0f..e9c8ab209d 100644 --- a/core/assets/bundles/bundle_et.properties +++ b/core/assets/bundles/bundle_et.properties @@ -796,6 +796,7 @@ sector.fungalPass.name = Fungal Pass sector.biomassFacility.name = Biomass Synthesis Facility sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -818,6 +819,7 @@ sector.impact0078.description = Here lie remnants of the interstellar transport sector.planetaryTerminal.description = The final target.\n\nThis coastal base contains a structure capable of launching Cores to local planets. It is extremely well guarded.\n\nProduce naval units. Eliminate the enemy as quickly as possible. Research the launch structure. sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties index 7aba1daccb..17b3fddb01 100644 --- a/core/assets/bundles/bundle_eu.properties +++ b/core/assets/bundles/bundle_eu.properties @@ -798,6 +798,7 @@ sector.fungalPass.name = Fungal Pass sector.biomassFacility.name = Biomass Synthesis Facility sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -820,6 +821,7 @@ sector.impact0078.description = Here lie remnants of the interstellar transport sector.planetaryTerminal.description = The final target.\n\nThis coastal base contains a structure capable of launching Cores to local planets. It is extremely well guarded.\n\nProduce naval units. Eliminate the enemy as quickly as possible. Research the launch structure. sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties index 74bc5fe3d2..291913d118 100644 --- a/core/assets/bundles/bundle_fi.properties +++ b/core/assets/bundles/bundle_fi.properties @@ -796,6 +796,7 @@ sector.fungalPass.name = Sienirihmasto sector.biomassFacility.name = Biomassasynteesilaitos sector.windsweptIslands.name = Tuulenpieksemät saaret sector.extractionOutpost.name = Kaivostukikohta +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Planetaarinen laukaisuterminaali sector.coastline.name = Rantaviiva sector.navalFortress.name = Laivastolinnoitus @@ -818,6 +819,7 @@ sector.impact0078.description = Täällä lepäävät tähtienvälisen aluksen, sector.planetaryTerminal.description = Viimeinen kohde.\n\nTämä rannikkotukikohta sisältää rakennuksen, joka pystyy laukaisemaan ytimiä paikallisille planeetoille. Se on vartioitu äärimmäisen hyvin.\n\nRakenna laivayksiköitä. Eliminoi vihollinen mahdollisimman pian. Tutki laukaisurakennus. sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = Alku sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_fil.properties b/core/assets/bundles/bundle_fil.properties index 1cc87bd619..cbaec38d22 100644 --- a/core/assets/bundles/bundle_fil.properties +++ b/core/assets/bundles/bundle_fil.properties @@ -796,6 +796,7 @@ sector.fungalPass.name = Fungal Pass sector.biomassFacility.name = Biomass Synthesis Facility sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -818,6 +819,7 @@ sector.impact0078.description = Dito nakalatag ang mga labi ng interstellar tran sector.planetaryTerminal.description = Ang huling target.\n\nAng coastal base na ito ay naglalaman ng isang istraktura na may kakayahang maglunsad ng mga Core sa mga lokal na planeta. Ito ay napakahusay na binabantayan.\n\nGumawa ng mga yunit ng hukbong-dagat. Tanggalin ang kalaban sa lalong madaling panahon. Magsaliksik sa istraktura ng paglulunsad. sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index b031586257..8d95950cdd 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -819,6 +819,7 @@ sector.fungalPass.name = Fungal Pass sector.biomassFacility.name = Biomass Synthesis Facility sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -841,6 +842,7 @@ sector.impact0078.description = Ici reposent les vestiges d'un vaisseau de trans sector.planetaryTerminal.description = La cible finale.\n\nCette base côtière contient une structure capable de propulser des Noyaux sur les planètes voisines. Elle est extrêmement bien gardée.\n\nProduisez des unités navales, éliminez l’ennemi le plus rapidement possible et recherchez la structure de propulsion. sector.coastline.description = Des restes d’unités navales ont été détectés à cet endroit. Repoussez les attaques ennemies, capturez ce secteur, et obtenez cette technologie. sector.navalFortress.description = L’ennemi a établi une base sur une île isolée, avec des défenses naturelles. Détruisez cet avant-poste. Acquérez leur technologie navale avancée. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index 0907244254..a3b2581070 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -821,6 +821,7 @@ sector.fungalPass.name = Gombahágó sector.biomassFacility.name = Biomassza szintetizáló létesítmény sector.windsweptIslands.name = Szélfútta szigetek sector.extractionOutpost.name = Kivonási helyőrség +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Bolygó körüli kilövőállás sector.coastline.name = Partvonal sector.navalFortress.name = Haditengerészeti erőd @@ -843,6 +844,7 @@ sector.impact0078.description = Itt nyugszanak az ebbe a csillagrendszerbe érke sector.planetaryTerminal.description = A végső célpont.\n\nEzen a vízparti bázison egy olyan építmény található, amely képes támaszpontokat kilőni a közeli bolygókra. Rendkívül jól őrzik.\n\nGyárts vízi egységeket! Ártalmatlanítsd az ellenséget, amilyen gyorsan csak tudod! Találd meg a kilövőszerkezetet! sector.coastline.description = Ezen a helyen egy haditengerészeti egység technológiájának maradványait azonosították. Verd vissza az ellenséges támadásokat, foglald el ezt a szektort, és szerezd meg a technológiát. sector.navalFortress.description = Az ellenség bázist létesített egy távoli, természetes erődítményes szigeten. Pusztítsd el ezt az előőrsöt. Szerezd meg a fejlett hadihajó-technológiájukat, és fejleszd ki te is. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = A kezdet sector.aegis.name = Égisz diff --git a/core/assets/bundles/bundle_id_ID.properties b/core/assets/bundles/bundle_id_ID.properties index de0b75b9fc..a8f2bc2864 100644 --- a/core/assets/bundles/bundle_id_ID.properties +++ b/core/assets/bundles/bundle_id_ID.properties @@ -821,6 +821,7 @@ sector.fungalPass.name = Lintasan Spora sector.biomassFacility.name = Pabrik Sintesis Biomassa sector.windsweptIslands.name = Pulau Bersemilir sector.extractionOutpost.name = Pos Ekstraksi Terdepan +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Pusat Peluncuran Planet sector.coastline.name = Tepi Pantai sector.navalFortress.name = Benteng Laut @@ -843,6 +844,7 @@ sector.impact0078.description = Di sini terletak sisa-sisa pesawat antarbintang sector.planetaryTerminal.description = Target terakhir.\n\nMarkas pesisir pantai ini memiliki struktur yang dapat meluncurkan inti ke planet di sekitarnya. Memiliki pertahanan yang sangat bagus.\n\nProduksi unit laut. Hancurkan musuh secepat mungkin. Pelajari struktur peluncuran mereka. sector.coastline.description = Sisa-sisa teknologi Unit Laut telah terdeteksi di lokasi ini. Tolak serangan musuh, rebut sektor ini, dan dapatkan teknologinya. sector.navalFortress.description = Musuh telah mendirikan markas di sebuah pulau terpencil, dibentengi secara alami. Hancurkan pangkalan ini. Dapatkan teknologi Unit Laut mereka yang canggih, dan telitilah +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = Serangan Awal sector.aegis.name = Aegis diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties index 34118f7cb5..d1c9f9dbcd 100644 --- a/core/assets/bundles/bundle_it.properties +++ b/core/assets/bundles/bundle_it.properties @@ -802,6 +802,7 @@ sector.fungalPass.name = Passo Fungino sector.biomassFacility.name = Struttura di Sintesi di Biomassa sector.windsweptIslands.name = Isole Ventose sector.extractionOutpost.name = Avamposto di Estrazione Mineraria +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Terminale di Lancio Planetario sector.coastline.name = Coastline sector.navalFortress.name = Fortezza navale @@ -824,6 +825,7 @@ sector.impact0078.description = Qui giaciono i resti della nave da trasporto int sector.planetaryTerminal.description = Il bersaglio finale.\n\nQuesta base costiera contiene una struttura capace di lanciare Nuclei ai pianeti locali. È estremamente protetto.\n\nProduci unità navali. Elimina il nemico il più rapidamente possibile. Scopri la struttura di lancio. sector.coastline.description = In questo settore sono stati rilevati resti di tecnologia di unità navali. Respingi gli attacchi nemici, cattura il settore e acquisisci la tecnologia. sector.navalFortress.description = Il nemico ha stabilito una base su un'isola remota e fortificata naturalmente. Distruggi questo avamposto. Acquisisci la loro tecnologia navale avanzata e fate ricerche. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Nome diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index 69ec46b255..2e661b7fd4 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -806,6 +806,7 @@ sector.fungalPass.name = 真菌の道 sector.biomassFacility.name = バイオマス研究施設 sector.windsweptIslands.name = 吹きさらしの列島 sector.extractionOutpost.name = 資源搬出前哨基地 +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = 惑星間発射ターミナル sector.coastline.name = 海岸線 sector.navalFortress.name = 海軍要塞 @@ -828,6 +829,7 @@ sector.impact0078.description = ここには、最初にこの星系に入った sector.planetaryTerminal.description = 最終目標です。\n\nこの沿岸基地には、コアを他の惑星に打ち上げることが出来る建造物があります。しかし、極めて堅固に守られています。\n\n海軍ユニットを生産し、可及的速やかに敵を排除してください。\nそして、発射場を研究しましょう。 sector.coastline.description = ここで、海軍の技術の残骸が発見されました。\n敵の攻撃を退け、占領し、その技術を獲得しましょう。 sector.navalFortress.description = 敵は、自然要塞化した離島に基地を設けています。この前哨基地を破壊しましょう。\n彼らの高度な艦艇技術を入手し、研究しましょう。 +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = オンセット sector.aegis.name = イージス sector.lake.name = レイク diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index 6648830d48..dd10547cd4 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -807,6 +807,7 @@ sector.fungalPass.name = 포자 지대 sector.biomassFacility.name = 유기물 합성 시설 sector.windsweptIslands.name = 폭풍의 격전지 sector.extractionOutpost.name = 자원 추출기지 +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = 대행성 출격단지 sector.coastline.name = 해안선 sector.navalFortress.name = 해군 요새 @@ -829,6 +830,7 @@ sector.impact0078.description = 이곳에는 태양계에 처음 진입한 우 sector.planetaryTerminal.description = 이 행성에서의 마지막 전투를 준비하십시오.\n\n적이 필사의 각오로 지키고 있는 이 해안 기지엔 우주에 코어를 발사할 수 있는 시설이 있습니다.\n\n해군을 생산하여 적을 신속하게 제거하고, 그들의 행성간 이동 기술을 강탈하십시오.\n\n[royal] 건투를 빕니다.[] sector.coastline.description = 이 장소에서 해상 기체 기술의 잔재가 발견되었습니다. 적의 공격을 격퇴하고, 이 지역을 점령하고, 기술을 습득하십시오. sector.navalFortress.description = 적은 자연적으로 요새화된 외딴 섬에 기지를 세웠습니다. 이 전초기지를 파괴하여 적의 발전된 함선 건조 기술을 습득하고 연구하십시오. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = 시작 sector.aegis.name = 보호 sector.lake.name = 호수 diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties index 870b4119cd..64137e966b 100644 --- a/core/assets/bundles/bundle_lt.properties +++ b/core/assets/bundles/bundle_lt.properties @@ -796,6 +796,7 @@ sector.fungalPass.name = Fungal Pass sector.biomassFacility.name = Biomass Synthesis Facility sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -818,6 +819,7 @@ sector.impact0078.description = Here lie remnants of the interstellar transport sector.planetaryTerminal.description = The final target.\n\nThis coastal base contains a structure capable of launching Cores to local planets. It is extremely well guarded.\n\nProduce naval units. Eliminate the enemy as quickly as possible. Research the launch structure. sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index 49af83b96a..46e6293c66 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -807,6 +807,7 @@ sector.fungalPass.name = Fungal Pass sector.biomassFacility.name = Biomass Synthesis Facility sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Planetery Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -829,6 +830,7 @@ sector.impact0078.description = Hier liggen overblijfselen van het interstellair sector.planetaryTerminal.description = Het einddoel.\n\nDeze kustbasis bevat een structuur die Cores kan lanceren naar lokale planeten. Het wordt extreem goed bewaakt.\n\nProduceer marine eenheden. Schakel de vijand zo snel mogelijk uit. Onderzoek de lanceerstructuur. sector.coastline.description = Op deze locatie zijn resten van marinetechnologie gedetecteerd. Sla de vijandelijke aanvallen af, verover deze sector en verkrijg de technologie. sector.navalFortress.description = De vijand heeft een basis gevestigd op een afgelegen, natuurlijk versterkt eiland. Vernietig deze voorpost. Verkrijg hun geavanceerde marinetechnologie en onderzoek die. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties index d514fcbc51..d417c4cdae 100644 --- a/core/assets/bundles/bundle_nl_BE.properties +++ b/core/assets/bundles/bundle_nl_BE.properties @@ -796,6 +796,7 @@ sector.fungalPass.name = Fungal Pass sector.biomassFacility.name = Biomass Synthesis Facility sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -818,6 +819,7 @@ sector.impact0078.description = Here lie remnants of the interstellar transport sector.planetaryTerminal.description = The final target.\n\nThis coastal base contains a structure capable of launching Cores to local planets. It is extremely well guarded.\n\nProduce naval units. Eliminate the enemy as quickly as possible. Research the launch structure. sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index ccda9e4635..8d43ea9eb0 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -804,6 +804,7 @@ sector.fungalPass.name = Grzybowa Przełęcz sector.biomassFacility.name = Obiekt Syntezy Biomasy sector.windsweptIslands.name = Wyspy Wiatru sector.extractionOutpost.name = Placówka Ekstrakcji +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Planetarny Terminal Startowy sector.coastline.name = Linia Brzegowa sector.navalFortress.name = Morska Forteca @@ -826,6 +827,7 @@ sector.impact0078.description = Tutaj leżą pozostałości międzygwiezdnego st sector.planetaryTerminal.description = Ostatni cel.\n\nTa baza przybrzeżna zawiera strukturę zdolną do wystrzeliwania rdzeni na lokalne planety. Jest wyjątkowo dobrze strzeżona.\n\nProdukuj jednostki morskie. Jak najszybciej wyeliminuj wroga. Zbadaj tą strukturę. sector.coastline.description = W tej lokalizacji zostały znalezione resztki technologii jednostek morskich. Odeprzyj ataki wroga, przejmij ten sektor i zdobądź technologię. sector.navalFortress.description = Wróg założył bazę na odległej, naturalnie ufortyfikowanej wyspie. Zniszcz tę bazę. Zdobądź zaawansowaną technologię statków morskich i zbadaj ją. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = Początek sector.aegis.name = Egida diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index 10888eb071..146b74bf4a 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -812,6 +812,7 @@ sector.fungalPass.name = Passagem Fúngica sector.biomassFacility.name = Instalação de Síntese de Biomassa sector.windsweptIslands.name = Ilhas Ventadas sector.extractionOutpost.name = Posto Avançado de Extração +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Terminal de Lançamento Planetário. sector.coastline.name = Litoral sector.navalFortress.name = Fortaleza Naval @@ -834,6 +835,7 @@ sector.impact0078.description = Aqui repousas restos de um reservatório de tran sector.planetaryTerminal.description = O último alvo.\n\nEssa base costeira contém a estrutura capaz de lançar Núcleos para planetas locais. É extremamente bem guardado.\n\nProduza unidades navais. Elimine o inimigo o mais rápido o possível. pesquise a estrutura de lançamento. sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = O Começo sector.aegis.name = Aegis diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties index ab3113e762..da47be4e1f 100644 --- a/core/assets/bundles/bundle_pt_PT.properties +++ b/core/assets/bundles/bundle_pt_PT.properties @@ -796,6 +796,7 @@ sector.fungalPass.name = Fungal Pass sector.biomassFacility.name = Biomass Synthesis Facility sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -818,6 +819,7 @@ sector.impact0078.description = Here lie remnants of the interstellar transport sector.planetaryTerminal.description = The final target.\n\nThis coastal base contains a structure capable of launching Cores to local planets. It is extremely well guarded.\n\nProduce naval units. Eliminate the enemy as quickly as possible. Research the launch structure. sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_ro.properties b/core/assets/bundles/bundle_ro.properties index 337cc12fef..1330fe70f2 100644 --- a/core/assets/bundles/bundle_ro.properties +++ b/core/assets/bundles/bundle_ro.properties @@ -806,6 +806,7 @@ sector.fungalPass.name = Pasul Fungic sector.biomassFacility.name = Facilitatea de Sinteză a Biomasei sector.windsweptIslands.name = Insulele Măturate de Vânt sector.extractionOutpost.name = Avanpostul de Extracție +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Terminalul de Lansare Planetară sector.coastline.name = Zona de Coastă sector.navalFortress.name = Fortăreața Navală @@ -828,6 +829,7 @@ sector.impact0078.description = Aici se află rămășițele primei nave de tran sector.planetaryTerminal.description = Ținta finală.\n\nAceastă bază de coastă conține o structură capabilă să lanseze nuclee către alte planete locale. Este extrem de bine păzită.\n\nProdu unități navale. Elimină inamicul cât de rapid se poate. Cercetează structura de lansare. sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index 06b071eb66..7844448c3e 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -807,6 +807,7 @@ sector.fungalPass.name = Грибной перевал sector.biomassFacility.name = Центр исследования биомассы sector.windsweptIslands.name = Штормовой архипелаг sector.extractionOutpost.name = Добывающая база +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Планетарный пусковой терминал sector.coastline.name = Береговая линия sector.navalFortress.name = Прибрежная крепость @@ -829,6 +830,7 @@ sector.impact0078.description = Здесь лежат остатки межзв sector.planetaryTerminal.description = Конечная цель.\n\nЭта береговая база содержит сооружение, способное запускать ядра к окрестным планетам. Оно крайне хорошо охраняется.\n\nПроизведите морские единицы. Уничтожьте врага как можно скорее. Изучите пусковую конструкцию. sector.coastline.description = В этом месте были обнаружены остатки древней военно-морской технологии. Отбейте атаки противника, захватите этот сектор и изучите эту технологию. sector.navalFortress.description = Враг возвел базу на удаленном острове с естественными укреплениями. Уничтожьте её. Овладейте их технологией по производству кораблей и изучите ее. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = Начало sector.aegis.name = Защита diff --git a/core/assets/bundles/bundle_sr.properties b/core/assets/bundles/bundle_sr.properties index 4076f7ed01..969b09697d 100644 --- a/core/assets/bundles/bundle_sr.properties +++ b/core/assets/bundles/bundle_sr.properties @@ -807,6 +807,7 @@ sector.fungalPass.name = Gljivični Prolaz sector.biomassFacility.name = Biosintetičko Postrojenje sector.windsweptIslands.name = Vetrovita Ostrva sector.extractionOutpost.name = Lansirna Utvrda +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Planetarno Lansirni Terminal sector.coastline.name = Obala sector.navalFortress.name = Pomorska Tvrđava @@ -829,6 +830,7 @@ sector.impact0078.description = Ovde padoše ostaci međuzvezdane transportne le sector.planetaryTerminal.description = Krajnji cilj.\n\nOva obalska struktura ima objekat sposoban za lansiranje Jezgara na druge planete. Maksimalno je čuvan.\n\nProizvodite brodove. Elimiši neprijatelja što brže moguće. Sagradi Interplanetarni Akcelerator po osvanjanju sektora. sector.coastline.description = Ostaci tehnologije pomorskih jedinica su detektovani u ovom sektoru. Odbijte neprijateljske napade, zauzmite ovaj sektor, i preuzmite tehnologiju. sector.navalFortress.description = Neprijatelj je sagradio bazu na dalekom, prirodno-formiranom ostrvu. Uništite ovu bazu. Preuzmite njihovu naprednu pomorsku tehnologiju, i izuči te je. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = Žačetak sector.aegis.name = Okrilje diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties index 89c67f315c..cb47cf30c5 100644 --- a/core/assets/bundles/bundle_sv.properties +++ b/core/assets/bundles/bundle_sv.properties @@ -796,6 +796,7 @@ sector.fungalPass.name = Svamppass sector.biomassFacility.name = Biomass Synthesis Facility sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -818,6 +819,7 @@ sector.impact0078.description = Here lie remnants of the interstellar transport sector.planetaryTerminal.description = The final target.\n\nThis coastal base contains a structure capable of launching Cores to local planets. It is extremely well guarded.\n\nProduce naval units. Eliminate the enemy as quickly as possible. Research the launch structure. sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index 9ca9cdb6a3..fda1a8d4af 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -807,6 +807,7 @@ sector.fungalPass.name = ทางผ่านฟังกัล sector.biomassFacility.name = สถานสังเคราะห์ชีวมวล sector.windsweptIslands.name = หมู่เกาะพหุวายุ sector.extractionOutpost.name = ด่านส่งทรัพยากร +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = ท่าปล่อยจรวดอวกาศยาน sector.coastline.name = แนวชายฝั่ง sector.navalFortress.name = ปราการแห่งวารี @@ -829,6 +830,7 @@ sector.impact0078.description = ณ ที่แห่งนี้คือเ sector.planetaryTerminal.description = เป้าหมายสุดท้าย\n\nฐานทัพติดชายหาดนี้มีสิ่งประดิษฐ์ที่สามารถส่งแกนกลางไปยังดาวที่อยู่ใกล้ๆ ได้ ฐานทัพมีการป้องกันที่แน่นหนามาก\n\nผลิตยูนิตเรือ กวาดล้างศัตรูให้เร็วที่สุด วิจัยสิ่งประดิษฐ์นั่น sector.coastline.description = ถัดมาจากที่ราบเกลือ เป็นที่ตั้งของแนวชายฝั่ง พบเศษซากของเทคโนโลยียูนิตเรือที่ล้ำหน้าอยู่ในพื้นที่แห่งนี้\nขับไล่ศัตรูออกไป ยึดพื้นที่นี้มา วิจัยเทคโนโลยีนั้น sector.navalFortress.description = ศัตรูได้ตั้งฐานทัพอยู๋บนเกาะห่างไกลที่มีกำแพงธรรมชาติปกป้องฐานเอาไว้ ทำลายฐานทัพ ยึดและวิจัยเทคโนโลยีเรือรบที่ล้ำหน้านั้นมา +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = การเริ่มต้น sector.aegis.name = เกราะกำบัง diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index 624c3ab78e..6cd44cfd7c 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -796,6 +796,7 @@ sector.fungalPass.name = Fungal Pass sector.biomassFacility.name = Biomass Synthesis Facility sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -818,6 +819,7 @@ sector.impact0078.description = Here lie remnants of the interstellar transport sector.planetaryTerminal.description = The final target.\n\nThis coastal base contains a structure capable of launching Cores to local planets. It is extremely well guarded.\n\nProduce naval units. Eliminate the enemy as quickly as possible. Research the launch structure. sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index 4d0685417b..70b6dc8570 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -806,6 +806,7 @@ sector.fungalPass.name = Mantar Geçidi sector.biomassFacility.name = Sentetik BioMadde Santrali sector.windsweptIslands.name = Rüzgarlı Adalar sector.extractionOutpost.name = Kazı Üssü +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Gezegenler Arası Terminal sector.coastline.name = Kıyı Şeridi sector.navalFortress.name = Deniz Kalesi @@ -828,6 +829,7 @@ sector.impact0078.description = Burası, eskiden buraya düşmüş bir yıldızl sector.planetaryTerminal.description = Son aşama.\n\nBu üs, başka gezegenlere gitmeyi sağlayan teknolojiyi barıdırıyor. Aşırı iyi bir şekilde korunuyor.\n\nOlabildiğince hızlı bir şekilde gemi üret ve düşman üssü elegeçir. Gezegenler Arası Hızladırıcıyı aç! sector.coastline.description = Bu bölgede denizel birim teknoloji kalıntıları tespit edildi. Düşman saldırılarını püskürt, sektörü ele geçir ve teknolojiyi kurtar. sector.navalFortress.description = Düşman bu uzak adaya doğal olarak korunan bir üs kurmuş. Bu üssü yok et. Onların gelişmiş savaş gemisi teknolojilerini elde et ve araştır. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = Yeni Başlangıç sector.aegis.name = Siper sector.lake.name = Göletçik diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index 429205fbb5..dee565d7ed 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -815,6 +815,7 @@ sector.fungalPass.name = Грибний перевал sector.biomassFacility.name = Центр дослідження синтезу біомаси sector.windsweptIslands.name = Вітряні острови sector.extractionOutpost.name = Видобувна застава +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Термінал планетарного запуску sector.coastline.name = Узбережжя sector.navalFortress.name = Морська фортеця @@ -837,6 +838,7 @@ sector.impact0078.description = Тут лежать залишки міжзор sector.planetaryTerminal.description = Кінцева мета.\n\nЦя прибережна база містить структуру, здатну запускати ядра на навколишні планети. Надзвичайно добре охороняється.\n\nВиробляє військово-морські підрозділи. Усуньте ворога якомога швидше. Дослідіть структуру запуску. sector.coastline.description = На цьому місці виявлено залишки військово-морських одиниць. Відбийте атаки супротивника, захопіть цей сектор та заволодійте технологією. sector.navalFortress.description = Ворог створив базу на віддаленому, природно-укріпленому острові. Знищте цей форпост. Заволодійте їхніми передовими технологіями морських кораблів і дослідіть їх. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = Перший наступ sector.aegis.name = Егіда diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties index 8c933ffc04..6b96174544 100644 --- a/core/assets/bundles/bundle_vi.properties +++ b/core/assets/bundles/bundle_vi.properties @@ -821,6 +821,7 @@ sector.fungalPass.name = Fungal Pass sector.biomassFacility.name = Biomass Synthesis Facility sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -843,6 +844,7 @@ sector.impact0078.description = Đây là tàn tích của tàu vận chuyển g sector.planetaryTerminal.description = Mục tiêu cuối cùng.\n\nCăn cứ ven biển này chứa một cấu trúc có khả năng phóng các lõi tới các hành tinh lân cận. Nó được bảo vệ cực kỳ cẩn thận.\n\nSản xuất đơn vị hải quân. Loại bỏ kẻ địch càng nhanh càng tốt. Nghiên cứu cấu trúc phóng. sector.coastline.description = Phát hiện tàn dư công nghệ của các đơn vị hải quân tại địa điểm này. Đẩy lùi các cuộc tấn công của kẻ địch, chiếm khu vực này, và lấy công nghệ. sector.navalFortress.description = Kẻ địch đã thiết lập một căn cứ từ xa, trên đảo tự nhiên. Phá hủy tiền đồn này. Chiếm công nghệ chế tạo đơn vị hải quân tiên tiến của địch và nghiên cứu nó. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index 1a21564743..ff3675da8f 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -816,6 +816,7 @@ sector.fungalPass.name = 真菌通道 sector.biomassFacility.name = 生物质合成区 sector.windsweptIslands.name = 风吹群岛 sector.extractionOutpost.name = 萃取前哨 +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = 行星发射终端 sector.coastline.name = 边际海湾 sector.navalFortress.name = 海军要塞 @@ -838,6 +839,7 @@ sector.impact0078.description = 最初进入这个星系的星际运输船,残 sector.planetaryTerminal.description = 最终目标。\n这座滨海基地有一个可以将核心发射到其他行星的建筑,防卫森严。\n\n制造海军单位,尽快消灭敌人,研究发射建筑。 sector.coastline.description = 这里探测到了海军单位科技的遗迹。 击退敌人的进攻,占领区块,获取技术。 sector.navalFortress.description = 敌人在一个有天然防御屏障的偏远岛屿上建立了基地。 摧毁它,并研究高级海军科技。 +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = 始发地区 sector.aegis.name = 庇护前哨 diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index f97f59f92f..3c0b0cb43f 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -812,6 +812,7 @@ sector.fungalPass.name = 真菌走廊 sector.biomassFacility.name = 生物質合成工廠 sector.windsweptIslands.name = 風之島 sector.extractionOutpost.name = 萃取哨站 +sector.facility32m.name = Facility 32 M sector.planetaryTerminal.name = 星際發射站 sector.coastline.name = 海岸 sector.navalFortress.name = 海上要塞 @@ -834,6 +835,7 @@ sector.impact0078.description = 沉睡在此的是第一個進入本星系的星 sector.planetaryTerminal.description = 最終目標。\n\n這麼濱海基地具有能夠發射核心到其他行星的建築。 其防禦非常嚴密。\n\n生產海上單位。盡速摧毀敵人。研究該發射建築。 sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. +sector.facility32m.description = WIP, map submission by Stormride_R sector.onset.name = 著陸點 sector.aegis.name = 神盾 From de5d189cefb315c1a7ce44283885b01ca1e97358 Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 3 Sep 2024 13:43:36 -0400 Subject: [PATCH 129/437] Fixed #10170 --- core/src/mindustry/input/DesktopInput.java | 2 +- core/src/mindustry/input/InputHandler.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/input/DesktopInput.java b/core/src/mindustry/input/DesktopInput.java index ecdb253ea1..48d6d9c6b7 100644 --- a/core/src/mindustry/input/DesktopInput.java +++ b/core/src/mindustry/input/DesktopInput.java @@ -457,7 +457,7 @@ public class DesktopInput extends InputHandler{ cursorType = cursor.build.getCursor(); } - if(cursor.build != null && player.team() != Team.derelict && cursor.build.team == Team.derelict && cursor.build.block.unlockedNow() && Build.validPlace(cursor.block(), player.team(), cursor.build.tileX(), cursor.build.tileY(), cursor.build.rotation)){ + if(cursor.build != null && !state.rules.editor && player.team() != Team.derelict && cursor.build.team == Team.derelict && cursor.build.block.unlockedNow() && Build.validPlace(cursor.block(), player.team(), cursor.build.tileX(), cursor.build.tileY(), cursor.build.rotation)){ cursorType = ui.repairCursor; } diff --git a/core/src/mindustry/input/InputHandler.java b/core/src/mindustry/input/InputHandler.java index 49146f701c..6853502541 100644 --- a/core/src/mindustry/input/InputHandler.java +++ b/core/src/mindustry/input/InputHandler.java @@ -1663,7 +1663,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ } boolean tryRepairDerelict(Tile selected){ - if(selected != null && player.team() != Team.derelict && selected.build != null && selected.build.block.unlockedNow() && selected.build.team == Team.derelict && Build.validPlace(selected.block(), player.team(), selected.build.tileX(), selected.build.tileY(), selected.build.rotation)){ + if(selected != null && !state.rules.editor && player.team() != Team.derelict && selected.build != null && selected.build.block.unlockedNow() && selected.build.team == Team.derelict && Build.validPlace(selected.block(), player.team(), selected.build.tileX(), selected.build.tileY(), selected.build.rotation)){ player.unit().addBuild(new BuildPlan(selected.build.tileX(), selected.build.tileY(), selected.build.rotation, selected.block(), selected.build.config())); return true; } From 6b15beceb738006ce5ca069daa64d64826c1e48f Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 3 Sep 2024 13:48:40 -0400 Subject: [PATCH 130/437] Relocated sector preset --- core/src/mindustry/content/SectorPresets.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/content/SectorPresets.java b/core/src/mindustry/content/SectorPresets.java index a6e4dca023..af3c58fda7 100644 --- a/core/src/mindustry/content/SectorPresets.java +++ b/core/src/mindustry/content/SectorPresets.java @@ -52,7 +52,7 @@ public class SectorPresets{ difficulty = 3; }}; - facility32m = new SectorPreset("facility32m", serpulo, 170){{ + facility32m = new SectorPreset("facility32m", serpulo, 64){{ captureWave = 25; difficulty = 4; }}; From 5fcc94fa097f68e4eff71e9c7ada9ae9f7c304fc Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 3 Sep 2024 14:31:06 -0400 Subject: [PATCH 131/437] Wave edits --- core/assets/maps/facility32m.msav | Bin 19018 -> 19122 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/core/assets/maps/facility32m.msav b/core/assets/maps/facility32m.msav index c9bcae8de5bde3dbfca3c20a68ba36b88857cf93..a690d9022f0981abe3f3a9da6489de2fd8a44c51 100644 GIT binary patch literal 19122 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 a8Wugd$?ePkpE!MM{&%1M`u}AmUjYD Date: Thu, 5 Sep 2024 09:08:50 +0800 Subject: [PATCH 132/437] Facility32M--Map&Wave Update (#10174) --- core/assets/maps/facility32m.msav | Bin 19122 -> 19150 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/core/assets/maps/facility32m.msav b/core/assets/maps/facility32m.msav index a690d9022f0981abe3f3a9da6489de2fd8a44c51..0cea5d1b0a7b600e12ccf9f7bb710efe567ab2e8 100644 GIT binary patch literal 19150 zcmb=Jb98U!8+nHbUyZpZ~!wNlfvHeAT~WJ@lO3 z#y!uw9v`BAcSps?N3Gofa=W8%U)Wdj_tVzZ)9>&2bZqPE>FXTLUhJ4Y%X;qGxc%i7 zB~L%uUHR62`)>ZD+=f?o_4Jpi`<=w+6Xu0|w`QNW zVrlQ&dCZ0XqEAeJ_hWie^~50~t}EBm+N z?a8*hUaNO6e?4#9a9y%?+r)CK$A131nio|Jl0d7bfhy{x;8kW87EuSm_!A$+h=q_I#gr=XTZu z3H~_~=3k54Z8$%9hvx(1zPSH$IC{RvFeyF$7{gd2f2v$AcOdg#aRC z`+nA)S5;quhc6I%aDgOVbg7@<7jrGs`_t!pfI+yVMnY7;3 z=))WL`u)#m|6a?tqintTf!XHz`!_z*kp243XU;>VGantF-%F_Zy!*ZUt~n=;rX7Fv zF5&mHr>nF3)N5G^a@X$OeEF``9?ODXuPwy(|4?)KARK#5FkCNY;r^}X{uLNm?5W(y z;qtuTN@f0Azw+(oJ1UPJ-c_=f;l@*L^O$W_Ur+hya2%4BJ2X|gRbZWLcgJaqYI`X@ zi2y}D*TerR9$jh`?5~=e7ch-m7w>EfB@A&Adpl9g3Ue4RS<-*d{a(AvK zO%pp+Qgfj=^X5W^3T6HS9|})xy#D&z_Wim)V)tpx5Z$Dua`{24me}FliyqkdzTuNe zs(gHwVf*8XFN@zDcy3Y|v(Bb%ZP*_4})D+;lD1=3jqn^WDJb3H+18>Pqg)^~RRI^4gxD)_!Jh-t&U>) z_Tk=xXQjjM?&%Sw9lOPROJ6?fUAc2z%)VLkUw``gC&paQwK#TH(c?!~ zv&GllF9^B&l85c?+wBJDES}eFf1I?f_-y;+gYSN9u#VXOJZRh2xA$&r+_1ZT`THIA zHS4#(UAS)diLLK19oc$#@5Pj!g=_9hzWv3MyXSu4!>lV)t>-FFdGc#t^QL{aukMz< zf5+pl=ONeAW?%BDOf+=+`@R`_-jy0Ij(y$pt$oIy9RE4h3ay3Vaax4G6;Ii~uc|W(s>t;V-n0Yl;*yN+UkE+b^Yq72`853(S z-7fpQ%d(oUe`|AKzWnDa3~x7T%kyW;OAcT?5$K1R&8VBhiX!%f+B{%mp&n-lX3c9@lPJ-B+X_ul(WTs*(s?VXlc zPAwAQ+vR*^dED`b*FNrf{Z`)R7vIL_lm8A%*%hBy8N-tv*7$&RYU+WcMJ-#h=;VH`)*UL!V-o5O} z;kf#}zvm_Qvv(_8b3Ye;JbBLq7hz_#im*<<>PuIfIyC3bl}&%ro_&IS-pq5JjTiV= zewyJaJmKTT13%9f@?SksxL~`rhJnSKGo=^4+}z0$FlTphV%i;E_nWV8?|oP{z2(`V z>%09#-+ifGcjl$oYf)hvxm}BkwVT)7;cUHB`~Cpy9>!-EEnRQF^uHIJo8tZX(fxyJ z&*pLWe?RfYI(qTLgB$Kkck`B5mmgK-QH%cjE@e;Ib>D|i+eNc8{=VM5_io?py6$`T zi(c)y`*!!1+IkDSf`uH?yw2fEdH6hYJ8XpJtao+kSh)4AyamtkMGu&t-1;%^@;|-Z zao2WbUfdwHuz@++AmzK-iGbZ{eEu72&L1_=376Q(^!=Q1E7z%6ckaIHweZPFG~qii zS?*K7d&%VOlDk#h*lJae#f94^8eij4zh;;pc~5lq_PfO^uW(!~?!F;;Ec}0#f#t@o zIg@|Y|bT?sz(ofrOms!BR6cj zT7J0j+{d^Fo>wBa_gOV7w%xyAwzs;wV*A$XcgvU8UYTb-xo}EqfXG~^EUo=E?=J4NSLxGrp1=HD|DE2?8g}yLa|B|R6}_17{ejzE?%w^T z@8->y*}-!4sm=4fJC1SOP_2w*-@Ch>QEJDZOR|Z!{a+3g-(@?Hxgwy8M^f!b!1XWU zS(Dy6wcSlWv8`>c-4zzb6`QOaZc2-VSf2bOywT3NJBFK+XVwyNzvJ!h0rK(-o?A%d z9hTXtS;ElAemkIe;;Ewn=B2TlHO!6M-87P&ZnkPkE1r4#mgkG+ z#7vrex~Rz2Z{4Yrrk0h=Qn&Bw{Zet+-Rmp;C9bA(SHTP8h&?f%@{fJ@JAKLFUESgP zi$7b|wy(Q<_#B5AUrbW}zvL2=l8=kF^Pc^iD1Vvn%jS8Z(Xkrk-}(9a3tpaTmC9&c z?c^u@O=b?4uA9Tu=`nNuo!G^x{P1>gfUt@}aoi_?OMg$Ag=9!FWnKEyUKz`_U}u6} zoKC^|qW$twiOSa>ij~}6D7x*;+%lKi{N*`;pQXf>|2lu+S#;0e&ZaV>D_di^Kkuy5 z3)#ueU3|moYql=SO3|{&g=?QA&1h8R5V((B+UV5*-xE0>me2fO{!gyz zW@-5D9jn;p797sASpL90?`!SeH>TXuugN1eS-D-$O+9j2!LMegs$0aIsDi?{4bn4e3pVb%TR4xmT)o9y|M>Lq zN2gbRd}=B_U54Fa@qUrm*uHh^T*AW_ua@9q6WH_Vv%}W~)zA6fIj*qu@3U+Oc3N*E z@-Vx?FHr8hM%MKgtmeB~)1~gt{@0~kbGw|=MCkHtpjS6*+?{!|vGMgON zY?FAls8{I4C$4KbdNWIfW_{tWt})cFmCe&R&~#@)h}fp`>c5P0v~-MBtQQ_SF6nt= z$%j{-2McTWf0xTzn4(&9cgdPoJuRD6c4exo{5j_?Xi}STy7mNX#Sv-t$@^vt6-Sw$ z7YLQrUV5)@b?^eok{J(N9A9%qCEjN~cTQ`UjQ!`i<}=Qho|TCUi{y0vk!2Tt!@+pP zP1*IucMZgwi+EMk6>8KMykGg^>tgr|F|8l^3dCS>g(h=@2^{3_^1<4(m&X%$KpX{3Je|-Ihw@-eU-feAaD}DPQB=IrRIoZqS z7s&W#rA5rj`Eeco=vLq-kxAvZ#1pA)`Vw5odd+Sp04=}!&PWnJp;@>Es&S*u64&)6E3 zewT4`nj6Cz``O*MC;riU$p3bQ^zwBMD>7PrnIq<8^&Xlj>6e z>Sk3Ox>OR(K5ypT&+SiV#)er~ueKGN`CPr;gb_X|ix&oH{H+UIIpF{AtU?sXq{ zXBS=Ik!s&yu{G?uulIEE1id`*U6r-7c3zjvO`i1lT=|CGk3S2F^ER0o$A7dEi7)h) zEI-nAHfxQyYx?QBz1&%^g8jt4-rrc%9ezUL?mV7_r+#P7`Ck&8^VV_O^_O3FJ`R8R zSZ=o96213DN2hte{Pp)-bso>x#f6)T{_7oD5T+Tze_Z&@cgHr}z~`0K?CiB~0%dc* z)^g_FEjRBFd%Qr+Hf}{gu+XYI!KIZ;bc7sk9v4_~Qi(aFa^+#gm(%x5V0dF;y=23~ z7fj3J4;{E8DYfPphb6C&+s`lkOp=~Z*{z2qAAhN~uP@kn%JTdju8rN67Z*7_nZG0NRYA{Qp#x_{h_>zetE(zoR?70V*$9V~lu;^!&H>*-2!*Xo8>O#Hq6-EN@` zo4eDh*O$NOsk_(OfAPY#Y?(`kW0!{>?7h>)XQuT{P?UY^dhv3Dxb2xbR^4^aPfUF6 zDt>=WPAOZt^<$0K0!yB~=XIZQ=2Hmou7~Mamv`>Dy~tZhxmj(>%Hwl>>J`08>ivA} zR?@n{1-IL0ZE;<=>-NGhhsqb$y<7J#ek*vb`Q6)lit{~tBif87@YXbc?OWaQvAFZr zxfQqnPPCuR^R2!7YYN?#h0blwU$@C zTjcuHvad8;RNZv?N2l1+Tvm4vv58z+643aD@0-i&eIW(YL*+X*+CEo0mC=#E;P$Zz z8+m!B&r9CfQ<^_DtbLo-2eEGl%gZNb@A!E#@JUhmeU*ZbE2|sc=vW(CmcR4Zf4huGdVNS4Eq@Uof2d_n0e>Y29v_kebhD6Durg@+%(rowD{b z-gRT=_upI#oo1h#lf%|N`LFe2zL4E|(iRfG>pmoK%;eth{_c(>OG@6ST=fL@9X78l zO$%+xUQXqt)HL)+IJ87hDLuzWZEs#fEZ^?mMaZ z={L&fwLCsP@$-eclTD9y9uvNw@@~&g>C0%`;wT&X5Vht{s~&S)mX}EYQ^p50@IBA4#g+A z|9DPo&x-fUv|jdj($nqV|Ck4H^G$#I(N=x&dTaFuez7;-T;A|D|HG$e5@ME&r91D* z`|$C%@$K_|HRoXh`*h*S+mCWdSx;^(7P^0EX*b)f1yL}d>bY2)Epp_oWyyLhv8nEP zY>(%Qy~kri-k)1&oEalnoML@)XMuges%w&#SGDC!tl#&|y<%N1_|bCuy4?q^N0v`L zwcGZMg$29Wjl0gA)@7ydA0>HL-g%v5eAM#K$BHLRGn)UdYksD4MeDyj&;g^_e;EKol>rbzo{#b3^rFV82!6whQi_P7Y>NlUSU}1(uNm$30 zw_i30SaN9q(5r2)^P1wrLQL<^F`Tz~&Bx4eal>{|d;de6iHm$$ z;)APfolKb&KCz14-2HAoyIjcB6XFcwU!EF&%n6;ee);vee+3vT0z;UzTt%`^^*;Zq z)6S-mvi_!ROSoEvl8y3fQ_(-1d#1B`9agyzyzDWv>~F^NVO`HPgv(ibRpza5srt20 z>0jf#+7nNfo0yre_b`}~G4*GV&@H=mp~ERI$>cJKO0d#AmVPKV^$i*zyH zYDoR0_2r)HjR%|cS)Zx*=>-0p8*KWSW9gEkJpzfRcGN7HGso`n^6#9h-4_a*s6Ep= z%Bi+w&1sw4`3jFzix?hBzS8>Z)tK^UgTBj|x;d;>1=-WYPDe@^SX(9EeY)8_Q$Sp) z_e04Pj^@;`f2B*5mBm#uuDnPsKC!yXZOOfv^IH90i?Q)2YWJR;AG}SwZjplggP9UK z?h)MThrXG*TyL(IJ(#|PU2vD`PL)mPj<3kvP{*_C%FJIK7VoP4KX)X5Vn5ZJ>0`{B zA+Y*;c1K?8J>lBO(0x~~vYoATnD_Sbu{^$|OWtibG4bcdT&0K1pR)UPc1&yX*t2HQ z*Pgo$Y54-}ckHEGZ0AaH{#zsXc+C-(V^h3mzFB$GsqaA0l9B9_rIz9Z|2ce- zV#|%sItop7T2;1=&5iT^YQxCXpfjPNXEdhjXd24h+x%so!A0()>Sm&!q>UE^tWrMZ zm{-{SS^SFCspFHG{!IAeo~3u>O?cCT4~c6Mn<^G{q<2-En8ZKj3dh|w4qOb{S`ECl zk>`9QBW8z5>~Zwt_++wj{mR^>PG6Keo}Wm4rmrxitU!O2_LoVEDon!~jk_2%*p_uJ zWty9^UDI#1&z6~+>H-`VG|v&c^i8o_u;Wy;W9StBD|@wPg!}TmZU|lDaz|TzDGNu( zMuwC{UvHRqUJ*4dbF>NFe4gu+Wpj?}!|Ww5q-QYZw8VI;l%8Cgs>HwZd1f?6(2?kk zEa93uhbFlQoj=#Ul!?i)H7V}q;=sk>VHVs;LhrP@b^Et!)OEL}e_8g5W%b6XQ$>CU zG0IMRX1jPv+q@`_95z2k57#-K3+5zu@rF%35HdHclcg$t>DNGw(6cM$tBfO-Cr;cs zrK2Ul=I5MSC!(%R>6{wi6fM!YSZJqD$gJ##AO3Av6jHQBNaN~_v>>T(6N_wwW-jaH zf6dtF)Z@my^1S(!ZM=KMIZs_WnD#*OiKFXs6K~DcEWw@^WH#I8YX4avCb8&_w&1c! zP7U)6FZ6RYRXy2jDq5fMS7>U!$(bct>rS1nQGO@j@g`18lC|fA$#FQ5C!xC&%wynDYEmva>L|V2x&n&ocIji{>le zTfa%8=g+Q5S-P{r64#t)bqy@JR=B%oM`CKlx*fh(cFo*qDZlODcdu0@qI-C(Ik#IZ z{rtH~|G~|=K=&mEsUQ2jCS7$GR4>Xq&+;z*Mo6&P)ho6?x=u9}SbB&bTA+8&Y|{F| z6)WC&KXO^JWS!lU3+^&MB4(RSu?&jKzN}f`y(}$W>_nj3#)XW3#MDBhpRAXQ_FwH| zrmX7ks_EZSbTV&`?wTWsXBNF|o21p_@mZu(?#Ckg&aEq#+5$ zZz6WNEOA~oRa1SEXQt+f&0@>Dd_*|SravOGSLZ#y-2qFThnr2FDvL&zusty{>-faJ z(`dz_q(5_CUSL~j=iT<^WRyzj9S7sP50-75y7Z}o_1?7kS59~Q@p;LSn%T5}{p9=V zhL<8egWp{E8d>mT!jca=mb~TUxMi&!EaP>>ogsC-bcnfK14GRcp7%$>UW=~ut#ghr zTK>h1xv)C-`<;let)dK18>FQp%B9cEW0$|Ubj3aQth*D_zh?ToeavmWy2vMU-U^3x za$i>bt@8<7CbHD);v%8sN(q)vv3#!4oC3cLrfG41nK!?=hy*0d(43&Pgry5=ExK}jcw10cZg(C($Mb`vRZk5>6 z=2@R%dCn^GY-UL+7+){3;(m}#^I?`lvIxG_DB!genQuF%ca91TSP8T6MHbH z#>zEu=C*@gXPIIjY8o#Ux^i_omrBNJ<#}=IEloprh`ij|vQ+csZ2q4cT+U21vE($V z4&5kT^}5hjIQZv@o^wUFcWIr7?uuIXFo^q&hg^m5uck%EruOda@!%>JSn8Cve`km? z&&5NJHa)50*FCs3YSS9F#I7f@xz>J6x4ZIk#dh_~fBOAmR@5Jb2%U|hvfUdjlWtsb ziO&jY%MZv|@_ipypn|Pu%kyW+2@)!NaxFn z^{-UT_FD#k4zU^+B@>jGXU%jXdX6JY?>#o!7F# zTGwkb%gimV9sMsp1xCcLEAm$hJhC;SGGpr3_YbSNpWHS#>Aj_pTOYvm(oBjoQE2lj zCJR52JKqI+XGEp$S)a3iJ-?Y#mseM3>h*cq)mQcpyk znSAwHvVUw4>$5vaswp`U8tX0uYyP+A5!djE|8mb+_V)z&50aVZt}pfeWYC?dt)1)b zxK1ZT&2XydQX#GtPu8^ss-$~fDE#5jThXjv>@9UI@gTd1_?m?epa0;pTpaq&;QYkj zuR0Q;x+Gg2+mVIRlWQ8!tj!}+D}+(mIrlp zZ@Uy2x-&GH_w>a?wYcCnhjT5ov)r}cd<_acv|~YwO2GVpiA%DzRQ9-P8T9@r?x^q; zTrYB?M56QPvg{{2Sns+uoc8LNe_uT#Geh&(tJO#5tgwv^<5{!&{JrPXn7*znnfm3Q zqvu1(Z<%&Kdu)PyzupWoHJdYagZktZ`?sg4yC1qOm6)s9FJ8X%f6*+R64C7$vhA5W zc!XDOPj$S;;lV9p5t^Qver@5YEB({2=1!aX*z!p5*`i>lnyJS><(U{>E;{o(q*Qr} z+ehiCGj_|&Q#qgb?%ws~(z6&`12rxi%+~rgGbujojrf$^oGZIj{AHMz?Y2GkW|Pvn zz~t5q%UN^$nJTmO^F-pW^8cLZx>+@8zCK)s??r)U|U}N500lX-ZLtJ_XKL_G8^8A# z6mPjLw2^u7>X%clJwCazpLLbWy8f&u6V_IBrM_(Y%Yj9)FTyT97hA{r+s-L&n#gnE#U0wy zG}1LP8T^@il*`(tuHJeqa@xe*ClymnH@d1t7MrU4m1ud&qQ)M)H$Q{w}ju?kG0YzcVpOVuo7VrYUn} z9!cKQO^8^=@iXPxd|i#KYr%8Xueol^O44D~O1;nI(zi%olHsam@ubali{vu`mTg!u z&1U(-ySrBBJZHKY{mE|Owu7av-VbUgi8%NrZOX}3TD@I&FK zqc#5SUef8b>Z*KQ(f(~SZoiswY$MMjoz<<~LXV!JLZAZ??~p?#Z$TRK^=`FQ7|*YP_Szlc&gw5xE^#oSdlZ~vQqVRq-zD-T-(tS46- zyi{sIN&^D$08ngavhLt@OIN&4{BSA-dwvuWMR=nYS^d{#a_HbUyg? zuSl+gwVJmN6?gBy`pIJUCu!@;4CyyFq|I5=Az!s%QEkH3ignrc>mx#wY`3PWJ6|%} z{^NVyiZ^Q}oE9j%weDnBQfl|)Tb-2)au#iyq#G-B`)t*j$Y&uT=1c9jeQhWgJz1cA zolV~$%lh@kt!9T#`ukO0l)ABL?ppunG6!_;ndPofeRNjtc3g9H%e$fuw#f;PEN8x# zX|Bx=WxVZ`?AgBCX1#uNT1cQ)ZgIE$>?1O(*#8)BS|&cfGVs;3x&tD)hYd^oUv#9+ zNeT}!H*!@Dyt1mXjWhRJvwvw(wC8zU=3mRbtFB!*x%RT*wH`y!aQ#P}MLUAdd~-21 z>s+pr?W4(lt5RF<($W9DSJHyEPEkqQ&6sg!)}qtuj#@Y zPD@r6`Cc{S)R<%$G{Nhg!Mw#n#fK;D4)I)}Ss{GIb5YDD9^;7h(&dgu73Z3i?s|mO zYHe8fdXiAijvL)d!80=^A8`vmA{XIayI?}`*9E#v;YkZruWo3IIHkUfr!DW|6V<7+ z>vze!cZB$E7b`Xo_WXU5=PujIxG6iYiWY@FG-Zmt9Z;6{;n;GS3q?LX=|}c#+Ph@R zcTd?=^_?%>y!ZZDWbw{_Swzmx$GUn>J}ad~PKQ}uczvGZ!tuy$F_(k7o*m7%*>*PG zXMMwW$?yE48tIp|ZMORLZS|r{Nxx(Hg4K%8PCIn%k*4k8X;b)a7ubJY*pd=IHNr8+ z>-RZF@w0Nb&8Dl&D+*k0(zRx9Y>@8Cz^crsJ*y5LjA`@{N&9*z=Zb-T*PTz14D+lf z6kY3yOy9Zoe57%0RM66S-RfMsxs#53O-Nqfv0SWR`q#*BA0uqUO>PyctXmnp;b@Mx zxYow5YbNJ6vNW47xP7ZoL_28dSt-$fIT97GLdE_}x~0FovMC^T=d>e_HpV>IqGWPq z`OIIFL>4ivmb{?&YtG7gO~;UBkwPzIkKXSW^cUUpwJnk=RB=P8M)NRYZc zgY}e6qVL{&^I3AXt0ky-^Y64_Hu5|zwp3?U)t|aW>02d2f*n(*WUbjG7M+(kbGGZ& z`7AIwH`h$b22%8 z+|YH+^6e5U)`sd`YUcGTT($A#w#RFE_)AV{6&On0sJn4#GW)l`Vaq<7by^DUV!O$b zuq^uWg2*uWz_81?tFJjSZsy&Tdv5E~2QlUUr!<{PVl~wGw%DkY_u@9Cz_96p){ASD zZ{C_vzi5wF^1bPgEu9Lxw`84aUZoV*r+d`tm3_xq6ZR`nzSq{T){@%lVZ(oxE%&PO znQ1JZ+LzwmR=92WHrXrEQ8G*Ipv;O@^XB$^?$}hcNpLsMKbBl)R{bq!kLUO&$GkEW z$+J8avH8c&8*E$MmZZE<-?;l+(!J%Y&RZ_{%zC)1VOF1c==@y&l4W0}aT{!{6_M9g z-l3lRYV$%bjr6w?U2k)KxUON^x$y_rQLf(~TMIshJFdV$H6m>mCUl6*%F7cI!yIN3htUclGRpx!W^2kS){#P={Ict$40JNuh1QhNTI zdxvP9pk&^)O%D1FGuJHoRP}3~{Ks&uR;3Sn92LAgR|f=%Xov8|GcQE*S04zmuiHTNnNxLWtbWv`DXT1)uXDH z*Z1|j{cmwW=yt&_!Ck8?AKlj~?|c36hKWRBc9&PS)y;WF*0HRpqRQB1e?EJE%se3UFy6H?!9z@S$+K0r4#*4G zpKDxoY=MsFhOZ3C8}ptm>)$ll!ExE+9>%pt|D66Buk-to?sd77$9Luxt=pf*^dqyU zRw{Wuo8?!xAEnF2l^a7UuV=;dA3I;#_w8twF_wQA*@`D-|yuy-=)9{(}(m1JG$)rIv- zBvgJ{n*B)5j{fVHzb{++Uh5DOHGrLY*^FK7m|K@sa~R_r0%PkmlACL zACc;<(zg#(J)rgL!!@0TgSQv8zVMFx$^J2CY12))qnjf?yK6sWS1pw+opnO|!s^7= zH-m(-m*1*e=^wI1%q3^d(Rr0e*Q*p?IQ=z3ZrOor$69AB5Bn5xFi@Ex=wCbM{LH@0 z^d;<>XAFLqSzKp4ue<8V&h0h&n%oO+-9FQt)NLhs`i=vqUVp3f#r92s8w~5u+pF%7 zG85EEd3sH#$eJl@RpLx8lRIX@l|Q>$?y-mUwAE^I7cuRdH9zRf)BRm%x14C6;Tzt< z&j03i&#F!5mOZi3DsrrQGk=wS0oyh)BF`lqy&yXmuT*E#zGtcoJzmx(2GTk5>) z*d5v$wB^P-(H*Wg@(V0uI_Iuu|L~kkLELo5)7&L_1(|Vuy7w;anSXquvG}`NvvR5# zQbYI7U)lPsZ1a?kmfj8bw$D%aH&baQo76;Uv$ei;Z}cAtew!?RRpDyyC#y9Pa?kd) z>1ki+VmezX@cPRur51KP(=y?@xc`n7SxEujc0#qf&% z_P;G1Zd=a!-F0%)^;t?kmv6MX<@7S-c2vmCZ*ohyRxSC`cC^N1+Z^|^GN(N6#;XUN zXw*6?BALZ@YL;oL>x<=;x6DjfPR(5E)O$eL(?I7q$4sxxa|*n7Ip*!Z9#p}*b&7rO z!U#`pu2Zuexu`m<7lGqKoY)+MG{;n!G$QWfuO6?{pY-|(tsc@a4`FO{e@ z&-ruYSLZGx)%~f83!Zs|hJ8I=x}5RG|C5V&wjVl>#IWc5OyRdvDwX5sG_Cdbma~@c zcb%@i-$>}>re$fnRw&=HYP#*Pv&rM0cgc+O7TpJbFIV(U>$+B!yn(mt(x1r|c{jT{ z+23y$`7_naz-R5E?|v7mFIT4XO;P3B>2>m1>;xZe#?a07;p)s2Zl9d(t^d?fd%{Jw z@+bd<{`B{FsXdM?3VXcsuUX?%$!n6Ad0s6nHSk$k$=#~b_-xgg{69=7{{zATc$RQA z?3WSmI^+Gfm&rraK_c7yi%*Q>j0J0hF1qgcttC$=9&`k*#cklla$2f8BrKMylA+Is0;| z)wXc|J|J|b-mhoEO|c`HH_z>5-`4#s{(<)LFQT{C@p74bkCSTN^vdFUmnes6P*&nO zdu6$fiC2;(Z@Meg_5F7{wctVdEu+@wH@|q-9_@`DRg?Ju{Qn?Rxj6Ste(+oG&EGt^PkRMB!K8dApBB{ub<)Uq1NnQ?;vc zKda8Z8?%zqn*U4RY}%79Eo(F7|6CKFdA}EdRq>|94|``@Pxa$2Y&TIR073 z$mR+Ar{cSJ?aw|AGS_=(xcu+LXAuchbi0Kf)Po_H2?4|73A#Pj}C2rqgDrKUC%RKbtrIs}=JJ@XdS?LW0)KgSD;xpM^l_`*yNgeQbX+Mk+tKBas8 z&gb1d%iCH1pL%$+X}z4lJk#?3@u~-Ig`O@kKkUtbL09CH%jZ@C;NNP-Wp&Lny76vx%nc; zvwVXdv%?vzclg$RGV#{?Tr9!!q)fMAq5;ptOu-(L2E|M3H+~V`w&O^&uv=zxWZFKC zGiRdv4~pEnbw+;6s_6`ugO<%ybw<(3ak&pyj$t2yv9?#j;t z)oT_-=CEyKP53RYIq|-dUWm+;uH~B|`t8dWyNGw1H*wcx6&;JN`*@=7`Wu(G6QAjA z4rTbweNcSHWz}!0o8PROac|M?lfoxm-n{m__xDC{NK?7ZpEIA^o@_s66_&bw_nAEl z?PoS?_}+*!dgeBDr}D1-4=VrmJzssI;l;$q*8glQ-PrF{I`!&2lRZ26+=K(xHt%HX zE?WeA-K17uZ}!OH;+fLEutk!g`}}PA(=rz?xBA&ty({L|sr!qU=U&*q{U590o*Sy? z&ntYB4RaR`dGvnbA>~X_wY7(q?49Af@0eQK34K4#yluB0uBm@J&yG9Z(%*l!!Qb!K z{l7l@|MXr|)An^te{4DD{FyHEdrgPAMPaLR!Xd^7rO%v?Dd|6AU&f`*bu^BzV2Av} z4_m%Z413%&XL>*HsnoJHoVyp8xCeL6m1f&&Y`oATNnn-UhM)8PhOGMEE%RJD%WIiv zanE(B<;tAwmoL|~1^C;C-CfP9XO@@~XO(vEQ?SKlR=#i9bN8ZJbdAosY;`BMK zB4LR|JUYEey@J-Ou~2}R98lY`lE-d@3}s@ zzpTCExSG23={4+|gH9>Ex%f^@V)iQj^)F(&w-!w66?e{)Is7q)O=nT)m+zv>wmxB2 zUQs)jFC+BTr28cT;*+-jOH6pV|JT(sP7HhQ>1>d@>eyvCDexs{YW$P$7xZm1oeZ>V zu08x;=x^tD&r1H++W*%or4so5*8iWrak*xr=Zn;70cWQR|43*2lT%n#ILBqnmP7Vh zmfksEBNxbbxZafS-&`>zIr&)h(Plb#I~BL>pTTf1BF%YMYCrTK>O2)&DsC=a0Dt)1Td3r*-DB z`e$DMV2|^w8q%I$6TK$0<*V^6ogWriolD|=YkYhByEoY|L*csZ^Zv&-&fooeIV%3> zoIg9|Z&y6Z(yi?Jvw801#^sN9bQrz9dB!kpsp+;eLcezh$87advsiwSbBCnz*~O23 zNp5t%_h-)I|Jui2{nOS-UU@yO@@izIRi(s}V8<;yw$%dDU&aaUQQMw;>P~~z)7L_$ z`&a#mk@^zCdw$!>w8FP7A;wRq&fN9=wExxB@p7-b({Bd*W-8nZRNnXDt^di_X|}r; zm@e13+mOHF+RW8kOoEThycPUu6UVVl&rj?3uk3evJAJA0D@Ko+7axLJBI6S6s(VUB zKmQ9|$G_D4!k3tZIsO0oPFGw?-Vq#g|7?@#YPZT~H-3D$x!I>{UWTD~rKINEwWS8T zZ%TiARVDdp z@5v8)Jow{2UNsAoJ>bog*q2qK@vJgX|7r65&r-%#coxgGzZUf#5fWo#*;ryX!xBvc(|S-z$cDYNMIHM_tV%Q{%+^ ziys0!>O#+bT_rQMTetd}FvCl6j&1RCJlhkd8O+#if+Ym6}3b$d~Z#DE4THq zCAav^rOv)z*ME>TU3&7?h98-yGd5o~ixSmKyUeYqINyvlv8L59?*o@l>(9$9(K>pY z?kBySaJ9+c_@d;E@41wZyIbm4|I@U7mfF{K-pG_Q{f_TFr%+qB>xS9$?grOKoe59t z@-O(qR9$gUFt?=7_E@LG<5}}BZCuQkR>Y%sI_K}v*ZiA!6;gdG!nA7+uRdF`RwHiy zHT{@0Ywb-x`A)17S-XG2**TB>{7>pXn|vn9=6%j;ZsYB#@8&*^?@T}VxR;^o(1qK3 z7KJz7NO_Sj7MfnM_+Y-_5w7Qv53e~sxyiJ@eaHSKQrer(OuLd9H(&7IohOwAZ>4`% zbniOTe{n&?;dxt}i@Gd7%uW#O+QxFMIJ9D&lJo?-Lm#tmd)o*X+~0BL&MvMkRc?=0 zx>>*M-@)5$upoW*9L)vpKeqh4|FNpFtI#82weY$LDc0Ayd)he5`oWvvcps zpAP>Uwm&}cb&ap>=Io6(x13#fm*ag;rB=zwWoMsTrYpW(`ew%y!y8XZKl{GZmGq5& zu-5Fr?8%cPwR1mO?RfArGd6p(=`A<6IDfN$w&!nhKKfyEU)%7%c##Fyd11SA%|~-> zy!N>7&Nti}pHjOzvu(@C?1x9%U7w{NJ^#^f!`b$}4)(AuWZU&?kJZvw zn=E79c6Ieqld_tBLWle#@=xgmpX``_{-A$)+0?Y_buZK3{AAAA)Z-#&sH=MHv&@NS zj%QBygfE(3u}5g_RGUiQ?I)ujWIl5f*q+sBZX+I|-{h$I;1TDwHTvvR!#K?%Z>LVy zJ($D3LGaw>nB^Y6@eeI09gx0zBDKHU-{)aY<)XbprJ~;^mR`H6-;mSOv(l9---u1u zE{*YMrb6?qUuu`CKeC>0%9-YN*X+iR?@JlBZU3HJu%0a@*SO}&%;}QrUQ{!M{Z-Y{ z{j~gfQOs4|7yb#%KYdi^e${#4Ikk4qhvIQcOzURgKmYY^L>y)3n2VLb@xja+t z%xe2mZ7to_3lnb7(s&r|63*Q2Ri89x!P4qwjFpp5S98j3OSecpTrIg_&EiLqJnL9z zPgM4=kn>a$(p_9v>pShyqR%^cMYdZCE==ycYx?LX>oU%d_D2_Gv75~O$alreZ0bz~ z&n1OPa}3sJY@U((U1WRxwA4ves+%^1Bt5Ux;+l7W`-1#trMfrKEllzIdYrZ%)UUdi zAi4jMFh^4;UxMyar%5>mKFrBBhkrc0znaUP=g6F2o)cvMZF=i9=fJY!xGfL0A3m7O zvcb>5Zj(&eq{*(CEasJevIIC%qDB7AW&M3?!K<%PQQRuqFDLB&cQP@e+e@gYxZ!?C z#3fxnzh|127HQs}Tq6&4zEkqx^fB3UBD3YgMv*gt56iW))F15sbE@L-Nv89$iQ*rc zZp~3`c`hOD#jr9bck@23HB|?=8@C?XAh2F^!+U$bX3_S~jB)BA`M!RV>`O#rSKKQ( zx}es-z)AM$vim_Uu8a?-epqy2<^eXNXVX7CW!>;Tcp6i6W_7i(cw}(B^X((k8~1ru zP5c^}^ULOPr_ua$$*B_No@GuI2Q21&-IX4F<|wbd_={&T4E_~?Y4OuPZk*TLy(M|# z|C)3B9X7WTToc7){24z?pBQpsTEjMrt6Kv-i)uSl6_2K#GSl#!bzq_WrTb4A;&`7_ z3mkf1sW*=)+V}Ju{$JX3xx)V-+`x?Z@SL@|iAk?=|Q6@9C>-~xi z^DC!H=YG)@Kd7|dlNZ(Aw=HZ&pVxENsl2SP}GT+lG_-0;OUN z_k8|0Yu?ryW^w5e2P#f17u+=GX4eMR*M{%w$!#!H~yMZ zUigo>ToJG3Du3~uNOE!CuPajDRxr)RY}3`oCncO~7=sgcFF%_#Tke|C=e)i`rTDVj zzau&`H%Y#hIy}K;hLjge^1RfDw1{FkvD^YJ_T;4v3)D{LzGqHd&3371($C!|46=Ec z3+tK_Pq-B}7Ft~}KJqhEE}HcL8|Q(q4CM*)%qnzFz2KdoKcn$&XHc2uzOd$<-e>l! z^&hvqpAvhf!bbM!b4HJIziSxU_Z<|StrYuz+jj2e$s2rx8y18XMo(9p$NgdzW5yrP z=5kiGOJ#j;O=RNJYMwFGt5vF>N|{_K{LJ#a!9LCN+Pp1V0nUyEu0LypUvSq-PG@~Q z?`-d3-h%ra_w0|qPe1rO^5E~J!2_%886lw{IO^Hd7dR?fO@`AkOFgv>DS^6#b2>-S2xrE}LD;a{ku<}qjI$+8V+>Z&v)nhoNZ zfAg$7oBU)tyPm<_^9@g|P4@9lx%}uyII}%R!hG+R{dED4A6Kbd?tA6Xn`kz(@4Dl@ zsrqe!N&oEGr(IwECOPU&JL`6_-&qGe_l3uX#_+@`e~6vL@3nV2V=l{_uo=eb2DHvWrq;9aruGuP{H-ZtALf0###Ol6yRBSTncId`JYr-&&ZD_^`Y z|FvbUOU}6uCzzt*SbxT{o!p(j`Tqu8ttryC9`)<;ms>nH+UMan#c0h2xykxVr5SZr zdPn(KA6oSO&(b`FxdOLRg8c<`POgmpv*+lBIHuF8^Z7q`GD#FOu2=Qe+f9!f%;pI$u}hwzdHRcGhyA*>4(-PU&!}BcpIRZZ z`}B=xt^bQ^?ATYIdh8tGT`*g^XZudEy=P5Rj$ijUuz|(@WWIRgqcwkid9^;=YI2@! z-C~Yw`NnbF3bylZ-`T!ntz|Vw_Y-HswMRC*DCa1UZuq$RShC7;uKHw$gey0v%?rJ) zE}{C({?X-gO;rt2TTfce7p)XIU?KP;@?-mHMxBq2rswk`7b!-3;x^iU z_Wg-tW^?|}WH=`DI56Gjf?i$w@i~uwE{U@g+!LK_|6lBIuHpV@n`Mhk1oBL`olReO zxRmRk(4?yhn!j~_rYd)GKPX&o=iQp9NUxly_4<%x-S%_uz0Qc;*Q?zYv>=|zIqGTC z>OWecKYpf26rcZaV=`;<#d#azcCmf=EqTSBTU@ngo!f_ZpB-)1e72UbzQF%T-#Ib2 zaNgJXc8j-{-}-YdbisY&g+JI8W?z`cc~4k!jq&-3`-B_cgwL2KJg2>`@oQS+^9lDR zAF=%9so=3=Q+mzW!{7y0uJ021_?X%4?nVyN~vzOj4WmEaT z^{Bzm)=g@!mp^G+zlrbkw>y_>YSV z7BpYiXw7Sfy`5_PYd_Q!I}|#Yt&L?nb^dhDeDR1h?=!n+uW9~tJ6QkYZ_U@otzO?Z zpONVJ?lH}#V7x`pK@=CL)FYn(Nm>dvlKR+H9hv1e};Te{8EL#d`;r(rgQGs zvXRSu6z%Zy^PE#BvKmb!^!FYr{Z@LP<<#?~?@pTBSF!1n4!>%6Nq^_rT9#Lu%g-#2 ze0)0L>*g;yjelcgRrDwQyT0sNx$d*@$m0!pGaTi*?u8!wb?)_>_z^eZOostW{R8eB-2$J?FW9!>>)7zPe<6`7rZK zSH|6zoTutM!F5F|&OE-LXZP$!((5F#&;FZvYj{Mgpa1wLd2Q-^mhY=~{#HM5EkLNQ z?bk>C1E174nx7I}YyYv~{>p+gzCR^T{gMB)+2}^tEt@wz^EvCE+_bUJ-XwG0XrDa$ z`4`vqmmi;MIiK@*?c~fIl6!(5m!C6ue=qU(4#_itPc8j6^VH3Mzn62HS@836KSTc| z_y3mGmC3HSuK)F#=Y+HGmiX^K{(djxmP($&4CbpUy!qB&{z(0fVmN8M;=Xe2oBWT} zKMehQYmaj-+kJGOk6q5xx}WAV_@_J6HTLE>m>u2fP*vi&42%;bQkVDwdddYNWJNn+a4O9Y`-Qc z_vl}_L|cx~RJm8h4708)oXb|I=DM){vc%6Pk7NS&KM(z8FL_@7{epXQp6+=l`l3KD z!@_LlwaW$3->uddtxwq}^;+@or#HFl{=VER_4!%#neZC7{aMwsfAb%UuUvoZ^E}p9 zj3@84hi-@u6`5Bb|98gP#QBVo?n*XsiT|cZ+WoEixNQ2)2hmA#jIWP;zwzvXe_i84 zQ;GY<2|sNO?CwAPeo=m1!`JqdwOh_?D-J7`W4Kw@dR_Jy_v2gLKJ~4|nv&{l?0E8U15_qh7b*d*+(E`m@+yKUvK){TJJ|!r&j7Kg1q$>{R~OWd5zdkNy2Zo%PQX z&2HbzArJW`g`x+ z!=>HU7w$;rlf1xD-Ou&+{=2nx>ej8-*Uj6%t?cQo)drgl zZ`_sV`*mNAkMEmX!Atht?0^5Ay8P#}a>g4zGq%I;II_yE{sxM_n%n&M?LmQC@89va zSs%Wa_Psyfak2f47hgUuJ;iR{{HiYhvF(igd&=H^{XAVSCa(JL*Y51=>*5@RzFYtP zma-I-*XuywOcOUJZ`NmeS7ZR-gl)bPi{?}YW??MLWcs|b@$)Rci)}Lb$Pe<^>%jl zzh~clNZ0l^D@nd_aQW)_?1#$If86ffb62wT*KaGcm^F5)9d8+n3Lfu0&zih^^VZ8h z?*zEby?gd*fo8&?-sLQtZc6TRe{3hNHao-hx0cVoiYS4@Zx1`(Z+!7IxLHyrCwKk7 zbq%H4Gwy6_uzd6FcXRcc9sb-}a=)z^wqKOIC-+9}!INvjOuH`2@>NT7D(w7vn=$FJ zT&-Tf_T7gM*X?hZdbcJkzqsR^pu5s!;WF3n_U$_1hCddR|CQ}1xpCJ=V9V>}X2;&W zTe16>HM2W&wX~tco~kH?7b$$)OjD!%`_KBN-=Dbi`rACajd5T3ciC0EPuNlQJ7LS; zC-<%~9nTPN{j=qq)bX0WhkA|oi@v;i?vk*jH?pH|c`@?`$#=$VBE zf2fzM(==eQdd-{uuslT3c{rkLG^wbBphmjVw<@}G&zPtAI zy20(}g&X(!{g-$7?ku&VX#I9?^Y!sHxvVE;zU9d;xGHq!V%+n4?_T`kx4Ut?g@f7n z)6U(yEB`)vDw^UkpCQIgY$<>I@<7HPuGOy}d8MZpY}j4@*Xh%*x9`I8zyHckysn4O%VTD&%v&skr-GuCG6{uexPyEho!dRO{;_WM)4-r^kGy@fWV&5*dA8myZ9#sCy@E+q3+M2kus-y1>-EzSbN5t!b^3G4<CmqYnAAk6D zwL4|H_1y1&uN~c*aOB6W?R*CPFL=w2R(;gnUHsJO?oA1vU$dL5cVAy0Tle?U(a+-R z6uGP}&OLa|%joK@*6ifs*j*JnEv_G3eRSu#wV-g=Rrc`H)X(AT6+^dM@7{g)toaG~ zMe;juAH2~Nr;@@vd-aLtv(5MZd8O|#miYAb?mNY2FGKEsmym7O?tzxOuy6jf3m+tn_4y8;9SNZBcTHe#>JX_Fjgk-1DKtyMGVl7HysB zbGmB#E_0bbOQiGeNb(r&`e7RM;ohsc=W>1iSe4kmS>(UG+~7Y)0O!uDb?pA(WxJ$r zuRh11l=(Gb`WEr^d>2~6CoWpscqjU<^p~>l;oq#h=TDu#r>i@VoZv& z1lLCNKj{8j6!K_yxi!1Q6Z7h3-;{%9UDKF)HYg_Sv2wF3`o_@x{p#N4xwcy_pX=MR zZ~I-zlPnM4=^adw@H)U3Bh`YvisuCrZ@m9|(lI|cUM6wZ-s3!X z?G)-3ncui|^!smN!+nt)V63E z=N%5=tr~Ui>zhh8rYwyNXWLun(z^NB8iR;4dF2i+U#!xa=l-30FoR!~eX2h5ncA}N zlJf)iZ{F&)Nx}Bj_jh*=zG4%0+q26zS#wXztR)9{uCKWv^YmqI(t;ZcGn`YFt%>c( zl6ZIMmdqOg^9iA@&eCPd!MiWpSKL1#6+Uae%$qzGzg{*AQ?Byut25p%Zhh0n`96SA z*g|yDE|=N9yaMOn+>H~ z+@)?Tjp&*&cvYZxG7y{V_&?KZ`G5Z z*UYDBXvaz2iIjTOt6DVcVEIC;q(z(hr?3saC{{3ctFRuRi+WbGxDi2=A|Nr%!{rB8|Uzc{TuYEeTJ3KCyYwEM`bq_jJ zpJeQaiTcg;ti^lrJGS^duT>TE+SUh8E-d-`dwN)Y+Z6jdfBu;%?W_Nr%k!MwI(}!# zKc>4i%ljk6EO)pypRTd{W<|e5$F`!sbML-m{I%yEn{d;L z{X5Ds>!p9TKkHJg=iK|qFW==%v)J19lJ=0;$tND{Oyqtba%Cr1gVxhO2C0&ECZ-G9 zwM?59?lOGwW#P)4);5*30o-nUyq*$=T^?~I%;KG~Rs2@Yo)t@)oo7hBojCc9bj~52 z-S(fPHE#N5B(*h!JiHS8>~lfd#iA8~UKd;2BCOBcQxy6gyCo|t^uU*A2|F$;M%&1| zO}`oM)VHiDBgm6~tH7p(a))lrlF>i)agvPw>5pA9@sl5iTE{VT&b5=bp>sDXtvH1JppCX*o{BLi% zBCN+$Qm6by{OMEXR>Q?gPft$?sdT=1$!E9vz7PZ7O8)8ce}@xi3Yoz zd2y0+`yV!|R)eC&@(4A~ROzlYn60Nc)A8lknnGSSzbU#E8w_3Y&#s)RS-AZDw>o1=k zZlI^gzGPpN_c}eb@adCQpFSDN)yl*X+giC`> zmnGfbs_k!By!_>vMb*|Zo-Ok^zix3&staEH@gsvH%Od4xSM_hqO)fjmc-E_HVcX6J zi$!+rbDGPkqZ#1D{`c>^m@}FEUZ?bCT$hewaQM16u3p@4TA2E*xdp79ZbH)w9BnNv z*1h|3PhI!Q8kcpq=WPAp8tdlUYhcLVsmG=D>QUmm!+Ht|_ikCgcswQK!UG%TpwcY; zFYjb>N*BtC))(wq!pnZSa68L6pI0FY_T78MXJ}tx?U=sZc#2|?X?TW(qxGs66R)>A zi6#du{Nu!U(ONKfb7n5T`Y9=f4F+M~4sLmHDbXcjscZHkZoN8#@>i~3b!GhZp3dFr zBsxdK^UJ+0X6c8$k3Z6`T>Mm4>&zOiyINoVhHX?j&vjM%ne&sZs4wgH=9?Pti+@q6 z;C}g@oYsko&R#x;D&A>tHU6oeniYIv{f;J=x?b@q7e2|c&e6%8dFZC{tX*>!XWr)S z>oq^9;pJMZXSDLJfcc9Tym}=TkMDZT@ZFtc5dOkG*y7lYjb5p8SDemvv%OiX!zJM< z&uclitSV5VRZV}6R{lSyVC$p}3A56-_f7xuIdR_(6$anj(+B62^Z&S*bF1udPqG2e zw_As$owb;sxW)Qx?VZ;lZvOGDWcKsig;Ni&*=}*D)HLEDx{Gao-z zee1)SCta6U$SiEY_|CV#TQ|#9S2i#ooJZaP03|Ee<#8#H#3juBN zhkE9m*sZ?k->lN_7o7|W-Y$6Z=h~f)St1vEgRe||!JO*OnQF7w~l{`Qonyhv0qyr=qx98Y?@qxUC@gQ zHx4E&oh!HV;xR!DuALpz_&3b)5YJn%)lu_u?6ZhXQcRmOPYZG1udrplby0~$r)RA< z%jHd9ooDz~cUa_m7;m>e?CVwZ;SXPFxszSfMTJ)rPETEPrtjyFTwmf4>$4*0w~TFme*SuY+f|2q>ogYbJ>J(`v66At zty}F@`m&DBzuwPqe^teH#fhhJSy|3PMeW%gDG`whOc`gHCN475Vmr6tp8HN?!C3HV&))lSDN}{nliSs`uWbA6W9RJP<6W+Iv!l z9$xvWRF^ZpaI)Oo^u((o$$p#uO#JbD<8*O#z1a&UOU7SqINI5LYKBqY`uM~WKfT)@ zj~=>lY0_i8Y3A`Ub;qNWSh_DhU?{w1P*m=)*X@?bBK~EETz9ND44;?L!h1f)uF_)d zbsobIb}PQQ=NX?>uF?DZE-d|Vf$51{{_OjYih;_E-R#>RCR==% zYU5J1p*2eMuEv_Lfs2#c0~}Y>?%v`1v8wI(q|GnN`6k{`*!3l?cJb!w?Z#f4_*}Ez z-Ag!ea*fZ`N79MQB<-%3FaJ5|2Ep%-NfR^|p~1bYaj8v zPg2NDFs$g830~WLZ~CLFar~;C3zban3mpD?@OQJV&C0uuXI}(8x64s)v3lR@eDlpa z`8Rju$`)Kanv;+(^6TJk<`qdlY>yP1aIARrWVS{EON{il0N)A6XUHY8?6S2v@ zv|8iRTxOPF_x*JShaNxpd-yJ6*56}^)6ZD_eUXDma)jLr#R`@B3*03+-!m@knYZ@c z2P;9hkSW#eEiI0+AKRn0*EeKbU%}t9v8Ld6p1w;Qi%*n1pP5whmkuM@8Iy&po0hx_ zV&2=fmE~p0_je4HLFx-9uPeV8&9Y&8WcP?pP{gpmG7O*Xe*z}+xufV^!Bt>6D zbS>|S#VzIR-f7`P6JnSok^4SC;n!mA$INh7_eo@n+)~8b>Q>=84?AtB7FVbt@oLTNi z%-p{RB;0rGZ&)7T+&(Agb8h58*@I0fi)Z|(eVJ)!ogiaVN~I59jlh z8JJefi=DBpm)92P5nque@$f|Agsi>=x8Cn@XY7jkxx#zby_@d8mpwIHB5<^0W4-v- zb;d5XYu=VxzwZrTwJPWQ7Xn9F z_}%a3+>^%f+qR|cSy$N3tGDMivfaAG7`41%W!_hhtL5y!UvNpySfdc~Nkk%>@7Ihz zCGQJ!`<^Xy4XZX^q4HE=OTmHN8(*K;Eq5;9so#mWjDSXuk4a1-B z_1yo{%h>W5{@l&~eqQn4=M7Hj|E1@KzI;=^bhBCw3%{`y^RDmqmm{0sG5%vt;Qwbj zck2tey*>X=Ty}r>>Gy^l{%JoMd2(`=Is9~FJula4%w90L&Gbdi@wTTWVUNGtE%KKA z_Wi?r|HB(9rOaH@+1(NfG5aow$mnskc;xd5XdD zEsiTcO5Xe3;C^Dy2VUn*XN4c0E=|6?(C^C$3(ow@!BtNSuQuGf94iUVl?&IJv=`cfZ4-!qi3nEceZ-n4Nst7JOnAzR4)O_VBse+RHCnO6gp6 zP@VUe<$tBXJTv86Aq?8bnxDU2V_+%qWWjmcCh>c-jV4+e#v2vNFR#Ap5t=8EC4Vw_ z;bUj%-wV%#ZL}kWo`b3^L9OgO)uUYKEWnAZ~yeAHHFsad)Ni$ss`OKyEmC>wUI`9P2aA}BcI!B z|9;+aXcLdrN5TKXiJ^v-7Q(9w;@|KF%~4!x(`^tMFjMp4x?5)!pAlFjIG;_^CcG)d z)^*dNH+%Af>wJ_hpT6_PMvRpy_n=a>K;3($HK%WeD+dQJpDKC%+^izjmZEKPjva=g zF?MGEdgq_K{JZDs;u{YwUvo`=^}#6YqU+4J+AS5WXXDORo=S<+pXe^}t+nN5|7x2x zKFMEo`XlDd>6~}!=3<*qe>%S~e-oWo9w<^fb;J5iy8~JCKAnD7G@ZBCW$NlOG3yo5 zB0_lv7ufR>8m~kqZ+rOt#G6kOrI#NG;Fmb{M$~D0+KXA$9T(QVP@TMW%A&M~KQ=}_ zZoc!!QR=2)o~AYH{{B;jYoksyg{<7~^5WW0+pCkNADp`-YMwQh#-`dk8}3$yoca1x z)la);ZlaJ~iu|_|htpNNwsxyU)qF@jWOBS-j{ER6$!a_9;5a`+Qz50pnoFGiUHQ7t zAxt$?(;)ej*NLKvV1s$fIHt-UTsLw>|Noid4$(9*yEwa&2wHKlt0POTxzg6zH`w*_m#6WAI(&Z zGd+?#ttMlM+KVvnB@6}UST^M8zn-bxoN?Kb@%;qjHXFZJ)6c9aQvD^kq*&zAJ8_Ov zJ|+5^Qg0?5E>jL|yxhhp!M3h*s?c1K{+0h$9ow>VQ(c6Ug3~$g%-#mKg&DrlRxPQB``$BAsya(`gRCX1>ePa?Mz3e9&2AVl6&FW| zioK|veC_zgkk-V7$Mz{&`s$ia=b9|gy?ln1b!7K6-A(v>?wRGYwpL2)p%=*-oHrsrB7~--(DEXp8_xsYtxp&{GHhuEhAX~{+8?asTZcvum z!I)y>l(GeH=h$SpwXOKB)w428E<>Gmx_tRZP{Qgau`0DTUmzN>}Il4X5m6Fxx8XV$&>-2Nh z%tUVg_sid9$G!{oiGNih`JF4z!%X}cFP}oepQhduiDz!ehnh_HZ}NR~eO{-{{-PC` zGFh|IIZCG-zaKS4(}JzjVXl6vYTUFmInmE=4dd;md8ohIoTqbSM@HYot#Wok;J$L6#=^M|gTU|Djs@}8BKDemk%v!_#m?hq7=knw_%dA`vezRX< zX|wb5lqboP!;09tW|?gi`n-BJOMSgfkK>vHvv}Dzi7BxBD&2It^yR;2GF@Lp1J5it zrT)f9aer3Hk))ED_qU&XznSIdnxvN{Z=Tr*)Eo(_h}o#e;<9&kak9**Gnx$Pt6s-= z**9?1EaJ&unkFTZ*(Te%DdpOWT=z$OU2;1%W=O4O$PzTawsKF|9A*Q>E z^<84B?;kgc=m_^X&))99W!t(SEy_2fcbm@AO$qrbUF?-l4%r)hU!ePQz0}38S5}8~ zxpcD{taRL0d~8{kSJpA*W86v)y7DcL?VR*0c=?KBH|}rXt2ng(zWLmoC0T6C=5D&A z(9bePVU??K$_? z@lYXC{F^Ub&v(hI3l|E6m0dGQt$J~Db$FX;aAo+^2d?RtO!ALi$n|py{}B9d>tYkT z$Y&q6O7zcReRH%bL~>S)>-y+3hrjP*^=z;?m=jcJJ!z*R=frL7W%HB|TZ%sx4=*|t zd-S~c;diqogjHUPX{*@Wo$$3dpYzPjODwuGmrp;xX`SY-tBbhqbVQeaImNtNXV;b; z%0d&qsJyP5^M&bo(CIg_S3g}#RVut=uF^Zp_{~w-D$cEbel9cLE;@0EXH`S((Ko&u zzJIxX_t){7pBn4fr!UQ%B)M!JL*?J!>|f?tJSjb0do8k2KE&a6V_)%{$__F6b6x`C z#ep;X*Z#h1{_fs(_Sc58qK9`bDzRB3`RKl<;Pe;EN7|IFC4R*!d`SN>XYocds_u3NamU@ej736jMmghuhhFM zT7E#H}?~kZ$0B1>88ta={d*8w%!%D zFIQ!$O#8UO*Ziiv_O7)Y(~Ax367%P!_e>R8o&Qm$bJ2C5#=S4~?mcf~rxU>C0jE6^Z9zBEYh<1)EOh@?TRicyo0F=l;)&c-LA|>s z25i0Y;-*?e0c)|1>9ftjB9G@3*qjTIPkqU3;Fq`Rb`4Kk=4qcl89tk@EZ+SvumS#VXAC)nF zbb89irKvSDI|2@$vD0Tud>U$eYW5WUjb@!XlAiUmmPeTCe%N}m?)b)4%ekXi*Bsk+ z_{Bf*jtM#;oTs*CMaBP`>3tzG+`-7$@0xeYOzBBNrJ)P_FkMlG)Z+0r=4s5Uyua5RU8X3v$ zz?@ZnW2)M;H-CSZbp@zOt>*X{nU|5$bxb+BImG*?$CHQN%?TN2q@;q+nC2Sp2%qUE zc&h84|HTigH<;Q}KJi=r%H+_w{ot)@RpQZzjqin@xQ00$-IDgpX7)24QSJwkEt!YT z?a=uuw)KQjp*d^Io(Eq~EXkhVmy&V0`krJ+<(jRlFRh=p=-C6)8z;`q;$M7HRD62L z!tUnu_e&$5wuPz+-Q#GgsbNM-r|*lj zdT%H#z2s`5=!Khm76$r1UmI0Z?5ndwaQ)0#%Mw4no15xsP_y=vyy2viPv)7nPu+WH z*&&`Zk&GI)`)Wb0k7|o4XPnB#W+8ubpxxdMoSpIa93`nr~MK z+HPEw*T1ku&^S$V-}AfsSUZ*oY;Uk#SLOXLW=%`3ar2p)oIOn&a`c>)<{r(#V^e-L53R53`7OaTQLtD+ylDsyC))XePK z@hqix{p(Xr7kjs;zN#)0X?|?BXl~ls(%`mL3nxlu^?EFwVix~<&8;VqStWAL%omc& zu5CKGx6*Kvib1&jx<{UuHZg5B{@}Vd< zTYLKDX!Dh9Czg9X5Ov$ZP;=D6+-lacMIYG`F79Vvr}g`#%-1RG^OpW}dNQT4eBqpg zD${cnuVlVFSf~2nQijhL1>?}nPdQR9OMHS`Z1%}+e{y8n8o7$1P1z3IQ|IU(ycWDb zG&_Dh#W%i}!H&!}nDSX{WG@W)|R zq1D9q-_B1>?60l%nC7=7LD=$JC0E?7jP4})wIVfp7DlLd8Rw;{zYI8G&AmEQu;L}> zt4QnA8R-iq1cexGo$IUK_4@B2m#nPI6B(xLUb6Am(OpgDv9mpyGcWht4WDRx>w2(i zPSmVNKO1w-eha;I+1vRJ-Bc*rcUtL3a@xX4vo)Q9k8RZv?Qj1S+;-u>ys)#; zEuo9cTK2xmyZXnCb<&}e#@in-{Cg{M_s){{dvbkJ>DuWCM-X$xVfjM@WkPy1Mi=gg&8c9WDb4$Cn2)rx-gUfb{m_&Hj`#w zx7ZixnJpfDBjuf(IgicTZ=1JW47?Hbd~>U%jrQ3~mNDwd>U-^`E%j`if99j7*F^RC z_kz|*1nBRRUU~4`lHaUyH>OMqtvt14nf6-K+6VXbLUZq#8LK;9SKQ5TCt6Wy2tk?_;KjN z+4G~U+;#G%hFz|>U~nXR<x8Xfms_LT(rDuUF1(?xXZz z=`F{Y^mqTaDZPGm%J-cwiy2?UoZMivVBO=~%jx%ZV@#{ERcHLtYxD0Byrf$8HPT%5 z%I29OUGEKkl&)fG-S~y;IM@G&jTM5yxeu?qxu-F%nB{b`r_;3g(UkV(`!!c>cgmc( z^T#oD^Epn&D;Z9S%RXIvw={UZ%E1|ajDNN=PS6Tvlrf(6WBP%BIl6`W_Os=4tLL0L zbKFllKymdNHM#xbZhxkFF67yxb45KfVNOd`ovRD z18h{;PJ2l|xa(Fcusq?`y_HKn{&gMH@86mBzwThPbl;NZBE|og=D081DtJ2R?)5Ea z0~y~YT=6o{oqTb=wD%+ZEmsybv0J8!JU!;8{!5%~!91bB$UM{oq z{ri~y*sD69^CN%l4t{yVMyfEm=hU5;?tGp(riTlUe)0J9d|9^XX&Wx9cQUh{^&IC6 znNyz_uxgoI>zTD#GF;vFDqXe|t;h?pa!S=)ZoOD?!unKsaR<|&fO%{c@%LtCR4@9u z`>{??<42E24zo4abNv-Mzdnb**x^&*!jsV%4VIhhCnn8be&c!IwLNn6Yzzyh`k}?-ggbmKte2?bW8Y(w=Fv`%;!n zSe>b$QIfrP-PgphjQXe!?s*KB4OyJBJI{uB_|XXsAISmbrmrT&*2_h|2o?{s z;Ib^;VRr!tMMW67y5pL8>XV(%QhK4m$7jH|7i=&Zl3tUs2$4858n z`QF#_PSxF{wd*^7gj+;fO)OpC+2P3K|FHxteDONyRnQ#t$9^p$y6 zda?`GP0#S0dUyZ1iyl886+YAN?Q@C?H|73tRNTYS@**#D=(ay|XL3&pdt@PU|M4$z zwxt55OQybc$>w_fG>GBDYLhszraL{V7ac>hmR0RHG1h&fu+re0XVdHba(}#?b^A>g z8RW#wK6E2~x$>Xox>A8nvr~#gI&E}ngky{slrl#ZD4VV}$yNQlkbSm}s`d)jr{Vm` z>nC;G7XDTC zWNi7lI%`H%>6@EDj{j@6u1a%hH}jrXv?=k{7wzh(h!y2Ouid;N5|_9;n9*K8G`UP~ zw%eTzcKfX^EDL;>9a+h_Z2y+!tx~tApVD%7(wosJzM?+QM#DkRq)MjfvBw-+(;uwP zVXP;E7U&uMUwX!9LF=Y_r+03Qt>WA@ugP+kq)O?Y<5BYu*RQ_8{oOEf-Rwg@g(8fi z=f)oFwV28KK)NTdqoecHPyX9K+a4X-?l^Cy8ShDZ@2eNZt&h*TuzxN8y!g!I)%YwSrpMzGX-ZR_o5algcGZ*zcE9);I;PQP}>YJSk+U%oWeWM`yS4ok}jcqjha# z;%1-AHXGQ_?(cD0wY@de=D35jZK<+iUTL5I%jloaBd6YN*UWu#*pBt`bEnzo9e=D7htzv44j(KxubOL>|EPQRw9V(1 zDxbLc>V1}qP|mDEy&D~p(u$KbMeKjYr5$GaxsT)f`{l(xvmI*XT`voHWHPH>JQZ%s z^kakMgY`ang;G=Zl+U>@?XS{Jm_yA;V6_4&^ty=B{M!n7lDna|4s!f7X_>x^~z8dOPimY^~$kc;?sl1G1;; z`Ti+0Tg^7vz@2*kSHxk5BKM`{A0F6ytE_dnp3MG!Yt)`h1-DO)-)H~RmfNkdXvWs* zwfCF9M#@*Hevda+F45x)ir@F2}-sH4~=qnZA6%9wEIwkB&M_ zo*Fgtv%CTS6^~^>l0TP=CieXg@SgV~{rD<2{S7b8zjcXk`Xsn({r43w|MfL6oorJIRH*u-lKl1Z=&^ylbL>taO z`jP(EUvAI2DqhWeCilbs)aVP}Yc@MIe7e7}?d4^I_xrD%dbsiX^?&ZZf{Wk2`#<^S z?EAmtbB_E^-1a~EpZwfY|9;+I$ZY;ltZQZSlsiq+Km0JSm~$vuwm<&J`_$+#_id zH|2ZUqVKCJY}DSz9)A6k<3IPs-{)C=&G0u_r}kmB(K{Bo{X*;P50?MfYiTp@;NvxC zHYcc-Op$IjPIQ1 z3CcBmcX$>Mv39|B9qp!Qaj91fj{Y9|<3(@8vlPwINN);mxZ3d{G=leHf7Aox+mEJy z_}TP8GU4EUC!6IDqpN$;h2Q^Q&Ev9r7Hi&_&Q#5kYhE08aywI=x30d-H22{~mJp}6 z3uMh*jrh9N@=kvaKf3FDcgv=xDKBppFKX>QbR#_FP1cU@o(odlwggy)ifh}%HeBp_ zme1KE*=Q(RXua)Ju+q+~8HW=Ew$B#q@k!9|Kb`PIkY{RL@RIqRM^g{Z((tlAGwXwE zVp#K63!kOAZae8*hIBmY9Z-fW-2UD^`FA2RLrM|BIY(utLecU&l!U*7z5djA`iv**spRlb`Q z!P>DupvKW6RxsY^%B0 z7aJ^{dBZz&$3=m6E8d-FkJ~T$W0g@t)t4V(7U%meG;W_4pnSUW_~$3WDj%lxRD0hm z;WKGkbMyXuPm2Jv&r@8qulBUXJa1&5yu~nJZmsZqy|8^h{eQgVxp7~*{xpw%`N?A8 zj#}?47g?vaR;H!2 z|BL@|ZR4BX(+vMzn3w-ab+^-g%=CTzA2a`42v9 z`Q91!yl39^KAuyig==Q+Sg^+-*maIH>(EWbrP>;3$fh@5Gxp7ChI>2prp zt1T?qCc5oBwnEml@5#gGg-yjx$GcRz&OE*H_E<@%>dG=%g*!K+PGwYRKYY0QpzEdk zXBj5;<$9Wlx$>(mosxQE^4+uCX1xM&CwETEeyAd?-+src>G4(04Ku>7-VblN=Ec#I z@U2v9(bW~F>-ZJVrRV?IeB#pockk82m;}D0#eK=(+9HuG89FcETWVeZpF@+?SSBBO zF7n6z$CJr#dY9hF|LguD)4}4)|G)8}HomMePWs&~vlh--V9);`{nX{|#VSclMgJC_ zj1*kG-tCuT#FaxIHM-R;x2f$3&Exd{6gTU@lA3wPtm>U=S?iv+MN1+w(I$s!ycUdTI5Q7dz2=SP!>&AL}7b;vv~dm6Xni18oUf1Kz4|Np?_KGkiq_mb@jXCrTf zomlsLkx((;i~4y1dJ9j6P43Rwand;|{78G{{~XP@nGZgz9$ao2xPFDJfv~}oWs}dX zpQ+>_o#-{oE7;v7{o|jTtA8Au>GS!^3LDNZduREc%jEp`Ud!HZzUbp}wU}ALyH|1d z&p%^sWPxi8{~Y_S-0nODn4s>{$DS%^7s0Vo~?1SpMJ&2yY+OdaG>s#>*}xW<=X|XuPa`nKQG1KcX4Co@!lVow%aSOpZ(>{ zo~v_ql`t<{Xr&tSbm>f^b0+gAO;0rtV~(#YcBvJ~-mfQH$nWsj*?pSQoljn$Zz``@ zJ?Hy+ui6!R8_OPWrC0wc4>>kj{@~nCzw(6Ec$%Ivc0bmB-|qC27oK9pj?*T7IvK@2 zdG=nz|FLcQ?0TElWwxA4^?UX%W&NbA!+|pE{!gnc-}(O2oL05EcPIK1LMy^WWA}0# zy_ZrGw~T##OV;dFd=pgLEZj@&rhMMBX8I@37g{fx%JjN9#MQGNX*<4~a?sG$cgB_c zqO5sa5^YzuSB5NqJ$Zt@!F%=n;q%t7X3gH__%Df9LFaMN_JzuG=g+=$ahIf4cjkk8 zn)>T~x-#95PJVMD-F@o`@lDzp=AYza{Z~AxDQwfQ(!IO*vEs3!d8|&XNBqPZlnsSh<=JoUM59{1yIAdG>{9k6iYD)&w&E!vPQ~#^|X!5m~#cWyP z;`U^|T{Hz5Cf5fqUDQ{5RL0@ief$_08iO z!KqFA@5)vjS|{hTr+SJ?yv_$N@o4Qs6J0Ny)xMKIThK4WCG9xZt+>vjmNb^{t;%ob zZDF3v>Q?qPp!o0V8g<{yZZn;lYeu)8Z0QYeJ$>_wlh28C--8nILOs!&n1aRsZ8<33 zefrJz80(U)3gYs(y@!wf5$pd@ojstlz)k?3}57{;E39HlJCRdhcYIczRyaB~#B{Q944fF3#@oBUYU9-?h_|o1E36=6bd+xxF(^z-G%XOVvwfS^3ZU zX+83tru3KjX5ZrLlg+;RtUIc9*=%Q7@}AX)f|q)m=i2F8a%bzOAD`NA&^OY2zvf=m z%@ytT;b$z<-_!f4Q8#I&esPtiXH4srK8S>OJa9ZP^Z6Vx{$)j>du_CD+ElJHF4CX=#^a;%KYQ&D zX>TfmH-*X>^X|KveJkTl%OBOY`JMN!xGb9`XdmA&-~Wx4@4COA?r(a|Ul5$Kh z`e0ec?z~N@GmHgunm(_&q8WAhdTO7}C%5ZdHy)L{_p1fpB)oTjaIa&BmGTGA^f<8{ ztKLgie4RdX%Z>T-bPKMUEwFFo6)~P#b7^yjI`7BAQ~6KNo@Sgrd(z^&Q?~Lw^9?;_ z_)qGx!=IV!%#C?PEwlE9b^b}+GcCflX}#~q|F6~;JPidEoWyrta$1K`+SBp)^_o`ff@bGt@=Sda% z%u`EaY*ruiJ$&}a#B`&6HNlxv1NZM%^RB#Dd4;VjdQ!)SjY{ukefZOK!R5z%k-)Pq zCUg1tu9%x$J)#h~Br|Ca=lY7xGxEQOY_E4qnZ&O8X+wzM^GYMmc?#SY=65L72}QMV z#qaM?+PYA`Do$8(zmO0|TWEKJtagja-GmwL$10*eEZ!f^+b7jw{Z)8@^`Fw)Q>_|j zzt~f8I9%~L?c(G06mo@Xht&Ykswr&%P$XkA({O{(& zAH=4rNu)RKTlry0^xQe;f;kKBO#9Nk$w%le>jj}1nH7PTIG!e}&RVSZ{@PhTg_@tC zQ+d@t8VqfRc1@-;~cVwQP-LSNyo9USLWY>k4C-R20#-Exleqg`9rP$5WJ{!!- zC;EOi-{V^&_+$1Gao71*mrZZ+oAh(ei4{saGB*hyWR`s-D>j z&sm2a+F!eWlp{{~OSQnU_m!ISzMeMcI`_OOzTv~tRM!_5kIve8qTN=$b^po?o!kZ1 z`bJqNcg#9b7wmLNm8~+#bWz{a5LBHrp=WTR$&|)UW6~x?1V~tRGF6AKujc zczxdy_5+=%eE(8ke^!Sdbv(;lWhHWgfXQ8ro4`496>{CU3Q>$K*2)72*D zxOJucwGN8qb>&}i3+Kw$jQPAdb7QYQw~m0#m&+Wn=jI6B`nucpZ&SDVxs89skE}~S z8XnJ(tGhgYKI4mT4sDkFdji%P6kpKy{ke(UR`Y(IXHyl}LmuQqzczn%v&+&5l?u}`}!Rl&SWuk8Hn zt9fh@-G_EZ9_*~Wx%NS_>9Ut;YqXi1g%k5M40|jmCi*6vWsBHzaHUx9Ri>udD%+d* zudJ1FInDX-eba#)E}la_O&b?V9~C{e(&IeG^YGLhW(O%1hH&LOjup2iZB$u&-C=(M z+eUT2n_GWG^*vk1@&A_5yk|ABB^$LK|6F0m?@)a2xw6F{-gUP`UjN#CP*28B&FCz{ zqOha7(X%S_7Omz?_^950FLZ{>?Z}OnD{6c{%eC(ed$4a_F7qc`HRFx^%=eGJ-(>&%yRM!4YOrS@i;g# zJbu+>ne64pWe0M&W#ifYhV7GabN%sOrXp^BcmGT=`!zd!yVr-!`BHr~_3+V$Tb1rF z{kh;;b?AfMhRsaBMGtUeR0G5*PgX5x#vEvaNDwn>(_3cS>^YI{y&Tku`vH~R6btr zoyWPSH5cb-h({FKE{pftt`re9-G}=vOZWcI*LO9RI%Qt=wN2e%vV7jO=a-pYtA2?2 z^pj)0PLrYZ$EeR+d~!0Qetc7^=wHMqH`!zVJm&M)O{Qlts+9JB+m^48|rT*;K7bX_+Z07yrsVaN*-KwO|r|NC(;v23`_-ME$xxibhXZsSdy{e`u>Q_7z zHi-D2%@=QYyyo98uh<8^(erqN+zr?4SFbqR{H-F-^Zui0Pv02oOyfVkrR%_>`-%&4 z8P2U=)^l-=*1ulHRzuZoU)J2TJG`Rff8hKwwk`ACpSWiJZSCg=J1<8rTq$(WLhfhe z*Y<8fov)6*AG>`o-rRhw_!+-!X|nX$|2`~_XFRwlWOG8VF8GS<3CbEn@$_ z?Z8~II{(u%c3osp3f^`$eW7wG*I%JY*A;gD(EXdL+{-Oc@Z8QjHbKYfc+JJv5B8s0 zV%Ih=ShilMB(vwY+;OF9l^x+O>B|=XEP2EE;nyRcg8%JLDkE!TPPRRmKe1A35%=<^ zcQq@+lehgUd%HPQ>2Hw4Ev@jFui+~nomYQ6qdMx?JPk?jZ!TXii9Wc0{=vVG?Y?yG0m#rbyT3)`s&SACfC z!dmX+zd09*V?JF-PkpoJ%)-6uy~TgJU3{){N?L2zbFvb zu6weS(rHV{;O=8Do^QSN-imkD|6fTn{y9ZPe+e!=9PZj)TK!Jb(vCS(C%87y>ap(K z=STZPQr~2L=r@%pKWF@SUdbKibILbqq>~ zcfaZ5d+UDn!F!kO1o!V(`mkTyW>v#CldZ>BZSA_| zl(Sg7>G$^*{iyV(3u^h-cGukX`589-VNfh($4zs3zWL^P+A}`czQ0c{o_YP^t>v7L-Y;|bto*k5?iQ>3s2`!54HKl( zJK9&(^M3gEdDV}Z$a?oWCL|0-X&Z~C|@(Xk+~?)cx#-sV}`{|VG^ zpX8LZ);C&l%BG&{&it#o8d0l{pWl*x@fA-|&Z6`kVJoxSTrKg^?xF*K;)2xa+<*jY6FIxLnKHu`;o$ki| z*B51YXFi^C;sO8Dd#@j4n*@J4=lQVn+ur@k=hrcP|FiX-72~d#bHBdif3o*_gZV^3 zKH~#hJ+*J}+3#1{C+6^(_ucOd``@ya`M!T@_;#gs{r>lnecdhd`sg1U*nWBER2r_Iz$z@dNeR{?D5;=6p*iS^HV{;74tSXS<6op3S^)UTjPJiR6C)DYcA$ z9xwGWar-;rS(epx`Hp`v4F5w~&DA#Td#x^HSa*Noj7?I#CsTRW$5-54Gk;4>^rxx% z%r~k$Lyzfr^gZ9tcyddv^bhr^`(!SLOg7xbIrB%cag~3)P3LDryLk+8=5vJS7kb}| z7u;c4AZx_^t5IOTvA)TxXJ^x0+PBv25Iy_bwZmTE^?~oI%NJY5v7Mb;+pPKUC;x%^ z_M)hQy*hjTnY-$VGxo@x?G9s=d-#u^wJlHVYTT=0hH3W&&S@{G=036hv&7#ok8}#| zKM(zAA38JszT#d><;ug_7becRP?*ELcKL&8Z!06j;$GJHUUdG)dMo-8^MmiR4$YS5 zihn8jf7e^xm(CXTU-vFMQ_Z$Rd`Y#!w1f4rftCN1KPT^-Rx4Fv+xfA=^+&Mqk3ZVS z%$v`M-tYRr;i6urVdh@W_J>=RZ4s_}RF}|KA6hiuoSbeX^6R({-LRUdW9o zxhuFwW8GejFV|J4Un-QEyj5-G$sK8lF~(BmTs6Im#LiZ$U(!6gf93mIO|vhtf3amz zu-nabum4BqPpNy?O;sOnk+WsHr+>ljdcd=e`?-zzHdmx#es47?Q%RmB7?;biSU;}+ zdg&AK2ge`&;#a=2EXD5Z&(%uL*$Q&EYQNw1VA;o+-`x%OPs#r^d#m-QI_W+6e|QS! zx|S9D75rd6IREI5g+%W9GrX8*g3?{P6PfZ_`Haf4_w?)-HZruT%Hvc-j2pzy5BjToJcVr(kFO18Iw? z^ZW8G`vNR3=~o8pKM(mLck)vf Date: Thu, 5 Sep 2024 09:09:35 +0800 Subject: [PATCH 133/437] Update servers_v7.json (#10168) add a new plague server. --- servers_v7.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers_v7.json b/servers_v7.json index 252a535ed6..e88be60de8 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -262,7 +262,7 @@ }, { "name": "Alex Multiverse", - "address": ["alexmindustryv7.servegame.com:25588", "172.234.80.96:6768", "139.162.41.78:6767", "172.245.187.143:6868", "172.245.187.143:6869", "92.119.127.171:6888", "181.215.58.8:1025", "181.215.58.8:1027", "181.215.58.7:1820"] + "address": ["alexmindustryv7.servegame.com:25588", "172.234.80.96:6768", "139.162.41.78:6767", "172.245.187.143:6868", "172.245.187.143:6869", "92.119.127.171:6888", "181.215.58.8:1025", "181.215.58.8:1027", "181.215.58.7:1820", "23.95.107.12"] }, { "name": "Open PVP", From afc1ff58c5ba68cb242f561d4416bb914cdc1144 Mon Sep 17 00:00:00 2001 From: MEEPofFaith <54301439+MEEPofFaith@users.noreply.github.com> Date: Thu, 5 Sep 2024 09:27:22 +0800 Subject: [PATCH 134/437] Option for conveyors to not push units around (#10166) * Option to not push units around * Apply to playload conveyors as well --- core/src/mindustry/world/blocks/distribution/Conveyor.java | 3 ++- core/src/mindustry/world/blocks/payloads/PayloadConveyor.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/world/blocks/distribution/Conveyor.java b/core/src/mindustry/world/blocks/distribution/Conveyor.java index b41c2b733b..cf1ab20889 100644 --- a/core/src/mindustry/world/blocks/distribution/Conveyor.java +++ b/core/src/mindustry/world/blocks/distribution/Conveyor.java @@ -30,6 +30,7 @@ public class Conveyor extends Block implements Autotiler{ public float speed = 0f; public float displayedSpeed = 0f; + public boolean pushUnits = true; public @Nullable Block junctionReplacement, bridgeReplacement; @@ -223,7 +224,7 @@ public class Conveyor extends Block implements Autotiler{ @Override public void unitOn(Unit unit){ - if(clogHeat > 0.5f || !enabled) return; + if(!pushUnits || clogHeat > 0.5f || !enabled) return; noSleep(); diff --git a/core/src/mindustry/world/blocks/payloads/PayloadConveyor.java b/core/src/mindustry/world/blocks/payloads/PayloadConveyor.java index e6c368d97e..ec5523dd1c 100644 --- a/core/src/mindustry/world/blocks/payloads/PayloadConveyor.java +++ b/core/src/mindustry/world/blocks/payloads/PayloadConveyor.java @@ -21,6 +21,7 @@ public class PayloadConveyor extends Block{ public @Load("@-edge") TextureRegion edgeRegion; public Interp interp = Interp.pow5; public float payloadLimit = 3f; + public boolean pushUnits = true; public PayloadConveyor(String name){ super(name); @@ -257,7 +258,7 @@ public class PayloadConveyor extends Block{ @Override public void unitOn(Unit unit){ - if(!enabled) return; + if(!pushUnits || !enabled) return; //calculate derivative of units moved last frame float delta = (curInterp - lastInterp) * size * tilesize; From e1759adcfec7c63ceefdb2f31cb4c60126bba77e Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 4 Sep 2024 21:44:45 -0400 Subject: [PATCH 135/437] Fixed #10173 --- core/src/mindustry/content/SerpuloTechTree.java | 7 ++++--- core/src/mindustry/logic/LogicDialog.java | 13 +++++++++++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/core/src/mindustry/content/SerpuloTechTree.java b/core/src/mindustry/content/SerpuloTechTree.java index e8b212791a..658c73d7ea 100644 --- a/core/src/mindustry/content/SerpuloTechTree.java +++ b/core/src/mindustry/content/SerpuloTechTree.java @@ -123,7 +123,7 @@ public class SerpuloTechTree{ }); node(pyratiteMixer, () -> { - node(blastMixer, () -> { + node(blastMixer, Seq.with(new SectorComplete(facility32m)), () -> { }); }); @@ -503,11 +503,12 @@ public class SerpuloTechTree{ }); node(facility32m, Seq.with( - new Research(pneumaticDrill) + new Research(pneumaticDrill), + new SectorComplete(stainedMountains) ), () -> { node(extractionOutpost, Seq.with( - new SectorComplete(stainedMountains), new SectorComplete(windsweptIslands), + new SectorComplete(facility32m), new Research(groundFactory), new Research(nova), new Research(airFactory), diff --git a/core/src/mindustry/logic/LogicDialog.java b/core/src/mindustry/logic/LogicDialog.java index d36a66ee6b..eaac0dd322 100644 --- a/core/src/mindustry/logic/LogicDialog.java +++ b/core/src/mindustry/logic/LogicDialog.java @@ -28,6 +28,7 @@ public class LogicDialog extends BaseDialog{ boolean privileged; @Nullable LExecutor executor; GlobalVarsDialog globalsDialog = new GlobalVarsDialog(); + boolean wasRows, wasPortrait; public LogicDialog(){ super("logic"); @@ -40,10 +41,18 @@ public class LogicDialog extends BaseDialog{ addCloseListener(); shown(this::setup); + shown(() -> { + wasRows = LCanvas.useRows(); + wasPortrait = Core.graphics.isPortrait(); + }); hidden(() -> consumer.get(canvas.save())); onResize(() -> { - setup(); - canvas.rebuild(); + if(wasRows != LCanvas.useRows() || wasPortrait != Core.graphics.isPortrait()){ + setup(); + canvas.rebuild(); + wasPortrait = Core.graphics.isPortrait(); + wasRows = LCanvas.useRows(); + } }); add(canvas).grow().name("canvas"); From 05f7259b1f868690c96e47a7f86db0a7372c7114 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 5 Sep 2024 11:28:07 -0400 Subject: [PATCH 136/437] WIP sector map submission - taintedWoods --- core/assets/bundles/bundle.properties | 2 ++ core/assets/maps/taintedWoods.msav | Bin 0 -> 23963 bytes core/src/mindustry/content/SectorPresets.java | 7 ++++++- core/src/mindustry/content/SerpuloTechTree.java | 7 +++++++ 4 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 core/assets/maps/taintedWoods.msav diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 19703a139c..cdfe2330f2 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -822,6 +822,7 @@ sector.biomassFacility.name = Biomass Synthesis Facility sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -846,6 +847,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. #do not translate sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis diff --git a/core/assets/maps/taintedWoods.msav b/core/assets/maps/taintedWoods.msav new file mode 100644 index 0000000000000000000000000000000000000000..f77ad5c488d1a325ff5f70304cdc28d00e5b6e65 GIT binary patch literal 23963 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�l5@mg;v}_w7)i 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 { + node(taintedWoods, Seq.with( + new SectorComplete(biomassFacility), + new Research(Items.sporePod) + ), () -> { + + }); + node(stainedMountains, Seq.with( new SectorComplete(biomassFacility), new Research(pneumaticDrill), From 38eb6ce2bc94ebd7897bce3ced0df89eaaec5b11 Mon Sep 17 00:00:00 2001 From: Github Actions Date: Thu, 5 Sep 2024 15:29:15 +0000 Subject: [PATCH 137/437] Automatic bundle update --- core/assets/bundles/bundle_be.properties | 2 ++ core/assets/bundles/bundle_bg.properties | 2 ++ core/assets/bundles/bundle_ca.properties | 2 ++ core/assets/bundles/bundle_cs.properties | 2 ++ core/assets/bundles/bundle_da.properties | 2 ++ core/assets/bundles/bundle_de.properties | 2 ++ core/assets/bundles/bundle_es.properties | 2 ++ core/assets/bundles/bundle_et.properties | 2 ++ core/assets/bundles/bundle_eu.properties | 2 ++ core/assets/bundles/bundle_fi.properties | 2 ++ core/assets/bundles/bundle_fil.properties | 2 ++ core/assets/bundles/bundle_fr.properties | 2 ++ core/assets/bundles/bundle_hu.properties | 2 ++ core/assets/bundles/bundle_id_ID.properties | 2 ++ core/assets/bundles/bundle_it.properties | 2 ++ core/assets/bundles/bundle_ja.properties | 2 ++ core/assets/bundles/bundle_ko.properties | 2 ++ core/assets/bundles/bundle_lt.properties | 2 ++ core/assets/bundles/bundle_nl.properties | 2 ++ core/assets/bundles/bundle_nl_BE.properties | 2 ++ core/assets/bundles/bundle_pl.properties | 2 ++ core/assets/bundles/bundle_pt_BR.properties | 2 ++ core/assets/bundles/bundle_pt_PT.properties | 2 ++ core/assets/bundles/bundle_ro.properties | 2 ++ core/assets/bundles/bundle_ru.properties | 2 ++ core/assets/bundles/bundle_sr.properties | 2 ++ core/assets/bundles/bundle_sv.properties | 2 ++ core/assets/bundles/bundle_th.properties | 2 ++ core/assets/bundles/bundle_tk.properties | 2 ++ core/assets/bundles/bundle_tr.properties | 2 ++ core/assets/bundles/bundle_uk_UA.properties | 2 ++ core/assets/bundles/bundle_vi.properties | 2 ++ core/assets/bundles/bundle_zh_CN.properties | 2 ++ core/assets/bundles/bundle_zh_TW.properties | 2 ++ 34 files changed, 68 insertions(+) diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties index e2c8ba9ce9..b41f75efc9 100644 --- a/core/assets/bundles/bundle_be.properties +++ b/core/assets/bundles/bundle_be.properties @@ -796,6 +796,7 @@ sector.biomassFacility.name = Аб'ект Сінтэзу Біямасы sector.windsweptIslands.name = Абветраныя Астравы sector.extractionOutpost.name = Здабвываючы Фарпост sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Планетарны Пускавы Тэрмінал sector.coastline.name = Берагавая Лінія sector.navalFortress.name = Марская Крэпасць @@ -819,6 +820,7 @@ sector.planetaryTerminal.description = The final target.\n\nThis coastal base co sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = Пачатак sector.aegis.name = Ахова sector.lake.name = Рака diff --git a/core/assets/bundles/bundle_bg.properties b/core/assets/bundles/bundle_bg.properties index 7eef226ede..af1ddc4aad 100644 --- a/core/assets/bundles/bundle_bg.properties +++ b/core/assets/bundles/bundle_bg.properties @@ -805,6 +805,7 @@ sector.biomassFacility.name = Биосинтезиращо Съоръжение sector.windsweptIslands.name = Ветровитите Острови sector.extractionOutpost.name = Добивен лагер sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Терминал за космически мисии sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -828,6 +829,7 @@ sector.planetaryTerminal.description = Крайна цел.\n\nТази край sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_ca.properties b/core/assets/bundles/bundle_ca.properties index a49b12ca15..da7897be0b 100644 --- a/core/assets/bundles/bundle_ca.properties +++ b/core/assets/bundles/bundle_ca.properties @@ -809,6 +809,7 @@ sector.biomassFacility.name = Centre de síntesi de biomassa sector.windsweptIslands.name = Les illes escombrades pel vent sector.extractionOutpost.name = Post avançat d’extracció sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Terminal de llançament interplanetari sector.coastline.name = Línia de costa sector.navalFortress.name = Fortalesa naval @@ -832,6 +833,7 @@ sector.planetaryTerminal.description = L’objectiu final.\n\nAquesta base coste sector.coastline.description = S’han detectat restes de tecnologia naval a prop. Repel·liu els atacs enemics, captureu el sector i aconseguiu la tecnologia. sector.navalFortress.description = L’enemic ha establert una base en una illa distant amb defenses geològiques naturals. Destruïu el post avançat i aconseguiu i investigueu les seves tecnologies navals avançades. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = El principi sector.aegis.name = L’ègida diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index 3de90b7a2f..ff886b4edf 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -807,6 +807,7 @@ sector.biomassFacility.name = Zařízení pro syntézu biomasy sector.windsweptIslands.name = Větrné ostrovy sector.extractionOutpost.name = Extrakční základna sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Planetární odpalovací terminál sector.coastline.name = Pobřežní čára sector.navalFortress.name = Námořní pevnost @@ -830,6 +831,7 @@ sector.planetaryTerminal.description = Konečný cíl.\n\nTato pobřežní zákl sector.coastline.description = V této lokaci byly objeveny pozůstatky techniky námořních jednotek. Odražte nepřátelské útoky, dobijte tento sektor a získejte technologii. sector.navalFortress.description = Nepřítel si vybudoval základnu na odlehlém, přírodou opevněném ostrově. Zničte tuto základnu. Získejte jejich pokročilou technologii námořních plavidel a vyzkoumejte ji. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = Nástup sector.aegis.name = Aegis sector.lake.name = Jezero diff --git a/core/assets/bundles/bundle_da.properties b/core/assets/bundles/bundle_da.properties index 10d1b38a19..355639616a 100644 --- a/core/assets/bundles/bundle_da.properties +++ b/core/assets/bundles/bundle_da.properties @@ -797,6 +797,7 @@ sector.biomassFacility.name = Biomass Synthesis Facility sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -820,6 +821,7 @@ sector.planetaryTerminal.description = The final target.\n\nThis coastal base co sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index 780c1574ee..56af342974 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -817,6 +817,7 @@ sector.biomassFacility.name = Biomassensyntheselabor sector.windsweptIslands.name = Windgepeitschte Inseln sector.extractionOutpost.name = Extraktionsaußenposten sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Planetares Launchterminal sector.coastline.name = Küstenlinie sector.navalFortress.name = Wasserfestung @@ -840,6 +841,7 @@ sector.planetaryTerminal.description = Das Endziel.\n\nDiese Uferbasis besitzt e sector.coastline.description = Überreste alter Schiffstechnologien wurden hier entdeckt. Wehre dich gegen die gegnischen Angriffe, erobere den Sektor und erforsche diese Technologie. sector.navalFortress.description = Der Gegner hat auf einer abgelegenen, von Natur aus sicheren Insel eine Basis aufgebaut. Zerstöre diesen Außenposten. Finde deren fortgeschrittene Schiffstechnologien und erforsche diese weiter. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = Der Anfang sector.aegis.name = Aegis diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index 4ec7e82b6c..58a8196c8c 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -813,6 +813,7 @@ sector.biomassFacility.name = Centro de Sintetización de Biomasa sector.windsweptIslands.name = Islas Windswept sector.extractionOutpost.name = Puesto avanzado de Extracción sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Terminal de Lanzamiento Interplanetario sector.coastline.name = Ruta Costera sector.navalFortress.name = Fortaleza Naval @@ -836,6 +837,7 @@ sector.planetaryTerminal.description = El objetivo final.\n\nEsta base costera a sector.coastline.description = Se han detectado restos de tecnología de unidades navales en esta ubicación. Repele los ataques enemigos, captura este sector, y consigue esa tecnología. sector.navalFortress.description = El enemigo ha establecido una base en una remota isla naturalmente fortificada. Destruye este puesto de avanzada. Hazte con su tecnología naval avanzada, e investígala. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = El Inicio sector.aegis.name = Égida diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties index e9c8ab209d..4377ccd1a5 100644 --- a/core/assets/bundles/bundle_et.properties +++ b/core/assets/bundles/bundle_et.properties @@ -797,6 +797,7 @@ sector.biomassFacility.name = Biomass Synthesis Facility sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -820,6 +821,7 @@ sector.planetaryTerminal.description = The final target.\n\nThis coastal base co sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties index 17b3fddb01..de6448193e 100644 --- a/core/assets/bundles/bundle_eu.properties +++ b/core/assets/bundles/bundle_eu.properties @@ -799,6 +799,7 @@ sector.biomassFacility.name = Biomass Synthesis Facility sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -822,6 +823,7 @@ sector.planetaryTerminal.description = The final target.\n\nThis coastal base co sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties index 291913d118..25f27aa470 100644 --- a/core/assets/bundles/bundle_fi.properties +++ b/core/assets/bundles/bundle_fi.properties @@ -797,6 +797,7 @@ sector.biomassFacility.name = Biomassasynteesilaitos sector.windsweptIslands.name = Tuulenpieksemät saaret sector.extractionOutpost.name = Kaivostukikohta sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Planetaarinen laukaisuterminaali sector.coastline.name = Rantaviiva sector.navalFortress.name = Laivastolinnoitus @@ -820,6 +821,7 @@ sector.planetaryTerminal.description = Viimeinen kohde.\n\nTämä rannikkotukiko sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = Alku sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_fil.properties b/core/assets/bundles/bundle_fil.properties index cbaec38d22..3ca24199ba 100644 --- a/core/assets/bundles/bundle_fil.properties +++ b/core/assets/bundles/bundle_fil.properties @@ -797,6 +797,7 @@ sector.biomassFacility.name = Biomass Synthesis Facility sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -820,6 +821,7 @@ sector.planetaryTerminal.description = Ang huling target.\n\nAng coastal base na sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index 8d95950cdd..3f4628da56 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -820,6 +820,7 @@ sector.biomassFacility.name = Biomass Synthesis Facility sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -843,6 +844,7 @@ sector.planetaryTerminal.description = La cible finale.\n\nCette base côtière sector.coastline.description = Des restes d’unités navales ont été détectés à cet endroit. Repoussez les attaques ennemies, capturez ce secteur, et obtenez cette technologie. sector.navalFortress.description = L’ennemi a établi une base sur une île isolée, avec des défenses naturelles. Détruisez cet avant-poste. Acquérez leur technologie navale avancée. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index a3b2581070..4d94fba6f7 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -822,6 +822,7 @@ sector.biomassFacility.name = Biomassza szintetizáló létesítmény sector.windsweptIslands.name = Szélfútta szigetek sector.extractionOutpost.name = Kivonási helyőrség sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Bolygó körüli kilövőállás sector.coastline.name = Partvonal sector.navalFortress.name = Haditengerészeti erőd @@ -845,6 +846,7 @@ sector.planetaryTerminal.description = A végső célpont.\n\nEzen a vízparti b sector.coastline.description = Ezen a helyen egy haditengerészeti egység technológiájának maradványait azonosították. Verd vissza az ellenséges támadásokat, foglald el ezt a szektort, és szerezd meg a technológiát. sector.navalFortress.description = Az ellenség bázist létesített egy távoli, természetes erődítményes szigeten. Pusztítsd el ezt az előőrsöt. Szerezd meg a fejlett hadihajó-technológiájukat, és fejleszd ki te is. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = A kezdet sector.aegis.name = Égisz diff --git a/core/assets/bundles/bundle_id_ID.properties b/core/assets/bundles/bundle_id_ID.properties index a8f2bc2864..188886533e 100644 --- a/core/assets/bundles/bundle_id_ID.properties +++ b/core/assets/bundles/bundle_id_ID.properties @@ -822,6 +822,7 @@ sector.biomassFacility.name = Pabrik Sintesis Biomassa sector.windsweptIslands.name = Pulau Bersemilir sector.extractionOutpost.name = Pos Ekstraksi Terdepan sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Pusat Peluncuran Planet sector.coastline.name = Tepi Pantai sector.navalFortress.name = Benteng Laut @@ -845,6 +846,7 @@ sector.planetaryTerminal.description = Target terakhir.\n\nMarkas pesisir pantai sector.coastline.description = Sisa-sisa teknologi Unit Laut telah terdeteksi di lokasi ini. Tolak serangan musuh, rebut sektor ini, dan dapatkan teknologinya. sector.navalFortress.description = Musuh telah mendirikan markas di sebuah pulau terpencil, dibentengi secara alami. Hancurkan pangkalan ini. Dapatkan teknologi Unit Laut mereka yang canggih, dan telitilah sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = Serangan Awal sector.aegis.name = Aegis diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties index d1c9f9dbcd..cee1591247 100644 --- a/core/assets/bundles/bundle_it.properties +++ b/core/assets/bundles/bundle_it.properties @@ -803,6 +803,7 @@ sector.biomassFacility.name = Struttura di Sintesi di Biomassa sector.windsweptIslands.name = Isole Ventose sector.extractionOutpost.name = Avamposto di Estrazione Mineraria sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Terminale di Lancio Planetario sector.coastline.name = Coastline sector.navalFortress.name = Fortezza navale @@ -826,6 +827,7 @@ sector.planetaryTerminal.description = Il bersaglio finale.\n\nQuesta base costi sector.coastline.description = In questo settore sono stati rilevati resti di tecnologia di unità navali. Respingi gli attacchi nemici, cattura il settore e acquisisci la tecnologia. sector.navalFortress.description = Il nemico ha stabilito una base su un'isola remota e fortificata naturalmente. Distruggi questo avamposto. Acquisisci la loro tecnologia navale avanzata e fate ricerche. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Nome diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index 2e661b7fd4..13021e768e 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -807,6 +807,7 @@ sector.biomassFacility.name = バイオマス研究施設 sector.windsweptIslands.name = 吹きさらしの列島 sector.extractionOutpost.name = 資源搬出前哨基地 sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = 惑星間発射ターミナル sector.coastline.name = 海岸線 sector.navalFortress.name = 海軍要塞 @@ -830,6 +831,7 @@ sector.planetaryTerminal.description = 最終目標です。\n\nこの沿岸基 sector.coastline.description = ここで、海軍の技術の残骸が発見されました。\n敵の攻撃を退け、占領し、その技術を獲得しましょう。 sector.navalFortress.description = 敵は、自然要塞化した離島に基地を設けています。この前哨基地を破壊しましょう。\n彼らの高度な艦艇技術を入手し、研究しましょう。 sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = オンセット sector.aegis.name = イージス sector.lake.name = レイク diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index dd10547cd4..515240d96b 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -808,6 +808,7 @@ sector.biomassFacility.name = 유기물 합성 시설 sector.windsweptIslands.name = 폭풍의 격전지 sector.extractionOutpost.name = 자원 추출기지 sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = 대행성 출격단지 sector.coastline.name = 해안선 sector.navalFortress.name = 해군 요새 @@ -831,6 +832,7 @@ sector.planetaryTerminal.description = 이 행성에서의 마지막 전투를 sector.coastline.description = 이 장소에서 해상 기체 기술의 잔재가 발견되었습니다. 적의 공격을 격퇴하고, 이 지역을 점령하고, 기술을 습득하십시오. sector.navalFortress.description = 적은 자연적으로 요새화된 외딴 섬에 기지를 세웠습니다. 이 전초기지를 파괴하여 적의 발전된 함선 건조 기술을 습득하고 연구하십시오. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = 시작 sector.aegis.name = 보호 sector.lake.name = 호수 diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties index 64137e966b..98ee63f027 100644 --- a/core/assets/bundles/bundle_lt.properties +++ b/core/assets/bundles/bundle_lt.properties @@ -797,6 +797,7 @@ sector.biomassFacility.name = Biomass Synthesis Facility sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -820,6 +821,7 @@ sector.planetaryTerminal.description = The final target.\n\nThis coastal base co sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index 46e6293c66..eafff27fdd 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -808,6 +808,7 @@ sector.biomassFacility.name = Biomass Synthesis Facility sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Planetery Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -831,6 +832,7 @@ sector.planetaryTerminal.description = Het einddoel.\n\nDeze kustbasis bevat een sector.coastline.description = Op deze locatie zijn resten van marinetechnologie gedetecteerd. Sla de vijandelijke aanvallen af, verover deze sector en verkrijg de technologie. sector.navalFortress.description = De vijand heeft een basis gevestigd op een afgelegen, natuurlijk versterkt eiland. Vernietig deze voorpost. Verkrijg hun geavanceerde marinetechnologie en onderzoek die. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties index d417c4cdae..16e2f967ac 100644 --- a/core/assets/bundles/bundle_nl_BE.properties +++ b/core/assets/bundles/bundle_nl_BE.properties @@ -797,6 +797,7 @@ sector.biomassFacility.name = Biomass Synthesis Facility sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -820,6 +821,7 @@ sector.planetaryTerminal.description = The final target.\n\nThis coastal base co sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index 8d43ea9eb0..667a670e28 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -805,6 +805,7 @@ sector.biomassFacility.name = Obiekt Syntezy Biomasy sector.windsweptIslands.name = Wyspy Wiatru sector.extractionOutpost.name = Placówka Ekstrakcji sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Planetarny Terminal Startowy sector.coastline.name = Linia Brzegowa sector.navalFortress.name = Morska Forteca @@ -828,6 +829,7 @@ sector.planetaryTerminal.description = Ostatni cel.\n\nTa baza przybrzeżna zawi sector.coastline.description = W tej lokalizacji zostały znalezione resztki technologii jednostek morskich. Odeprzyj ataki wroga, przejmij ten sektor i zdobądź technologię. sector.navalFortress.description = Wróg założył bazę na odległej, naturalnie ufortyfikowanej wyspie. Zniszcz tę bazę. Zdobądź zaawansowaną technologię statków morskich i zbadaj ją. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = Początek sector.aegis.name = Egida diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index 146b74bf4a..2049a8f949 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -813,6 +813,7 @@ sector.biomassFacility.name = Instalação de Síntese de Biomassa sector.windsweptIslands.name = Ilhas Ventadas sector.extractionOutpost.name = Posto Avançado de Extração sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Terminal de Lançamento Planetário. sector.coastline.name = Litoral sector.navalFortress.name = Fortaleza Naval @@ -836,6 +837,7 @@ sector.planetaryTerminal.description = O último alvo.\n\nEssa base costeira con sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = O Começo sector.aegis.name = Aegis diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties index da47be4e1f..c3a5d3a6b2 100644 --- a/core/assets/bundles/bundle_pt_PT.properties +++ b/core/assets/bundles/bundle_pt_PT.properties @@ -797,6 +797,7 @@ sector.biomassFacility.name = Biomass Synthesis Facility sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -820,6 +821,7 @@ sector.planetaryTerminal.description = The final target.\n\nThis coastal base co sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_ro.properties b/core/assets/bundles/bundle_ro.properties index 1330fe70f2..77b98a508a 100644 --- a/core/assets/bundles/bundle_ro.properties +++ b/core/assets/bundles/bundle_ro.properties @@ -807,6 +807,7 @@ sector.biomassFacility.name = Facilitatea de Sinteză a Biomasei sector.windsweptIslands.name = Insulele Măturate de Vânt sector.extractionOutpost.name = Avanpostul de Extracție sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Terminalul de Lansare Planetară sector.coastline.name = Zona de Coastă sector.navalFortress.name = Fortăreața Navală @@ -830,6 +831,7 @@ sector.planetaryTerminal.description = Ținta finală.\n\nAceastă bază de coas sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index 7844448c3e..8a71c6d1e4 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -808,6 +808,7 @@ sector.biomassFacility.name = Центр исследования биомасс sector.windsweptIslands.name = Штормовой архипелаг sector.extractionOutpost.name = Добывающая база sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Планетарный пусковой терминал sector.coastline.name = Береговая линия sector.navalFortress.name = Прибрежная крепость @@ -831,6 +832,7 @@ sector.planetaryTerminal.description = Конечная цель.\n\nЭта бе sector.coastline.description = В этом месте были обнаружены остатки древней военно-морской технологии. Отбейте атаки противника, захватите этот сектор и изучите эту технологию. sector.navalFortress.description = Враг возвел базу на удаленном острове с естественными укреплениями. Уничтожьте её. Овладейте их технологией по производству кораблей и изучите ее. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = Начало sector.aegis.name = Защита diff --git a/core/assets/bundles/bundle_sr.properties b/core/assets/bundles/bundle_sr.properties index 969b09697d..c3dddff090 100644 --- a/core/assets/bundles/bundle_sr.properties +++ b/core/assets/bundles/bundle_sr.properties @@ -808,6 +808,7 @@ sector.biomassFacility.name = Biosintetičko Postrojenje sector.windsweptIslands.name = Vetrovita Ostrva sector.extractionOutpost.name = Lansirna Utvrda sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Planetarno Lansirni Terminal sector.coastline.name = Obala sector.navalFortress.name = Pomorska Tvrđava @@ -831,6 +832,7 @@ sector.planetaryTerminal.description = Krajnji cilj.\n\nOva obalska struktura im sector.coastline.description = Ostaci tehnologije pomorskih jedinica su detektovani u ovom sektoru. Odbijte neprijateljske napade, zauzmite ovaj sektor, i preuzmite tehnologiju. sector.navalFortress.description = Neprijatelj je sagradio bazu na dalekom, prirodno-formiranom ostrvu. Uništite ovu bazu. Preuzmite njihovu naprednu pomorsku tehnologiju, i izuči te je. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = Žačetak sector.aegis.name = Okrilje diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties index cb47cf30c5..cbe03b0f1d 100644 --- a/core/assets/bundles/bundle_sv.properties +++ b/core/assets/bundles/bundle_sv.properties @@ -797,6 +797,7 @@ sector.biomassFacility.name = Biomass Synthesis Facility sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -820,6 +821,7 @@ sector.planetaryTerminal.description = The final target.\n\nThis coastal base co sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index fda1a8d4af..71e3070fdc 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -808,6 +808,7 @@ sector.biomassFacility.name = สถานสังเคราะห์ชี sector.windsweptIslands.name = หมู่เกาะพหุวายุ sector.extractionOutpost.name = ด่านส่งทรัพยากร sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = ท่าปล่อยจรวดอวกาศยาน sector.coastline.name = แนวชายฝั่ง sector.navalFortress.name = ปราการแห่งวารี @@ -831,6 +832,7 @@ sector.planetaryTerminal.description = เป้าหมายสุดท้ sector.coastline.description = ถัดมาจากที่ราบเกลือ เป็นที่ตั้งของแนวชายฝั่ง พบเศษซากของเทคโนโลยียูนิตเรือที่ล้ำหน้าอยู่ในพื้นที่แห่งนี้\nขับไล่ศัตรูออกไป ยึดพื้นที่นี้มา วิจัยเทคโนโลยีนั้น sector.navalFortress.description = ศัตรูได้ตั้งฐานทัพอยู๋บนเกาะห่างไกลที่มีกำแพงธรรมชาติปกป้องฐานเอาไว้ ทำลายฐานทัพ ยึดและวิจัยเทคโนโลยีเรือรบที่ล้ำหน้านั้นมา sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = การเริ่มต้น sector.aegis.name = เกราะกำบัง diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index 6cd44cfd7c..e8f4e59a61 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -797,6 +797,7 @@ sector.biomassFacility.name = Biomass Synthesis Facility sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -820,6 +821,7 @@ sector.planetaryTerminal.description = The final target.\n\nThis coastal base co sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index 70b6dc8570..bdbb018943 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -807,6 +807,7 @@ sector.biomassFacility.name = Sentetik BioMadde Santrali sector.windsweptIslands.name = Rüzgarlı Adalar sector.extractionOutpost.name = Kazı Üssü sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Gezegenler Arası Terminal sector.coastline.name = Kıyı Şeridi sector.navalFortress.name = Deniz Kalesi @@ -830,6 +831,7 @@ sector.planetaryTerminal.description = Son aşama.\n\nBu üs, başka gezegenlere sector.coastline.description = Bu bölgede denizel birim teknoloji kalıntıları tespit edildi. Düşman saldırılarını püskürt, sektörü ele geçir ve teknolojiyi kurtar. sector.navalFortress.description = Düşman bu uzak adaya doğal olarak korunan bir üs kurmuş. Bu üssü yok et. Onların gelişmiş savaş gemisi teknolojilerini elde et ve araştır. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = Yeni Başlangıç sector.aegis.name = Siper sector.lake.name = Göletçik diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index dee565d7ed..5796ad9f4e 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -816,6 +816,7 @@ sector.biomassFacility.name = Центр дослідження синтезу sector.windsweptIslands.name = Вітряні острови sector.extractionOutpost.name = Видобувна застава sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Термінал планетарного запуску sector.coastline.name = Узбережжя sector.navalFortress.name = Морська фортеця @@ -839,6 +840,7 @@ sector.planetaryTerminal.description = Кінцева мета.\n\nЦя приб sector.coastline.description = На цьому місці виявлено залишки військово-морських одиниць. Відбийте атаки супротивника, захопіть цей сектор та заволодійте технологією. sector.navalFortress.description = Ворог створив базу на віддаленому, природно-укріпленому острові. Знищте цей форпост. Заволодійте їхніми передовими технологіями морських кораблів і дослідіть їх. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = Перший наступ sector.aegis.name = Егіда diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties index 6b96174544..d0a50f18cd 100644 --- a/core/assets/bundles/bundle_vi.properties +++ b/core/assets/bundles/bundle_vi.properties @@ -822,6 +822,7 @@ sector.biomassFacility.name = Biomass Synthesis Facility sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -845,6 +846,7 @@ sector.planetaryTerminal.description = Mục tiêu cuối cùng.\n\nCăn cứ ve sector.coastline.description = Phát hiện tàn dư công nghệ của các đơn vị hải quân tại địa điểm này. Đẩy lùi các cuộc tấn công của kẻ địch, chiếm khu vực này, và lấy công nghệ. sector.navalFortress.description = Kẻ địch đã thiết lập một căn cứ từ xa, trên đảo tự nhiên. Phá hủy tiền đồn này. Chiếm công nghệ chế tạo đơn vị hải quân tiên tiến của địch và nghiên cứu nó. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = The Onset sector.aegis.name = Aegis diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index ff3675da8f..afb13ccb75 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -817,6 +817,7 @@ sector.biomassFacility.name = 生物质合成区 sector.windsweptIslands.name = 风吹群岛 sector.extractionOutpost.name = 萃取前哨 sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = 行星发射终端 sector.coastline.name = 边际海湾 sector.navalFortress.name = 海军要塞 @@ -840,6 +841,7 @@ sector.planetaryTerminal.description = 最终目标。\n这座滨海基地有一 sector.coastline.description = 这里探测到了海军单位科技的遗迹。 击退敌人的进攻,占领区块,获取技术。 sector.navalFortress.description = 敌人在一个有天然防御屏障的偏远岛屿上建立了基地。 摧毁它,并研究高级海军科技。 sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = 始发地区 sector.aegis.name = 庇护前哨 diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index 3c0b0cb43f..298e48aca1 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -813,6 +813,7 @@ sector.biomassFacility.name = 生物質合成工廠 sector.windsweptIslands.name = 風之島 sector.extractionOutpost.name = 萃取哨站 sector.facility32m.name = Facility 32 M +sector.taintedWoods.name = Tainted Woods sector.planetaryTerminal.name = 星際發射站 sector.coastline.name = 海岸 sector.navalFortress.name = 海上要塞 @@ -836,6 +837,7 @@ sector.planetaryTerminal.description = 最終目標。\n\n這麼濱海基地具 sector.coastline.description = Remnants of naval unit technology have been detected at this location. Repel the enemy attacks, capture this sector, and acquire the technology. sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R +sector.taintedWoods.description = WIP, map submission by Stormride_R sector.onset.name = 著陸點 sector.aegis.name = 神盾 From be1dcfa6b6d13fe7d7b9934792f8f4d3ccb88ea1 Mon Sep 17 00:00:00 2001 From: PolarStar <107398572+PoIarStar@users.noreply.github.com> Date: Thu, 5 Sep 2024 19:34:18 +0300 Subject: [PATCH 138/437] Add some new Erepulo servers (#10178) --- servers_v7.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers_v7.json b/servers_v7.json index e88be60de8..6a2520b88a 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -290,7 +290,7 @@ }, { "name": "Erepulo", - "address": ["95.84.198.97:5401", "95.84.198.97:5402", "95.84.198.97:5403", "95.84.198.97:5404", "95.84.198.97:2357", "95.84.198.97:5500", "199.83.103.251"] + "address": ["95.84.198.97:5401", "95.84.198.97:5402", "95.84.198.97:5403", "95.84.198.97:5404", "95.84.198.97:2357", "95.84.198.97:5500", "199.83.103.251", "frost-heaven.ru", "frost-heaven.ru:6568", "frost-heaven.ru:6569"] }, { "name": "MineCore", From ab9c7ba36bbdbe90c72cc681c72ea97d29502dd6 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 5 Sep 2024 13:05:57 -0400 Subject: [PATCH 139/437] Fixed #10177 --- .../mindustry/entities/bullet/BulletType.java | 8 +- core/src/mindustry/game/SectorInfo.java | 2 +- core/src/mindustry/maps/SectorDamage.java | 80 ++++++------------- core/src/mindustry/type/UnitType.java | 6 +- 4 files changed, 33 insertions(+), 63 deletions(-) diff --git a/core/src/mindustry/entities/bullet/BulletType.java b/core/src/mindustry/entities/bullet/BulletType.java index 74fb8a7365..e3e025bd36 100644 --- a/core/src/mindustry/entities/bullet/BulletType.java +++ b/core/src/mindustry/entities/bullet/BulletType.java @@ -346,7 +346,7 @@ public class BulletType extends Content implements Cloneable{ return spawnUnit.estimateDps(); } - float sum = damage * (pierce ? pierceCap == -1 ? 2 : Mathf.clamp(pierceCap, 1, 2) : 1f) * splashDamage*0.75f; + float sum = (damage + splashDamage*0.75f) * (pierce ? pierceCap == -1 ? 2 : Mathf.clamp(pierceCap, 1, 2) : 1f); if(fragBullet != null && fragBullet != this){ sum += fragBullet.estimateDPS() * fragBullets / 2f; } @@ -549,7 +549,7 @@ public class BulletType extends Content implements Cloneable{ if(!fragOnHit){ createFrags(b, b.x, b.y); } - + despawnEffect.at(b.x, b.y, b.rotation(), hitColor); despawnSound.at(b); @@ -675,7 +675,7 @@ public class BulletType extends Content implements Cloneable{ } } } - + public void updateTrail(Bullet b){ if(!headless && trailLength > 0){ if(b.trail == null){ @@ -716,7 +716,7 @@ public class BulletType extends Content implements Cloneable{ if(lightRadius <= -1){ lightRadius = Math.max(18, hitSize * 5f); } - + drawSize = Math.max(drawSize, trailLength * speed * 2f); range = calculateRange(); } diff --git a/core/src/mindustry/game/SectorInfo.java b/core/src/mindustry/game/SectorInfo.java index c4ee046c6c..e0b18826fd 100644 --- a/core/src/mindustry/game/SectorInfo.java +++ b/core/src/mindustry/game/SectorInfo.java @@ -82,7 +82,7 @@ public class SectorInfo{ public transient ItemSeq lastImported = new ItemSeq(); /** Special variables for simulation. */ - public float sumHealth, sumRps, sumDps, waveHealthBase, waveHealthSlope, waveDpsBase, waveDpsSlope, bossHealth, bossDps, curEnemyHealth, curEnemyDps; + public float sumHealth, sumRps, sumDps, bossHealth, bossDps, curEnemyHealth, curEnemyDps; /** Wave where first boss shows up. */ public int bossWave = -1; diff --git a/core/src/mindustry/maps/SectorDamage.java b/core/src/mindustry/maps/SectorDamage.java index de34be2753..db7136cdae 100644 --- a/core/src/mindustry/maps/SectorDamage.java +++ b/core/src/mindustry/maps/SectorDamage.java @@ -3,12 +3,11 @@ package mindustry.maps; import arc.math.*; import arc.math.geom.*; import arc.struct.*; -import arc.util.*; import mindustry.ai.*; +import mindustry.ai.types.*; import mindustry.content.*; import mindustry.core.*; import mindustry.entities.*; -import mindustry.entities.abilities.*; import mindustry.game.*; import mindustry.gen.*; import mindustry.logic.*; @@ -22,7 +21,7 @@ import mindustry.world.blocks.storage.*; import static mindustry.Vars.*; public class SectorDamage{ - public static final int maxRetWave = 40, maxWavesSimulated = 50; + public static final int maxRetWave = 50, maxWavesSimulated = 60; //direct damage is for testing only private static final boolean rubble = true; @@ -42,7 +41,7 @@ public class SectorDamage{ return (int)getDamage(info, maxRetWave, true); } - /** @return calculated capture progress of the enemy if retWave if false, otherwise return the maximum waves survived as int. + /** @return calculated capture progress of the enemy if retWave is false, otherwise return the maximum waves survived as int. * if it survives all the waves, returns maxRetWave. */ public static float getDamage(SectorInfo info, int wavesPassed, boolean retWave){ float health = info.sumHealth; @@ -60,15 +59,29 @@ public class SectorDamage{ waveBegin = waveEnd - maxWavesSimulated; } + int groundSpawns = Math.max(spawner.countFlyerSpawns(), 1), airSpawns = Math.max(spawner.countGroundSpawns(), 1); + for(int i = waveBegin; i <= waveEnd; i++){ + float enemyDps = 0f, enemyHealth = 0f; + + for(SpawnGroup group : state.rules.spawns){ + //calculate the amount of spawn points used + //if there's a spawn position override, there is only one potential place they spawn + //assume that all overridden positions are valid, should always be true in properly designed campaign maps + int spawnCount = group.spawn != -1 ? 1 : group.type.flying ? airSpawns : groundSpawns; + + float healthMult = 1f + Mathf.clamp(group.type.armor / 20f); + StatusEffect effect = (group.effect == null ? StatusEffects.none : group.effect); + int spawned = group.getSpawned(i) * spawnCount; + if(spawned <= 0) continue; + enemyHealth += spawned * (group.getShield(i) + group.type.health * effect.healthMultiplier * healthMult); + enemyDps += spawned * group.type.dpsEstimate * effect.damageMultiplier; + } float efficiency = health / info.sumHealth; float dps = info.sumDps * efficiency; float rps = info.sumRps * efficiency; - float enemyDps = info.waveDpsBase + info.waveDpsSlope * (i); - float enemyHealth = info.waveHealthBase + info.waveHealthSlope * (i); - if(info.bossWave == i){ enemyDps += info.bossDps; enemyHealth += info.bossHealth; @@ -320,13 +333,9 @@ public class SectorDamage{ if(unit.team == state.rules.defaultTeam){ sumHealth += unit.health*healthMult + unit.shield; sumDps += unit.type.dpsEstimate; - if(Structs.find(unit.abilities, a -> a instanceof RepairFieldAbility) instanceof RepairFieldAbility h){ - sumRps += h.amount / h.reload * 60f; - } - sumRps += unit.type.weapons.sumf(w -> w.shotsPerSec() * (w.bullet.healPercent * 60f + w.bullet.healAmount)); - if(unit.canBuild()){ - //assume it rebuilds 1 block with 'standard' build cost (20) and health (50) every 2 seconds - sumRps += unit.type.buildSpeed * (60f / 20f) * (1f / 2f) * 50f; + sumRps += unit.type.weapons.sumf(w -> w.shotsPerSec() * (w.bullet.healPercent/100f * 20f + w.bullet.healAmount)); + if(unit.controller() instanceof CommandAI ai && ai.command == UnitCommand.rebuildCommand){ + sumRps += unit.type.buildSpeed * 20f; } }else{ float bossMult = unit.isBoss() ? 3f : 1f; @@ -335,41 +344,11 @@ public class SectorDamage{ } } - //calculate DPS and health for the next few waves and store in list - var reg = new LinearRegression(); - SpawnGroup bossGroup = null; - Seq waveDps = new Seq<>(), waveHealth = new Seq<>(); - int groundSpawns = Math.max(spawner.countFlyerSpawns(), 1), airSpawns = Math.max(spawner.countGroundSpawns(), 1); - - //TODO storing all this is dumb when you can just calculate it exactly from the rules... - for(int wave = state.wave; wave < state.wave + 10; wave ++){ - float sumWaveDps = 0f, sumWaveHealth = 0f; - - for(SpawnGroup group : state.rules.spawns){ - //calculate the amount of spawn points used - //if there's a spawn position override, there is only one potential place they spawn - //assume that all overridden positions are valid, should always be true in properly designed campaign maps - int spawnCount = group.spawn != -1 ? 1 : group.type.flying ? airSpawns : groundSpawns; - - float healthMult = 1f + Mathf.clamp(group.type.armor / 20f); - StatusEffect effect = (group.effect == null ? StatusEffects.none : group.effect); - int spawned = group.getSpawned(wave) * spawnCount; - //save the boss group - if(group.effect == StatusEffects.boss){ - bossGroup = group; - continue; - } - if(spawned <= 0) continue; - sumWaveHealth += spawned * (group.getShield(wave) + group.type.health * effect.healthMultiplier * healthMult); - sumWaveDps += spawned * group.type.dpsEstimate * effect.damageMultiplier; - } - waveDps.add(new Vec2(wave, sumWaveDps)); - waveHealth.add(new Vec2(wave, sumWaveHealth)); - } + SpawnGroup bossGroup = state.rules.spawns.find(s -> s.effect == StatusEffects.boss); if(bossGroup != null){ float bossMult = 1.2f; - //calculate first boss appearaance + //calculate first boss appearance for(int wave = state.wave; wave < state.wave + 60; wave++){ int spawned = bossGroup.getSpawned(wave - 1); if(spawned > 0){ @@ -382,15 +361,6 @@ public class SectorDamage{ } } - //calculate linear regression of the wave data and store it - reg.calculate(waveHealth); - info.waveHealthBase = reg.intercept; - info.waveHealthSlope = reg.slope; - - reg.calculate(waveDps); - info.waveDpsBase = reg.intercept; - info.waveDpsSlope = reg.slope; - info.sumHealth = sumHealth * 0.9f; info.sumDps = sumDps; info.sumRps = sumRps; diff --git a/core/src/mindustry/type/UnitType.java b/core/src/mindustry/type/UnitType.java index 15ed66ce9c..af3cd1b562 100644 --- a/core/src/mindustry/type/UnitType.java +++ b/core/src/mindustry/type/UnitType.java @@ -892,7 +892,7 @@ public class UnitType extends UnlockableContent implements Senseable{ //suicide enemy if(weapons.contains(w -> w.bullet.killShooter)){ //scale down DPS to be insignificant - dpsEstimate /= 25f; + dpsEstimate /= 15f; } } @@ -1313,12 +1313,12 @@ public class UnitType extends UnlockableContent implements Senseable{ Draw.reset(); } - + //...where do I put this public Color shieldColor(Unit unit){ return shieldColor == null ? unit.team.color : shieldColor; } - + public void drawMining(Unit unit){ if(!unit.mining()) return; From 5bff681096174702b71d64e87127ab5fe0e1cd32 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 5 Sep 2024 14:46:45 -0400 Subject: [PATCH 140/437] Increased max wave simulation count --- core/assets/maps/taintedWoods.msav | Bin 23963 -> 23977 bytes .../mindustry/content/SerpuloTechTree.java | 3 ++- core/src/mindustry/maps/SectorDamage.java | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/core/assets/maps/taintedWoods.msav b/core/assets/maps/taintedWoods.msav index f77ad5c488d1a325ff5f70304cdc28d00e5b6e65..e1645c822d2f2b0226f8cb74bc63aa029e7afdb2 100644 GIT binary patch delta 23714 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 rF@N3JD{G(DfAs%%`TxWCKlk_7+ { node(taintedWoods, Seq.with( new SectorComplete(biomassFacility), - new Research(Items.sporePod) + new Research(Items.sporePod), + new Research(wave) ), () -> { }); diff --git a/core/src/mindustry/maps/SectorDamage.java b/core/src/mindustry/maps/SectorDamage.java index db7136cdae..0050ecf667 100644 --- a/core/src/mindustry/maps/SectorDamage.java +++ b/core/src/mindustry/maps/SectorDamage.java @@ -21,7 +21,7 @@ import mindustry.world.blocks.storage.*; import static mindustry.Vars.*; public class SectorDamage{ - public static final int maxRetWave = 50, maxWavesSimulated = 60; + public static final int maxRetWave = 110, maxWavesSimulated = 111; //direct damage is for testing only private static final boolean rubble = true; From ac8a38d98dadeaffb00690689b65da1a2794a744 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 6 Sep 2024 15:07:54 -0400 Subject: [PATCH 141/437] Many misc sector fixes --- build.gradle | 8 ++++---- core/assets/bundles/bundle.properties | 2 +- core/assets/maps/facility32m.msav | Bin 19150 -> 18564 bytes core/assets/maps/taintedWoods.msav | Bin 23977 -> 23314 bytes core/assets/maps/tarFields.msav | Bin 17486 -> 17702 bytes core/src/mindustry/content/SectorPresets.java | 2 +- .../mindustry/content/SerpuloTechTree.java | 2 +- core/src/mindustry/content/StatusEffects.java | 8 ++++---- gradle.properties | 2 +- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/build.gradle b/build.gradle index 9bca8edb25..0a2a28b66c 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ buildscript{ return "com.github.Anuken${localArc ? "" : ".Arc"}:$name:$arcHash" } } - + repositories{ mavenLocal() mavenCentral() @@ -32,7 +32,7 @@ plugins{ allprojects{ apply plugin: 'maven-publish' - + version = project.hasProperty("packageVersion") ? project.getProperty("packageVersion") : 'release' group = 'com.github.Anuken' @@ -220,7 +220,7 @@ configure(subprojects - project(":annotations")){ tasks.withType(Javadoc){ options{ addStringOption('Xdoclint:none', '-quiet') - addStringOption('-release', '16') + addStringOption('-release', '17') encoding('UTF-8') } } @@ -253,7 +253,7 @@ project(":core"){ kapt{ javacOptions{ - option("-source", "16") + option("-source", "17") option("-target", "1.8") } } diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index cdfe2330f2..e693d051b5 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -197,7 +197,7 @@ campaign.select = Select Starting Campaign campaign.none = [lightgray]Select a planet to start on.\nThis can be switched at any time. campaign.erekir = Newer, more polished content. Mostly linear campaign progression.\n\nMore difficult. Higher quality maps and overall experience. campaign.serpulo = Older content; the classic experience. More open-ended, more content.\n\nPotentially unbalanced maps and campaign mechanics. Less polished. -completed = [accent]Completed +completed = [accent]Researched techtree = Tech Tree techtree.select = Tech Tree Selection techtree.serpulo = Serpulo diff --git a/core/assets/maps/facility32m.msav b/core/assets/maps/facility32m.msav index 0cea5d1b0a7b600e12ccf9f7bb710efe567ab2e8..a42a2deb39356620b7afe95e1890b98a2606826a 100644 GIT binary patch delta 18270 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 E07C~)a{vGU delta 18855 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 z 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 diff --git a/core/assets/maps/tarFields.msav b/core/assets/maps/tarFields.msav index 21f1c29690a88e968c4da17fc25c97adeffbd057..e5ab17c0eef682dcb5bf8a8c46661bdcc7707a82 100644 GIT binary patch delta 16424 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 z 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

nOe3Z_N=Qo<9K&N~fRA*Zn=?Rt$^t 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 { + node(plastaniumCompressor, Seq.with(new SectorComplete(windsweptIslands), new OnSector(tarFields)), () -> { node(phaseWeaver, Seq.with(new SectorComplete(tarFields)), () -> { }); diff --git a/core/src/mindustry/content/StatusEffects.java b/core/src/mindustry/content/StatusEffects.java index ff3dcf43df..1ccaabc80f 100644 --- a/core/src/mindustry/content/StatusEffects.java +++ b/core/src/mindustry/content/StatusEffects.java @@ -61,12 +61,12 @@ public class StatusEffects{ color = Pal.lightishGray; speedMultiplier = 0.4f; - init(() -> opposite(fast)); + init(() -> opposite(fast)); }}; fast = new StatusEffect("fast"){{ - color = Pal.boostTo; - speedMultiplier = 1.6f; + color = Pal.boostTo; + speedMultiplier = 1.6f; init(() -> opposite(slow)); }}; @@ -89,7 +89,7 @@ public class StatusEffects{ opposite(burning, melting); }); }}; - + muddy = new StatusEffect("muddy"){{ color = Color.valueOf("46382a"); speedMultiplier = 0.94f; diff --git a/gradle.properties b/gradle.properties index 39d5565595..0c6c42e01d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,4 +26,4 @@ org.gradle.caching=true org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.connectionTimeout=100000 android.enableR8.fullMode=false -archash=3284de5f0f +archash=29c4199b83 From e82a0580e8272f00848b41494e3f4c66bc876991 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 6 Sep 2024 15:19:26 -0400 Subject: [PATCH 142/437] Crawler targeting change / Tar field edits --- core/assets/maps/tarFields.msav | Bin 17702 -> 17712 bytes core/src/mindustry/content/UnitTypes.java | 5 +++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/core/assets/maps/tarFields.msav b/core/assets/maps/tarFields.msav index e5ab17c0eef682dcb5bf8a8c46661bdcc7707a82..4870271b18e1db4f87e2be38d8ce016554d42a90 100644 GIT binary patch delta 17531 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 delta 17505 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 diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index 1a68d3ce6f..20993b2d37 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -617,6 +617,7 @@ public class UnitTypes{ weapons.add(new Weapon(){{ shootOnDeath = true; + targetUnderBlocks = false; reload = 24f; shootCone = 180f; ejectEffect = Fx.none; @@ -2646,7 +2647,7 @@ public class UnitTypes{ width = 5f; height = 7f; lifetime = 15f; - hitSize = 4f; + hitSize = 4f; pierceCap = 3; pierce = true; pierceBuilding = true; @@ -3524,7 +3525,7 @@ public class UnitTypes{ trailWidth = 2.2f; trailLength = 7; trailChance = -1f; - + collidesAir = false; despawnEffect = Fx.none; From 96e16c98ea0c725004beccd0b6e9afa603651ccc Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 7 Sep 2024 13:24:40 -0400 Subject: [PATCH 143/437] Testing fungal pass remake (WIP) --- core/assets/maps/fungalPass.msav | Bin 12516 -> 57709 bytes core/assets/maps/tarFields.msav | Bin 17712 -> 17706 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/core/assets/maps/fungalPass.msav b/core/assets/maps/fungalPass.msav index a8ec35c1c4324e51e9846bd43dbf486bda9de94d..946381113f7320786279ef962afbc53df0964239 100644 GIT binary patch literal 57709 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 F+n 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 literal 12516 zcmb=J^Ryto8aawZSdx3-HXHZZM@8r-pX@MsOR~8+Wz0iU(VB7?@r})=4Lii zxY2M;aOT8`KUc+thMzY%y4B{vhrMTdI(m9~w3Xw}hVTD*>^@tAiNizr!!{|mO8+ki z&t`d$>-22me}jPDFV}jdXV2EpbK2A$8>*3acTef#Z)exOzOA2|cfZl)vipKNdHZ)h zzrO!r`R)mI5!`ZHqhmGV_U)|wd-UwrwbmVVte4J)ExpRQYr>tcukSJh)$QMY|CIuJ zXWZIP3~71ycGf;VI(vKkuHx6{u6=uJeS3S}qdB(wueaV{mv`FraQoF50@EZ z<4TP;zvreOzVmT+-QM(q(B#J*D&L|t4xVa$zUbnI?^6GYgJ1qS`>HL=Nb+i-i&E(R z&kY~ubx&Ruzw+yuv{%OhJxjjvN0oXXG3obNcJ==4`xbgh2jw2VHJ;hLATHnbQdf0I zkls7P39En1of~HC(zm`^>H}m<9y&vcB zlzjiYYlFjkrw6ef@4jSz)jDFfP2pljsG;CbzB0R2q1C?y?(f>kx$^IVZQJiR|0vB- zvHn|ip*Q}=0`VWc@9y%Oy|4T5@R!)%_rLD)XU*s|xfr_tV#bzt->m*VILv=t^Z2V( z$E-HJ2$!qb8p>O;yMM#?j8FO70tNToTK_%kZI$keJA3!ZnKU0eID3ZY%8%uLvew?; zTm5%w^y{mBtN-R+aejAe*S?i$KhmThhZVnnxAyE=-&xCpZ@*leDja`z+y50e_x_&C zUp2$zZtnJ1>{pg9$X~Pg&Z{qFwR?BRb59V?%g({lNZhqExLODwzH!2 zlC|R7ug;e~e4=jg)%{dE&2+zK^S96O}hRcFqd;9*&J>I8s`o=aHSH*?l z^&#%tOmE3LZl0XKucG*gP@c=gBU840t6P0iWqY2BM@jY~R$HD|cELBd&B@K@n)y3w zDId=#zty)z9oee)aVTemz5IVpc>+ z!)n31y$hbdpIA9_qptO~>mP6bp0dQk`Te@>W&64>U-x*t|MR={2?|$P^0_}UcxiKlC{{HMU6fazf?0ey%b@^~|;C68n#hX>@!;T&n zQ8oS&bZc#C;irVf3+D)ntXk`LIA6)J=ia>U${oMA@@?{D<2vcJciV1m&8NNFepJq# zfBVm#gXd@e*>m*#?LT`CpP#O<_GQkj>AIhb?(WH%Jze_Q(`A)AS$Ad$Y%!M$v|@4n zG-HZn!RF`JXW8~F*=4y{;czXtn!fyt^DFKC#tBK>?fd?R&u442uFbtfrLqgR)_%_p zJz*YIvF&im#&_>E14EfS*m}#}H=OHT@hqUAKV=1P#U3Zk6_Xj3{M^(0E16ICOiLH< z1VbN(MNzL8bmxCrJ>gP1!-*MZq)$z1e!X*n$hj+mQzqwX?1&Wk^lZtlfP&AVSNZ}j zb)FJCC6idC@v~W}-0=Hm!JRTGs^Lwa9E?~q{Tddy{Oq=Rk>SN^ezb9s&iBL%Zye`| zFO=q4DRo(qEhPNpvaD6MPuDqpT~Z>}vTK>Kl*b~+#j)yF`cyUcIM11JX2yYjYhT0J zhl~%Ut~{{eqn+Wb%ga{nDz3WZZg-WXWPjE9OUGVaw~>Dr;v9HgKx=WrgMAAFO`=!L zez?@AMR4-6b4iyTybF81?&gPoMnc`erebYnG2g{~?yZXIYYDCHx^-3RS7NGnmgBz9 zQO~a~-}QU$KR!+`Rfly8ZdoXHJMLAx^8a-IiPL#stQb)}OMd{(9mp9J1T%J8a`>}e1BaY2JE^;U56 za=jVdR*y203l^L@cIwO{G5Kp{R;Tj$d8YWZpVHa=q^o52RY%A3ZgVbOnA&n)VMi_V z^XeILR&N)G^T=#2my!;Zx0MckbLZUahtJA(R4U)u(^<%=y5Zut*^aW46SkMyUb)4$ zHLoQqQA@;O#nNYuCDu1?9$X{oteU1dH%fMDfM$Q+2g$1If%EQ_TsfD)a76FIY?tqQ zvI<-DgAThT@n$aixMtA-=_G??J@FIfNxt0J;x#8p;_#ep5pBB|9Us4Bc~SR?*X#by zz-LpE7vJVsVZ<4{Z1JU+;aS#CPRm_+MUA|`T`e&IF zS1msM?n>G3YQ`tozCM?kd{eHiIq^QktnBw(HP&ZN0mr|rZ+7QV+VJH21>^1CnMI#Q z`MP>3`Ufw15^S`i@!_tG&YLqsTJG?Nbes)7V$LhZvHjGSB^$zCEAU-9{hH6Gbm|(; zi%(0tgpIWSZfYvL7Iw)Uz^RFD@81SO?{-s{G=zE2Qy)>!d4st^!DksJR%cu)?OrZ@%<&2jdHbjGi~l_$}@hLsdX!7!K61^ z%_I^pzPuFj;X}u9ISq5BRqj_mXzaiE&ivMd_gg+pDPADm8pXU<_mub6OBV54<6k=l zmd{G_T>3RMQ~dST_Y+^6pX-}lV)|_I;bxof5B%&JjLcKcdzGE9Fx#BEDzc2nb))Iy z5{U((%kwAv+hlBJaP^Xbl>Vb5A39>sANsH$Dr%kYsr?so9y(T^+PC@Sr_MNOk4;g^ zE57tuwaGh7jF%|mQ`S#gqb0L&W#NSxZsPsRzwWvm`Y!0`p_dUW9!<1;ksz_Mm7#m? zy?K|Y}G_vKUOC)@h-R4)CxJmZmAwtMTk!|9BhyS}GfdYN`XX?notrP-$fGfq8zC9!6f zqdb41#P(8mIl}_&9S7G%Hm@rF=k`HPjq%p!P>s~86{^=(U7fp7Xs*cItsz2xW*?s3wal3I_x{%3lt62Bs)9Xv3a?jkqy7S75oKFk;y_wHLBUBDCnrbi3P&PP1uiL`u9#xt+nFF^3Q^oJTH2E6Wnxr zftDxN*_GRt7o`jRIJWNA8)h4p>sFUE%>K5Qm_2;f6u9h00l)h<-=#?0Mz`oo1J{RKKD672prbCXGE4e{CSRwvBv z^kueQ;=H5BD*P^}#3|PJt>0R~mfv1oGtS=f<~p0HeQMj@2CHr}OS*Bzc7 zIonVE*1txsC_kC!^Em$7uFjuo}cIEbi%ifo9 zzR#)LWVP{V6Q9`KF!@Te#3zZ}S-l}Q&6p#v2K-ff_Nk+DLzd68#|N7-v%6lEBz(B= z^NZp6%ddj?zx_FNuN*m;~cM+)Or`*jLk~NuVe%$ww^N&DP8+p zV%}FB?U25=3)bhbX$gPS7PYC!{60VLf#8Mv%A0FLUN5{j-LR%4YKnc>mz`T;^4~5D zvy}bKUUF!o>`%7~3SkqnVx_D_)^|%ypW}Mh{=m~!Yq`spY1MsRc%L^_wr%C7#bNI1 zn{7h<%2&+n`ZYIEctZPZxVcjvw|_y*8I#+y13(bFkrOL8}QVi{sbI zP3U?3DtTGR_2Y*XvpD8gmuKJ5c(K_cF;TnKy5**B%2SSo@!BCdO+A)V9Gc#>T&TRf zkzsbGXvs>E_KS-zD{&NE6p>ps;c&>DzGE+hg9`e+?v^ZO=iD{pPmO-*Je z^*gN_<)p9wy3j7NbXiF3|G4|h)0^_vzgV>Fvp{m{toJt+R_49bn02LKvw_r#Us6Wb zviDxkdhA^!Zf?Ke(Vktd%~yUqPR@ERX`}K@+FDlr5+mE6vhb-jvvoZ#tX18&_?$D7 z`uazGN)J<(x6Nu;bd-mq`HbIl2H_xmYhAbd{?YW;dz;g^MRykoOi*3+ zH(|Y7{K}=8H%unpToQlWN5Zu;jq#+dJa5N4agXhjH1eY2qz|)lu^M$We!G7+-17JL zUt5xT_WYHabo}Y|tSs5zrcSer@+0OS7LR z`m%4%1>9ff|b6jCaQnj;ov1>le5q#Xv_5_cNnc$T+7_G`OUI- zueGw`<`ZOp(QR-OJuCEJbw|<^*`Q5AA8b-0p>UR6hXA~>5*1gicU6j)%`C62S(!FomTdUTV zFWBM}J6$C3(b=&5zt7fw-TUy$VyScgIm}%_yWgra zj+H!aJ$)?qaKSwn+t1c3%1@R(uz&Gr+Hd~Ok3!2HOWgRwYtw17BG8rbZfJ4-{B7b# zMQxUxo|3X%EMOyxY}NML2N_zo$Satd_-{G1H)=CS=9am3QOc7&-(2DvkyX)rhhrCQ zKO0z3SmoXFFzHL!g6%SUbz2{~u@6 zPi0n2dj0>aSABcC=*;ZNmFHUwxtaupdsPiM4uJW7B?zXGXo3`ZU%hQ58G7su<3o!fmr7-jMs!c*#(>n+%C)=Grq1&?k)$Jd$5Z!i;tuOX-w+8esp6`q z9Lu--Sa)EqXm?fkuXBO-zpU7|DdXe%4sl!6;wdiv$xYJ2H}^|523`q@eqzpA?!8}k zlZ8K5L74R>*Jn?cJv%B8+C5KvhX}982IuA#u{WezCthX>&N(CeLFxVRsRnINk0woF zNp^J5IaX=dJVz(H&p@bYqt=o~kBqpQ7-vm4J?0^}?p3syw)BCs-8Y_Z`KP|K@0HcfxTtHia#F^OOUqU_iHRTWIhhet#x3(b!9%oV%B5xAi9v=pH)$%0 ziZgL5?Qh9Qck{lq;h>PzGIQN8A@_ND&siVZ$aqH}R_N%Kwi)8r-n401OgNdIl72;N z^DS>(p;F$gLQ(dP9KkD}Hjum6coqKQDT!o~2e%+BzS$?qYm2kFPn7Wm%-}d9Dvc5UfekiGz zdlv3<_0+ae6cA@xo^o#u$D>JUXMg-|(pa|qdKyPci-S}Cl#fTdPPyhzQVXj%G@&<3 zCuzxafwprU9#h2TUp{TLr{RJ(*VHA)cneb(uRC?g@1^-+N1qipY}9r4+<0@r?a`(m zrd#g@3vji4-0*W{Y^;zwx6-bj38y;E&bICB;@)ufp@vJg{(QmBTG=CD^f7lj<-)y%gt$j9Q>s;>a zzD0|kEc*7Tt02Mf&7MNt;AY2f->&2}Ono=2AYo;U>XsSbqz`9gtrS&=tRr6SE( zbJK#WeUG}(dG2GSoub)M0&IGkUF)W8l@xOcGI$dtx_7$Eb)lw2=i^H^B#7S8K6G$e z0ax4ahyuEVmc{T3+a&o%P8mq$#PJUpE5sqFETRUgc#Z7C<`EKyq`?>cl zJJMG%we8ebgE?QBir!t^lheKTW^n4UkDcF7u6%TxxAC@E<`bFq<@06k)t<}E^;-1n zU*DI%>k@2A%kDp@i~hCEW!ZhPb=z8|UvK#|X;19*i_1Ti`S%h-?yB3Sh{t!n|Nw&;lq1w_R`L8s}`@gp~aWm;N>UR9N>5A zoQljko~M!zXI_`yWMh3>H23bE<e78RNvtL0PR3o~ty^n2 z_yjjxe3~SY>vb*h{K63X3oB;@?J$jWKeOZP!9QLLbx-7pZk;-FZs*L-c{hSOz3j}} z9Jd6m&lHxI3)O7#vNTVSM}mc3tRnls*+~UBP7aAbDZ{^^iXBZ&g(rCbh7ojnE1x!EasABMrJBU zw(O3aoUmCfF~^rHHT#x_$<#R;C3}Cjy_lL_5}thK)NI}DjULXKcW-a2RnYth0SW4YIvBBIhqla-b=1#AoXwCK-CgYRA1vl%NALpL5TT{+dRxAkS@ z^t7{C4RZ4PeCOM)Jl?v$De#cG=G!QqmA8#9t~op*+T@yh!xl&5m3t39Jv`6TbB(Fk z0o}0I&c0DER2ySe?g;XUOl{G)&M>tnz_ZgsTkPW-Ixl<$@D z^kj6}46Y-s4SU7AI{BV%T`Og#vvN&F-&*$@ca+rqZn^Exy_oYUre9Ug)=$dyQdsu; z>Q9MPtIj{W7dFw4V`}BYeG2)mmDPbO=1dpW<(L|L=(Fg|$4xnpy%YVDjcr)J+s=I4 za=q(Q{Lqe@2DYcCzTLci z;x`o=-P+|TX3}fkcTV)-KEIq*PxW~`eMhW?%T#G!!Ze&TkFskTC&t@#_-FCu>MR3vDhc{PmVwK#=wvgk_CDF8C(d~=8 zPklRLx^7pT;dB$@M;d!RxW!K7R@VC~*<*RO`{Apm7}ukRrw4tWrOjL(_Cj@O9sj09 z(T5It>T(!MKlfO+q00F|*pp2s<3u)`)hSY{IlOU`>$%&LtJuY36QVaI7{^Yz{lWC@ zq0*QclbC+{Mo!aeo`2!jCXJJG9lJBzlf3Skr}9PL(9bmHNYvqIo9eAsb2%Y4PwUK+ zNg*%pPmnUIKbPnyTsTu%x#04mzHJ%PMRx2ld+y3PpY5F1*F`=1l%_o2VmR}%pPtYA z)SdGK6Wv2MPH+8ve}P?B-TYHGL+Vu+ogQ32TsNubM{u>ogI)a#(;I)v>~gzz(WA)E z`_h~D>pSx&RWq~Sm}hA@*(~F}RBM{IrP=P2r>9<6FV`m~{y#=!OMc76O-ieG7-VKM z1UG#vy%|-lxS~P$p`BXlwQr^$3(Wer7T-`VkKr-XkGofwouIF~>=4VI!<;L&XR@Cy zm?h#@ER|Qt(QJRRKwH*NQdc-kbk_GmpE*6Mrb{oLFejD-pdD3#D{h!L1a_V_`{a2pz_Y_IPH^_NtMk_EnLByMg0PpJZx+8;dGnf! zt9N2}*4~?43zoM05xP^J@5tT}C!)qZ>zw?@sG_UCBa;;M(1SH8{RJ#Sc0b$&*|=Ofod_I!|8*>St>nq*q3I9&*Z3_>K{4#jEv^Y$7^29-`nEdv{rX*VTzZ;1b<rA37<{Wrw!1(i5@N$dKisCC>H_3!?cdr)d z+m!ZJWRF2(aguTNCii*9OFt?IG%jP)v-HZiv(?M@Im-?W?RwV+(d>CTrEWax`bBlF zMN^BJCiO6Ao?fIYy8TYtl8uT7ug)zxds0%SXHCKi<(r)C%*q>5B%F1#V-3Ps4j*f9 zxpCud?&+p`i%tKTow{b0oVaC5$C0>#^WO9S8l8J|?C=h+u;^J^6Jutd@nU=MKGN!{7PzECz~JO7Cdk}NoAYe7L8jgA8;*N z-aTo_x)TScFs$#svgYy0=E6%}>qG87Z)un_iS^l$PgjoKS=BH{j$25$Jo$CD*PK(r z^F$_mR@(nYVd{i8><^~Itjn0^yt^tg$4WbUx74#&T^ea&Ce_+|{;a-LxWD<;_Ga4> z|Lx5NyXGEF7n^_j+z-{7Jhz_XA7>UEOa7trz_|UqYWg27yZER7SPmckz{&Iep>gkd z?H@J0FNI@HNuGc3d6V(Hl)A2SKSbCoc1LLDLQzZ0Ge?Go*?ql_bq9M{E ze@b(f&(s(HuVVlB4Ew?56@N9K9X@c`Mtz5D@q^BHra9^}<;CYcv0D7g@nrVgho5Zn z9)wlwWtrY0UnQ4yeRev7-M2?_UvJvme`%=PbI8d0s7ctz$PkmdrXR)y?~f_`i+BIO z>hk-CQ69A~`=__`yCq**_2pE?bn%ET*1CCe5s9;2REAHuHYt5c2#+Ucfe2qagOTy+ z%ir0T%ssyIS;g_9GlwPHr#D^7xnnrb_n(~8^s=h1a{Z%U^fsso-JNvF!1uewH3|8{ zr**OyZhUt{B9864Mc+G_%eod{{4Bma+JEGhh2%4d4!ere9EG9ZmYxwv<7@eIX#St$ z%njG=pY^3qd9~-+^PXvGes1pGm5sG(KNp-146@VX4f-P~CoUsr`)lpA!_QY8Uf#Z2 zC#dtV_m>!_b8(UfUrwm2{K0P8sqv3NQ*6qee_z)AKVl@KJ3V#DuT761b0631*Esj@ ziT?kG3+F6VUld>V!~X2XZy7c5HqmwF)n!`=S_mljWt z^~JxNGJoH{Qnz~cvUd~1ty5~=Tk!u>ma$egox11M;hYn5_WwBFZ?X8F?~)Vsji=fl zMsf>hJbMzE!{ibzTu~GvAl|0%h)Zc+!~NsWjQ;)gDE__J`I%K)-Lw|=+Z)aQC+zw2 zW`6&_i2tdAePvr0oBh_`u%9Jyxh0p`p@UMNThAXq81$&Dng5x3WNOc8FU{q}SqEPJ z`J%p`yX1fAtFQfaAE(bc(IBPvkUw5b<1<-L}?`^)(Ef3d@Z zqxqj7mGX9;+Z(v?;qw2F=WF+@aegkm%-H8=Wul!NC-bWu2hlfcJAeGUDP9+xxYqEC zX!`2z#T)+}oz9XyZ6W9DJty6jHvX%Lu2tp|7tESxsl29pm7A^5>-%Rkbyn@wEn0i@ zsFziQJomNwy^Jo;s}+bV0AN>3orG`NZrgX>VlG6%IT1@tE+A1ZR*_eB<}@&ZEL#Z+?$_uJ9XMwrqAZ9e_Sx}$vt#njdq;L zzLge}kQc_v+(%Ivp7fkn|^4e>BWEZ4m~${op);G`U!D!0!kTmi<7@I{9@BQY!KobQ&93;rT=N9nB40N zO^ch4ZR6INY%*iE+}ZZs`+6nr4{$4U!S>cW%1Dn`F+p6#24RE`OUjv{rbaiS)V;W=kR~eCE;Itg1=AZiD#+3 zZ_K)&#%bpBy~lPQ;Q7A)*pHO_C-QMmD>e4TvQ}&VQaY?#P~Z1_=dsT^8kH~qo;S*G zPJSk4`S8O=jVjin;yHZ{A1mfRyXhA5V~O%%&8O*y3ZAjux>FJV*w*&^pUN!VS@S-= z%w#`zgzr+P*Pj}k=j4MYS~KNDJz4)W<5uLh|2*&A zC;p5|-R-+W)ZzKvrQ*po!sg3v%1_)U!uG<~x?-MkzsP69j`F6zeLs~JF?{RpwCuBO z%fGZRmBCg2`GY4nW{VO(?>U}2?Wxp^ z+1tuP_MElckbWcY+RVJ3ziD%xdX!Z+=H?_bs4e|*sqT@|`iDmuXP9Kz`x&U+i!J_^ zGVP^+-cy^89A|5{$;tY!`}l9-oD=eEdM-RxnX!4#>e+{vmHW@WxBuv5-zhIu4JWv5 zEV`B0>av-~>g&nQTmNEIAGWD(kNNgl!_A@ni$#7nr?&Q+cg4!nW=KUnI=}a#@tlNH z&$z6go!N5glw5l1$yfvMNgh+G4dBMPo8dE zW%6)s()%vG$w#kzH~7_GWBhr}V}?(A@0s0r&sO{<Al;7ld(-6C7ivn@Su%fn z{g%m|H#Ye9Vw=ArmzDRZUUyw3eh3q9wy;8peXO5bPFag*O)v`{?} zVt?{u1=E|#DKGR_7a^0}i@Y2(nj1|Glb(<_#&)&RjooUQtTO-qkO_Tjo zWp?;pNY@S4H!yu0`K-|E?dN#^BPOOxElwwN{hX0#m*;cj_-9tJU~^OdM~TNK9!;^4 z>DTeeJ^W!}=?|kncUS~w8$AD)X<+X5EG+tZUy+SlbxqgtykYw^h(RiHqyk%VRwBz1uvhz2*U+`6bvySl{dtNI)oy|O%^W&dB=ecb7cfG+q zna>rIuDd4df8G^V`9|c1)a`tW+RJ<1#mg@Ud}3GYcg^%;r9pYR^@r?)*XxSc{4PoV zp}V|(-czrlKcO7gt(L3VJnpjYn0^cJceGo?q>f_eu3g#VHH_O3^o|svDQoo3RC$a6Y=>dZgkuuW68fa+TpS zzm>rsBl*6&$Id!_M#b@Z)t9@w*RI{gGqr6R`<}^FhMqSbS}?9!6DD<_|JK`+Vn>b@ z-cXscX}YQ>d*Ie1iWc4p%~@@-X(#`3Xe-sq{m?uv(edzf^Nr1i8uik|-9N}P&u*#O zl*w$**72jzf%6UjQJ%A@X167*SIuaWE^im!+4$t|zj)`Q&Lszz$(EE@9K5t(OWn5{ zTatBHUYwph<#4Cn(%0P`Hw~+2&DzppCOBuW$FiN8f-|bc64%$v^H7=M`S)z$)MtyB zpC?wotDBMd?GMZ8zjJ<=|5kji9HrWJEXLHqVRl8wev63BfV!WUHR`}&v^}I znTc9Hd&&>bk8VggW2U`%`J|tmTl0e6`t(gq?($|+Id7a$r}BemUk+1#`HZJLukUxP z*NFK$yR6<`s<__1ip4j&ps z@adzC;@%1C1&_UU{2?Q_Hh*%I+m)ZCw|+*h$rim>z2u+O{;NN4tnoh9r}8#g=Uo5f zZ9gNd4&U>x&-poL+6K$KL+2|G8tQq?&^ORjacBLy;_R)i9o4*lcgy|Wzec;}_l47+ z{`+-F8yBa&NKY1y*>L>Idd_fGHTxsaFTDTcG{tTGp~sKHr*%)?(q-;mapOf?acX|} zw~d>PHZz^~)Uxlp`MbnVYw`>&wY%{WS(7y_8SfXE{qU}OzhQP&eDLO%tGJK8%o4gB z`tYEKj*sz|)hCyoPVC`dd*tEOi5D|3UM#)$d*kn|Qj} zZ{)tQPR>45R$j$Bp+40)dAh8(e5zyen~=!joHuhOSMXcSx|h~>DxvQ4hQ$e93H$sz zxBV#$vzH0xd-!bEQ_ERR4^0lwdB(Wo$NKy?msj0C@ul)fobN#uUt-I!eyIiKmb_H&_@`nd)kl}#ru+RRfr^+T9r zZR4LmVlU#8rMx#~OHA!oQ~Uf#P`vZm{pm*WjI)Fm|NL5ht@Gx`laKGa{Ifmy)A7om zFH?Dc{=Ot={5B)*j%0epGLakkTV9mUKAODilJ5cQKlu?E@AIB5xPMhtsq8?+W1i}| z&(hY;+K(Tcx8C5LP=9#2_pe=V?4%iYzj%{1t&k&)@67wRU*=@C8O}=(e3RdqCVRuO z-LLEA&jm;DdGQHwx-2fFO`=qKlo3rfbGrx=MMK5T+H8buHm1U?z0o8W$k&N z-DlW*KRY&Q&*u+)BB{K8v`!nC8Th^4d+4>{eY5zq9Xg+@r#?5{?`ihm?5NoHc-GIc XvKzL}UNq;q#N|Jbo&ngB`^L$ diff --git a/core/assets/maps/tarFields.msav b/core/assets/maps/tarFields.msav index 4870271b18e1db4f87e2be38d8ce016554d42a90..36d33eb11ce8f6c68e52431f9c6e78920ec53653 100644 GIT binary patch delta 16817 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 Ve$oH;B=~jxnfw3QG!92L001GzRi^*| delta 16903 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 z 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 Date: Sat, 7 Sep 2024 14:18:58 -0400 Subject: [PATCH 144/437] Rollback fungal pass --- core/assets/maps/fungalPass.msav | Bin 57709 -> 12516 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/core/assets/maps/fungalPass.msav b/core/assets/maps/fungalPass.msav index 946381113f7320786279ef962afbc53df0964239..a8ec35c1c4324e51e9846bd43dbf486bda9de94d 100644 GIT binary patch literal 12516 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 XvKzL}UNq;q#N|Jbo&ngB`^L$ literal 57709 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 F+n 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 From eb64cc3c3bf82ba95d78486a237a1785bcf80108 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 8 Sep 2024 09:26:46 -0400 Subject: [PATCH 145/437] Testing second fungal pass submission --- core/assets/maps/fungalPass.msav | Bin 12516 -> 16758 bytes gradle.properties | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/core/assets/maps/fungalPass.msav b/core/assets/maps/fungalPass.msav index a8ec35c1c4324e51e9846bd43dbf486bda9de94d..f7e6f07b2d40e05f8c1d30c83799642f3f1e05d6 100644 GIT binary patch literal 16758 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 N*gfSx|Kh$A0syH2{3-wd literal 12516 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 XvKzL}UNq;q#N|Jbo&ngB`^L$ diff --git a/gradle.properties b/gradle.properties index 0c6c42e01d..7e507f48ef 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,4 +26,4 @@ org.gradle.caching=true org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.connectionTimeout=100000 android.enableR8.fullMode=false -archash=29c4199b83 +archash=8073823706 From a2e433234b54ebb31e50e8efbb69d0650ce796a0 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 8 Sep 2024 12:17:13 -0400 Subject: [PATCH 146/437] WIP fungal pass changes --- core/assets/maps/fungalPass.msav | Bin 16758 -> 16573 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/core/assets/maps/fungalPass.msav b/core/assets/maps/fungalPass.msav index f7e6f07b2d40e05f8c1d30c83799642f3f1e05d6..71b5e10861fbd797012b82a1807b5afe6596a5cf 100644 GIT binary patch literal 16573 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 N*gfSx|Kh$A0syH2{3-wd From 277e4fa553d8dda5fb0757f16290360c8131aa33 Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 9 Sep 2024 13:13:09 -0400 Subject: [PATCH 147/437] Pannable wave graph --- core/src/mindustry/editor/WaveGraph.java | 139 +++++++++++++++--- core/src/mindustry/editor/WaveInfoDialog.java | 63 -------- 2 files changed, 115 insertions(+), 87 deletions(-) diff --git a/core/src/mindustry/editor/WaveGraph.java b/core/src/mindustry/editor/WaveGraph.java index 2d64af5be9..8b5e2abae7 100644 --- a/core/src/mindustry/editor/WaveGraph.java +++ b/core/src/mindustry/editor/WaveGraph.java @@ -3,8 +3,11 @@ package mindustry.editor; import arc.*; import arc.graphics.*; import arc.graphics.g2d.*; +import arc.input.*; import arc.math.*; import arc.math.geom.*; +import arc.scene.*; +import arc.scene.event.*; import arc.scene.ui.*; import arc.scene.ui.layout.*; import arc.struct.*; @@ -19,7 +22,6 @@ import mindustry.ui.*; public class WaveGraph extends Table{ public Seq groups = new Seq<>(); - public int from = 0, to = 20; private Mode mode = Mode.counts; private int[][] values; @@ -30,9 +32,52 @@ public class WaveGraph extends Table{ private ObjectSet hidden = new ObjectSet<>(); private StringBuilder countStr = new StringBuilder(); + private float pan; + private float zoom = 1f; + private int from = 0, to = 20; + private int lastFrom = -1, lastTo = -1; + private float lastZoom = -1f; + + private float defaultSpace = Scl.scl(40f); + private FloatSeq points = new FloatSeq(40); + public WaveGraph(){ background(Tex.pane); + scrolled((scroll) -> { + zoom -= scroll * 2f / 10f * zoom; + clampZoom(); + }); + + touchable = Touchable.enabled; + addListener(new InputListener(){ + + @Override + public void enter(InputEvent event, float x, float y, int pointer, Element fromActor){ + requestScroll(); + } + }); + + addListener(new ElementGestureListener(){ + @Override + public void pan(InputEvent event, float x, float y, float deltaX, float deltaY){ + pan -= deltaX/zoom; + } + + @Override + public void zoom(InputEvent event, float initialDistance, float distance){ + if(lastZoom < 0) lastZoom = zoom; + + zoom = distance / initialDistance * lastZoom; + clampZoom(); + } + + @Override + public void touchUp(InputEvent event, float x, float y, int pointer, KeyCode button){ + lastZoom = zoom; + } + }); + rect((x, y, width, height) -> { Lines.stroke(Scl.scl(3f)); countStr.setLength(0); @@ -42,39 +87,57 @@ public class WaveGraph extends Table{ GlyphLayout lay = Pools.obtain(GlyphLayout.class, GlyphLayout::new); Font font = Fonts.outline; - lay.setText(font, "1"); - int maxY = switch(mode){ case counts -> nextStep(max); case health -> nextStep((int)maxHealth); case totals -> nextStep(maxTotal); }; + lay.setText(font, maxY + ""); + + float spacing = zoom * defaultSpace; + pan = Math.max(pan, (width/2f)/zoom-defaultSpace); + float fh = lay.height; - float offsetX = Scl.scl(lay.width * (maxY + "").length() * 2), offsetY = Scl.scl(22f) + fh + Scl.scl(5f); + float offsetX = lay.width, offsetY = Scl.scl(22f) + fh + Scl.scl(5f); + float graphX = x + offsetX - pan * zoom + width/2f, graphY = y + offsetY, graphW = width - offsetX, graphH = height - offsetY; - float graphX = x + offsetX, graphY = y + offsetY, graphW = width - offsetX, graphH = height - offsetY; - float spacing = graphW / (values.length - 1); + float left = (x-graphX)/spacing, right = (x + width - graphX)/spacing; - int selcol = Rect.contains(x, y, width, height, mouse.x, mouse.y) ? Mathf.round((mouse.x - graphX) / spacing) : -1; + //int radius = Mathf.ceil(graphW / spacing / 2f); + + from = (int)left - 1; + to = (int)right + 1; + + if(lastFrom != from || lastTo != to){ + rebuild(); + } + + lastFrom = from; + lastTo = to; + + if(!clipBegin(x + offsetX, y + offsetY, graphW, graphH)) return; + + int selcol = Rect.contains(x, y, width, height, mouse.x, mouse.y) ? Mathf.round((mouse.x - graphX - (from * spacing)) / spacing) : -1; + if(selcol + from <= -1) selcol = -1; if(mode == Mode.counts){ for(UnitType type : used.orderedItems()){ Draw.color(color(type)); Draw.alpha(parentAlpha); - Lines.beginLine(); + beginLine(); for(int i = 0; i < values.length; i++){ int val = values[i][type.id]; - float cx = graphX + i * spacing, cy = graphY + val * graphH / maxY; - Lines.linePoint(cx, cy); + float cx = graphX + (i+from) * spacing, cy = graphY + val * graphH / maxY; + linePoint(cx, cy); } - Lines.endLine(); + endLine(); } }else if(mode == Mode.totals){ - Lines.beginLine(); + beginLine(); Draw.color(Pal.accent); for(int i = 0; i < values.length; i++){ @@ -83,13 +146,13 @@ public class WaveGraph extends Table{ sum += values[i][type.id]; } - float cx = graphX + i * spacing, cy = graphY + sum * graphH / maxY; - Lines.linePoint(cx, cy); + float cx = graphX + (i+from) * spacing, cy = graphY + sum * graphH / maxY; + linePoint(cx, cy); } - Lines.endLine(); + endLine(); }else if(mode == Mode.health){ - Lines.beginLine(); + beginLine(); Draw.color(Pal.health); for(int i = 0; i < values.length; i++){ @@ -98,17 +161,17 @@ public class WaveGraph extends Table{ sum += (type.health) * values[i][type.id]; } - float cx = graphX + i * spacing, cy = graphY + sum * graphH / maxY; - Lines.linePoint(cx, cy); + float cx = graphX + (i+from) * spacing, cy = graphY + sum * graphH / maxY; + linePoint(cx, cy); } - Lines.endLine(); + endLine(); } if(selcol >= 0 && selcol < values.length){ Draw.color(1f, 0f, 0f, 0.2f); - Fill.crect(selcol * spacing + graphX - spacing/2f, graphY, spacing, graphH); + Fill.crect((selcol+from) * spacing + graphX - spacing/2f, graphY, spacing, graphH); Draw.color(); font.getData().setScale(1.5f); for(UnitType type : used.orderedItems()){ @@ -118,10 +181,12 @@ public class WaveGraph extends Table{ } } float pad = Scl.scl(5f); - font.draw(countStr, selcol * spacing + graphX - spacing/2f + pad, graphY + graphH - pad); + font.draw(countStr, (selcol+from) * spacing + graphX - spacing/2f + pad, graphY + graphH - pad); font.getData().setScale(1f); } + clipEnd(); + //how many numbers can fit here float totalMarks = Mathf.clamp(maxY, 1, 10); @@ -131,7 +196,7 @@ public class WaveGraph extends Table{ Draw.alpha(0.1f); for(int i = 0; i < maxY; i += markSpace){ - float cy = graphY + i * graphH / maxY, cx = graphX; + float cy = graphY + i * graphH / maxY, cx = offsetX + x; Lines.line(cx, cy, cx + graphW, cy); @@ -145,9 +210,11 @@ public class WaveGraph extends Table{ font.setColor(Color.lightGray); for(int i = 0; i < values.length; i++){ - float cy = y + fh, cx = graphX + graphW / (values.length - 1) * i; + float cy = y + fh, cx = graphX + spacing * (i + from); - Lines.line(cx, cy, cx, cy + len); + if(cx >= x + offsetX && cx <= x + offsetX + graphW){ + Lines.line(cx, cy, cx, cy + len); + } if(i == selcol){ font.draw("" + (i + from + 1), cx, cy - Scl.scl(2f), Align.center); } @@ -177,6 +244,28 @@ public class WaveGraph extends Table{ }).growX(); } + private void clampZoom(){ + zoom = Mathf.clamp(zoom, 0.5f / Scl.scl(1f), 40f / Scl.scl(1f)); + } + + private void linePoint(float x, float y){ + points.add(x, y); + } + + private void beginLine(){ + points.clear(); + } + + private void endLine(){ + var items = points.items; + for(int i = 0; i < points.size - 2; i += 2){ + Lines.line(items[i], items[i + 1], items[i + 2], items[i + 3], false); + Fill.circle(items[i], items[i + 1], Lines.getStroke()/2f); + } + Fill.circle(items[points.size - 2], items[points.size - 1], Lines.getStroke()); + points.clear(); + } + public void rebuild(){ values = new int[to - from + 1][Vars.content.units().size]; used.clear(); @@ -237,6 +326,8 @@ public class WaveGraph extends Table{ } }).scrollY(false); + colors.act(0.000001f); + for(UnitType type : hidden){ used.remove(type); } diff --git a/core/src/mindustry/editor/WaveInfoDialog.java b/core/src/mindustry/editor/WaveInfoDialog.java index e99008e54e..818a31844a 100644 --- a/core/src/mindustry/editor/WaveInfoDialog.java +++ b/core/src/mindustry/editor/WaveInfoDialog.java @@ -6,7 +6,6 @@ import arc.graphics.*; import arc.input.*; import arc.math.*; import arc.math.geom.*; -import arc.scene.*; import arc.scene.event.*; import arc.scene.style.*; import arc.scene.ui.*; @@ -28,7 +27,6 @@ import static mindustry.Vars.*; import static mindustry.game.SpawnGroup.*; public class WaveInfoDialog extends BaseDialog{ - private int start = 0, displayed = 20; Seq groups = new Seq<>(); private @Nullable SpawnGroup expandedGroup; @@ -37,7 +35,6 @@ public class WaveInfoDialog extends BaseDialog{ private @Nullable UnitType filterType; private Sort sort = Sort.begin; private boolean reverseSort = false; - private float updateTimer, updatePeriod = 1f; private boolean checkedSpawns; private WaveGraph graph = new WaveGraph(); @@ -94,30 +91,6 @@ public class WaveInfoDialog extends BaseDialog{ dialog.show(); }).size(250f, 64f); - buttons.defaults().width(60f); - - buttons.button("<", () -> {}).update(t -> { - if(t.getClickListener().isPressed()){ - shift(-1); - } - }); - buttons.button(">", () -> {}).update(t -> { - if(t.getClickListener().isPressed()){ - shift(1); - } - }); - - buttons.button("-", () -> {}).update(t -> { - if(t.getClickListener().isPressed()){ - view(-1); - } - }); - buttons.button("+", () -> {}).update(t -> { - if(t.getClickListener().isPressed()){ - view(1); - } - }); - if(experimental){ buttons.button(Core.bundle.get("waves.random"), Icon.refresh, () -> { groups.clear(); @@ -127,26 +100,6 @@ public class WaveInfoDialog extends BaseDialog{ } } - void view(int amount){ - updateTimer += Time.delta; - if(updateTimer >= updatePeriod){ - displayed += amount; - if(displayed < 5) displayed = 5; - updateTimer = 0f; - updateWaves(); - } - } - - void shift(int amount){ - updateTimer += Time.delta; - if(updateTimer >= updatePeriod){ - start += amount; - if(start < 0) start = 0; - updateTimer = 0f; - updateWaves(); - } - } - void setup(){ groups = JsonIO.copy(state.rules.spawns.isEmpty() ? waves.get() : state.rules.spawns); if(groups == null) groups = new Seq<>(); @@ -157,7 +110,6 @@ public class WaveInfoDialog extends BaseDialog{ s.image(Icon.zoom).padRight(8); s.field(search < 0 ? "" : (search + 1) + "", TextFieldFilter.digitsOnly, text -> { search = groups.any() ? Strings.parseInt(text, 0) - 1 : -1; - start = Math.max(search - (displayed / 2) - (displayed % 2), 0); buildGroups(); }).growX().maxTextLength(8).get().setMessageText("@waves.search"); s.button(Icon.units, Styles.emptyi, () -> showUnits(type -> filterType = type, true)).size(46f).tooltip("@waves.filter") @@ -202,19 +154,6 @@ public class WaveInfoDialog extends BaseDialog{ cont.add(graph = new WaveGraph()).grow(); - graph.scrolled((scroll) -> { - view(Mathf.sign(scroll)); - }); - - graph.touchable = Touchable.enabled; - graph.addListener(new InputListener(){ - - @Override - public void enter(InputEvent event, float x, float y, int pointer, Element fromActor){ - graph.requestScroll(); - } - }); - buildGroups(); } @@ -507,8 +446,6 @@ public class WaveInfoDialog extends BaseDialog{ void updateWaves(){ graph.groups = groups; - graph.from = start; - graph.to = start + displayed; graph.rebuild(); } } \ No newline at end of file From 7784c8f35e79deb09339c4c06af25feaf6fefdb5 Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 9 Sep 2024 13:58:04 -0400 Subject: [PATCH 148/437] Cleanup --- core/src/mindustry/ai/types/CommandAI.java | 48 ---------------------- core/src/mindustry/game/CampaignRules.java | 6 +++ 2 files changed, 6 insertions(+), 48 deletions(-) create mode 100644 core/src/mindustry/game/CampaignRules.java diff --git a/core/src/mindustry/ai/types/CommandAI.java b/core/src/mindustry/ai/types/CommandAI.java index 763916539a..0a90db901d 100644 --- a/core/src/mindustry/ai/types/CommandAI.java +++ b/core/src/mindustry/ai/types/CommandAI.java @@ -445,52 +445,4 @@ public class CommandAI extends AIController{ this.stopAtTarget = stopAtTarget; } - /* - - //TODO ひどい - (does not work) - - public static float cohesionScl = 0.3f; - public static float cohesionRad = 3f, separationRad = 1.1f, separationScl = 1f, flockMult = 0.5f; - - Vec2 calculateFlock(){ - if(local.isEmpty()) return flockVec.setZero(); - - flockVec.setZero(); - separation.setZero(); - cohesion.setZero(); - massCenter.set(unit); - - float rad = unit.hitSize; - float sepDst = rad * separationRad, cohDst = rad * cohesionRad; - - //"cohesed" isn't even a word smh - int separated = 0, cohesed = 1; - - for(var other : local){ - float dst = other.dst(unit); - if(dst < sepDst){ - separation.add(Tmp.v1.set(unit).sub(other).scl(1f / sepDst)); - separated ++; - } - - if(dst < cohDst){ - massCenter.add(other); - cohesed ++; - } - } - - if(separated > 0){ - separation.scl(1f / separated); - flockVec.add(separation.scl(separationScl)); - } - - if(cohesed > 1){ - massCenter.scl(1f / cohesed); - flockVec.add(Tmp.v1.set(massCenter).sub(unit).limit(cohesionScl * unit.type.speed)); - //seek mass center? - } - - return flockVec; - }*/ } diff --git a/core/src/mindustry/game/CampaignRules.java b/core/src/mindustry/game/CampaignRules.java new file mode 100644 index 0000000000..32fec76cec --- /dev/null +++ b/core/src/mindustry/game/CampaignRules.java @@ -0,0 +1,6 @@ +package mindustry.game; + +public class CampaignRules{ + public boolean fog; + public boolean sectorInvasions; +} From e56fd3a0d706fbffdca024b28c57c697b91bfd0a Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 9 Sep 2024 13:59:16 -0400 Subject: [PATCH 149/437] Cleanup --- core/src/mindustry/game/CampaignRules.java | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 core/src/mindustry/game/CampaignRules.java diff --git a/core/src/mindustry/game/CampaignRules.java b/core/src/mindustry/game/CampaignRules.java deleted file mode 100644 index 32fec76cec..0000000000 --- a/core/src/mindustry/game/CampaignRules.java +++ /dev/null @@ -1,6 +0,0 @@ -package mindustry.game; - -public class CampaignRules{ - public boolean fog; - public boolean sectorInvasions; -} From 4fc48fabb53f14619ec41cde6801f61ee02c130b Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 10 Sep 2024 13:16:34 -0400 Subject: [PATCH 150/437] Possible ShieldArcAbility tunneling fix --- core/src/mindustry/editor/WaveGraph.java | 2 ++ .../mindustry/entities/abilities/ShieldArcAbility.java | 10 +++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/core/src/mindustry/editor/WaveGraph.java b/core/src/mindustry/editor/WaveGraph.java index 8b5e2abae7..af23443d40 100644 --- a/core/src/mindustry/editor/WaveGraph.java +++ b/core/src/mindustry/editor/WaveGraph.java @@ -291,6 +291,8 @@ public class WaveGraph extends Table{ maxHealth = Math.max(maxHealth, healthsum); } + used.orderedItems().sort(); + ObjectSet usedCopy = new ObjectSet<>(used); colors.clear(); diff --git a/core/src/mindustry/entities/abilities/ShieldArcAbility.java b/core/src/mindustry/entities/abilities/ShieldArcAbility.java index 820255f602..0af8f3377c 100644 --- a/core/src/mindustry/entities/abilities/ShieldArcAbility.java +++ b/core/src/mindustry/entities/abilities/ShieldArcAbility.java @@ -20,9 +20,9 @@ public class ShieldArcAbility extends Ability{ private static Vec2 paramPos = new Vec2(); private static final Cons shieldConsumer = b -> { if(b.team != paramUnit.team && b.type.absorbable && paramField.data > 0 && - !b.within(paramPos, paramField.radius - paramField.width/2f) && - Tmp.v1.set(b).add(b.vel).within(paramPos, paramField.radius + paramField.width/2f) && - Angles.within(paramPos.angleTo(b), paramUnit.rotation + paramField.angleOffset, paramField.angle / 2f)){ + !(b.within(paramPos, paramField.radius - paramField.width/2f) && paramPos.within(b.x - b.deltaX, b.y - b.deltaY, paramField.radius - paramField.width/2f)) && + (Tmp.v1.set(b).add(b.deltaX, b.deltaY).within(paramPos, paramField.radius + paramField.width/2f) || b.within(paramPos, paramField.radius + paramField.width/2f)) && + (Angles.within(paramPos.angleTo(b), paramUnit.rotation + paramField.angleOffset, paramField.angle / 2f) || Angles.within(paramPos.angleTo(b.x + b.deltaX, b.y + b.deltaY), paramUnit.rotation + paramField.angleOffset, paramField.angle / 2f))){ b.absorb(); Fx.absorb.at(b); @@ -60,7 +60,7 @@ public class ShieldArcAbility extends Ability{ public boolean drawArc = true; /** If not null, will be drawn on top. */ public @Nullable String region; - /** Color override of the shield. Uses unit shield colour by default. */ + /** Color override of the shield. Uses unit shield colour by default. */ public @Nullable Color color; /** If true, sprite position will be influenced by x/y. */ public boolean offsetRegion = false; @@ -80,7 +80,7 @@ public class ShieldArcAbility extends Ability{ @Override public void update(Unit unit){ - + if(data < max){ data += Time.delta * regen; } From 7d3bf2281b5e54ea849ed08adbd66d13781b4556 Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 10 Sep 2024 19:23:06 -0400 Subject: [PATCH 151/437] Coastline wave changes --- core/assets/maps/coastline.msav | Bin 22312 -> 23889 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/core/assets/maps/coastline.msav b/core/assets/maps/coastline.msav index 91e8c1db83f3f49b3e4ee4cfa85f61fae5d87762..63f46969a1c4a622f1a5e52b3ab268e241229e14 100644 GIT binary patch literal 23889 zcmb=Jvv+Uhl)3I@@?rV+r@y-{y=$Y1gUL6x#$#?tZQ8RGES-yXOx`@hSw9|_oO^eN&J!<>b0BsDK(q(pD3NjkdNCq>=T&Tq=(Ba_@Zoo@Oq@i;zFR{r+M z!Z{WnPu`!rEA;!nysOvan`Qd@4j!(%A5{8&?e6QpZ2ulo)|XB`bxh=c+f0L}U#GrX zd-h+}`4qpIpU%GPowxhsT&v1cB4%&iZpxgqZ$rVmf4{}`=2+MN`;$32{`D=UsY@Np zlZ%(`zh=Bt`tQB7Uk|or%Iz%3d-!CfF!%TQR@I-b1YVAiT9eDiuHDbi9{pPS*_q|n zw}plI{n4n8GhVv&;H88cw+&iX-<{e!PqS>h*?RuAWgkx5x;9(v`>BMLyOZM6@BeE$ zng4D2J&{Z1yJ!E)%-p*BorhfYf9v=E-+ur9`TPIP-}nFjcmLnv^?x3Q-~V6z{{Qr4 zCtcQknHIli>%GlqH&^(6jmm$URiC=q{LYCm`@i2Vd6g$WesnCT{IZ?p#*)3ew_Vwt z@o|n_`J-2-5)8H|u!);rV>9=U*~qf@rQY-PJln#iRUg)$^P}MEZ|}YGi@&**=T_dk z%Oz0tL76G?9pC*WRXmTp$`|k6^m8%O$E|fb0;lgT{kN>(@cln0{@jpR!`ULg^;PNW zz(cOP*xp_Dd3Y+UKJ{kG^R=>T_@=FGtG#8n=Vtu9J$Xgx{&S6vzTW$9>+9M7mKogH zv}@+=uiw(v@7`7T@olj9{eOo#FMmmY_~>@+>V)iVsr_r#@#*F9ZLf;AC~S+HyVU;q zoB8^46pHT@y!VUfYX7SpJ^S0eefJ{X-;24uPU( zym#x<(bnI=33HO(h)=q4e(sBPeA}*>t^9O#_1>jtyPKu=KK!(yezCd+TmIcBX^uW) zzT=rk3(XD`KKydC_4m10i_OWxYp=hkuiJ2J!#TziGZ{|&U4Ey2f%mI*->%;i(R$~< zva-ruj<V>#o~H4c%xu1f29di&jH zH+asFmgvq_maF=@)Ad2r&7j@F$~v4nx3rskd-eB}B^5l~{B50o)!&!b*PK=pHJ^ET z*|s~kBc#4vH~-yiDm`zN$h0cwP104_-|9AJ&Hj7#T~vMc)hQYo7hDe}y<9i@l3V@KeB1rbTMo9q zdVPJj^xmJV?`j|ZH)&;V4)6M}&vt8TH%Bkqv@vh-g+IR%ZkntQ=>56$;HzCv-)`z% zu)XcBuT$*KOVanEA{7Iko?W{&TYC0h(_o1`SL3%eX05c|<0O7|^|dR%uB}{SrJnNY zbo0Zk^0Q2Pwr-qxvgY`cUA5Bp=CsZ}bjj=gtI*(*xaTJS^*+3p{AYW5|MMT;ZT`nS zxc~dd_qyOu1%4-wX6}rb&~02)7^Zjb+2`?s9#Fd`^Q!1SLr#5f1waMGB2M@SC|GD(x+Jjf8uKl-Zh&G=qk`TAx1G;TeKnU}sc^8PRjUa_WZ{o1m- zsiBXTYjO*!?Y|=*6~1rR)|@Uoo|&IM{91dED|YLXtb31*d}lw4*=^U)^fd9kRBWvI z*J#`0+6&LFI+Wo1Zr!)Gu)9Cjoh+AI;=3|p>65=5sZF8RMZNa?2yB)&{5n_Q`kt$K z(ndb189$$QZ=Y739d`1oW2av3r^H#?Zf=iR^L4_j68!JEYYJ=DtdHGtbO=r>e}Ad%br=LEls^!-1%86nBO?=ebj`Ko6{ZDyycX9*w;3?NG|hz zZhN@!yv_9AW)gb-$CMNo$(?q17oC)PX~#+FzuL~vw+rjf`g9<5g7lNFKYtT4B=2$_ z<$R#z9l)tONnKehp)zFg2lmbUdC#WrzP35=yl%}7f&241^UojK{yZmUlgy0x_v^lf zlcrwK?C<}Oy6aouymd8K z^nNpKE1SDc;BNN2KINL`JQJbclZ1M$`Ixv}vbG%6e{fP`p2h;TCcnfCR zm<8V2AapD0=9|yH-NAi7d#}os>i9;>>F{o!_AC6v^u0IZBaI)=nzTcwIcu`@x0@%= z&O1Bfghx!7(uOFGzR#=wZuj6;)qePU*7>MEz7w-U&8l91^h2HWT``tgw!mwSSjs%;Ezv@7Lbw zIsa`#zF@=3cgwz>d40WF?-cJf8IADD7NMnjPwPLM#jKB0%-Od}w{q`ur<`7;eRm9; zf2?!eFLEuXZcy`ZQ`$!Ysi^+VP7j>s+vRXa#>Q$F3*lCr$LEl8` zUSX%!>WSS#Rl51LlmABVeYX8)YLRK^ukKGNGlJxm+~?B2(R=e^D5&)I*xDj@fs&#UBzi!<7vCs(M4 z{OI%RPhMrZ(p231#dWE34>refTfex(#y|U4LFI<5pHEJ3aNQ`#Np9a7CSAyVcwOo2 zYYm#*^Y6>t`NG(IB|v*i4C^bO!p?2#`Wi+LU(CDzZBNeH4{qiJGKWcyb zuAtQ6BZvQ~`FEqDi(w+rwrLDbVvc2PERebbTyX<>~m&&-NZ=YtSnf>+1&fQXfMb#G^xU-ufBH-HP ze5rS7*}16~N|RE<71pl!UCm~*Y3sG^oefXlC(P6KVe7XMxm~&CuH5CQw-%O@b8}`nL{Dvo zZnEj7YI}OtpCewMd@nzeKCxz{QF4xwQTc5yo}&{@rEDfRT|T&3&m#zJ>G z-izGVOnWmW#wmvI;D zIJe8rHojr7_u_qy7i(^>d8Df#8~K{|gzA^w6<7E~W_{WrD!t}fRrEID^vB!k12&tk z(fH98yIKF$ub-dyZqE^VV0&L^sgJqMakjrxAB0Y>>T-;h$}4C&^!ZrnrNTwoTeB}e zUienMI$hjumGOU@M``&xp0dsUvG0}Dgl*3aW0t8LkBeV=QFeO&jSL6=Yul!URYgnJ zr2m#ZXnk9KW7>YF&79xX?KY8FbNkQTuimcd+~&KsWiI2HZzMKbP&}L6zqa?zr)vkM zR9v|A%fCD6<*t+Q@4tmt{8_WZiTS4UyKgQXvwE7a?YXb# z;@VAVUEvh;`{y`fU7no-5C;){108`k_=CHzhIHs?G3!pjk_?=9HJdEc*O`t;u>9T`(E6rF3j zTO_sV_S4(1#bV8$zFl`O`t`QbdwP$a$tv>? zA8viaz3%(<#q25451R$UQ*Us~@AUep9Ijhsvdiwx`frcYec63Be_Pfpa>v@B%0995 z+AS5iGwb=LZC`Vz_Q#}cKffgItv=1VR-y0nWRd@S)_zzwWqQnd(i=a z-WzJMrzb{8eazL}lX#h5zOihZ%@)3G5#J9cC2vU0oMupz?2z0W<{AFf_2}Il&xMMA z_PRuT=lk&^HTIpY%XRAsRo8yz+_X8r`n1>ksPdQB_DsIL>+SEdAC1BjGXAHWI$SAb zGS9F2;n^;k%dfO}mjwK8bBhh%WoA>YbJ;}3ddt3|wa<+vzPmK(ZAInx_^7S12i}<) z-Jbo|H~WjOv|StXDf#I&`?qX0+L5+ZtD@kq*w=zDj=5X6do77rp}k|L)5l#8Ur*W` z@$%lLv!#o=<;AA&$~NC69e7RAWosT^o88RRkkJ1J60?3}Yes+HzE83;*qGJ+*qrjk zCoHA2*K9u~P&||Q?kdgG8&+t>zW%ka;n0CzlWFVkN67`%UzqkT|I^ejg4}7Bo?O4f z@LKe?@VoV~#!putj(h+4T~>B(X+iTkowC;{pTl!a40q1Hwo)W)`?Tr#g7?>IZ)WY1 zj=i0@CF*eP!_~Fb!QcNDugZSk6_#c8*i^Jc`_EG$UWb{RNMPszqbqZEIWkGl zuX=stT$AYJ(&yV=n(tcXQK`+lw?1#R_x_*Kd#CE1eZ-T0!y#(Z+=H{9%;3r^>UQ$I z?{%q-%lt>0<{g*IaIo znL(v=UH;ANYyq|WiTcru(Fa(~&u3Qpe6CzpkXms%&3|Wa-2JYS($h_vzkXT;e-ZAV z7Gj>5ws^+;KSruuF4@y=IF%n=c5>SCYiT|YqpnAZ``S%-B&u_NW#wzLX%Wk2Y+9Q* z_wcdO=@;trx}$Oqe+s+bwEe97mssm{-&Y1jugiIU{;crLj;yEmR26S7$a`ttdhgUU z)!hz{9n7Zjue(*2dEuT&m;IhE1(=Jb@JrHQT^%x>JOc(^M%F=+Rx zr{{In%-W_}T={sJ=>5sp>~DDAUR)-5>(gbE#aZjk&Tu?mX2$#H$hBv`4lLrEcJ#-b zr<)`^zP`FP>#O|vOKaNR{*HS)@n!6*b$2%vo(ee`lY2QYYVNv-?0r6B+48@qe7&-g z`}@paMg3Nsv-dv#9iGd7L3Q!nhf5ExI(z4yk@AOo`nUMHc-6zWbrU|RFWD)rw*OM? zxVmM-z1RD8CYmm(ZjQRNW#wMpNp~x6 zuddwezgYO%&9$++{ca`9yt&&^*toT~uAeO~r{Km7iCYQjiTg7bMrLnwt6sbRnt^I| zR`j(BNuPgF^K}w)H)Ptno_uB`re!H4-L)+&XIoZe(%!djw?j^@$hYWSD$@E)^p8=` zqSUneNhf|cPSR!;a=gpBBfa*BspzlYlR{lj`|hf_!hg!V=E?IQ;YC%+7VU9<(ji@(-Wh z@c5lbO2FctY1SI0yIx%gZC>|n@m}4Sr;Z0T6rL;gyM9RE*OAePaw)0vG zj$Yl%ut#{o7KT;x9PaYmd&kzdaz+#9mKvTdAr6h%?xLpW9=;V(31-=rUKq;YFMFI@ zBfN9z1m@%23mi6vChbWr*d+0|*7Vpk<|#%c86r2z8u#(VUTs*+<~g6aJpEvEYJxSR z%;W>n2R1VmJZap{DN|bTR_4{eSciL}r_UZKd%4b!@g9rL0F|O$K>My*FXMjuSiT1F1p&+bW?VPtK8LP z$^7LKb7UGrj5YR1x6VC1gSo-1%i?^gK|Y!c-gn2_ z_-t=~koW0hck+tF503(O*$O(FX_)tm^E1p_TqkvE!P_4iIi>O`Q#!vM*!uSWW;N|w zdg0$0|I}^R%q#uJJVfttZb8>ubLa5N_nA-LGOdZ;nkN*L;e7p{>D3IzuIe(W{O$nx zuQL`eIC}LiYmVrOnTu0dOpiI7{_klzXSx-$oXE#*y!$tDU;Dg1NyhYn27|los^=Pi zr-vjTQu?Y}^we+RoNHIh-n6FtoB8~hgy^(g&y)QlSnequiCuE2bk(%&J)2sO|Cq^i z;!umpp6SU9rmNiMY;)<`=w?w{$2040PwAc~uFq!OQmp7>3hX}qILj-qvU)3z=gHMm z7XReDaNXgqePhww1*?rttUXdXpQ&4V!Gr#V_d=)4{>a<2AjR?T<%XbkufKL8dwDea zN<$B5AM-iW*m<5Ij`u^~L6d#l6-#fdnRQ^=*P`wWy{2bI1tJTz_>Kp9{J;Gm-tL%L zZ@T3J4JVt*j9@{Fm~Ji2w?8Vi%$dS3u<%>7mcA|cU{w>!)ZWK*s`17g+0gxOGsP-+ z3s&&Rr7YN{9QR9b8_%tW3i9mRB40#F-l!Aav+CHcX^n~79lfu`mn!_#+;(t{`D)84 zlUK)dO}ldNq|BTqD~+XIcehIAh=o}8UAK9%@`C6Tg(*>MK1nLrbGXc^e(&L?7;v$} zQuX|Xj>j{1?0vQLlc5IlztEtLk|Jvs^F8LOJ{FhM0=M_#3?Ucm0mf!IFEDP(W`$$mvFQFdam->ttVXeap9G}+4p{O zeGR?vN4W8<%dwd&qMduUT0D5y$l|XM{Y&qT+G&rRG}CRZnO7`0-~Q3dl87kRTl!8! zW%7#EclJs~A7IIv!*uq3@8KiS8M6-?^2yC%jIXo&rvJTpU)3A_JDaN?Ijm2Xy!HE! zc41ZlTR_o0CZ*Tsj{KU#c__X8jKZS;_B(qU7W`cOFSos_J2^#@DUNrMfXf@c%*zos z&Yp1CV!Gk8{PDD^W5+kGGzjZ)iu`_T;aV<@|JgjLihU_4gxW1z&#`Kb(Vxk4 zA7rM?>WrN3-T0~hz%HpDj~>iro1(lRmCu4JBl>K*M)9-0)82LB4|mA5cV1p$&1l!} zz*W5Q^I69&e4CoTTg&t8?9A!3?TyLQu@+GfIyqtKokFAiEbR9D`)s&F*ReX@Xxe4| z;D=25*Ewz{Ls{j11UM{tAmMmhtnsb4p;_re_2lGyCU-GYo}SpsQ z_O~a)io^HQFFJe`^X=HpaH%L`wpuq|`|6LkGqQ@+PaKsf;(W?=QjOzq%x8Q46a2?5 ziVXR_{^9+x%&1^RQ1-W_Zcd5c`h?%=7QA3A$W2jCEm(H3sc35R9?yzU=035gFJ@Lr z;*HM7-DVkXn=Ies`!l?qC3?a?|3%)*{#N8pJnhwg%;MI8z^+1>LsLJkf0ViH#;1TR z_NO`@wk=%a7v-LmqdXzZuwaXPj*gY##^ue{&6Wr~l9iM5@qneSad_%;s`|=Ux1*-hFrCha(FLdZI6*HdO zBy@SwvFSN$I`y0M*Ur%Io8~-^>EoKm8>Ky!mG=uvT5edvQ=xyb;FiJGLIwL5oLv*1 zC(pejSSkB$p{bqF>nG|LKADviF;!I^@OHbgFEcZE zZy?8k2A=S|eszy6e(h7G80LESky43?d9OZa#C)&?z~poJ;H8oCY3IlW5R+|pNVZg_sruj!du#Vp^2k?GM{hOE^B z+FgcUMFZlS=A{{~TXaX3UAJ%5-xaeveLaq|OqDiXuB*;cc1rK` zyC~lrnb{tremi~PHmPG=ac5f!WK}Mmj1~U9(2Z;9?#E9u-MzMMudrNJ!ZYPrl9zG9 z?&jxgRnKgaw+AmxzBH46*(xUa)giWm!KSmEu3ip^el8JxV0G-;mlFDlyOJMhaIIL_ zEF|BYIpt#9@|e7^hYT@o=Z;Q!^v&w)J<-+Q6}Ox%d^~f*~7A8u&g|`*?Y%XRE zE;N{Pn{)QI6};^4xBLxU!f3f=JEw-#*)Ybq>$)>KJ}%p8WT>*#b7xYqhz*Zz!L5C_ zcg#>1TUxciHqrfH#hpqUnb!e}o*Exmn9S96owwJ&n$PoAM5pCE=U)?N*w|Ku|9sau zH;}pF^akCyb&r)UOMH&o8r;0~QE60>&9=YG75RPF7-!^jN-gVFc~#K!bazmI(`~g2 z+jKN8_#HOhXw!Eft9!%t=O2BC*s4@o_&0yh2b9-izm0LrNq82`1`q+ z$7YURl;)kOO-dR8Km8cpo0z_TYn{Q)ec+pb#)XsBTUp;0nJ2Fgy21Ir@WqnL-==@O z_VG(`i!OJL?~M}8V+)ld`|1~Ke!9AHh5s?Jrv*F8d>oIfKje(wc>lr!dnVhnjrG=# zBz|;kei8Znr+KS}3FrG8Y}<^YX7+9reV{xgd;PH+VSD5va@3|xYfLXV`Q}CYkurua zmO1P1h|bQw=sEw<9p2*+Z)(3)ud)*1VZG?|rYYh|LRCmSDYp zJMze4tBC10`wnZoe&+Z?MJl#0_Ljwh07mmDd&VpEc;g>Q6d9k(ymm-%k8VQSEZ zm4!iCmAfAt?psmAcgB$8X`kw?wbw7Qwl8kqclG9sCKr1XM@LSPCytKVe6M!tJa|`e z-oenCPW*i7CnCN}GJbS1B39NV%b=vd==rIj|^>$W;No@*C=*!bw`%%@sW zN0LL6^h8-^Gu>&9HZkaLQDEoVp{*;jB|&Pd$eyPS?7?^VH5Se}x7j-GrI-5L2NxL^ zKDNGCbnSBqk9X*{cEhQw^fXU6JlmC%CbMY`(|WaQer{G~i~ia)e>^Gl;&rXZFD(vE z*PdLf6Pp(}#6}r={uPm#!ZY)&ha+RuBz9e^wTn-umB>ZA3zZxRU3rT&fbWHij~ipx z%BCuYjx2-eYDzgt30q~gCnZl__oSeEwOfF%Z3o+jBP@?ge{5i9-Yfnjxn$}GrqCNp z&$Xu|dtY4YYvsMVn9nNjSwW52vISh3nyi;I_MJN+bz{BPvUx#%wR6usRGStz^>Ltf zY|PThiC*!%QqN9V#&4IuabzC>ntVP zO}9N6Kev7S@NDL=5Esbays<&1eMZ4!qBogMAuxJ$I2%~H;7 zTi4fQa(t`OqFKsChvIdWz6xKy;G)UAd_Bv{RVVibT)U8x%QaA6=8F%zD_p%GETiv4Hcj%=*VS-_KUP^^W7x(lw`o z-JdwUdC0Xd@{(uP(T!o#l?&42rlhfadD`?tyDWq;#e7knM99K#5nQ*G!Rlbwa<%@y817wI{@zW_dgjIrVr$E6$JN^!6_zp`7pEI>*joPCYfzC4xtJXslfR(&R?8q%ar{9V@ARkk2z-BaTa z_3e8?Tp4zCIi^=eapbli*q_6-)NB4F8>Ze+uhkXSTwcbSQ~G}EXe=@jU(r<%RIX+w zI4^DQdf{I&y(dMYN|x;sxUgsLs*e%V)Edm&Rj)g}O!U}4OX)L{MyaQ}q}&cpTaAWi zni7-Q5@X$_cW3-d6MN#Sb(dhNNZ%dh4=uaOHuSWt;`P$b$QPA!S-PKlpM^Mo zx~fKQbC6u1P}w`i&|4doPt-XivrT!G;u-s+#+o_K_vn4~-`eE%-3}KR>s1#P@vyWqO-=E+uD7LwC;T0&^5e-}HvMedY>LIs z<}!1|T>He}vq>QM0we3r8LGD=FT^^Da-28)pDNrt)ynas$(ERnJ8pihbjdBaWctgo z;r#unmba>}uUu?3!fyBr_B9%@#S9s0|}*1ulzOK##8WwsaCL0yS*eop7CwL$4{9@ruC-&N0s61LlZjHNnhH>T_t3b499(K)a1&$#U!<#3zfRP_Cp$-5T(5SeoN zubUEN{u%iK9$NGS-9jR$Mk>q z&Q(3>o)fZ3rc)fESQ?9@wGtaYOrk5+apUXpHzKuGhTXW|Y3&C--dW z;}`lt4^Phh@M@i7y58{#TrYR+E3Drt@hJ4_WyO_|F-srXa_oFrvq|bv;Df7wm(6yst?tZ)PvG73e#J6pN_vbR%s=Hl2D5FuZ<%(lt-qs+lSqmPhYOTrMsP5>d zsMZ`lX?JU6&<_rdOU#ZY*B_heI0bNvJ>ZaXt+~zov^+n4*`Zz2YL(Phh<no|=CMz-`nW2&LiRy!qiW8%zPV0MYy&Lb7NjsN z=t+TEv`cczBrTXp|(yHg=I*`_W(H@~Ybl__djz+z#) zFQ&CB{~T78m`u6xQ%_!6;$r!U`&_ke4|p5C{^JnRWEZO|wt$N78*j(9KF!r;ZL zAmZz;=8{$F8I5F>(^&J`2)%qj|%=|m|(r<`(dfeCkph-j$S(7 zz{C5cuP5?HlF*9RDwb}0PFHT*oAlD1^WfpQyyQLC9w>bf6Zj$IK1rqTMq$>n*I&Nc z?6JM@yUXA?-}32~&Puei$R6Ip{8sI?+@}vM;ologY)f1$k9?M2w5F<{mv4uKt35;h z>k}Fku9I}$CcfCQ`N`)ClX&*5eU{j{)OVLi-ZhV3(G2rti*8j^&wehw^yy^>zvL6; zB`>{2m+j{N7rFd*_KBuX8?I(?g<5?H?=dc(UU}ithTEzFNA^rwZM4oSF7w$6eZ9jh zd#oItp4!cC^SZV8@zHftO;xOdQ1AQMw^If{$YdUj^ z+v`1!s_Pb3?<}2qv~Y1ULwCmP>@Q_*5*svyr(a$jbI0qRfWq1<%`Zy!oQ(BV4!r*D z)xGOBJ$~XUSz1e?U;4x>=8`i>D%`#Ot8CQEBF#$0cLCwO`U@gumn7`sh%ztVvASUX z29rRQ+24!#CU%BPxKIjm?DZX&qqN7?yDedpGr1EP%U)}0) zI`hhv_5Y^VMxJ0e2O>&2m9oy9!gkE4etK{4k&0s{9^5p!@=dv8Yv+&E$?<*_ zR&vsLjFYxFl?#1xxuCT8O6jV_^8|&Co)rJRaD$=A)}*`3IH#8Om6~@?dmZ%DxM1o0 zw)7KkT`bmTPOkCY9;dZ)vg0iC<0~`S3;#PPwCXz<#iw+yI%X8ads+F4f5V;g4)G<0 zQEo|(bK^9W!e>61`5{jEquzdcfk}=Wrk;N7l&8KHsntYcZ zm{K*_sn)E*`gqtvcJa38t4gojYj?W7`sm4U%C)8YX!rE;FK?ZM`xbGocZ@t-eEQj* z0H)e?3b#X6aT$gxU$|>oxZbWL<-ntyOMjj{@@dT9doYc8>CK5%m8&_8%l=gNt~j9k z@>sXgm1ya;Z!?_D`&e7_tA5=(duVHlGGM{(4W*qE-|e_Jk?9lrd&`qD zEb$c`@fJ%e@8%Ueem!BDUg*We?OiV}y(&8IJ*dM)N72H=N6t}=<4iz(kt_x;kI?obK!uMTqmyD9Iw0`Y2agj z|D&JIo)0p<3-$X~9+P=-Ik_t~`A33(qEg|Dy*x)n${gd}lJ7lST{vO&^PkTgmz-wZ zCv|(lB(ZmWuM;GKJRV;Z;Z*mMs=xbaZi9mMOa1l`-vh=kB==k8Eu72tHosQ#&*cL# zjh|k}b@?So1%>yY`x)S3HBV2f{*ar+RCV9E#+#;mm^wqtc9|!yQuE4C+3C-x{uQz> z*%oKLM{nJ=z{P4)_K63-I%#_EzwRMsZsFAn;+DU8@3`xO5>vO_-Ia$A?Rph=eco%% zqoM~+GsUr19N!lFe_l|&OY;5T-W%`VYIHriwfnN|L3TyfRfV?&e~NS!v_!bHsqc#B zQTixzJl^(J*z@nDrp0m(N*iL$FZ8NOYxF)ml(>1(2R)~m%>Om=?w09RUGg~YX?{!9 z?NjC2Mvd@q>#j^+5OXv_?5f6_rYn@0uI9S$xc%;OPiM&Ui+#>c+GTP! zS0n{9_nhzSm~-^djEM~=EcJ>wJ8HnHx-75(+u zVVqskn$@Q#w>ms#sFzrh$nkgE>rg$VgT6U&Yn;qWw(s_v|8io2%Kh6rXKWE%k)f)V z%kMF};h9V$!_93 zr?X{;XT)gRb8Xc)n%R}L#&7ACi;HA*wmjT>Pv&{{tJ!5gODk??<{eyCs=ie(<(l56 zb<@u?zUYZ~oV$FRc)*T^vKO0vrQgtkrE+dyEgY> z<I zjSXaCWtOa#jml^$ZaNour@bJYA@kgvtG`vgop|L?&f0s;HeLRT#6r6}m-TaJd#$q* z~Qo{Gwj|JKsl*@CBL&0t=CWY!AKlt)K&n(qZKTDhyKR$gkw zX35TFe#d-E&wq2ONZD|3Qjgn$mPcoKLayx1J=|@@eEIKPDc@4rRymhPEVuZcZFHSq zp0i%AXxVOkD~9-;*{5Ug8b&0`Io;zA)s%>24`|(%y?Cql>R>%z7A^CQCUV<-`vo*v z!euM!5`!Q4thwm$OK8zoWy{|ewh873DxJ1TsZ6Nu-na1afhva`-CL`2-tR4#s9cy_ z^2V*-X%MQdwOwA)5MF)vIh$uFFJnF z%r@P}{nOVS^0AUZPJNNS7fpq?d+dLCLRRAA&0C9dbXN2%v3;Lep|vB+s-aAPoH>O!)Dn!Azil8hAGk=iJ&Eh~aqbZZ!pHDphV%i#$_Giy+QZ9O)^)3nQm75s)@tSgYaz@GN z<8GNHg1^=TT@`Pg;#Qn8|M63UTN&FsP33>g(fGM$!OBc$XH%7nohM^;>ON@S`!YF? zRVDe)+5I~Mo*w?vrfD7zF0&rBG_ilo>l6~VeZK|cnWLK3ti5^1l36=%tgTuf{wm;$mw90Sk`E6i z^QgWNs`-&Pp{uhU$=UfdEK?1>#Q%8iew`+SknxS zt+v{_cg~wL4<| zA(`i@;$>Qwe`q*yV$Bv=;|WWPIBePdYnhMDToAY4@2yI)(3RaA?Y7tDGEI3EXk-;2 zDECA>wRqO1*AI=AJ;J@?8kK*Q96g>B;AhgFUiYlRo?5Th^PsZhMoSRS1+?rOoBbU9q!=`6o+|AMdr!y{lRy zWQAF#CT`djc`|o()m8PPMbcTlY}Xbi-^sGA>bt{JaqFYz__>Lnecilrg3KSItN3B0gLJuOH0lkS4@H6bqx)pkwr=Y69f;&=X!q21m1FFRNG ztDT#%V*ToS%OzeRzcRz%cssUtUtVwVd|x`vo13{_+a;vc|ufN zNvra~eS%WKE^`PeT~FP^zGcq0U+P9$$G2GAuHxDflFXX7@Tv79+t+*jTYUX{ z3&N`(a0=gem66XhyN=uNW37FAF5eA5)-3Jt-v>O~-#$LDP+lwd*rCVg_T(Ly$8}!X zug25Wn)ma)*_^uHoepOO-2S^Uz1GIh-lR??!;oY1Pm!pSj38s1rK<1ut_@h={ox&> zF6)IPgZNOPQ2T1|UH4P%3U3@jCBxa7_Q=|`xur`9Eq>0Xn?GyC_0`+vw+C5QR5$-oC|cFG zWwAo10JD(4d-|4i#YK&qWj3m__9rG4sZX3WE%|84dAFn@ zd6v*uUWWxeI9zc~I39857hx3&8XB`jO$#>|a$f_^NGpjSje_K$(WZvRd=~x4E)a!Wg@jbL;q0Wqny`Am~3-<=9SOQ=#h(lH*3}WFBVMC z3g$gF(>k?C#r8!wyI!f`yvujndzNHr@n7e^(R*jPR5G{t3t!gkckfnA)%Yi-b4Y@HugrE@7PW#qHJ-+qAh+ z51JJg8J_kDI&q0b*@@!{_X|k}xQR!QZ()|y+ZJb_e^h8W`b6DGs$4 zbM705emkY#=f3^#eh%Xd<%AaxSpQDk8)slPcv)`KRXQ}nf=)4^@jeTe8gx&TDm-(K&YM(Zz_1^rDtc}NVeDXwH(gga8 z3@2vw{#hw;^V5W1G@!b>qH2vSgjd^i{ssHgVR^R3>}5iQdm&-+k6OyW>OT zBK-r3sextPEChwYx=ifdkqX9G=TS*ng| z`_0;JT#|8n`i>Z${rgXU7QH>w*|~GO_X&romh8Pbfsc4XW~`VQ{is>qGH}-IJ<-;$ z9&3bJZ1~Y9)lwE%V!P|o^523}_c_lCzj*D~nsy`6z7CZa#oozVpU-lWpWiE1+ZD-q zNn7gezO|Ztd2g>>zVhWWOVztDHknJt3MGbr*3F37ZsfOr$D-Pg*OL_c4<7GpHhFvf zm0IfCM3aS+^KN(O9a($i*>YwT*9(_AYQMcU)P3Aw!x&ZawobEkT9}V_rg~J!?QVf& z<7H2`ikK$fS2?78=+hULS6nqS>dx=toag7b#cS%hx|dN&v3p)xEOGXb+GyW-$g(tJg@!HYmMxNTBd-KiX^@oIac+r4bNJXPdf>V z9``Oh_G8mTyBiyK$nJ^?-u=wj@swSA-rknvxwq;WqkU+ZD|2kE-K-O0+ND$*pVGU9m-?*kixm`s0Z&-IK2V z-zlcscxijG+#9!@{EVrh|6aLqiMZFY>sBfENxigF?qIr$6*}Pdd?eVzr~5f`v&!&8ZW|RlE%QY89sQ7f!1CR6HTo zdfL*{D`j`iXM9-I^(s9n?xnbZ=)|(K^P8u>T&DPM(iE4==Nk&%7T2-y`W${ZE!3ue z-vlpjcBW4m?akk%GOo=_WD8#~qyR&C*ZD^DG%h`l|>bf4Vgvj@MG z+D{Hz;QmmQsj}x|mgU^qh$XAJ?mc@j@yh-sfeY?4?qTA(WcPSc_s&v_t8;swsqr1= zFYFG@c=y=i-MTs^p+7M>wq4HG-Bgb)ko&M_{-e^bx+c%$k1>YxGhe^#p=DScV_Du2 zA^hQ1z}|WZ^+UU?5?P$CZ9Vy&`IJP<^vMd(&pu`MICx5P!cP^$(w(2a*%?HOW?t&{ zX}Vs|_;9X6*WzYztCl0l&mO(9HrQ``!0_!$VbKb04u?gH*e~+^^;yC9<%4_c@k2W~ zL+gBBelb3`ZfZL7)F>YJzWs6%Eirf78=_f4XN9~nSN9G$o}{BYSN56g|DeT<5f68i zSsBC@Zh3$3V%?D!7usT`D!j9r73JYL&*IgycPy%W)`g~i3nHsFy+7Z$rTc+5-@3@% z8ac~udwN@}4Knzlv1F=40Q0ZuGd|n%MZRL&)jUHs&hbjScvbXO^cs!FZ23!d+y5q=8*HbbZ>4zf!?wM zg>V1O(7$tf)}fBoO9W;{xb5;xs8^V&5%P|yc4kAp)70Cqo?Fz}wQ3!oK8c@m5!0)b zlH}g(S2|AY`7h>ismrYrNPZNMayRA(=Vp!4%f>#}rdyoe-QagZQ^0e%?zM;gT8O`V|tykd>LDn8$Yq>Q@9iiIbKLy+rA)@X_7%~es^pi> zsR~=ZxPNi+lbu4dnUjAt?G=%!ZdtxGA#!Fw72lM3EK9c>yR|$zxZuOX4{NL{KA!q{ z!|AKf#-4J9OMJE#OGH*|st}#~Zq@Pl(vy|{(`Qe(q4HGfbKsQIi#RiTB|D`T#|wm) zUb$+$>%>YW`&Tv1i-Z(M( zl5bV(j9+X#hYs+++;+Cp;i4;prN*w0DJRx_?h^NM$<%9o?A}xMW?97_*U#10`7dmq zceU|a&25+5{^t7M6EZ)}b5~p;qTQ_g!coOx7T3!A7EJrEeTZ{-vaD>1-wUlTwrUpm} zY}9hQzR104-;c6OVtXdKY`plDqvU(n!BAZT4#l8y)(pQ`)``2E<2!Q_R#$Mk#IapC z!WeJ$F5*jg@C`kMq$`EdS94;0W_NO)Kh~1HYZd$K72cQ6Y?r+p?vd%ltz^xA=zQ~s zYQgZYIWe{uF0$w)b3NbcA(a(mv2L+NslZAeZRdwSKFsqdFXoVtnb-26*r9~4<^17? zFTa)j-QjL1_GiZPsi$kjKB_Ls=x_0xxMTbGiYbTAImuKRYCb*tQ-)y$lYBGN^v40~ zisPQnurqge$owvAXO!AEJ;?e*x}&$=&Q-BCR{qD-%1qDwEaX1#d3M6opno~nCBB60 zJ)oo(wXCA+@>#be#*XN}k`rFuD&r`(z4ZgO;4 z;P-%SpRee4aC~Ptb&2D9*_qcrltSKfvalD1Mn!zSVK|{$wAWK0@=Jw~mtL zwN)D?%Y8f2&3d#%TwwRtH;?a5SRb^&^0nZFMaky68#INtBzO7dvgL$xJyWbW+g&R9 zKkmYEk&J1DSDwFp^lx?H{}}$=$w#N?g$Q1{wCtaV%fZ+GTpN$?IU{~E%=F}?!`hz= zmC7|TB(oMyTE`S51gZd$~IjBYVU;~I;$%z(fQ_SX4B+V`n!IqOx(G$`FxW{Z%4hL?14Fn_3!zu zszg==vFx<;@6L%|-6(CWpgfWFWz?k0501sV+!j$iwC4TCT9&=rY$m*B3}9pQ)tvE( zNtA&*;y3!^HLhaM`C>^9~uU$@BmJ=9~K&DU&g zH~pwnesPbGjO7tGyXDRbuivfXoUx?&JBP)W=?|1wHP|$7Go7S)Lqq^+SAAYvw@>c_&JBy@N%*HnY1>;=zhVu9g{{d3n-@jgLQ{-smiRm`P!B)18&g*?jD^ekM2CukF;f5k6fm z6m+&hIxq07Ny#2g8P_c~@8@^2lso60Uz8j5UGPWn+SSLcYA$(bePJ?je{I*ZYyBbX ztd_r9CbBrc-nE_giY{~hB0b-uzpp&_xkGRMCe462HrA>O7nl1^3A3m;|Au8LAD0MM zeXPT)c^`r%xa?){>uU%<8?o8j+Oe#(zv+^4hwb!$?QAEilCB-F)m zG+idSent*6+l&u^KZML#&1N+@U%zi2RPf@Z%$kj#eEJ1L->(*3CPVlyVSnyP@S-R9C!2JCS$w2i0bN)U0i)6bV8!6b= zg`cq86MEuT;4^WCojkp@Ji7laR%9KS5Itc_nZ{M|*Y4{+ZTM`JbMU})35PK5(u*O> zRqQz{Os_<+?9nqh2Kff_`CMT{WX7cZ{7dqFnS{8^q_um1MEioH3{@{D@pZ`)JqmzOoz zpL)77=HNdu$$NIce=8imEq);1c+RxHXK&q~^H=xtZ=J)kkMB2s+n!Wk?4y1$aMS+W zJn@HTZ{PRk$yc|L)C+%B7O;2M-?umJxBb0){>%0s=I1NiB>m?7+pp#hJvN8)jrLe=|1C59|8Ac2@B{I}FUB>EO-wUo4eH-WX6jnYu&;N5K zXUXJKa;b8q5n+{j*0MK#CO$jN@!9rpYFV-5rnQ#qE%A( zW+;CseKX_ReuKW+gPYsmepTG&y6CsP;jxR~N}nCHTlW6uz`|^7p*G|t(m>(#wWwhAr&pboF?Wc}e*zG^?;hS;& ztu>EB-Yr<2f1~}!efOJgF6?SE+jFP=y>C8c@2^jh&zxIJ8{QpF?=hP9-Y{m?v!!Ke zGv)aU_X=G$KlJsO#Q*OSb*(>Lznb@&)-Wy$4ujqYH+jzVF?7zA>FY^uNy#HLC z^}g%xUy1$eH_QCv+pqp-wc}r@{r1PIJ{o^}FScL5==aONfqCz(&$u^j&a9uG^k*u| zob$!i9`oxi{gZq6oSo^fg2n!GPd)77lWf}FZaMQy>uFur!zU4Oi}WA3W+x?ebqweyYbDMr;+@s%<&#*6gZf`W} zaO?U1YWCJgH`E=R`t|F1gSbkuW1){uevg>1zu}+2|N6=I|8Ly;&+hZr{x@ImKfJ#` zz5YMDvgIVh|5G<#HeYame{OyK^!HEyDjl9_KI`<8=1gK*{yF)Zzws}_<3&3@_Dr19wC&-Z zynQEZc4wH#Pn;n*O||~B+3)7hXZnSvYZlLZ9nU9j*Y7nKD`P4ZqQ@%dCrU4rrbpbf5<2PS<6u0nd+ZA>)EcyG3HDD1}@%cb==G^ zcgda1o`->Z)g{wy8#kZ*Gqb>=Mo#hV^s288*JP)$eoUK^X%@5pz*qMOvB_<}&d*!F zq#&pjxXSZ~f&%QNZgI)<{jZ+~n)v)t2@whJ@zHUNUkzJS}>c@ z*X8$O$KS;~^B>4O`NVqdbP~h%+>9+=CEmXUcJuc3b;*3KZ2K9-`M@hqvo>(!+@8m> zXXW900n_L10y?GNOiJU{Zhxh?Ge(Sq=vXDeIk zuVw60*mPR*q<-(|hsA63i#0!l^?u_mX57Q`dg^!8V@HE7H9EH)t2DhP*t1nc;(73^ zD>L_TU0-PwuV-OZJO9Oog`RGoq~~q3I{bTqQSRboC2<*f+jq)sVso-@x;;of?X&*M z&9hcB(w&K>`aXyLz4$wG!M!b&eWedAr<^wU7pueEsr{5e|KpqDwm+wf`@+A}^nbKl zJyXNnWXk`aMMvzVPG=dew?Fjs#JlZ6Pt$hFy!`6E^G?sgwVU?Iyu2Q$r@rr(qI2@Q zd-`{u6fKGlc~|LtxbB{R;BGhGx5t(K|DPl6e8SM)W8aeZ`Vx`K)R3viUE~}n&|2+HKTjxtsW}Z*h@$VE*UL*fM zIiPO7VV=*bvt?fI@0Wj_x7qCB?bl!L?YBSn_3-!0f95@q*}lJCV9))-Zx`N4?fR;4 zx=7JN+2?qiUU>4}JLgM!Sl%jGFRb~l@H+a~%gql9t>^#WzO&}ozh^S{Yv$P+0a`}!oiEZEIeqY^U^knnDO%n~P z?webksdD&LP|{xHzd6oZ-s96}$!Yde|64vzZho+@|8#&(ZA0mu*IXA@{M&!_j}A*} zx#}q|9hJ(tk2g(OZ+F71bo(aPw%;7L!?iWEcfQj2Jg35UW9`I;{Z^7cws}TMURU0w z*}v<|hm~&}A0JmsscXu4W^vgmx7KFqnlmSR4FB`K?s<{cRzE+jX0Gfjxum+uJ!+E2 zHtT4As(qrr?`Y|XJT;-Z2l^KE$!E?R{|!l-ReSRK&%62(XZ6#C-q)SX(A#ZZ;lAbH zqKg&ZHlNGu`N2nY(R%tJZCM&pfZT{iE9ayN9j5eNU{><~ zuPV<^e_y(%`pk)%iTTgVf81U2@v*G+-s(BUpN#*!o8H^Me93%&m3y_&BfAd*`l`;?ih34r`T^wO|Y~P}kE&Nrt zE`FGE`1f_DO0OOxoz1H*er!+j+S?oxcTC%hZ~c4Y@R{b5?4L_q3v5%|GO2z>^6tCh z4}7nw&Xaw(t9nNMlXf|CEB5dw+untIjT$K4-=mzhpaKehLa)d!R9hKE0KzBcWVU#`pcH7=>Py6@?~DHjc;W?o*)QuW1X zdVS;97m}aZisl9`%e{7DM)UL2+MQN*&tB~)R@V5v>Eph4uGjX5_rCA;xcQ8I%G%9- z?;Y!dPfxmMlU=iCy5*b==XxeqRxF+Us^-v-KZ@d4G7IKvzB}Ajs&z*E)5fhXdzF6w zVcOnWG}mvDugLv*>GM42FFvtl;k1D=`2QrszDY%Xip=u66XuiwzC`uYv`kD}Jo zdYf%SX6nnbd!N3v<97Y|e--wJx$aN)|G~IF+w#_4TkiN}KmY1{UU=sH`ILEQQqHV< z^Jtf0yy;G#!w>E+-tSuVcggI=Ng`8L{n_4_6~bh2a?|gfYkYb`94DEJzM6LOO3u}# z*F~!S$8$UX+n#jdM*X%Ui_>i@OPA^HK3tq!H)El1-So7VhZA@D1kX;sf8oC8vNz>D zR!_W`s*kNYw)FlYzEr(nZiXB6eVRTob_$QQosO{Eba(hx|9fmx?AtT@XSLh&mK2`7 zXDZJ(vTWwxnDDQm*1NUz9!u#wvs>+xc0Lf>|GVYl3@?1IO&|PKc6je{l~=;mzb+&*&b-Sc=M}S zy6|ScZ3q5~i`~k2c5!{x$#ABt+AL2$IqqDqcIvI)LEpe1#X6mA#TOojy}Hl%wS4iS zs_ErZxGzOq3GS&(sG0Mv(Dm4w_iZ~rGG53`dHmST&As-@>5Xi?cSJXx+%xaue|zyi z|J(lUR}TNbXWsq4v5D?`mA#h)&hD0xoh1_))_dm0Nu8IOu9=kJJRsGA;8=Sen zzaN&bd%3-L;eY0DDLDrwoO-&T;K0@%%bDJVMYsQPev!A*`~S0Oi^z?mBH0PeKex=U z|9oaWm-|<9Uz;GSU(Xjn~))&DGR4TI#!aZ_1{fJi&8}_ig{DX7q;N`DLu=tNYP{xwe__ zA3e9fVHHxny*PK?PM14c2H#WG&AR9R>3u{~^pxVen-}jD|2HRP_w2pzIF}hM>6;ht z6W}`Yh2xFO?VY9acB`)0tMtBY*j9V&d(XTSd3}?*6!&w1PnH%YymGfW{GDlG&YuXg zr*D=sN$uy7;@0&4e|Mh5vJ=5u`;$L;G-*YCR0-LeSaW`2m5GVg*7m>G)gx{%iJ5V> zCRLg@o{{(GmF4wCQ_3Yc0i*+|L0_=`I z)tqIQmcn=a`{Jc{(k1o2wyN#8v(Uv->bm~&ZQrb-Z362~UdWrmAH8|TuP^Ena)F;V zd|bSENx*rw4_fw3CcAXr8a|Wi<(SWta7rWn@L89OISbB(ynl3~s#K@}nZ_6%*?%A{{Lgxp^_0twMhJD-TsPMYE6xZzEJMX;N%5&3u z;&V6lzkMzKQ}*L~?PKRJoMF8;>%m{6=?gF3Dc^BM@mcJ|+h6W3I8%RMu~vJpyrY1{ z7Nxc4Qum3w)Kq9&#ZoLd?tVMQJE*t+v|1ae-3T?rTeXd{T)-OdiIZn9}A~j zY?=T1vT}lh}=hK)Z)EJYGWuEGH`^@wEK=qB|ORxH` z{++mY&j;1>CPI8t`R6x0d0E@K)be=ljv1fkz2i6bx0BkFzq$2qbo#}4{rorLCBNsX zKH`i#^sW|Mkh*44Jp{i+0-j&8xfX z)cG^SXp{c2%a+HVdYCd*b;Tgdot~q{F80JMf|80AG);?A8yj0iX!kspc zRd4<8`FeJJVg+AyT9?~3kNpobei?6b-7j|V@alqfArFjNil?1^e=(9ONpQ>MnviC2G~x?}e9LbV+_2NfgxB=$f1Fn{y$ z#g&T-pNrbsXgdG;sNZBH9J6eW#%KNB`036&)S8WQl|SfZM?LfROFeeg zeV|ohhV^UK} z<-f{1FK!*MaaPjX!sNlb`1OYJwkhY|Z2YVC@4kdw>-SuLr)jd;DT1549_y}~ZFpHy za{J0zN9@~lceAI4&X?c&!NP-m79-!O^01qS_fK6ASXOh<=Wyb;s7I_V(~teQ==5om zdD)dy7g?s?2h4Jk4!8Kl#V@-gAFX?-PmquKq>Vuue8+lbz{5zTd8q-)C_C zD46p4q=fFzoAOqXKkC9F+`h4z1)q{h)ShCLtNeQ9p3*Z@wYlq^&(OpZ2^HmNea$u43CzFLS|VZ)4|zI}$cM=hyw8@^|flc_y3Qhklam zoop2TU)^zTWZV1WFM0g^_BPJZ(Ahoz^r>6lrM7?dZ~7){u<72N_40zdCa0=38L75? zckeU`?#XVm)t>ry{?0RodGC2%i>%%Hcm9m9O83`F|0jOj=s(Z){L>m6k@KscJ}#eU zuWvNx?y>dpXEw!p?42(3{^V({^{IE4?pbei&TY}1c?<5yebafu`Pa_&Y+^b4({G#n z#4Xx&Kjo_jzAHLa+wtBo@42e--n3t7P5SQV?Xyb$hWFk7zwl$S)Rlkz8}zO;Kd+8d zQ_ea5<&Wnv@4fE}7w>gy`pwVtcK7F!c@OW)TwlCVCd%E-nEikMM`f=o-OD4V{6GEA zE3F%kef`ah_p|<8?RCqPy#8jvnlGDcc5>#eezJJU;s2+8?9Dj#qt>cY&wH1) z?aQKs`ywmGr1J6i#HTywd`U~a?{)iy&B8C%hpL{0pZ57}u|4?OtAM@rlY{D} z{dBAOx&2tW#ggsId)`d{YB%B8_2oCq@18aj-*@}yzYq5q-tpfIKT$Pp@}Io=4|)23 zI^LOboxZZOF5+37a&>X-%%}jh=?$BwpEi-4zUJ{s*0(oAw>W>3^890QHg#FE(ZgH6 zHuM~jG_JebkRqJ8|5pf?-^J;l|KycBe0FRr*8A93VSYUK%j?A{Dav*8pMSr!d~w;D zjrVG2pPsQmSAAzr>)Qq+S^F;K*WYUA*dD8~I{5MQ`-#{73NAXlJ<#oR-==y6t67eb zr`+vwRocH)w!B%Z^!IOOo&CWozry+>FXru9|M9oyw%A#Xd4_W@i7%;-e^#{nMp^2z zD5K9d_R~uzpEvZ+sQb-mRj!7J(n)=r+9dg@}~y6QQq>vTWtnAOv)Qgif& z?By$$Y~9MwoH2O5bl;j)xf@(VW=JRg-FrdGQt@#A%%Gb=4$iY*uiI?W9TRSJr0?VE zZJJKMBF$rcf0(XwmNFLJ61m6q_=`M-h0mAo9czm{A;;)vljrHQIT^O5^J}WBq#xF%M5__iwP$k7t-pKS_f36s)BaAlY+cW=OOl6r*DXVlhwZbcJcaa^?3TPkoOjEjukvhys%ht@3O$} zg3scOFRTsX+Qal&KiR};YVVpAA08`hs(a|DyxQ8f<|gm156TC=YtOK;Y5c$9;@usY z1>KA>AGa=vci(YOZn5^v*F5L@r~eFW5}0?S$&E?wV)cxNZ_TW(T}{|4A}#Xs1Yhpq zU-sV^Kd8;rYgAr*m-kt7{Hm8PYp1>z7b-}5FukU>QGM~c)WzzGy(~o&3SBIhI{Upo zxoIx<{;V_V7iY_}_WhVG(04&uJ>+ch?>Mtv+}51^_u`+Go#aZrc~xh5!5jmt_nsf( zQ+~1BOKto7gRdZE>z)G>MUUzm%rSa>GWibQOwMeUf(_lZ_o*wcU7g>xckS8g)vuR* zcyj96>{{=N&D(b-ZhF5b+w1gRQ}==wd*f@~=kNVqe*d@i``YJw_kaBz|KqRzzVH0^ zexLU(t}9I~t}V@6x&Ond=B@iu_if#hva0;IcDdMev)`|!Z?50>@7$lD{N%@{j@9H} zwwrnH#dq;_b7s!le?5BU`}mC+=i+AU+q`Aht~|}PaW^9(_r9->d#St5|9)K5-1^J5 zb9V0CwROvd`1z(uY0%N z`#ZH)d;R{+nZ3_W&0Tu0s{U8m|96j0O`W;I|T~eO7tNyuPeck6% zT~nt|?LNJA-;RwNXHEL?=gYCZNB>@4e-|^GdFyoSSvasXn=`wlKH2u=MCQ`_QcNU$2+^_;PK_|IM5JCU<>a zot^!+baMQw?_xfwJNMt*?d_Izs{DF&_V+cGGi-huPu~9a{3OkMy}WN>V%w+rcHR=- zr5T~O*EIN6L`>9{-uC1z2RmP7f3K4MJJWja?bqF(mu=g)wQjrp<>;uW+5|1>>}`8z zMMlROoV`6IIjyd=@~l_oL9>bc*Q%!l+9&^upS*cne&vMPnTP&ddNkL1*^8WiI`QW} zmQGv${AX3;dhwrCo$IIn{53(d(klJQvo&|-Or9ON(^B7D{K>OLEA_to&NlvDeQoMY zwx3H?Z*zS-fA-#^Q)%^$^?bXgeB3OUsVQ`R^}Ct-^Obu4&%OO-?d)5hR^@htrgz;aouCarM;oI*PY*=`Fclr`OfEgwP&ZbcAwPO zSr_fUbI;a@5ipv@1l!d z=4ap8wnM(J!T;f`e7`+go0jjp^RKMaQ^fq;+WfosHps+S3lv2!zHs7l(e}#k+e_z{ zRHPN}y+1!vL3I5q=ICs_=YK9;W9!_0j*hvlwcUYdT@?3yFfYtJ>>Tc&2ub-kH& zCHgP>x0eh@y4~k`Z2ghAd;7ke>}tpPQ|$L{HF|&R&a~VwV(-3v4ZX}Qw7)ydbS{(L zE%w(}SUxmA`t?dIHal!%&6Lbw^A#%PD|&Zk&)t)mH&NhAdG5_s4|=p$ezoF`{yf`k z_g`z~s4s_|jn+Q3bG_Sb)-@yYc2u14)~}(rx7mEKUsLtv`t+xvCm+S$h`M9KyZW@; zzTY>ue7f;P_51qiV)o8vDt~?~pL%2VvZMA2vzMJ}%k0j$bNSGBAEX|Lw4U0t^$ zz4f6*(&Txw4;@lks&%)lwu^n)LGw9fC#o86hvn;Bmb~4Wnk+p*=+)wDY^`nwnW9$Uy*iC7B zF5QpXCYLc!{>qwXk%Axi-}hRq4@? z|2|;H)nd`0a{jPw&!+#1mR|ND?EIvKhV7zVekV5Ouhm)m?ZlfR?&#HKw?5ZetUhe^ z_>b-6{nw*o9zEE+!$sC=_NMK5Z>Q~faw+J2?(FCLwu-GXy6v>j)#O+CTF%=SQi_wa zmu}ya@u_^9Sx%YsmUWT+akJ_T_PaFteC6xSx$|20M#kbT8`IvF-MyvtGx2vyYn#rr z=_`HJu6xxzd}lTFwAsIuq~CI9vA$=8{xnNoieLSSd)Z}GP&YS*T{5~{nSw*Kme%C*AF_D$B6ll7W`19B|^EN-r^z~`#Z;~{te8nHcpIm$N+dH41eZ4{UuitG8 zn-+e5k@f89NgsZPWpkMY#8)^tZP=9+FKS+8mbGDP%2Q*1$775B27Z6Y@pRMvuCSJE zJ2zdNY0~|#Y~F%do8HIV`d<0UFDiNQwu}FCEaxZZ=Wy@bx6e!Sl*pHe;%!q?XX|&R zIlkg~!S{9DH7nDDwoSTOvT#DF{R%rT;yH8W>`yb-%Ef-p z|2n0b*c@v^)N4hSunTej(+Yjol4Wf{ts*uxaPXRpp*zwYMjCh7kR;`*eM z433`vwl?mrajLX!j_&=q_cMd;f0MhurhcR1&r_@3%B|6}-S9n()AycH{D!ZIoZ@#h zdPH@3O=lc>`;~oL;mO=D;=YNcm8U0ZMpfUvwISTzBx&KUcl$L9zu%p5;_#Y?4XyVk z@LQ~f4#f-wYSNE=>41bWpUTtow$MV#3L+- zA4YxOymiN>U0XkXvNcb;vu}UK&->f2eqM9cr#gGF$@A~x^Oh&_S8q>b+o8Cz?|E|c z?CjOjvmZ_<`Fif!sk`?sbzcczGs!8k=KIHaeBWK`;%Apqr47HYTzcot z{w)>9-GtWNe7QD$E938=|GCBt$@NFKUAlH#$JFOq*r97&TP0tIC5QPg`<(G?xsiS9 zvYyOYp2=-5@;crbRhT)Ho9>#uV0YrK)fZx?y_;21KH;6*(%pevM=0qoU*-jw~YW#Q<2=)LSCaA z>@3O;W_M=?T$Da>;6Ws7M9e+!2i8nWSQk{WRT@|97Pr}D*d#cmh9g4D;lZgu*FNrw z+pcFt4!(80BdQRr{*mcY=%c6;j*naw0`jKL$d{a?bF3!+=$)bkL2Z1zO}FJ9yuJ|2 zYm>F&CHI7PEGZip@-9Cx~f=T>>hx#m;y%I=oOCQaMkw8t;3ep1stMGMAWS*JMl=ifgb zI->Suldt0q*%hvGH;*Opm-9@Laafx+p+aBCdU_!X%Po&bHrEqX@|Nwn(VtbKFL%6~ zc|yvgqb@O5)DQk~`16SKSEa~1HTnG(jWTTd^A^p&Y?#_yVqEc2fO$7d-v(yh>?YU`wC-R&ve^JMiI(XGy3WS9cG zr3=kkqwmerb>8|U^i*OU+YhM|zilo@Dy_ zc|lOS*Wc{{UyN2*Tnu$wFTriduDFk(%JhOYFQz7K&T5Ljc0IafC&!u84;oIP zGX0uY{#{qxUvnmx=X}wFK$ovi7W%q=C{SIsWXj{`ns*su9EFV@2waaCg2TUqXK}LUid3FH5#6Ho zJlP?YA;|SS`^_UfSryMzDp_({y;d+t-2e9WOd0#sUf=Bk0q-_ctv>K+<0_MKrv)3k z+M?@an@$AXvwEi$a82<}YNNvBrjVc07OHN&;UipQy`V<%+3P2Fy0pItT#!E&%lD;j z?j_Ajs~4CvXz3kyd}7vlv_&t5^XVEXA3I84*NK<<3^JJ~!aj!cM-Z}I7DM$ShyQ6k};*B#!Io!!7 z3b}6m)O}*G;a!Z^J-sZoiQ!AD?YA`uKCxgvbH8hL=k`Fe{x7yLnZY`B&h~~AyNoy5r8hm>?3^axxq|s+oYUf;+W&IftGb<2 zG@asj7YS^+A$w`r!VR-0I$ph|aIRiz_RBT-r*|br8*-%Hl{e1~4fr`fN$dF|vz;vL z^IKP+I{u@};pvoz^WVDoM=$#rQL@AHuRCU1bnj7~@R=d&p~st=;uTTuH!uEv%fIZ7%a$Ya+}>@`wU#oNG)vKY=gU`r zv}FG9Jo%&)vQy0D(6lQr9Ue`VxmqltS}t1gU@@b|L&JtmvCP}$J9n<+wilJI7Pi@R zA~E5OR&d|L78_piyE=KK&Do9_Qz{kt-WAQ8 z7~;VDFjer?WY5Gpfxa^rIt|V2?~x60f2fgLALT(;!FYm4?p_XC&RZ&ApL_EpTDwi(?8QTb{l1#rfilBRjdtf4tQ^EHp`mydu!-}%RBbI`TMy{_nhL4 z(jRip9x=RGX_NN4Ufk~V=zVG1+NSNCHGH$Ct(9|Ooycw{pnP^=*6PBmT9?!Vx0;@K zWl$t?K~6Ne#>)NZ;@_9_Bu=d7nfdC$m3=qtSF?sBPV!Qn-L!>arrLy8JU!<^(jCw5 zm1TXVmNLut;F`_4TO|(KZ4o^xQOo+m`@&_NW1%6t4j*_FAnS6^C&$T3ZN()C_FrAs zBMOa7zsQK>nYEo(y2-mP_{;Lduv?1PPk!TEvDPe^b$uFB40~ru(e)#BD<(FTGXx2GlF8`mfx#R`fAs;$ue_~z;jv0 z&O8U@P1c3l$7jsdesQe#;l#N+GCOY-eDJ$H-$`PEbLH#>i!SGgeki@$G;v0Ll%}wA zkkk}y^Y#avFB&g@+k0$lWm4cO_FKYb9Bq%!J>D46E~F~Y&MzArurDv8=8U(;p<`Y; zA7u{pA9?cf%DS(+^~>CNKj;ZW20W*0d?L(ZQNm|H#)unXu@Vy?a~Icir%qeN^y%!ke}P5t|rGzaxzg zk1HsK-`l)l#ql@uuN!?R*p;z#gLadWK*ry)gUXEu_SRZXJ7`%@EyGdrDK6J>_nosh zR*RH9sur?(xuupbf3A)9= zclV@MxYbLRem;)5cQ{X1>R(pW3B7r*Cv)wqNliSjVy2(vS**AE!Rp4XtCeM?FV@XF z_#=h$$1i!IcvfF0!Q|O}pI8J|cxS6!EPuElNi*DEuZI|ff*c7bQXPA&-_#wj1y?me=`s} z|5~4Q(yD)PwqILfZ|)E6xw|jF+v=2E9j~)#kzCt+bBp(?b|)Kq*BM?pI?dH$yHkv& z<(-vl+!9vb%9*}rqKj?8_cErvyM-r+Zk=OZnc;DaHSJclc9zdBbK|=lX?Y z<=wo-_?~Nt6mLpsziMRbpG^&?H+vU__dT?F=H676J;`S43D>KOq*goZXepd@{iDp6 zqe8jm4JDeZPhDxW5wG6Sq(7}>QdD8|>eGTdjP<>Y8ESSe_$z9?s$r9KpgmhirTp^_ z6O9j_j89)*Xc-y5HR$f1R)-yiTAp{d2u}3B)Nm<7&}akKH;>6Sd_`x>e=@D;bnshw zr$IL*pqKSVKIc89hYLz77CBznG@(}VLYu-?mIYi4J5MeQ`?H4e>8a-1k_}Ie@-t1U zHhUD>_V|F~>;ry0o46AD9nQ{Ts5D_SVOYBIpjOEpr{|~rjw+OfWovX4D@}N46~K6M z^Z$v8(-^|bCt6HkWhgqQ+btu>@Z7Sr@Nl0Ob3y5WRgXTqeVy&d*X!CY=q8!4tm3aQ zo7SzyqMeia5C50_x>ZYb!D@+;Y0F!ez14U!-Pdu|50TFdCSeo9K9&i17;Ad8*NTWJ zo@HI7H0jFRPG1v$;d|FP?WQN2uy&sd5obDcJCOHyX(m(ERh1x@HvV0WK* z+c3P>s^TK^^v78|y{t@?Oz&s`%)96(HX!mws@9jBcwQqVYpP|d$;2Fovrz<`0T;Teq zCE3yM{eG{Pa$U?lM~>_-&eLCFaLJYT)QX0ZUGHv*{!-s7aP)BIh1W&}zoRa9H_ulKy6liuru0jy$N2xjFMi9W#2j7u z^;)Oq>P_<+wZavI+<%(%1i#GuW7PAg-TF?;i%64oyH;Knw4Lf?BK_TXPD*)+!fm<9Sug;OWId#k-bX5HQz zx!hAvXKdnJRW?cU^{rdc3u5})yQh5G+`+2n__gGEwAd8(y?HeXmrSaxl8n1PJxkJ3 zT`}|YZ^2WBFEqQEw5J8eN5`INdmS*>WWu?G+nP)KjxfFcWv#fhSl050n0mQts=#dC zWfQU-Loa#oR!p6>$X>`|M#LLceXEO}bJw0a;0 zWzwz%KX|5`KKcG5zglQxbWyo}!<6U^A5D@bw5o>y6EI?Sz%eudFwfFz5TRC2z>g{ZuM* zWaE;P9OD1ZrP_YhxLRL=FXeRegc%l*Q!np{`Gn~DcAj;5t5+|aDZkDH}&ZE;P1)B4BXgqGfZ z%)8M$zje>MNX^Dg=U6^ldc~IQ6#Yy*z_D;B2TkPTV8 z?(X%&drD;fih9}X5{|!X`r^z}7AM8n>*jCXFLT({mv~jn|zV^U;tNCl%ELivL zx*wu!6Dub)PhL>*Lhk=w5th839Q~e(a+WH;p0;L7g@TAz4hy2!iZ}{$#4SCtORQSN zfXk34&hwpEn&+d(3`^LXGS(c=j$jGk7JI}IjO@Ka7U#N@>h%ay#9^#-DT`*_~5oCv*QQFYwP{={ykWfcWSCATp)^}N4R zHgl6)$ix{_%2$+J-La_X;&p+5i+hgwhJW(j$DwrNZ`@KP*HcXMxpcUL)}uFD>!V`c*yGzOn~PBTDKNv>N@xHKjc^JzVR)Eb-F?mt5b{`$sHR zS#zIhl~`GPHg`*E*Om@HU&RSemTaGSou?$oeNW8M?T^!|75&n~tUi?pJaV~u?+o{e z=$jHzf^4gcSMCZ~Drat%Yw>|t5Ls$lA1#i2OQ z(N%Mwj>hzdzrKXbVq9`Mxn?a-=@r`xQuF-|Ejw+vD*1!7=y?sNt38!Z6q)ZjMYXtJ z*KBq(n4nY{y-`SO-x0}PVTV^D#r9dhIG!xuw~odB3D5II`C6{){a7YVsmgZhs5;X3 z?(2ogmrJ6rvfPTgUMA15pm_t=ui|e02NSOyZLASFBYVF+p*PduPPc90+jItJ=_>YQ zrhPNCu9QxiqmWlPC-?o1Z;KlqaK`65@45DX>xbBd52}4Co-!LBU-7yA@^xj!?*-pQ z1<(2N=`Wpa*dtZKbeV6<>^0SQE(=G-vYFVHxTqfaEWc zL;bav|D+Zzu*umvtI4bVUsqwuJ0<=oDYI}Ug=tgoOf3xmM{bRO3whrL^q8mA^kr!a0ede*jFr~Ld6`|TE0dmUfqUGV?@ zhHdF&>&Kq9-P^N7C;wv!+kaT)gshZyHeNvif$&@OAxqaq4cN?<2ii*4Ydsh3!mrX9b zttHxXJBvdUo84mWzRRs`584&s71v>XCG_$0fHizh2C*z_XItNi-Qgd>R6qCi1-2Cp zOt0KNC0%;$X?iX3%`N_`y|N0No~N^P(yT{}M~Wu6c&)5WYWL!=Dcg6%b(L~~o9>jN3*xWcUOe3z)_GgE zImyv{$&=W=4??NMbKjqKTyeX1w)(P1ZEDX;s`UHW7E5n`bIe0y=65v}RVhBFH+opykP{8k=|RBldB4!GTZ@tWGLc-h}YQ_yC47KN?3ZL)Ba-==qIfkm;aY`DXJS=l(}sXwSZ(zmOt zUZu@is-<$W%&f8t@8r3%9$RdS3#HYW z9t6wXU#k=2Ep|ZEc>4{d-}*dN)mvQ#Quh`q7vh(~$M`;LY`2VbvC<8#)tIifFgX-A&^l8>QR zrs;)VT-@IE;?k?4^G-bnOqbOB+3GssYo6ztZCpB5){C?|`5vS{`Yf#Xv7c$ywk$5+ z@R_9yXDz1`1{fN8+&l46W{2(ZGCQWJs~FZDvpjd(&mrO0&p!R5Q^n^k*8K5lM%Ed| z`EtQ;xDK;dcL{hptxsR!n<)N8hwHP5~x^Z09n5FwED&iEZa>;Jt9<1YX-uS~=}mF<^zeXeu=qN)*Y zxK8BA@=I(P-5ORQ%^R`<+)YA?`F7lXce%%L)#r@kzE0X@ayC~a8%^##cTrH^V34N3 zV0qHB?@)8XoYHfp?dz+=HMg!e=B+XaW11zEF8HwB@9(EwX=@z|l~eO8Hwk1&Jn3hY zYP;|}X8k8AraMQT9n~svF5mt7%S<^=x3AXIyBG30xM~}2sckT0I&0a-6|ld1edyVp zulDi%df!c~(mI3&4L zYiY00(}ab*@4u>9#s%Nsa(w;a+kHD(XJ4CpW!Hqr-6wX%*|9HroYY(Fm#eQ>$oTX^ z>c`tm>piFC=`D4U)c@_V?010Dzkkso@((8^27cMHsrC8PvWrok%@;q0s-1f~slQh3 z@WqBB$JvC0%`(JQWR%o+>MrKxmTNr_*zz1@FGxtVub ziV2gdNPgOaMelN@Jv+c#_zNc56&y{?4Wq+c*d)l3+ zvQ4JX0#C9p)M8bB&9Lf1neLXd%+ga!JKIkA>hK;7x%p*|q3p@)kLyZOJva^1 zOkJ=0#3=n;rd*zIBt5%xQ=x0B%A3mA*~^ViEjwQSG{DT3$-{lk*PPjb`R9W2n?KCh z<+VlP$=gNSmfYKNuwdyGL%CihZOx5vc8dBbJ?4n z8q$)dPA>j@BE7^rWR~;C;(421EIFpSYlU0?iB%P^C+=1h+4c0cn`VjNuQgj&>2qne zKAToMY5L)eg?H7i)jTL(^k8$-qGi0iR|Qt*KLV$E&m=hbW3c)79L#>T#Dlr%}$P$^O+AT_c5SekE1 z+0u0;7td?Iw45LH$FJ)Yzmw!Q2LYQ?Uu32mr7sHHUlemHDCVBtDkuAQ%U(x%Z(JXo znQ`7;+mnr0JYI}Ic?{M(z9g%#eRwbuY&03jst}0%})c+yl#EFra zmd668Ybkz_vH8W;W84_G-|ubKGm#6sH`;Bl%VqKSsv#-6f`k84_aaN)n_oZ7WNcZj zy8eKmUF=6g!6m|HAI_ZbDJNvhT3q;i84vTzZT){roolR|j;@`RmBX%`rOIQD9TEndt-G}$5lhd6+F#X&wAxWU)7aA z(V4fxR4SssuWFyb3_9KYu0Z8R_CiC~1N;jg3CAxh zk3Hs@VEOv1|Em=;$%Wg#%4`TpX3bmp#QKx%`@Q~0eEoY1%6~uL6u$FHBfn{O9k=1f zTKnT~Id;tDyb|_~&tX#EZTExD_93@=wEL|;?_%67J{xMOf+5b z_TY`p_c{*q=h_QJ@XWed!zCs=>k5be#wUBXi?Zxu$rp;?I*=5wb*6}pZh~h?meBk! zwi4bR&eiR&EL2QnuZP{c-LvKLx^3&2Mc-fTYBKw4FlSK^x9L}w6RvG@eK8oUDzU{y{y_y;BYO^iYrswlqXygxjI?4#gp$A zSK;Pbj;V|09tyr!!kTI7y5ZN!#D7vpMfmniueyAdQ=D-vo8a}Ntxwl`o%(3=t5Kc# zf6gR7`%BDL#~!8Wv8Gg@Ux9wBUawQcXUY+gQt4ZkG&ez z442MY@-ReMc&ojOlAc)HVZP0UHt3p^Y$dew;itjI##?aPx;*z)Y*t9Uz9c4_3(~@R9Hx|!5gzj ztIK*$l?wPRU2v&C^;MwmE=gx`(+>fj>VMu%*OM=J_*8U7jno213s&`ol1I*WZoTpF zSM%EoUkZ+x-Fx-zoQ%uz=os$<-wSdky=rq0?7j7F_rKd)Ccg7{G-GR{!`Cf}Q>VFv zU%B@9!4HEKFET>v)F&u+c+I_kp+9HFj=HU%YcG|{AE{M+V$O1Y!NG4Thi>VF*fBcW zGe1jsVWvCxwL!wVk13D38>+Y*Ze3dKm@(H($2~bC<>dAd^R|b1B`T*QPbo9p^JKJR zkl6L)m&=8D+}_J{vJ-`Kr_6hN-|fia+8fCNEb^X0YgL{{2Hf10TCn{2^cQlj?f(L& zWEkjOtTQ>@xp}QH_m?dORrg948C2!$)LvD0>9Ix2;ljS#D>S+%eOVAMyW`5y3cqrB zbD>q4wL9t##2vA_IwN|A!+Pm8J9n=PTlS(<$VE4VS#|D{>jnv09_p%G;=lZp9A`}N zJ-(#0a&`8*ILFSC)87oHINAr#Zd~=`QIUq0?JXtg>5IG4*S*MYSE(YFj<7k%2IB(m^NREyD{ zm2ykp_hibrY9vkQu$_J-|3|ExqZNm8*wTxEt3O!ZkNUXCq$^~4Tk1uxXF&$9pLZF? zKHkp2%T&ww;_y=EiIN%BOPb$x#W_DRp5Vy&qC4&Pyp@~6>k4glz5Opb!%>>IjW6zk z{LR&>ZZQX5G+8N^Yt)GOPFr+6SzYgV(YcPZcP_t zoNlN#5V*`&@YUJ-oRhql*4Bt*v$kl~6Fj#T$M6KLooFwr96e8D<+>lC7gY^jXMWrz zeqOUc{Dpj{ZQ`t-sZ92A2bX^S`mExS8k1e3ko6Xq`K6b=84Wk^$@V;0TX)7-xLN1O zvM_U@=ou1HwGv0(KYaTrQk!*_v#FTLms8<$O!CuTT-c^xxKpBT|IyE)w_BZ^JB#l~ zxg4_0N$D1HU!dgDdq+tA&xy`UXFle=UD3aIMM1(xUsH~^i(XWf99{lfQ1pJF{_2eE z?NPNHrUuU?qZT(c7Jo8)3Vr* zwTmv@)Q|OE(``PtrG&#X`pxwVW}EZ{YZk9yUGAa&pl6GHMBAD#-Zy`(?b51H33!?2 z{B~L9fj3L4g;#LRiwKX{fkD@^`3+X>m}FRwZHHQi1)(;NQVU3T)3=Tj?G zukqcnW7D#-DP$>!01| z_jW&z?#hOC?pVJjclNJkT727tZN9uHls%xg?8A=EYp+aHt~lnNb?6p;x}w?rQFYwU z8SRJfG>gr5uP)J@HlZ#yuK)0*{v)gY7pu-fwvMjAw2cziBS2C`e>~-0A#h z;@#&CamPQLGF;_z=K9pLk&pS0))a53y?cHM#}|z~P66`Hd!qc(<=0(|Wz8@C;PEQ{ zlE8~{hJ0qnTj?<+hTHj;@7jFv&XL3)ig_EkdTZw#xqFv?F`K<`bpNLdTLU`{SGeze zvwP3FeXWQ7Jl=8e>fr-lO(uEi$V@*ct8|TJuUW`@`Qwcn*7->|sJ_1Sq}?HvW9szD zZs%s7ey_x$y*%LAgAi-lMHk-GFUeNL?Ad3G&R(LR}aQv;5jyL;HS zbA(8RyfRn!4mh3^6K!RE#`>SCJ9BR9}Sr zJIpmR9qO7+<$f&|+CQV|)XAk!X0rq`mKyEacucgE$(KF<#k)3P{?L%*M*%5!V~#Lx z)+oKq?Q?Cq#p&HGekUXwmRweNV(hah$oI!1mJ@~=;c9uFC4&1lv*xC4&bWW8F2-x$ z)JM}YMVjWuO#b62bbaN;bv=itGuo|9VYUvxE!8+f*bRVSlwK?uyLN?f%puO zl~WZ@+Dv$59)HeR($9IBd&5tLsJoM{|JHbNWwVv6UEW;f^HXogNId5L7F2Ls*+`f5 z^eL8?tO~ZQOST-l)gB#d@uQ$3OmE+ z?{oieDyf)x?mT4ER1ztoxYmHVF!2lbqg8#os@%mbO%oUHk#JozvERJEX8AD>)t;5l z0vGWFNKWzCANM`O%hK;~vy8K4lpROUok@9@w2!=yHsD~kUvk^boym1N*9pgqz3qy- z&uQ-qQd+W8q*LDf*2dSLesmxEzD|BYy6tM_wLdp?-kR6)hfm?sBinwa6(ZWr%wHs! z6nI;&5Lg-rpb?@ zuKHT~>FwgGoqsWIsYlGy<& zI2c#%W-?i}j%mre3*i&~EKOe-HT|tshZ^6HONGZ5?SGxLyCGz8-|batuaj>1@YqN* zUoQydHw&D;Y+}Ckv2YJfC+^TP!2|kCKQgzht}eCGy)pOuE7mIq_5a?zRQXU$HJTxOnNQrk}ZVC#yo<*K~&Kwc(D@=RQXS z%rV{cds@5c_U4=gcIS@ny~!i9r|ziR{>6*s^*H%wiOnu7xVb3hpyRp2Q(Ip}>Wd#$ z|1G{L;P{dD#%PBsLB4#eW8v--;@j@MzBGx&?rqbfJ!faX%DZCwz~SP9-%^|H_6eni zHlKC&XYc9Zi*wqRd1W78o5r14=~q%Ouc+3#o%%}5rKOr7HM6DK`blXG*DCYoV~#OX z)vj5TaTL5?V8A)Sl|PxwT6aqt%M$6F((_-kZLCg)HoTnYe0y!W{Cn5GT1>r>{mk8c zcef}k^9ktFn|;gT$U2U+fR9q*ueJXDJ+Pd^DzF1eY3 z^&+7MU;lG$Y_FN?zj1BWgr)7_Pmz5~gE`npIl6`2OxpuJ&FOWG=k#@9Dm?&C{1#R6^rR zzIrMZ1+&j*^~e>h=aD@yC$auLzf~32svwp-bB-(BzMeJVm_>rhB86D*BC$(945#=; zE}Hq(c3=C&?9gEYNIPw?06zfRFVLSIA9Y^AF3z7bmzcUZA599{7CSviXd6 z=Cg>I=LUT~r!i^jCGCc|N6k{ZSbnl;{AXVf?^e2XoN zszg3|utc`+F>(32MaJ*py5`w@&DNIFk2*cy(JLfpxuv(puRY+}-B@JnGm@_U+bp55C=D z`L@KCM|k=QwlBtp{N?4mLi<@yZQh~1*dvu+3Zr>-(WvcqR?fRplCkK=T zSElt=xnEWLS(UEoAYfW_HzIkxlmFD&ZnJmJXlLx#@|w~-?ZvZgiZ;bX^O*U0dAJw& za20LlTWKlx#qwf;d{laPmD;-dfmgEFE){fV9b53&_k+fwCzbzwvI_KHy>*@9``M1O zepThyi1zC}El&E*#U}5CPgHZ?3yi*Ty_ZE|*7d!)3i*;X!j+j?_uAR?k5>Mi;=9m@ zou%r+#n)+ao{z$-y_TD->QmDL-LT)n1m=qcU~jQBRE6Pc5BWv7_X=Vy{(J zfcg6ul7W{`%x1qI9>DjsPUpkJ6mU6<6HVG z>F-!D&GBf@)yPSD5`&wM_x2R{|BbQkp zxqkRt)W+*Fk5yz;t8??vE6U*qNstf4=&5Yvc8{y>cmkboV`*d0yf2 z$<2S(6;^&ToG-X+KKB!y9X!*Ie|XRJdGVL&GyZWr)-brAZc*Dd|9xuJ-G=iV(~~=X zhR)!BxVmT;_n$qdi*$_civNsCsGKl|>(4%+6S~KXw2b5zMsvQH9?5sK;osVZyuQy< zciOSfd?)wp{>JN4msc0s#w6_YDX0{i@y_J3bm}kGf3XQwmCNp@RF&#|XZ8F4edf7& z4*S$Dd9Z8+)u`!Ylo(#cupGoOYPuwC&-{Z$(m@)+*0ge)j!| zKK|laX^(E!O*6Hvo-=&yNC;f;N#j4TfP*q7Wh z`K|wr`hCFhDgM)T>FkZy@0%ZcSvLQr;5ox}#)p2-GxYmryRDJgt#-u~$*B*^ zdkS}jnjJg&Gj&<{gr}F&WS5t;$JQOTI}$%XNm@`=B2{wR&UgP8E_`uy`T0#UT5FiU zMAsZs`25rC^4lGLS~vGiKmK^m`XfKsEba?@{%>}9{f0f8_zrEcj^;y$kzSV2)i~nEy*r%`f8&dP!a_*DKpWdWb{@=CmE|d6~sRznMX4=Kp zpAR_l=ze-+`O>wDR{OJ8+})EfFLiF#r>U==PL9zJdGz{V^{M~nk$R@pu@C;ZtQXv) zU-0w&t=I07_02D9+V2NfPJi=N`Om&{Uq5XBY5Osr@6+`ke>typ%WtpW{-bu{Y5(`j zckGEzvJ{%@TV31tGhC>|?(|c|+Fx__$~}MH&h%HoYX7m9E9&Z6eoAb+Z1j5dlHY;L zCO`fqRLgl^{?YwQYU-E&iaIaed@nESkKL8xMW0ja?s0q)|M7SGj(;oU_MQ55)8JM1 z5&nOh7IK{2zn=B!Irfseb3e9C{3QD!bcg6m^`TwI9%vTpW|9Z~9lt-1lFHe77fAjf&&exm| z=cN6f^j!5{ZP!zWihse24P$=%S^sIXvCnI1y|w4VQ&%U$2YC6BRKlv~H z=U@NZzvU6@>QmnTH;ez@xcA?8wVat^G$E(j5&eHikM`roX^!NX@pE-Z~%=P8a{_5%XZ4X{=S|}*jIe*W8 zfm{7X`dQ|2213CX%;s=EyPrHW)=;Y7W47Qj)%wqTzni;t`h}Kj7SF1l)AnNS^DV4? z!G&L!)@di3gxMU+JkKV)T3;4rI&@Nsv8N6!-AA%=5Lz@ttR-=PW;* z>A$E>|Iq%rD;_!?pPTIRZ?9PYe#6-(H{ z7W`v+F8^Scgz1&~Z$+wif17;f{w&Y^$+Tz739GUIy3#cxk-m^{7E zaOoH37PsENjSsi^-wNrRyqfVW#H~y?o&l}b*DxPs!JVL*l@$R;T7qu?xzIA?MYGS4Jb;WsO zo$Fo>;g7stc6Yr^ne!&2;{nsJFPF;iMJ zNBaIW(V5>f+vhye)1S`VV|cu7LeS|O-T$Ajx15&VcDm@;g(CH?Ke(JkiU&a}kym|gtWNP+>3w1i5{%_9XQ9S->!7tU?`kNBw z#~fasG#8J_{dJ$8=jWry?vvAlFU>dIXPYDO{`CF>FOSW5S64lE^Y#B~6?P}TmYt6K zzi{*Ox$}ef$~=2+{`PD6oPEb%cK&<+>9c{Y?f5pG22t`)0>K9Q)D8i zeHOUBe2cjA8u|au6aF_~}Cs{#5{3hqo-R+V0jr`{G_TT>bWB=Kg#@}WY z7kw`LB{1FjZ@c0ClVAD`{~4@%ZxC1IXJ~qH|FNf&zT_ADk~y_J_hIhi+tZg@@b}L3 zlnF~b!>ae*_t@mrUEw=r+<$ymx_m2n$@_Poc?#sJz6U6spWUcgpHr zX{*7i|M{D3xE*iVc5b;O#wTH~re^prIVX7cQeC6F>NodAIYxDcvPV8s$c;mantjZf~AnP?mhA{=_ajL7U%cAKn}m{AKB@RUDyvp_F#C+Rk@dOC?;G!&;J<5N#UB1-)4M6(B>jwqjy$MTe#{Xi-{M&k{mh`h zQ10-J`l**~(@S`k~Sb zTYkc}b5?uLd(;PCo^)?dMoqPTu|?v%LgmjNx@Lc>IrHO(qWF`{0=cZ$?Lw7WI^v%; zZgttG^!pFf^wy-gev5pr?Av?9XtJIA#Eo|zRp}Y<&NP!XGAWb4C~Bs}N~Q_sBCn>L zJd$&j_4<_$|K==J{J&CYU#8&Iv%$}u3vOOnzD;u5_U31+Qa>%-pzzJ|uWYK%{@g2q z;X*aWVPC@QCtFQ&{P+E>y*>}Wmi&h4ExT=Ao^f%TaeB$UFZ)xh*Ro~u&nVY@vMTUz)%Ab> z=Tw(nwfk)|U1Rzu9o@N}OWpsO&n&CH_xD)8zsLP&mD}F(F8=&1w@+A2CU)W9!j|# z`&H(2Y(e?6n>VH!{k-2VCHeA;ZbaYKlmzir$No6F{r~Uz;Xi-#|CdF7HrwBQ>zl~F zSLyd6!|B>@ZqL4>rz1Txf3l@o{43{}T|JhQ6vIFLWcmN&{_pqfO$(gWf;O!vF-kMq zeAYJi|M&Kp_V$fanONU%@-mGOVgETRePYOto3)pZIL~aZPitL}_sD+Z^(Xc6%jPBf zJZa*Sh@GV5?Y83dj*OC7^JhIjr#GWZu#f+K;e|wb+Mw6@Je!pQ~S<}^!7NMXrgNfVgS%QEZc*(|L{%QB`CeuIld@SB@rT<6A$6`Z~_xB%{l=z?f zz3bw}waE{Czgyk* zt)^y2&Cx08_Gh+m92P#-Z-1#Z-<9cyYBI)qi&lh55pJRUi zuzBU5>r_9y+&-i3_K%7Q$9m&t`;~9j9{lmMU%8QAt!n>~%#1Z(yyraAIKA#f z>aVZ~&+b1r>`p%R{d_Cm+V881XXUf=n(h5S#h)1NcPj& z{aGb^OAo)VYnHy9Umz8^eCkt^*mM4w`_lgGV7PkP;`A$PpUqhdvp2ujsIj*e@{zqo8QZB;?s0& z$K`(h{_;7scU69GdRw{u`EP@N(J2$tV_aq*TWcJ1{JnMjgV%349`BpPoFcdV*c|lU-rq} zD4utD^1pxQ=gd1*buR97j{2rL$7_eT%=i}QS3NCr^4_Vv@5Q&xNv*X1tlzZ7rT)N) zUGn+&pG?oNc{RUySM55vzkljGpN1H1+JEG+&7qeo^4faOT$Jc}+h?>_S!TIR(Kh|$ zqnpHjE}DGS{<+mWgDZZ=UVb_=eZzmv*Eb!V?Fz)I{kz<*NyV4U_%|i@{P~yFRib^> zTyxqg{0e5-YG$V7h8lZRcUD~R#Q7?0TeofoQ z_x)4N36ABeRw2`wkFCG^d-|K(8UIpm{IvJ?zciulkG|t9LBC+XB|pQDti!xn{TV-V`VvJM-D!<)CJX-NzIO93xW9Hw=Vl7-|8Lllcz7>o+vo5df2xIkdVWv+FP2!Hb+;8gru?nz%Ufurp z+;rx@iz=r)W{i)VeSd=C!h9|3tTTude)`h>-4)>&rtn(k-m^WDm+uzJ91Wg!w|tYlUJ5c8k6 z_sGi{Z4J5b%g5jEsfkOps_u>dJ3V#xgqrng_a>K%MxI{fS{a`@uh(T)t>doRH{mC^ zf5qlW?R>|3>23O4y@DrEPqNh~zN|=(!SgPA=7*NmZs|R@&of{7jC-)ezPCC$a5*k=F_f;FD@Pz++^JO<-7Kux|XkVZvACkY<+3pnfLBD%QB~JKWed* z-Q&OA`Ip}|ygik(!R1M1o!)9b`*TJM@7|rCu-|$A_MUf66DM-*E|Pu2gj@v~U{K77iB{l%IluFIO;!gqgRnzd!a zqg&y2`TM49+-{c^7hoqY7+f~v9M9>PiYYzoEJWvD^*;DV;*{FzO(F9R&-t!$efy*D zduE+!e)WCZ$KAav=lt$@XC|4x)4MKm;;n@06&rL8{rSDnxM)|4yx`I;OBtMJe_mG@ zD`vU=NW1LgaGT)Y5yeVZrdGs1vst45*m363@RFW&OT=yBAKJKN>pU<#@>OGbpvNw= z+tKQZmjf4TPw!m!u;uX^&&`No?zpLsuPs;q0>)y0Na7o6Fo z9qx87{o(w-T{@?3H>_RtH-@|7nZ^7y60aritC?BG>#dl)dQJ1B_e!T91)tHj+4{uu z+H%Wt#hM?sUMd$@Q|I1q@9XkLUw8kThUeP}Ho_8B8QcS`u zPgSVipPb`7$=~fsdh;LU82!}6+E144&}%s-?DKru#mljiN~{`tPxHLtxjgZ1ivI@t zT{9OHH@;nRu5QICt8&8=_e-9BD|vRt^-HSpocNmcJyR}xojK)C=`;PGn)f|#^gi5i zc!9lhmG9!$%sTti7DO)!3v;XbwQ2IFJKr7euNV9D zrR86+TluDC7j@Z6j$WTsC;PnSch5Seb;h>#UeAtmI8|K|GZFg2@!oLR_UkV=!kfPa z^f7A`(s-ThfysN~qg={0o=)s@$#E?&;T%kouW zaeL9B);T4UQ?11-uSWPSGQZC+`_Wuc_Mq}|>$3$vpY^;;@Vm75`}LhMn|6hlv7F`< zyX=;3+WAkr$Nxoax|Mm^0%h&9t$k~b)y{l5CDMQ1v!W9{;mQky=dDsT+;YOROd&pX zmr(VIm%+Ub=iPh0OHcV{s%*WmW>@x{{pl*tcD?u&GF{@ly2an_Iq$aZon-$nQdxb* z1)dFs*V1+zHBoC`-5a{u|F8YG^N;77|0tijhhuHX*;%pwQxDxfdFJu{?cbNb{C6wq Sf4 Date: Tue, 10 Sep 2024 19:31:59 -0400 Subject: [PATCH 152/437] WIP Infested Canyons map submission --- core/assets/bundles/bundle.properties | 2 ++ core/assets/maps/infestedCanyons.msav | Bin 0 -> 20051 bytes core/src/mindustry/content/SectorPresets.java | 6 +++++- core/src/mindustry/content/SerpuloTechTree.java | 10 ++++++++++ 4 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 core/assets/maps/infestedCanyons.msav diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index e693d051b5..2864574457 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -823,6 +823,7 @@ sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -848,6 +849,7 @@ sector.navalFortress.description = The enemy has established a base on a remote, #do not translate sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = The Onset sector.aegis.name = Aegis diff --git a/core/assets/maps/infestedCanyons.msav b/core/assets/maps/infestedCanyons.msav new file mode 100644 index 0000000000000000000000000000000000000000..dfa31fb1440b8c699eb68e1698382b45579147e9 GIT binary patch literal 20051 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 KSHJnm#3cabwVW3K literal 0 HcmV?d00001 diff --git a/core/src/mindustry/content/SectorPresets.java b/core/src/mindustry/content/SectorPresets.java index f2ca42957f..2ce776149f 100644 --- a/core/src/mindustry/content/SectorPresets.java +++ b/core/src/mindustry/content/SectorPresets.java @@ -8,7 +8,7 @@ public class SectorPresets{ public static SectorPreset groundZero, craters, biomassFacility, taintedWoods, frozenForest, ruinousShores, facility32m, windsweptIslands, stainedMountains, tarFields, - fungalPass, extractionOutpost, saltFlats, overgrowth, + fungalPass, infestedCanyons, extractionOutpost, saltFlats, overgrowth, impact0078, desolateRift, nuclearComplex, planetaryTerminal, coastline, navalFortress, @@ -89,6 +89,10 @@ public class SectorPresets{ difficulty = 4; }}; + infestedCanyons = new SectorPreset("infestedCanyons", serpulo, 210){{ + difficulty = 5; + }}; + overgrowth = new SectorPreset("overgrowth", serpulo, 134){{ difficulty = 5; }}; diff --git a/core/src/mindustry/content/SerpuloTechTree.java b/core/src/mindustry/content/SerpuloTechTree.java index 87a93926c7..ec0973bf36 100644 --- a/core/src/mindustry/content/SerpuloTechTree.java +++ b/core/src/mindustry/content/SerpuloTechTree.java @@ -584,6 +584,16 @@ public class SerpuloTechTree{ new Research(groundFactory), new Research(door) ), () -> { + node(infestedCanyons, Seq.with( + new SectorComplete(fungalPass), + new Research(navalFactory), + new Research(risso), + new Research(minke), + new Research(additiveReconstructor) + ), () -> { + + }); + node(nuclearComplex, Seq.with( new SectorComplete(fungalPass), new Research(thermalGenerator), From b264a43b93e4ff37f92b87143d09efa56a51ebec Mon Sep 17 00:00:00 2001 From: Github Actions Date: Tue, 10 Sep 2024 23:32:55 +0000 Subject: [PATCH 153/437] Automatic bundle update --- core/assets/bundles/bundle_be.properties | 2 ++ core/assets/bundles/bundle_bg.properties | 2 ++ core/assets/bundles/bundle_ca.properties | 2 ++ core/assets/bundles/bundle_cs.properties | 2 ++ core/assets/bundles/bundle_da.properties | 2 ++ core/assets/bundles/bundle_de.properties | 2 ++ core/assets/bundles/bundle_es.properties | 2 ++ core/assets/bundles/bundle_et.properties | 2 ++ core/assets/bundles/bundle_eu.properties | 2 ++ core/assets/bundles/bundle_fi.properties | 2 ++ core/assets/bundles/bundle_fil.properties | 2 ++ core/assets/bundles/bundle_fr.properties | 2 ++ core/assets/bundles/bundle_hu.properties | 2 ++ core/assets/bundles/bundle_id_ID.properties | 2 ++ core/assets/bundles/bundle_it.properties | 2 ++ core/assets/bundles/bundle_ja.properties | 2 ++ core/assets/bundles/bundle_ko.properties | 2 ++ core/assets/bundles/bundle_lt.properties | 2 ++ core/assets/bundles/bundle_nl.properties | 2 ++ core/assets/bundles/bundle_nl_BE.properties | 2 ++ core/assets/bundles/bundle_pl.properties | 2 ++ core/assets/bundles/bundle_pt_BR.properties | 2 ++ core/assets/bundles/bundle_pt_PT.properties | 2 ++ core/assets/bundles/bundle_ro.properties | 2 ++ core/assets/bundles/bundle_ru.properties | 2 ++ core/assets/bundles/bundle_sr.properties | 2 ++ core/assets/bundles/bundle_sv.properties | 2 ++ core/assets/bundles/bundle_th.properties | 2 ++ core/assets/bundles/bundle_tk.properties | 2 ++ core/assets/bundles/bundle_tr.properties | 2 ++ core/assets/bundles/bundle_uk_UA.properties | 2 ++ core/assets/bundles/bundle_vi.properties | 2 ++ core/assets/bundles/bundle_zh_CN.properties | 2 ++ core/assets/bundles/bundle_zh_TW.properties | 2 ++ 34 files changed, 68 insertions(+) diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties index b41f75efc9..0906453b03 100644 --- a/core/assets/bundles/bundle_be.properties +++ b/core/assets/bundles/bundle_be.properties @@ -797,6 +797,7 @@ sector.windsweptIslands.name = Абветраныя Астравы sector.extractionOutpost.name = Здабвываючы Фарпост sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Планетарны Пускавы Тэрмінал sector.coastline.name = Берагавая Лінія sector.navalFortress.name = Марская Крэпасць @@ -821,6 +822,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = Пачатак sector.aegis.name = Ахова sector.lake.name = Рака diff --git a/core/assets/bundles/bundle_bg.properties b/core/assets/bundles/bundle_bg.properties index af1ddc4aad..aa59e73f4e 100644 --- a/core/assets/bundles/bundle_bg.properties +++ b/core/assets/bundles/bundle_bg.properties @@ -806,6 +806,7 @@ sector.windsweptIslands.name = Ветровитите Острови sector.extractionOutpost.name = Добивен лагер sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Терминал за космически мисии sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -830,6 +831,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_ca.properties b/core/assets/bundles/bundle_ca.properties index da7897be0b..0ab0af8c38 100644 --- a/core/assets/bundles/bundle_ca.properties +++ b/core/assets/bundles/bundle_ca.properties @@ -810,6 +810,7 @@ sector.windsweptIslands.name = Les illes escombrades pel vent sector.extractionOutpost.name = Post avançat d’extracció sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Terminal de llançament interplanetari sector.coastline.name = Línia de costa sector.navalFortress.name = Fortalesa naval @@ -834,6 +835,7 @@ sector.coastline.description = S’han detectat restes de tecnologia naval a pro sector.navalFortress.description = L’enemic ha establert una base en una illa distant amb defenses geològiques naturals. Destruïu el post avançat i aconseguiu i investigueu les seves tecnologies navals avançades. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = El principi sector.aegis.name = L’ègida diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index ff886b4edf..d6e155a6ff 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -808,6 +808,7 @@ sector.windsweptIslands.name = Větrné ostrovy sector.extractionOutpost.name = Extrakční základna sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetární odpalovací terminál sector.coastline.name = Pobřežní čára sector.navalFortress.name = Námořní pevnost @@ -832,6 +833,7 @@ sector.coastline.description = V této lokaci byly objeveny pozůstatky techniky sector.navalFortress.description = Nepřítel si vybudoval základnu na odlehlém, přírodou opevněném ostrově. Zničte tuto základnu. Získejte jejich pokročilou technologii námořních plavidel a vyzkoumejte ji. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = Nástup sector.aegis.name = Aegis sector.lake.name = Jezero diff --git a/core/assets/bundles/bundle_da.properties b/core/assets/bundles/bundle_da.properties index 355639616a..859cac0b85 100644 --- a/core/assets/bundles/bundle_da.properties +++ b/core/assets/bundles/bundle_da.properties @@ -798,6 +798,7 @@ sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -822,6 +823,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index 56af342974..19cb5bf3de 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -818,6 +818,7 @@ sector.windsweptIslands.name = Windgepeitschte Inseln sector.extractionOutpost.name = Extraktionsaußenposten sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetares Launchterminal sector.coastline.name = Küstenlinie sector.navalFortress.name = Wasserfestung @@ -842,6 +843,7 @@ sector.coastline.description = Überreste alter Schiffstechnologien wurden hier sector.navalFortress.description = Der Gegner hat auf einer abgelegenen, von Natur aus sicheren Insel eine Basis aufgebaut. Zerstöre diesen Außenposten. Finde deren fortgeschrittene Schiffstechnologien und erforsche diese weiter. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = Der Anfang sector.aegis.name = Aegis diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index 58a8196c8c..6e100da717 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -814,6 +814,7 @@ sector.windsweptIslands.name = Islas Windswept sector.extractionOutpost.name = Puesto avanzado de Extracción sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Terminal de Lanzamiento Interplanetario sector.coastline.name = Ruta Costera sector.navalFortress.name = Fortaleza Naval @@ -838,6 +839,7 @@ sector.coastline.description = Se han detectado restos de tecnología de unidade sector.navalFortress.description = El enemigo ha establecido una base en una remota isla naturalmente fortificada. Destruye este puesto de avanzada. Hazte con su tecnología naval avanzada, e investígala. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = El Inicio sector.aegis.name = Égida diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties index 4377ccd1a5..47c6e6573e 100644 --- a/core/assets/bundles/bundle_et.properties +++ b/core/assets/bundles/bundle_et.properties @@ -798,6 +798,7 @@ sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -822,6 +823,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties index de6448193e..047ad0c794 100644 --- a/core/assets/bundles/bundle_eu.properties +++ b/core/assets/bundles/bundle_eu.properties @@ -800,6 +800,7 @@ sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -824,6 +825,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties index 25f27aa470..da90f63ad4 100644 --- a/core/assets/bundles/bundle_fi.properties +++ b/core/assets/bundles/bundle_fi.properties @@ -798,6 +798,7 @@ sector.windsweptIslands.name = Tuulenpieksemät saaret sector.extractionOutpost.name = Kaivostukikohta sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetaarinen laukaisuterminaali sector.coastline.name = Rantaviiva sector.navalFortress.name = Laivastolinnoitus @@ -822,6 +823,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = Alku sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_fil.properties b/core/assets/bundles/bundle_fil.properties index 3ca24199ba..ddf46dbb04 100644 --- a/core/assets/bundles/bundle_fil.properties +++ b/core/assets/bundles/bundle_fil.properties @@ -798,6 +798,7 @@ sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -822,6 +823,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index 3f4628da56..50f5f56127 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -821,6 +821,7 @@ sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -845,6 +846,7 @@ sector.coastline.description = Des restes d’unités navales ont été détect sector.navalFortress.description = L’ennemi a établi une base sur une île isolée, avec des défenses naturelles. Détruisez cet avant-poste. Acquérez leur technologie navale avancée. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = The Onset sector.aegis.name = Aegis diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index 4d94fba6f7..ed60bdcc36 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -823,6 +823,7 @@ sector.windsweptIslands.name = Szélfútta szigetek sector.extractionOutpost.name = Kivonási helyőrség sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Bolygó körüli kilövőállás sector.coastline.name = Partvonal sector.navalFortress.name = Haditengerészeti erőd @@ -847,6 +848,7 @@ sector.coastline.description = Ezen a helyen egy haditengerészeti egység techn sector.navalFortress.description = Az ellenség bázist létesített egy távoli, természetes erődítményes szigeten. Pusztítsd el ezt az előőrsöt. Szerezd meg a fejlett hadihajó-technológiájukat, és fejleszd ki te is. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = A kezdet sector.aegis.name = Égisz diff --git a/core/assets/bundles/bundle_id_ID.properties b/core/assets/bundles/bundle_id_ID.properties index 188886533e..412af5eef4 100644 --- a/core/assets/bundles/bundle_id_ID.properties +++ b/core/assets/bundles/bundle_id_ID.properties @@ -823,6 +823,7 @@ sector.windsweptIslands.name = Pulau Bersemilir sector.extractionOutpost.name = Pos Ekstraksi Terdepan sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Pusat Peluncuran Planet sector.coastline.name = Tepi Pantai sector.navalFortress.name = Benteng Laut @@ -847,6 +848,7 @@ sector.coastline.description = Sisa-sisa teknologi Unit Laut telah terdeteksi di sector.navalFortress.description = Musuh telah mendirikan markas di sebuah pulau terpencil, dibentengi secara alami. Hancurkan pangkalan ini. Dapatkan teknologi Unit Laut mereka yang canggih, dan telitilah sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = Serangan Awal sector.aegis.name = Aegis diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties index cee1591247..dda8fdf7a2 100644 --- a/core/assets/bundles/bundle_it.properties +++ b/core/assets/bundles/bundle_it.properties @@ -804,6 +804,7 @@ sector.windsweptIslands.name = Isole Ventose sector.extractionOutpost.name = Avamposto di Estrazione Mineraria sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Terminale di Lancio Planetario sector.coastline.name = Coastline sector.navalFortress.name = Fortezza navale @@ -828,6 +829,7 @@ sector.coastline.description = In questo settore sono stati rilevati resti di te sector.navalFortress.description = Il nemico ha stabilito una base su un'isola remota e fortificata naturalmente. Distruggi questo avamposto. Acquisisci la loro tecnologia navale avanzata e fate ricerche. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Nome diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index 13021e768e..fcdbb46ff4 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -808,6 +808,7 @@ sector.windsweptIslands.name = 吹きさらしの列島 sector.extractionOutpost.name = 資源搬出前哨基地 sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = 惑星間発射ターミナル sector.coastline.name = 海岸線 sector.navalFortress.name = 海軍要塞 @@ -832,6 +833,7 @@ sector.coastline.description = ここで、海軍の技術の残骸が発見さ sector.navalFortress.description = 敵は、自然要塞化した離島に基地を設けています。この前哨基地を破壊しましょう。\n彼らの高度な艦艇技術を入手し、研究しましょう。 sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = オンセット sector.aegis.name = イージス sector.lake.name = レイク diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index 515240d96b..c5f6665153 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -809,6 +809,7 @@ sector.windsweptIslands.name = 폭풍의 격전지 sector.extractionOutpost.name = 자원 추출기지 sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = 대행성 출격단지 sector.coastline.name = 해안선 sector.navalFortress.name = 해군 요새 @@ -833,6 +834,7 @@ sector.coastline.description = 이 장소에서 해상 기체 기술의 잔재 sector.navalFortress.description = 적은 자연적으로 요새화된 외딴 섬에 기지를 세웠습니다. 이 전초기지를 파괴하여 적의 발전된 함선 건조 기술을 습득하고 연구하십시오. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = 시작 sector.aegis.name = 보호 sector.lake.name = 호수 diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties index 98ee63f027..aef0a6fd81 100644 --- a/core/assets/bundles/bundle_lt.properties +++ b/core/assets/bundles/bundle_lt.properties @@ -798,6 +798,7 @@ sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -822,6 +823,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index eafff27fdd..f62e2b77ff 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -809,6 +809,7 @@ sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetery Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -833,6 +834,7 @@ sector.coastline.description = Op deze locatie zijn resten van marinetechnologie sector.navalFortress.description = De vijand heeft een basis gevestigd op een afgelegen, natuurlijk versterkt eiland. Vernietig deze voorpost. Verkrijg hun geavanceerde marinetechnologie en onderzoek die. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = The Onset sector.aegis.name = Aegis diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties index 16e2f967ac..424e76e1b1 100644 --- a/core/assets/bundles/bundle_nl_BE.properties +++ b/core/assets/bundles/bundle_nl_BE.properties @@ -798,6 +798,7 @@ sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -822,6 +823,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index 667a670e28..0af2fc5125 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -806,6 +806,7 @@ sector.windsweptIslands.name = Wyspy Wiatru sector.extractionOutpost.name = Placówka Ekstrakcji sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetarny Terminal Startowy sector.coastline.name = Linia Brzegowa sector.navalFortress.name = Morska Forteca @@ -830,6 +831,7 @@ sector.coastline.description = W tej lokalizacji zostały znalezione resztki tec sector.navalFortress.description = Wróg założył bazę na odległej, naturalnie ufortyfikowanej wyspie. Zniszcz tę bazę. Zdobądź zaawansowaną technologię statków morskich i zbadaj ją. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = Początek sector.aegis.name = Egida diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index 2049a8f949..bec67c2530 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -814,6 +814,7 @@ sector.windsweptIslands.name = Ilhas Ventadas sector.extractionOutpost.name = Posto Avançado de Extração sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Terminal de Lançamento Planetário. sector.coastline.name = Litoral sector.navalFortress.name = Fortaleza Naval @@ -838,6 +839,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = O Começo sector.aegis.name = Aegis diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties index c3a5d3a6b2..879f70e3d9 100644 --- a/core/assets/bundles/bundle_pt_PT.properties +++ b/core/assets/bundles/bundle_pt_PT.properties @@ -798,6 +798,7 @@ sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -822,6 +823,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_ro.properties b/core/assets/bundles/bundle_ro.properties index 77b98a508a..6dc92b3282 100644 --- a/core/assets/bundles/bundle_ro.properties +++ b/core/assets/bundles/bundle_ro.properties @@ -808,6 +808,7 @@ sector.windsweptIslands.name = Insulele Măturate de Vânt sector.extractionOutpost.name = Avanpostul de Extracție sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Terminalul de Lansare Planetară sector.coastline.name = Zona de Coastă sector.navalFortress.name = Fortăreața Navală @@ -832,6 +833,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index 8a71c6d1e4..ca9409ba10 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -809,6 +809,7 @@ sector.windsweptIslands.name = Штормовой архипелаг sector.extractionOutpost.name = Добывающая база sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Планетарный пусковой терминал sector.coastline.name = Береговая линия sector.navalFortress.name = Прибрежная крепость @@ -833,6 +834,7 @@ sector.coastline.description = В этом месте были обнаруже sector.navalFortress.description = Враг возвел базу на удаленном острове с естественными укреплениями. Уничтожьте её. Овладейте их технологией по производству кораблей и изучите ее. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = Начало sector.aegis.name = Защита diff --git a/core/assets/bundles/bundle_sr.properties b/core/assets/bundles/bundle_sr.properties index c3dddff090..a61662f929 100644 --- a/core/assets/bundles/bundle_sr.properties +++ b/core/assets/bundles/bundle_sr.properties @@ -809,6 +809,7 @@ sector.windsweptIslands.name = Vetrovita Ostrva sector.extractionOutpost.name = Lansirna Utvrda sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetarno Lansirni Terminal sector.coastline.name = Obala sector.navalFortress.name = Pomorska Tvrđava @@ -833,6 +834,7 @@ sector.coastline.description = Ostaci tehnologije pomorskih jedinica su detektov sector.navalFortress.description = Neprijatelj je sagradio bazu na dalekom, prirodno-formiranom ostrvu. Uništite ovu bazu. Preuzmite njihovu naprednu pomorsku tehnologiju, i izuči te je. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = Žačetak sector.aegis.name = Okrilje diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties index cbe03b0f1d..4c5d9f190b 100644 --- a/core/assets/bundles/bundle_sv.properties +++ b/core/assets/bundles/bundle_sv.properties @@ -798,6 +798,7 @@ sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -822,6 +823,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index 71e3070fdc..16fb8134b3 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -809,6 +809,7 @@ sector.windsweptIslands.name = หมู่เกาะพหุวายุ sector.extractionOutpost.name = ด่านส่งทรัพยากร sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = ท่าปล่อยจรวดอวกาศยาน sector.coastline.name = แนวชายฝั่ง sector.navalFortress.name = ปราการแห่งวารี @@ -833,6 +834,7 @@ sector.coastline.description = ถัดมาจากที่ราบเก sector.navalFortress.description = ศัตรูได้ตั้งฐานทัพอยู๋บนเกาะห่างไกลที่มีกำแพงธรรมชาติปกป้องฐานเอาไว้ ทำลายฐานทัพ ยึดและวิจัยเทคโนโลยีเรือรบที่ล้ำหน้านั้นมา sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = การเริ่มต้น sector.aegis.name = เกราะกำบัง diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index e8f4e59a61..69f1995e6f 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -798,6 +798,7 @@ sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -822,6 +823,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index bdbb018943..733fdac670 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -808,6 +808,7 @@ sector.windsweptIslands.name = Rüzgarlı Adalar sector.extractionOutpost.name = Kazı Üssü sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Gezegenler Arası Terminal sector.coastline.name = Kıyı Şeridi sector.navalFortress.name = Deniz Kalesi @@ -832,6 +833,7 @@ sector.coastline.description = Bu bölgede denizel birim teknoloji kalıntılar sector.navalFortress.description = Düşman bu uzak adaya doğal olarak korunan bir üs kurmuş. Bu üssü yok et. Onların gelişmiş savaş gemisi teknolojilerini elde et ve araştır. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = Yeni Başlangıç sector.aegis.name = Siper sector.lake.name = Göletçik diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index 5796ad9f4e..c4e9a0211d 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -817,6 +817,7 @@ sector.windsweptIslands.name = Вітряні острови sector.extractionOutpost.name = Видобувна застава sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Термінал планетарного запуску sector.coastline.name = Узбережжя sector.navalFortress.name = Морська фортеця @@ -841,6 +842,7 @@ sector.coastline.description = На цьому місці виявлено за sector.navalFortress.description = Ворог створив базу на віддаленому, природно-укріпленому острові. Знищте цей форпост. Заволодійте їхніми передовими технологіями морських кораблів і дослідіть їх. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = Перший наступ sector.aegis.name = Егіда diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties index d0a50f18cd..1ca135c45a 100644 --- a/core/assets/bundles/bundle_vi.properties +++ b/core/assets/bundles/bundle_vi.properties @@ -823,6 +823,7 @@ sector.windsweptIslands.name = Windswept Islands sector.extractionOutpost.name = Extraction Outpost sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress @@ -847,6 +848,7 @@ sector.coastline.description = Phát hiện tàn dư công nghệ của các đ sector.navalFortress.description = Kẻ địch đã thiết lập một căn cứ từ xa, trên đảo tự nhiên. Phá hủy tiền đồn này. Chiếm công nghệ chế tạo đơn vị hải quân tiên tiến của địch và nghiên cứu nó. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = The Onset sector.aegis.name = Aegis diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index afb13ccb75..cd23704e1c 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -818,6 +818,7 @@ sector.windsweptIslands.name = 风吹群岛 sector.extractionOutpost.name = 萃取前哨 sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = 行星发射终端 sector.coastline.name = 边际海湾 sector.navalFortress.name = 海军要塞 @@ -842,6 +843,7 @@ sector.coastline.description = 这里探测到了海军单位科技的遗迹。 sector.navalFortress.description = 敌人在一个有天然防御屏障的偏远岛屿上建立了基地。 摧毁它,并研究高级海军科技。 sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = 始发地区 sector.aegis.name = 庇护前哨 diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index 298e48aca1..9e04d0b99c 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -814,6 +814,7 @@ sector.windsweptIslands.name = 風之島 sector.extractionOutpost.name = 萃取哨站 sector.facility32m.name = Facility 32 M sector.taintedWoods.name = Tainted Woods +sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = 星際發射站 sector.coastline.name = 海岸 sector.navalFortress.name = 海上要塞 @@ -838,6 +839,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.onset.name = 著陸點 sector.aegis.name = 神盾 From 6b95a4b70eb5667c13cdbfe4d377bd5681366230 Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 11 Sep 2024 14:17:35 -0400 Subject: [PATCH 154/437] Fixed doors not updating pathfinder --- core/src/mindustry/ai/ControlPathfinder.java | 44 +++++++++++--------- core/src/mindustry/ai/Pathfinder.java | 2 + 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/core/src/mindustry/ai/ControlPathfinder.java b/core/src/mindustry/ai/ControlPathfinder.java index be200eecda..f3ed9130d7 100644 --- a/core/src/mindustry/ai/ControlPathfinder.java +++ b/core/src/mindustry/ai/ControlPathfinder.java @@ -232,24 +232,7 @@ public class ControlPathfinder implements Runnable{ Events.on(TileChangeEvent.class, e -> { - e.tile.getLinkedTiles(t -> { - int x = t.x, y = t.y, mx = x % clusterSize, my = y % clusterSize, cx = x / clusterSize, cy = y / clusterSize, cluster = cx + cy * cwidth; - - //is at the edge of a cluster; this means the portals may have changed. - if(mx == 0 || my == 0 || mx == clusterSize - 1 || my == clusterSize - 1){ - - if(mx == 0) queueClusterUpdate(cx - 1, cy); //left - if(my == 0) queueClusterUpdate(cx, cy - 1); //bottom - if(mx == clusterSize - 1) queueClusterUpdate(cx + 1, cy); //right - if(my == clusterSize - 1) queueClusterUpdate(cx, cy + 1); //top - - queueClusterUpdate(cx, cy); - //TODO: recompute edge clusters too. - }else{ - //there is no need to recompute portals for block updates that are not on the edge. - queue.post(() -> clustersToInnerUpdate.add(cluster)); - } - }); + updateTile(e.tile); //TODO: recalculate affected flow fields? or just all of them? how to reflow? }); @@ -358,6 +341,27 @@ public class ControlPathfinder implements Runnable{ } } + public void updateTile(Tile tile){ + tile.getLinkedTiles(t -> { + int x = t.x, y = t.y, mx = x % clusterSize, my = y % clusterSize, cx = x / clusterSize, cy = y / clusterSize, cluster = cx + cy * cwidth; + + //is at the edge of a cluster; this means the portals may have changed. + if(mx == 0 || my == 0 || mx == clusterSize - 1 || my == clusterSize - 1){ + + if(mx == 0) queueClusterUpdate(cx - 1, cy); //left + if(my == 0) queueClusterUpdate(cx, cy - 1); //bottom + if(mx == clusterSize - 1) queueClusterUpdate(cx + 1, cy); //right + if(my == clusterSize - 1) queueClusterUpdate(cx, cy + 1); //top + + queueClusterUpdate(cx, cy); + //TODO: recompute edge clusters too. + }else{ + //there is no need to recompute portals for block updates that are not on the edge. + queue.post(() -> clustersToInnerUpdate.add(cluster)); + } + }); + } + void queueClusterUpdate(int cx, int cy){ if(cx >= 0 && cy >= 0 && cx < cwidth && cy < cheight){ queue.post(() -> clustersToUpdate.add(cx + cy * cwidth)); @@ -534,7 +538,7 @@ public class ControlPathfinder implements Runnable{ void updateInnerEdges(int team, PathCost cost, int cx, int cy, Cluster cluster){ int minX = cx * clusterSize, minY = cy * clusterSize, maxX = Math.min(minX + clusterSize - 1, wwidth - 1), maxY = Math.min(minY + clusterSize - 1, wheight - 1); - + usedEdges.clear(); //clear all connections, since portals changed, they need to be recomputed. @@ -548,7 +552,7 @@ public class ControlPathfinder implements Runnable{ for(int i = 0; i < portals.size; i++){ usedEdges.add(Point2.pack(direction, i)); - + int portal = portals.items[i], from = Point2.x(portal), to = Point2.y(portal), diff --git a/core/src/mindustry/ai/Pathfinder.java b/core/src/mindustry/ai/Pathfinder.java index 19f8a48697..e93713acc0 100644 --- a/core/src/mindustry/ai/Pathfinder.java +++ b/core/src/mindustry/ai/Pathfinder.java @@ -243,6 +243,8 @@ public class Pathfinder implements Runnable{ data.dirty = true; } }); + + controlPath.updateTile(tile); } /** Thread implementation. */ From 375d0c76ea8f88d97237c7ad55960819fc62fd34 Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 11 Sep 2024 17:32:12 -0400 Subject: [PATCH 155/437] Extraction outpost remake submission, untested --- core/assets/maps/extractionOutpost.msav | Bin 21621 -> 21115 bytes core/src/mindustry/content/SectorPresets.java | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/core/assets/maps/extractionOutpost.msav b/core/assets/maps/extractionOutpost.msav index 723cab47a865fd4613621e1766b8e8809b5ffe39..25e8901438dc97d2816db1644f556eb0ac69b609 100644 GIT binary patch literal 21115 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 HlBIC~z8(oG literal 21621 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 Date: Fri, 13 Sep 2024 13:22:57 -0400 Subject: [PATCH 156/437] WIP overgrowth remake submission + Extraction Outpost edits --- core/assets/maps/extractionOutpost.msav | Bin 21115 -> 23902 bytes core/assets/maps/overgrowth.msav | Bin 35371 -> 56524 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/core/assets/maps/extractionOutpost.msav b/core/assets/maps/extractionOutpost.msav index 25e8901438dc97d2816db1644f556eb0ac69b609..3896db82520cf2c53d01bcdad117d83b7fc3e5e7 100644 GIT binary patch literal 23902 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 literal 21115 zcmb=J^LB4`PfYkMiEnqS?02o2pHucZvc@DnDfq0Krq>)nca_;yJ#vdDnn?AVC@sGc zdpGv*t9A2M=>^#~xheaWUB7nDV{_esj)$?h3{*Be$CEj za$rk%@V{m6gvixX&9AN27Uf7&DBfSQev#g#=lW;PotZPcF-5prY(c@lPiKOspNrr3 z=gQILdS@Myw)RYQ%iFj6p2qq0;jdROUBBhp^;c(0J?^g#d-quKjb-V-OTiou4^5ta zZr=RbqHlME{mr#ps#ne9>uLbKRvs``rEzV6I3S6Iv8L3d+*oYt*558e!3L2v~b(b zuzBm(>BUw)$`M|D>E_Sx=c`QLg-lzuI{aMwl{uE*TYkmz-dx-=&|v`ekIkSK^+D$VTr(2}4c)8Dg)m ze*Ls+p=}RamDsnwaU>?KdlEmznWH+Mg`v$+1b7_0Ki zZ-;(%i|fZ)*jIB-E!ex~Ud#0RyDzW0CbpsMv(>yc%CDCstZVAJ8k4`}*>!Dh4za6M z`!*HGhCY19d-ULUkJM%1(Vw?^t*(4}==Xc)s-=65RqY9gU2pESev)R$tk)d;U2B$a zJ#|RhgDJ~qmE4nQTC2Nn6feEl^LOX=`?J?ioqbkY`|8zJv9i5|e2ix2KmILVe}4M) zk53{?E6eJ3?y-t@Ty|#8{*tndVe8EW>i&8aZ>@`ukJAhf3~5=fHD_P*pV$>96IyS- zUuqR!`C+cf>DAnG_a;2-`?jf}YV$qMUcGyfRo7mxo-6w{ga7o4Wmb`HOaBHHF;D&V zb?c|Up?8IE1q97xIkN1$bJEg%4RIfGb@s%^M#Q)MXq_qPp&P!+`}FHyN;fkWF84{f zAH9A`_^j}Ivv+>F_d7j({hn}F(|Fguxai20@s6uk?fL&N@~P+5qme4>Z0f&1{pI8u ze|hcoUQc^NV`ovRtJb<()R=Cl@XQWBRJ-A;g!sAG3;Q>peVVm&+lO6+yvFI;-Q81v ze$`&BG3l)Jt9=L7UVA@v_s7W*hU}Yd5z}w)xj;aG-l@(c()F|LA{Zxy{b5 z{Mb4ELD+@IZpZpIxJhhZeShuxZ(S-2&wN;X>P?OWYi(j&-krNE^h(^8a~sz(>U6<=ije(q+}-aP^NYZt#dl?fm_p?Nm-oQ?%g!+3HoiFEDoT7rk%W<97eNx_^y~r(RWU4P2Q!NBe0}zRu;+)YQdWV)CZVn))>;du@o`!t;k$ z#9W`5$|=2GKYTVv;=Zol^V6iR{(LG_d7hQ$+tsVZOT%BiUV3VGw#(U9Lf5o2%}d2@ zhpytitIHJOT;KgdFGTF(8Ex+8MN@oqro_2@)!lmGrRn*p`^ubx^PsuQcNudwy=>D6DOYBL|l=zZ_?`n<+%?gsrt zu}e|PJ2m1IdM+hxZTw;yT^_c|H)-~xLvy`SMXlF{8qBv0uWFv9A9jDOiTBj%ie%Qm zc10;0udbLTy7lvEQ5WwC)UwfA>!}uy+13 zyQK4KoRhCZ&wC-Ij&F0X1#NDTD*QZk=k&aN|EgZLhUe}3c}V(tfU@`cnx|*8mr9?% zzvt(#vqHaEvsyb84);0qxmiqQW3}K&W8}MglCj6x>o$|hhU2U!)`eU(@AK`lr{$bm{ZcW3pD7dXx4gY}&AB60bzW3iGg2t2qi5@04TN&sTUxOTf2l z--J2qL&e1vmtJcATr=nCV^+JkCy!O_><%73T~jlu-`_Fn@JvJX=Vwo@vD}&9r#EY| z_p>LQCv-!!vM+x>-BQ+QG*2pRam~)YV?AEyrz@{o7H_t%K`wgfw7N>asV_e-x^nS) z;TA>-r`yMS>ZSx*$)~s2xHvhs3W?ONd1yckM zY}x0Ppm*ItZ^8Wa4>QVl_BFG}Y)%P3<*l7sx@uxTq-+Y0(1eH;W(LorGIbri)K^c) z)XBe+U1FATZdqx3z>$j|FMZk)a>7K*yJQ;=v$W_@?Plp!PPJEKbQfJ;b?$TM#Pud8 z)U;-YX%^Q@%xrkorMg;FPpd#M+5Xix)81RXFJ)4sPuR!S7Bt#C+M?@mS(DFffrnsd z>JzC;4P6_SJ#U)Oy)H-glTXXO2eV!!-Eejg6!z#)KVqFsmivZ^J}+7R{j>?sm8Y+4yqm5r zuas+D!Oa?bJ-}Ia-5nzXF1IDWE~!t=mN3hFaYilnuIN@hsjp8@_s*F6Drt}Nqg^!( zN0+Ua;amM$aaY`mq;m^$JOx9_{IY#&SM9u$aaYl8C1cO&6{c?{++5%%{ObRM+E1G< z&o~^qO#B4r^BhJi)~iMP+M4A|I4-UEJ(X+ciLm5feyex#RGu}QBDU+fN&obO1G3k% zt}8Wb?s>`Me$shIvzv)P>XmP^B=xSJDK55E;W1ZDo+q$W_Vj@mekpC^BX9SH@4XyQ zxBIQzMUfQ~6DP+^+_%nr!o|hwELe9;T$-R6mEzU5w!t@W-l6$3_7)rN4RAZ}Cftzs za7}&X!Toz)#K#@l(IPV=PJ4Y=mW5X7`n0{Px$j+deSfOmiLqr}i2a1P)pvF}3)e}0 zdBWYB#XB`Xv%l|yq}BDndFM*5oO{7_qpIPY%C6^EMcsce#oq8(lRYcLW|hJQ2cK@m z$Kp#;T)cD^C@q&bX3(Ci&3re+@$o`KKCcy_(d$1QRah=_`Rr6K-rtEQM9!E;eZFe_ zWs?RB((3`>ouibo7ua>-eu}S*s(Q84hpF+>P3D=f7 zv0@>I@!L$F;&4p^{sb!<|IJ0xED4MD^v$cx-MMH{Ol@dmP;a|tpw{IBsZxi(o|1j# zYkqXrX;IOn&mtesvKqInXM5?9$jh$rnMHp+cY(^H3SZvXn05=r&3EKON@Z?!%{m^G zm{YfSPgMM(Bgx64mp?8`I=R8^u&z`>%qc0swU^eIo;zByw&#Okd6Mn32@hh6<~q8o zhpe^DWsS*iFpUV8DqO$At?#ObD`$1yyR1oHW2?`V3v)loD*6)tYI5SNUqyKv%Dkp^ zE?(?+FsPLCuDaT-nWa6Bw@SOVW_Be1+xnsV?b#2f_nK5>mWKa$ml;xUAvFKYWcIC3 z-tz03)tKB``13`aq|TR&eTNK1eX~N3@>(r=cxC_Etp!{9mNmb78+TMw=hmUtUtFI& z7d{L*P|&lHd9A2&-ljme?VW5skw3mz^)hHCOpv<8*1U@GEK@31cLV1+ zYVQfZslY9AcJiXY^WudM19mz#pJI)k^wX?w(aDlTf#ZJMDJIXt0$w$usqho3sr=cwS_)+4vX>TwbB#{WUXh!*$I|0R$alZb`mJHt6z;EhtdZ^<&l3`U;kMHLE1^=qqccLUFI>QVHZ^eRSMH+N z6`}i`*WI_U-nZoH1S3nE6UCffpY(V>wVqg$k$P;eIup3lpabeF4nEDL{aaY1g=^PEjKi>|Xxidhk~_KU13&;16b z`2}|kd-lxOxT>IK*)hjtiCCMyYuSDm6DF%^&T0C{DzhnE$|UqzsE*0C>2prkZ0@st zd4;2GF85>W-uGsSOFC8s&fA`-THXFDbjhA4Wr6ZVrFAQdT#Gh z=+_MpsX4eVGCcJ0pO;;6lhw|f`)gjdJ-e}L>$5vrmpm>mT)IHbUBkwFy617u^;3wO2oR zi3)Y=Ms?+fT)&oO;=a`|KG^w%Yt+hkJ^cp;)_0fejC>N`HpxvVvUSQl?G}?vE5;LM z(dAiJML(VJ6m?c;_LI3RvuC=VzFtyLhjWdTyy6^@z)d}-v$ajUCpi_b(p!0Fri9(z z6)k%kn;&F3>v64qT5V$X@bt$|hn%LS?GNNkWtB92(r{|~^$oj=PTW0tYInBB+-=_f zuig8~mAY_lZo!njZXFr-V;^X5S?$IutNc@Do?c4)hM3sTTqn%#G$meL5?I(BqP*Y3 z^mCWnHL0spyW+z_4&+>m3z;w{oAp>+|NVuT_0a}{9@z%Z+`?j46bTpq?Cad{YTlRQ=Im#-wykhuUnXlcU+h_BRBYDN zrJw#B+cN34R9~(8P6y5t8UOE1IFvcdDB6|%chq~EMa?pUD|5q({)9= z9KMEJc)sji!@esiDhmF)dpd+UO}k}|M>OAyS~kO2=0%u7@-kP&y&>0v8Bgw-m3c-d zU&kcFreo{s*EMO!Iy`T1cZQlCtYUXRw8d6+^NkfD`&OTeTCM%Hx}o@`NhXay zYD=_EPQ7;M5ZlMS%f4+{GAmWaV9~V?5fvM|#F?vV{Bl2PwFVvT5#MCA=ECyNCXB3- z#sQ5iYpWJHFJH(Mw=7g)*-OhFjb5v(3fp}ZlNpO<%)4AL^Vr^(t-M`gpEY;*eSWaz z9}j1ggld_Xi zzw8rPe{Ge9Cy!`VuK44SzjuF0%~QE5Wp(z>>eh6R+U=XXgkMX_IBpAjXL4%7x&*Tg z*FruYTwUss@Z;`*ViOLJgy-BE2`qDRLIQm!9G@YV$g=D5jRS8q@2v?5T%xVZGTCYW zy{tzY|GhhwCA+n*Zn0C^EWPk)tF~0@`cBLco#?x2YVZ@yTRbY$Pi4ez`Qgwt-DRI} zWwwO(1kDKt#a_tFI<2+vzhAe;u?=@tDOITKj|(l)314|}g5~VEi?3ZI0t4Tr3JI~5 z9+96kHH!P9-z6J?W1oJ_tqv8f6g0@(YvqyMbJ6!yNx}sGCw!B3c?rMpl<}V67yj<* zM0HIetCv-*ds~^R-LnPb!o**jeo>LJH@o1xT9sS&JnOqSS=p`PMQm#`JwCeBHHl6A z+EOB1dxq=0#p};Ml4?1VlejOlOL#UAU^PF#~`HH8%$b8#udMnXv!;KY- z?QB*%JYd)owfx7&oXUMstJmdg=muwNvOf8dwfAaGZRA^LnO*Tm|Gi(_5a+<(u-qao z%<{&e(_1d|rTa>(JCWwOIb6utYKzpYeNWdsiA-kNdGwlARY!Q{T_yK#?Jw@RtDap{ zY3Hrhany=^?#!KkRCshkG+xKA-xC&lL~-sZz0>9Vvy+hnE zeEHLdnKH}nti4piT($n{(o`Y+O{z zDfDi;?3A5i(79A=<+rR_Szr6!lblYf=NmRI4L$rtII`*8W=j^!O_!>@ST&z7Xl2^V zsMWgX@J0K3VaD?1ua10V6x|qiRZ(Qqm;c#Y9`zgY_^*E*`K^iXX-sy+%Ue~oyl|BpBG&?r;)V=A29?B~e=Cjm zeEffbx0LP2`|y|YJSD6D)L-s3nag`Aa$26s9Iaw0uj;)%)+_$KQeC0rR{no)yuK_` z{_U@~UU*!%``NdwJ}?_Eh)M z)b(9i)otfQHviukFS#o;Oy-xovbJ_bKc|$!jDL$Kq;(w-nL79D&X4ykr|MShnX~Nl zlnl=Z+oRu#gZv-<;s0C3*|_{w>XQ5Oz4o>&{v`M0_)DYb;d0leTEFJKaPz(AUcr}h zR!f{*vB^Q@FaMI(t$PlZeOQ(oV|=mT&;HU4uP!OMrApq_zxN|wCiGj>nIF2FEj!BEz}vC6DbI_Ulh*zL3_YYT2%Hx$MIAj?YDz2ahkgIX&P(ROq|FNHdlL zYr;eiA7Pqm>w9*}vn@*^9b4v1+9tl`m&8Nfz?#C+T}dA6=HXOZsw3;?3<_zMBO+a>|leq5rbaM!(eCor5)@$C1|} z#yIcEtSL*EzP)|L%s;(2>esxVk$0D|XZc{d%kTm7iPFOgidyqU^Y*AQ%zMptASr=)0_z8@yBZk`VgAc^ zcu7m0|B-mjsnYGsQiTsw{Is5_wC>(0aAn_;nKwAUtP0^|sX10L)&J3=Q`;8LD4D`> z@ZYLuQ+Fm>GX-8-K4(FSm4D{LnR=J&rYHXTWO7yem#n6bzW3%GeAXN$f=niNc~=x& z&kWRK{laOb{phB;K-0@&CKJ`%+YNmkt;baIVlO!ehWOl`*#2_*($7=gOXyxO+;vBJ zpNi@O&4&6(lec^n-PoGKQRkKNxWrPePe*aDYE3}A;6&9Lv&aC=g&9W*e3?V-bo}hh z1bjq)Y*}%0w&D`I#n$ta?={cq<@yoHD6jmXP`>6+{xw)*8b^gu94JrcDo-A4H@FU5yB5(u0%GCge z{?i=_TO~i_s_c0oo%0~$xybUsuHEcMgV~F&s}&jE7t7h7e_+n*e;jM{l}pxc*0DrdZcLtslLddjz$tHFCTpy17_WC&nz=?0B}r(yL1?MmLaw zjn&~yxw)r&gH(d-wRc-LN5*&r{MBnWIi1;`$I-(XpR;MR&X-kbs&7|Ltv5W&G=J_X zg;hfOj(7HRopEP5FoR#=!|&LM4hu4@way+>O@A;WXSSr|T8`Vy6BlGv``l)l_qKG2 zmDJm zotXRKQ6Fci6Q7fUx@**L&LSuG*zVeNd9G8QxgT?G*mrdX+){|1BW%SXeLczjcJd-i z&ccbySw1=lidGUrg%RRwH@eHxz=fB>pXgJ>;eX5gpS&dlq zkz9FCUe?n$nk!_NeqGvmPFc$H@w(eqn`EReeVNtA^zf?he($nN&-6NMuA~MT3l?(P ztg+*Dxz41kTWqG`k*3P>?C9rcmB)vA7fBQ<>@rg?%#QlO(^n;JB4HY=YB2qPM^$>H z{PRUWT#jy7vf*=w{`MIx*9H51`CeCaw939>uZoSEL_RKq{x%KIfp-W^|3+$AtyOOluKcVQIisah`O?oR_jjHazq-wLU+|`DhR0J2?>=Rh;hnV1=iztdYjZ5W)iXC`Uh>xt zQJ5i;Dl7cidcotKNn4Iyd0_Nz^~|d`_OK<~m{KZo&Olv_LzZXa1BMxY7+mtIO}u%W zrZ3%YE7xwfRoIsO=;mWzG}8JmNuIyVa_M%Z?n_O%i?>~#EMk!T{?)SQh4Z6*NmiD} zHrHNSS|nmD#oJmD?Jk#m^i8j$M(+0m{8@8sKV(h%)6fyf`K5{9@>*Uq+wVR5441PT z*mreL_Or@7CF8wt?P-R2>8dhUYYgZ1pSqdDp|0EbVDhZjZQh4GKlA)FTQyfWX3D+( z%oD{q`CQ`j7Je_{c09ouA{qF=*6#N0u**8;B5Z~)bG^QQv-va2$)oX>cE*ugsqfl! zY#DNd%kP~0>AT;Pv8v}>P+k7xOVU49@x+=u3NAQd&LqLD7{6?XjLDR*GFR(75*v0j z^q>B`Z^z_)57rurI&IKu+o1B0Cq-15NALHFqlz1K4I=(V`3MB@rLLQ+>c-%>{PW){ zy$NbA-cQdJ*r?vy=v^fAy>nZ-=G$qzI1cE!9<5#UJ$w7g7`;hS;z3g-Z5B5lX4ebj zwCw(QQzo`<))eFJ+Mo$fSngC@tWe3y+95YRq1Yi?LTRSJ{)v+|uc`RC!#@1Nv!9AB ziy}_UTq{1!=w{W&cb8@rrK?%&nf*sUN+auS!G4n;v<^|t2Z;6NuoU%1JFsrXQJ18n; z>yF;F%Z}#rbQ^upaC|!Vm_7TX1)3_8<7O_rbavLlwK{4iC(l-%x%oiEyvP66E_wSW z-s`^UmZho_R&74)cHGp}IjNU(;ft*kUM%&wU_jE-?+AdHQ()ymM{LSI!(pHCO zA_r#9GnJKP&YzRCTSh2A@?e~*j(X~&6Ys<$7D=lnZoHei@Xp~G*P1!E&68{t`o1v4 z*Mvb}yNI~P<5@-gTpg?I&r<1nE%fSqVL05jArjW ztG@S+x|-iZgV1@)P9I<5<@TVK-QxG9fVSFyM~_~VyC8S&jGo5j8Df<;G_OrN@c78F z7dv*>9-VPvNm*W+%hHB;+i7*IRzt&VQzl2E%Z>l!virbw({d>OORZ)f}BTbe!v>(m#R9M;*xC?BUVrT@j9<9=GR z7#|qU&5}4Ftrq)ZYlMo;ZlkH6JLg?W%j)>IZi#&EjAwrs-OoICi?NPUmYkPvI$`SL zpBD~ZIh{A@+?$=xOpX(@X{IYGtz5)k`JBRp|8xXzt}Y0XNR?`a{cN3 zmVBJ`K?{!52tN;98`zgsII%A5@$#bl+WW>U#w$$ZuCoev9E!8FE|&PD+kmme7SWc;YjCmwks2qQzp;Sy5jfSA=K&r zM6s@m&o>HGXhtsavk*Mq^DabwdCdv0UNA=d+^BGoWR{d)fh*6Vazr~sAvLIza@$*x5 z@~h)NDeqpS@&0qFi$+j%l*s$HDhZAv6$UI`cb>n?)GcN{>K7wct1->2yE}G|{o1Fu zIbHAm6}3Ndq{TUQ;R+*bUOSZ?J6`9riLdU=4G?+nedw-%2G{g8_P@gfGH=$piJjWu zAo*coip>9{1u_?pW$K(?=ctv-b!1NcN?VTpP1h&$#?0ELe9MB@X7|4JU$oXK^WFQq z?1}X8T23vWziShtUcc#^vbavZOx?*%W$~{c!gU(?uMa!hQHyQ9}g(Rm3SSiOO#EmZQHBpxnNO7h{mROSA(WZ?MpheYsUt?cbnI( zU3|TD(d4=#nYT@*3h)>CNK6wrd4osc`R>CG5+8R3l-x>>6%bN0+Sk+fYC#>Ht(^j%wBotx?>JMUhbe7Vyjoh?;y{srTj;59K>Ip-&*9}|8j&Yy1nE`_D& zSbKR~b)B(uLb=u3=_dS3wr`og;}-ASer}P#bpdPs^&DFz+;!;boPd<&2DPP5uGqk>%I)|}ZHwMe9Ry*~eL zPDjU+p8M}ls1ts>*Y~4}`-AeC6ZGC*cH!z3d}*X9o7#Fa-_zYtQDBMp)`gwwPS(3a z9$bx?e`;sj66LyCCtkmJd!ldMj|Yx(qNRT{Gwti`%WpGy!!31X#_Yw#bw_<%$;ht;T+m5>YRPS1p&%KP9DPg|EnpZVJTU3)NhHBA3~XKrbQ@S!&?3;_{0W5df1w;3JTzszv!{^LjwPn&I35INnW->rVse-&E6mW|@;!5Zq}Q*|7k$}U$7AeQ8Z{{My%#*t&+2fC zeL>sVS3iwR57@6`w@-^WuetjqYtA;iM=H5;E12fK70fHKDK=EyEUNZnwd3l!N+Ay1 zPG=Y`Z?FEDRAMeZ%WC!-Ek!@K-oJ0Se8Os4f^6%~rFp3d^fsmJZu}pRoOMjV@?d3v z!Q6{hd2{M+@7T?Ik9}6$@061*r;}LUx6DyB?e;y8>+Sn?S-$G$@1`r;b~D?hsBY5S zxIKx(raUM0!OFz>wQ8Nl@srm+cmB0u^1LjSP5v<#HtgUj|GB$(&ZJM){#^c(FHN*w zpL0XRJ^-G=quAbjv+4Gabew_8Va#z{V?&;+DBA(F|&2~1w zW!A}l?>RY>wQ6DZzdteTKiB8BMENMk?sXFdCvQ>yzh^Pev5U9*LfA|* zqiTeH$Vh!so*a8mdisl`@7w|V&zaqA=?`$!DG3VLt@$&c?VN)^(8;?yrffZ#8z9rb z>&2;A9A392m1_D}CN+SLoUCc;k+gp5|W@j~-Uap>6=$9DhSN|UjF*J)`=F6g=_hL=ePy^3RvCF ztoXsNBWaSCrF3=hqwAZFDQ8w}w%fCp>HWG3$7b$3+3on?CX4gI;8gL_sO(D(1{H=2 zHJ%+lZMiMs!)}cqkrkYc%NHzZJ+ zCh5}cMEP`qt~W;xZ4PDsed$`EQwv(WvP&Apj><^(os_#`blm@zXCS z_tD$W%h{gKaPZ_1S?b|gYv%ry*G5$PU)gV-m5tLUteEy?<0~%zpWpsRZBgNzTj}EU z;}YA`9sEz_J-TOHnD+KsSmE_&Rr}R97H){{Zpyg4;r=&yFB92Msx!nd-r`t&>fh3M ze_z=puGb$u`l-J3?fwZi6PFh*zq2&{x0C!;C*J5&OiML$lY{it%9k%Wqo-KsUF~BN zEqs68)GGBOi}Jkp?z*yDL8S3Pk@u^;DidFB*s?>T{B5z<`xhLBN8fvHSU)4c=$5v~ z&242nKg_O+KDW|$i`0~e>Oh0u)-APxM*Px~-@dyyhhOzN@2S%v{x|E~qGAMkd9y!u zm7NV1a#?0!CBC%v6T5%c7w@WlnSQS)^s(u`cDWlcPwb(sUTjoA@}fWABzON+d~o;r zRiBe4Q)fzRa9mZQ+xwd!6p>V|uM~{&#Ip#)*4+sdaWozgTOm+oJLJ zRxTUYi&FRb?kndly#CGl_3MKj6ZdVuJa_B5TIcH9eBaicmu$0L@X*fvK^R+o^PX+} zif{9Jw%s-?l%ASZe{O<*>bd2Y-aXkcS-ddgHt)S{<^P%2vfo?G9jv!3v7hZoOQ}MC z$qn~X(S|({^X~Sr-+H()=>Mu%!+nY&TDG!fYKwZd?@$Q26}}$LC#TtM^XuIdWqgXL-lGyc~U?~b=wa^~p0>SKRv zwx4@k_gqr)&CSFMoQXM#M=b8D>-aujb^39FQm|Wy2utsVUVpRXHx&-PZ(R%|zjFq* zC9P;Heb{#PmrmACfvKCSS6q6;`bOAMOwl@HuF$PFN{JW4^}3^O2d5?`J(+up%`^Ma zOaWp4-wQK5W(Pc%__%{XV^;g^TfcdaJa4i6o_XHOu5McApN7WmvrV*D2HcZ(j0$31 zUA8}Q_ZI%!N1mQhs%%*>M}RS+Wzr^%S<`lea!8)ol~KW8b*r5t*iQM*-Ji?uGrqij z_qp}))grAEPBt#?+gIVAt?nwqSi*IR>-~gl>5COy4L8iOaNAuG#Sz%Ocv2Maw$J~X z`3}1Oo|Am2x|Mscmt*=_t?x6hgv?^J{2_7UB%9otmZvE|iG zQUYwW_v>suyR28~=$F{{6CWG2Uq9Ac(UCG`y3*u7p}Q@akNE7@`K;eO=|Zv9-EFbA zUqrEICEg5Lel|ifQrAu)Mtb6#gM2D+Q=V|Dc*;&Wqw!KXb2*3Zt}>ae?n+5FHgCB$ zr~fC%O;Op@t*>|!A5Z#u%rqt0{n{eEjuV#@_uiaywX6MpyvDyR0Z8NvryX0=O z=iAVm(oMH4FLo@tbM{w&&Pqf1tr-=+U2fmL^-k0@IJaKmkempR*~^@;*>~@vbI--GbdZF z+GwsDvNy$p`*+cs#j|#^1>ZjOZVp#V_?>HSP6e93ncY#R$#OtZ@VsWH{I;1*=6W}- zvmWqVK697#F(wN|C2NfZVSm#O@0uqWcl^lj2Dd%l+`mnhGW|-;jGk;!;o`A%s^}hZ zmi-$}EpNT4Z=w8OGwyznO~Ag2kk3b7xW#bPI9jax^<$e!aBWYgL+Iw`OYg<*kMq0Y z!y7MMw^woH@+l9kn^Mm1U;XG`-TlKGZ%UVhFS);X*6wBTOAk~(J+sgF$>~em^!`|D zowC>ZFi%`d`q8v+9EY#$2(!I+^0LFScvF@ivW9n)?abeBuTonw@6%%~?)^$%MV9T? zo@K0RzV6b~`@&Q0)#{q%(@np=m}~XnKKHKbzg5nCduNKdKk-@l=fBbmHP(B)jo-sv zrUn;%pWjp~UH$y-|HxAz^NOvO_+0(1d{AF`(S~T{H{IcJQ}6v-b7iw`P|*8+ll45g zWqfr3ze2ypiC5T*8QwDV6!Q^Va^bJ}B0(8Ho{D+f%oe-}Hl8kf)-XNX)%yOVZISXt z51cpleUmQW4*hNxwzqZ4owi7ux{l+ED{PvMryTjqTydtba^CBUf8`%+Y&l+Aq4VKy zjK^|V+X4;7Tu=`ri*Uu=|c)Huq_VW4mp7#v*)hig~GGD4ZyYjo^CEpI4 zqhH;3?u&kZa@+4^^}FJq{c4vuFLV0n6=jR#JLfCf)N%J0+Q>cmrI{z+vcMWI)1p~jL{v5`|5Uk&V1)Lj59pSeyNc6wevFFgI0w+{p^u#2TD2j zvs|z3dM&o|9ph1UqgY>OHixUZ55I~_O#ilPNpL2E>hBqco{G8Myq%>SdBDc<)Yoo@ zd2hvz$p&m_llWfCQ+;Tq^@-B`Z?CAvsL$QyzC-V>@;yD{J&O*xU-vYa|43)OGEef9 z+d77OBklTw6xi|E%gNRXu3HS77;b^JKr<3~TnCEwJAlv;0Vrr}4i91(yoW7td9W zQ9oMxXwC8?^Cvs(yK>0W(D%q`+ZaD9qqD!H3vOn|9RG38WV`I+-%Gmt3+3}IN+0{= zyOo^1W%{+a>o=p`Z>jCFNwYOK)Xn(ia-ZRJ<(${*JM50GU|c8veDTANp40r>e$HYD z_%?u17e&ici>$mX$VrwL1EDM%m&s{Wbybs=W`+Pr1u{>^ax# z%Zbafd%o(Q{Bw0<$Z3s)zlwJ6n4@}jwtl?!Ow2G(UVP{4f9#AF?F8#(DTfY0PaQQFGcEca4k!^-;>^aTsQ)M%)CiC>adMYXQG=2JvX@YiYF7HeK2`1mK zayZB`wVEx*{x@St-4(vWHyrzJzhjqe=HL8A!+%!l{@2@18s$v-TX$h&dCzU%qWI@K z?{Qp~YrlO)UYGmweYw=l+o#$u|Ce^)*m;Q?doG?ZIBC*fwExND@0#%qR&p_X3;yz# z_!t-T*7(-=8p;|T&7a#Yz2}?e|Bk8~tnVC`UGCAp^CSIJV(#Nx;r<49Jda&(^_I5F z`}g+!;qT2A6H>K*)D~1*AJ{9YGg;@QXWPE%OE>7V?BZ5G8)OhBW^rjwZgalTA)8>s z6CphfeMW(QCHMlOn@Sh*mdTv)a67Ema4w)dQn}-EaE$u-Yh@D?c_dGBolB_y!>(|# zK>o#>9}15xj(#nUeIQ`V=Eu<9ByG?5!|q74BgfCe_{R&3oi1Nzy!J?#?{48XtI3{h z3ycdg4&QdUw3lI$;S3J9Yt>ypMZ%?0j5R-fm?C?G>5pRi`uHW8XDbX2tT^_de?tw+ zx_Xy>y@_cz?`wSD$^Pbr#_`%oqW*_<`zGx=FA;5BseVf9QS^(;JsfS0=^~upYK|$% zrF)-gIQii#$Ho)2a*w_pnXR*(pCQF1Bjtn0>)Q$ZG2bmed`j4)_xfm>WB)wA6?Xr0 z5B;#%5qD|V!k1Ru`i5(gW~{S$5dYxAuitX(tEX>2o!0cVF(>g>CqsYpJkOV>j+@2a zJAScv%EJl&;uvkC6f8`XJXkn+moNEP{P0V5efyMkH98mXefetg;>?|ISGk|Rv$1^f z#nGy|PkGtSeOy+HrPKc{d3e9FL^9&;Q<1QGhABEryljp+xhW9`kaF=-jvvT@5w=F3+`7QF=v4iuT@-JHN zn;9Ju`)KvEw{_3nhMwc-nsamK=SS=_uLtWK6si8q68$iB-@a2bKPvRsdUR*(dv3Vl zbLFzwHND&TWv%p#{NkS!x-~u&^mCUvtL$xm&dBVu!NX8$Pc=pmv zVxQRe>(^Poh4~l8Gp|{%maP^i*Em1vHq)8E`>s_z;ugzfn0EALhhA6LSF6Nxn}bbb z1x|Z&&1=hS%gefD#q>+R zb5#WXgzyW=y*Ao*s$u5btA?5UHw2d-Y&Ut3U@}uPY?*#hg!S#EyLGPn8ktZ1%vioC zTHD$F$?TJXm-VmCym!UHf_?iDR;h(4krLH1dp%uO?Vq`Cr|zm;CYOD@i@)uAIX&g_ z{pVk}SKaTQs;xL(w!F{rw&AhkJU22ImWZbs1h@7ZUf=c5>@Zh>XrlT-pV*uKgmV9? z|D5&0qj9DXW8ADaef|f`Y|kENUAFhgU-{k#e-n>sA1spYc%gi{R^Y97g1UCw&iyK% z|9QC7-{y**%`^Ms+e0_>?zD@Z+unJ;?6$gDV0pA=ka^vv{)(QrWi!=vzZmt${_E77 zeL=Xqmg|c@hg)>)Fvys&x&QIY!ehT#`?#(=(|lJy<1*J}vvbYXS>Ar}M=XD+j+}^$;r(^y1!v9yE8NGPAn@8gR(%We>`|}OYEqhz{ zY-OgmVY>ZgpZzAMEfVIiJ1$=(xor9m_vR1kj_&XN@+3D@{uO&{aAMz8oyu8DRcAe@ zUbQy2@%0|gs!b&UB@?E#m)x!ONuT(;lKD%@^62lH%kvrw>t(+j*}BqvY0`{!<|mER z@BUmB-2bLyTK#?&tG0K^cNbT!Zn`X}r=qxT-Z+);d--z!C_b~_mYxh#_PfCg7 zEl^9}#<3%p?MB+8JLh@7u@>gde!ir5&Dytu(^y~f_}-esCcFRphPi=rvwe;m<~bMb zXG`17w&G7m#V3=)R_Fc-?Vq1m@92GZ@*Vq^cZAm{tE|>Y~>ig5@T3xxH z+#`NheXr&5Z6A7?`y-nq8Ru?Idr*GyJpX|^@yApwmrZ_hpEn_R>4BNkpIt~!V4v^$ zF1Kf;T!O~j`Y7Z1VKZ*=iZ$Pvx8abT;+rRq7%SAMsyLSe6)vsB!VOH40PxgH)@_%~%tq;uH z_3U}(yZ;K`{lg5GB>dgDYW{;?$AV`p-MIWx3$Y7ggGBi{8z}iPLp*;^}g=9816%X zlF8FwEJ|`RI=i%g)9crLT+ZRP4F_1v-mc~;p3}-MQzoB&LqyC?Ie~rR_q>IMukB78 zJ#ui}YsTGoP1=t}roDb*_N#mI>?)}*yQX^X^~g!9eck(18G03ex4a|yd`imszDJYNIHgy%KNd-zqt|@*Z$)pgyKF^?gxvkY zJ09|n4rZ<~7L?fjW(N!FqY{R_*(>%{U3_+{>F(b(nOChBnygjkZwWi3^rBga`>C@y z*JsCnyRHWBH@Ne7P2%*MVrS{E?+uYWN2-sU9BrR6`q zK0jI4QD0vd9dkzG=GSXI?n|RNug&#-llc3=6|Hv8~Kd%Kx)!^Cf1 ze$^RlEBWCm`?2*V(RKEp?k{7@ovmGc@Lh*V_30PiFEKy%oA$M|dSB)2U(cr0e+f9f z`=rXl6Dj=9ee#QV?p8`Zv5@xrk~sbL_ircnY1&;$ZG2+m&-G$%>0j4I``+ej|0|+n zq!RikRyR~h%yWMma`M?un-xl@&wbsW-o59(rJT(fp$8|GFU@^h`L1OC-o4o{n48oFY|MS6r+ATbo>20aT)*O-qqXM=WHuXedGV&KF=T3mD4$1Hb1Bj z{Kc`}xnSM*70w3p-UqfP?BUq|E+H@TSDlVcjLnRqbmlcv>Rk=0MWhpgqeHb8e-yv5 zSkRDNS?n6S?>DW@f&E(F-ft^PFJCdmUW@f^?$iI;)BZEY{I)ka@9{Zk!_E8eayCZ# z{jte9>38AF=M&S+aP3CfoKOSgmEUSyps*_a3DOX{YBVU;XDMFjunV z%8b>&_wuBFn5Z2+TcTD}w(i1=->ZGTSMcvjw%)SiZ^6#=YuC>NUv##8CaU>%_EVp} zbMX&*dc(9n+3vWUYxwWsr8OVE^ps=wC6EdHE#M;pLY7xbdTY= z4uxH^)4yq}TDR`a&jt4$o-?hSwZU)W%J||lc3G~f!i&n>ALy@cIs9+i11YBm^8!43 zVlzE+lXt9$7umX%;miJsuX`oW7(EG*^APZGxuadm&0s6EV4a=)!D<6H$NlokvWqx= z?koP`Zom9Xv))tw>gTSX1kbectbDvISvf86zvcB?wHpm@1=!6O|G($Y=THAmS+c*8 z)wt7X^mog$y52ykGs4loR%&Q*bMpROv(^2^*Jb7Dd7Hj2E1OK8#K7B|%tFhW^;~L?F`}`?(Gaa8=Zd>tslWffX zlm;{T+{?eXXlbsxV{vPR&DU*%L==Fr-Ii$J6-vN z@vQLwK*=KoM{GZfE}Sy?-EFJ;Q+9mP_~u{!{9^O8xldca{Pt+K`^McRvR407!Y|Wn z?IJVE^Im6G&g#<736wwcy@Bb6wbuWczo(o1|7p!w6DJj!bwBZ6;q07_xUsq7BA@~^SM^4i~>{c+WYepeJKb`TSj1UvA5}@;&aJLQ0m_r~K|W7UGU+PM4Nu7>D&6zIzjQ z?LJ3F{%*#!Z`=Nh{rk)JWB+}QvimPyTD+*LCuK4-nSF$Zj zTHK^Nr%f-nL|mVK=If0On?C=kf6%?;Z{$^h@PPj{A*zQVke)}KejI4jTP-h zdH>IAsa8tA%AZ%)co;9Bhd%iR<{`q+}t~6+3sU7#dIdxIX zH~ryxH@oJ{Mt3=e&mXV6{U{^iQ`=M3QFXfN>f1Q^X-~5s%>EOx>mfsC(k^~Jo}9$D z50dldaaH}R{8}$@LOwR{bJPR34;P+>xLGXS|IP5&9pm{G_54(mrY%p!~bG^i{Sm>oQ;~#{)@QmU#$Jg zx8ch|KaXBw_w4<7*Xy0<=6-oz#5t46`$Oiv=&5P`j)v;TRxf)dp>(irS@5pC zO>YkF<ga_ zSuytbjjaIz60CI-7*6{&{jHJzz$|rKN$yk!mp%XMubs1>J8eJPQn&hC%c5wBlP*7| z@4NFpFZrV0EZe`W+WjZEnu8}k{t|Y8$-G0^l(Xeiv`jMqMM(5xB zJ9Z=P^n|&)Z~yjod1U)NYw50Um+m&U)o<26w3cmh#rqW>;`YxyCOz3Ga`MG>olkFk z?pO7EyKeQLPi9{J-bH(!cbqK9*}ix8#_*`!R|N#QYY(e0U3mVWeU|Wq)=fwMrp*r6 zuDd^2)k}2up5ulbB@=eM@Y7ppq}BRInfLAD4W2jR{+7F4YkzvGD2Ks(%Axyi<;#}y ze6nesoZ#FsYX|Rg{Wq8Mzufj&ur)em>7R*t6HVWlu;@Q|;4d#3$Nx!I+xkz~g?G!| z+WX&L@2O^Usn?UO;6%5wtbOXHhr!Iz#@F)%)sF7IlfPo;`P&6Ecvr6|bA7uc(e>lH z*~k5J{@ty$)^&ItTrco2`1j8e-zgKy;QG zPc?is@lKV-|DzlKCA2#gMy++Zv|TQv`fjepfz8)jbG2K3Wxa~7pZ@a7%6sn*f4i!3 zXSqss&h6i8b_wXdEc-w2nXTXXmCG%^e7`Adt+aKn@#78Q^Y1s*zwtFWF8kBP_g9VC z+LHD=W$|TmSpRy-U+R#&)^S7cVn;#u+4ADg{2Obw|7@JMnfphztg6@jUsj(d6kC2@ zc~>MS-@EdQ*W0{p-`>S#oxb)u<3c-I`H%lrFBzj^UgytxsP%r9=O>=aFJmWsf1R$G zBp9{%Zh4*Ut}Rv{JN~-)eQN$!nwhZreND}+n}^&_m9AP|)Ve%vcfL?@@%h^k%U8tz z->`T3j{MJ>6IT37%;x&FAtuX4!u{1x{`!-?8il*Es{~89|4;O0_22y1=i`|r7vI)B zFJCMck)j|pNy47>zl-Yey1N|dvP_S)wr#)s=-1P{jc<2{K7aXY?zIhbOB&s}uYB*W zOWGmi!2EAQ_3c?@tuHT!*=PQ7y`cZ=%Dg~w)@1)6o05L z_c7YF{L;j2>#gpYu6osQr}o^Ixys>@D>wVCvlRY$?_%EW+}(xSiXVH|XJ0q0Yg^Et zp8D&A*Y?GdA3egi-;O)tv;HyPMXBX)7RwgR39p_F!Mo;_d6FKW)uZF#aKT_*ZXvD3o$ zo$Qkw)8F0v*>kJ>VSQ8oh0FKE|5Vlf+IIZ!1V+osPw|5J_x7vvHoNZl7f|q4|JU!! za<%G4;*~EmTFm?B1aR~H3O(|;;>`D-Pv>8VIsD>Opnv$G<96x0{FycQWJ@ikG*}g7 zNdDve_gC@XUvBPWo8>vKwpnF69qyUno2OTwc>n)zXZ^7D+C^ty`K{MK{O$S7L*JeM zbzSPMzj|z+>^-N_gO!2|wl4KurjLbQoHu(Ldi-qe8D6Cjm7qTl_Dft9`XT${dCmX8 zJx409vtEwfaO79QslzG%4=PWwotZ1)CvWF8r);)fTW!8wPr7}@k|Lh#Yvb!$ELxXy z?)KevSLdtv!`>eLW5;u=Ccn|K&yaY${6l8?jX-r5e})t7znnHbSzE7R_C>I@?(mMf z*Tw6yzinB&Cg$(9S-G|i<y)FM>XkE}1j&}{pJH9Ln&iMWG^Bc3^ zD`)-x^t4JLQ1;KSEWU4j(_ay$!aIZX1h+sSN=`8fQXUA;)Ngi zAI2B=zWXufNxMdH&-v>=Tzw3$t&@nC-ZPJ(YpM0wsRia%N7p+UNmt%y`TNoMP^%qp zvE+-bIk&IgSaI*`^kb&!`_6qUkN8@}Juf7}#>P)T&+~%((VtfRmi-2L(Cw{dtL+vSkHYA8dRRqszXm|M32PQSaHL%1Z~0 z4xdgmG|gVJ@y_+Ow-zt@d3%hn@i$LiF7q<2qH)Hbk8*Vk<#U#odcN;o6|-N#EqT#& z;Vyok?|zoE=I0&G6UtjDey#sgjyKO6cERHeSGcF2sOPbB@so-P)_Ke0zOT7PCi&$o zll&01gJ0+ETqyhCiKP4MNoO`Qy?<=AXq~RyO1t1&N%3Dzbbp!7EV+}pPx_S6oE!WF z`Gwb9KV3auX`aT?YVV(arXu92Vs*i`&u2^aiv9{aviRTbUdH*;-KXEac>Kh+NALF^ z+y8&>;`RT`Z00^}|M@8)F3HEf_iEj_JpT`6Yi(t2ANt!GdE{jIVf&)E`6jcU1q*5A zm3_|-oWId1`PxKT`Eob?xAT(Z`U?KD&&Xfyu-~F$^F)=SfmT@;*WK?F6LwuJH=*-U zrp1*`cXQdK8T-V)Sl{73^N0J)m&tqV&lv1oA+lP!Yxh~zH;W>+zAm`4r~2-!r2KoO zU($OLf3JRf;N+jO3f?k(`zMhPBByfCVV?J-G*Y(l3&+73-E}*Q%Igg`W^P+{Gh%n1 z>5ns0+Sh;iW4&*;^t~^ec3&?mGts>FrRaFv1^p+o4<5U2YYVoSyiPvksw4cDo)h@>=l0sy-W&NnT(-Q~H_={fuYB@yaWl08`;2GS`4`35pFMfS;KlXSzJ{MI zkDAjLRQ8wZvq?>Befyd-J#M{fFK5~9;y3Hg8;G~b=w0{{^hU8j@z~63*RE*14cOYh z(u&Xi=q=V6ziZd<-Z}5j{37hn#-QY4p9h8quiq57$77to>+PmnnfE5Nx$K>K`09km z331VGhgp67dpx(-%dcKA^T}_<_~W8?w_hziFl}Peb5@`K9GC5RF7BQtzfH`?uutXh z;d4^&+aEaH$gw=2*iy;&McUUb;-4G;qrbU!cWkto;v`>P*Oge99+Lm->&GpPf7Q+( zhkLq-^O`%{Un{p(Oj(>3_I2$`5355z?Y2C=@HWn6_5*G!!GFt&`A;iU zNS$tPdTn2Fs{Y&NZT-SM3T0`Bx6YiXzsmB%-0q9fkE?#ORb~F{kiTE_bqmY0#jy>^ zOuF|YKM z%rh@+>8kAzx6^o~#qP5ymt}0}o9hjkg6}=m#U$ z&+gAF|0kH7*i%sH^!ruD!@^IEpH&VDzpi%7?^ty0@F(8|b}@55?|V@8U+&{+Fyz zkyFcm%D;cx@7HwU{Ne8p-4~hLkF1?`PUW#gvZkNV$2oqnSznYQ<&#XYNopOpU2 z`u2o%_9f}<@s|=OZ=Lt_k72*!Na)7Z(81iqn5L6-(Fa`@$%^a_8IbD?6&cIUVEhI^yvqF)8+G< zgOjX%3hdeZx^B;YKYNL+#esq|a_0}6tTS2=uP(^Eci#Pb|7>1d_nY&$ZskAm8}X{n zuY5PJ&t9K?OqlU=CfgUi@0;i7v-i}SExD_>{9p1M!AbM%&;AJd`S=WfQ*zvU6Q*z3 z6-U;;K4ZVCzVq)Z&ST;`YHgO>GhDZQ{zLoIpO*S3$39Vh+Z~a#=VjHjhm-HGDXQ%J zSu*Eo;N!YJgW6!8a?vmEk~V9Uw!E}HSGN1ymlWrBm*qB<&wMwhxW4UY_M)N#MauvG zr{9>@-!!+NYxBHkKkFvGk58?fQ1f5sg*x+!KT_YF|NgVwu>R(vPxl%BmM~xZu4?m7 z?=^31e7e=jyZN6#N}N`H@H_L_ar@#^?LU54%&>eO{egXfc;Tcq;b~(3`ER^iaqn`% z`~yGb=X_cnGyl}|n|=F_e!qN&Z$|#&)@&z HlBIC~z8(oG diff --git a/core/assets/maps/overgrowth.msav b/core/assets/maps/overgrowth.msav index 55a90608fad34c25f311aa3a439fa18aeeb01d17..e13fd71bf58e0574c9c5f1af7d6a57457294807e 100644 GIT binary patch literal 56524 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 LfA*3;zn=gAh|V-( literal 35371 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 yu0yw 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�HU)<&U^OE?KGkvBY&%`y;bU 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 Date: Fri, 13 Sep 2024 17:58:11 -0400 Subject: [PATCH 157/437] WIP campaign difficulty dialog --- .github/workflows/pr.yml | 2 +- core/assets/bundles/bundle.properties | 14 +-- core/src/mindustry/ai/WaveSpawner.java | 13 ++- core/src/mindustry/content/Blocks.java | 12 +-- core/src/mindustry/content/Planets.java | 2 + core/src/mindustry/core/Control.java | 4 +- core/src/mindustry/core/Logic.java | 6 +- core/src/mindustry/game/CampaignRules.java | 15 ++++ core/src/mindustry/game/Difficulty.java | 26 ++++++ core/src/mindustry/game/Universe.java | 2 +- core/src/mindustry/type/Planet.java | 34 +++++++- .../ui/dialogs/CampaignRulesDialog.java | 86 +++++++++++++++++++ .../ui/dialogs/CustomRulesDialog.java | 2 +- .../mindustry/ui/dialogs/PlanetDialog.java | 13 ++- core/src/mindustry/world/meta/BlockFlag.java | 2 +- 15 files changed, 204 insertions(+), 29 deletions(-) create mode 100644 core/src/mindustry/game/CampaignRules.java create mode 100644 core/src/mindustry/game/Difficulty.java create mode 100644 core/src/mindustry/ui/dialogs/CampaignRulesDialog.java diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index eb2dcff192..71185f740f 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -22,7 +22,7 @@ jobs: - name: Run unit tests and build JAR run: ./gradlew desktop:dist - name: Upload desktop JAR for testing - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: Desktop JAR (zipped) path: desktop/build/libs/Mindustry.jar diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 2864574457..c27355fb68 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -197,6 +197,7 @@ campaign.select = Select Starting Campaign campaign.none = [lightgray]Select a planet to start on.\nThis can be switched at any time. campaign.erekir = Newer, more polished content. Mostly linear campaign progression.\n\nMore difficult. Higher quality maps and overall experience. campaign.serpulo = Older content; the classic experience. More open-ended, more content.\n\nPotentially unbalanced maps and campaign mechanics. Less polished. +campaign.difficulty = Difficulty completed = [accent]Researched techtree = Tech Tree techtree.select = Tech Tree Selection @@ -800,6 +801,11 @@ threat.high = High threat.extreme = Extreme threat.eradication = Eradication +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication + planets = Planets planet.serpulo.name = Serpulo @@ -1172,12 +1178,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = UI Scaling setting.uiscale.description = Restart required to apply changes. setting.swapdiagonal.name = Always Diagonal Placement -setting.difficulty.training = Training -setting.difficulty.easy = Easy -setting.difficulty.normal = Normal -setting.difficulty.hard = Hard -setting.difficulty.insane = Insane -setting.difficulty.name = Difficulty: setting.screenshake.name = Screen Shake setting.bloomintensity.name = Bloom Intensity setting.bloomblur.name = Bloom Blur @@ -1397,6 +1397,8 @@ rules.title.teams = Teams rules.title.planet = Planet rules.lighting = Lighting rules.fog = Fog of War +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Fire rules.anyenv = rules.explosions = Block/Unit Explosion Damage diff --git a/core/src/mindustry/ai/WaveSpawner.java b/core/src/mindustry/ai/WaveSpawner.java index e23dbbff5e..58f770f20d 100644 --- a/core/src/mindustry/ai/WaveSpawner.java +++ b/core/src/mindustry/ai/WaveSpawner.java @@ -66,12 +66,19 @@ public class WaveSpawner{ if(group.type == null) continue; int spawned = group.getSpawned(state.wave - 1); + if(spawned == 0) continue; + + if(state.isCampaign()){ + spawned = Math.max(1, Mathf.round(spawned * state.getPlanet().campaignRules.difficulty.enemySpawnMultiplier)); + } + + int spawnedf = spawned; if(group.type.flying){ float spread = margin / 1.5f; eachFlyerSpawn(group.spawn, (spawnX, spawnY) -> { - for(int i = 0; i < spawned; i++){ + for(int i = 0; i < spawnedf; i++){ Unit unit = group.createUnit(state.rules.waveTeam, state.wave - 1); unit.set(spawnX + Mathf.range(spread), spawnY + Mathf.range(spread)); spawnEffect(unit); @@ -82,7 +89,7 @@ public class WaveSpawner{ eachGroundSpawn(group.spawn, (spawnX, spawnY, doShockwave) -> { - for(int i = 0; i < spawned; i++){ + for(int i = 0; i < spawnedf; i++){ Tmp.v1.rnd(spread); Unit unit = group.createUnit(state.rules.waveTeam, state.wave - 1); @@ -153,7 +160,7 @@ public class WaveSpawner{ private void eachFlyerSpawn(int filterPos, Floatc2 cons){ boolean airUseSpawns = state.rules.airUseSpawns; - + for(Tile tile : spawns){ if(filterPos != -1 && filterPos != tile.pos()) continue; diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 873e1a9d45..f3a2d9332b 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -156,7 +156,7 @@ public class Blocks{ //payloads payloadConveyor, payloadRouter, reinforcedPayloadConveyor, reinforcedPayloadRouter, payloadMassDriver, largePayloadMassDriver, smallDeconstructor, deconstructor, constructor, largeConstructor, payloadLoader, payloadUnloader, - + //logic message, switchBlock, microProcessor, logicProcessor, hyperProcessor, largeLogicDisplay, logicDisplay, memoryCell, memoryBank, canvas, reinforcedMessage, @@ -1282,7 +1282,7 @@ public class Blocks{ itemCapacity = 0; consumePower(100f / 60f); }}; - + slagHeater = new HeatProducer("slag-heater"){{ requirements(Category.crafting, with(Items.tungsten, 50, Items.oxide, 20, Items.beryllium, 20)); @@ -3405,7 +3405,7 @@ public class Blocks{ lightningLength = 10; }} ); - + shoot = new ShootBarrel(){{ barrels = new float[]{ -4, -1.25f, 0, @@ -5326,7 +5326,7 @@ public class Blocks{ requirements(Category.units, with(Items.copper, 150, Items.lead, 130, Items.metaglass, 120)); plans = Seq.with( new UnitPlan(UnitTypes.risso, 60f * 45f, with(Items.silicon, 20, Items.metaglass, 35)), - new UnitPlan(UnitTypes.retusa, 60f * 50f, with(Items.silicon, 15, Items.metaglass, 25, Items.titanium, 20)) + new UnitPlan(UnitTypes.retusa, 60f * 35f, with(Items.silicon, 15, Items.titanium, 20)) ); size = 3; consumePower(1.2f); @@ -5930,7 +5930,7 @@ public class Blocks{ worldCell = new MemoryBlock("world-cell"){{ requirements(Category.logic, BuildVisibility.worldProcessorOnly, with()); - + targetable = false; privileged = true; memoryCapacity = 128; @@ -5939,7 +5939,7 @@ public class Blocks{ worldMessage = new MessageBlock("world-message"){{ requirements(Category.logic, BuildVisibility.worldProcessorOnly, with()); - + targetable = false; privileged = true; }}; diff --git a/core/src/mindustry/content/Planets.java b/core/src/mindustry/content/Planets.java index 7eec1f10b0..a37488943c 100644 --- a/core/src/mindustry/content/Planets.java +++ b/core/src/mindustry/content/Planets.java @@ -85,6 +85,8 @@ public class Planets{ r.coreDestroyClear = true; r.onlyDepositCore = true; }; + campaignRuleDefaults.fog = true; + campaignRuleDefaults.showSpawns = true; unlockedOnLand.add(Blocks.coreBastion); }}; diff --git a/core/src/mindustry/core/Control.java b/core/src/mindustry/core/Control.java index bc730c44c4..bdf8ab573c 100644 --- a/core/src/mindustry/core/Control.java +++ b/core/src/mindustry/core/Control.java @@ -16,9 +16,9 @@ import mindustry.content.*; import mindustry.content.TechTree.*; import mindustry.core.GameState.*; import mindustry.entities.*; +import mindustry.game.*; import mindustry.game.EventType.*; import mindustry.game.Objectives.*; -import mindustry.game.*; import mindustry.game.Saves.*; import mindustry.gen.*; import mindustry.input.*; @@ -30,7 +30,6 @@ import mindustry.net.*; import mindustry.type.*; import mindustry.ui.dialogs.*; import mindustry.world.*; -import mindustry.world.blocks.storage.*; import mindustry.world.blocks.storage.CoreBlock.*; import java.io.*; @@ -441,6 +440,7 @@ public class Control implements ApplicationListener, Loadable{ state.wave = 1; //set up default wave time state.wavetime = state.rules.initialWaveSpacing <= 0f ? (state.rules.waveSpacing * (sector.preset == null ? 2f : sector.preset.startWaveTimeMultiplier)) : state.rules.initialWaveSpacing; + state.wavetime *= sector.planet.campaignRules.difficulty.waveTimeMultiplier; //reset captured state sector.info.wasCaptured = false; diff --git a/core/src/mindustry/core/Logic.java b/core/src/mindustry/core/Logic.java index d1c7c5ca60..bbf4d7f3ed 100644 --- a/core/src/mindustry/core/Logic.java +++ b/core/src/mindustry/core/Logic.java @@ -92,7 +92,7 @@ public class Logic implements ApplicationListener{ if(wavesPassed > 0){ //simulate wave counter moving forward state.wave += wavesPassed; - state.wavetime = state.rules.waveSpacing; + state.wavetime = state.rules.waveSpacing * state.getPlanet().campaignRules.difficulty.waveTimeMultiplier; SectorDamage.applyCalculatedDamage(); } @@ -221,7 +221,7 @@ public class Logic implements ApplicationListener{ public void play(){ state.set(State.playing); //grace period of 2x wave time before game starts - state.wavetime = state.rules.initialWaveSpacing <= 0 ? state.rules.waveSpacing * 2 : state.rules.initialWaveSpacing; + state.wavetime = (state.rules.initialWaveSpacing <= 0 ? state.rules.waveSpacing * 2 : state.rules.initialWaveSpacing) * (state.isCampaign() ? state.getPlanet().campaignRules.difficulty.waveTimeMultiplier : 1f);; Events.fire(new PlayEvent()); //add starting items @@ -270,7 +270,7 @@ public class Logic implements ApplicationListener{ public void runWave(){ spawner.spawnEnemies(); state.wave++; - state.wavetime = state.rules.waveSpacing; + state.wavetime = state.rules.waveSpacing * (state.isCampaign() ? state.getPlanet().campaignRules.difficulty.waveTimeMultiplier : 1f); Events.fire(new WaveEvent()); } diff --git a/core/src/mindustry/game/CampaignRules.java b/core/src/mindustry/game/CampaignRules.java new file mode 100644 index 0000000000..c0be0548a5 --- /dev/null +++ b/core/src/mindustry/game/CampaignRules.java @@ -0,0 +1,15 @@ +package mindustry.game; + +public class CampaignRules{ + public Difficulty difficulty = Difficulty.normal; + public boolean fog; + public boolean showSpawns; + public boolean sectorInvasion; + + public void apply(Rules rules){ + rules.staticFog = rules.fog = fog; + rules.showSpawns = showSpawns; + rules.teams.get(rules.waveTeam).blockHealthMultiplier = difficulty.enemyHealthMultiplier; + rules.teams.get(rules.waveTeam).unitHealthMultiplier = difficulty.enemyHealthMultiplier; + } +} diff --git a/core/src/mindustry/game/Difficulty.java b/core/src/mindustry/game/Difficulty.java new file mode 100644 index 0000000000..3018f9c3f1 --- /dev/null +++ b/core/src/mindustry/game/Difficulty.java @@ -0,0 +1,26 @@ +package mindustry.game; + +import arc.*; + +public enum Difficulty{ + //TODO these need tweaks + easy(1f, 0.75f, 1.5f), + normal(1f, 1f, 1f), + hard(1.25f, 1.5f, 0.6f), + eradication(1.5f, 2f, 0.4f); + + public static final Difficulty[] all = values(); + + //TODO add more fields + public float enemyHealthMultiplier, enemySpawnMultiplier, waveTimeMultiplier; + + Difficulty(float enemyHealthMultiplier, float enemySpawnMultiplier, float waveTimeMultiplier){ + this.enemySpawnMultiplier = enemySpawnMultiplier; + this.waveTimeMultiplier = waveTimeMultiplier; + this.enemyHealthMultiplier = enemyHealthMultiplier; + } + + public String localized(){ + return Core.bundle.get("difficulty." + name()); + } +} diff --git a/core/src/mindustry/game/Universe.java b/core/src/mindustry/game/Universe.java index 4aa77d8be7..a22d073f9d 100644 --- a/core/src/mindustry/game/Universe.java +++ b/core/src/mindustry/game/Universe.java @@ -252,7 +252,7 @@ public class Universe{ } //queue random invasions - if(!sector.isAttacked() && sector.planet.allowSectorInvasion && sector.info.minutesCaptured > invasionGracePeriod && sector.info.hasSpawns){ + if(!sector.isAttacked() && sector.planet.campaignRules.sectorInvasion && sector.info.minutesCaptured > invasionGracePeriod && sector.info.hasSpawns){ int count = sector.near().count(s -> s.hasEnemyBase() && !s.hasBase()); //invasion chance depends on # of nearby bases diff --git a/core/src/mindustry/type/Planet.java b/core/src/mindustry/type/Planet.java index 047a288093..23cc55efec 100644 --- a/core/src/mindustry/type/Planet.java +++ b/core/src/mindustry/type/Planet.java @@ -19,6 +19,7 @@ import mindustry.gen.*; import mindustry.graphics.*; import mindustry.graphics.g3d.*; import mindustry.graphics.g3d.PlanetGrid.*; +import mindustry.io.*; import mindustry.maps.generators.*; import mindustry.world.*; import mindustry.world.blocks.*; @@ -127,15 +128,21 @@ public class Planet extends UnlockableContent{ public boolean allowWaves = false; /** If false, players are unable to land on this planet's numbered sectors. */ public boolean allowLaunchToNumbered = true; + /** If true, the player is allowed to change the difficulty/rules in the planet UI. */ + public boolean allowCampaignRules = false; /** Icon as displayed in the planet selection dialog. This is a string, as drawables are null at load time. */ public String icon = "planet"; /** Plays in the planet dialog when this planet is selected. */ public Music launchMusic = Musics.launch; /** Default core block for launching. */ public Block defaultCore = Blocks.coreShard; + /** Global difficulty/modifier settings for this planet's campaign. */ + public CampaignRules campaignRules = new CampaignRules(); + /** Defaults applied to the rules. */ + public CampaignRules campaignRuleDefaults = new CampaignRules(); /** Sets up rules on game load for any sector on this planet. */ public Cons ruleSetter = r -> {}; - /** Parent body that this planet orbits around. If null, this planet is considered to be in the middle of the solar system.*/ + /** Parent body that this planet orbits around. If null, this planet is considered to be in the middle of the solar system. */ public @Nullable Planet parent; /** The root parent of the whole solar system this planet is in. */ public Planet solarSystem; @@ -183,6 +190,7 @@ public class Planet extends UnlockableContent{ //calculate solar system for(solarSystem = this; solarSystem.parent != null; solarSystem = solarSystem.parent); + allowCampaignRules = isVanilla(); } public Planet(String name, Planet parent, float radius, int sectorSize){ @@ -200,17 +208,38 @@ public class Planet extends UnlockableContent{ } } + public void saveRules(){ + Core.settings.putJson(name + "-campaign-rules", campaignRules); + } + + public void loadRules(){ + campaignRules = Core.settings.getJson(name + "-campaign-rules", CampaignRules.class, () -> campaignRules); + } + public @Nullable Sector getStartSector(){ return sectors.size == 0 ? null : sectors.get(startSector); } public void applyRules(Rules rules){ + applyRules(rules, false); + } + + public void applyRules(Rules rules, boolean customGame){ ruleSetter.get(rules); rules.attributes.clear(); rules.attributes.add(defaultAttributes); rules.env = defaultEnv; rules.planet = this; + + if(!customGame){ + campaignRules.apply(rules); + } + } + + public void applyDefaultRules(CampaignRules rules){ + JsonIO.copy(campaignRuleDefaults, rules); + rules.sectorInvasion = allowSectorInvasion; } public @Nullable Sector getLastSector(){ @@ -327,6 +356,9 @@ public class Planet extends UnlockableContent{ @Override public void init(){ + applyDefaultRules(campaignRules); + loadRules(); + if(techTree == null){ techTree = TechTree.roots.find(n -> n.planet == this); } diff --git a/core/src/mindustry/ui/dialogs/CampaignRulesDialog.java b/core/src/mindustry/ui/dialogs/CampaignRulesDialog.java new file mode 100644 index 0000000000..0805234ef8 --- /dev/null +++ b/core/src/mindustry/ui/dialogs/CampaignRulesDialog.java @@ -0,0 +1,86 @@ +package mindustry.ui.dialogs; + +import arc.*; +import arc.func.*; +import arc.scene.ui.*; +import arc.scene.ui.layout.*; +import mindustry.*; +import mindustry.game.*; +import mindustry.gen.*; +import mindustry.type.*; +import mindustry.ui.*; + +public class CampaignRulesDialog extends BaseDialog{ + Planet planet; + Table current; + + public CampaignRulesDialog(){ + super("@campaign.difficulty"); + + addCloseButton(); + + hidden(() -> { + if(planet != null){ + planet.saveRules(); + + if(Vars.state.isGame() && Vars.state.isCampaign() && Vars.state.getPlanet() == planet){ + planet.campaignRules.apply(Vars.state.rules); + Call.setRules(Vars.state.rules); + } + } + }); + } + + void rebuild(){ + CampaignRules rules = planet.campaignRules; + cont.clear(); + + cont.top().pane(inner -> { + inner.top().left().defaults().fillX().left().pad(5); + current = inner; + + current.table(Tex.button, t -> { + t.margin(10f); + var group = new ButtonGroup<>(); + var style = Styles.flatTogglet; + + t.defaults().size(140f, 50f); + + for(Difficulty diff : Difficulty.all){ + t.button(diff.localized(), style, () -> { + rules.difficulty = diff; + }).group(group).checked(b -> rules.difficulty == diff); + } + }).left().fill(false).expand(false, false).row(); + + if(planet.allowSectorInvasion){ + check("@rules.invasions", b -> rules.sectorInvasion = b, () -> rules.sectorInvasion); + } + + check("@rules.fog", b -> rules.fog = b, () -> rules.fog); + check("@rules.showspawns", b -> rules.showSpawns = b, () -> rules.showSpawns); + }).growY(); + } + + public void show(Planet planet){ + this.planet = planet; + + rebuild(); + show(); + } + + void check(String text, Boolc cons, Boolp prov){ + check(text, cons, prov, () -> true); + } + + void check(String text, Boolc cons, Boolp prov, Boolp condition){ + String infoText = text.substring(1) + ".info"; + var cell = current.check(text, cons).checked(prov.get()).update(a -> a.setDisabled(!condition.get())); + if(Core.bundle.has(infoText)){ + cell.tooltip(text + ".info"); + } + cell.get().left(); + current.row(); + } + +} diff --git a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java index 247625c248..4905cbad3e 100644 --- a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java +++ b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java @@ -329,7 +329,7 @@ public class CustomRulesDialog extends BaseDialog{ for(Planet planet : content.planets().select(p -> p.accessible && p.visible && p.isLandable())){ t.button(planet.localizedName, style, () -> { - planet.applyRules(rules); + planet.applyRules(rules, true); }).group(group).checked(b -> rules.planet == planet); if(t.getChildren().size % 3 == 0){ diff --git a/core/src/mindustry/ui/dialogs/PlanetDialog.java b/core/src/mindustry/ui/dialogs/PlanetDialog.java index 6ef9bb6397..1a040bc00a 100644 --- a/core/src/mindustry/ui/dialogs/PlanetDialog.java +++ b/core/src/mindustry/ui/dialogs/PlanetDialog.java @@ -67,10 +67,11 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ public Label hoverLabel = new Label(""); private Texture[] planetTextures; + private CampaignRulesDialog campaignRules = new CampaignRulesDialog(); public PlanetDialog(){ super("", Styles.fullDialog); - + state.renderer = this; state.drawUi = true; @@ -387,7 +388,7 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ //preset sectors can only be selected once unlocked if(sector.preset != null){ TechNode node = sector.preset.techNode; - return node == null || node.parent == null || (node.parent.content.unlocked() && (!(node.parent.content instanceof SectorPreset preset) || preset.sector.hasBase())); + return sector.preset.unlocked() || node == null || node.parent == null || (node.parent.content.unlocked() && (!(node.parent.content instanceof SectorPreset preset) || preset.sector.hasBase())); } return sector.planet.generator != null ? @@ -474,7 +475,7 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ if(state.uiAlpha > 0.001f){ for(Sector sec : planet.sectors){ if(sec.hasBase()){ - if(planet.allowSectorInvasion){ + if(planet.campaignRules.sectorInvasion){ for(Sector enemy : sec.near()){ if(enemy.hasEnemyBase()){ planets.drawArc(planet, enemy.tile.v, sec.tile.v, Team.crux.color.write(Tmp.c2).a(state.uiAlpha), Color.clear, 0.24f, 110f, 25); @@ -612,6 +613,10 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ t.top().left(); ScrollPane pane = new ScrollPane(null, Styles.smallPane); t.add(pane).colspan(2).row(); + t.button("@campaign.difficulty", Icon.bookSmall, () -> { + campaignRules.show(state.planet); + }).margin(12f).size(208f, 40f).padTop(12f).visible(() -> state.planet.allowCampaignRules).row(); + t.add().height(64f); //padding for close button Table starsTable = new Table(Styles.black); pane.setWidget(starsTable); pane.setScrollingDisabled(true, false); @@ -1133,7 +1138,7 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ if(sector.isAttacked()){ addSurvivedInfo(sector, stable, false); - }else if(sector.hasBase() && sector.planet.allowSectorInvasion && sector.near().contains(Sector::hasEnemyBase)){ + }else if(sector.hasBase() && sector.planet.campaignRules.sectorInvasion && sector.near().contains(Sector::hasEnemyBase)){ stable.add("@sectors.vulnerable"); stable.row(); }else if(!sector.hasBase() && sector.hasEnemyBase()){ diff --git a/core/src/mindustry/world/meta/BlockFlag.java b/core/src/mindustry/world/meta/BlockFlag.java index 314c0424b6..257fa0c20a 100644 --- a/core/src/mindustry/world/meta/BlockFlag.java +++ b/core/src/mindustry/world/meta/BlockFlag.java @@ -32,5 +32,5 @@ public enum BlockFlag{ public final static BlockFlag[] all = values(); /** Values for logic only. Filters out some internal flags. */ - public final static BlockFlag[] allLogic = {core, storage, generator, turret, factory, repair, battery, reactor}; + public final static BlockFlag[] allLogic = {core, storage, generator, turret, factory, repair, battery, reactor, drill}; } From a0c567b92179a067e90da632f96c602bba5b30b5 Mon Sep 17 00:00:00 2001 From: Github Actions Date: Fri, 13 Sep 2024 21:59:16 +0000 Subject: [PATCH 158/437] Automatic bundle update --- core/assets/bundles/bundle_be.properties | 13 +++++++------ core/assets/bundles/bundle_bg.properties | 13 +++++++------ core/assets/bundles/bundle_ca.properties | 13 +++++++------ core/assets/bundles/bundle_cs.properties | 13 +++++++------ core/assets/bundles/bundle_da.properties | 13 +++++++------ core/assets/bundles/bundle_de.properties | 13 +++++++------ core/assets/bundles/bundle_es.properties | 13 +++++++------ core/assets/bundles/bundle_et.properties | 13 +++++++------ core/assets/bundles/bundle_eu.properties | 13 +++++++------ core/assets/bundles/bundle_fi.properties | 13 +++++++------ core/assets/bundles/bundle_fil.properties | 13 +++++++------ core/assets/bundles/bundle_fr.properties | 13 +++++++------ core/assets/bundles/bundle_hu.properties | 13 +++++++------ core/assets/bundles/bundle_id_ID.properties | 13 +++++++------ core/assets/bundles/bundle_it.properties | 13 +++++++------ core/assets/bundles/bundle_ja.properties | 13 +++++++------ core/assets/bundles/bundle_ko.properties | 13 +++++++------ core/assets/bundles/bundle_lt.properties | 13 +++++++------ core/assets/bundles/bundle_nl.properties | 13 +++++++------ core/assets/bundles/bundle_nl_BE.properties | 13 +++++++------ core/assets/bundles/bundle_pl.properties | 13 +++++++------ core/assets/bundles/bundle_pt_BR.properties | 13 +++++++------ core/assets/bundles/bundle_pt_PT.properties | 13 +++++++------ core/assets/bundles/bundle_ro.properties | 13 +++++++------ core/assets/bundles/bundle_ru.properties | 13 +++++++------ core/assets/bundles/bundle_sr.properties | 13 +++++++------ core/assets/bundles/bundle_sv.properties | 13 +++++++------ core/assets/bundles/bundle_th.properties | 13 +++++++------ core/assets/bundles/bundle_tk.properties | 13 +++++++------ core/assets/bundles/bundle_tr.properties | 13 +++++++------ core/assets/bundles/bundle_uk_UA.properties | 13 +++++++------ core/assets/bundles/bundle_vi.properties | 13 +++++++------ core/assets/bundles/bundle_zh_CN.properties | 13 +++++++------ core/assets/bundles/bundle_zh_TW.properties | 13 +++++++------ 34 files changed, 238 insertions(+), 204 deletions(-) diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties index 0906453b03..091b8e38b7 100644 --- a/core/assets/bundles/bundle_be.properties +++ b/core/assets/bundles/bundle_be.properties @@ -189,6 +189,7 @@ campaign.select = Выбраць Пачатковую Кампанію campaign.none = [lightgray]Выберыце з якой планеты пачаць.\nГэта можна змяніць ў любы час. campaign.erekir = Навей, больш удасканаленага кантэнту. Больш лінейнае праходжанне кампаніі.\n\nБольш якасныя карты і агульны вопыт. campaign.serpulo = Старэйшы кантэнт; класічны вопыт. Больш адкрытая.\n\nЗусім не збалансаваныя карты і механікі кампаніі. Менш удасканаленага. +campaign.difficulty = Difficulty completed = [accent]Завершаны techtree = Дрэва\n Тэхналогій techtree.select = Выбар Дрэва Тэхналогій @@ -774,6 +775,10 @@ threat.medium = Сярэдняя threat.high = Высокая threat.extreme = Экстрымальная threat.eradication = Вынішчэнне +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Планеты planet.serpulo.name = Серпуло @@ -1142,12 +1147,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = Маштаб карыстальніцкага інтэрфейсу [lightgray] (перазапусьціцца)[] setting.uiscale.description = Каб змены ўжыліся патрабуецца перазапуск. setting.swapdiagonal.name = Заўсёды дыяганальнае размяшчэнне -setting.difficulty.training = Навучанне -setting.difficulty.easy = Лёгкая -setting.difficulty.normal = Нармальны -setting.difficulty.hard = Складаная -setting.difficulty.insane = Вар’яцкая -setting.difficulty.name = Складанасць: setting.screenshake.name = Трасяніна экрана setting.bloomintensity.name = Інтэнсіўнасць Цвету setting.bloomblur.name = Размыты Цвет @@ -1364,6 +1363,8 @@ rules.title.teams = Кманды rules.title.planet = Планета rules.lighting = Асвятленне rules.fog = Туман Вайны +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Агонь rules.anyenv = <Любы> rules.explosions = Падрыўныя пашкоджанні Блока/Адзінкі diff --git a/core/assets/bundles/bundle_bg.properties b/core/assets/bundles/bundle_bg.properties index aa59e73f4e..904203a69e 100644 --- a/core/assets/bundles/bundle_bg.properties +++ b/core/assets/bundles/bundle_bg.properties @@ -193,6 +193,7 @@ campaign.select = Select Starting Campaign campaign.none = [lightgray]Select a planet to start on.\nThis can be switched at any time. campaign.erekir = Newer, more polished content. Mostly linear campaign progression.\n\nHigher quality maps and overall experience. campaign.serpulo = Older content; the classic experience. More open-ended.\n\nPotentially unbalanced maps and campaign mechanics. Less polished. +campaign.difficulty = Difficulty completed = [accent]Завършено techtree = Tech Tree techtree.select = Tech Tree Selection @@ -782,6 +783,10 @@ threat.medium = Средна threat.high = Висока threat.extreme = Екстремна threat.eradication = Унищожителна +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Планети @@ -1153,12 +1158,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = Размер на Интерфейсът[lightgray] (изисква рестарт)[] setting.uiscale.description = Restart required to apply changes. setting.swapdiagonal.name = Винаги Диагонално Поставяне -setting.difficulty.training = Тренировка -setting.difficulty.easy = Лесно -setting.difficulty.normal = Нормално -setting.difficulty.hard = Трудно -setting.difficulty.insane = Безумно -setting.difficulty.name = Трудност: setting.screenshake.name = Клатене на Екрата setting.bloomintensity.name = Bloom Intensity setting.bloomblur.name = Bloom Blur @@ -1375,6 +1374,8 @@ rules.title.teams = Teams rules.title.planet = Planet rules.lighting = Светкавици rules.fog = Fog of War +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Огън rules.anyenv = rules.explosions = Block/Unit Explosion Damage diff --git a/core/assets/bundles/bundle_ca.properties b/core/assets/bundles/bundle_ca.properties index 0ab0af8c38..7c62a873fe 100644 --- a/core/assets/bundles/bundle_ca.properties +++ b/core/assets/bundles/bundle_ca.properties @@ -193,6 +193,7 @@ campaign.select = Trieu la campanya inicial campaign.none = [lightgray]Trieu en quin planeta voleu començar.\nEs pot canviar en qualsevol moment. campaign.erekir = [accent]Recomanat per a jugadors novells.[]\n\nContingut revisat nou. Una campanya de progressió més o menys lineal.\n\nMapes de qualitat més alta i experiència més satisfactòria. campaign.serpulo = [scarlet]No recomanat per a jugadors novells.[]\n\nContingut antic; l’experiència clàssica. Campanya més oberta.\n\nPotser els mapes i mecàniques de la campanya no estan massa equilibrats. Contingut en general menys polit que el d’Erekir. +campaign.difficulty = Difficulty completed = [accent]Completat techtree = Arbre tecnològic techtree.select = Selecció de l’arbre tecnològic @@ -786,6 +787,10 @@ threat.medium = Mitjana threat.high = Alta threat.extreme = Extrema threat.eradication = Erradicació +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Planetes @@ -1156,12 +1161,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = Escala de la interfície setting.uiscale.description = Cal reiniciar perquè s’apliquin els canvis. setting.swapdiagonal.name = Permet sempre construir en diagonal -setting.difficulty.training = Entrenament -setting.difficulty.easy = Fàcil -setting.difficulty.normal = Normal -setting.difficulty.hard = Difícil -setting.difficulty.insane = Molt difícil -setting.difficulty.name = Dificultat: setting.screenshake.name = Sacseig de pantalla setting.bloomintensity.name = Intensitat de l’efecte «bloom» setting.bloomblur.name = Desenfocament «bloom» @@ -1378,6 +1377,8 @@ rules.title.teams = Equips rules.title.planet = Planeta rules.lighting = Il·luminació rules.fog = Amaga el terreny inexplorat +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Foc rules.anyenv = rules.explosions = Dany de les explosions als blocs/unitats diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index d6e155a6ff..f02c289756 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -193,6 +193,7 @@ campaign.select = Vybrat Začínající Kampaň campaign.none = [lightgray]Select a planet to start on.\nThis can be switched at any time. campaign.erekir = Newer, more polished content. Mostly linear campaign progression.\n\nHigher quality maps and overall experience. campaign.serpulo = Older content; the classic experience. More open-ended.\n\nPotentially unbalanced maps and campaign mechanics. Less polished. +campaign.difficulty = Difficulty completed = [accent]Dokončeno[] techtree = Technologie techtree.select = Výběr Výzkumného Stromu @@ -784,6 +785,10 @@ threat.medium = Střední threat.high = Velké threat.extreme = Extrémní threat.eradication = Vyhlazující +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Planety @@ -1155,12 +1160,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = Škálování uživatelského rozhraní[lightgray] (je vyžadován restart)[] setting.uiscale.description = Pro aplikování změn, je potřeba restart. setting.swapdiagonal.name = Vždy pokládat úhlopříčně -setting.difficulty.training = Zácviková -setting.difficulty.easy = Lehká -setting.difficulty.normal = Normální -setting.difficulty.hard = Těžká -setting.difficulty.insane = Šílená -setting.difficulty.name = Obtížnost: setting.screenshake.name = Chvění obrazovky setting.bloomintensity.name = Intenzita Bloom setting.bloomblur.name = Rozmazání Bloom @@ -1377,6 +1376,8 @@ rules.title.teams = Týmy rules.title.planet = Planeta rules.lighting = Osvětlení rules.fog = Fog of War +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Výstřel rules.anyenv = rules.explosions = Výbušné poškození bloku/jednotky diff --git a/core/assets/bundles/bundle_da.properties b/core/assets/bundles/bundle_da.properties index 859cac0b85..2fd355ce70 100644 --- a/core/assets/bundles/bundle_da.properties +++ b/core/assets/bundles/bundle_da.properties @@ -190,6 +190,7 @@ campaign.select = Select Starting Campaign campaign.none = [lightgray]Select a planet to start on.\nThis can be switched at any time. campaign.erekir = Newer, more polished content. Mostly linear campaign progression.\n\nHigher quality maps and overall experience. campaign.serpulo = Older content; the classic experience. More open-ended.\n\nPotentially unbalanced maps and campaign mechanics. Less polished. +campaign.difficulty = Difficulty completed = [accent]Færdiggjort techtree = Teknologi træ techtree.select = Tech Tree Selection @@ -775,6 +776,10 @@ threat.medium = Medium threat.high = High threat.extreme = Extreme threat.eradication = Eradication +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Planets planet.serpulo.name = Serpulo @@ -1144,12 +1149,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = UI-skalering[lightgray] (genstart kræves)[] setting.uiscale.description = Restart required to apply changes. setting.swapdiagonal.name = Altid diagonal placering -setting.difficulty.training = Træning -setting.difficulty.easy = Let -setting.difficulty.normal = Normal -setting.difficulty.hard = Svær -setting.difficulty.insane = Sindssyg -setting.difficulty.name = Sværhedsgrad: setting.screenshake.name = Skærm-ryst setting.bloomintensity.name = Bloom Intensity setting.bloomblur.name = Bloom Blur @@ -1366,6 +1365,8 @@ rules.title.teams = Teams rules.title.planet = Planet rules.lighting = Lys rules.fog = Fog of War +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Ild rules.anyenv = rules.explosions = Blok/Enheds-eksplosionsskade diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index 19cb5bf3de..5a5edf0d16 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -196,6 +196,7 @@ campaign.select = Startkampagne auswählen campaign.none = [lightgray]Wähle einen Planeten, auf dem du starten möchtest.\nDies kannst du jederzeit ändern. campaign.erekir = Neuerer, besserer Inhalt. Größtenteils linearer Fortschritt.\n\nSchwieriger. Höhere Karten- und Spielqualität. campaign.serpulo = Ältere Inhalt; das klassische Spiel. Offener, mehr Inhalt. \n\nKarten und Spielmechanismen möglicherweise qualitativ schlechter und ohne Balance. +campaign.difficulty = Difficulty completed = [accent]Abgeschlossen techtree = Forschung techtree.select = Forschungsauswahl @@ -794,6 +795,10 @@ threat.medium = Mittel threat.high = Hoch threat.extreme = Extrem threat.eradication = Zerstörung +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Planeten @@ -1166,12 +1171,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = UI-Skalierung setting.uiscale.description = Neustart erforderlich. setting.swapdiagonal.name = Immer diagonale Platzierung -setting.difficulty.training = Training -setting.difficulty.easy = Leicht -setting.difficulty.normal = Normal -setting.difficulty.hard = Schwer -setting.difficulty.insane = Verrückt -setting.difficulty.name = Schwierigkeit: setting.screenshake.name = Wackeleffekt setting.bloomintensity.name = Bloomstärke setting.bloomblur.name = Bloomunschärfe @@ -1388,6 +1387,8 @@ rules.title.teams = Teams rules.title.planet = Planet rules.lighting = Blitze rules.fog = Kriegsnebel +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Feuer rules.anyenv = rules.explosions = Explosionsschaden diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index 6e100da717..a47b7057af 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -193,6 +193,7 @@ campaign.select = Elegir campaña campaign.none = [lightgray]Elige un planeta donde empezar.\nPuedes cambiar en cualquier momento. campaign.erekir = [accent]Recomendado para nuevos jugadores.[]\n\nContenido más reciente y pulido. Progresión de campaña lineal.\n\nNiveles y experiencia de mayor calidad. campaign.serpulo = [scarlet]No recomendado para jugadores novatos.[]\n\nContenido más antiguo; La experiencia clásica. More open-ended.\n\nNiveles y mecánicas de juego potencialmente desequilibrados. +campaign.difficulty = Difficulty completed = [accent]Completado techtree = Investigaciones tecnológicas techtree.select = Selección de esquemas de tecnologías @@ -790,6 +791,10 @@ threat.medium = Media threat.high = Alta threat.extreme = Extrema threat.eradication = Erradicación +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Planetas @@ -1162,12 +1167,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = Escala de interfaz setting.uiscale.description = Es necesario reiniciar para aplicar los cambios. setting.swapdiagonal.name = Construir siempre en diagonal -setting.difficulty.training = Entrenamiento -setting.difficulty.easy = Fácil -setting.difficulty.normal = Normal -setting.difficulty.hard = Difícil -setting.difficulty.insane = Demencial -setting.difficulty.name = Dificultad: setting.screenshake.name = Vibración de pantalla setting.bloomintensity.name = Intensidad de desenfoque de Bloom setting.bloomblur.name = Difuminado de puntos de luz (Bloom) @@ -1384,6 +1383,8 @@ rules.title.teams = Equipos rules.title.planet = Planeta rules.lighting = Iluminación rules.fog = Ocultar terreno inexplorado (Fog of War) +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Fuego rules.anyenv = rules.explosions = Daño de explosiones a bloques/unidades diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties index 47c6e6573e..4289650bbc 100644 --- a/core/assets/bundles/bundle_et.properties +++ b/core/assets/bundles/bundle_et.properties @@ -190,6 +190,7 @@ campaign.select = Select Starting Campaign campaign.none = [lightgray]Select a planet to start on.\nThis can be switched at any time. campaign.erekir = Newer, more polished content. Mostly linear campaign progression.\n\nHigher quality maps and overall experience. campaign.serpulo = Older content; the classic experience. More open-ended.\n\nPotentially unbalanced maps and campaign mechanics. Less polished. +campaign.difficulty = Difficulty completed = [accent]Olemas techtree = Uurimispuu techtree.select = Tech Tree Selection @@ -775,6 +776,10 @@ threat.medium = Medium threat.high = High threat.extreme = Extreme threat.eradication = Eradication +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Planets planet.serpulo.name = Serpulo @@ -1144,12 +1149,6 @@ setting.fpscap.text = {0} kaadrit/s setting.uiscale.name = Kasutajaliidese suurus[lightgray] (vajab mängu taaskäivitamist)[] setting.uiscale.description = Restart required to apply changes. setting.swapdiagonal.name = Paiguta alati diagonaalselt -setting.difficulty.training = Treening -setting.difficulty.easy = Lihtne -setting.difficulty.normal = Keskmine -setting.difficulty.hard = Raske -setting.difficulty.insane = Hullumeelne -setting.difficulty.name = Raskusaste: setting.screenshake.name = Ekraani värisemine setting.bloomintensity.name = Bloom Intensity setting.bloomblur.name = Bloom Blur @@ -1366,6 +1365,8 @@ rules.title.teams = Teams rules.title.planet = Planet rules.lighting = Lighting rules.fog = Fog of War +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Fire rules.anyenv = rules.explosions = Block/Unit Explosion Damage diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties index 047ad0c794..abe6201974 100644 --- a/core/assets/bundles/bundle_eu.properties +++ b/core/assets/bundles/bundle_eu.properties @@ -190,6 +190,7 @@ campaign.select = Hautatu hasierako kanpaina campaign.none = [lightgray]hautatu hasteko planeta.\nHau edonoiz aldatu daiteke. campaign.erekir = [accent]Jokalari berrientzak aholkatua.[]\n\nEduki berriagoa eta landuagoa. Kanpaina aurreratze lineala.\n\nKalitate hobeko mapak eta esperientzia orokorra. campaign.serpulo = [scarlet]Ez aholkatua jokalari berrientzat.[]\n\nEduki zaharra; esperientzia klasikoa. Irekiagoa.\n\nAgian desorekatuak dauden mapak eta kanpainaren mekanikak. Ez horren landua. +campaign.difficulty = Difficulty completed = [accent]Ikertua @@ -777,6 +778,10 @@ threat.medium = Medium threat.high = High threat.extreme = Extreme threat.eradication = Eradication +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Planets planet.serpulo.name = Serpulo @@ -1146,12 +1151,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = Interfaze-eskala[lightgray] (berrabiarazi behar da)[] setting.uiscale.description = Restart required to apply changes. setting.swapdiagonal.name = Kokatu beti diagonalean -setting.difficulty.training = Entrenamendua -setting.difficulty.easy = Erraza -setting.difficulty.normal = Arrunta -setting.difficulty.hard = Zaila -setting.difficulty.insane = Zoramena -setting.difficulty.name = Zailtasuna: setting.screenshake.name = Pantailaren astindua setting.bloomintensity.name = Bloom Intensity setting.bloomblur.name = Bloom Blur @@ -1368,6 +1367,8 @@ rules.title.teams = Teams rules.title.planet = Planet rules.lighting = Lighting rules.fog = Fog of War +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Fire rules.anyenv = rules.explosions = Block/Unit Explosion Damage diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties index da90f63ad4..c93f65904f 100644 --- a/core/assets/bundles/bundle_fi.properties +++ b/core/assets/bundles/bundle_fi.properties @@ -190,6 +190,7 @@ campaign.select = Select Starting Campaign campaign.none = [lightgray]Select a planet to start on.\nThis can be switched at any time. campaign.erekir = Newer, more polished content. Mostly linear campaign progression.\n\nHigher quality maps and overall experience. campaign.serpulo = Older content; the classic experience. More open-ended.\n\nPotentially unbalanced maps and campaign mechanics. Less polished. +campaign.difficulty = Difficulty completed = [accent]Suoritettu techtree = Edistyspuu techtree.select = Edistyspuun valinta @@ -775,6 +776,10 @@ threat.medium = Kohtalainen threat.high = Korkea threat.extreme = Äärimmäinen threat.eradication = Täystuho +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Planeetat planet.serpulo.name = Serpulo @@ -1143,12 +1148,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = UI Koko[lightgray] (vaatii uudelleenkäynnistyksen)[] setting.uiscale.description = Muutosten toteuttaminen vaatii uudelleenkäynnistyksen setting.swapdiagonal.name = Aina vino korvaus -setting.difficulty.training = Treenaus -setting.difficulty.easy = Huoleton -setting.difficulty.normal = Haasteeton -setting.difficulty.hard = Taidonnäyte -setting.difficulty.insane = Hullun Vaikea -setting.difficulty.name = Vaikeustaso: setting.screenshake.name = Näytön keikkuminen setting.bloomintensity.name = Bloom-intensiteetti setting.bloomblur.name = Bloom-sumennus @@ -1365,6 +1364,8 @@ rules.title.teams = Joukkueet rules.title.planet = Planeetta rules.lighting = Salamointi rules.fog = Sodan sumu (Fog of War) +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Tuli rules.anyenv = rules.explosions = Palikkojen/Yksikköjen räjähdysvahinko diff --git a/core/assets/bundles/bundle_fil.properties b/core/assets/bundles/bundle_fil.properties index ddf46dbb04..183dc8f99f 100644 --- a/core/assets/bundles/bundle_fil.properties +++ b/core/assets/bundles/bundle_fil.properties @@ -190,6 +190,7 @@ campaign.select = Select Starting Campaign campaign.none = [lightgray]Select a planet to start on.\nThis can be switched at any time. campaign.erekir = Newer, more polished content. Mostly linear campaign progression.\n\nHigher quality maps and overall experience. campaign.serpulo = Older content; the classic experience. More open-ended.\n\nPotentially unbalanced maps and campaign mechanics. Less polished. +campaign.difficulty = Difficulty completed = [accent]Completed techtree = Tech Tree techtree.select = Tech Tree Selection @@ -775,6 +776,10 @@ threat.medium = Medium threat.high = Mataas threat.extreme = Sobra-sobra threat.eradication = Tiyak na talo sa hind handa +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Mga planeta planet.serpulo.name = Serpulo @@ -1143,12 +1148,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = UI Scaling[lightgray] (restart required)[] setting.uiscale.description = Kinakailangan ang pag-restart upang mailapat ang mga pagbabago. setting.swapdiagonal.name = Palaging Diagonal na Placement -setting.difficulty.training = Training -setting.difficulty.easy = Easy -setting.difficulty.normal = Normal -setting.difficulty.hard = Hard -setting.difficulty.insane = Insane -setting.difficulty.name = Difficulty: setting.screenshake.name = Screen Shake setting.bloomintensity.name = Bloom Intensity setting.bloomblur.name = Bloom Blur @@ -1365,6 +1364,8 @@ rules.title.teams = Teams rules.title.planet = Planet rules.lighting = Lighting rules.fog = Fog of War +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Fire rules.anyenv = rules.explosions = Block/Unit Explosion Damage diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index 50f5f56127..57ba9b25b9 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -197,6 +197,7 @@ campaign.select = Sélectionnez la Campagne de Départ campaign.none = [lightgray]Sélectionnez votre planète de départ.\nCela peut être changé à tout moment. campaign.erekir = Contenu récent et mieux travaillé. Une progression dans la campagne assez linéaire.\n\nPlus difficile. Des cartes et une expérience de qualité. campaign.serpulo = Contenu ancien, l'expérience classique de Mindustry. Avec plus de contenu et de possibilités.\n\nCartes et mécaniques de campagnes possiblement moins équilibrées. Moins travaillé. +campaign.difficulty = Difficulty completed = [accent]Complété techtree = Arbre technologique techtree.select = Sélection de l'Arbre technologique @@ -797,6 +798,10 @@ threat.medium = Normale threat.high = Grande threat.extreme = Extrême threat.eradication = Éradication +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Planètes @@ -1168,12 +1173,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = Échelle de l'interface setting.uiscale.description = Redémarrage du jeu nécessaire pour appliquer les changements. setting.swapdiagonal.name = Autoriser le placement en diagonale -setting.difficulty.training = Entraînement -setting.difficulty.easy = Facile -setting.difficulty.normal = Normal -setting.difficulty.hard = Difficile -setting.difficulty.insane = Extrême -setting.difficulty.name = Difficulté: setting.screenshake.name = Tremblement de l'Écran setting.bloomintensity.name = Intensité de l'effet de Bloom setting.bloomblur.name = Flou de l'effet de Bloom @@ -1392,6 +1391,8 @@ rules.title.teams = Équipes rules.title.planet = Planète rules.lighting = Éclairage rules.fog = Brouillard de Guerre +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Feu rules.anyenv = rules.explosions = Dégâts d'explosion des Blocs/Unités diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index ed60bdcc36..e0cbbdadab 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -197,6 +197,7 @@ campaign.select = Válassz ki egy kezdő hadjáratot campaign.none = [lightgray]Válassz egy bolygót a kezdéshez.\nEzt bármikor megváltoztathatod. campaign.erekir = Újabb, csiszoltabb tartalom. Többnyire lineáris játékmenet.\n\nSokkal nehezebb. Magasabb minőségű pályák és élmények. campaign.serpulo = Régebbi tartalom. A klasszikus élmény. Nyíltabb végű, több tartalommal.\n\nPotenciálisan kiegyensúlyozatlan pályák és hadjárat. Kevésbé csiszolt. +campaign.difficulty = Difficulty completed = [accent]Kész techtree = Technológia fa techtree.select = Technológia fa kiválasztása @@ -799,6 +800,10 @@ threat.medium = Közepes threat.high = Magas threat.extreme = Extrém threat.eradication = Irtózatos +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Bolygók @@ -1171,12 +1176,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = Felület méretezése setting.uiscale.description = A módosítások érvénybe lépéséhez újraindítás szükséges. setting.swapdiagonal.name = Mindig átlós elhelyezés -setting.difficulty.training = Kiképzés -setting.difficulty.easy = Könnyű -setting.difficulty.normal = Normál -setting.difficulty.hard = Nehéz -setting.difficulty.insane = Őrült -setting.difficulty.name = Nehézség: setting.screenshake.name = Képernyő rázkódása setting.bloomintensity.name = Bloom intenzitása setting.bloomblur.name = Bloom elmosása @@ -1396,6 +1395,8 @@ rules.title.teams = Csapatok rules.title.planet = Bolygó rules.lighting = Világítás rules.fog = Köd +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Tűz rules.anyenv = rules.explosions = Épület/egység robbanási sebzése diff --git a/core/assets/bundles/bundle_id_ID.properties b/core/assets/bundles/bundle_id_ID.properties index 412af5eef4..8601f74f95 100644 --- a/core/assets/bundles/bundle_id_ID.properties +++ b/core/assets/bundles/bundle_id_ID.properties @@ -197,6 +197,7 @@ campaign.select = Pilih untuk Memulai Kampanye campaign.none = [lightgray]Pilih planet untuk memulai.\nPilihan ini dapat diubah setiap saat. campaign.erekir = Konten baru yang disempurnakan. Kemajuan kampanye lebih linier.\n\nKualitas peta yang tinggi dan pengalaman lebih mantap. campaign.serpulo = Konten lawas; pengalaman klasik. Lebih terbuka dan banyak konten.\n\nPeta dan mekanisme kampanye yang berpotensi tidak seimbang. Kurang halus +campaign.difficulty = Difficulty completed = [accent]Terselesaikan techtree = Pohon Teknologi techtree.select = Pemilihan Pohon Teknologi @@ -799,6 +800,10 @@ threat.medium = Sedang threat.high = Tinggi threat.extreme = Berbahaya threat.eradication = Pemusnahan +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Planet @@ -1171,12 +1176,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = Skala UI setting.uiscale.description = Mulai ulang diperlukan untuk menerapkan perubahan. setting.swapdiagonal.name = Penaruhan Selalu Diagonal -setting.difficulty.training = Latihan -setting.difficulty.easy = Mudah -setting.difficulty.normal = Normal -setting.difficulty.hard = Susah -setting.difficulty.insane = Sangat sulit -setting.difficulty.name = Tingkat Kesulitan: setting.screenshake.name = Layar Getar setting.bloomintensity.name = Intensitas Bloom setting.bloomblur.name = Blur Bloom @@ -1395,6 +1394,8 @@ rules.title.teams = Tim rules.title.planet = Planet rules.lighting = Penerangan rules.fog = Kabut Perang +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Api rules.anyenv = rules.explosions = Kekuatan Ledakan Blok/Unit diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties index dda8fdf7a2..64db91f017 100644 --- a/core/assets/bundles/bundle_it.properties +++ b/core/assets/bundles/bundle_it.properties @@ -191,6 +191,7 @@ campaign.select = Select Starting Campaign campaign.none = [lightgray]Select a planet to start on.\nThis can be switched at any time. campaign.erekir = Newer, more polished content. Mostly linear campaign progression.\n\nHigher quality maps and overall experience. campaign.serpulo = Older content; the classic experience. More open-ended.\n\nPotentially unbalanced maps and campaign mechanics. Less polished. +campaign.difficulty = Difficulty completed = [accent]Completato techtree = Albero Scoperte techtree.select = Seleziona albero delle scoperte @@ -780,6 +781,10 @@ threat.medium = Media threat.high = Alta threat.extreme = Estrema threat.eradication = Catastrofe +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Pianeti @@ -1149,12 +1154,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = Ridimensionamento Interfaccia[lightgray] (richiede il riavvio)[] setting.uiscale.description = Riavvio necessario per applicare le modifiche. setting.swapdiagonal.name = Posizionamento Sempre Diagonale -setting.difficulty.training = Allenamento -setting.difficulty.easy = Facile -setting.difficulty.normal = Normale -setting.difficulty.hard = Difficile -setting.difficulty.insane = Impossibile -setting.difficulty.name = Difficoltà: setting.screenshake.name = Movimento dello Schermo setting.bloomintensity.name = Intensità d'illuminazione (Bloom Intensity) setting.bloomblur.name = Illuminazione sfocata (Bloom Blur) @@ -1371,6 +1370,8 @@ rules.title.teams = squadre rules.title.planet = pianeta rules.lighting = Illuminazione rules.fog = Nebbia di guerra +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Fuoco rules.anyenv = rules.explosions = Danno da Esplosione Blocchi/Unità diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index fcdbb46ff4..25217fe844 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -193,6 +193,7 @@ campaign.select = 開始するキャンペーンを選択 campaign.none = [lightgray]キャンペーンを始める惑星を選んでください。\n惑星はいつでも変更可能です。 campaign.erekir = より新しく、より洗練されたコンテンツ。 ほぼ一貫して進行するキャンペーン。\n\n高品質のマップと総合的な体験。 campaign.serpulo = 昔のコンテンツ。クラシックな体験。より自由な発想。\n\nマップやキャンペーンの仕組みがアンバランスになる可能性があり、あまり洗練されてない。 +campaign.difficulty = Difficulty completed = [accent]完了 techtree = テックツリー techtree.select = テックツリーの選択 @@ -784,6 +785,10 @@ threat.medium = 中 threat.high = 高 threat.extreme = 過酷 threat.eradication = 破滅的 +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = 惑星 @@ -1155,12 +1160,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = UIサイズ setting.uiscale.description = 再起動が必要です。 setting.swapdiagonal.name = 常に斜め設置 -setting.difficulty.training = トレーニング -setting.difficulty.easy = イージー -setting.difficulty.normal = ノーマル -setting.difficulty.hard = ハード -setting.difficulty.insane = クレイジー -setting.difficulty.name = 難易度: setting.screenshake.name = 画面の揺れ setting.bloomintensity.name = きらめきの強さ setting.bloomblur.name = 光のぼやけ @@ -1377,6 +1376,8 @@ rules.title.teams = チーム rules.title.planet = 惑星 rules.lighting = 霧 rules.fog = 戦場の霧 +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = 火災 rules.anyenv = rules.explosions = 爆発ダメージ diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index c5f6665153..48576e0bd7 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -193,6 +193,7 @@ campaign.select = 캠페인 시작지점 선택하기 campaign.none = [lightgray]시작할 행성을 선택하십시오.\n언제든지 전환할 수 있습니다. campaign.erekir = [accent]신규 플레이어에게 추천합니다.[]\n\n보다 새롭고 세련된 컨텐츠. 대부분 순차적으로 캠페인이 진행됩니다.\n\n더 높은 완성도의 지도와 다채로운 경험. campaign.serpulo = [scarlet]신규 플레이어에게 권장되지 않습니다.[]\n\n오래된 컨텐츠: 고전적인 경험. 좀 더 개방적이죠.\n\n잠재적으로 불균형한 지도와 캠페인 메커니즘. 덜 세련됩니다. +campaign.difficulty = Difficulty completed = [accent]완료됨 techtree = 연구 기록 techtree.select = 연구 기록 선택 @@ -785,6 +786,10 @@ threat.medium = 보통 threat.high = 높음 threat.extreme = 매우 높음 threat.eradication = 극한 +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = 태양계 @@ -1154,12 +1159,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = UI 스케일링 setting.uiscale.description = 적용하려면 재시작이 필요합니다. setting.swapdiagonal.name = 항상 대각선 배치 -setting.difficulty.training = 훈련 -setting.difficulty.easy = 쉬움 -setting.difficulty.normal = 보통 -setting.difficulty.hard = 어려움 -setting.difficulty.insane = 박멸 -setting.difficulty.name = 난이도: setting.screenshake.name = 화면 흔들림 setting.bloomintensity.name = 광원 세기 setting.bloomblur.name = 광원 번짐 @@ -1376,6 +1375,8 @@ rules.title.teams = 팀 rules.title.planet = 행성 rules.lighting = 조명 표시 rules.fog = 전장의 안개 +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = 방화 허용 rules.anyenv = <모두> rules.explosions = 블록/기체 폭발 피해 diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties index aef0a6fd81..5da270cae3 100644 --- a/core/assets/bundles/bundle_lt.properties +++ b/core/assets/bundles/bundle_lt.properties @@ -190,6 +190,7 @@ campaign.select = Select Starting Campaign campaign.none = [lightgray]Select a planet to start on.\nThis can be switched at any time. campaign.erekir = Newer, more polished content. Mostly linear campaign progression.\n\nHigher quality maps and overall experience. campaign.serpulo = Older content; the classic experience. More open-ended.\n\nPotentially unbalanced maps and campaign mechanics. Less polished. +campaign.difficulty = Difficulty completed = [accent]Išrasta techtree = Technologijų Medis techtree.select = Tech Tree Selection @@ -775,6 +776,10 @@ threat.medium = Medium threat.high = High threat.extreme = Extreme threat.eradication = Eradication +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Planets planet.serpulo.name = Serpulo @@ -1144,12 +1149,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = UI mastelio keitimas[lightgray] (reikalingas perkrovimas)[] setting.uiscale.description = Restart required to apply changes. setting.swapdiagonal.name = Visada Įstrižinis Padėjimas -setting.difficulty.training = Mokymai -setting.difficulty.easy = Lengvas -setting.difficulty.normal = Normalus -setting.difficulty.hard = Sunkus -setting.difficulty.insane = Beprotiškas -setting.difficulty.name = Sunkumas: setting.screenshake.name = Ekrano Drebėjimas setting.bloomintensity.name = Bloom Intensity setting.bloomblur.name = Bloom Blur @@ -1366,6 +1365,8 @@ rules.title.teams = Teams rules.title.planet = Planet rules.lighting = Apšvietimas rules.fog = Fog of War +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Fire rules.anyenv = rules.explosions = Block/Unit Explosion Damage diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index f62e2b77ff..14cdc7e38c 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -197,6 +197,7 @@ campaign.select = Selecteer een veldtocht om mee te starten campaign.none = [lightgray]Kies een planeet om op te starten.\nJe kan op elk moment omschakelen naar de andere planeet. campaign.erekir = Nieuwere, meer gepolijste inhoud. Grotendeels lineair veldtochtverloop.\n\nKaarten en algemene ervaring van hogere kwaliteit. campaign.serpulo = Oudere inhoud; de klassieke ervaring. Meer open veldtochtverloop.\n\nKans op ongebalanceerde kaarten en veldtocht mechanismen. Minder gepolijst. +campaign.difficulty = Difficulty completed = [accent]Voltooid techtree = Techniekboom techtree.select = Techniekboom selectie @@ -786,6 +787,10 @@ threat.medium = Gemiddeld threat.high = Hoog threat.extreme = Extreem threat.eradication = Uitroeiing +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Planeten planet.serpulo.name = Serpulo @@ -1156,12 +1161,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = UI Schaal[lightgray] (herstart vereist)[] setting.uiscale.description = Herstart vereist om veranderingen door te voeren. setting.swapdiagonal.name = Altijd Diagonaal Plaatsen -setting.difficulty.training = Oefening -setting.difficulty.easy = Makkelijk -setting.difficulty.normal = Normaal -setting.difficulty.hard = Moeilijk -setting.difficulty.insane = Krankzinnig -setting.difficulty.name = Moeilijkheidsgraad: setting.screenshake.name = Schuddend Scherm setting.bloomintensity.name = Bloom Intensiteit setting.bloomblur.name = Bloom Waas @@ -1378,6 +1377,8 @@ rules.title.teams = Teams rules.title.planet = Planeet rules.lighting = Belichting rules.fog = Mist van de Oorlog +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Vuur rules.anyenv = rules.explosions = Blok/Eenheid Explosieschade diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties index 424e76e1b1..643b03f138 100644 --- a/core/assets/bundles/bundle_nl_BE.properties +++ b/core/assets/bundles/bundle_nl_BE.properties @@ -190,6 +190,7 @@ campaign.select = Select Starting Campaign campaign.none = [lightgray]Select a planet to start on.\nThis can be switched at any time. campaign.erekir = Newer, more polished content. Mostly linear campaign progression.\n\nHigher quality maps and overall experience. campaign.serpulo = Older content; the classic experience. More open-ended.\n\nPotentially unbalanced maps and campaign mechanics. Less polished. +campaign.difficulty = Difficulty completed = [accent]Voltooid techtree = Technische vooruitgang techtree.select = Tech Tree Selection @@ -775,6 +776,10 @@ threat.medium = Medium threat.high = High threat.extreme = Extreme threat.eradication = Eradication +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Planets planet.serpulo.name = Serpulo @@ -1144,12 +1149,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = UI Scaling[lightgray] (requires restart)[] setting.uiscale.description = Restart required to apply changes. setting.swapdiagonal.name = Always Diagonal Placement -setting.difficulty.training = training -setting.difficulty.easy = easy -setting.difficulty.normal = normal -setting.difficulty.hard = hard -setting.difficulty.insane = insane -setting.difficulty.name = Difficulty: setting.screenshake.name = Screen Shake setting.bloomintensity.name = Bloom Intensity setting.bloomblur.name = Bloom Blur @@ -1366,6 +1365,8 @@ rules.title.teams = Teams rules.title.planet = Planet rules.lighting = Lighting rules.fog = Fog of War +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Fire rules.anyenv = rules.explosions = Block/Unit Explosion Damage diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index 0af2fc5125..b396fb331f 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -193,6 +193,7 @@ campaign.select = Wybierz początkową kampanię campaign.none = [lightgray]Wybierz planetę, na której chcesz zacząć.\nMożesz zmienić planetę w każdej chwili. campaign.erekir = Nowsza, bardziej dopracowana zawartość. Kampania postępuje bardziej liniowo.\n\nWyższej jakości mapy oraz rozgrywka. campaign.serpulo = Starsza zawartość; klasyczne doświadczenia. Bardziej otwarta.\n\nPotencjalnie niezbalansowane mapy i mechaniki. Słabiej dopracowana. +campaign.difficulty = Difficulty completed = [accent]Ukończony techtree = Drzewo Techno-\nlogiczne techtree.select = Wybór Drzewa Technologicznego @@ -782,6 +783,10 @@ threat.medium = Średni threat.high = Wysoki threat.extreme = Ekstremalny threat.eradication = Czystka +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Planety @@ -1153,12 +1158,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = Skalowanie interfejsu[lightgray] (wymaga restartu)[] setting.uiscale.description = Aby zastosować zmiany, wymagane jest ponowne uruchomienie. setting.swapdiagonal.name = Pozwala na ukośną budowę -setting.difficulty.training = Treningowy -setting.difficulty.easy = Łatwy -setting.difficulty.normal = Normalny -setting.difficulty.hard = Trudny -setting.difficulty.insane = Szalony -setting.difficulty.name = Poziom trudności setting.screenshake.name = Siła wstrząsów ekranu setting.bloomintensity.name = Intensywaność Rozmycia setting.bloomblur.name = Niewyraźność Rozmycia @@ -1375,6 +1374,8 @@ rules.title.teams = Drużyny rules.title.planet = Planet rules.lighting = Oświetlenie rules.fog = Mgła Wojny +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Ogień rules.anyenv = rules.explosions = Uszkodzenia Wybuchu Bloku/Jednostki diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index bec67c2530..22b09fa4e2 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -193,6 +193,7 @@ campaign.select = Selecione a campanha inicial campaign.none = [lightgray]Selecione um planeta para começar nele.\nVocê pode mudar de planeta a qualquer momento. campaign.erekir = Novo, conteúdo mais polido. Uma progressão mais linear na campanha.\n\nExperiência geral e mapas de maior qualidade. campaign.serpulo = Conteúdo antigo; a experiência clássica. Mais aberto.\n\nMapas e mecânicas de campanha potencialmente desbalanceados. Menos polido. +campaign.difficulty = Difficulty completed = [accent]Completado techtree = Árvore Tecnológica techtree.select = Seleção de Árvore Tecnológica @@ -790,6 +791,10 @@ threat.medium = Média threat.high = Alta threat.extreme = Extrema threat.eradication = Erradicação +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Planetas @@ -1163,12 +1168,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = Escala da\ninterface[lightgray] (reinicialização requerida)[] setting.uiscale.description = Reinicialização necessária para aplicar as alterações. setting.swapdiagonal.name = Sempre colocação diagonal -setting.difficulty.training = Treinamento -setting.difficulty.easy = Fácil -setting.difficulty.normal = Normal -setting.difficulty.hard = Difícil -setting.difficulty.insane = Insano -setting.difficulty.name = Dificuldade setting.screenshake.name = Vibração da Tela setting.bloomintensity.name = Itensidade do Bloom setting.bloomblur.name = Desfoque do Bloom @@ -1385,6 +1384,8 @@ rules.title.teams = Times rules.title.planet = Planeta rules.lighting = Iluminação rules.fog = Névoa de Guerra +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Fogo rules.anyenv = rules.explosions = Dano de explosão de unidades/blocos diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties index 879f70e3d9..ce72726f11 100644 --- a/core/assets/bundles/bundle_pt_PT.properties +++ b/core/assets/bundles/bundle_pt_PT.properties @@ -190,6 +190,7 @@ campaign.select = Select Starting Campaign campaign.none = [lightgray]Select a planet to start on.\nThis can be switched at any time. campaign.erekir = Newer, more polished content. Mostly linear campaign progression.\n\nHigher quality maps and overall experience. campaign.serpulo = Older content; the classic experience. More open-ended.\n\nPotentially unbalanced maps and campaign mechanics. Less polished. +campaign.difficulty = Difficulty completed = [accent]Completado techtree = Árvore de tecnologia techtree.select = Tech Tree Selection @@ -775,6 +776,10 @@ threat.medium = Medium threat.high = High threat.extreme = Extreme threat.eradication = Eradication +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Planets planet.serpulo.name = Serpulo @@ -1144,12 +1149,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = Escala da IU[lightgray] (reinicialização requerida)[] setting.uiscale.description = Restart required to apply changes. setting.swapdiagonal.name = Sempre colocação diagnoal -setting.difficulty.training = Treinamento -setting.difficulty.easy = Fácil -setting.difficulty.normal = Normal -setting.difficulty.hard = Difícil -setting.difficulty.insane = Insano -setting.difficulty.name = Dificuldade setting.screenshake.name = Balanço do Ecrã setting.bloomintensity.name = Bloom Intensity setting.bloomblur.name = Bloom Blur @@ -1366,6 +1365,8 @@ rules.title.teams = Teams rules.title.planet = Planet rules.lighting = Lighting rules.fog = Fog of War +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Fire rules.anyenv = rules.explosions = Block/Unit Explosion Damage diff --git a/core/assets/bundles/bundle_ro.properties b/core/assets/bundles/bundle_ro.properties index 6dc92b3282..c770946c09 100644 --- a/core/assets/bundles/bundle_ro.properties +++ b/core/assets/bundles/bundle_ro.properties @@ -193,6 +193,7 @@ campaign.select = Select Starting Campaign campaign.none = [lightgray]Select a planet to start on.\nThis can be switched at any time. campaign.erekir = Newer, more polished content. Mostly linear campaign progression.\n\nHigher quality maps and overall experience. campaign.serpulo = Older content; the classic experience. More open-ended.\n\nPotentially unbalanced maps and campaign mechanics. Less polished. +campaign.difficulty = Difficulty completed = [accent]Finalizat techtree = Cercetează techtree.select = Tech Tree Selection @@ -784,6 +785,10 @@ threat.medium = Medie threat.high = Mare threat.extreme = Extremă threat.eradication = Eradicare +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Planete @@ -1155,12 +1160,6 @@ setting.fpscap.text = FPS {0} setting.uiscale.name = Scară Interfață setting.uiscale.description = Repornire necesară pt a aplica schimbările. setting.swapdiagonal.name = Plasează Mereu Diagonal -setting.difficulty.training = Antrenament -setting.difficulty.easy = Ușor -setting.difficulty.normal = Normal -setting.difficulty.hard = Greu -setting.difficulty.insane = Nebunesc -setting.difficulty.name = Dificultate: setting.screenshake.name = Agitare Ecran setting.bloomintensity.name = Bloom Intensity setting.bloomblur.name = Bloom Blur @@ -1377,6 +1376,8 @@ rules.title.teams = Echipe rules.title.planet = Planet rules.lighting = Luminozitate Ambientală rules.fog = Fog of War +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Foc rules.anyenv = rules.explosions = Explozia Deteriorează Blocul/Unitatea diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index ca9409ba10..953522662b 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -194,6 +194,7 @@ campaign.select = Выберите стартовую кампанию campaign.none = [lightgray]Выберите планету, с которой хотите начать.\nПереключить планету можно в любое время. campaign.erekir = Новый, более отточенный контент. В-основном линейное продвижение по кампании.\n\nКарты и игровой процесс более высокого качества. campaign.serpulo = Старый контент; классический опыт. Более вариативное прохождение.\n\nПотенциально несбалансированные карты и механики кампании. Менее отточено. +campaign.difficulty = Difficulty completed = [accent]Завершено techtree = Дерево\n технологий techtree.select = Выбор дерева технологий @@ -785,6 +786,10 @@ threat.medium = Средняя threat.high = Высокая threat.extreme = Экстремальная threat.eradication = Истребляющая +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Планеты @@ -1155,12 +1160,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = Масштаб пользовательского интерфейса setting.uiscale.description = Для вступления изменений в силу может потребоваться перезагрузка игры. setting.swapdiagonal.name = Всегда диагональное размещение -setting.difficulty.training = Обучение -setting.difficulty.easy = Лёгкая -setting.difficulty.normal = Нормальная -setting.difficulty.hard = Сложная -setting.difficulty.insane = Безумная -setting.difficulty.name = Сложность: setting.screenshake.name = Тряска экрана setting.bloomintensity.name = Интенсивность свечения setting.bloomblur.name = Размытие свечения @@ -1377,6 +1376,8 @@ rules.title.teams = Команды rules.title.planet = Планета rules.lighting = Освещение rules.fog = Туман войны +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Огонь rules.anyenv = <Любая> rules.explosions = Урон от взрывов блоков/единиц diff --git a/core/assets/bundles/bundle_sr.properties b/core/assets/bundles/bundle_sr.properties index a61662f929..bf1b243a76 100644 --- a/core/assets/bundles/bundle_sr.properties +++ b/core/assets/bundles/bundle_sr.properties @@ -193,6 +193,7 @@ campaign.select = Izaberite Početnu Kampanju campaign.none = [lightgray]Izaberite planetu gde bi ste počeli.\nOvo se može promeniti u svakom trenutku. campaign.erekir = [accent]Preporučeno za novije igrače.[]\n\nNovije, poboljšane funkcije. Uglavnom linearni tok kampanje.\n\nKvalitetniji doživljaji i mape. Veća težina. campaign.serpulo = [scarlet]Nije preporučeno za novije igrače.[]\n\nStarije funkcije; renesansno iskustvo. Otvoreniji pristup.\n\nMoguće je da mape i tok kampanje nisu glatki i balansirani. +campaign.difficulty = Difficulty completed = [accent]Završeno. techtree = Drvo Tehnologija techtree.select = Izbor Drveća Tehnologija @@ -785,6 +786,10 @@ threat.medium = Srednje threat.high = Visoko threat.extreme = Ekstremno threat.eradication = Istrebljenje +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Planete @@ -1157,12 +1162,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = UI Skala setting.uiscale.description = Restartovanje je zahtevano da bi se učitale promene. setting.swapdiagonal.name = Uvek Dijagonalno Postavljanje -setting.difficulty.training = Training -setting.difficulty.easy = Easy -setting.difficulty.normal = Normal -setting.difficulty.hard = Hard -setting.difficulty.insane = Insane -setting.difficulty.name = Difficulty: setting.screenshake.name = Screen Shake setting.bloomintensity.name = Bloom Intezitet setting.bloomblur.name = Bloom Magliranje @@ -1379,6 +1378,8 @@ rules.title.teams = Timovi rules.title.planet = Planeta rules.lighting = Osvetljenje rules.fog = Magla Rata +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Plamen rules.anyenv = rules.explosions = Blokovna/Jedinična Šteta Eksplozije diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties index 4c5d9f190b..1a2892db98 100644 --- a/core/assets/bundles/bundle_sv.properties +++ b/core/assets/bundles/bundle_sv.properties @@ -190,6 +190,7 @@ campaign.select = Select Starting Campaign campaign.none = [lightgray]Select a planet to start on.\nThis can be switched at any time. campaign.erekir = Newer, more polished content. Mostly linear campaign progression.\n\nHigher quality maps and overall experience. campaign.serpulo = Older content; the classic experience. More open-ended.\n\nPotentially unbalanced maps and campaign mechanics. Less polished. +campaign.difficulty = Difficulty completed = [accent]Avklarad techtree = Teknologiträd techtree.select = Teknologiträd Väljare @@ -775,6 +776,10 @@ threat.medium = Medium threat.high = High threat.extreme = Extreme threat.eradication = Eradication +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Planets planet.serpulo.name = Serpulo @@ -1144,12 +1149,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = UI Scaling[lightgray] (requires restart)[] setting.uiscale.description = Restart required to apply changes. setting.swapdiagonal.name = Always Diagonal Placement -setting.difficulty.training = Träning -setting.difficulty.easy = Lätt -setting.difficulty.normal = Normalt -setting.difficulty.hard = Svårt -setting.difficulty.insane = Galet -setting.difficulty.name = Svårighetsgrad: setting.screenshake.name = Skärmskak setting.bloomintensity.name = Bloom Intensity setting.bloomblur.name = Bloom Blur @@ -1366,6 +1365,8 @@ rules.title.teams = Teams rules.title.planet = Planet rules.lighting = Lighting rules.fog = Fog of War +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Fire rules.anyenv = rules.explosions = Block/Unit Explosion Damage diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index 16fb8134b3..fa861a89cc 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -193,6 +193,7 @@ campaign.select = เลือกเนื้อเรื่องที่จ campaign.none = [lightgray]โปรดเลือกดาวที่จะเริ่มต้น\nคุณสามารถสลับกลับไปตอนไหนก็ได้ campaign.erekir = เนื้อหาที่ใหม่กว่าและขัดเกลามามากกว่า เนื้อเรื่องดำเนินเป็นเส้นตรงโดยซะส่วนใหญ่\n\nแมพมีคุณภาพที่ดีกว่า ให้ประสบการณ์โดยรวมที่มีคุณภาพ campaign.serpulo = ประสบการณ์สุดคลาสสิก เนื้อหาเยอะกว่า เปิดกว้างมากกว่า\n\nแมพและกลไกของแคมเปญอาจไม่สมดุล ขัดเกลามาน้อยกว่า +campaign.difficulty = Difficulty completed = [accent]วิจัยแล้ว techtree = ต้นไม้เทคโนโลยี techtree.select = เลือกต้นไม้แห่งเทคโนโลยี @@ -785,6 +786,10 @@ threat.medium = กลาง threat.high = สูง threat.extreme = วิบัติภัย threat.eradication = ทำลายล้าง +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = ดาว @@ -1156,12 +1161,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = อัตราขนาด UI setting.uiscale.description = อาจจะต้องรีสตาร์ทเพื่อใช้งานการเปลี่ยนแปลง setting.swapdiagonal.name = วางเป็นเส้นทแยงเสมอ -setting.difficulty.training = ฝึกซ้อม -setting.difficulty.easy = ง่าย -setting.difficulty.normal = ปานกลาง -setting.difficulty.hard = ยาก -setting.difficulty.insane = โหดเหี้ยม -setting.difficulty.name = ระดับความยาก: setting.screenshake.name = การสั่นของจอ setting.bloomintensity.name = ความรุนแรงของบลูม setting.bloomblur.name = ความเบลอบลูม @@ -1378,6 +1377,8 @@ rules.title.teams = ทีม rules.title.planet = ดาว rules.lighting = แสง rules.fog = หมอกแห่งสงคราม +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = ไฟ rules.anyenv = <อะไรก็ได้> rules.explosions = ดาเมจการระเบิดของบล็อก/ยูนิต diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index 69f1995e6f..53502c60f0 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -190,6 +190,7 @@ campaign.select = Select Starting Campaign campaign.none = [lightgray]Select a planet to start on.\nThis can be switched at any time. campaign.erekir = Newer, more polished content. Mostly linear campaign progression.\n\nHigher quality maps and overall experience. campaign.serpulo = Older content; the classic experience. More open-ended.\n\nPotentially unbalanced maps and campaign mechanics. Less polished. +campaign.difficulty = Difficulty completed = [accent]Completed techtree = Tech Tree techtree.select = Tech Tree Selection @@ -775,6 +776,10 @@ threat.medium = Medium threat.high = High threat.extreme = Extreme threat.eradication = Eradication +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Planets planet.serpulo.name = Serpulo @@ -1144,12 +1149,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = UI Scaling[lightgray] (requires restart)[] setting.uiscale.description = Restart required to apply changes. setting.swapdiagonal.name = Always Diagonal Placement -setting.difficulty.training = training -setting.difficulty.easy = kolay -setting.difficulty.normal = orta -setting.difficulty.hard = zor -setting.difficulty.insane = cok zor -setting.difficulty.name = Zorluk derecesi: setting.screenshake.name = Ekran sallanmasi setting.bloomintensity.name = Bloom Intensity setting.bloomblur.name = Bloom Blur @@ -1366,6 +1365,8 @@ rules.title.teams = Teams rules.title.planet = Planet rules.lighting = Lighting rules.fog = Fog of War +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Fire rules.anyenv = rules.explosions = Block/Unit Explosion Damage diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index 733fdac670..52ed3e0030 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -193,6 +193,7 @@ campaign.select = Başlangıç Mücadelesi Seç campaign.none = [lightgray]Başlamak için bir gezegen seç.\nBu seçim herhangi bir zamanda değiştirlebilir. campaign.erekir = Daha yeni ve cilalanmış içerikler. Genellikle kararlı ilerleme.\n\nDaha kaliteli haritalar ve deneyim (herhalde). campaign.serpulo = Eski içerik; klasik deneyim. Daha serbest.\n\nDaha dengesiz harita ve deneyim. Cilayı unutmuşlar işte... +campaign.difficulty = Difficulty completed = [accent]Tamamlandı techtree = Teknoloji Ağacı techtree.select = Teknoloji Ağacı Seç @@ -784,6 +785,10 @@ threat.medium = Orta threat.high = Yüksek threat.extreme = Aşırı threat.eradication = İmkansız +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Gezegenler @@ -1153,12 +1158,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = Arayüz Ölçeği [lightgray](yeniden başlatma gerekebilir)[] setting.uiscale.description = Değişikleri uygulamak için yeniden başlatma gerekli. setting.swapdiagonal.name = Her Zaman Çapraz Yerleştirme -setting.difficulty.training = Eğitim -setting.difficulty.easy = Kolay -setting.difficulty.normal = Normal -setting.difficulty.hard = Zor -setting.difficulty.insane = İmkansız -setting.difficulty.name = Zorluk: setting.screenshake.name = Ekran Sarsılması setting.bloomintensity.name = Parlaklık Şiddeti setting.bloomblur.name = Parlaklık Bulanıklılığı @@ -1375,6 +1374,8 @@ rules.title.teams = Takımlar rules.title.planet = Gezegen rules.lighting = Işıklandırma rules.fog = Savaş Sisi +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Ateş rules.anyenv = rules.explosions = Blok/Birlik Patlama Hasarı diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index c4e9a0211d..27c087b705 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -195,6 +195,7 @@ campaign.select = Виберіть початкову кампанію campaign.none = [lightgray]Виберіть планету для старту.\nЇї можна змінити в будь-який момент. campaign.erekir = Новіший, більш відшліфований зміст. Переважно лінійний розвиток кампанії.\n\nВища якість мап та ліпший загальний досвід. campaign.serpulo = Старий зміст; класичний досвід. Більш відкрита.\n\nПотенційно незбалансовані мапи й механіки кампанії. Менш відшліфована. +campaign.difficulty = Difficulty completed = [accent]Завершено techtree = Дерево технологій techtree.select = Вибір дерева технологій @@ -793,6 +794,10 @@ threat.medium = середня threat.high = висока threat.extreme = екстремальна threat.eradication = викорінювальна +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Планети @@ -1164,12 +1169,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = Масштабування користувацького інтерфейсу setting.uiscale.description = Потрібен перезапуск для застосування змін. setting.swapdiagonal.name = Завжди діагональне розміщення -setting.difficulty.training = Навчання -setting.difficulty.easy = Легка -setting.difficulty.normal = Нормальна -setting.difficulty.hard = Важка -setting.difficulty.insane = Неможлива -setting.difficulty.name = Складність: setting.screenshake.name = Тряска екрану setting.bloomintensity.name = Інтенсивність світіння setting.bloomblur.name = Розмиття світіння @@ -1386,6 +1385,8 @@ rules.title.teams = Команди rules.title.planet = Планета rules.lighting = Світлотінь rules.fog = Туман війни +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Вогонь rules.anyenv = <Будь-яка> rules.explosions = Шкода від вибухів блоків і одиниць diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties index 1ca135c45a..db8a363511 100644 --- a/core/assets/bundles/bundle_vi.properties +++ b/core/assets/bundles/bundle_vi.properties @@ -197,6 +197,7 @@ campaign.select = Chọn chiến dịch khởi đầu campaign.none = [lightgray]Chọn một hành tinh để bắt đầu.\nCó thể thay đổi sang hành tinh khác bất cứ lúc nào. campaign.erekir = Nội dung mới và được trau chuốt. Quá trình chiến dịch liền mạch hơn.\n\nKhó hơn. Bản đồ chất lượng hơn và trải nghiệm tổng thể tốt hơn. campaign.serpulo = Nội dung cũ; trải nghiệm cơ bản. Tiến trình mở hơn, nhiều nội dung hơn.\n\nRất có thể vẫn còn cơ chế bản đồ và chiến dịch bị mất cân bằng. Ít được trau chuốt. +campaign.difficulty = Difficulty completed = [accent]Hoàn tất techtree = Cây công nghệ techtree.select = Chọn nhánh công nghệ @@ -799,6 +800,10 @@ threat.medium = Trung bình threat.high = Cao threat.extreme = Cực cao threat.eradication = Hủy diệt +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = Hành tinh @@ -1171,12 +1176,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = Tỉ lệ giao diện setting.uiscale.description = Cần khởi động lại để áp dụng các thay đổi. setting.swapdiagonal.name = Luôn đặt theo đường chéo -setting.difficulty.training = Luyện tập -setting.difficulty.easy = Dễ -setting.difficulty.normal = Vừa -setting.difficulty.hard = Khó -setting.difficulty.insane = Điên loạn -setting.difficulty.name = Độ khó: setting.screenshake.name = Rung chuyển khung hình setting.bloomintensity.name = Mức độ phát sáng setting.bloomblur.name = Xoá mờ phát sáng @@ -1396,6 +1395,8 @@ rules.title.teams = Đội rules.title.planet = Hành tinh rules.lighting = Ánh sáng rules.fog = Sương mù chiến tranb +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = Lửa rules.anyenv = rules.explosions = Sát thương nổ của Khối/Đơn vị diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index cd23704e1c..8324c1f1d7 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -196,6 +196,7 @@ campaign.select = 选择战役出发点 campaign.none = [lightgray]选择初始星球。\n可以在任意时刻切换。 campaign.erekir = 更新,更精致的内容。 战役大部分是线性的。\n\n难度更高,但地图质量与整体体验也更好。 campaign.serpulo = 较旧的内容; 经典的体验。 更加开放,且内容更丰富。\n\n地图与战役机制可能不平衡。 更不完美。 +campaign.difficulty = Difficulty completed = [accent]己研究 techtree = 科技树 techtree.select = 切换科技树 @@ -794,6 +795,10 @@ threat.medium = 中度 threat.high = 高度 threat.extreme = 极高 threat.eradication = 毁灭 +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = 行星 @@ -1166,12 +1171,6 @@ setting.fpscap.text = {0} FPS setting.uiscale.name = UI缩放比例 setting.uiscale.description = 需要重新启动 setting.swapdiagonal.name = 总是斜线建造 -setting.difficulty.training = 训练 -setting.difficulty.easy = 简单 -setting.difficulty.normal = 普通 -setting.difficulty.hard = 困难 -setting.difficulty.insane = 疯狂 -setting.difficulty.name = 难度: setting.screenshake.name = 屏幕抖动 setting.bloomintensity.name = 光效强度 setting.bloomblur.name = 光效模糊 @@ -1388,6 +1387,8 @@ rules.title.teams = 队伍 rules.title.planet = 星球 rules.lighting = 环境光 rules.fog = 战争迷雾 +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = 允许火焰产生并蔓延 rules.anyenv = <任意> rules.explosions = 建筑/单位爆炸伤害 diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index 9e04d0b99c..30345d6acd 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -193,6 +193,7 @@ campaign.select = Select Starting Campaign campaign.none = [lightgray]Select a planet to start on.\nThis can be switched at any time. campaign.erekir = Newer, more polished content. Mostly linear campaign progression.\n\nHigher quality maps and overall experience. campaign.serpulo = Older content; the classic experience. More open-ended.\n\nPotentially unbalanced maps and campaign mechanics. Less polished. +campaign.difficulty = Difficulty completed = [accent]完成 techtree = 科技樹 techtree.select = 選擇科技樹 @@ -790,6 +791,10 @@ threat.medium = 中 threat.high = 高 threat.extreme = 極高 threat.eradication = 毀滅性 +difficulty.easy = Easy +difficulty.normal = Normal +difficulty.hard = Hard +difficulty.eradication = Eradication planets = 行星 @@ -1161,12 +1166,6 @@ setting.fpscap.text = {0}FPS setting.uiscale.name = 操作介面大小 setting.uiscale.description = 需要重新啟動遊戲以更改大小 setting.swapdiagonal.name = 預設對角線放置 -setting.difficulty.training = 訓練 -setting.difficulty.easy = 簡單 -setting.difficulty.normal = 普通 -setting.difficulty.hard = 困難 -setting.difficulty.insane = 瘋狂 -setting.difficulty.name = 難度: setting.screenshake.name = 畫面抖動 setting.bloomintensity.name = 火花強度 setting.bloomblur.name = 火花模糊 @@ -1383,6 +1382,8 @@ rules.title.teams = 分隊 rules.title.planet = 星球 rules.lighting = 光照 rules.fog = 戰爭迷霧 +rules.invasions = Enemy Sector Invasions +rules.showspawns = Show Enemy Spawns rules.fire = 火 rules.anyenv = rules.explosions = 方塊/單位爆炸傷害 From 6260e146c3ac717d9cd491d652b0b8a8314e8799 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 13 Sep 2024 18:26:00 -0400 Subject: [PATCH 159/437] Experimental rule for randomized air unit targets --- core/src/mindustry/ai/WaveSpawner.java | 5 ++++- core/src/mindustry/ai/types/FlyingAI.java | 18 +++++++++++++++++- core/src/mindustry/game/CampaignRules.java | 1 + core/src/mindustry/game/Rules.java | 2 ++ 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/ai/WaveSpawner.java b/core/src/mindustry/ai/WaveSpawner.java index 58f770f20d..7935418c5f 100644 --- a/core/src/mindustry/ai/WaveSpawner.java +++ b/core/src/mindustry/ai/WaveSpawner.java @@ -69,7 +69,10 @@ public class WaveSpawner{ if(spawned == 0) continue; if(state.isCampaign()){ - spawned = Math.max(1, Mathf.round(spawned * state.getPlanet().campaignRules.difficulty.enemySpawnMultiplier)); + //when spawning a boss, round down, so 1.5x (hard) * 1 boss does not result in 2 bosses + spawned = Math.max(1, group.effect == StatusEffects.boss ? + (int)(spawned * state.getPlanet().campaignRules.difficulty.enemySpawnMultiplier) : + Mathf.round(spawned * state.getPlanet().campaignRules.difficulty.enemySpawnMultiplier)); } int spawnedf = spawned; diff --git a/core/src/mindustry/ai/types/FlyingAI.java b/core/src/mindustry/ai/types/FlyingAI.java index a938b5d3b6..c9eba7a8d9 100644 --- a/core/src/mindustry/ai/types/FlyingAI.java +++ b/core/src/mindustry/ai/types/FlyingAI.java @@ -6,9 +6,10 @@ import mindustry.gen.*; import mindustry.world.meta.*; import static mindustry.Vars.*; +import static mindustry.world.meta.BlockFlag.*; -//TODO very strange idle behavior sometimes public class FlyingAI extends AIController{ + final static BlockFlag[] randomTargets = {core, storage, generator, launchPad, factory, repair, battery, reactor, drill}; @Override public void updateMovement(){ @@ -44,6 +45,21 @@ public class FlyingAI extends AIController{ return core; } + if(state.rules.randomAirTargeting){ + //when there are no waves, it's just random based on the unit + Mathf.rand.setSeed(unit.type.id + (state.rules.waves ? state.wave : unit.id)); + //try a few random flags first + for(int attempt = 0; attempt < 5; attempt++){ + Teamc result = targetFlag(x, y, randomTargets[Mathf.rand.random(randomTargets.length - 1)], true); + if(result != null) return result; + } + //try the closest target + Teamc result = target(x, y, range, air, ground); + if(result != null) return result; + //default to the core + return core; + } + for(var flag : unit.type.targetFlags){ if(flag == null){ Teamc result = target(x, y, range, air, ground); diff --git a/core/src/mindustry/game/CampaignRules.java b/core/src/mindustry/game/CampaignRules.java index c0be0548a5..10157cc173 100644 --- a/core/src/mindustry/game/CampaignRules.java +++ b/core/src/mindustry/game/CampaignRules.java @@ -11,5 +11,6 @@ public class CampaignRules{ rules.showSpawns = showSpawns; rules.teams.get(rules.waveTeam).blockHealthMultiplier = difficulty.enemyHealthMultiplier; rules.teams.get(rules.waveTeam).unitHealthMultiplier = difficulty.enemyHealthMultiplier; + rules.randomAirTargeting = difficulty.ordinal() >= Difficulty.hard.ordinal(); } } diff --git a/core/src/mindustry/game/Rules.java b/core/src/mindustry/game/Rules.java index 7bee6a6e68..daeec9687d 100644 --- a/core/src/mindustry/game/Rules.java +++ b/core/src/mindustry/game/Rules.java @@ -61,6 +61,8 @@ public class Rules{ public boolean fire = true; /** Whether units use and require ammo. */ public boolean unitAmmo = false; + /** EXPERIMENTAL! If true, air units target random things each wave instead of only generators. */ + public boolean randomAirTargeting = false; /** EXPERIMENTAL! If true, blocks will update in units and share power. */ public boolean unitPayloadUpdate = false; /** If true, units' payloads are destroy()ed when the unit is destroyed. */ From 6e5561a36eefcbdd38c5e37dd2f3f619cd082afe Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 13 Sep 2024 18:50:46 -0400 Subject: [PATCH 160/437] Campaign rule for unpredictable wave AI --- core/assets/bundles/bundle.properties | 1 + core/src/mindustry/ai/Pathfinder.java | 22 +++++++++++++++++++ core/src/mindustry/ai/types/FlyingAI.java | 22 +++++++++---------- core/src/mindustry/game/CampaignRules.java | 3 ++- core/src/mindustry/game/Rules.java | 4 ++-- .../ui/dialogs/CampaignRulesDialog.java | 1 + 6 files changed, 38 insertions(+), 15 deletions(-) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index c27355fb68..4a89d17453 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -1399,6 +1399,7 @@ rules.lighting = Lighting rules.fog = Fog of War rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Fire rules.anyenv = rules.explosions = Block/Unit Explosion Damage diff --git a/core/src/mindustry/ai/Pathfinder.java b/core/src/mindustry/ai/Pathfinder.java index e93713acc0..e37adc91b0 100644 --- a/core/src/mindustry/ai/Pathfinder.java +++ b/core/src/mindustry/ai/Pathfinder.java @@ -2,6 +2,7 @@ package mindustry.ai; import arc.*; import arc.func.*; +import arc.math.*; import arc.math.geom.*; import arc.struct.*; import arc.util.*; @@ -16,6 +17,7 @@ import mindustry.world.blocks.storage.*; import mindustry.world.meta.*; import static mindustry.Vars.*; +import static mindustry.world.meta.BlockFlag.*; public class Pathfinder implements Runnable{ private static final long maxUpdate = Time.millisToNanos(8); @@ -454,8 +456,28 @@ public class Pathfinder implements Runnable{ } public static class EnemyCoreField extends Flowfield{ + private final static BlockFlag[] randomTargets = {storage, generator, launchPad, factory, repair, battery, reactor, drill}; + private Rand rand = new Rand(); + @Override protected void getPositions(IntSeq out){ + if(state.rules.randomWaveAI && team == state.rules.waveTeam){ + rand.setSeed(state.rules.waves ? state.wave : (int)(state.tick / (5400))); + + //maximum amount of different target flag types they will attack + int max = 2; + + for(int attempt = 0; attempt < 5 && max > 0; attempt++){ + var targets = indexer.getEnemy(team, randomTargets[rand.random(randomTargets.length - 1)]); + if(!targets.isEmpty()){ + max --; + for(Building other : targets){ + out.add(other.tile.array()); + } + } + } + } + for(Building other : indexer.getEnemy(team, BlockFlag.core)){ out.add(other.tile.array()); } diff --git a/core/src/mindustry/ai/types/FlyingAI.java b/core/src/mindustry/ai/types/FlyingAI.java index c9eba7a8d9..f7d533658e 100644 --- a/core/src/mindustry/ai/types/FlyingAI.java +++ b/core/src/mindustry/ai/types/FlyingAI.java @@ -45,7 +45,7 @@ public class FlyingAI extends AIController{ return core; } - if(state.rules.randomAirTargeting){ + if(state.rules.randomWaveAI){ //when there are no waves, it's just random based on the unit Mathf.rand.setSeed(unit.type.id + (state.rules.waves ? state.wave : unit.id)); //try a few random flags first @@ -56,17 +56,15 @@ public class FlyingAI extends AIController{ //try the closest target Teamc result = target(x, y, range, air, ground); if(result != null) return result; - //default to the core - return core; - } - - for(var flag : unit.type.targetFlags){ - if(flag == null){ - Teamc result = target(x, y, range, air, ground); - if(result != null) return result; - }else if(ground){ - Teamc result = targetFlag(x, y, flag, true); - if(result != null) return result; + }else{ + for(var flag : unit.type.targetFlags){ + if(flag == null){ + Teamc result = target(x, y, range, air, ground); + if(result != null) return result; + }else if(ground){ + Teamc result = targetFlag(x, y, flag, true); + if(result != null) return result; + } } } diff --git a/core/src/mindustry/game/CampaignRules.java b/core/src/mindustry/game/CampaignRules.java index 10157cc173..3f55661772 100644 --- a/core/src/mindustry/game/CampaignRules.java +++ b/core/src/mindustry/game/CampaignRules.java @@ -5,12 +5,13 @@ public class CampaignRules{ public boolean fog; public boolean showSpawns; public boolean sectorInvasion; + public boolean randomWaveAI; public void apply(Rules rules){ rules.staticFog = rules.fog = fog; rules.showSpawns = showSpawns; + rules.randomWaveAI = randomWaveAI; rules.teams.get(rules.waveTeam).blockHealthMultiplier = difficulty.enemyHealthMultiplier; rules.teams.get(rules.waveTeam).unitHealthMultiplier = difficulty.enemyHealthMultiplier; - rules.randomAirTargeting = difficulty.ordinal() >= Difficulty.hard.ordinal(); } } diff --git a/core/src/mindustry/game/Rules.java b/core/src/mindustry/game/Rules.java index daeec9687d..592be5ddbb 100644 --- a/core/src/mindustry/game/Rules.java +++ b/core/src/mindustry/game/Rules.java @@ -61,8 +61,8 @@ public class Rules{ public boolean fire = true; /** Whether units use and require ammo. */ public boolean unitAmmo = false; - /** EXPERIMENTAL! If true, air units target random things each wave instead of only generators. */ - public boolean randomAirTargeting = false; + /** EXPERIMENTAL! If true, air and ground units target random things each wave instead of only the core/generators. */ + public boolean randomWaveAI = false; /** EXPERIMENTAL! If true, blocks will update in units and share power. */ public boolean unitPayloadUpdate = false; /** If true, units' payloads are destroy()ed when the unit is destroyed. */ diff --git a/core/src/mindustry/ui/dialogs/CampaignRulesDialog.java b/core/src/mindustry/ui/dialogs/CampaignRulesDialog.java index 0805234ef8..c528bbcaae 100644 --- a/core/src/mindustry/ui/dialogs/CampaignRulesDialog.java +++ b/core/src/mindustry/ui/dialogs/CampaignRulesDialog.java @@ -59,6 +59,7 @@ public class CampaignRulesDialog extends BaseDialog{ check("@rules.fog", b -> rules.fog = b, () -> rules.fog); check("@rules.showspawns", b -> rules.showSpawns = b, () -> rules.showSpawns); + check("@rules.randomwaveai", b -> rules.randomWaveAI = b, () -> rules.randomWaveAI); }).growY(); } From 0ce3f4fd85c283d7382b6cf4eb6391e46d31c64d Mon Sep 17 00:00:00 2001 From: Github Actions Date: Fri, 13 Sep 2024 22:51:44 +0000 Subject: [PATCH 161/437] Automatic bundle update --- core/assets/bundles/bundle_be.properties | 1 + core/assets/bundles/bundle_bg.properties | 1 + core/assets/bundles/bundle_ca.properties | 1 + core/assets/bundles/bundle_cs.properties | 1 + core/assets/bundles/bundle_da.properties | 1 + core/assets/bundles/bundle_de.properties | 1 + core/assets/bundles/bundle_es.properties | 1 + core/assets/bundles/bundle_et.properties | 1 + core/assets/bundles/bundle_eu.properties | 1 + core/assets/bundles/bundle_fi.properties | 1 + core/assets/bundles/bundle_fil.properties | 1 + core/assets/bundles/bundle_fr.properties | 1 + core/assets/bundles/bundle_hu.properties | 1 + core/assets/bundles/bundle_id_ID.properties | 1 + core/assets/bundles/bundle_it.properties | 1 + core/assets/bundles/bundle_ja.properties | 1 + core/assets/bundles/bundle_ko.properties | 1 + core/assets/bundles/bundle_lt.properties | 1 + core/assets/bundles/bundle_nl.properties | 1 + core/assets/bundles/bundle_nl_BE.properties | 1 + core/assets/bundles/bundle_pl.properties | 1 + core/assets/bundles/bundle_pt_BR.properties | 1 + core/assets/bundles/bundle_pt_PT.properties | 1 + core/assets/bundles/bundle_ro.properties | 1 + core/assets/bundles/bundle_ru.properties | 1 + core/assets/bundles/bundle_sr.properties | 1 + core/assets/bundles/bundle_sv.properties | 1 + core/assets/bundles/bundle_th.properties | 1 + core/assets/bundles/bundle_tk.properties | 1 + core/assets/bundles/bundle_tr.properties | 1 + core/assets/bundles/bundle_uk_UA.properties | 1 + core/assets/bundles/bundle_vi.properties | 1 + core/assets/bundles/bundle_zh_CN.properties | 1 + core/assets/bundles/bundle_zh_TW.properties | 1 + 34 files changed, 34 insertions(+) diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties index 091b8e38b7..4339ad0bf5 100644 --- a/core/assets/bundles/bundle_be.properties +++ b/core/assets/bundles/bundle_be.properties @@ -1365,6 +1365,7 @@ rules.lighting = Асвятленне rules.fog = Туман Вайны rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Агонь rules.anyenv = <Любы> rules.explosions = Падрыўныя пашкоджанні Блока/Адзінкі diff --git a/core/assets/bundles/bundle_bg.properties b/core/assets/bundles/bundle_bg.properties index 904203a69e..3dcf9650fd 100644 --- a/core/assets/bundles/bundle_bg.properties +++ b/core/assets/bundles/bundle_bg.properties @@ -1376,6 +1376,7 @@ rules.lighting = Светкавици rules.fog = Fog of War rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Огън rules.anyenv = rules.explosions = Block/Unit Explosion Damage diff --git a/core/assets/bundles/bundle_ca.properties b/core/assets/bundles/bundle_ca.properties index 7c62a873fe..3c50ea9b06 100644 --- a/core/assets/bundles/bundle_ca.properties +++ b/core/assets/bundles/bundle_ca.properties @@ -1379,6 +1379,7 @@ rules.lighting = Il·luminació rules.fog = Amaga el terreny inexplorat rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Foc rules.anyenv = rules.explosions = Dany de les explosions als blocs/unitats diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index f02c289756..a2b2d678fa 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -1378,6 +1378,7 @@ rules.lighting = Osvětlení rules.fog = Fog of War rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Výstřel rules.anyenv = rules.explosions = Výbušné poškození bloku/jednotky diff --git a/core/assets/bundles/bundle_da.properties b/core/assets/bundles/bundle_da.properties index 2fd355ce70..37586f2cc2 100644 --- a/core/assets/bundles/bundle_da.properties +++ b/core/assets/bundles/bundle_da.properties @@ -1367,6 +1367,7 @@ rules.lighting = Lys rules.fog = Fog of War rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Ild rules.anyenv = rules.explosions = Blok/Enheds-eksplosionsskade diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index 5a5edf0d16..25e9c7160f 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -1389,6 +1389,7 @@ rules.lighting = Blitze rules.fog = Kriegsnebel rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Feuer rules.anyenv = rules.explosions = Explosionsschaden diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index a47b7057af..19b6c045d8 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -1385,6 +1385,7 @@ rules.lighting = Iluminación rules.fog = Ocultar terreno inexplorado (Fog of War) rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Fuego rules.anyenv = rules.explosions = Daño de explosiones a bloques/unidades diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties index 4289650bbc..944497cf20 100644 --- a/core/assets/bundles/bundle_et.properties +++ b/core/assets/bundles/bundle_et.properties @@ -1367,6 +1367,7 @@ rules.lighting = Lighting rules.fog = Fog of War rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Fire rules.anyenv = rules.explosions = Block/Unit Explosion Damage diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties index abe6201974..5a647854e6 100644 --- a/core/assets/bundles/bundle_eu.properties +++ b/core/assets/bundles/bundle_eu.properties @@ -1369,6 +1369,7 @@ rules.lighting = Lighting rules.fog = Fog of War rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Fire rules.anyenv = rules.explosions = Block/Unit Explosion Damage diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties index c93f65904f..9f1d916275 100644 --- a/core/assets/bundles/bundle_fi.properties +++ b/core/assets/bundles/bundle_fi.properties @@ -1366,6 +1366,7 @@ rules.lighting = Salamointi rules.fog = Sodan sumu (Fog of War) rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Tuli rules.anyenv = rules.explosions = Palikkojen/Yksikköjen räjähdysvahinko diff --git a/core/assets/bundles/bundle_fil.properties b/core/assets/bundles/bundle_fil.properties index 183dc8f99f..29c4a10496 100644 --- a/core/assets/bundles/bundle_fil.properties +++ b/core/assets/bundles/bundle_fil.properties @@ -1366,6 +1366,7 @@ rules.lighting = Lighting rules.fog = Fog of War rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Fire rules.anyenv = rules.explosions = Block/Unit Explosion Damage diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index 57ba9b25b9..884e9bc854 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -1393,6 +1393,7 @@ rules.lighting = Éclairage rules.fog = Brouillard de Guerre rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Feu rules.anyenv = rules.explosions = Dégâts d'explosion des Blocs/Unités diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index e0cbbdadab..980e1b8aae 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -1397,6 +1397,7 @@ rules.lighting = Világítás rules.fog = Köd rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Tűz rules.anyenv = rules.explosions = Épület/egység robbanási sebzése diff --git a/core/assets/bundles/bundle_id_ID.properties b/core/assets/bundles/bundle_id_ID.properties index 8601f74f95..0f6682e546 100644 --- a/core/assets/bundles/bundle_id_ID.properties +++ b/core/assets/bundles/bundle_id_ID.properties @@ -1396,6 +1396,7 @@ rules.lighting = Penerangan rules.fog = Kabut Perang rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Api rules.anyenv = rules.explosions = Kekuatan Ledakan Blok/Unit diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties index 64db91f017..f6d6f81000 100644 --- a/core/assets/bundles/bundle_it.properties +++ b/core/assets/bundles/bundle_it.properties @@ -1372,6 +1372,7 @@ rules.lighting = Illuminazione rules.fog = Nebbia di guerra rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Fuoco rules.anyenv = rules.explosions = Danno da Esplosione Blocchi/Unità diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index 25217fe844..e2c883da71 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -1378,6 +1378,7 @@ rules.lighting = 霧 rules.fog = 戦場の霧 rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = 火災 rules.anyenv = rules.explosions = 爆発ダメージ diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index 48576e0bd7..16b935c6ef 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -1377,6 +1377,7 @@ rules.lighting = 조명 표시 rules.fog = 전장의 안개 rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = 방화 허용 rules.anyenv = <모두> rules.explosions = 블록/기체 폭발 피해 diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties index 5da270cae3..15cc2830f1 100644 --- a/core/assets/bundles/bundle_lt.properties +++ b/core/assets/bundles/bundle_lt.properties @@ -1367,6 +1367,7 @@ rules.lighting = Apšvietimas rules.fog = Fog of War rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Fire rules.anyenv = rules.explosions = Block/Unit Explosion Damage diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index 14cdc7e38c..28148bbc11 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -1379,6 +1379,7 @@ rules.lighting = Belichting rules.fog = Mist van de Oorlog rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Vuur rules.anyenv = rules.explosions = Blok/Eenheid Explosieschade diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties index 643b03f138..30366b1716 100644 --- a/core/assets/bundles/bundle_nl_BE.properties +++ b/core/assets/bundles/bundle_nl_BE.properties @@ -1367,6 +1367,7 @@ rules.lighting = Lighting rules.fog = Fog of War rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Fire rules.anyenv = rules.explosions = Block/Unit Explosion Damage diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index b396fb331f..2c4bee5733 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -1376,6 +1376,7 @@ rules.lighting = Oświetlenie rules.fog = Mgła Wojny rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Ogień rules.anyenv = rules.explosions = Uszkodzenia Wybuchu Bloku/Jednostki diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index 22b09fa4e2..67b7149ae5 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -1386,6 +1386,7 @@ rules.lighting = Iluminação rules.fog = Névoa de Guerra rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Fogo rules.anyenv = rules.explosions = Dano de explosão de unidades/blocos diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties index ce72726f11..d47d0a9f3f 100644 --- a/core/assets/bundles/bundle_pt_PT.properties +++ b/core/assets/bundles/bundle_pt_PT.properties @@ -1367,6 +1367,7 @@ rules.lighting = Lighting rules.fog = Fog of War rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Fire rules.anyenv = rules.explosions = Block/Unit Explosion Damage diff --git a/core/assets/bundles/bundle_ro.properties b/core/assets/bundles/bundle_ro.properties index c770946c09..b460cd31f4 100644 --- a/core/assets/bundles/bundle_ro.properties +++ b/core/assets/bundles/bundle_ro.properties @@ -1378,6 +1378,7 @@ rules.lighting = Luminozitate Ambientală rules.fog = Fog of War rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Foc rules.anyenv = rules.explosions = Explozia Deteriorează Blocul/Unitatea diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index 953522662b..ed3df4196a 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -1378,6 +1378,7 @@ rules.lighting = Освещение rules.fog = Туман войны rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Огонь rules.anyenv = <Любая> rules.explosions = Урон от взрывов блоков/единиц diff --git a/core/assets/bundles/bundle_sr.properties b/core/assets/bundles/bundle_sr.properties index bf1b243a76..02d7803f2e 100644 --- a/core/assets/bundles/bundle_sr.properties +++ b/core/assets/bundles/bundle_sr.properties @@ -1380,6 +1380,7 @@ rules.lighting = Osvetljenje rules.fog = Magla Rata rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Plamen rules.anyenv = rules.explosions = Blokovna/Jedinična Šteta Eksplozije diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties index 1a2892db98..b71af6d348 100644 --- a/core/assets/bundles/bundle_sv.properties +++ b/core/assets/bundles/bundle_sv.properties @@ -1367,6 +1367,7 @@ rules.lighting = Lighting rules.fog = Fog of War rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Fire rules.anyenv = rules.explosions = Block/Unit Explosion Damage diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index fa861a89cc..2adc3a52a3 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -1379,6 +1379,7 @@ rules.lighting = แสง rules.fog = หมอกแห่งสงคราม rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = ไฟ rules.anyenv = <อะไรก็ได้> rules.explosions = ดาเมจการระเบิดของบล็อก/ยูนิต diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index 53502c60f0..7175db7553 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -1367,6 +1367,7 @@ rules.lighting = Lighting rules.fog = Fog of War rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Fire rules.anyenv = rules.explosions = Block/Unit Explosion Damage diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index 52ed3e0030..c9feab8f50 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -1376,6 +1376,7 @@ rules.lighting = Işıklandırma rules.fog = Savaş Sisi rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Ateş rules.anyenv = rules.explosions = Blok/Birlik Patlama Hasarı diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index 27c087b705..fd20fb50d4 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -1387,6 +1387,7 @@ rules.lighting = Світлотінь rules.fog = Туман війни rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Вогонь rules.anyenv = <Будь-яка> rules.explosions = Шкода від вибухів блоків і одиниць diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties index db8a363511..54da72f432 100644 --- a/core/assets/bundles/bundle_vi.properties +++ b/core/assets/bundles/bundle_vi.properties @@ -1397,6 +1397,7 @@ rules.lighting = Ánh sáng rules.fog = Sương mù chiến tranb rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = Lửa rules.anyenv = rules.explosions = Sát thương nổ của Khối/Đơn vị diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index 8324c1f1d7..3c7ed67af2 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -1389,6 +1389,7 @@ rules.lighting = 环境光 rules.fog = 战争迷雾 rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = 允许火焰产生并蔓延 rules.anyenv = <任意> rules.explosions = 建筑/单位爆炸伤害 diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index 30345d6acd..401a86afe6 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -1384,6 +1384,7 @@ rules.lighting = 光照 rules.fog = 戰爭迷霧 rules.invasions = Enemy Sector Invasions rules.showspawns = Show Enemy Spawns +rules.randomwaveai = Unpredictable Wave AI rules.fire = 火 rules.anyenv = rules.explosions = 方塊/單位爆炸傷害 From 0ffa6f1d00cb68f8244b39aa6431c050f2cbd424 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 13 Sep 2024 18:59:28 -0400 Subject: [PATCH 162/437] Added random wave AI to custom rules dialog --- core/assets/bundles/bundle.properties | 3 ++- core/src/mindustry/ui/dialogs/CustomRulesDialog.java | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 4a89d17453..f997ca75e0 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -1350,7 +1350,7 @@ rules.allowedit.info = When enabled, the player can edit rules in-game via the b rules.alloweditworldprocessors = Allow Editing World Processors rules.alloweditworldprocessors.info = When enabled, world logic blocks can be placed and edited even outside the editor. rules.waves = Waves -rules.airUseSpawns = Air units use spawn points +rules.airUseSpawns = Air Units Use Spawn Points rules.attack = Attack Mode rules.buildai = Base Builder AI rules.buildaitier = Builder AI Tier @@ -1409,6 +1409,7 @@ rules.weather.frequency = Frequency: rules.weather.always = Always rules.weather.duration = Duration: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. diff --git a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java index 4905cbad3e..baf69a5526 100644 --- a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java +++ b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java @@ -220,6 +220,7 @@ public class CustomRulesDialog extends BaseDialog{ check("@rules.wavesending", b -> rules.waveSending = b, () -> rules.waveSending, () -> rules.waves); check("@rules.wavetimer", b -> rules.waveTimer = b, () -> rules.waveTimer, () -> rules.waves); check("@rules.waitForWaveToEnd", b -> rules.waitEnemies = b, () -> rules.waitEnemies, () -> rules.waves && rules.waveTimer); + check("@rules.randomwaveai", b -> rules.randomWaveAI = b, () -> rules.randomWaveAI, () -> rules.waves); check("@rules.airUseSpawns", b -> rules.airUseSpawns = b, () -> rules.airUseSpawns, () -> rules.waves); numberi("@rules.wavelimit", f -> rules.winWave = f, () -> rules.winWave, () -> rules.waves, 0, Integer.MAX_VALUE); number("@rules.wavespacing", false, f -> rules.waveSpacing = f * 60f, () -> rules.waveSpacing / 60f, () -> rules.waves && rules.waveTimer, 1, Float.MAX_VALUE); From 49c696ab5cb0b881d5eb6e9111fa04dd1dbcf853 Mon Sep 17 00:00:00 2001 From: Github Actions Date: Fri, 13 Sep 2024 23:00:30 +0000 Subject: [PATCH 163/437] Automatic bundle update --- core/assets/bundles/bundle_be.properties | 1 + core/assets/bundles/bundle_bg.properties | 1 + core/assets/bundles/bundle_ca.properties | 1 + core/assets/bundles/bundle_cs.properties | 1 + core/assets/bundles/bundle_da.properties | 1 + core/assets/bundles/bundle_de.properties | 1 + core/assets/bundles/bundle_es.properties | 1 + core/assets/bundles/bundle_et.properties | 1 + core/assets/bundles/bundle_eu.properties | 1 + core/assets/bundles/bundle_fi.properties | 1 + core/assets/bundles/bundle_fil.properties | 1 + core/assets/bundles/bundle_fr.properties | 1 + core/assets/bundles/bundle_hu.properties | 1 + core/assets/bundles/bundle_id_ID.properties | 1 + core/assets/bundles/bundle_it.properties | 1 + core/assets/bundles/bundle_ja.properties | 1 + core/assets/bundles/bundle_ko.properties | 1 + core/assets/bundles/bundle_lt.properties | 1 + core/assets/bundles/bundle_nl.properties | 1 + core/assets/bundles/bundle_nl_BE.properties | 1 + core/assets/bundles/bundle_pl.properties | 1 + core/assets/bundles/bundle_pt_BR.properties | 1 + core/assets/bundles/bundle_pt_PT.properties | 1 + core/assets/bundles/bundle_ro.properties | 1 + core/assets/bundles/bundle_ru.properties | 1 + core/assets/bundles/bundle_sr.properties | 1 + core/assets/bundles/bundle_sv.properties | 1 + core/assets/bundles/bundle_th.properties | 1 + core/assets/bundles/bundle_tk.properties | 1 + core/assets/bundles/bundle_tr.properties | 1 + core/assets/bundles/bundle_uk_UA.properties | 1 + core/assets/bundles/bundle_vi.properties | 1 + core/assets/bundles/bundle_zh_CN.properties | 1 + core/assets/bundles/bundle_zh_TW.properties | 1 + 34 files changed, 34 insertions(+) diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties index 4339ad0bf5..2f0dc18f2d 100644 --- a/core/assets/bundles/bundle_be.properties +++ b/core/assets/bundles/bundle_be.properties @@ -1374,6 +1374,7 @@ rules.weather = Надвор'е rules.weather.frequency = Частата: rules.weather.always = Заўсёды rules.weather.duration = Працягласць: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. diff --git a/core/assets/bundles/bundle_bg.properties b/core/assets/bundles/bundle_bg.properties index 3dcf9650fd..5408ae5181 100644 --- a/core/assets/bundles/bundle_bg.properties +++ b/core/assets/bundles/bundle_bg.properties @@ -1385,6 +1385,7 @@ rules.weather = Климат rules.weather.frequency = Честота: rules.weather.always = Винаги rules.weather.duration = Продължителност: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. diff --git a/core/assets/bundles/bundle_ca.properties b/core/assets/bundles/bundle_ca.properties index 3c50ea9b06..139cdfd00c 100644 --- a/core/assets/bundles/bundle_ca.properties +++ b/core/assets/bundles/bundle_ca.properties @@ -1388,6 +1388,7 @@ rules.weather = Estat meteorològic rules.weather.frequency = Freqüència: rules.weather.always = Sempre rules.weather.duration = Durada: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = No es permet que els jugadors puguin posar res a prop dels edificis enemics. Quan s’intenta posar una torreta, l’abast augmenta i la torreta no podrà arribar a l’enemic. rules.onlydepositcore.info = No es permet que les unitats deixin elements a dins dels edificis excepte els nuclis. diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index a2b2d678fa..cdf8761646 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -1387,6 +1387,7 @@ rules.weather = Počasí rules.weather.frequency = Četnost: rules.weather.always = Vždy rules.weather.duration = Trvání: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. diff --git a/core/assets/bundles/bundle_da.properties b/core/assets/bundles/bundle_da.properties index 37586f2cc2..66f2d4e229 100644 --- a/core/assets/bundles/bundle_da.properties +++ b/core/assets/bundles/bundle_da.properties @@ -1376,6 +1376,7 @@ rules.weather = Vejr rules.weather.frequency = Frekvens: rules.weather.always = Always rules.weather.duration = Varighed: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index 25e9c7160f..b201de7307 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -1398,6 +1398,7 @@ rules.weather = Wetter rules.weather.frequency = Häufigkeit: rules.weather.always = Immer rules.weather.duration = Dauer: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index 19b6c045d8..81ccf9eb80 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -1394,6 +1394,7 @@ rules.weather = Clima rules.weather.frequency = Frecuencia: rules.weather.always = Siempre rules.weather.duration = Duracion: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Evita que las unidades depositen materiales en calquiera estructura a excepción del nucleo. diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties index 944497cf20..dc930ba05c 100644 --- a/core/assets/bundles/bundle_et.properties +++ b/core/assets/bundles/bundle_et.properties @@ -1376,6 +1376,7 @@ rules.weather = Weather rules.weather.frequency = Frequency: rules.weather.always = Always rules.weather.duration = Duration: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties index 5a647854e6..88582c9299 100644 --- a/core/assets/bundles/bundle_eu.properties +++ b/core/assets/bundles/bundle_eu.properties @@ -1378,6 +1378,7 @@ rules.weather = Weather rules.weather.frequency = Frequency: rules.weather.always = Always rules.weather.duration = Duration: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties index 9f1d916275..b0f06221ca 100644 --- a/core/assets/bundles/bundle_fi.properties +++ b/core/assets/bundles/bundle_fi.properties @@ -1375,6 +1375,7 @@ rules.weather = Sää rules.weather.frequency = Tiheys: rules.weather.always = Aina rules.weather.duration = Kesto: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. diff --git a/core/assets/bundles/bundle_fil.properties b/core/assets/bundles/bundle_fil.properties index 29c4a10496..105e138a05 100644 --- a/core/assets/bundles/bundle_fil.properties +++ b/core/assets/bundles/bundle_fil.properties @@ -1375,6 +1375,7 @@ rules.weather = Weather rules.weather.frequency = Frequency: rules.weather.always = Always rules.weather.duration = Duration: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index 884e9bc854..f65a688aab 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -1402,6 +1402,7 @@ rules.weather = Météo rules.weather.frequency = Fréquence : rules.weather.always = Permanent rules.weather.duration = Durée : +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index 980e1b8aae..3cf89cbbca 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -1406,6 +1406,7 @@ rules.weather = Időjárás rules.weather.frequency = Gyakoriság: rules.weather.always = Mindig rules.weather.duration = Időtartam: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Megakadályozza, hogy a játékosok lövegtornyokat helyezzenek el az ellenséges épületek közelében.\nAmikor megpróbálnak egy lövegtornyot elhelyezni, az építési távolság megnő, így a lövegtorony nem fogja elérni az ellenséget. rules.onlydepositcore.info = Megakadályozza, hogy az egységek nyersanyagokat helyezzenek el a támaszponton kívül más épületekbe. diff --git a/core/assets/bundles/bundle_id_ID.properties b/core/assets/bundles/bundle_id_ID.properties index 0f6682e546..6a13dbabe9 100644 --- a/core/assets/bundles/bundle_id_ID.properties +++ b/core/assets/bundles/bundle_id_ID.properties @@ -1405,6 +1405,7 @@ rules.weather = Cuaca rules.weather.frequency = Frekuensi: rules.weather.always = Selalu rules.weather.duration = Durasi: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Mencegah pemain menempatkan apa pun di dekat bangunan musuh. Ketika mencoba memasang menara, jangkauannya akan ditingkatkan sehingga menara tidak akan bisa menjangkau musuh. rules.onlydepositcore.info = Mencegah unit menyimpan bahan ke dalam bangunan apa pun kecuali inti. diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties index f6d6f81000..8a8fad77d1 100644 --- a/core/assets/bundles/bundle_it.properties +++ b/core/assets/bundles/bundle_it.properties @@ -1381,6 +1381,7 @@ rules.weather = Meteo rules.weather.frequency = Frequenza: rules.weather.always = sempre rules.weather.duration = Durata: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index e2c883da71..e29dee5980 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -1387,6 +1387,7 @@ rules.weather = 気象 rules.weather.frequency = 頻度: rules.weather.always = 常時 rules.weather.duration = 継続時間: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index 16b935c6ef..6b60c62078 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -1386,6 +1386,7 @@ rules.weather = 날씨 추가 rules.weather.frequency = 빈도: rules.weather.always = 항상 rules.weather.duration = 지속 시간: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = 플레이어가 적 건물 근처에 건설 불가 구역을 생성합니다. 만일, 플레이어가 포탑을 건설하고자 할 경우 반경이 증가되어 적 건물이 포탑의 사정거리에 닿지 않게됩니다. rules.onlydepositcore.info = 코어를 제외한 어떠한 건물에도 자원을 투하할 수 없게 만듭니다. diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties index 15cc2830f1..8ed948b7b3 100644 --- a/core/assets/bundles/bundle_lt.properties +++ b/core/assets/bundles/bundle_lt.properties @@ -1376,6 +1376,7 @@ rules.weather = Weather rules.weather.frequency = Frequency: rules.weather.always = Always rules.weather.duration = Duration: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index 28148bbc11..bb44df7b2a 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -1388,6 +1388,7 @@ rules.weather = Weer rules.weather.frequency = Frequentie: rules.weather.always = Altijd rules.weather.duration = Duur: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties index 30366b1716..eb4c305780 100644 --- a/core/assets/bundles/bundle_nl_BE.properties +++ b/core/assets/bundles/bundle_nl_BE.properties @@ -1376,6 +1376,7 @@ rules.weather = Weather rules.weather.frequency = Frequency: rules.weather.always = Always rules.weather.duration = Duration: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index 2c4bee5733..0e340c4c4b 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -1385,6 +1385,7 @@ rules.weather = Pogoda rules.weather.frequency = Częstotliwość: rules.weather.always = Zawsze rules.weather.duration = Czas trwania: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index 67b7149ae5..df116db9f9 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -1395,6 +1395,7 @@ rules.weather = Clima rules.weather.frequency = Frequência: rules.weather.always = Sempre rules.weather.duration = Duração: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties index d47d0a9f3f..caa61863d8 100644 --- a/core/assets/bundles/bundle_pt_PT.properties +++ b/core/assets/bundles/bundle_pt_PT.properties @@ -1376,6 +1376,7 @@ rules.weather = Weather rules.weather.frequency = Frequency: rules.weather.always = Always rules.weather.duration = Duration: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. diff --git a/core/assets/bundles/bundle_ro.properties b/core/assets/bundles/bundle_ro.properties index b460cd31f4..3de1da874d 100644 --- a/core/assets/bundles/bundle_ro.properties +++ b/core/assets/bundles/bundle_ro.properties @@ -1387,6 +1387,7 @@ rules.weather = Vreme rules.weather.frequency = Frevență: rules.weather.always = Încontinuu rules.weather.duration = Durată: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index ed3df4196a..f51a8b535b 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -1387,6 +1387,7 @@ rules.weather = Погода rules.weather.frequency = Периодичность: rules.weather.always = Всегда rules.weather.duration = Длительность: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. diff --git a/core/assets/bundles/bundle_sr.properties b/core/assets/bundles/bundle_sr.properties index 02d7803f2e..2b7960099f 100644 --- a/core/assets/bundles/bundle_sr.properties +++ b/core/assets/bundles/bundle_sr.properties @@ -1389,6 +1389,7 @@ rules.weather = Vreme rules.weather.frequency = Učestalost: rules.weather.always = Stalno rules.weather.duration = Dužina: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties index b71af6d348..8ea4b2f6ca 100644 --- a/core/assets/bundles/bundle_sv.properties +++ b/core/assets/bundles/bundle_sv.properties @@ -1376,6 +1376,7 @@ rules.weather = Weather rules.weather.frequency = Frequency: rules.weather.always = Always rules.weather.duration = Duration: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index 2adc3a52a3..3c65a30551 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -1388,6 +1388,7 @@ rules.weather = สภาพอากาศ rules.weather.frequency = ความถี่: rules.weather.always = ตลอด rules.weather.duration = ระยะเวลา: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index 7175db7553..4331850b3e 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -1376,6 +1376,7 @@ rules.weather = Weather rules.weather.frequency = Frequency: rules.weather.always = Always rules.weather.duration = Duration: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index c9feab8f50..f7b24bb979 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -1385,6 +1385,7 @@ rules.weather = Hava Durumu rules.weather.frequency = Sıklık: rules.weather.always = Her zaman rules.weather.duration = Süreklilik: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Oyuncuların düşman üssüne yakın inşa etmesini engeller. Bu, silah kurarken daha da fazla. rules.onlydepositcore.info = Birimlerin Merkez dışında malzeme aktarmasını engeller. diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index fd20fb50d4..744fbafa2c 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -1396,6 +1396,7 @@ rules.weather = Погода rules.weather.frequency = Повторюваність: rules.weather.always = Завжди rules.weather.duration = Тривалість: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties index 54da72f432..978cdc7441 100644 --- a/core/assets/bundles/bundle_vi.properties +++ b/core/assets/bundles/bundle_vi.properties @@ -1406,6 +1406,7 @@ rules.weather = Thời tiết rules.weather.frequency = Tần suất: rules.weather.always = Luôn luôn rules.weather.duration = Thời gian: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Ngăn chặn người chơi khỏi việc đặt bất kỳ thứ gì gần công trình kẻ địch. Khi cố đặt một bệ súng, phạm vi sẽ bị tăng lên, để bệ súng không thể bắn tới kẻ địch. rules.onlydepositcore.info = Ngăn chặn các đơn vị khỏi việc thả vật phẩm vào bất kỳ công trình nào ngoài lõi. diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index 3c7ed67af2..9b9658483d 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -1398,6 +1398,7 @@ rules.weather = 天气 rules.weather.frequency = 周期: rules.weather.always = 永久 rules.weather.duration = 时长: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index 401a86afe6..b1d946e908 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -1393,6 +1393,7 @@ rules.weather = 天氣 rules.weather.frequency = 頻率: rules.weather.always = 永遠 rules.weather.duration = 持續時間: +rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators. rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. From 3b287b1bbef7aff7a2e825626ab1712d45f92243 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 13 Sep 2024 19:11:19 -0400 Subject: [PATCH 164/437] Apply difficulty spawn multiplier to unit production --- core/src/mindustry/game/CampaignRules.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/src/mindustry/game/CampaignRules.java b/core/src/mindustry/game/CampaignRules.java index 3f55661772..13e3389d43 100644 --- a/core/src/mindustry/game/CampaignRules.java +++ b/core/src/mindustry/game/CampaignRules.java @@ -13,5 +13,7 @@ public class CampaignRules{ rules.randomWaveAI = randomWaveAI; rules.teams.get(rules.waveTeam).blockHealthMultiplier = difficulty.enemyHealthMultiplier; rules.teams.get(rules.waveTeam).unitHealthMultiplier = difficulty.enemyHealthMultiplier; + rules.teams.get(rules.waveTeam).unitCostMultiplier = 1f / difficulty.enemySpawnMultiplier; + rules.teams.get(rules.waveTeam).unitBuildSpeedMultiplier = difficulty.enemySpawnMultiplier; } } From 5ac7f204e3178bff92b3c76f550a2bdf543cbc86 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 13 Sep 2024 19:45:09 -0400 Subject: [PATCH 165/437] Added extra retusa weapon --- .../sprites/units/weapons/retusa-weapon.png | Bin 0 -> 301 bytes core/src/mindustry/content/UnitTypes.java | 19 +++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 core/assets-raw/sprites/units/weapons/retusa-weapon.png diff --git a/core/assets-raw/sprites/units/weapons/retusa-weapon.png b/core/assets-raw/sprites/units/weapons/retusa-weapon.png new file mode 100644 index 0000000000000000000000000000000000000000..183907169c2c36bdcbe89f80c57cf1050e49399a GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?FV0iB7 z;uw;sNSLR*p4hjM*<}vY1ddQH$cARy>UWfdqbx9T+%?=9!zPcVPxxMH_ z_e1;bf}U~aw_}YJTLk`}Ibod`INjI!zoB)-bPtKeH_y&mq<4{NOM|4&L%o8v^PC^1 zX}nZ!a_3+?EYypKUnn)kI;*{${;4e8E2O5l~8T$4Vc36Dcd6S z`T5nGZT)`Vy|!0w6Z7n=i>_;2+#}$`q1Yne#PN|?pOwXK9qa9%E({C|44$rjF6*2U FngA2LajXCU literal 0 HcmV?d00001 diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index 20993b2d37..4c7e9def50 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -1862,6 +1862,23 @@ public class UnitTypes{ }}; }}); + weapons.add(new Weapon("retusa-weapon"){{ + shootSound = Sounds.lasershoot; + reload = 22f; + x = 4.5f; + y = -3.5f; + rotateSpeed = 5f; + mirror = true; + rotate = true; + bullet = new LaserBoltBulletType(5.2f, 10){{ + lifetime = 30f; + healPercent = 5.5f; + collidesTeam = true; + backColor = Pal.heal; + frontColor = Color.white; + }}; + }}); + weapons.add(new Weapon(){{ mirror = false; rotate = true; @@ -1913,7 +1930,7 @@ public class UnitTypes{ trailWidth = 3f; trailLength = 8; - splashDamage = 36f; + splashDamage = 40f; splashDamageRadius = 32f; }}; }}); From 6b93873fcee205808fdc1faf2c989de1ff21d000 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 13 Sep 2024 21:42:00 -0400 Subject: [PATCH 166/437] Difficulty scaling tweaks --- core/src/mindustry/game/Difficulty.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/game/Difficulty.java b/core/src/mindustry/game/Difficulty.java index 3018f9c3f1..314262f8ef 100644 --- a/core/src/mindustry/game/Difficulty.java +++ b/core/src/mindustry/game/Difficulty.java @@ -6,8 +6,8 @@ public enum Difficulty{ //TODO these need tweaks easy(1f, 0.75f, 1.5f), normal(1f, 1f, 1f), - hard(1.25f, 1.5f, 0.6f), - eradication(1.5f, 2f, 0.4f); + hard(1.25f, 1.5f, 0.75f), + eradication(1.5f, 2f, 0.5f); public static final Difficulty[] all = values(); From a15a0d945fb79c2c7960634abedbd3831ef1900e Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 14 Sep 2024 09:22:56 -0400 Subject: [PATCH 167/437] Difficulty & AI tweaks --- core/src/mindustry/ai/Pathfinder.java | 8 +++++--- core/src/mindustry/ai/types/FlyingAI.java | 25 +++++++++++++++++++++++ core/src/mindustry/game/Difficulty.java | 4 ++-- gradle.properties | 2 +- 4 files changed, 33 insertions(+), 6 deletions(-) diff --git a/core/src/mindustry/ai/Pathfinder.java b/core/src/mindustry/ai/Pathfinder.java index e37adc91b0..a18364e8f5 100644 --- a/core/src/mindustry/ai/Pathfinder.java +++ b/core/src/mindustry/ai/Pathfinder.java @@ -462,17 +462,19 @@ public class Pathfinder implements Runnable{ @Override protected void getPositions(IntSeq out){ if(state.rules.randomWaveAI && team == state.rules.waveTeam){ - rand.setSeed(state.rules.waves ? state.wave : (int)(state.tick / (5400))); + rand.setSeed(state.rules.waves ? state.wave : (int)(state.tick / (5400)) + hashCode()); //maximum amount of different target flag types they will attack - int max = 2; + int max = 1; for(int attempt = 0; attempt < 5 && max > 0; attempt++){ var targets = indexer.getEnemy(team, randomTargets[rand.random(randomTargets.length - 1)]); if(!targets.isEmpty()){ max --; for(Building other : targets){ - out.add(other.tile.array()); + if((other.items != null && other.items.any()) || other.status() != BlockStatus.noInput){ + out.add(other.tile.array()); + } } } } diff --git a/core/src/mindustry/ai/types/FlyingAI.java b/core/src/mindustry/ai/types/FlyingAI.java index f7d533658e..b9f718b8a3 100644 --- a/core/src/mindustry/ai/types/FlyingAI.java +++ b/core/src/mindustry/ai/types/FlyingAI.java @@ -2,6 +2,7 @@ package mindustry.ai.types; import arc.math.*; import mindustry.entities.units.*; +import mindustry.game.*; import mindustry.gen.*; import mindustry.world.meta.*; @@ -29,6 +30,30 @@ public class FlyingAI extends AIController{ } } + @Override + public Teamc targetFlag(float x, float y, BlockFlag flag, boolean enemy){ + if(state.rules.randomWaveAI){ + if(unit.team == Team.derelict) return null; + var list = enemy ? indexer.getEnemy(unit.team, flag) : indexer.getFlagged(unit.team, flag); + if(list.isEmpty()) return null; + + Building closest = null; + float cdist = 0f; + for(Building t : list){ + if((t.items != null && t.items.any()) || t.status() != BlockStatus.noInput){ + float dst = t.dst2(x, y); + if(closest == null || dst < cdist){ + closest = t; + cdist = dst; + } + } + } + return closest; + }else{ + return super.targetFlag(x, y, flag, enemy); + } + } + @Override public Teamc findTarget(float x, float y, float range, boolean air, boolean ground){ var result = findMainTarget(x, y, range, air, ground); diff --git a/core/src/mindustry/game/Difficulty.java b/core/src/mindustry/game/Difficulty.java index 314262f8ef..1f7943d72e 100644 --- a/core/src/mindustry/game/Difficulty.java +++ b/core/src/mindustry/game/Difficulty.java @@ -6,8 +6,8 @@ public enum Difficulty{ //TODO these need tweaks easy(1f, 0.75f, 1.5f), normal(1f, 1f, 1f), - hard(1.25f, 1.5f, 0.75f), - eradication(1.5f, 2f, 0.5f); + hard(1.25f, 1.5f, 0.8f), + eradication(1.5f, 2f, 0.6f); public static final Difficulty[] all = values(); diff --git a/gradle.properties b/gradle.properties index 7e507f48ef..8ceca65918 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,4 +26,4 @@ org.gradle.caching=true org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.connectionTimeout=100000 android.enableR8.fullMode=false -archash=8073823706 +archash=25e8455084 From f0027a3eff2c3a169220946016ee3bc1fe7f34c4 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 14 Sep 2024 09:43:30 -0400 Subject: [PATCH 168/437] Minor AI fix --- core/src/mindustry/ai/Pathfinder.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/ai/Pathfinder.java b/core/src/mindustry/ai/Pathfinder.java index a18364e8f5..c6a2ed0528 100644 --- a/core/src/mindustry/ai/Pathfinder.java +++ b/core/src/mindustry/ai/Pathfinder.java @@ -470,12 +470,16 @@ public class Pathfinder implements Runnable{ for(int attempt = 0; attempt < 5 && max > 0; attempt++){ var targets = indexer.getEnemy(team, randomTargets[rand.random(randomTargets.length - 1)]); if(!targets.isEmpty()){ - max --; + boolean any = false; for(Building other : targets){ if((other.items != null && other.items.any()) || other.status() != BlockStatus.noInput){ out.add(other.tile.array()); + any = true; } } + if(any){ + max --; + } } } } From 56c9e9620149eeef77c131477ad776bf499d3f0d Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 14 Sep 2024 14:44:13 -0400 Subject: [PATCH 169/437] Fixed reconstructors not assigning default command --- core/src/mindustry/type/UnitType.java | 3 +++ core/src/mindustry/world/blocks/units/Reconstructor.java | 6 ++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/core/src/mindustry/type/UnitType.java b/core/src/mindustry/type/UnitType.java index af3cd1b562..4466ecd536 100644 --- a/core/src/mindustry/type/UnitType.java +++ b/core/src/mindustry/type/UnitType.java @@ -458,6 +458,9 @@ public class UnitType extends UnlockableContent implements Senseable{ Unit unit = constructor.get(); unit.team = team; unit.setType(this); + if(controller instanceof CommandAI command && defaultCommand != null){ + command.command = defaultCommand; + } unit.ammo = ammoCapacity; //fill up on ammo upon creation unit.elevation = flying ? 1f : 0; unit.heal(); diff --git a/core/src/mindustry/world/blocks/units/Reconstructor.java b/core/src/mindustry/world/blocks/units/Reconstructor.java index 25b6e72226..94b40a96fe 100644 --- a/core/src/mindustry/world/blocks/units/Reconstructor.java +++ b/core/src/mindustry/world/blocks/units/Reconstructor.java @@ -311,10 +311,8 @@ public class Reconstructor extends UnitBlock{ if(commandPos != null){ payload.unit.command().commandPosition(commandPos); } - if(command != null){ - //this already checks if it is a valid command for the unit type - payload.unit.command().command(command); - } + //this already checks if it is a valid command for the unit type + payload.unit.command().command(command == null && payload.unit.type.defaultCommand != null ? payload.unit.type.defaultCommand : command); } progress %= 1f; From 0889da2bc7fb4102b71d747d615614391a45f9c0 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 14 Sep 2024 21:34:27 -0400 Subject: [PATCH 170/437] Minor arrival fixes for enter payload command --- core/src/mindustry/ai/types/CommandAI.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/ai/types/CommandAI.java b/core/src/mindustry/ai/types/CommandAI.java index 0a90db901d..b9a77a544a 100644 --- a/core/src/mindustry/ai/types/CommandAI.java +++ b/core/src/mindustry/ai/types/CommandAI.java @@ -218,8 +218,13 @@ public class CommandAI extends AIController{ vecMovePos.add(group.positions[groupIndex * 2], group.positions[groupIndex * 2 + 1]); } + Building targetBuild = world.buildWorld(targetPos.x, targetPos.y); + //TODO: should the unit stop when it finds a target? - if(stance == UnitStance.patrol && target != null && unit.within(target, unit.type.range - 2f) && !unit.type.circleTarget){ + if( + (stance == UnitStance.patrol && target != null && unit.within(target, unit.type.range - 2f) && !unit.type.circleTarget) || + (command == UnitCommand.enterPayloadCommand && unit.within(targetPos, 4f) || (targetBuild != null && unit.within(targetBuild, targetBuild.block.size * tilesize/2f * 0.9f))) + ){ move = false; } From aafdd35796bca850054199499d06ff4aed92b8f5 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 15 Sep 2024 11:36:09 -0400 Subject: [PATCH 171/437] Polar Aerodrome sector submission / Shields absorb unit wrecks --- core/assets/bundles/bundle.properties | 2 ++ core/assets/maps/polarAerodrome.msav | Bin 0 -> 55489 bytes core/src/mindustry/content/Blocks.java | 6 +++--- core/src/mindustry/content/SectorPresets.java | 6 +++++- .../src/mindustry/content/SerpuloTechTree.java | 12 +++++++++++- core/src/mindustry/entities/comp/UnitComp.java | 8 +++++++- .../world/blocks/UnitWreckShield.java | 9 +++++++++ .../world/blocks/defense/ForceProjector.java | 17 +++++++++++++++-- core/src/mindustry/world/meta/BlockFlag.java | 4 +++- 9 files changed, 55 insertions(+), 9 deletions(-) create mode 100644 core/assets/maps/polarAerodrome.msav create mode 100644 core/src/mindustry/world/blocks/UnitWreckShield.java diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index f997ca75e0..b02f1d641e 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -833,6 +833,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on. sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders. @@ -856,6 +857,7 @@ sector.navalFortress.description = The enemy has established a base on a remote, sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset sector.aegis.name = Aegis diff --git a/core/assets/maps/polarAerodrome.msav b/core/assets/maps/polarAerodrome.msav new file mode 100644 index 0000000000000000000000000000000000000000..a4137801c887332d3ea88fa6db14f8f03961339f GIT binary patch literal 55489 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 literal 0 HcmV?d00001 diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index f3a2d9332b..82b80e12b8 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -1889,21 +1889,21 @@ public class Blocks{ titaniumConveyor = new Conveyor("titanium-conveyor"){{ requirements(Category.distribution, with(Items.copper, 1, Items.lead, 1, Items.titanium, 1)); - health = 65; + health = 70; speed = 0.08f; displayedSpeed = 11f; }}; plastaniumConveyor = new StackConveyor("plastanium-conveyor"){{ requirements(Category.distribution, with(Items.plastanium, 1, Items.silicon, 1, Items.graphite, 1)); - health = 75; + health = 90; speed = 4f / 60f; itemCapacity = 10; }}; armoredConveyor = new ArmoredConveyor("armored-conveyor"){{ requirements(Category.distribution, with(Items.plastanium, 1, Items.thorium, 1, Items.metaglass, 1)); - health = 180; + health = 280; speed = 0.08f; displayedSpeed = 11f; }}; diff --git a/core/src/mindustry/content/SectorPresets.java b/core/src/mindustry/content/SectorPresets.java index 1e39b41105..75c991be2a 100644 --- a/core/src/mindustry/content/SectorPresets.java +++ b/core/src/mindustry/content/SectorPresets.java @@ -8,7 +8,7 @@ public class SectorPresets{ public static SectorPreset groundZero, craters, biomassFacility, taintedWoods, frozenForest, ruinousShores, facility32m, windsweptIslands, stainedMountains, tarFields, - fungalPass, infestedCanyons, extractionOutpost, saltFlats, overgrowth, + fungalPass, infestedCanyons, extractionOutpost, polarAerodrome, saltFlats, overgrowth, impact0078, desolateRift, nuclearComplex, planetaryTerminal, coastline, navalFortress, @@ -76,6 +76,10 @@ public class SectorPresets{ difficulty = 5; }}; + polarAerodrome = new SectorPreset("polarAerodrome", serpulo, 68){{ + difficulty = 7; + }}; + coastline = new SectorPreset("coastline", serpulo, 108){{ captureWave = 30; difficulty = 5; diff --git a/core/src/mindustry/content/SerpuloTechTree.java b/core/src/mindustry/content/SerpuloTechTree.java index ec0973bf36..c12fbde589 100644 --- a/core/src/mindustry/content/SerpuloTechTree.java +++ b/core/src/mindustry/content/SerpuloTechTree.java @@ -378,7 +378,7 @@ public class SerpuloTechTree{ node(flare, () -> { node(horizon, () -> { node(zenith, () -> { - node(antumbra, () -> { + node(antumbra, Seq.with(new SectorComplete(polarAerodrome)), () -> { node(eclipse, () -> { }); @@ -514,7 +514,17 @@ public class SerpuloTechTree{ new Research(airFactory), new Research(mono) ), () -> { + node(polarAerodrome, Seq.with( + new SectorComplete(fungalPass), + new SectorComplete(overgrowth), + new Research(multiplicativeReconstructor), + new Research(zenith), + new Research(swarmer), + new Research(cyclone), + new Research(blastDrill) + ), () -> { + }); }); }); diff --git a/core/src/mindustry/entities/comp/UnitComp.java b/core/src/mindustry/entities/comp/UnitComp.java index ffa2bc3592..f5cc151a2c 100644 --- a/core/src/mindustry/entities/comp/UnitComp.java +++ b/core/src/mindustry/entities/comp/UnitComp.java @@ -25,8 +25,10 @@ import mindustry.logic.*; import mindustry.type.*; import mindustry.ui.*; import mindustry.world.*; +import mindustry.world.blocks.*; import mindustry.world.blocks.environment.*; import mindustry.world.blocks.payloads.*; +import mindustry.world.meta.*; import static mindustry.Vars.*; import static mindustry.logic.GlobalVars.*; @@ -713,7 +715,11 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I //if this unit crash landed (was flying), damage stuff in a radius if(type.flying && !spawnedByCore && type.createWreck && state.rules.unitCrashDamage(team) > 0){ - Damage.damage(team, x, y, Mathf.pow(hitSize, 0.94f) * 1.25f, Mathf.pow(hitSize, 0.75f) * type.crashDamageMultiplier * 5f * state.rules.unitCrashDamage(team), true, false, true); + var shields = indexer.getEnemy(team, BlockFlag.shield); + float crashDamage = Mathf.pow(hitSize, 0.75f) * type.crashDamageMultiplier * 5f * state.rules.unitCrashDamage(team); + if(shields.isEmpty() || !shields.contains(b -> b instanceof UnitWreckShield s && s.absorbWreck(self(), crashDamage))){ + Damage.damage(team, x, y, Mathf.pow(hitSize, 0.94f) * 1.25f, crashDamage, true, false, true); + } } if(!headless && type.createScorch){ diff --git a/core/src/mindustry/world/blocks/UnitWreckShield.java b/core/src/mindustry/world/blocks/UnitWreckShield.java new file mode 100644 index 0000000000..062320cef2 --- /dev/null +++ b/core/src/mindustry/world/blocks/UnitWreckShield.java @@ -0,0 +1,9 @@ +package mindustry.world.blocks; + +import mindustry.gen.*; + +//TODO: horrible API design, but I'm not sure of a better way to do this right now. please don't use this class +public interface UnitWreckShield{ + /** @return whether the shield was able to absorb the unit wreck; this should apply damage to the shield if true is returned. */ + boolean absorbWreck(Unit unit, float damage); +} diff --git a/core/src/mindustry/world/blocks/defense/ForceProjector.java b/core/src/mindustry/world/blocks/defense/ForceProjector.java index 58ee4b6c2d..96d7efcb92 100644 --- a/core/src/mindustry/world/blocks/defense/ForceProjector.java +++ b/core/src/mindustry/world/blocks/defense/ForceProjector.java @@ -19,6 +19,7 @@ import mindustry.graphics.*; import mindustry.logic.*; import mindustry.ui.*; import mindustry.world.*; +import mindustry.world.blocks.*; import mindustry.world.consumers.*; import mindustry.world.meta.*; @@ -68,6 +69,7 @@ public class ForceProjector extends Block{ envEnabled |= Env.space; ambientSound = Sounds.shield; ambientSoundVolume = 0.08f; + flags = EnumSet.of(BlockFlag.shield); if(consumeCoolant){ consume(coolantConsumer = new ConsumeCoolant(coolantConsumption)).boost().update(false); @@ -120,7 +122,7 @@ public class ForceProjector extends Block{ Draw.color(); } - public class ForceBuild extends Building implements Ranged{ + public class ForceBuild extends Building implements Ranged, UnitWreckShield{ public boolean broken = true; public float buildup, radscl, hit, warmup, phaseHeat; @@ -214,6 +216,17 @@ public class ForceProjector extends Block{ } } + @Override + public boolean absorbWreck(Unit unit, float damage){ + boolean absorb = !broken && Intersector.isInRegularPolygon(sides, x, y, realRadius(), shieldRotation, unit.x, unit.y); + if(absorb){ + absorbEffect.at(unit); + hit = 1f; + buildup += damage; + } + return absorb; + } + public float realRadius(){ return (radius + phaseHeat * phaseRadiusBoost) * radscl; } @@ -238,7 +251,7 @@ public class ForceProjector extends Block{ Draw.z(Layer.block); Draw.reset(); } - + drawShield(); } diff --git a/core/src/mindustry/world/meta/BlockFlag.java b/core/src/mindustry/world/meta/BlockFlag.java index 257fa0c20a..82d073a780 100644 --- a/core/src/mindustry/world/meta/BlockFlag.java +++ b/core/src/mindustry/world/meta/BlockFlag.java @@ -22,6 +22,8 @@ public enum BlockFlag{ extinguisher, /** Is a drill. */ drill, + /** Force projector block. */ + shield, //special, internal identifiers launchPad, @@ -32,5 +34,5 @@ public enum BlockFlag{ public final static BlockFlag[] all = values(); /** Values for logic only. Filters out some internal flags. */ - public final static BlockFlag[] allLogic = {core, storage, generator, turret, factory, repair, battery, reactor, drill}; + public final static BlockFlag[] allLogic = {core, storage, generator, turret, factory, repair, battery, reactor, drill, shield}; } From 7520f72361747e300c4cdf4d5495360fecdcaa7e Mon Sep 17 00:00:00 2001 From: Github Actions Date: Sun, 15 Sep 2024 15:37:16 +0000 Subject: [PATCH 172/437] Automatic bundle update --- core/assets/bundles/bundle_be.properties | 2 ++ core/assets/bundles/bundle_bg.properties | 2 ++ core/assets/bundles/bundle_ca.properties | 2 ++ core/assets/bundles/bundle_cs.properties | 2 ++ core/assets/bundles/bundle_da.properties | 2 ++ core/assets/bundles/bundle_de.properties | 2 ++ core/assets/bundles/bundle_es.properties | 2 ++ core/assets/bundles/bundle_et.properties | 2 ++ core/assets/bundles/bundle_eu.properties | 2 ++ core/assets/bundles/bundle_fi.properties | 2 ++ core/assets/bundles/bundle_fil.properties | 2 ++ core/assets/bundles/bundle_fr.properties | 2 ++ core/assets/bundles/bundle_hu.properties | 2 ++ core/assets/bundles/bundle_id_ID.properties | 2 ++ core/assets/bundles/bundle_it.properties | 2 ++ core/assets/bundles/bundle_ja.properties | 2 ++ core/assets/bundles/bundle_ko.properties | 2 ++ core/assets/bundles/bundle_lt.properties | 2 ++ core/assets/bundles/bundle_nl.properties | 2 ++ core/assets/bundles/bundle_nl_BE.properties | 2 ++ core/assets/bundles/bundle_pl.properties | 2 ++ core/assets/bundles/bundle_pt_BR.properties | 2 ++ core/assets/bundles/bundle_pt_PT.properties | 2 ++ core/assets/bundles/bundle_ro.properties | 2 ++ core/assets/bundles/bundle_ru.properties | 2 ++ core/assets/bundles/bundle_sr.properties | 2 ++ core/assets/bundles/bundle_sv.properties | 2 ++ core/assets/bundles/bundle_th.properties | 2 ++ core/assets/bundles/bundle_tk.properties | 2 ++ core/assets/bundles/bundle_tr.properties | 2 ++ core/assets/bundles/bundle_uk_UA.properties | 2 ++ core/assets/bundles/bundle_vi.properties | 2 ++ core/assets/bundles/bundle_zh_CN.properties | 2 ++ core/assets/bundles/bundle_zh_TW.properties | 2 ++ 34 files changed, 68 insertions(+) diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties index 2f0dc18f2d..9e27ad9b3a 100644 --- a/core/assets/bundles/bundle_be.properties +++ b/core/assets/bundles/bundle_be.properties @@ -806,6 +806,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Планетарны Пускавы Тэрмінал sector.coastline.name = Берагавая Лінія sector.navalFortress.name = Марская Крэпасць +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = Аптымальнае месца каб пачаць. Нізкая варожая пагроза. Мала рэсурсаў.\nВазімце як мага болей свінца і медзі.\nІ рухайцеся далей. sector.frozenForest.description = Нават тут, бліжэй да гор, распаўсюдзіліся споры. Ледзяныя тэмпературы не могуць утрымліваць іх заўсёды.\n\nПачніце выкарыстоўваць энергію. Пабудуйце генератары на цвёрдым паліве. Даведайцеся як выкарыстоуваць рэгенератары. @@ -828,6 +829,7 @@ sector.navalFortress.description = The enemy has established a base on a remote, sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = Пачатак sector.aegis.name = Ахова sector.lake.name = Рака diff --git a/core/assets/bundles/bundle_bg.properties b/core/assets/bundles/bundle_bg.properties index 5408ae5181..515342b472 100644 --- a/core/assets/bundles/bundle_bg.properties +++ b/core/assets/bundles/bundle_bg.properties @@ -815,6 +815,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Терминал за космически мисии sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = Перфектното място за започване отначало. Ниска заплаха. Ниски ресурси.\nСъбери колкото можеш мед и олово.\nПродължи напред. sector.frozenForest.description = Дори тук, близо до планините, спорите са се разпространили. Мразовитите температури не могат да ги задържат вечно.\n\nОвладейте електричеството. Постройте горивни генератори. Научете се да ползвате възстрановители. @@ -837,6 +838,7 @@ sector.navalFortress.description = The enemy has established a base on a remote, sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_ca.properties b/core/assets/bundles/bundle_ca.properties index 139cdfd00c..f21106cb63 100644 --- a/core/assets/bundles/bundle_ca.properties +++ b/core/assets/bundles/bundle_ca.properties @@ -819,6 +819,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Terminal de llançament interplanetari sector.coastline.name = Línia de costa sector.navalFortress.name = Fortalesa naval +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = El lloc adequat per a començar de nou. Amenaça enemiga baixa. Pocs recursos.\nRecolliu tot el coure i plom que pugueu.\nDesprés, continueu en un altre sector. sector.frozenForest.description = Les espores han arribat fins aquí, prop de les muntanyes. Les temperatures baixes no les podran contenir per sempre.\n\nComenceu el camí del poder. Construïu generadors a combustió. Apreneu a fer servir els reparadors. @@ -841,6 +842,7 @@ sector.navalFortress.description = L’enemic ha establert una base en una illa sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = El principi sector.aegis.name = L’ègida diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index cdf8761646..625aae16d5 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -817,6 +817,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetární odpalovací terminál sector.coastline.name = Pobřežní čára sector.navalFortress.name = Námořní pevnost +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = Optimální místo, kde znovu začít. Nízký výskyt nepřátel. Několik málo surovin.\nPosbírej co nejvíce olova a mědi.\nBěž dál. sector.frozenForest.description = Dokonce až sem, blízko hor, se dokázaly spóry rozrůst. Mráz je však nemůže zadržet navěky.\n\nPusť se do práce za pomocí energie. Stav spalovací generátory. Nauč se, jak používat opravovací věže. @@ -839,6 +840,7 @@ sector.navalFortress.description = Nepřítel si vybudoval základnu na odlehlé sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = Nástup sector.aegis.name = Aegis sector.lake.name = Jezero diff --git a/core/assets/bundles/bundle_da.properties b/core/assets/bundles/bundle_da.properties index 66f2d4e229..ad2453c441 100644 --- a/core/assets/bundles/bundle_da.properties +++ b/core/assets/bundles/bundle_da.properties @@ -807,6 +807,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on. sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders. @@ -829,6 +830,7 @@ sector.navalFortress.description = The enemy has established a base on a remote, sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index b201de7307..3d7e483272 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -827,6 +827,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetares Launchterminal sector.coastline.name = Küstenlinie sector.navalFortress.name = Wasserfestung +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = Der optimale Ort, um anzufangen. Schwache Gegner und weniger Ressourcen.\nSammele so viel Kupfer und Blei wie möglich.\nGeh weiter. sector.frozenForest.description = Auch hier, näher an den Bergen, sind die Sporen. Sogar die niedrigen Temperaturen können sie nicht zurückhalten.\n\nLerne, Strom zu verwenden. Baue Verbrennungsgeneratoren und Reparateure. @@ -849,6 +850,7 @@ sector.navalFortress.description = Der Gegner hat auf einer abgelegenen, von Nat sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = Der Anfang sector.aegis.name = Aegis diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index 81ccf9eb80..127af4fbec 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -823,6 +823,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Terminal de Lanzamiento Interplanetario sector.coastline.name = Ruta Costera sector.navalFortress.name = Fortaleza Naval +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = La ubicación adecuada para empezar una vez más. Baja amenaza enemiga. Pocos recursos.\nReúne la mayor cantidad de plomo y cobre posible y sigue adelante. sector.frozenForest.description = Incluso aquí, cerca de las montañas, se han extendido las esporas. Las gélidas temperaturas no las contendrán para siempre.\nDescubre la energía eléctrica. Construye generadores de combustión. Aprende a usar reparadores. @@ -845,6 +846,7 @@ sector.navalFortress.description = El enemigo ha establecido una base en una rem sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = El Inicio sector.aegis.name = Égida diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties index dc930ba05c..b73390a2bc 100644 --- a/core/assets/bundles/bundle_et.properties +++ b/core/assets/bundles/bundle_et.properties @@ -807,6 +807,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on. sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders. @@ -829,6 +830,7 @@ sector.navalFortress.description = The enemy has established a base on a remote, sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties index 88582c9299..739831b8ad 100644 --- a/core/assets/bundles/bundle_eu.properties +++ b/core/assets/bundles/bundle_eu.properties @@ -809,6 +809,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on. sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders. @@ -831,6 +832,7 @@ sector.navalFortress.description = The enemy has established a base on a remote, sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties index b0f06221ca..6ac8d62fd9 100644 --- a/core/assets/bundles/bundle_fi.properties +++ b/core/assets/bundles/bundle_fi.properties @@ -807,6 +807,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetaarinen laukaisuterminaali sector.coastline.name = Rantaviiva sector.navalFortress.name = Laivastolinnoitus +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = Optimaalinen sijainti aloittaa jälleen kerran. Matala vihollisuhka. Vähän resursseja.\nKerää niin paljon kuparia ja lyijyä, kuin mahdollista.\nJatka matkaa. sector.frozenForest.description = Itiöt ovat levittäytyneet jopa tänne, lähemmäs vuoria. Jäätävät lämpötilat eivät voi torjua niitä ikuisesti.\n\nAloita seikkailusi virtaan. Rakenna polttogeneraattoreita. Opi käyttämään korjaajia. @@ -829,6 +830,7 @@ sector.navalFortress.description = The enemy has established a base on a remote, sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = Alku sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_fil.properties b/core/assets/bundles/bundle_fil.properties index 105e138a05..16e847ae45 100644 --- a/core/assets/bundles/bundle_fil.properties +++ b/core/assets/bundles/bundle_fil.properties @@ -807,6 +807,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = Ang pinakamainam na lokasyon upang magsimulang muli. Mababang banta ng kaaway. Kaunting mapagkukunan.\nMagtipon ng mas maraming tingga at tanso hangga't maaari.\nItuloy. sector.frozenForest.description = Kahit dito, mas malapit sa mga bundok, ang mga spore ay kumalat. Ang napakalamig na temperatura ay hindi maaaring maglaman ng mga ito magpakailanman.\n\nSimulan ang pakikipagsapalaran sa kapangyarihan. Bumuo ng mga generator ng pagkasunog. Matutong gumamit ng mga mender. @@ -829,6 +830,7 @@ sector.navalFortress.description = The enemy has established a base on a remote, sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index f65a688aab..3374a8447e 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -830,6 +830,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = Un endroit optimal pour commencer. Avec une menace ennemie faible et peu de ressources disponibles.\nRassemblez autant de cuivre et de plomb que possible pour continuer votre exploration. sector.frozenForest.description = Même ici, près des montagnes, les spores se sont propagées. Les températures glaciales ne pourront pas les contenir indéfiniment.\n\nCommencez votre production d'énergie en construisant des générateurs à combustion et apprenez à utiliser les bâtiments de soin. @@ -852,6 +853,7 @@ sector.navalFortress.description = L’ennemi a établi une base sur une île is sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset sector.aegis.name = Aegis diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index 3cf89cbbca..3d26ba4bc5 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -832,6 +832,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Bolygó körüli kilövőállás sector.coastline.name = Partvonal sector.navalFortress.name = Haditengerészeti erőd +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = Az ideális helyszín, hogy ismét belekezdjünk. Alacsony ellenséges fenyegetés. Kevés nyersanyag.\nGyűjts annyi rezet és ólmot, amennyit csak tudsz.\nHaladj tovább. sector.frozenForest.description = Még itt, a hegyekhez közel is elterjedtek a spórák. A fagypont alatti hőmérséklet nem tudja örökké fogva tartani őket.\n\nFedezd fel az elektromosság erejét! Építs égetőerőműveket! Tanuld meg a foltozók használatát! @@ -854,6 +855,7 @@ sector.navalFortress.description = Az ellenség bázist létesített egy távoli sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = A kezdet sector.aegis.name = Égisz diff --git a/core/assets/bundles/bundle_id_ID.properties b/core/assets/bundles/bundle_id_ID.properties index 6a13dbabe9..6163d6ee8b 100644 --- a/core/assets/bundles/bundle_id_ID.properties +++ b/core/assets/bundles/bundle_id_ID.properties @@ -832,6 +832,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Pusat Peluncuran Planet sector.coastline.name = Tepi Pantai sector.navalFortress.name = Benteng Laut +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = Lokasi yang optimal untuk bermain satu kali lagi. Sangat sedikit musuh. Sedikit sumber daya.\nKumpulkan timah dan tembaga sebanyak yang Anda bisa.\nMulai dari sini. sector.frozenForest.description = Di sini, dekat dengan gunung, spora sudah menyebar. Suhu dingin tidak dapat menahannya.\n\nMulailah hasilkan listrik. Bangun generator pembakar. Pelajari cara menggunakan mender. @@ -854,6 +855,7 @@ sector.navalFortress.description = Musuh telah mendirikan markas di sebuah pulau sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = Serangan Awal sector.aegis.name = Aegis diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties index 8a8fad77d1..8c5d5924d4 100644 --- a/core/assets/bundles/bundle_it.properties +++ b/core/assets/bundles/bundle_it.properties @@ -813,6 +813,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Terminale di Lancio Planetario sector.coastline.name = Coastline sector.navalFortress.name = Fortezza navale +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = La posizione ottimale per ricominciare. Bassa minaccia nemica. Poche risorse.\nRaccogli quanto più piombo e rame possibile.\nParti. sector.frozenForest.description = Anche qui, più vicino alle montagne, le spore si sono diffuse. Le temperature gelide non possono contenerle per sempre.\n\nInizia l'avventura nell'energia. Costruisci generatori a combustione. Impara a usare i riparatori. @@ -835,6 +836,7 @@ sector.navalFortress.description = Il nemico ha stabilito una base su un'isola r sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Nome diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index e29dee5980..d2bea33492 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -817,6 +817,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = 惑星間発射ターミナル sector.coastline.name = 海岸線 sector.navalFortress.name = 海軍要塞 +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = 奪回を始めるには最適な場所です。敵の脅威は小さいですが、資源が乏しいです。\nできるだけ多くの銅と鉛を集めましょう。\n始めましょう。 sector.frozenForest.description = ここでさえ、山に近づくほど胞子が広がっています。\n極寒の気候もでさえ胞子を永遠に封じ込めることはできませんでした。\n\n電気に挑みましょう。\n火力発電機を建設し、修復機の使い方を学びましょう。 @@ -839,6 +840,7 @@ sector.navalFortress.description = 敵は、自然要塞化した離島に基地 sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = オンセット sector.aegis.name = イージス sector.lake.name = レイク diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index 6b60c62078..597ac1745d 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -818,6 +818,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = 대행성 출격단지 sector.coastline.name = 해안선 sector.navalFortress.name = 해군 요새 +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = 이 장소는 다시 시작하기에 최적의 환경을 지녔습니다. 적은 위협적이지 않지만, 자원도 풍부하진 않습니다.\n가능한 한 많은 양의 구리와 납을 수집하십시오.\n이제 출격할 시간입니다! sector.frozenForest.description = 산과 가까운 이곳에도, 포자가 퍼졌습니다. 혹한의 추위조차 포자가 퍼지는 것을 억누를 수 없습니다.\n화력 발전기를 건설하고, 멘더를 사용하는 방법을 배워야 합니다. @@ -840,6 +841,7 @@ sector.navalFortress.description = 적은 자연적으로 요새화된 외딴 sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = 시작 sector.aegis.name = 보호 sector.lake.name = 호수 diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties index 8ed948b7b3..ca2428d3c5 100644 --- a/core/assets/bundles/bundle_lt.properties +++ b/core/assets/bundles/bundle_lt.properties @@ -807,6 +807,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on. sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders. @@ -829,6 +830,7 @@ sector.navalFortress.description = The enemy has established a base on a remote, sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index bb44df7b2a..65f5f27e9e 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -818,6 +818,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetery Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = De optimale locatie om nog een keer te beginnen. Lage vijandelijke dreiging. Enkele grondstoffen.\nVerzamel zoveel mogelijk lood en koper.\nGa door. sector.frozenForest.description = Zelfs hier, dichter bij de bergen, hebben de schimmels zich verspreid. De koude temperaturen kunnen ze niet eeuwig tegenhouden.\n\nBegin de onderneming in energie. Bouw verbrandingsgeneratoren. Leer herstellers te gebruiken. @@ -840,6 +841,7 @@ sector.navalFortress.description = De vijand heeft een basis gevestigd op een af sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset sector.aegis.name = Aegis diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties index eb4c305780..bdf839b00d 100644 --- a/core/assets/bundles/bundle_nl_BE.properties +++ b/core/assets/bundles/bundle_nl_BE.properties @@ -807,6 +807,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on. sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders. @@ -829,6 +830,7 @@ sector.navalFortress.description = The enemy has established a base on a remote, sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index 0e340c4c4b..97afe7c59f 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -815,6 +815,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetarny Terminal Startowy sector.coastline.name = Linia Brzegowa sector.navalFortress.name = Morska Forteca +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = Optymalna lokalizacja, aby rozpocząć jeszcze raz. Niskie zagrożenie. Niewiele zasobów.\nZbierz możliwie jak najwięcej miedzi i ołowiu.\nPrzejdź do następnej strefy jak najszybciej. sector.frozenForest.description = Nawet tutaj, bliżej gór, zarodniki się rozprzestrzeniały. Niskie temperatury nie mogą ich zatrzymać na zawsze.\n\nZacznij od produkcji prądu. Buduj generatory spalinowe. Naucz się korzystać z naprawiaczy. @@ -837,6 +838,7 @@ sector.navalFortress.description = Wróg założył bazę na odległej, naturaln sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = Początek sector.aegis.name = Egida diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index df116db9f9..de8848bf34 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -823,6 +823,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Terminal de Lançamento Planetário. sector.coastline.name = Litoral sector.navalFortress.name = Fortaleza Naval +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = Um lugar bom para recomeçar. Baixa ameaça inimiga. Poucos recursos.\nConsiga o máximo possível de chumbo e cobre.\nContinue. sector.frozenForest.description = Mesmo aqui, perto das montanhas, os esporos se espalharam. As temperaturas baixas não conseguirão contê-los para sempre.\n\nComeçe a aventura com energia. Construa geradores a combustão. Aprenda a usar reparadores. @@ -845,6 +846,7 @@ sector.navalFortress.description = The enemy has established a base on a remote, sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = O Começo sector.aegis.name = Aegis diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties index caa61863d8..e7461ac473 100644 --- a/core/assets/bundles/bundle_pt_PT.properties +++ b/core/assets/bundles/bundle_pt_PT.properties @@ -807,6 +807,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on. sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders. @@ -829,6 +830,7 @@ sector.navalFortress.description = The enemy has established a base on a remote, sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_ro.properties b/core/assets/bundles/bundle_ro.properties index 3de1da874d..ef064ebe42 100644 --- a/core/assets/bundles/bundle_ro.properties +++ b/core/assets/bundles/bundle_ro.properties @@ -817,6 +817,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Terminalul de Lansare Planetară sector.coastline.name = Zona de Coastă sector.navalFortress.name = Fortăreața Navală +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = Locația optimă pt a începe încă odată. Risc de inamici scăzut. Puține resurse.\nAdună cât de mult plumb și cupru se poate.\nMergi mai departe. sector.frozenForest.description = Chiar și aici, aproape de munți, sporii s-au împrăștiat. Temperaturile reci nu-i pot reține la infinit.\n\nÎncepe călătoria către electricitate. Construiește generatoare de combustie. Învață să folosești reparatoare. @@ -839,6 +840,7 @@ sector.navalFortress.description = The enemy has established a base on a remote, sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index f51a8b535b..3825b34c4b 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -818,6 +818,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Планетарный пусковой терминал sector.coastline.name = Береговая линия sector.navalFortress.name = Прибрежная крепость +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = Оптимальная локация для повторных игр. Низкая вражеская угроза. Немного ресурсов.\nСоберите как можно больше свинца и меди.\nДвигайтесь дальше. sector.frozenForest.description = Даже здесь, ближе к горам, споры распространились. Холодные температуры не могут сдерживать их вечно.\n\nНачните вкладываться в энергию. Постройте генераторы внутреннего сгорания. Научитесь пользоваться регенератором. @@ -840,6 +841,7 @@ sector.navalFortress.description = Враг возвел базу на удал sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = Начало sector.aegis.name = Защита diff --git a/core/assets/bundles/bundle_sr.properties b/core/assets/bundles/bundle_sr.properties index 2b7960099f..bbf7f2dfbb 100644 --- a/core/assets/bundles/bundle_sr.properties +++ b/core/assets/bundles/bundle_sr.properties @@ -818,6 +818,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetarno Lansirni Terminal sector.coastline.name = Obala sector.navalFortress.name = Pomorska Tvrđava +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = Savršena lokacija za ponovni početak. Niska neprijateljska pretnja, ali i mala količina resursa.\nSakupite sav bakar i svo olovo koje možete. Nastavite dalje. sector.frozenForest.description = Čak i ovde, u blizini planina, spore su se proširile… ledene temperature ih neće večno zadržati.\n\nZapočnite upotrebu elektriciteta. Graditei sagorevne generatore. Naučite primenu popravljača. @@ -840,6 +841,7 @@ sector.navalFortress.description = Neprijatelj je sagradio bazu na dalekom, prir sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = Žačetak sector.aegis.name = Okrilje diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties index 8ea4b2f6ca..ea0653b951 100644 --- a/core/assets/bundles/bundle_sv.properties +++ b/core/assets/bundles/bundle_sv.properties @@ -807,6 +807,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on. sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders. @@ -829,6 +830,7 @@ sector.navalFortress.description = The enemy has established a base on a remote, sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index 3c65a30551..bb1eeaa20b 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -818,6 +818,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = ท่าปล่อยจรวดอวกาศยาน sector.coastline.name = แนวชายฝั่ง sector.navalFortress.name = ปราการแห่งวารี +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = จุดที่ดีที่สุดในการเริ่มต้นอีกครั้งนึง ศัตรูน้อย ทรัพยากรน้อย\nเก็บ[accent]ตะกั่ว[]และ[accent]ทองแดง[]ให้ได้มากที่สุด\nแล้วลุยต่อ sector.frozenForest.description = แม้แต่ที่นี่ ณ ที่ที่อยู่ใกล้ภูเขา [accent]สปอร์[]ก็ยังแพร่มาถึงที่นี่ อากาศอันแสนเย็นเยือกไม่สามารถหยุดยั้งพวกมันได้ตลอดไป\n\nเริ่มต้นการใช้ไฟฟ้า สร้างเครื่องกำเนิดไฟฟ้าเผาไหม้ เรียนรู้ที่จะใช้เครื่องซ่อมแซม @@ -840,6 +841,7 @@ sector.navalFortress.description = ศัตรูได้ตั้งฐาน sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = การเริ่มต้น sector.aegis.name = เกราะกำบัง diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index 4331850b3e..d357162148 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -807,6 +807,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on. sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders. @@ -829,6 +830,7 @@ sector.navalFortress.description = The enemy has established a base on a remote, sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index f7b24bb979..b05796d9ad 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -817,6 +817,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Gezegenler Arası Terminal sector.coastline.name = Kıyı Şeridi sector.navalFortress.name = Deniz Kalesi +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = Yeniden başlamak için ideal bölge. Düşük düşman tehlikesi ve az miktarda kaynak mevcut. Mümkün olduğunca çok bakır ve kurşun topla.\nİlerle. sector.frozenForest.description = Burada, dağlara yakın bölgelerde bile sporlar etrafa yayıldı. Dondurucu soğuk onları sonsuza dek durduramaz.\n\nEnerji kullanmaya başla. Termik jeneratörler inşa et. Tamircileri kullanmayı öğren. @@ -839,6 +840,7 @@ sector.navalFortress.description = Düşman bu uzak adaya doğal olarak korunan sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = Yeni Başlangıç sector.aegis.name = Siper sector.lake.name = Göletçik diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index 744fbafa2c..c850fda204 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -826,6 +826,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Термінал планетарного запуску sector.coastline.name = Узбережжя sector.navalFortress.name = Морська фортеця +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = Оптимальне місце для повторних ігор. Низька ворожа загроза. Мало ресурсів.\nЗберіть якомога більше свинцю та міді.\nНе затримуйтесь і йдіть далі. sector.frozenForest.description = Навіть тут, ближче до гір, уже поширилися спори. Холодна температура не змогла стримати їх назавжди.\n\nЗважтесь створити енергію. Побудуйте генератори внутрішнього згорання. Навчіться користуватися регенераторами. @@ -848,6 +849,7 @@ sector.navalFortress.description = Ворог створив базу на ві sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = Перший наступ sector.aegis.name = Егіда diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties index 978cdc7441..a014e4058b 100644 --- a/core/assets/bundles/bundle_vi.properties +++ b/core/assets/bundles/bundle_vi.properties @@ -832,6 +832,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = Vị trí tối ưu để bắt đầu một lần nữa. Mối đe dọa của kẻ địch thấp. Ít tài nguyên.\nThu thập càng nhiều đồng và chì càng tốt.\nTiến lên. sector.frozenForest.description = Dù ở đây, gần núi cao, các bào tử vẫn bắt đầu phát tán. Nhiệt độ lạnh giá không thể giữ chúng lại mãi.\n\nBắt đầu tạo năng lượng. Hãy xây dựng máy phát điện đốt. Học cách sử dụng máy sửa chữa. @@ -854,6 +855,7 @@ sector.navalFortress.description = Kẻ địch đã thiết lập một căn c sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset sector.aegis.name = Aegis diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index 9b9658483d..efdad2824e 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -827,6 +827,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = 行星发射终端 sector.coastline.name = 边际海湾 sector.navalFortress.name = 海军要塞 +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = 踏上旅程的最佳位置。 这里的敌人威胁很小,但资源也少。\n\n尽你所能收集铅和铜,出发吧! sector.frozenForest.description = 一个靠近山脉的地方。 哪怕是在这里,也有了孢子扩散的痕迹。\n连极寒也无法长久地约束它们。\n\n开始运用电力,建造火力发电机并学会使用修理器。 @@ -849,6 +850,7 @@ sector.navalFortress.description = 敌人在一个有天然防御屏障的偏远 sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = 始发地区 sector.aegis.name = 庇护前哨 diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index b1d946e908..6f034a957f 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -823,6 +823,7 @@ sector.infestedCanyons.name = Infested Canyons sector.planetaryTerminal.name = 星際發射站 sector.coastline.name = 海岸 sector.navalFortress.name = 海上要塞 +sector.polarAerodrome.name = Polar Aerodrome sector.groundZero.description = 再次開始的最佳位置。敵人威脅程度低。資源少。\n盡可能地採集鉛與銅。\n繼續前進。 sector.frozenForest.description = 即使是在如此靠近山脈的地方,孢子也已經擴散了。低溫無法永遠遏止它們。\n\n開始探索電力。建造火力發電機。學習如何修理方塊。 @@ -845,6 +846,7 @@ sector.navalFortress.description = The enemy has established a base on a remote, sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon +sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = 著陸點 sector.aegis.name = 神盾 From f6ee9b7ffa74d1e8d9e59b67336bb2da19814155 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 15 Sep 2024 11:51:39 -0400 Subject: [PATCH 173/437] Draw selected building for payload enter command --- core/src/mindustry/input/InputHandler.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/core/src/mindustry/input/InputHandler.java b/core/src/mindustry/input/InputHandler.java index 6853502541..8375a433eb 100644 --- a/core/src/mindustry/input/InputHandler.java +++ b/core/src/mindustry/input/InputHandler.java @@ -1055,6 +1055,13 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ if(ai.attackTarget == null){ Drawf.square(lineDest.getX(), lineDest.getY(), 3.5f); + + if(ai.currentCommand() == UnitCommand.enterPayloadCommand){ + var build = world.buildWorld(lineDest.getX(), lineDest.getY()); + if(build != null && build.block.acceptsPayloads && build.team == unit.team){ + Drawf.selected(build, Pal.accent); + } + } } } From 20a7f3f3001dd88deb75d1fbdc5c60c0470de977 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 15 Sep 2024 12:24:52 -0400 Subject: [PATCH 174/437] Atolls sector map submission / Windswept Islands rework submission --- core/assets/bundles/bundle.properties | 2 ++ core/assets/maps/atolls.msav | Bin 0 -> 43056 bytes core/assets/maps/windsweptIslands.msav | Bin 13486 -> 19186 bytes core/src/mindustry/ai/types/CommandAI.java | 2 +- core/src/mindustry/content/SectorPresets.java | 6 +++++- .../mindustry/content/SerpuloTechTree.java | 10 ++++++++-- core/src/mindustry/input/InputHandler.java | 2 +- core/src/mindustry/world/Block.java | 2 +- .../world/blocks/payloads/BlockProducer.java | 4 ++-- .../world/blocks/payloads/PayloadBlock.java | 2 +- .../blocks/payloads/PayloadConveyor.java | 2 +- .../world/blocks/payloads/PayloadSource.java | 2 +- 12 files changed, 23 insertions(+), 11 deletions(-) create mode 100644 core/assets/maps/atolls.msav diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index b02f1d641e..bcd0ca3ce3 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -834,6 +834,7 @@ sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on. sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders. @@ -856,6 +857,7 @@ sector.navalFortress.description = The enemy has established a base on a remote, #do not translate sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 diff --git a/core/assets/maps/atolls.msav b/core/assets/maps/atolls.msav new file mode 100644 index 0000000000000000000000000000000000000000..6f608eb951d08e8f4e0eb5e6b49aeb9aa0ee3a39 GIT binary patch literal 43056 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 XOFuCl+kdIoJkuh4|9}2nqG<*I+G+`N literal 0 HcmV?d00001 diff --git a/core/assets/maps/windsweptIslands.msav b/core/assets/maps/windsweptIslands.msav index 690a92471679dfe2ce578d23af5fb08dace93a09..32daa4dbffc77df0765526fb48dd3005213cf64e 100644 GIT binary patch literal 19186 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 literal 13486 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 diff --git a/core/src/mindustry/ai/types/CommandAI.java b/core/src/mindustry/ai/types/CommandAI.java index b9a77a544a..b72cba2d68 100644 --- a/core/src/mindustry/ai/types/CommandAI.java +++ b/core/src/mindustry/ai/types/CommandAI.java @@ -326,7 +326,7 @@ public class CommandAI extends AIController{ void finishPath(){ //the enter payload command never finishes until they are actually accepted - if(command == UnitCommand.enterPayloadCommand && commandQueue.size == 0 && targetPos != null && world.buildWorld(targetPos.x, targetPos.y) != null && world.buildWorld(targetPos.x, targetPos.y).block.acceptsPayloads){ + if(command == UnitCommand.enterPayloadCommand && commandQueue.size == 0 && targetPos != null && world.buildWorld(targetPos.x, targetPos.y) != null && world.buildWorld(targetPos.x, targetPos.y).block.acceptsUnitPayloads){ return; } diff --git a/core/src/mindustry/content/SectorPresets.java b/core/src/mindustry/content/SectorPresets.java index 75c991be2a..d739ed46e2 100644 --- a/core/src/mindustry/content/SectorPresets.java +++ b/core/src/mindustry/content/SectorPresets.java @@ -8,7 +8,7 @@ public class SectorPresets{ public static SectorPreset groundZero, craters, biomassFacility, taintedWoods, frozenForest, ruinousShores, facility32m, windsweptIslands, stainedMountains, tarFields, - fungalPass, infestedCanyons, extractionOutpost, polarAerodrome, saltFlats, overgrowth, + fungalPass, infestedCanyons, atolls, extractionOutpost, polarAerodrome, saltFlats, overgrowth, impact0078, desolateRift, nuclearComplex, planetaryTerminal, coastline, navalFortress, @@ -97,6 +97,10 @@ public class SectorPresets{ difficulty = 4; }}; + atolls = new SectorPreset("atolls", serpulo, 1){{ + difficulty = 7; + }}; + overgrowth = new SectorPreset("overgrowth", serpulo, 134){{ difficulty = 5; }}; diff --git a/core/src/mindustry/content/SerpuloTechTree.java b/core/src/mindustry/content/SerpuloTechTree.java index c12fbde589..3a5563e4e0 100644 --- a/core/src/mindustry/content/SerpuloTechTree.java +++ b/core/src/mindustry/content/SerpuloTechTree.java @@ -427,8 +427,8 @@ public class SerpuloTechTree{ }); node(additiveReconstructor, Seq.with(new SectorComplete(biomassFacility)), () -> { - node(multiplicativeReconstructor, () -> { - node(exponentialReconstructor, Seq.with(new SectorComplete(overgrowth)), () -> { + node(multiplicativeReconstructor, Seq.with(new SectorComplete(overgrowth)), () -> { + node(exponentialReconstructor, () -> { node(tetrativeReconstructor, () -> { }); @@ -565,7 +565,13 @@ public class SerpuloTechTree{ new Research(UnitTypes.mace), new Research(UnitTypes.flare) ), () -> { + node(atolls, Seq.with( + new SectorComplete(windsweptIslands), + new Research(multiplicativeReconstructor), + new Research(mega) + ), () -> { + }); }); }); diff --git a/core/src/mindustry/input/InputHandler.java b/core/src/mindustry/input/InputHandler.java index 8375a433eb..fcf7aedfb9 100644 --- a/core/src/mindustry/input/InputHandler.java +++ b/core/src/mindustry/input/InputHandler.java @@ -1058,7 +1058,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ if(ai.currentCommand() == UnitCommand.enterPayloadCommand){ var build = world.buildWorld(lineDest.getX(), lineDest.getY()); - if(build != null && build.block.acceptsPayloads && build.team == unit.team){ + if(build != null && build.block.acceptsUnitPayloads && build.team == unit.team){ Drawf.selected(build, Pal.accent); } } diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index c324ae4978..3bd6c3977c 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -58,7 +58,7 @@ public class Block extends UnlockableContent implements Senseable{ /** If true, this block can output payloads; affects blending. */ public boolean outputsPayload = false; /** If true, this block can input payloads; affects unit payload enter behavior. */ - public boolean acceptsPayloads = false; + public boolean acceptsUnitPayloads = false; /** If true, payloads will attempt to move into this block. */ public boolean acceptsPayload = false; /** Visual flag use for blending of certain transportation blocks. */ diff --git a/core/src/mindustry/world/blocks/payloads/BlockProducer.java b/core/src/mindustry/world/blocks/payloads/BlockProducer.java index e5eccb570f..2bc66e0e1f 100644 --- a/core/src/mindustry/world/blocks/payloads/BlockProducer.java +++ b/core/src/mindustry/world/blocks/payloads/BlockProducer.java @@ -30,7 +30,7 @@ public abstract class BlockProducer extends PayloadBlock{ hasItems = true; solid = true; hasPower = true; - acceptsPayloads = false; + acceptsUnitPayloads = false; rotate = true; regionRotated1 = 1; @@ -69,7 +69,7 @@ public abstract class BlockProducer extends PayloadBlock{ addBar("progress", (BlockProducerBuild entity) -> new Bar("bar.progress", Pal.ammo, () -> entity.recipe() == null ? 0f : (entity.progress / entity.recipe().buildCost))); } - + public abstract class BlockProducerBuild extends PayloadBlockBuild{ public float progress, time, heat; diff --git a/core/src/mindustry/world/blocks/payloads/PayloadBlock.java b/core/src/mindustry/world/blocks/payloads/PayloadBlock.java index ab7dc95320..e6a913390b 100644 --- a/core/src/mindustry/world/blocks/payloads/PayloadBlock.java +++ b/core/src/mindustry/world/blocks/payloads/PayloadBlock.java @@ -25,7 +25,7 @@ public class PayloadBlock extends Block{ update = true; sync = true; group = BlockGroup.payloads; - acceptsPayloads = true; + acceptsUnitPayloads = true; envEnabled |= Env.space | Env.underwater; } diff --git a/core/src/mindustry/world/blocks/payloads/PayloadConveyor.java b/core/src/mindustry/world/blocks/payloads/PayloadConveyor.java index ec5523dd1c..650846987b 100644 --- a/core/src/mindustry/world/blocks/payloads/PayloadConveyor.java +++ b/core/src/mindustry/world/blocks/payloads/PayloadConveyor.java @@ -31,7 +31,7 @@ public class PayloadConveyor extends Block{ update = true; outputsPayload = true; noUpdateDisabled = true; - acceptsPayloads = true; + acceptsUnitPayloads = true; priority = TargetPriority.transport; envEnabled |= Env.space | Env.underwater; sync = true; diff --git a/core/src/mindustry/world/blocks/payloads/PayloadSource.java b/core/src/mindustry/world/blocks/payloads/PayloadSource.java index 1354b9edc1..b20c9b0a13 100644 --- a/core/src/mindustry/world/blocks/payloads/PayloadSource.java +++ b/core/src/mindustry/world/blocks/payloads/PayloadSource.java @@ -37,7 +37,7 @@ public class PayloadSource extends PayloadBlock{ noUpdateDisabled = true; clearOnDoubleTap = true; regionRotated1 = 1; - acceptsPayloads = false; + acceptsUnitPayloads = false; commandable = true; config(Block.class, (PayloadSourceBuild build, Block block) -> { From 2f8729752f27e7c0e80f2dd61d1dd4cd8f37ff04 Mon Sep 17 00:00:00 2001 From: Github Actions Date: Sun, 15 Sep 2024 16:25:48 +0000 Subject: [PATCH 175/437] Automatic bundle update --- core/assets/bundles/bundle_be.properties | 2 ++ core/assets/bundles/bundle_bg.properties | 2 ++ core/assets/bundles/bundle_ca.properties | 2 ++ core/assets/bundles/bundle_cs.properties | 2 ++ core/assets/bundles/bundle_da.properties | 2 ++ core/assets/bundles/bundle_de.properties | 2 ++ core/assets/bundles/bundle_es.properties | 2 ++ core/assets/bundles/bundle_et.properties | 2 ++ core/assets/bundles/bundle_eu.properties | 2 ++ core/assets/bundles/bundle_fi.properties | 2 ++ core/assets/bundles/bundle_fil.properties | 2 ++ core/assets/bundles/bundle_fr.properties | 2 ++ core/assets/bundles/bundle_hu.properties | 2 ++ core/assets/bundles/bundle_id_ID.properties | 2 ++ core/assets/bundles/bundle_it.properties | 2 ++ core/assets/bundles/bundle_ja.properties | 2 ++ core/assets/bundles/bundle_ko.properties | 2 ++ core/assets/bundles/bundle_lt.properties | 2 ++ core/assets/bundles/bundle_nl.properties | 2 ++ core/assets/bundles/bundle_nl_BE.properties | 2 ++ core/assets/bundles/bundle_pl.properties | 2 ++ core/assets/bundles/bundle_pt_BR.properties | 2 ++ core/assets/bundles/bundle_pt_PT.properties | 2 ++ core/assets/bundles/bundle_ro.properties | 2 ++ core/assets/bundles/bundle_ru.properties | 2 ++ core/assets/bundles/bundle_sr.properties | 2 ++ core/assets/bundles/bundle_sv.properties | 2 ++ core/assets/bundles/bundle_th.properties | 2 ++ core/assets/bundles/bundle_tk.properties | 2 ++ core/assets/bundles/bundle_tr.properties | 2 ++ core/assets/bundles/bundle_uk_UA.properties | 2 ++ core/assets/bundles/bundle_vi.properties | 2 ++ core/assets/bundles/bundle_zh_CN.properties | 2 ++ core/assets/bundles/bundle_zh_TW.properties | 2 ++ 34 files changed, 68 insertions(+) diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties index 9e27ad9b3a..a452f54d78 100644 --- a/core/assets/bundles/bundle_be.properties +++ b/core/assets/bundles/bundle_be.properties @@ -807,6 +807,7 @@ sector.planetaryTerminal.name = Планетарны Пускавы Тэрмін sector.coastline.name = Берагавая Лінія sector.navalFortress.name = Марская Крэпасць sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = Аптымальнае месца каб пачаць. Нізкая варожая пагроза. Мала рэсурсаў.\nВазімце як мага болей свінца і медзі.\nІ рухайцеся далей. sector.frozenForest.description = Нават тут, бліжэй да гор, распаўсюдзіліся споры. Ледзяныя тэмпературы не могуць утрымліваць іх заўсёды.\n\nПачніце выкарыстоўваць энергію. Пабудуйце генератары на цвёрдым паліве. Даведайцеся як выкарыстоуваць рэгенератары. @@ -828,6 +829,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = Пачатак diff --git a/core/assets/bundles/bundle_bg.properties b/core/assets/bundles/bundle_bg.properties index 515342b472..10dda802d7 100644 --- a/core/assets/bundles/bundle_bg.properties +++ b/core/assets/bundles/bundle_bg.properties @@ -816,6 +816,7 @@ sector.planetaryTerminal.name = Терминал за космически ми sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = Перфектното място за започване отначало. Ниска заплаха. Ниски ресурси.\nСъбери колкото можеш мед и олово.\nПродължи напред. sector.frozenForest.description = Дори тук, близо до планините, спорите са се разпространили. Мразовитите температури не могат да ги задържат вечно.\n\nОвладейте електричеството. Постройте горивни генератори. Научете се да ползвате възстрановители. @@ -837,6 +838,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset diff --git a/core/assets/bundles/bundle_ca.properties b/core/assets/bundles/bundle_ca.properties index f21106cb63..fdbbfbf357 100644 --- a/core/assets/bundles/bundle_ca.properties +++ b/core/assets/bundles/bundle_ca.properties @@ -820,6 +820,7 @@ sector.planetaryTerminal.name = Terminal de llançament interplanetari sector.coastline.name = Línia de costa sector.navalFortress.name = Fortalesa naval sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = El lloc adequat per a començar de nou. Amenaça enemiga baixa. Pocs recursos.\nRecolliu tot el coure i plom que pugueu.\nDesprés, continueu en un altre sector. sector.frozenForest.description = Les espores han arribat fins aquí, prop de les muntanyes. Les temperatures baixes no les podran contenir per sempre.\n\nComenceu el camí del poder. Construïu generadors a combustió. Apreneu a fer servir els reparadors. @@ -841,6 +842,7 @@ sector.coastline.description = S’han detectat restes de tecnologia naval a pro sector.navalFortress.description = L’enemic ha establert una base en una illa distant amb defenses geològiques naturals. Destruïu el post avançat i aconseguiu i investigueu les seves tecnologies navals avançades. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index 625aae16d5..3dd0c33bfa 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -818,6 +818,7 @@ sector.planetaryTerminal.name = Planetární odpalovací terminál sector.coastline.name = Pobřežní čára sector.navalFortress.name = Námořní pevnost sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = Optimální místo, kde znovu začít. Nízký výskyt nepřátel. Několik málo surovin.\nPosbírej co nejvíce olova a mědi.\nBěž dál. sector.frozenForest.description = Dokonce až sem, blízko hor, se dokázaly spóry rozrůst. Mráz je však nemůže zadržet navěky.\n\nPusť se do práce za pomocí energie. Stav spalovací generátory. Nauč se, jak používat opravovací věže. @@ -839,6 +840,7 @@ sector.coastline.description = V této lokaci byly objeveny pozůstatky techniky sector.navalFortress.description = Nepřítel si vybudoval základnu na odlehlém, přírodou opevněném ostrově. Zničte tuto základnu. Získejte jejich pokročilou technologii námořních plavidel a vyzkoumejte ji. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = Nástup diff --git a/core/assets/bundles/bundle_da.properties b/core/assets/bundles/bundle_da.properties index ad2453c441..68eed2ffb9 100644 --- a/core/assets/bundles/bundle_da.properties +++ b/core/assets/bundles/bundle_da.properties @@ -808,6 +808,7 @@ sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on. sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders. @@ -829,6 +830,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index 3d7e483272..7c9f870a8e 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -828,6 +828,7 @@ sector.planetaryTerminal.name = Planetares Launchterminal sector.coastline.name = Küstenlinie sector.navalFortress.name = Wasserfestung sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = Der optimale Ort, um anzufangen. Schwache Gegner und weniger Ressourcen.\nSammele so viel Kupfer und Blei wie möglich.\nGeh weiter. sector.frozenForest.description = Auch hier, näher an den Bergen, sind die Sporen. Sogar die niedrigen Temperaturen können sie nicht zurückhalten.\n\nLerne, Strom zu verwenden. Baue Verbrennungsgeneratoren und Reparateure. @@ -849,6 +850,7 @@ sector.coastline.description = Überreste alter Schiffstechnologien wurden hier sector.navalFortress.description = Der Gegner hat auf einer abgelegenen, von Natur aus sicheren Insel eine Basis aufgebaut. Zerstöre diesen Außenposten. Finde deren fortgeschrittene Schiffstechnologien und erforsche diese weiter. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index 127af4fbec..80dcb56f99 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -824,6 +824,7 @@ sector.planetaryTerminal.name = Terminal de Lanzamiento Interplanetario sector.coastline.name = Ruta Costera sector.navalFortress.name = Fortaleza Naval sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = La ubicación adecuada para empezar una vez más. Baja amenaza enemiga. Pocos recursos.\nReúne la mayor cantidad de plomo y cobre posible y sigue adelante. sector.frozenForest.description = Incluso aquí, cerca de las montañas, se han extendido las esporas. Las gélidas temperaturas no las contendrán para siempre.\nDescubre la energía eléctrica. Construye generadores de combustión. Aprende a usar reparadores. @@ -845,6 +846,7 @@ sector.coastline.description = Se han detectado restos de tecnología de unidade sector.navalFortress.description = El enemigo ha establecido una base en una remota isla naturalmente fortificada. Destruye este puesto de avanzada. Hazte con su tecnología naval avanzada, e investígala. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties index b73390a2bc..e8aa85c3b0 100644 --- a/core/assets/bundles/bundle_et.properties +++ b/core/assets/bundles/bundle_et.properties @@ -808,6 +808,7 @@ sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on. sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders. @@ -829,6 +830,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties index 739831b8ad..40fea745be 100644 --- a/core/assets/bundles/bundle_eu.properties +++ b/core/assets/bundles/bundle_eu.properties @@ -810,6 +810,7 @@ sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on. sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders. @@ -831,6 +832,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties index 6ac8d62fd9..69912720cc 100644 --- a/core/assets/bundles/bundle_fi.properties +++ b/core/assets/bundles/bundle_fi.properties @@ -808,6 +808,7 @@ sector.planetaryTerminal.name = Planetaarinen laukaisuterminaali sector.coastline.name = Rantaviiva sector.navalFortress.name = Laivastolinnoitus sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = Optimaalinen sijainti aloittaa jälleen kerran. Matala vihollisuhka. Vähän resursseja.\nKerää niin paljon kuparia ja lyijyä, kuin mahdollista.\nJatka matkaa. sector.frozenForest.description = Itiöt ovat levittäytyneet jopa tänne, lähemmäs vuoria. Jäätävät lämpötilat eivät voi torjua niitä ikuisesti.\n\nAloita seikkailusi virtaan. Rakenna polttogeneraattoreita. Opi käyttämään korjaajia. @@ -829,6 +830,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = Alku diff --git a/core/assets/bundles/bundle_fil.properties b/core/assets/bundles/bundle_fil.properties index 16e847ae45..5b07d13b04 100644 --- a/core/assets/bundles/bundle_fil.properties +++ b/core/assets/bundles/bundle_fil.properties @@ -808,6 +808,7 @@ sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = Ang pinakamainam na lokasyon upang magsimulang muli. Mababang banta ng kaaway. Kaunting mapagkukunan.\nMagtipon ng mas maraming tingga at tanso hangga't maaari.\nItuloy. sector.frozenForest.description = Kahit dito, mas malapit sa mga bundok, ang mga spore ay kumalat. Ang napakalamig na temperatura ay hindi maaaring maglaman ng mga ito magpakailanman.\n\nSimulan ang pakikipagsapalaran sa kapangyarihan. Bumuo ng mga generator ng pagkasunog. Matutong gumamit ng mga mender. @@ -829,6 +830,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index 3374a8447e..13e00b1dcc 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -831,6 +831,7 @@ sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = Un endroit optimal pour commencer. Avec une menace ennemie faible et peu de ressources disponibles.\nRassemblez autant de cuivre et de plomb que possible pour continuer votre exploration. sector.frozenForest.description = Même ici, près des montagnes, les spores se sont propagées. Les températures glaciales ne pourront pas les contenir indéfiniment.\n\nCommencez votre production d'énergie en construisant des générateurs à combustion et apprenez à utiliser les bâtiments de soin. @@ -852,6 +853,7 @@ sector.coastline.description = Des restes d’unités navales ont été détect sector.navalFortress.description = L’ennemi a établi une base sur une île isolée, avec des défenses naturelles. Détruisez cet avant-poste. Acquérez leur technologie navale avancée. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index 3d26ba4bc5..31e85a6a00 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -833,6 +833,7 @@ sector.planetaryTerminal.name = Bolygó körüli kilövőállás sector.coastline.name = Partvonal sector.navalFortress.name = Haditengerészeti erőd sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = Az ideális helyszín, hogy ismét belekezdjünk. Alacsony ellenséges fenyegetés. Kevés nyersanyag.\nGyűjts annyi rezet és ólmot, amennyit csak tudsz.\nHaladj tovább. sector.frozenForest.description = Még itt, a hegyekhez közel is elterjedtek a spórák. A fagypont alatti hőmérséklet nem tudja örökké fogva tartani őket.\n\nFedezd fel az elektromosság erejét! Építs égetőerőműveket! Tanuld meg a foltozók használatát! @@ -854,6 +855,7 @@ sector.coastline.description = Ezen a helyen egy haditengerészeti egység techn sector.navalFortress.description = Az ellenség bázist létesített egy távoli, természetes erődítményes szigeten. Pusztítsd el ezt az előőrsöt. Szerezd meg a fejlett hadihajó-technológiájukat, és fejleszd ki te is. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 diff --git a/core/assets/bundles/bundle_id_ID.properties b/core/assets/bundles/bundle_id_ID.properties index 6163d6ee8b..49127c6b5a 100644 --- a/core/assets/bundles/bundle_id_ID.properties +++ b/core/assets/bundles/bundle_id_ID.properties @@ -833,6 +833,7 @@ sector.planetaryTerminal.name = Pusat Peluncuran Planet sector.coastline.name = Tepi Pantai sector.navalFortress.name = Benteng Laut sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = Lokasi yang optimal untuk bermain satu kali lagi. Sangat sedikit musuh. Sedikit sumber daya.\nKumpulkan timah dan tembaga sebanyak yang Anda bisa.\nMulai dari sini. sector.frozenForest.description = Di sini, dekat dengan gunung, spora sudah menyebar. Suhu dingin tidak dapat menahannya.\n\nMulailah hasilkan listrik. Bangun generator pembakar. Pelajari cara menggunakan mender. @@ -854,6 +855,7 @@ sector.coastline.description = Sisa-sisa teknologi Unit Laut telah terdeteksi di sector.navalFortress.description = Musuh telah mendirikan markas di sebuah pulau terpencil, dibentengi secara alami. Hancurkan pangkalan ini. Dapatkan teknologi Unit Laut mereka yang canggih, dan telitilah sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties index 8c5d5924d4..caaee1e680 100644 --- a/core/assets/bundles/bundle_it.properties +++ b/core/assets/bundles/bundle_it.properties @@ -814,6 +814,7 @@ sector.planetaryTerminal.name = Terminale di Lancio Planetario sector.coastline.name = Coastline sector.navalFortress.name = Fortezza navale sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = La posizione ottimale per ricominciare. Bassa minaccia nemica. Poche risorse.\nRaccogli quanto più piombo e rame possibile.\nParti. sector.frozenForest.description = Anche qui, più vicino alle montagne, le spore si sono diffuse. Le temperature gelide non possono contenerle per sempre.\n\nInizia l'avventura nell'energia. Costruisci generatori a combustione. Impara a usare i riparatori. @@ -835,6 +836,7 @@ sector.coastline.description = In questo settore sono stati rilevati resti di te sector.navalFortress.description = Il nemico ha stabilito una base su un'isola remota e fortificata naturalmente. Distruggi questo avamposto. Acquisisci la loro tecnologia navale avanzata e fate ricerche. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index d2bea33492..37a9e744a0 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -818,6 +818,7 @@ sector.planetaryTerminal.name = 惑星間発射ターミナル sector.coastline.name = 海岸線 sector.navalFortress.name = 海軍要塞 sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = 奪回を始めるには最適な場所です。敵の脅威は小さいですが、資源が乏しいです。\nできるだけ多くの銅と鉛を集めましょう。\n始めましょう。 sector.frozenForest.description = ここでさえ、山に近づくほど胞子が広がっています。\n極寒の気候もでさえ胞子を永遠に封じ込めることはできませんでした。\n\n電気に挑みましょう。\n火力発電機を建設し、修復機の使い方を学びましょう。 @@ -839,6 +840,7 @@ sector.coastline.description = ここで、海軍の技術の残骸が発見さ sector.navalFortress.description = 敵は、自然要塞化した離島に基地を設けています。この前哨基地を破壊しましょう。\n彼らの高度な艦艇技術を入手し、研究しましょう。 sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = オンセット diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index 597ac1745d..abad707411 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -819,6 +819,7 @@ sector.planetaryTerminal.name = 대행성 출격단지 sector.coastline.name = 해안선 sector.navalFortress.name = 해군 요새 sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = 이 장소는 다시 시작하기에 최적의 환경을 지녔습니다. 적은 위협적이지 않지만, 자원도 풍부하진 않습니다.\n가능한 한 많은 양의 구리와 납을 수집하십시오.\n이제 출격할 시간입니다! sector.frozenForest.description = 산과 가까운 이곳에도, 포자가 퍼졌습니다. 혹한의 추위조차 포자가 퍼지는 것을 억누를 수 없습니다.\n화력 발전기를 건설하고, 멘더를 사용하는 방법을 배워야 합니다. @@ -840,6 +841,7 @@ sector.coastline.description = 이 장소에서 해상 기체 기술의 잔재 sector.navalFortress.description = 적은 자연적으로 요새화된 외딴 섬에 기지를 세웠습니다. 이 전초기지를 파괴하여 적의 발전된 함선 건조 기술을 습득하고 연구하십시오. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = 시작 diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties index ca2428d3c5..9c793024f3 100644 --- a/core/assets/bundles/bundle_lt.properties +++ b/core/assets/bundles/bundle_lt.properties @@ -808,6 +808,7 @@ sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on. sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders. @@ -829,6 +830,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index 65f5f27e9e..1483dcab7e 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -819,6 +819,7 @@ sector.planetaryTerminal.name = Planetery Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = De optimale locatie om nog een keer te beginnen. Lage vijandelijke dreiging. Enkele grondstoffen.\nVerzamel zoveel mogelijk lood en koper.\nGa door. sector.frozenForest.description = Zelfs hier, dichter bij de bergen, hebben de schimmels zich verspreid. De koude temperaturen kunnen ze niet eeuwig tegenhouden.\n\nBegin de onderneming in energie. Bouw verbrandingsgeneratoren. Leer herstellers te gebruiken. @@ -840,6 +841,7 @@ sector.coastline.description = Op deze locatie zijn resten van marinetechnologie sector.navalFortress.description = De vijand heeft een basis gevestigd op een afgelegen, natuurlijk versterkt eiland. Vernietig deze voorpost. Verkrijg hun geavanceerde marinetechnologie en onderzoek die. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties index bdf839b00d..6da0ffaee2 100644 --- a/core/assets/bundles/bundle_nl_BE.properties +++ b/core/assets/bundles/bundle_nl_BE.properties @@ -808,6 +808,7 @@ sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on. sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders. @@ -829,6 +830,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index 97afe7c59f..b1b038f01e 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -816,6 +816,7 @@ sector.planetaryTerminal.name = Planetarny Terminal Startowy sector.coastline.name = Linia Brzegowa sector.navalFortress.name = Morska Forteca sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = Optymalna lokalizacja, aby rozpocząć jeszcze raz. Niskie zagrożenie. Niewiele zasobów.\nZbierz możliwie jak najwięcej miedzi i ołowiu.\nPrzejdź do następnej strefy jak najszybciej. sector.frozenForest.description = Nawet tutaj, bliżej gór, zarodniki się rozprzestrzeniały. Niskie temperatury nie mogą ich zatrzymać na zawsze.\n\nZacznij od produkcji prądu. Buduj generatory spalinowe. Naucz się korzystać z naprawiaczy. @@ -837,6 +838,7 @@ sector.coastline.description = W tej lokalizacji zostały znalezione resztki tec sector.navalFortress.description = Wróg założył bazę na odległej, naturalnie ufortyfikowanej wyspie. Zniszcz tę bazę. Zdobądź zaawansowaną technologię statków morskich i zbadaj ją. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index de8848bf34..0722f71bd9 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -824,6 +824,7 @@ sector.planetaryTerminal.name = Terminal de Lançamento Planetário. sector.coastline.name = Litoral sector.navalFortress.name = Fortaleza Naval sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = Um lugar bom para recomeçar. Baixa ameaça inimiga. Poucos recursos.\nConsiga o máximo possível de chumbo e cobre.\nContinue. sector.frozenForest.description = Mesmo aqui, perto das montanhas, os esporos se espalharam. As temperaturas baixas não conseguirão contê-los para sempre.\n\nComeçe a aventura com energia. Construa geradores a combustão. Aprenda a usar reparadores. @@ -845,6 +846,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties index e7461ac473..cf61f164ac 100644 --- a/core/assets/bundles/bundle_pt_PT.properties +++ b/core/assets/bundles/bundle_pt_PT.properties @@ -808,6 +808,7 @@ sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on. sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders. @@ -829,6 +830,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset diff --git a/core/assets/bundles/bundle_ro.properties b/core/assets/bundles/bundle_ro.properties index ef064ebe42..33c26b4fad 100644 --- a/core/assets/bundles/bundle_ro.properties +++ b/core/assets/bundles/bundle_ro.properties @@ -818,6 +818,7 @@ sector.planetaryTerminal.name = Terminalul de Lansare Planetară sector.coastline.name = Zona de Coastă sector.navalFortress.name = Fortăreața Navală sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = Locația optimă pt a începe încă odată. Risc de inamici scăzut. Puține resurse.\nAdună cât de mult plumb și cupru se poate.\nMergi mai departe. sector.frozenForest.description = Chiar și aici, aproape de munți, sporii s-au împrăștiat. Temperaturile reci nu-i pot reține la infinit.\n\nÎncepe călătoria către electricitate. Construiește generatoare de combustie. Învață să folosești reparatoare. @@ -839,6 +840,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index 3825b34c4b..507b639577 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -819,6 +819,7 @@ sector.planetaryTerminal.name = Планетарный пусковой терм sector.coastline.name = Береговая линия sector.navalFortress.name = Прибрежная крепость sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = Оптимальная локация для повторных игр. Низкая вражеская угроза. Немного ресурсов.\nСоберите как можно больше свинца и меди.\nДвигайтесь дальше. sector.frozenForest.description = Даже здесь, ближе к горам, споры распространились. Холодные температуры не могут сдерживать их вечно.\n\nНачните вкладываться в энергию. Постройте генераторы внутреннего сгорания. Научитесь пользоваться регенератором. @@ -840,6 +841,7 @@ sector.coastline.description = В этом месте были обнаруже sector.navalFortress.description = Враг возвел базу на удаленном острове с естественными укреплениями. Уничтожьте её. Овладейте их технологией по производству кораблей и изучите ее. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 diff --git a/core/assets/bundles/bundle_sr.properties b/core/assets/bundles/bundle_sr.properties index bbf7f2dfbb..46272c4c28 100644 --- a/core/assets/bundles/bundle_sr.properties +++ b/core/assets/bundles/bundle_sr.properties @@ -819,6 +819,7 @@ sector.planetaryTerminal.name = Planetarno Lansirni Terminal sector.coastline.name = Obala sector.navalFortress.name = Pomorska Tvrđava sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = Savršena lokacija za ponovni početak. Niska neprijateljska pretnja, ali i mala količina resursa.\nSakupite sav bakar i svo olovo koje možete. Nastavite dalje. sector.frozenForest.description = Čak i ovde, u blizini planina, spore su se proširile… ledene temperature ih neće večno zadržati.\n\nZapočnite upotrebu elektriciteta. Graditei sagorevne generatore. Naučite primenu popravljača. @@ -840,6 +841,7 @@ sector.coastline.description = Ostaci tehnologije pomorskih jedinica su detektov sector.navalFortress.description = Neprijatelj je sagradio bazu na dalekom, prirodno-formiranom ostrvu. Uništite ovu bazu. Preuzmite njihovu naprednu pomorsku tehnologiju, i izuči te je. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties index ea0653b951..cf2a4413b5 100644 --- a/core/assets/bundles/bundle_sv.properties +++ b/core/assets/bundles/bundle_sv.properties @@ -808,6 +808,7 @@ sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on. sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders. @@ -829,6 +830,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index bb1eeaa20b..2bec34f154 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -819,6 +819,7 @@ sector.planetaryTerminal.name = ท่าปล่อยจรวดอวกา sector.coastline.name = แนวชายฝั่ง sector.navalFortress.name = ปราการแห่งวารี sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = จุดที่ดีที่สุดในการเริ่มต้นอีกครั้งนึง ศัตรูน้อย ทรัพยากรน้อย\nเก็บ[accent]ตะกั่ว[]และ[accent]ทองแดง[]ให้ได้มากที่สุด\nแล้วลุยต่อ sector.frozenForest.description = แม้แต่ที่นี่ ณ ที่ที่อยู่ใกล้ภูเขา [accent]สปอร์[]ก็ยังแพร่มาถึงที่นี่ อากาศอันแสนเย็นเยือกไม่สามารถหยุดยั้งพวกมันได้ตลอดไป\n\nเริ่มต้นการใช้ไฟฟ้า สร้างเครื่องกำเนิดไฟฟ้าเผาไหม้ เรียนรู้ที่จะใช้เครื่องซ่อมแซม @@ -840,6 +841,7 @@ sector.coastline.description = ถัดมาจากที่ราบเก sector.navalFortress.description = ศัตรูได้ตั้งฐานทัพอยู๋บนเกาะห่างไกลที่มีกำแพงธรรมชาติปกป้องฐานเอาไว้ ทำลายฐานทัพ ยึดและวิจัยเทคโนโลยีเรือรบที่ล้ำหน้านั้นมา sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index d357162148..fbd8952313 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -808,6 +808,7 @@ sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on. sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders. @@ -829,6 +830,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = The Onset diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index b05796d9ad..c5fddc741c 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -818,6 +818,7 @@ sector.planetaryTerminal.name = Gezegenler Arası Terminal sector.coastline.name = Kıyı Şeridi sector.navalFortress.name = Deniz Kalesi sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = Yeniden başlamak için ideal bölge. Düşük düşman tehlikesi ve az miktarda kaynak mevcut. Mümkün olduğunca çok bakır ve kurşun topla.\nİlerle. sector.frozenForest.description = Burada, dağlara yakın bölgelerde bile sporlar etrafa yayıldı. Dondurucu soğuk onları sonsuza dek durduramaz.\n\nEnerji kullanmaya başla. Termik jeneratörler inşa et. Tamircileri kullanmayı öğren. @@ -839,6 +840,7 @@ sector.coastline.description = Bu bölgede denizel birim teknoloji kalıntılar sector.navalFortress.description = Düşman bu uzak adaya doğal olarak korunan bir üs kurmuş. Bu üssü yok et. Onların gelişmiş savaş gemisi teknolojilerini elde et ve araştır. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 sector.onset.name = Yeni Başlangıç diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index c850fda204..c55ef856fc 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -827,6 +827,7 @@ sector.planetaryTerminal.name = Термінал планетарного зап sector.coastline.name = Узбережжя sector.navalFortress.name = Морська фортеця sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = Оптимальне місце для повторних ігор. Низька ворожа загроза. Мало ресурсів.\nЗберіть якомога більше свинцю та міді.\nНе затримуйтесь і йдіть далі. sector.frozenForest.description = Навіть тут, ближче до гір, уже поширилися спори. Холодна температура не змогла стримати їх назавжди.\n\nЗважтесь створити енергію. Побудуйте генератори внутрішнього згорання. Навчіться користуватися регенераторами. @@ -848,6 +849,7 @@ sector.coastline.description = На цьому місці виявлено за sector.navalFortress.description = Ворог створив базу на віддаленому, природно-укріпленому острові. Знищте цей форпост. Заволодійте їхніми передовими технологіями морських кораблів і дослідіть їх. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties index a014e4058b..3fb0137b57 100644 --- a/core/assets/bundles/bundle_vi.properties +++ b/core/assets/bundles/bundle_vi.properties @@ -833,6 +833,7 @@ sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = Vị trí tối ưu để bắt đầu một lần nữa. Mối đe dọa của kẻ địch thấp. Ít tài nguyên.\nThu thập càng nhiều đồng và chì càng tốt.\nTiến lên. sector.frozenForest.description = Dù ở đây, gần núi cao, các bào tử vẫn bắt đầu phát tán. Nhiệt độ lạnh giá không thể giữ chúng lại mãi.\n\nBắt đầu tạo năng lượng. Hãy xây dựng máy phát điện đốt. Học cách sử dụng máy sửa chữa. @@ -854,6 +855,7 @@ sector.coastline.description = Phát hiện tàn dư công nghệ của các đ sector.navalFortress.description = Kẻ địch đã thiết lập một căn cứ từ xa, trên đảo tự nhiên. Phá hủy tiền đồn này. Chiếm công nghệ chế tạo đơn vị hải quân tiên tiến của địch và nghiên cứu nó. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index efdad2824e..27eb8179f6 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -828,6 +828,7 @@ sector.planetaryTerminal.name = 行星发射终端 sector.coastline.name = 边际海湾 sector.navalFortress.name = 海军要塞 sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = 踏上旅程的最佳位置。 这里的敌人威胁很小,但资源也少。\n\n尽你所能收集铅和铜,出发吧! sector.frozenForest.description = 一个靠近山脉的地方。 哪怕是在这里,也有了孢子扩散的痕迹。\n连极寒也无法长久地约束它们。\n\n开始运用电力,建造火力发电机并学会使用修理器。 @@ -849,6 +850,7 @@ sector.coastline.description = 这里探测到了海军单位科技的遗迹。 sector.navalFortress.description = 敌人在一个有天然防御屏障的偏远岛屿上建立了基地。 摧毁它,并研究高级海军科技。 sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index 6f034a957f..d515e7d35f 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -824,6 +824,7 @@ sector.planetaryTerminal.name = 星際發射站 sector.coastline.name = 海岸 sector.navalFortress.name = 海上要塞 sector.polarAerodrome.name = Polar Aerodrome +sector.atolls.name = Atolls sector.groundZero.description = 再次開始的最佳位置。敵人威脅程度低。資源少。\n盡可能地採集鉛與銅。\n繼續前進。 sector.frozenForest.description = 即使是在如此靠近山脈的地方,孢子也已經擴散了。低溫無法永遠遏止它們。\n\n開始探索電力。建造火力發電機。學習如何修理方塊。 @@ -845,6 +846,7 @@ sector.coastline.description = Remnants of naval unit technology have been detec sector.navalFortress.description = The enemy has established a base on a remote, naturally-fortified island. Destroy this outpost. Acquire their advanced naval craft technology, and research it. sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.atolls.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon sector.polarAerodrome.description = WIP, map submission by hhh i 17 From bc7c8ee508929fed4c9afd33404c396cf410bdad Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 15 Sep 2024 16:30:26 -0400 Subject: [PATCH 176/437] Force projector 2x crash damage multiplier --- core/src/mindustry/world/blocks/defense/ForceProjector.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/world/blocks/defense/ForceProjector.java b/core/src/mindustry/world/blocks/defense/ForceProjector.java index 96d7efcb92..5798bd9848 100644 --- a/core/src/mindustry/world/blocks/defense/ForceProjector.java +++ b/core/src/mindustry/world/blocks/defense/ForceProjector.java @@ -40,6 +40,7 @@ public class ForceProjector extends Block{ public float cooldownBrokenBase = 0.35f; public float coolantConsumption = 0.1f; public boolean consumeCoolant = true; + public float crashDamageMultiplier = 2f; public Effect absorbEffect = Fx.absorb; public Effect shieldBreakEffect = Fx.shieldBreak; public @Load("@-top") TextureRegion topRegion; @@ -222,7 +223,7 @@ public class ForceProjector extends Block{ if(absorb){ absorbEffect.at(unit); hit = 1f; - buildup += damage; + buildup += damage * crashDamageMultiplier; } return absorb; } From 9911e602a0e8e366f7eb4f8a6d6a0d207c6e1da1 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 15 Sep 2024 17:20:34 -0400 Subject: [PATCH 177/437] Quads+Horizons damage shields / RTS AI toggle for Serpulo --- core/assets/bundles/bundle.properties | 2 ++ core/src/mindustry/ai/RtsAI.java | 2 +- core/src/mindustry/content/Planets.java | 2 ++ core/src/mindustry/content/UnitTypes.java | 11 ++++++++--- core/src/mindustry/entities/Units.java | 2 +- core/src/mindustry/game/CampaignRules.java | 19 ++++++++++++++++++- core/src/mindustry/type/Planet.java | 17 ++++++++++------- .../ui/dialogs/CampaignRulesDialog.java | 5 ++++- .../world/blocks/defense/ForceProjector.java | 2 +- 9 files changed, 47 insertions(+), 15 deletions(-) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index bcd0ca3ce3..dbf74d3235 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -1359,6 +1359,8 @@ rules.attack = Attack Mode rules.buildai = Base Builder AI rules.buildaitier = Builder AI Tier rules.rtsai = RTS AI [red](WIP) +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Min Squad Size rules.rtsmaxsquadsize = Max Squad Size rules.rtsminattackweight = Min Attack Weight diff --git a/core/src/mindustry/ai/RtsAI.java b/core/src/mindustry/ai/RtsAI.java index 16fcf3ec7a..b97e58e464 100644 --- a/core/src/mindustry/ai/RtsAI.java +++ b/core/src/mindustry/ai/RtsAI.java @@ -343,7 +343,7 @@ public class RtsAI{ //other can never be destroyed | other destroys self instantly if(Float.isInfinite(timeDestroyOther) || Mathf.zero(timeDestroySelf)) return 0f; //self can never be destroyed | self destroys other instantly - if(Float.isInfinite(timeDestroySelf) || Mathf.zero(timeDestroyOther)) return 1f; + if(Float.isInfinite(timeDestroySelf) || Mathf.zero(timeDestroyOther)) return 100000f; //examples: // self 10 sec / other 10 sec -> can destroy target with 100 % losses -> returns 1 diff --git a/core/src/mindustry/content/Planets.java b/core/src/mindustry/content/Planets.java index a37488943c..1413b40a3a 100644 --- a/core/src/mindustry/content/Planets.java +++ b/core/src/mindustry/content/Planets.java @@ -87,6 +87,7 @@ public class Planets{ }; campaignRuleDefaults.fog = true; campaignRuleDefaults.showSpawns = true; + campaignRuleDefaults.rtsAI = true; unlockedOnLand.add(Blocks.coreBastion); }}; @@ -146,6 +147,7 @@ public class Planets{ r.placeRangeCheck = false; r.showSpawns = false; }; + showRtsAIRule = true; iconColor = Color.valueOf("7d4dff"); atmosphereColor = Color.valueOf("3c1b8f"); atmosphereRadIn = 0.02f; diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index 4c7e9def50..729a245f8c 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -1042,6 +1042,7 @@ public class UnitTypes{ status = StatusEffects.blasted; statusDuration = 60f; + damage = splashDamage * 0.75f; }}; }}); }}; @@ -1446,6 +1447,7 @@ public class UnitTypes{ healPercent = 15f; splashDamage = 220f; splashDamageRadius = 80f; + damage = splashDamage * 0.75f; }}; }}); }}; @@ -2364,7 +2366,8 @@ public class UnitTypes{ //region core alpha = new UnitType("alpha"){{ - aiController = BuilderAI::new; + aiController = () -> new BuilderAI(true, 400f); + controller = u -> u.team.isAI() ? aiController.get() : new CommandAI(); isEnemy = false; lowAltitude = true; @@ -2402,7 +2405,8 @@ public class UnitTypes{ }}; beta = new UnitType("beta"){{ - aiController = BuilderAI::new; + aiController = () -> new BuilderAI(true, 400f); + controller = u -> u.team.isAI() ? aiController.get() : new CommandAI(); isEnemy = false; flying = true; @@ -2443,7 +2447,8 @@ public class UnitTypes{ }}; gamma = new UnitType("gamma"){{ - aiController = BuilderAI::new; + aiController = () -> new BuilderAI(true, 400f); + controller = u -> u.team.isAI() ? aiController.get() : new CommandAI(); isEnemy = false; lowAltitude = true; diff --git a/core/src/mindustry/entities/Units.java b/core/src/mindustry/entities/Units.java index c0f02cb196..5cdf7547b5 100644 --- a/core/src/mindustry/entities/Units.java +++ b/core/src/mindustry/entities/Units.java @@ -475,7 +475,7 @@ public class Units{ Seq data = state.teams.present; for(int i = 0; i < data.size; i++){ var other = data.items[i]; - if(other.team != team){ + if(other.team != team && other.team != Team.derelict){ if(other.tree().any(x, y, width, height)){ return true; } diff --git a/core/src/mindustry/game/CampaignRules.java b/core/src/mindustry/game/CampaignRules.java index 13e3389d43..052315f656 100644 --- a/core/src/mindustry/game/CampaignRules.java +++ b/core/src/mindustry/game/CampaignRules.java @@ -1,16 +1,33 @@ package mindustry.game; +import mindustry.*; +import mindustry.gen.*; +import mindustry.type.*; + public class CampaignRules{ public Difficulty difficulty = Difficulty.normal; public boolean fog; public boolean showSpawns; public boolean sectorInvasion; public boolean randomWaveAI; + public boolean rtsAI; - public void apply(Rules rules){ + public void apply(Planet planet, Rules rules){ rules.staticFog = rules.fog = fog; rules.showSpawns = showSpawns; rules.randomWaveAI = randomWaveAI; + if(planet.showRtsAIRule && rules.attackMode){ + rules.teams.get(rules.waveTeam).rtsAi = rtsAI; + rules.teams.get(rules.waveTeam).rtsMinWeight = 1.2f * difficulty.enemyHealthMultiplier; + + if(Vars.state.isGame()){ + Groups.unit.each(u -> { + if(u.team == rules.waveTeam && !u.isPlayer()){ + u.resetController(); + } + }); + } + } rules.teams.get(rules.waveTeam).blockHealthMultiplier = difficulty.enemyHealthMultiplier; rules.teams.get(rules.waveTeam).unitHealthMultiplier = difficulty.enemyHealthMultiplier; rules.teams.get(rules.waveTeam).unitCostMultiplier = 1f / difficulty.enemySpawnMultiplier; diff --git a/core/src/mindustry/type/Planet.java b/core/src/mindustry/type/Planet.java index 23cc55efec..41344793f3 100644 --- a/core/src/mindustry/type/Planet.java +++ b/core/src/mindustry/type/Planet.java @@ -136,12 +136,6 @@ public class Planet extends UnlockableContent{ public Music launchMusic = Musics.launch; /** Default core block for launching. */ public Block defaultCore = Blocks.coreShard; - /** Global difficulty/modifier settings for this planet's campaign. */ - public CampaignRules campaignRules = new CampaignRules(); - /** Defaults applied to the rules. */ - public CampaignRules campaignRuleDefaults = new CampaignRules(); - /** Sets up rules on game load for any sector on this planet. */ - public Cons ruleSetter = r -> {}; /** Parent body that this planet orbits around. If null, this planet is considered to be in the middle of the solar system. */ public @Nullable Planet parent; /** The root parent of the whole solar system this planet is in. */ @@ -161,6 +155,15 @@ public class Planet extends UnlockableContent{ /** Loads the planet grid outline mesh. Clientside only. */ public Prov gridMeshLoader = () -> MeshBuilder.buildPlanetGrid(grid, outlineColor, outlineRad * radius); + /** Global difficulty/modifier settings for this planet's campaign. */ + public CampaignRules campaignRules = new CampaignRules(); + /** Defaults applied to the rules. */ + public CampaignRules campaignRuleDefaults = new CampaignRules(); + /** Sets up rules on game load for any sector on this planet. */ + public Cons ruleSetter = r -> {}; + /** If true, RTS AI can be customized. */ + public boolean showRtsAIRule = false; + /** @deprecated no-op, do not use. */ @Deprecated public Seq itemWhitelist = new Seq<>(), hiddenItems = new Seq<>(); @@ -233,7 +236,7 @@ public class Planet extends UnlockableContent{ rules.planet = this; if(!customGame){ - campaignRules.apply(rules); + campaignRules.apply(this, rules); } } diff --git a/core/src/mindustry/ui/dialogs/CampaignRulesDialog.java b/core/src/mindustry/ui/dialogs/CampaignRulesDialog.java index c528bbcaae..317d321287 100644 --- a/core/src/mindustry/ui/dialogs/CampaignRulesDialog.java +++ b/core/src/mindustry/ui/dialogs/CampaignRulesDialog.java @@ -24,7 +24,7 @@ public class CampaignRulesDialog extends BaseDialog{ planet.saveRules(); if(Vars.state.isGame() && Vars.state.isCampaign() && Vars.state.getPlanet() == planet){ - planet.campaignRules.apply(Vars.state.rules); + planet.campaignRules.apply(planet, Vars.state.rules); Call.setRules(Vars.state.rules); } } @@ -60,6 +60,9 @@ public class CampaignRulesDialog extends BaseDialog{ check("@rules.fog", b -> rules.fog = b, () -> rules.fog); check("@rules.showspawns", b -> rules.showSpawns = b, () -> rules.showSpawns); check("@rules.randomwaveai", b -> rules.randomWaveAI = b, () -> rules.randomWaveAI); + if(planet.showRtsAIRule){ + check("@rules.rtsai.campaign", b -> rules.rtsAI = b, () -> rules.rtsAI); + } }).growY(); } diff --git a/core/src/mindustry/world/blocks/defense/ForceProjector.java b/core/src/mindustry/world/blocks/defense/ForceProjector.java index 5798bd9848..a976773de7 100644 --- a/core/src/mindustry/world/blocks/defense/ForceProjector.java +++ b/core/src/mindustry/world/blocks/defense/ForceProjector.java @@ -40,7 +40,7 @@ public class ForceProjector extends Block{ public float cooldownBrokenBase = 0.35f; public float coolantConsumption = 0.1f; public boolean consumeCoolant = true; - public float crashDamageMultiplier = 2f; + public float crashDamageMultiplier = 2.5f; public Effect absorbEffect = Fx.absorb; public Effect shieldBreakEffect = Fx.shieldBreak; public @Load("@-top") TextureRegion topRegion; From 9797026a41ebdecf61ba17a29727bb6af5e5dc77 Mon Sep 17 00:00:00 2001 From: Github Actions Date: Sun, 15 Sep 2024 21:21:32 +0000 Subject: [PATCH 178/437] Automatic bundle update --- core/assets/bundles/bundle_be.properties | 2 ++ core/assets/bundles/bundle_bg.properties | 2 ++ core/assets/bundles/bundle_ca.properties | 2 ++ core/assets/bundles/bundle_cs.properties | 2 ++ core/assets/bundles/bundle_da.properties | 2 ++ core/assets/bundles/bundle_de.properties | 2 ++ core/assets/bundles/bundle_es.properties | 2 ++ core/assets/bundles/bundle_et.properties | 2 ++ core/assets/bundles/bundle_eu.properties | 2 ++ core/assets/bundles/bundle_fi.properties | 2 ++ core/assets/bundles/bundle_fil.properties | 2 ++ core/assets/bundles/bundle_fr.properties | 2 ++ core/assets/bundles/bundle_hu.properties | 2 ++ core/assets/bundles/bundle_id_ID.properties | 2 ++ core/assets/bundles/bundle_it.properties | 2 ++ core/assets/bundles/bundle_ja.properties | 2 ++ core/assets/bundles/bundle_ko.properties | 2 ++ core/assets/bundles/bundle_lt.properties | 2 ++ core/assets/bundles/bundle_nl.properties | 2 ++ core/assets/bundles/bundle_nl_BE.properties | 2 ++ core/assets/bundles/bundle_pl.properties | 2 ++ core/assets/bundles/bundle_pt_BR.properties | 2 ++ core/assets/bundles/bundle_pt_PT.properties | 2 ++ core/assets/bundles/bundle_ro.properties | 2 ++ core/assets/bundles/bundle_ru.properties | 2 ++ core/assets/bundles/bundle_sr.properties | 2 ++ core/assets/bundles/bundle_sv.properties | 2 ++ core/assets/bundles/bundle_th.properties | 2 ++ core/assets/bundles/bundle_tk.properties | 2 ++ core/assets/bundles/bundle_tr.properties | 2 ++ core/assets/bundles/bundle_uk_UA.properties | 2 ++ core/assets/bundles/bundle_vi.properties | 2 ++ core/assets/bundles/bundle_zh_CN.properties | 2 ++ core/assets/bundles/bundle_zh_TW.properties | 2 ++ 34 files changed, 68 insertions(+) diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties index a452f54d78..e8ca1c9440 100644 --- a/core/assets/bundles/bundle_be.properties +++ b/core/assets/bundles/bundle_be.properties @@ -1325,6 +1325,8 @@ rules.attack = Рэжым атакі rules.buildai = Base Builder AI rules.buildaitier = Builder AI Tier rules.rtsai = RTS AI +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Мінімальны Размер Атраду rules.rtsmaxsquadsize = Максімальны Размер Атраду rules.rtsminattackweight = Мінімальная Вага Атакі diff --git a/core/assets/bundles/bundle_bg.properties b/core/assets/bundles/bundle_bg.properties index 10dda802d7..593f6b1917 100644 --- a/core/assets/bundles/bundle_bg.properties +++ b/core/assets/bundles/bundle_bg.properties @@ -1336,6 +1336,8 @@ rules.attack = Режим Атака rules.buildai = Base Builder AI rules.buildaitier = Builder AI Tier rules.rtsai = RTS AI +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Min Squad Size rules.rtsmaxsquadsize = Max Squad Size rules.rtsminattackweight = Min Attack Weight diff --git a/core/assets/bundles/bundle_ca.properties b/core/assets/bundles/bundle_ca.properties index fdbbfbf357..4ed30ab6cd 100644 --- a/core/assets/bundles/bundle_ca.properties +++ b/core/assets/bundles/bundle_ca.properties @@ -1339,6 +1339,8 @@ rules.attack = Mode d’atac rules.buildai = IA constructora de bases rules.buildaitier = Nivell de construcció de la IA rules.rtsai = IA avançada (RTS AI) +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Mida mínima de l’esquadró rules.rtsmaxsquadsize = Mida màxima de l’esquadró rules.rtsminattackweight = Pes d’atac mínim diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index 3dd0c33bfa..e62ce30a4f 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -1338,6 +1338,8 @@ rules.attack = Režim útoku rules.buildai = Umělá AI staví rules.buildaitier = Úroveň AI stavitele rules.rtsai = RTS AI +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Min velikost skupiny rules.rtsmaxsquadsize = Max velikost skupiny rules.rtsminattackweight = Min váha útoku diff --git a/core/assets/bundles/bundle_da.properties b/core/assets/bundles/bundle_da.properties index 68eed2ffb9..713024aec9 100644 --- a/core/assets/bundles/bundle_da.properties +++ b/core/assets/bundles/bundle_da.properties @@ -1327,6 +1327,8 @@ rules.attack = Angrebsmode rules.buildai = Base Builder AI rules.buildaitier = Builder AI Tier rules.rtsai = RTS AI +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Min Squad Size rules.rtsmaxsquadsize = Max Squad Size rules.rtsminattackweight = Min Attack Weight diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index 7c9f870a8e..e5840b6b09 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -1349,6 +1349,8 @@ rules.attack = Angriff-Modus rules.buildai = Base Builder AI rules.buildaitier = Builder AI Tier rules.rtsai = RTS KI [red](unfertig) +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Min. Squadgröße rules.rtsmaxsquadsize = Max. Squadgröße rules.rtsminattackweight = Min. Attackiergewicht diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index 80dcb56f99..d0531aee4b 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -1345,6 +1345,8 @@ rules.attack = Modo de ataque rules.buildai = Base Builder AI rules.buildaitier = Builder AI Tier rules.rtsai = IA enemiga avanzada (RTS AI) +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Tamaño mínimo de escuadrón rules.rtsmaxsquadsize = Tamaño máximo de escuadrón rules.rtsminattackweight = Peso mínimo de ataque diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties index e8aa85c3b0..6f20503a2e 100644 --- a/core/assets/bundles/bundle_et.properties +++ b/core/assets/bundles/bundle_et.properties @@ -1327,6 +1327,8 @@ rules.attack = Mänguviis "Rünnak" rules.buildai = Base Builder AI rules.buildaitier = Builder AI Tier rules.rtsai = RTS AI +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Min Squad Size rules.rtsmaxsquadsize = Max Squad Size rules.rtsminattackweight = Min Attack Weight diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties index 40fea745be..56ddc06499 100644 --- a/core/assets/bundles/bundle_eu.properties +++ b/core/assets/bundles/bundle_eu.properties @@ -1329,6 +1329,8 @@ rules.attack = Eraso modua rules.buildai = Base Builder AI rules.buildaitier = Builder AI Tier rules.rtsai = RTS AI +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Min Squad Size rules.rtsmaxsquadsize = Max Squad Size rules.rtsminattackweight = Min Attack Weight diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties index 69912720cc..f4f10713e1 100644 --- a/core/assets/bundles/bundle_fi.properties +++ b/core/assets/bundles/bundle_fi.properties @@ -1326,6 +1326,8 @@ rules.attack = Hyökkäystila rules.buildai = Base Builder AI rules.buildaitier = Builder AI Tier rules.rtsai = RTS AI +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Min. hyökkäysjoukon koko rules.rtsmaxsquadsize = Max Squad Size rules.rtsminattackweight = Min. hyökkäyksen paino diff --git a/core/assets/bundles/bundle_fil.properties b/core/assets/bundles/bundle_fil.properties index 5b07d13b04..02ab0d6ba4 100644 --- a/core/assets/bundles/bundle_fil.properties +++ b/core/assets/bundles/bundle_fil.properties @@ -1326,6 +1326,8 @@ rules.attack = Attack Mode rules.buildai = Base Builder AI rules.buildaitier = Builder AI Tier rules.rtsai = RTS AI +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Min Squad Size rules.rtsmaxsquadsize = Max Squad Size rules.rtsminattackweight = Min Attack Weight diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index 13e00b1dcc..0b1a48f8ef 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -1353,6 +1353,8 @@ rules.attack = Mode « Attaque » rules.buildai = IA de Construction de Base rules.buildaitier = Niveau de l'IA de Construction de Base rules.rtsai = IA de RTS [red](WIP) +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Taille Minimale d'une Escouade rules.rtsmaxsquadsize = Taille Maximale d'une Escouade rules.rtsminattackweight = Poids Minimum d'une Attaque diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index 31e85a6a00..c1a4c4d99b 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -1357,6 +1357,8 @@ rules.attack = Támadási mód rules.buildai = Bázisépítő MI rules.buildaitier = Építő MI szintje rules.rtsai = RTS MI [red](WIP) +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Minimális osztagméret rules.rtsmaxsquadsize = Maximális osztagméret rules.rtsminattackweight = Minimális támadási súly diff --git a/core/assets/bundles/bundle_id_ID.properties b/core/assets/bundles/bundle_id_ID.properties index 49127c6b5a..14c971c210 100644 --- a/core/assets/bundles/bundle_id_ID.properties +++ b/core/assets/bundles/bundle_id_ID.properties @@ -1356,6 +1356,8 @@ rules.attack = Mode Penyerangan rules.buildai = A.I. Pembangun Markas rules.buildaitier = Tingkat A.I. Pembangun rules.rtsai = A.I. RTS [red](WIP) +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Ukuran Regu Minimum rules.rtsmaxsquadsize = Ukuran Regu Maksimum rules.rtsminattackweight = Berat Serangan Minimum diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties index caaee1e680..e47ee89bba 100644 --- a/core/assets/bundles/bundle_it.properties +++ b/core/assets/bundles/bundle_it.properties @@ -1332,6 +1332,8 @@ rules.attack = Modalità Attacco rules.buildai = Base Builder AI rules.buildaitier = Builder AI Tier rules.rtsai = RTS AI +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Dimensione minima squadra rules.rtsmaxsquadsize = Dimensione massima squadra rules.rtsminattackweight = Min Attack Weight diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index 37a9e744a0..bd6949cfda 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -1338,6 +1338,8 @@ rules.attack = アタックモード rules.buildai = Base Builder AI rules.buildaitier = Builder AI Tier rules.rtsai = RTS AI +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = チームの最少人数 rules.rtsmaxsquadsize = チームの最大人数 rules.rtsminattackweight = 最小攻撃力 diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index abad707411..6ee3b2cf3f 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -1337,6 +1337,8 @@ rules.attack = 공격 모드 rules.buildai = 기지 건설 AI rules.buildaitier = 건설 AI 등급 rules.rtsai = RTS AI +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = 최소 부대 규모 rules.rtsmaxsquadsize = 최대 부대 규모 rules.rtsminattackweight = 최소 공격 중량 diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties index 9c793024f3..994ff3bfe0 100644 --- a/core/assets/bundles/bundle_lt.properties +++ b/core/assets/bundles/bundle_lt.properties @@ -1327,6 +1327,8 @@ rules.attack = Puolimo Režimas rules.buildai = Base Builder AI rules.buildaitier = Builder AI Tier rules.rtsai = RTS AI +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Min Squad Size rules.rtsmaxsquadsize = Max Squad Size rules.rtsminattackweight = Min Attack Weight diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index 1483dcab7e..3f1c226945 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -1339,6 +1339,8 @@ rules.attack = Aanvalmodus rules.buildai = Base Builder AI rules.buildaitier = Builder AI Tier rules.rtsai = RTS AI +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Min Ploeg Grootte rules.rtsmaxsquadsize = Max Ploeg Grootte rules.rtsminattackweight = Min Aanvalsgewicht diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties index 6da0ffaee2..33201743f9 100644 --- a/core/assets/bundles/bundle_nl_BE.properties +++ b/core/assets/bundles/bundle_nl_BE.properties @@ -1327,6 +1327,8 @@ rules.attack = Attack Mode rules.buildai = Base Builder AI rules.buildaitier = Builder AI Tier rules.rtsai = RTS AI +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Min Squad Size rules.rtsmaxsquadsize = Max Squad Size rules.rtsminattackweight = Min Attack Weight diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index b1b038f01e..cb32a1046b 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -1336,6 +1336,8 @@ rules.attack = Tryb Ataku rules.buildai = AI Budowania Baz rules.buildaitier = Poziom Budowania AI rules.rtsai = RTS AI +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Minimalny Rozmiar Składu rules.rtsmaxsquadsize = Maksymalny Rozmiar Składu rules.rtsminattackweight = Minimalna Waga Ataku diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index 0722f71bd9..0fd2f6e274 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -1346,6 +1346,8 @@ rules.attack = Modo de ataque rules.buildai = Base Builder AI rules.buildaitier = Builder AI Tier rules.rtsai = RTS AI +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Tamanho mínimo do esquadrão rules.rtsmaxsquadsize = Tamanho máximo do esquadrão rules.rtsminattackweight = Peso Mínimo de Ataque diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties index cf61f164ac..86272b4bf0 100644 --- a/core/assets/bundles/bundle_pt_PT.properties +++ b/core/assets/bundles/bundle_pt_PT.properties @@ -1327,6 +1327,8 @@ rules.attack = Modo de ataque rules.buildai = Base Builder AI rules.buildaitier = Builder AI Tier rules.rtsai = RTS AI +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Min Squad Size rules.rtsmaxsquadsize = Max Squad Size rules.rtsminattackweight = Min Attack Weight diff --git a/core/assets/bundles/bundle_ro.properties b/core/assets/bundles/bundle_ro.properties index 33c26b4fad..cc28415b80 100644 --- a/core/assets/bundles/bundle_ro.properties +++ b/core/assets/bundles/bundle_ro.properties @@ -1338,6 +1338,8 @@ rules.attack = Modul Atac rules.buildai = Base Builder AI rules.buildaitier = Builder AI Tier rules.rtsai = RTS AI +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Min Squad Size rules.rtsmaxsquadsize = Max Squad Size rules.rtsminattackweight = Min Attack Weight diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index 507b639577..3a022f09a4 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -1337,6 +1337,8 @@ rules.attack = Режим атаки rules.buildai = ИИ строит базы rules.buildaitier = Уровень баз ИИ rules.rtsai = ИИ в реальном времени +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Минимальный размер отряда rules.rtsmaxsquadsize = Максимальный размер отряда rules.rtsminattackweight = Минимальный вес для атаки diff --git a/core/assets/bundles/bundle_sr.properties b/core/assets/bundles/bundle_sr.properties index 46272c4c28..c16e721ef9 100644 --- a/core/assets/bundles/bundle_sr.properties +++ b/core/assets/bundles/bundle_sr.properties @@ -1340,6 +1340,8 @@ rules.attack = Mod Napada rules.buildai = Base Builder AI rules.buildaitier = Builder AI Tier rules.rtsai = RTS AI [red](Nedovršeno) +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Minimalna Veličina Odreda rules.rtsmaxsquadsize = Maksimalna Veličina Odreda rules.rtsminattackweight = Minimalna Težina Napada diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties index cf2a4413b5..39252e07d6 100644 --- a/core/assets/bundles/bundle_sv.properties +++ b/core/assets/bundles/bundle_sv.properties @@ -1327,6 +1327,8 @@ rules.attack = Attack Mode rules.buildai = Base Builder AI rules.buildaitier = Builder AI Tier rules.rtsai = RTS AI +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Min Squad Size rules.rtsmaxsquadsize = Max Squad Size rules.rtsminattackweight = Min Attack Weight diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index 2bec34f154..db16ff12e0 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -1339,6 +1339,8 @@ rules.attack = โหมดการโจมตี rules.buildai = AI สร้างฐานทัพ rules.buildaitier = ระดับการสร้างของ AI rules.rtsai = RTS AI [red](ไม่เสถียร) +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = ขนาดกองทัพเล็กที่สุด rules.rtsmaxsquadsize = ขนาดกองทัพใหญ่ที่สุด rules.rtsminattackweight = ขนาดน้ำหนักการโจมตีน้อยที่สุด diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index fbd8952313..4e9e1c679a 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -1327,6 +1327,8 @@ rules.attack = Attack Mode rules.buildai = Base Builder AI rules.buildaitier = Builder AI Tier rules.rtsai = RTS AI +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Min Squad Size rules.rtsmaxsquadsize = Max Squad Size rules.rtsminattackweight = Min Attack Weight diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index c5fddc741c..ef06aa173b 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -1336,6 +1336,8 @@ rules.attack = Saldırı Modu rules.buildai = Üs inşa edici YZ rules.buildaitier = İnşaatçı YZ sınıfı rules.rtsai = RTS YZ +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Asgari Gurup Boyutu rules.rtsmaxsquadsize = Azami Gurup Boyutu rules.rtsminattackweight = Asgari Saldırı Boyutu diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index c55ef856fc..a062157676 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -1347,6 +1347,8 @@ rules.attack = Режим атаки rules.buildai = Базовий ШІ-будівельник rules.buildaitier = Рівень ШІ-будівельника rules.rtsai = ШІ зі стратегій реального часу +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Мінімальний розмір загону rules.rtsmaxsquadsize = Максимальний розмір загону rules.rtsminattackweight = Мінімальна ударна вага diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties index 3fb0137b57..9dd8502bc5 100644 --- a/core/assets/bundles/bundle_vi.properties +++ b/core/assets/bundles/bundle_vi.properties @@ -1357,6 +1357,8 @@ rules.attack = Chế độ tấn công rules.buildai = AI Xây dựng căn cứ rules.buildaitier = Cấp độ AI xây dựng rules.rtsai = AI Chiến thuật [red](WIP - Đang hoàn thiện) +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = Kích thước đội hình tối thiểu rules.rtsmaxsquadsize = Kích thước đội hình tối đa rules.rtsminattackweight = Sức tấn công tối thiểu diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index 27eb8179f6..b7a7811521 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -1349,6 +1349,8 @@ rules.attack = 进攻模式 rules.buildai = 基础建筑者 AI rules.buildaitier = 建筑者 AI 等级 rules.rtsai = RTS AI +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = 最小部队规模 rules.rtsmaxsquadsize = 最大部队规模 rules.rtsminattackweight = 最低进攻强度 diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index d515e7d35f..57d3cb8d8d 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -1344,6 +1344,8 @@ rules.attack = 攻擊模式 rules.buildai = Base Builder AI rules.buildaitier = Builder AI Tier rules.rtsai = RTS AI +rules.rtsai.campaign = RTS Attack AI +rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner. rules.rtsminsquadsize = 最小隊伍規模 rules.rtsmaxsquadsize = 最大隊伍規模 rules.rtsminattackweight = 最小攻擊力 From 8ede0fa6f4100f4dfdae04442ba814d84bc04d0d Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 15 Sep 2024 19:21:24 -0400 Subject: [PATCH 179/437] Fixed shields not blocking blast compound explosions --- core/src/mindustry/content/UnitTypes.java | 4 ++-- core/src/mindustry/entities/Damage.java | 14 ++++++++++---- core/src/mindustry/entities/comp/UnitComp.java | 2 +- core/src/mindustry/game/CampaignRules.java | 3 ++- .../mindustry/world/blocks/ExplosionShield.java | 7 +++++++ .../mindustry/world/blocks/UnitWreckShield.java | 9 --------- .../world/blocks/defense/ForceProjector.java | 10 +++++----- 7 files changed, 27 insertions(+), 22 deletions(-) create mode 100644 core/src/mindustry/world/blocks/ExplosionShield.java delete mode 100644 core/src/mindustry/world/blocks/UnitWreckShield.java diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index 729a245f8c..d50ea28261 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -1042,7 +1042,7 @@ public class UnitTypes{ status = StatusEffects.blasted; statusDuration = 60f; - damage = splashDamage * 0.75f; + damage = splashDamage * 0.7f; }}; }}); }}; @@ -1447,7 +1447,7 @@ public class UnitTypes{ healPercent = 15f; splashDamage = 220f; splashDamageRadius = 80f; - damage = splashDamage * 0.75f; + damage = splashDamage * 0.7f; }}; }}); }}; diff --git a/core/src/mindustry/entities/Damage.java b/core/src/mindustry/entities/Damage.java index 988b92660e..7f13c16546 100644 --- a/core/src/mindustry/entities/Damage.java +++ b/core/src/mindustry/entities/Damage.java @@ -16,6 +16,8 @@ import mindustry.gen.*; import mindustry.graphics.*; import mindustry.type.*; import mindustry.world.*; +import mindustry.world.blocks.*; +import mindustry.world.meta.*; import static mindustry.Vars.*; @@ -101,9 +103,13 @@ public class Damage{ float damagePerWave = explosiveness / 2f; for(int i = 0; i < waves; i++){ + var shields = ignoreTeam == null ? null : indexer.getEnemy(ignoreTeam, BlockFlag.shield); int f = i; Time.run(i * 2f, () -> { - damage(ignoreTeam, x, y, Mathf.clamp(radius + explosiveness, 0, 50f) * ((f + 1f) / waves), damagePerWave, false); + if(shields == null || shields.isEmpty() || !shields.contains(b -> b instanceof ExplosionShield s && s.absorbExplosion(x, y, damagePerWave))){ + damage(ignoreTeam, x, y, Mathf.clamp(radius + explosiveness, 0, 50f) * ((f + 1f) / waves), damagePerWave, false); + } + Fx.blockExplosionSmoke.at(x + Mathf.range(radius), y + Mathf.range(radius)); }); } @@ -166,7 +172,7 @@ public class Damage{ public static float findPierceLength(Bullet b, int pierceCap, float length){ return findPierceLength(b, pierceCap, b.type.laserAbsorb, length); } - + public static float findPierceLength(Bullet b, int pierceCap, boolean laser, float length){ vec.trnsExact(b.rotation(), length); rect.setPosition(b.x, b.y).setSize(vec.x, vec.y).normalize().grow(3f); @@ -358,7 +364,7 @@ public class Damage{ */ public static Healthc linecast(Bullet hitter, float x, float y, float angle, float length){ vec.trns(angle, length); - + tmpBuilding = null; if(hitter.type.collidesGround){ @@ -644,7 +650,7 @@ public class Damage{ this.target = target; return this; } - + @Override public void reset(){ target = null; diff --git a/core/src/mindustry/entities/comp/UnitComp.java b/core/src/mindustry/entities/comp/UnitComp.java index f5cc151a2c..548e34965e 100644 --- a/core/src/mindustry/entities/comp/UnitComp.java +++ b/core/src/mindustry/entities/comp/UnitComp.java @@ -717,7 +717,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I if(type.flying && !spawnedByCore && type.createWreck && state.rules.unitCrashDamage(team) > 0){ var shields = indexer.getEnemy(team, BlockFlag.shield); float crashDamage = Mathf.pow(hitSize, 0.75f) * type.crashDamageMultiplier * 5f * state.rules.unitCrashDamage(team); - if(shields.isEmpty() || !shields.contains(b -> b instanceof UnitWreckShield s && s.absorbWreck(self(), crashDamage))){ + if(shields.isEmpty() || !shields.contains(b -> b instanceof ExplosionShield s && s.absorbExplosion(x, y, crashDamage))){ Damage.damage(team, x, y, Mathf.pow(hitSize, 0.94f) * 1.25f, crashDamage, true, false, true); } } diff --git a/core/src/mindustry/game/CampaignRules.java b/core/src/mindustry/game/CampaignRules.java index 052315f656..2865c7d12f 100644 --- a/core/src/mindustry/game/CampaignRules.java +++ b/core/src/mindustry/game/CampaignRules.java @@ -17,10 +17,11 @@ public class CampaignRules{ rules.showSpawns = showSpawns; rules.randomWaveAI = randomWaveAI; if(planet.showRtsAIRule && rules.attackMode){ + boolean swapped = rules.teams.get(rules.waveTeam).rtsAi != rtsAI; rules.teams.get(rules.waveTeam).rtsAi = rtsAI; rules.teams.get(rules.waveTeam).rtsMinWeight = 1.2f * difficulty.enemyHealthMultiplier; - if(Vars.state.isGame()){ + if(swapped && Vars.state.isGame()){ Groups.unit.each(u -> { if(u.team == rules.waveTeam && !u.isPlayer()){ u.resetController(); diff --git a/core/src/mindustry/world/blocks/ExplosionShield.java b/core/src/mindustry/world/blocks/ExplosionShield.java new file mode 100644 index 0000000000..892795632c --- /dev/null +++ b/core/src/mindustry/world/blocks/ExplosionShield.java @@ -0,0 +1,7 @@ +package mindustry.world.blocks; + +//TODO: horrible API design, but I'm not sure of a better way to do this right now. please don't use this class +public interface ExplosionShield{ + /** @return whether the shield was able to absorb the explosion; this should apply damage to the shield if true is returned. */ + boolean absorbExplosion(float x, float y, float damage); +} diff --git a/core/src/mindustry/world/blocks/UnitWreckShield.java b/core/src/mindustry/world/blocks/UnitWreckShield.java deleted file mode 100644 index 062320cef2..0000000000 --- a/core/src/mindustry/world/blocks/UnitWreckShield.java +++ /dev/null @@ -1,9 +0,0 @@ -package mindustry.world.blocks; - -import mindustry.gen.*; - -//TODO: horrible API design, but I'm not sure of a better way to do this right now. please don't use this class -public interface UnitWreckShield{ - /** @return whether the shield was able to absorb the unit wreck; this should apply damage to the shield if true is returned. */ - boolean absorbWreck(Unit unit, float damage); -} diff --git a/core/src/mindustry/world/blocks/defense/ForceProjector.java b/core/src/mindustry/world/blocks/defense/ForceProjector.java index a976773de7..f62e8fa12e 100644 --- a/core/src/mindustry/world/blocks/defense/ForceProjector.java +++ b/core/src/mindustry/world/blocks/defense/ForceProjector.java @@ -40,7 +40,7 @@ public class ForceProjector extends Block{ public float cooldownBrokenBase = 0.35f; public float coolantConsumption = 0.1f; public boolean consumeCoolant = true; - public float crashDamageMultiplier = 2.5f; + public float crashDamageMultiplier = 2f; public Effect absorbEffect = Fx.absorb; public Effect shieldBreakEffect = Fx.shieldBreak; public @Load("@-top") TextureRegion topRegion; @@ -123,7 +123,7 @@ public class ForceProjector extends Block{ Draw.color(); } - public class ForceBuild extends Building implements Ranged, UnitWreckShield{ + public class ForceBuild extends Building implements Ranged, ExplosionShield{ public boolean broken = true; public float buildup, radscl, hit, warmup, phaseHeat; @@ -218,10 +218,10 @@ public class ForceProjector extends Block{ } @Override - public boolean absorbWreck(Unit unit, float damage){ - boolean absorb = !broken && Intersector.isInRegularPolygon(sides, x, y, realRadius(), shieldRotation, unit.x, unit.y); + public boolean absorbExplosion(float ex, float ey, float damage){ + boolean absorb = !broken && Intersector.isInRegularPolygon(sides, x, y, realRadius(), shieldRotation, ex, ey); if(absorb){ - absorbEffect.at(unit); + absorbEffect.at(ex, ey); hit = 1f; buildup += damage * crashDamageMultiplier; } From 4e19a3c4d0c884f80c7b1905163b9800914bb2e9 Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 16 Sep 2024 16:05:03 -0400 Subject: [PATCH 180/437] Atolls map fixes / Extraction outpost edits / Option to hide objectives --- core/assets/maps/atolls.msav | Bin 43056 -> 42463 bytes core/assets/maps/extractionOutpost.msav | Bin 23902 -> 24405 bytes core/src/mindustry/ai/types/BuilderAI.java | 2 +- core/src/mindustry/content/UnitTypes.java | 2 +- core/src/mindustry/entities/Units.java | 2 +- core/src/mindustry/game/MapObjectives.java | 1 + core/src/mindustry/game/Rules.java | 2 ++ .../mindustry/ui/fragments/HudFragment.java | 2 +- 8 files changed, 7 insertions(+), 4 deletions(-) diff --git a/core/assets/maps/atolls.msav b/core/assets/maps/atolls.msav index 6f608eb951d08e8f4e0eb5e6b49aeb9aa0ee3a39..83931ae31dce4b56c25f6f1b9281284dfd7d7244 100644 GIT binary patch literal 42463 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 JqLLW8e(?>d9S)EGnB5qy90jeR}p6@A*sLuD_VM z?%%A>QJn{N#^y4I1YcE}Wp}~9?!SL_(8{t?(}WHlet2ChWQoT1IH68@*Z2_P_caSo`1dHTNTDVXbTr zBg<`%KHc`{uKp6YqVQp-?z~*Pifu0!Gi*GLa_rALzq?UJ^(Y-~_zrUK{-9JZk!)?-cE7vH?q6Gvt+$#@?Mtz``WJkTRhuI zxujmTu=d8mt#P^u53LHi-v7U&D)#+n;O_hUQMC>${>oaFOykpQJyx3(S0t&M)n}xi z``9Yxw!Ym=Ng3Gdc5Lt z=~+h8plR3dT5O(|uyb4V>*-ei(zrj}{Me`eXOmT3=3cA1pRuog+?o99$JX9gKi=}b z`Z0I;(~ZF^p3mJl$108O%0|!o`Sr`K%GO=}GbdtF9rvT@S2n$jR95~Ub-u3k`IDPQ z!m0WDm8)GF?&PXeJ}}Pzy{FHN?bHhYeOJ9Cc1-!!aiMz3gZZ;sWiC{&EqN8XH*;^e z+m1EA6yuNFzc5+DQ%PL8DJr?_!Eg3AHyd?$xWv*FPsK|7__u9>$<^iic8ksXU_I^7 z?|1eswm;+azMSm0_SZ4|x7Yl|hO`M1;ft)YBJ5rjtv+^Nv`Dzc+pt%xXW}i+`&ZRs z96lwtSjBAOIjyu?>eYq)2^q?>7{2bf7AU*Z!TIgyc;SW8LJu~->N(M7+IO9`oc{t( zU|5P_($id#?+4$<cV~J zemb1+zb$oXxN%DE`%8LPKh()6ZeY1rs`EB$y-D`fd9AlLANY1~+YhS+bJuQ?Z!0U1 z-4vJ281myv`TUk5-TBj)rkYi9gmKL04(8a>8DM*@M0VShC$|oZUEkJ`-+cXBt|4FB z{WU+zE$V!II`a>`&o21q`=eGg;nyk)-skIE9H`wuiNV#W#iY|E-Aj% zTy=Ya)xKc+|3`ga{m_0Nc)Xu)<>UOl@v`;l)^g55>!%7$6??MZK56y4AL2)oUTrPp zKP_yx-^|Cf?lJS}4YRC#ysup-v6!6jJH=?y{*zr#)c5KxdePey7kW}<^1Tf!47LXJ z9gO#kKiBv6NA1p4SFPvGo%Lyb{ipq3UdfvM?Xi=-TD2zj-Fb->$EW!|Ur=%@&vW^f zA0i%e?L{ho_;%Tgr>D&NeZR@&S8!koPq)K=Wr^qVl`h`ZbLHecHf~&y5n1}o^Tcko zkN5s8dZ5JhHeL7Dd8W70wW4qCXw*KXnBErtFTQte;iaU86HKob_qX`!SMRp{ zr91mX?8A%e`6dd>m`XCN$!p*BrQfV{jru#mT|bkX-BOz;zY;fnC%C0PZN}OvLmp+Z zBW;(OQ%)X@XpppV64$O=FtOKCwEXe0hqra#{+$0{_Xqs|H=FheYI27-cP_hsly}m>Kh1Wk`x<24@iN|LJ1ru! z+hAs+TO;SW6-S?aZ_@lY!HCCW-jh{NI?vyowsh)|4@V|ge5$uFNS>3uBJ!G)^WX1l z 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 H@y%2K)BKq| literal 43056 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 XOFuCl+kdIoJkuh4|9}2nqG<*I+G+`N diff --git a/core/assets/maps/extractionOutpost.msav b/core/assets/maps/extractionOutpost.msav index 3896db82520cf2c53d01bcdad117d83b7fc3e5e7..6ea0ae63dd3dbe16e3347179474317c6e0405ddd 100644 GIT binary patch literal 24405 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 ANdN!< literal 23902 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 diff --git a/core/src/mindustry/ai/types/BuilderAI.java b/core/src/mindustry/ai/types/BuilderAI.java index ccbe64b7c6..09f8e082ab 100644 --- a/core/src/mindustry/ai/types/BuilderAI.java +++ b/core/src/mindustry/ai/types/BuilderAI.java @@ -195,7 +195,7 @@ public class BuilderAI extends AIController{ } if(!unit.type.flying){ - unit.updateBoosting(moving || unit.floorOn().isDuct || unit.floorOn().damageTaken > 0f); + unit.updateBoosting(moving || unit.floorOn().isDuct || unit.floorOn().damageTaken > 0f || unit.floorOn().isDeep()); } } diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index d50ea28261..c1d6274c47 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -1872,7 +1872,7 @@ public class UnitTypes{ rotateSpeed = 5f; mirror = true; rotate = true; - bullet = new LaserBoltBulletType(5.2f, 10){{ + bullet = new LaserBoltBulletType(5.2f, 12){{ lifetime = 30f; healPercent = 5.5f; collidesTeam = true; diff --git a/core/src/mindustry/entities/Units.java b/core/src/mindustry/entities/Units.java index 5cdf7547b5..d74b41dad5 100644 --- a/core/src/mindustry/entities/Units.java +++ b/core/src/mindustry/entities/Units.java @@ -95,7 +95,7 @@ public class Units{ public static int getCap(Team team){ //wave team has no cap - if((team == state.rules.waveTeam && !state.rules.pvp) || (state.isCampaign() && team == state.rules.waveTeam)){ + if((team == state.rules.waveTeam && !state.rules.pvp) || (state.isCampaign() && team == state.rules.waveTeam) || state.rules.disableUnitCap){ return Integer.MAX_VALUE; } return Math.max(0, state.rules.unitCapVariable ? state.rules.unitCap + team.data().unitCap : state.rules.unitCap); diff --git a/core/src/mindustry/game/MapObjectives.java b/core/src/mindustry/game/MapObjectives.java index d1ba8ffbc6..aacfbafa5e 100644 --- a/core/src/mindustry/game/MapObjectives.java +++ b/core/src/mindustry/game/MapObjectives.java @@ -164,6 +164,7 @@ public class MapObjectives implements Iterable, Eachable Date: Mon, 16 Sep 2024 20:11:24 -0400 Subject: [PATCH 181/437] Update io ip (#10207) --- servers_v7.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers_v7.json b/servers_v7.json index 6a2520b88a..9a56780fe1 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -121,7 +121,7 @@ }, { "name": "io", - "address": ["159.69.7.83", "159.69.7.83:1000", "159.69.7.83:2000", "159.69.7.83:3000", "159.69.7.83:4000"] + "address": ["148.251.184.58:3000", "148.251.184.58:3000:1000", "148.251.184.58:3000:2000", "148.251.184.58:3000:3000", "148.251.184.58:3000:4000"] }, { "name": "Korea", From aad88412114217911b0639cbf3995ec68c1262b3 Mon Sep 17 00:00:00 2001 From: buthed010203 Date: Mon, 16 Sep 2024 20:31:18 -0400 Subject: [PATCH 182/437] Whoops (#10208) --- servers_v7.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers_v7.json b/servers_v7.json index 9a56780fe1..51897f6097 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -121,7 +121,7 @@ }, { "name": "io", - "address": ["148.251.184.58:3000", "148.251.184.58:3000:1000", "148.251.184.58:3000:2000", "148.251.184.58:3000:3000", "148.251.184.58:3000:4000"] + "address": ["148.251.184.58", "148.251.184.58:1000", "148.251.184.58:2000", "148.251.184.58:3000", "148.251.184.58:4000"] }, { "name": "Korea", From cec743a8416a95fc10b2209ce1782daa7f070a80 Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 16 Sep 2024 20:38:42 -0400 Subject: [PATCH 183/437] Bulk tile update Call methods --- core/assets/maps/atolls.msav | Bin 42463 -> 42462 bytes core/src/mindustry/world/Tile.java | 36 +++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/core/assets/maps/atolls.msav b/core/assets/maps/atolls.msav index 83931ae31dce4b56c25f6f1b9281284dfd7d7244..1768c32aaf6f083e35ffacc5ba339f3095bb4d2c 100644 GIT binary patch delta 40822 zcmcbAn(5wYrU_E@DV55dk993f6f=e7CQLXGAr;xI+B;+78x2L3mc0Vkm$U{&O%lmi z7@$$B^EUf__0#{i-Q%O9e%;!)?|SRflEn^+n%+16p4)la@_XIq+Qs>9o06lZ^z46I z_kCXVyPNNKe&7AHPx-$m$3($JpTjnWr94aj1&LDoy$SV&BJ&7bn&xv-9_LABmCUO6}8`l9s0B?%#1HCv($>m_6z)zj8Jf z%;n*T4}P5ij`v9;@Km(09{F|#Vmc5bnV7fdccuY2wc&(+W8 zZIx`pXK7637M(cf)cFuDrK#~TGwSuGx_;|x4XWH0Ge>8NYt=H7iSrwcHnPi!bhbV^ zB6)FRe$Mw3FJ8Quw~=}AZ@zaot=Vd$Pw1~udU^BDo;ShQJ5MTwOy13VF=&O3$aBAL zGu|&giJ#6b{mJx2?t#F~%dIPQFjqL4iALd_l<`-G`Xy+rRhu@r* zZi$$u5yGcCMV#CD*|&)|Z%*3t`N0K=eH+F9OSad`$sA(5vh*`I_s>q_?FSC5ct~;Z8>Tt4e>=pRu{6eJE5`~a1+C9Ni;Jf^m)mb(sIV%jXPh-h z&MMR*c8+yPfxg{T{XV|Xgn|z_@0*=hW$cVtIi-!Ocyjx(H$|I&{^sj_v+&XHviFng zA3INdnUt9JiLX|^zB}P``!Tog@2xHDo?TmYOFnRG|L<&h?zMZ1GM21bSa|osi64!% z)oyNXzTUycKZ_1-F;Sa+Yj?O=L4)<_uS}0>MElvkA6Qu)b9J}>wQ7R}_n1SkzLP$6 zewx^GF}~h52D|7v*2z*5ca^0#xOtT(+MAj_T3xTh^3iYY@6@%*)yL{Nc75Zbiw1Z6bwnH7OR^p8+PX@79|r^{X00;VSnwibWe_LZkC4jDNvi@X38+cz3R=dvd^T zRsH^Ymeq>wiQff1-`Z*TSrrtp*4M7EY^mP)Y@@A7&+pY7N%a?Y{K_s%wBOObI?Uny z)`ok=ZT~|j&pmc7LgbB%%<9%@55zeBS5JSwY@%)Gr@|{zcMN}SH}CQNd!vx$$-Gs9 zshcG4)+W^aKXFg%g0sf4mE}vgR3D$d7TsFX^k?3}nL%}%w(MYtVk>$0W?|>0KQ#+| z>YsjpbCWsXgt~F-pOg!KZys{`_r*sp!_D62zAAeQ^^sHEx*ZnY zZ;Z~pU&xwdEA?1?>LVXP9*$K7Q?yxbuYMHP`TnkP$+`*gGuV#Sd}n^PX43rGYZg=* zvm7Z%-uYqE(L;BR2%RvyaoiI zc(SU)yT*&n?C$0Ly$mtS4i@dRc)o3`{Hm{8S)V?_T!e+{oTj&vh{hMXc#b+ ze4et!VjjC2lLUYIXXEY!mpgOkM@P)D4L!#{SNF`5_D@fZy^nfU?5-&jjHp>;!2j)9 zfF#e#oeOvVx%sC)=HI@BmyR3?kn`a6IkfQ55ud_+K@wFrm3V5G2FPfgWs-5`Ui#bX z^U;&laxz+Tt28}&l%hP#?F|}T3SL;usC;^9(x#dVBC~YPXfkuGxuNup@wAe3MetON&mL7%6(A@0R7%r}MpenJH1XXO8Y%t#cw}&&0fTR&F>|-2Hjy<M7&N?MtMaV_NFJ zcYI38PG)!Cxb@;*7Hy5IotJ!8)@0=5WR=w9*A+>cyls9iY`pa7$>dLK|5hLW?l1Dq zU(s7MZx-{)7zVqmcFa4xG9GZ}yO=O@shv7ndBn5k?S~H^XTP&3`#f=Wo@L?h4+Y=O zy-ZSN|Np$0yZb_fq5Wd(+0A@U#Fl;L-g(q(Vf`fKw9}!}v=lxFXg_%Gxb>G`lg*<)W2Ry(kbU9QOQ8+LerDSknts+*u<@rA zSKgFnV*gUl&2#Y3yEnN{FFkqWqFDa@Wzj-|a{ft`s^#BpKk$pLOYm3w^z_rDyWDSL z|M@UxpPGA$*(@c0UhR`>FYdk`zW`4XSI6RuQx|)DmT^7m~UP3{Kf~v%<#7w z=X|GdGdSl}{hKvWCgb#-8}nrPzL+WpaQBGKdw%R#`Lhj8!p5#D92I{xZcVcmC|`P~ zF4A(xQQ_7|g>BB|9x>0|KD>LoK)~UTl7t4Q;PTeam(J#T=jO6q+QDo3_H*}w1Lqol zoVy$1*rDCg`}}U%pA&P{-_<*$+=*eDGj&^0ke!*e^wS1I+=uvonFp;_~*=-mnLO6HRgbLuVCCoTQG;Ia~LNe!3(tz`#Vm_2Q6xaaW3 zX3k`J%v|#M153fC=X;%xG-@&Wn4EJF+Vbwo6pxb}Cpzr+_wMTP!rD8_`+tA^ z*kC6ok{NnluGlEa&+Y8V8J0J*{f?bIX*Y4Mj>xn2^G^leTsviw^lZ+~7>3PkDsB7T zOj5mDU7xMySoz?=k9X-$ZADex+q-$oqAPL)4RWF_)@cEW1h{@m%o#XOdxJ z6YAh|c8XW(L_>#;BPkpAC_LKSJz2?=v(2ohaGA~C5T|-OvA551BDSjDa%h=1Pi`60 z%%X=T^L)FfEp0k7wUO6jp-K9>Wn8HW=CxOstq++hs$k|C^sG`{f$@asyECF+)`r!3 zJKxXUZpw3oSIOO^k>}#k+v*cfxBqmL^6zdqXtsrO z(Vy(m$jZa%v{Nlp`CflRn&|3Nwaqp`v-n^!q1Mf=&R(1VBg1q+I=E^F^z zCmQ^DtD8k^_MF+T`J8s_y!@C)X>a}V;|F54OY0fWjjrCtaZcn^?)_%7VrMITQ4!Zy zyF%Dp%5NX`oH~1>ibiMGnYn&)3B{`=ugY)STWV;d$$WA0qO1EXU&Zz9oL+tRbm0Z> zhQ^0K|HLGwRUFwVRl4rjoYi~JO^xQ(64*28ZO50IhgUS`c${cZnXe z!TRE*Pe1x(zU|Rs$lv}zGV^;{J$ZcQ5B&v@;_{R>kS^;+o2&imZ(` z?Oi*U8Ze9LT5R@?aEz~GRQYVPqiDrbui{NwKa13*ye@^xu$9_Yb43TQcRKm9DP-f> z6(7&Gx^?W!sz0v0%5=l@iw$CDU$M>jC3OAABHrwFvl9}(-)`!;y4|cbS?hxF#wqi) z=eiwE&gAoX*5%^4oaykstBVp(YCDK{X0O_)*OvY%!2X8ctiG*Y1$w13%evK4R>s}u zja}y&yg}p1 zB}A|~$Tq)Y$YbrDt@GS5hl#mot!Z?W^CV zH*lX9n>K;D^V5s4?aJL>&i2(*Zfp6~@h&B9mxX!b8tq#L%V)VPGwi=5(tEL#D`n=B z>q>Vt7E3S4Ut+S_tXU-}cz(bxQA5+#S3gY(c4kDosC+K{taD;bVy9;Tm%6yRSp9{p z&;ut|r~SFk!MM)HZnM_rQ(8YrdB(AZaS)URdBs8&lqV>{{F+bG>9_+s5-)1r zh>EkwjWr9e_qs62sMlqAX=2LqiFe(4w=iZtQIA+_GWSqfYWU_)Az!`kvVH!<}#1UC5^YlZuq(xfbRO z<~@enEewMr*1XXEV7(^&!DNQp=M&txW1gy?T3Wf`{?hoY46{lz{#aqjNt(8L(l3)_ zuf=|Kt0~&3a%n23sJ>TX{f^wED3xWOk4nmh`JH`oaDrC1#f{hpIgOs?#*_E+-?L;t zBruyz{H4ydK#Sf$^NDdQbk03Z?^ZJ0+EHou^wFO`JjYf{Q%hUIZQELS`Q;y#9XDT| zvbmM;pmOoW4r5=XQm*55QA;LX+Ss)0)T5O%AL)2KS#m{DiP=f!j7-I}bN;^dje#6` zcE8*M{JE-)cvZDGOQ?D>T8sL7-rd3xyCwdyDY2Y! z+}b_K=~sH`JKik;e@kK??yGz;_mTJai?>>tq846#-!R>_zd_^X-Bs%w)}LY(=+P)H z*%5HM>E)w6#mtq5_g&PC*A#yf{YmxvwECK}JFl9?>zxz3Q=PlXXxpvZDZbaXu4!9; zo#8B#|E1oCH!nR=>e(F>zbyY$&5ZNwZ7H0{cXn?lE=3Y~7+WK0tOwD021 zU!4~>)PIuPx?FzSjO@_GU--^cE7XV`JQw`LDA;1|{0OOOkIne^Y?g8Jsb>oaXuq+dN%#dCa`W7s*-C90F=&tN$2-TD8E&W?tk zmrrba-o<_3%i9HZr&PDdt51o)WfyG48W0zWy_LY|`YzthDS!gLWzO+%eu>5I=(6Ok6p*-gs z-883fVCl*Yk({i={mgRL=@;LZsZS4x_E~Zyu%~&xU2nu}*ZX$Nk2fkbv(#tKbz*qO z^-Lh)`uS(BTyMj8_U_Ly>_5)(OzwdWUz%*gKF#On7bbW;bNsbv-z@z@9!;wPZgMVI z9#YllajL|&=g#RV3KN4QCm5Jnt#n*c+Qf9M`MH-8*VYLy!yGJ%)z?GpDirJuSBJ_=0KT-2t{G`$MMuouT*0 zTlN{x9D7TD7AetVw*Ad4Ua}9wPaZm>)G+smg}{qXmsW0eU0Jy>X-QS(g6)p(;TJ9m zzWr6-GS4CWxk1A`mUyPjT?N}%EIc1BP+lwU5OpHUUsJ2;^rMhWHkHn6^4x zSwN&w+zEd&PRKKUV6c2}v-vN(P20h^+{1S=B-E@`)e8&x#A_d}WZLv-J}MEkOj);uK}dzyjPFVp6I;lYM?4W58-ykt zn#woPHO*dIQ_@#_PJY13N16^9nT7*4Ge;`8kesoAdSt266E{7gmGRRVsYlO|<^ ziZ$w8%6G;0 z&WoZuy6t~GcmHo={C|(@7Y@P2r@uc=ouoIvd%D~_Tlw=rUmm1sm8;K7eR90*c6ddPv3YuNJxSRdsrtmL< zhkk9?>d2ePcHX8{(IPu2bmqR3tJW=B#rGhUKkPz_>m#mbj=e`z<}DTZ!e+;Lb%J%& zrd5he*MsN2JA6*!Ny>_C{xBB7gk?o8n-Pebkijs$5}<%Q$HMCarwsm z&zzyQd&+vf^*23}?c)1YGP%&^@?$kY>lG{Yo-Q)>d$Hu&x#OZ`XCtF}+gExq**)8K zyN7?0NyR4jy;t0H7WDSK+ETf;GwYt4X})sI(iMfAf33EsEj%W!<-6KAIJ1eNUoei1 zQ_NHF^&P|h$psRkTARDI9aFA}UkI4BAZbmkZ%fPDdEZx@l+&3WTx;xd=bo2%j$0_Z z*2KmzOLrN^jV;HRy6)MY|8y_->6r$uESuC5ADdW`d%Nd|G3h#HJXcHhx+5_;MN&|a zl{1q+@v!oy)DN+%UO+D@9;dA%u`vS4~iz4$e8 z<$0Ngk5`{C^Xt)Adg}O{D2Yp7mvHbU*A`Cy7jZqUqfKa)Df9i~^&Wybin?1G-ArF6 ziEBFD)DLg0T=QK=t}qJ^eAkBFKlJz=_^y~)Sr@^=2oEcbk_J+o?3O*?tSF+^5p z8r#vu^Mvx$I}iCKu`+WlcgSvIsp?>fTIsp%_R@>i0vC2HIQThZ!fX#KHBO$JSL0ge zOn!8B(|*|s$>ZMs2h%TH@#CrA*ya)E^g%GljOS`qkdE!Ed5VmhI>}sb85}3=TCZrJ zkr|p^px>Ns$l`2wI>n->X* zU2pr#V*6I@R>#B(uN1kjC_7D8-rU!*^|-9^!jv}+yV!Yo1%5NeC9&vnpB6iGu-$`2 zHOAQT^`Yqsr_$8@R^8JRdMMo~VHKaCHfDw+^QNQSM)19c;L{K;JNEr>ZR5$ zWy4K(q?nZb5^|gj9(jdWs{GIHV&M@@f3b1{%VJ}Zdd{qlzqh^~xhq$=J$-LB!+T?^ ze-|YRi~JhR5+=90-}t(4W$TT7ofnQwSa!m@SNPD4{^=aA)jb}wWLkfGVC5wH`Ab@h zzT@L#3pVck$jGGYxM1nZ-D<-qLoYV~X$oM}0na)RHhIO~<4(t_s8 z2Yj0MILJ-zg@R>q>*7DEX2(1x&zBReS4;Xh<7qMQ z!8hvHYjVB5Hd*0LO3#ynYT=hvJ-=^|dc9z?N@V7(U1q)J!uvg?Ua73ETRUl^QB&Hj z+_Ls-*Yl>QN=ei!E^8|^o@N~TRwd}=f@@Vi*-jE7^V9DMxqSM&r1bcSDNj0j_4B4} z^GUk7L-OSe>q`+o0{e7|5*{926@B-~42k)37iKM6IHA6IQ+vQ9g%uX7o@rK1%lQ8B zT3GF|fJEp1O?wZzU39;4q3pGVHap|ZZ67=&woXWUwX85%!Sc$K4JBPJiyUXL6|J^Q zRy!#b`&)y3 z*eh)I!(z=8g@YRN`GgLAnX*J??blh~uWSE4`lH0>ldj7r+fzG?1zyb9H<3y5(yrW= zUKZZSL#+*K@1(UH2=@EBV4K^cknSl=;ezjeugotzeZbUIJvLqI;qGu z&13MrEE&CE_SA@?KXQDRjZ4jTiZr&YJhOd@s^giNM~+!PkoVWv!}BWgzRK2VioYJ8 z>9#m{CaYRl(m`g_rxpe-sJ|ql}ApbCH!9RY;moA zn#!b-%Vk13I&sNIzns#sHMyU4@yn^)Y>Nc7V@At3AVzexGyBOS?=HqYi19MH6p5fo#b zbKTSG%JF>1#j}D;^6n)ltGQ0t^m}XL6$$?WZt-xQc=32B4?UPOndN0M+v57EN+CrPj5z{&5^g$qr091iz7)!t zDCv4Mpj1ewEUK${*;kjA+nzcvSN1c`72S3=^rF0hO8vd%3X}EBD(=k`EzZa`61d>X z)Y^K6z18f3+~sFmW(K-ESrHMx|MoF9sUNE|AG8WhYuk8J?C6YknSiUOTf7T4#mY(= zzg?#;l&jWQKYdA=sx*%vi(%;eh0CV6zF^yJonbRWb*bUAnPu{eBWq1BNw*lYztb$e zvo=`xYf4Mz;$|0t?{95c=BFQfTXQDhTykO7S>s0!o7|@yX1j29$&A@6P3P`RlCXCC zcUI&F6*{ijY(ErZ@Oc}f{urfB@mdK8}-C#U}8N7~ojho$nB zZhq-bc@^~N(a#wRZ*ad66R1C`Wx8!{TaRLfqD#uly8#@RuDmRdUbb$UW!P?=T;VHv z(ixsow~|w)EuGe$&|snJI_FT4vg?n>F&j)AFSxK=_chpjQ=<6yv4GT;WR)*04qGqQ zez!F-Ds1ZV>2-gs7he{coZ@zDaojJ1DP@LN9&fMc+4KC*$r;?D>EeYpVNRm;n_tv5 zT=A3VTx<8Ka1LVvlOJn?+U~2*_nkI+wAaP1aC(k03uClnP~`VXR+bMx>2JU7{dOI1 zM))BcAEvsKTQAi(FFSdhBd_1!h|(N(6VDAVG(8V5v-4ojTyRZ5ZL8@UgUS3&e8ukr z=f1e*F7fKJSdq;F(`^&J?`jh|e*FIPZMW+k*Q%~GohRk9d(zg{V~$?3`=-nE6(xYX@R1>RMj zo28iWd3(1)hMHA`|MwYxqwdaAZ@t*eDVlyah;^#M#|>r`O3woWxKv#4oK;|YQrtaT=xC)mD*>UEJ90#HA}ah-4Qc8 zs4?xst{AIY`^oE6VYT2TX;ikWAXXOaD#72EAXcSJbOqrpWr|!d*w0Z_>W266Z zf8QrNdcUj^;kwRtVEINvhrY>;r=HLH9AoLPXvcrvOh`xaJ8zrUbBD6mHW$nm?W&Kf zYF5tmIl8HL_lKOh#$2an-uIi=A!2T%J5$&`@^#S@J-27l*)E-T#V42wl`q_+zH?4l zrQ92dhg*8mqgOu9k>?QCw~?N*%-GDNJg`=oh1*%-we$C1hE4Ac@5V1~t=V9}w`-;8 zwPm|I%-rtG^PV5v_fsv)nd_=_tkkO|3QW(vF5Qe&b-Pxn!kV(%+SB*VLSsL}>jwpl z?^u_KrWZ09IXc{`%u{sG z3z%%LF6OP=U=ererOV@*E?KrRvoM?S$}jXv#0N->9aj@jGPUQo|-k=GxJ#N zikv`$6)$g^-#seop%uAUt6uiXlIxECsrBcB9%plU%r|-b<-OXah5Ks4+;q;T99zlF z`O4{9s9}_-VdeJ=Jnbu0o&UZF(vZ7iS}t(8&|b)e=aXFbVU>$g>m?tk-1Ixd=&$kN zS4!l|xTbkCJ!eNR6$gNHs}-t%c^>$}YRTcT$_@;SicJ?&gY)`Z23b{s}3OLlV>oDVh2 zY-)I$-nL+-TbtsEiH=7jOV7Ie5pwn}IaYtNJzV&UjNbc=EUx`#g_l%BmYk4Py7PR> z7SjjIR!sZ7@|oiHyAmfKt-0N1a=$F-EVIcpyXO;SCE~LSvn6(Kz4|DyKZ51y2cKQ- zw^vN-ZLu#i-@MMC>OijZwe9`qmXu9fePikE?NcQ#h8uqlY`XXK*EEj`n|3z?Kc6$j zkwtmWwd$4D@h-XYcIofa+X{uJKHhrW=Cj7_7wW#-&s`OmV|gl1>Ty=5+rpVw9(}!{ z$NfZ2-0tVQwR*mvQuy+xUUdJPI=v}Z^I3!1tH7Qc=eNgbd2{_S=+(b19hvq0_{+Fi z_ui^9o^t9=`r7~V(*#RR&uxW$35h>ud5GC}-%4HHDEu^UdA)hm%XuMt-zaU~JYCer z{Z_j6#LXezr(RXgfA`dJJ1^&H{~ePWa}(mq&So>V+`gsccq%NfZHbMvEc=SB^S8IG zUud~T)q?yr9J1cT1`;-VGCZYDpaR?YMk@B3Al z@IN+W<(z*T#r34GRWy6oGf7Huom8n`74y!{_U*jF?8MoQ-yZw2G(KO&7k&27&E+iW zieFx4zEE>gif-S;EiU3I**0OqKfB7~Ij);_9tiH;w>j>hC&#j9d8;Cuz7;A7oYR?- zUewQ@`{Cea^UJ$)tcs`IY=6FwAP;#}sXmwdz8?!Z%OVoe-FGW%X~)ODvA3il++wGBv#&@%)rb+`+@U ze6l)p550(=XY=4%Qp>_Psl_v*@B2TxDOGRtTH(_-OKr|eM=k|PEWZ|XW!Cd;*Mu+3 zQkXQo`u&E*hyR>*s|>hxjkiKgcky16yr^x~JAW6xTJP?2CYM88%(K&$r8_75R$|p@ zjpHfLO_?RPKQH7y@3y0Ghq>e8Ti(BdwpFh^w0Gl{3U`Ifk3Cv!#$jw_$CkXeeETXh zF4%jLTm9DdsL5~T7G0~6+ne&ywrk$%XzyK*Pk;XAnf3OpiqiFf-FKvJAHBX~)?||z zk*r~N1H?-%iwG0{MNq9IurZuuCJDnAcuPcXW4y1OxoW0lF? zgLz97c$Rh?+;w+iWyrxx>BqUMJR?4(<<6ecQPQ($>lOZ=Zr5_npKUwMsUSI>uN3quL-55V>tuMFCkBU2S`5&7W$~;>v!dY9Ua!p&xe1g}mTMvTz z_A+;D-q5D`?duWwoNJ#pX+`F-Z@uWV_l>gX4WIO)kl&okUw1eQyNS-sZSy&Q^W7AI zlF1Fz*S=NvS*Lo(dvUpR@5J@Iac@s*%T2n{c5l`(3+7Gxo(pXK9w@!Zy}AC1oBhSj zInAH>h4Sp<{Bu97E7)gn&@eo1ZRnz#J^I^cFZuYihxJ_216u)Oy{8+5Wfot%QSd_5 zXW3Pc^2tBSGw!fEZa$jdHm|Z#pm^qzlh-wJBqp~wJG*nR^K`$Jlj2p(sHqkB5$69f zPw$K|PvhIk5^FwgE2`$GkFot$gHCrcKb8c-eQ2^x~**yA!quNfa_2KKHluUahQPT9?9w?1{34FD@=v!kJdK zb(hY>vPefj1GFTH;BB~*`P&n;WG^gaGe`U@YuEIFBwdu_(|jH}0P zWCSPO=#ZY0_WbK71NLd|9Me>0F7r`c%ebMSOF^2Y$7%nPMMBKpUGqMrN#xyoT{%}N z+2iL`m9ICxW)w}_JdK6HUwCOuLsW;au%1Karim6w$?qF4yXQ?P{AQu}dn?PVmP+Qy zx%z7LQbI;T(yw(-W;r~rU0l^MQ$k_o>AbBbEW*29GTn@MUg|bwjXV$KC&QY%<^{U;sh*qu<|RdGvj>Ay1;dEv91WCZt3HQ`j> z^nzE;=lkuIOlsXzZtG31>6zDMU{DdSUH0sK;P;y3m-PYZ?7d90Q*D$L-5Wo@s&r?P zm+;}?Io2)e%oCt;x<~b~>bh&*e6Kbv^ouTK@Cr(tCnH}Fsr+!-V_lP(4iY9OJC=up zv%h&!via%+=Fm&6uhcmNjjG!ZpZRfYaZYm4GKs_P*@1IIN@7CSlq}2BmT$5jYa|gHlX_q+Bs{W>uhGqFnHS-ocYT2+=@0wAI zso9i@No_A@E;V}YP;_q5hN4BX4^MA)Y`UYca`C&M^t6-d`nt>0Jgy5Y$>%vRD}TQF z>?ddUirorrFrA^_tLN>VSQ)-UEqgjUv*>&4zZw^#c6(>PsV@=qPp{AXKDA|Q(n|O9 z7wzLCC54fcWGqlhN`#Xmn)_(>UE4hVDI+j5T{9w%WK)fn;nt?DcO#yt0!$tm33uIl`B&+l?s3n$^^y7=LpW#%ZdbuWUItUv<$%mL#LQU-cyS%Co*ajaAGBPVRWrQ#gazt~CU$BWX1{eiWTm)tip?0oIb z_xxwqe8oB61k{YTylb)beaLh~lFinINs>w9tzOK<4q1n%=e=9bmIU2#UBtgd?bMCw zCno;hTCzJgr9P(N23z9wJ>46Yd7cUpD4&)RE5PVr^zT;eZWpaf+b8KZXnkPPk9pYP zaZRe2d7T2|0W)p(FzeXc?aaT=D~T&OPCe$q@ZlF%m_*Gq)i=McX?${d89gP%VD86` zB{%Xe?dIgYwff$h^BFv0tZ9?h2_IMNc3u)2QI+1o89c(=KfCMXc0D04XHXEYUW)1MdW0i zH>b40iq%{^aSsj^t!RESVG7S(mH;=&az2TuTT=f!_CHfxzU|oLcgA{(*__k1aChI+ zJIAruENOZvi=!0-Q{4OMMT!qvBX}BR`b{U>ny53HPEIv35qzuXAe*A?op^Jp#6`!J zH)rZ5uQHLgxAmw!y-K0y@`QUgCvBhoe%XT9?dPUNJKIQv{8hYO@!a!xwun0at;n=Z zzqUlzu2+>?HMec6iJQ%Qor#yd{@!>ynZ;C(H!79w%gt6{J+B-4qMlE-H`S1Nt8n1v zhKE0E{X!?kzE#zG{A7!utB0G_Hr9r3Et8u~T^Q9TpD;m$?dC%ogUovUJ$Ad;r$tvm&*9BSTyl?&+!1l6g=@s+I%gtq3g4<4{O+I0+!x%UD ztGPV;?UkN>uJ>0=mbS2#78Ba}x8;$2LF;XUPP=1J zxfas8Cyb_>zF&0gvCHJwo+p-w#&4>AY;rDB?|xbJ6t&iEGgtWwOwU~~Yxl{}2|-zt zCqK1lWMS)0-!?hRQl2SCVRE;nr+BlP@|SO~+0yRKZvDG9tf|h{QGWA>J)x6dTPiay zpUiKi&!|1w-b!21cag(w-!unnPleAVy$V0K&)hIg%|@MhW{a;u@w170KTet4Z6#lS zb;Ge>v4zrwwo7!Bo9E0}?YuL;@Vdu@ZCAuUuJH_v?U%i?S=h@*`fkYPe&1GAPG9G_ zA+^WW-itL|Vs6A5h@N<59`JR~#Kygm?dKIt`KvlNRay$Yk9l9Lm*N~f zW&Wd({WE7wetzE8N&UURvDMFa?sN2Zn7KTB;*!izKj;2=7auZq1hdZWm|MxeP*%lk z^RvLC4diQ}L^yvIoCnlafdf{`PO3p#=YqEj)Gosu+&inJ?ca-X8--%~k zzW@2UYi-Dk@{2-Ug{$Hp_a0??u~p`4(G}e@r_Fz@_z)(wc(2}>JyFZ2bKPIvaY1Ba z*MjLc9K^uFLA|?fSwK?D^&T^LHzg1XNfzV{$(kpUq9@w${ zbhY7Mzn*nhFMf`FygUEm^Fpgt<$qHb?|FT3H@v09^ zYu5YE6sxxO{>zKkBhu#PeLr5hd)_+s|50B9dz-7oL;W|`m9Ncv9oBg2Yn*{imc8+( z#QNU6|6+}7Jbm3+r|aJD{1v&|!F2g8^VQ5GR@j@9>5_WgxmA!m!SaI)7^}K86 z-#4V^is{a@``7I7J2>|7Zfn)=_jQhkM;O$`CEU8aHz4fl)m4Q*xBvR*$9eedrt?mZ zoO@UP{ZmSyXOn+ACoAF6-t;O|pr3V*u#JC98EgJ17W=UnIbQ_v!5ef3?`-#-iFx}~2Kf7R=| zT^ac#vAN(z1U^{^UOWH+56sJ_%rL;`?VLJ z<}cV7Tw=TKX{ToYTiYeS`wG59z2)#VuFuw$`>^HD!Kx^e{uGn5_DhbR+5E~d^CXjYVN6nHN6Hzji*J@A}_e^Cs_- zbG}@WbNOwOZF0ezE6IJ|1NrP1+;{&mU$;kYrm)lD#Czvoe6QY8lXv-X+k0hR`N>;W z-7~i7vi-2N+TF%Kr$^Ra^T^?iJFc(NvMXYYc&W^hZK3jGjdY1lC`s1Pb-!O7^m{foX<-8ZXzfzzJeo+bLqYQ$}hWH zn8i(|XnMA`DePZWXUF85IpunD%QaBFl4ge%g+xB=-Lh)(e}^$ zhx29s$aPum;Hs2+dFKG*wvG+kHVDj0Xqssz`Ael|{bJ`jyNjLcEc5)G zeiD*tI%SU!E>L?beCpGGMPV&5&%LX5V#*_60fF z@Tt0Y>d$7pKCk{rsL#LEAD&g-KGGw!>iWKKd*!Fw*2gSPsWz3HsLqp=#KhR?x%q5I z_l)h_ao6lKxr`65nY?U)5vRL}^TK7jrYz%c+A93+TO}KBQHg$6vaSA`<9UaJL$#Qf znpLmkm>~7=k*jL1?Z^E`Go4FbNkqOo_4=yPRE51#lNaerEp)wnwLY|5XPaPKiAJ$(KDyq=y?wrYSMRZaC(}W+cJBk}SPA$;n?yBv!Si580*0(9opI=+pV}0`{ zYi-S{c-j41yR=6tQVlEjy?ru>aE z*QT;Vu{=*#nX4^RDJgj0rY?9&Iht=p-dm;r9D6_ai0-Xu-KHB=I)z19`&uVXJs;n6+KW^gEtr30NxjoXelDlK+(OgU?RK8;@QzHH9C~PSn39|B zk<$CSeZS@}e>SbkWl4HZS-$L^t+S&tmW$bZw`_7+$%$|J?-c?~6aX?Ks{TlfSXV@$Y($ zr3rfd&T|WTRxE$;bsNiRyFc8!j{m4RGHD{)e7OggnQN;0Y~_}wtXs8YfAN&Gdo?9!c5`y!h57oT^TmTd%uex%Fl-EuTeRRR zvwHZ}ZL{Up{hrHyzD8xuwu$*n$FigU9W2+ca(lheFWRi`;tp=Hn{$OP-Yb(??Hv%; zvMY79kadjj>614;?Us$cC$FqnZ~d=r^|8?JWu^k@Ki`URg~f5`dtnR&}HUw^M+uAjpD9D=s8 zxmg#lPEJ3Ta^b)6sr7j`uC2*?xjnRguC-H5t3j?#|B^+~FL(E_{m?Ufxx2>g=!Ba3 zf2Th-U-$Byx2bNc)BlsHZ$9e(f0U+CZm6(llrwIpYD*u2yBr}_HMeZN{{o_F%D#TGICE!vO8VhS5pZ=AGq)ui6-G7FyTOWye# zs_I)~zwYlxtLAjxW0#rJ9Q-=k<-J*CD~D z-J;_1XFd(SegC%Cef3vmXFt1ckJA6R*zBpc&tjFA?fLs?>AgIj4Od-1f6wX&IkF=D z`P_sh8M6<>c1zEeU3J*B&nM?zX~3q#*1y!0vNVLh&s*wpx;x_QL|dH-BB zdNTFJ^oXB*x&{BkR(+Uq#H*|4oP*ep_vMkx))c6V2Bu_hJlnL(u{g9l+f(EHDa#tY z9J~6w71IQ!9ouM?(N6?N=C){(vRo%HeT-6O8)lLiko+{yrEi~x77PS zli3X4$}Z$I-CyNi=%=(d>|5jN&Fgpkxcbie`>7vS-u;Oz)v1Y1*y~FFr`lo30hK@$Krvxz6u{6B}YdehH!0s4MdJc^}%+{)jX znWt3qsphNAPHo@${|)YS+DS2PE>QdTq`QYhu_jsl^KzZZe3@@KzZ`4gvHmU|J2!0i zS;uMV3iS^yyp(*VRwc!3&{z0U@@Imm(n&?FC-M&-zy9!h-X4zY2j<-nRann*a#f6n z$?{us{(p&%+F~hhY9%Sr`g61SDvh4W<`T=E%3p}Ox90u_o!t7l^IpDMZ@GRd$DG?& z%^XZabr-*6{`=(n-z{oWvzF(m3fjoj+gp~BQ2)R>+&MaYmdgtL%@>x6 zXzxpQZO(bamR@bQiRa&I?VWoBI>ZEb$6WZcVxRog@A8}XDcG4T+|;HrIazz%zTPc+ z+~2oKiO;+7@aD7T^x1q?9X~F!+t>VhG@ulC%F`Je_DO ze2jbhhyOoY4{iO>yryZ*wt6lzuB}E}V%JYS{73xHl-ZFBua|pX-u&3bnfDgY{(tP# zPo-r{SY;@&=O!1M`jO{HxBRd+)PMeeAA|eV>j~PA&sNo~@7ww1L?om3{_3SS&3e;4 zVpitIao&4e@ACT9{ryvS)~tLH*nG>c@{7h}GeX_ z-DP85Uu6vKD(A~@{rz{rRrZ!!_ZK>+zkCpsaYy|bYxspl&on+?GFx|e z>)%h4XCA!Bcw30~>e>6gtuNEw-;~pHvYTgYb^p}v>1H=JXP>*y^5pK1x`T%IN@9y0 zdZ#=sH9xmTJ!0M4YrmHE?Z4MpQ?}{x=lyH?;_uY2>5H#gZe{m(hgDtfYOA{HZmYWI zo|SJzUR9>+Ebp7iSekR``|bM+`{vFzu~!dUa=+<^>ej5PYbQ?ZzqC32p=IT^GcGr8 zzdsQts8BBLDfi<`wEgnMy^Th%g!4BFvFRVs)7UcXLx~WJi%W+rItUD!yMk-{-Zc|LI%$Vc+lX ziT?YhbJu=)d`{TAr~ds{t2L4;$EL36lbY7Q>&~i=<*j#E9v1m5W=&pFcBp(Sr}%_F z5)1jJ>m1&6VqL4%7k!Ca9cm7?>qMH|bHHCD=->Jxh(mma+9Y~nmc zG_oh6GWuxkhw7Ev!+ffxkI3Aaeay!>f3wDc+COs_ea}8~G9V-;JhUk`EdS)9$4MXF zuZXRMBd^Y4>SruNMd*ye+*B7C&75i5&^ZS{& zq5kluORFU}Z7a{5o>gJrClJ9@|K4g^+1Bt`TeHqPy^T!xoe*6keBqqmO@3$V9ek1N zw=!teJlfswymOkrXQS6_8y4-B^KF_ew_H}pW$)sP_9}WC*qt4HWc$JF-`i%e9L|sX zBQ3LEE$xW;!|$dR|JDBNV=}09ozwVv`oY4ko#FqkDjwN0`)BxatBAXA60~hE=)J68 z!oIEZX1apyhI#KcEq_wNw8A9&idB`@&+l62m+y#`eSUv&-}jfV+v^-<h%Jvea`m(kLJGmq5VGWct6j|$N78xW$V+;<(!4qPZgRf_GG_p&gyqR#E%rc+FHne zTG(#CnU87R7{#@VNAGJGIUA3M!ch)EU`cM16yplEh+hZqvwQ5c5yYmt&j)(a^Ur=%@*K_%n zA1WSm?L{ho_;%Zir>D;PeZRrwS8!koPq)K=Wr^qVbrF-#`WSI`FY@u0Zkjvg>0}OH zx%#z7mpXNLzhZ3B|M+$Ds;v@VPK59O7`QMjIpn*$_nHpxnC678R)e#*4^PXjd$KjL zdw%@quN%tkcG-RL)LXM{daaE}lYaZ&;F)~YLI19AP}kSYbgbCewz5BZ`#vd`$EH=D zA$zUi(05^XxMe)qA(@v=(l7Fk9N5qEh@U&`mc zitxXqT=MxiTkk10^{e`sca$^!pD~F38YJPS)4{ux{p2L?jSR*WEqbA!9F(PtwcZ`; zJzO4r=dMb{;}7ZCyYd$LK9=@%^>m%W$-gg5M_JgWaIeKbw&bYOw`SKf-*2sNGm?x?4 z)T(?`ygfBj)zHRJrSGpi-x-PLQd!fs9t-$i`}(@en-k&l>m2rq9(s5%DE-9x$fMVf zDrH~O_uf;H=zYPvigVZ8jHN5CFI6y+-EOrk+2;?#nQyOrSFYM=QJ-2^$hE_Q)xyh? zamrIKw#ScpmTfoa72C2o<*!g?=-UMco?haw{r$gtn#kP)MMpkZ9a<7Lr86XY)0XHm z=1XPM@2&Zxw==n7adqJOjWTZMZ?#+Ps;NBcK7F$O^mETDnC87(n0cb?!0KNN?qN3; z-n((}(&g{mg}M9I7<^!fmV6kbFj>)GqCS83p=)Ie0%P~qFMOr)=Wc=T@<$gR)bg#o z^Dw^t{iU^W-L60Ot`U=VzoV(FA-p1XkB*nxg|4237cy2o z)!+Q%`9!!^jjiEi?qaq-tzaI2)QmR zwzJb_z1W3>kmsEKoch+U#J323Iq-e`M)RhBizc7*moQIPYe|0+Q=7KlVt-WrIeL_&og=7 zX*EZ&^M2H<69;zf@!sTfl0o_FqR9aP()F{Q89UQ1t;u=ma-~NhOzs-X=cD%9pBtGk zXubA>sd1`=`s&@iN}LN1q&!=w^?%pLlxKM}IaY}2`A5hvIsHPp?m%vsd*w%~==L3} z9_B_)N#$Orp?Ng!z;4Hj)3O@H)p}lO@63rhs=6}&XOK=%ZwHT1Tll}ZR{Na0T_k&I?cPI@oFTipTHltrS)JBdJ-}fX8F==x^Tsil15grInTy@E+y56~9-YcCE&vuYdhD58c`M zsi%+ep!~dd8=eIEoL(>^E@GQ=!h}T^9WHl&ozyR;dDh^1(q>cTCEH5=#oteo+Gc=h?J+V{krN4Eg!9GNzGq12bK1Dl>m&2n6$RC;d-&)&*pkyHDX?;Ewv zW9a_4OhDn4_YbGUGPfIUN4%JYLghbvyYy(yb=A0afg!gSuT&3Ii*4>~PX0PEbnDFe z@7#u|Q(D*gNdDsEnPDXVC*R!T5SREgrV!J*^>5OC)=sUo$P;e#t0}nu?+sgn>4Zr8 z-{pr)l^0$8v0=_^UZsEHFKd@XX+Cw8-Mo7BxwoPzfnqOGzB0}2_#w|X)Sat%M_{(eFWGv=>v0=8?X;DDem})|Vr|mSId4-v zr^r0g?Q`zQxA}PUJiCv1<#F3N{-pu}hut`pfnus<)*nD&|4nn&+8}2WQUjh{^YmShz!Iuh=ub zCxjV$}QUMXG8@V##BoAvM6f^+Q~szr2f-kAI1 zU4aJk+E4359dG(xf1%#XJvSq-WXp#73leW9oP6f>J?z1bNF!(4B#n%xw>}?H-ZwQ{ zEJY*O>B*_Ay9e_(YW|$kyKln*p858kFIM*nmOWMD`1|4egG-4|w$?LBtjw%%^*dx7 z_cY5rBrGZYqYbZn$jzOBt37=B{uR9zsqd@z`>m$C+Ai?tg`@Rrz6u_fYAUFFt*x;% z+?}sxbDH+Ny+TRLr_GjdijKatX%1f6QG3`6Ivu4IJ zxr56Z)~eUv_!Dx&X5S}=K7X0mV;|0(%~C!aa8fkWo?G>b&Bp6dX@Zj%ZFCR2&-`d{ z=$-U>Kj)6@{U5DD<+~3r=>K%n(Yqr2z4VtKKX@lem4|j-YS{Cmd;Yb`j~Qp<^CRm& zpN;d|bMSC&|2m=P5570VNN(iQ`DOayb$k5$iVLqr^}lcHW;gvi+w`OMM#HmTVlSjb zn?x5k`z4%?y8p=Odimzf4$GtNnY>u4r|tSzdHJ%(5wkv?sQsI3Qlvd)*Fz&ypCq

ElYtckbR z{aIkou_{t2kA@b`*sD4GYL`TW`B2S$%c7>%DdA|C2tQdUK-q$X`}B6T8r- z9xa}}q3$l<4NE>B@xL~yL;I{~z#(l7eM_4KFJ>qh1%K#%#P~z^;QKj0#5Zc}uc9+!9>X%$$!_CeI%UtTX7T-?-8bJ#xZ{oOeCVCTeJ*B1Wao}}?e$m@{8 z`Tpd2{Mjr1ojT;8(K7wQqv++eduyX!RVrn9UCFwe*u8R^yOfIP)CJsc^iLgopgw=5 zu(oKQQ~tz&?p3{Oi&hHD9a>wzW5Lvt-n%;^zlVKH_|)#Q%k}p1?~j-Edv6Sn{`L2F zgyfz0&`a-*KK0Qt?)EPDJ#qHaYYv&Z7n5&2&S_2#d{$|ab)5BN&+I9xsghh)YjS3D zXF6Q*opySYwgSTg<;BYKHnWXWw#+eIw3`2l#2?eBxwb)%xi2p84iOam(E1{D!+iUz zO^0WwzCV^CrJI!)=Xqzvx(H7j$L1|rH=hf7Zi_wF<|26dbP2Pi;O>P%-;6@VZe-OL zuKpH2SFTTI^EAz!XC`|@_|~u9ZRj(FMfUT;w+gdfUHomd2F7zWo-b7{_t9VqL}39n3N}#b?;4 z%C>s3El@gB#5wQq>hN8!^Yd7PBFm?=FEsl$$7b3X#Q!>=x01%@3tEk{e1JP zGWTLq_%VL2MK>1Mo|y2j@VRo~o2~nAx7$uD5kC8vun3}tY!TvwbwX#_PJx6LUCKS)Uvaxo+)vfZaP~zDuG4Vs zS+d2oqtbM5)j7+A#TuGTP4AYq?9P5%rkj73NKa`(@fbyYBT>vbb@ zudAo6-nY-+JoD%>uJ9_m>`VEUY2iFIx_HKNN1fpHg@@TKrfzTx4sMUL>Z*Tu ztZ!D>&8Xbc%3GiAEpnE(X4(*5y?x)+MUAt#GmlVNyS0{{Pi{;Mu>Et}-+ZjITSc!Tywkk; z^^wH|HAh~HuK!%tXBwozyRXrv+T=`Vjg$RBUk~PmuKlJxyz)((aCu8$V{hQ=cdGPsfeddXsnF z+{JH>=Pi8mC2Vhg(e~^8^V*KTipsED(0ZllJoCy7hv2gdz6o5rcEf4C-@%yqrjln5 zcFa<{mSN>qpY7Y2EpRuy*s3tKMItQy?c3SY`~R)U>oMebJ=ch5-JMJp%e8Zr?nq~y z?&>I>-S;quPhr!H@V)X+5APE#*r(o@r?dfZ# zh)s{?zEW}KcB8Sv&Dk-VXUWffv+0t=cF$YFMTrScD>_fdH1yXuKb$$eW4>tR#~CwP z=1Z*;4$|F}udMXjggI!fwqRG;pIf_jybZb=tLw*kyY=Cxv<{OKzKq?frt`ylb!KIM zJ#&@)XYc~e8lxp2-*zhE)(S=@0d~vmU#~?w?w;{ML>~LLQu!Oue6GJzTQj&&Ju(TTjh# z4PdM9Et+u2>>JDecwyJ*j~9L%>TugXC*0pI&}8N=x7R)hsy#aaT|K%c?Td4eDWXeXRa#LfCVs``53E zTb9zRqSB+kGVbxCrt>>Amp!yLVR`rJ!>9WdjyERz|H-^DIc4^p=QsAt8y)((<%j0K zkU!PuSNxseJk9g}X1}6do##^1^?7ff%6xfw?e-e0pX?U@=U7cHD+%!xR-3PsDpGq%#Z^R+;7$W>RD@%vhsYH?A?1x=`mBzyi)2Fvgs{< zH2HUr3GYm~u+JPo8bqZe{=AQ;r2hHzrp3nn`PcFGmoScIhY=ms^86b_DzIdqivy6 z)>a9tmf$S?!0&5JPD}5*p?7|jn3~(cQ(bD7;j`M`h_n6;eWS$rv#tEWJlW%N+V{&q zW4g*o({CMXh+N#JVSKD%d)4cWtgGZpbf$V_EDu@y!1C2A{dyBU^Z)Vjd9|{Ajhnew zB}J|LS1J>pUm*9tDZoEhiC69MQ@evtPsR!~-O#g<`CWL{rOT8#^bc?KH2uddrK=SW zSgww}HYe2UT;$d+^}T){S41rIas}iAIoi%VJ;L;?Xi?Xh z&{o5O{;sD-L;mG^`oz}13OKaM?S$1_@n@M^>)cj^?v>X3AiX90U`xf7?UR-eo-3vuwx7`RuhXb-&bB)!O_k&3Jbx^YuCJ zS7~fFcJW@Hx^A-g#YMI2QZH^}E}B1K_muyee^`F(Kk)FxQ~yr$&iAKHc5FZVer>_O zu#dJsYQ^i~TZ{Y;zh{3Gcs6#Sr6FVE;Ts?C`hS11cT>~+vez4w*fh)|8NKH1Yc6u% z_iO2O?yvQM>T^DJp+USI#hqvGSX z$-AH1X-yK>pLeIWEJjxTkAd9LrN64>Ke2ck?(}L*iQrqf`=5N=7sJZuwL;>Ko7NQS z%81-u88>n5PoDpC)=w?!m{VSO*J3Vn4;$-~-~Yds{SN+ey<@uzr{i-Ukz;EP@$=mK z{{L(4g;x_Qx{t-0REoaYT3?#!*B@;?Z)@Zv2Fv(c-%Y=DkHh5A3Phj z2KHC~X4Nd~e;fNR`}NnUXF{ib*?gbhx%TvQr=~T>JG$B@ggrUq^xlp2y7JX!y&Hs5 zl&7vzp1<+b0;kLUEf>S9)LV4F*$S3k^|VzB&`D6!T=x0wqPi~CCAOKj@;3X_-(Ira zd5^5~F}b|kwhDEOb@^8(u}^*Y`^$PMed#07H!s}z`dR#Jcw_jtl`{e+ckN@8)+mUt z;&}C|EB%>D?}3Y!JSMl(SBI4Cw_4lVaK>$i>@TVP$1C!8Z0IgoE;spj&R2tVM-yVY z5BA*qv~ck|gWMS%{n3+BELW}MD_)?S@^4YSbY$V7D%;gczLCjAq33On_woEWE9~^c zXPH7XkMI2X)4DFVnPh7}<@>nV>DkJ-d;70WW;xx*GILi(#ap4e%ZpE%?r+)gP2TS7 zhL-2GHe7;drZrx#y*Ag9|7H5(Wzlanr!KhD`qkf_VJq92Yi;RD3m>}MzWRT5{c5?` z`jr1}-izvg%ndF4lOOj-_w5?9S2dFEr!Tv!GKMVRIIDkWxuUvZNPmsxf~Q_iD|iKF zA9{LfmG#lyBqalBrGWSU4DRg|IwTfYyi(e4_oT%qHuXIH#=O6B_2kCm{&Hpy=N(A6 z@ciG~-@h_{?6$8eO0|tljW%=HJ%2m1^tQP7?CHNHFT6h1bgX`V!dYdf;;8vQ4$M2S zX8qN>?1nX$AN6d#{YLozr+?kz{k0!wjQv;@7L^URA3d z%lsL1vE+Bw`Y9YAPyXAt=I5zrU$oEu<9g@6A#Z2ETg#@l*8=v7mHgJ`s#jb6{&4T) zymi}GCZCTgee+kcG-mbs-(S8~)$V(^V{S$j{V z{;25IAk{1BYu+;E|9Lxi-+|h#rYe1Ne(&ASarM*ccjDJCK9BmiQk8fBD}GKizp@x6V!I(XETC zLsb1MzPV_gRM21gHfX_>$-Co=!n_`y{wjW_f5v+G;``HSl2 ze3yB7v@S4a&)=CJy0cDxuX?}x7sJa-1^YM7d8IpXlh=}x&RYRHH*RuUY)emYm|42Q0DCqa2J6ZdUw`(yy3!UE2%yQ(y{Qq5|$1dFdk~2@eTrP08joQ}S z#%(PzmYN0&m&}v+wRMZwothaTk-Q#^&whV>d-})kQ)VBI?D$%lzVN#E|H{9o_wVd@LtJ@5KfpJQ@iP*KK|0UdS3YK{5Wj$))r5dsDCWo(#RG(fxq`mfO=;!LPqm zwJTUy)c3xQ`}uUCUG9^kI-T3&yyhQca(z`jk@w{O6|uZ;@n?$5QUlTdT!{<9gBp%&WJV zzAyB7wa8-D-<{u2tM-2@df)NXx#i2$`sHC|mtJWGEctt@e&eeLXV%F|{1CDVs{ij^ zyDa&ITrltKKF8DLUv$bJ__aLzEgrT%b*9S}7gdhnyG7o)UuBi|Pl(yhq&PDp;z#6u zw$!B=AvX4h%Rg*3@`^R({wlj^ngHu5%U|o)9F)}fxXy&Lpz=A7@)_fnbHZzC<}I8y zQFcr0kD}YzSG29A%{A*oXJqUZRa>-YzHRbJY%+ zDaFWUKNtP_|6YH)%XO)+irAnl#imKkk zJ51)K)&D-5-ez^>n0{n;P4&*0IL2MR^|p&V_3j2RO>s>NS!{N~XJ5=lpL)@j{TI0o zZGUvn(@5Zt?#J#&w;#=o3);gU@Fz@P@7}|u52g#`x0e@O{rULO?@!BlBsbTYYW&zU zsg~bUY-d^Heb#v2?!N1iER}5DozYG;ZA-)J)l%FaEaks@W5-*uzuD^V)|W{&Oyauh zu={oClyhGr&$3HM8=nknl(AO5_wsQ>{l6s_SKW%g8oi$N=8>y6H4=X{eqR4(lEv?R zD)W~7S$(bee@E_|oLH?DkN?&$@6(?jaGd>roUHt%>-?{u_rG`@{_^?yn``>k*Y;cO zt6Ocg?_un#AIBVRyxu379N68_$@+1%hMZ{pBfClYza0-`NyPO(`Eu&s)?&dW2aQea z-wVwRtk>_7YBGDe>&U}C$FrKgw_@VnesDA4mH*azNq?CU>8_JbWc=2w$eMum5 zXM%A0-b;^c3;xQjXW!y7|C-1r|NYVv666oQ;qj`DT>pg4CeM23@2AgGgdV+Xw^s|Q zu=%G`x%X?WxSprgnOC!S_ePcXo-1wT*jiP4-}|>L)6%l~U0Xawr~lq_Py3zFE9(oN zf@cbD`+P{_NmlE**RglS>{g~mbw2Cn2;9#Y8~*m8eE0W0@150u>Ta((`B2;BZ^@m_ z(bZ3l*0x#+Xb1kd{pC@)Pwk7VLXyH7&68B8-+p3#%RF8G{~`-TD;-UlEg>rdZ9m8x zoYbx`GyinRFXhClwQ}_t+)RnN9D#oqsyzPidEbJ-rxgKR64iI>Hf#LYyx{c~kGGeV zwt6m?Q@sA5{I<>Kn71z!SS+4tcKK{sr&?Wj-TwVtMYsJcWxRMMs$SOl z-MrW7=ESXgCU>`+`^>f3^RBx5kaT0_j-;sD%JbO2dHh^_Nn`ory^p2hr`JF6zm>dr zn(efS^H1+`-xDr!@ZT)q{XAlKCMP-R8U9wS_$F7izD#SK#sTf{2(7$a@dH!3R{dal z6sa9Lhw**8ZU#qJzUOwH&{tkpSE)+I1v?wDWL}P~x|lTCPmbsMBHntJWYf9RvL38z z)pI?WT{AcDt4L}3lNYtCJ4H<-{_it{0N;^1TLQ^Mr zrN8@;ZJD+=7k^DTb7}I$a*=PZ4@5NdIo(Z8iBd99nYv-uoCZDh1*bWWyKVB8V%y~H zx?VrZ^Ga8L@Shpqb=N%oXCs<$)`frn+A@pxL0820rqqji{@xn3b&y55%=1dTCZ6s7p3LxP@}s(sE$hDg-#S?$x48am z+;CeU69qw+2tR(=EnAOQz}>dx&P9PRYpH`x3G=dJSNc(>*u8EprrkL$s`8|1+xcpT2!_o2l+Vy<;zh_9ToF!R!KfgN5$!?zZiQNf$ z@zY-3n9KX=-5TZN<}3f?l$K{DUo5}-Q+P-6!j}!#E+6FYWp3A4Fz-|7z2y)8JD&-V zN%GuKqPqLzwi@F*AtE}-v%_Dqvb{=(^f;JYlCS((BJ{V!R?TMd_1_}}W^GUB&$To9 zk#b4ycF$GmdaZ}@X*b-MUPjDq5HK;eS(5B5^6PW9p1SLeW$r18dvpK&@rl|f5HX+g z(D@r(dsBSPJ68#x6yyuu)$z_((^uMM(-QrY(cjMP&OfVQq387|ohziRrHdv6 zuF#HOo|bZ8)g#zB!gdQic;&w9BnKgE-`=B-$TxZ>j3 zLMsoO>0Qk`E3&0rX4mn~CG~ucHy^*fT~c|sao3*3D^Bb0i=Teq%47QZdgtluUlvui zuiIa9uto3s%d%lw7`?|gaZzjp7QW#Zy_{)Zb&-lY0;v)4Ox zcWccHJZ`=%<>JGykF}MoaxTXD*E&vKzwFTNqYHEbe9j%2{OQ*BtJVhsUPRBWUo>yA zR(U~X@-ok9e_U@yA6eNX;Q7$5AdPpylxZFdB))#BsOJmX@z_>W{rX;~UD`8yrM6u1 znAv+T;JvM?)Y?CHwO;*N7bPhE&?}DTa%7IbTfIcyBZhak_Q<{VoTbih_osGQ%!#|| z_xrpxW;1px3O6m*RAYH#erb;I!P}pvPcZ)Hu`B**m;I!D4*6bB4m|#K?RV;m*r)Ov zj9$M!tfago&!YOA{)b~*c<0+a;Bw`PdG*X@-|et;4I$C*zH!g&PC5l`<+@cn%>&X+kk?ne>($ zF=9`*zI1*h5?sgsvvB^B<6V<3=kEA_ds*MH!i~Qpi<_q26^oUuuQ+q^muFAhFOglF zU!0a$;+A%5Mb)LlSDTVL)OdovaL=78aNj^+zNLK8t_?SCDpm+Z6{nW0)D<{)kdLvG z^@`|IzYJG5j@~}o!}!uJ6n}M@v~M|=XYL7w9JNV>>l!SiS!GvW z<9C^J<3o9yd|$$$XI#A-PWnYHdhp{dzuFzWwd&vZy{amze^B+wUv{1P{e6lbRn8R~ z{E$7Alb)2&{dV$)8S{k}^-T4d&*3WGX7joA3#TaW{9a>mLF2c2F_xU|HsN+(>Mia{ zo?M^z;p1hsKSJI=mK&c=eB@Oy*Rtb(;6;I#PPGqgx>Rt=U8^}uTCWUQkO45 zsl`zqzRD}JFIfio-&;HXU%&bLF#dO&ewm(4uQ~b1V6L{Pp|EG_E0c=bw~R{G_dKfG zqkmKV!fpSs_PrJ}-Z3{xIPa}|`gPv!gWqP=-}m^Qn)%U%U1=&~`n;)sS1eFk9>u$O zSKe&1?QLI;Zr*&jFuzCI#Xsj%@5Q8p2X`%dnm)7juE4n$k9?LqOJdl|pXTQfo4aNK z!+f)}!dRuai#wG5E}6t!bMjzcl~Mj79+N2J3lirXk}a5fue~dHJU{Elx}0q*in_n1 ztiD@0_wS8*<9x}8%oK4|lT9m@fBO|1bN1Tlu9Gv5$#$A3L&mVW8|k3WHz)I^*97T$FJ12B}mb;e`5yKTn)F4_>MI^rd&z zeOt>F0>N{?1Qt##u9E!nrap(WZhOAonW+c97|X;=$tk_VX?em&N%s^Xkx~+)LrU#FI5B`o~F~kO!LA)spIYyQ(flNXGN%g zH_U$=$jildS?A1A&t<<#4<8EfsNoY9-0Iztw&dE%X}ynYO^PnRI1@JaxAwnF&sk>Z zY}?eN^OEs{m94{n$N7PsmFhii!D3~#Z$(pI?apF#h&Ks{FIVj?;k7#ZiScalb}`dC zWeMrBPhJXa4Sf40#f@j#jjAn=@89O*I$B>fQP3}C?b-V|M=jOz)1Gbfk37salTZN4`1W$2Gh^H!aGRk&w+@*?NXKylOMU!O?5 zR~PxOey)I9XtBrx@$-t`@{@aBzMK{-5;Dtp&&>0S^dGCwjhX(eSMynK@XfW8X3t#1 zy0pMCIYfHOOCG(2=R5zb?f#hZ#FCfs84LfXFrmMawtFnL>DP0u(&+AfZ({N5-uze9 zKX-QTX1Z0rb^GGmul=u{v75CdZdPwilC$0XUaeZsyH)Dl2af#H-YTS8y6?whrN}FF zfBY6*%_*{Kd&*O>)2btk&)4Ghf7?=puQrDcxq3u>J}J_+S$w65uVy*&XJpQaaG zU2YV3w=`Yo9fxIyvU0N9wt2fwn~3Tj)A=i(;rTyT@z5QyO}pcHrmcQm{P6zw)~B@x zwSLuX=-4L|H=kFm<+@O5ZPa3w_G^X91NMeb3HuQ<@#cls28ZsiRcm>l`b#CO{{Qit zMyq<~DJ_e7zWCstQ%W-(o;W@`sU2N3DR9^F1`oNU&>X|pB%Z>cGG#eQtBn=We)r6GJrZGPvh`wwqx{5R2cZ{g0dpDk=LFqf{O^_e!Z*7%zdk4be(tTGqTA<8 zIsZQKc~QK6eelB0#reU<>x|WXxuzTDRde_K6#OyQ>rLgvU#XklFWG-$|12Yg#|#|h z&R4bHmVKC86@7Bfs{J~d>toDHG`}=Sy-m`dSg?~JL2XXq`R^=Bu?Mp^M+xmd{c6kV zy(csE(-xlAowqw757gZI{WxEL{ZfmyMW?-bf@bSpm#u$tIH!Kw;l5MpSw06p-gQ41 zustH>uZ&-doPWoOpykI`Hrwnxn43C%e)Z2Y8?LSK;J&y@-p9w~p|5db{LIvw;anwp zfAg*8?rX9-HuJ>sM-LL0m+mle?fZMdfZgeJ%GP-$aa!AVNiFL(wk%h$i1$d{`I==> zR&RUJy&dnfl&8;m{h+h*Vf|&bUq%h*qra-8yHq^N`F-F5+pkSEtL{G#{@z-;so3|; zuFbXY-e_Ds_T-pP>4TnSnO*aGwB+Y1-!(~DzT0{7&8l_D-6@>60)EVFR1BZ$F==|1 zqH^|T{{*K8D@6sAbY4dNTD3CXZQbSLUaoJYruY1E@8N7$uVOlvG-q-E)6}OI>T}Jf zma;GMdieb7E@k!A|5l_fUux8z;(n_2gwndGA17Z6S3L{X6t`GaYqUq~^AmNWM2DJ9 z?@T^ybw7}>#q5z&I@`9+Q(pX%Mjhv0Ui{eS9651f$lkRRJxkJGbj+}6=6|5~K=8)q zcLi>ro2#)hq`W1XH75P>;`R4r=3d%czxd@5n-veGC$0#t{*nFc*7-XTdmlIF z?2_^N*#C4=-ael4uV-4fAHG%mBw)SFhP2|78&~@m-@UeR-_2QCJB8Jp9y|&-@A=5^ za)jl~`4P`#mp7K@u+Ph5nU}{nPmE*R!)BgqYa1%}Dm`30hhL z+g1L0YlXR1{o~u04t~6@Z8w2ATz--Eq5WTHl^r$HY?RL35Vk=v=3rZk+4*&;3$`e> zT)Jc0yw5@Pp}Y}KKuy)RtuHh;JN}KYp8t&Tn*EoZ?uW}aEj}D|Q0d)1=9u7$eJM48 zAHQ&}R(~v7^~im)+SG@k+S_+;C=ywFYr?}jW^=yW-g{-$(%7FO_3T35Zhx4PSGqX7 zZN^*S#&E&x(dVgKbH8akcwj0T%yhkKyII}Nqw&>m?yF7|nDRP8`J42k z9nGD&X#$dxuk7`clFC)Qlox0ipWCauWXo&@znh-!rd})SW47rFWr{?d2`Py>HZekM zU(L7OYHEviPAvKCv*TKHOSV`21^0OFXBY0XIDZMa;LP7%pU=Il{rj(%#t*+bRNP&? z=iu}U+h(j-`e|Ok-wF3rs`9Q*f0(T6sXxJ2oN4L(E{B&}L-HPL?$2@-JDYUJeNBha zqZb|yi;j98;kLd#Hzspp?K_WOiyJrd&6;p7b9&3Oy}F8(ox;Z}QnRP4KF(_LzO$lU zdF?kN$Hcbc3wyQ0t2Z|7#?xr`A02nm)%yV#BW`)2?=} zGt5i2Kelq3f0_2nAH7Pa7Eg>`#{2J9wRKtfQ{%?}zvp!B+`RpHxUsRZ&>}N8HW~z_;#LL6LGpwMYeCowvCTJ z$R5|5H{-^St$mlxY(AaXuC1^z>++i&lIJ4&FLPa4Y+Rpha+%}GWu}+QoUdN4isAhF z=7#mx53~E2g5DaR)h{xYTX`VH=%Un)_rJ6aR)ywld!qEzcdBxiZ3t6w+cpc$_g4j< zZhi4u_@!+<&UbN*smm?dzw?XKyFbkim~uPi+{69Od{egUh~!HV z+Lt@^!`l<8ypP%Lv#B;l?mzwV@AZbr(|lXc^)EIpFk88Qi|n?Bn)--4$4nUX*5A$e zai52wG;nR^-oJV*iheCy6zd)}c>m46IN{ufmvusWwF?!p8v{yaRoQ`w*%Yw`TRn8O%?TAMrW#N1Nss zZ#BpF)0tbHH+$Co`d69gf26d&{$XoY; zSekRDi=Yx%D{dLy~-%N9)EMBzvt!LS8^)HFt!UYgGaBzUPhWlYYwOOr57)8G*Zu0fS>sOU-QPxcH5WX}aB)$p{?cbhif;Hs-O%x6SLDB15+OJ1 z%FBIHPLWY*^*p7iN9wZ9TxuRS4g-+7JS)Xc~@38M(VzSd9eOHEWa_RZ`)^7gLqqq50T!795R_dK^0 zUt!BJw}0mByfePS-=xl;wRpBnvN-tA9Ua!MIY;7D{!|ya&8V!`stooJa6fwVouJt7 ztOYg33UkfonCh|pFo|A%JE5TaEW^{4t#Q)?vXcUjB(JLf$v^8)TEmm8S>D+b<}f)O zy}WO^*Q$qhHcRYHKW>|NQf1MKn8}m(b=KC`>8uf5yu@+!{hqFMLD6pCcgt#IsGd?_ z5-s2KuV$isWzRF#$e!vtpZc}VyPL$6TV5E-_Equ=2$w8nDwOTJk=VPo+vV)!^<-ZP4W#Uo(~^ zJe<`~&m|Gc*(FqG#w&A&RpfcenEM$$Ec|Yc1=w2~?(ewTO! zPqe?>yiSzSK1QxPB_R01*3E0*P2bSUS^uApVf~+zfvRFpUTm|dJUe4XT+P`z0jH$@ z=O)Zxz7f%#s8{i_#Z9KYdki)pW+d-Lnhkr#Bol-*#UpZF7TF?Tci= z-Bt=~?`15S@k*>=pKrAH!br6M%i=RJ^G$y#A7AR!rd$zri9Rs3H2Lq&{ms{Q@Z@~&`fF;d z^n81zoFChpiH~o~HncaHrZby}eNFVUO`g|kQl@_C^2GY(x33-FeQJ@NiIL68P0tKx zW*n7pGqC@BHR4N@^na;M4=NdUI7pp#S>V?uF{%2?X|u34UlzUU-oguh-!?ON-HltO z^UzL)L1K=#o8W@0bJ$jYnm4D-bY|PW;=Oen-?!}BIpu9t{Ct)s=NbFUIL`IxUuVqc zdt@Dx&-PAKS!MxeP(AxApS2g(n{4rlRN7TvUjK;a*$>b2i>ihEla^NdU!Lx&9$M-00-t#DIV;Vuoqmq>=@X|NO~29plrw$h>{!>8vT`T( z##J>gzCQOr*4u^`a!MQy$qi9=e=}(BV!4sT>2|U8J5$%&2P`}%Y@{M^>*{hJ*NtAZE{ zm(*Lh$z;BXOt$-Hjy#qB_+^8Ib~)QO!R5hD8eAf4GVPpxbF&_F{L(b9|L^~AQxmUtTfg2eZ}YdQ zCQ)(r?8?fQ?g!6S9Llt0NlBY}no-t%*1Lv2rEk^DJN`0dnogMbV}_LBzckGRfeD+K zCLH-urKqsf;ntZedd{ad|E_GC^ug=?Oy^ATjt|T0uNhy~UoG*mXr9HD?6sfPdHX*+ z#v^may3DxXtw{G`o`&wT5BDDPxXctPU)*hL4_RuU}W!<@wnQH^z{)=z3 z{aKLkyMEdC z&+o21J=FiQi1XjxFRrnA?mLB^YE4-kxbCmybk6MQJAS*eFV>bz*y~jP^~=FtmBzuegUXtU_lteM9Y_D5??z6Z+z+PBEPVd2Kk2(X zyFXEX{uf*0X)+s%pK9uB-dM?IHR(#d-AQRV*Z*mOHILWo96Hh|f4+e;Il0F8g}d}A zu?v4Du}b$YFz0RP^y3zru|M8rqgupvd#TJYDeaXn%<`{kiBYzt+{PsFzmnAN5;LT{l@ufc3yzrL`G1nA+MKH_uLb@6vpQ$KadOm7ClR z*3O*E7H@c!bzm-6sak$R+lh!|<&83WSB~vHtS@u${m6G zU(Ze!%Ih#Jh%Y;oTzBAY!D`d?xtamH7s>AoUzcH7AF?xg)(`iWr^RhPnqQhOeA}k) zjlnMKZ4dV}C;gtZaT#mGowyenVG}pz_a4kMTvqZfcS-3Cwt_GI%MRvG)888RuOt2X z#oXPuX7Bl?bzR7F!Vcy8<^R4vu+v{|%&~J)#`^P;+QkdEuk(8Mee*Qiuy5yOgGQF_B8%(@P+&m z`775~oie|_>h$(I%T8}xURwE3c-Nka;Ou{KZ>>J3hF4GCm%eUo+4+#&^{1<<V4bX){{pZTJt$I*Y>0x z;ClElewK9U)AOl&Un+U$-xA1K63^ydf1&%J!Cw=R1Mw-=J*+C?oojcuzA^i_;b_VF z`Cb7>vbDF(e%w${n7iHV|KjkB2M6T)G`M+9;=1H&&OWvGcs6g!!Z#mpuMShMINzvh zDf-}Lfk{`L3Q)-bwjX5*>nE7csgxI|?jTw?;nJNiXeglpO9~eUiOB z?oQ_e-SUo&o0sf;TL0=<?P6}+;cJFqJ znQHh&e%()(%L>l%I&}Yb-kN_nhIx<5bcSa=-^%?`eb>p~+hohuYP$82B=9cf-HcYv!%{{eSL) z)9-UHJ^eoa!c+dVSD)JJd3yuTGc38i@NtQy_@(zX9*4O<)C9(7pSyW#G55ZQx|I9%8vZu_V?0!i*X=fpxgBVdFv(NprMKqeH`}u+ z3tv9zXsXz*csw>d?VwEKoU#vPLIK*w+@e{}82PO`ceEY3xgb{B(|yX?cK02PX^-vK z|NWTsze=%4&2{&min&|r?<779k#*XC>26O@XL_TOWJIu`5POuNP_E+fZ>JxyR4LzZ zsn=)AUlbnlTKZ-9!NxB^74M%P-1u9g>=CC^J`bTKj?UY>9#+_QI+` z3~zWUUgYqEUr0SD;CRbl-I{x6(X$E7$}hG*X_z8azeu>HMdj(9O%7*OI@g|y-oI(i z3yW4CXAyag!VjMOk2|H_PFZi{)Bd0T`WA~L5{pVyooh~;&-7zG9dS)-?}2#EX{~qW zH2VEKGOy;bgxA%Q+eWXfn?;|V(O7!^iIvb!3!Z;p+n-7%{!}}$Rr-K0%Z>QAE&)3; zZYr(JnmIpUtA=j9@#jyPt=&xJ_M5BzKYC~+x~b+{PmneL`}!k4+A^=l@w>$3UhtZ= z!X)bSEeXBVf=Qe9T$$r_B>6>r(vtlu9&!f)mi?JI<3`1W^z9Lv$38FkC9(17ZC5v? zV+t;>@;fv2)_d`;_VYc7L+x(M$sBH*icTkQxGA(zpMZwGkRugz~pK7gqlkC%b(;#j35(oX+ zxsy8Q`99cYCcjm4$<*lA3d~pu@eOEhaZL0SuKJ_4>enH;f%cR45>ddZ$8?l*lSpUGXmx1@FAY5B(?%cDg( zCLb<;c;V^ty=iUHKex-8xHP`II(2`p$CUS#8xH>T5_6pR?)Wu_S_`iKS=Rdg`G+ee z>(+bZ8gV}SbUuUK=E#keiV-PqH(fsTi6eWusbj)c=F4Z!&0}p4W&17FPDxdhIhDM)|8zpXP0|AK3s5jo}Fl;@OQR<3L)$6u1NVksg(WW^i%$lho+wq z6VBz`zWzq+`fSw&^btxC*1KRsOuE7c=CrM|}IP6mpzp z{XPj~b7 zziS_#T(jNR!eX0h^_`~Ntdf(HDy_~gTy|Zv*Y7;{#g~;|qALDYZ&1~7ekXZZpY_w% z+IG#!E~@GFAEb{@K3FdQr0Ub1jSnYBWIeK2;p_4$#ctk5L4_c>`}-E$t&Va#?{viC z%T!}NL8gv|Z9>l_Cf_d?I~V#Syq#^xp6ywIPCpN3A@ztc< zyX?idFTo({h?@8zw+>U+j_%j$9Xzte{Rp;`QY`#>RA7M^(#NWwpuLVe1BuZzFvi&HeH{y zyB%lsESOmGEBE%1ecC=t?cRP}o^`8D-Q3daQ~2%r>d(91^0fVb@Ydk*?&;HSN~*XR zexAnf=dte9KaYd9-d`WTdh1&g6d}i7_e?>eKx+cOsq!@D?gIyzclN_7w6a!2$Itj+ zbgQgQUtDv*tbazIIk<&voEpuiAO3G{xi`gEf8~j(tLJG zYWH`s`g%X_Jzt@!zGh{`(^>VO!@5_TXZyI5cgCwpCuiGNmbC9TNOZp(Kl|=)ABjK5 zS>rZX-6?#z!+$UHy&pAq=9y35z#?3w-SBYlKH-gN3eR0m91sY;qsnkPI?=dle!hQL z=_2*NE9c$lxT-e z;-JO-{d@Z6Y+Uk8*uD5|605oHG-I3f-*divO#AZIW5*;tv0J|K(gJ#6H8}_T_fOrH z@Z($FW&e=(XBgFVg69ZL`_HrclhQ`>U)qbT>f3)$N-xvJ#fn*84=(t}JW0 zCU7r%t?u`=#!p?Rxvx)PzZA~Cn2F`&W6S?{vut?9%pN}0jaYxMoUP&gGS~LmuZ#4r z?C<&_$TL^8{>Cn!w+q8Jad%!^%W|BLe?qt&Q&#xipRsdJU;H^s_=ArRXUk3Y4-YwQ zh3ioi!@bmHCuI}FDb#S6%b;WwkJNtqU$N9Ok7YMb!-!!Lwn^lxpvE4PDGnT?D zjWsHhE~knT2>o>O@&eeJxx+}T$*zPZe|)6VX`a>0Vm z$cN^(pVuxs%AOb5eWU&S<-fOd4Hno7FW4_KBUQeoF`n&=(N?d6UVQt{ayib|k#^hW zXMeB4^>~ul+M{zyj~85O4z6c9?9u3~VjUd!>vO%}c|Lyes`H%JCtJoB*}mNEX_IeL zW3(rvk(W{L(TDYhr4fPhE1sow@z*}Rzx!cWYLJ6@wf4GVjp-`eAM_sNQFO98Eiutr z%%^eAoyyHQlWzN-IUwT3<`;SX-Oc~EBzE3i@{uKLYGcDzlis}yhknetd-FzL{h32= z``_*mnE0M?&O|-cVy?qKmlRH!-0PX+IQi_-eZ`Tpf4ZrCI~Keo>h0O3tMl2fUS7W8 ztK-uRWL*J4?6KH`DoJ62mO$(`(b8u#;+|J^k8&v(NwVUx>U4@uvcJM}|b z!Uvrm9=m_5Uf3^~H=*QRcQ1Ec>A$nWzwU_F)_)V`o~bTSJn5H>teS#a*k2I~kL?v5 za#uU_zwQd=b}M)!S@~}MuG6O9{qMSd)U2t>OHa(>Kgu^x_squ`Pv_iRP_};k{k>04 zPg>-DP?0OEw?4-`roCS6P12<3a_!?;5#E)x^L9sl`OY=}Ps*8}ORj!>GIM{i-Oj75 z?B{Dj*1nohzx7}G;T!Qv#s8Ka`{v5ccdp^oYRlzJ2l&G_#R#e0-ga0qW%U|?O-zqo zlwJttF_iK6_U-+7m8icgX&I|0zk4zH4$sm%%)hhuPBpPVaL0^cyQt@qo+jm^T?yL` zPjo8Qd}*FDWBYxNdR^I0`Mt9RJM-Ho&nPvX=zDSxpN_6%Uk+=1+S7;+oNQdGd~3u` z&%Khoe659lZ26l~-^P^AA8y|lm~=?m-Zh+YX6l8A`R@}>rhj5$-#E+Z?-rJ20?*F) z2)*1rH+!{u_L9?=T~#C1-M4I&FqU0@*0{(0hxEH$k$+nw`>Pi{-^m{Icj}EzjBj$& ztA0P*akOjZ#n8&!PX_;|&OcEfb)sr!)8tMKDV>=+1XZ)=>|VI-mbAbgmL>`J&VsDz zzDg_Eg|>L?T|P~1^}P>!);?Y)_j1bI%xe~3Q`;p@6i0uRE4fx_5qSJf_)G17Er-)f zm(INLz+AW~%cRCwMd$9pf(ltdJ9~o+em)MX!}aBCuMcOdyf|X9Rp`8oReoQzQT_4z zWrwpYnQllf>JB|QQA+2^e5Hu}AVzBcUY^yP($?Kjq!op0D$edX5E8>wM) z=aj9Bx_S3x>ZJV& zc5Gvneo0E}2g`Xq7V}GX&$FqXsjc(+=IJXP%ad&*52S6d<*R4pVk=3My2R^6&$c)?k zaIJm(3B{%I)qcM0=P$2i+#Mi&<)+ZOlEA&)b1YuhmG;m37agh}eRSe`cdMn(K3+R< zQ?JtTYO&_oP@cVFJ$Ctje+GIQXBW+yc**C;lWRV)(&w)f@Ao_F{_NEI^+(dz)ZB8N^IEEGk;Eq9 zqZ8(8Xo-J(<|CG5`YccJSx&3g*5&sZp1pPY?$Q_{9^OzjZb;?Dc=g_rJdW ze)r*Pb|>wHuRfan>NBfX?pyA!)eN7%%xDU*{Vkg+VAC-*qx;XzIod(f=jN=x^vLMP zldjhxXM1P!^sKtcH?8%$Rp{cP6}_JR#j~39ZBK<7XqqRiH}bAtnQveJCwuEP)pw1% zT5_7gbRyc?T@4>=xIBKe@!G3@b}#DeUrv^tQLk~n^-(~F!YcI-Cxbtp;nZ99NK!re z^Ock9)cx(c?wCDlsnXe&7JO}j-Tyx&*$2O~bzAXoE>%1bo%HO|!Zx#_1NxI~epvf- zN)%ihm@?no8S%*U2r-}r76vG)1)O0s0u`CUPOHBzTc zJ;%DpZ)d~#dS{#MYWJ`1yRmfk;r->zXLJwdoIU<#j`U8p4s7PFnqM zk6fT*z|l>A&dRM~Z(C7gBEd8B!d|DH)vgimB;!t>N_l7VAx5EiRmqwyPiyxJ#IfyR zlfJN7Z_W9dDe3NE8Q=ezE2@6wGwKSqdl~g?`l*PFyWhK~-c=N=-+Ix;(;=+qNb&u- zDKf8aE5v+Tkz8wfH~Yw{-lV7E4CZrNr>>XZ95OxP(8F`nkBJtjCTnYN@!01zGh*Sq ze!dSp-zWL)IJI@zLxrcontZd2UY*mcS;(5o{O!Ecnj@Ae=NM1Pmdwa@Q{mS+*~0W{ z&P?g!rp9$!3>w%Md9J#d@%MIpOR;J5QXQtY*@Z$vhYL72WF6jMJ9+7uj7#?07kO@8 z6p?>ZJxqddd zc=WTGock*4Uw5QkrhhQeUFH5K>F8v&RU(3J8#CQQ@5D9VI%1`u+#sgpaP8^mL;LIb z**o-lIOgk_Kfb$+Yi8`%3(iiiZdGRNO*@t!dEU?)=(+beKG4PS|yIW-a44 z#!C*Y>)&$y*`f{o;**zY|A~&JaToLD)!6vNR`>$=9Mo3jsN|XyTqRF zt9EOBo_|=o%j*qW)MLc;*Umfguwc?X(SM~9N8?uSDK9^)A}9ZE_IcUNlPx=+eCoN> z_%Qmt3g72zYwOqb{Mga`A$Chtv!$Fhg~K5GMSb;PZA z)VJqi$lB`jaI2owxNdAa z`@#9;3Vq%i(i)3-HInOYCh#$p7fadc9}SiASre`7v1iX+{RaEJ^@{(J1GS%r?{#%| zo+G!|vi8cxcfWtm*u=zi!7TC7?!)!(9j$~`iI$$7XULJE`;ytg>a&=#nUtPLl?w)TwrLyws-97dE6H4?Pv-ViN+mKUY*N`vrdV0?nqfM7PTCFW! z)LR|3yu`ctbGn$!8ISt2VP{zC>$+yHn9a8GOLPwVsa&e zTfa>-#B-nT33r}ZaL((>(ka0e%s9V3ZO-8bf5XoHm~b)ZXJXE(X-yMe@g*xaKdbQ1$bO`=Ce%Fh z{}jJgi$|LcyBdDj^S@uSWx=YH)Y(%WEEK(;Sn)#r+|9L9wPLfvd$rm%7Heg+1pQ!3 zy6kJ0v3J)Y8SmYzHNI@;uy_*lqqvhl_rl+|VJGUtzL#?eylC&(*t&2_sjHjYoj1drRLy&2sN_m*F;dKT^Q z*DOg{WI@A>mGvtY#x?Hl-05}t($qK83+EJ_F*5mM#w_-uaK7VCh709QZ9!+n&#BJk zUfJ-@e8KOtGk$E-nB)68&Td`X!|e<19y+wdGWeY%^S&L7Z=5*2^S5;cdd-rPiEQum zVA0wUwvEB;W`@&jPxl2Amu}5I6!&^d4F8TlELKr=4}NBx=P9c1s_*}4;4UGVo3P&L z^{?vhLZ>sNth`NobIdQDi+X*5o2gMF>Eian^Q}j_k8iM!idem6pUbhP^ZE6$Tg_*Q zJYJmt-tX4LJl=axY(Md`*8JM?!>!j?@G?PZCKs1tKNSNiwv); zs_o(54Z1u5<G*Z^H_+Gvyawt^av0Yr}e9k>it$zWp{!D^tA}o9gJtp6Qg!#9v`6?^t_z z-95K8otM=+w>3!!WvYDeU$QYj;p|-@snDLIB2v9N>b)zfcO3otdHeLJ_a%|E}8ya!j5an z&BDdu=I`a$xOTGCYDPX*x~gt_Klox8s|JHHKaTL z5Q}=xE>?4<{`il5-L?5am*2P^OImT%&skS&V%o9U8`*!asr+a6?TOTyt8pugy$?>k zC!Oudo%HNx&Q||N>33fk*Jn#^R7(u`>2KR*n{(Z;-IFz|uH>%eiqpxF?#ZY0d~bwv ze>lsyns2*#N4odNfBb9GnJc!j|N7GcZ zlnkSqd&$@4%q}=%%dkGCzKzxWvqyEh$z-wbvp<}BtWkZ%rcZN6RL8DhgSP7)(Mz~* zeCIaYo_5~Q_NV`z%_8TYJ+7C0|Iz%)KB?gBjRN)lhd1A!yiEU&8F%^VkN*@BCeHuc zXwv(j_UNS3Ts`R=1}D#}d0b|@m#ovU?#QpR?$*4k{Pwh0yuEedn!vH^om*!un33ko ze9z=-n+D%1R;pf9{IyV&B6S&8t6V ze=Bgx{P>QYCKWr`zn|xRf1YK{6b9kF6=iu9>!%-cIGhwJV1L_b@q*}G>y6i@&n{fw zVzv47Ji~c2Qtw(bSFhtweh_ayZ*J$Wzp3AU6|Cp}e(spXvxww-NpE?B%O2SVKUcal zJ9lfT;)4?@rn6FOZ`)`myiJcjug8?5yWv(9yZ5uwg{AM4_UvBrCa$46EjLg1clEA< z|7Nd$Z)g0*bN}%7ZA{yxZ#=4=&m{BV{`cf_>Sdd{GY{!p-Oi-?iP3HUp{L;*7X0=9 KS(kS%l>-2gfbt9g delta 41048 zcmcb2n(6*&rU_E@duFTjZ9lT`+$9wo1;xgVCY#iznIySwTHK<;!V%DseaT5v*OO~Y zfW{QNY2UW~|9|TL_Wpg_wtU%ITYERc%baV9N~-4W`rfJmbia=b9-a* zZ@!6Z4y-M_Xtk-l!gcxim} z(9N4ct|hsWk~cSJ|L$9O@ou&I_Wn2bwpOpskkvkWW~z6v`4sQZn?*N%UN`gS%9RVN z{_TujlJ1qfv}mEyB;lVcy&RW(`dnN;dFiGT_w2&8{HJ$6Zr$YJKlRwB-~hF62bz@( z!)2^>t-igvV`pS#wJZ7gzKgcM%irAMtet)O{7R*lFaNB06MTK+N2QR-yG1VstvDl^ z?$>F?`z0jtPhaazrY~|21a1bm&g^`2C1xQ{=$+E-9`okt`}KC;_|W0OVD;tf=A$2X zdJ5Lx-&!29M2-7s@Z{oGN|E!}KSYJw8HAtk59hPl@b~~TKVRHSGJ|MU5Q0N(<=x$|eA?w`Allg%ym z{NdH^r+%J#a`8{ezmSK^ey-g4=uODR0J{yz8A21vEbQxzgC*>FI;_`bOXyEed#`g= zB=2;;_;YP`xAHd=zTUT+Ezi6~=EipJJO}Nkk4{!Ph%yDvJUf5xN|_z68!Zo9ZYdB}d>ap>U4xr@+56j@ zlT%WzY_T$&sxR)d+B$Xf?y{4|z6D0_-obld()x)Pk5)h1vN3w=M)z$S?HBachWfsd zJmo+AS^6_RmaR|UUnnVjwk0#Cq&+9czJJE6TX9)sN3LHx$HDw`%ZBi62KAegm#^nM zcCYX4?+0&fce|HgcX*sJWusKI1_SfUX^lL*rmv#P-zz-upQbf6;er1&@nb8wOvRL| zzYBlJiYPO#+t&Zwkq6pC~WXwl2T0;r&{rWqTb<9<0Cl_V_>9 zn60l4=&fe9E_+meRb}Q&x?E6!#nFX77FEuOphnL=RyJGog}Pmgc^>)6jk zs@faJIa+6Pa6J1}^l<9u)|newCoIn3VW|6g?Zi95EfNcE)L;BrRJSgI=}zyvz@;zF zo!fii>B5acnOS>SPTV!$Rsa9Rx4Fs;(=#{B(Lc8%_ibxdZEkPho0|{wv+wi8NAE6w zyW#dNR%T1C9_G6?n!fYJ8yi`|&dmIC#U{eI{Av2LXUqMkeRfXg3jVpU=I0luLK%%7}}{haoR>qWXQ zo#|pzINQu_RwTMbCMEcZ zZ{&{iec^Jhny0}3U7W~7-^uIwjjH{{H|@t zgllitstPpz{`TfpE6ajg$Ii(goH)HqDd5>kn*(c7*!S)~ye@&I?03JunBT9%8vo9%2PrLA**P^e z$$9&!rIxPib~^+#M)Dn#z54#afvV_54>TfP`-vAFuw#8Q{}am^Im27|OzliD^A~Pj z`svCK#`>53isBD#7unprb?)!t8@FEQHHl979Fe&y#BM|J^CK_b#s2*0dSMIuynf%Q z&yM$>*#7O^t-a-IHk312E-rY?^v)^yJ<@J(@4r{^ zd!lfA-kz5?at|NAX|2{hRp!t9^JmXGCm;PYdl}^J@cvRf97gFD?Y(7_3h0!A3nTw@4H*`Vw-e+V_N>a z`FaeC7RJ70cz%q#IG{GsCVWn#8{<5#m}#eO_n#G6)_vhm%Dzd=;evnMRg49)FPvH_ zw4vC~%#6M1XI%vw|FYuB`kT^B>|eNf4&M3pX6@5UKmJ50mS104w9uf~d{U)q`SrUW z_(j(x_#gZ9^i$Ja?l-ajN*J?G%{{|xmXe=mQF3`>w7*Q1=9g!;ve)lr?#O#}VBMTA ztGD+&(VD#U=gNtjmCA!Nv`6<(Z3A5+y%~D~%WwgE6ozMN(D!~=3ZrtaKt;_SzCbAx1 z*5x7a;aB38@a+okyms#0RP^Eeajwe_IqZ4Ucbw~eaQC)@VuOgAL4c5wA9wO(_I2~; zTe2=G)XuskF7DVkmsNA#?u|_X;R4e7yS~=HSZLjMx9@~SAk&BDOm2pL2 z98+zNxOPLT!qm z%+u}d-ZuHiu@4cMRbr`=Pn^+P;MBHkwx8H3?%?2v(E2pKHV%toHx=*ij>}!8Ui?s* zx5c-?l6_KDg_MQ#u1iLI$Jk#yduaF|<$U$>4(3p%85wgrRW$B*a!#DIaE4&5%+=#_ zf9>#=FMs`5uJ+FA{@-5;_j|0aDw{D`u-GWeuWZ)j*k>u*EpIAsdfa;G&4-&dO?RVa zx}2F~I=wjITEmeG_0wZFEve2wYN5d|BXj@nnmxcl}(F$yH#@!&2|HC~J+vq}G==ce3_0Hs)$a9Sis|t^I0fQjX9o&&Dk${LglN zN#QJceIs+h{6Cr(GAdRz%$T7y^^{U_gFxrUq)NXd%by>2&64TKlXzV3Q(3gIrAFu0 z*_#`(ytg!R*qU1Uuo^u*q-ir-M3Y+P7+;Z74tc*;`Npr*(ssz{T5{&I zp99kb?K?9yUqr9{HLY#m?YwM>71Az!8BCIky0`Z$Pv`&KYcfxau{k$GI7z+KSND>e ziSG8G^79OjyVCA*mM-)@)$PY#&rrF#H!AqLY?=O(xgt{-+8CmklSTa}9k_7dI;Uk) z=P93;YdVxCNd8EVh*O)$#4RzqrO5Y^+a7twvsz(Ow{Ko`adTx){;J=f_HeR?%{5!y z7%IN0ER^ZCLF;p0*|ljNSC`%njXku$^Xj^bOS*15ugxpn{djf!r597gwO6^t+|94Q zczD@59iG##`S!4-n#NArqhdW}yWjGX_rX(7e){9-BBFHJQH0}1lUuWm?}_@`=NC

d@bPD`WfO6f|Tj(6MICu^A}dj<%J&a|FubKqH+@hbbI>eopXF>XhWyRNP+ zzOwhu%eZ$%`sK}WOgud2pQUpJA67nhbw%;k%R6s9joG<%0n$ z)B~r@)$=>s5ohMPWNKsnVvDeACvP&%m~ukpl9gfU*2zUO^VsT@`Bz+sQ2n(lGE(=I z($f1`t3(bQW?U?Pc0v*>OJ1VXgN92{EFK3oZ~h#7L1o658-ARgvMyyiEez{dDa`6V zcGXeI#P-zm<8A8CP8+Y75zQ5xaIwjFcZ2Acr_UXX&NpedN3AnaUOh>_e9=Oc*rSO7 z*DtGYH2tbIWsZ)A=-VWoayul}tKWf{#q8}I9# zj;PHJwphkwo6P-l<|R!N8?m$lDeF9@lxP{eiPn{xwui}O;+ADnuahdY_`f#4UGg$w zHOup$>6zOzoTk0{diTQ9C==GzPO;yn>P@_wqOz4`{_N$ePQTKe|9W|6p@?Z@{h#Tl zl#^$DD#=^0?VXR3+wQf}%e$64)HE%eJCj*{T0&?^UbGtTXyGN4 zy-%GA(-yJ(lky07cW>5#+id-9Rw8n5wV7MFHi>QVW1Ti@Vij}$0gI*8qM~KZ%Y)fI zmMu%ToAY?~qW4toU4x^uER-MsW{Xl%}C#Jja_Q-_ka{1^-UD>*B zhwx&S!wxFTy$=6soqA0-l-r{J!MBcYnI9f7E=*Q%Pk+8V-PPFb#3}Aqi&*D8{;7Fj z`W`Rm>c^jtT3%e0H|w-n=C%IIrLRLiPSyC;yW#S5i?j3H8`bM)eU+6sd3jN6{Dm1? zKhAi0?aYLer^~tnRU%@q@djsXEj=IqU+eYE^(*(ix?ZAwEyVuezcnlBG-tE3 zo@V3Xy9b}oO5N(dUP8q(?nuzf$(MNJ1=jv@nf{jXEVtO|5cdOFQJE!49Q9Ieefe9% z4LlO>Mi}zxRWm+rb6uX0U0MHbO6koQO-JujCPH(swN9MtRwiwFiEYV5`Q)vaN`!7t zjXirR_^N)X^qJF_8Q$7-td(rd{ql=pb@JraOwa1D|2@0jvdw0^QnEB+ zhF@0NvK}97PCd?eVj;}8fcL|(Gk!KG zdj}6kp+Rx|gGeiTLq<2n9Y0>kJKAc#IjJ&bjZg9v71lQ)HmbSlEB^78sgKcqVZ4A`%p^X7Uv|C*=61*flY(I0{ zHyx%$Ddns8G40b5cQ9CV=Hf#qU2e7R&F6TZ@cwpNUb8f2Lw)|q>35<(nLZD@p0m>; zw&4BNlc#QEMl~=4E9Ti)u6H+xR zP&wU8BKrtu>gNTXaVLJe)jxlw?soW8`jvTgHRZ{MdK*SDTE2^IvV|Jig=$6{Q!LkA`W?Shn17LeoE9x7g*M7R(FPUTr87%@%1H zJYkwgT@H_ozUsfrmme@a^H;n*Pxl<-t<2#b-TXC6|?w4=qxv)mrbwcydyYNt&AYvC}X3 zonAhgV`pra6tqU9Q&KX)mUEuLv)DAXQ}wNf{(j1-OWRe#c78#rz@|>l3u;PrVl7@p zRdqErj34b(Cz}ROwXx`NFuf%{Pvekl_owq8V|RERT+w(`d)A4y0n3vm8iXVtujpV| z#?d%AUIJb$6L`2K9Uc!ylWX+rIWe08rxl5(YL zfAiG$9G}A@w4_vxafkK{uZCFr$>N$@q7A?NJN45>PIyLj!)A*aHVnU(&9U!p(wxcu zvin!oHV$RZRZgku4fBFtvMOm_W;ZO-5AJYz_3sc5+cjggm5xhF=P?~?PWMt`d{xeP zu2Ip2X|h;C!@@^P&Mak=NiLe;acYa9;ChiRgC#TW*EbZt*!h!7#{0YOnJEpgLO+RS z7*6F=ykzChlrWFUSh9f2MtRcmPX}Txem1mBXW5hdJUQJ45G@x9l^XIrf(REK;J!Z2Oy8yksAUpFDKMreW?83xOA(E}b-X zU0Jy>X-QS(g6)ozUy5+oryDfPV~JJ9df~R@!t+t)_41CI*{2o1$(ff5sm^J07 z^3R#97ora^6e-1}Ozd5FI=%7Q?1t0p>!-i0J22~-`ia@igS3LxUL|&km=TR zx2%0NOH6ph?$$1vyyTbcgB=aC7+s+amImBldUse2sD#)i#V4O|kn z29jwFF`rWv?mx*} ze16lH2NqMkFYGSNdMq)|H2C4`k3kP+F1T*9YUcUA2a()+)v_Z)KOeL*T#@}w!Qj@% zHFLS-mmMn9nR9HjU%id@gGg?>-p7$W4L%Pe&F_9*u_`+x^h2I>+_s?F$eIZY&K=>9 zUj5?k--?^szc>*ob-NkZp? zxT=`vw`84=)s4I=(D-_#-}l6Ho+6`=y)LqG^OAo&iQwDKtgpRSNI%+PqgG^Qn}YAo zsa`*lu4KM>zq4hPT-@$cOT{BUi@CDb?mB5P?`7fS4%sUq(~B-js+R<1KYzrv`6r$uESuC5ANQ~%w@wa_lvAwa%;Zlzto&?B!j|2>N+Hi@>FhEJIn;IKxV)xn zi0}P%2PXGRn$^c;TN(e-$%rg9*nMPWM@_D6<3-QEy_Y{2Z2mmK^XARe87_j^>Kkp% zXY#z*nNw8nu++vTHtP&;m+kl1ewF<>FSf_b)^?n+r!gxnIGN#mRIi$){Pwmp2POqI z^L+hlE_KZL)fo@AwwbqIH0`A+yY%Ob0@Vt9nKw`?4RmMA} zAKWa_q$rs$^~)kL=Fz^nJPMX>cl9LBvas=;e;oBg%D`sPbe+WJg9@4Tzgdh6 zC$qLG9%|W?w@WaQtw)b_)nB{nd$Ch8_$QlR&B6ZYVb>>*lUVLr>5%H zhDTSkB6d6rYf4?p?Kn*#qx5#J`i$DQT+Rpjvy*ciZf0{e?O44c>P}g5$@-ZUtEX0E zvwqyCcFpnaq@$h_wrUlbBzcRH2ZTK!J`@f>c z!g9HT^oEm%l;8ZiaK$O-zDq`uNAQ!S$2b$;9QSVdD!inyY0KP-0?~zil~uNfrY|T= zzHsB-4~52Q3KuS2ssC%T(RlHU+TOrT?{6w5&7H2QxVO>m!s1o8rp_}<`R%w^VSd7H zTVFFp_X|19mliHt9rIUA-FN}J;*Ac06NXWaNiL_B#TU9SySepDWbGy?;ZtV|0w$?s zO-fj!5H-2i{ILD=Cly}=jkgN0$QP{KaX5Fn`z+sxmy8=%273MZHOW_W9TQTR6cYO6k8PfM<*(n;A3eP@-69?_cAOC4G|6cMy5voOiZ(SZLVL&omQH}oeZ2D2R0YE?|vuv=k}qVQl}sYd3rEz-(SlbN^n zR?QPR7WPr+bF#xr5mS-Xp@PSye%3D#dd9Xf=V{sMi{`z@@A#cQw!VaYp7ix;OE3SB zO4^?m&h;hm{LO8-YK0Q&chXlDKC|KL-oSY8VV0l&&t|qB9S`-=^>afijaQ!M*Qz{U zsHx0fGGWfnLxKN&AcPPz1``G_dr?l)nd z>Q7}{UR8GUQjyem2Rp7QSGl&BITg)b=%cxm+Qou(%ptx*Ol*hb41ap9j41R#0QI9TdVH4C#oQa0PSBl4C}XX@j$CCTqRk{=$o+;pO`wSPrk>Ez_3nzFW4Guxc_PVqT; zHZ6FxV%G8(k&Ei@9*>s(D(T$HYkTe+o3yKZsPpZ$kJresq})EFoOs1)*2>w(dK;ev z1RuJjDb&f9D0QOuSIpeB~ZHC7%RmxCu2Z3)Z17r*w6_~XllC$|fn{I2o% zoWp|TUv69}9*6DTM1(I`wwke$`i6_dhC_FNmtG(Xo~fPnntGeOa4{huxbA7 zpnZv*yS+Mk#r{cN6-*|+={b$-!jn#ZthVquf92+rAQquzM)!lJu^6TcNxyHYw^{hX zXhnMMj zJiGDje!hnh|05@PT=Ko`wP8a=uVDQK6YonBTXzS z%yFz{QQf;mGe_dqTZKJ86f%nLie;W%nsKK-sKx&LqNK$wmP-|!OBDW|-m22QIc3SG z8O4Vfmwza5iC`&+Q-2vCzn`@?%j@Ef%I4k~B95otU6%?oOC>=;9%I4 z%B(oCey>j3Qtu6}X(FP|S3Nh}$kgPU6(%g0r?zp)ayzz?up4UOuJsot{IQ(h zgUa-cF*$IGLt24(yggE1}*|eLTcM)1=Wi!lzx-9@MFTXDaU4{->Pj& z`+C)5z2G^S9m}s2Zuj%OGFfn0FQ1U(o$cR+YUW99FE(_x^gpuF^n6GAXSqN=X$N%= zL-XKltKy>uWlewj9XDA&UGY!oVb_lrF^5_cm>Skt1FcJVL6%DHwzQMFGVTQJujV41_k;9Iu(eC_nqBfmRp9_igo<6zp>v}Dse z)zYFfPvi5pPrnr_d0|~kprP)$j(uGU&O20*T4UM?)K&=@1SfO(-~!|+1$Oy z>l3%%&DJ@6M<9`V>#>8g%33{zjlF_*bFy|fpL9-fmzLwB#MB0lWd5MO zpS(*xy?r^=(Ry*y;M#ck&+7oV2x;=d4((s|W}TadZz`{gUO&o)_v zmMUwOZacdpW_D0x+J{{+R(}~LFISagRGoZGRjdBHU`TO`c>k;9>0!^Ccr!ZZsRS!~ zekeS)e#-al4SMt?;q=Os8H#zz zK3qwwXRtOl`XBfAeX^tX%PJABaP|YsHyS$hO>R8(eAed}OMk_E9OthI=}3O(ZS#8W zQ1;s9g4v>7lk?R$>#aZLOf}{@HS@mDybcj_Bi)(8_K~lPp6Izflg@VOygPk@sZjaC zP3k-6lvT>T;dr>ECtZ5w^Bj2&aeW)ek%we#4Hkn^t)OIb)JH9Ms*YrXrBS(i@m3fK|=K{ZKF50E${r1a^ zAD6@CGfqkmym2v6VZCC5Mck#ALi_cPht50NQPU^rP&_$NU6d<|DR(MsTiAR5jL8k^ zqV=r`JKQ$@STK)CSZqRb)b0&C5BP?y_ z2?3Wk=kMy)o)EIhDb#9(=lbS(r~b`bcr09Kf?ejZm-l^_IM@DM(-Sf8WKXcT(3RFT ztCO~9C4G9gP?9g$yY1J-r2#geZvV2!bt)YaPi)27Jr|kA86WW6G`EF$UciH|CpTS+ zWwAA$Y_{D;JS?bwvhTGBsf*&lNAf$|4wcJK{BHG1U%&fFs+^CQO|%w=-8uK9H=8DI zn6^t_)Xloo-f>1wp<$(b??1IwAp*xF!<$|-Y|edC?WSWYxN?p1zYMh%JEGrwGz{@= z5pVPIT4&eP`h0oi(_-$sm-l6EH#<7BL2{bT+>cij+?i_xQan7$>xCc8Tb*->h4J=z z9!KL|9_IS^@zn5`XzjA&yk=(h0pCE~ z@4;uC^L86fIvTm1H*;U^(pl^oI<@DNtqt~Fdvwj9EPM6Q#c~@tPCcAi!fzg^o6TAO zCNC{E@k_()wl(?ub3Nbcgm0|(-kz^)xM+Rav&AfXPk+^&@S#GnH(}0<8P7L8xpPj` zB_`WrL#B!RaFmMQX1?jlyZ+02P4?dQW|~sp zDt7eM{0~nRi-RWRJk~jQ=!5A*ojS&?r~R1KPu+FP-*U-zWz|jBv~+##ioPx9!<5oj zOq+7`v)$d(fAge;rp+%Yz-;?`&Uok2oR3S+ z%&G(QP`5k%`D8&wn91@6=Y^vVDB*kXiGa5ApvwEG){Ff!UMf~I_&Zj-5XxMrBe_t(VGWC_C;bg6B z-6s}T_s`Tyh}4NGs9f3hW*X1GHOtg0i&l81zIu_+F|*C=mv2)w-}!YV?(y%YZ0Xyf z;~1m8aC&;J>Fa1;m04<=rv9CvsIoHryU-HOrYX<0RKI9vZQFRNeyZi3ruNdAR|KS6 zF7CIfJh1jChx1+&H^c4w<{#NCT5-+s$=l*Ep(UM5mu{FHkzX|AUip^|)sk>Na^4#k@ zDR<@_*R_#;c-Gs9F^+GGvU9}apJw@8N=OrpD0Pm# zvUbbuwW2Ejmjp~GJ`*VkS_DaYZIhrT{rmg0&_U)Xj}Y%-Xl z#P+(({aGQa_k3CH7pjRTXK!5_taQn+D=f(ViFD-lyEAUYgJ=|ZACNsgH*oUoEWh-W zgPoHK^n2^?`I@-xGppFDzP`dENV+Op>M_rWUvVB+?z!ilkmC)K{_Apn6Yn{Dj~#z2 zn71C>edy;Q7WbIStwEh>#{2H%O*%H+Sj?ik@w>yB9a9eb74$?UA6_`!U}l)|UEfFd z7Z%F1oE6(IS@n$7=}hV*wfN;55`BdDcx9Dj40N_tXPC4ssQ>uY@j(X@yE3FVEX!-#_zq>6h2vb`p}OB_skD$7jtm>DzWvoH*>eJj%|y!*h3+9 zSr+c}piQTCU6Z|^*R=Hd(U;jV92Hxud(KtNXNhwBgoh%IW*idrp028F(?o2ao;A3$=X$Y~>#+%+vOQmI ze0}kWQo1T9!#p*woeWzAW~;?CTuMX3Xk6uI(w= zNJx6M?#V2N$F+;AI%Y~JtUR5!(S${K*Gs0GG0#ifrmTEWDrO~Xy0Pm;>vWNiY8jdDUv>vXWgl zvraT>y>$92+`=()@8QI>n#YCP3@w9u9xgW37JC)M_+hV)V&Q?Z+UO2@iEKID(@#s* z#EI8Ws&Bg$Tiq)hXYsoKYR;Y3{#2#)TzjJ(tsE|Iza(NFQ0R2SOFUchkd(BSjpyMn zXM$!HD_EunMp$0#`|$Lpf@9uuZbi*F)n8{mDH#c^DpIbL4W9{9grr+#$bu8apzvZ{rp{R{l7C(Oxzh({3 z%sJVYN=nt%7q-t_SMnl%gBHW-G>!DwrJe77ceKvBva5xW=Q6**#&0hyK6rCXV|hF6 z(i*FXz2CYs_jq4Cwm|p6e1)oqEK+8RzV_|NIl`l{Y3qVXp(k$!&D?a;G4jfu-JI(^ z9tQ-kf915DZ^owkhtD15sNcFQb31!tp;TA!_f~6-jSVltdOEhozI0q(=ok33v}V%> zgT{#p24(^hxmgS5$oy*YN?G^La&1<~q_*#$erjGM>>0+=?)*{Wnk7w>$2> z%JHOl&MVn+N8xK+4X>U`e{5jv72dHn#c5A0Cx2Y-p*zVFb~pug-khrDTT;s1X}NI4 zI`{Gk*R?!OJ#%&5*ihSQv3|mxO?x&wzqq6x-oKr$s z?x(e@60SXHYfA7F%r0=yeciPBZ4UdLoCEb@>UOiWJq_+ZIW$K}>toEDSH8_`R||eW zZOflr$7j4h)^M^Q!yZkC^-ZU?>zs(pous((c%UL*&6iylj<49q^Kx-S!=10H?VoFo zo)_?|=9nxQReosRvI53OJk4@SjXaD~%EZ@Y9N}B=>AC8mG%L+_N*CFqgj3&mKRNL? zYS&#eqk27uoaPPL_go_`tE6gmSbJ|e*Ug|HS^sujtdi)<+b6^vL@VZruPbm-$?o0B z7(Rg^VfIw!)pOUqJ>2+Ld;<4`1zyQ23>CGk+B|lrh01EPMJgA4S?gsq<6MPHP>%V_ zyDe;QL-W6-o3O2BGWNXQ`FO%n#!GrSdyS8NDVopw5zp|zvW)lNs%^DKEQdH}2x;wosx^C|ZB`S7Dp=vrnvXhixeNUM({Ms^ove5Gf`($og8OkqIXu$K{iF(JMrdHiHnXcZ_dQM zvdh1F#p|m1&Lq9%3KCmXW6V!3i_1DOeV5|>yZ)08n22aP+DL@_WxQVT-1GQq5q17s zk!hQLZHca3uPV1{ZrfB7H=Fr76EA!Hz431HUlToEuT-`#H(Q1Eyl(7^dOF#{R6{0L z@xaXu4}aGBg-(optE%_-$reFZ4>zlAtPS6$Os+9?VO&1>ps50T|Dh$E+It-)zc6)R z)Sj$qrp9*hgvZt$ag#&MbZsB!aBh04_V=%vQPt1O7CKWae>=zRnXF(whf#H3R~Sj;(l(P9gXS870$T_=+@s;?oZ+=4aBHh*~PHwUE z6mL>f{_^cLTiU(Zt$){sHPx9q%5VO#Cvfr;OJ&BTlR2#P8I>nnSZUY0FLJo;o91Bc zsqnd^SK;UOc^jsw*{CzmZ1FWHel~IM$2FUlvTeD0Z{;onkEdrM+s^GMyqC3PuFaMU z$0je?&1(A3C*rYY_l4daazWE3I{KZty712S9oZ@#(XYHKt}R)y?l|AOo1Ci4dh=G@ zJihGEq?Tn1{Z`pM4tu|DhVYx@&n*h|>tDT7Tsm`uRdP#{_=P9oD^5y$HD9;NNMh6H zXFV6DJF7h|*t^c4tG#qXcU1PGgRhm+UKQ+|?YbkU`TCj@W!9a(mW(aeE4;SUOP;?L z_;qf|n-@`Y^wumXul*L!UN~jFvF(+abwzq_^k#6Se9c}_b??N1dutA-PngBN*X8CO zna=Y1b>A(;H!b8n%P=3opf{AiK<1_|Elh~X`R`f!Fkl;>iUnzl9<0l^;KEczY=@)RJt~#Lb>;%o_Jc^ z+RNUp?*m;jx;$Jjc;_f|@0s%=K{V0X?nJO<-1#k?7c{$j1pQbSc7`7~tz_>y_t{&E zC(Y$MrrZBY&-`EGIAi^9oBtbP)c$W__!%GZEZ%RAPsfCG*=w8m5AIB#JNx(kthxW2 zcJNlbluNjC`^nxJb?WtQ*I&K(x$fiL?XNyt$X?z3Z&TpCuPCa!j9F8060yu7#+tlxO@T}{{u2PWFNiyer^3q2j4>e zKOr|onU?O?+Uz#HzEf}VwfA3MWb179+W!0Tu2}!;&Gl=4tvKemw|mv{$o;#6wwHE0 zJgwrFklQ+6^5+Jp?e&u#nAwiIZcW`^zPaw2UclLv-+b@iHnGdQm^zE~nAnxgYp&|q zc}IPSSDZh8!rwn#`}*IfmHzy?>rPtddExp=eE(g)@Af?0^E9t9nQh+Vzxr7_j1@1^zDx0o+{um0sLqs2YG<05~#!$Bd@#af2tL2`cJ+V{v`GLpJijD z)T$V#$KNy_`b>S_`ucp-hw5KD*!z^3!k@1G&LgA!;Fr9~obYq$o{jJ$A z*ZulQ@mIaR+m?~<vC z@gDrgS=Oxydmp3yGT`8aCHH%y-~VgLbI-Wt_sWVdb5Fwmb=UsxjoLncf`zT(&#RX$ z4(*ClKOTK?`by$A`RoU~Vh>Nb@Kxs0`%0<&-KO`; zGU|L^e-C@{>H5VRn!E0;ecGwn|JHWR@4kXBQExeXjkR^lrR-q$Se)>QOA<2@Fi=7kUQuhpNA zXTAP+*SyEO8(R|?-$F|IqdKMa9^QEZl<8q;lz9AUwp6LQj>T2 zaoc-kUipbzR^2nU>H4s>y4}WqO|Pu2-Vx=EJFc(NvMZ5`c)6G($!ATol2Vf4UG0`- zk$?F1TvFG?80qwA7)zB5>wvS`seN&eb<%9f#PJnb5vi|ZYjZ1q9kWSh~} zjiOr*9i3pkV&*3HzI2n#)w4SKxk6Y@w*Q~X{*|IGI`|Xk^PG9mlt6uT?4cYDQ+;qB^te+y_?{qTo(do1UTh$9iC;!*lQ+ZF# zaB0h{tNnZ53vYVvpEV_C-7)1)Esj1u3JQjq+awDGKW{sD`j@(IV%m(*OClj^4?EH{ zu7rqR{^Gb{+o8L5=NCBky<;t0@_gyv8@Uy$yiyljsX8yp7^EDtW5JTO>i@P|)Teg% z$ts_Yt=t>4L}*EPa?lr7MnKPMb0X_D%=F<)T0$n~w;WZ(b!qcx@Qxb^-O{pY`}e!M;Gbh7xd=8rRWM$1~i z3p#FBJNNSW?SJN2y}NL{)_#58b=#GF$L-bYQ(sP=_ps2^gyX5db%2)T!6ol`I}H~m zTTcJx|8x1(iZ3Q|+dB*oC2#-!dBwuMa`U~;vex(4^{uY+lU@HqyY$Yg{=>g4K23kM z<9G3^9sk!~{U}vyv*dmJelOYh9a8;KXBvCH_SJ+qUh~`0y)fo$Sr;d#?48~3GFv`f zXscZnefvbcz0-S}WLJH;OWRym_f1MjIa+b@_W`5B;=7eIe!h^lN@|bX-yI_~_G(<=-RNTV}f1+p{ElCSH8K#pG3| zMz-gquJQ%%pZqxN$@>4`w)j6Yo2MSW-z;=!(sr+?qWCx4ec~rwn4Ypgf9jTk$t-tn zs7~L#FGKY|tJlAs7GKspdUK|gThruofBBpL%a_>18L#WxUhgLxzbj7GyMBFNeg9vl zpw^wQey#q^%NqLHbbkNI#|O(-K3=GO<>LqKD<5C@zN&a*yYac;^7Em^Hd!`5y;&lb z_@Dj|xO~bj8JX_pe|y4f9DNSt&oN9q$`V&Qu_=sSCjQ#3yqYEN%H?eSUfgiYZ6Bw^ z`rM!F_xC=KTzlLq_u>!N$9fSd<$f;Jw+q+Q>p4{lzM7`%{ieWDS3UW3etAx1eNW4q zAFtQlSi5Wc+D41h`TJw!mddx86&bknen{D&!cp~n;i3P+-=2u}$L&z4os{vAeaaGx z!{0mjK5uz7^R#YL`s8?-1*W-GL9>ES%>TeTX_cwLt(nrY*2Zeh|K^9*l^))fR_eWf z?XTB&1RvF}ZplopR1v-FbwAbQKzXO<{imC?+Maxl?|ZjD%InjVud79W`RgV1*FP1% z?!1#*apK$3`<3gbly6s{cE0irV{@Ab83I4f3a$Q zp1M!w+Y|ZwXG7kc;FtY)=~9{CPpzBACQOZnvX35=>fc&!@#EJ0Usvs?%E*}P{uJ=9 zcGoqn>NC5&d@8Ds?!8yWv*D`i=kFOEAxBokKcAbhBxCY{*ly|Bva1f8_W9)8GY!~u z*!oYJQkI7B_qYWvr%y-Je|`LWeydvCf*bM2o?H(-{^a4?|G9_iHpOiC6c#*vULdDi zW&DnUC6BjmY~FACt$N|ArG85V6Vm?onru`*5}#GLehS;aEXhw^U%c1U92eVBuO3?A zm89zGmaf44=exCTaM+H?T^gIV-bi!2yI|+4qgz#`ls}iT6E~ZGUuKnR%hJMnz3nfe z3RL2cp2+2WeB{LKqc5K;yUC@L9zRjEPW|7mj=gU$U%I$=$*Z5OGvv#q=gt4gdhFb4 z@#E)Qm#jNq@h3XQ;Y57wo?`z8UlyO5Q9JdV)8RMnJ)I9H9owyRR;^*LtjX*L+g}CF zne4HCYVCtpZ%*sgZT;I9Yh<_8w%$#aJ3jn)ef9p8ed+rb_O1W*VrfsjY+ZQi9Ik%z zKbx)YS*+~S|MR?Ccz@KMeF6|chovhmx76Bn4n+w3Ccf2G7{ zu)IoL=x^43%}n4|N_Ipp|NrYgHzt2AZ>uU?Y3rHxsWVGFvi%pDi>2Jyx&OthEw^&{HrX(99uE{sTy;fw zH|uXEC;#L8k&2UK7CHT6wA;tG|NY7C0^T>Bxs0E@CagKt>QcPw?9cOiwz| JqLL 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ð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�M-_bCE_hh| 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 Date: Tue, 17 Sep 2024 14:29:24 -0400 Subject: [PATCH 184/437] Minor bugfixes / New easier difficulty mode --- core/assets/bundles/bundle.properties | 1 + core/src/mindustry/ai/types/CommandAI.java | 4 ++-- core/src/mindustry/game/Difficulty.java | 1 + core/src/mindustry/world/blocks/defense/ForceProjector.java | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index dbf74d3235..549651a197 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -801,6 +801,7 @@ threat.high = High threat.extreme = Extreme threat.eradication = Eradication +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/src/mindustry/ai/types/CommandAI.java b/core/src/mindustry/ai/types/CommandAI.java index b72cba2d68..d7b5d480fd 100644 --- a/core/src/mindustry/ai/types/CommandAI.java +++ b/core/src/mindustry/ai/types/CommandAI.java @@ -358,8 +358,8 @@ public class CommandAI extends AIController{ public void commandQueue(Position location){ if(targetPos == null && attackTarget == null){ - if(location instanceof Teamc target){ - commandTarget(target, this.stopAtTarget); + if(location instanceof Teamc t){ + commandTarget(t, this.stopAtTarget); }else if(location instanceof Vec2 position){ commandPosition(position); } diff --git a/core/src/mindustry/game/Difficulty.java b/core/src/mindustry/game/Difficulty.java index 1f7943d72e..fe657294ed 100644 --- a/core/src/mindustry/game/Difficulty.java +++ b/core/src/mindustry/game/Difficulty.java @@ -4,6 +4,7 @@ import arc.*; public enum Difficulty{ //TODO these need tweaks + casual(0.75f, 0.5f, 2f), easy(1f, 0.75f, 1.5f), normal(1f, 1f, 1f), hard(1.25f, 1.5f, 0.8f), diff --git a/core/src/mindustry/world/blocks/defense/ForceProjector.java b/core/src/mindustry/world/blocks/defense/ForceProjector.java index f62e8fa12e..0013d4c2ff 100644 --- a/core/src/mindustry/world/blocks/defense/ForceProjector.java +++ b/core/src/mindustry/world/blocks/defense/ForceProjector.java @@ -51,7 +51,7 @@ public class ForceProjector extends Block{ protected static ForceBuild paramEntity; protected static Effect paramEffect; protected static final Cons shieldConsumer = bullet -> { - if(bullet.team != paramEntity.team && bullet.type.absorbable && Intersector.isInRegularPolygon(((ForceProjector)(paramEntity.block)).sides, paramEntity.x, paramEntity.y, paramEntity.realRadius(), ((ForceProjector)(paramEntity.block)).shieldRotation, bullet.x, bullet.y)){ + if(bullet.team != paramEntity.team && bullet.type.absorbable && !bullet.absorbed && Intersector.isInRegularPolygon(((ForceProjector)(paramEntity.block)).sides, paramEntity.x, paramEntity.y, paramEntity.realRadius(), ((ForceProjector)(paramEntity.block)).shieldRotation, bullet.x, bullet.y)){ bullet.absorb(); paramEffect.at(bullet); paramEntity.hit = 1f; From d1648004cbb1021f83dd386be1258215efd05832 Mon Sep 17 00:00:00 2001 From: Github Actions Date: Tue, 17 Sep 2024 18:30:26 +0000 Subject: [PATCH 185/437] Automatic bundle update --- core/assets/bundles/bundle_be.properties | 1 + core/assets/bundles/bundle_bg.properties | 1 + core/assets/bundles/bundle_ca.properties | 1 + core/assets/bundles/bundle_cs.properties | 1 + core/assets/bundles/bundle_da.properties | 1 + core/assets/bundles/bundle_de.properties | 1 + core/assets/bundles/bundle_es.properties | 1 + core/assets/bundles/bundle_et.properties | 1 + core/assets/bundles/bundle_eu.properties | 1 + core/assets/bundles/bundle_fi.properties | 1 + core/assets/bundles/bundle_fil.properties | 1 + core/assets/bundles/bundle_fr.properties | 1 + core/assets/bundles/bundle_hu.properties | 1 + core/assets/bundles/bundle_id_ID.properties | 1 + core/assets/bundles/bundle_it.properties | 1 + core/assets/bundles/bundle_ja.properties | 1 + core/assets/bundles/bundle_ko.properties | 1 + core/assets/bundles/bundle_lt.properties | 1 + core/assets/bundles/bundle_nl.properties | 1 + core/assets/bundles/bundle_nl_BE.properties | 1 + core/assets/bundles/bundle_pl.properties | 1 + core/assets/bundles/bundle_pt_BR.properties | 1 + core/assets/bundles/bundle_pt_PT.properties | 1 + core/assets/bundles/bundle_ro.properties | 1 + core/assets/bundles/bundle_ru.properties | 1 + core/assets/bundles/bundle_sr.properties | 1 + core/assets/bundles/bundle_sv.properties | 1 + core/assets/bundles/bundle_th.properties | 1 + core/assets/bundles/bundle_tk.properties | 1 + core/assets/bundles/bundle_tr.properties | 1 + core/assets/bundles/bundle_uk_UA.properties | 1 + core/assets/bundles/bundle_vi.properties | 1 + core/assets/bundles/bundle_zh_CN.properties | 1 + core/assets/bundles/bundle_zh_TW.properties | 1 + 34 files changed, 34 insertions(+) diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties index e8ca1c9440..4211e9f3ba 100644 --- a/core/assets/bundles/bundle_be.properties +++ b/core/assets/bundles/bundle_be.properties @@ -775,6 +775,7 @@ threat.medium = Сярэдняя threat.high = Высокая threat.extreme = Экстрымальная threat.eradication = Вынішчэнне +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_bg.properties b/core/assets/bundles/bundle_bg.properties index 593f6b1917..d40375a9dd 100644 --- a/core/assets/bundles/bundle_bg.properties +++ b/core/assets/bundles/bundle_bg.properties @@ -783,6 +783,7 @@ threat.medium = Средна threat.high = Висока threat.extreme = Екстремна threat.eradication = Унищожителна +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_ca.properties b/core/assets/bundles/bundle_ca.properties index 4ed30ab6cd..9877db3d4b 100644 --- a/core/assets/bundles/bundle_ca.properties +++ b/core/assets/bundles/bundle_ca.properties @@ -787,6 +787,7 @@ threat.medium = Mitjana threat.high = Alta threat.extreme = Extrema threat.eradication = Erradicació +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index e62ce30a4f..490efc78c0 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -785,6 +785,7 @@ threat.medium = Střední threat.high = Velké threat.extreme = Extrémní threat.eradication = Vyhlazující +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_da.properties b/core/assets/bundles/bundle_da.properties index 713024aec9..6bc53f0e4f 100644 --- a/core/assets/bundles/bundle_da.properties +++ b/core/assets/bundles/bundle_da.properties @@ -776,6 +776,7 @@ threat.medium = Medium threat.high = High threat.extreme = Extreme threat.eradication = Eradication +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index e5840b6b09..2e4f776cab 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -795,6 +795,7 @@ threat.medium = Mittel threat.high = Hoch threat.extreme = Extrem threat.eradication = Zerstörung +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index d0531aee4b..e58a263d06 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -791,6 +791,7 @@ threat.medium = Media threat.high = Alta threat.extreme = Extrema threat.eradication = Erradicación +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties index 6f20503a2e..8b5f117850 100644 --- a/core/assets/bundles/bundle_et.properties +++ b/core/assets/bundles/bundle_et.properties @@ -776,6 +776,7 @@ threat.medium = Medium threat.high = High threat.extreme = Extreme threat.eradication = Eradication +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties index 56ddc06499..3b69bb4721 100644 --- a/core/assets/bundles/bundle_eu.properties +++ b/core/assets/bundles/bundle_eu.properties @@ -778,6 +778,7 @@ threat.medium = Medium threat.high = High threat.extreme = Extreme threat.eradication = Eradication +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties index f4f10713e1..c7e8e4b658 100644 --- a/core/assets/bundles/bundle_fi.properties +++ b/core/assets/bundles/bundle_fi.properties @@ -776,6 +776,7 @@ threat.medium = Kohtalainen threat.high = Korkea threat.extreme = Äärimmäinen threat.eradication = Täystuho +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_fil.properties b/core/assets/bundles/bundle_fil.properties index 02ab0d6ba4..abe72cc34a 100644 --- a/core/assets/bundles/bundle_fil.properties +++ b/core/assets/bundles/bundle_fil.properties @@ -776,6 +776,7 @@ threat.medium = Medium threat.high = Mataas threat.extreme = Sobra-sobra threat.eradication = Tiyak na talo sa hind handa +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index 0b1a48f8ef..0be1291058 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -798,6 +798,7 @@ threat.medium = Normale threat.high = Grande threat.extreme = Extrême threat.eradication = Éradication +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index c1a4c4d99b..71f4c7bcd4 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -800,6 +800,7 @@ threat.medium = Közepes threat.high = Magas threat.extreme = Extrém threat.eradication = Irtózatos +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_id_ID.properties b/core/assets/bundles/bundle_id_ID.properties index 14c971c210..8714a9612b 100644 --- a/core/assets/bundles/bundle_id_ID.properties +++ b/core/assets/bundles/bundle_id_ID.properties @@ -800,6 +800,7 @@ threat.medium = Sedang threat.high = Tinggi threat.extreme = Berbahaya threat.eradication = Pemusnahan +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties index e47ee89bba..051564b167 100644 --- a/core/assets/bundles/bundle_it.properties +++ b/core/assets/bundles/bundle_it.properties @@ -781,6 +781,7 @@ threat.medium = Media threat.high = Alta threat.extreme = Estrema threat.eradication = Catastrofe +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index bd6949cfda..86c4161bf1 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -785,6 +785,7 @@ threat.medium = 中 threat.high = 高 threat.extreme = 過酷 threat.eradication = 破滅的 +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index 6ee3b2cf3f..23b5b82405 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -786,6 +786,7 @@ threat.medium = 보통 threat.high = 높음 threat.extreme = 매우 높음 threat.eradication = 극한 +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties index 994ff3bfe0..4954e3f966 100644 --- a/core/assets/bundles/bundle_lt.properties +++ b/core/assets/bundles/bundle_lt.properties @@ -776,6 +776,7 @@ threat.medium = Medium threat.high = High threat.extreme = Extreme threat.eradication = Eradication +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index 3f1c226945..c42b7e64e4 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -787,6 +787,7 @@ threat.medium = Gemiddeld threat.high = Hoog threat.extreme = Extreem threat.eradication = Uitroeiing +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties index 33201743f9..d979df1ae3 100644 --- a/core/assets/bundles/bundle_nl_BE.properties +++ b/core/assets/bundles/bundle_nl_BE.properties @@ -776,6 +776,7 @@ threat.medium = Medium threat.high = High threat.extreme = Extreme threat.eradication = Eradication +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index cb32a1046b..dfe72ebc4c 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -783,6 +783,7 @@ threat.medium = Średni threat.high = Wysoki threat.extreme = Ekstremalny threat.eradication = Czystka +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index 0fd2f6e274..94c528731a 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -791,6 +791,7 @@ threat.medium = Média threat.high = Alta threat.extreme = Extrema threat.eradication = Erradicação +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties index 86272b4bf0..6895ba8fba 100644 --- a/core/assets/bundles/bundle_pt_PT.properties +++ b/core/assets/bundles/bundle_pt_PT.properties @@ -776,6 +776,7 @@ threat.medium = Medium threat.high = High threat.extreme = Extreme threat.eradication = Eradication +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_ro.properties b/core/assets/bundles/bundle_ro.properties index cc28415b80..df87fd185b 100644 --- a/core/assets/bundles/bundle_ro.properties +++ b/core/assets/bundles/bundle_ro.properties @@ -785,6 +785,7 @@ threat.medium = Medie threat.high = Mare threat.extreme = Extremă threat.eradication = Eradicare +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index 3a022f09a4..f3f3022f2a 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -786,6 +786,7 @@ threat.medium = Средняя threat.high = Высокая threat.extreme = Экстремальная threat.eradication = Истребляющая +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_sr.properties b/core/assets/bundles/bundle_sr.properties index c16e721ef9..a78d662a35 100644 --- a/core/assets/bundles/bundle_sr.properties +++ b/core/assets/bundles/bundle_sr.properties @@ -786,6 +786,7 @@ threat.medium = Srednje threat.high = Visoko threat.extreme = Ekstremno threat.eradication = Istrebljenje +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties index 39252e07d6..57547037b8 100644 --- a/core/assets/bundles/bundle_sv.properties +++ b/core/assets/bundles/bundle_sv.properties @@ -776,6 +776,7 @@ threat.medium = Medium threat.high = High threat.extreme = Extreme threat.eradication = Eradication +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index db16ff12e0..2a42d3b6f9 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -786,6 +786,7 @@ threat.medium = กลาง threat.high = สูง threat.extreme = วิบัติภัย threat.eradication = ทำลายล้าง +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index 4e9e1c679a..59a99e61b1 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -776,6 +776,7 @@ threat.medium = Medium threat.high = High threat.extreme = Extreme threat.eradication = Eradication +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index ef06aa173b..99e3244008 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -785,6 +785,7 @@ threat.medium = Orta threat.high = Yüksek threat.extreme = Aşırı threat.eradication = İmkansız +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index a062157676..229127ae73 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -794,6 +794,7 @@ threat.medium = середня threat.high = висока threat.extreme = екстремальна threat.eradication = викорінювальна +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties index 9dd8502bc5..60a0b25539 100644 --- a/core/assets/bundles/bundle_vi.properties +++ b/core/assets/bundles/bundle_vi.properties @@ -800,6 +800,7 @@ threat.medium = Trung bình threat.high = Cao threat.extreme = Cực cao threat.eradication = Hủy diệt +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index b7a7811521..405207ad72 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -795,6 +795,7 @@ threat.medium = 中度 threat.high = 高度 threat.extreme = 极高 threat.eradication = 毁灭 +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index 57d3cb8d8d..d31aec90d3 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -791,6 +791,7 @@ threat.medium = 中 threat.high = 高 threat.extreme = 極高 threat.eradication = 毀滅性 +difficulty.casual = Casual difficulty.easy = Easy difficulty.normal = Normal difficulty.hard = Hard From 5b9d3029a51552f65e79d5070f36eb7d503eece1 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 20 Jun 2024 17:26:10 -0400 Subject: [PATCH 186/437] Loop unit transfer command --- core/assets/bundles/bundle.properties | 2 + core/src/mindustry/ai/UnitCommand.java | 7 ++- core/src/mindustry/ai/types/CommandAI.java | 61 ++++++++++++++++--- .../mindustry/entities/comp/PayloadComp.java | 3 +- core/src/mindustry/input/Binding.java | 1 + core/src/mindustry/input/InputHandler.java | 14 +++++ core/src/mindustry/io/TypeIO.java | 4 +- core/src/mindustry/type/UnitType.java | 2 +- .../ui/fragments/PlacementFragment.java | 4 ++ 9 files changed, 86 insertions(+), 12 deletions(-) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 549651a197..0f88f8d18d 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -359,6 +359,7 @@ command.enterPayload = Enter Payload Block command.loadUnits = Load Units command.loadBlocks = Load Blocks command.unloadPayload = Unload Payload +command.loopPayload = Loop Unit Transfer stance.stop = Cancel Orders stance.shoot = Stance: Shoot stance.holdfire = Stance: Hold Fire @@ -1274,6 +1275,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Rebuild Region keybind.schematic_select.name = Select Region diff --git a/core/src/mindustry/ai/UnitCommand.java b/core/src/mindustry/ai/UnitCommand.java index 51a0edfcf8..85eff6be00 100644 --- a/core/src/mindustry/ai/UnitCommand.java +++ b/core/src/mindustry/ai/UnitCommand.java @@ -17,7 +17,7 @@ public class UnitCommand extends MappableContent{ @Deprecated public static final Seq all = new Seq<>(); - public static UnitCommand moveCommand, repairCommand, rebuildCommand, assistCommand, mineCommand, boostCommand, enterPayloadCommand, loadUnitsCommand, loadBlocksCommand, unloadPayloadCommand; + public static UnitCommand moveCommand, repairCommand, rebuildCommand, assistCommand, mineCommand, boostCommand, enterPayloadCommand, loadUnitsCommand, loadBlocksCommand, unloadPayloadCommand, loopPayloadCommand; /** Name of UI icon (from Icon class). */ public final String icon; @@ -110,5 +110,10 @@ public class UnitCommand extends MappableContent{ drawTarget = true; resetTarget = false; }}; + loopPayloadCommand = new UnitCommand("loopPayload", "resize", Binding.unit_command_loop_payload, null){{ + switchToMove = false; + drawTarget = true; + resetTarget = false; + }}; } } diff --git a/core/src/mindustry/ai/types/CommandAI.java b/core/src/mindustry/ai/types/CommandAI.java index d7b5d480fd..8ba3e24be1 100644 --- a/core/src/mindustry/ai/types/CommandAI.java +++ b/core/src/mindustry/ai/types/CommandAI.java @@ -20,11 +20,12 @@ public class CommandAI extends AIController{ protected static final Vec2 vecOut = new Vec2(), vecMovePos = new Vec2(); protected static final boolean[] noFound = {false}; protected static final UnitPayload tmpPayload = new UnitPayload(null); + protected static final int transferStateNone = 0, transferStateLoad = 1, transferStateUnload = 2; public Seq commandQueue = new Seq<>(5); public @Nullable Vec2 targetPos; public @Nullable Teamc attackTarget; - /** Group of units that were all commanded to reach the same point.. */ + /** Group of units that were all commanded to reach the same point. */ public @Nullable UnitGroup group; public int groupIndex = 0; /** All encountered unreachable buildings of this AI. Why a sequence? Because contains() is very rarely called on it. */ @@ -36,6 +37,7 @@ public class CommandAI extends AIController{ protected Vec2 lastTargetPos; protected boolean blockingUnit; protected float timeSpentBlocked; + protected int transferState = transferStateNone; /** Stance, usually related to firing mode. */ public UnitStance stance = UnitStance.shoot; @@ -113,6 +115,13 @@ public class CommandAI extends AIController{ attackTarget = null; } + void tryPickupUnit(Payloadc pay){ + Unit target = Units.closest(unit.team, unit.x, unit.y, unit.type.hitSize * 2f, u -> u.isAI() && u != unit && u.isGrounded() && pay.canPickup(u) && u.within(unit, u.hitSize + unit.hitSize)); + if(target != null){ + Call.pickedUnitPayload(unit, target); + } + } + public void defaultBehavior(){ if(!net.client() && unit instanceof Payloadc pay){ @@ -123,10 +132,7 @@ public class CommandAI extends AIController{ //try to pick up what's under it if(command == UnitCommand.loadUnitsCommand){ - Unit target = Units.closest(unit.team, unit.x, unit.y, unit.type.hitSize * 2f, u -> u.isAI() && u != unit && u.isGrounded() && pay.canPickup(u) && u.within(unit, u.hitSize + unit.hitSize)); - if(target != null){ - Call.pickedUnitPayload(unit, target); - } + tryPickupUnit(pay); } //try to pick up a block @@ -223,7 +229,8 @@ public class CommandAI extends AIController{ //TODO: should the unit stop when it finds a target? if( (stance == UnitStance.patrol && target != null && unit.within(target, unit.type.range - 2f) && !unit.type.circleTarget) || - (command == UnitCommand.enterPayloadCommand && unit.within(targetPos, 4f) || (targetBuild != null && unit.within(targetBuild, targetBuild.block.size * tilesize/2f * 0.9f))) + (command == UnitCommand.enterPayloadCommand && unit.within(targetPos, 4f) || (targetBuild != null && unit.within(targetBuild, targetBuild.block.size * tilesize/2f * 0.9f))) || + (command == UnitCommand.loopPayloadCommand && unit.within(targetPos, 10f)) ){ move = false; } @@ -330,6 +337,46 @@ public class CommandAI extends AIController{ return; } + if(!net.client() && command == UnitCommand.loopPayloadCommand && unit instanceof Payloadc pay){ + + if(transferState == transferStateNone){ + transferState = pay.hasPayload() ? transferStateUnload : transferStateLoad; + } + + if(transferState == transferStateUnload){ + //drop until there's a failure + int prev = -1; + while(pay.hasPayload() && prev != pay.payloads().size){ + prev = pay.payloads().size; + Call.payloadDropped(unit, unit.x, unit.y); + } + + //wait for everything to unload before running code below + if(pay.hasPayload()){ + return; + } + }else if(transferState == transferStateLoad){ + //pick up units until there's a failure + int prev = -1; + while(prev != pay.payloads().size){ + prev = pay.payloads().size; + tryPickupUnit(pay); + } + + //wait to load things before running code below + if(!pay.hasPayload()){ + return; + } + } + + //it will never finish + if(commandQueue.size == 0){ + return; + } + } + + transferState = transferStateNone; + Vec2 prev = targetPos; targetPos = null; @@ -341,7 +388,7 @@ public class CommandAI extends AIController{ commandPosition(position); } - if(prev != null && stance == UnitStance.patrol){ + if(prev != null && (stance == UnitStance.patrol || command == UnitCommand.loopPayloadCommand)){ commandQueue.add(prev.cpy()); } diff --git a/core/src/mindustry/entities/comp/PayloadComp.java b/core/src/mindustry/entities/comp/PayloadComp.java index 9b9d6e6405..9cf23876d2 100644 --- a/core/src/mindustry/entities/comp/PayloadComp.java +++ b/core/src/mindustry/entities/comp/PayloadComp.java @@ -147,7 +147,8 @@ abstract class PayloadComp implements Posc, Rotc, Hitboxc, Unitc{ Unit u = payload.unit; //can't drop ground units - if(!u.canPass(tileX(), tileY()) || Units.count(x, y, u.physicSize(), o -> o.isGrounded()) > 1){ + //allow stacking for small units for now - otherwise, unit transfer would get annoying + if(!u.canPass(tileX(), tileY()) || Units.count(x, y, u.physicSize(), o -> o.isGrounded() && o.hitSize > 14f) > 1){ return false; } diff --git a/core/src/mindustry/input/Binding.java b/core/src/mindustry/input/Binding.java index 039829ebd4..973e2e961e 100644 --- a/core/src/mindustry/input/Binding.java +++ b/core/src/mindustry/input/Binding.java @@ -60,6 +60,7 @@ public enum Binding implements KeyBind{ unit_command_load_units(KeyCode.unset), unit_command_load_blocks(KeyCode.unset), unit_command_unload_payload(KeyCode.unset), + unit_command_loop_payload(KeyCode.unset), category_prev(KeyCode.comma, "blocks"), category_next(KeyCode.period), diff --git a/core/src/mindustry/input/InputHandler.java b/core/src/mindustry/input/InputHandler.java index fcf7aedfb9..f3d7fa84cf 100644 --- a/core/src/mindustry/input/InputHandler.java +++ b/core/src/mindustry/input/InputHandler.java @@ -1088,6 +1088,20 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ } } } + + if(ai.targetPos != null && ai.currentCommand() == UnitCommand.loopPayloadCommand && unit instanceof Payloadc pay){ + Draw.color(Pal.accent, 0.4f + Mathf.absin(5f, 0.5f)); + TextureRegion region = pay.hasPayload() ? Icon.download.getRegion() : Icon.upload.getRegion(); + float offset = 11f; + float size = 8f; + Draw.rect(region, ai.targetPos.x, ai.targetPos.y + offset, size, size / region.ratio()); + + if(ai.commandQueue.size > 0){ + region = !pay.hasPayload() ? Icon.download.getRegion() : Icon.upload.getRegion(); + Draw.rect(region, ai.commandQueue.first().getX(), ai.commandQueue.first().getY() + offset, size, size / region.ratio()); + } + Draw.color(); + } } for(var commandBuild : commandBuildings){ diff --git a/core/src/mindustry/io/TypeIO.java b/core/src/mindustry/io/TypeIO.java index c02ceb4ae6..5be1d54403 100644 --- a/core/src/mindustry/io/TypeIO.java +++ b/core/src/mindustry/io/TypeIO.java @@ -246,7 +246,7 @@ public class TypeIO{ //this is irrelevant. static final WeaponMount[] noMounts = {}; - + public static WeaponMount[] readMounts(Reads read){ read.skip(read.b() * (1 + 4 + 4)); @@ -581,7 +581,7 @@ public class TypeIO{ if(ai.command == null) ai.command = UnitCommand.moveCommand; } - //command queue only in type 7 + //command queue only in type 7/8 if(type == 7 || type == 8){ ai.commandQueue.clear(); int length = read.ub(); diff --git a/core/src/mindustry/type/UnitType.java b/core/src/mindustry/type/UnitType.java index 4466ecd536..1eb43fec67 100644 --- a/core/src/mindustry/type/UnitType.java +++ b/core/src/mindustry/type/UnitType.java @@ -853,7 +853,7 @@ public class UnitType extends UnlockableContent implements Senseable{ cmds.add(UnitCommand.mineCommand); } if(example instanceof Payloadc){ - cmds.addAll(UnitCommand.loadUnitsCommand, UnitCommand.loadBlocksCommand, UnitCommand.unloadPayloadCommand); + cmds.addAll(UnitCommand.loadUnitsCommand, UnitCommand.loadBlocksCommand, UnitCommand.unloadPayloadCommand, UnitCommand.loopPayloadCommand); } } diff --git a/core/src/mindustry/ui/fragments/PlacementFragment.java b/core/src/mindustry/ui/fragments/PlacementFragment.java index 8bbc475022..b0986bffa7 100644 --- a/core/src/mindustry/ui/fragments/PlacementFragment.java +++ b/core/src/mindustry/ui/fragments/PlacementFragment.java @@ -529,6 +529,10 @@ public class PlacementFragment{ if(stances.size > 1){ u.row(); + if(commands.size > 1){ + u.add(new Image(Tex.whiteui)).height(3f).color(Pal.gray).pad(7f).growX().row(); + } + u.table(coms -> { coms.left(); int scol = 0; From 65c4dd6695d443c0b3dc9727d2fffab4b1d87ddb Mon Sep 17 00:00:00 2001 From: Github Actions Date: Tue, 17 Sep 2024 22:04:39 +0000 Subject: [PATCH 187/437] Automatic bundle update --- core/assets/bundles/bundle_be.properties | 2 ++ core/assets/bundles/bundle_bg.properties | 2 ++ core/assets/bundles/bundle_ca.properties | 2 ++ core/assets/bundles/bundle_cs.properties | 2 ++ core/assets/bundles/bundle_da.properties | 2 ++ core/assets/bundles/bundle_de.properties | 2 ++ core/assets/bundles/bundle_es.properties | 2 ++ core/assets/bundles/bundle_et.properties | 2 ++ core/assets/bundles/bundle_eu.properties | 2 ++ core/assets/bundles/bundle_fi.properties | 2 ++ core/assets/bundles/bundle_fil.properties | 2 ++ core/assets/bundles/bundle_fr.properties | 2 ++ core/assets/bundles/bundle_hu.properties | 2 ++ core/assets/bundles/bundle_id_ID.properties | 2 ++ core/assets/bundles/bundle_it.properties | 2 ++ core/assets/bundles/bundle_ja.properties | 2 ++ core/assets/bundles/bundle_ko.properties | 2 ++ core/assets/bundles/bundle_lt.properties | 2 ++ core/assets/bundles/bundle_nl.properties | 2 ++ core/assets/bundles/bundle_nl_BE.properties | 2 ++ core/assets/bundles/bundle_pl.properties | 2 ++ core/assets/bundles/bundle_pt_BR.properties | 2 ++ core/assets/bundles/bundle_pt_PT.properties | 2 ++ core/assets/bundles/bundle_ro.properties | 2 ++ core/assets/bundles/bundle_ru.properties | 2 ++ core/assets/bundles/bundle_sr.properties | 2 ++ core/assets/bundles/bundle_sv.properties | 2 ++ core/assets/bundles/bundle_th.properties | 2 ++ core/assets/bundles/bundle_tk.properties | 2 ++ core/assets/bundles/bundle_tr.properties | 2 ++ core/assets/bundles/bundle_uk_UA.properties | 2 ++ core/assets/bundles/bundle_vi.properties | 2 ++ core/assets/bundles/bundle_zh_CN.properties | 2 ++ core/assets/bundles/bundle_zh_TW.properties | 2 ++ 34 files changed, 68 insertions(+) diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties index 4211e9f3ba..362b6f45b9 100644 --- a/core/assets/bundles/bundle_be.properties +++ b/core/assets/bundles/bundle_be.properties @@ -348,6 +348,7 @@ command.enterPayload = Enter Payload Block command.loadUnits = Load Units command.loadBlocks = Load Blocks command.unloadPayload = Unload Payload +command.loopPayload = Loop Unit Transfer stance.stop = Cancel Orders stance.shoot = Stance: Shoot stance.holdfire = Stance: Hold Fire @@ -1241,6 +1242,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Перабудаваць Рэгіён keybind.schematic_select.name = Абраць Вобласць keybind.schematic_menu.name = Меню Схем diff --git a/core/assets/bundles/bundle_bg.properties b/core/assets/bundles/bundle_bg.properties index d40375a9dd..14fdc186fc 100644 --- a/core/assets/bundles/bundle_bg.properties +++ b/core/assets/bundles/bundle_bg.properties @@ -353,6 +353,7 @@ command.enterPayload = Enter Payload Block command.loadUnits = Load Units command.loadBlocks = Load Blocks command.unloadPayload = Unload Payload +command.loopPayload = Loop Unit Transfer stance.stop = Cancel Orders stance.shoot = Stance: Shoot stance.holdfire = Stance: Hold Fire @@ -1252,6 +1253,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Rebuild Region keybind.schematic_select.name = Избери Регион keybind.schematic_menu.name = Меню със Схеми diff --git a/core/assets/bundles/bundle_ca.properties b/core/assets/bundles/bundle_ca.properties index 9877db3d4b..991db75325 100644 --- a/core/assets/bundles/bundle_ca.properties +++ b/core/assets/bundles/bundle_ca.properties @@ -353,6 +353,7 @@ command.enterPayload = Entra bloc command.loadUnits = Carrega unitats command.loadBlocks = Carrega blocs command.unloadPayload = Descarrega +command.loopPayload = Loop Unit Transfer stance.stop = Cancel·la les ordres stance.shoot = Comportament: Dispara stance.holdfire = Comportament: Mantén el foc @@ -1255,6 +1256,7 @@ keybind.unit_command_load_units.name = Ordre d’unitat: Carrega unitats keybind.unit_command_load_blocks.name = Ordre d’unitat: Carrega blocs keybind.unit_command_unload_payload.name = Ordre d’unitat: Descarrega blocs keybind.unit_command_enter_payload.name = Ordre d’unitat: Entra blocs +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Reconstrueix la regió keybind.schematic_select.name = Selecciona una regió keybind.schematic_menu.name = Menú de plànols diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index 490efc78c0..49d261ed0f 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -354,6 +354,7 @@ command.enterPayload = Enter Payload Block command.loadUnits = Load Units command.loadBlocks = Load Blocks command.unloadPayload = Unload Payload +command.loopPayload = Loop Unit Transfer stance.stop = Cancel Orders stance.shoot = Stance: Shoot stance.holdfire = Stance: Hold Fire @@ -1254,6 +1255,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Přestavět Region keybind.schematic_select.name = Vybrat oblast keybind.schematic_menu.name = Nabídka šablon diff --git a/core/assets/bundles/bundle_da.properties b/core/assets/bundles/bundle_da.properties index 6bc53f0e4f..f1740a07ab 100644 --- a/core/assets/bundles/bundle_da.properties +++ b/core/assets/bundles/bundle_da.properties @@ -349,6 +349,7 @@ command.enterPayload = Enter Payload Block command.loadUnits = Load Units command.loadBlocks = Load Blocks command.unloadPayload = Unload Payload +command.loopPayload = Loop Unit Transfer stance.stop = Cancel Orders stance.shoot = Stance: Shoot stance.holdfire = Stance: Hold Fire @@ -1243,6 +1244,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Rebuild Region keybind.schematic_select.name = Vælg region keybind.schematic_menu.name = Skabelon-visning diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index 2e4f776cab..949c65e94b 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -356,6 +356,7 @@ command.enterPayload = Enter Payload Block command.loadUnits = Load Units command.loadBlocks = Load Blocks command.unloadPayload = Unload Payload +command.loopPayload = Loop Unit Transfer stance.stop = Cancel Orders stance.shoot = Stance: Shoot stance.holdfire = Stance: Hold Fire @@ -1265,6 +1266,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Region wiederaufbauen keybind.schematic_select.name = Bereich auswählen keybind.schematic_menu.name = Entwurfsmenü diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index e58a263d06..e1908f08dc 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -353,6 +353,7 @@ command.enterPayload = Enter Payload Block command.loadUnits = Load Units command.loadBlocks = Load Blocks command.unloadPayload = Unload Payload +command.loopPayload = Loop Unit Transfer stance.stop = Cancel Orders stance.shoot = Stance: Shoot stance.holdfire = Stance: Hold Fire @@ -1261,6 +1262,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Reconstruir región keybind.schematic_select.name = Seleccionar región keybind.schematic_menu.name = Menú de esquemas diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties index 8b5f117850..cb19f92b0a 100644 --- a/core/assets/bundles/bundle_et.properties +++ b/core/assets/bundles/bundle_et.properties @@ -349,6 +349,7 @@ command.enterPayload = Enter Payload Block command.loadUnits = Load Units command.loadBlocks = Load Blocks command.unloadPayload = Unload Payload +command.loopPayload = Loop Unit Transfer stance.stop = Cancel Orders stance.shoot = Stance: Shoot stance.holdfire = Stance: Hold Fire @@ -1243,6 +1244,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Rebuild Region keybind.schematic_select.name = Select Region keybind.schematic_menu.name = Schematic Menu diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties index 3b69bb4721..eb9667efe4 100644 --- a/core/assets/bundles/bundle_eu.properties +++ b/core/assets/bundles/bundle_eu.properties @@ -351,6 +351,7 @@ command.enterPayload = Enter Payload Block command.loadUnits = Load Units command.loadBlocks = Load Blocks command.unloadPayload = Unload Payload +command.loopPayload = Loop Unit Transfer stance.stop = Cancel Orders stance.shoot = Stance: Shoot stance.holdfire = Stance: Hold Fire @@ -1245,6 +1246,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Rebuild Region keybind.schematic_select.name = Hautatu eskualdea keybind.schematic_menu.name = Eskema menua diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties index c7e8e4b658..812d1da978 100644 --- a/core/assets/bundles/bundle_fi.properties +++ b/core/assets/bundles/bundle_fi.properties @@ -349,6 +349,7 @@ command.enterPayload = Enter Payload Block command.loadUnits = Load Units command.loadBlocks = Load Blocks command.unloadPayload = Unload Payload +command.loopPayload = Loop Unit Transfer stance.stop = Cancel Orders stance.shoot = Stance: Shoot stance.holdfire = Stance: Hold Fire @@ -1242,6 +1243,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Rebuild Region keybind.schematic_select.name = Valitse alue keybind.schematic_menu.name = Kaavio Valikko diff --git a/core/assets/bundles/bundle_fil.properties b/core/assets/bundles/bundle_fil.properties index abe72cc34a..2d602c3eee 100644 --- a/core/assets/bundles/bundle_fil.properties +++ b/core/assets/bundles/bundle_fil.properties @@ -349,6 +349,7 @@ command.enterPayload = Enter Payload Block command.loadUnits = Load Units command.loadBlocks = Load Blocks command.unloadPayload = Unload Payload +command.loopPayload = Loop Unit Transfer stance.stop = Cancel Orders stance.shoot = Stance: Shoot stance.holdfire = Stance: Hold Fire @@ -1242,6 +1243,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Rebuild Region keybind.schematic_select.name = Select Region keybind.schematic_menu.name = Schematic Menu diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index 0be1291058..3315051c28 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -359,6 +359,7 @@ command.enterPayload = Entrer dans Bloc de Transport command.loadUnits = Transporter Unités command.loadBlocks = Transporter Blocs command.unloadPayload = Poser Chargement +command.loopPayload = Loop Unit Transfer stance.stop = Annuler les Ordres stance.shoot = Ordre: Tirer stance.holdfire = Ordre: Ne pas Tirer @@ -1268,6 +1269,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Reconstruire la Zone keybind.schematic_select.name = Sélectionner une Région diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index 71f4c7bcd4..dc8835338a 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -359,6 +359,7 @@ command.enterPayload = Berakodás a raktérbe command.loadUnits = Egységek felvétele command.loadBlocks = Blokkok felvétele command.unloadPayload = Kirakodás a raktérből +command.loopPayload = Loop Unit Transfer stance.stop = Parancsok visszavonása stance.shoot = Viselkedés: lövés stance.holdfire = Viselkedés: tüzet szüntess @@ -1272,6 +1273,7 @@ keybind.unit_command_load_units.name = Egységparancs: egységek berakodása keybind.unit_command_load_blocks.name = Egységparancs: blokkok berakodása keybind.unit_command_unload_payload.name = Egységparancs: kirakodás keybind.unit_command_enter_payload.name = Egységparancs: berakodás +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Régió újraépítése keybind.schematic_select.name = Terület kijelölése diff --git a/core/assets/bundles/bundle_id_ID.properties b/core/assets/bundles/bundle_id_ID.properties index 8714a9612b..a7e31673a2 100644 --- a/core/assets/bundles/bundle_id_ID.properties +++ b/core/assets/bundles/bundle_id_ID.properties @@ -359,6 +359,7 @@ command.enterPayload = Masukkan Muatan Blok command.loadUnits = Muat Unit command.loadBlocks = Muat Blok command.unloadPayload = Turunkan Muatan +command.loopPayload = Loop Unit Transfer stance.stop = Batalkan Perintah stance.shoot = Posisi Unit: Menembak stance.holdfire = Posisi Unit: Gencatan Senjata @@ -1271,6 +1272,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Perintah Unit: Masuk ke Muatan +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Membangun Wilayah Kembali keybind.schematic_select.name = Pilih Daerah diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties index 051564b167..b813286a21 100644 --- a/core/assets/bundles/bundle_it.properties +++ b/core/assets/bundles/bundle_it.properties @@ -351,6 +351,7 @@ command.enterPayload = Enter Payload Block command.loadUnits = Load Units command.loadBlocks = Load Blocks command.unloadPayload = Unload Payload +command.loopPayload = Loop Unit Transfer stance.stop = Cancel Orders stance.shoot = Stance: Shoot stance.holdfire = Stance: Hold Fire @@ -1248,6 +1249,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Rebuild Region keybind.schematic_select.name = Seleziona Regione keybind.schematic_menu.name = Menu Schematica diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index 86c4161bf1..c67b1a0716 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -353,6 +353,7 @@ command.enterPayload = Enter Payload Block command.loadUnits = Load Units command.loadBlocks = Load Blocks command.unloadPayload = Unload Payload +command.loopPayload = Loop Unit Transfer stance.stop = Cancel Orders stance.shoot = Stance: Shoot stance.holdfire = Stance: Hold Fire @@ -1254,6 +1255,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = リージョンの再構築 keybind.schematic_select.name = 範囲選択 keybind.schematic_menu.name = 設計図メニュー diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index 23b5b82405..18ddb0f7e2 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -353,6 +353,7 @@ command.enterPayload = 화물 블록에 들어가기 command.loadUnits = 유닛 적재 command.loadBlocks = 블록 적재 command.unloadPayload = 화물 내려놓기 +command.loopPayload = Loop Unit Transfer stance.stop = 명령 취소하기 stance.shoot = 명령: 사격 stance.holdfire = 명령: 사격 중지 @@ -1253,6 +1254,7 @@ keybind.unit_command_load_units.name = 유닛 제어: 유닛 적재 keybind.unit_command_load_blocks.name = 유닛 제어: 블록 적재 keybind.unit_command_unload_payload.name = 유닛 제어: 화물 투하 keybind.unit_command_enter_payload.name = 유닛 제어: 화물 건물에 착륙/진입 +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = 지역 재건 keybind.schematic_select.name = 영역 설정 keybind.schematic_menu.name = 설계도 메뉴 diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties index 4954e3f966..47218ec698 100644 --- a/core/assets/bundles/bundle_lt.properties +++ b/core/assets/bundles/bundle_lt.properties @@ -349,6 +349,7 @@ command.enterPayload = Enter Payload Block command.loadUnits = Load Units command.loadBlocks = Load Blocks command.unloadPayload = Unload Payload +command.loopPayload = Loop Unit Transfer stance.stop = Cancel Orders stance.shoot = Stance: Shoot stance.holdfire = Stance: Hold Fire @@ -1243,6 +1244,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Rebuild Region keybind.schematic_select.name = Pasirinkite Regioną keybind.schematic_menu.name = Schemų Meniu diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index c42b7e64e4..2acf0e053e 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -357,6 +357,7 @@ command.enterPayload = Enter Payload Block command.loadUnits = Load Units command.loadBlocks = Load Blocks command.unloadPayload = Unload Payload +command.loopPayload = Loop Unit Transfer stance.stop = Cancel Orders stance.shoot = Stance: Shoot stance.holdfire = Stance: Hold Fire @@ -1255,6 +1256,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Herbouw Regio keybind.schematic_select.name = Selecteer gebied keybind.schematic_menu.name = Ontwerpmenu diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties index d979df1ae3..5d1cfb4489 100644 --- a/core/assets/bundles/bundle_nl_BE.properties +++ b/core/assets/bundles/bundle_nl_BE.properties @@ -349,6 +349,7 @@ command.enterPayload = Enter Payload Block command.loadUnits = Load Units command.loadBlocks = Load Blocks command.unloadPayload = Unload Payload +command.loopPayload = Loop Unit Transfer stance.stop = Cancel Orders stance.shoot = Stance: Shoot stance.holdfire = Stance: Hold Fire @@ -1243,6 +1244,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Rebuild Region keybind.schematic_select.name = Select Region keybind.schematic_menu.name = Schematic Menu diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index dfe72ebc4c..7650f980a5 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -353,6 +353,7 @@ command.enterPayload = Enter Payload Block command.loadUnits = Załaduj Jednostki command.loadBlocks = Załaduj Bloki command.unloadPayload = Rozładuj Ładunek +command.loopPayload = Loop Unit Transfer stance.stop = Analuj Rozkazy stance.shoot = Strzelaj stance.holdfire = Wstrzymaj Ogień @@ -1252,6 +1253,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Odbuduj Region keybind.schematic_select.name = Wybierz Region keybind.schematic_menu.name = Menu Schematów diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index 94c528731a..91150efc17 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -353,6 +353,7 @@ command.enterPayload = Enter Payload Block command.loadUnits = Load Units command.loadBlocks = Load Blocks command.unloadPayload = Unload Payload +command.loopPayload = Loop Unit Transfer stance.stop = Cancel Orders stance.shoot = Stance: Shoot stance.holdfire = Stance: Hold Fire @@ -1262,6 +1263,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Rebuild Region keybind.schematic_select.name = Selecionar região keybind.schematic_menu.name = Menu de Esquemas diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties index 6895ba8fba..d97088fb53 100644 --- a/core/assets/bundles/bundle_pt_PT.properties +++ b/core/assets/bundles/bundle_pt_PT.properties @@ -349,6 +349,7 @@ command.enterPayload = Enter Payload Block command.loadUnits = Load Units command.loadBlocks = Load Blocks command.unloadPayload = Unload Payload +command.loopPayload = Loop Unit Transfer stance.stop = Cancel Orders stance.shoot = Stance: Shoot stance.holdfire = Stance: Hold Fire @@ -1243,6 +1244,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Rebuild Region keybind.schematic_select.name = Selecionar região keybind.schematic_menu.name = Menu esquemático diff --git a/core/assets/bundles/bundle_ro.properties b/core/assets/bundles/bundle_ro.properties index df87fd185b..ea64fcbc01 100644 --- a/core/assets/bundles/bundle_ro.properties +++ b/core/assets/bundles/bundle_ro.properties @@ -353,6 +353,7 @@ command.enterPayload = Enter Payload Block command.loadUnits = Load Units command.loadBlocks = Load Blocks command.unloadPayload = Unload Payload +command.loopPayload = Loop Unit Transfer stance.stop = Cancel Orders stance.shoot = Stance: Shoot stance.holdfire = Stance: Hold Fire @@ -1254,6 +1255,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Rebuild Region keybind.schematic_select.name = Selectează Regiunea keybind.schematic_menu.name = Meniu Scheme diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index f3f3022f2a..bde22abbc0 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -353,6 +353,7 @@ command.enterPayload = Enter Payload Block command.loadUnits = Load Units command.loadBlocks = Load Blocks command.unloadPayload = Unload Payload +command.loopPayload = Loop Unit Transfer stance.stop = Cancel Orders stance.shoot = Stance: Shoot stance.holdfire = Stance: Hold Fire @@ -1254,6 +1255,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Перестроить в области keybind.schematic_select.name = Выбрать область keybind.schematic_menu.name = Меню схем diff --git a/core/assets/bundles/bundle_sr.properties b/core/assets/bundles/bundle_sr.properties index a78d662a35..2d50761af1 100644 --- a/core/assets/bundles/bundle_sr.properties +++ b/core/assets/bundles/bundle_sr.properties @@ -353,6 +353,7 @@ command.enterPayload = Enter Payload Block command.loadUnits = Load Units command.loadBlocks = Load Blocks command.unloadPayload = Unload Payload +command.loopPayload = Loop Unit Transfer stance.stop = Cancel Orders stance.shoot = Stance: Shoot stance.holdfire = Stance: Hold Fire @@ -1256,6 +1257,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Ponovo Sagradi Region keybind.schematic_select.name = Izaberi Region keybind.schematic_menu.name = Menu Šema diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties index 57547037b8..bd52fc7da6 100644 --- a/core/assets/bundles/bundle_sv.properties +++ b/core/assets/bundles/bundle_sv.properties @@ -349,6 +349,7 @@ command.enterPayload = Enter Payload Block command.loadUnits = Load Units command.loadBlocks = Load Blocks command.unloadPayload = Unload Payload +command.loopPayload = Loop Unit Transfer stance.stop = Cancel Orders stance.shoot = Stance: Shoot stance.holdfire = Stance: Hold Fire @@ -1243,6 +1244,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Rebuild Region keybind.schematic_select.name = Select Region keybind.schematic_menu.name = Schematic Menu diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index 2a42d3b6f9..2110e7b6c1 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -353,6 +353,7 @@ command.enterPayload = Enter Payload Block command.loadUnits = Load Units command.loadBlocks = Load Blocks command.unloadPayload = Unload Payload +command.loopPayload = Loop Unit Transfer stance.stop = Cancel Orders stance.shoot = Stance: Shoot stance.holdfire = Stance: Hold Fire @@ -1255,6 +1256,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = เลือกพื้นที่สร้างใหม่ keybind.schematic_select.name = เลือกพื้นที่ keybind.schematic_menu.name = เมนูแผนผัง diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index 59a99e61b1..bcf0e4aed7 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -349,6 +349,7 @@ command.enterPayload = Enter Payload Block command.loadUnits = Load Units command.loadBlocks = Load Blocks command.unloadPayload = Unload Payload +command.loopPayload = Loop Unit Transfer stance.stop = Cancel Orders stance.shoot = Stance: Shoot stance.holdfire = Stance: Hold Fire @@ -1243,6 +1244,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Rebuild Region keybind.schematic_select.name = Select Region keybind.schematic_menu.name = Schematic Menu diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index 99e3244008..965e015802 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -353,6 +353,7 @@ command.enterPayload = Kargo Bloğu Seç command.loadUnits = Birim Yükle command.loadBlocks = Blok Yükle command.unloadPayload = Birim Bırak +command.loopPayload = Loop Unit Transfer stance.stop = Emri İptal Et stance.shoot = Duruş: Saldırı stance.holdfire = Duruş: Hazır Ol @@ -1252,6 +1253,7 @@ keybind.unit_command_load_units.name = Birim Komutu: Birim Kargola keybind.unit_command_load_blocks.name = Birim Komutu: Blok Kargola keybind.unit_command_unload_payload.name = Birim Komutu: Kargo Boşalt keybind.unit_command_enter_payload.name = Birim Komutu: Kargoya Gir +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Alanı Geri İşaa Et keybind.schematic_select.name = Bölge Seç keybind.schematic_menu.name = Şema Menüsü diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index 229127ae73..8a88a31e4b 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -355,6 +355,7 @@ command.enterPayload = Увійти до вантажного блока command.loadUnits = Завантажити одиниці command.loadBlocks = Завантажити блоки command.unloadPayload = Вивантажити вантаж +command.loopPayload = Loop Unit Transfer stance.stop = Скасувати накази stance.shoot = Позиція: стріляти stance.holdfire = Позиція: припинити вогонь @@ -1263,6 +1264,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Команда одиниці: завантажити вантаж +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Відбудувати регіон keybind.schematic_select.name = Вибрати ділянку keybind.schematic_menu.name = Меню схем diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties index 60a0b25539..c1ca434a30 100644 --- a/core/assets/bundles/bundle_vi.properties +++ b/core/assets/bundles/bundle_vi.properties @@ -359,6 +359,7 @@ command.enterPayload = Nhập Khối hàng vào Công trình command.loadUnits = Nhận Đơn vị command.loadBlocks = Nhận Khối công trình command.unloadPayload = Dỡ Khối hàng +command.loopPayload = Loop Unit Transfer stance.stop = Hủy Mệnh lệnh stance.shoot = Tư thế: Bắn stance.holdfire = Tư thế: Ngừng bắn @@ -1272,6 +1273,7 @@ keybind.unit_command_load_units.name = Mệnh lệnh đơn vị: Nhập đơn v keybind.unit_command_load_blocks.name = Mệnh lệnh đơn vị: Nhập khối công trình keybind.unit_command_unload_payload.name = Mệnh lệnh đơn vị: Dỡ khối hàng keybind.unit_command_enter_payload.name = Mệnh lệnh đơn vị: Vào khối hàng +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Xây dựng lại khu vực keybind.schematic_select.name = Chọn khu vực diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index 405207ad72..e398b56a45 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -356,6 +356,7 @@ command.enterPayload = 进入载荷建筑 command.loadUnits = 拾取单位 command.loadBlocks = 拾取建筑 command.unloadPayload = 卸载载荷 +command.loopPayload = Loop Unit Transfer stance.stop = 取消指令 stance.shoot = 姿态: 射击 stance.holdfire = 姿态: 停火 @@ -1265,6 +1266,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = 重建建筑 keybind.schematic_select.name = 框选建筑 keybind.schematic_menu.name = 蓝图目录 diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index d31aec90d3..309bd136f3 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -353,6 +353,7 @@ command.enterPayload = Enter Payload Block command.loadUnits = Load Units command.loadBlocks = Load Blocks command.unloadPayload = Unload Payload +command.loopPayload = Loop Unit Transfer stance.stop = Cancel Orders stance.shoot = Stance: Shoot stance.holdfire = Stance: Hold Fire @@ -1260,6 +1261,7 @@ keybind.unit_command_load_units.name = Unit Command: Load Units keybind.unit_command_load_blocks.name = Unit Command: Load Blocks keybind.unit_command_unload_payload.name = Unit Command: Unload Payload keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.unit_command_loop_payload.name = Unit Command: Loop Unit Transfer keybind.rebuild_select.name = Rebuild Region keybind.schematic_select.name = 選擇區域 keybind.schematic_menu.name = 藍圖目錄 From a293cb46871242d708e130e40aa03a664e2d35dd Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 18 Sep 2024 07:05:34 -0400 Subject: [PATCH 188/437] Fixed campaign rules in portrait mode --- core/src/mindustry/ui/dialogs/CampaignRulesDialog.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/core/src/mindustry/ui/dialogs/CampaignRulesDialog.java b/core/src/mindustry/ui/dialogs/CampaignRulesDialog.java index 317d321287..64adb4df2c 100644 --- a/core/src/mindustry/ui/dialogs/CampaignRulesDialog.java +++ b/core/src/mindustry/ui/dialogs/CampaignRulesDialog.java @@ -29,6 +29,10 @@ public class CampaignRulesDialog extends BaseDialog{ } } }); + + onResize(() -> { + rebuild(); + }); } void rebuild(){ @@ -50,6 +54,10 @@ public class CampaignRulesDialog extends BaseDialog{ t.button(diff.localized(), style, () -> { rules.difficulty = diff; }).group(group).checked(b -> rules.difficulty == diff); + + if(Core.graphics.isPortrait() && diff.ordinal() % 2 == 1){ + t.row(); + } } }).left().fill(false).expand(false, false).row(); From 63e246cc9d51f91b80e6cc186f633ebe23f8c5e1 Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 18 Sep 2024 09:02:05 -0400 Subject: [PATCH 189/437] Headless crash fix --- core/src/mindustry/game/MapObjectives.java | 1 + gradle.properties | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/game/MapObjectives.java b/core/src/mindustry/game/MapObjectives.java index aacfbafa5e..06f151527b 100644 --- a/core/src/mindustry/game/MapObjectives.java +++ b/core/src/mindustry/game/MapObjectives.java @@ -1126,6 +1126,7 @@ public class MapObjectives implements Iterable, Eachable Date: Wed, 18 Sep 2024 16:27:54 -0400 Subject: [PATCH 190/437] Many bugfixes / Support for repairing derelict in selection --- core/assets/maps/atolls.msav | Bin 42462 -> 42467 bytes core/src/mindustry/ai/types/CommandAI.java | 14 +++++- core/src/mindustry/ai/types/FlyingAI.java | 5 +- core/src/mindustry/entities/Units.java | 4 ++ .../mindustry/entities/comp/PayloadComp.java | 2 + core/src/mindustry/input/DesktopInput.java | 2 +- core/src/mindustry/input/InputHandler.java | 46 +++++++++++++++--- core/src/mindustry/type/UnitType.java | 4 +- 8 files changed, 66 insertions(+), 11 deletions(-) diff --git a/core/assets/maps/atolls.msav b/core/assets/maps/atolls.msav index 1768c32aaf6f083e35ffacc5ba339f3095bb4d2c..02f2737debd9f6fc60dc2d57f8325cf56e822aa3 100644 GIT binary patch delta 40511 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 maxBlockTime); + + //TODO: what to do when there's a target and it can't be reached? + /* + if(noFound[0] && attackTarget != null && attackTarget.within(unit, unit.type.range * 2f)){ + move = true; + vecOut.set(targetPos); + }*/ } //rare case where unit must be perfectly aligned (happens with 1-tile gaps) @@ -403,6 +410,11 @@ public class CommandAI extends AIController{ } } + @Override + public void removed(Unit unit){ + clearCommands(); + } + public void commandQueue(Position location){ if(targetPos == null && attackTarget == null){ if(location instanceof Teamc t){ @@ -444,7 +456,7 @@ public class CommandAI extends AIController{ @Override public Teamc findTarget(float x, float y, float range, boolean air, boolean ground){ - return !nearAttackTarget(x, y, range) ? super.findTarget(x, y, range, air, ground) : attackTarget; + return !nearAttackTarget(x, y, range) ? super.findTarget(x, y, range, air, ground) : Units.isHittable(attackTarget, air, ground) ? attackTarget : null; } public boolean nearAttackTarget(float x, float y, float range){ diff --git a/core/src/mindustry/ai/types/FlyingAI.java b/core/src/mindustry/ai/types/FlyingAI.java index b9f718b8a3..a412c6f4da 100644 --- a/core/src/mindustry/ai/types/FlyingAI.java +++ b/core/src/mindustry/ai/types/FlyingAI.java @@ -10,6 +10,7 @@ import static mindustry.Vars.*; import static mindustry.world.meta.BlockFlag.*; public class FlyingAI extends AIController{ + final static Rand rand = new Rand(); final static BlockFlag[] randomTargets = {core, storage, generator, launchPad, factory, repair, battery, reactor, drill}; @Override @@ -72,10 +73,10 @@ public class FlyingAI extends AIController{ if(state.rules.randomWaveAI){ //when there are no waves, it's just random based on the unit - Mathf.rand.setSeed(unit.type.id + (state.rules.waves ? state.wave : unit.id)); + rand.setSeed(unit.type.id + (state.rules.waves ? state.wave : unit.id)); //try a few random flags first for(int attempt = 0; attempt < 5; attempt++){ - Teamc result = targetFlag(x, y, randomTargets[Mathf.rand.random(randomTargets.length - 1)], true); + Teamc result = targetFlag(x, y, randomTargets[rand.random(randomTargets.length - 1)], true); if(result != null) return result; } //try the closest target diff --git a/core/src/mindustry/entities/Units.java b/core/src/mindustry/entities/Units.java index d74b41dad5..d334651092 100644 --- a/core/src/mindustry/entities/Units.java +++ b/core/src/mindustry/entities/Units.java @@ -112,6 +112,10 @@ public class Units{ return player == null || tile == null || tile.interactable(player.team()) || state.rules.editor; } + public static boolean isHittable(@Nullable Posc target, boolean air, boolean ground){ + return target != null && (target instanceof Buildingc ? ground : (target instanceof Unit u && u.checkTarget(air, ground))); + } + /** * Validates a target. * @param target The target to validate diff --git a/core/src/mindustry/entities/comp/PayloadComp.java b/core/src/mindustry/entities/comp/PayloadComp.java index 9cf23876d2..0122166c94 100644 --- a/core/src/mindustry/entities/comp/PayloadComp.java +++ b/core/src/mindustry/entities/comp/PayloadComp.java @@ -90,6 +90,8 @@ abstract class PayloadComp implements Posc, Rotc, Hitboxc, Unitc{ } void pickup(Unit unit){ + if(unit.isAdded()) unit.team.data().updateCount(unit.type, 1); + unit.remove(); addPayload(new UnitPayload(unit)); Fx.unitPickup.at(unit); diff --git a/core/src/mindustry/input/DesktopInput.java b/core/src/mindustry/input/DesktopInput.java index 48d6d9c6b7..9b8f16bb42 100644 --- a/core/src/mindustry/input/DesktopInput.java +++ b/core/src/mindustry/input/DesktopInput.java @@ -457,7 +457,7 @@ public class DesktopInput extends InputHandler{ cursorType = cursor.build.getCursor(); } - if(cursor.build != null && !state.rules.editor && player.team() != Team.derelict && cursor.build.team == Team.derelict && cursor.build.block.unlockedNow() && Build.validPlace(cursor.block(), player.team(), cursor.build.tileX(), cursor.build.tileY(), cursor.build.rotation)){ + if(canRepairDerelict(cursor)){ cursorType = ui.repairCursor; } diff --git a/core/src/mindustry/input/InputHandler.java b/core/src/mindustry/input/InputHandler.java index f3d7fa84cf..66fe7933a2 100644 --- a/core/src/mindustry/input/InputHandler.java +++ b/core/src/mindustry/input/InputHandler.java @@ -53,6 +53,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ /** Used for dropping items. */ final static float playerSelectRange = mobile ? 17f : 11f; final static IntSeq removed = new IntSeq(); + final static IntSet intSet = new IntSet(); /** Maximum line length. */ final static int maxLength = 100; final static Rect r1 = new Rect(), r2 = new Rect(); @@ -1383,10 +1384,10 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ Lines.rect(result.x, result.y, result.x2 - result.x, result.y2 - result.y); } - protected void drawRebuildSelection(int x, int y, int x2, int y2){ - drawSelection(x, y, x2, y2, 0, Pal.sapBulletBack, Pal.sapBullet); + protected void drawRebuildSelection(int x1, int y1, int x2, int y2){ + drawSelection(x1, y1, x2, y2, 0, Pal.sapBulletBack, Pal.sapBullet); - NormalizeDrawResult result = Placement.normalizeDrawArea(Blocks.air, x, y, x2, y2, false, 0, 1f); + NormalizeDrawResult result = Placement.normalizeDrawArea(Blocks.air, x1, y1, x2, y2, false, 0, 1f); Tmp.r1.set(result.x, result.y, result.x2 - result.x, result.y2 - result.y); @@ -1396,6 +1397,20 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ drawSelected(plan.x, plan.y, content.block(plan.block), Pal.sapBullet); } } + + NormalizeResult dresult = Placement.normalizeArea(x1, y1, x2, y2, rotation, false, 999999999); + + intSet.clear(); + for(int x = dresult.x; x <= dresult.x2; x++){ + for(int y = dresult.y; y <= dresult.y2; y++){ + + Tile tile = world.tileBuilding(x, y); + + if(tile != null && intSet.add(tile.pos()) && canRepairDerelict(tile)){ + drawSelected(tile.x, tile.y, tile.block(), Pal.sapBullet); + } + } + } } protected void drawBreakSelection(int x1, int y1, int x2, int y2){ @@ -1684,13 +1699,20 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ } boolean tryRepairDerelict(Tile selected){ - if(selected != null && !state.rules.editor && player.team() != Team.derelict && selected.build != null && selected.build.block.unlockedNow() && selected.build.team == Team.derelict && Build.validPlace(selected.block(), player.team(), selected.build.tileX(), selected.build.tileY(), selected.build.rotation)){ + if(selected != null && !state.rules.editor && player.team() != Team.derelict && selected.build != null && selected.build.block.unlockedNow() && selected.build.team == Team.derelict && + Build.validPlace(selected.block(), player.team(), selected.build.tileX(), selected.build.tileY(), selected.build.rotation)){ + player.unit().addBuild(new BuildPlan(selected.build.tileX(), selected.build.tileY(), selected.build.rotation, selected.block(), selected.build.config())); return true; } return false; } + boolean canRepairDerelict(Tile tile){ + return tile != null && tile.build != null && !state.rules.editor && player.team() != Team.derelict && tile.build.team == Team.derelict && tile.build.block.unlockedNow() && + Build.validPlace(tile.block(), player.team(), tile.build.tileX(), tile.build.tileY(), tile.build.rotation); + } + boolean canMine(Tile tile){ return !Core.scene.hasMouse() && player.unit().validMine(tile) @@ -1898,8 +1920,8 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ } } - public void rebuildArea(int x, int y, int x2, int y2){ - NormalizeResult result = Placement.normalizeArea(x, y, x2, y2, rotation, false, 999999999); + public void rebuildArea(int x1, int y1, int x2, int y2){ + NormalizeResult result = Placement.normalizeArea(x1, y1, x2, y2, rotation, false, 999999999); Tmp.r1.set(result.x * tilesize, result.y * tilesize, (result.x2 - result.x) * tilesize, (result.y2 - result.y) * tilesize); Iterator broken = player.team().data().plans.iterator(); @@ -1910,6 +1932,18 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ player.unit().addBuild(new BuildPlan(plan.x, plan.y, plan.rotation, content.block(plan.block), plan.config)); } } + + intSet.clear(); + for(int x = result.x; x <= result.x2; x++){ + for(int y = result.y; y <= result.y2; y++){ + + Tile tile = world.tileBuilding(x, y); + + if(tile != null && tile.build != null && intSet.add(tile.pos())){ + tryRepairDerelict(tile); + } + } + } } public void tryBreakBlock(int x, int y){ diff --git a/core/src/mindustry/type/UnitType.java b/core/src/mindustry/type/UnitType.java index 1eb43fec67..3819a23e3c 100644 --- a/core/src/mindustry/type/UnitType.java +++ b/core/src/mindustry/type/UnitType.java @@ -1276,7 +1276,9 @@ public class UnitType extends UnlockableContent implements Senseable{ if(drawCell) drawCell(unit); drawWeapons(unit); if(drawItems) drawItems(unit); - drawLight(unit); + if(!isPayload){ + drawLight(unit); + } if(unit.shieldAlpha > 0 && drawShields){ drawShield(unit); From ab392916263de85475b363a3c0af31a2aa24ea8f Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 18 Sep 2024 19:22:51 -0400 Subject: [PATCH 191/437] Pathfinder bugfixes --- core/assets/maps/atolls.msav | Bin 42467 -> 42478 bytes core/src/mindustry/Vars.java | 2 + core/src/mindustry/ai/ControlPathfinder.java | 35 +++++++++++++----- core/src/mindustry/game/Saves.java | 2 +- .../mindustry/ui/dialogs/PausedDialog.java | 2 +- 5 files changed, 30 insertions(+), 11 deletions(-) diff --git a/core/assets/maps/atolls.msav b/core/assets/maps/atolls.msav index 02f2737debd9f6fc60dc2d57f8325cf56e822aa3..7fb5a58537a5af545a6184a045caa7fb1b9a6354 100644 GIT binary patch delta 41504 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�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 delta 41490 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 diff --git a/core/src/mindustry/Vars.java b/core/src/mindustry/Vars.java index e7bca60cd6..7531b849b3 100644 --- a/core/src/mindustry/Vars.java +++ b/core/src/mindustry/Vars.java @@ -170,6 +170,8 @@ public class Vars implements Loadable{ public static boolean confirmExit = true; /** if true, UI is not drawn */ public static boolean disableUI; + /** if true, most autosaving is disabled. internal use only! */ + public static boolean disableSave; /** if true, game is set up in mobile mode, even on desktop. used for debugging */ public static boolean testMobile; /** whether the game is running on a mobile device */ diff --git a/core/src/mindustry/ai/ControlPathfinder.java b/core/src/mindustry/ai/ControlPathfinder.java index f3ed9130d7..a4586e0873 100644 --- a/core/src/mindustry/ai/ControlPathfinder.java +++ b/core/src/mindustry/ai/ControlPathfinder.java @@ -124,7 +124,7 @@ public class ControlPathfinder implements Runnable{ //TODO: very dangerous usage; //TODO - it is accessed from the main thread //TODO - it is written to on the pathfinding thread - //maps position in world in (x + y * width format) | type (bitpacked to long) to a cache of flow fields + //maps position in world in (x + y * width format) | path type | team (bitpacked to long with FieldIndex.get) to a cache of flow fields LongMap fields = new LongMap<>(); //MAIN THREAD ONLY Seq fieldList = new Seq<>(false); @@ -188,6 +188,7 @@ public class ControlPathfinder implements Runnable{ final IntQueue frontier = new IntQueue(); //maps cluster index to field weights; 0 means uninitialized final IntMap fields = new IntMap<>(); + //packed (goalPos | costId | team) long key to use in the global fields map final long mapKey; //main thread only! @@ -200,7 +201,7 @@ public class ControlPathfinder implements Runnable{ this.team = team; this.goalPos = goalPos; this.costId = costId; - this.mapKey = Pack.longInt(goalPos, costId); + this.mapKey = FieldIndex.get(goalPos, costId, team); } } @@ -241,7 +242,7 @@ public class ControlPathfinder implements Runnable{ Events.run(Trigger.update, () -> { for(var req : unitRequests.values()){ //skipped N update -> drop it - if(req.lastUpdateId <= state.updateId - 10){ + if(req.lastUpdateId <= state.updateId - 10 || !req.unit.isAdded()){ req.invalidated = true; //concurrent modification! queue.post(() -> threadPathRequests.remove(req)); @@ -1024,10 +1025,12 @@ public class ControlPathfinder implements Runnable{ //no result found, bail out. if(nodePath == null){ request.notFound = true; + //stop following the old path, it's not relevant now, it's just not possible to reach the destination anymore + request.oldCache = null; return; } - FieldCache cache = fields.get(Pack.longInt(goalPos, costId)); + FieldCache cache = fields.get(FieldIndex.get(goalPos, costId, team)); //if true, extra values are added on the sides of existing field cells that face new cells. boolean addingFrontier = true; @@ -1143,7 +1146,7 @@ public class ControlPathfinder implements Runnable{ boolean any = false; - long fieldKey = Pack.longInt(destPos, costId); + long fieldKey = FieldIndex.get(destPos, costId, team); //use existing request if it exists. if(request != null && request.destination == destPos){ @@ -1152,13 +1155,14 @@ public class ControlPathfinder implements Runnable{ Tile tileOn = unit.tileOn(), initialTileOn = tileOn; //TODO: should fields be accessible from this thread? FieldCache fieldCache = fields.get(fieldKey); + if(fieldCache == null) fieldCache = request.oldCache; if(fieldCache != null && tileOn != null){ FieldCache old = request.oldCache; FieldCache targetCache = old != null ? old : fieldCache; boolean requeue = old == null; //nullify the old field to be GCed, as it cannot be relevant anymore (this path is complete) - if(fieldCache.frontier.isEmpty() && old != null){ + if(fieldCache != request.oldCache && fieldCache.frontier.isEmpty() && old != null){ request.oldCache = null; } @@ -1449,7 +1453,7 @@ public class ControlPathfinder implements Runnable{ int index = cx + cy * cwidth; for(var req : threadPathRequests){ - long mapKey = Pack.longInt(req.destination, pathCost); + long mapKey = FieldIndex.get(req.destination, pathCost, team); var field = fields.get(mapKey); if((field != null && field.fields.containsKey(index)) || req.notFound){ invalidRequests.add(req); @@ -1535,7 +1539,7 @@ public class ControlPathfinder implements Runnable{ continue; } - long mapKey = Pack.longInt(request.destination, request.costId); + long mapKey = FieldIndex.get(request.destination, request.costId, request.team); var field = fields.get(mapKey); @@ -1543,7 +1547,7 @@ public class ControlPathfinder implements Runnable{ //it's only worth recalculating a path when the current frontier has finished; otherwise the unit will be following something incomplete. if(field.frontier.isEmpty()){ - //remove the field, to be recalculated next update one recalculatePath is processed + //remove the field, to be recalculated next update once recalculatePath is processed fields.remove(field.mapKey); Core.app.post(() -> fieldList.remove(field)); @@ -1551,6 +1555,10 @@ public class ControlPathfinder implements Runnable{ for(var otherRequest : threadPathRequests){ if(otherRequest.destination == request.destination){ otherRequest.oldCache = field; + + if(otherRequest != request){ + queue.post(() -> recalculatePath(otherRequest)); + } } } @@ -1584,6 +1592,15 @@ public class ControlPathfinder implements Runnable{ } } + @Struct + static class FieldIndexStruct{ + int pos; + @StructField(8) + int costId; + @StructField(8) + int team; + } + @Struct static class IntraEdgeStruct{ @StructField(8) diff --git a/core/src/mindustry/game/Saves.java b/core/src/mindustry/game/Saves.java index 6927813008..575c8bb697 100644 --- a/core/src/mindustry/game/Saves.java +++ b/core/src/mindustry/game/Saves.java @@ -111,7 +111,7 @@ public class Saves{ if(state.isGame() && !state.gameOver && current != null && current.isAutosave()){ time += Time.delta; - if(time > Core.settings.getInt("saveinterval") * 60){ + if(time > Core.settings.getInt("saveinterval") * 60 && !Vars.disableSave){ saving = true; try{ diff --git a/core/src/mindustry/ui/dialogs/PausedDialog.java b/core/src/mindustry/ui/dialogs/PausedDialog.java index 677b3d53ed..2ff15e272b 100644 --- a/core/src/mindustry/ui/dialogs/PausedDialog.java +++ b/core/src/mindustry/ui/dialogs/PausedDialog.java @@ -159,7 +159,7 @@ public class PausedDialog extends BaseDialog{ return; } - if(control.saves.getCurrent() == null || !control.saves.getCurrent().isAutosave() || wasClient || state.gameOver){ + if(control.saves.getCurrent() == null || !control.saves.getCurrent().isAutosave() || wasClient || state.gameOver || disableSave){ logic.reset(); return; } From bd1f7506736f627439aa4f65c0d1baa4727a9897 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 19 Sep 2024 20:37:22 -0400 Subject: [PATCH 192/437] Minor fixes / Desktop detach camera hotkey --- core/src/mindustry/content/UnitTypes.java | 2 +- core/src/mindustry/core/Control.java | 1 + core/src/mindustry/input/Binding.java | 1 + core/src/mindustry/input/DesktopInput.java | 44 +++++++++++++++++----- 4 files changed, 37 insertions(+), 11 deletions(-) diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index c1d6274c47..8e83af02f4 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -1042,7 +1042,7 @@ public class UnitTypes{ status = StatusEffects.blasted; statusDuration = 60f; - damage = splashDamage * 0.7f; + damage = splashDamage * 0.5f; }}; }}); }}; diff --git a/core/src/mindustry/core/Control.java b/core/src/mindustry/core/Control.java index bdf8ab573c..045b96d9a2 100644 --- a/core/src/mindustry/core/Control.java +++ b/core/src/mindustry/core/Control.java @@ -74,6 +74,7 @@ public class Control implements ApplicationListener, Loadable{ ui.showInfo("@mods.initfailed"); }); } + checkAutoUnlocks(); }); Events.on(StateChangeEvent.class, event -> { diff --git a/core/src/mindustry/input/Binding.java b/core/src/mindustry/input/Binding.java index 973e2e961e..d5c52930d3 100644 --- a/core/src/mindustry/input/Binding.java +++ b/core/src/mindustry/input/Binding.java @@ -81,6 +81,7 @@ public enum Binding implements KeyBind{ block_select_10(KeyCode.num0), zoom(new Axis(KeyCode.scroll), "view"), + detach_camera(KeyCode.unset), menu(Vars.android ? KeyCode.back : KeyCode.escape), fullscreen(KeyCode.f11), pause(KeyCode.space), diff --git a/core/src/mindustry/input/DesktopInput.java b/core/src/mindustry/input/DesktopInput.java index 9b8f16bb42..49bd8eb068 100644 --- a/core/src/mindustry/input/DesktopInput.java +++ b/core/src/mindustry/input/DesktopInput.java @@ -226,18 +226,31 @@ public class DesktopInput extends InputHandler{ boolean locked = locked(); boolean panCam = false; float camSpeed = (!Core.input.keyDown(Binding.boost) ? panSpeed : panBoostSpeed) * Time.delta; + boolean detached = settings.getBool("detach-camera", false); - if(input.keyDown(Binding.pan) && !scene.hasField() && !scene.hasDialog()){ - panCam = true; - panning = true; + if(!scene.hasField() && !scene.hasDialog()){ + if(input.keyTap(Binding.detach_camera)){ + settings.put("detach-camera", detached = !detached); + if(!detached){ + panning = false; + } + } + + if(input.keyDown(Binding.pan)){ + panCam = true; + panning = true; + } + + if((Math.abs(Core.input.axis(Binding.move_x)) > 0 || Math.abs(Core.input.axis(Binding.move_y)) > 0 || input.keyDown(Binding.mouse_move))){ + panning = false; + } } - if((Math.abs(Core.input.axis(Binding.move_x)) > 0 || Math.abs(Core.input.axis(Binding.move_y)) > 0 || input.keyDown(Binding.mouse_move)) && (!scene.hasField())){ - panning = false; - } + panning |= detached; + if(!locked){ - if(((player.dead() || state.isPaused()) && !ui.chatfrag.shown()) && !scene.hasField() && !scene.hasDialog()){ + if(((player.dead() || state.isPaused() || detached) && !ui.chatfrag.shown()) && !scene.hasField() && !scene.hasDialog()){ if(input.keyDown(Binding.mouse_move)){ panCam = true; } @@ -859,9 +872,20 @@ public class DesktopInput extends InputHandler{ float ya = Core.input.axis(Binding.move_y); boolean boosted = (unit instanceof Mechc && unit.isFlying()); - movement.set(xa, ya).nor().scl(speed); - if(Core.input.keyDown(Binding.mouse_move)){ - movement.add(input.mouseWorld().sub(player).scl(1f / 25f * speed)).limit(speed); + if(settings.getBool("detach-camera")){ + Vec2 targetPos = camera.position; + + movement.set(targetPos).sub(player).limit(speed); + + if(player.within(targetPos, 15f)){ + movement.setZero(); + unit.vel.approachDelta(Vec2.ZERO, unit.speed() * unit.type().accel / 2f); + } + }else{ + movement.set(xa, ya).nor().scl(speed); + if(Core.input.keyDown(Binding.mouse_move)){ + movement.add(input.mouseWorld().sub(player).scl(1f / 25f * speed)).limit(speed); + } } float mouseAngle = Angles.mouseAngle(unit.x, unit.y); From c36e638826ac17f51b9afee95b1100662c410b96 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 20 Sep 2024 11:17:12 -0400 Subject: [PATCH 193/437] Polar aerodrome fixes / Objective timer multiplier for difficulty --- core/assets/maps/polarAerodrome.msav | Bin 55489 -> 55293 bytes core/src/mindustry/game/CampaignRules.java | 1 + core/src/mindustry/game/MapObjectives.java | 4 ++-- core/src/mindustry/game/Rules.java | 2 ++ 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/core/assets/maps/polarAerodrome.msav b/core/assets/maps/polarAerodrome.msav index a4137801c887332d3ea88fa6db14f8f03961339f..b960bbd922f58aaafab45954a15b383fbca3541a 100644 GIT binary patch delta 54773 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 GX9WPHk*!() diff --git a/core/src/mindustry/game/CampaignRules.java b/core/src/mindustry/game/CampaignRules.java index 2865c7d12f..8512825adc 100644 --- a/core/src/mindustry/game/CampaignRules.java +++ b/core/src/mindustry/game/CampaignRules.java @@ -16,6 +16,7 @@ public class CampaignRules{ rules.staticFog = rules.fog = fog; rules.showSpawns = showSpawns; rules.randomWaveAI = randomWaveAI; + rules.objectiveTimerMultiplier = difficulty.waveTimeMultiplier; if(planet.showRtsAIRule && rules.attackMode){ boolean swapped = rules.teams.get(rules.waveTeam).rtsAi != rtsAI; rules.teams.get(rules.waveTeam).rtsAi = rtsAI; diff --git a/core/src/mindustry/game/MapObjectives.java b/core/src/mindustry/game/MapObjectives.java index 06f151527b..fed1223bff 100644 --- a/core/src/mindustry/game/MapObjectives.java +++ b/core/src/mindustry/game/MapObjectives.java @@ -442,7 +442,7 @@ public class MapObjectives implements Iterable, Eachable= duration; + return (countup += Time.delta) >= duration * state.rules.objectiveTimerMultiplier; } @Override @@ -454,7 +454,7 @@ public class MapObjectives implements Iterable, Eachable Date: Fri, 20 Sep 2024 13:15:26 -0400 Subject: [PATCH 194/437] Improved crash logs; source mod of crashes now included in report --- .../mindustry/android/AndroidLauncher.java | 2 +- core/src/mindustry/mod/Mods.java | 1 + core/src/mindustry/mod/Scripts.java | 24 +++----- .../{CrashSender.java => CrashHandler.java} | 57 +++++++++++++++---- .../mindustry/desktop/DesktopLauncher.java | 15 +++-- ios/src/mindustry/ios/IOSLauncher.java | 2 +- .../src/mindustry/server/ServerLauncher.java | 10 ++-- 7 files changed, 71 insertions(+), 40 deletions(-) rename core/src/mindustry/net/{CrashSender.java => CrashHandler.java} (64%) diff --git a/android/src/mindustry/android/AndroidLauncher.java b/android/src/mindustry/android/AndroidLauncher.java index c8175aa4f0..1a3126234f 100644 --- a/android/src/mindustry/android/AndroidLauncher.java +++ b/android/src/mindustry/android/AndroidLauncher.java @@ -38,7 +38,7 @@ public class AndroidLauncher extends AndroidApplication{ UncaughtExceptionHandler handler = Thread.getDefaultUncaughtExceptionHandler(); Thread.setDefaultUncaughtExceptionHandler((thread, error) -> { - CrashSender.log(error); + CrashHandler.log(error); //try to forward exception to system handler if(handler != null){ diff --git a/core/src/mindustry/mod/Mods.java b/core/src/mindustry/mod/Mods.java index 9fa83c39ee..bfd27e6091 100644 --- a/core/src/mindustry/mod/Mods.java +++ b/core/src/mindustry/mod/Mods.java @@ -1252,6 +1252,7 @@ public class Mods implements Loadable{ if(name != null) name = Strings.stripColors(name); if(displayName != null) displayName = Strings.stripColors(displayName); if(displayName == null) displayName = name; + if(version == null) version = "0"; if(author != null) author = Strings.stripColors(author); if(description != null) description = Strings.stripColors(description); if(subtitle != null) subtitle = Strings.stripColors(subtitle).replace("\n", ""); diff --git a/core/src/mindustry/mod/Scripts.java b/core/src/mindustry/mod/Scripts.java index 3ba21c03b3..fdbc717c6d 100644 --- a/core/src/mindustry/mod/Scripts.java +++ b/core/src/mindustry/mod/Scripts.java @@ -10,7 +10,6 @@ import rhino.*; import rhino.module.*; import rhino.module.provider.*; -import java.io.*; import java.net.*; import java.util.*; import java.util.regex.*; @@ -85,7 +84,7 @@ public class Scripts implements Disposable{ public void run(LoadedMod mod, Fi file){ currentMod = mod; - run(file.readString(), file.name(), true); + run(file.readString(), mod.name + "/" + file.name(), true); currentMod = null; } @@ -95,15 +94,10 @@ public class Scripts implements Disposable{ //inject script info into file context.evaluateString(scope, "modName = \"" + currentMod.name + "\"\nscriptName = \"" + file + "\"", "initscript.js", 1); } - context.evaluateString(scope, - wrap ? "(function(){'use strict';\n" + script + "\n})();" : script, - file, 0); + context.evaluateString(scope, wrap ? "(function(){'use strict';\n" + script + "\n})();" : script, file, 0); return true; }catch(Throwable t){ - if(currentMod != null){ - file = currentMod.name + "/" + file; - } - log(LogLevel.err, file, "" + getError(t, true)); + log(LogLevel.err, file, getError(t, true)); return false; } } @@ -123,10 +117,10 @@ public class Scripts implements Disposable{ @Override public ModuleSource loadSource(String moduleId, Scriptable paths, Object validator) throws URISyntaxException{ if(currentMod == null) return null; - return loadSource(moduleId, currentMod.root.child("scripts"), validator); + return loadSource(currentMod, moduleId, currentMod.root.child("scripts"), validator); } - private ModuleSource loadSource(String moduleId, Fi root, Object validator) throws URISyntaxException{ + private ModuleSource loadSource(LoadedMod sourceMod, String moduleId, Fi root, Object validator) throws URISyntaxException{ Matcher matched = directory.matcher(moduleId); if(matched.find()){ LoadedMod required = Vars.mods.locateMod(matched.group(1)); @@ -134,18 +128,16 @@ public class Scripts implements Disposable{ if(required == null){ // Mod not found, treat it as a folder Fi dir = root.child(matched.group(1)); if(!dir.exists()) return null; // Mod and folder not found - return loadSource(script, dir, validator); + return loadSource(sourceMod, script, dir, validator); } currentMod = required; - return loadSource(script, required.root.child("scripts"), validator); + return loadSource(sourceMod, script, required.root.child("scripts"), validator); } Fi module = root.child(moduleId + ".js"); if(!module.exists() || module.isDirectory()) return null; - return new ModuleSource( - new InputStreamReader(new ByteArrayInputStream((module.readString()).getBytes())), - new URI(moduleId), root.file().toURI(), validator); + return new ModuleSource(module.reader(Vars.bufferSize), new URI(sourceMod.name + "/" + moduleId + ".js"), root.file().toURI(), validator); } } } diff --git a/core/src/mindustry/net/CrashSender.java b/core/src/mindustry/net/CrashHandler.java similarity index 64% rename from core/src/mindustry/net/CrashSender.java rename to core/src/mindustry/net/CrashHandler.java index 26f90007a8..b559d654e8 100644 --- a/core/src/mindustry/net/CrashSender.java +++ b/core/src/mindustry/net/CrashHandler.java @@ -17,13 +17,17 @@ import java.util.*; import static arc.Core.*; import static mindustry.Vars.*; -public class CrashSender{ +public class CrashHandler{ - public static String createReport(String error){ - String report = "Mindustry has crashed. How unfortunate.\n"; + public static String createReport(Throwable exception){ + String error = writeException(exception); + LoadedMod cause = getModCause(exception); + + String report = cause == null ? "Mindustry has crashed. How unfortunate.\n" : "The mod '" + cause.meta.displayName + "' (" + cause.name + ")" + " has caused Mindustry to crash.\n"; if(mods != null && mods.list().size == 0 && Version.build != -1){ report += "Report this at " + Vars.reportIssueURL + "\n\n"; } + return report + "Version: " + Version.combined() + (Vars.headless ? " (Server)" : "") + "\n" + "OS: " + OS.osName + " x" + (OS.osArchBits) + " (" + OS.osArch + ")\n" @@ -31,6 +35,7 @@ public class CrashSender{ + "Java Version: " + OS.javaVersion + "\n" + "Runtime Available Memory: " + (Runtime.getRuntime().maxMemory() / 1024 / 1024) + "mb\n" + "Cores: " + Runtime.getRuntime().availableProcessors() + "\n" + + (cause == null ? "" : "Likely Cause: " + cause.meta.displayName + " (" + cause.name + " v" + cause.meta.version + ")\n") + (mods == null ? "" : "Mods: " + (!mods.list().contains(LoadedMod::shouldBeEnabled) ? "none (vanilla)" : mods.list().select(LoadedMod::shouldBeEnabled).toString(", ", mod -> mod.name + ":" + mod.meta.version))) + "\n\n" + error; } @@ -38,12 +43,12 @@ public class CrashSender{ public static void log(Throwable exception){ try{ Core.settings.getDataDirectory().child("crashes").child("crash_" + System.currentTimeMillis() + ".txt") - .writeString(createReport(Strings.neatError(exception))); + .writeString(createReport(exception)); }catch(Throwable ignored){ } } - public static void send(Throwable exception, Cons writeListener){ + public static void handle(Throwable exception, Cons writeListener){ try{ try{ //log to file @@ -59,14 +64,14 @@ public class CrashSender{ //don't create crash logs for custom builds, as it's expected if(OS.username.equals("anuke") && !"steam".equals(Version.modifier)){ - ret(); + // System.exit(1); } //attempt to load version regardless if(Version.number == 0){ try{ ObjectMap map = new ObjectMap<>(); - PropertiesUtils.load(map, new InputStreamReader(CrashSender.class.getResourceAsStream("/version.properties"))); + PropertiesUtils.load(map, new InputStreamReader(CrashHandler.class.getResourceAsStream("/version.properties"))); Version.type = map.get("type"); Version.number = Integer.parseInt(map.get("number")); @@ -87,7 +92,7 @@ public class CrashSender{ try{ File file = new File(OS.getAppDataDirectoryString(Vars.appName), "crashes/crash-report-" + new SimpleDateFormat("MM_dd_yyyy_HH_mm_ss").format(new Date()) + ".txt"); new Fi(OS.getAppDataDirectoryString(Vars.appName)).child("crashes").mkdirs(); - new Fi(file).writeString(createReport(writeException(exception))); + new Fi(file).writeString(createReport(exception)); writeListener.get(file); }catch(Throwable e){ Log.err("Failed to save local crash report.", e); @@ -103,11 +108,41 @@ public class CrashSender{ death.printStackTrace(); } - ret(); + System.exit(1); } - private static void ret(){ - System.exit(1); + /** @return the mod that is likely to have caused the supplied crash */ + public static @Nullable LoadedMod getModCause(Throwable e){ + if(Vars.mods == null) return null; + try{ + for(var element : e.getStackTrace()){ + String name = element.getClassName(); + if(!name.matches("(mindustry|arc|java|javax|sun|jdk)\\..*")){ + for(var mod : mods.list()){ + if(mod.meta.main != null && getMatches(mod.meta.main, name) > 0){ + return mod; + }else if(element.getFileName() != null && element.getFileName().endsWith(".js") && element.getFileName().startsWith(mod.name + "/")){ + return mod; + } + } + } + } + }catch(Throwable ignored){} + return null; + } + + private static int getMatches(String name1, String name2){ + String[] arr1 = name1.split("\\."), arr2 = name2.split("\\."); + int matches = 0; + for(int i = 0; i < Math.min(arr1.length, arr2.length); i++){ + + if(!arr1[i].equals(arr2[i])){ + return i; + }else if(!arr1[i].matches("net|org|com|io")){ //ignore common domain prefixes, as that's usually not enough to call something a "match" + matches ++; + } + } + return matches; } private static String writeException(Throwable e){ diff --git a/desktop/src/mindustry/desktop/DesktopLauncher.java b/desktop/src/mindustry/desktop/DesktopLauncher.java index 44f3b5b03f..2500d18e59 100644 --- a/desktop/src/mindustry/desktop/DesktopLauncher.java +++ b/desktop/src/mindustry/desktop/DesktopLauncher.java @@ -7,7 +7,6 @@ import arc.backend.sdl.jni.*; import arc.discord.*; import arc.discord.DiscordRPC.*; import arc.files.*; -import arc.func.*; import arc.math.*; import arc.struct.*; import arc.util.*; @@ -19,6 +18,7 @@ import mindustry.core.*; import mindustry.desktop.steam.*; import mindustry.game.EventType.*; import mindustry.gen.*; +import mindustry.mod.Mods.*; import mindustry.net.*; import mindustry.net.Net.*; import mindustry.service.*; @@ -223,27 +223,30 @@ public class DesktopLauncher extends ClientLauncher{ } static void handleCrash(Throwable e){ - Cons dialog = Runnable::run; boolean badGPU = false; String finalMessage = Strings.getFinalMessage(e); String total = Strings.getCauses(e).toString(); if(total.contains("Couldn't create window") || total.contains("OpenGL 2.0 or higher") || total.toLowerCase().contains("pixel format") || total.contains("GLEW")|| total.contains("unsupported combination of formats")){ - dialog.get(() -> message( + message( total.contains("Couldn't create window") ? "A graphics initialization error has occured! Try to update your graphics drivers:\n" + finalMessage : "Your graphics card does not support the right OpenGL features.\n" + "Try to update your graphics drivers. If this doesn't work, your computer may not support Mindustry.\n\n" + - "Full message: " + finalMessage)); + "Full message: " + finalMessage); badGPU = true; } boolean fbgp = badGPU; - CrashSender.send(e, file -> { + LoadedMod cause = CrashHandler.getModCause(e); + String causeString = cause == null ? (Structs.contains(e.getStackTrace(), st -> st.getClassName().contains("rhino.gen.")) ? "A mod or script has caused Mindustry to crash.\nConsider disabling your mods if the issue persists.\n" : "Mindustry has crashed.") : + "'" + cause.meta.displayName + "' (" + cause.name + ") has caused Mindustry to crash.\nConsider disabling this mod if issues persist.\n"; + + CrashHandler.handle(e, file -> { Throwable fc = Strings.getFinalCause(e); if(!fbgp){ - dialog.get(() -> message("A crash has occured. It has been saved in:\n" + file.getAbsolutePath() + "\n" + fc.getClass().getSimpleName().replace("Exception", "") + (fc.getMessage() == null ? "" : ":\n" + fc.getMessage()))); + message(causeString + "\nThe logs have been saved in:\n" + file.getAbsolutePath() + "\n" + fc.getClass().getSimpleName().replace("Exception", "") + (fc.getMessage() == null ? "" : ":\n" + fc.getMessage())); } }); } diff --git a/ios/src/mindustry/ios/IOSLauncher.java b/ios/src/mindustry/ios/IOSLauncher.java index cf1b6b8208..776a2ec3e0 100644 --- a/ios/src/mindustry/ios/IOSLauncher.java +++ b/ios/src/mindustry/ios/IOSLauncher.java @@ -250,7 +250,7 @@ public class IOSLauncher extends IOSApplication.Delegate{ UIApplication.main(argv, null, IOSLauncher.class); }catch(Throwable t){ //attempt to log the exception - CrashSender.log(t); + CrashHandler.log(t); Log.err(t); //rethrow the exception so it actually crashes throw t; diff --git a/server/src/mindustry/server/ServerLauncher.java b/server/src/mindustry/server/ServerLauncher.java index 1aea11b2cc..d8737fc5e1 100644 --- a/server/src/mindustry/server/ServerLauncher.java +++ b/server/src/mindustry/server/ServerLauncher.java @@ -32,9 +32,9 @@ public class ServerLauncher implements ApplicationListener{ String result = "[" + dateTime.format(LocalDateTime.now()) + "] " + format(tags[level1.ordinal()] + " " + text + "&fr"); System.out.println(result); }; - new HeadlessApplication(new ServerLauncher(), throwable -> CrashSender.send(throwable, f -> {})); + new HeadlessApplication(new ServerLauncher(), throwable -> CrashHandler.handle(throwable, f -> {})); }catch(Throwable t){ - CrashSender.send(t, f -> {}); + CrashHandler.handle(t, f -> {}); } } @@ -46,15 +46,15 @@ public class ServerLauncher implements ApplicationListener{ Vars.loadSettings(); Vars.init(); - + UI.loadColors(); Fonts.loadContentIconsHeadless(); - + content.createBaseContent(); mods.loadScripts(); content.createModContent(); content.init(); - + if(mods.hasContentErrors()){ err("Error occurred loading mod content:"); for(LoadedMod mod : mods.list()){ From 4f93a5c33278d9ef3bfc692777e831c86c3f9336 Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 12 Jun 2024 22:21:41 -0400 Subject: [PATCH 195/437] Separator output display --- core/src/mindustry/content/Blocks.java | 1 + core/src/mindustry/ui/ItemDisplay.java | 38 ---------- core/src/mindustry/ui/LiquidDisplay.java | 39 ----------- .../world/blocks/production/Separator.java | 9 ++- .../world/blocks/units/UnitFactory.java | 2 +- core/src/mindustry/world/meta/StatValues.java | 70 ++++++++++++++++--- 6 files changed, 72 insertions(+), 87 deletions(-) delete mode 100644 core/src/mindustry/ui/ItemDisplay.java delete mode 100644 core/src/mindustry/ui/LiquidDisplay.java diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 82b80e12b8..9ee4aa02f6 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -5786,6 +5786,7 @@ public class Blocks{ itemCapacity = 0; alwaysUnlocked = true; ambientSound = Sounds.none; + allDatabaseTabs = true; }}; //TODO move diff --git a/core/src/mindustry/ui/ItemDisplay.java b/core/src/mindustry/ui/ItemDisplay.java deleted file mode 100644 index 4967c1e09d..0000000000 --- a/core/src/mindustry/ui/ItemDisplay.java +++ /dev/null @@ -1,38 +0,0 @@ -package mindustry.ui; - -import arc.scene.ui.layout.*; -import arc.util.*; -import mindustry.type.*; -import mindustry.world.meta.*; - -//TODO replace with static methods? -/** An item image with text. */ -public class ItemDisplay extends Table{ - public final Item item; - public final int amount; - - public ItemDisplay(Item item){ - this(item, 0); - } - - public ItemDisplay(Item item, int amount, boolean showName){ - add(new ItemImage(new ItemStack(item, amount))); - if(showName) add(item.localizedName).padLeft(4 + amount > 99 ? 4 : 0); - - this.item = item; - this.amount = amount; - } - - public ItemDisplay(Item item, int amount){ - this(item, amount, true); - } - - /** Displays the item with a "/sec" qualifier based on the time period, in ticks. */ - public ItemDisplay(Item item, int amount, float timePeriod, boolean showName){ - add(new ItemImage(item.uiIcon, amount)); - add((showName ? item.localizedName + "\n" : "") + "[lightgray]" + Strings.autoFixed(amount / (timePeriod / 60f), 2) + StatUnit.perSecond.localized()).padLeft(2).padRight(5).style(Styles.outlineLabel); - - this.item = item; - this.amount = amount; - } -} diff --git a/core/src/mindustry/ui/LiquidDisplay.java b/core/src/mindustry/ui/LiquidDisplay.java deleted file mode 100644 index d0982374ab..0000000000 --- a/core/src/mindustry/ui/LiquidDisplay.java +++ /dev/null @@ -1,39 +0,0 @@ -package mindustry.ui; - -import arc.graphics.*; -import arc.scene.ui.*; -import arc.scene.ui.layout.*; -import arc.util.*; -import mindustry.type.*; -import mindustry.world.meta.*; - -import static mindustry.Vars.*; - -/** An ItemDisplay, but for liquids. */ -public class LiquidDisplay extends Table{ - public final Liquid liquid; - public final float amount; - public final boolean perSecond; - - public LiquidDisplay(Liquid liquid, float amount, boolean perSecond){ - this.liquid = liquid; - this.amount = amount; - this.perSecond = perSecond; - - add(new Stack(){{ - add(new Image(liquid.uiIcon).setScaling(Scaling.fit)); - - if(amount != 0){ - Table t = new Table().left().bottom(); - t.add(Strings.autoFixed(amount, 2)).style(Styles.outlineLabel); - add(t); - } - }}).size(iconMed).padRight(3 + (amount != 0 && Strings.autoFixed(amount, 2).length() > 2 ? 8 : 0)); - - if(perSecond){ - add(StatUnit.perSecond.localized()).padLeft(2).padRight(5).color(Color.lightGray).style(Styles.outlineLabel); - } - - add(liquid.localizedName); - } -} diff --git a/core/src/mindustry/world/blocks/production/Separator.java b/core/src/mindustry/world/blocks/production/Separator.java index fd387d6960..1bd5351b5e 100644 --- a/core/src/mindustry/world/blocks/production/Separator.java +++ b/core/src/mindustry/world/blocks/production/Separator.java @@ -38,7 +38,14 @@ public class Separator extends Block{ stats.timePeriod = craftTime; super.setStats(); - stats.add(Stat.output, StatValues.items(item -> Structs.contains(results, i -> i.item == item))); + int[] sum = {0}; + for(var r : results) sum[0] += r.amount; + + stats.add(Stat.output, table -> { + for(ItemStack stack : results){ + table.add(StatValues.displayItemPercent(stack.item, (int)((float)stack.amount / sum[0] * 100), true)).padRight(5); + } + }); stats.add(Stat.productionTime, craftTime / 60f, StatUnit.seconds); } diff --git a/core/src/mindustry/world/blocks/units/UnitFactory.java b/core/src/mindustry/world/blocks/units/UnitFactory.java index b89d945c65..a2b4448d31 100644 --- a/core/src/mindustry/world/blocks/units/UnitFactory.java +++ b/core/src/mindustry/world/blocks/units/UnitFactory.java @@ -137,7 +137,7 @@ public class UnitFactory extends UnitBlock{ } ItemStack stack = plan.requirements[i]; - req.add(new ItemDisplay(stack.item, stack.amount, plan.time, true)).pad(5); + req.add(StatValues.displayItem(stack.item, stack.amount, plan.time, true)).pad(5); } }).right().grow().pad(10f); }else{ diff --git a/core/src/mindustry/world/meta/StatValues.java b/core/src/mindustry/world/meta/StatValues.java index 9c548f2836..5e74f1f72b 100644 --- a/core/src/mindustry/world/meta/StatValues.java +++ b/core/src/mindustry/world/meta/StatValues.java @@ -66,7 +66,7 @@ public class StatValues{ } public static StatValue liquid(Liquid liquid, float amount, boolean perSecond){ - return table -> table.add(new LiquidDisplay(liquid, amount, perSecond)); + return table -> table.add(displayLiquid(liquid, amount, perSecond)); } public static StatValue liquids(Boolf filter, float amount, boolean perSecond){ @@ -74,7 +74,7 @@ public class StatValues{ Seq list = content.liquids().select(i -> filter.get(i) && i.unlockedNow() && !i.isHidden()); for(int i = 0; i < list.size; i++){ - table.add(new LiquidDisplay(list.get(i), amount, perSecond)).padRight(5); + table.add(displayLiquid(list.get(i), amount, perSecond)).padRight(5); if(i != list.size - 1){ table.add("/"); @@ -90,7 +90,7 @@ public class StatValues{ public static StatValue liquids(float timePeriod, boolean perSecond, LiquidStack... stacks){ return table -> { for(var stack : stacks){ - table.add(new LiquidDisplay(stack.liquid, stack.amount * (60f / timePeriod), perSecond)).padRight(5); + table.add(displayLiquid(stack.liquid, stack.amount * (60f / timePeriod), perSecond)).padRight(5); } }; } @@ -102,7 +102,7 @@ public class StatValues{ public static StatValue items(boolean displayName, ItemStack... stacks){ return table -> { for(ItemStack stack : stacks){ - table.add(new ItemDisplay(stack.item, stack.amount, displayName)).padRight(5); + table.add(displayItem(stack.item, stack.amount, displayName)).padRight(5); } }; } @@ -110,7 +110,7 @@ public class StatValues{ public static StatValue items(float timePeriod, ItemStack... stacks){ return table -> { for(ItemStack stack : stacks){ - table.add(new ItemDisplay(stack.item, stack.amount, timePeriod, true)).padRight(5); + table.add(displayItem(stack.item, stack.amount, timePeriod, true)).padRight(5); } }; } @@ -126,7 +126,7 @@ public class StatValues{ for(int i = 0; i < list.size; i++){ Item item = list.get(i); - table.add(timePeriod <= 0 ? new ItemDisplay(item) : new ItemDisplay(item, 1, timePeriod, true)).padRight(5); + table.add(timePeriod <= 0 ? displayItem(item) : displayItem(item, 1, timePeriod, true)).padRight(5); if(i != list.size - 1){ table.add("/"); @@ -135,6 +135,60 @@ public class StatValues{ }; } + public static Table displayLiquid(Liquid liquid, float amount, boolean perSecond){ + Table t = new Table(); + + t.add(new Stack(){{ + add(new Image(liquid.uiIcon).setScaling(Scaling.fit)); + + if(amount != 0){ + Table t = new Table().left().bottom(); + t.add(Strings.autoFixed(amount, 2)).style(Styles.outlineLabel); + add(t); + } + }}).size(iconMed).padRight(3 + (amount != 0 && Strings.autoFixed(amount, 2).length() > 2 ? 8 : 0)); + + if(perSecond){ + t.add(StatUnit.perSecond.localized()).padLeft(2).padRight(5).color(Color.lightGray).style(Styles.outlineLabel); + } + + t.add(liquid.localizedName); + + return t; + } + + + public static Table displayItem(Item item){ + return displayItem(item, 0); + } + + public static Table displayItem(Item item, int amount, boolean showName){ + Table t = new Table(); + t.add(new ItemImage(new ItemStack(item, amount))); + if(showName) t.add(item.localizedName).padLeft(4 + amount > 99 ? 4 : 0); + return t; + } + + public static Table displayItem(Item item, int amount){ + return displayItem(item, amount, true); + } + + /** Displays the item with a "/sec" qualifier based on the time period, in ticks. */ + public static Table displayItem(Item item, int amount, float timePeriod, boolean showName){ + Table t = new Table(); + t.add(new ItemImage(item.uiIcon, amount)); + t.add((showName ? item.localizedName + "\n" : "") + "[lightgray]" + Strings.autoFixed(amount / (timePeriod / 60f), 2) + StatUnit.perSecond.localized()).padLeft(2).padRight(5).style(Styles.outlineLabel); + return t; + } + + /** Displays the item with a "/sec" qualifier based on the time period, in ticks. */ + public static Table displayItemPercent(Item item, int percent, boolean showName){ + Table t = new Table(); + t.add(new ItemImage(item.uiIcon, 0)); + t.add((showName ? item.localizedName + "\n" : "") + "[lightgray]" + percent + "%").padLeft(2).padRight(5).style(Styles.outlineLabel); + return t; + } + public static StatValue content(UnlockableContent content){ return table -> { table.add(new Image(content.uiIcon)).size(iconSmall).padRight(3); @@ -327,9 +381,9 @@ public class StatValues{ c.table(Styles.grayPanel, b -> { for(ItemStack stack : items){ if(timePeriod < 0){ - b.add(new ItemDisplay(stack.item, stack.amount, true)).pad(20f).left(); + b.add(displayItem(stack.item, stack.amount, true)).pad(20f).left(); }else{ - b.add(new ItemDisplay(stack.item, stack.amount, timePeriod, true)).pad(20f).left(); + b.add(displayItem(stack.item, stack.amount, timePeriod, true)).pad(20f).left(); } if(items.length > 1) b.row(); } From 65e7891991f8a37df1aec99ff8c4d40ae0ba8699 Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 19 Jun 2024 16:56:20 -0400 Subject: [PATCH 196/437] Core database content icon click support --- .../abilities/EnergyFieldAbility.java | 3 +- core/src/mindustry/type/StatusEffect.java | 2 +- core/src/mindustry/ui/ItemImage.java | 35 ------- .../ui/fragments/PlacementFragment.java | 3 +- .../world/blocks/units/Reconstructor.java | 4 +- .../world/blocks/units/UnitAssembler.java | 4 +- .../world/blocks/units/UnitFactory.java | 2 +- .../world/consumers/ConsumeItemDynamic.java | 3 +- .../world/consumers/ConsumeItemFilter.java | 2 +- .../world/consumers/ConsumeItems.java | 2 +- .../consumers/ConsumePayloadDynamic.java | 2 +- .../world/consumers/ConsumePayloadFilter.java | 2 +- .../world/consumers/ConsumePayloads.java | 4 +- core/src/mindustry/world/meta/StatValues.java | 94 ++++++++++++++++--- 14 files changed, 101 insertions(+), 61 deletions(-) delete mode 100644 core/src/mindustry/ui/ItemImage.java diff --git a/core/src/mindustry/entities/abilities/EnergyFieldAbility.java b/core/src/mindustry/entities/abilities/EnergyFieldAbility.java index 8c041087c0..cedf29df4f 100644 --- a/core/src/mindustry/entities/abilities/EnergyFieldAbility.java +++ b/core/src/mindustry/entities/abilities/EnergyFieldAbility.java @@ -14,6 +14,7 @@ import mindustry.game.*; import mindustry.gen.*; import mindustry.graphics.*; import mindustry.type.*; +import mindustry.world.meta.*; import static mindustry.Vars.*; @@ -68,7 +69,7 @@ public class EnergyFieldAbility extends Ability{ t.add(Core.bundle.format("bullet.damage", damage)); if(status != StatusEffects.none){ t.row(); - t.add((status.hasEmoji() ? status.emoji() : "") + "[stat]" + status.localizedName); + t.add((status.hasEmoji() ? status.emoji() : "") + "[stat]" + status.localizedName).with(l -> StatValues.withTooltip(l, status)); } if(displayHeal){ t.row(); diff --git a/core/src/mindustry/type/StatusEffect.java b/core/src/mindustry/type/StatusEffect.java index 0e36616cd4..e344f652f0 100644 --- a/core/src/mindustry/type/StatusEffect.java +++ b/core/src/mindustry/type/StatusEffect.java @@ -115,7 +115,7 @@ public class StatusEffect extends UnlockableContent{ //don't list affinities *and* reactions, as that would be redundant if(!reacts){ for(var e : affinities.toSeq().sort()){ - stats.add(Stat.affinities, e.emoji() + "" + e); + stats.add(Stat.affinities, e.emoji() + e); } if(affinities.size > 0 && transitionDamage != 0){ diff --git a/core/src/mindustry/ui/ItemImage.java b/core/src/mindustry/ui/ItemImage.java deleted file mode 100644 index 874fa6ceff..0000000000 --- a/core/src/mindustry/ui/ItemImage.java +++ /dev/null @@ -1,35 +0,0 @@ -package mindustry.ui; - -import arc.graphics.g2d.*; -import arc.scene.ui.*; -import arc.scene.ui.layout.*; -import arc.util.*; -import mindustry.core.*; -import mindustry.type.*; - -public class ItemImage extends Stack{ - - public ItemImage(TextureRegion region, int amount){ - - add(new Table(o -> { - o.left(); - o.add(new Image(region)).size(32f).scaling(Scaling.fit); - })); - - if(amount != 0){ - add(new Table(t -> { - t.left().bottom(); - t.add(amount >= 1000 ? UI.formatAmount(amount) : amount + "").style(Styles.outlineLabel); - t.pack(); - })); - } - } - - public ItemImage(ItemStack stack){ - this(stack.item.uiIcon, stack.amount); - } - - public ItemImage(PayloadStack stack){ - this(stack.item.uiIcon, stack.amount); - } -} diff --git a/core/src/mindustry/ui/fragments/PlacementFragment.java b/core/src/mindustry/ui/fragments/PlacementFragment.java index b0986bffa7..0228575700 100644 --- a/core/src/mindustry/ui/fragments/PlacementFragment.java +++ b/core/src/mindustry/ui/fragments/PlacementFragment.java @@ -25,6 +25,7 @@ import mindustry.type.*; import mindustry.ui.*; import mindustry.world.*; import mindustry.world.blocks.ConstructBlock.*; +import mindustry.world.meta.*; import static mindustry.Vars.*; @@ -465,7 +466,7 @@ public class PlacementFragment{ for(int i = 0; i < counts.length; i++){ if(counts[i] > 0){ var type = content.unit(i); - unitlist.add(new ItemImage(type.uiIcon, counts[i])).tooltip(type.localizedName).pad(4).with(b -> { + unitlist.add(StatValues.stack(type, counts[i])).tooltip(type.localizedName).pad(4).with(b -> { var listener = new ClickListener(); //left click -> select diff --git a/core/src/mindustry/world/blocks/units/Reconstructor.java b/core/src/mindustry/world/blocks/units/Reconstructor.java index 94b40a96fe..f0448063a4 100644 --- a/core/src/mindustry/world/blocks/units/Reconstructor.java +++ b/core/src/mindustry/world/blocks/units/Reconstructor.java @@ -89,7 +89,7 @@ public class Reconstructor extends UnitBlock{ table.table(Styles.grayPanel, t -> { t.left(); - t.image(upgrade[0].uiIcon).size(40).pad(10f).left().scaling(Scaling.fit); + t.image(upgrade[0].uiIcon).size(40).pad(10f).left().scaling(Scaling.fit).with(i -> StatValues.withTooltip(i, upgrade[0])); t.table(info -> { info.add(upgrade[0].localizedName).left(); info.row(); @@ -104,7 +104,7 @@ public class Reconstructor extends UnitBlock{ table.table(Styles.grayPanel, t -> { t.left(); - t.image(upgrade[1].uiIcon).size(40).pad(10f).right().scaling(Scaling.fit); + t.image(upgrade[1].uiIcon).size(40).pad(10f).right().scaling(Scaling.fit).with(i -> StatValues.withTooltip(i, upgrade[1])); t.table(info -> { info.add(upgrade[1].localizedName).right(); info.row(); diff --git a/core/src/mindustry/world/blocks/units/UnitAssembler.java b/core/src/mindustry/world/blocks/units/UnitAssembler.java index 2d2a40115e..aab15b2b17 100644 --- a/core/src/mindustry/world/blocks/units/UnitAssembler.java +++ b/core/src/mindustry/world/blocks/units/UnitAssembler.java @@ -150,7 +150,7 @@ public class UnitAssembler extends PayloadBlock{ } if(plan.unit.unlockedNow()){ - t.image(plan.unit.uiIcon).scaling(Scaling.fit).size(40).pad(10f).left(); + t.image(plan.unit.uiIcon).scaling(Scaling.fit).size(40).pad(10f).left().with(i -> StatValues.withTooltip(i, plan.unit)); t.table(info -> { info.defaults().left(); info.add(plan.unit.localizedName); @@ -170,7 +170,7 @@ public class UnitAssembler extends PayloadBlock{ } PayloadStack stack = plan.requirements.get(i); - req.add(new ItemImage(stack)).pad(5); + req.add(StatValues.stack(stack)).pad(5); } }).right().grow().pad(10f); }else{ diff --git a/core/src/mindustry/world/blocks/units/UnitFactory.java b/core/src/mindustry/world/blocks/units/UnitFactory.java index a2b4448d31..7b908922c8 100644 --- a/core/src/mindustry/world/blocks/units/UnitFactory.java +++ b/core/src/mindustry/world/blocks/units/UnitFactory.java @@ -122,7 +122,7 @@ public class UnitFactory extends UnitBlock{ } if(plan.unit.unlockedNow()){ - t.image(plan.unit.uiIcon).size(40).pad(10f).left().scaling(Scaling.fit); + t.image(plan.unit.uiIcon).size(40).pad(10f).left().scaling(Scaling.fit).with(i -> StatValues.withTooltip(i, plan.unit)); t.table(info -> { info.add(plan.unit.localizedName).left(); info.row(); diff --git a/core/src/mindustry/world/consumers/ConsumeItemDynamic.java b/core/src/mindustry/world/consumers/ConsumeItemDynamic.java index 45325369cd..b026ce3df9 100644 --- a/core/src/mindustry/world/consumers/ConsumeItemDynamic.java +++ b/core/src/mindustry/world/consumers/ConsumeItemDynamic.java @@ -6,6 +6,7 @@ import mindustry.gen.*; import mindustry.type.*; import mindustry.ui.*; import mindustry.world.*; +import mindustry.world.meta.*; public class ConsumeItemDynamic extends Consume{ public final Func items; @@ -42,7 +43,7 @@ public class ConsumeItemDynamic extends Consume{ int i = 0; for(ItemStack stack : items.get(build)){ - table.add(new ReqImage(new ItemImage(stack.item.uiIcon, Math.round(stack.amount * multiplier.get(build))), + table.add(new ReqImage(StatValues.stack(stack.item, Math.round(stack.amount * multiplier.get(build))), () -> build.items != null && build.items.has(stack.item, Math.round(stack.amount * multiplier.get(build))))).padRight(8).left(); if(++i % 4 == 0) table.row(); } diff --git a/core/src/mindustry/world/consumers/ConsumeItemFilter.java b/core/src/mindustry/world/consumers/ConsumeItemFilter.java index 8993bd59e1..a2ed17f52d 100644 --- a/core/src/mindustry/world/consumers/ConsumeItemFilter.java +++ b/core/src/mindustry/world/consumers/ConsumeItemFilter.java @@ -31,7 +31,7 @@ public class ConsumeItemFilter extends Consume{ @Override public void build(Building build, Table table){ MultiReqImage image = new MultiReqImage(); - content.items().each(i -> filter.get(i) && i.unlockedNow(), item -> image.add(new ReqImage(new ItemImage(item.uiIcon, 1), + content.items().each(i -> filter.get(i) && i.unlockedNow(), item -> image.add(new ReqImage(StatValues.stack(item, 1), () -> build.items.has(item)))); table.add(image).size(8 * 4); diff --git a/core/src/mindustry/world/consumers/ConsumeItems.java b/core/src/mindustry/world/consumers/ConsumeItems.java index 791db5a71d..c43fa42a32 100644 --- a/core/src/mindustry/world/consumers/ConsumeItems.java +++ b/core/src/mindustry/world/consumers/ConsumeItems.java @@ -33,7 +33,7 @@ public class ConsumeItems extends Consume{ table.table(c -> { int i = 0; for(var stack : items){ - c.add(new ReqImage(new ItemImage(stack.item.uiIcon, Math.round(stack.amount * multiplier.get(build))), + c.add(new ReqImage(StatValues.stack(stack.item, Math.round(stack.amount * multiplier.get(build))), () -> build.items.has(stack.item, Math.round(stack.amount * multiplier.get(build))))).padRight(8); if(++i % 4 == 0) c.row(); } diff --git a/core/src/mindustry/world/consumers/ConsumePayloadDynamic.java b/core/src/mindustry/world/consumers/ConsumePayloadDynamic.java index d12abb009d..ebb6f32430 100644 --- a/core/src/mindustry/world/consumers/ConsumePayloadDynamic.java +++ b/core/src/mindustry/world/consumers/ConsumePayloadDynamic.java @@ -63,7 +63,7 @@ public class ConsumePayloadDynamic extends Consume{ table.table(c -> { int i = 0; for(var stack : pay){ - c.add(new ReqImage(new ItemImage(stack.item.uiIcon, Math.round(stack.amount * multiplier.get(build))), + c.add(new ReqImage(StatValues.stack(stack.item, Math.round(stack.amount * multiplier.get(build))), () -> inv.contains(stack.item, Math.round(stack.amount * multiplier.get(build))))).padRight(8); if(++i % 4 == 0) c.row(); } diff --git a/core/src/mindustry/world/consumers/ConsumePayloadFilter.java b/core/src/mindustry/world/consumers/ConsumePayloadFilter.java index e43fc41a1c..ffcf0dc2a6 100644 --- a/core/src/mindustry/world/consumers/ConsumePayloadFilter.java +++ b/core/src/mindustry/world/consumers/ConsumePayloadFilter.java @@ -57,7 +57,7 @@ public class ConsumePayloadFilter extends Consume{ MultiReqImage image = new MultiReqImage(); content.blocks().each(i -> filter.get(i) && i.unlockedNow(), - block -> image.add(new ReqImage(new ItemImage(block.uiIcon, 1), + block -> image.add(new ReqImage(StatValues.stack(block, 1), () -> inv.contains(block, 1))) ); diff --git a/core/src/mindustry/world/consumers/ConsumePayloads.java b/core/src/mindustry/world/consumers/ConsumePayloads.java index ae905a4e8b..cbbc4145e6 100644 --- a/core/src/mindustry/world/consumers/ConsumePayloads.java +++ b/core/src/mindustry/world/consumers/ConsumePayloads.java @@ -38,7 +38,7 @@ public class ConsumePayloads extends Consume{ for(var stack : payloads){ stats.add(Stat.input, t -> { - t.add(new ItemImage(stack)); + t.add(StatValues.stack(stack)); t.add(stack.item.localizedName).padLeft(4).padRight(4); }); } @@ -51,7 +51,7 @@ public class ConsumePayloads extends Consume{ table.table(c -> { int i = 0; for(var stack : payloads){ - c.add(new ReqImage(new ItemImage(stack.item.uiIcon, Math.round(stack.amount * multiplier.get(build))), + c.add(new ReqImage(StatValues.stack(stack.item, Math.round(stack.amount * multiplier.get(build))), () -> inv.contains(stack.item, Math.round(stack.amount * multiplier.get(build))))).padRight(8); if(++i % 4 == 0) c.row(); } diff --git a/core/src/mindustry/world/meta/StatValues.java b/core/src/mindustry/world/meta/StatValues.java index 5e74f1f72b..17bbf7ec20 100644 --- a/core/src/mindustry/world/meta/StatValues.java +++ b/core/src/mindustry/world/meta/StatValues.java @@ -5,12 +5,16 @@ import arc.func.*; import arc.graphics.*; import arc.graphics.g2d.*; import arc.math.*; +import arc.scene.*; +import arc.scene.event.*; import arc.scene.ui.*; +import arc.scene.ui.Tooltip.*; import arc.scene.ui.layout.*; import arc.struct.*; import arc.util.*; import mindustry.*; import mindustry.content.*; +import mindustry.core.*; import mindustry.ctype.*; import mindustry.entities.abilities.*; import mindustry.entities.bullet.*; @@ -157,6 +161,73 @@ public class StatValues{ return t; } + public static T withTooltip(T element, UnlockableContent content, boolean tooltip){ + if(content != null){ + if(!mobile){ + if(tooltip){ + element.addListener(Tooltips.getInstance().create(content.localizedName, mobile)); + } + element.addListener(new HandCursorListener(() -> !content.isHidden(), true)); + } + element.clicked(() -> { + if(!content.isHidden()){ + Vars.ui.content.show(content); + } + }); + } + return element; + } + + public static T withTooltip(T element, UnlockableContent content){ + return withTooltip(element, content, false); + } + + /** Displays an item with a specified amount. */ + private static Stack stack(TextureRegion region, int amount, @Nullable UnlockableContent content, boolean tooltip){ + Stack stack = new Stack(); + + stack.add(new Table(o -> { + o.left(); + o.add(new Image(region)).size(32f).scaling(Scaling.fit); + })); + + if(amount != 0){ + stack.add(new Table(t -> { + t.left().bottom(); + t.add(amount >= 1000 ? UI.formatAmount(amount) : amount + "").style(Styles.outlineLabel); + t.pack(); + })); + } + + withTooltip(stack, content, tooltip); + + return stack; + } + + /** Displays an item with a specified amount. */ + private static Stack stack(TextureRegion region, int amount, @Nullable UnlockableContent content){ + return stack(region, amount, content, true); + } + + public static Stack stack(ItemStack stack){ + return stack(stack.item.uiIcon, stack.amount, stack.item); + } + + public static Stack stack(UnlockableContent item, int amount){ + return stack(item.uiIcon, amount, item); + } + + public static Stack stack(UnlockableContent item, int amount, boolean tooltip){ + return stack(item.uiIcon, amount, item, tooltip); + } + + public static Stack stack(Item item){ + return stack(item.uiIcon, 0, item); + } + + public static Stack stack(PayloadStack stack){ + return stack(stack.item.uiIcon, stack.amount, stack.item); + } public static Table displayItem(Item item){ return displayItem(item, 0); @@ -164,7 +235,7 @@ public class StatValues{ public static Table displayItem(Item item, int amount, boolean showName){ Table t = new Table(); - t.add(new ItemImage(new ItemStack(item, amount))); + t.add(stack(item, amount, !showName)); if(showName) t.add(item.localizedName).padLeft(4 + amount > 99 ? 4 : 0); return t; } @@ -176,7 +247,7 @@ public class StatValues{ /** Displays the item with a "/sec" qualifier based on the time period, in ticks. */ public static Table displayItem(Item item, int amount, float timePeriod, boolean showName){ Table t = new Table(); - t.add(new ItemImage(item.uiIcon, amount)); + t.add(stack(item, amount, !showName)); t.add((showName ? item.localizedName + "\n" : "") + "[lightgray]" + Strings.autoFixed(amount / (timePeriod / 60f), 2) + StatUnit.perSecond.localized()).padLeft(2).padRight(5).style(Styles.outlineLabel); return t; } @@ -184,7 +255,7 @@ public class StatValues{ /** Displays the item with a "/sec" qualifier based on the time period, in ticks. */ public static Table displayItemPercent(Item item, int percent, boolean showName){ Table t = new Table(); - t.add(new ItemImage(item.uiIcon, 0)); + t.add(stack(item, 0, !showName)); t.add((showName ? item.localizedName + "\n" : "") + "[lightgray]" + percent + "%").padLeft(2).padRight(5).style(Styles.outlineLabel); return t; } @@ -266,7 +337,7 @@ public class StatValues{ if(!check.get(item)) continue; any = true; - if(item.uiIcon.found()) l.image(item.uiIcon).size(iconSmall).padRight(2).padLeft(2).padTop(3).padBottom(3); + if(item.uiIcon.found()) l.image(item.uiIcon).size(iconSmall).scaling(Scaling.fit).padRight(2).padLeft(2).padTop(3).padBottom(3).with(img -> withTooltip(img, item, false)); l.add(item.localizedName).left().padLeft(1).padRight(4).colspan(item.uiIcon.found() ? 1 : 2); if(i % 5 == 4){ l.row(); @@ -304,7 +375,7 @@ public class StatValues{ b.table(info -> { info.left(); info.add(block.localizedName).left().row(); - info.add(block.itemDrop.emoji()).left(); + info.add(block.itemDrop.emoji()).with(l -> withTooltip(l, block.itemDrop)).left(); }).grow(); if(multipliers != null){ b.add(Strings.autoFixed(60f / (Math.max(drillTime + drillMultiplier * block.itemDrop.hardness, drillTime) / multipliers.get(block.itemDrop, 1f)) * size, 2) + StatUnit.perSecond.localized()) @@ -325,7 +396,7 @@ public class StatValues{ if(!filter.get(liquid)) continue; c.table(Styles.grayPanel, b -> { - b.image(liquid.uiIcon).size(40).pad(10f).left().scaling(Scaling.fit); + b.image(liquid.uiIcon).size(40).pad(10f).left().scaling(Scaling.fit).with(i -> withTooltip(i, liquid, false));; b.table(info -> { info.add(liquid.localizedName).left().row(); info.add(Strings.autoFixed(maxUsed * 60f, 2) + StatUnit.perSecond.localized()).left().color(Color.lightGray); @@ -354,7 +425,7 @@ public class StatValues{ if(!filter.get(liquid)) continue; c.table(Styles.grayPanel, b -> { - b.image(liquid.uiIcon).size(40).pad(10f).left().scaling(Scaling.fit); + b.image(liquid.uiIcon).size(40).pad(10f).left().scaling(Scaling.fit).with(i -> withTooltip(i, liquid, false));; b.table(info -> { info.add(liquid.localizedName).left().row(); info.add(Strings.autoFixed(amount * 60f, 2) + StatUnit.perSecond.localized()).left().color(Color.lightGray); @@ -479,7 +550,7 @@ public class StatValues{ //no point in displaying unit icon twice if(!compact && !(t instanceof Turret)){ bt.table(title -> { - title.image(icon(t)).size(3 * 8).padRight(4).right().scaling(Scaling.fit).top(); + title.image(icon(t)).size(3 * 8).padRight(4).right().scaling(Scaling.fit).top().with(i -> withTooltip(i, t, false)); title.add(t.localizedName).padRight(10).left().top(); }); bt.row(); @@ -556,7 +627,8 @@ public class StatValues{ } if(type.status != StatusEffects.none){ - sep(bt, (type.status.hasEmoji() ? type.status.emoji() : "") + "[stat]" + type.status.localizedName + (type.status.reactive ? "" : "[lightgray] ~ [stat]" + ((int)(type.statusDuration / 60f)) + "[lightgray] " + Core.bundle.get("unit.seconds"))); + sep(bt, (type.status.hasEmoji() ? type.status.emoji() : "") + "[stat]" + type.status.localizedName + (type.status.reactive ? "" : "[lightgray] ~ [stat]" + + ((int)(type.statusDuration / 60f)) + "[lightgray] " + Core.bundle.get("unit.seconds"))).with(c -> withTooltip(c, type.status)); } if(type.intervalBullet != null){ @@ -601,9 +673,9 @@ public class StatValues{ } //for AmmoListValue - private static void sep(Table table, String text){ + private static Cell sep(Table table, String text){ table.row(); - table.add(text); + return table.add(text); } //for AmmoListValue From 0c540f952779e8589af1de789dce3e31242a14ae Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 20 Sep 2024 14:04:55 -0400 Subject: [PATCH 197/437] Minor fix --- core/src/mindustry/world/meta/StatValues.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/world/meta/StatValues.java b/core/src/mindustry/world/meta/StatValues.java index 17bbf7ec20..ac422e90d7 100644 --- a/core/src/mindustry/world/meta/StatValues.java +++ b/core/src/mindustry/world/meta/StatValues.java @@ -150,7 +150,7 @@ public class StatValues{ t.add(Strings.autoFixed(amount, 2)).style(Styles.outlineLabel); add(t); } - }}).size(iconMed).padRight(3 + (amount != 0 && Strings.autoFixed(amount, 2).length() > 2 ? 8 : 0)); + }}).size(iconMed).padRight(3 + (amount != 0 && Strings.autoFixed(amount, 2).length() > 2 ? 8 : 0)).with(s -> withTooltip(s, liquid, false)); if(perSecond){ t.add(StatUnit.perSecond.localized()).padLeft(2).padRight(5).color(Color.lightGray).style(Styles.outlineLabel); From f00b79906b2aade57c13ba9e570fc977be1c889d Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 20 Sep 2024 14:09:39 -0400 Subject: [PATCH 198/437] Fixed database dialog fade --- core/assets/bundles/bundle.properties | 2 +- core/src/mindustry/ui/dialogs/ContentInfoDialog.java | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 0f88f8d18d..89eef6fee8 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -2022,7 +2022,7 @@ split.container = Similar to the container, units can also be transported using item.copper.description = Used in all types of construction and ammunition. item.copper.details = Copper. Abnormally abundant metal on Serpulo. Structurally weak unless reinforced. item.lead.description = Used in liquid transportation and electrical structures. -item.lead.details = Dense. Inert. Extensively used in batteries.\nNote: Likely toxic to biological life forms. Not that there are many left here. +item.lead.details = Dense. Inert. Extensively used in batteries.\nNote: Likely toxic to biological life forms; not that there are many left here. item.metaglass.description = Used in liquid distribution/storage structures. item.graphite.description = Used in electrical components and turret ammunition. item.sand.description = Used for production of other refined materials. diff --git a/core/src/mindustry/ui/dialogs/ContentInfoDialog.java b/core/src/mindustry/ui/dialogs/ContentInfoDialog.java index 8defe26a24..701ea7a21c 100644 --- a/core/src/mindustry/ui/dialogs/ContentInfoDialog.java +++ b/core/src/mindustry/ui/dialogs/ContentInfoDialog.java @@ -1,6 +1,7 @@ package mindustry.ui.dialogs; import arc.*; +import arc.scene.actions.*; import arc.scene.ui.*; import arc.scene.ui.layout.*; import arc.struct.*; @@ -98,7 +99,11 @@ public class ContentInfoDialog extends BaseDialog{ ScrollPane pane = new ScrollPane(table); cont.add(pane); - show(); + if(isShown()){ + show(scene, Actions.fadeIn(0f)); + }else{ + show(); + } } } From c6e702441d3c03b83244ead9e4b0fb4e5476fd6d Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 20 Sep 2024 14:37:53 -0400 Subject: [PATCH 199/437] Basin's missile is no longer 'nuclear' --- core/assets/bundles/bundle.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 89eef6fee8..08f271d82d 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -720,9 +720,9 @@ objective.enemyescelating = [accent]Enemy production escalating in [lightgray]{0 objective.enemyairunits = [accent]Enemy air unit production beginning in [lightgray]{0}[] objective.destroycore = [accent]Destroy Enemy Core objective.command = [accent]Command Units -objective.nuclearlaunch = [accent]\u26A0 Nuclear launch detected: [lightgray]{0} +objective.nuclearlaunch = [accent]\u26A0 Missile launch detected: [lightgray]{0} -announce.nuclearstrike = [red]\u26A0 NUCLEAR STRIKE INBOUND \u26A0\n[lightgray]construct backup cores immediately +announce.nuclearstrike = [red]\u26A0 MISSILE STRIKE INBOUND \u26A0\n[lightgray]construct backup cores immediately loadout = Loadout resources = Resources From 63c90968c7775330066d2ec07faf32a39fddaba0 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 20 Sep 2024 15:42:22 -0400 Subject: [PATCH 200/437] Triggering build to test newer Java version From 830fcb6360aa467b40d013c22d56ccb1614b4f43 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 21 Sep 2024 09:00:24 -0400 Subject: [PATCH 201/437] Fixed database opening when selecting commanded units --- .../ui/fragments/PlacementFragment.java | 6 ++- tests/src/test/java/ModTestHAI.java | 43 ------------------- 2 files changed, 5 insertions(+), 44 deletions(-) delete mode 100644 tests/src/test/java/ModTestHAI.java diff --git a/core/src/mindustry/ui/fragments/PlacementFragment.java b/core/src/mindustry/ui/fragments/PlacementFragment.java index 0228575700..9d4dc589c4 100644 --- a/core/src/mindustry/ui/fragments/PlacementFragment.java +++ b/core/src/mindustry/ui/fragments/PlacementFragment.java @@ -8,6 +8,7 @@ import arc.scene.*; import arc.scene.event.*; import arc.scene.style.*; import arc.scene.ui.*; +import arc.scene.ui.Tooltip.*; import arc.scene.ui.layout.*; import arc.struct.*; import arc.util.*; @@ -466,7 +467,10 @@ public class PlacementFragment{ for(int i = 0; i < counts.length; i++){ if(counts[i] > 0){ var type = content.unit(i); - unitlist.add(StatValues.stack(type, counts[i])).tooltip(type.localizedName).pad(4).with(b -> { + unitlist.add(StatValues.stack(type, counts[i])).pad(4).with(b -> { + b.clearListeners(); + b.addListener(Tooltips.getInstance().create(type.localizedName, false)); + var listener = new ClickListener(); //left click -> select diff --git a/tests/src/test/java/ModTestHAI.java b/tests/src/test/java/ModTestHAI.java deleted file mode 100644 index 5dfa3223e4..0000000000 --- a/tests/src/test/java/ModTestHAI.java +++ /dev/null @@ -1,43 +0,0 @@ -import arc.util.*; -import mindustry.*; -import mindustry.gen.*; -import mindustry.type.*; -import org.junit.jupiter.api.*; - -import static mindustry.Vars.*; -import static org.junit.jupiter.api.Assertions.*; - -//grabs a version-locked Heavy Armaments Industries commit and makes sure it initializes correctly -//this mod was chosen because: -//- it is one of the top JS mods, based on stars -//- it contains both JS and JSON, which can be used to test compatibility of the two -//- it can be used server-side (unlike FactoryDustry, which is a client-side texture pack that cannot be tested here) -public class ModTestHAI extends GenericModTest{ - - @Test - public void begin(){ - //TODO broken as of 136+ - if(true) return; - - grabMod("https://github.com/Eschatologue/Heavy-Armaments-Industries/archive/d996e92dcf9a30a6acb7b3bfdfb6522dddc3804c.zip"); - checkExistence("heavy-armaments"); - - UnitType type = Vars.content.units().find(u -> u.name.equals("heavy-armaments-t3A_copter")); - assertNotNull(type, "A mod unit must be loaded."); - assertTrue(type.weapons.size > 0, "A mod unit must have a weapon."); - - Vars.world.loadMap(maps.loadInternalMap("groundZero")); - - Unit unit = type.spawn(0, 0); - - //check for crash - unit.update(); - - assertTrue(unit.health > 0, "Unit must be spawned and alive."); - assertTrue(Groups.unit.size() > 0, "Unit must be spawned and alive."); - - //just an extra sanity check - Log.info("Modded units: @", Vars.content.units().select(u -> u.minfo.mod != null)); - } - -} From 51b415731af62f118c8c958b4f48b7bfcdad3145 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 22 Sep 2024 08:58:09 -0400 Subject: [PATCH 202/437] Fixed units sometimes exploding when payload dropped --- core/src/mindustry/entities/comp/PayloadComp.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/core/src/mindustry/entities/comp/PayloadComp.java b/core/src/mindustry/entities/comp/PayloadComp.java index 0122166c94..38b2dcd429 100644 --- a/core/src/mindustry/entities/comp/PayloadComp.java +++ b/core/src/mindustry/entities/comp/PayloadComp.java @@ -148,9 +148,12 @@ abstract class PayloadComp implements Posc, Rotc, Hitboxc, Unitc{ boolean dropUnit(UnitPayload payload){ Unit u = payload.unit; + //add random offset to prevent unit stacking + Tmp.v1.rnd(Mathf.random(2f)); + //can't drop ground units //allow stacking for small units for now - otherwise, unit transfer would get annoying - if(!u.canPass(tileX(), tileY()) || Units.count(x, y, u.physicSize(), o -> o.isGrounded() && o.hitSize > 14f) > 1){ + if(!u.canPass(World.toTile(x + Tmp.v1.x), World.toTile(y + Tmp.v1.y)) || Units.count(x, y, u.physicSize(), o -> o.isGrounded() && o.hitSize > 14f) > 1){ return false; } @@ -159,8 +162,7 @@ abstract class PayloadComp implements Posc, Rotc, Hitboxc, Unitc{ //clients do not drop payloads if(Vars.net.client()) return true; - u.set(this); - u.trns(Tmp.v1.rnd(Mathf.random(2f))); + u.set(x + Tmp.v1.x, y + Tmp.v1.y); u.rotation(rotation); //reset the ID to a new value to make sure it's synced u.id = EntityGroup.nextId(); From 8e1df180bcda4a0bd267c881d63735dadb8855ea Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 23 Sep 2024 21:06:54 -0400 Subject: [PATCH 203/437] Mod browser dialog back button moved to overlay --- core/src/mindustry/ui/dialogs/ModsDialog.java | 1 + 1 file changed, 1 insertion(+) diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index cfc64166ab..193c616540 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -72,6 +72,7 @@ public class ModsDialog extends BaseDialog{ browserTable = tablebrow; }).scrollX(false); browser.addCloseButton(); + browser.makeButtonOverlay(); browser.onResize(this::rebuildBrowser); From 56f3dac3d25547734c72ef2d388c796371b7a330 Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 23 Sep 2024 22:51:14 -0400 Subject: [PATCH 204/437] Sectors with world processors get reset on gameover --- core/src/mindustry/core/Control.java | 4 ++-- core/src/mindustry/game/SectorInfo.java | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/core/Control.java b/core/src/mindustry/core/Control.java index 045b96d9a2..db1ccc68c3 100644 --- a/core/src/mindustry/core/Control.java +++ b/core/src/mindustry/core/Control.java @@ -404,7 +404,7 @@ public class Control implements ApplicationListener, Loadable{ ui.planet.hide(); SaveSlot slot = sector.save; sector.planet.setLastSector(sector); - if(slot != null && !clearSectors && (!sector.planet.clearSectorOnLose || sector.info.hasCore)){ + if(slot != null && !clearSectors && (!(sector.planet.clearSectorOnLose || sector.info.hasWorldProcessor) || sector.info.hasCore)){ try{ boolean hadNoCore = !sector.info.hasCore; @@ -417,7 +417,7 @@ public class Control implements ApplicationListener, Loadable{ //if there is no base, simulate a new game and place the right loadout at the spawn position if(state.rules.defaultTeam.cores().isEmpty() || hadNoCore){ - if(sector.planet.clearSectorOnLose){ + if(sector.planet.clearSectorOnLose || sector.info.hasWorldProcessor){ playNewSector(origin, sector, reloader); }else{ //no spawn set -> delete the sector save diff --git a/core/src/mindustry/game/SectorInfo.java b/core/src/mindustry/game/SectorInfo.java index e0b18826fd..00ff253867 100644 --- a/core/src/mindustry/game/SectorInfo.java +++ b/core/src/mindustry/game/SectorInfo.java @@ -38,6 +38,8 @@ public class SectorInfo{ public int storageCapacity = 0; /** Whether a core is available here. */ public boolean hasCore = true; + /** Whether a world processor is on this map - implies that the map will get cleared. */ + public boolean hasWorldProcessor; /** Whether this sector was ever fully captured. */ public boolean wasCaptured = false; /** Sector that was launched from. */ @@ -175,6 +177,7 @@ public class SectorInfo{ spawnPosition = entity.pos(); } + hasWorldProcessor = state.teams.present.contains(t -> t.getBuildings(Blocks.worldProcessor).any()); waveSpacing = state.rules.waveSpacing; wave = state.wave; winWave = state.rules.winWave; From b2ef7f346fcba8a7e1c4782df825cc8b4d022f9a Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 24 Sep 2024 12:36:51 -0400 Subject: [PATCH 205/437] Separate turret tracking range for malign/smite --- core/src/mindustry/content/Blocks.java | 2 ++ .../mindustry/world/blocks/defense/turrets/Turret.java | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 9ee4aa02f6..505a6a5b57 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -4954,6 +4954,7 @@ public class Blocks{ reload = 100f; recoil = 2f; range = 300; + trackingRange = range * 1.4f; shootCone = 30f; scaledHealth = 350; rotateSpeed = 1.5f; @@ -5290,6 +5291,7 @@ public class Blocks{ envEnabled |= Env.space; reload = 9f; range = 370; + trackingRange = range * 1.4f; shootCone = 100f; scaledHealth = 370; rotateSpeed = 2f; diff --git a/core/src/mindustry/world/blocks/defense/turrets/Turret.java b/core/src/mindustry/world/blocks/defense/turrets/Turret.java index e9f5331bbe..0679c6cdf2 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/Turret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/Turret.java @@ -60,6 +60,8 @@ public class Turret extends ReloadTurret{ public float shootX = 0f, shootY = Float.NEGATIVE_INFINITY; /** Random spread on the X axis. */ public float xRand = 0f; + /** Range at which it finds and locks on to the taget, but does not shoot. */ + public float trackingRange = 0f; /** Minimum bullet range. Used for artillery only. */ public float minRange = 0f; /** Minimum warmup needed to fire. */ @@ -182,6 +184,7 @@ public class Turret extends ReloadTurret{ if(newTargetInterval <= 0f) newTargetInterval = targetInterval; super.init(); + trackingRange = Math.max(range, trackingRange); } @Override @@ -248,6 +251,10 @@ public class Turret extends ReloadTurret{ return range; } + public float trackingRange(){ + return range() + trackingRange - range; + } + @Override public float warmup(){ return shootWarmup; @@ -425,6 +432,7 @@ public class Turret extends ReloadTurret{ targetPosition(target); if(Float.isNaN(rotation)) rotation = 0; + canShoot = within(target, range() + (target instanceof Sized hb ? hb.hitSize()/1.9f : 0f)); } if(!isControlled()){ @@ -475,7 +483,7 @@ public class Turret extends ReloadTurret{ } protected void findTarget(){ - float range = range(); + float range = trackingRange(); if(targetAir && !targetGround){ target = Units.bestEnemy(team, x, y, range, e -> !e.dead() && !e.isGrounded() && unitFilter.get(e), unitSort); From 978f16b8e35e7c852959a277016b90b8019b6cbb Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 24 Sep 2024 15:49:58 -0400 Subject: [PATCH 206/437] Applied jabel to other submodules --- build.gradle | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build.gradle b/build.gradle index 0a2a28b66c..54946d417a 100644 --- a/build.gradle +++ b/build.gradle @@ -243,6 +243,7 @@ project(":desktop"){ implementation "com.github.Anuken:steamworks4j:$steamworksVersion" implementation arcModule("backends:backend-sdl") + annotationProcessor 'com.github.Anuken:jabel:0.9.0' } } @@ -372,6 +373,7 @@ project(":server"){ dependencies{ implementation project(":core") implementation arcModule("backends:backend-headless") + annotationProcessor 'com.github.Anuken:jabel:0.9.0' } } From d6912b10d1960e13442789ca280be64258b24e27 Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 24 Sep 2024 15:56:19 -0400 Subject: [PATCH 207/437] Removed Polar Aerodrome for now --- core/src/mindustry/content/SectorPresets.java | 9 +++++---- core/src/mindustry/content/SerpuloTechTree.java | 11 ++++++++--- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/core/src/mindustry/content/SectorPresets.java b/core/src/mindustry/content/SectorPresets.java index d739ed46e2..124b1eeb90 100644 --- a/core/src/mindustry/content/SectorPresets.java +++ b/core/src/mindustry/content/SectorPresets.java @@ -8,7 +8,7 @@ public class SectorPresets{ public static SectorPreset groundZero, craters, biomassFacility, taintedWoods, frozenForest, ruinousShores, facility32m, windsweptIslands, stainedMountains, tarFields, - fungalPass, infestedCanyons, atolls, extractionOutpost, polarAerodrome, saltFlats, overgrowth, + fungalPass, infestedCanyons, atolls, extractionOutpost, saltFlats, overgrowth, //polarAerodrome, impact0078, desolateRift, nuclearComplex, planetaryTerminal, coastline, navalFortress, @@ -76,9 +76,10 @@ public class SectorPresets{ difficulty = 5; }}; - polarAerodrome = new SectorPreset("polarAerodrome", serpulo, 68){{ - difficulty = 7; - }}; + //TODO: removed for now + //polarAerodrome = new SectorPreset("polarAerodrome", serpulo, 68){{ + // difficulty = 7; + //}}; coastline = new SectorPreset("coastline", serpulo, 108){{ captureWave = 30; diff --git a/core/src/mindustry/content/SerpuloTechTree.java b/core/src/mindustry/content/SerpuloTechTree.java index 3a5563e4e0..726dc129c7 100644 --- a/core/src/mindustry/content/SerpuloTechTree.java +++ b/core/src/mindustry/content/SerpuloTechTree.java @@ -378,7 +378,7 @@ public class SerpuloTechTree{ node(flare, () -> { node(horizon, () -> { node(zenith, () -> { - node(antumbra, Seq.with(new SectorComplete(polarAerodrome)), () -> { + node(antumbra, () -> { node(eclipse, () -> { }); @@ -514,17 +514,22 @@ public class SerpuloTechTree{ new Research(airFactory), new Research(mono) ), () -> { - node(polarAerodrome, Seq.with( + //TODO: removed for now + /*node(polarAerodrome, Seq.with( new SectorComplete(fungalPass), + new SectorComplete(desolateRift), new SectorComplete(overgrowth), new Research(multiplicativeReconstructor), new Research(zenith), new Research(swarmer), new Research(cyclone), - new Research(blastDrill) + new Research(blastDrill), + new Research(blastDrill), + new Research(massDriver) ), () -> { }); + */ }); }); From cbc4797f4e26222eeb6e75002bf0e68198078f16 Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 24 Sep 2024 22:09:46 -0400 Subject: [PATCH 208/437] Fixed turrets ignoring nearby targets with increased tracking range --- .../world/blocks/defense/turrets/Turret.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/core/src/mindustry/world/blocks/defense/turrets/Turret.java b/core/src/mindustry/world/blocks/defense/turrets/Turret.java index 0679c6cdf2..d9d8208927 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/Turret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/Turret.java @@ -482,13 +482,21 @@ public class Turret extends ReloadTurret{ return targetHealing && hasAmmo() && peekAmmo().collidesTeam && peekAmmo().heals(); } - protected void findTarget(){ - float range = trackingRange(); - + protected Posc findEnemy(float range){ if(targetAir && !targetGround){ - target = Units.bestEnemy(team, x, y, range, e -> !e.dead() && !e.isGrounded() && unitFilter.get(e), unitSort); + return Units.bestEnemy(team, x, y, range, e -> !e.dead() && !e.isGrounded() && unitFilter.get(e), unitSort); }else{ - target = Units.bestTarget(team, x, y, range, e -> !e.dead() && unitFilter.get(e) && (e.isGrounded() || targetAir) && (!e.isGrounded() || targetGround), b -> targetGround && buildingFilter.get(b), unitSort); + return Units.bestTarget(team, x, y, range, e -> !e.dead() && unitFilter.get(e) && (e.isGrounded() || targetAir) && (!e.isGrounded() || targetGround), b -> targetGround && buildingFilter.get(b), unitSort); + } + } + + protected void findTarget(){ + float trackRange = trackingRange(), range = range(); + + target = findEnemy(trackRange); + //find another target within the tracking range, but only if there's nothing else (always prioritize standard target) + if(!Mathf.equal(trackRange, range) && target == null){ + target = findEnemy(trackRange); } if(target == null && canHeal()){ From 1dec92d25dad24cdabeecdb9b76a3f15c4322384 Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 25 Sep 2024 07:44:07 -0400 Subject: [PATCH 209/437] Testing naval fortress submission --- core/assets/maps/navalFortress.msav | Bin 28722 -> 42181 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/core/assets/maps/navalFortress.msav b/core/assets/maps/navalFortress.msav index b9e583bb1ee5ee163b050fa5de1b2559348b423c..00416a46d0a2926b809804b8342e64ef06fe2c2a 100644 GIT binary patch literal 42181 zcmb=J^JXvSggN1L^56EoTmSyu&MG~gJ~;-NNeYGvc}xn^RrG}Ju=cC&jM965%qMx- z$(b*2zLRX&{My##<}DA^O)Cy>D)U`GWopbeCD&~_r-R;jEYt~K^GR*$*11}%Lsm`^ znl5y6YJ`{8Q?DRV&G-NB{jd0+zb{XQTkm@3GOiczYu*rz)NddC$`{{$^)>B%?YgbEYF3+8zdf-qnce4M)b7&Sy_b!hzsuPc{`j%* zFnj;}O{#JRTU*cFa@)T7lgswaJMS4EkBhq<6KPqY{eN#3SN7c2zO`4LtTPL*(w&^2 zm#0&{EA88xTgzM>Jl5r$jf>3G+f%yq>f1b7+nQU4y3B8J=L_aapY5G@vgV`rvJJOl z%1wIfpXb*+zrO$T?E61^-~ZYB{?9M_{|D>;ohz?U#Bg-zsTU} z(rdS_emmv1`u6E5asM72^4fge`f_we-VJSb@oBTOxz`$Ro2SgaeqD)GY_!vJpZvAO ze;-VpdhSs4yMljS>BXrVul~Js@L&FXj<|gNEqQO>9)5Ux@3UKv_E;}

ZrY}1W5 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