diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 71a34cae6a..5476ff44ee 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -40,6 +40,8 @@ jobs: - name: Update JITpack repo if: ${{ github.repository == 'Anuken/Mindustry' }} run: | + git config --global user.name "Github Actions" + git config --global user.email "cli@github.com" cd ../ cp -r ./Mindustry ./MindustryJitpack cd MindustryJitpack diff --git a/LICENSE b/LICENSE index 94a9ed024d..bc08fe2e41 100644 --- a/LICENSE +++ b/LICENSE @@ -617,58 +617,3 @@ reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/SERVERLIST.md b/SERVERLIST.md index 2d8cea28db..b3dbebe0ca 100644 --- a/SERVERLIST.md +++ b/SERVERLIST.md @@ -25,6 +25,6 @@ For example, if your server address is `example.com:6000`, you would add a comma "address": "example.com:6000" } ``` - > Note that Mindustry also support SRV records. This allows you to use a subdomain for your server address instead of specifying the port. For example, if you want to use `play.example.com` instead of `example.com:6000`, in the dns settings of your domain, add an SRV record with `_mindustry` as the service, `tcp` as the protocol, `play` as the target and `6000` as the port. You can also setup fallback servers by modifing the weight or priority of the record. + > Note that Mindustry also support SRV records. This allows you to use a subdomain for your server address instead of specifying the port. For example, if you want to use `play.example.com` instead of `example.com:6000`, in the dns settings of your domain, add an SRV record with `_mindustry` as the service, `tcp` as the protocol, `play` as the target and `6000` as the port. You can also setup fallback servers by modifying the weight or priority of the record. Although SRV records are very convenient, keep in mind they are slower than regular addresses. Avoid using them in the server list, but rather as an easy way to share your server address. Then, press the *'submit pull request'* button and I'll take a look at your server. If I have any issues with it, I'll let you know in the PR comments. diff --git a/build.gradle b/build.gradle index 97c1f8e411..5b3103f660 100644 --- a/build.gradle +++ b/build.gradle @@ -49,7 +49,7 @@ allprojects{ } localArc = { - return !project.hasProperty("release") && new File(projectDir.parent, '../Arc').exists() + return !project.hasProperty("release") && !project.hasProperty("noLocalArc") && new File(projectDir.parent, '../Arc').exists() } arcModule = { String name -> diff --git a/core/assets-raw/fontgen/extra/admin.svg b/core/assets-raw/fontgen/extra/admin.svg index 03b33386b8..998fabfb62 100644 --- a/core/assets-raw/fontgen/extra/admin.svg +++ b/core/assets-raw/fontgen/extra/admin.svg @@ -1,18 +1,17 @@ + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="12" + height="12" + version="1.1" + id="svg380" + sodipodi:docname="admin.svg" + inkscape:version="1.0.1 (0767f8302a, 2020-10-17)"> diff --git a/core/assets-raw/fontgen/extra/distribution.svg b/core/assets-raw/fontgen/extra/distribution.svg index 63d50541d0..79610d87e9 100644 --- a/core/assets-raw/fontgen/extra/distribution.svg +++ b/core/assets-raw/fontgen/extra/distribution.svg @@ -1,18 +1,17 @@ + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="10" + height="10" + version="1.1" + id="svg192" + sodipodi:docname="distribution.svg" + inkscape:version="1.0.1 (0767f8302a, 2020-10-17)"> diff --git a/core/assets-raw/fontgen/extra/effect.svg b/core/assets-raw/fontgen/extra/effect.svg index 2194e8953e..1bf4efdb86 100644 --- a/core/assets-raw/fontgen/extra/effect.svg +++ b/core/assets-raw/fontgen/extra/effect.svg @@ -1,18 +1,17 @@ + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="10" + height="10" + version="1.1" + id="svg252" + sodipodi:docname="effect.svg" + inkscape:version="1.0.1 (0767f8302a, 2020-10-17)"> diff --git a/core/assets-raw/fontgen/extra/file-image.svg b/core/assets-raw/fontgen/extra/file-image.svg index 37d149a2e4..a0f2775d19 100644 --- a/core/assets-raw/fontgen/extra/file-image.svg +++ b/core/assets-raw/fontgen/extra/file-image.svg @@ -1,18 +1,17 @@ + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="10" + height="13" + version="1.1" + id="svg310" + sodipodi:docname="file-image.svg" + inkscape:version="1.0.1 (0767f8302a, 2020-10-17)"> diff --git a/core/assets-raw/fontgen/extra/info.svg b/core/assets-raw/fontgen/extra/info.svg index d7ec5d243f..b4a8d54a45 100644 --- a/core/assets-raw/fontgen/extra/info.svg +++ b/core/assets-raw/fontgen/extra/info.svg @@ -1,18 +1,17 @@ + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="12" + height="12" + version="1.1" + id="svg300" + sodipodi:docname="info.svg" + inkscape:version="1.0.1 (0767f8302a, 2020-10-17)"> diff --git a/core/assets-raw/fontgen/extra/logic.svg b/core/assets-raw/fontgen/extra/logic.svg index 431ce25d42..93fc13edd0 100644 --- a/core/assets-raw/fontgen/extra/logic.svg +++ b/core/assets-raw/fontgen/extra/logic.svg @@ -1,17 +1,16 @@ + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + sodipodi:docname="logic.svg" + inkscape:version="1.0 (9f2f71dc58, 2020-08-02)" + id="svg8" + version="1.1" + viewBox="0 0 128 128"> + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="16" + height="16" + version="1.1" + id="svg542" + sodipodi:docname="planet.svg" + inkscape:version="1.0.1 (0767f8302a, 2020-10-17)"> diff --git a/core/assets-raw/sprites/blocks/payload/factory-in-3-dark.png b/core/assets-raw/sprites/blocks/payload/factory-in-3-dark.png index 3c4c7faaa2..d626287db6 100644 Binary files a/core/assets-raw/sprites/blocks/payload/factory-in-3-dark.png and b/core/assets-raw/sprites/blocks/payload/factory-in-3-dark.png differ diff --git a/core/assets-raw/sprites/blocks/payload/factory-in-5-dark.png b/core/assets-raw/sprites/blocks/payload/factory-in-5-dark.png index d411cbd4cd..7514a32f0f 100644 Binary files a/core/assets-raw/sprites/blocks/payload/factory-in-5-dark.png and b/core/assets-raw/sprites/blocks/payload/factory-in-5-dark.png differ diff --git a/core/assets-raw/sprites/blocks/payload/factory-out-3-dark.png b/core/assets-raw/sprites/blocks/payload/factory-out-3-dark.png index e7a9f9c5b3..8291470ae0 100644 Binary files a/core/assets-raw/sprites/blocks/payload/factory-out-3-dark.png and b/core/assets-raw/sprites/blocks/payload/factory-out-3-dark.png differ diff --git a/core/assets-raw/sprites/blocks/payload/factory-out-5-dark.png b/core/assets-raw/sprites/blocks/payload/factory-out-5-dark.png index dc75d62b93..8c6647da56 100644 Binary files a/core/assets-raw/sprites/blocks/payload/factory-out-5-dark.png and b/core/assets-raw/sprites/blocks/payload/factory-out-5-dark.png differ diff --git a/core/assets-raw/sprites/blocks/payload/reinforced-payload-conveyor-icon.png b/core/assets-raw/sprites/blocks/payload/reinforced-payload-conveyor-icon.png index 6a9ce4ba85..c2ba97a8ec 100644 Binary files a/core/assets-raw/sprites/blocks/payload/reinforced-payload-conveyor-icon.png and b/core/assets-raw/sprites/blocks/payload/reinforced-payload-conveyor-icon.png differ diff --git a/core/assets-raw/sprites/blocks/payload/reinforced-payload-conveyor-top.png b/core/assets-raw/sprites/blocks/payload/reinforced-payload-conveyor-top.png index 5c802b5f13..fe7a84ecb4 100644 Binary files a/core/assets-raw/sprites/blocks/payload/reinforced-payload-conveyor-top.png and b/core/assets-raw/sprites/blocks/payload/reinforced-payload-conveyor-top.png differ diff --git a/core/assets-raw/sprites/blocks/payload/reinforced-payload-conveyor.png b/core/assets-raw/sprites/blocks/payload/reinforced-payload-conveyor.png index fb0a728a0f..9bced72851 100644 Binary files a/core/assets-raw/sprites/blocks/payload/reinforced-payload-conveyor.png and b/core/assets-raw/sprites/blocks/payload/reinforced-payload-conveyor.png differ diff --git a/core/assets-raw/sprites/blocks/payload/reinforced-payload-router-icon.png b/core/assets-raw/sprites/blocks/payload/reinforced-payload-router-icon.png index 5d9d601a3c..f2bc5e234a 100644 Binary files a/core/assets-raw/sprites/blocks/payload/reinforced-payload-router-icon.png and b/core/assets-raw/sprites/blocks/payload/reinforced-payload-router-icon.png differ diff --git a/core/assets-raw/sprites/blocks/payload/reinforced-payload-router-top.png b/core/assets-raw/sprites/blocks/payload/reinforced-payload-router-top.png index 34a8fe8144..c4c3376f1c 100644 Binary files a/core/assets-raw/sprites/blocks/payload/reinforced-payload-router-top.png and b/core/assets-raw/sprites/blocks/payload/reinforced-payload-router-top.png differ diff --git a/core/assets-raw/sprites/blocks/turrets/duo/duo-barrel-l.png b/core/assets-raw/sprites/blocks/turrets/duo/duo-barrel-l.png new file mode 100644 index 0000000000..4e2cd467d2 Binary files /dev/null and b/core/assets-raw/sprites/blocks/turrets/duo/duo-barrel-l.png differ diff --git a/core/assets-raw/sprites/blocks/turrets/duo/duo-barrel-r.png b/core/assets-raw/sprites/blocks/turrets/duo/duo-barrel-r.png new file mode 100644 index 0000000000..ca9582932c Binary files /dev/null and b/core/assets-raw/sprites/blocks/turrets/duo/duo-barrel-r.png differ diff --git a/core/assets-raw/sprites/blocks/turrets/duo.png b/core/assets-raw/sprites/blocks/turrets/duo/duo-preview.png similarity index 100% rename from core/assets-raw/sprites/blocks/turrets/duo.png rename to core/assets-raw/sprites/blocks/turrets/duo/duo-preview.png diff --git a/core/assets-raw/sprites/blocks/turrets/duo/duo.png b/core/assets-raw/sprites/blocks/turrets/duo/duo.png new file mode 100644 index 0000000000..033099c10e Binary files /dev/null and b/core/assets-raw/sprites/blocks/turrets/duo/duo.png differ diff --git a/core/assets-raw/sprites/items/liquid-arkycite.png b/core/assets-raw/sprites/items/liquid-arkycite.png index 3a52288354..0ecdd7cc73 100644 Binary files a/core/assets-raw/sprites/items/liquid-arkycite.png and b/core/assets-raw/sprites/items/liquid-arkycite.png differ diff --git a/core/assets-raw/sprites/items/liquid-cyanogen.png b/core/assets-raw/sprites/items/liquid-cyanogen.png index 29c204c89d..fdb14258ed 100644 Binary files a/core/assets-raw/sprites/items/liquid-cyanogen.png and b/core/assets-raw/sprites/items/liquid-cyanogen.png differ diff --git a/core/assets-raw/sprites/items/liquid-hydrogen.png b/core/assets-raw/sprites/items/liquid-hydrogen.png index cf55930c42..4ec296d9b7 100644 Binary files a/core/assets-raw/sprites/items/liquid-hydrogen.png and b/core/assets-raw/sprites/items/liquid-hydrogen.png differ diff --git a/core/assets-raw/sprites/items/liquid-nitrogen.png b/core/assets-raw/sprites/items/liquid-nitrogen.png index 7f0d913212..6d44c42a83 100644 Binary files a/core/assets-raw/sprites/items/liquid-nitrogen.png and b/core/assets-raw/sprites/items/liquid-nitrogen.png differ diff --git a/core/assets-raw/sprites/items/liquid-ozone.png b/core/assets-raw/sprites/items/liquid-ozone.png index 34607d5802..be544ed2b1 100644 Binary files a/core/assets-raw/sprites/items/liquid-ozone.png and b/core/assets-raw/sprites/items/liquid-ozone.png differ diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 7c935f21dd..8b0088943c 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -462,6 +462,8 @@ waves.sort.reverse = Reverse Sort waves.sort.begin = Begin waves.sort.health = Health waves.sort.type = Type +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Hide All waves.units.show = Show All @@ -900,6 +902,7 @@ stat.repairspeed = Repair Speed stat.weapons = Weapons stat.bullet = Bullet stat.moduletier = Module Tier +stat.unittype = Unit Type stat.speedincrease = Speed Increase stat.range = Range stat.drilltier = Drillables @@ -952,7 +955,7 @@ ability.unitspawn = {0} Factory ability.shieldregenfield = Shield Regen Field ability.movelightning = Movement Lightning ability.shieldarc = Shield Arc -ability.suppressionfield = Regen Suppression Field +ability.suppressionfield = Repair Suppression Field ability.energyfield = Energy Field: [accent]{0}[] damage ~ [accent]{1}[] blocks / [accent]{2}[] targets bar.onlycoredeposit = Only Core Depositing Allowed @@ -989,10 +992,12 @@ bar.strength = [stat]{0}[lightgray]x strength units.processorcontrol = [lightgray]Processor Controlled bullet.damage = [stat]{0}[lightgray] damage -bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles +bullet.splashdamage = [stat]{0}[lightgray] area dmg ~ [stat]{1}[lightgray] tiles bullet.incendiary = [stat]incendiary bullet.homing = [stat]homing bullet.armorpierce = [stat]armor piercing +bullet.suppression = [stat]{0}[lightgray] seconds of repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x frag bullets: bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage bullet.buildingdamage = [stat]{0}%[lightgray] building damage @@ -1106,8 +1111,8 @@ setting.bridgeopacity.name = Bridge Opacity setting.playerchat.name = Display Player Bubble Chat setting.showweather.name = Show Weather Graphics setting.hidedisplays.name = Hide Logic Displays -public.confirm = Do you want to make your game public?\n[accent]Anyone will be able to join your games.\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility. -public.confirm.really = If you want to play with friends, use [green]Invite Friend[] instead of a [scarlet]Public server[]!\nAre you sure you want to make your game [scarlet]public[]? +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 = Note that beta versions of the game cannot make public lobbies. uiscale.reset = UI scale has been changed.\nPress "OK" to confirm this scale.\n[scarlet]Reverting and exiting in[accent] {0}[] seconds... uiscale.cancel = Cancel & Exit @@ -1234,6 +1239,7 @@ rules.buildcostmultiplier = Build Cost Multiplier rules.buildspeedmultiplier = Build Speed Multiplier rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier rules.waitForWaveToEnd = Waves Wait for Enemies +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Drop Zone Radius:[lightgray] (tiles) rules.unitammo = Units Require Ammo [red](may be removed) rules.enemyteam = Enemy Team @@ -1794,54 +1800,54 @@ hint.payloadDrop.mobile = [accent]Tap and hold[] an empty location to drop a pay hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatically put out nearby fires. hint.generator = \uF879 [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with \uF87F [accent]Power Nodes[]. hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or \uF835 [accent]Graphite[] \uF861Duo/\uF859Salvo ammunition to take Guardians down. -hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a \uf868 [accent]Foundation[] core over the \uf869 [accent]Shard[] core. Make sure it is free from nearby obstructions. +hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a \uF868 [accent]Foundation[] core over the \uF869 [accent]Shard[] core. Make sure it is free from nearby obstructions. hint.presetLaunch = Gray [accent]landing zone sectors[], such as [accent]Frozen Forest[], can be launched to from anywhere. They do not require capture of nearby territory.\n\n[accent]Numbered sectors[], such as this one, are [accent]optional[]. hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation. hint.coreIncinerate = After the core is filled to capacity with an item, any extra items of that type it receives will be [accent]incinerated[]. hint.factoryControl = To set a unit factory's [accent]output destination[], click a factory block while in command mode, then right-click a location.\nUnits produced by it will automatically move there. hint.factoryControl.mobile = To set a unit factory's [accent]output destination[], tap a factory block while in command mode, then tap a location.\nUnits produced by it will automatically move there. -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.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.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.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 \uf837 [accent]lead[], using conveyors. +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 \uF837 [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.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.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.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.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.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.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. 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) @@ -2233,6 +2239,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w 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. +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]Unit building logic is not allowed here. @@ -2367,7 +2374,7 @@ lenum.stop = Stop moving/mining/building. lenum.unbind = Completely disable logic control.\nResume standard AI. lenum.move = Move to exact position. lenum.approach = Approach a position with a radius. -lenum.pathfind = Pathfind to the enemy spawn. +lenum.pathfind = Pathfind to the specified position. lenum.target = Shoot a position. lenum.targetp = Shoot a target with velocity prediction. lenum.itemdrop = Drop an item. diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties index 4626e3520b..082a719f96 100644 --- a/core/assets/bundles/bundle_be.properties +++ b/core/assets/bundles/bundle_be.properties @@ -1,4 +1,4 @@ -credits.text = Стваральнiк [royal]Anuken[] — [sky]anukendev@gmail.com[]\n\nЁсць недапрацоўкі ў перакладзе або хочаце знайсці саюзнікаў для сумеснай гульні?\nПішыце ў аф. [accent]discord-сервер Mindustry[] у канал [accent]#translations[].\n\nРэдактар і перакладчык на беларускую мову:\n[cyan]K[gray]evi[cyan]TV[gray]#9923\nVit_log выправіў памылкі і дапоўніў пераклад. \n[orange]monodx#8667 [gray]дапрацаваў і паправіў памылкі ў перакладзе. +credits.text = Стваральнiк [royal]Anuken[] — [sky]anukendev@gmail.com[]\n\nЁсць недапрацоўкі ў перакладзе або хочаце знайсці саюзнікаў для сумеснай гульні?\nПішыце ў аф. [accent]discord-сервер Mindustry[] у канал [accent]#translations[].\n\nРэдактар і перакладчык на беларускую мову:\n[cyan]K[gray]evi[cyan]TV[gray]#9923\nVit_log выправіў памылкі і дапоўніў пераклад. \n[orange]monodx [gray]і Dima Pozniac дапрацавалі і паправілі памылкі ў перакладзе. credits = Аўтары contributors = Перакладчык discord = Далучайцеся да нашага Discord! @@ -6,7 +6,7 @@ link.discord.description = Афіцыйны Discord-сервер Mindustry link.reddit.description = Сабреддзіт Mindustry link.github.description = Зыходны код гульні link.changelog.description = Ліст змен -link.dev-builds.description = Нестабільныя разпрацоўваемые версіі +link.dev-builds.description = Нестабільныя версіі ў распрацоўцы link.trello.description = Афіцыйная дошка Trello для запланаваных функцый link.itch.io.description = Старонка itch.io з загрузкамi гульні link.google-play.description = Спампаваць для Android з Google Play @@ -88,7 +88,7 @@ stats.destroyed = Знішчана Будынкаў stats.deconstructed = Дэкнструявана Будынкаў stats.playtime = Час Гульні -globalitems = [accent]Усе Элементы +globalitems = [accent]Усе Прадметы map.delete = Вы сапраўды хочаце выдаліць карту «[accent]{0}[]»? level.highscore = Рэкорд: [accent]{0} level.select = Выбар карты @@ -367,7 +367,7 @@ waiting.players = Чаканне гульцоў… wave.enemies = Ворагаў: [lightgray]{0} wave.enemycores = [accent]{0}[lightgray] Варожых Ядзер wave.enemycore = [accent]{0}[lightgray] Варожае Ядро -wave.enemy = Засталося [lightgray]{0}[] ворагаў +wave.enemy = Застаўся [lightgray]{0}[] вораг wave.guardianwarn = Вартаўнік будзе пасля [accent]{0}[] хвалей. wave.guardianwarn.one = Вартаўнік будзе пасля [accent]{0}[] хвалі. loadimage = Загрузіць малюнак @@ -453,6 +453,8 @@ waves.sort.reverse = Рэверсіўнае Сартаванне waves.sort.begin = Пачатак waves.sort.health = Здароўе waves.sort.type = Тып +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Схаваць Усё waves.units.show = Паказаць Усё @@ -513,13 +515,13 @@ editor.exists = Карта з такой назвай ужо існуе. editor.selectmap = Абярыце карту для загрузкі: toolmode.replace = Замяніць -toolmode.replace.description = Малюе толькі \nна суных блоках. +toolmode.replace.description = Малюе толькі \nна суцэльных блоках. toolmode.replaceall = Замяніць усё toolmode.replaceall.description = Замяніць ўсе \nблокi на карце. toolmode.orthogonal = Артаганальная -toolmode.orthogonal.description = Малюе толькі \nартоганальныя лініі. +toolmode.orthogonal.description = Малюе толькі \nартаганальныя лініі. toolmode.square = Квадрат -toolmode.square.description = Квадратная пэндзаль. +toolmode.square.description = Квадратны пэндзлік. toolmode.eraseores = Сцерці руды toolmode.eraseores.description = Сцерці толькі руды. toolmode.fillteams = Змяніць каманду блокаў @@ -560,7 +562,7 @@ filter.option.amount = Колькасць filter.option.block = Блок filter.option.floor = Паверхня filter.option.flooronto = Мэтавая паверхню -filter.option.target = Мэта +filter.option.target = Цэль filter.option.replacement = Замена filter.option.wall = Сцяна filter.option.ore = Руда @@ -590,7 +592,7 @@ mapeditor = Рэдактар карт abandon = Пакінуць abandon.text = Гэтая зона і ўсе яе рэсурсы будуць аддадзены суперніку. -locked = Блякаваны +locked = Заблкаваны complete = [lightgray]Выканаць: requirement.wave = дасягнем {0} хвалі ў зоне {1} requirement.core = Знішчыце варожае ядро ​​ў зоне {0} @@ -600,14 +602,14 @@ requirement.capture = Захапіць {0} requirement.onplanet = Кантраляваць Сектар На {0} requirement.onsector = Прызямліцца На Сектар: {0} launch.text = Запуск -research.multiplayer = Толькі хасты могуць даследаваць элементы. +research.multiplayer = Толькі хасты могуць даследаваць прадметы. map.multiplayer = Толькі хасты могуць праглядаць сектары. uncover = Раскрыць configure = Канфігурацыя выгрузкі objective.research.name = Даследаваць objective.produce.name = Атрымаць -objective.item.name = Атрымаць Элемент -objective.coreitem.name = Элемент Ядра +objective.item.name = Атрымаць Прадмет +objective.coreitem.name = Прадмет Ядра objective.buildcount.name = Колькасць Будынкаў objective.unitcount.name = Колькасць Адзінкаў objective.destroyunits.name = Адзінкаў Знішчыць @@ -628,7 +630,7 @@ objective.produce = [accent]Атрымаць:\n[]{0}[lightgray]{1} objective.destroyblock = [accent]Знішчыць:\n[]{0}[lightgray]{1} objective.destroyblocks = [accent]Знішчыць: [lightgray]{0}[white]/{1}\n{2}[lightgray]{3} objective.item = [accent]Атрымаць: [][lightgray]{0}[]/{1}\n{2}[lightgray]{3} -objective.coreitem = [accent]Рухацца да Ядра:\n[][lightgray]{0}[]/{1}\n{2}[lightgray]{3} +objective.coreitem = [accent]Рухаць да Ядра:\n[][lightgray]{0}[]/{1}\n{2}[lightgray]{3} objective.build = [accent]Будаваць: [][lightgray]{0}[]x\n{1}[lightgray]{2} objective.buildunit = [accent]Будаваць Адзінку: [][lightgray]{0}[]x\n{1}[lightgray]{2} objective.destroyunits = [accent]Знішчыць: [][lightgray]{0}[]x Адзінкаў @@ -650,7 +652,7 @@ bannedunits.whitelist = Забароненыя Адзінкі Ў Белым Сп bannedblocks.whitelist = Забароненыя Блокі Ў Белым Спісе addall = Дадаць всё launch.from = Запуск Ад: [accent]{0} -launch.capacity = Ёмістасць Элементаў Да Запуску: [accent]{0} +launch.capacity = Ёмістасць Прадметаў Да Запуску: [accent]{0} launch.destination = Кропка Прызначэння: {0} configure.invalid = Колькасць павінна быць лікам паміж 0 і {0}. add = Дадаць... @@ -679,7 +681,7 @@ sectorlist.attacked = {0} пад атакай sectors.unexplored = [lightgray]Не Разведана sectors.resources = Рэсурсы: -sectors.production = Вытворяачць: +sectors.production = Вытворчасць: sectors.export = Экспартавана: sectors.import = Імпартавана: sectors.time = Час: @@ -692,8 +694,8 @@ sectors.select = Выбраць sectors.nonelaunch = [lightgray]нічога (sun) sectors.rename = Пераназваць Сектар sectors.enemybase = [scarlet]Варожая База -sectors.vulnerable = [scarlet]Vulnerable -sectors.underattack = [scarlet]Атакуецца! [accent]{0}% пашкоджаны +sectors.vulnerable = [scarlet]Уразлівы +sectors.underattack = [scarlet]Атакуецца! [accent]{0}% пашкоджанняў sectors.underattack.nodamage = [scarlet]Незахоплены sectors.survives = [accent]Перажыта {0} хваляў sectors.go = Зайсці @@ -709,10 +711,10 @@ sector.changeicon = Змяніць Іконку sector.noswitch.title = Немагчыма Пераключыцца на Сектар sector.noswitch = Вы не можаце пераключацца на сектары калі гэты сектар атакуецца.\n\nСектар: [accent]{0}[] у [accent]{1}[] sector.view = Праглядзець Сектар -threat.low = Нізка -threat.medium = Сярэдне -threat.high = Высока -threat.extreme = Экстрымальна +threat.low = Нізкая +threat.medium = Сярэдняя +threat.high = Высокая +threat.extreme = Экстрымальная threat.eradication = Вынішчэнне planets = Планеты @@ -739,13 +741,13 @@ sector.planetaryTerminal.name = Планетарны Пускавы Тэрмін sector.coastline.name = Берагавая Лінія sector.navalFortress.name = Марская Крэпасць -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. -sector.saltFlats.description = On the outskirts of the desert lie the Salt Flats. Few resources can be found in this location.\n\nThe enemy has erected a resource storage complex here. Eradicate their core. Leave nothing standing. -sector.craters.description = Water has accumulated in this crater, relic of the old wars. Reclaim the area. Collect sand. Smelt metaglass. Pump water to cool turrets and drills. -sector.ruinousShores.description = Past the wastes, is the shoreline. Once, this location housed a coastal defense array. Not much of it remains. Only the most basic defense structures have remained unscathed, everything else reduced to scrap.\nContinue the expansion outwards. Rediscover the technology. -sector.stainedMountains.description = Further inland lie the mountains, yet untainted by spores.\nExtract the abundant titanium in this area. Learn how to use it.\n\nThe enemy presence is greater here. Do not give them time to send their strongest units. -sector.overgrowth.description = This area is overgrown, closer to the source of the spores.\nThe enemy has established an outpost here. Build Titan units. Destroy it. Reclaim that which was lost. +sector.groundZero.description = Аптымальнае месца каб пачаць. Нізкая варожая пагроза. Мала рэсурсаў.\nВазімце як мага болей свінца і медзі.\nІ рухайцеся далей. +sector.frozenForest.description = Нават тут, бліжэй да гор, распаўсюдзіліся споры. Ледзяныя тэмпературы не могуць утрымліваць іх заўсёды.\n\nПачніце выкарыстоўваць энергію. Пабудуйце генератары на цвёрдым паліве. Даведайцеся як выкарыстоуваць рэгенератары. +sector.saltFlats.description = На ўскраінах пустыні ляжаць Саланчакі. Мала рэсурсаў знаходзіцца ў гэтым месцы.\n\nВораг стварыў тут комплекс захавання рэсурсаў. Знішчыце іх ядро. Нічога не застаўце на месцы. +sector.craters.description = Вада сабралася ў гэтым кратары, рэліквіі старых войн. Захапіце вобласць. Збярыце пясок. Выплаўце меташкло. Вадзяныя помпы каб ахладжваць турэлі буры. +sector.ruinousShores.description = Ператварыўшаяся ў мусар, берагавая лінія. Раней, гэта лакацыя была раёнам берагавой абароны. Мала што ад яе засталося. Толькі самыя простыя абарончыя структуры засталіся непашкоджанымі, усё яшчэ ператвораныя ў металалом.\nПрацягніце пашырэнне па-за гэты сектар. Адкрыйце нанава гэту тэхналогію. +sector.stainedMountains.description = Далей ідзе востраў на якім ляжаць горы, яшчэ не заплямлены спорамі.\nДабудзьце багата тытану ў гэтым сектары. Даведайцеся як выкарыстоуваць яго.\n\nВарожая прысутнасць тут мацней. Не дайце ім часу каб адправіць іх мацнейшыя адзінкі. +sector.overgrowth.description = Гэты сектар зарос, бліжэйшы да крыніцы спораў.\nВораг заснаваў тутThe enemy has established an outpost here. Build Titan units. Destroy it. Reclaim that which was lost. sector.tarFields.description = The outskirts of an oil production zone, between the mountains and desert. One of the few areas with usable tar reserves.\nAlthough abandoned, this area has some dangerous enemy forces nearby. Do not underestimate them.\n\n[lightgray]Research oil processing technology if possible. sector.desolateRift.description = An extremely dangerous zone. Plentiful resources, but little space. High risk of destruction. Leave as soon as possible. Do not be fooled by the long spacing between enemy attacks. sector.nuclearComplex.description = A former facility for the production and processing of thorium, reduced to ruins.\n[lightgray]Research the thorium and its many uses.\n\nThe enemy is present here in great numbers, constantly scouting for attackers. @@ -809,15 +811,15 @@ status.unmoving.name = Знерухомлены status.boss.name = Вартаўнік settings.language = Мова -settings.data = Гульнявыя дадзеныя -settings.reset = Скінуць па змаўчанні +settings.data = Гульнявыя Дадзеныя +settings.reset = Скінуць Налады Гуку settings.rebind = Змяніць settings.resetKey = Скінуць -settings.controls = Упраўленне +settings.controls = Кіраванне settings.game = Гульня settings.sound = Гук settings.graphics = Графіка -settings.cleardata = Ачысціць гульнявыя дадзеныя... +settings.cleardata = Ачысціць Гульнявыя Дадзеныя... settings.clear.confirm = Вы сапраўды хочаце ачысціць свае дадзеныя? \nГэта нельга адмяніць! settings.clearall.confirm = [scarlet] АСЦЯРОЖНА![] \nГэта сатрэ ўсе дадзеныя, уключаючы захавання, карты, прагрэс кампаніі і налады кіравання. \nПосле таго як Вы націснеце [accent] [ОК][], гульня знішчыць усе дадзеныя і аўтаматычна зачыніцца. settings.clearsaves.confirm = Вы сапраўды жадаеце ачысціць усе вашыя захаванні? @@ -875,6 +877,7 @@ stat.repairspeed = Хуткасць Рамонту stat.weapons = Зброя stat.bullet = Куля stat.moduletier = Модульны Ўзровень +stat.unittype = Тып Адзінкі stat.speedincrease = Павелічэнне хуткасці stat.range = Радыус дзеяння stat.drilltier = Бурць @@ -929,7 +932,7 @@ ability.movelightning = Рух Маланкі ability.shieldarc = Шчытавая Дуга ability.suppressionfield = Regen Suppression Field ability.energyfield = Энэргетычнае Поле: [accent]{0}[] пашкоджанні ~ [accent]{1}[] блокі / [accent]{2}[] целі -bar.onlycoredeposit = Даступна Толькі Паляпшэнне Ядра +bar.onlycoredeposit = Даступны Толькі Перанос Рэсурсаў У Ядро bar.drilltierreq = Патрабуецца свідар лепей bar.noresources = Не Хапае Рэсурсаў @@ -968,14 +971,16 @@ bullet.splashdamage = [stat] {0} [lightgray]страты ў радыусе ~ [st bullet.incendiary = [stat] запальны bullet.homing = [stat] саманаводных bullet.armorpierce = [stat]armor piercing +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x frag bullets: bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage bullet.buildingdamage = [stat]{0}%[lightgray] building damage bullet.knockback = [stat] {0} [lightgray]аддачы bullet.pierce = [stat]{0}[lightgray]x pierce bullet.infinitepierce = [stat]pierce -bullet.healpercent = [stat]{0}[lightgray]% healing -bullet.healamount = [stat]{0}[lightgray] direct repair +bullet.healpercent = [stat]{0}[lightgray]% рамонт +bullet.healamount = [stat]{0}[lightgray] напрамкавы рамонт bullet.multiplier = [stat]{0}[lightgray]x множнік боепрыпасаў bullet.reload = [stat]{0}[lightgray]x хуткасць стрэльбы bullet.range = [stat]{0}[lightgray] tiles range @@ -1053,7 +1058,7 @@ setting.saveinterval.name = Інтэрвал захавання setting.seconds = {0} секунд setting.milliseconds = {0} мілісекунд setting.fullscreen.name = Поўнаэкранны рэжым -setting.borderlesswindow.name = Безрамочное акно [lightgray] (можа спатрэбіцца перазапуск) +setting.borderlesswindow.name = Бязрамачнае акно [lightgray] (можа спатрэбіцца перазапуск) setting.borderlesswindow.name.windows = Бязрамачны Поўны Экран setting.borderlesswindow.description = Каб ужыць змены можа патрабавацца перазапуск. setting.fps.name = Паказваць FPS і пінг @@ -1062,7 +1067,7 @@ setting.smoothcamera.name = Павольная Камера setting.vsync.name = Вертыкальная сінхранізацыя setting.pixelate.name = Пікселізацыя setting.minimap.name = Адлюстроўваць міні-карту -setting.coreitems.name = Паказаць Элементы Ядра +setting.coreitems.name = Паказаць Прадметы Ядра setting.position.name = Адлюстроўваць каардынаты гульца setting.mouseposition.name = Паказаць Пазіцыю Мышы setting.musicvol.name = Гучнасць музыкі @@ -1081,13 +1086,13 @@ setting.bridgeopacity.name = Непразрыстасць мастоў setting.playerchat.name = Адлюстроўваць аблокі чата над гульцамі setting.showweather.name = Паказаць Анімацыю Надвор'я setting.hidedisplays.name = Схаваць Лагічныя Дысплэі -public.confirm = Вы хочаце, каб Ваша гульня стала публічнай? \n[accent] Любы гулец зможа далучыцца да Вашым гульняў. \n[lightgray] Пазней, гэта можна будзе змяніць у Налады-> гра-> Агульная даступнасць гульні. -public.confirm.really = Калі вы хаціце пагуляць з сябрамі, выкарыстоувайце [green]Запрасіць сяброў[] на [scarlet]Публічным серверы[]!\nАле калі вы хаціце зрабіць вашу гульню [scarlet]публічнай[]? +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 = Майце на ўвазе, што бэта-версія гульні не можа рабіць гульні публічнымі. uiscale.reset = Маштаб карыстацкага інтэрфейсу быў зменены. \nНацісніце «ОК» для пацвярджэння гэтага маштабу. \n[scarlet]Зварот налад і выхад праз [accent]{0}[] секунд ... uiscale.cancel = Адмяніць & Выйсці setting.bloom.name = Свячэнне -keybind.title = Налада кіравання +keybind.title = Кіраванне keybinds.mobile = [scarlet] Большасць камбінацый клавіш тут не працуюць на мабільных прыладах. Падтрымліваецца толькі базавы рух. category.general.name = Асноўнае category.view.name = Прагляд @@ -1104,65 +1109,65 @@ keybind.toggle_power_lines.name = Адлюстраванне лазераў эн keybind.toggle_block_status.name = Утрымаць Статус Блока keybind.move_x.name = Рух па восі X keybind.move_y.name = Рух па восі Y -keybind.mouse_move.name = наследуе курсорам +keybind.mouse_move.name = Следаваць За Еурсорам keybind.pan.name = Панарамны Прагляд keybind.boost.name = Узляцець keybind.command_mode.name = Рэжым Загадаў keybind.rebuild_select.name = Перабудаваць Рэгіён -keybind.schematic_select.name = Абраць вобласць -keybind.schematic_menu.name = Меню схем -keybind.schematic_flip_x.name = Адлюстраваць схему па восі X -keybind.schematic_flip_y.name = Адлюстраваць схему па восі Y -keybind.category_prev.name = Папярэдні катэгорыя -keybind.category_next.name = Наступная катэгорыя -keybind.block_select_left.name = Выбар левага блока -keybind.block_select_right.name = Выбар правага блока -keybind.block_select_up.name = Выбар верхняга блока -keybind.block_select_down.name = Выбар ніжняга блока -keybind.block_select_01.name = Катэгорыя/Выбар блока 1 -keybind.block_select_02.name = Катэгорыя/Выбар блока 2 -keybind.block_select_03.name = Катэгорыя/Выбар блока 3 -keybind.block_select_04.name = Катэгорыя/Выбар блока 4 -keybind.block_select_05.name = Катэгорыя/Выбар блока 5 -keybind.block_select_06.name = Катэгорыя/Выбар блока 6 -keybind.block_select_07.name = Катэгорыя/Выбар блока 7 -keybind.block_select_08.name = Катэгорыя/Выбар блока 8 -keybind.block_select_09.name = Катэгорыя/Выбар блока 9 -keybind.block_select_10.name = Катэгорыя/Выбар блока 10 -keybind.fullscreen.name = Пераключэнне поўнаэкраннага рэжыму +keybind.schematic_select.name = Абраць Вобласць +keybind.schematic_menu.name = Меню Схем +keybind.schematic_flip_x.name = Адлюстраваць Схему Па Восі X +keybind.schematic_flip_y.name = Адлюстраваць Схему Па Восі Y +keybind.category_prev.name = Папярэдняя Катэгорыя +keybind.category_next.name = Наступная Катэгорыя +keybind.block_select_left.name = Выбар Левага Блока +keybind.block_select_right.name = Выбар Правага Блока +keybind.block_select_up.name = Выбар Верхняга Блока +keybind.block_select_down.name = Выбар Ніжняга Блока +keybind.block_select_01.name = Катэгорыя/Выбар Блока 1 +keybind.block_select_02.name = Катэгорыя/Выбар Блока 2 +keybind.block_select_03.name = Катэгорыя/Выбар Блока 3 +keybind.block_select_04.name = Катэгорыя/Выбар Блока 4 +keybind.block_select_05.name = Катэгорыя/Выбар Блока 5 +keybind.block_select_06.name = Катэгорыя/Выбар Блока 6 +keybind.block_select_07.name = Катэгорыя/Выбар Блока 7 +keybind.block_select_08.name = Катэгорыя/Выбар Блока 8 +keybind.block_select_09.name = Катэгорыя/Выбар Блока 9 +keybind.block_select_10.name = Катэгорыя/Выбар Блока 10 +keybind.fullscreen.name = Поуны Экран keybind.select.name = Выбар/Стрэл -keybind.diagonal_placement.name = Дыяганальнае размяшчэнне -keybind.pick.name = Абраць блок -keybind.break_block.name = Разбурыць блок -keybind.select_all_units.name = Выбраць Усе Адзінкі +keybind.diagonal_placement.name = Дыяганальнае Размяшчэнне +keybind.pick.name = Абраць Блок +keybind.break_block.name = Разбурыць Блок +keybind.select_all_units.name = Выбраць Ўсе Адзінкі keybind.select_all_unit_factories.name = Выбраць Усе Адзінкавыя Заводы -keybind.deselect.name = Зняць вылучэнне +keybind.deselect.name = Зняць Вылучэнне keybind.pickupCargo.name = Узяць Груз keybind.dropCargo.name = Бросіць Груз keybind.shoot.name = Стрэл keybind.zoom.name = Маштабаванне keybind.menu.name = Меню keybind.pause.name = Паўза -keybind.pause_building.name = Прыпыніць/аднавіць будаўніцтва +keybind.pause_building.name = Прыпыніць/Аднавіць Будаўніцтва keybind.minimap.name = Міні-карта keybind.planet_map.name = Карта Планеты keybind.research.name = Даследаванні -keybind.block_info.name = Іныармацыя Пра Блок +keybind.block_info.name = Інфармацыя Пра Блок keybind.chat.name = Чат keybind.player_list.name = Спіс гульцоў keybind.console.name = Кансоль -keybind.rotate.name = Круціць -keybind.rotateplaced.name = Павярнуць існае (заціснуць) -keybind.toggle_menus.name = Пераключэнне меню +keybind.rotate.name = Паварочваць +keybind.rotateplaced.name = Павярнуць Існае (заціснуць) +keybind.toggle_menus.name = Пераключэнне Меню keybind.chat_history_prev.name = Папярэд. гісторыя чата keybind.chat_history_next.name = Наступ. гісторыя чата keybind.chat_scroll.name = Прагортка чата keybind.chat_mode.name = Змяніць Рэжым Чату keybind.drop_unit.name = Скінуць баёў. адз. -keybind.zoom_minimap.name = маштабаваць міні-карту +keybind.zoom_minimap.name = Маштабаваць міні-карту mode.help.title = Апісанне рэжымаў mode.survival.name = Выжыванне -mode.survival.description = Звычайны рэжым. Неабходна здабываць рэсурсы, а хвалі наступаюць аўтаматычна. \n[gray]Патрабуюцца пункту з’яўлення ворагаў на карце для гульні. +mode.survival.description = Звычайны рэжым. Неабходна здабываць рэсурсы, а хвалі наступаюць аўтаматычна. \n[gray]Патрабуецца пункт з’яўлення ворагаў на карце для гульні. mode.sandbox.name = Пясочніца mode.sandbox.description = Бясконцыя рэсурсы і няма таймера хваль. [gray]Можна самім выклікаць хвалю. mode.editor.name = Рэдактар @@ -1173,63 +1178,64 @@ mode.attack.description = Знішчыце варожую базу. \n[gray]Дл mode.custom = Карыстальніцкія правілы rules.infiniteresources = Бясконцыя рэсурсы (Гулец) -rules.onlydepositcore = Only Allow Core Depositing +rules.onlydepositcore = Дазволіць Толькі Дэплананне Ядра rules.reactorexplosions = Выбухі рэактараў -rules.coreincinerates = Core Incinerates Overflow -rules.disableworldprocessors = Disable World Processors -rules.schematic = Schematics Allowed +rules.coreincinerates = Ядро Спальвае Рэсурсы +rules.disableworldprocessors = Адключыць Працэсары Свету +rules.schematic = Схемы Дазволены rules.wavetimer = Інтэрвал хваляў -rules.wavesending = Wave Sending +rules.wavesending = Адпраўка Хваль rules.waves = Хвалі rules.attack = Рэжым атакі rules.rtsai = RTS AI -rules.rtsminsquadsize = Min Squad Size -rules.rtsmaxsquadsize = Max Squad Size -rules.rtsminattackweight = Min Attack Weight -rules.cleanupdeadteams = Clean Up Defeated Team Buildings (PvP) -rules.corecapture = Capture Core On Destruction -rules.polygoncoreprotection = Polygonal Core Protection -rules.placerangecheck = Placement Range Check +rules.rtsminsquadsize = Мінімальны Размер Атраду +rules.rtsmaxsquadsize = Максімальны Размер Атраду +rules.rtsminattackweight = Мінімальная Вага Атакі +rules.cleanupdeadteams = Ачысціць Будынкі Знішчанай Каманды (PvP) +rules.corecapture = Захапіь Ядро Пры ЗніCapture Core On Destruction +rules.polygoncoreprotection = Шматкутная Абарона Ядра +rules.placerangecheck = Праверка Вобласці Размяшчэння rules.enemyCheat = Бясконцыя рэсурсы ІІ (чырвоная каманда) rules.blockhealthmultiplier = Множнік здароўя блокаў -rules.blockdamagemultiplier = Block Damage Multiplier -rules.unitbuildspeedmultiplier = Множнік хуткасці вытворчасці баёў. адз. -rules.unitcostmultiplier = Unit Cost Multiplier -rules.unithealthmultiplier = Множнік здароўя баёў. адз. -rules.unitdamagemultiplier = Множнік страт баёў. адз. -rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier -rules.solarmultiplier = Solar Power Multiplier -rules.unitcapvariable = Cores Contribute To Unit Cap -rules.unitcap = Base Unit Cap -rules.limitarea = Limit Map Area +rules.blockdamagemultiplier = Множнік Пашкоджання Блокам +rules.unitbuildspeedmultiplier = Множнік хуткасці вытворчасці баяв. адз. +rules.unitcostmultiplier = Множыцель Кошту Адзінак +rules.unithealthmultiplier = Множнік здароўя баяв. адз. +rules.unitdamagemultiplier = Множнік страт баяв. адз. +rules.unitcrashdamagemultiplier = Множнік Падрыўнога Пашкоджання Юніта +rules.solarmultiplier = Множнік Сонечнай Энергіі +rules.unitcapvariable = Ядра Спрыяюць Колькасці Юнітаў +rules.unitcap = Асноўная Колькасць Юнітаў +rules.limitarea = Абмежаваць Вобласць Мапы rules.enemycorebuildradius = Радыус абароны варожае. ядраў: [lightgray] (блок.) rules.wavespacing = Інтэрвал хваль: [lightgray](сек) -rules.initialwavespacing = Initial Wave Spacing:[lightgray] (sec) +rules.initialwavespacing = Пачатковы Інтэрвал Хваль:[lightgray] (сек) rules.buildcostmultiplier = Множнік выдаткаў на будаўніцтва rules.buildspeedmultiplier = Множнік хуткасці будаўніцтва rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier rules.waitForWaveToEnd = Хвалі чакаюць ворагаў +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Радыус зоны высадкі ворагаў: [lightgray] (блокаў) -rules.unitammo = Units Require Ammo -rules.enemyteam = Enemy Team -rules.playerteam = Player Team +rules.unitammo = Адзінкі Патрабуюць Боезапас +rules.enemyteam = Варожая Каманда +rules.playerteam = Каманда Гульца rules.title.waves = Хвалі rules.title.resourcesbuilding = Рэсурсы & будаўніцтва rules.title.enemy = Ворагі -rules.title.unit = Баёў. адз. -rules.title.experimental = эксперыментальнай -rules.title.environment = Environment -rules.title.teams = Teams -rules.title.planet = Planet +rules.title.unit = Баяв. адз. +rules.title.experimental = Эксперыментальны +rules.title.environment = Асяродзе +rules.title.teams = Кманды +rules.title.planet = Планета rules.lighting = Асвятленне -rules.fog = Fog of War -rules.fire = Fire -rules.anyenv = -rules.explosions = Block/Unit Explosion Damage +rules.fog = Туман Вайны +rules.fire = Агонь +rules.anyenv = <Любы> +rules.explosions = Падрыўныя пашкоджанні Блока/Адзінкі rules.ambientlight = Навакольны свет rules.weather = Надвор'е rules.weather.frequency = Частата: -rules.weather.always = Always +rules.weather.always = Заўсёды rules.weather.duration = Працягласць: content.item.name = Рэчывы @@ -1238,8 +1244,8 @@ content.unit.name = Баявыя адзінкі content.block.name = Блокі content.status.name = Эфекты Стану content.sector.name = Сектары -content.team.name = Factions -wallore = (Wall) +content.team.name = Фракцыі +wallore = (Сцяна) item.copper.name = Медзь item.lead.name = Свінец @@ -1257,7 +1263,7 @@ item.blast-compound.name = Выбуховая сумесь item.pyratite.name = Піратыт item.metaglass.name = Металшкло item.scrap.name = Металалом -item.fissile-matter.name = Fissile Matter +item.fissile-matter.name = Расчапляльнае Рэчыва item.beryllium.name = Берылій item.tungsten.name = Вальфрам item.oxide.name = Аксід @@ -1267,12 +1273,12 @@ liquid.water.name = Вада liquid.slag.name = Шлак liquid.oil.name = Нафта liquid.cryofluid.name = Крыягенная вадкасць -liquid.neoplasm.name = Neoplasm -liquid.arkycite.name = Arkycite -liquid.gallium.name = Gallium +liquid.neoplasm.name = Наватвор +liquid.arkycite.name = Аркіцыт +liquid.gallium.name = Галій liquid.ozone.name = Азон -liquid.hydrogen.name = Hydrogen -liquid.nitrogen.name = Nitrogen +liquid.hydrogen.name = Вадарод +liquid.nitrogen.name = Азот liquid.cyanogen.name = Цыан unit.dagger.name = Кінжал @@ -1296,16 +1302,16 @@ unit.poly.name = Полі unit.mega.name = Мега unit.quad.name = Квад unit.oct.name = Окт -unit.risso.name = Ріссо +unit.risso.name = Рысо unit.minke.name = Мінкі unit.bryde.name = Брайд unit.sei.name = Сэй unit.omura.name = Амура -unit.retusa.name = Retusa -unit.oxynoe.name = Oxynoe -unit.cyerce.name = Cyerce -unit.aegires.name = Aegires -unit.navanax.name = Navanax +unit.retusa.name = Рэтуза +unit.oxynoe.name = Аксіной +unit.cyerce.name = Цыерц +unit.aegires.name = Эгір +unit.navanax.name = Наванакс unit.alpha.name = Альфа unit.beta.name = Бэта unit.gamma.name = Гамма @@ -1313,35 +1319,35 @@ unit.scepter.name = Скіпетр unit.reign.name = Улада unit.vela.name = Ветразь unit.corvus.name = Корвус -unit.stell.name = Stell -unit.locus.name = Locus -unit.precept.name = Precept -unit.vanquish.name = Vanquish -unit.conquer.name = Conquer +unit.stell.name = База +unit.locus.name = Ачаг +unit.precept.name = Прадпісанне +unit.vanquish.name = Пераможнік +unit.conquer.name = Заваёўвацель unit.merui.name = Меруй unit.cleroi.name = Клерой -unit.anthicus.name = Anthicus -unit.tecta.name = Tecta -unit.collaris.name = Collaris -unit.elude.name = Elude -unit.avert.name = Avert -unit.obviate.name = Obviate -unit.quell.name = Quell -unit.disrupt.name = Disrupt -unit.evoke.name = Evoke -unit.incite.name = Incite -unit.emanate.name = Emanate -unit.manifold.name = Manifold -unit.assembly-drone.name = Assembly Drone -unit.latum.name = Latum -unit.renale.name = Renale +unit.anthicus.name = Анцікус +unit.tecta.name = Тэкта +unit.collaris.name = Каларыс +unit.elude.name = Ухіленне +unit.avert.name = Захапленне +unit.obviate.name = Застрашванне +unit.quell.name = Куэлл +unit.disrupt.name = Парушэнне +unit.evoke.name = Выклік +unit.incite.name = Узбуджэнне +unit.emanate.name = Зыход +unit.manifold.name = Грузавы Дрон +unit.assembly-drone.name = Зборачны Дрон +unit.latum.name = Латум +unit.renale.name = Рэнал block.parallax.name = Парралакс block.cliff.name = Скала -block.sand-boulder.name = Пяшчаны валун -block.basalt-boulder.name = Basalt Boulder +block.sand-boulder.name = Пясчаны валун +block.basalt-boulder.name = Базальтны Валун block.grass.name = Трава block.molten-slag.name = Шлак -block.pooled-cryofluid.name = Cryofluid +block.pooled-cryofluid.name = Крыяген block.space.name = Прастора block.salt.name = Соль block.salt-wall.name = Саляная сцяна @@ -1350,14 +1356,14 @@ block.tendrils.name = Споравыя вусікі block.sand-wall.name = Пяшчаная сцяна block.spore-pine.name = Спорава хвоя block.spore-wall.name = Споравая сцяна -block.boulder.name = Boulder +block.boulder.name = Валун block.snow-boulder.name = Снежны валун block.snow-pine.name = Заснежаная хвоя block.shale.name = Сланец block.shale-boulder.name = Сланцавы валун block.moss.name = Мох block.shrubs.name = Кусты -block.spore-moss.name = Спорава мох +block.spore-moss.name = Споравы мох block.shale-wall.name = Сланцавая сцяна block.scrap-wall.name = Сцяна з металалому block.scrap-wall-large.name = Вялікая сцяна з металалому @@ -1375,39 +1381,39 @@ block.core-nucleus.name = Ядро: «Атам» block.deep-water.name = Глубокаводдзе block.shallow-water.name = Вада block.tainted-water.name = Забруджанная вада -block.deep-tainted-water.name = Deep Tainted Water -block.darksand-tainted-water.name = Тёмный пясок з забруджанай вадой +block.deep-tainted-water.name = Глыбокая забруджаная вада +block.darksand-tainted-water.name = Цёмны пясок з забруджанай вадой block.tar.name = Нафта block.stone.name = Камень block.sand-floor.name = Пясок block.darksand.name = Тёмны пясок block.ice.name = Лёд block.snow.name = Снег -block.crater-stone.name = Кратэры +block.crater-stone.name = Кратэр block.sand-water.name = Пясок з вадой -block.darksand-water.name = Тёмный пясок з вадой +block.darksand-water.name = Цёмны пясок з вадой block.char.name = Выпаленая зямля block.dacite.name = Дацыт -block.rhyolite.name = Rhyolite +block.rhyolite.name = Рыяліт block.dacite-wall.name = Дацытавая сцяна block.dacite-boulder.name = Дацытавы валун block.ice-snow.name = Заснежаны лёд block.stone-wall.name = Каменная сцяна block.ice-wall.name = Лядовая сцяна block.snow-wall.name = Снежная сцяна -block.dune-wall.name = Тёмнапясчаная сцяна +block.dune-wall.name = Цёмнапясчаная сцяна block.pine.name = Сасна block.dirt.name = Зямля block.dirt-wall.name = Брудная сцяна block.mud.name = Бруд block.white-tree-dead.name = Мёртвае белае дрэва block.white-tree.name = Белае дрэва -block.spore-cluster.name = Навала спрэчка +block.spore-cluster.name = Спаравая гронка block.metal-floor.name = Металічная падлога 1 block.metal-floor-2.name = Металічная падлога 2 block.metal-floor-3.name = Металічная падлога 3 -block.metal-floor-4.name = Metal Floor 4 -block.metal-floor-5.name = Металічная падлога 4 +block.metal-floor-4.name = Металічная падлога 4 +block.metal-floor-5.name = Металічная падлога 5 block.metal-floor-damaged.name = Пашкоджаная металічная падлога block.dark-panel-1.name = Цёмная панэль 1 block.dark-panel-2.name = Цёмная панэль 2 @@ -1416,7 +1422,7 @@ block.dark-panel-4.name = Цёмная панэль 4 block.dark-panel-5.name = Цёмная панэль 5 block.dark-panel-6.name = Цёмная панэль 6 block.dark-metal.name = Цёмны метал -block.basalt.name = Basalt +block.basalt.name = Базальт block.hotrock.name = Гарачы камень block.magmarock.name = Магмавы камень block.copper-wall.name = Медная сцяна @@ -1433,7 +1439,7 @@ block.door.name = Дзверы block.door-large.name = Вялікiя дзверы block.duo.name = Двайная турэль block.scorch.name = Абпальшчык -block.scatter.name = Рассейвальнік +block.scatter.name = льнік block.hail.name = Град block.lancer.name = Капейшчык block.conveyor.name = Канвеер @@ -1446,18 +1452,18 @@ block.distributor.name = Размеркавальнік block.sorter.name = Сартавальнік block.inverted-sorter.name = Інвертаваны сартавальнік block.message.name = Паведамленне -block.reinforced-message.name = Reinforced Message -block.world-message.name = World Message +block.reinforced-message.name = Узмоцненнае Паведамленне +block.world-message.name = Паведамленне Свету block.illuminator.name = Асвятляльнік block.overflow-gate.name = Залішнi затвор block.underflow-gate.name = Залішнi шлюз block.silicon-smelter.name = Крэмнявы плавільны завод block.phase-weaver.name = Фазавы ткач block.pulverizer.name = Здрабняльнік -block.cryofluid-mixer.name = Мешалка крыягеннай вадкасці +block.cryofluid-mixer.name = Змешвалка крыягеннай вадкасці block.melter.name = Плавільня -block.incinerator.name = Мусарасжыгатель -block.spore-press.name = Споравы прэс +block.incinerator.name = Мусараспальвальік +block.spore-press.name = Спаравы прэс block.separator.name = Адлучнік block.coal-centrifuge.name = Вугальная цэнтрыфуга block.power-node.name = Сілавы вузел @@ -1486,12 +1492,12 @@ block.power-source.name = Крыніца энергіі block.unloader.name = Разгрузчык block.vault.name = Сховішча block.wave.name = Хваля -block.tsunami.name = Tsunami +block.tsunami.name = Цунамі block.swarmer.name = Раявiк block.salvo.name = Залп block.ripple.name = Рабь block.phase-conveyor.name = Фазавы канвеер -block.bridge-conveyor.name = Маставой канвеер +block.bridge-conveyor.name = Маставы канвеер block.plastanium-compressor.name = Пластанавы кампрэсар block.pyratite-mixer.name = Мяшалка пiратыту block.blast-mixer.name = Мяшалка выбуховай сумесі @@ -1505,8 +1511,8 @@ block.plated-conduit.name = Умацаваны трубаправод block.phase-conduit.name = Фазавы трубаправод block.liquid-router.name = Вадкасны маршрутызатар block.liquid-tank.name = Вадкасны бак -block.liquid-container.name = Liquid Container -block.liquid-junction.name = Вадкасны перакрыжаванне +block.liquid-container.name = Вадкасны кантэйнер +block.liquid-junction.name = Вадкасны перакрыжавальнік block.bridge-conduit.name = Маставы трубаправод block.rotary-pump.name = Ротарны насос block.thorium-reactor.name = Торыявы рэактар @@ -1528,10 +1534,10 @@ block.arc.name = Дуга block.rtg-generator.name = Радыеізатопны тэрмаэлектрычны генератар block.spectre.name = Спектр block.meltdown.name = Іспепяліцель -block.foreshadow.name = Foreshadow +block.foreshadow.name = Прадвесце block.container.name = Кантэйнер block.launch-pad.name = Пускавая пляцоўка -block.segment.name = Segment +block.segment.name = Сегмент block.ground-factory.name = Завод наземных адзінак block.air-factory.name = Завод паветраных адзінак block.naval-factory.name = Завод марскіх адзінак @@ -1539,264 +1545,264 @@ block.additive-reconstructor.name = Злучальны рэканструкта block.multiplicative-reconstructor.name = Мультыплікацыйны рэканструктар block.exponential-reconstructor.name = Экспаненцыяльны рэканструктар block.tetrative-reconstructor.name = Тэтрацыйны рэканструктар -block.payload-conveyor.name = Канвеер для тяжёлай зброі -block.payload-router.name = Роутар для тяжёлай зброі -block.duct.name = Duct -block.duct-router.name = Duct Router -block.duct-bridge.name = Duct Bridge -block.large-payload-mass-driver.name = Large Payload Mass Driver -block.payload-void.name = Payload Void -block.payload-source.name = Payload Source +block.payload-conveyor.name = Грузавы Канвеер +block.payload-router.name = Грузавы Маршрутызатар +block.duct.name = Канал +block.duct-router.name = Канальны Маршрутызатар +block.duct-bridge.name = Канальны Мост +block.large-payload-mass-driver.name = Вялікі Грузавы Кіроўца Масс +block.payload-void.name = Выгрузачны Вакуум +block.payload-source.name = Выгрузачная Крыніца block.disassembler.name = Разборшчык block.silicon-crucible.name = Крэмніевы тыгель block.overdrive-dome.name = Сверхпрывадны купал -block.interplanetary-accelerator.name = Interplanetary Accelerator -block.constructor.name = Constructor -block.constructor.description = Fabricates structures up to 2x2 tiles in size. -block.large-constructor.name = Large Constructor -block.large-constructor.description = Fabricates structures up to 4x4 tiles in size. -block.deconstructor.name = Deconstructor -block.deconstructor.description = Deconstructs structures and units. Returns 100% of build cost. -block.payload-loader.name = Payload Loader -block.payload-loader.description = Load liquids and items into blocks. -block.payload-unloader.name = Payload Unloader -block.payload-unloader.description = Unloads liquids and items from blocks. -block.heat-source.name = Heat Source -block.heat-source.description = A 1x1 block that gives virtualy infinite heat. -block.empty.name = Empty -block.rhyolite-crater.name = Rhyolite Crater -block.rough-rhyolite.name = Rough Rhyolite -block.regolith.name = Regolith -block.yellow-stone.name = Yellow Stone -block.carbon-stone.name = Carbon Stone -block.ferric-stone.name = Ferric Stone -block.ferric-craters.name = Ferric Craters -block.beryllic-stone.name = Beryllic Stone -block.crystalline-stone.name = Crystalline Stone -block.crystal-floor.name = Crystal Floor -block.yellow-stone-plates.name = Yellow Stone Plates -block.red-stone.name = Red Stone -block.dense-red-stone.name = Dense Red Stone -block.red-ice.name = Red Ice -block.arkycite-floor.name = Arkycite Floor -block.arkyic-stone.name = Arkyic Stone -block.rhyolite-vent.name = Rhyolite Vent -block.carbon-vent.name = Carbon Vent -block.arkyic-vent.name = Arkyic Vent -block.yellow-stone-vent.name = Yellow Stone Vent -block.red-stone-vent.name = Red Stone Vent -block.crystalline-vent.name = Crystalline Vent -block.redmat.name = Redmat -block.bluemat.name = Bluemat -block.core-zone.name = Core Zone -block.regolith-wall.name = Regolith Wall -block.yellow-stone-wall.name = Yellow Stone Wall -block.rhyolite-wall.name = Rhyolite Wall -block.carbon-wall.name = Carbon Wall -block.ferric-stone-wall.name = Ferric Stone Wall -block.beryllic-stone-wall.name = Beryllic Stone Wall -block.arkyic-wall.name = Arkyic Wall -block.crystalline-stone-wall.name = Crystalline Stone Wall -block.red-ice-wall.name = Red Ice Wall -block.red-stone-wall.name = Red Stone Wall -block.red-diamond-wall.name = Red Diamond Wall -block.redweed.name = Redweed -block.pur-bush.name = Pur Bush -block.yellowcoral.name = Yellowcoral -block.carbon-boulder.name = Carbon Boulder -block.ferric-boulder.name = Ferric Boulder -block.beryllic-boulder.name = Beryllic Boulder -block.yellow-stone-boulder.name = Yellow Stone Boulder -block.arkyic-boulder.name = Arkyic Boulder -block.crystal-cluster.name = Crystal Cluster -block.vibrant-crystal-cluster.name = Vibrant Crystal Cluster -block.crystal-blocks.name = Crystal Blocks -block.crystal-orbs.name = Crystal Orbs +block.interplanetary-accelerator.name = Міжпланетны Паскаральнік +block.constructor.name = Канструктар +block.constructor.description = Стварае збудаванні да 2x2 плітак размерам. +block.large-constructor.name = Вялікі Канструктар +block.large-constructor.description = Стварае збудаванні да 4x4 плітак размерам. +block.deconstructor.name = Дэканструктар +block.deconstructor.description = Дэканструюе збудаванні і адзінкі. Вяртае 100% ад кошту збокрі. +block.payload-loader.name = Загрузчык +block.payload-loader.description = Загружае вадкасці і прадметы ў блокі. +block.payload-unloader.name = Выгрузчык +block.payload-unloader.description = Выгружае вадкасці і прадметы з блокаў. +block.heat-source.name = Крыніца Цяпла +block.heat-source.description = Блок 1x1 які дае віртуальнае бясконцае цяпло. +block.empty.name = Пусты +block.rhyolite-crater.name = Рыялітавы Кратар +block.rough-rhyolite.name = Грубы Рыяліт +block.regolith.name = Рэгаліт +block.yellow-stone.name = Жоўты Камень +block.carbon-stone.name = Вугляродны Камень +block.ferric-stone.name = Жалезны Камень +block.ferric-craters.name = Жалезныя Кратары +block.beryllic-stone.name = Берыліевы Камень +block.crystalline-stone.name = Крыштальны Камень +block.crystal-floor.name = Крыштальнае Пакрыццё +block.yellow-stone-plates.name = Жоўтыя Камменныя Пласціны +block.red-stone.name = Чырвоны Камень +block.dense-red-stone.name = Шчыльны Красны Камень +block.red-ice.name = Чырвоны Лёд +block.arkycite-floor.name = Аркіцытнае Пакрыццё +block.arkyic-stone.name = Аркіцытны Камень +block.rhyolite-vent.name = Рыялітавы Гейзер +block.carbon-vent.name = Вугляродны Гейзер +block.arkyic-vent.name = Аркіцытны Гейзер +block.yellow-stone-vent.name = Жоутакаменны Гейзер +block.red-stone-vent.name = Чырвонакаменны Гейзер +block.crystalline-vent.name = Крыштальны Гейзер +block.redmat.name = Красная Глеба +block.bluemat.name = Сіняя Глеба +block.core-zone.name = Зона Ядра +block.regolith-wall.name = Сцяна З Рэгіяліту +block.yellow-stone-wall.name = Сцяна З Жоўтага Камню +block.rhyolite-wall.name = Сцяна З Рыяліту +block.carbon-wall.name = Сцяна З Вугляроду +block.ferric-stone-wall.name = Сцяна З Жалезнага Камню +block.beryllic-stone-wall.name = Сцяна З Берыліевага Камню +block.arkyic-wall.name = Сцяна З Аркіцыту +block.crystalline-stone-wall.name = Сцяна З Крыштальнага Камню +block.red-ice-wall.name = Сцяна З Чырвонага Ільду +block.red-stone-wall.name = Сцяна З Чырвонага Камня +block.red-diamond-wall.name = Сцяна З Краснага Крысталу +block.redweed.name = Краснацвет +block.pur-bush.name = Фіялетавы Куст +block.yellowcoral.name = Жоуты Карал +block.carbon-boulder.name = Вугляродны Валун +block.ferric-boulder.name = Жалезны Валун +block.beryllic-boulder.name = Берыліявы Валун +block.yellow-stone-boulder.name = Валун З Жоўтага Камню +block.arkyic-boulder.name = Аркіцытны Валун +block.crystal-cluster.name = Крыстальны Кластар +block.vibrant-crystal-cluster.name = Яркі Крыстальны Кластар +block.crystal-blocks.name = Крыстальныя Блокі +block.crystal-orbs.name = Крыстальныя Шары block.crystalline-boulder.name = Crystalline Boulder -block.red-ice-boulder.name = Red Ice Boulder -block.rhyolite-boulder.name = Rhyolite Boulder -block.red-stone-boulder.name = Red Stone Boulder -block.graphitic-wall.name = Graphitic Wall -block.silicon-arc-furnace.name = Silicon Arc Furnace -block.electrolyzer.name = Electrolyzer -block.atmospheric-concentrator.name = Atmospheric Concentrator -block.oxidation-chamber.name = Oxidation Chamber -block.electric-heater.name = Electric Heater -block.slag-heater.name = Slag Heater -block.phase-heater.name = Phase Heater -block.heat-redirector.name = Heat Redirector -block.heat-router.name = Heat Router -block.slag-incinerator.name = Slag Incinerator -block.carbide-crucible.name = Carbide Crucible -block.slag-centrifuge.name = Slag Centrifuge -block.surge-crucible.name = Surge Crucible -block.cyanogen-synthesizer.name = Cyanogen Synthesizer -block.phase-synthesizer.name = Phase Synthesizer -block.heat-reactor.name = Heat Reactor -block.beryllium-wall.name = Beryllium Wall -block.beryllium-wall-large.name = Large Beryllium Wall -block.tungsten-wall.name = Tungsten Wall -block.tungsten-wall-large.name = Large Tungsten Wall -block.blast-door.name = Blast Door -block.carbide-wall.name = Carbide Wall -block.carbide-wall-large.name = Large Carbide Wall -block.reinforced-surge-wall.name = Reinforced Surge Wall -block.reinforced-surge-wall-large.name = Large Reinforced Surge Wall -block.shielded-wall.name = Shielded Wall -block.radar.name = Radar -block.build-tower.name = Build Tower -block.regen-projector.name = Regen Projector -block.shockwave-tower.name = Shockwave Tower -block.shield-projector.name = Shield Projector -block.large-shield-projector.name = Large Shield Projector -block.armored-duct.name = Armored Duct -block.overflow-duct.name = Overflow Duct -block.underflow-duct.name = Underflow Duct -block.duct-unloader.name = Duct Unloader -block.surge-conveyor.name = Surge Conveyor -block.surge-router.name = Surge Router -block.unit-cargo-loader.name = Unit Cargo Loader -block.unit-cargo-unload-point.name = Unit Cargo Unload Point -block.reinforced-pump.name = Reinforced Pump -block.reinforced-conduit.name = Reinforced Conduit -block.reinforced-liquid-junction.name = Reinforced Liquid Junction -block.reinforced-bridge-conduit.name = Reinforced Bridge Conduit -block.reinforced-liquid-router.name = Reinforced Liquid Router -block.reinforced-liquid-container.name = Reinforced Liquid Container -block.reinforced-liquid-tank.name = Reinforced Liquid Tank -block.beam-node.name = Beam Node -block.beam-tower.name = Beam Tower -block.beam-link.name = Beam Link -block.turbine-condenser.name = Turbine Condenser -block.chemical-combustion-chamber.name = Chemical Combustion Chamber -block.pyrolysis-generator.name = Pyrolysis Generator -block.vent-condenser.name = Vent Condenser -block.cliff-crusher.name = Cliff Crusher -block.plasma-bore.name = Plasma Bore -block.large-plasma-bore.name = Large Plasma Bore -block.impact-drill.name = Impact Drill -block.eruption-drill.name = Eruption Drill -block.core-bastion.name = Core Bastion -block.core-citadel.name = Core Citadel -block.core-acropolis.name = Core Acropolis -block.reinforced-container.name = Reinforced Container -block.reinforced-vault.name = Reinforced Vault -block.breach.name = Breach -block.sublimate.name = Sublimate -block.titan.name = Titan -block.disperse.name = Disperse -block.afflict.name = Afflict -block.lustre.name = Lustre -block.scathe.name = Scathe -block.fabricator.name = Fabricator -block.tank-refabricator.name = Tank Refabricator -block.mech-refabricator.name = Mech Refabricator -block.ship-refabricator.name = Ship Refabricator -block.tank-assembler.name = Tank Assembler -block.ship-assembler.name = Ship Assembler -block.mech-assembler.name = Mech Assembler -block.reinforced-payload-conveyor.name = Reinforced Payload Conveyor -block.reinforced-payload-router.name = Reinforced Payload Router -block.payload-mass-driver.name = Payload Mass Driver -block.small-deconstructor.name = Small Deconstructor -block.canvas.name = Canvas -block.world-processor.name = World Processor -block.world-cell.name = World Cell -block.tank-fabricator.name = Tank Fabricator -block.mech-fabricator.name = Mech Fabricator -block.ship-fabricator.name = Ship Fabricator -block.prime-refabricator.name = Prime Refabricator -block.unit-repair-tower.name = Unit Repair Tower -block.diffuse.name = Diffuse -block.basic-assembler-module.name = Basic Assembler Module -block.smite.name = Smite -block.malign.name = Malign -block.flux-reactor.name = Flux Reactor -block.neoplasia-reactor.name = Neoplasia Reactor +block.red-ice-boulder.name = Валун З Чырвонага Ільда +block.rhyolite-boulder.name = Рыялітны Валун +block.red-stone-boulder.name = Валун З Чырвонага Камня +block.graphitic-wall.name = Графітная Сцяна +block.silicon-arc-furnace.name = Крэмневая Дугавая Печ +block.electrolyzer.name = Электралізэр +block.atmospheric-concentrator.name = Атмасферны Канцэнтратар +block.oxidation-chamber.name = Камера Аксідацыі +block.electric-heater.name = Электрычны Награвацель +block.slag-heater.name = Шлакавы Награвацель +block.phase-heater.name = Фазавы Награвацель +block.heat-redirector.name = Перанакіроўшчык Цяпла +block.heat-router.name = Маршрутызатар Цяпла +block.slag-incinerator.name = Шлакавы Спальвальнік +block.carbide-crucible.name = Карбідны Тыгель +block.slag-centrifuge.name = Шлакавая Цэнтрыфуга +block.surge-crucible.name = Імпульсны Тыгель +block.cyanogen-synthesizer.name = Cінтэзатар Цыана +block.phase-synthesizer.name = Сінтэзатар Фазы +block.heat-reactor.name = Цеплавы Рэактар +block.beryllium-wall.name = Берыліевая Сцяна +block.beryllium-wall-large.name = Вялікая Берыліевая Сцяна +block.tungsten-wall.name = Вальфрамавая Сцяна +block.tungsten-wall-large.name = Вялікая Вальфрамавая Сцяна +block.blast-door.name = Імпульсная Дзвер +block.carbide-wall.name = Карбідная Сцяна +block.carbide-wall-large.name = Вялікая Карбідная Сцяна +block.reinforced-surge-wall.name = Узмоцненная Імпульсная Сцяна +block.reinforced-surge-wall-large.name = Вялікая Узмоцненная Імпульсная Сцяна +block.shielded-wall.name = Экранаваная Сцяна +block.radar.name = Радар +block.build-tower.name = Будуючая Башня +block.regen-projector.name = Рэгенеруючы Праектар +block.shockwave-tower.name = Ударнаваўнавая Башня +block.shield-projector.name = Шчытавы Праектар +block.large-shield-projector.name = Вялікі Шчвтавы Праектар +block.armored-duct.name = Браніраваны Канал +block.overflow-duct.name = Злішні Канал +block.underflow-duct.name = Злішні Шлюзавы Канал +block.duct-unloader.name = Канальны Разгрузчык +block.surge-conveyor.name = Імпульсны Канвеер +block.surge-router.name = Імпульсны Маршрутызатар +block.unit-cargo-loader.name = Загрузчык Грузавых Адзінкаў +block.unit-cargo-unload-point.name = Пункт Разгрузчыку Грузавых Адзінкаў +block.reinforced-pump.name = Узмоцненая Помпа +block.reinforced-conduit.name = Узмоцнены Трубаправод +block.reinforced-liquid-junction.name = Узмоцненае Вадкаснае Злучэнне +block.reinforced-bridge-conduit.name = Узмоцнены Маставы Трубаправод +block.reinforced-liquid-router.name = Узмоцнены Вадкасны Маршрутызатар +block.reinforced-liquid-container.name = Узмоцнены Вадкасны Кантэйнер +block.reinforced-liquid-tank.name = Узмоцнены Вадкасны Бак +block.beam-node.name = Прамянёвы Вузел +block.beam-tower.name = Прамянёвая Башня +block.beam-link.name = Прамянёвае Злучэнне +block.turbine-condenser.name = Кандэнсатар Турбіны +block.chemical-combustion-chamber.name = Хімічная Камера Згарання +block.pyrolysis-generator.name = Генератар Піролізу +block.vent-condenser.name = Вентыляцыйны Кандэнсатар +block.cliff-crusher.name = Здрабняльнік Скал +block.plasma-bore.name = Плазменны Бур +block.large-plasma-bore.name = Вялікі Плазменны Бур +block.impact-drill.name = Ударная Буравая Усталёўка +block.eruption-drill.name = Вывяргаючая Буравая Усталёўка +block.core-bastion.name = Ядро Бастыён +block.core-citadel.name = Ядро Цытадэль +block.core-acropolis.name = Ядро Акропаль +block.reinforced-container.name = Узмоцнены Кантэйнер +block.reinforced-vault.name = Узмоцнены Склеп +block.breach.name = Парушэнне +block.sublimate.name = Узвышэнне +block.titan.name = Тытан +block.disperse.name = Разыход +block.afflict.name = Пакута +block.lustre.name = Блеск +block.scathe.name = Паражэнне +block.fabricator.name = Фабрыкатар +block.tank-refabricator.name = Рэфабрыкатар Танкаў +block.mech-refabricator.name = Рэфабрыкатар Мяхоў +block.ship-refabricator.name = Рэфабрыкатар Суднаў +block.tank-assembler.name = Зборшчык Танкаў +block.ship-assembler.name = Зборшчык Суднаў +block.mech-assembler.name = Зборшчык Мяхоў +block.reinforced-payload-conveyor.name = Узмоцнены Выгрузачны Кантэйнер +block.reinforced-payload-router.name = Узмоцнены Выгрузачны Кантэйнер +block.payload-mass-driver.name = Выгрузачны Кіроўца Масс +block.small-deconstructor.name = Маленькі Дэканструктар +block.canvas.name = Палатно +block.world-processor.name = Працэсар Свету +block.world-cell.name = Клетка Свету +block.tank-fabricator.name = Фабрыкатар Танкаў +block.mech-fabricator.name = Фабрыкатар Мяхоў +block.ship-fabricator.name = Фабрыкатар Суднаў +block.prime-refabricator.name = Галоўны Рэфабрыкатар +block.unit-repair-tower.name = Башня Рамонту Адзінак +block.diffuse.name = Дзіфуз +block.basic-assembler-module.name = Асноўны Сборачны Модуль +block.smite.name = Кара +block.malign.name = Злоба +block.flux-reactor.name = Патокавы Рэактар +block.neoplasia-reactor.name = Наватворны Рэактар block.switch.name = Пераключальнік -block.micro-processor.name = Мікропрацэсар -block.logic-processor.name = Працэсар логікі +block.micro-processor.name = Мікрапрацэсар +block.logic-processor.name = Працэсар Логікі block.hyper-processor.name = Гіперпрацэсар block.logic-display.name = Экран -block.large-logic-display.name = Вялікі экран -block.memory-cell.name = Ячэйка памяці -block.memory-bank.name = Банк памяці -team.malis.name = Malis -team.crux.name = Чырвоная +block.large-logic-display.name = Вялікі Экран +block.memory-cell.name = Ячэйка Памяці +block.memory-bank.name = Блок Памяці +team.malis.name = Маліс +team.crux.name = Сутнасць team.sharded.name = Аскепакавая -team.derelict.name = Пакінутая -team.green.name = Зелёная - +team.derelict.name = Пакінутыя +team.green.name = Зелёныя team.blue.name = Сіняя + hint.skip = Прапусціць hint.desktopMove = Выкарыстоўвайце [accent][[WASD][] каб рухацца. -hint.zoom = [accent]Scroll[] каб прыблізіць і аддаліць камеру. -hint.desktopShoot = [accent][[Left-click][] каб страляць. -hint.depositItems = To transfer items, drag from your ship to the core. +hint.zoom = [accent]Пракручваць[] каб прыблізіць і аддаліць камеру. +hint.desktopShoot = [accent][[Левы-пстрык][] каб страляць. +hint.depositItems = Каб перанесці прадметы, перанясіце іх са свайго карабля на ядро. hint.respawn = Каб аднавіць карабель, націсніце [accent][[V][]. -hint.respawn.mobile = You have switched control to a unit/structure. To respawn as a ship, [accent]tap the avatar in the top left.[] -hint.desktopPause = Press [accent][[Space][] to pause and unpause the game. -hint.breaking = [accent]Right-click[] and drag to break blocks. -hint.breaking.mobile = Activate the \ue817 [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection. -hint.blockInfo = View information of a block by selecting it in the [accent]build menu[], then selecting the [accent][[?][] button at the right. -hint.derelict = [accent]Derelict[] structures are broken remnants of old bases that no longer function.\n\nThese structures can be [accent]deconstructed[] for resources. -hint.research = Use the \ue875 [accent]Research[] button to research new technology. -hint.research.mobile = Use the \ue875 [accent]Research[] button in the \ue88c [accent]Menu[] to research new technology. -hint.unitControl = Hold [accent][[L-ctrl][] and [accent]click[] to control friendly units or turrets. -hint.unitControl.mobile = [accent][[Double-tap][] to control friendly units or turrets. -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 = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the bottom right. -hint.launch.mobile = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the \ue88c [accent]Menu[]. -hint.schematicSelect = Hold [accent][[F][] and drag to select blocks to copy and paste.\n\n[accent][[Middle Click][] to copy a single block type. -hint.rebuildSelect = Hold [accent][[B][] and drag to select destroyed block plans.\nThis will rebuild them automatically. -hint.conveyorPathfind = Hold [accent][[L-Ctrl][] while dragging conveyors to automatically generate a path. -hint.conveyorPathfind.mobile = Enable \ue844 [accent]diagonal mode[] and drag conveyors to automatically generate a path. -hint.boost = Hold [accent][[L-Shift][] to fly over obstacles with your current unit.\n\nOnly a few ground units have boosters. -hint.payloadPickup = Press [accent][[[] to pick up small blocks or units. -hint.payloadPickup.mobile = [accent]Tap and hold[] a small block or unit to pick it up. -hint.payloadDrop = Press [accent]][] to drop a payload. -hint.payloadDrop.mobile = [accent]Tap and hold[] an empty location to drop a payload there. -hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatically put out nearby fires. -hint.generator = \uf879 [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with \uf87f [accent]Power Nodes[]. -hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or \uf835 [accent]Graphite[] \uf861Duo/\uf859Salvo ammunition to take Guardians down. -hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a \uf868 [accent]Foundation[] core over the \uf869 [accent]Shard[] core. Make sure it is free from nearby obstructions. -hint.presetLaunch = Gray [accent]landing zone sectors[], such as [accent]Frozen Forest[], can be launched to from anywhere. They do not require capture of nearby territory.\n\n[accent]Numbered sectors[], such as this one, are [accent]optional[]. -hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation. -hint.coreIncinerate = After the core is filled to capacity with an item, any extra items of that type it receives will be [accent]incinerated[]. -hint.factoryControl = To set a unit factory's [accent]output destination[], click a factory block while in command mode, then right-click a location.\nUnits produced by it will automatically move there. -hint.factoryControl.mobile = To set a unit factory's [accent]output destination[], tap a factory block while in command mode, then tap a location.\nUnits produced by it will automatically move there. +hint.respawn.mobile = Вы змянілі кантроль на адзінку/структуру. Каб аднавіць карабель, [accent]націсніце на іконку адзінкі зверху злева.[] +hint.desktopPause = Націсніце [accent][[Space][] каб прыпыніць і аднавіць гульню. +hint.breaking = [accent]Правы-пстрык[] і утрымаць как разбурыць блокі. +hint.breaking.mobile = Актывуйце \ue817 [accent]малаток[] унізе справа і націсніце, каб разабраць блок.\n\nУтрымайце палец адну секунду і правядзіце как вызначыць вобласць якую жадаеце разабраць. +hint.blockInfo = Праглядзець інфармацыю пра блок выбіраючы яго ў [accent]меню будаўніцтва[], пасля выберыце [accent][[?][] кнопку справа. +hint.derelict = [accent]Пакінутыя[] структуры гэта разрбураныя часткі старой базы якія больш не функцыянуюць.\n\nГэтыя структуры могуць быць [accent]разабраны[] на рэсурсы. +hint.research = Выкарыстоўвайце кнопку \ue875 [accent]Даследаванні[] каб даследаваць новую тэхналогію. +hint.research.mobile = Выкарыстоўвайце кнопку \ue875 [accent]Даследаванні[] ў \ue88c [accent]Меню[] каб даследаваць новую тэхналогію. +hint.unitControl = Зажміце [accent][[Левы-ctrl][] і [accent]пстрык[] каб кантраляваць дружалюбнай адзінкай або турэляй. +hint.unitControl.mobile = [accent][[Двайны-націск][] каб кантраляваць дружалюбнай адзінкай або турэляй. +hint.unitSelectControl = Каб кіраваць адінкамі, адкройце [accent]рэжым загадаў[] утрымлівая [accent]Левы-shift.[]\nУ рэжыме загадаў, націсніце і утрымайце каб выбраць адзінкі. [accent]Правы-пстрык[] на а'бект каб задаць мэту або шлях. +hint.unitSelectControl.mobile = Каб кантраляваць адінкамі, адкройце [accent]рэжым загадаў[] націскаючы кнопку [accent]загадваць[] у унізе злева.\nУ рэжыме загадаў, утрымайце і правядзіце каб выбраць адзінкі. Націсніце на а'бект каб задаць мэту або шлях. +hint.launch = Калі рэсурсы сабраны, вы можаце [accent]Запусціць[] выбіраючы сектара якія знаходзяцца побач на \ue827 [accent]Карце[] унізе справа. +hint.launch.mobile = Калі рэсурсы сабраны, вы можаце [accentЗапусціць[] выбіраючы сектара якія знаходзяцца побач на \ue827 [accent]Карце[] ў \ue88c [accent]Меню[]. +hint.schematicSelect = Утрымайце [accent][[F][] і працягніце каб выбраць блокі для капіявання і ўстаўкі.\n\n[accent][[Сярэдні Пстрык][] каб скапіяваць толькі адзін тып блоку. +hint.rebuildSelect = Утрымайце [accent][[B][] і працягніце каб выбраць блокі для разбудавання.\nГэта перабудуе іх аўтаматычна. +hint.conveyorPathfind = Утрымайце [accent][[Левы Ctrl][] калі правозіце канвееры каб аутаматычна згенераваць шлях. +hint.conveyorPathfind.mobile = Уключыце \ue844 [accent]дыяганальны рэжым[] і утрымлівайце і размяшчайце канвееры па аўтаматычна згенераванаму шляху. +hint.boost = Утрымайце [accent][[Левы Shift][] каб ляцець праз перашкоды з вашай выбранай адзінкай.\n\nТолькі некаторыя наземныя адзінкі могуць узлятаць. +hint.payloadPickup = Націсніце каб [accent][[[] каб узяць малнькія блокі або адзінкі. +hint.payloadPickup.mobile = [accent]Націсніце і утрымайце[] маленькі блок або адзінку каб узяць гэта. +hint.payloadDrop = Націсніце [accent]][] каб збросіць груз. +hint.payloadDrop.mobile = [accent]Націсніце і ўтрымайце[] пустое месца каб збросіць груз тут. +hint.waveFire = Турэлі [accent]Хваля[] заражаныя вадой будуць тушыць полымя побач. +hint.generator = \uf879 [accent]Генератары Згарання[] падпальваюць вугаль і перанакіраванне энергію суседнім блокам.\n\nРадыюс перадачы энергіі можа быць пашыраны з дапамогай \uf87f [accent]Энергетычных Вузлоў[]. +hint.guardian = Адзінкі [accent]Вартаўнік[] браніраваныя. Слабыя патроны такія як [accent]Медзь[] і [accent]Свінец[] [scarlet]не эфетўныя[].\n\nВыкарыстоўвайце больш моцныя турэлі або \uf835 [accent]Графіт[] у \uf861Двайных Турэлях/\uf859Залпах каб знішчыць Вартаўніка. +hint.coreUpgrade = Ядра могуць быць палепшаны [accent]размяшчэннем больш моцных паверх другіх[].\n\nРазмясціце ядро \uf868 [accent]Штаб[] паверх ядра \uf869 [accent]Аскепак[]. Пераканайцеся, што гэта свабодна ад канструкцый побач. +hint.presetLaunch = Серыя [accent]сектара зоны пасадкі[], такія як [accent]Ледзяны Лес[], можна запусціць з любога месца. Яны не патрабуюць захапляць тэрыторыі побач.\n\n[accent]Пранумараваныя сектары[], такія як гэты, [accent]неабавязковыя[]. +hint.presetDifficulty = На гэтым сектары [scarlet]вялікі узровень впрожай пагрозы[].\nЗапуск на такія сектары [accent]не рэкамендуецца[] без належнай тэхналогіі і падрыхтоўкі. +hint.coreIncinerate = Пасля таго як ёмістасць ядра запоўніцца прадметам, any extra items of that type it receives will be [accent]incinerated[]. +hint.factoryControl = Каб усталяваць фабрыке адзінак [accent]шлях[], націсніце на блок фабрыку ў рэжыме камандавання, пасля нажміце на месца правай кнопкайэ мышкі.\nСтвораныя адзінкі будуць аўтаматычна рухацца сюды. +hint.factoryControl.mobile = Каб усталяваць фабрыке адзінак [accent]шлях[], націсніце на блок фабрыку ў рэжыме камандавання, пасля націсніце на месца.\nСтвораныя адзінкі будуць аўтаматычна рухацца сюды. gz.mine = Рухайцеся да \uf8c4 [accent]меднай руды[] на зямлі і націсніце на яе каб пачаць дабываць. gz.mine.mobile = Рухайцеся да \uf8c4 [accent]меднай руды[] на зямлі і дакраніцеся да яе каб пачаць дабываць. gz.research = Адчыніце \ue875 дрэва тэхналогій.\nДаследуйце \uf870 [accent]Механічны Бур[], пасля выберыце яго ў ніжнім правым меню.\nНажміце на руду каб размясціць. -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[]. +gz.research.mobile = Адкройце \ue875 дрэва тэхналогій.\nДаследуйце \uf870 [accent]Механічны Бур[], пасля выберыце яго ў ніжнім правым меню.\nНацісніце на залежы медзі каб размясцічь бур.\n\nНацісніце на конпку \ue800 [accent]падцвердзіць[] у нізе справа каб падцвердзіць. +gz.conveyors = Даследуйце і размасціце \uf896 [accent]канвееры[] каб рухаць дабытыя рэсурсы\nад буроў да ядра.\n\nНажміце і правядзіце каб размясціць некалькі канвеераў.\n[accent]Пракручваць[] каб паварочваць аб'ект. +gz.conveyors.mobile = Даследуйце і размасціце \uf896 [accent]канвееры[] каб рухаць дабытыя рэсурсы\nад буроў да ядра.\n\nУтрымайце ваш палец адну секнду і правядзіце каб размясціць некалькі канвеераў. +gz.drills = Пашырайце аперацыю здабычы.\nРазмясціце больш Механічных Буроў.\nЗдабудзьце 100 медзі. +gz.lead = \uf837 [accent]Свінец[] гэта другі звычайны ў выкарыстанні рэсурс.\nПастаўце буры каб здабываць яго. +gz.moveup = \ue804 Перайдзіце да наступных мэт. +gz.turrets = Даследуйце і размясціце 2 \uf861 [accent]Двайныя турэлі[] каб абараняць ядро.\nДвайныя турэлі патрабуюць \uf838 [accent]снарады[] падведзеныя канвеерамі. +gz.duoammo = Зарадзіце Двайныя турэлт [accent]меддзю[], выкарыстоўваючы канвееры. +gz.walls = [accent]Сцены[] могуць стрымліваць ад пашкоджанняў другія блокі .\nРазмясціце \uf8ae [accent]медныя сцены[] вакол турэлей. +gz.defend = Ворагі на падыходзе, прыгатуйцеся да аховы. +gz.aa = Паветранныя адзінкі не проста знішчыць звычайнымі турэлямі.\n\uf860 [accent]Турэлі льнік[] моцныя ў супраць-паветраннай ахове, патрабуюць \uf837 [accent]свінец[] у якасці боепрыпасаў. +gz.scatterammo = Зараджайче турэлі льнік [accent]свінцом[], выкарыстоўваючы канвееры. +gz.supplyturret = [accent]Грузавая Турэль +gz.zone1 = Гэта вобласць зяўлення ворага. +gz.zone2 = Усё што пастроена ў гэтай вобласцт будзе знішчана калі пачанецца хваля. +gz.zone3 = Хваля амаль пачалася.\nПрыгатуйцеся. +gz.finish = Пабудуйце больш турэляў, дабудзьце больш рэсурсаў,\nі вытрывайце ад усе хвалі каб [accent]захапіць гэты сектар[]. +onset.mine = Нажміце каб дабываць \uf748 [accent]берылій[] са сцен.\n\nВыкарыстоўвайце [accent][[WASD] каб рухацца. +onset.mine.mobile = Націсніце каб дабываць \uf748 [accent]берылій[] са сцен. +onset.research = Адчыніце \ue875 дрэва тэхналогій.\nДаследуйце, а пасля размясціце \uf870 [accent]Турбінны Кандэнсатар[], на гейзеры.\nЁн будзе генераваць [accent]энергію[]. +onset.bore = Даследуйце і размясціце \uf870 [accent]Плазменны Бур[]. \nЁн будзе аўтаматычна дабываць рэсурсы са сцен. +onset.power = Каб падлучыць [accent]энергію[] да плазменнага бура, даследуйце і размясціце \uf73d [accent]энергетычная вузлы[].\nЗлучыце турбінны кандэнсатар з плазменным буром. +onset.ducts = Даследуйце і размясціце \uf799 [accent]каналы[] каб перамяшчаць дабытыя рэсуры ад плазменных буроў у ядро.\nНажміце і утрымайце каб раўмясціць больш каналаў.\n[accent]Пракручваць[] каб паварочваць. +onset.ducts.mobile = Даследуйце і размясціце \uf799 [accent]каналы[] каб перамяшчаць дабытыя рэсуры ад плазменных буроў у ядро.\n\nУтрымлівайце ваш палец адну секнд і правядзіце каб размясціць больш каналаў. +onset.moremine = Пашырайце дабываючую прамысловасць.\nРазмясціце больш Плазменных Буроўmore і выкарыстоўвайце прамянёвыя вузлы і каналы каб падтрымліваць прамысловасць.\nДабудзьце 200 берылія. +onset.graphite = Патрабуецца больш комплексных блокаў \uf835 [accent]графіта[].\nРазмясціце плазменныя буры каб дабываць графіт. +onset.research2 = Пачніце даследаваць [accent]фабрыкі[].\n Даследуйце \uf74d [accent]Здр 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[]. @@ -1815,14 +1821,14 @@ split.build = Units must be transported to the other side of the wall.\nPlace tw 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. item.copper.description = Самы асноўны будаўнічы матэрыял. Шырока выкарыстоўваецца ва ўсіх тыпах блокаў. -item.copper.details = Copper. Abnormally abundant metal on Serpulo. Structurally weak unless reinforced. +item.copper.details = Медзь. Анамальна распаўсюджаны метал на Серпуло. Структурна слабы калі не ўмацаваны. item.lead.description = Асноўны стартавы матэрыял. Шырока выкарыстоўваецца ў электроніцы і блоках для транспарціроўкі вадкасцяў. -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 = Плотны. Інэртны. Шырока выкарыстоўваецца у акумулятарахx.\nДаданне: верагодна, таксічны для біялагічных форм жыцця. Не так каб іх тут шмат засталося. item.metaglass.description = Звышмоцны сплаў шкла. Шырока выкарыстоўваецца для размеркавання і захоўвання вадкасці. item.graphite.description = Мінералізаваны вуглярод, які выкарыстоўваецца для боепрыпасаў і электрычных кампанентаў. item.sand.description = Звычайны матэрыял, які шырока выкарыстоўваецца пры выплаўленні, як пры легіравання, так і ў якасці флюсу. item.coal.description = Закамянеласцевае мінеральнае рэчыва, якое ўтварылася задоўга да пасева. Шырока выкарыстоўваецца для вытворчасці паліва і рэсурсаў. -item.coal.details = Appears to be fossilized plant matter, formed long before the seeding event. +item.coal.details = Часткі вымершых раслін, утворана задоўга да заснавання. item.titanium.description = Рэдкі звышлёгкі метал, шырока выкарыстоўваецца для транспарціроўкі вадкасцяў, бураў і авіяцыі. item.thorium.description = Шчыльны радыеактыўны метал, які выкарыстоўваецца ў якасці структурнай апоры і ядзернага паліва. item.scrap.description = Рэшткі старых збудаванняў і баявых адзінак. Змяшчае невялікія колькасці многіх розных металаў. @@ -1831,7 +1837,7 @@ item.silicon.description = Надзвычай карысны паўправад item.plastanium.description = Лёгкі, пластычны матэрыял, які выкарыстоўваецца ў прасунутай авіяцыі і асколачных боепрыпасах. item.phase-fabric.description = Практычна бязважкае рэчыва, якое выкарыстоўваецца ў перадавой электроніцы і тэхналогіях самааднаўлення. item.surge-alloy.description = Сучасны сплаў з унікальнымі электрычнымі ўласцівасцямі. -item.spore-pod.description = Струк спрэчка, сінтэзаваных з атмасферных канцэнтрацый для прамысловых мэтаў. Выкарыстоўваецца для перапрацоўкі ў нафту, выбуховыя рэчывы або паліва. +item.spore-pod.description = Струк спор, сінтэзаваных з атмасферных канцэнтрацый для прамысловых мэтаў. Выкарыстоўваецца для перапрацоўкі ў нафту, выбуховыя рэчывы або паліва. item.spore-pod.details = Spores. Likely a synthetic life form. Emit gases toxic to other biological life. Extremely invasive. Highly flammable in certain conditions. item.blast-compound.description = Нестабільнае злучэнне, якое выкарыстоўваецца ў бомбах і выбуховых рэчывах. Сінтэзуецца з струкоў спрэчку і іншых лятучых рэчываў. Выкарыстоўваць у якасці паліва не рэкамендуецца. item.pyratite.description = Надзвычай вогненебяспечнае рэчыва, якое выкарыстоўваецца ў запальным зброі. @@ -1862,7 +1868,7 @@ block.multi-press.description = Абноўленая версія графіта block.silicon-smelter.description = Злучае пясок з чыстым вуглём. Вырабляе крэмній. block.kiln.description = выплавляемым пясок і свінец ў злучэнне, вядомае як меташкло. Патрабуецца невялікая колькасць энергіі для працы. block.plastanium-compressor.description = Вырабляе пластан з нафты ды тытана. -block.phase-weaver.description = Сінтэзуе фазавую тканіна з радыеактыўнага торыя і пяску. Патрабуецца вялікая колькасць энергіі для працы. +block.phase-weaver.description = Сінтэзуе фазавую тканіну з радыеактыўнага торыя і пяску. Патрабуецца вялікая колькасць энергіі для працы. block.surge-smelter.description = Аб'ядноўвае тытан, свінец, крэмній і медзь для вытворчасці кінэтычнага сплаву. block.cryofluid-mixer.description = змешваюцца ваду і дробны тытанавы парашок у крогеннную вадкасць. Неад'емная частка пры выкарыстання торевого рэактара block.blast-mixer.description = расціскаюць і змешвае навалы спрэчка з проттом для атрымання выбуховага рэчыва. @@ -1875,7 +1881,7 @@ block.coal-centrifuge.description = Атвярдае нафту ў кавалк block.incinerator.description = Выпарае любы лішні прадмет або вадкасць, якую ён атрымлівае. block.power-void.description = Ануляе ўсю энергію, уведзеную ў яго. Толькі пясочніца. block.power-source.description = Бясконца выводзіць энергію. Толькі пясочніца. -block.item-source.description = Бясконца выводзіць элементы. Толькі пясочніца. +block.item-source.description = Бясконца выводзіць прадметы. Толькі пясочніца. block.item-void.description = Знішчае любыя прадметы. Толькі пясочніца. block.liquid-source.description = Бясконца выводзіць вадкасці. Толькі пясочніца. block.liquid-void.description = Знішчае любыя вадкасці. Толькі пясочніца. @@ -1902,14 +1908,14 @@ block.force-projector.description = Стварае вакол сябе шасц block.shock-mine.description = Наносіць страты ворагам, надыходзячым на міну. Амаль нябачная для ворага. block.conveyor.description = Базавы транспартны блок. Перамяшчае прадметы наперад і аўтаматычна складае іх у блокі. Можна павярнуць. block.titanium-conveyor.description = Палепшаны транспартны блок. Перамяшчае прадметы хутчэй, чым стандартныя канвееры. -block.plastanium-conveyor.description = Moves items in batches.\nAccepts items at the back, and unloads them in three directions at the front. +block.plastanium-conveyor.description = Перамяшчае прадметы ў групах.\nПрынімае прадметы ззаду, і выгружае іх у трох напрамках наперад. block.junction.description = Дзейнічае як мост для двух перасякальных канвеерных стужак. Карысны ў сітуацыях, калі два розныя канвеера перавозяць розныя матэрыялы ў розныя месцы. block.bridge-conveyor.description = Палепшаны транспартны блок. Дазваляе транспартаваць прадметы над 3 пліткамі любой мясцовасці або будынка. block.phase-conveyor.description = Палепшаны транспартны блок. Выкарыстоўвае энергію для тэлепартацыі прадметаў на падлучаны фазавы канвеер над некалькімі пліткамі. block.sorter.description = Сартуе прадметы. Калі прадмет адпавядае выбару, ён можа прайсці. У адваротным выпадку прадмет выводзіцца злева і справа. block.inverted-sorter.description = Працуе з прадметамі гэтак жа, як і стандартны сартавальнік, але выводзіць абраны прадмет па баках, а не прама. block.router.description = Прымае прадмет у адным кірунку і выводзіць іх да 3 іншых напрамкаў у роўнай ступені. Карысны для падзелу матэрыялаў з адной крыніцы на некалькі мэтаў. \n \n [scarlet] Ніколі не выкарыстоўвайце побач з заводамі і т.п., так як маршрутызатар будзе забіты выходнымі прадметамі.[] -block.router.details = A necessary evil. Using next to production inputs is not advised, as they will get clogged by output. +block.router.details = Неабходнае зло. Выкарыстанне каля уваходу прадукцыі не рэкамендуецца, бо яны забюцца выходзячай прадукцыяй. block.distributor.description = Пашыраны маршрутызатар. Падзяляе прадметы да 7 іншых напрамкаў у роўнай ступені. block.overflow-gate.description = Выводзіць прадметы налева і направа, толькі калі пярэдні шлях заблякаваны. block.underflow-gate.description = Супрацьлегласць залішняга засаўкі. Выводзіць прадметы наперад толькі ў тым выпадку, калі левы і правы шляху заблакаваныя. @@ -1921,8 +1927,8 @@ block.conduit.description = Асноўны блок транспарціроўк block.pulse-conduit.description = Палепшаны блок транспарціроўкі вадкасці. Транспартуе вадкасці хутчэй і захоўвае больш, чым стандартныя трубаправоды. block.plated-conduit.description = Перамяшчае вадкасці з той жа хуткасцю, што і імпульсныя трубаправоды, але валодае большай трываласцю. Не бярэ вадкасці са бакоў, акрамя як ад іншых трубаправодаў. \nПротекает менш. block.liquid-router.description = Прымае вадкасці з аднаго кірунку і выводзіць іх да 3 іншых напрамкаў у роўнай ступені. Таксама можа захоўваць пэўную колькасць вадкасці. Карысны для падзелу вадкасцяў з адной крыніцы на некалькі мэтаў. -block.liquid-container.description = Stores a sizeable amount of liquid. Outputs to all sides, similarly to a liquid router. -block.liquid-tank.description = Захоўвае вялікая колькасць вадкасці. Выкарыстоўваецца для стварэння буфераў у сітуацыях з нясталай патрэбай у матэрыялах або ў якасці абароны для астуджэння жыццёва важных блокаў. +block.liquid-container.description = Захоўвае больш адзінак вадкасці. Выводзіць ва ўсіх напрамках, падобны да вадкаснага маршрутызатара. +block.liquid-tank.description = Захоўвае вялікую колькасць вадкасці. Выкарыстоўваецца для стварэння буфераў у сітуацыях з нясталай патрэбай у матэрыялах або ў якасці абароны для астуджэння жыццёва важных блокаў. block.liquid-junction.description = Дзейнічае як мост для двух перасякальных трубаправодаў. Карысны ў сітуацыях, калі два розныя трубаправода пераносяць розныя вадкасці ў розныя месцы. block.bridge-conduit.description = Пашыраны блок транспарціроўкі вадкасці. Дазваляе транспартаваць вадкасці над 3 пліткамі любой мясцовасці або будынка. block.phase-conduit.description = Пашыраны блок транспарціроўкі вадкасці. Выкарыстоўвае энергію для тэлепартацыі вадкасцяў у падлучаны фазавы трубаправод над некалькімі пліткам. @@ -1939,15 +1945,15 @@ block.differential-generator.description = Генеруе вялікая кол block.rtg-generator.description = Просты, надзейны генератар. Выкарыстоўвае цяпло распадаюцца радыеактыўных злучэнняў для вытворчасці энергіі з нізкай хуткасцю. block.solar-panel.description = Забяспечвае невялікая колькасць энергіі ад сонца. block.solar-panel-large.description = Значна больш эфектыўны варыянт стандартнай сонечнай панэлі. -block.thorium-reactor.description = Генеруе значная колькасць энергіі з торыя. Патрабуе пастаяннага астуджэння. Выбухне з вялікай сілай пры недастатковай колькасці астуджальнай вадкасці. Выхадныя энергія залежыць ад напоўненасці торем, пры гэтым базавая энергія генеруецца пры максімальным запаўненні. -block.impact-reactor.description = Удасканалены генератар, здольны ствараць велізарная колькасць энергіі на піку эфектыўнасці. Патрабуецца значная колькасць энергіі для запуску працэсу. +block.thorium-reactor.description = Генеруе значную колькасць энергіі з торыя. Патрабуе пастаяннага астуджэння. Выбухне з вялікай сілай пры недастатковай колькасці астуджальнай вадкасці. Выхадныя энергія залежыць ад напоўненасці торем, пры гэтым базавая энергія генеруецца пры максімальным запаўненні. +block.impact-reactor.description = Удасканалены генератар, здольны ствараць велізарную колькасць энергіі на піку эфектыўнасці. Патрабуецца значная колькасць энергіі для запуску працэсу. block.mechanical-drill.description = Танны свідар. Пры размяшчэнні на адпаведных плітках, прадметы бясконца выводзяцца ў павольным тэмпе. Здольны здабываць толькі базавыя рэсурсы. block.pneumatic-drill.description = Палепшаны свідар, здольны здабываць тытан. Здабывае хутчэй, чым механічны свідар. block.laser-drill.description = Дазваляе свідраваць яшчэ хутчэй з дапамогай лазернай тэхналогіі, але патрабуе энергіі. Здольны здабываць торый. block.blast-drill.description = Самы прасунуты свідар. Патрабуе вялікую колькасці энергіі. block.water-extractor.description = Выпампоўваецца падземныя воды. Выкарыстоўваецца ў месцах, дзе няма паверхневых вод. block.cultivator.description = Вырошчвае малюсенькія канцэнтрацыі спрэчку ў атмасферы ў гатовыя да выкарыстання спрэчкі. -block.cultivator.details = Recovered technology. Used to produce massive amounts of biomass as efficiently as possible. Likely the initial incubator of the spores now covering Serpulo. +block.cultivator.details = Вастаноўленная тэхналогія. Выкарыстоўвае каб ствараць вялікую колькасць біямассы з найбольшай эфектыўнасццю. Падобны да ініцыйнага фабрыкатара спор які выкарыстоўваецца на Серпуло. block.oil-extractor.description = Выкарыстоўвае вялікая колькасць энергіі, пяску і вады для бурэння, здабываючы нафту. block.core-shard.description = Першая ітэрацыя капсулы ядра. Пасля знішчэння, увесь кантакт з рэгіёнам губляецца. Не дазваляйце гэтаму здарыцца. block.core-shard.details = The first iteration. Compact. Self-replicating. Equipped with single-use launch thrusters. Not designed for interplanetary travel. @@ -1956,7 +1962,7 @@ block.core-foundation.details = The second iteration. block.core-nucleus.description = Трэцяя і апошняя ітэрацыя капсулы ядра. Вельмі добра Браніраваць. Захоўвае вялікая колькасць рэсурсаў. block.core-nucleus.details = The third and final iteration. block.vault.description = Захоўвае вялікая колькасць прадметаў кожнага тыпу. Блок разгрузчка можа быць выкарыстаны для здабывання прадметаў са сховішча. -block.container.description = Захоўвае невялікая колькасць прадметаў кожнага тыпу. Блок разгрузчка можа быць выкарыстаны для здабывання элементаў з кантэйнера. +block.container.description = Захоўвае невялікая колькасць прадметаў кожнага тыпу. Блок разгрузчка можа быць выкарыстаны для здабывання прадметаў з кантэйнера. block.unloader.description = Выгружае прадметы з любога нетранспортного блока. Тып прадмета, які неабходна выгрузіць, можна змяніць націскам. block.launch-pad.description = Запускае партыі прадметаў без неабходнасці запуску ядра. block.launch-pad.details = Sub-orbital system for point-to-point transportation of resources. Payload pods are fragile and incapable of surviving re-entry. @@ -2125,7 +2131,7 @@ unit.minke.description = Fires shells and standard bullets at nearby ground targ unit.bryde.description = Fires long-range artillery shells and missiles at enemies. unit.sei.description = Fires a barrage of missiles and armor-piercing bullets at enemies. unit.omura.description = Fires a long-range piercing railgun bolt at enemies. Constructs flare units. -unit.alpha.description = Defends the Shard core from enemies. Builds structures. +unit.alpha.description = Абараняе ядро Аскепак ад ворагаў. Builds structures. unit.beta.description = Defends the Foundation core from enemies. Builds structures. unit.gamma.description = Defends the Nucleus core from enemies. Builds structures. unit.retusa.description = Fires homing torpedoes at nearby enemies. Repairs allied units. @@ -2186,6 +2192,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w 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. +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]Unit building logic is not allowed here. lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string. lenum.shoot = Shoot at a position. @@ -2291,28 +2298,28 @@ control.unit = Unit/building to aim at. control.shoot = Whether to shoot. unitlocate.enemy = Whether to locate enemy buildings. unitlocate.found = Whether the object was found. -unitlocate.building = Output variable for located building. -unitlocate.outx = Output X coordinate. -unitlocate.outy = Output Y coordinate. -unitlocate.group = Building group to look for. -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. -lenum.move = Move to exact position. -lenum.approach = Approach a position with a radius. -lenum.pathfind = Pathfind to the enemy spawn. -lenum.target = Shoot a position. -lenum.targetp = Shoot a target with velocity prediction. -lenum.itemdrop = Drop an item. -lenum.itemtake = Take an item from a building. -lenum.paydrop = Drop current payload. -lenum.paytake = Pick up payload at current location. -lenum.payenter = Enter/land on the payload block the unit is on. -lenum.flag = Numeric unit flag. -lenum.mine = Mine at a position. -lenum.build = Build a structure. -lenum.getblock = Fetch a building and type at coordinates.\nUnit must be in range of position.\nSolid non-buildings will have the type [accent]@solid[]. -lenum.within = Check if unit is near a position. -lenum.boost = Start/stop boosting. -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. +unitlocate.building = Выводзіць зменную для выбраннага будынку. +unitlocate.outx = Выводзіць X каардынату. +unitlocate.outy = Выводзіць Y каардынату. +unitlocate.group = Знаходзіць группу будынкаў. +lenum.idle = Не рухацца, а будаваць/дабываць.\nЗвычайны стан. +lenum.stop = Перастаць рухацца/дабываць/будаваць. +lenum.unbind = Поўнасццю адключыць кантраляванне працэссарамі.\nАднавіць звычайныя паводзіны AI. +lenum.move = Рухацца да канкрэтнай каардынаты. +lenum.approach = Падысці да каардынаты з радыюсам. +lenum.pathfind = Найці шлях да варожай кропкі з'яўлення. +lenum.target = Атакаваць каардынату. +lenum.targetp = Атакаваць мэту з прадвылічэннем скорасці. +lenum.itemdrop = Апусціць прадмет. +lenum.itemtake = Узяць прадмет Take an item from a building. +lenum.paydrop = Апусціць існуючы груз. +lenum.paytake = Узыць груз у заданных каардынатах. +lenum.payenter = Увайсці/прызямліцца на блок выгрузкі калі адзінка каля/над ім. +lenum.flag = Лічбавы сцяг адзінкі. +lenum.mine = Дабываць у кардынатах. +lenum.build = Пабудаваць структуру. +lenum.getblock = Атрымаць будынак і яго тып у каардынатах.\nАдзінка павінна быць у дыяпазоне ад каардынат.\nЦвердыя не будынкі павінны мець тып [accent]@solid[]. +lenum.within = Правярае калі адзінка знаходзіцца каля каардынат. +lenum.boost = Пачаць/перастаць узлятаць. +onset.commandmode = Зажміце [accent]shift[] каб увайсці ў [accent]рэжым камандавання[].\n[accent]Левая Кнопка Мышкі і працягнуць[] каб выбраць адзінкі.\n[accent]Правая Кнопка Мышкі[] каб камандаваць выбранымі адзінкамі каб рухаць або атакаваць. +onset.commandmode.mobile = Націсніце на кнопку [accent]Камандавання[] каб увайсці ў [accent]рэжым камандавання[].\nУтрамайце палец, пасля [accent]правесці[] да выбраных адзінак.\n[accent]Націсніце[] каб камандаваць выбранымі адзінкамі каб рухаць або атакаваць. diff --git a/core/assets/bundles/bundle_bg.properties b/core/assets/bundles/bundle_bg.properties index 9ce766d4cc..3e5bba870a 100644 --- a/core/assets/bundles/bundle_bg.properties +++ b/core/assets/bundles/bundle_bg.properties @@ -458,6 +458,8 @@ waves.sort.reverse = Reverse Sort waves.sort.begin = Begin waves.sort.health = Health waves.sort.type = Type +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Hide All waves.units.show = Show All @@ -886,6 +888,7 @@ stat.repairspeed = Repair Speed stat.weapons = Оръжия stat.bullet = Муниции stat.moduletier = Module Tier +stat.unittype = Unit Type stat.speedincrease = Ускорение stat.range = Обхват stat.drilltier = Изкопаеми ресурси @@ -979,6 +982,8 @@ bullet.splashdamage = [stat]{0}[lightgray] щети на площ ~[stat] {1}[li bullet.incendiary = [stat]Подпалване bullet.homing = [stat]Самонасочване bullet.armorpierce = [stat]armor piercing +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x frag bullets: bullet.lightning = [stat]{0}[lightgray]x светкавица ~ [stat]{1}[lightgray] щети bullet.buildingdamage = [stat]{0}%[lightgray] щети на сгради @@ -1092,8 +1097,8 @@ setting.bridgeopacity.name = Плътност на Мостовете setting.playerchat.name = Показвай Мехурчета с Чат setting.showweather.name = Показвай Графики за Климата setting.hidedisplays.name = Hide Logic Displays -public.confirm = Искате ли да направите вашата игра публична?\n[accent]Всеки ще може да се присъедини към вашата игра.\n[lightgray]Това може да бъде променено по-късно в Настройки->Игри->Видимост на Публичните Игри. -public.confirm.really = Ако искате да играете с приятел, използвате [green]Покани Приятел[] вместо [scarlet]Публикувай Сървър[]!\nСигурни ли сте, че искате да направите вашата игра [scarlet]публична[]? +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 = Имайте в предвид, че бета версии на играта не могат да стартират публични игри. uiscale.reset = Размерът на интерфейса беше променен.\nНатиснете "ОК" за да потвърдите този размер.\n[scarlet]Възстановяване и рестартиране след[accent] {0}[] секунди... uiscale.cancel = Отакз & Изход @@ -1220,6 +1225,7 @@ rules.buildcostmultiplier = Множител на Необходимите Ре rules.buildspeedmultiplier = Множител на Скоростта за Строене rules.deconstructrefundmultiplier = Множител на Възстановени Ресурси при Деконструкция rules.waitForWaveToEnd = Вълните Изчакват за Врагове +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Радиус на Начална Точка на Враговете:[lightgray] (полета) rules.unitammo = Единиците се Нуждаят от Боеприпаси rules.enemyteam = Enemy Team @@ -2200,6 +2206,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w 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. +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]Действия за строене на единици не са позволени тук. diff --git a/core/assets/bundles/bundle_ca.properties b/core/assets/bundles/bundle_ca.properties index e26d675e52..ed19ebaf46 100644 --- a/core/assets/bundles/bundle_ca.properties +++ b/core/assets/bundles/bundle_ca.properties @@ -101,7 +101,7 @@ database = Base de dades del nucli database.button = Base de dades savegame = Desa la partida loadgame = Carrega una partida -joingame = Unir-se a una partida +joingame = Uneix-me a una partida customgame = Partida personalitzada newgame = Partida nova none = @@ -149,15 +149,15 @@ mod.incompatiblemod = [red]Incompatible mod.blacklisted = [red]Unsupported mod.unmetdependencies = [red]Depèndencies sense resoldre mod.erroredcontent = [scarlet]Errors del contingut -mod.circulardependencies = [red]Circular Dependencies -mod.incompletedependencies = [red]Incomplete Dependencies +mod.circulardependencies = [red]Dependències circulars +mod.incompletedependencies = [red]Dependències incompletes mod.requiresversion.details = Requereix la versió: [accent]{0}[]\nCal actualitzar la vostra versió del joc. El mod necessita una versió nova (potser una distribució alfa o beta) per a funcionar. mod.outdatedv7.details = Aquest mod és incompatible amb l’última versió del joc. L’autor l’ha d’actualitzar i afegir [accent]minGameVersion: 136[] al seu fitxer [accent]mod.json[]. mod.blacklisted.details = Aquest mod s’ha afegit manualment a la llista negra perquè causa problemes amb aquesta versió del joc. No el feu servir. mod.missingdependencies.details = A aquest mod li falten dependències: {0} mod.erroredcontent.details = Aquesta partida ha causat errors mentre es carregava. Pregunteu a l’autor del mod si pot arreglar-ho. -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.circulardependencies.details = Aquest mod depèn d’un segon mod que, al seu torn, depèn del mod anterior. No es permeten dependències circulars. +mod.incompletedependencies.details = Aquest mod no es pot carregar perquè té una dependència no vàlida o que no es pot trobar: {0}. mod.requiresversion = Cal la versió [red]{0}[] del joc. mod.errors = S’han produït errors quan es carregava el contingut. mod.noerrorplay = [scarlet]S’executen mods amb errors.[] Desactiveu els mods afectats o arregleu les errades abans de jugar. @@ -335,7 +335,7 @@ command.repair = Repara command.rebuild = Reconstrueix command.assist = Assisteix al jugador command.move = Mou -command.boost = Boost +command.boost = Sobrevola openlink = Obre l’enllaç copylink = Copia l’enllaç back = Enrere @@ -458,6 +458,8 @@ waves.sort.reverse = Ordre invers waves.sort.begin = Comença waves.sort.health = Salut waves.sort.type = Tipus +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Amaga-les totes waves.units.show = Mostra-les totes @@ -890,6 +892,7 @@ stat.repairspeed = Velocitat de reparació stat.weapons = Armes stat.bullet = Bala stat.moduletier = Nivell del mòdul +stat.unittype = Tipus d’unitat stat.speedincrease = Augment de velocitat stat.range = Abast stat.drilltier = Perforables @@ -983,6 +986,8 @@ bullet.splashdamage = [stat]{0}[lightgray] de dany a l’àrea ~[stat] {1}[light bullet.incendiary = [stat]incendiari bullet.homing = [stat]munició guiada bullet.armorpierce = [stat]perforador d’armadures +bullet.suppression = [stat]Supressió de reparacions cada {0} s[lightgray] ~ [stat]{1}[lightgray] caselles +bullet.interval = [stat]Interval de bales de {0}/s[lightgray]: bullet.frags = [stat]{0}[lightgray]× de bales de fragmentació: bullet.lightning = [stat]{0}[lightgray]× llampec ~ [stat]{1}[lightgray] de dany bullet.buildingdamage = [stat]{0}%[lightgray] de dany a les estructures @@ -1096,8 +1101,8 @@ setting.bridgeopacity.name = Opacitat de cintes i canonades subterrànies setting.playerchat.name = Mostra el xat bombolla de jugadors setting.showweather.name = Mostra l’estat meteorològic setting.hidedisplays.name = Amaga els monitors lògics -public.confirm = Voleu que la vostra partida sigui pública?\n[accent]Qualsevol jugador s’hi podrà unir.\n[lightgray]Després es pot canviar a Configuració→Partida→Visibilitat de la partida pública. -public.confirm.really = Si voleu jugar amb els vostres amics, feu servir [green]Invita un amic[] en lloc d’emprar un [scarlet]servidor públic[]!\nEsteu segur que voleu que la partida sigui [scarlet]pública[]? +steam.friendsonly = Només amics +steam.friendsonly.tooltip = Indica si només els amics de Steam podran unir-se a la vostra partida.\nSi no es selecciona aquesta opció, la vostra partida serà pública i s’hi podrà unir qualsevol jugador. public.beta = Tingueu en compte que les versions beta no disposen de sales d’espera. uiscale.reset = L’escala de la interfície ha canviat.\nPremeu «D’acord» per a confirmar-ho.\n[scarlet]Es revertiran els canvis en [accent]{0}[] segons. uiscale.cancel = Cancel·la i surt @@ -1224,6 +1229,7 @@ rules.buildcostmultiplier = Multiplicador del cost de construcció rules.buildspeedmultiplier = Multiplicador de la velocitat de construcció rules.deconstructrefundmultiplier = Multiplicador dels elements recuperats per desmuntatge rules.waitForWaveToEnd = Les onades esperen fins veure enemics +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Radi de la zona d’aterratge:[lightgray] (caselles) rules.unitammo = Les unitats necessiten munició rules.enemyteam = Equip enemic @@ -1465,7 +1471,7 @@ block.distributor.name = Distrïbudor block.sorter.name = Classificador block.inverted-sorter.name = Classificador invers block.message.name = Missatge -block.reinforced-message.name = Missatge reforçat +block.reinforced-message.name = Missatge destacat block.world-message.name = Missatge mundial block.illuminator.name = Il·luminador block.overflow-gate.name = Porta de desbordament @@ -1877,7 +1883,7 @@ liquid.neoplasm.details = Neoplasma. Una massa incontrolable de cèl·lules sint block.derelict = \uf77e [lightgray]En ruïnes block.armored-conveyor.description = Mou objectes. Pels laterals només accepta entrades des d’altres cintes transportadores. block.illuminator.description = Emet llum. -block.message.description = Emmagatzema un missatge. Els aliats ho poden fer servir per a comunicar-se. +block.message.description = Emmagatzema un missatge. Els aliats el poden fer servir per a comunicar-se. block.reinforced-message.description = Emmagatzema un missatge que serveix per a què els aliats es puguin comunicar. block.world-message.description = Un bloc de missatge que es far servir per a fer mapes. No es pot destruir. block.graphite-press.description = Comprimeix carbó fins obtenir-ne grafit. @@ -2211,6 +2217,7 @@ lst.flushmessage = Mostra un missatge a la pantalla a partir dels continguts de lst.cutscene = Manipula la càmera del jugador. lst.setflag = Estableix un senyal global que es podrà llegir en tots els processadors. lst.getflag = Obtén un senyal global. +lst.setprop = Estableix una propietat d’una unitat o estructura. logic.nounitbuild = [red]Aquí no es permet construir blocs de tipus lògic. diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index f0bb3d3082..2938c5dcc9 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -458,6 +458,8 @@ waves.sort.reverse = Obrátit řazení waves.sort.begin = Začít waves.sort.health = Životy waves.sort.type = Typ +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Schovat vše waves.units.show = Zobrazit vše @@ -888,6 +890,7 @@ stat.repairspeed = Rychlost Opravy stat.weapons = Zbraně stat.bullet = Střela stat.moduletier = Module Tier +stat.unittype = Unit Type stat.speedincrease = Zvýšení rychlosti stat.range = Dosah stat.drilltier = Lze těžit @@ -981,6 +984,8 @@ bullet.splashdamage = [stat]{0}[lightgray] plošného poškození ~[stat] {1}[li bullet.incendiary = [stat]zápalný bullet.homing = [stat]samonaváděcí bullet.armorpierce = [stat]armor piercing +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x frag střel: bullet.lightning = [stat]{0}[lightgray]x jiskření ~ [stat]{1}[lightgray] poškození bullet.buildingdamage = [stat]{0}%[lightgray] poškození budov @@ -1094,8 +1099,8 @@ setting.bridgeopacity.name = Průsvitnost přemostění setting.playerchat.name = Zobrazit bublinu se zprávami hráče setting.showweather.name = Zobrazit Grafiku Počasí setting.hidedisplays.name = Hide Logic Displays -public.confirm = Chceš Tvoji hru zpřístupnit veřejnosti?\n[accent]Kdokoli se bude moci připojit ke tvé hře.[]\n[lightgray]Toto se dá později změnit v nabídce Volby->Hra->Veřejná viditelnost hry. -public.confirm.really = Pokud chceš hrát s přáteli, použij [green]Pozvat Přítele[] místo [scarlet]Zvěřejnit server[]!\nJseš si jist, že chceš udělat svou hru [scarlet]veřejnou[]? +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 = Poznámka: nevydané verze her nemůžou být veřejné. uiscale.reset = Škálování uživatelskho rozhraní se změnilo.\nZmáčkni "OK", abys potvrdil toto nastavení.\n[scarlet]Návrat k původním hodnotám proběhne za [accent]{0}[] vteřin...[] uiscale.cancel = Ukončit a odejít @@ -1222,6 +1227,7 @@ rules.buildcostmultiplier = Násobek ceny stavění rules.buildspeedmultiplier = Násobek rychlosti stavění rules.deconstructrefundmultiplier = Násobek vratky při rozebrání rules.waitForWaveToEnd = Vlny čekají na nepřátele +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Poloměr oblasti pro vylíhnutí: [lightgray](dlaždic)[] rules.unitammo = Jednotky vyžadují munici rules.enemyteam = Nepřátelský Tým @@ -2205,6 +2211,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w 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. +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]Stavba budov pomoci jednotek kontrolované procesorem neni povolené. diff --git a/core/assets/bundles/bundle_da.properties b/core/assets/bundles/bundle_da.properties index 01974f7c23..b4eb633fdc 100644 --- a/core/assets/bundles/bundle_da.properties +++ b/core/assets/bundles/bundle_da.properties @@ -454,6 +454,8 @@ waves.sort.reverse = Reverse Sort waves.sort.begin = Begin waves.sort.health = Health waves.sort.type = Type +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Hide All waves.units.show = Show All @@ -876,6 +878,7 @@ stat.repairspeed = Repair Speed stat.weapons = Weapons stat.bullet = Bullet stat.moduletier = Module Tier +stat.unittype = Unit Type stat.speedincrease = Hastigheds-forøgelse stat.range = Rækkevidde stat.drilltier = Kan bores @@ -969,6 +972,8 @@ bullet.splashdamage = [stat]{0}[lightgray] områdeskade ~[stat] {1}[lightgray] f bullet.incendiary = [stat]brændfarlig bullet.homing = [stat]målsøgende bullet.armorpierce = [stat]armor piercing +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x frag bullets: bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage bullet.buildingdamage = [stat]{0}%[lightgray] building damage @@ -1082,8 +1087,8 @@ setting.bridgeopacity.name = Bro-gennemsigtighed setting.playerchat.name = Vis spillers bobbel-chat setting.showweather.name = Show Weather Graphics setting.hidedisplays.name = Hide Logic Displays -public.confirm = Vil du gøre dit spil offentligt?\n[accent]Alle og enhver vil kunne tilslutte.\n[lightgray]Dette kan ændres senere i Indstillinger->Spil->Synlighed af offentlige spil. -public.confirm.really = If you want to play with friends, use [green]Invite Friend[] instead of a [scarlet]Public server[]!\nAre you sure you want to make your game [scarlet]public[]? +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 = Bemærk at beta-versioner af spillet ikke kan tilslutte sig offentlige spil. uiscale.reset = UI-størrelsen har ændret sig.\nTryk "OK" for at bekræfte størrelsen.\n[scarlet]Omgør og afslutter om[accent] {0}[] sekunder... uiscale.cancel = Afblæs & Afslut @@ -1210,6 +1215,7 @@ rules.buildcostmultiplier = Byggepris-forstærker rules.buildspeedmultiplier = Byggehastigheds-forstærker rules.deconstructrefundmultiplier = Dekonstruerings-tilbagebetalings-forstærker rules.waitForWaveToEnd = Bølge-ventetid for fjender +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Drop-zone-radius:[lightgray] (felter) rules.unitammo = Enheder kræver ammunition rules.enemyteam = Enemy Team @@ -2185,6 +2191,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w 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. +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]Unit building logic is not allowed here. lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string. lenum.shoot = Shoot at a position. diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index 390995ffb2..f22fa346d6 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -150,17 +150,17 @@ mod.incompatiblemod = [red]Inkompatibel mod.blacklisted = [red]Nicht unterstützt mod.unmetdependencies = [red]Fehlende Abhängigkeiten mod.erroredcontent = [scarlet]Inhalt-Fehler -mod.circulardependencies = [red]Circular Dependencies -mod.incompletedependencies = [red]Incomplete Dependencies +mod.circulardependencies = [red]Wechselseitige Abhängigkeiten +mod.incompletedependencies = [red]Fehlende Abhängigkeiten mod.requiresversion.details = Benötigt Spielversion [accent]{0}[]\nDein Spiel ist veraltet. Diese Mod benötigt eine neuere (möglicherweise Alpha- oder Beta-) Spielversion. mod.outdatedv7.details = Diese Mod ist nicht mit der neuesten Version von Mindustry kompatibel. Der Autor muss diesen aktualisieren und [accent]minGameVersion: 136[] in der [accent]mod.json[]-Datei hinzufügen. mod.blacklisted.details = Diese Mod würde manuell gesperrt, weil er diese Spielversion zum Abstürzen bringt oder andere Fehler verursacht. Benutze diese Mod nicht. mod.missingdependencies.details = Dieser Mod fehlen folgende Abhängigkeiten: {0} mod.erroredcontent.details = Diese Mod hat beim Laden Fehler verursacht. Bitte den Mod-Autor, diese zu beheben. -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.details = Diese Mod hat Abhängigkeiten, die von einander abhängen. +mod.incompletedependencies.details = Diese Mod kann aufgrund fehlenden oder ungültigen Abhängigkeiten nicht geladen werden: {0}. +mod.requiresversion = Benötigt Spielversion: [red]{0} mod.errors = Beim Laden von Inhalt sind Fehler aufgetreten. mod.noerrorplay = [red]Du hast Mods mit Fehlern.[] Deaktiviere die Mods oder behebe die Fehler, bevor du spielst. @@ -295,7 +295,7 @@ server.invalidport = Falscher Port! server.error = [crimson] Fehler beim Hosten des Servers:[accent] {0} save.new = Neuer Spielstand save.overwrite = Möchtest du diesen Spielstand wirklich überschreiben? -save.nocampaign = Individual save files from the campaign cannot be imported. +save.nocampaign = Einzelne Spielstände aus der Kampagne können nicht importiert werden. overwrite = Überschreiben save.none = Keine Spielstände gefunden! savefail = Fehler beim Speichern des Spiels! @@ -364,8 +364,8 @@ pausebuilding = [accent][[{0}][] um das Bauen zu pausieren resumebuilding = [scarlet][[{0}][] um das Bauen fortzusetzen enablebuilding = [scarlet][[{0}][] um zu bauen showui = Bedienflächen versteckt.\nDrücke [accent][[{0}][], um sie wieder anzuzeigen. -commandmode.name = [accent]Command Mode -commandmode.nounits = [no units] +commandmode.name = [accent]Steuerungsmodus +commandmode.nounits = [keine Einheiten] wave = [accent]Welle {0} wave.cap = [accent]Welle {0}/{1} wave.waiting = Nächste Welle in {0} @@ -450,7 +450,7 @@ waves.max = maximale Einheiten waves.guardian = Boss waves.preview = Vorschau waves.edit = Bearbeiten... -waves.random = Random +waves.random = Zufällig waves.copy = Aus der Zwischenablage kopieren waves.load = Aus der Zwischenablage laden waves.invalid = Ungültige Wellen in der Zwischenablage. @@ -461,6 +461,8 @@ waves.sort.reverse = Reihenfolge umkehren waves.sort.begin = Anfang waves.sort.health = Lebenspunkte waves.sort.type = Sorte +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Alle verstecken waves.units.show = Alle anzeigen @@ -649,8 +651,8 @@ objective.build = [accent]Baue: [][lightgray]{0}[]x\n{1}[lightgray]{2} objective.buildunit = [accent]Baue Einheit: [][lightgray]{0}[]x\n{1}[lightgray]{2} objective.destroyunits = [accent]Zerstöre: [][lightgray]{0}[]x Units objective.enemiesapproaching = [accent]Gegner in [lightgray]{0}[] -objective.enemyescelating = [accent]Gegnerisch Lufteinheit-Produktion steigert sich in [lightgray]{0}[] -objective.enemyairunits = [accent]Gegnerisch Lufteinheit-Produktion startet in [lightgray]{0}[] +objective.enemyescelating = [accent]Gegnerische Lufteinheit-Produktion steigert sich in [lightgray]{0}[] +objective.enemyairunits = [accent]Gegnerische Lufteinheit-Produktion startet in [lightgray]{0}[] objective.destroycore = [accent]Gegnerischen Kern zerstören objective.command = [accent]Einheiten Steuern objective.nuclearlaunch = [accent]⚠ Atomraketenstart festgestellt: [lightgray]{0} @@ -777,7 +779,7 @@ sector.windsweptIslands.description = Diese Inseln befinden sich in der Nähe vo sector.extractionOutpost.description = Ein Außenposten, der vom Gegner erstellt wurde, um Ressourcen in andere Sektoren zu transportieren.\n\nTrans-Sektorischer Transport ist nötig, um weiter voranzuschreiten. Zerstöre den Posten. Erforsche deren Launchpads. sector.impact0078.description = Hier liegen Reste der interplanetarischen Transporteinheit, die dieses Sonnensystem zuerst betreten hat.\n\nRette so viel wie möglich von den Ruinen. Erforsche jede intakte Technologie. 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. Remnants of naval unit technology have been detected at this location. Wehre dich gegen die gegnischen Angriffe, erobere den Sektor und erforsche diese Technologie. +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.onset.name = Der Anfang @@ -899,6 +901,7 @@ stat.repairspeed = Heilungsgeschwindigkeit stat.weapons = Waffen stat.bullet = Geschoss stat.moduletier = Modulstufe +stat.unittype = Einheitentyp stat.speedincrease = Geschwindigkeitserhöhung stat.range = Reichweite stat.drilltier = Abbaubare Erze @@ -992,6 +995,8 @@ bullet.splashdamage = [stat]{0}[lightgray] Flächenschaden ~[stat] {1}[lightgray bullet.incendiary = [stat]entzündend bullet.homing = [stat]zielsuchend bullet.armorpierce = [stat]panzerbrechend +bullet.suppression = [stat]{0} sec[lightgray] Heilungsunterdrückung ~ [stat]{1}[lightgray] Kacheln +bullet.interval = [stat]{0}/sec[lightgray] Intervallgeschosse: bullet.frags = [stat]{0}[lightgray]x Splittergeschosse: bullet.lightning = [stat]{0}[lightgray]x Blitz ~ [stat]{1}[lightgray] Schaden bullet.buildingdamage = [stat]{0}%[lightgray]Blockschaden @@ -1088,7 +1093,7 @@ setting.pixelate.name = Verpixeln [lightgray](Könnte die Leistung beeinträchti setting.minimap.name = Zeige die Minimap setting.coreitems.name = Kern-Materialien anzeigen setting.position.name = Spieler-Position anzeigen -setting.mouseposition.name = Mouseposition anzeigen +setting.mouseposition.name = Mausposition anzeigen setting.musicvol.name = Musiklautstärke setting.atmosphere.name = Planetatmosphäre zeigen setting.ambientvol.name = Ambient-Lautstärke @@ -1105,8 +1110,8 @@ setting.bridgeopacity.name = Brücken-Deckkraft setting.playerchat.name = Chat im Spiel anzeigen setting.showweather.name = Wetter anzeigen setting.hidedisplays.name = Logik-Bildschirme verdecken -public.confirm = Willst du dein Spiel öffentlich zugänglich machen?\n[accent]Jeder kann deinem Spiel beitreten.\n[lightgray]Dies kann später in den Einstellungen->Spiel->Öffentliches Spiel geändert werden. -public.confirm.really = Wenn du mit Freunden spielen willst, drücke [green]Freunde einladen[] statt einen [scarlet]öffentlichen Server[] zu erstellen!\nBist du dir sicher, dass du dein Spiel [scarlet]öffentlich[] machen möchtest? +steam.friendsonly = Nur Freunde +steam.friendsonly.tooltip = Ob nur Steam-Freunde dein Spiel beitreten können.\nDiese Einstellung zu deaktivieren macht dein Spiel öffentlich - jeder kann beitreten. public.beta = Bemerke: Beta-Versionen des Spiels können keine öffentlichen Spiele machen. uiscale.reset = UI-Skalierung wurde geändert.\nDrücke "OK", um diese Skalierung zu bestätigen.\n[scarlet]Zurückkehren und Beenden in[accent] {0}[] Einstellungen... uiscale.cancel = Abbrechen & Beenden @@ -1221,7 +1226,7 @@ rules.unitbuildspeedmultiplier = Einheiten-Baugeschwindigkeit Multiplikator rules.unitcostmultiplier = Einheit-Baukosten Multiplikator rules.unithealthmultiplier = Einheit-Lebenspunkte-Multiplikator rules.unitdamagemultiplier = Einheit-Schaden-Multiplikator -rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier +rules.unitcrashdamagemultiplier = Einheiten-Absturzschaden-Multiplikator rules.solarmultiplier = Solarstrom-Multiplikator rules.unitcapvariable = Kerne zählen zum Einheiten-Limit dazu rules.unitcap = Einheiten-Limit @@ -1233,6 +1238,7 @@ rules.buildcostmultiplier = Bau-Kosten Multiplikator rules.buildspeedmultiplier = Bau-Schnelligkeit Multiplikator rules.deconstructrefundmultiplier = Abbau Ressourcen-Rückerstattung rules.waitForWaveToEnd = Warten bis Welle endet +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Drop-Zonen-Radius:[lightgray] (Kacheln) rules.unitammo = Einheiten benötigen Munition [red](wird vielleicht entfernt) rules.enemyteam = Gegnerteam @@ -1773,8 +1779,8 @@ hint.breaking = Benutze [accent]Rechtsklick[] und bewege deine Maus, um zu zerst hint.breaking.mobile = Aktiviere den \ue817 [accent]Hammer[] unten rechts und tippe, um Blöcke zu zerstören.\n\nHalte deinen Finger auf dem Bildschirm, um eine Fläche auszuwählen. hint.blockInfo = Genauere Blockinformationen können im [accent]Baumenü[] rechts beim [accent][[?][]-Symbol gefunden werden. hint.derelict = [accent]Derelikte[] Blöcke sind kaputte Teile alter Basen, die nicht mehr funktionieren.\n\nSie können für Ressourcen [accent]abgebaut[] werden. -hint.research = Nehme den \ue875 [accent]Forschen[]-Knopf um neue Technologien zu erforschen. -hint.research.mobile = Nehme den \ue875 [accent]Forschen[]-Knopf im \ue88c [accent]Menü[], um neue Technologien zu erforschen. +hint.research = Klicke auf den \ue875 [accent]Forschen[]-Knopf um neue Technologien zu erforschen. +hint.research.mobile = Klicke auf den \ue875 [accent]Forschen[]-Knopf im \ue88c [accent]Menü[], um neue Technologien zu erforschen. hint.unitControl = Halte [accent][[L-STRG][] und [accent]klicke[], um alliierte Einheiten oder Geschütze zu steuern. hint.unitControl.mobile = [accent][[Doppelklicke][], um alliierte Einheiten oder Geschütze zu steuern. hint.unitSelectControl = Du kannst [accent]L-Shift[] gedrückt halten, um den Steuerungsmodus zu aktivieren.\nIm Steuerungsmodus hältst du [accent]Linksklick[] gedrückt, um Einheiten auswählen zu können. Mit [accent]Rechtsklick[] bestimmst du, wo die ausgewählten Einheiten hingehen sollen. @@ -1827,9 +1833,9 @@ onset.mine.mobile = Tippe, um \uf748 [accent]Beryllium[] aus Wänden abzubauen. onset.research = Öffne das \ue875 Forschungsmenü.\nErforsche und platziere einen \uf73e [accent]Turbinenkondensator[] auf einen Schlot.\nDieser erzeugt [accent]Strom[]. onset.bore = Erforsche und platziere einen \uf741 [accent]Plasmabohrer[].\nDieser baut Rohstoffe aus Wänden automatisch ab. onset.power = Um den Plasmabohrer mit [accent]Strom[] zu versorgen, kannst du \uf73d [accent]Strahlknoten[] erforschen und bauen.\nVerbinde den Turbinenkondensator mit dem Plasmabohrer. -onset.ducts = Erforsche und platziere \uf799 [accent]Rohrleitugnen[], um die abgebauten Ressourcen zum Kern zu transportieren.\nZiehe die Maus über den Bildschirm, um mehrere Rohrleitugnen zu platzieren.\n[accent]Scrolle[], um die Richtung zu ändern. -onset.ducts.mobile = Erforsche und platziere \uf799 [accent]Rohrleitugnen[], um die abgebauten Ressourcen zum Kern zu transportieren.\n\nDrücke kurz und ziehe deinen Finger über den Bildschirm, um mehrere Rohrleitugnen zu platzieren. -onset.moremine = Erweitere den Bergbau.\nPlatziere mehr Plasmabohrer und verbinde sie mit Rohrleitugnen und Strahlknoten.\nBaue 200 Beryllium ab. +onset.ducts = Erforsche und platziere \uf799 [accent]Rohrleitungen[], um die abgebauten Ressourcen zum Kern zu transportieren.\nZiehe die Maus über den Bildschirm, um mehrere Rohrleitungen zu platzieren.\n[accent]Scrolle[], um die Richtung zu ändern. +onset.ducts.mobile = Erforsche und platziere \uf799 [accent]Rohrleitungen[], um die abgebauten Ressourcen zum Kern zu transportieren.\n\nDrücke kurz und ziehe deinen Finger über den Bildschirm, um mehrere Rohrleitungen zu platzieren. +onset.moremine = Erweitere den Bergbau.\nPlatziere mehr Plasmabohrer und verbinde sie mit Rohrleitungen und Strahlknoten.\nBaue 200 Beryllium ab. onset.graphite = Komplexere Blöcke benötigen \uf835 [accent]Graphit[].\nStelle Plasmabohrer auf, um Graphit abzubauen. onset.research2 = Fange an, [accent]Fabriken[] zu erforschen.\nEroforsche den \uf74d [accent]Klippenbohrer[] und den \uf779 [accent]Silizium-Lichtbogenofen[]. onset.arcfurnace = Der Lichtbogenofen verschmilzt \uf834 [accent]Sand[] und \uf835 [accent]Graphit[], um \uf82f [accent]Silizium[] herzustellen.\n[accent]Strom[] wird auch benötigt. @@ -1952,7 +1958,7 @@ block.inverted-sorter.description = Wie ein normaler Sortierer, aber gibt das au block.router.description = Verteilt Materialien auf bis zu drei Richtungen. block.router.details = Ein nötiges Übel. Es ist nicht empfehlenswert, ihn neben Fabriken zu setzen, da er sich dort verstopfen kann. block.distributor.description = Verteilt Materialien auf bis zu sieben Richtungen. -block.overflow-gate.description = Gibt Materialien nur zu den Seiten heraus, wenn der fordere Ausgang blockiert ist. +block.overflow-gate.description = Gibt Materialien nur zu den Seiten heraus, wenn der vordere Ausgang blockiert ist. block.underflow-gate.description = Das Gegenteil eines Überlauftors. Gibt Materialien nur nach vorne heraus, wenn die Seiten blockiert sind. block.mass-driver.description = Ein Transportblock mit sehr hoher Reichweite. Sammelt mehrere Materialien und schießt sie zu einem verbundenen Massenbeschleuniger. block.mechanical-pump.description = Eine Pumpe, die keinen Strom benötigt. @@ -2096,9 +2102,9 @@ block.reinforced-surge-wall-large.description = Beschützt Blöcke vor gegnerisc block.shielded-wall.description = Beschützt Blöcke vor gegnerischen Projektilen. Benutzt Strom, um ein Projektil-reflektierendes Schild zu erstellen. Leitet Strom. block.blast-door.description = Eine Mauer, die verbündete Bodeneinheiten durchlässt. Kann nicht manuell gesteuert werden. block.duct.description = Bewegt Materialien vorwärts. Kann nur ein einziges Item lagern. -block.armored-duct.description = Bewegt Materialien vorwärts. Materialen können von der Seite nur aus Rohrleitugnen herein. +block.armored-duct.description = Bewegt Materialien vorwärts. Materialen können von der Seite nur aus Rohrleitungen herein. block.duct-router.description = Verteilt Materialien gleichmäßig auf bis zu drei Richtungen. Nimmt Materialien nur aus einer Richtung an. Kann als Sortierer verwendet werden. -block.overflow-duct.description = Gibt Materialien nur zu den Seiten heraus, wenn der fordere Ausgang blockiert ist. +block.overflow-duct.description = Gibt Materialien nur zu den Seiten heraus, wenn der vordere Ausgang blockiert ist. block.duct-bridge.description = Transportierrt Materialen über Blöcke und Terrain. block.duct-unloader.description = Entlädt Materialen aus dem Block dahinter. Kann nicht aus Kernen entladen. block.underflow-duct.description = Das Gegenteil eines Überlauftors. Gibt Materialien nur nach vorne heraus, wenn die Seiten blockiert sind. @@ -2233,6 +2239,7 @@ lst.flushmessage = Zeige eine Nachricht aus dem Textspeicher auf dem Bildschirm. lst.cutscene = Verschiebe die Spielerkamera. lst.setflag = Setze eine Flag, die von allen Prozessoren gelesen werden kann. lst.getflag = Überprüfe, ob eine Flag gesetzt ist. +lst.setprop = Setzt eine Eigenschaft einer Einheit oder eines Blockes. logic.nounitbuild = [red]Logik, die Blöcke baut, ist hier nicht erlaubt. diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index 132498c55e..e296025013 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -458,6 +458,8 @@ waves.sort.reverse = Invertir orden waves.sort.begin = Inicio waves.sort.health = Vida waves.sort.type = Tipo +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Ocultar todo waves.units.show = Mostrar todo @@ -896,6 +898,7 @@ stat.repairspeed = Velocidad de reparación stat.weapons = Armas stat.bullet = Proyectil stat.moduletier = Categoría de módulo +stat.unittype = Unit Type stat.speedincrease = Aumento de velocidad stat.range = Alcance stat.drilltier = Taladrables @@ -989,6 +992,8 @@ bullet.splashdamage = [stat]{0}[lightgray] daño en área ~[stat] {1}[lightgray] bullet.incendiary = [stat]incendiaria bullet.homing = [stat]rastreadora bullet.armorpierce = [stat]perforación de armadura +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x proyectiles fragmentados: bullet.lightning = [stat]{0}[lightgray]x rayos ~ [stat]{1}[lightgray] daño bullet.buildingdamage = [stat]{0}%[lightgray] daño a estructuras @@ -1102,8 +1107,8 @@ setting.bridgeopacity.name = Opacidad de puentes setting.playerchat.name = Mostrar chat de burbuja de jugadores setting.showweather.name = Efectos visuales climáticos setting.hidedisplays.name = Ocultar monitores lógicos -public.confirm = ¿Quieres hacer pública tu partida?\n[lightgray]Esto se puede cambiar más tarde en "Configuración->Juego->Visibilidad pública de la partida". -public.confirm.really = ¡Si quieres jugar con amigos, usa [green]Invitar a Amigos[] en lugar de un [scarlet]Servidor Público[]!\n¿De verdad quieres hacer [scarlet]pública[] tu partida? +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 = Recuerda que no puedes crear partidas públicas en las versiones beta del juego. uiscale.reset = La escala de interfaz ha sido modificada.\nPulsa "OK" para conservar esta escala.\n[scarlet]Se desharán los cambios automáticamente en [accent] {0}[] segundos... uiscale.cancel = Cancelar y salir @@ -1230,6 +1235,7 @@ rules.buildcostmultiplier = Multiplicador de coste de construcción rules.buildspeedmultiplier = Multiplicador de velocidad de construcción rules.deconstructrefundmultiplier = Multiplicador de devolución de desconstrucción rules.waitForWaveToEnd = Las oleadas esperan a los enemigos +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Radio de zona de aterrizaje:[lightgray] (bloques) rules.unitammo = Las unidades necesitan munición rules.enemyteam = Equipo enemigo @@ -2227,6 +2233,7 @@ lst.flushmessage = Muestra un mensaje en pantalla desde la lista de espera de te lst.cutscene = Manipula la cámara del jugador. lst.setflag = Establece una etiqueta global que se puede leer desde todos los procesadores. lst.getflag = Comprueba si se ha establecido una etiqueta global. +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]No se permite construir bloques de categoría lógica. diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties index 89f3cb4ae0..894e3222c2 100644 --- a/core/assets/bundles/bundle_et.properties +++ b/core/assets/bundles/bundle_et.properties @@ -454,6 +454,8 @@ waves.sort.reverse = Reverse Sort waves.sort.begin = Begin waves.sort.health = Health waves.sort.type = Type +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Hide All waves.units.show = Show All @@ -876,6 +878,7 @@ stat.repairspeed = Repair Speed stat.weapons = Weapons stat.bullet = Bullet stat.moduletier = Module Tier +stat.unittype = Unit Type stat.speedincrease = Kiiruse suurenemine stat.range = Ulatus stat.drilltier = Kaevandatav @@ -969,6 +972,8 @@ bullet.splashdamage = [stat]{0}[lightgray] hävituspunkti ~[stat] {1}[lightgray] bullet.incendiary = [stat]süttiv bullet.homing = [stat]isesihtiv bullet.armorpierce = [stat]armor piercing +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x frag bullets: bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage bullet.buildingdamage = [stat]{0}%[lightgray] building damage @@ -1082,8 +1087,8 @@ setting.bridgeopacity.name = Bridge Opacity setting.playerchat.name = Näita mängusisest vestlusakent setting.showweather.name = Show Weather Graphics setting.hidedisplays.name = Hide Logic Displays -public.confirm = Do you want to make your game public?\n[accent]Anyone will be able to join your games.\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility. -public.confirm.really = If you want to play with friends, use [green]Invite Friend[] instead of a [scarlet]Public server[]!\nAre you sure you want to make your game [scarlet]public[]? +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 = Note that beta versions of the game cannot make public lobbies. uiscale.reset = Kasutajaliidese suurust on muudetud.\nVajuta nupule "OK", et uus suurus kinnitada.\n[scarlet]Esialgne suurus taastatakse[accent] {0}[] sekundi pärast... uiscale.cancel = Tühista ja välju @@ -1210,6 +1215,7 @@ rules.buildcostmultiplier = Ehitamise maksumuse kordaja rules.buildspeedmultiplier = Ehitamise kiiruse kordaja rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier rules.waitForWaveToEnd = Järgmine laine ootab eelmise laine lõpuni +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Maandumisala raadius:[lightgray] (ühik) rules.unitammo = Units Require Ammo rules.enemyteam = Enemy Team @@ -2187,6 +2193,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w 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. +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]Unit building logic is not allowed here. lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string. lenum.shoot = Shoot at a position. diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties index a52413c031..2e47f50f85 100644 --- a/core/assets/bundles/bundle_eu.properties +++ b/core/assets/bundles/bundle_eu.properties @@ -456,6 +456,8 @@ waves.sort.reverse = Reverse Sort waves.sort.begin = Begin waves.sort.health = Health waves.sort.type = Type +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Hide All waves.units.show = Show All @@ -878,6 +880,7 @@ stat.repairspeed = Repair Speed stat.weapons = Weapons stat.bullet = Bullet stat.moduletier = Module Tier +stat.unittype = Unit Type stat.speedincrease = Abiadura areagotzea stat.range = Irismena stat.drilltier = Ustiagarriak @@ -971,6 +974,8 @@ bullet.splashdamage = [stat]{0}[lightgray] ingurune-kaltea ~[stat] {1}[lightgray bullet.incendiary = [stat]su-eragilea bullet.homing = [stat]gidatua bullet.armorpierce = [stat]armor piercing +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x frag bullets: bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage bullet.buildingdamage = [stat]{0}%[lightgray] building damage @@ -1084,8 +1089,8 @@ setting.bridgeopacity.name = Bridge Opacity setting.playerchat.name = Erakutsi jolas barneko txata setting.showweather.name = Show Weather Graphics setting.hidedisplays.name = Hide Logic Displays -public.confirm = Zure jolasa publikoa egin nahi duzu?\n[accent]Edonor elkartu ahal izango da zure partidetara.\n[lightgray]Hau gero ere aldatu dauteke, Ezarpenak->Partida->Partida publikoaren ikusgaitasuna. -public.confirm.really = If you want to play with friends, use [green]Invite Friend[] instead of a [scarlet]Public server[]!\nAre you sure you want to make your game [scarlet]public[]? +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 = Kontuan izan jolasaren beta bertsioek ezin dituztela jokalarien gela publokoak sortu. uiscale.reset = Interfazearen eskala aldatu da.\nSakatu "Ados" eskala hau berresteko.\n[scarlet][accent] {0}[] segundo atzera egin eta irteteko... uiscale.cancel = Utzi eta irten @@ -1212,6 +1217,7 @@ rules.buildcostmultiplier = Eraikitze kostu-biderkatzailea rules.buildspeedmultiplier = Eraikitze abiadura-biderkatzailea rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier rules.waitForWaveToEnd = Atzeratu bolada etsairik geratzen bada +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Erruntze puntuaren erradioa:[lightgray] (lauzak) rules.unitammo = Units Require Ammo rules.enemyteam = Enemy Team @@ -2189,6 +2195,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w 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. +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]Unit building logic is not allowed here. lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string. lenum.shoot = Shoot at a position. diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties index d73dc6346e..74a28f1242 100644 --- a/core/assets/bundles/bundle_fi.properties +++ b/core/assets/bundles/bundle_fi.properties @@ -454,6 +454,8 @@ waves.sort.reverse = Järjestä käänteisesti waves.sort.begin = Alkutaso waves.sort.health = Elämäpisteet waves.sort.type = Tyyppi +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Piilota kaikki waves.units.show = Näytä kaikki @@ -875,6 +877,7 @@ stat.repairspeed = Korjausnopeus stat.weapons = Aseet stat.bullet = Ammus stat.moduletier = Moduulin taso +stat.unittype = Unit Type stat.speedincrease = Nopeuden kasvu stat.range = Etäisyys stat.drilltier = Porattavat @@ -968,6 +971,8 @@ bullet.splashdamage = [stat]{0}[lightgray] Aluevahinko ~[stat] {1}[lightgray] pa bullet.incendiary = [stat]sytyttävä bullet.homing = [stat]itseohjautuva bullet.armorpierce = [stat]haarniskan läpäisevä +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x sirpaleammuksia: bullet.lightning = [stat]{0}[lightgray]x salama ~ [stat]{1}[lightgray] vahinkoa bullet.buildingdamage = [stat]{0}%[lightgray] vahinko rakennuksiin @@ -1081,8 +1086,8 @@ setting.bridgeopacity.name = Siltojen läpinäkyvyys setting.playerchat.name = Näytä pelinsisäinen keskustelu setting.showweather.name = Näytä säägrafiikat setting.hidedisplays.name = Piilota logiikkanäytöt -public.confirm = Haluatko tehdä pelistäsi julkisen?\n[accent]Kuka tahansa voi liittyä peliisi.\n[lightgray]Tämä voidaan muuttaa myöhemmin: Asetukset->Peli->Julkisen pelin näkyvyys -public.confirm.really = Jos halat pelata kaverien kanssa, käytä [green]Kutsu kaveri[] -toimintoa, älä [scarlet]Julkinen palvelin[] -toimintoa!\nOletko varma, että haluat tehdä pelistäsi [scarlet]julkisen[]? +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 = Huomaa, että pelin betaversiot eivät voi luoda julkisia auloja. uiscale.reset = UI:n skaalaa on muutettu.\nPaina "OK" hyväksyäksesi tämän skaalan.\n[scarlet]Palautetaan ja poistutaan[accent] {0}[] sekunnissa... uiscale.cancel = Peruuta ja poistu @@ -1209,6 +1214,7 @@ rules.buildcostmultiplier = Rakentamisen hintakerroin rules.buildspeedmultiplier = Rakentamisen nopeuskerroin rules.deconstructrefundmultiplier = Purkamisen palautuskerroin rules.waitForWaveToEnd = Tasot odottavat edellisen tason loppumista +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Syntypisteen säde:[lightgray] (laattoina) rules.unitammo = Yksiköt tarvitsevat ammuksia rules.enemyteam = Vihollisjoukkue @@ -2190,6 +2196,7 @@ lst.flushmessage = Näytä näytöllä viesti tekstipuskurista.\nOdottaa, kunnes lst.cutscene = Hallitse pelaajan kameraa. lst.setflag = Aseta globaali tunniste, jonka kaikki prosessorit voivat lukea. lst.getflag = Tarkista, onko globaali tunniste asetettu. +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]Logiikan käyttö ei täällä ole sallittu yksikköjen tuottamisessa. lenum.type = Rakennuksen/Yksikön tyyppi.\nEsim. jokaisesta reitittimestä tämä palauttaa [accent]@router[].\nEi ole merkkijono. lenum.shoot = Ammu tiettyä sijaintia. diff --git a/core/assets/bundles/bundle_fil.properties b/core/assets/bundles/bundle_fil.properties index d2991e1921..fd1aa8c608 100644 --- a/core/assets/bundles/bundle_fil.properties +++ b/core/assets/bundles/bundle_fil.properties @@ -454,6 +454,8 @@ waves.sort.reverse = Pabaliktad na Sort waves.sort.begin = Simula waves.sort.health = Health waves.sort.type = Uri +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Itago lahat waves.units.show = Ipakita lahat @@ -875,6 +877,7 @@ stat.repairspeed = Repair Speed stat.weapons = Weapons stat.bullet = Bullet stat.moduletier = Module Tier +stat.unittype = Unit Type stat.speedincrease = Speed Increase stat.range = Range stat.drilltier = Drillables @@ -968,6 +971,8 @@ bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bullet.incendiary = [stat]incendiary bullet.homing = [stat]homing bullet.armorpierce = [stat]armor piercing +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x frag bullets: bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage bullet.buildingdamage = [stat]{0}%[lightgray] building damage @@ -1081,8 +1086,8 @@ setting.bridgeopacity.name = Bridge Opacity setting.playerchat.name = Ipakita Player Bubble Chat setting.showweather.name = Show Weather Graphics setting.hidedisplays.name = Hide Logic Displays -public.confirm = Do you want to make your game public?\n[accent]Anyone will be able to join your games.\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility. -public.confirm.really = If you want to play with friends, use [green]Invite Friend[] instead of a [scarlet]Public server[]!\nAre you sure you want to make your game [scarlet]public[]? +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 = Tandaan na ang mga beta na bersyon ng laro ay hindi maaaring gumawa ng mga pampublikong lobby. uiscale.reset = Nabago ang sukat ng UI.\nPindutin ang "OK" upang kumpirmahin ang sukat na ito.\n[scarlet]Binabalik at lalabas sa dating anyo ng[accent] {0}[] segundo... uiscale.cancel = I-Cancel & Exit @@ -1209,6 +1214,7 @@ rules.buildcostmultiplier = Build Cost Multiplier rules.buildspeedmultiplier = Build Speed Multiplier rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier rules.waitForWaveToEnd = Waves Wait for Enemies +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Drop Zone Radius:[lightgray] (tiles) rules.unitammo = Units Require Ammo rules.enemyteam = Enemy Team @@ -2186,6 +2192,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w 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. +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]Unit building logic is not allowed here. lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string. lenum.shoot = Shoot at a position. diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index 696fcb90f6..f3751cd082 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -462,6 +462,8 @@ waves.sort.reverse = Tri inversé waves.sort.begin = Vague waves.sort.health = Santé waves.sort.type = Type +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Masquer tout waves.units.show = Afficher tout @@ -900,6 +902,7 @@ stat.repairspeed = Vitesse de réparation stat.weapons = Armes stat.bullet = Balles stat.moduletier = Tier +stat.unittype = Unit Type stat.speedincrease = Accélération stat.range = Portée stat.drilltier = Blocs forables @@ -993,6 +996,8 @@ bullet.splashdamage = [stat]{0}[lightgray] dégâts de zone ~[stat] {1}[lightgra bullet.incendiary = [stat]incendiaire bullet.homing = [stat]autoguidé bullet.armorpierce = [stat]perceur d'armure +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x Balle à fragmentation : bullet.lightning = [stat]{0}[lightgray]x foudre ~ [stat]{1}[lightgray] dégâts bullet.buildingdamage = [stat]{0}%[lightgray] des dégâts aux bâtiments @@ -1106,8 +1111,8 @@ setting.bridgeopacity.name = Opacité des ponts setting.playerchat.name = Montrer les bulles de discussion des joueurs setting.showweather.name = Montrer les Effets météo setting.hidedisplays.name = Cacher les Écrans -public.confirm = Voulez-vous rendre votre partie publique ?\n[accent]N'importe qui pourra rejoindre vos parties.\n[lightgray]Ce paramètre peut être changé plus tard dans Paramètres->Jeu->Visibilité de la Partie Publique -public.confirm.really = Si vous voulez jouer avec des amis, utilisez [green]Inviter un Ami[] Au lieu [scarlet]d'un Serveur Public[] !\nÊtes-vous sûrs de vouloir rendre votre partie [scarlet]publique[] ? +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 = Notez que les versions bêta du jeu ne peuvent pas créer de salons publics. uiscale.reset = L'échelle de l'interface a été modifiée.\nAppuyez sur "OK" pour confirmer.\n[scarlet]Rétablissement des anciens paramètres et fermeture du jeu dans [accent] {0}[] secondes... uiscale.cancel = Annuler & Quitter @@ -1234,6 +1239,7 @@ rules.buildcostmultiplier = Multiplicateur du prix de construction rules.buildspeedmultiplier = Multiplicateur du temps de construction rules.deconstructrefundmultiplier = Multiplicateur du remboursement lors de la déconstruction rules.waitForWaveToEnd = Les Vagues attendent la mort des ennemis +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Rayon d'Apparition des ennemis :[lightgray] (tuiles) rules.unitammo = Les Unités nécessitent des munitions rules.enemyteam = Équipe ennemie @@ -2233,6 +2239,7 @@ lst.flushmessage = Affiche un message sur l'écran depuis la mémoire tampon de lst.cutscene = Manipule la caméra du joueur. lst.setflag = Définit un drapeau global qui peut être lu par tous les processeurs. lst.getflag = Vérifie si un drapeau global est présent. +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]Les unités contrôlées par des processeurs ne peuvent pas construire ici. diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index 6d4f29a061..1dece0fe43 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -457,6 +457,8 @@ waves.sort.reverse = Rendezés visszafelé waves.sort.begin = Begin waves.sort.health = Élet waves.sort.type = Típus +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Hide All waves.units.show = Show All @@ -885,6 +887,7 @@ stat.repairspeed = Repair Speed stat.weapons = Fegyverek stat.bullet = Töltény stat.moduletier = Module Tier +stat.unittype = Unit Type stat.speedincrease = Gyorsítás stat.range = Hatótáv stat.drilltier = Kitermelhető @@ -978,6 +981,8 @@ bullet.splashdamage = [stat]{0}[lightgray] területi sebzés ~[stat] {1}[lightgr bullet.incendiary = [stat]gyújtó bullet.homing = [stat]nyomkövető bullet.armorpierce = [stat]armor piercing +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x frag bullets: bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage bullet.buildingdamage = [stat]{0}%[lightgray] épület sebzés @@ -1091,8 +1096,8 @@ setting.bridgeopacity.name = Híd átlátszatlansága setting.playerchat.name = Játékos szóbuborékok megjelenítése setting.showweather.name = Időjárás grafika megjelenítése setting.hidedisplays.name = Hide Logic Displays -public.confirm = Szeretnéd a játékot nyilvánossá tenni?\n[accent]Bárki beléphet a játékaidba.\n[lightgray]Ezt később megváltoztathatod a Beállítások->Játék->Nyilvános játék láthatósága menüpontban. -public.confirm.really = Ha a barátaiddal szeretnél játszani, használd a [green]Barátok meghívása[] funkciót [scarlet]Nyilvános szerver[] helyett!\nBiztosan szeretnéd, hogy a játékod [scarlet]nyilvános[] legyen? +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 = Ne feledd, hogy a játék béta verziójában nem tudsz nyilvános szobát nyitni. uiscale.reset = Az UI 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.cancel = Mégse és Kilépés @@ -1219,6 +1224,7 @@ rules.buildcostmultiplier = Építési költség szorzó rules.buildspeedmultiplier = Építési sebesség szorzó rules.deconstructrefundmultiplier = Bontási visszatérítés szorzó rules.waitForWaveToEnd = Waves Wait for Enemies +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Ledobási zóna sugara:[lightgray] (mező) rules.unitammo = Egységeknek kell lövedék rules.enemyteam = Enemy Team @@ -2198,6 +2204,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w 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. +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]Unit building logic is not allowed here. lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string. lenum.shoot = Shoot at a position. diff --git a/core/assets/bundles/bundle_id_ID.properties b/core/assets/bundles/bundle_id_ID.properties index 47146a103c..cfdefefde6 100644 --- a/core/assets/bundles/bundle_id_ID.properties +++ b/core/assets/bundles/bundle_id_ID.properties @@ -458,6 +458,8 @@ waves.sort.reverse = Urut Balik waves.sort.begin = Mulai waves.sort.health = Darah waves.sort.type = Tipe +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Sembunyikan Semua waves.units.show = Lihat Semua @@ -896,6 +898,7 @@ stat.repairspeed = Kecepatan Memperbaiki stat.weapons = Senjata stat.bullet = Peluru stat.moduletier = Tingkatan Modul +stat.unittype = Unit Type stat.speedincrease = Tambahan Kecepatan stat.range = Jarak stat.drilltier = Sumber Daya yang Ditambang @@ -989,6 +992,8 @@ bullet.splashdamage = [stat]{0}[lightgray] kekuatan percikan~[stat] {1}[lightgra bullet.incendiary = [stat]membakar bullet.homing = [stat]mengejar bullet.armorpierce = [stat]menembus baju besi +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: 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 @@ -1102,8 +1107,8 @@ setting.bridgeopacity.name = Jelas-Beningnya Jembatan setting.playerchat.name = Tunjukkan Pesan dalam Permainan setting.showweather.name = Perlihatkan Cuaca setting.hidedisplays.name = Sembunyikan Tampilan Logika -public.confirm = Apakah kamu ingin mempublikasi permainanmu?\n[accent]Siapa saja bisa masuk ke permainanmu.\n[lightgray]Ini bisa diganti di Peraturan->Permainan->Visibilitas Game Publik. -public.confirm.really = Jika kamu ingin bermain dengan temanmu, gunakan [green]Undang Teman[] daripada [scarlet]server publik[]!\nApakah kamu yakin ingin membuat permainanmu [scarlet]publik[]? +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. uiscale.reset = Skala UI telah diubah.\nTekan "OK" untuk mengonfirmasi.\n[scarlet]Kembali dan keluar di[accent] {0}[] pengaturan... uiscale.cancel = Batal & Keluar @@ -1230,6 +1235,7 @@ rules.buildcostmultiplier = Penggandaan Harga Bangunan rules.buildspeedmultiplier = Penggandaan Waktu Pembuatan Bangunan 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.enemyteam = Tim Musuh @@ -2225,6 +2231,7 @@ 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. logic.nounitbuild = [red]Logika unit membangun tidak diperbolehkan di sini. diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties index 463f6f00af..fe034bffa3 100644 --- a/core/assets/bundles/bundle_it.properties +++ b/core/assets/bundles/bundle_it.properties @@ -49,7 +49,7 @@ mods.browser.noreleases = [scarlet]Nessuna versione trovata\n[accent]Cerca se la mods.browser.latest = mods.browser.releases = Versioni mods.github.open = Repo -mods.github.open-release = Pagina delle versioni di mindustry +mods.github.open-release = Pagina delle versioni di Mindustry mods.browser.sortdate = Ordinato per data mods.browser.sortstars = Ordinato per stelle @@ -149,7 +149,7 @@ mod.unmetdependencies = [red]Unmet Dependencies mod.erroredcontent = [scarlet]Errori di Contenuto 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.requiresversion.details = Richiede la versione del gioco: [accent]{0}[]\nIl tuo gioco è obsoleto. Questa mod richiede una versione più recente del gioco (possibilmente una versione beta/alpha) per funzionare. 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} @@ -328,7 +328,7 @@ open = Apri customize = Personalizza cancel = Annulla command = Comando -command.mine = Mine +command.mine = Mina command.repair = Ripara command.rebuild = Ricostruisci command.assist = Aiuta giocatore @@ -456,6 +456,8 @@ waves.sort.reverse = Inverti ordine waves.sort.begin = Inizia waves.sort.health = Salute waves.sort.type = Tipo +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Nascondi tutto waves.units.show = Mostra tutto @@ -763,8 +765,8 @@ sector.windsweptIslands.description = Oltre la fascia costiera si trova questo r sector.extractionOutpost.description = Un avamposto remoto, costruito dai nemici con l'obiettivo di lanciare risorse in altri settori.\n\nLa tecnologia di trasposto a settori-incrociati è essenziale per un ulteriore conquista. Distruggi la base. scopri la loro Rampa di Lancio. sector.impact0078.description = Qui giaciono i resti della nave da trasporto interstellare che fu la prima ad entrare in questo sistema.\n\nRecupera per quanto possibile dal relitto. Scopri qualsiasi tecnologia intatta. 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 = 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.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.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Nome @@ -837,7 +839,7 @@ paused = [accent]< In Pausa > clear = Pulisci banned = [scarlet]Bandito unsupported.environment = [scarlet]Ambiente non supportato -yes = Si +yes = Sì no = No info.title = Info error.title = [scarlet]Si è verificato un errore @@ -875,13 +877,14 @@ stat.poweruse = Consumo Energetico stat.powerdamage = Energia/Danno stat.itemcapacity = Capacità Oggetti stat.memorycapacity = Capacità di Memoria -stat.basepowergeneration = Generazione Minina di Energia +stat.basepowergeneration = Generazione Minima di Energia stat.productiontime = Tempo di Produzione stat.repairtime = Tempo di Riparazione Completa stat.repairspeed = Velocità di riparazione stat.weapons = Armi stat.bullet = Proiettile stat.moduletier = Grado del modulo +stat.unittype = Unit Type stat.speedincrease = Potenziamento Velocità stat.range = Raggio stat.drilltier = Scavabili @@ -891,7 +894,7 @@ stat.maxunits = Unità Attive Massime stat.health = Salute stat.armor = Armatura stat.buildtime = Tempo di Costruzione -stat.maxconsecutive = Limite Consecutive +stat.maxconsecutive = Limite Consecutivi stat.buildcost = Costo di Costruzione stat.inaccuracy = Inaccuratezza stat.shots = Colpi @@ -975,6 +978,8 @@ bullet.splashdamage = [stat]{0}[lightgray] danno ad area ~[stat] {1}[lightgray] bullet.incendiary = [stat]incendiario bullet.homing = [stat]autoguidato bullet.armorpierce = [stat]perforazione alle armature +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x frammentazione: bullet.lightning = [stat]{0}[lightgray]x fulmine ~ [stat]{1}[lightgray] danno bullet.buildingdamage = [stat]{0}%[lightgray] danno alle costruzioni @@ -982,9 +987,9 @@ bullet.knockback = [stat]{0}[lightgray] contraccolpo bullet.pierce = [stat]{0}[lightgray]x perforazione bullet.infinitepierce = [stat]perforazione bullet.healpercent = [stat]{0}[lightgray]% guarigione -bullet.healamount = [stat]{0}[lightgray] qquantità di cura +bullet.healamount = [stat]{0}[lightgray] quantità di cura bullet.multiplier = [stat]{0}[lightgray]x moltiplicatore munizioni -bullet.reload = [stat]{0}[lightgray]x ricarica +bullet.reload = [stat]{0}%[lightgray] ricarica bullet.range = [stat]{0}[lightgray] raggio in blocchi unit.blocks = blocchi @@ -1017,13 +1022,13 @@ category.items = Oggetti category.crafting = Produzione category.function = Funzione category.optional = Miglioramenti Opzionali -setting.skipcoreanimation.name = Salta il lancio del nucleo/Animazionw +setting.skipcoreanimation.name = Salta il lancio del nucleo/Animazione setting.landscape.name = Visuale Orizontale setting.shadows.name = Ombre setting.blockreplace.name = Suggerimento Blocchi Automatico setting.linear.name = Filtro Lineare setting.hints.name = Suggerimenti -setting.logichints.name = Suggerimenti +setting.logichints.name = Suggerimenti sulla logica setting.backgroundpause.name = Metti in pausa quando in background setting.buildautopause.name = Pausa Automatica nella Costruzione setting.doubletapmine.name = Doppio click per minare @@ -1049,7 +1054,7 @@ 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) +setting.bloomintensity.name = Intensità d'illuminazione (Bloom Intensity) setting.bloomblur.name = Illuminazione sfocata (Bloom Blur) setting.effects.name = Visualizza Effetti setting.destroyedblocks.name = Visualizza Blocchi Distrutti @@ -1069,7 +1074,7 @@ setting.smoothcamera.name = Visuale fluida setting.vsync.name = VSync setting.pixelate.name = Pixellato setting.minimap.name = Mostra Minimappa -setting.coreitems.name = Mostra Oggetti Nucleo (WIP) +setting.coreitems.name = Mostra Oggetti Nucleo setting.position.name = Mostra Posizione Giocatori setting.mouseposition.name = Mostra mouse setting.musicvol.name = Volume Musica @@ -1088,8 +1093,8 @@ setting.bridgeopacity.name = Opacità Nastri e Condotti Sopraelevati setting.playerchat.name = Mostra Chat setting.showweather.name = Mostra grafica del meteo setting.hidedisplays.name = Nascondi display logici -public.confirm = Vuoi rendere la tua partita pubblica?\n[accent]Chiunque sarà in grado di accedere alle tue partite.\n[lightgray]Questo può essere modificato più tardi in Impostazioni->Gioco->Partite Pubbliche. -public.confirm.really = Se vuoi giocare con gli amici, usa [green]Invita Amico[] Al posto di un [scarlet]server pubblico[]!\nSicuro di voler rendere [scarlet]pubblica[] la tua partita? +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 = Nota che le versioni beta del gioco non possono creare lobby pubbliche. uiscale.reset = La scala dell'interfaccia utente è stata modificata.\nPremere 'OK' per confermare questa scala.\n[scarlet]Ripristina ed esci in [accent] {0}[] secondi... uiscale.cancel = Annulla ed Esci @@ -1159,9 +1164,9 @@ keybind.chat.name = Chat keybind.player_list.name = Lista dei Giocatori keybind.console.name = Console keybind.rotate.name = Ruota -keybind.rotateplaced.name = Ruota Blocco Esistente (premuto) +keybind.rotateplaced.name = Ruota Blocco Esistente (mantenere premuto) keybind.toggle_menus.name = Mostra/Nascondi Menu -keybind.chat_history_prev.name = Scorri Chat vero l'alto +keybind.chat_history_prev.name = Scorri Chat verso l'alto keybind.chat_history_next.name = Scorri Chat verso il basso keybind.chat_scroll.name = Scorri Chat keybind.chat_mode.name = Cambia modalità chat @@ -1190,8 +1195,8 @@ rules.wavesending = Wave Sending rules.waves = Ondate rules.attack = Modalità Attacco rules.rtsai = RTS AI -rules.rtsminsquadsize = Dimensione squadra minima -rules.rtsmaxsquadsize = Dimensione squadra massima +rules.rtsminsquadsize = Dimensione minima squadra +rules.rtsmaxsquadsize = Dimensione massima squadra rules.rtsminattackweight = Min Attack Weight rules.cleanupdeadteams = Cancella costruzioni delle squadre sconfitte (PvP) rules.corecapture = Cattura nucleo alla distruzione @@ -1216,6 +1221,7 @@ rules.buildcostmultiplier = Moltiplicatore Costo Costruzione rules.buildspeedmultiplier = Moltiplicatore Velocità Costruzione rules.deconstructrefundmultiplier = Moltiplicatore Rimborso di Smantellamento rules.waitForWaveToEnd = Le ondate aspettano fino a quando l'ondata precedente finisce +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Raggio di Generazione:[lightgray] (blocchi) rules.unitammo = Unità Richiedono Munizioni rules.enemyteam = Squadra avversaria @@ -1413,7 +1419,7 @@ block.dirt.name = Terra block.dirt-wall.name = Muro di Terra block.mud.name = Fango block.white-tree-dead.name = Albero Bianco Morto -block.white-tree.name = Albero Morto +block.white-tree.name = Albero Bianco block.spore-cluster.name = Agglomerato di Spore block.metal-floor.name = Pavimento Metallico 1 block.metal-floor-2.name = Pavimento Metallico 2 @@ -1547,7 +1553,7 @@ block.segment.name = Segmentatore block.ground-factory.name = Fabbrica Terrestre block.air-factory.name = Fabbrica Aerea block.naval-factory.name = Fabbrica Navale -block.additive-reconstructor.name = Ricostruttore Adattivo +block.additive-reconstructor.name = Ricostruttore Additivo block.multiplicative-reconstructor.name = Ricostruttore Moltiplicativo block.exponential-reconstructor.name = Ricostruttore Esponenziale block.tetrative-reconstructor.name = Ricostruttore Tetrattivo @@ -2142,31 +2148,31 @@ unit.omura.description = Utilizza un bullone sparatato grazie a due binari a sco unit.alpha.description = Difende il nucleo Frammento dai nemici. Costruisce strutture. unit.beta.description = Difende il nucleo Fondamento dai nemici. Costruisce strutture. unit.gamma.description = Difende il nucleo Kernel dai nemici. Costruisce strutture. -unit.retusa.description = Fires homing torpedoes at nearby enemies. Repairs allied units. -unit.oxynoe.description = Fires structure-repairing streams of flame at nearby enemies. Targets nearby enemy projectiles with a point defense turret. -unit.cyerce.description = Fires seeking cluster-missiles at enemies. Repairs allied units. -unit.aegires.description = Shocks all enemy units and structures that enter its energy field. Repairs all allies. -unit.navanax.description = Fires explosive EMP projectiles, dealing significant damage to enemy power networks and repairing allied structures. Melts nearby enemies with 4 autonomous laser turrets. -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. -lst.read = Read a number from a linked memory cell. -lst.write = Write a number to a linked memory cell. +unit.retusa.description = Lancia siluri di puntamento contro i nemici vicini. Ripara le unità alleate. +unit.oxynoe.description = Spara flussi di fiamme che riparano le strutture ai nemici vicini. Bersaglia i proiettili nemici nelle vicinanze con una torretta di difesa. +unit.cyerce.description = Spara missili a grappolo contro i nemici. Ripara le unità alleate. +unit.aegires.description = Scuote tutte le unità e le strutture nemiche che entrano nel suo campo energetico. Ripara tutti gli alleati. +unit.navanax.description = Spara proiettili EMP esplosivi, infliggendo danni significativi alle reti elettriche nemiche e riparando le strutture alleate. Scioglie i nemici vicini con 4 torrette laser autonome. +unit.stell.description = Spara proiettili standard contro i bersagli nemici. +unit.locus.description = Spara proiettili alternati contro i bersagli nemici. +unit.precept.description = Spara proiettili a grappolo perforanti contro i bersagli nemici. +unit.vanquish.description = Spara grandi proiettili perforanti contro i bersagli nemici. +unit.conquer.description = Spara grandi cascate di proiettili perforanti contro i bersagli nemici. +unit.merui.description = Spara con l'artiglieria a lungo raggio contro bersagli terrestri nemici. Può superare la maggior parte dei terreni. +unit.cleroi.description = Spara proiettili doppi contro i bersagli nemici. Bersaglia i proiettili nemici con le torrette di difesa. Può superare la maggior parte dei terreni. +unit.anthicus.description = Spara missili a lunga gittata contro i bersagli nemici. Può superare la maggior parte dei terreni. +unit.tecta.description = Spara missili al plasma a puntamento interno contro i bersagli nemici. Si protegge con uno scudo direzionale. Può superare la maggior parte dei terreni. +unit.collaris.description = Spara con l'artiglieria a frammentazione a lungo raggio contro gli obiettivi nemici. Può superare la maggior parte dei terreni. +unit.elude.description = Spara coppie di proiettili di puntamento contro i bersagli nemici. Può galleggiare su corpi liquidi. +unit.avert.description = Spara coppie di proiettili a spirale contro i bersagli nemici. +unit.obviate.description = Spara coppie di fulmini a spirale contro i bersagli nemici. +unit.quell.description = Spara missili di puntamento a lungo raggio contro gli obiettivi nemici. Sopprime i blocchi di riparazione delle strutture nemiche. +unit.disrupt.description = Spara missili di soppressione a lungo raggio contro gli obiettivi nemici. Sopprime i blocchi di riparazione delle strutture nemiche. +unit.evoke.description = Costruisce strutture per difendere il nucleo del Bastione. Ripara le strutture con un raggio. +unit.incite.description = Costruisce strutture per difendere il nucleo della Cittadella. Ripara le strutture con un raggio. +unit.emanate.description = Costruisce strutture per difendere il nucleo dell'Acropoli. Ripara le strutture con le travi. +lst.read = Leggi un numero da una cella di memoria collegata. +lst.write = Scrivi un numero in una cella di memoria collegata. lst.print = Add text to the print buffer.\nDoes not display anything until [accent]Print Flush[] is used. lst.draw = Add an operation to the drawing buffer.\nDoes not display anything until [accent]Draw Flush[] is used. lst.drawflush = Flush queued [accent]Draw[] operations to a display. @@ -2200,6 +2206,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w 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. +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]Unit building logic is not allowed here. lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string. lenum.shoot = Shoot at a position. diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index ec3b65a271..d92ff76894 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -458,6 +458,8 @@ waves.sort.reverse = 降順 waves.sort.begin = 開始 waves.sort.health = 体力 waves.sort.type = タイプ +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = すべて非表示 waves.units.show = すべて表示 @@ -888,6 +890,7 @@ stat.repairspeed = 修復速度 stat.weapons = 武器 stat.bullet = 弾丸 stat.moduletier = モジュールレベル +stat.unittype = Unit Type stat.speedincrease = 速度向上 stat.range = 範囲 stat.drilltier = ドリル @@ -981,6 +984,8 @@ bullet.splashdamage = [stat]{0}[lightgray] 範囲ダメージ 約[stat] {1}[ligh bullet.incendiary = [stat]焼夷弾 bullet.homing = [stat]追尾弾 bullet.armorpierce = [stat]アーマー貫通 +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x frag bullets: bullet.lightning = [stat]{0}[lightgray]x ライトニング ~ [stat]{1}[lightgray] ダメージ bullet.buildingdamage = [stat]{0}%[lightgray] 対物ダメージ @@ -1094,8 +1099,8 @@ setting.bridgeopacity.name = ブリッジの透明度 setting.playerchat.name = ゲーム内にチャットを表示 setting.showweather.name = 天気のグラフィックを表示 setting.hidedisplays.name = 描画されているロジックディスプレイを非表示 -public.confirm = ゲームを公開しますか?\n[accent]誰でもゲームに参加できるようになります。\n[lightgray]あとから設定で変更できます。 -public.confirm.really = フレンドと遊びたい場合は、[scarlet]公開サーバー[] ではなく [green]フレンド招待[] を使おう!\nゲームを [scarlet]公開[]してもよろしいですか? +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 = ベータ版では使用できません。 uiscale.reset = UIサイズが変更されました。\nこのままでよければ「OK」を押してください。\n[scarlet][accent]{0}[] 秒で元の設定に戻ります... uiscale.cancel = キャンセル & 終了 @@ -1222,6 +1227,7 @@ rules.buildcostmultiplier = 建設コストの倍率 rules.buildspeedmultiplier = 建設速度の倍率 rules.deconstructrefundmultiplier = ブロック破壊時の還元倍率 rules.waitForWaveToEnd = 敵が倒されるまでウェーブの進行を中断 +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = 出現範囲の半径:[lightgray] (タイル) rules.unitammo = ユニットは弾丸が必要 rules.enemyteam = 敵チーム @@ -2204,6 +2210,7 @@ lst.flushmessage = テキストバッファから画面にメッセージを表 lst.cutscene = プレイヤーのカメラを操作します。 lst.setflag = 全プロセッサーから読み取れるグローバルフラグを設定します。 lst.getflag = グローバルフラグが設定されているかどうかを確認します。 +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]ここではユニット構築ロジックは使用できません。 lenum.type = ユニットや建物の種類を取得します。\n例:任意のルーターに対して、 [accent]@router[] を返します。\n文字列ではありません。 lenum.shoot = 指定した座標に向かって撃ちます。 diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index b6554aa04c..3e880da2af 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -149,15 +149,15 @@ mod.incompatiblemod = [red]호환되지 않음 mod.blacklisted = [red]지원하지 않음 mod.unmetdependencies = [red]충촉되지 않은 종속성 mod.erroredcontent = [scarlet]콘텐츠 오류 -mod.circulardependencies = [red]Circular Dependencies -mod.incompletedependencies = [red]Incomplete Dependencies +mod.circulardependencies = [red]순환 의존성 +mod.incompletedependencies = [red]불완전한 의존성 mod.requiresversion.details = 게임 버전 요구: [accent]{0}[]\n당신의 게임은 구버전입니다. 이 모드가 작동하려면 최신 버전의 게임이 필요합니다. (베타/알파 릴리즈일 가능성이 있음). mod.outdatedv7.details = 이 모드는 최신 버전의 게임과 호환되지 않습니다. 반드시 작성자가 업데이트해야 하고, [accent]mod.json[] 파일에 [accent]최소게임버전: 136[]을 추가해야 합니다. mod.blacklisted.details = 이 모드는 이 버전의 게임에서 충돌 또는 기타 문제를 일으키는 것으로 인해 수동으로 블랙리스트에 올라와 있습니다. 사용하지 마세요. mod.missingdependencies.details = 이 모드에는 종속성이 없음: {0} mod.erroredcontent.details = 이 게임은 로딩하는 동안 오류가 발생했습니다. 모드 작성자에게 수정하도록 요청하세요. -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.circulardependencies.details = 이 모드는 서로 의존하는 의존성을 지니고 있습니다. +mod.incompletedependencies.details = 잘못되었거나 누락한 종속성으로 인해 이 모드를 불러올 수 없습니다: {0}. mod.requiresversion = 필요한 게임 버전: [red]{0} mod.errors = 콘텐츠를 불러오는 중에 오류가 발생함 mod.noerrorplay = [scarlet]오류가 있는 모드가 있습니다.[] 영향을 받는 모드를 비활성화하거나 플레이하기 전에 오류를 수정하세요. @@ -335,7 +335,7 @@ command.repair = 수리 command.rebuild = 재건 command.assist = 플레이어 지원 command.move = 이동 -command.boost = Boost +command.boost = 비행 openlink = 링크 열기 copylink = 링크 복사 back = 뒤로가기 @@ -411,11 +411,11 @@ editor.mapinfo = 맵 정보 editor.author = 제작자: editor.description = 설명: editor.nodescription = 맵을 공유하려면 최소 4자 이상의 설명이 있어야 합니다. -editor.waves = 단계: -editor.rules = 규칙: -editor.generation = 지형 생성: +editor.waves = 단계 +editor.rules = 규칙 +editor.generation = 지형 생성 editor.objectives = 목표 -editor.ingame = 인 게임 편집 +editor.ingame = 인게임 편집 editor.playtest = 맵 테스트 editor.publish.workshop = 창작마당 게시 editor.newmap = 맵 만들기 @@ -457,6 +457,8 @@ waves.sort.reverse = 정렬 뒤집기 waves.sort.begin = 시작 단계 waves.sort.health = 체력 waves.sort.type = 기체 유형 +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = 모두 숨기기 waves.units.show = 모두 보이기 @@ -795,7 +797,7 @@ sector.atlas.description = 이 지역은 각기 다른 지형을 포함하고 sector.split.description = 이 지역에 최소한으로 존재하는 적 주둔군은 새로운 운송 기술을 시험하기에 완벽합니다. sector.basin.description = {임시}\n\n현재의 마지막 지역. 이 지역은 도전 레벨입니다 - 이후 릴리즈에서 많은 지역이 더 추가될 예정입니다. sector.marsh.description = 이 지역은 아르키사이트가 풍부하지만 분출구의 수는 한정적입니다.\n[accent]화학적 연소실[]을 건설하여 전력을 생산하시오. -sector.peaks.description = 이 지역의 산악 지형은 대부분의 기체를 무용지물로 만들었습니다. 비행 기체가 필요합니다.\n적의 방공망에 유의하십시오. 일부 시설은 지원 건물을 공격하여 무력화시킬 수 있습니다. +sector.peaks.description = 이 지역의 산악 지형은 대부분의 기체를 무용지물로 만들었습니다. 비행 가능한 기체가 필요합니다.\n적의 방공망에 유의하십시오. 일부 시설은 지원 건물을 공격하여 무력화시킬 수 있습니다. sector.ravine.description = 적의 중요한 이동 경로이긴 하지만, 해당 구역에선 적의 코어가 감지되지 않았습니다. 다양한 적군을 맞닥뜨릴 것으로 예상됩니다.\n[accent]설금[]을 생산하십시오. 포탑 [accent]어플릭트[]를 건설하십시오. sector.caldera-erekir.description = 이 지역에서 탐지된 자원은 여러 섬에 분산되어 있습니다 .\n드론을 기반으로 한 운송수단을 연구하고 활용하시오. sector.stronghold.description = 이 지역의 대규모 적 야영지에는 적들이 지키고 있는 상당한 양의 [accent]토륨[] 매장지가 있습니다.\n더 높은 등급의 기체와 포탑을 연구할 때 사용합니다. @@ -888,6 +890,7 @@ stat.repairspeed = 수리 속도 stat.weapons = 무기 stat.bullet = 탄환 stat.moduletier = 모듈 등급 +stat.unittype = Unit Type stat.speedincrease = 속도 증가 stat.range = 사거리 stat.drilltier = 채굴 가능 @@ -981,6 +984,8 @@ bullet.splashdamage = [stat]{0}[lightgray] 범위 피해량 ~ [stat]{1}[lightgra bullet.incendiary = [stat]방화[] bullet.homing = [stat]유도[] bullet.armorpierce = [stat]방어 관통 +bullet.suppression = [stat]{0} sec[lightgray] 수리 억제 ~ [stat]{1}[lightgray] 타일 +bullet.interval = [stat]{0}/sec[lightgray] 간격 탄환: bullet.frags = [stat]{0}[lightgray]개 파편 탄환:[][] bullet.lightning = [stat]{0}[lightgray]x 전격 ~ [stat]{1}[lightgray] 피해량[][][][] bullet.buildingdamage = [stat]{0}%[lightgray] 건물 피해량[][] @@ -1094,8 +1099,8 @@ setting.bridgeopacity.name = 터널 투명도 setting.playerchat.name = 채팅 말풍선 표시 setting.showweather.name = 날씨 그래픽 표시 setting.hidedisplays.name = 로직 디스플레이 숨김 -public.confirm = 게임을 모두에게 공개하시겠습니까?\n[accent]모든 플레이어가 게임에 참여할 수 있습니다.\n[lightgray]설정->게임->멀티플레이 공용 서버로 표시에서 나중에 변경할 수 있습니다.\n\n[sky]번역자 추가[]\n[accent]친구끼리 하려고 이 기능을 활성화 한 뒤에, 친구 외에 다른 플레이어가 들어왔을 때\n해당 플레이어를 차단하는 행위는 비매너를 넘어서는 얌체 행위 그 자체입니다.\n정말로 [scarlet]많은 다른 플레이어들이 오길 원한다[]면 확인하세요. -public.confirm.really = [red]친구하고 플레이 하고 싶으면 [scarlet]공용 서버[] 대신에 [green]친구 초대[] 를 사용하세요. 정말로 [scarlet]공용 서버[] 를 열겠습니까?[] +steam.friendsonly = 친구 전용 +steam.friendsonly.tooltip = 게임에 스팀 친구만 접속할 수 있는가에 대한 여부입니다.체크를 해제하면, 누구나 접속할 수 있습니다. public.beta = 베타 버전의 게임은 공개 서버를 만들 수 없습니다. uiscale.reset = UI 스케일이 변경되었습니다.\n"확인"버튼을 눌러 저장하세요.\n[accent] {0}[][scarlet]초 후에 예전 설정으로 되돌리고 게임을 종료합니다... uiscale.cancel = 취소 후 나가기 @@ -1222,9 +1227,10 @@ rules.buildcostmultiplier = 건설 비용 배수 rules.buildspeedmultiplier = 건설 속도 배수 rules.deconstructrefundmultiplier = 철거 환불 배수 rules.waitForWaveToEnd = 한 단계가 끝날때까지 대기 +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = 스폰 구역 범위: [lightgray] (타일) rules.unitammo = 기체 탄약 필요 -rules.enemyteam = 상대 팀 +rules.enemyteam = 적 팀 rules.playerteam = 플레이어 팀 rules.title.waves = 단계 rules.title.resourcesbuilding = 자원 & 건물 @@ -1237,9 +1243,9 @@ rules.title.planet = 행성 rules.lighting = 조명 표시 rules.fog = 전장의 안개 rules.fire = 방화 허용 -rules.anyenv = <상관없음> +rules.anyenv = <모두> rules.explosions = 블록/기체 폭발 피해 -rules.ambientlight = 자연 조명 표시 +rules.ambientlight = 주변광 rules.weather = 날씨 추가 rules.weather.frequency = 빈도: rules.weather.always = 항상 @@ -1780,8 +1786,8 @@ hint.coreUpgrade = 코어는 [accent]상위 코어를 위에 설치[]하여 업 hint.presetLaunch = [accent]얼어붙은 숲[]과 같은 회색[accent]캠페인 지역[]은 어디에서나 출격해서 올 수 있습니다. 주변 지역을 점령하지 않아도 됩니다.\n\n이와 같은 [accent]네임드 지역[]들은 [accent]선택적[]입니다. hint.presetDifficulty = 이 지역은 [scarlet]위험도가 높은[] 지역입니다.\n적절한 기술과 준비 없이 이런 지역들로 출격하는건 [accent]추천하지 않습니다[]. hint.coreIncinerate = 코어가 자원으로 가득 찬 후에 받는 모든 자원들은 [accent]소각[]될 것입니다. -hint.factoryControl = 기체 공장의 [accent]출력 위치[]를 설정하려면, 명령 모드에서 공장 블록을 클릭한 다음, 마우스 오른쪽 버튼으로 위치를 지정합니다.\n생산된 유닛은 자동으로 그곳으로 이동합니다. -hint.factoryControl.mobile = 기체 공장의 [accent]출력 위치[]를 설정하려면, 명령 모드에서 공장 블록을 클릭한 다음, 눌러서 위치를 지정합니다.\n생산된 유닛은 자동으로 그곳으로 이동합니다. +hint.factoryControl = 기체 공장의 [accent]출력 목적지[]를 설정하려면, 명령 모드에서 공장 블록을 클릭한 다음, 마우스 오른쪽 버튼으로 위치를 지정합니다.\n생산된 유닛은 자동으로 그곳으로 이동합니다. +hint.factoryControl.mobile = 기체 공장의 [accent]출력 목적지[]를 설정하려면, 명령 모드에서 공장 블록을 클릭한 다음, 눌러서 위치를 지정합니다.\n생산된 유닛은 자동으로 그곳으로 이동합니다. gz.mine = 주변 바닥에 있는 \uf8c4 [accent]구리 광석[]으로 이동하고, 광석을 눌러서 채굴을 시작하세요. gz.mine.mobile = 주변 바닥에 있는 \uf8c4 [accent]구리 광석[]으로 이동하고, 광석을 눌러서 채굴을 시작하세요. gz.research = \ue875 연구 기록을 여세요.\n\uf870 [accent]기계식 드릴[]을 연구하고, 그 후 오른쪽 아래에 있는 메뉴에서 선택하세요.\n구리조각 위를 눌러서 배치합니다. @@ -2117,10 +2123,10 @@ unit.mace.description = 주변의 모든 적을 향해 화염 줄기를 발사 unit.fortress.description = 지상 목표물을 향해 장거리 포탄을 발사합니다. unit.scepter.description = 주변의 모든 적을 향해 장전된 탄환을 일제히 발사합니다. unit.reign.description = 주변의 모든 적을 향해 거대한 관통 탄환을 일제히 발사합니다. -unit.nova.description = 적에게 피해를 주고, 아군 구조물을 수리하는 레이저 볼트를 발사합니다. 비행할 수 있습니다. -unit.pulsar.description = 적에게 피해를 주고, 아군 구조물을 수리하는 전격을 발사합니다. 비행할 수 있습니다. -unit.quasar.description = 적에게 피해를 주고, 아군 구조물을 수리하는 관통 레이저 빔을 발사합니다. 비행할 수 있습니다. 역장을 가지고 있습니다. -unit.vela.description = 적에게 피해를 주고, 아군 구조물을 수리하는 거대한 지속적인 레이저 빔을 발사합니다. 비행할 수 있습니다. +unit.nova.description = 적에게 피해를 주고, 아군 구조물을 수리하는 레이저 볼트를 발사합니다. 이륙할 수 있습니다. +unit.pulsar.description = 적에게 피해를 주고, 아군 구조물을 수리하는 전격을 발사합니다. 이륙할 수 있습니다. +unit.quasar.description = 적에게 피해를 주고, 아군 구조물을 수리하는 관통 레이저 빔을 발사합니다. 이륙할 수 있습니다. 역장을 가지고 있습니다. +unit.vela.description = 적에게 피해를 주고, 아군 구조물을 수리하는 거대한 지속적인 레이저 빔을 발사합니다. 이륙할 수 있습니다. unit.corvus.description = 적에게 피해를 주고, 아군 구조물을 수리하는 거대한 레이저 블레스트를 발사합니다. 대부분의 지형 위를 밟을 수 있습니다. unit.crawler.description = 적을 향해 달려가 자폭하며, 큰 폭발을 일으킵니다. unit.atrax.description = 지상 목표물을 향해 광재 구체를 발사합니다. 대부분의 지형 위를 밟을 수 있습니다. @@ -2204,6 +2210,7 @@ lst.flushmessage = 텍스트 버퍼로부터 화면에 메세지를 표시\n이 lst.cutscene = 플레이어 카메라 조작 lst.setflag = 모든 프로세서가 읽을 수 있는 전역 플래그 설정 lst.getflag = 전역 플래그가 설정되어 있는지 확인 +lst.setprop = 기체 혹은 건물의 속성을 설정합니다. logic.nounitbuild = [red]기체의 건설 로직은 여기서 허용되지 않습니다. diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties index 96dfbb5dc3..dbb15baa27 100644 --- a/core/assets/bundles/bundle_lt.properties +++ b/core/assets/bundles/bundle_lt.properties @@ -454,6 +454,8 @@ waves.sort.reverse = Reverse Sort waves.sort.begin = Begin waves.sort.health = Health waves.sort.type = Type +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Hide All waves.units.show = Show All @@ -876,6 +878,7 @@ stat.repairspeed = Repair Speed stat.weapons = Weapons stat.bullet = Bullet stat.moduletier = Module Tier +stat.unittype = Unit Type stat.speedincrease = Greičio Padidėjimas stat.range = Atstumas stat.drilltier = Gręžiama @@ -969,6 +972,8 @@ bullet.splashdamage = [stat]{0}[lightgray] zonos žalos ~[stat] {1}[lightgray] b bullet.incendiary = [stat]uždegantis bullet.homing = [stat]sekimas bullet.armorpierce = [stat]armor piercing +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x frag bullets: bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage bullet.buildingdamage = [stat]{0}%[lightgray] building damage @@ -1082,8 +1087,8 @@ setting.bridgeopacity.name = Tilto Nepermatomumas setting.playerchat.name = Rodyti Pokalbių Teksto Burbulus Virš Žaidėjų setting.showweather.name = Show Weather Graphics setting.hidedisplays.name = Hide Logic Displays -public.confirm = Ar norite savo žaidimą paversti viešu?\n[accent]Bet kas galės įeiti į jūsų žaidimą.\n[lightgray]Tai gali būti pakeista nuėjus į Nustatymai->Žaidimas->Viešojo Žaidimo Matomumas. -public.confirm.really = If you want to play with friends, use [green]Invite Friend[] instead of a [scarlet]Public server[]!\nAre you sure you want to make your game [scarlet]public[]? +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 = Įsiminkite, jog beta versijoje negalima sukrti viešų kambarių. uiscale.reset = UI mastelis buvo pakeistas.\nSpauskite "GERAI", norėdami palikti šį mastelį.\n[scarlet]Atšaukiama ir išeinama po[accent] {0}[] sekundžių... uiscale.cancel = Atšaukti ir Išeiti @@ -1210,6 +1215,7 @@ rules.buildcostmultiplier = Statymo Kainų Daugiklis rules.buildspeedmultiplier = Statymo Greičio Daugiklis rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier rules.waitForWaveToEnd = Laukti, kol pasibaigs banga +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Išmetimo Zonos Spindulys:[lightgray] (blokais) rules.unitammo = Units Require Ammo rules.enemyteam = Enemy Team @@ -2187,6 +2193,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w 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. +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]Unit building logic is not allowed here. lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string. lenum.shoot = Shoot at a position. diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index cd1e275b02..7cc8796352 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -462,6 +462,8 @@ waves.sort.reverse = Omgekeerd Sorteren waves.sort.begin = Begin waves.sort.health = Levenspunten waves.sort.type = Type +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Verberg Alle waves.units.show = Toon Alle @@ -888,6 +890,7 @@ stat.repairspeed = Repareersnelheid stat.weapons = Wapens stat.bullet = Kogel stat.moduletier = Module Niveau +stat.unittype = Unit Type stat.speedincrease = Snelheidsverhoging stat.range = Bereik stat.drilltier = Valt te delven @@ -981,6 +984,8 @@ bullet.splashdamage = [stat]{0}[lightgray] gebied scade ~[stat] {1}[lightgray] t bullet.incendiary = [stat]brandstichtend bullet.homing = [stat]doelzoekend bullet.armorpierce = [stat]pantserdoorborend +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x fragment kogels: bullet.lightning = [stat]{0}[lightgray]x bliksem ~ [stat]{1}[lightgray] schade bullet.buildingdamage = [stat]{0}%[lightgray] gebouwschade @@ -1094,8 +1099,8 @@ setting.bridgeopacity.name = Brug Transparantie setting.playerchat.name = Toon Chat setting.showweather.name = Toon Weer Graphics setting.hidedisplays.name = Verberg Logische Displays -public.confirm = Wil je je game publiek maken?\n[accent]Iedereen kan je spel dan joinen.\n[lightgray]Dit kan je later veranderen in Instellingen->Spel->Publieke Server Zichtbaarheid. -public.confirm.really = Als je met een vriend wilt spelen, gebruik dan de optie [green]Nodig Vriend Uit[] in plaats van [scarlet]Publieke Server[]!\nWeet je zeker dat je je server [scarlet]public[] wilt maken? +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 = Onthoud dat b�ta versies geen publieke lobby's kunnen maken. uiscale.reset = UI formaat is geweizigd.\nKlik op "OK" om het te bevestigen.\n[scarlet]Anders word het in[accent] {0}[] seconden ongedaan gemaakt... uiscale.cancel = Annuleer & Sluit @@ -1222,6 +1227,7 @@ rules.buildcostmultiplier = Bouwkosten Vermenigvuldiger rules.buildspeedmultiplier = Bouwsnelheid Vermenigvuldiger rules.deconstructrefundmultiplier = Deconstructie Terugbetalings Vermenigvuldiger rules.waitForWaveToEnd = Golven wachten tot alle vijanden zijn verslagen +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Vijandelijke Spawn Diameter:[lightgray] (tegels) rules.unitammo = Eenheden Gebruiken Ammunitie rules.enemyteam = Vijandelijk Team @@ -2200,6 +2206,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w 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. +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]Unit building logic is not allowed here. lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string. lenum.shoot = Shoot at a position. diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties index 54ba477742..a3b798a4a6 100644 --- a/core/assets/bundles/bundle_nl_BE.properties +++ b/core/assets/bundles/bundle_nl_BE.properties @@ -454,6 +454,8 @@ waves.sort.reverse = Reverse Sort waves.sort.begin = Begin waves.sort.health = Health waves.sort.type = Type +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Hide All waves.units.show = Show All @@ -876,6 +878,7 @@ stat.repairspeed = Repair Speed stat.weapons = Weapons stat.bullet = Bullet stat.moduletier = Module Tier +stat.unittype = Unit Type stat.speedincrease = Speed Increase stat.range = Range stat.drilltier = Drillables @@ -969,6 +972,8 @@ bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bullet.incendiary = [stat]incendiary bullet.homing = [stat]homing bullet.armorpierce = [stat]armor piercing +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x frag bullets: bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage bullet.buildingdamage = [stat]{0}%[lightgray] building damage @@ -1082,8 +1087,8 @@ setting.bridgeopacity.name = Bridge Opacity setting.playerchat.name = Display In-Game Chat setting.showweather.name = Show Weather Graphics setting.hidedisplays.name = Hide Logic Displays -public.confirm = Do you want to make your game public?\n[accent]Anyone will be able to join your games.\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility. -public.confirm.really = If you want to play with friends, use [green]Invite Friend[] instead of a [scarlet]Public server[]!\nAre you sure you want to make your game [scarlet]public[]? +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 = Note that beta versions of the game cannot make public lobbies. uiscale.reset = UI scale has been changed.\nPress "OK" to confirm this scale.\n[scarlet]Reverting and exiting in[accent] {0}[] settings... uiscale.cancel = Cancel & Exit @@ -1210,6 +1215,7 @@ rules.buildcostmultiplier = Build Cost Multiplier rules.buildspeedmultiplier = Build Speed Multiplier rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier rules.waitForWaveToEnd = Waves wait for enemies +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Drop Zone Radius:[lightgray] (tiles) rules.unitammo = Units Require Ammo rules.enemyteam = Enemy Team @@ -2187,6 +2193,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w 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. +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]Unit building logic is not allowed here. lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string. lenum.shoot = Shoot at a position. diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index 794dedc279..c2827b2535 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -458,6 +458,8 @@ waves.sort.reverse = Odwrotne Sortowanie waves.sort.begin = Rozpocznij waves.sort.health = Zdrowie waves.sort.type = Typ +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Schowaj Wszystkie waves.units.show = Pokaż Wszystkie @@ -886,6 +888,7 @@ stat.repairspeed = Prędkość napraw stat.weapons = Bronie stat.bullet = Pocisk stat.moduletier = Stopień Modułu +stat.unittype = Unit Type stat.speedincrease = Zwiększenie prędkości stat.range = Zasięg stat.drilltier = Co może wykopać @@ -979,6 +982,8 @@ bullet.splashdamage = [stat]{0}[lightgray] Obrażenia obszarowe ~[stat] {1}[ligh bullet.incendiary = [stat]zapalający bullet.homing = [stat]naprowadzający bullet.armorpierce = [stat]przebijający pancerz +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x pociski odłamkowe: bullet.lightning = [stat]{0}[lightgray]x błyskawice ~ [stat]{1}[lightgray] Obrażenia bullet.buildingdamage = [stat]{0}%[lightgray] obrażeń budynkom @@ -1092,8 +1097,8 @@ setting.bridgeopacity.name = Przezroczystość mostów setting.playerchat.name = Wyświetlaj dymek czatu w grze setting.showweather.name = Pokaż pogodę setting.hidedisplays.name = Ukryj wyświetlacze logiczne -public.confirm = Czy chcesz ustawić swoją grę jako publiczną?\n[accent]Każdy będzie mógł dołączyć do Twojej gry.\n[lightgray]Można to później zmienić w Ustawienia->Gra->Widoczność Gry Publicznej. -public.confirm.really = Jeśli chcesz zagrać ze znajomymi, użyj opcji [green]Zaproś Znajomych[] zamiast [scarlet]Publiczny serwer[]!\nJesteś pewny że chcesz rozpocząć grę [scarlet]publiczną[]? +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 = Wersje beta gry nie mogą tworzyć publicznych pokoi. uiscale.reset = Skala interfejsu uległa zmianie.\nNaciśnij "OK" by potwierdzić zmiany.\n[scarlet]Cofanie zmian i wyjście z gry za[accent] {0}[] uiscale.cancel = Anuluj i wyjdź @@ -1220,6 +1225,7 @@ rules.buildcostmultiplier = Mnożnik Kosztów Budowania rules.buildspeedmultiplier = Mnożnik Prędkości Budowania rules.deconstructrefundmultiplier = Mnożnik Zwrotu Dekonstrukcji rules.waitForWaveToEnd = Fale Czekają Na Przeciwników +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Zasięg Strefy Zrzutu:[lightgray] (kratki) rules.unitammo = Jednostki Potrzebują Amunicji rules.enemyteam = Drużyna Wroga @@ -2222,6 +2228,7 @@ lst.flushmessage = Wyświetl wiadomość na ekranie z bufora tekstowego.\nPoczek lst.cutscene = Manipuluj kamerą gracza. lst.setflag = Ustaw globalną flagę, którą mogą odczytać wszystkie procesory. lst.getflag = Sprawdź, czy ustawiona jest flaga globalna. +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]Logika budowania jednostek nie jest tu dozwolona. diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index d89d4a4ad8..48eaaa5cef 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -458,6 +458,8 @@ waves.sort.reverse = Inverter ordem waves.sort.begin = Começar waves.sort.health = Vida waves.sort.type = Tipo +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Esconder tudo waves.units.show = Mostrar tudo @@ -896,6 +898,7 @@ stat.repairspeed = Taxa de Reparo stat.weapons = Armas stat.bullet = Projétil stat.moduletier = Tier do Módulo +stat.unittype = Unit Type stat.speedincrease = Aumento de velocidade stat.range = Distância stat.drilltier = Brocas @@ -990,6 +993,8 @@ bullet.splashdamage = [stat]{0}[lightgray] de dano em área ~[stat] {1}[lightgra bullet.incendiary = [stat]Incendiário bullet.homing = [stat]Guiado bullet.armorpierce = [stat]pentração de armadura +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x balas de fragmentação: bullet.lightning = [stat]{0}[lightgray]x raio ~ [stat]{1}[lightgray] dano bullet.buildingdamage = [stat]{0}%[lightgray] dano em construção @@ -1103,8 +1108,8 @@ setting.bridgeopacity.name = Opacidade da ponte setting.playerchat.name = Mostrar chat em jogo setting.showweather.name = Mostrar Gráficos do Clima setting.hidedisplays.name = Ocultar Displays de Lógicos -public.confirm = Você quer fazer sua partida pública?\n[accent]Qualquer um será capaz de entrar na sua partida.\n[lightgray]Isso pode ser mudado depois em Configurações->Jogo->Visibilidade da partida pública. -public.confirm.really = Se você quer jogar com amigos, use [green]Convidar Amigos[] ao invés de um [scarlet]Server Público[]!\nTem certeza que quer tornar seu jogo[scarlet]público[]? +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 = Note que as versões beta do jogo não podem fazer salas públicas. uiscale.reset = A escala da interface foi mudada.\nPressione "OK" para confirmar esta escala.\n[scarlet]Revertendo e saindo em[accent] {0}[] segundos... uiscale.cancel = Cancelar e sair @@ -1231,6 +1236,7 @@ rules.buildcostmultiplier = Multiplicador de custo de construção rules.buildspeedmultiplier = Multiplicador de velocidade de construção rules.deconstructrefundmultiplier = Multiplicador de reembolso de desconstrução rules.waitForWaveToEnd = Hordas esperam inimigos +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Raio da zona de spawn:[lightgray] (blocos) rules.unitammo = Unidades requerem munição rules.enemyteam = Time Inimigo @@ -2220,6 +2226,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w 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. +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]Unit building logic is not allowed here. diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties index dd5a2c7f58..df5503d5b3 100644 --- a/core/assets/bundles/bundle_pt_PT.properties +++ b/core/assets/bundles/bundle_pt_PT.properties @@ -454,6 +454,8 @@ waves.sort.reverse = Reverse Sort waves.sort.begin = Begin waves.sort.health = Health waves.sort.type = Type +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Hide All waves.units.show = Show All @@ -876,6 +878,7 @@ stat.repairspeed = Repair Speed stat.weapons = Weapons stat.bullet = Bullet stat.moduletier = Module Tier +stat.unittype = Unit Type stat.speedincrease = Aumento de velocidade stat.range = Distância stat.drilltier = Furáveis @@ -969,6 +972,8 @@ bullet.splashdamage = [stat]{0}[lightgray] Dano em área ~[stat] {1}[lightgray] bullet.incendiary = [stat]Incendiário bullet.homing = [stat]Guiado bullet.armorpierce = [stat]armor piercing +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x frag bullets: bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage bullet.buildingdamage = [stat]{0}%[lightgray] building damage @@ -1082,8 +1087,8 @@ setting.bridgeopacity.name = Opacidade da Ponte setting.playerchat.name = Mostrar chat em jogo setting.showweather.name = Show Weather Graphics setting.hidedisplays.name = Hide Logic Displays -public.confirm = Queres que o teu jogo fique publico?\n[accent]Qualquer jogador vai conseguir juntar-se ao teu jogo.\n[lightgray]Isto pode ser alterado mais tarde in Settings->Game->Public Game Visibility. -public.confirm.really = If you want to play with friends, use [green]Invite Friend[] instead of a [scarlet]Public server[]!\nAre you sure you want to make your game [scarlet]public[]? +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 = Observe que as versões beta do jogo não podem criar lobbies públicos. uiscale.reset = A escala da IU foi mudada.\nPressione "OK" para confirmar esta escala.\n[scarlet]Revertendo e saindo em[accent] {0}[] settings... uiscale.cancel = Cancelar e sair @@ -1210,6 +1215,7 @@ rules.buildcostmultiplier = Multiplicador de custo de construção rules.buildspeedmultiplier = Multiplicador de velocidade de construção rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier rules.waitForWaveToEnd = hordas esperam inimigos +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Raio da zona de spawn:[lightgray] (blocos) rules.unitammo = Units Require Ammo rules.enemyteam = Enemy Team @@ -2187,6 +2193,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w 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. +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]Unit building logic is not allowed here. lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string. lenum.shoot = Shoot at a position. diff --git a/core/assets/bundles/bundle_ro.properties b/core/assets/bundles/bundle_ro.properties index 28cc5752a1..7a2e021cb3 100644 --- a/core/assets/bundles/bundle_ro.properties +++ b/core/assets/bundles/bundle_ro.properties @@ -458,6 +458,8 @@ waves.sort.reverse = Inversează Sortarea waves.sort.begin = Început waves.sort.health = Viață waves.sort.type = Tip +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Ascunde waves.units.show = Vezi Tot @@ -888,6 +890,7 @@ stat.repairspeed = Viteză Reparare stat.weapons = Arme stat.bullet = Glonț stat.moduletier = Module Tier +stat.unittype = Unit Type stat.speedincrease = Creștere Viteză stat.range = Rază stat.drilltier = Minabile @@ -981,6 +984,8 @@ bullet.splashdamage = [stat]{0}[lightgray] forță pe raza ~[stat] {1}[lightgray bullet.incendiary = [stat]incendiar bullet.homing = [stat]cu radar bullet.armorpierce = [stat]armor piercing +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x fragmente: bullet.lightning = [stat]{0}[lightgray]x fulgere ~ [stat]{1}[lightgray] forță bullet.buildingdamage = [stat]{0}%[lightgray] forță/clădire @@ -1094,8 +1099,8 @@ setting.bridgeopacity.name = Opacitate Poduri setting.playerchat.name = Vezi Chat Temporar setting.showweather.name = Vezi Vremea setting.hidedisplays.name = Hide Logic Displays -public.confirm = Vrei să îți faci jocul public?\n[accent]Oricine va putea intra în jocurile tale.\n[lightgray]Poți schimba asta mai târziu din Setări->Joc->Vizibilitatea Jocurilor Publice. -public.confirm.really = Dacă vrei să joci cu prietenii, folosește butonul [green]Invită Prieteni[] în loc de un [scarlet]Server Public[]!\nSigur vrei să-ți faci jocul [scarlet]public[]? +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 = De reținut că versiunile beta ale jocului nu poate face servere publice. uiscale.reset = Scara interfeței a fost schimbată.\nApasă "OK" pt a confirma această scară.\n[scarlet]Revin setările și se iese în [accent] {0}[] secunde... uiscale.cancel = Anulare și ieșire @@ -1222,6 +1227,7 @@ rules.buildcostmultiplier = Multiplicatorul Costului Construcției rules.buildspeedmultiplier = Multiplicatorul Vitezei de Construcție rules.deconstructrefundmultiplier = Multiplicatorul Recompensei la Deconstrucție rules.waitForWaveToEnd = Valurile Așteaptă Inamicii +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Raza Zonei de Lansare:[lightgray] (pătrate) rules.unitammo = Unitățile Necesită Muniție rules.enemyteam = Echipa Inamică @@ -2205,6 +2211,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w 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. +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]Nu ai voie să construiești cu unitățile folosind procesoare. diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index 237f291182..024dd8aad0 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -149,15 +149,15 @@ mod.incompatiblemod = [red]Несовместимый mod.blacklisted = [red]Неподдерживаемый mod.unmetdependencies = [red]Не найдены зависимости mod.erroredcontent = [scarlet]Ошибки содержимого -mod.circulardependencies = [red]Circular Dependencies -mod.incompletedependencies = [red]Incomplete Dependencies +mod.circulardependencies = [red]Цикличные зависимости +mod.incompletedependencies = [red]Недопустимые или отсутствующие зависимости mod.requiresversion.details = Требуется версия игры: [accent]{0}[]\nВаша игра устарела. Для работы этого мода требуется более новая версия игры (возможно, альфа/бета-версия). mod.outdatedv7.details = Этот мод несовместим с последней версией игры. Автор должен обновить его и добавить [accent]minGameVersion: 136[] в файл [accent]mod.json[]. mod.blacklisted.details = Этот мод был вручную занесен в черный список из-за того, что он вызывал сбои или другие проблемы с текущей версией игры. Не используйте его. mod.missingdependencies.details = Для этого мода отсутствуют зависимости: {0} mod.erroredcontent.details = Этот мод вызвал ошибки при загрузке. Попросите автора мода исправить их. -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.circulardependencies.details = Этот мод имеет зависимости, которые зависят друг от друга. +mod.incompletedependencies.details = Этот мод не может быть загружен из-за недопустимых или отсутствующих зависимостей: {0}. mod.requiresversion = Требуется версия игры: [red]{0} mod.errors = Ошибки были вызваны загружаемым содержимым. @@ -335,7 +335,7 @@ command.repair = Ремонтировать command.rebuild = Восстанавливать command.assist = Помогать игроку command.move = Двигаться -command.boost = Boost +command.boost = Лететь openlink = Открыть ссылку copylink = Скопировать ссылку back = Назад @@ -458,6 +458,8 @@ waves.sort.reverse = Обратная сортировка waves.sort.begin = Начало waves.sort.health = Здоровье waves.sort.type = Тип +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Скрыть все waves.units.show = Показать все @@ -889,6 +891,7 @@ stat.repairspeed = Скорость ремонта stat.weapons = Орудия stat.bullet = Снаряд stat.moduletier = Уровень модуля +stat.unittype = Боевая единица stat.speedincrease = Увеличение скорости stat.range = Радиус действия stat.drilltier = Бурит @@ -982,6 +985,8 @@ bullet.splashdamage = [stat]{0}[lightgray] урона в радиусе ~[stat] bullet.incendiary = [stat]зажигательный bullet.homing = [stat]самонаводящийся bullet.armorpierce = [stat]бронебойный +bullet.suppression = [stat]{0} сек[lightgray] подавления регенерации в радиусе ~ [stat]{1}[lightgray] блоков +bullet.interval = [stat]{0}/сек[lightgray] интервальный(ых) снаряд(ов): bullet.frags = [stat]{0}[lightgray]x осколочный(ых) снаряд(ов): bullet.lightning = [stat]{0}[lightgray]x молнии ~ [stat]{1}[lightgray] урона bullet.buildingdamage = [stat]{0}%[lightgray] урона по постройкам @@ -1095,8 +1100,8 @@ setting.bridgeopacity.name = Непрозрачность мостов setting.playerchat.name = Отображать облака чата над игроками setting.showweather.name = Отображать погоду setting.hidedisplays.name = Скрыть логические дисплеи -public.confirm = Вы хотите, чтобы ваша игра стала публичной?\n[accent] Любой игрок сможет присоединиться к вашим играм.\n[lightgray]Позже, это можно будет изменить в Настройки->Игра->Общедоступность игры. -public.confirm.really = Если вы хотите поиграть с друзьями, то используйте кнопку «[green]Пригласить друзей[]» вместо создания [scarlet]публичного сервера[]!\nВы уверены, что хотите сделать свою игру [scarlet]публичной[]? +steam.friendsonly = Только друзья +steam.friendsonly.tooltip = Только ли друзья из Steam могут присоединяться к вашей игре.\nУбрав эту галочку, вы сделаете вашу игру публичной - присоединиться сможет любой желающий. public.beta = Имейте в виду, что бета-версия игры не может делать игры публичными. uiscale.reset = Масштаб пользовательского интерфейса был изменён.\nНажмите «ОК» для подтверждения этого масштаба.\n[scarlet]Возврат настроек и выход через[accent] {0}[] секунд… uiscale.cancel = Отменить & Выйти @@ -1183,14 +1188,14 @@ mode.editor.name = Редактор mode.pvp.name = PvP mode.pvp.description = Сражайтесь против других игроков.\n[gray]Для игры требуется как минимум 2 ядра разного цвета на карте. mode.attack.name = Атака -mode.attack.description = Уничтожьте вражескую базу.\n[gray]Для игры требуется красное ядро на карте. +mode.attack.description = Уничтожьте вражескую базу.\n[gray]Для игры требуется вражеское ядро на карте. mode.custom = Пользовательские правила rules.infiniteresources = Бесконечные ресурсы rules.onlydepositcore = Разрешен перенос только в ядро rules.reactorexplosions = Взрывы реакторов rules.coreincinerates = Ядро сжигает избыток ресурсов rules.disableworldprocessors = Отключить мировые процессоры -rules.schematic = Схемы разрешены +rules.schematic = Разрешить схемы rules.wavetimer = Интервал волн rules.wavesending = Отправка волн rules.waves = Волны @@ -1203,7 +1208,7 @@ rules.rtsminattackweight = Минимальный вес для атаки rules.cleanupdeadteams = Очистка строений побежденных команд (PvP) rules.corecapture = Захват ядра после уничтожения rules.polygoncoreprotection = Полигональная защита ядер -rules.placerangecheck = Проверка диапазона размещения +rules.placerangecheck = Запретить размещение турелей возле вражеских построек rules.enemyCheat = Бесконечные ресурсы ИИ rules.blockhealthmultiplier = Множитель прочности блоков rules.blockdamagemultiplier = Множитель урона блоков @@ -1218,11 +1223,12 @@ rules.unitcap = Начальный лимит единиц rules.limitarea = Ограничить область карты rules.enemycorebuildradius = Радиус защиты враж. ядер:[lightgray] (блок.) rules.wavespacing = Интервал волн:[lightgray] (сек) -rules.initialwavespacing = Начальное расстояние между волнами:[lightgray] (сек) +rules.initialwavespacing = Время до первой волны:[lightgray] (сек) rules.buildcostmultiplier = Множитель затрат на строительство rules.buildspeedmultiplier = Множитель скорости строительства rules.deconstructrefundmultiplier = Множитель возврата ресурсов при разборке rules.waitForWaveToEnd = Волны ожидают врагов +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Радиус зоны высадки врагов:[lightgray] (блоков) rules.unitammo = Боев. ед. требуют боеприпасы rules.enemyteam = Команда Врагов @@ -2180,7 +2186,7 @@ lst.getlink = Получает соединение процессора по и lst.control = Контролирует блок. lst.radar = Обнаруживает единицы вокруг постройки с заданным радиусом. lst.sensor = Получает данные из постройки или единицы. -lst.set = Устанавливает переменную. +lst.set = Задаёт значение переменной. lst.operation = Совершает операцию над 1-2 переменными. lst.end = Переходит к началу стека операций. lst.wait = Ждёт определённое количество секунд. @@ -2201,10 +2207,11 @@ lst.setrate = Устанавливает скорость выполнения lst.fetch = Ищет единицы, ядра, игроков или зданий по индексу.\nИндексы начинаются с 0 и заканчиваются возвращаемым числом. lst.packcolor = Упаковывает компоненты RGBA [0, 1] в один номер для рисования или установки правил. lst.setrule = Устанавливает игровое правило. -lst.flushmessage = Отображает сообщение на экране из текстового буфера.\nБудет ожидать окончание предыдущего сообщения. +lst.flushmessage = Отображает сообщение из текстового буфера на экране игрока.\nБудет ожидать окончание предыдущего сообщения. lst.cutscene = Управляет камерой игрока. lst.setflag = Устанавливает глобальный флаг, который может быть прочитан всеми процессорами. lst.getflag = Проверяет, установлен ли глобальный флаг. +lst.setprop = Устанавливает свойство единицы или постройки. logic.nounitbuild = [red]Строительство с помощью процессоров здесь запрещено. diff --git a/core/assets/bundles/bundle_sr.properties b/core/assets/bundles/bundle_sr.properties index cd6219a644..8c65c947c6 100644 --- a/core/assets/bundles/bundle_sr.properties +++ b/core/assets/bundles/bundle_sr.properties @@ -458,6 +458,8 @@ waves.sort.reverse = Suprotno Sortiraj waves.sort.begin = Početak waves.sort.health = Snaga waves.sort.type = Tip +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Sakrij Sve waves.units.show = Pokaži Sve @@ -890,6 +892,7 @@ stat.repairspeed = Brzina popravke stat.weapons = Oružja stat.bullet = Metak stat.moduletier = Nivo modula +stat.unittype = Unit Type stat.speedincrease = Povećanje brzine stat.range = Domet stat.drilltier = Materijali koje je moguće kopati @@ -983,6 +986,8 @@ bullet.splashdamage = [stat]{0}[lightgray] oblasna šteta ~[stat] {1}[lightgray] bullet.incendiary = [stat]zapaljiv bullet.homing = [stat]samonavođenje bullet.armorpierce = [stat]proboj oklopa +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x šrapnela: bullet.lightning = [stat]{0}[lightgray]x munja ~ [stat]{1}[lightgray] štete bullet.buildingdamage = [stat]{0}%[lightgray] šteta za strukture @@ -1096,8 +1101,8 @@ setting.bridgeopacity.name = Prozirnost Mostova setting.playerchat.name = Prikazuj Čet Mehure Igrača setting.showweather.name = Prikazuj Grafiku Vremena setting.hidedisplays.name = Sakrij Logičke Displeje -public.confirm = Da li ste sigurni da želite da vam igra bude javna?\n[accent]Svako će moći se pridruži vašoj igri.\n[lightgray]Ovo se može posle promeniti u Podešavanja->Igra->Vidljivost Javne Igre. -public.confirm.really = Ako hoćete da igrate sa prijateljima, koristite [green]Pozovi Prijatelje[] umesto [scarlet]Javnog servera[]!\nDa li ste sigurni da želite da vam igra bude [scarlet]javna[]? +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 = Note that beta versions of the game cannot make public lobbies. uiscale.reset = UI skala se promenija.\nPritisnite "OK" da porvdite ovu skali.\n[scarlet]Vraćanje i izlazak za[accent] {0}[] sekundi... uiscale.cancel = Obustavi i Izađi @@ -1224,6 +1229,7 @@ rules.buildcostmultiplier = Build Cost Multiplier rules.buildspeedmultiplier = Build Speed Multiplier rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier rules.waitForWaveToEnd = Talasi Čekaju Za Neprijatelje +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Radijus Zone Prijema:[lightgray] (polja) rules.unitammo = Jedinice Zahtevaju Municiju [red](može biti uklonjena) rules.enemyteam = Neprilateljski Tim @@ -2208,6 +2214,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w 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. +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]Unit building logic is not allowed here. diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties index 73149d9502..a009edd829 100644 --- a/core/assets/bundles/bundle_sv.properties +++ b/core/assets/bundles/bundle_sv.properties @@ -454,6 +454,8 @@ waves.sort.reverse = Reverse Sort waves.sort.begin = Begin waves.sort.health = Health waves.sort.type = Type +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Hide All waves.units.show = Show All @@ -876,6 +878,7 @@ stat.repairspeed = Repair Speed stat.weapons = Weapons stat.bullet = Bullet stat.moduletier = Module Tier +stat.unittype = Unit Type stat.speedincrease = Speed Increase stat.range = Range stat.drilltier = Drillables @@ -969,6 +972,8 @@ bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bullet.incendiary = [stat]incendiary bullet.homing = [stat]homing bullet.armorpierce = [stat]armor piercing +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x frag bullets: bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage bullet.buildingdamage = [stat]{0}%[lightgray] building damage @@ -1082,8 +1087,8 @@ setting.bridgeopacity.name = Bridge Opacity setting.playerchat.name = Visa setting.showweather.name = Show Weather Graphics setting.hidedisplays.name = Hide Logic Displays -public.confirm = Do you want to make your game public?\n[accent]Anyone will be able to join your games.\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility. -public.confirm.really = If you want to play with friends, use [green]Invite Friend[] instead of a [scarlet]Public server[]!\nAre you sure you want to make your game [scarlet]public[]? +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 = Note that beta versions of the game cannot make public lobbies. uiscale.reset = UI-skalan har ändrats.\nTryck "OK" för att använda den här skalan.\n[scarlet]Avslutar och återställer om[accent] {0}[] sekunder... uiscale.cancel = Avbryt och Avsluta @@ -1210,6 +1215,7 @@ rules.buildcostmultiplier = Build Cost Multiplier rules.buildspeedmultiplier = Build Speed Multiplier rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier rules.waitForWaveToEnd = Waves wait for enemies +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Drop Zone Radius:[lightgray] (tiles) rules.unitammo = Units Require Ammo rules.enemyteam = Enemy Team @@ -2187,6 +2193,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w 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. +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]Unit building logic is not allowed here. lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string. lenum.shoot = Shoot at a position. diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index 1e32b04a6f..8427770fa3 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -9,14 +9,14 @@ link.changelog.description = รายการอัปเดต link.dev-builds.description = เวอร์ชั่นระหว่างพัฒนา (ไม่เสถียร) link.trello.description = บอร์ด Trello อย่างเป็นทางการสำหรับฟีเจอร์ต่างๆ ที่วางแผนไว้ link.itch.io.description = หน้าเว็บ itch.io สำหรับดาวน์โหลดบน PC -link.google-play.description = หน้า Google Play store ของเกม +link.google-play.description = หน้าร้านค้า Google Play ของเกม link.f-droid.description = หน้าแคตตาล็อก F-Droid ของเกม link.wiki.description = วิกิอย่างเป็นทางการของ Mindustry link.suggestions.description = นำเสนอฟีเจอร์ใหม่ link.bug.description = เจอบัค? รายงานที่นี่! -linkopen = This server has sent you a link. Are you sure you want to open it?\n\n[sky]{0} +linkopen = เซิร์ฟเวอร์นี้ได้ส่งลิ้งค์ให้คุณ แน่ใจหรือไม่ว่าจะเปิดลิ้งค์นี้?\n\n[sky]{0} linkfail = ไม่สามารถเปิดลิ้งค์ได้\nได้ทำการคัดลอก URL ลงในคลิปบอร์ดแล้ว -screenshot = ภาพหน้าจอได้บันทึกไปที่ {0} +screenshot = ภาพหน้าจอได้ถูกบันทึกไปที่ {0} screenshot.invalid = แมพใหญ่เกินไป หน่วยความจำอาจจะไม่พอสำหรับภาพหน้าจอ gameover = จบเกม gameover.disconnect = ออก @@ -46,7 +46,7 @@ mods.browser.selected = เลือกแล้ว mods.browser.add = ติดตั้ง mods.browser.reinstall = ติดตั้งใหม่ mods.browser.view-releases = ดูเวอร์ชั่น -mods.browser.noreleases = [scarlet]ไม่เจอเวอร์ชั่น\n[accent]ไม่สามารถหาเวอร์ชั่นใดๆ ของม็อดนี้เจอได้เลย โปรดตรวจสอบว่าแหล่งของม็อดได้มีการปล่อยเวอร์ชั่นมาแล้วหรือไม่ +mods.browser.noreleases = [scarlet]ไม่พบเวอร์ชั่น\n[accent]ไม่สามารถหาเวอร์ชั่นใดๆ ของม็อดนี้เจอได้เลย โปรดตรวจสอบว่าแหล่งของม็อดได้มีการปล่อยเวอร์ชั่นมาแล้วหรือไม่ mods.browser.latest = <ล่าสุด> mods.browser.releases = เวอร์ชั่น mods.github.open = แหล่ง @@ -71,7 +71,7 @@ schematic.saved = บันทึกแผนผังแล้ว schematic.delete.confirm = แผนผังนี้จะถูกกำจัดให้หมดสิ้นไม่เหลือซาก schematic.rename = เปลี่ยนชื่อแผนผัง schematic.info = {0}x{1}, {2} บล็อก -schematic.disabled = [scarlet]การใช้แผนผังถูกปิดไว้[]\nคุณไม่สามารถใช้แผนผังได้ใน[accent]แมพ[]หรือ[accent]เซิร์ฟเวอร์นี้ +schematic.disabled = [scarlet]การใช้แผนผังถูกปิดไว้[]\nคุณไม่สามารถใช้แผนผังได้ใน[accent]แมพ[]หรือ[accent]เซิร์ฟเวอร์[]นี้ schematic.tags = แท็ก: schematic.edittags = แก้ไขแท็ก schematic.addtag = เพิ่มแท็ก @@ -105,7 +105,7 @@ joingame = เข้าร่วมเกม customgame = เกมที่กำหนดเอง newgame = เริ่มเกมใหม่ none = <ไม่มี> -none.found = [lightgray]<ไม่เจออะไรเลย> +none.found = [lightgray]<ไม่พบอะไรเลย> none.inmap = [lightgray]<ไม่มีในแมพ> minimap = มินิแมพ position = ตำแหน่ง @@ -127,7 +127,7 @@ committingchanges = กำลังทำการเปลี่ยนแปล done = เรียบร้อย feature.unsupported = อุปกรณ์ของคุณไม่รองรับฟีเจอร์นี้ -mods.initfailed = [red]⚠[] ไม่สามารถเปิดเกม Mindustry ได้ อาจเกิดจากม็อดที่ทำงานผิดปกติ\n\nเพื่อป้องกันการแครชต่อเนื่อง [red]ม็อดทั้งหมดได้ปิดตัวลง[] +mods.initfailed = [red]⚠[] ไม่สามารถเปิดเกม Mindustry ได้ อาจเกิดจากม็อดที่ทำงานผิดปกติ\n\nเพื่อป้องกันการแครชต่อเนื่อง [red]ม็อดทั้งหมดได้ทำการปิดตัวลง[] mods = ม็อด mods.none = [lightgray]ไม่พบม็อด! mods.guide = คู่มือการทำม็อด @@ -144,26 +144,26 @@ mod.multiplayer.compatible = [gray]ใช้งานได้กับโหม mod.disable = ปิดใช้งาน mod.content = เนื้อหา: mod.delete.error = ไม่สามารถลบม็อดออกได้ ไฟล์อาจอยู่ในระหว่างการใช้งาน -mod.incompatiblegame = [red]Outdated Game -mod.incompatiblemod = [red]Incompatible -mod.blacklisted = [red]Unsupported -mod.unmetdependencies = [red]Unmet Dependencies +mod.incompatiblegame = [red]เกมล้าสมัย +mod.incompatiblemod = [red]เข้ากันไม่ได้ +mod.blacklisted = [red]ไม่ได้รับการสนับสนุน +mod.unmetdependencies = [red]ม็อดพึ่งพาขาดหาย: {0} mod.erroredcontent = [scarlet]เนื้อหาผิดพลาด -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]ม็อดพึ่งพาวนลูป +mod.incompletedependencies = [red]ม็อดพึ่งพาไม่ครบ +mod.requiresversion.details = ต้องการเวอร์ชั่นเกม: [accent]{0}[]\nเกมของคุณนั้นเก่าเกินไป ม็อดนี้ต้องการเวอร์ชั่นเกมที่ใหม่กว่านี้ (อาจเป็นรุ่น beta/alpha) เพื่อที่จะทำงานได้ +mod.outdatedv7.details = ม็อดนี้ไม่สามารถใช้งานร่วมกับเกมเวอร์ชั่นล่าสุดได้ ผู้พัฒนาม็อดจะต้องอัปเดตม็อด และเพิ่ม [accent]minGameVersion: 136[] ลงในไฟล์ [accent]mod.json[] ของม็อด +mod.blacklisted.details = ม็อดนี้ถูกขึ้นบัญชีดำเพราะทำให้เกิดข้อขัดข้องและปัญหาอื่นๆ ในเวอร์ชั่นเกมนี้ ห้ามใช้เด็ดขาด +mod.missingdependencies.details = ม็อดนี้ขาดม็อดพึ่งพา: {0} +mod.erroredcontent.details = เกมเกิดปัญหาในระหว่างการโหลด กรุณาสอบถามผู้พัฒนาม็อดเพื่อให้แก้ไข +mod.circulardependencies.details = ม็อดนี้มีม็อดพึ่งพาที่พึ่งพาซึ่งกันและกัน +mod.incompletedependencies.details = ม็อดนี้ไม่สามารถโหลดได้เนื่องจากม็อดพึ่งพามีปัญหาหรือมีม็อดพึ่งพาไม่ครบ: {0} +mod.requiresversion = ต้องการเวอร์ชั่นเกม: [red]{0} mod.errors = มีข้อผิดพลาดเกิดขึ้นระหว่างโหลดเนื้อหา mod.noerrorplay = [scarlet]คุณมีม็อดที่มีข้อผิดพลาด[] กรุณาปิดม็อดนั้นๆ หรือแก้ไขข้อผิดพลาดก่อนที่จะเล่น mod.nowdisabled = [scarlet]ม็อด '{0}' ขาดม็อดพื่งพา:[accent] {1}\n[lightgray]จำเป็นต้องโหลดม็อดพวกนี้ก่อน\nม็อดนี้จะถูกปิดใช้งานโดยอัตโนมัติ mod.enable = เปิดใช้งาน -mod.requiresrestart = เกมจะปิดลงเพื่อติดตั้งม็อด +mod.requiresrestart = เกมจะปิดตัวลงเพื่อติดตั้งม็อด mod.reloadrequired = [scarlet]จำเป็นต้องรีโหลด mod.import = นำเข้าม็อด mod.import.file = นำเข้าไฟล์ @@ -180,20 +180,20 @@ mod.scripts.disable = เครื่องของคุณไม่รอง about.button = เกี่ยวกับ name = ชื่อ: noname = ใส่ชื่อ[accent]ผู้เล่น[]ก่อน -search = Search: +search = ค้นหา: planetmap = แผนที่ดาว launchcore = ส่งแกนกลาง filename = ชื่อไฟล์: unlocked = ปลดล็อกเนื้อหาใหม่! available = มีการวิจัยใหม่พร้อมปลดล็อก! unlock.incampaign = < ปลดล็อกในแคมเปญเพื่อดูรายละเอียด > -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 = เลือกเนื้อเรื่องที่จะเริ่มต้น +campaign.none = [lightgray]โปรดเลือกดาวที่จะเริ่มต้น\nคุณสามารถสลับกลับไปตอนไหนก็ได้ +campaign.erekir = เนื้อหาที่ใหม่กว่าและขัดเกลามามากกว่า เนื้อเรื่องดำเนินเป็นเส้นตรงโดยซะส่วนใหญ่\n\nแมพมีคุณภาพที่ดีกว่า ให้ประสบการณ์โดยรวมที่มีคุณภาพ +campaign.serpulo = ประสบการณ์สุดคลาสสิก เนื้อหาเยอะกว่า เปิดกว้างมากกว่า\n\nแมพและกลไกของแคมเปญอาจไม่สมดุล ขัดเกลามาน้อยกว่า completed = [accent]วิจัยแล้ว techtree = ต้นไม้เทคโนโลยี -techtree.select = เลือกต้นไม้เทคโนโลยี +techtree.select = เลือกต้นไม้แห่งเทคโนโลยี techtree.serpulo = เซอร์ปูโล่ techtree.erekir = เอเรเกียร์ research.load = โหลด @@ -211,8 +211,8 @@ server.kicked.kick = คุณถูกเตะออกจากเซิร server.kicked.whitelist = คุณไม่ได้ถูกรับเชิญ\nคนที่ถูกรับเชิญเท่านั้นที่จะเข้าได้ server.kicked.serverClose = เซิร์ฟเวอร์ถูกปิด server.kicked.vote = คุณถูกโหวตให้เตะออก บัยบาย -server.kicked.clientOutdated = ไคลเอนต์เก่า! กรุณาอัปเดตเกมของคุณ! -server.kicked.serverOutdated = เซิร์ฟเวอร์เก่า! โปรดถามโฮสต์เพื่อให้อัปเดต! +server.kicked.clientOutdated = ไคลเอนต์ล้าสมัย! กรุณาอัปเดตเกมของคุณ! +server.kicked.serverOutdated = เซิร์ฟเวอร์ล้าสมัย! โปรดถามโฮสต์เพื่อให้อัปเดต! server.kicked.banned = คุณถูกแบนในเซิร์ฟเวอร์นี้ server.kicked.typeMismatch = เซิร์ฟเวอร์นี้ไม่เข้ากับประเภทเวอร์ชั่นของคุณ server.kicked.playerLimit = เซิร์ฟเวอร์เต็ม กรุณารอให้เซิร์ฟเวอร์ว่างก่อน @@ -224,7 +224,7 @@ server.kicked.customClient = เซิร์ฟเวอร์นี้ไม่ server.kicked.gameover = จบเกม! server.kicked.serverRestarting = เซิร์ฟเวอร์กำลังเริ่มใหม่ server.versions = เวอร์ชั่นของคุณ:[accent] {0}[]\nเวอร์ชั่นของเซิร์ฟเวอร์:[accent] {1}[] -host.info = ปุ่ม[accent]โฮสต์[]นั้นโฮสต์เซิร์ฟเวอร์ที่พอร์ต [scarlet]6567[] \nทุกคนที่อยู่ใน [lightgray]Wi-Fi หรือเครือข่ายท้องถิ่น[]เดียวกันจะสามารถเห็นเซิร์ฟเวอร์ของคุณในรายชื่อของ\nเซิร์ฟเวอร์ได้\n\nถ้าคุณต้องการให้ผู้เล่นอื่นๆ สามารถเชื่อมต่อได้จากทุกที่โดยใช้ IP คุณจำเป็นจะต้องใช้การ[accent]การส่งต่อพอร์ต (Port Forwarding)[] \n\n[lightgray]โน๊ต: ถ้าผู้เล่นคนใดมีปัญหาในการเชื่อมต่อ LAN ของคุณ เช็กให้แน่ใจว่าคุณได้อนุญาตให้ Mindustry เข้าถึงเครือข่ายท้องถิ่นของคุณในการตั้งค่า Firewall จำไว้ว่าเครือข่ายสาธารณะบางครั้งอาจไม่อนุญาตการ\nค้นหาเซิร์ฟเวอร์ +host.info = ปุ่ม[accent]โฮสต์[]นั้นโฮสต์เซิร์ฟเวอร์ที่พอร์ต [scarlet]6567[] \nทุกคนที่อยู่ใน [lightgray]Wi-Fi หรือเครือข่ายท้องถิ่น[]เดียวกันจะสามารถเห็นเซิร์ฟเวอร์ของคุณในรายชื่อของ\nเซิร์ฟเวอร์ได้\n\nถ้าคุณต้องการให้ผู้เล่นอื่นๆ สามารถเชื่อมต่อได้จากทุกที่โดยใช้ IP คุณจำเป็นจะต้องใช้[accent]การส่งต่อพอร์ต (Port Forwarding)[] \n\n[lightgray]โน๊ต: ถ้าผู้เล่นคนใดมีปัญหาในการเชื่อมต่อ LAN ของคุณ เช็กให้แน่ใจว่าคุณได้อนุญาตให้ Mindustry เข้าถึงเครือข่ายท้องถิ่นของคุณในการตั้งค่า Firewall จำไว้ว่าเครือข่ายสาธารณะบางครั้งอาจไม่อนุญาตการ\nค้นหาเซิร์ฟเวอร์ join.info = คุณสามารถใส่ [accent]IP ของเซิร์ฟเวอร์[]เพื่อที่จะเชื่อมต่อหรือค้นหาเซิร์ฟเวอร์ เซิร์ฟเวอร์ที่ใช้[accent]เครือข่ายท้องถิ่น[]จะสามารถเชื่อมโดยใช้\n LAN หรือ WAN ก็ได้\n\n[lightgray]ถ้าคุณอยากเชื่อมต่อกับใครบางคนโดยใช้ IP คุณต้องไปถามโฮสต์เอาว่า IP ของโฮสต์คืออะไร ซึ่งสามารถหาได้โดยการค้นหาในกูเกิ้ลว่า "ip ของฉัน" จากเครื่องของโฮสต์ hostserver = โฮสต์เกมผู้เล่นหลายคน invitefriends = ชวนเพื่อน @@ -247,7 +247,7 @@ servers.disclaimer = ผู้พัฒนา[accent]ไม่ได้[]เป servers.showhidden = แสดงเซิร์ฟเวอร์ที่ซ่อนไว้ server.shown = แสดง server.hidden = ซ่อน -viewplayer = Viewing Player: [accent]{0} +viewplayer = ผู้เล่นที่ดูอยู่: [accent]{0} trace = แกะรอยผู้เล่น trace.playername = ชื่อผู้เล่น: [accent]{0} @@ -255,8 +255,8 @@ trace.ip = IP: [accent]{0} trace.id = ID: [accent]{0} trace.mobile = ไคลเอนต์โทรศัพท์: [accent]{0} trace.modclient = ไคลเอนต์ปรับแต่ง: [accent]{0} -trace.times.joined = เวลาเข้า: [accent]{0} -trace.times.kicked = เวลาโดนเตะ: [accent]{0} +trace.times.joined = ครั้งที่เข้า: [accent]{0} +trace.times.kicked = ครั้งที่โดนเตะ: [accent]{0} invalidid = ไคลเอนต์ ID ไม่ถูกต้อง! กรุณารายงานบัคนี้ server.bans = แบน server.bans.none = ไม่พบผู้เล่นที่ถูกแบน! @@ -292,7 +292,7 @@ server.invalidport = เลขพอร์ตไม่ถูกต้อง! server.error = [crimson]การโฮสต์เซิร์ฟเวอร์ผิดพลาด save.new = เซฟใหม่ save.overwrite = คุณแน่ใจหรือว่าจะเซฟทับ\nเซฟนี้? -save.nocampaign = Individual save files from the campaign cannot be imported. +save.nocampaign = ไม่สามารถนำเข้าไฟล์เซฟเดี่ยวๆ จากแคมเปญได้ overwrite = เขียนทับ save.none = ไม่พบเซฟ! savefail = เซฟเกมผิดพลาด! @@ -330,26 +330,26 @@ open = เปิด customize = ตั้งค่ากฎ cancel = ยกเลิก command = สั่งการ -command.mine = Mine -command.repair = Repair -command.rebuild = Rebuild -command.assist = Assist Player -command.move = Move -command.boost = Boost +command.mine = ขุด +command.repair = ซ่อมแซม +command.rebuild = สร้างใหม่ +command.assist = ช่วยเหลือผู้เล่น +command.move = ขยับ +command.boost = บูสต์ openlink = เปิดลิ้งค์ copylink = คัดลอกลิ้งค์ back = กลับ max = เต็ม objective = เป้าหมายแมพ crash.export = ส่งออกบันทึกข้อขัดข้อง -crash.none = ไม่เจอบันทึกข้อขัดข้อง +crash.none = ไม่พบบันทึกข้อขัดข้อง crash.exported = ส่งออกบันทึกข้อขัดข้องแล้ว data.export = ส่งออกข้อมูล data.import = นำเข้าข้อมูล data.openfolder = เปิดโฟลเดอร์ข้อมูล data.exported = ส่งออกข้อมูลแล้ว data.invalid = นี่ไม่ใช่ข้อมูลเกมที่ถูกต้อง -data.import.confirm = การนำเข้าข้อมูลจากภายนอกจะเขียนทับข้อมูลเก่า[scarlet]ทั้งหมด[]\n[accent]และไม่สามารถย้อนกลับได้![]\n\nหลังจากที่นำเข้าข้อมูลแล้วเกมจะปิดลงโดยทันที +data.import.confirm = การนำเข้าข้อมูลจากภายนอกจะเขียนทับข้อมูลเก่า[scarlet]ทั้งหมด[]\n[accent]และจะไม่สามารถย้อนกลับได้![]\n\nหลังจากที่นำเข้าข้อมูลแล้วเกมจะปิดตัวลงโดยทันที quit.confirm = คุณแน่ใจหรือว่าจะออก? loading = [accent]กำลังโหลด... downloading = [accent]กำลังดาวน์โหลด... @@ -361,8 +361,8 @@ pausebuilding = กด [accent][[{0}][] เพื่อหยุดการส resumebuilding = กด [scarlet][[{0}][] เพื่อสร้างต่อ enablebuilding = กด [scarlet][[{0}][] เพื่อเปิดใช้งานการสร้าง showui = หน้าต่างถูกซ่อน\nกด [accent][[{0}][] เพื่อเปิดหน้าต่าง -commandmode.name = [accent]Command Mode -commandmode.nounits = [no units] +commandmode.name = [accent]โหมดสั่งการ +commandmode.nounits = [ไม่มียูนิต] wave = [accent]คลื่นที่ {0} wave.cap = [accent]คลื่น {0}/{1} wave.waiting = [lightgray]คลื่นต่อไปใน {0} @@ -384,11 +384,11 @@ map.delete.confirm = คุณแน่ใจหรือว่าจะลบ map.random = [accent]สุ่มแมพ map.nospawn = แมพนี้ไม่มีแกนกลางให้ผู้เล่นเกิด! กรุณาใส่แกนกลาง[#{0}]{1}[] ลงในตัวแก้ไข map.nospawn.pvp = แมพนี้ไม่มีแกนกลางของศัตรูสำหรับให้ผู้เล่นเกิด! กรุณาใส่แกนกลาง[scarlet]ที่ไม่ใช่สีส้ม[] ลงในตัวแก้ไข -map.nospawn.attack = แมพนี้ไม่มีแกนกลางของศัตรูสำหรับให้ผู้เล่นโจมตี! กรุณาใส่แกนกลาง[#{0}]{1}[] ลงในตัวแก้ไข +map.nospawn.attack = แมพนี้ไม่มีแกนกลางของศัตรูสำหรับให้ผู้เล่นโจมตี! กรุณาใส่แกนกลาง [#{0}]{1}[] ลงในตัวแก้ไข map.invalid = โหลดแมพผิดพลาด: ไฟล์แมพเสียหายหรือไม่ถูกต้อง workshop.update = อัปเดตไอเท็ม -workshop.error = ผิดพลาดในการนำเวิร์กช็อปมา รายละเอียดดังนี้: {0} -map.publish.confirm = คุณแน่ใจหรือว่าจะเผยแพร่แมพนี้?\n\n[lightgray]คุณต้องแน่ใจก่อนว่าคุณเห็นด้วยกับ Workshop EULA มิฉนั้นแมพจะไม่ปรากฏ! +workshop.error = เกิดข้อผิดพลาดในการนำเข้าเวิร์กช็อป รายละเอียดดังนี้: {0} +map.publish.confirm = คุณแน่ใจหรือว่าจะเผยแพร่แมพนี้?\n\n[lightgray]คุณต้องแน่ใจก่อนว่าคุณเห็นด้วยกับ Workshop EULA มิฉะนั้นแมพของคุณจะไม่ปรากฏ! workshop.menu = เลือกว่าจะทำอะไรกับไอเท็มนี้ workshop.info = ข้อมูลไอเท็ม changelog = สิ่งที่เปลี่ยนไป (ไม่จำเป็น): @@ -396,7 +396,7 @@ updatedesc = เขียนทับหัวข้อ & คำอธิบา eula = Steam EULA missing = ไอเท็มนี้ถูกลบหรือย้าย\n[lightgray]ยกเลิกการเชื่อมต่อของหน้ารายการเวิร์กช็อปแล้ว publishing = [accent]กำลังเผยแพร่... -publish.confirm = คุณแน่ใจหรือว่าจะเผยแพร่สิ่งนี้?\n\n[lightgray]คุณต้องแน่ใจก่อนว่าคุณเห็นด้วยกับ Workshop EULA มิฉนั้นไอเท็มของคุณจะไม่ปรากฏ! +publish.confirm = คุณแน่ใจหรือว่าจะเผยแพร่สิ่งนี้?\n\n[lightgray]คุณต้องแน่ใจก่อนว่าคุณเห็นด้วยกับ Workshop EULA มิฉะนั้นไอเท็มของคุณจะไม่ปรากฏ! publish.error = เกิดข้อผิดพลาดการเผยแพร่ไอเท็มดังต่อไปนี้: {0} steam.error = ไม่สามารถเริ่มการบริการ Steam ได้\nข้อผิดพลาด: {0} editor.planet = ดาว: @@ -442,22 +442,24 @@ waves.to = ถึง waves.spawn = จุดเกิด: waves.spawn.all = <ทั้งหมด> waves.spawn.select = เลือกจุดเกิด -waves.spawn.none = [scarlet]ไม่เจอจุดเกิดในแมพ +waves.spawn.none = [scarlet]ไม่พบจุดเกิดในแมพ waves.max = ยูนิตสูงสุด waves.guardian = ผู้พิทักษ์ waves.preview = พรีวิว waves.edit = แก้ไข... -waves.random = Random +waves.random = สุ่ม waves.copy = คัดลอกไปยังคลิปบอร์ด waves.load = โหลดจากคลิปบอร์ด waves.invalid = แบบคลื่นในคลิปบอร์ดไม่ถูกต้อง waves.copied = คัดลอกแบบคลื่นแล้ว -waves.none = ไม่ได้กำหนดศัตรู\nแบบคลื่นเปล่าจะถูกแทนที่โดยแบบคลื่นค่าเริ่มต้นของเกม +waves.none = ไม่ได้กำหนดคลื่นศัตรู\nแบบคลื่นเปล่าจะถูกแทนที่โดยแบบคลื่นค่าเริ่มต้นของเกม waves.sort = จัดเรียงตาม waves.sort.reverse = เรียงย้อนกลับ waves.sort.begin = เริ่มต้น waves.sort.health = พลังชีวิต waves.sort.type = ชนิด +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = ซ่อนทั้งหมด waves.units.show = แสดงทั้งหมด @@ -486,7 +488,7 @@ editor.randomize = สุ่ม editor.moveup = ขยับขึ้น editor.movedown = ขยับลง editor.copy = คัดลอก -editor.apply = ใช้ +editor.apply = ใช้งาน editor.generate = การกำเนิด editor.sectorgenerate = สร้างเซ็กเตอร์ editor.resize = เปลี่ยนขนาด @@ -559,7 +561,7 @@ filter.option.chance = โอกาส filter.option.mag = แมกนิจูด filter.option.threshold = เกณฑ์ filter.option.circle-scale = อัตราวงกลม -filter.option.octaves = เลอะเลือน +filter.option.octaves = อ็อกเทฟ filter.option.falloff = หลุดร่วง filter.option.angle = มุม filter.option.tilt = เอียง @@ -605,7 +607,7 @@ requirement.core = ทำลายแกนกลางของศัตรู requirement.research = วิจัย {0} requirement.produce = ผลิต {0} requirement.capture = ยึดครอง {0} -requirement.onplanet = ควบคุมเซ็กเตอร์บน'{0} +requirement.onplanet = ควบคุมเซ็กเตอร์บน {0} requirement.onsector = ลงจอดบนเซ็กเตอร์: {0} launch.text = ลุย! research.multiplayer = โฮสต์เท่านั้นที่วิจัยได้ @@ -617,7 +619,7 @@ objective.produce.name = เก็บเกี่ยว objective.item.name = เก็บไอเท็ม objective.coreitem.name = ไอเท็มในแกนกลาง objective.buildcount.name = นับสิ่งก่อสร้าง -objective.unitcount.name = นับยูนิต +objective.unitcount.name = จำนวนยูนิต objective.destroyunits.name = ทำลายยูนิต objective.timer.name = จับเวลา objective.destroyblock.name = ทำลายบล็อก @@ -641,8 +643,8 @@ objective.build = [accent]สร้าง: [][lightgray]{0}[]x\n{1}[lightgray]{2 objective.buildunit = [accent]ผลิตยูนิต: [][lightgray]{0}[]x\n{1}[lightgray]{2} objective.destroyunits = [accent]ทำลาย: [][lightgray]{0}[]x ยูนิต objective.enemiesapproaching = [accent]ศัตรูจะปรากฏตัวใน [lightgray]{0}[] -objective.enemyescelating = [accent]Enemy production escalating in [lightgray]{0}[] -objective.enemyairunits = [accent]Enemy air unit production beginning in [lightgray]{0}[] +objective.enemyescelating = [accent]โรงงานศัตรูจะทวีความรุนแรงขึ้นใน [lightgray]{0}[] +objective.enemyairunits = [accent]การผลิตยานบินศัตรูจะเริ่มใน [lightgray]{0}[] objective.destroycore = [accent]ทำลายแกนกลางศัตรู objective.command = [accent]สั่งการยูนิต objective.nuclearlaunch = [accent]⚠ ตรวจพบจรวดหัวรบปรมาณู: [lightgray]{0} @@ -654,9 +656,9 @@ resources.max = เต็ม bannedblocks = บล็อกต้องห้าม objectives = เป้าหมาย bannedunits = ยูนิตต้องห้าม -rules.hidebannedblocks = Hide Banned Blocks -bannedunits.whitelist = Banned Units As Whitelist -bannedblocks.whitelist = Banned Blocks As Whitelist +rules.hidebannedblocks = ซ่อนบล็อกต้องห้าม +bannedunits.whitelist = ตั้งยูนิตต้องห้ามเป็นไวท์ลิสต์ +bannedblocks.whitelist = ตั้งบล็อกต้องห้ามเป็นไวท์ลิสต์ addall = เพิ่มทั้งหมด launch.from = ลงจอดจากเซ็กเตอร์: [accent]{0} launch.capacity = ความจุไอเท็มลงจอด: [accent]{0} @@ -681,8 +683,9 @@ weather.snow.name = หิมะ weather.sandstorm.name = พายุทราย weather.sporestorm.name = พายุสปอร์ weather.fog.name = หมอก -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]เวลาที่เล่นเซ็กเตอร์ไป: {0} +campaign.complete = [accent]ยินดีด้วย\n\nศัตรูบน {0} ได้ถูกกำจัดหมดสิ้นแล้ว\n[lightgray]เซ็กเตอร์สุดท้ายได้ถูกยึดครองแล้ว sectorlist = เซ็กเตอร์ sectorlist.attacked = {0} ถูกโจมตึ @@ -717,7 +720,7 @@ sector.lost = เราเสียเซ็กเตอร์ [accent]{0}[white sector.captured = เรายึดครองเซ็กเตอร์'[accent]{0}[white]ได้แล้ว! sector.changeicon = เปลี่ยนไอคอน sector.noswitch.title = ไม่สามารถเปลี่ยนเซ็กเตอร์ได้ -sector.noswitch = คุณไม่สามารถเปลี่ยนเซ็กเตอร์ได้ระหว่างที่อีกเซ็กเตอร์กำลังถูกโจมตีอยู่\n\nเซ็กเตอร์: [accent]{0}[] บนดาว'[accent]{1}[] +sector.noswitch = คุณไม่สามารถเปลี่ยนเซ็กเตอร์ได้ระหว่างที่อีกเซ็กเตอร์กำลังถูกโจมตีอยู่\n\nเซ็กเตอร์: [accent]{0}[] บนดาว [accent]{1}[] sector.view = ดูเซ็กเตอร์ threat.low = ต่ำ @@ -730,7 +733,7 @@ planets = ดาว planet.serpulo.name = เซอร์ปูโล่ planet.erekir.name = เอเรเกียร์ -planet.sun.name = ดวงอาทิตย์ +planet.sun.name = อาทิตย์ sector.impact0078.name = อิมแพค 0078 sector.groundZero.name = กราวน์ ซีโร่ @@ -751,60 +754,60 @@ sector.planetaryTerminal.name = ท่าปล่อยจรวดอวกา sector.coastline.name = แนวชายฝั่ง sector.navalFortress.name = ปราการแห่งวารี -sector.groundZero.description = ที่ที่ดีที่สุดในการเริ่มต้นอีกครั้ง ศัตรูน้อย ทรัพยากรน้อย\nเก็บ[accent]ตะกั่ว[]และ[accent]ทองแดง[]ให้ได้มากที่สุด\nแล้วลุยต่อ +sector.groundZero.description = จุดที่ดีที่สุดในการเริ่มต้นอีกครั้งนึง ศัตรูน้อย ทรัพยากรน้อย\nเก็บ[accent]ตะกั่ว[]และ[accent]ทองแดง[]ให้ได้มากที่สุด\nแล้วลุยต่อ sector.frozenForest.description = แม้แต่ที่นี่ ณ ที่ที่อยู่ใกล้ภูเขา [accent]สปอร์[]ก็ยังแพร่มาถึงที่นี่ อากาศอันแสนเย็นเยือกไม่สามารถหยุดยั้งพวกมันได้ตลอดไป\n\nเริ่มต้นการใช้ไฟฟ้า สร้างเครื่องกำเนิดไฟฟ้าเผาไหม้ เรียนรู้ที่จะใช้เครื่องซ่อมแซม sector.saltFlats.description = ณ ขอบของทะเลทราย เป็นที่ตั้งของที่ราบเกลือ สามารถพบทรัพยากรบางอย่างได้ที่นี่\n\nศัตรูได้ตั้งฐานเก็บทรัพยากรไว้ที่นี่ ทำลายแกนกลางของพวกมัน อย่าให้มีอะไรเหลือ sector.craters.description = มีน้ำขังอยู่ในหลุมอุกกาบาศแห่งนี้ เป็นอนุสรณ์สถานของสงครามเก่าแก่ ยึดพื้นที่นี่มา เก็บทราย เผา[accent]กระจกเมต้า[] ปั๊มน้ำเพื่อมาหล่อเย็นป้อมปืนและเครื่องขุดเจาะ -sector.ruinousShores.description = ถัดมาจากทะเลทราย เป็นที่ตั้งของชายฝั่ง ที่ครั้งก่อน เคยเป็นที่ตั้งของฐานป้องกันชายฝั่ง ซึ่งทุกทำลายไปซะส่วนใหญ่แล้ว มีเหลือแค่ระบบการป้องกันพื้นฐาน ทุกอย่างที่เหลือถูกทำลายเหลือเพียงแค่เศษเหล็ก\n\nทำการขยายการสำรวจต่อไป ค้นพบกับเทคโนโลยีอีกครั้ง +sector.ruinousShores.description = ถัดมาจากทะเลทราย เป็นที่ตั้งของชายฝั่ง ที่ครั้งก่อน เคยเป็นที่ตั้งของฐานป้องกันชายฝั่ง ซึ่งทุกทำลายไปซะส่วนใหญ่แล้ว มีเหลือแค่ระบบการป้องกันพื้นฐาน ทุกอย่างที่เหลือถูกทำลายเหลือเพียงแค่ซากเศษเหล็ก\n\nทำการขยายการสำรวจต่อไป ค้นพบกับเทคโนโลยีอีกครั้ง sector.stainedMountains.description = เข้าลึกไปในพื้นที่ จะพบกับภูเขา ซึ่งยังไม่ถูกสปอร์แตะต้อง\nขุด[accent]ไทเทเนี่ยม[]ที่อุดมสมบูรณ์ในพื้นที่นี้ เรียนรู้ที่จะใช้มัน\n\nมีศัตรูปรากฏตัวมากขึ้นในบริเวณนี้ อย่าปล่อยให้พวกมันส่งยูนิตที่แข็งแกร่งที่สุดออกมา -sector.overgrowth.description = พื้นที่แห่งนี้ถูกปกคลุมไปด้วยพืชรกร้าง เริ่มเข้าใกล้กับแหล่งกำเนิดของสปอร์\nศัตรูได้ตั้งฐานเฝ้าระวังไว้ที่นี่ สร้างยูนิตเมส ทำลายฐานทิ้งซะ\nวิจัย[accent]เครื่องพัฒนารุ่นยกกำลัง[]เพื่อผลิตยูนิตขนาดที่ใหญ่ขึ้น -sector.tarFields.description = แนวชานขอบของแหล่งผลิตน้ำมัน อยู่ระหว่างภูเขาและทะเลทราย เป็นหนึ่งในพื้นที่ที่มีแหล่งน้ำมันดินที่ใช้งานได้\nแม้ว่าจะถูกทิ้งร้าง พื้นที่นี้ยังคงมีฐานทัพของศัตรูอยู่ใกล้ๆ อย่าประมาทกับพวกมัน\n\n[lightgray]วิจัยเทคโนโลยีการแปรรูปน้ำมันหากเป็นไปได้[] -sector.desolateRift.description = เป็นพื้นที่ที่อันตรายมาก ทรัพยากรมากมาย แต่พื้นที่คับแคบ ความเสี่ยงการโดนทำลายล้างสูง ออกไปจากที่นี่ให้เร็วที่สุด อย่าถูกหลอกโดยระยะเวลาระหว่างการโจมตีของศัตรูที่เว้นไว้นานกว่าปกติ +sector.overgrowth.description = พื้นที่แห่งนี้ถูกปกคลุมไปด้วยพืชรกร้าง เริ่มเข้าใกล้กับแหล่งกำเนิดของสปอร์มากขึ้น\nศัตรูได้ตั้งฐานเฝ้าระวังไว้ที่นี่ สร้างยูนิตเมส ทำลายฐานทิ้งซะ\nวิจัย[accent]เครื่องพัฒนารุ่นยกกำลัง[]เพื่อผลิตยูนิตขนาดที่ใหญ่ขึ้น +sector.tarFields.description = แนวชายขอบของแหล่งผลิตน้ำมัน อยู่ระหว่างภูเขาและทะเลทราย เป็นหนึ่งในพื้นที่ที่มีแหล่งน้ำมันดินที่ใช้งานได้\nแม้ว่าจะถูกทิ้งร้าง พื้นที่นี้ยังคงมีฐานทัพของศัตรูอยู่ใกล้ๆ อย่าประมาทกับพวกมัน\n\n[lightgray]วิจัยเทคโนโลยีการแปรรูปน้ำมันหากเป็นไปได้ +sector.desolateRift.description = เป็นพื้นที่ที่อันตรายมาก ทรัพยากรมากมาย แต่พื้นที่คับแคบ ความเสี่ยงในการโดนทำลายล้างสูง รีบออกไปจากที่นี่ให้เร็วที่สุด อย่าให้ถูกหลอกโดยระยะเวลาระหว่างการโจมตีของศัตรูที่เว้นไว้นานกว่าปกติ sector.nuclearComplex.description = สถานที่ผลิตและแปรรูป[accent]ทอเรี่ยม[]เก่า ถูกทำลายไม่เหลือสิ้น\nวิจัยทอเรี่ยมและวิธีการใช้มัน\n\nศัตรูในบริเวณนี้มีจำนวนมาก คอยตรวจตราหาผู้บุกรุกอยู่ตลอดเวลา -sector.fungalPass.description = ทางผ่านระหว่างพื้นที่สูงและต่ำของภูเขา พื้นที่นี้เต็มไปด้วยสปอร์ ฐานลาดตระเวนขนาดเล็กของศัตรูตั้งอยู่ที่นี่\nทำลายมันซะ\nผลิตยูนิตแด็กเกอร์และครอว์เลอร์ ทำลายแกนกลางทั้งสองไม่ให้เหลือซาก -sector.biomassFacility.description = แหล่งต้นกำเนิดของสปอร์ ที่นี่คือฐานวิจัยและผลิตสปอร์เริ่มแรก\nวิจัยเทคโนโลยีที่อยู่ภายในนั้น เพาะชำ[accent]สปอร์[]เพื่อเป็นเชื้อเพลิงและใช้ในการผลิตพลาสติก\n\n[gray]เมื่อสถานที่นี้ถูกทิ้งร้าง สปอร์ก็ถูกปล่อยออกมา ไม่มีสิ่งใดในระบบนิเวศท้องถิ่นที่สามารถแข่งขันกับสิ่งมีชีวิตที่\nแพร่กระจายเช่นนี้ได้ -sector.windsweptIslands.description = เลยแนวชายฝั่งไปจะพบกับหมู่เกาะที่ตั้งอยู่ห่างไกลแห่งนี้ เคยมีบันทึกว่าที่นี่มีโรงงานผลิต[accent]พลาสตาเนี่ยม[]อยู่\n\nทำลายเรือศัตรู สร้างฐานทัพบนเกาะ วิจัยโรงงานพวกนี้ +sector.fungalPass.description = ทางเปลี่ยนผ่านระหว่างพื้นที่เขาสูงกับที่ราบต่ำที่เต็มไปด้วยสปอร์ มีฐานลาดตระเวนขนาดเล็กของศัตรูตั้งอยู่ที่นี่\nทำลายมันซะ\nผลิตยูนิตแด็กเกอร์และครอว์เลอร์ ทำลายแกนกลางทั้งสองไม่ให้เหลือซาก +sector.biomassFacility.description = แหล่งต้นกำเนิดของสปอร์ ที่นี่คือฐานวิจัยและผลิตสปอร์เริ่มแรก\nวิจัยเทคโนโลยีที่อยู่ภายในนั้น เพาะชำ[accent]สปอร์[]เพื่อเป็นเชื้อเพลิงและใช้ในการผลิตพลาสติก\n\n[gray]เมื่อสถานแห่งนี้ถึงจุดจบลง สปอร์ก็ถูกปล่อยออกมา ไม่มีสิ่งใดในระบบนิเวศท้องถิ่นที่สามารถแข่งขันกับ\nสิ่งมีชีวิตที่แพร่กระจายในระดับนี้ได้ +sector.windsweptIslands.description = เลยแนวชายฝั่งไป จะพบกับหมู่เกาะที่ตั้งอยู่ห่างไกลแห่งนี้ เคยมีบันทึกว่าที่นี่มีโรงงานผลิต[accent]พลาสตาเนี่ยม[]อยู่\n\nทำลายเรือศัตรู สร้างฐานทัพบนเกาะ วิจัยโรงงานพวกนี้ sector.extractionOutpost.description = ด่านที่อยู่ห่างไกล สร้างโดยศัตรูเพื่อใช้ในการส่งทรัพยากรไปยังฐานทัพอื่น\n\nเทคโนโลยีการส่งไอเท็มข้ามเซ็กเตอร์เป็นสิ่งจำเป็นสำหรับการพิชิตถัดๆ ไป ทำลายด่าน วิจัยฐานส่งของ -sector.impact0078.description = ณ ที่แห่งนี้คือเศษซากของเรือขนส่งระหว่างดวงดาวที่เคยเข้ามายังระบบนี้\nเศษเหล็กและหิมะปกคลุมทั่วทั้งพื้นที่\n\nกอบกู้ซากยานให้ได้มากที่สุด วิจัยเทคโนโลยีทั้งหมดที่ยังเหลือรอด\n\n\n[gray]อย่าประมาทกับฐานทัพศัตรูที่อยู่ใกล้ๆ โดยอันขาด\nศัตรูจะส่งกองกำลังมาโจมตีเรื่อยๆ จนกว่าคุณจะพ่ายแพ้[] +sector.impact0078.description = ณ ที่แห่งนี้คือเศษซากของเรือขนส่งระหว่างดวงดาวที่เคยเข้ามายังระบบนี้\nเศษเหล็กและหิมะปกคลุมไปทั่วทั้งพื้นที่\n\nกอบกู้ซากยานให้ได้มากที่สุด วิจัยเทคโนโลยีทั้งหมดที่ยังเหลือรอด\n\n\n[gray]อย่าประมาทกับฐานทัพศัตรูที่อยู่ใกล้ๆ โดยอันขาด\nศัตรูจะส่งกองกำลังมาโจมตีเรื่อยๆ จนกว่าคุณจะพ่ายแพ้ 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.coastline.description = ถัดมาจากที่ราบเกลือ เป็นที่ตั้งของแนวชายฝั่ง พบเศษซากของเทคโนโลยียูนิตเรือที่ล้ำหน้าอยู่ในพื้นที่แห่งนี้\nขับไล่ศัตรูออกไป ยึดพื้นที่นี้มา วิจัยเทคโนโลยีนั้น +sector.navalFortress.description = ศัตรูได้ตั้งฐานทัพอยู๋บนเกาะห่างไกลที่มีกำแพงธรรมชาติปกป้องฐานเอาไว้ ทำลายฐานทัพ ยึดและวิจัยเทคโนโลยีเรือรบที่ล้ำหน้านั้นมา + sector.onset.name = การเริ่มต้น sector.aegis.name = เกราะกำบัง -sector.lake.name = ทะเลสาบ -sector.intersect.name = ทางตัดผ่าน +sector.lake.name = ทะเลสาบสีชาด +sector.intersect.name = ทางเชื่อมผ่าน sector.atlas.name = แอตลาส -sector.split.name = รอยแยก -sector.basin.name = แอ่ง -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.origin.name = Origin -sector.onset.description = Commence the conquest of Erekir. Gather resources, produce units, and begin researching technology. - -sector.aegis.description = ศัตรูได้รับการปกป้องจากโล่ ตรวจพบส่วนประกอบของเครื่องทำลายโล่รุ่นทดลองในพื้นที่นี้\nตามหาสิ่งก่อสร้างนั้น นำทังสเตนใส่เข้าไปและทำลายฐานศัตรูทิ้งซะ -sector.lake.description = This sector's slag lake greatly limits viable units. A hover unit is the only option.\nResearch the [accent]ship fabricator[] and produce an [accent]elude[] unit as soon as possible. -sector.intersect.description = เครื่องสแกนเสนอว่าเซ็กเตอร์นี้จะถูกโจมตีจากหลายๆ ด้านไม่นานหลังจากการลงจอด\nสร้างฐานป้องกันให้ไวและขยายพื้นที่ให้เร็วที่สุด\nจำเป็นต้องมียูนิต[accent]จักรกล[]เพื่อสำรวจผ่านบนภูมิประเทศที่หยาบและขรุขระในพื้นที่นี้ -sector.atlas.description = เซ็กเตอร์นี้มีภูมิประเทศที่หลากหลายและจำเป็นจะต้องมียูนิตหลากหลายชนิดเพื่อให้การโจมตีมีประสิทธิภาพ\nยูนิตขั้นสูงอาจจำเป็นเพื่อต่อกรกับฐานทัพศัตรูที่แข็งแกร่งขึ้นในพื้นที่นี้\nวิจัย[accent]เครื่องแยกสลายไฟฟ้า[]และ[accent]เครื่องแปลงสภาพรถถัง[] -sector.split.description = จำนวนศัตรูอันน้อยนิดทำให้เป็นเวลาที่เหมาะที่สุดในการทดสอบระบบการขนส่งใหม่ -sector.basin.description = {ชั่วคราว}\n\nThe last sector for now. Consider this a challenge level - more sectors will be added in a later release. -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 = No enemy cores detected in the sector, although it's an important transportation route for the enemy. Expect a variety of enemy forces.\nProduce [accent]surge alloy[]. Construct [accent]Afflict[] turrets. -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.split.name = สองฝั่ง +sector.basin.name = แอ่งยุบ +sector.marsh.name = บึงหนอง +sector.peaks.name = ยอดเขา +sector.ravine.name = หุบเหว +sector.caldera-erekir.name = หลุมปล่องภูเขาไฟ +sector.stronghold.name = ป้อมปราการ +sector.crevice.name = ร่องลึก +sector.siege.name = การรุมล้อม +sector.crossroads.name = แบ่งแยก +sector.karst.name = คาสต์ +sector.origin.name = ต้นกำเนิด +sector.onset.description = ตั้งต้นการบุกโจมตีเพื่อพิชิตดาว[accent]เอเรเกียร์[] เก็บทรัพยากร สร้างยูนิต และเริ่มค้นคว้าวิจัยเทคโนโลยี +sector.aegis.description = พบการสะสมของแหล่งแร่ทังสเตนในพื้นที่นี้\nวิจัย[accent]เครื่องขุดแรงกระแทก[]เพื่อขุดทรัพยากรนี้ และทำลายฐานทัพศัตรูที่อยู่ในพื้นที่ +sector.lake.description = ทะเลสาบแร่หลอมในพื้นที่นี้ทำให้ไม่สามารถใช้ยูนิตธรรมดาได้ จะต้องมียูนิตที่ลอยตัวเหนื้อพื้นดินเพื่อที่จะผ่านไปได้\nวิจัย[accent]เครื่องสรรค์สร้างยานบิน[]และผลิตยูนิต[accent]เอลูด[]ให้เร็วที่สุดเท่าที่จะเป็นไปได้ +sector.intersect.description = เครื่องสแกนเสนอว่าพื้นที่นี้จะถูกโจมตีจากหลายๆ ด้านไม่นานหลังจากการลงจอด\nสร้างฐานป้องกันให้ไวและขยายพื้นที่ให้เร็วที่สุด\nจำเป็นต้องมียูนิต[accent]จักรกล[]เพื่อสำรวจผ่านบนภูมิประเทศที่หยาบและขรุขระในพื้นที่นี้ +sector.atlas.description = พื้นที่แห่งนี้มีภูมิประเทศที่หลากหลายและจำเป็นจะต้องมียูนิตหลากหลายชนิดเพื่อให้การโจมตีมีประสิทธิภาพ\nยูนิตขั้นสูงอาจจำเป็นเพื่อต่อกรกับฐานทัพศัตรูที่แข็งแกร่งขึ้นในพื้นที่นี้\nวิจัย[accent]เครื่องแยกสลายไฟฟ้า[]และ[accent]เครื่องแปลงสภาพรถถัง[] +sector.split.description = จำนวนศัตรูอันน้อยนิดทำให้ที่นี่เป็นพื้นที่ที่เหมาะที่สุดในการทดสอบระบบการขนส่งใหม่ +sector.basin.description = ตรวจพบการมีอยู่ของศัตรูจำนวนมากในพื้นที่นี้\nควรรีบสร้างยูนิตและยึดแกนกลางศัตรูเพื่อให้ตั้งหลักได้ +sector.marsh.description = พื้นที่แห่งนี้มีบ่ออาร์คย์ไซต์อยู่จำนวนมาก แต่มีปล่องจำนวนจำกัด\nสร้าง[accent]ห้องเผาไหม้ทางเคมี[]เพื่อผลิตพลังงาน +sector.peaks.description = ภูมิประเทศแบบขุนเขาในพื้นที่แห่งนี้ทำให้ยูนิตปกติใช้การไม่ได้ จำเป็นจะต้องมียูนิตที่บินได้เพื่อที่จะบุกโจมตี\nควรระวังป้อมปืนต่อต้านอากาศยานของศัตรูให้ดี มีความไปได้ที่จะสามารถตัดกำลังป้อมปืนบางส่วนได้โดยการทำลายสิ่งก่อสร้างที่รองรับพวกมัน +sector.ravine.description = ทางเชื่อมขนส่งทรัพยากรที่สำคัญของศัตรู ตรวจไม่พบแกนกลางศัตรูในพื่นที่นี้ แต่ก็ต้องเตรียมตัวรับมือกับกำลังศัตรูที่จะมาในหลากหลายรูปแบบ\nผลิต[accent]เสิร์จอัลลอย[]แล้วสร้างป้อมปืน[accent]อัฟฟลิกต์[]มาป้องกัน +sector.caldera-erekir.description = ทรัพยากรที่ถูกตรวจพบในพื้นที่นี้นั้นกระจัดกระจายไปในหลายๆ เกาะ\nวิจัยและพัฒนาเทคโนโลยีการขนส่งด้วยโดรน +sector.stronghold.description = ปราการขนาดใหญ่ของศัตรูนี้กำลังปกป้องแหล่งแร่[accent]ทอเรี่ยม[]จำนวนมหาศาลในพื้นที่แห่งนี้\nจงใช้มันเพื่อนำไปพัฒนาป้อมปืนและยูนิตขึ้นสูงกว่า +sector.crevice.description = ศัตรูจะส่งกำลังโจมตีที่ดุร้ายและทรงพลังเป็นพิเศษเพื่อที่จะทำลายฐานทัพของคุณในพื้นที่นี้\nวิจัยและพัฒนา[accent]คาร์ไบต์[]กับ[accent]เครื่องกำเนิดไฟฟ้าไพโรไลซิส[]เพื่อเพิ่มโอกาสการอยู่รอดในพื้นที่นี้ +sector.siege.description = พื้นที่นี้ประกอบไปด้วยหุบเขาคู่ขนานสองแห่งที่ทำให้ต้องทำการบุกโจมตีทั้งสองฝั่งพร้อมกัน\nวิจัย[accent]ไซยาโนเจน[]เพื่อที่จะสามารถสร้างยูนิตรถถังที่แข็งแกร่งขึ้น\nโปรดระวัง: ตรวจพบขีปนาวุธพิสัยไกลของศัตรู สามารถทำลายหัวรบขีปนาวุธได้ก่อนที่มันจะระเบิด +sector.crossroads.description = ฐานทัพศัตรูในพื้นที่นี้ได้ถูกก่อสร้างในพื้นที่ที่หลากหลาย วิจัยยูนิตแต่ละตัวเพื่อปรับใช้ในสถานการณ์ต่างๆ\nเพิ่มเติม: ฐานทัพบางฐานได้รับการปกป้องด้วยโล่พลังงาน จงหาวิธีที่จะตัดพลังงานของโล่ออกให้ได้ +sector.karst.description = พื้นที่นี้มีความอุดมสมบูรณ์ เต็มไปด้วยทรัพยากร แต่มันจะถูกศัตรูหมายโจมตีเมื่อมีแกนกลางใหม่มาลงจอด\nใช้ทรัพยากรที่อุดมสมบูรณ์มาวิจัย[accent]ใยเฟส[] และต่อต้านกำลังศัตรูให้ได้ +sector.origin.description = เป้าหมายสุดท้าย ตรวจพบการมีอยู่ของศัตรูจำนวนมหาศาล\nไม่มีการวิจัยที่เป็นไปได้หลงเหลืออยู่แล้ว มุ่งแต่โจมดีฐานทัพของศัตรูให้หมดสิ้น status.burning.name = เผาไหม้ status.freezing.name = แช่แข็ง @@ -889,6 +892,7 @@ stat.repairspeed = ความเร็วการซ่อม stat.weapons = อาวุธ stat.bullet = กระสุน stat.moduletier = ระดับหน่วยประกอบ +stat.unittype = ชนิดยูนิต stat.speedincrease = เพิ่มความเร็ว stat.range = ระยะ stat.drilltier = แร่ที่ขุดได้ @@ -912,7 +916,7 @@ stat.lightningchance = โอกาสเกิดสายฟ้า stat.lightningdamage = ดาเมจสายฟ้า stat.flammability = ความไวไฟ stat.radioactivity = กัมมันตภาพรังสี -stat.charge = ชาร์จ +stat.charge = ชาร์จไฟฟ้า stat.heatcapacity = ความจุความร้อน stat.viscosity = ความหนืด stat.temperature = อุณหภูมิ @@ -931,20 +935,20 @@ stat.speedmultiplier = พหุคูณความเร็ว stat.reloadmultiplier = พหุคูณการรีโหลด stat.buildspeedmultiplier = พหุคูณความเร็วการสร้าง stat.reactive = ปฏิกิริยา -stat.immunities = ต่อต้านเอฟเฟกต์ +stat.immunities = ต่อต้านสถานะ stat.healing = การรักษา ability.forcefield = โล่พลังงาน ability.repairfield = สนามซ่อมแซม ability.statusfield = {0} สนามเอฟเฟกต์ -ability.unitspawn = โรงงาน'{0} +ability.unitspawn = โรงงานผลิต [accent]{0} ability.shieldregenfield = สนามรักษาโล่ ability.movelightning = ปล่อยสายฟ้าเมื่อเคลื่อนที่ -ability.shieldarc = Shield Arc -ability.suppressionfield = Regen Suppression Field +ability.shieldarc = โล่พลังงานโค้ง +ability.suppressionfield = สนามระงับการฟื้นฟู ability.energyfield = สนามพลังงาน: [accent]{0}[] ดาเมจ ~ [accent]{1}[] บล็อก / [accent]{2}[] เป้าหมาย -bar.onlycoredeposit = ขนย้ายทรัพยากรลงแกนกลางได้เท่านั้น +bar.onlycoredeposit = ขนย้ายทรัพยากรลงแกนกลางได้เท่านั้น bar.drilltierreq = ต้องมีเครื่องขุดที่ดีกว่านี้ bar.noresources = ขาดทรัพยากร bar.corereq = ต้องวางบนแกนกลาง @@ -953,9 +957,9 @@ bar.cargounitcap = ถึงขีดจำกัดยูนิตขนส่ bar.drillspeed = ความเร็วการขุด: {0}/วิ bar.pumpspeed = ความเร็วการปั้ม: {0}/วิ bar.efficiency = ประสิทธิภาพ: {0}% -bar.boost = เปอร์เซ็นการเร่ง: +{0}% +bar.boost = การเร่ง: +{0}% bar.powerbalance = พลังงาน: {0}/วิ -bar.powerstored = เก็บแล้ว: {0}/{1} +bar.powerstored = สะสมไว้: {0}/{1} bar.poweramount = พลังงาน: {0} bar.poweroutput = พลังงานออก: {0} bar.powerlines = การเชื่อมต่อ: {0}/{1} @@ -964,7 +968,7 @@ bar.capacity = ความจุ: {0} bar.unitcap = {0} {1}/{2} bar.liquid = ของเหลว bar.heat = ความร้อน -bar.instability = Instability +bar.instability = ความไม่เสถียร bar.heatamount = ความร้อน: {0} bar.heatpercent = ความร้อน: {0} ({1}%) bar.power = พลังงาน @@ -973,7 +977,7 @@ bar.loadprogress = ความคืบหน้า bar.launchcooldown = คูลดาวน์การส่งทรัพยากร bar.input = ด้านเข้า bar.output = ด้านออก -bar.strength = [lightgray]ความแรง [stat]{0}[lightgray]x +bar.strength = [lightgray]ความรุนแรง [stat]{0}[lightgray]x units.processorcontrol = [lightgray]ถูกตัวประมวลผลควบคุมอยู่ @@ -982,17 +986,19 @@ bullet.splashdamage = [stat]{0}[lightgray] ดาเมจกระจาย ~[s bullet.incendiary = [stat]ติดไฟ bullet.homing = [stat]ติดตามตัว bullet.armorpierce = [stat]เจาะเกราะ -bullet.frags = [stat]{0}[lightgray]x กระจาย กระสุน: +bullet.suppression = [stat]{0} วิ[lightgray] ระงับการฟื้นฟู ~ [stat]{1}[lightgray] ช่อง +bullet.interval = [stat]{0}/วิ[lightgray] กระสุนช่วงระยะ: +bullet.frags = [stat]{0}[lightgray]x กระสุนกระจาย: bullet.lightning = [stat]{0}[lightgray]x สายฟ้า ~ [stat]{1}[lightgray] ดาเมจ bullet.buildingdamage = [lightgray]ดาเมจต่อสิ่งก่อสร้าง [stat]{0}%[lightgray] bullet.knockback = [stat]{0}[lightgray] ดันกลับ bullet.pierce = [lightgray]เจาะทะลุ [stat]{0}[lightgray]x bullet.infinitepierce = [stat]เจาะทะลุ -bullet.healpercent = [lightgray]เปอร์เซ็นการรักษา: [stat]{0}[lightgray]% -bullet.healamount = รักษาโดยตรง [stat]{0}[lightgray] หน่วย +bullet.healpercent = [stat]{0}[lightgray]% รักษา +bullet.healamount = [lightgray]รักษาโดยตรง [stat]{0}[lightgray] หน่วย bullet.multiplier = [lightgray]จำนวนกระสุนต่อไอเท็ม [stat]{0}[lightgray]x -bullet.reload = [lightgray]ความเร็วการยิง: [stat]{0}[lightgray]x -bullet.range = ระยะยิง [stat]{0}[lightgray] ช่อง +bullet.reload = [lightgray]ความเร็วการยิง [stat]{0}[lightgray]% +bullet.range = [lightgray]ระยะยิง [stat]{0}[lightgray] ช่อง unit.blocks = บล็อก unit.blockssquared = บล็อก² @@ -1013,9 +1019,9 @@ unit.percent = % unit.shieldhealth = พลังชีวิตโล่ unit.items = ไอเท็ม unit.thousands = k -unit.millions = 'ล้าน -unit.billions = 'พันล้าน -unit.pershot = [] []ไอเท็ม/การยิง +unit.millions = mil +unit.billions = b +unit.pershot = /การยิง category.purpose = วัตถุประสงค์ category.general = ทั่วไป category.power = พลังงาน @@ -1024,7 +1030,7 @@ category.items = ไอเท็ม category.crafting = การผลิต category.function = ฟังค์ชั่น category.optional = ทางเลือกการเพิ่มประสิทธิภาพ -setting.skipcoreanimation.name = ข้ามแอนิเมชั่นบิน/ลงจอดของแกนกลาง +setting.skipcoreanimation.name = ข้ามแอนิเมชั่นการบิน/ลงจอดของแกนกลาง setting.landscape.name = ล็อกภูมิทัศน์แนวนอน setting.shadows.name = เงา setting.blockreplace.name = แนะนำบล็อกโดยอัตโนมัติ @@ -1033,13 +1039,13 @@ setting.hints.name = คำแนะนำ setting.logichints.name = คำแนะนำลอจิก setting.backgroundpause.name = หยุดในพื้นหลัง setting.buildautopause.name = หยุดสร้างชั่วคราวแบบอัตโนมัติ -setting.doubletapmine.name = แตะสองครั้งเพื่อขุด +setting.doubletapmine.name = กดสองครั้งเพื่อขุด setting.commandmodehold.name = กดค้างเพื่อสั่งการ setting.modcrashdisable.name = ปิดม็อดเมื่อเกมขัดข้อง setting.animatedwater.name = แอนิเมชั่นพื้นและน้ำ -setting.animatedshields.name = แอนิเมชั่นเกราะ +setting.animatedshields.name = แอนิเมชั่นโล่พลังงาน setting.playerindicators.name = ตัวบอกผู้เล่น -setting.indicators.name = ตัวบอกศัตรู/พักพวก +setting.indicators.name = ตัวบอกศัตรู/พันธมิตร setting.autotarget.name = เล็งเป้าอัตโนมัติ setting.keyboard.name = การควบคุมแบบเม้าส์ + คีย์บอร์ด setting.touchscreen.name = การควบคุมแบบหน้าจอสัมผัส @@ -1047,8 +1053,8 @@ setting.fpscap.name = FPS สูงสุด setting.fpscap.none = ∞ setting.fpscap.text = {0} FPS setting.uiscale.name = อัตราขนาด UI -setting.uiscale.description = จำเป็นต้องรีสตาร์ทเพื่อใส่การเปลี่ยนแปลง -setting.swapdiagonal.name = การวางเป็นเส้นทแยงเสมอ +setting.uiscale.description = อาจจะต้องรีสตาร์ทเพื่อใช้งานการเปลี่ยนแปลง +setting.swapdiagonal.name = วางเป็นเส้นทแยงเสมอ setting.difficulty.training = ฝึกซ้อม setting.difficulty.easy = ง่าย setting.difficulty.normal = ปานกลาง @@ -1061,7 +1067,7 @@ setting.bloomblur.name = ความเบลอบลูม setting.effects.name = แสดงเอฟเฟกต์ setting.destroyedblocks.name = แสดงบล็อกที่ถูกทำลาย setting.blockstatus.name = แสดงสถานะของบล็อก -setting.conveyorpathfinding.name = ตรวจสอบเส้นทางการวางอัจฉริยะ +setting.conveyorpathfinding.name = ตรวจสอบเส้นทางการวางสายพาน setting.sensitivity.name = ความเร็วของตัวควบคุม setting.saveinterval.name = ระยะห่างระหว่างการเซฟ setting.seconds = {0} วินาที @@ -1069,7 +1075,7 @@ setting.milliseconds = {0} มิลลิวินาที setting.fullscreen.name = เต็มจอ setting.borderlesswindow.name = หน้าต่างแบบไร้ขอบ setting.borderlesswindow.name.windows = จอเต็มแบบไร้ขอบ -setting.borderlesswindow.description = อาจจะต้องรีสตาร์ทเพื่อใส่การเปลี่ยนแปลง +setting.borderlesswindow.description = อาจจะต้องรีสตาร์ทเพื่อใช้งานการเปลี่ยนแปลง setting.fps.name = แสดง FPS และ Ping setting.console.name = เปิดใช้งานคอนโซล setting.smoothcamera.name = กล้องแบบลื่นไหล @@ -1081,8 +1087,8 @@ setting.position.name = แสดงตำแหน่งของผู้เ setting.mouseposition.name = แสดงตำแหน่งเม้าส์ setting.musicvol.name = ระดับเสียงเพลง setting.atmosphere.name = แสดงชั้นบรรยากาศของดาว -setting.ambientvol.name = ระดับเสียงล้อมรอบ -setting.mutemusic.name = ปิดเพลง +setting.ambientvol.name = ระดับเสียงแวดล้อม +setting.mutemusic.name = ปิดเสียงเพลง setting.sfxvol.name = ระดับเสียง SFX setting.mutesound.name = ปิดเสียง setting.crashreport.name = ส่งรายงานข้อขัดข้องแบบไม่ระบุตัวตน @@ -1090,13 +1096,13 @@ setting.savecreate.name = สร้างเซฟโดยอัตโนมั setting.publichost.name = การมองเห็นเซิร์ฟเวอร์สาธารณะ setting.playerlimit.name = จำกัดผู้เล่น setting.chatopacity.name = ความโปร่งแสงของแชท -setting.lasersopacity.name = ความโปร่งแสงของเลเซอร์พลังงาน +setting.lasersopacity.name = ความโปร่งแสงของลำแสงพลังงาน setting.bridgeopacity.name = ความโปร่งแสงของสะพาน -setting.playerchat.name = แสดงบับเบิ้ลแชทของผู้เล่น -setting.showweather.name = แสดงแกรฟฟิกสภาพอากาศ +setting.playerchat.name = แสดงกล่องแชทบนผู้เล่น +setting.showweather.name = แสดงกราฟิกสภาพอากาศ setting.hidedisplays.name = ซ่อนหน้าจอลอจิก -public.confirm = คุณต้องการให้เกมของคุณเปิดเป็นสาธารณะหรือไม่?\n[accent]ทุกคนจะสามารถเข้าร่วมเกมของคุณได้\n[lightgray]คุณสามารถเปลี่ยนการตั้งค่านี้ได้ที่ ตั้งค่า->เกม->การมองเห็นเซิร์ฟเวอร์สาธารณะ -public.confirm.really = หากคุณอยากเล่นกับเล่นกับเพื่อน ใช้[green]ชวนเพื่อน[]ดีกว่า แทนที่จะใช้[scarlet]เซิร์ฟเวอร์สาธารณะ[]!\nคุณแน่ใจนะว่าจะเปลี่ยนเกมคุณเป็น[scarlet]สาธารณะ[]? +steam.friendsonly = เพื่อนเท่านั้น +steam.friendsonly.tooltip = ว่าจะให้แค่เพื่อนเท่านั้นหรือไม่ที่จะสามารถเข้าร่วมเกมของคุณได้\nหากคุณติ๊กช่องนี้ออกนั้นจะทำให้เกมของคุณเปิดเป็นสาธารณะ - ใครๆก็จะสามารถเข้าร่วมเกมของคุณได้ public.beta = เกมเวอร์ชั่นเบต้าไม่สามารถเปิดเซิร์ฟเวอร์สาธารณะได้ uiscale.reset = อัตราขนาดของ UI ได้มีการเปลี่ยนแปลง\nกด "โอเค" เพื่อยืนยันขนาด UI นี้\n[scarlet]จะเปลี่ยนกลับไปเป็นขนาดเดิมและออกในอีก[accent] {0}[] วินาที... uiscale.cancel = ยกเลิกและออก @@ -1114,7 +1120,7 @@ keybind.clear_building.name = เคลียร์สิ่งก่อสร keybind.press = กดปุ่มใดก็ได้... keybind.press.axis = กดแกนหรือปุ่มใดก็ได้... keybind.screenshot.name = ถ่ายรูปแมพ -keybind.toggle_power_lines.name = เปิด/ปิด เลเซอร์พลังงาน +keybind.toggle_power_lines.name = เปิด/ปิด ลำแสงพลังงาน keybind.toggle_block_status.name = เปิด/ปิด สถานะของบล็อก keybind.move_x.name = เคลื่อนที่ในแกน x keybind.move_y.name = เคลี่อนที่ในแกน y @@ -1122,7 +1128,7 @@ keybind.mouse_move.name = ตามเม้าส์ keybind.pan.name = เคลื่อนการมองเห็น keybind.boost.name = บูสต์ keybind.command_mode.name = โหมดสั่งการ -keybind.rebuild_select.name = Rebuild Region +keybind.rebuild_select.name = เลือกพื้นที่สร้างใหม่ keybind.schematic_select.name = เลือกพื้นที่ keybind.schematic_menu.name = เมนูแผนผัง keybind.schematic_flip_x.name = กลับด้านแผนผังแกน X @@ -1148,8 +1154,8 @@ keybind.select.name = เลือก/ยิง keybind.diagonal_placement.name = วางเป็นแนวทแยง keybind.pick.name = เลือกบล็อก keybind.break_block.name = ทุบบล็อก -keybind.select_all_units.name = Select All Units -keybind.select_all_unit_factories.name = Select All Unit Factories +keybind.select_all_units.name = เลือกยูนิตทั้งหมด +keybind.select_all_unit_factories.name = เลือกโรงงานยูนิตทั้งหมด keybind.deselect.name = ยกเลิกการเลือก keybind.pickupCargo.name = ยกสิ่งบรรทุกขึ้น keybind.dropCargo.name = วางสิ่งบรรทุกลง @@ -1188,15 +1194,15 @@ mode.custom = กฎแบบกำหนดเอง rules.infiniteresources = ทรัพยากรไม่จำกัด rules.onlydepositcore = ขนย้ายทรัพยากรลงแกนกลางได้เท่านั้น -rules.reactorexplosions = การระเบิดของเตาปฏิกร +rules.reactorexplosions = เปิดการระเบิดของเตาปฏิกร rules.coreincinerates = แกนกลางเผาทรัพยากรส่วนเกิน rules.disableworldprocessors = ปิดการทำงานของตัวประมวลผลโลก -rules.schematic = อนุญาตแผนผัง +rules.schematic = อนุญาตให้ใช้แผนผัง rules.wavetimer = นับถอยหลังการปล่อยคลื่น -rules.wavesending = Wave Sending +rules.wavesending = การปล่อยคลื่น rules.waves = คลื่น rules.attack = โหมดการโจมตี -rules.rtsai = RTS AI +rules.rtsai = RTS AI [red](ไม่เสถียร) rules.rtsminsquadsize = ขนาดกองทัพเล็กที่สุด rules.rtsmaxsquadsize = ขนาดกองทัพใหญ่ที่สุด rules.rtsminattackweight = ขนาดน้ำหนักการโจมตีน้อยที่สุด @@ -1204,14 +1210,14 @@ rules.cleanupdeadteams = ลบล้างสิ่งก่อสร้าง rules.corecapture = ยืดแกนกลางเมื่อทำลาย rules.polygoncoreprotection = รัศมีปกป้องแกนกลางแบบหลายเหลี่ยม rules.placerangecheck = ตรวจสอบระยะห่างการวาง -rules.enemyCheat = AI (ทีมสีแดง) มีทรัพยากรไม่จำกัด +rules.enemyCheat = ทีมศัตรูมีทรัพยากรไม่จำกัด rules.blockhealthmultiplier = พหุคูณพลังชีวิตของบล็อก rules.blockdamagemultiplier = พหุคูณดาเมจของบล็อก rules.unitbuildspeedmultiplier = พหุคูณความเร็วในการสร้างยูนิต -rules.unitcostmultiplier = Unit Cost Multiplier +rules.unitcostmultiplier = พหูคุณราคาทรัพยากรของยูนิต rules.unithealthmultiplier = พหุคูณพลังชีวิตของยูนิต rules.unitdamagemultiplier = พหุคูณพลังโจมตีของยูนิต -rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier +rules.unitcrashdamagemultiplier = พหูคูณดาเมจการตกของยานยูนิต rules.solarmultiplier = พหูคุณพลังงานแสงอาทิตย์ rules.unitcapvariable = เพิ่มจำนวนยูนิตสูงสุดต่อแกนกลาง rules.unitcap = ขีดกำจัดยูนิตสูงสุดพื้นฐาน @@ -1219,10 +1225,11 @@ rules.limitarea = จำกัดพื้นที่แมพ rules.enemycorebuildradius = รัศมีห้ามสร้างบริเวณแกนกลางของศัตรู:[lightgray] (ช่อง) rules.wavespacing = ระยะเวลาระหว่างคลื่น:[lightgray] (วินาที) rules.initialwavespacing = ระยะเวลาระหว่างคลื่นแรก:[lightgray] (วินาที) -rules.buildcostmultiplier = พหุคูณจำนวนทรัพยากรที่ใช้ในการสร้าง +rules.buildcostmultiplier = พหุคูณราคาทรัพยากรในการสร้าง rules.buildspeedmultiplier = พหุคูณความเร็วการสร้าง rules.deconstructrefundmultiplier = พหุคูณการคืนทรัพยากรเมื่อทำลาย -rules.waitForWaveToEnd = คลื่นรอศัตรู +rules.waitForWaveToEnd = คลื่นจะรอศัตรู +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = รัศมีจุดเกิดของศัตรู:[lightgray] (ช่อง) rules.unitammo = ยูนิตต้องใช้กระสุน rules.enemyteam = ทีมศัตรู @@ -1276,7 +1283,7 @@ item.beryllium.name = เบริลเลี่ยม item.tungsten.name = ทังสเตน item.oxide.name = อ๊อกไซด์ item.carbide.name = คาร์ไบด์ -item.dormant-cyst.name = ดอร์แมนท์ ซิสต์ +item.dormant-cyst.name = ดอร์แมนท์ซิสต์ liquid.water.name = น้ำ liquid.slag.name = แร่หลอม @@ -1290,12 +1297,18 @@ liquid.hydrogen.name = ไฮโดรเจน liquid.nitrogen.name = ไนโตรเจน liquid.cyanogen.name = ไซยาโนเจน +# three conditions if you want to cancel transliteration in these names +# 1. no random lame bali sanskrit, sounds weird in futuristic units +# 2. nice naming similarities for each unit tree +# 3. name may not be very similar to the original, but it should at least resemble some of it +# sometimes transliteration are better, so maybe keep some of the unit tree (like spiders or boats) to be transliterated - Translator + unit.dagger.name = แด็กเกอร์ unit.mace.name = เมส unit.fortress.name = ฟอร์เทรส unit.nova.name = โนวา unit.pulsar.name = พัลซ่าร์ -unit.quasar.name = ควาซ่าร์ +unit.quasar.name = ควอซ่าร์ unit.crawler.name = ครอว์เลอร์ unit.atrax.name = เอแทรคซ์ unit.spiroct.name = สปิรอคท์ @@ -1304,7 +1317,7 @@ unit.toxopid.name = ท็อคโซพิด unit.flare.name = แฟลร์ unit.horizon.name = ฮอไรซอน unit.zenith.name = เซนิธ -unit.antumbra.name = แอนทัมบรา +unit.antumbra.name = รัตติกาล unit.eclipse.name = อุปราคา unit.mono.name = โมโน unit.poly.name = โพลิ @@ -1312,7 +1325,7 @@ unit.mega.name = เมก้า unit.quad.name = ควอด unit.oct.name = อ็อคท์ unit.risso.name = ริสโซ่ -unit.minke.name = มิงค์ +unit.minke.name = มิงกี้ unit.bryde.name = ไบรดย์ unit.sei.name = เซย์ unit.omura.name = โอมูร่า @@ -1324,8 +1337,8 @@ unit.navanax.name = นาวาแน็คซ์ unit.alpha.name = อัลฟ่า unit.beta.name = เบต้า unit.gamma.name = แกมม่า -unit.scepter.name = สเก็ปเตอร์ -unit.reign.name = เรน +unit.scepter.name = ศัสตรา +unit.reign.name = ไอศวรรย์ unit.vela.name = เวล่า unit.corvus.name = คอร์วัส unit.stell.name = สเตลล์ @@ -1336,20 +1349,20 @@ unit.conquer.name = คอนเควอร์ unit.merui.name = เมรุย unit.cleroi.name = เคลอรอย unit.anthicus.name = แอนธิคัส -unit.tecta.name = เต็กตา +unit.tecta.name = เทคต้า unit.collaris.name = คอลลาริส unit.elude.name = เอลูด unit.avert.name = อเวิร์ต unit.obviate.name = อ็อบวีเอท unit.quell.name = คเวลล์ unit.disrupt.name = ดิสรัปต์ -unit.evoke.name = อีโวค -unit.incite.name = อินไซต์ -unit.emanate.name = อิมาเนท +unit.evoke.name = ปลุกตื่น +unit.incite.name = ปลุกปั่น +unit.emanate.name = ปลุกขจร unit.manifold.name = แมนิโฟลด์ -unit.assembly-drone.name = โดรนประกอบการ -unit.latum.name = Latum -unit.renale.name = Renale +unit.assembly-drone.name = โดรนประกอบร่าง +unit.latum.name = ลาทัม +unit.renale.name = รีเนล block.parallax.name = พาราแล็คซ์ block.cliff.name = หน้าผา @@ -1357,7 +1370,7 @@ block.sand-boulder.name = ก้อนหินทราย block.basalt-boulder.name = ก้อนบะซอลต์ block.grass.name = หญ้า block.molten-slag.name = แร่หลอมละลาย -block.pooled-cryofluid.name = สารหล่อเย็น +block.pooled-cryofluid.name = บ่อสารหล่อเย็น block.space.name = อวกาศ block.salt.name = เกลือ block.salt-wall.name = กำแพงเกลือ @@ -1462,8 +1475,8 @@ block.distributor.name = เครื่องแจกจ่าย block.sorter.name = เครื่องคัดแยก block.inverted-sorter.name = เครื่องคัดแยกกลับด้าน block.message.name = ตัวเก็บข้อความ -block.reinforced-message.name = Reinforced Message -block.world-message.name = World Message +block.reinforced-message.name = ตัวเก็บข้อความเสริมกำลัง +block.world-message.name = ตัวเก็บข้อความโลก block.illuminator.name = ตัวเปล่งแสง block.overflow-gate.name = ประตูระบาย block.underflow-gate.name = ประตูระบายข้าง @@ -1560,7 +1573,7 @@ block.payload-router.name = เร้าเตอร์บรรทุก block.duct.name = ท่อสูญญากาศ block.duct-router.name = เร้าเตอร์สูญญากาศ block.duct-bridge.name = สะพานสูญญากาศ -block.large-payload-mass-driver.name = Large Payload Mass Driver +block.large-payload-mass-driver.name = หอโอนถ่ายสิ่งบรรทุก block.payload-void.name = หลุมดูดสิ่งบรรทุก block.payload-source.name = จุดกำเนิดสิ่งบรรทุก block.disassembler.name = เครื่องถอดแยกส่วนประกอบ @@ -1577,8 +1590,8 @@ block.payload-loader.name = เครื่องโหลดสิ่งบร block.payload-loader.description = โหลดของเหลวและไอเท็มเข้าไปในบล็อก block.payload-unloader.name = เครื่องถ่ายสิ่งบรรทุก block.payload-unloader.description = ถ่ายของเหลวและไอเท็มออกจากบล็อก -block.heat-source.name = Heat Source -block.heat-source.description = A 1x1 block that gives virtualy infinite heat. +block.heat-source.name = จุดกำเนิดความร้อน +block.heat-source.description = ส่งออกความร้อนอย่างไม่จำกัด มีเฉพาะโหมดอิสระ block.empty.name = ว่างเปล่า block.rhyolite-crater.name = หลุมไรโอไลต์ block.rough-rhyolite.name = ไรโอไลต์หยาบ @@ -1592,7 +1605,7 @@ block.crystalline-stone.name = หินตกผลึก block.crystal-floor.name = พื้นคริสตัล block.yellow-stone-plates.name = แผ่นหินเหลือง block.red-stone.name = หินแดง -block.dense-red-stone.name = หินแดงแน่นหนา +block.dense-red-stone.name = หินแดงหนาแน่น block.red-ice.name = น้ำแข็งแดง block.arkycite-floor.name = พื้นอาร์คย์ไซต์ block.arkyic-stone.name = หินอาร์ยคิค @@ -1601,7 +1614,7 @@ block.carbon-vent.name = ปล่องคาร์บอน block.arkyic-vent.name = ปล่องอาร์ยคิค block.yellow-stone-vent.name = ปล่องหินเหลือง block.red-stone-vent.name = ปล่องหินแดง -block.crystalline-vent.name = Crystalline Vent +block.crystalline-vent.name = ปล่องหินตกผลืก block.redmat.name = แมตแดง block.bluemat.name = แมตน้ำเงิน block.core-zone.name = โซนแกนกลาง @@ -1637,17 +1650,17 @@ block.silicon-arc-furnace.name = เตาหลอมไฟฟ้าซิล block.electrolyzer.name = เครื่องแยกสลายไฟฟ้า block.atmospheric-concentrator.name = เครื่องหลอมรวมบรรยากาศ block.oxidation-chamber.name = ห้องผสมผสานออกซิเดชัน -block.electric-heater.name = เครื่องอุ่นพลังงาน +block.electric-heater.name = เครื่องอุ่นไฟฟ้า block.slag-heater.name = เครื่องอุ่นแร่หลอม -block.phase-heater.name = เครื่องอุ่นเฟส +block.phase-heater.name = เครื่องอุ่นใยเฟส block.heat-redirector.name = เครื่องเปลี่ยนเส้นทางความร้อน -block.heat-router.name = Heat Router +block.heat-router.name = เร้าเตอร์ความร้อน block.slag-incinerator.name = เตาเผาสลายแร่หลอม block.carbide-crucible.name = เบ้าหลอมคาร์ไบด์ block.slag-centrifuge.name = เครื่องแปรรูปแร่หลอม block.surge-crucible.name = เบ้าหลอมเสิร์จ block.cyanogen-synthesizer.name = เครื่องสังเคราะห์ไซยาโนเจน -block.phase-synthesizer.name = เครื่องสังเคราะห์เฟส +block.phase-synthesizer.name = เครื่องสังเคราะห์ใยเฟส block.heat-reactor.name = เตาปฏิกรณ์ความร้อน block.beryllium-wall.name = กำแพงเบริลเลี่ยม block.beryllium-wall-large.name = กำแพงเบริลเลี่ยมขนาดใหญ่ @@ -1711,11 +1724,11 @@ block.ship-refabricator.name = เครื่องแปลงสภาพย block.tank-assembler.name = เครื่องประกอบรถถัง block.ship-assembler.name = เครื่องประกอบยานบิน block.mech-assembler.name = เครื่องประกอบจักรกล -block.reinforced-payload-conveyor.name = สายพานบรรทุกสริมกำลัง -block.reinforced-payload-router.name = เร้าเตอร์บรรทุกสริมกำลัง +block.reinforced-payload-conveyor.name = สายพานบรรทุกเสริมกำลัง +block.reinforced-payload-router.name = เร้าเตอร์บรรทุกเสริมกำลัง block.payload-mass-driver.name = เครื่องโอนถ่ายสิ่งบรรทุก block.small-deconstructor.name = เครื่องลบทำลายขนาดเล็ก -block.canvas.name = แคนวาส +block.canvas.name = หน้าจอวาดรูป block.world-processor.name = ตัวประมวลผลโลก block.world-cell.name = เซลล์โลก block.tank-fabricator.name = เครื่องสรรค์สร้างรถถัง @@ -1727,8 +1740,8 @@ block.diffuse.name = ดิฟฟิวส์ block.basic-assembler-module.name = หน่วยประกอบการขั้นพื้นฐาน block.smite.name = สไมต์ block.malign.name = มาไลน์ -block.flux-reactor.name = Flux Reactor -block.neoplasia-reactor.name = Neoplasia Reactor +block.flux-reactor.name = เตาปฏิกรณ์ฟลักซ์ +block.neoplasia-reactor.name = เตาปฏิกรณ์นีโอพลาเซีย block.switch.name = สวิตช์ block.micro-processor.name = ตัวประมวลผลขนาดเล็ก @@ -1760,14 +1773,14 @@ hint.blockInfo = ดูข้อมูลของบล็อกโดยกา hint.derelict = สิ่งก่อสร้างที่ถูก[accent]ทิ้งร้าง[]คือเศษซากพังทลายของฐานเก่าแก่ที่ไม่สามารถใช้งานได้แล้ว\n\nสิ่งก่อสร้างพวกนี้สามารถ[accent]ทุบทิ้ง[]เพื่อเก็บเกี่ยวทรัพยากรที่อยู่ในนั้นได้ hint.research = กดปุ่ม \ue875 [accent]วิจัย[] เพื่อวิจัยเทคโนโลยีใหม่ๆ hint.research.mobile = กดปุ่ม \ue875 [accent]วิจัย[] ใน \ue88c [accent]เมนู[] เพื่อวิจัยเทคโนโลยีใหม่ๆ -hint.unitControl = กด [accent][[L-Ctrl][] ค้างไว้แล้วกด[accent]คลิ๊ก[]เพื่อควบคุมยานพวกพ้องหรือป้อมปืน -hint.unitControl.mobile = [accent][[กดสองครั้ง][]เพื่อควบคุมยานพวกพ้องหรือป้อมปืน -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.unitControl = กด [accent][[L-Ctrl][] ค้างไว้แล้วกด[accent]คลิ๊ก[]เพื่อควบคุมยานพันธมิตรหรือป้อมปืน +hint.unitControl.mobile = [accent][[กดสองครั้ง][] เพื่อควบคุมยานพันธมิตรหรือป้อมปืน +hint.unitSelectControl = เพื่อที่จะควบคุมยูนิต ให้เปิด[accent]โหมดสั่งการ[]โดยการกด [accent]L-shift[]\nระหว่างที่อยู่ในโหมดสั่งการ ให้คลิ๊กแล้วลากเพื่อเลือกยูนิต แล้ว[accent]คลิ๊กขวา[]ที่ตำแหน่งหรือเป้าหมายเพื่อสั่งการให้ยูนิตไปที่นั่น +hint.unitSelectControl.mobile = เพื่อที่จะควบคุมยูนิต ให้เปิด[accent]โหมดสั่งการ[]โดยการกดปุ่ม[accent]สั่งการ[]ที่ซ้ายล่างของจอ\nระหว่างที่อยู่ในโหมดสั่งการ ให้กดค้างแล้วลากเพื่อเลือกยูนิต แล้วกดที่ตำแหน่งหรือเป้าหมายเพื่อสั่งการให้ยูนิตไปที่นั่น hint.launch = เมื่อเก็บทรัพยากรเยอะพอ คุณสามารถ[accent]ส่งแกนกลาง[]โดยการเลือกเซ็กเตอร์จาก \ue827 [accent]แผนที่[] ตรงขวาล่าง hint.launch.mobile = เมื่อเก็บทรัพยากรเยอะพอ คุณสามารถ[accent]ส่งแกนกลาง[]โดยการเลือกเซ็กเตอร์จาก \ue827 [accent]แผนที่[] ใน \ue88c [accent]เมนู[] hint.schematicSelect = กด [accent][[F][] แล้วลากเพื่อเลือกบล็อกที่จะคัดลอกและวาง\n\n[accent][[คลิ๊กกลาง][] เพื่อคัดลอกบล็อกชนิดเดียว -hint.rebuildSelect = Hold [accent][[B][] and drag to select destroyed block plans.\nThis will rebuild them automatically. +hint.rebuildSelect = กด [accent][[B][] แล้วลากเพื่อเลือกแปลนบล็อกที่ถูกทำลาย\nแปลนบล็อกที่เลือกจะถูกสร้างใหม้โดยอัตโนมัติ hint.conveyorPathfind = กด [accent][[L-Ctrl][] ในขณะที่กำลังลากสายพานเพื่อสร้างเส้นทางแบบอัตโนมัติ hint.conveyorPathfind.mobile = เปิดใช้งาน \ue844 [accent]โหมดแนวทแยง[] แล้วลากสายพานเพื่อสร้างเส้นทางแบบอัตโนมัติ hint.boost = กด [accent][[L-Shift][] เพื่อบูสต์ข้ามสิ่งกีดขวางด้วยยูนิตของคุณ\n\nยูนิตพื้นดินบางประเภทเท่านั้นที่บินได้ @@ -1782,106 +1795,113 @@ hint.coreUpgrade = สามารถอัปเกรดแกนกลาง hint.presetLaunch = [accent]เซ็กเตอร์ลงจอด[]สีเทา อย่างเช่น[accent]ป่าหนาวเหน็บ[] สามารถลงจอดจากที่ไหนที่ได้ในแผนที่ พวกนั้นไม่จำเป็นต้องยืดครองเซ็กเตอร์รอบข้างเพื่อส่งแกนกลางไป\n\n[accent]เซ็กเตอร์ที่มีเลข[] อย่างเช่นอันนี้[accent]ไม่จำเป็น[]ต้องยืดครอง hint.presetDifficulty = เซ็กเตอร์นี้มี[scarlet]ระดับภัยคุกคามศัตรูสูง[]\n[accent]ไม่แนะนำ[]ให้ลงจอดไปยังเซ็กเซอร์พวกนั้นหากไม่มีการเตรียมพร้อมและเทคโนโลยี hint.coreIncinerate = เมื่อแกนกลางมีจำนวนไอเท็มชนิดหนึ่งที่เต็ม ไอเท็มชนิดนั้นที่เข้ามาเพิ่มจะ[accent]ถูกเผา[] -hint.factoryControl = To set a unit factory's [accent]output destination[], click a factory block while in command mode, then right-click a location.\nUnits produced by it will automatically move there. -hint.factoryControl.mobile = To set a unit factory's [accent]output destination[], tap a factory block while in command mode, then tap a location.\nUnits produced by it will automatically move there. -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.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. -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. +hint.factoryControl = เพื่อที่จะตั้ง[accent]ตำแหน่งการส่งออก[]ของโรงงานยูนิต ให้กดที่โรงงานยูนิตในระหว่างที่อยู่ในโหมดสั่งการ แล้วกดคลิ๊กขวาที่ตำแหน่งที่ต้องการตั้ง\nยูนิตที่ถูกผลิตจะขยับออกมาที่จุดที่ตั้งโดยอัตโนมัติ +hint.factoryControl.mobile = เพื่อที่จะตั้ง[accent]ตำแหน่งการส่งออก[]ของโรงงานยูนิต ให้กดที่โรงงานยูนิตในระหว่างที่อยู่ในโหมดสั่งการ แล้วกดที่ตำแหน่งที่ต้องการตั้ง\nยูนิตที่ถูกผลิตจะขยับออกมาที่จุดที่ตั้งโดยอัตโนมัติ -item.copper.description = วัสดุก่อสร้างพื้นฐาน ใช้อย่างแพร่หลายในบล็อกเกือบทุกชนิด -item.copper.details = ทองแดง มีอยู่มากอย่างผิดปกติบน[accent]เซอร์ปูโล่[] ไม่ค่อยแข็งแรงยกเว้นจะเสริมเกราะ -item.lead.description = ทรัพยากรพื้นฐานที่หาเจอได้ง่าย ใช้อย่างแพร่หลายในอิเล็กทรอนิกส์และบล็อกขนย้ายของเหลว -item.lead.details = ทั้งหนาและเฉื่อย ใช้กันอย่างมากในแบตเตอรี่\n\nโน๊ต: มีแนวโน้มจะเป็นพิษต่อรูปแบบชีวิตทางชีวภาพ ไม่ใช่ว่ามันยังมีเหลืออยู่มากมายที่นี่ -item.metaglass.description = ใช้อย่างแพร่หลายกับท่อน้ำและที่เก็บของ หรือนำไปเป็นกระสุนกระจายใส่ในป้อมปืน +gz.mine = ขยับเข้าไปใกล้ๆ กับ \uf8c4 [accent]แร่ทองแดง[]ที่อยู่บนพื้นแล้วคลิ๊กเพื่อเริ่มการขุด +gz.mine.mobile = ขยับเข้าไปใกล้ๆ กับ \uf8c4 [accent]แร่ทองแดง[]ที่อยู่บนพื้นแล้วกดที่แร่เพื่อเริ่มการขุด +gz.research = เปิด \ue875 ต้นไม้แห่งเทคโนโลยี\nวิจัย \uf870 [accent]เครื่องขุดเชิงกล[] แล้วกดเลือกจากเมนูตรงแถบขวาล่าง\nคลิ๊กที่กลุ่มแร่ทองแดงเพื่อวางที่ขุด +gz.research.mobile = เปิด \ue875 ต้นไม้แห่งเทคโนโลยี\nวิจัย \uf870 [accent]เครื่องขุดเชิงกล[] แล้วกดเลือกจากเมนูตรงแถบขวาล่าง\nกดที่กลุ่มแร่ทองแดงเพื่อวางที่ขุด\n\nกดปุ่ม \ue800 [accent]ติ๊กถูก[]ที่แถบล่างขวาเพื่อยืนยัน +gz.conveyors = วิจัยและวาง \uf896 [accent]สายพาน[] เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้\nจากที่ขุดไปยังแกนกลาง\n\nกดคลิ๊กแล้วลากเพื่อวางสายพานหลายๆ อันให้เป็นทาง\n[accent]หมุนเม้าส์[]เพื่อหมุน +gz.conveyors.mobile = วิจัยและวาง \uf896 [accent]สายพาน[] เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้\nจากที่ขุดไปยังแกนกลาง\n\nใช้นิ้วกดค้างที่ตำแหน่งซักวิแล้วลากเพื่อวางสายพานหลายๆ อันให้เป็นทาง +gz.drills = ขยายปฎิบัติการขุด\nวางเครื่องขุดเชิงกลเพิ่ม\nขุดทองแดง 100 ชิ้น +gz.lead = \uf837 [accent]ตะกั่ว[]เป็นทรัพยากรอีกชนิดที่ใช้กันอย่างแพร่หลาย\nตั้งเครื่องขุดเพื่อขุดแร่ตะกั่ว +gz.moveup = \ue804 ขยับขึ้นเพื่อไปยังเป้าหมายถัดไป +gz.turrets = วิจัยและวางป้อมปืน \uf861 [accent]ดูโอ้[]สองป้อมเพื่อปกป้องแกนกลางจากศัตรู\nป้อมปืนดูโอ้ต้องการ \uf838 [accent]กระสุน[]จากสายพาน +gz.duoammo = เติมกระสุนให้แก่ป้อมปืนดูโอ้ด้วย[accent]ทองแดง[] โดยใช้สายพาน +gz.walls = [accent]กำแพง[]สามารถป้องกันความเสียหายที่จะมาถึงให้ไม่ไปโดนสิ่งก่อสร้างได้\nวาง \uf8ae [accent]กำแพงทองแดง[]รอบๆ ป้อมปืน +gz.defend = ศัตรูกำลังจะเข้ามา เตรียมตัวป้องกันให้ดี +gz.aa = ป้อมปืนมาตรฐานไม่สามารถจัดการยูนิตบินได้เร็วพอ\nป้อมปืน \uf860 [accent]สแก็ตเตอร์[]นี้สามารถที่จะต่อต้านยูนิตบินได้อย่างดีเยี่ยม แต่ต้องใช้ \uf837 [accent]ตะกั่ว[]เป็นกระสุน +gz.scatterammo = เติมกระสุนให้แก่ป้อมปืนสแก็ตเตอร์ด้วย[accent]ตะกั่ว[] โดยใช้สายพาน +gz.supplyturret = [accent]เติมกระสุนป้อมปืน +gz.zone1 = นี่คือจุดเกิดของศัตรู +gz.zone2 = สิ่งก่อสร้างทุกอย่างในรัศมีจะถูกทำลายเมื่อมีคลื่นเริ่มขึ้น +gz.zone3 = คลื่นกำลังจะเริ่มขึ้นแล้ว\nเตรียมตัวให้พร้อม +gz.finish = สร้างป้อมปืนเพิ่ม ขุดทรัพยากรให้ได้มากกว่านี้\nแล้วป้องกันคลื่นทั้งหมดเพื่อ[accent]ยึดครองเซ็กเตอร์[] + +onset.mine = กดคลิ๊กซ้ายเพื่อขุด \uf748 [accent]เบริลเลี่ยม[] จากกำแพง\n\nกด [accent][[WASD][] เพื่อขยับ +onset.mine.mobile = กดที่หน้าจอเพื่อขุด \uf748 [accent]เบริลเลี่ยม[] จากกำแพง +onset.research = เปิดหน้า \ue875 ต้นไม้แห่งเทคโนโลยี\nวิจัย แล้ววาง \uf73e [accent]เครื่องควบแน่นกังหัน[] บนปล่อง\nเครื่องนี้จะผลิต[accent]พลังงาน[] +onset.bore = วิจัยและวาง \uf741 [accent]เครื่องขุดเจาะพลาสม่า[]\nเครื่องนี้จะขุดทรัพยากรที่อยู่ในกำแพงให้โดยอัตโนมัติ +onset.power = เพื่อที่จะ[accent]จ่ายพลังงาน[]ให้กับเครื่องขุดเจาะพลาสม่า วิจัยและวาง \uf73d [accent]โหนดลำแสง[]\nลากโหนดเพื่อเชื่อมต่อเครื่องควบแน่นกังหันกับเครื่องขุดเจาะพลาสม่า +onset.ducts = วิจัยและวาง \uf799 [accent]ท่อสูญญากาศ[]เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้จากเครื่องขุดเจาะพลาสม่าไปยังแกนกลาง\nกดคลิ๊กแล้วลากเพื่อวางท่อสูญญากาศหลายๆ ท่อให้เป็นทาง\n[accent]หมุนเม้าส์[]เพื่อหมุน +onset.ducts.mobile = วิจัยและวาง \uf799 [accent]ท่อสูญญากาศ[]เพื่อเคลื่อนย้ายทรัพยากรที่ขุดมาได้จากเครื่องขุดเจาะพลาสม่าไปยังแกนกลาง\n\nใช้นิ้วกดค้างที่ตำแหน่งซักวิแล้วลากเพื่อวางท่อสูญญากาศหลายๆ ท่อให้เป็นทาง +onset.moremine = ขยายปฎิบัติการขุด\nวางเครื่องขุดเจาะพลาสม่าเพิ่มแล้วใช้โหนดลำแสงเพื่อจ่ายพลังงานให้กับมัน\nขุดเบริลเลี่ยม 200 ชิ้น +onset.graphite = บล็อกที่สูงขั้นกว่าจำเป็นต้องใช้ \uf835 [accent]กราไฟต์[]\nจัดตั้งเครื่องขุดเจาะพลาสม่าเพื่อขุดกราไฟต์ +onset.research2 = เริ่มการวิจัย[accent]โรงงาน[]\nวิจัย \uf74d [accent]เครื่องบดหน้าผา[]และ \uf779 [accent]เตาหลอมไฟฟ้าซิลิกอน[] +onset.arcfurnace = เตาหลอมไฟฟ้าจะต้องใช้ \uf834 [accent]ทราย[]และ \uf835 [accent]กราไฟต์[]เพื่อผลิต \uf82f [accent]ซิลิกอน[]\nการผลิตจำเป็นจะต้องใช้[accent]พลังงาน[]ด้วย +onset.crusher = ใช้ \uf74d [accent]เครื่องบดหน้าผา[]เพื่อผลิตทราย +onset.fabricator = ใช้[accent]ยูนิต[]เพื่อสำรวจพื้นที่ ป้องกันสิ่งก่อสร้าง และโจมตีศัตรู วิจัยและวาง \uf6a2 [accent]เครื่องสรรค์สร้างรถถัง[] +onset.makeunit = ผลิตยูนิตขึ้นมา\nใช้ปุ่ม "?" เพื่อดูความต้องการทรัพยากรของแต่ละโรงงานที่เลือกมา +onset.turrets = ยูนิตนั้นมีประสิทธิภาพ แต่[accent]ป้อมปืน[]นั้นสามารถที่จะใช้ตั้งรับได้ดีกว่าหากใช้อย่างมีประสิทธิภาพ\nวางป้อมปืน \uf6eb [accent]บรีช[]\nป้อมปืนจำเป็นจะต้องใช้ \uf748 [accent]กระสุน[] +onset.turretammo = เติมกระสุนให้แก่ป้อมปืนด้วย[accent]กระสุนเบริลเลี่ยม[] +onset.walls = [accent]กำแพง[]สามารถป้องกันความเสียหายที่จะมาถึงให้ไม่ไปโดนสิ่งก่อสร้างได้\nวางกำแพง \uf6ee [accent]กำแพงเบริลเลี่ยม[]รอบๆ ป้อมปืน +onset.enemies = ศัตรูกำลังจะเข้ามา เตรียมตัวป้องกันให้ดี +onset.attack = ศัตรูอ่อนแอลงแล้ว ตอบโต้กลับ +onset.cores = แกนกลางใหม่สามารถวางได้บน[accent]โซนแกนกลาง[]\nแกนกลางใหม่จะทำหน้าที่เป็นฐานทัพหน้าด่านและจะแบ่งปันทรัพยากรกับแกนกลางอื่นๆ\nวาง \uf725 แกนกลาง +onset.detect = ศัตรูจะสามารถตรวจจับการมีอยู่ของคุณได้ในอีก 2 นาที\nจัดตั้งกองกำลังป้องกัน ปฏิบัติการขุด และการผลิต + +split.pickup = บล็อกบางชนิดสามารถถูกหยิบขึ้นมาได้ด้วยยูนิตแกนกลาง\nบรรทุก[accent]ที่เก็บของ[]นี้มาแล้วเอาไปวางใน[accent]เครื่องโหลดสิ่งบรรทุก[]\n(ปุ่มค่าเริ่มต้นคือ [ สำหรับหยิบและ ] สำหรับวางบล็อก) +split.pickup.mobile = บล็อกบางชนิดสามารถถูกหยิบขึ้นมาได้ด้วยยูนิตแกนกลาง\nบรรทุก[accent]ตู้เก็บของ[]นี้มาแล้วเอาไปวางใน[accent]เครื่องโหลดสิ่งบรรทุก[]\n(เพื่อจะหยิบหรือวางสิ่งใดๆ ให้กดค้างที่ตำแหน่งที่ต้องการหยิบหรือวาง) +split.acquire = คุณต้องหาทังสเตนมาเพื่อสร้างยูนิต +split.build = ยูนิตจะต้องถูกขนย้ายไปยังอีกฝั่งของกำแพง\nวาง[accent]เครื่องโอนถ่ายสิ่งบรรทุก[]สองเครื่อง เครื่องจะฝั่งของกำแพง\nตั้งค่าการเชื่อมต่อโดยการกดที่เครื่องหนึ่ง แล้วเลิอกอีกเครื่อง +split.container = เหมือนกันกับตู้เก็บของ ยูนิตก็สามารถถูกขนย้ายได้ด้วย[accent]เครื่องโอนถ่ายสิ่งบรรทุก[]\nวางเครื่องสรรค์สร้างยูนิตให้ติดกับเครื่องโอนถ่ายเพื่อที่จะโหลดมัน แล้วส่งมันข้ามกำแพงให้ออกไปโจมตีฐานทัพศัตรู + +item.copper.description = วัสดุก่อสร้างพื้นฐาน ใช้อย่างแพร่หลายในบล็อกแทบทุกชนิด +item.copper.details = ทองแดง มีอยู่มากอย่างผิดปกติบน[accent]เซอร์ปูโล่[] ไม่ค่อยแข็งแรงยกเว้นว่าจะเสริมเกราะ +item.lead.description = ทรัพยากรพื้นฐานที่พบเจอได้ง่าย ใช้อย่างแพร่หลายในอิเล็กทรอนิกส์และบล็อกขนย้ายของเหลว +item.lead.details = ทั้งหนาและเฉื่อย ใช้กันอย่างมากในแบตเตอรี่\n\nโน๊ต: มีแนวโน้มจะเป็นพิษต่อรูปแบบสิ่งมีชีวิตทางชีวภาพ ไม่ใช่ว่ามันยังมีเหลืออยู่มากมายที่นี่ +item.metaglass.description = กระจกที่แข็งแรงและทนทานอย่างมาก ใช้อย่างแพร่หลายกับท่อน้ำและที่เก็บของ หรือนำไปเป็นกระสุนกระจายใส่ในป้อมปืน item.graphite.description = เกิดจากการจัดเรียงตัวใหม่ของคาร์บอน ใช้เป็นชิ้นส่วนอุปกรณ์ไฟฟ้าหรือนำไปเป็นกระสุน item.sand.description = ทรัพยาการที่พบได้ทั่วไป ใช้ในการแปรรูปเป็นวัสดุอื่นๆ หรือนำไปเผาเป็น[accent]กระจกเมต้า[] item.coal.description = ใช้เป็นเชื้อเพลิงและการแปรรูปเป็นวัสดุอื่นๆ item.coal.details = ดูเหมือนจะเป็นซากพืชดึกดำบรรพ์ เกิดขึ้นนานก่อนการแพร่พันธุ์ของสปอร์เสียอีก -item.titanium.description = ใช้อย่างแพร่หลายในการขนย้ายของเหลว เครื่องขุดเจาะและอากาศยาน +item.titanium.description = โลหะเบาซึ่งหายากตามธรรมชาติ ใช้อย่างแพร่หลายในการขนย้ายของเหลว เครื่องขุดเจาะและอากาศยาน item.thorium.description = ใช้ในการเสริมเกราะของสิ่งก่อสร้างต่างๆ หรือนำไปเป็นเป็นเชื้อเพลิงนิวเคลียร์ -item.scrap.description = ใช้ในเตาหลอมแร่และเครื่องบดอัดเพื่อเปลี่ยนเป็นวัสดุอื่นๆ +item.scrap.description = ใช้ในเตาหลอมแร่และเครื่องบดอัดเพื่อเปลี่ยนเป็นทรัพยากรอื่นๆ item.scrap.details = เศษที่เหลือจากสิ่งก่อสร้างและยูนิตเก่า มีร่องรอยของโลหะหลายชนิดอยู่ เกิดจากฐานทัพโบราณในสมัยสงครามเก่าแก่ถูกทำลาย ทำให้วัสดุต่างๆ พังลงมารวมกับ -item.silicon.description = ใช้ในแผงโซล่าเซลล์ อุปกรณ์อิเล็กทรอนิกที่ซับซ้อน\nหรือนำไปเป็นกระสุนติดตามตัวสำหรับป้อมปืน +item.silicon.description = วัสดุกึ่งตัวนำที่มีประโยชน์มาก ใช้ในแผงโซล่าเซลล์ อุปกรณ์อิเล็กทรอนิกที่ซับซ้อน\nหรือนำไปเป็นกระสุนติดตามตัวสำหรับป้อมปืน item.plastanium.description = ใช้ในอากาศยานขั้นสูง เป็นฉนวนกันความร้อนหรือนำไปเป็นกระสุนกระจาย -item.phase-fabric.description = ใช้ในอิเล็กทรอนิกส์ขั้นสูงและเทคโนโลยีซ่อมแซมตนเอง +item.phase-fabric.description = วัสดุที่เบาจนแทบจะไร้น้ำหนัก ใช้ในอิเล็กทรอนิกส์ขั้นสูงและเทคโนโลยีซ่อมแซมตนเอง item.surge-alloy.description = โลหะผสมขั้นสูงที่มีคุณสมบัติทางไฟฟ้าที่จำเพาะ\nใช้ในอาวุธขั้นสูงและการป้องกันต่างๆ item.spore-pod.description = กระเปาะของสปอร์สังเคราะห์ สังเคราะห์โดยการสกัดสปอร์ที่อยู่ในบรรยากาศ\nใช้ในอุตสาหกรรม ใช้ในการกลั่นเป็นน้ำมัน สารระเบิดและเชื้อเพลิง item.spore-pod.details = สปอร์ น่าจะเป็นรูปแบบชีวิตสังเคราะห์ ปล่อยแก็สที่เป็นพิษต่อระบบสิ่งมีชีวิตอื่น แพร่พันธุ์และรุกรานเร็วมากๆ ไวไฟอย่างมากในบางสภาวะ -item.blast-compound.description = ใช้ในการระเบิดหรือนำไปเป็นกระสุนระเบิดจับคู่กับสารหล่อเย็น\nเพื่อทำดาเมจอย่างมหาศาล +item.blast-compound.description = ใช้ในการระเบิดหรือนำไปเป็นกระสุนระเบิดจับคู่กับสารหล่อเย็น\nเพื่อทำดาเมจอย่างมหาศาล ไม่แนะนำให้ใช้เป็นเชื้อเพลิง item.pyratite.description = วัสดุที่ติดไฟได้ง่าย ใช้ในอาวุธเพลิงหรือนำมาผลิตพลังงาน สามารถนำมาผลิตเป็น[accent]สารระเบิด[]ได้ -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. -liquid.water.description = ใช้ในการระบายความร้อนให้กับสิ่งก่อสร้างและจัดการของเสียต่างๆ +#Erekir +item.beryllium.description = วัสดุก่อสร้างพื้นฐาน ใช้อย่างแพร่หลายในการก่อสร้างและเป็นกระสุนให้กับบล็อกแทบทุกชนิดในดาวเอเรเกียร์ +item.tungsten.description = ใช้ในเครื่องขุด เสริมเกราะหรือนำไปเป็นกระสุน จำเป็นสำหรับการสร้างสิ่งก่อสร้างที่สูงขั้นกว่า +item.oxide.description = ในเป็นตัวนำความร้อนและเป็นฉนวนสำหรับไฟฟ้า +item.carbide.description = ใช้ในสิ่งก่อสร้างขั้นสูง ยูนิตที่ร้ายกาจยิ่งกว่า และนำไปเป็นกระสุน + +liquid.water.description = ใช้ในการระบายความร้อนให้กับสิ่งก่อสร้างและการจัดการของเสียต่างๆ liquid.slag.description = สามารถนำไปแยกเป็นวัสดุต่างๆ หรือเป็นอาวุธพ่นใส่ศัตรู liquid.oil.description = ใช้ในการผลิตวัสดุขั้นสูง สามารถแปรรูปเป็นถ่านหินเพื่อใช้เป็นเชื้อเพลิง หรือเป็นอาวุธเพื่อพ่นใส่ศัตรูเพื่อให้ศัตรูติดสถานะ[accent]เปื้อนน้ำมัน[] -liquid.cryofluid.description = ใช้ในการหล่อเย็นเตาปฏิกรณ์ สิ่งก่อสร้างหรือโรงงานต่างๆ -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.cryofluid.description = ของเหลวเฉื่อยและไม่กัดกร่อน ใช้ในการหล่อเย็นเตาปฏิกรณ์ สิ่งก่อสร้างหรือโรงงานต่างๆ + +#Erekir +liquid.arkycite.description = ใช้ในการทำปฏิกิริยาทางเคมีสำหรับการกำเนิดพลังงานและการผลิตสร้างวัสดุต่างๆ +liquid.ozone.description = ใช้เป็นตัวช่วยการออกซิไดซ์ในการผลิตวัสดุต่างๆ รวมไปถึงนำไปเป็นเชื้อเพลิง ค่อนข้างที่จะระเบิดได้ง่าย +liquid.hydrogen.description = ใช้ในการสกัดทรัพยากร การผลิตยูนิต และการซ่อมแซมสิ่งก่อสร้าง ติดไฟได้ง่าย +liquid.cyanogen.description = ใช้ในการสร้างยูนิตขั้นสูง การทำปฏิกิริยาต่างๆ ในบล็อกขั้นสูง หรือนำไปเป็นกระสุน ไวต่อไฟเป็นอย่างมาก +liquid.nitrogen.description = ใช้ในการสกัดทรัพยากร การสร้างแก็สและการผลิตยูนิต มีสภาพเฉื่อย +liquid.neoplasm.description = ชีวมวลอันตรายที่เป็นผลพลอยได้จากเตาปฏิกรนีโอพลาเซีย แพร่กระจายอย่างรวดเร็วสู่บล็อกที่บรรจุน้ำที่ชีวมวลนี้สัมผัส สร้างความเสียหายมันไปในระหว่างทาง หนืดข้น +liquid.neoplasm.details = นีโอพลาสม์ ก้อนเซลล์เนื้องอกที่ถูกสังเคราะห์ขึ้นและควบคุมไม่ได้ ขยายตัวอย่างรวดเร็วโดยจับตัวกันเป็นก้อน ทนทานต่อความร้อน เป็นอันตรายอย่างยิ่งต่อสิ่งก่อสร้างที่เกี่ยวข้องกับน้ำ\n\nซับซ้อนและไม่เสถียรเกินไปสำหรับการวินิจฉัยขั้นพื้นฐาน ไม่ทราบส่วนผสมที่เป็นไปได้ แนะนำเป็นอย่างยิ่งให้นำมันไปเผาสลายในบ่อแร่หลอม block.derelict = \uf77e [lightgray]ถูกทิ้งร้าง -block.armored-conveyor.description = เลื่อนไอเท็มไปข้างหน้า เร็วเท่าสายพานไทเทเนี่ยม แต่มีเกราะที่แข็งแรงกว่า ไม่รับไอเท็มจากด้านข้างยกเว้นเป็นสายพานด้วยกันเอง -block.illuminator.description = ตัวเปล่งแสงขนาดกะทัดรัด ส่องสว่างในที่มืดได้ดี\nแถมยังกำหนดค่าสีของแสงได้ด้วย... เจ๋งใช่มั้ยล่ะ +block.armored-conveyor.description = เลื่อนไอเท็มไปข้างหน้า เร็วเท่าสายพานไทเทเนี่ยม แต่มีเกราะที่แข็งแรงกว่า ไม่รับไอเท็มจากด้านข้างยกเว้นว่าจะเป็นสายพานด้วยกันเอง +block.illuminator.description = ตัวเปล่งแสงขนาดกะทัดรัด ส่องสว่างในที่มืดได้ดี\nแถมยังกำหนดค่าสีของแสงได้อีกด้วย... เจ๋งใช่มั้ยล่ะ block.message.description = เก็บข้อความ ใช้สื่อสารกับพันธมิตร -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 = เก็บข้อความ ใช้สื่อสารกับพันธมิตร +block.world-message.description = ตัวเก็บข้อความสำหรับการสร้างแมพ ไม่สามารถทำลายได้ block.graphite-press.description = อัดก้อนถ่านหินให้เป็นแผ่นกราไฟต์บริสุทธิ์ block.multi-press.description = อัดก้อนถ่านหินให้เป็นแผ่นกราไฟต์บริสุทธิ์ ใช้น้ำและพลังงานในการแปรรูปถ่านหินให้เร็วและมีประสิทธิภาพมากขึ้น block.silicon-smelter.description = ผลิตซิลิกอนจากการหลอมทรายและถ่านหินเข้าด้วยกัน block.kiln.description = เผาทรายและตะกั่วเป็นกระจกเมต้า block.plastanium-compressor.description = บีบอัดน้ำมันและไทเทเนี่ยมเข้าด้วยกันเพื่อผลิตพลาสตาเนี่ยม block.phase-weaver.description = สังเคราะห์ใยเฟสจากทรายและทอเรี่ยม ใช้พลังงานจำนวนมากในการทำงาน -block.surge-smelter.description = หลอมรวมไทเทเนี่ยม ตะกั่ว ซิลิกอนและทองแดงเพื่อผลิตเซิร์จอัลลอย +block.surge-smelter.description = หลอมรวมไทเทเนี่ยม ตะกั่ว ซิลิกอนและทองแดงเพื่อผลิตโลหะผสมเสิร์จ block.cryofluid-mixer.description = ผสมน้ำและผงไทเทเนี่ยมบริสุทธิ์เป็นสารหล่อเย็น\nสำคัญสำหรับเตาปฏิกรณ์ทอเรี่ยม block.blast-mixer.description = ผสมสปอร์กับไพราไทต์เพื่อผลิตสารประกอบระเบิด block.pyratite-mixer.description = ผสมถ่านหิน ตะกั่วและทรายเข้าด้วยกันเป็นไพราไทต์ @@ -1909,36 +1929,36 @@ block.thorium-wall.description = ป้องกันสิ่งก่อส block.thorium-wall-large.description = ป้องกันสิ่งก่อสร้างจากศัตรู แข็งแรงมาก ป้องกันศัตรูได้อย่างดี\nครอบคลุมหลายช่อง block.phase-wall.description = ป้องกันสิ่งก่อสร้างจากศัตรู ทนทานและแข็งแรง\nเคลือบด้วยวัสดุพิเศษที่สะท้อนกระสุนส่วนใหญ่ที่รับมา block.phase-wall-large.description = ป้องกันสิ่งก่อสร้างจากศัตรู ทนทานและแข็งแรง\nเคลือบด้วยวัสดุพิเศษที่สะท้อนกระสุนส่วนใหญ่ที่รับมา\nครอบคลุมหลายช่อง -block.surge-wall.description = ป้องกันสิ่งก่อสร้างจากศัตรู แข็งแกร่งอย่างมาก\nปล่อยพลังงานสายฟ้าออกมาเป็นระยะๆ เมื่อถูกโจมตี -block.surge-wall-large.description = ป้องกันสิ่งก่อสร้างจากศัตรู แข็งแกร่งอย่างมาก\nปล่อยพลังงานสายฟ้าออกมาเป็นระยะๆ เมื่อถูกโจมตี\nครอบคลุมหลายช่อง -block.door.description = กำแพงที่สามารถเปิด/ปิดได้ ไว้ใช้เพื่อให้ยูนิตเดินผ่าน -block.door-large.description = กำแพงที่สามารถเปิด/ปิดได้ ไว้ใช้เพื่อให้ยูนิตเดินผ่าน\nครอบคลุมหลายช่อง -block.mender.description = ซ่อมแซมสิ่งก่อสร้างในวงของมันอย่างช้าๆ\\uFFE0��ามารถใช้ซิลิกอนเพื่อเพิ่มระยะและประสิทธิภาพได้ +block.surge-wall.description = ป้องกันสิ่งก่อสร้างจากศัตรู แข็งแกร่งอย่างมาก\nจะปล่อยพลังงานสายฟ้าออกมาเป็นระยะๆ เมื่อถูกโจมตี +block.surge-wall-large.description = ป้องกันสิ่งก่อสร้างจากศัตรู แข็งแกร่งอย่างมาก\nจะปล่อยพลังงานสายฟ้าออกมาเป็นระยะๆ เมื่อถูกโจมตี\nครอบคลุมหลายช่อง +block.door.description = กำแพงที่สามารถเปิดและปิดได้ ไว้ใช้เพื่อให้ยูนิตเดินผ่าน +block.door-large.description = กำแพงที่สามารถเปิดและปิดได้ ไว้ใช้เพื่อให้ยูนิตเดินผ่าน\nครอบคลุมหลายช่อง +block.mender.description = ซ่อมแซมสิ่งก่อสร้างในวงของมันอย่างช้าๆ\nสามารถใช้ซิลิกอนเพื่อเพิ่มระยะและประสิทธิภาพได้ block.mend-projector.description = ซ่อมแซมสิ่งก่อสร้างในวงของมันอย่างล้นเหลือ\nสามารถใช้ใยเฟสเพื่อเพิ่มระยะและประสิทธิภาพได้ -block.overdrive-projector.description = เพิ่มความเร็วของสิ่งก่อสร้างรอบๆ\nสามารถใช้ใยเฟสเพื่อเพิ่มระยะและประสิทธิภาพ -block.force-projector.description = สร้างสนามพลังงานหกเหลี่ยมรอบๆ ตัวเอง ป้องกันสิ่งก่อสร้างและยูนิตภายในสนามพลังงานจากการโจมตี\nจะร้อนจัดถ้าได้รับดาเมจมากพอ สามารถใช้น้ำหรือสารหล่อเย็นมาระบายความร้อนได้ สามารถเพิ่มขนาดสนามพลังได้ด้วยใยเฟส -block.shock-mine.description = ปล่อยพลังงานสายฟ้าเมื่อศัตรูเหยียบกับดัก +block.overdrive-projector.description = เพิ่มความเร็วของสิ่งก่อสร้างรอบๆ\nสามารถใช้ใยเฟสเพื่อเพิ่มระยะและประสิทธิภาพได้ +block.force-projector.description = สร้างสนามพลังงานหกเหลี่ยมรอบๆ ตัวเอง ป้องกันสิ่งก่อสร้างและยูนิตภายในสนามพลังงานจากการโจมตี\nจะร้อนจัดถ้าได้รับดาเมจมากพอ สามารถใช้น้ำหรือสารหล่อเย็นมาระบายความร้อนได้ สามารถใช้ใยเฟสเพิ่มขนาดสนามพลังได้ +block.shock-mine.description = จะปล่อยพลังงานสายฟ้าเมื่อศัตรูเหยียบกับดัก block.conveyor.description = เลื่อนไอเท็มไปข้างหน้า block.titanium-conveyor.description = เลื่อนไอเท็มไปข้างหน้า เลื่อนเร็วกว่าสายพานปกติ -block.plastanium-conveyor.description = เคลื่อนย้ายไอเท็มเป็นชุด\nรับไอเท็มจากด้านหลัง และนำออกไปสามทางข้างหน้า +block.plastanium-conveyor.description = เคลื่อนย้ายไอเท็มเป็นชุด\nรับไอเท็มจากด้านหลัง และนำออกไปด้านหน้าสามทิศทาง block.junction.description = มีหน้าที่เป็นสะพานสำหรับสายพานสองสายข้ามกัน มีประโยชน์สำหรับเวลาสายพานสองสาย\nขนไอเท็มสองชนิดไปยังสองสถานที่ block.bridge-conveyor.description = เคลื่อนย้ายไอเท็มข้ามสิ่งก่อสร้างหรือกำแพง block.phase-conveyor.description = เคลื่อนย้ายไอเท็มข้ามสิ่งก่อสร้างหรือกำแพงด้วยความเร็วแสง\nมีระยะที่ไกลกว่าสะพานไอเท็ม แต่ต้องใช้พลังงาน block.sorter.description = ถ้าไอเท็มที่เข้าไปข้างในตรงกับที่เลือกไว้ ก็จะผ่านได้ แต่ถ้าไม่ตรง ไอเท็มก็จะถูกส่งออกไปทางซ้ายขวาแทน block.inverted-sorter.description = แยกไอเท็มคล้ายกับเครื่องคัดแยกธรรมดา แต่ไอเท็มที่เลือกจะออกทางซ้ายขวาแทน -block.router.description = รับไอเท็มแล้วส่งออกสามทางเท่าๆกัน มีประโยชน์สำหรับแยกไอเท็มจากแหล่งเดียวไปหลายที่ +block.router.description = รับไอเท็มแล้วส่งออกไปสามทางเท่าๆกัน มีประโยชน์สำหรับแยกไอเท็มจากแหล่งเดียวไปหลายที่ block.router.details = สิ่งชั่วร้ายที่เราจำเป็นต้องใช้ ไม่แนะนำให้ใช้ติดกันกับโรงงาน เพราะของจะถูกอุดตันและปนกันมั่วไปหมด block.distributor.description = แยกไอเท็มออกเป็นเจ็ดทางเท่าๆ กัน -block.overflow-gate.description = ไอเท็มจะถูกระบายออกทางซ้ายขวาเมื่อข้างหน้าถูกบล็อก -block.underflow-gate.description = ตรงข้ามกับประตูระบาย จะระบายไอเท็มไปข้างหน้าหากทางซ้ายและขวาถูกบล็อก +block.overflow-gate.description = ไอเท็มจะถูกระบายออกทางซ้ายขวาเมื่อทางข้างหน้าถูกปิดกั้น +block.underflow-gate.description = ตรงข้ามกับประตูระบาย จะระบายไอเท็มไปข้างหน้าหากทางซ้ายและขวาถูกปิดกั้น block.mass-driver.description = บล็อกขนส่งไอเท็มทางไกล รวบรวมไอเท็มจำนวนหนึ่งแล้ว\nยิงไปหาเครื่องโอนถ่ายมวลอีกเครื่องที่อยู่ไกลออกไป block.mechanical-pump.description = ปั้มของเหลวขึ้นมา ไม่ใช้พลังงาน block.rotary-pump.description = ปั๊มของเหลวได้มากขึ้น แต่ต้องใช้พลังงาน block.impulse-pump.description = ปั๊มขั้นสุดยอด ปั้มของเหลวขึ้นมาได้เป็นจำนวนมาก block.conduit.description = เคลื่อนย้ายของเหลวไปข้างหน้า ใช้ร่วมกับปั๊มและท่อน้ำอื่นๆ block.pulse-conduit.description = เคลื่อนย้ายของเหลวไปข้างหน้า เคลื่อนย้ายได้เร็วขึ้นและเก็บของเหลวได้เยอะกว่าท่อน้ำธรรมดา -block.plated-conduit.description = เคลื่อนย้ายของเหลวไปข้างหน้า ไม่รับของเหลวจากด้านข้างนอกจากท่อน้ำด้วยกันเอง\nไม่รั่ว และมีเกราะที่หนากว่า -block.liquid-router.description = รับของเหลวจากทางเดียวแล้วส่งออกสามทางเท่าๆกัน สามารถเก็บของเหลวได้จำนวนหนึ่ง\nมีประโยชน์สำหรับการส่งของเหลวจากปั้มไปยังหลายที่ +block.plated-conduit.description = เคลื่อนย้ายของเหลวไปข้างหน้า ไม่รับของเหลวจากด้านข้างยกเว้นว่าจะเป็นท่อน้ำด้วยกันเอง\nไม่รั่วไหล และมีเกราะที่หนากว่า +block.liquid-router.description = รับของเหลวจากทางเดียวแล้วส่งออกไปสามทางเท่าๆกัน สามารถเก็บของเหลวได้จำนวนหนึ่ง\nมีประโยชน์สำหรับการส่งของเหลวจากปั้มไปยังหลายที่ block.liquid-container.description = เก็บของเหลวจำนวนปานกลาง ส่งออกไปรอบด้านคล้ายกับ\nเร้าเตอร์ของเหลว เหมาะในการใช้กับเครื่องโหลดและถ่ายสิ่งบรรทุกสำหรับ\nการขนส่งของเหลวทางไกล block.liquid-tank.description = เก็บของเหลวจำนวนมาก ส่งออกไปรอบด้านคล้ายกับเร้าเตอร์ของเหลว\nเหมาะในการใช้เพื่อสร้างกันชนในเวลาที่ของเหลวไม่คงที่\nหรือเวลาที่ใช้ของเหลวเป็นจำนวนมาก block.liquid-junction.description = ทำหน้าที่เป็นสะพานสำหรับท่อน้ำสองท่อตัดกันที่มีของเหลวสองชนิดแล้วจะไปคนละที่ @@ -1954,31 +1974,31 @@ block.combustion-generator.description = ผลิตพลังงานจา block.thermal-generator.description = ผลิตพลังงานเมื่อวางในพื้นที่ร้อน block.steam-generator.description = เครื่องกำเนิดไฟฟ้าเผาไหม้ขั้นสูง ประสิทธิภาพสูงกว่า แต่ต้องใช้น้ำด้วยเพื่อผลิตไอน้ำ block.differential-generator.description = ผลิตไฟฟ้าจำนวนมาก ใช้ความต่างของอุณหภูมิระหว่าง\nสารหล่อเย็นและไพราไทต์อันร้อนแรงเพื่อผลิตพลังงานออกมา -block.rtg-generator.description = เครื่องกำเนิดไฟฟ้าที่ใช้ง่ายและไว้ใจได้\nใช้ความร้อนจากการสลายตัวของสารกัมมันตภาพรังสีมาผลิตพลังงาน\nอย่างช้าๆ +block.rtg-generator.description = เครื่องกำเนิดไฟฟ้าที่ใช้ง่ายและไว้ใจได้\nใช้ความร้อนจากการสลายตัวของสารกัมมันตรังสีมาผลิตพลังงาน\nอย่างช้าๆ block.solar-panel.description = ผลิตพลังงานจากแสงอาทิตย์อย่างน้อยๆ block.solar-panel-large.description = ผลิตพลังงานจากแสงอาทิตย์อย่างพอประมาณ มีประสิทธิภาพมากกว่าแผงโซล่าเซลล์ธรรมดา block.thorium-reactor.description = ผลิตพลังงานจำนวนมากจากทอเรี่ยม ต้องมีสารหล่อเย็นมาระบายความร้อนอยู่ตลอดเวลา จะร้อนและระเบิดอย่างรุนแรงหากขาดสารหล่อเย็น -block.impact-reactor.description = สามารถผลิตไฟฟ้าได้จำนวนมหาศาลที่ประสิทธิภาพสูงสุด จำเป็นต้องใช้พลังงานจำนวนมากในการสตาร์ทเครื่อง +block.impact-reactor.description = สามารถผลิตไฟฟ้าได้จำนวนมหาศาลที่ประสิทธิภาพสูงสุด จำเป็นต้องใช้พลังงานจำนวนมากในการเดินเครื่อง block.mechanical-drill.description = เมื่อวางบนพื้นแร่ จะขุดแร่นั้นและส่งออกมาอย่างช้าๆ\nไปเรื่อยๆ ไม่มีที่สิ้นสุด ขุดได้แค่ทรัพยากรพื้นฐาน -block.pneumatic-drill.description = เครื่องขุดที่ได้รับการปรับปรุง สามารถขุด[sky]ไทเทเนี่ยม[]ได้ ขุดได้เร็วกว่าเครื่องขุดเชิงกล -block.laser-drill.description = ขุดได้เร็วขึ้นด้วยเทคโนโลยีเลเซอร์ แต่ต้องใช้พลังงาน\nสามารถขุด[pink]ทอเรี่ยม[]ได้ +block.pneumatic-drill.description = เครื่องขุดที่ได้รับการปรับปรุง สามารถขุดไทเทเนี่ยมได้ ขุดได้เร็วกว่าเครื่องขุดเชิงกล +block.laser-drill.description = ขุดได้เร็วขึ้นด้วยเทคโนโลยีเลเซอร์ แต่ต้องใช้พลังงาน\nสามารถขุดทอเรี่ยมได้ block.blast-drill.description = เครื่องขุดขั้นสุดยอด ใช้พลังงานจำนวนมาก block.water-extractor.description = ขุดน้ำบาดาลจากใต้พื้นดิน ใช้ในพื้นที่ที่ไม่มีน้ำบนดินให้ใช้ block.cultivator.description = รวบรวมสปอร์ในชั้นบรรยากาศมาสกัดเป็นกระเปาะสปอร์สำหรับ\nอุตสาหกรรม block.cultivator.details = เทคโนโลยีที่กอบกู้มาได้ ใช้สำหรับสกัดชีวมวลจำนวนมหาศาล\nอย่างมีประสิทธิภาพให้ได้มากที่สุด\nน่าจะเป็นศูนย์บ่มเพาะเริ่มแรกของสปอร์ที่ตอนนี้\nครอบคลุมดาว[accent]เซอร์ปูโล่[] block.oil-extractor.description = ใช้พลังงานจำนวนมากกับทรายและน้ำเพื่อขุดหาน้ำมัน block.core-shard.description = แกนกลางเป็นใจกลางของฐานทัพ เมื่อถูกทำลาย การติดต่อกับพื้นที่นั้นทั้งหมดจะหายไป อย่าให้มันเกิดขึ้น -block.core-shard.details = แกนกลางรุ่นแรก กะทัดรัด แยกร่างได้ ติดตั้งด้วยเครื่องยนต์จรวดสำหรับใช้ครั้งเดียว ไม่ได้ออกแบบมาเพื่อไปอวกาศ -block.core-foundation.description = ใจกลางของฐานทัพ เสริมเกราะมากขึ้น เก็บของได้เยอะกว่าชาร์ด +block.core-shard.details = แกนกลางรุ่นแรก กะทัดรัด สามารถแยกร่างได้ ติดตั้งด้วยเครื่องยนต์จรวดสำหรับใช้ครั้งเดียว ไม่ได้ออกแบบมาเพื่อไปอวกาศ +block.core-foundation.description = ใจกลางของฐานทัพ เสริมเกราะมากขึ้น เก็บทรัพยากรได้เยอะกว่าแกนกลางชาร์ด block.core-foundation.details = แกนกลางรุ่นที่สอง ยานบินเบต้าที่ดีกว่าจะปกป้องแกนกลางนี้ไว้ -block.core-nucleus.description = ใจกลางของฐานทัพ เสริมเกราะอย่างดีเยี่ยม เก็บของได้มหาศาล -block.core-nucleus.details = แกนกลางรุ่นที่สามและเป็นรุ่นสุดท้าย ยานบินสุดยอดแกมม่าจะปกป้องแกนกลางนี้ไว้ +block.core-nucleus.description = ใจกลางของฐานทัพ เสริมเกราะมาอย่างดีเยี่ยม เก็บทรัพยากรได้อย่างมหาศาล +block.core-nucleus.details = แกนกลางรุ่นที่สามและเป็นรุ่นสุดท้าย สุดยอดยานบินแกมม่าจะปกป้องแกนกลางนี้ไว้ block.vault.description = เก็บไอเท็มแต่ละชนิดได้จำนวนมาก สามารถใช้ตัวถ่ายไอเท็มในการดึงไอเท็มออกมาได้ block.container.description = เก็บไอเท็มแต่ละชนิดได้นิดหน่อย สามารถใช้ตัวถ่ายไอเท็มในการดึงไอเท็มออกมาได้ block.unloader.description = ดึงไอเท็มที่เลือกไว้ออกมาจากบล็อกใกล้เคียง block.launch-pad.description = ส่งไอเท็มเป็นชุดๆ ไปยังเซ็กเตอร์ที่เลือกไว้ block.launch-pad.details = ระบบขนส่งทรัพยากรวงโคจรย่อยจากจุดหนึ่งไปอีกจุดหนึ่ง แคปซูลบรรทุกทรัพยากรนั้นเปราะบางและไม่สามารถทนความร้อนจากชั้นบรรยากาศได้ -block.duo.description = ป้อมปืนขนาดเล็ก ยิงกระสุนที่อยู่ในตัวมันใส่ศัตรู +block.duo.description = ป้อมปืนขนาดเล็ก ยิงกระสุนที่อยู่ในตัวมันใส่เป้าหมายศัตรู block.scatter.description = ยิงก้อนตะกั่ว เศษเหล็กหรือกระจกเมต้าใส่ยานบินศัตรูที่อยู่ใกล้เคียง block.scorch.description = เผาศัตรูพื้นดินที่อยู่ใกล้ๆ มีประสิทธิภาพสูงสุดเมื่อใช้ในระยะใกล้ block.hail.description = ป้อมปืนใหญ่ขนาดย่อม ยิงลูกระเบิดใส่ศัตรูพื้นดินจากระยะไกล @@ -1987,9 +2007,9 @@ block.lancer.description = ชาร์จแล้วยิงลำแสง block.arc.description = ยิงสายฟ้าใส่ศัตรูพื้นดิน จะทำดาเมจมหาศาลเมื่อศัตรูเปียกน้ำ block.swarmer.description = ยิงขีปนาวุธติดตามตัวใส่ศัตรูทั้งอากาศและพื้นดิน block.salvo.description = ป้อมปืนขนาดกลาง ระดมยิงกระสุนหนักใส่ศัตรูอย่างรวดเร็ว -block.fuse.description = ป้อมปืนระยะใกล้ขนาดใหญ่ ยิงลำแสงเจาะทะลุสามแฉกใส่ศัตรูที่อยู่ใกล้เคียง -block.ripple.description = ป้อมปืนใหญ่อันทรงพลัง ยิงลูกระเบิดเป็นกระจุกใส่ศัตรูพื้นดินจากระยะไกล -block.cyclone.description = ป้อมปืนรวดเร็วดั่งพายุ ยิงก้อนสะเก็ดระเบิดใส่ยูนิตศัตรูอย่างรวดเร็ว +block.fuse.description = ป้อมปืนระยะใกล้ขนาดใหญ่ ยิงลำแสงเจาะทะลุสามแฉกใส่เป้าหมายศัตรูที่อยู่ใกล้เคียง +block.ripple.description = ป้อมปืนใหญ่อันทรงพลัง ยิงลูกระเบิดเป็นกระจุกใส่เป้าหมายศัตรูพื้นดินจากระยะไกล +block.cyclone.description = ป้อมปืนรวดเร็วดั่งพายุ ยิงก้อนสะเก็ดระเบิดใส่เป้าหมายศัตรูอย่างรวดเร็ว block.spectre.description = ปืนใหญ่คู่ขนาดยักษ์ ยิงกระสุนเจาะเกราะใส่ศัตรูทั้งบนอากาศและพื้นดิน block.meltdown.description = ชาร์จแล้วยิงลำแสงเลเซอร์ใส่ศัตรูที่อยู่ใกล้เคียงอย่างต่อเนื่อง ต้องมีของเหลวมาหล่อเย็นป้อมปืนเพื่อทำงาน block.foreshadow.description = ป้อมปืนเรลกันขนาดมหึมา ยิงลำแสงพลังงานใส่เป้าหมายเดี่ยวขนาดใหญ่\nมีระยะการยิงไกลมาก จะเลือกยิงยูนิตที่มีพลังชีวิตมากที่สุดก่อน @@ -2002,9 +2022,9 @@ block.disassembler.description = แยกแร่หลอมออกเป block.overdrive-dome.description = เร่งประสิทธิภาพสิ่งก่อสร้างรอบข้างอย่างมหาศาล ต้องมีใยเฟสกับซิลิกอนเพื่อทำงาน block.payload-conveyor.description = เคลื่อนย้ายสิ่งของบรรทุกหนัก อย่างเช่นยูนิต block.payload-router.description = แยกสิ่งของบรรทุกออกเป็นสามทิศทาง -block.ground-factory.description = ผลิตยูนิตทางบก ยูนิตที่ผลิตสามารถใช้ได้เลย หรือนำไปใส่ในเครื่องพัฒนาเพื่ออัปเกรด -block.air-factory.description = ผลิตยูนิตทางอากาศ ยูนิตที่ผลิตสามารถใช้ได้เลย หรือนำไปใส่ในเครื่องพัฒนาเพื่ออัปเกรด -block.naval-factory.description = ผลิตยูนิตเรือ ยูนิตที่ผลิตสามารถใช้ได้เลย หรือนำไปใส่ในเครื่องพัฒนาเพื่ออัปเกรด +block.ground-factory.description = ผลิตยูนิตทางบก ยูนิตที่ผลิตสามารถนำไปใช้ได้เลย หรือนำไปใส่ในเครื่องพัฒนาเพื่ออัปเกรด +block.air-factory.description = ผลิตยูนิตทางอากาศ ยูนิตที่ผลิตสามารถนำไปใช้ได้เลย หรือนำไปใส่ในเครื่องพัฒนาเพื่ออัปเกรด +block.naval-factory.description = ผลิตยูนิตเรือ ยูนิตที่ผลิตสามารถนำไปใช้ได้เลย หรือนำไปใส่ในเครื่องพัฒนาเพื่ออัปเกรด block.additive-reconstructor.description = อัปเกรดยูนิตที่อยู่ข้างในให้เป็นรุ่นที่สอง block.multiplicative-reconstructor.description = อัปเกรดยูนิตที่อยู่ข้างในให้เป็นรุ่นที่สาม block.exponential-reconstructor.description = อัปเกรดยูนิตที่อยู่ข้างในให้เป็นรุ่นที่สี่ @@ -2020,210 +2040,215 @@ block.large-logic-display.description = แสดงกราฟิกโดย block.interplanetary-accelerator.description = หอคอยเรลกันแม่เหล็กไฟฟ้าขนาดมหึมา เร่งความเร็วแกนกลางเพื่อบินสู่อวกาศไปยังดาวเคราะห์อื่นๆ block.repair-turret.description = ซ่อมแซมยูนิตที่อยู่ในรัศมีของมันอย่างต่อเนื่อง สามารถใช้ของเหลวมาหล่อเย็นเพื่อเพิ่มประสิทธิภาพได้ block.payload-propulsion-tower.description = บล็อกขนส่งสิ่งบรรทุกทางไกล\nยิงสิ่งบรรทุกไปยังหอเคลื่อนย้ายสิ่งบรรทุกอีกเครื่องที่เชื่อมต่อไว้ -block.core-bastion.description = Core of the base. Armored. Once destroyed, the sector is lost. -block.core-citadel.description = Core of the base. Very well armored. Stores more resources than a Bastion core. -block.core-acropolis.description = Core of the base. Exceptionally well armored. Stores more resources than a Citadel core. -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-junction.description = Acts as a bridge for two crossing conduits. -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. -unit.dagger.description = ยิงกระสุนธรรมดาใส่ศัตรูที่อยู่ใกล้เคียง -unit.mace.description = ยิงเปลวไฟเผาไหม้ใส่ศัตรูที่อยู่ใกล้เคียง -unit.fortress.description = ยิงปืนใหญ่พิสัยไกลไปที่เป้าหมายพื้นดิน -unit.scepter.description = ยิงกระสุนชาร์จใส่ศัตรูใกล้เคียงทั้งหมด กระสุนจะระเบิดออกเป็นพลังงานสายฟ้า สร้างความเสียหายแก่ยูนิตรอบข้าง -unit.reign.description = ยิงกระสุนเจาะทะลุขนาดใหญ่ใส่ศัตรูที่อยู่ใกล้เคียง กระสุนสามารถกระจายตัวไปโจมตีป้อมปืนที่หลบอยู่หลังกำแพงได้ -unit.nova.description = ยิงเลเซอร์ที่สร้างความเสียหายให้กับศัตรูและซ่อมแซมสิ่งก่อสร้างของ\nพวกพ้อง สามารถบินได้ -unit.pulsar.description = ยิงสายฟ้าที่สร้างความเสียหายให้กับศัตรูและซ่อมแซมสิ่งก่อสร้างของ\nพวกพ้อง สามารถบินได้ -unit.quasar.description = ยิงลำแสงเลเซอร์เจาะทะลุที่สร้างความเสียหายให้กับศัตรูและซ่อมแซม\nสิ่งก่อสร้างของพวกพ้อง มีโล่พลังงานเพื่อป้องกันร่างกายอันบอบบาง\nสามารถบินได้ -unit.vela.description = ยิงลำแสงเลเซอร์ต่อเนื่องขนาดใหญ่ที่สร้างความเสียหายให้กับศัตรู ทำให้เกิดไฟไหม้ และซ่อมแซมสิ่งก่อสร้างของพวกพ้อง\nสามารถบินได้ -unit.corvus.description = ยิงลำแสงเลเซอร์พลังงานขนาดใหญ่ที่สร้างความเสียหายอย่างหนัก\nให้กับศัตรูและซ่อมแซมสิ่งก่อสร้างของพวกพ้อง สามารถเหยียบข้ามกำแพงได้ -unit.crawler.description = วิ่งเข้าหาศัตรูแล้วระเบิดตัวเอง ทำให้เกิดระเบิดขนาดใหญ่ -unit.atrax.description = ยิงลูกแก้วแร่หลอมใส่เป้าหมายพื้นดิน ทำให้ศัตรูถูกเผาไหม้ สามารถเหยียบข้ามกำแพงได้ -unit.spiroct.description = ยิงเลเซอร์ทอนกำลังใส่ศัตรู ซ่อมแซมตัวเองไปในตัว สามารถเหยียบข้ามกำแพงได้ -unit.arkyid.description = ยิงเลเซอร์ทอนกำลังจำนวนมากมายใส่ศัตรู ซ่อมแซมตัวเองไปในตัว สามารถเหยียบข้ามกำแพงได้ -unit.toxopid.description = ยิงระเบิดไฟฟ้าขนาดใหญ่และเลเซอร์เจาะทะลุใส่ศัตรู สามารถเหยียบข้ามกำแพงได้ -unit.flare.description = ยิงกระสุนธรรมดาไปที่เป้าหมายพื้นดินที่อยู่ใกล้เคียง -unit.horizon.description = ทิ้งกลุ่มระเบิดขนาดเล็กใส่เป้าหมายพื้นดิน -unit.zenith.description = ระดมยิงขีปนาวุธติดตามตัวใส่ศัตรูที่อยู่ใกล้เคียง -unit.antumbra.description = สาดกระสุนและยิงขีปนาวุธติดตามตัวใส่ศัตรูที่อยู่ใกล้เคียง -unit.eclipse.description = ยิงเลเซอร์เจาะทะลุสองกระบอกและยิงกระสุนระเบิดใส่ศัตรูที่อยู่ใกล้เคียง +#Erekir +block.core-bastion.description = ใจกลางของฐานทัพ เสริมเกราะมาอย่างดี เมื่อถูกทำลาย การติดต่อกับพื้นที่นั้นทั้งหมดจะหายไป อย่าให้มันเกิดขึ้น +block.core-citadel.description = ใจกลางของฐานทัพ เสริมเกราะมาอย่างดีเยี่ยม เก็บทรัพยากรได้เยอะกว่าแกนกลางบาสเชี่ยน +block.core-acropolis.description = ใจกลางของฐานทัพ เสริมเกราะมาอย่างสุดยอด เก็บทรัพยากรได้เยอะกว่าแกนกลางซิทาเดล +block.breach.description = ยิงกระสุนเบริลเลี่ยมหรือทังสเตนเจาะทะลุใส่เป้าหมายศัตรู +block.diffuse.description = ป้อมปืนระยะยิงสั้น ปะทุยิงกลุ่มกระสุนในแนวกว้าง กระสุนจะผลักเป้าหมายศัตรูให้ถอยห่างจากป้อมปืน +block.sublimate.description = ยิงลำแสงเปลวไฟเจาะเกราะใส่เป้าหมายศัตรูอย่างต่อเนื่อง +block.titan.description = ยิงกระสุนปืนใหญ่ระเบิดขนาดใหญ่ใส่เป้าหมายศัตรูพื้นดิน ต้องใช้ไฮโดรเจน +block.afflict.description = ยิงลูกแก้วสะเก็ดระเบิดสายฟ้าใส่เป้าหมายศัตรู ต้องใช้ความร้อน +block.disperse.description = ปะทุยิงก้อนสะเก็ดกระสุนใส่ยานบินศัตรู +block.lustre.description = ยิงลำแสงเลเซอร์เคลื่อนที่ช้าจ่อเป้าหมายศัตรูที่จุดเดียว +block.scathe.description = ป้อมปืนพิสัยไกล ยิงขีปนาวุธทรงพลังใส่เป้าหมายศัตรูพื้นดินจากระยะไกล ขีปนาวุธอาจถูกยิงสกัดระหว่างทางได้ +block.smite.description = บทลงโทษจากสวรรค์ ปะทุยิงกำแพงกระสุนสายฟ้าเจาะกราะใส่เป้าหมายศัตรู +block.malign.description = ระดมยิงกระสุนเลเซอร์สายฟ้าติดตามตัวจำนวนมากใส่เป้าหมายศัตรู ต้องใช้ความร้อนจำนวนมากเพื่อที่จะทำงานได้อย่างเต็มประสิทธิภาพ +block.silicon-arc-furnace.description = ผลิตซิลิกอนจากการหลอมทรายและกราไฟต์เข้าด้วยกัน +block.oxidation-chamber.description = แปลงเบริลเลี่ยมและโอโซนให้กลายเป็นอ๊อกไซด์ ปล่อยความร้อนออกมาซึ่งเป็นผลมาจากปฎิบัติการ +block.electric-heater.description = สร้างความร้อนขึ้นมาจากพลังงาน ใช้พลังงานจำนวนมาก ใช้โดยการหันหน้าลูกศรไปในทางที่ต้องการจะปล่อยความร้อนออกมา +block.slag-heater.description = สร้างความร้อนขึ้นมาจากแร่หลอม ใช้โดยการหันหน้าลูกศรไปในทางที่ต้องการจะปล่อยความร้อนออกมา +block.phase-heater.description = สร้างความร้อนขึ้นมาจากการอุ่นใยเฟส ใช้โดยการหันหน้าลูกศรไปในทางที่ต้องการจะปล่อยความร้อนออกมา +block.heat-redirector.description = เปลี่ยนทิศทางของความร้อนที่สะสมมาให้ไปหาบล็อกที่มันหันหน้าเข้าใส่ +block.heat-router.description = กระจายความร้อนที่สะสมมาออกไปในสามทิศทาง +block.electrolyzer.description = เปลี่ยนน้ำให้กลายเป็นแก็สไฮโดรเจนและโอโซนด้วยขบวนการทางเคมี +block.atmospheric-concentrator.description = หลอมรวมไนโตรเจนจากชั้นบรรยากาศ ใช้ความร้อนในการทำงาน +block.surge-crucible.description = หลอมรวมแร่หลอมและซิลิกอนเพื่อผลิตโลหะผสมเสิร์จ ใช้ความร้อนในการทำงาน +block.phase-synthesizer.description = สังเคราะห์ใยเฟสจากทอเรี่ยม ทรายและแก็สโอโซน ใช้ความร้อนในการทำงาน +block.carbide-crucible.description = หลอมรวมกราไฟต์และทังสเตนเพื่อผลิตคาร์ไบต์ ใช้ความร้อนในการทำงาน +block.cyanogen-synthesizer.description = สังเคราะห์ไซยาโนเจนจากอาร์คย์ไซต์และกราไฟต์ ใช้ความร้อนในการทำงาน +block.slag-incinerator.description = เผาทำลายไอเท็มหรือของเหลวที่เสถียรทั้งหมดที่ได้รับมา ต้องใช้แร่หลอมเพื่อทำงาน +block.vent-condenser.description = ควบแน่นแก็สในปล่องให้กลายเป็นน้ำ ต้องใช้พลังงาน +block.plasma-bore.description = เมื่อหันหน้าเข้าหาแร่กำแพง จะขุดแร่นั้นและส่งออกมาอย่างช้าๆ ไปเรื่อยๆ ไม่มีที่สิ้นสุด จำเป็นต้องใช้พลังงานเล็กน้อย สามารถใช้ไฮโดรเจนเพื่อเพิ่มประสิทธิภาพการขุดได้ +block.large-plasma-bore.description = เครื่องขุดเจาะพลาสม่าที่ใหญ่กว่า สามารถขุดแร่ทังสเตนและทอเรี่ยมได้ ต้องใช้ไฮโดรเจนและพลังงานในการทำงาน สามารถใช้ไนโตรเจนเพื่อเพิ่มประสิทธิภาพการขุดได้ +block.cliff-crusher.description = เมื่อหันหน้าเข้าหากำแพงที่ต้องการ จะบดขยี้กำแพงนั้น และส่งออกผงทรายละเอียดออกมาอย่างไม่มีที่สิ้นสุด จำเป็นต้องใช้พลังงาน ประสิทธิภาพของการบดขึ้นอยู่กับชนิดของกำแพงที่บด +block.impact-drill.description = เมื่อวางบนพื้นแร่ จะขุดแร่นั้นและส่งออกมาเป็นกลุ่มไปเรื่อยๆ ไม่มีที่สิ้นสุด จำเป็นต้องใช้พลังงานและน้ำ +block.eruption-drill.description = เครื่องขุดแรงกระแทกที่ได้รับการปรับปรุง สามารถขุดทอเรี่ยมได้ จำเป็นต้องใช้ไฮโดรเจน +block.reinforced-conduit.description = เคลื่อนย้ายของเหลวไปข้างหน้า ไม่รับของเหลวจากด้านข้างยกเว้นว่าจะเป็นท่อน้ำด้วยกันเอง +block.reinforced-liquid-router.description = รับของเหลวจากทางเดียวแล้วส่งออกไปสามทางเท่าๆกัน สามารถเก็บของเหลวได้จำนวนหนึ่ง\nมีประโยชน์สำหรับการส่งของเหลวจากปั้มไปยังหลายที่ +block.reinforced-junction.description = มีหน้าที่เป็นสะพานสำหรับท่อสูญญากาศสองท่อข้ามกัน มีประโยชน์สำหรับเวลาท่อสูญญากาศสองท่อ\nขนไอเท็มสองชนิดไปยังสองสถานที่ +block.reinforced-liquid-tank.description = เก็บของเหลวจำนวนมาก ส่งออกไปรอบด้านคล้ายกับเร้าเตอร์ของเหลว\nเหมาะในการใช้เพื่อสร้างกันชนในเวลาที่ของเหลวไม่คงที่\nหรือเวลาที่ใช้ของเหลวเป็นจำนวนมาก +block.reinforced-liquid-container.description = เก็บของเหลวจำนวนปานกลาง ส่งออกไปรอบด้านคล้ายกับ\nเร้าเตอร์ของเหลว เหมาะในการใช้กับเครื่องโหลดและถ่ายสิ่งบรรทุกสำหรับ\nการขนส่งของเหลวทางไกล +block.reinforced-bridge-conduit.description = เคลื่อนย้ายของเหลวข้ามสิ่งก่อสร้างหรือกำแพง +block.reinforced-pump.description = ปั้มของเหลวขึ้นมา ต้องใช้ไฮโดรเจน +block.beryllium-wall.description = ป้องกันสิ่งก่อสร้างจากศัตรู +block.beryllium-wall-large.description = ป้องกันสิ่งก่อสร้างจากศัตรู ครอบคลุมหลายช่อง +block.tungsten-wall.description = ป้องกันสิ่งก่อสร้างจากศัตรู ค่อนข้างแข็งแรง +block.tungsten-wall-large.description = ป้องกันสิ่งก่อสร้างจากศัตรู ค่อนข้างแข็งแรง ครอบคลุมหลายช่อง +block.carbide-wall.description = ป้องกันสิ่งก่อสร้างจากศัตรู แข็งแกร่งอย่างมาก +block.carbide-wall-large.description = ป้องกันสิ่งก่อสร้างจากศัตรู แข็งแกร่งอย่างมาก ครอบคลุมหลายช่อง +block.reinforced-surge-wall.description = ป้องกันสิ่งก่อสร้างจากศัตรู ทนทานและแข็งแรง ปล่อยพลังงานสายฟ้าออกมาเป็นระยะๆ เมื่อถูกโจมตี +block.reinforced-surge-wall-large.description = ป้องกันสิ่งก่อสร้างจากศัตรู ทนทานและแข็งแรง ปล่อยพลังงานสายฟ้าออกมาเป็นระยะๆ เมื่อถูกโจมตี\nครอบคลุมหลายช่อง +block.shielded-wall.description = ป้องกันสิ่งก่อสร้างจากศัตรู แข็งแรงมาก สร้างโล่พลังงานที่ดูดซับกระสุนเกือบทั้งหมดเมื่อได้รับพลังงาน มีคุณสมบัตินำไฟฟ้า +block.blast-door.description = กำแพงที่จะเปิดเมื่อยูนิตพื้นดินพันธมิตรอยู่ในระยะ ไม่สามารถควบคุมได้ด้วยตนเอง +block.duct.description = เลื่อนไอเท็มไปข้างหน้า กักเก็บไอเท็มได้แค่ชิ้นเดียว +block.armored-duct.description = เลื่อนไอเท็มไปข้างหน้า เร็วเท่าท่อสูญญากาศ แต่มีเกราะที่แข็งแรงกว่า ไม่รับไอเท็มจากด้านข้างยกเว้นว่าจะเป็นท่อสูญญากาศด้วยกันเอง +block.duct-router.description = รับไอเท็มแล้วส่งออกไปสามทางเท่าๆกัน รับไอเท็มเฉพาะจากด้านหลังเท่านั้น สามารถตั้งค่าให้เป็นเครื่องคัดแยกไอเท็มได้ +block.overflow-duct.description = ไอเท็มจะถูกระบายออกทางซ้ายขวาเมื่อทางข้างหน้าถูกปิดกั้น +block.duct-bridge.description = เคลื่อนย้ายไอเท็มข้ามสิ่งก่อสร้างหรือกำแพง +block.duct-unloader.description = ดึงไอเท็มที่เลือกไว้ออกมาจากบล็อกใกล้เคียง ไม่สามารถดึงไอเท็มออกมาจากแกนกลางได้ +block.underflow-duct.description = ตรงข้ามกับท่อระบายสูญญากาศ จะระบายไอเท็มไปข้างหน้าหากทางซ้ายและขวาถูกปิดกั้น +block.reinforced-liquid-junction.description = ทำหน้าที่เป็นสะพานสำหรับท่อน้ำสองท่อตัดกันที่มีของเหลวสองชนิดแล้วจะไปคนละที่ +block.surge-conveyor.description = เคลื่อนย้ายไอเท็มเป็นชุด\nรับไอเท็มจากด้านหลัง และนำออกไปด้านหน้าสามทิศทาง สามารถจ่ายพลังงานเพื่อเร่งความเร็วได้ มีคุณสมบัตินำไฟฟ้า +block.surge-router.description = รับไอเท็มจากสายพานเสิร์จแล้วส่งออกไปสามทางเท่าๆกัน สามารถจ่ายพลังงานเพื่อเร่งความเร็วได้ มีคุณสมบัตินำไฟฟ้า +block.unit-cargo-loader.description = สร้างโดรนบรรทุกขึ้นมา โดรนจะเคลื่อนย้ายจะแจกจ่ายไอเท็มจากบล็อกนี้ไปยังจุดถ่ายยูนิตบรรทุกที่มีตัวกรองเดียวกันอย่างเท่าๆกันโดยอัตโนมัติ +block.unit-cargo-unload-point.description = เป็นจุดสำหรับโดรนบรรทุกที่จะถ่ายไอเท็มลง จะรับไอเท็มที่ตรงกับตัวกรองที่ได้ตั้งไว้เท่านั้น +block.beam-node.description = ส่งพลังงานไปยังโหนดลำแสงอื่นในแนวตั้งฉาก กักเก็บพลังงานได้จำนวนเล็กน้อย +block.beam-tower.description = ส่งพลังงานไปยังโหนดลำแสงอื่นในแนวตั้งฉาก กักเก็บพลังงานได้จำนวนมาก ระยะไกลกว่าโหนดลำแสง +block.turbine-condenser.description = ผลิตพลังงานออกมาเมื่อวางบนปล่อง ผลิตน้ำจำนวนเล็กน้อยเป็นผลมาจากการควบแน่น +block.chemical-combustion-chamber.description = ผลิตพลังงานจากการเผาไหม้ทางเคมีระหว่างอาร์คย์ไซต์และโอโซน +block.pyrolysis-generator.description = ผลิตพลังงานจำนวนมากจากอาร์คย์ไซต์และแร่หลอม ผลิตน้ำออกมาซึ่งเป็นผลมาจากปฎิบัติการ +block.flux-reactor.description = ผลิตพลังงานจำนวนมากออกมาเมื่อได้รับความร้อน จำเป็นต้องใช้ไซยาโนเจนเป็นสารคงความเสถียรของเตาปฏิกรณ์ พลังงานที่ผลิตและจำนวนไซยาโนเจนที่ต้องการ\nจะแปรผันตรงกับความร้อนที่ได้รับมา\nจะระเบิดหากเตาปฏิกรณ์ไม่ได้รับไซยาโนเจนที่เพียงพอ +block.neoplasia-reactor.description = ใช้อาร์คย์ไซต์ น้ำ และใยเฟสเพื่อผลิตพลังงานจำนวนมาก ปล่อยความร้อนและนีโอพลาสม์อันตรายซึ่งเป็นผลมาจากปฎิบัติการ\nจะระเบิดอย่างรุนแรงหากไม่ได้ใช้ท่อน้ำกำจัดนีโอพลาสม์ออก\nจากเตาปฏิกรณ์ให้ทันเวลา +block.build-tower.description = สร้างสิ่งก่อสร้างในระยะที่ถูกทำลายให้ใหม่โดยอัตโนมัติและช่วยเหลือยูนิตอื่นในการก่อสร้าง +block.regen-projector.description = ซ่อมแซมสิ่งก่อสร้างพันธมิตรในพื้นที่สี่เหลี่ยมของมันอย่างช้าๆ ต้องใช้ไฮโดรเจน +block.reinforced-container.description = เก็บไอเท็มแต่ละชนิดได้นิดหน่อย สามารถใช้ตัวถ่ายไอเท็มในการดึงไอเท็มออกมาได้ จะไม่เพิ่มความจุไอเท็มของแกนกลาง +block.reinforced-vault.description = เก็บไอเท็มแต่ละชนิดได้จำนวนมาก สามารถใช้ตัวถ่ายไอเท็มในการดึงไอเท็มออกมาได้ จะไม่เพิ่มความจุไอเท็มของแกนกลาง +block.tank-fabricator.description = ผลิตยูนิตสเตลล์ ยูนิตที่ผลิตสามารถนำไปใช้ได้เลย หรือนำไปใส่ในเครื่องแปลงสภาพเพื่ออัปเกรด +block.ship-fabricator.description = ผลิตยูนิตเอลูด ยูนิตที่ผลิตสามารถนำไปใช้ได้เลย หรือนำไปใส่ในเครื่องแปลงสภาพเพื่ออัปเกรด +block.mech-fabricator.description = ผลิตยูนิตเมรุย ยูนิตที่ผลิตสามารถนำไปใช้ได้เลย หรือนำไปใส่ในเครื่องแปลงสภาพเพื่ออัปเกรด +block.tank-assembler.description = ประกอบรถถังขนาดใหญ่จากบล็อกและยูนิตที่ใส่เข้าไป สามารถเพิ่มระดับของยูนิตที่ส่งออกมาได้โดยการเพิ่มหน่วยประกอบการ +block.ship-assembler.description = ประกอบยานบินขนาดใหญ่จากบล็อกและยูนิตที่ใส่เข้าไป สามารถเพิ่มระดับของยูนิตที่ส่งออกมาได้โดยการเพิ่มหน่วยประกอบการ +block.mech-assembler.description = ประกอบจักรกลขนาดใหญ่จากบล็อกและยูนิตที่ใส่เข้าไป สามารถเพิ่มระดับของยูนิตที่ส่งออกมาได้โดยการเพิ่มหน่วยประกอบการ +block.tank-refabricator.description = พัฒนายูนิตรถถังที่ถูกใส่เข้าไปให้กลายเป็นยูนิตรุ่นที่สอง +block.ship-refabricator.description = พัฒนายูนิตยานบินที่ถูกใส่เข้าไปให้กลายเป็นยูนิตรุ่นที่สอง +block.mech-refabricator.description = พัฒนายูนิตจักรกลที่ถูกใส่เข้าไปให้กลายเป็นยูนิตรุ่นที่สอง +block.prime-refabricator.description = พัฒนายูนิตที่ถูกใส่เข้าไปให้กลายเป็นยูนิตรุ่นที่สาม +block.basic-assembler-module.description = เพิ่มระดับการประกอบของเครื่องประกอบเมื่อวางไว้ติดกับเขตการประกอบการ จำเป็นใช้พลังงาน สามารถใช้เป็นทางเข้าของสิ่งบรรทุกได้ +block.small-deconstructor.description = ลบทำลายสิ่งก่อสร้างและยูนิต คืนทรัพยากรทั้งหมดที่ใช้ในการก่อสร้าง +block.reinforced-payload-conveyor.description = เคลื่อนย้ายสิ่งของบรรทุกหนัก อย่างเช่นยูนิต +block.reinforced-payload-router.description = แยกสิ่งของบรรทุกออกเป็นสามทิศทาง จะทำงานเป็นเครื่องคัดแยกหากได้ตั้งตัวกรองเอาไว้ +block.payload-mass-driver.description = บล็อกขนส่งสิ่งบรรทุกทางไกล\nยิงสิ่งบรรทุกไปยังเครื่องโอนถ่ายสิ่งบรรทุกอีกเครื่องที่เชื่อมต่อไว้ +block.large-payload-mass-driver.description = บล็อกขนส่งสิ่งบรรทุกทางไกล\nยิงสิ่งบรรทุกไปยังเครื่องโอนถ่ายสิ่งบรรทุกอีกเครื่องที่เชื่อมต่อไว้ +block.unit-repair-tower.description = ซ่อมแซมยูนิตทั้งหมดที่อยู่ในรัศมีของมัน ต้องใช้โอโซนเพื่อทำงาน +block.radar.description = ค่อยๆ เปิดเผยพื้นที่และยูนิตศัตรูในรัศมีขนาดใหญ่ ต้องใช้พลังงาน +block.shockwave-tower.description = สร้างความเสียหายและทำลายกระสุนของศัตรูในรัศมีของมัน ต้องใช้ไซยาโนเจนเพื่อทำงาน +block.canvas.description = แสดงผลรูปวาดที่เรียบง่ายด้วยสีที่มีอยู่จำกัด สามารถปรับแต่งได้ + +unit.dagger.description = ยิงกระสุนธรรมดาใส่เป้าหมายศัตรู +unit.mace.description = ยิงเปลวไฟเผาไหม้ใส่เป้าหมายศัตรู +unit.fortress.description = ยิงกระสุนปืนใหญ่พิสัยไกลไปที่เป้าหมายศัตรูพื้นดิน +unit.scepter.description = ยิงกระสุนชาร์จไฟฟ้าใส่เป้าหมายศัตรู กระสุนจะระเบิดออกเป็นพลังงานสายฟ้า สร้างความเสียหายแก่ยูนิตรอบข้าง +unit.reign.description = ยิงกระสุนเจาะทะลุขนาดใหญ่ใส่เป้าหมายศัตรู กระสุนสามารถกระจายตัวไปโจมตีป้อมปืนที่หลบอยู่หลังกำแพงได้ +unit.nova.description = ยิงเลเซอร์ที่สร้างความเสียหายให้กับเป้าหมายศัตรูและซ่อมแซมสิ่งก่อสร้างของ\nพันธมิตร สามารถบินได้ +unit.pulsar.description = ยิงสายฟ้าที่สร้างความเสียหายให้เป้าหมายกับศัตรูและซ่อมแซมสิ่งก่อสร้างของ\nพันธมิตร สามารถบินได้ +unit.quasar.description = ยิงลำแสงเลเซอร์เจาะทะลุที่สร้างความเสียหายให้กับเป้าหมายศัตรูและซ่อมแซม\nสิ่งก่อสร้างของพันธมิตร มีโล่พลังงานเพื่อป้องกันร่างกายอันบอบบาง\nสามารถบินได้ +unit.vela.description = ยิงลำแสงเลเซอร์ต่อเนื่องขนาดใหญ่ที่สร้างความเสียหายให้กับเป้าหมายศัตรู ทำให้เกิดไฟไหม้ และซ่อมแซมสิ่งก่อสร้างของพันธมิตร\nสามารถบินได้ +unit.corvus.description = ยิงลำแสงเลเซอร์พลังงานขนาดใหญ่ที่สร้างความเสียหายอย่างหนัก\nให้กับเป้าหมายศัตรูและซ่อมแซมสิ่งก่อสร้างของพันธมิตร สามารถเหยียบข้ามกำแพงได้ +unit.crawler.description = ขยับเข้าหาเป้าหมายศัตรูแล้วระเบิดตัวเอง เกิดเป็นระเบิดขนาดใหญ่ +unit.atrax.description = ยิงลูกแก้วหลอมละลายใส่เป้าหมายศัตรูพื้นดิน ทำให้เป้าหมายถูกเผาไหม้ สามารถเหยียบข้ามกำแพงได้ +unit.spiroct.description = ยิงเลเซอร์ลดทอนกำลังใส่เป้าหมายศัตรู ซ่อมแซมตัวเองไปในตัว สามารถเหยียบข้ามกำแพงได้ +unit.arkyid.description = ยิงเลเซอร์ลดทอนกำลังจำนวนมากใส่เป้าหมายศัตรู ซ่อมแซมตัวเองไปในตัว สามารถเหยียบข้ามกำแพงได้ +unit.toxopid.description = ยิงระเบิดไฟฟ้าขนาดใหญ่และเลเซอร์เจาะทะลุใส่เป้าหมายศัตรู สามารถเหยียบข้ามกำแพงได้ +unit.flare.description = ยิงกระสุนธรรมดาไปที่เป้าหมายศัตรูพื้นดินที่อยู่ใกล้เคียง +unit.horizon.description = ทิ้งกลุ่มระเบิดขนาดเล็กใส่เป้าหมายศัตรูพื้นดิน +unit.zenith.description = ระดมยิงขีปนาวุธติดตามตัวใส่เป้าหมายศัตรู +unit.antumbra.description = สาดกระสุนระเบิดและยิงขีปนาวุธติดตามตัวใส่เป้าหมายศัตรู +unit.eclipse.description = ยิงเลเซอร์เจาะทะลุสองกระบอกและยิงกระสุนระเบิดใส่เป้าหมายศัตรู unit.mono.description = ขุดทองแดงและตะกั่วให้โดยอัตโนมัติ แล้วนำกลับเข้าไปยังแกนกลาง unit.poly.description = สร้างสิ่งก่อสร้างที่ถูกทำลายให้ใหม่โดยอัตโนมัติและคอยช่วยเหลือ\nยูนิตอื่นๆ ในการก่อสร้าง unit.mega.description = ซ่อมแซมสิ่งก่อสร้างที่เสียหายให้โดยอัตโนมัติ สามารถบรรทุกบล็อกและยูนิตพื้นดินขนาดเล็กได้ -unit.quad.description = ทิ้งระเบิดขนาดใหญ่ลงบนเป้าหมายพื้นดิน ซ่อมแซมสิ่งก่อสร้างของพวกพ้องและสร้างความเสียหายแก่ศัตรู สามารถบรรทุกยูนิตพื้นดินขนาดกลางได้ -unit.oct.description = ปกป้องพวกพ้องที่อยู่ใกล้เคียงด้วยโล่พลังงาน สามารถบรรทุกยูนิตภาคพื้นดินได้แทบทุกตัว -unit.risso.description = ยิงขีปนาวุธและสาดกระสุนจำนวนมากใส่ศัตรูใกล้เคียง -unit.minke.description = ยิงทั้งกระสุนหนักและกระสุนธรรมดาไปยังเป้าหมายพื้นดินที่อยู่ใกล้เคียง -unit.bryde.description = ยิงกระสุนปืนใหญ่พิสัยไกลและขีปนาวุธติดตามตัวใส่ศัตรู -unit.sei.description = ยิงขีปนาวุธติดตามตัวและกระสุนเจาะเกราะใส่ศัตรู -unit.omura.description = ยิงลำแสงปืนรางไฟฟ้าเจาะทะลุระยะไกลใส่ศัตรู สร้างยูนิตแฟลร์ +unit.quad.description = ทิ้งระเบิดขนาดใหญ่ลงบนเป้าหมายพื้นดิน ซ่อมแซมสิ่งก่อสร้างของพันธมิตรและสร้างความเสียหายแก่เป้าหมายศัตรู สามารถบรรทุกยูนิตพื้นดินขนาดกลางได้ +unit.oct.description = ปกป้องพันธมิตรที่อยู่ใกล้เคียงด้วยโล่พลังงาน สามารถบรรทุกยูนิตภาคพื้นดินได้แทบทุกตัว +unit.risso.description = ยิงขีปนาวุธและสาดกระสุนจำนวนมากใส่เป้าหมายศัตรู +unit.minke.description = ยิงทั้งกระสุนหนักและกระสุนธรรมดาไปยังเป้าหมายศัตรูพื้นดิน +unit.bryde.description = ยิงกระสุนปืนใหญ่พิสัยไกลและขีปนาวุธติดตามตัวใส่เป้าหมายศัตรู +unit.sei.description = ยิงขีปนาวุธติดตามตัวและกระสุนเจาะเกราะใส่เป้าหมายศัตรู +unit.omura.description = ยิงลำแสงปืนรางไฟฟ้าเจาะทะลุระยะไกลใส่เป้าหมายศัตรู สร้างยูนิตแฟลร์ unit.alpha.description = ปกป้องแกนกลางชาร์ดจากศัตรู สร้างสิ่งต่างๆ unit.beta.description = ปกป้องแกนกลางฟาวน์เดชั่นจากศัตรู สร้างสิ่งต่างๆ unit.gamma.description = ปกป้องแกนกลางนิวเคลียสจากศัตรู สร้างสิ่งต่างๆ -unit.retusa.description = ยิงตอร์ปิโดติดตามตัวใส่ศัตรูที่อยู่ใกล้เคียง และซ่อมแซมยูนิตพวกพ้องที่อยู่ใกล้เคียง -unit.oxynoe.description = ยิงเปลวไฟเผาไหม้ใส่ศัตรูที่อยู่ใกล้เคียงและซ่อมแซมสิ่งก่อสร้างของพวกพ้อง\nทำลายกระสุนที่กำลังเข้ามาด้วยปืนป้องกันจุด\nให้สถานะ[accent]โอเวอร์คล็อก[]แก่พวกพ้องรอบข้าง ทำให้ยิงเร็วและแรงขึ้น -unit.cyerce.description = ยิงขีปนาวุธพลาสม่าติดตามตัวเป็นกระจุกระเบิดใส่ศัตรู\nซ่อมแซมยูนิตพวกพ้องที่อยู่ใกล้เคียงด้วยปืนซ่อมแซม -unit.aegires.description = ช็อตทุกๆ สิ่งก่อสร้างและยูนิตศัตรูที่เข้ามาในสนามพลังงานของมัน\nด้วยสายฟ้าฟาด ซ่อมแซมสิ่งก่อสร้างและยูนิตพวกพ้อง -unit.navanax.description = ยิงลูกระเบิดคลื่นชีพจรแม่เหล็กขนาดใหญ่ สร้างความเสียหายอย่างหนักให้กับเครือข่ายพลังงานศัตรู\nและซ่อมแซมสิ่งก่อสร้างของพวกพ้อง\nหลอมละลายศัตรูที่อยู่ใกล้เคียงด้วยป้อมปืนเลเซอร์อัตโนมัติสี่ป้อม -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.retusa.description = ยิงตอร์ปิโดติดตามตัวใส่ศัตรูที่อยู่ใกล้เคียง และซ่อมแซมยูนิตพันธมิตรที่อยู่ใกล้เคียง +unit.oxynoe.description = ยิงเปลวไฟเผาไหม้ใส่ศัตรูที่อยู่ใกล้เคียงและซ่อมแซมสิ่งก่อสร้างของพันธมิตร\nทำลายกระสุนที่กำลังเข้ามาด้วยปืนป้องกันจุด\nให้สถานะ[accent]โอเวอร์คล็อก[]แก่พันธมิตรรอบข้าง ทำให้ยิงเร็วและแรงขึ้น +unit.cyerce.description = ยิงขีปนาวุธพลาสม่าติดตามตัวเป็นกระจุกระเบิดใส่ศัตรู\nซ่อมแซมยูนิตพันธมิตรที่อยู่ใกล้เคียงด้วยปืนซ่อมแซม +unit.aegires.description = ช็อตทุกๆ สิ่งก่อสร้างและยูนิตศัตรูที่เข้ามาในสนามพลังงานของมัน\nด้วยสายฟ้าฟาด ซ่อมแซมสิ่งก่อสร้างและยูนิตพันธมิตร +unit.navanax.description = ยิงลูกระเบิดคลื่นชีพจรแม่เหล็กขนาดใหญ่ สร้างความเสียหายอย่างหนักให้กับเครือข่ายพลังงานศัตรู\nและซ่อมแซมสิ่งก่อสร้างของพันธมิตร\nหลอมละลายศัตรูที่อยู่ใกล้เคียงด้วยป้อมปืนเลเซอร์อัตโนมัติสี่ป้อม + +#Erekir +unit.stell.description = ยิงกระสุนธรรมดาใส่เป้าหมายศัตรู +unit.locus.description = สลับยิงกระสุนเลเซอร์ใส่เป้าหมายศัตรู +unit.precept.description = ยิงกระจุกกระสุนเจาะทะลุใส่เป้าหมายศัตรู +unit.vanquish.description = ยิงกระสุนแตกกระจายเจาะทะลุขนาดใหญ่ใส่เป้าหมายศัตรู ล้อขนาดยักษ์สามารถเหยียบทับสร้างความเสียหายให้กับสิ่งก่อสร้างศัตรูได้ +unit.conquer.description = ระดมสาดกระสุนเจาะทะลุในแนวตรงใส่เป้าหมายศัตรู ล้อขนาดยักษ์สามารถเหยียบทับสร้างความเสียหายให้กับสิ่งก่อสร้างศัตรูได้ +unit.merui.description = ยิงกระสุนปืนใหญ่พิสัยไกลใส่เป้าหมายศัตรูพื้นดิน สามารถเหยียบข้ามกำแพงได้ +unit.cleroi.description = ยิงกระสุนหนักคู่ใส่เป้าหมายศัตรู ทำลายกระสุนของศัตรูด้วยปืนป้องกันจุด สามารถเหยียบข้ามกำแพงได้ +unit.anthicus.description = ยิงขีปนาวุธติดตามตัวพิสัยไกลใส่เป้าหมายศัตรู สามารถเหยียบข้ามกำแพงได้ +unit.tecta.description = ยิงกระสุนพลาสม่าติดตามตัวใส่เป้าหมายศัตรู ป้องกันตัวเองด้วยโล่พลังงานแบบโค้ง สามารถเหยียบข้ามกำแพงได้ +unit.collaris.description = ยิงกระสุนปืนใหญ่แตกกระจายพิสัยไกลใส่เป้าหมายศัตรู สามารถเหยียบข้ามกำแพงได้ +unit.elude.description = ยิงกระสุนติดตามตัวคู่ใส่เป้าหมายศัตรู สามารถลอยตัวเหนือผิวน้ำได้ +unit.avert.description = ยิงกระสุนหมุนวนคู่ใส่เป้าหมายศัตรู +unit.obviate.description = ยิงลูกแก้วสายฟ้าหมุนวนใส่เป้าหมายศัตรู +unit.quell.description = ยิงจรวดติดตามตัวใส่เป้าหมายศัตรูพื้นดิน ยับยั้งเครื่องซ่อมแซมสิ่งก่อสร้างของศัตรู +unit.disrupt.description = ยิงจรวดยับยั้งติดตามตัวใส่เป้าหมายศัตรูพื้นดิน ยับยั้งเครื่องซ่อมแซมสิ่งก่อสร้างของศัตรู +unit.evoke.description = สร้างสิ่งต่างๆ เพื่อปกป้องแกนกลางบาสเชี่ยนจากศัตรู\nซ่อมแซมสิ่งก่อสร้างด้วยลำแสงฟื้นฟู +unit.incite.description = สร้างสิ่งต่างๆ เพื่อปกป้องแกนกลางซิทาเดลจากศัตรู\nซ่อมแซมสิ่งก่อสร้างด้วยลำแสงฟื้นฟู +unit.emanate.description = สร้างสิ่งต่างๆ เพื่อปกป้องแกนกลางอะโครโพลิสจากศัตรู\nซ่อมแซมสิ่งก่อสร้างด้วยลำแสงฟื้นฟู lst.read = อ่านเลขจากเซลล์ความจำที่เชื่อมต่อไว้ lst.write = เขียนเลขไปยังเซลล์ความจำที่เชื่อมต่อไว้ -lst.print = เพิ่มข้อความไปยังคิวข้อความ\nข้อความจะยังไม่แสดงจนกว่าจะใช้ [accent]Print Flush[] -lst.draw = เพิ่มรูปไปยังคิวการวาด\nจะภาพยังไม่แสดงจนกว่าจะใช้ [accent]Draw Flush[] -lst.drawflush = ปล่อยคิว[accent]วาด[]ไปยังหน้าจอลอจิกที่เชื่อมต่อไว้ -lst.printflush = ปล่อยคิว[accent]ปริ้น[]ไปยังตัวเก็บข้อความที่เชื่อมต่อไว้ -lst.getlink = รับลิงค์จากตัวประมวลผลตามดัชนี เริ่มที่ 0 +lst.print = เพิ่มข้อความไปยังคิวข้อความ\nข้อความจะยังไม่แสดงจนกว่าจะใช้คำสั่ง [accent]Print Flush[] +lst.draw = เพิ่มรูปไปยังคิวการวาด\nภาพจะยังไม่แสดงจนกว่าจะใช้คำสั่ง [accent]Draw Flush[] +lst.drawflush = ปล่อยคิว [accent]Draw[] ไปยังหน้าจอลอจิกที่เชื่อมต่อไว้ +lst.printflush = ปล่อยคิว [accent]Print[] ไปยังตัวเก็บข้อความที่เชื่อมต่อไว้ +lst.getlink = รับลิงค์จากตัวประมวลผลตามดัชนี เริ่มต้นที่ 0 lst.control = ควบคุมสิ่งก่อสร้าง -lst.radar = เรดาร์หายูนิตที่อยู่รอบๆ สิ่งก่อสร้าง โดยระยะการตรวจสอบขึ้นอยู่กับระยะสิ่งก่อสร้าง +lst.radar = เรดาร์หายูนิตที่อยู่รอบๆ สิ่งก่อสร้าง โดยระยะการตรวจสอบขึ้นอยู่กับระยะของสิ่งก่อสร้าง lst.sensor = รับข้อมูลจากสิ่งก่อสร้างหรือยูนิต lst.set = ตั้งตัวแปร lst.operation = ทำการดำเนินการกับ 1-2 ตัวแปร lst.end = ย้อนกลับไปยังด้านบนสุดของชุดคำสั่ง lst.wait = รอเวลาเป็นวินาที -lst.stop = Halt execution of this processor. +lst.stop = หยุดยั้งการทำงานของตัวประมวลผล lst.lookup = ค้นหาชนิดไอเท็ม/ของเหลว/ยูนิต/บล็อกตาม ID\nสามารถหาจำนวนนับทั้งหมดของแต่ละชนิดได้ด้วย:\n[accent]@unitCount[] / [accent]@itemCount[] / [accent]@liquidCount[] / [accent]@blockCount[] lst.jump = ข้ามไปยังจุดต่างๆ โดยมีเงื่อนไข -lst.unitbind = เลือกยูนิตถัดไปเป็นชนิด และเก็บค่าไว้ใน [accent]@unit[] +lst.unitbind = เลือกยูนิตถัดไปเป็นชนิด และเก็บค่าไว้ในตัวแปร [accent]@unit[] lst.unitcontrol = ควบคุมยูนิตที่เลือกไว้ lst.unitradar = ค้นหายูนิตรอบๆ ยูนิตที่เลือกไว้ lst.unitlocate = ค้นหาตำแหน่ง/สิ่งก่อสร้างเฉพาะอย่างที่ใดก็ได้บนแผนที่\nต้องมียูนิตที่เลือกไว้ -lst.getblock = รับข้อมูลของช่องที่ตำแหน่งไหนก็ได้ -lst.setblock = ปรับแต่งข้อมูลของช่องที่ตำแหน่งไหนก็ได้ -lst.spawnunit = เสกยูนิตที่ตำแหน่งที่กำหนดไว้ +lst.getblock = รับข้อมูลของช่องที่ตำแหน่งใดๆ +lst.setblock = ปรับแต่งข้อมูลของช่องที่ตำแหน่งใดๆ +lst.spawnunit = เสกยูนิตมาที่ตำแหน่งที่กำหนดไว้ lst.applystatus = ใส่หรือล้างเอฟเฟกต์สถานะจากยูนิต -lst.spawnwave = จำลองคลื่นที่ตำแหน่งไหนก็ได้\nจะไม่เพิ่มจำนวนคลื่นในสถิติ +lst.spawnwave = จำลองคลื่นที่ตำแหน่งใดๆ\nจะไม่เพิ่มจำนวนคลื่นในสถิติ lst.explosion = เสกระเบิดที่ตำแหน่ง -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 = แพ็ค [0, 1] ส่วนประกอบ RGBA มาเป็นเลขบรรทัดเดียวสำหรับวาดหรือตั้งค่ากฎ +lst.setrate = ตั้งค่าความเร็วการสั่งเป็นคำสั่งใน คำสั่ง/ติก +lst.fetch = ค้นหายูนิต แกนกลาง ผู้เล่น หรือสิ่งก่อสร้างตามดัชนี\nดัชนีเริ่มที่ 0 และจบที่ค่าที่ส่งกลับ +lst.packcolor = แพ็ค [0, 1] ส่วนประกอบ RGBA มาเป็นเลขบรรทัดเดียวสำหรับการวาดหรือตั้งค่ากฎ lst.setrule = ตั้งค่ากฎของเกม lst.flushmessage = แสดงข้อความบนหน้าจอจากบัฟเฟอร์ข้อความ\nจะรอจนกว่าข้อความก่อนหน้าจะเสร็จสิ้น lst.cutscene = ควบคุมมุมกล้องของผู้เล่น lst.setflag = เซ็ตธงทั่วโลกที่ตัวประมวลผลทุกตัวสามารถอ่านค่าได้ -lst.getflag = เช็กว่าธงทั่วโลกนั้นเซ็ตอยู่รึเปล่า +lst.getflag = เช็กว่าธงทั่วโลกนั้นได้ถูกเซ็ตอยู่รึเปล่า +lst.setprop = ตั้งค่าคุณสมบัติของยูนิตและสิ่งก่อสร้าง logic.nounitbuild = [red]ไม่อนุญาตให้ใช้ลอจิกควบคุมให้ยูนิตสร้างที่นี่ -lenum.type = ชนิดของสิ่งก่อสร้าง/ยูนิต\nอย่างเช่น เร้าเตอร์ทุกตัวจะส่งว่า [accent]@router[]\nไม่ใช่สตริง +lenum.type = ชนิดของสิ่งก่อสร้าง/ยูนิต\nอย่างเช่น เร้าเตอร์ทุกตัวจะส่งกลับว่า [accent]@router[]\nไม่ใช่ค่าสตริง lenum.shoot = ยิงไปที่ตำแหน่งเป้าหมาย lenum.shootp = ยิงเป้าหมายโดยมีการคำนวณการยิง lenum.config = การกำหนดค่าของสิ่งก่อสร้าง เช่น ไอเท็มของเครื่องคัดแยก lenum.enabled = ว่าบล็อกเปิดใช้งาน/ทำงานอยู่หรือเปล่า laccess.color = สีของตัวเปล่งแสง -laccess.controller = ผู้ควบคุมยูนิต ถ้าผู้ควบคุมคือตัวประมวลผล จะส่งกลับว่า processor\nถ้าเป็นผู้สั่งการรูปแบบ จะส่งกลับว่า leader\nนอกนั้น จะส่งตัวยูนิตเอง -laccess.dead = ว่าสิ่งก่อสร้าง/ยูนิตตายแล้วหรือใช้ไม่ได้แล้ว -laccess.controlled = จะส่งกลับ:\n[accent]@ctrlProcessor[] ถ้าผู้ควบคุมคือตัวประมวลผลลอจิก\n[accent]@ctrlPlayer[] ถ้าสิ่งก่อสร้าง/ยูนิตถูกควบคุมโดยผู้เล่น\n[accent]@ctrlFormation[] ถ้ายูนิตถูกสั่งการให้อยู่เป็นรูปแบบอยู่\nนอกนั้น 0 -laccess.progress = ความคืบหน้าการดำเนินการจาก 0 ถึง 1\nจะส่งกลับ production หรือ turret reload หรือ construction progress -laccess.speed = ความเร็วสูงสุดของยูนิตใน ช่อง/วินาที +laccess.controller = ผู้ควบคุมยูนิต ถ้าผู้ควบคุมคือตัวประมวลผล จะส่งกลับค่า processor\nนอกนั้น จะส่งกลับค่าตัวยูนิตเอง +laccess.dead = ว่าสิ่งก่อสร้าง/ยูนิตนั้นตายแล้วหรือใช้งานไม่ได้แล้ว +laccess.controlled = จะส่งกลับ:\n[accent]@ctrlProcessor[] ถ้าผู้ควบคุมคือตัวประมวลผลลอจิก\n[accent]@ctrlPlayer[] ถ้าสิ่งก่อสร้าง/ยูนิตถูกควบคุมโดยผู้เล่น\n[accent]@ctrlCommand[] ถ้ายูนิตถูกสั่งการโดยผู้เล่นอยู่\nนอกนั้น 0 +laccess.progress = ความคืบหน้าการดำเนินการจาก 0 ถึง 1\nจะส่งกลับค่าการผลิต การรีโหลดของป้อมปืน หรือความคืบหน้าในการสร้างสิ่งก่อสร้าง +laccess.speed = ความเร็วสูงสุดของยูนิตในหน่วย ช่อง/วินาที lcategory.unknown = ไม่ทราบ -lcategory.unknown.description = คำสั่งที่ไม่อยู่ในหมวดหมู่ใดเลย +lcategory.unknown.description = คำสั่งที่ไม่อยู่ในหมวดหมู่ใดๆเลย lcategory.io = นำเข้า & ส่งออก lcategory.io.description = เปลี่ยนค่าบล็อกความจำและนำเข้าหรือส่งออกคำสั่งจากตัวประมวลผล lcategory.block = ควบคุมบล็อก @@ -2233,13 +2258,13 @@ lcategory.operation.description = ปฏิบัติการทางลอ lcategory.control = ควบคุมลำดับคำสั่ง lcategory.control.description = ควบคุมลำดับการสั่งการของคำสั่ง lcategory.unit = ควบคุมยูนิต -lcategory.unit.description = ควบคุมยูนิตด้วยคำสั่ง +lcategory.unit.description = ควบคุมยูนิตด้วยคำสั่งต่างๆ lcategory.world = โลก lcategory.world.description = ควบคุมสภาวะและพฤติกรรมของโลก graphicstype.clear = เติมจอแสดงผลด้วยสี graphicstype.color = ตั้งค่าสีสำหรับการวาดครั้งต่อไป -graphicstype.col = เหมือนกับ color แต่แพ็คมาแล้ว\nสีที่แพ็คจะถูกเขีนเป็นรหัสฐานสิบหกและจะมีอักษรขึ้นต้นเป็น [accent]%[]\nตัวอย่าง: [accent]%ff0000[] (สีแดง) +graphicstype.col = เหมือนกับคำสั่ง color แต่มีการแพ็ค\nสีที่แพ็คจะถูกเขียนเป็นรหัสฐานสิบหกและจะมีอักษรขึ้นต้นเป็น [accent]%[]\nตัวอย่าง: [accent]%ff0000[] (สีแดง) graphicstype.stroke = ตั้งค่าความกว้างของเส้น graphicstype.line = วาดส่วนของเส้นตรง graphicstype.rect = เติมรูปเหลี่ยม @@ -2251,11 +2276,11 @@ graphicstype.image = วาดรูปสิ่งต่างๆ \nตัว lenum.always = เป็นจริงเสมอ lenum.idiv = หารจำนวนเต็ม -lenum.div = หาร\nจะให้[accent]ค่าว่าง[] หากหารศูนย์ +lenum.div = หาร\nจะส่งกลับ[accent]ค่าว่าง[] หากหารศูนย์ lenum.mod = โมดูโล่ (หารหาเศษ) -lenum.equal = เท่ากับ บังคับประเภท\nสิ่งที่ไม่ใช่ค่าว่างเมื่อเทียบกับตัวเลขจะเป็น 1 นอกนั้น 0 +lenum.equal = เท่ากับ แบบบังคับประเภท\nสิ่งที่ไม่ใช่ค่าว่างเมื่อเทียบกับตัวเลขจะให้ค่า 1 นอกนั้นจะให้ค่า 0 lenum.notequal = ไม่เท่ากับ บังคับประเภท -lenum.strictequal = เท่ากับที่เข้มงวด ไม่บังคับประเภท\nใช้ตรวจสอบหา[accent]ค่าว่าง[]ได้ +lenum.strictequal = เท่ากับที่เข้มงวด ไม่บังคับประเภท\nสามารถใช้ตรวจสอบหา[accent]ค่าว่าง[]ได้ lenum.shl = เลื่อนบิตไปทางซ้าย lenum.shr = เลื่อนบิตไปทางขวา lenum.or = หรือ แบบบิต @@ -2280,14 +2305,14 @@ lenum.atan = อาร์คแทนเจนต์ หน่วยเป็น #not a typo, look up 'range notation' lenum.rand = สุ่มทศนิยมในช่วง [0, ค่า) lenum.log = ลอการิทึมธรรมชาติ (ln) -lenum.log10 = ลอการิทึมฐาน 10 -lenum.noise = นอยส์ 2D ซิมเพล็กซ์ +lenum.log10 = ลอการิทึมฐานสิบ +lenum.noise = นอยส์ซิมเพล็กซ์สองมิติ lenum.abs = ค่าสัมบูรณ์ -lenum.sqrt = สแควร์รูด +lenum.sqrt = สแควร์รูท -lenum.any = ยูนิตอะไรก็ได้ -lenum.ally = ยูนิตพวกพ้อง -lenum.attacker = ยูนิตติดอาวุธ +lenum.any = ยูนิตใดๆ +lenum.ally = ยูนิตพันธมิตร +lenum.attacker = ยูนิตที่มีอาวุธ lenum.enemy = ยูนิตศัตรู lenum.boss = ยูนิตผู้พิทักษ์ lenum.flying = ยูนิตอากาศ @@ -2302,26 +2327,26 @@ lenum.building = สิ่งก่อสร้างเฉพาะกลุ่ lenum.core = แกนกลาง lenum.storage = บล็อกเก็บของ เช่น ตู้นิรภัย lenum.generator = สิ่งก่อสร้างที่ผลิตพลังงาน -lenum.factory = สิ่งก่อสร้างที่เปลี่ยนสิ่งหนึ่งเป็นอีกสิ่งหนึ่ง -lenum.repair = จุดซ่อมแซมหรือป้อมซ่อมแซมยูนิต -lenum.battery = แบตเตอรี่อะไรก็ได้ -lenum.resupply = จุดเติมของ\nจะใช้งานได้ต่อเมื่อ [accent]"ยูนิตต้องใช้กระสุน"[] เปิดอยู่ -lenum.reactor = เตาปฏิกรณ์อิมแพค/ทอเรี่ยม -lenum.turret = ป้อมปืนอะไรก็ได้ +lenum.factory = สิ่งก่อสร้างที่ผลิตทรัพยากร +lenum.repair = สิ่งก่อสร้างที่ซ่อมแซมยูนิต +lenum.battery = แบตเตอรี่ใดๆ +lenum.resupply = จุดเติมกระสุน\nจะใช้งานได้ต่อเมื่อ [accent]"ยูนิตต้องใช้กระสุน"[] เปิดอยู่ +lenum.reactor = เตาปฏิกรณ์ใดๆ +lenum.turret = ป้อมปืนใดๆ sensor.in = สิ่งก่อสร้าง/ยูนิตให้ตรวจวัด radar.from = สิ่งก่อสร้างที่จะใช้ในการค้นหา\nระยะเซนเซอร์จะขึ้นอยู่กับระยะของสิ่งก่อสร้าง radar.target = ตัวกรองในการหายูนิต radar.and = ตัวกรองเพิ่มเติม -radar.order = เรียงลำดับคำสั่ง\n0 เพื่อย้อนกลับ +radar.order = เรียงลำดับคำสั่ง\n0 เพื่อเรียงย้อนกลับ radar.sort = เมตริกเพื่อจัดเรียงผลลัพย์ตาม radar.output = ตัวแปรของยูนิตที่มองหา unitradar.target = ตัวกรองในการหายูนิต unitradar.and = ตัวกรองเพิ่มเติม unitradar.order = เรียงลำดับคำสั่ง\n0 เพื่อเรียงย้อนกลับ -unitradar.sort = เมตริกเพื่อจัดเรียงผลลัพย์ตาม +unitradar.sort = เมตริกเพื่อจัดเรียงผลลัพธ์ตาม unitradar.output = ตัวแปรของยูนิตที่มองหา control.of = สิ่งก่อสร้างให้ควบคุม @@ -2329,7 +2354,7 @@ control.unit = ยูนิต/สิ่งก่อสร้างที่จ control.shoot = ว่าจะยิงหรือไม่ unitlocate.enemy = ว่าจะหาสิ่งก่อสร้างศัตรูหรือไม่ -unitlocate.found = ตัวแปรว่าพบเจอหรือไม่\nจะส่งกลับว่า true หากเจอสิ่งก่อสร้าง +unitlocate.found = ตัวแปรว่าพบเจอหรือไม่\nจะส่งกลับว่า true หากพบสิ่งก่อสร้าง unitlocate.building = ตัวแปรสิ่งก่อสร้างที่มองหา unitlocate.outx = ตัวแปรพิกัด X unitlocate.outy = ตัวแปรพิกัด Y @@ -2340,9 +2365,9 @@ lenum.stop = หยุดขยับ/ขุด/ก่อสร้าง lenum.unbind = ยกเลิกการควบคุมลอจิกทั้งหมด\nเปลี่ยนเป็น AI ธรรมดาต่อ lenum.move = ขยับไปที่ตำแหน่งที่กำหนดไว้ lenum.approach = เข้าใกล้ตำแหน่งโดยกำหนดระยะห่าง -lenum.pathfind = ใช้ AI ปกติเดินทางไปหาแกนกลางศัตรู +lenum.pathfind = ขยับไปที่ตำแหน่งที่กำหนดไว้ โดยมีการคำนวณเพื่อเลี่ยงสิ่งกีดขวาง lenum.target = ยิงไปที่ตำแหน่งเป้าหมาย -lenum.targetp = ยิงที่เป้าหมายโดยมีการคำนวณความเร็ว +lenum.targetp = ยิงไปที่เป้าหมาย โดยมีการคำนวณความเร็ว lenum.itemdrop = ปล่อยไอเท็ม lenum.itemtake = หยิบไอเท็มจากสิ่งก่อสร้าง lenum.paydrop = วางสิ่งที่บรรทุกอยู่ @@ -2351,9 +2376,10 @@ lenum.payenter = เข้าไป/ลงจอดบนบล็อกบร lenum.flag = ปักธงยูนิตเป็นหมายเลข lenum.mine = ขุดที่ตำแหน่งเป้าหมาย lenum.build = สร้างสิ่งก่อสร้าง -lenum.getblock = ดึงข้อมูลสิ่งก่อสร้างและประเภทสิ่งก่อสร้างที่ตำแหน่งเป้าหมาย\nหน่วยต้องอยู่ในช่วงของตำแหน่ง\nของแข็งที่ไม่ใช่สิ่งก่อสร้างจะส่งกลับเป็น [accent]@solid[] +lenum.getblock = ดึงข้อมูลสิ่งก่อสร้างและประเภทของสิ่งก่อสร้างที่ตำแหน่งเป้าหมาย\nหน่วยต้องอยู่ในช่วงของตำแหน่ง\nบล็อกตันที่ไม่ใช่สิ่งก่อสร้างจะส่งกลับเป็น [accent]@solid[] lenum.within = ตรวจสอบว่ายูนิตอยู่ในระยะหรือไม่ lenum.boost = เริ่ม/หยุดการบูสต์ -onset.commandmode = กด [accent]shift[] ค้างเพื่อเข้าสู่[accent]โหมดสั่งการ[]\n[accent]คลิ๊กซ้ายและลาก[]เพื่อเลือกยูนิต\n[accent]คลิ๊กขวา[]เพื่อสั่งการให้ยูนิตขยับหรือโจมตี -onset.commandmode.mobile = กดปุ่ม[accent]สั่งการ[]เพื่อเข้าสู่[accent]โหมดสั่งการ[]\nวางนิ้วค้าง แล้ว[accent]ลาก[]เพื่อเลือกยูนิต\n[accent]แตะ[]เพื่อสั่งการให้ยูนิตขยับหรือโจมตี +#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. diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index ead457d4db..eeab973e54 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -454,6 +454,8 @@ waves.sort.reverse = Reverse Sort waves.sort.begin = Begin waves.sort.health = Health waves.sort.type = Type +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Hide All waves.units.show = Show All @@ -876,6 +878,7 @@ stat.repairspeed = Repair Speed stat.weapons = Weapons stat.bullet = Bullet stat.moduletier = Module Tier +stat.unittype = Unit Type stat.speedincrease = Speed Increase stat.range = Range stat.drilltier = Kazilabilirler @@ -969,6 +972,8 @@ bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles bullet.incendiary = [stat]incendiary bullet.homing = [stat]homing bullet.armorpierce = [stat]armor piercing +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x frag bullets: bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage bullet.buildingdamage = [stat]{0}%[lightgray] building damage @@ -1082,8 +1087,8 @@ setting.bridgeopacity.name = Bridge Opacity setting.playerchat.name = Display In-Game Chat setting.showweather.name = Show Weather Graphics setting.hidedisplays.name = Hide Logic Displays -public.confirm = Do you want to make your game public?\n[accent]Anyone will be able to join your games.\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility. -public.confirm.really = If you want to play with friends, use [green]Invite Friend[] instead of a [scarlet]Public server[]!\nAre you sure you want to make your game [scarlet]public[]? +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 = Note that beta versions of the game cannot make public lobbies. uiscale.reset = UI scale has been changed.\nPress "OK" to confirm this scale.\n[scarlet]Reverting and exiting in[accent] {0}[] settings... uiscale.cancel = Cancel & Exit @@ -1210,6 +1215,7 @@ rules.buildcostmultiplier = Build Cost Multiplier rules.buildspeedmultiplier = Build Speed Multiplier rules.deconstructrefundmultiplier = Deconstruct Refund Multiplier rules.waitForWaveToEnd = Waves wait for enemies +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Drop Zone Radius:[lightgray] (tiles) rules.unitammo = Units Require Ammo rules.enemyteam = Enemy Team @@ -2187,6 +2193,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w 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. +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]Unit building logic is not allowed here. lenum.type = Type of building/unit.\ne.g. for any router, this will return [accent]@router[].\nNot a string. lenum.shoot = Shoot at a position. diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index df1a964f79..94c4f1f4de 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -458,6 +458,8 @@ waves.sort.reverse = Ters Sırala waves.sort.begin = Başla waves.sort.health = Can waves.sort.type = Tür +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Hepsini Gizle waves.units.show = Hepsini Göster @@ -887,6 +889,7 @@ stat.repairspeed = Tamir Hızı stat.weapons = Silahlar stat.bullet = Mermi stat.moduletier = Modül Seviyesi +stat.unittype = Unit Type stat.speedincrease = Hız Artışı stat.range = Menzil stat.drilltier = Kazılabilenler @@ -980,6 +983,8 @@ bullet.splashdamage = [stat]{0} [lightgray]alan hasarı ~[stat] {1} [lightgray]k bullet.incendiary = [stat]yakıcı bullet.homing = [stat]güdümlü bullet.armorpierce = [stat]zırh delici +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x parçalı mermiler: bullet.lightning = [stat]{0}[lightgray]x elektrik ~ [stat]{1}[lightgray] hasarı bullet.buildingdamage = [stat]{0}%[lightgray] inşaa hasarı @@ -1093,8 +1098,8 @@ setting.bridgeopacity.name = Köprü Opaklığı setting.playerchat.name = Oyun-içi Konuşmayı Göster setting.showweather.name = Hava Durmu Grafiklerini Göster setting.hidedisplays.name = İşlemci İpuçlarını Gizle -public.confirm = Oyununuzu halka açık yapmak ister misiniz?\n[accent]Oyunlarınıza herkes katılabilecektir.\n[lightgray]Bu seçenek daha sonra Ayarlar->Oyun->Halka Açık Oyunlar'dan değiştirilebilir. -public.confirm.really = Eğer Arkadaşlarınla oynamak istiyorsan [green]Arkadaş Davet Et[] e bas. [scarlet]Halka Açık Sunucuya Değil[]!\nOyununu Gerçekten Halka açık yapmak istediğine [scarlet]Emin Misin[]? +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 = Oyunun beta sürümlerinin halka açık lobiler yapamayacağını unutmayın. uiscale.reset = Arayüz ölçeği değiştirildi.\nBu ölçeği onaylamak için "Tamam" butonuna basın.\n[accent] {0}[] [scarlet]saniye içinde eski ayarlara geri dönülüp oyundan çıkılıyor…[] uiscale.cancel = İptal Et ve Çık @@ -1221,6 +1226,7 @@ rules.buildcostmultiplier = İnşa Ücreti Çarpanı rules.buildspeedmultiplier = İnşa Hızı Çarpanı rules.deconstructrefundmultiplier = Yıkım İade Çarpanı rules.waitForWaveToEnd = Dalgalar Düşmanı Bekler +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = İniş Noktası Yarıçapı: [lightgray](kare) rules.unitammo = Birlikler Mermi Gerektirir rules.enemyteam = Düşman Takım @@ -2206,6 +2212,7 @@ lst.flushmessage = Ekranda bir yazı göster.\nBir önceki yazı kaybolana kadar lst.cutscene = Oyuncu Kamerasını hareket ettir. lst.setflag = Tüm İşlemciler tarafından okunabilen bir Numara İşaretle. lst.getflag = Evrensel İşaretli Numara Oku. +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]Birim İnşası Yasak! diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index 2ddee55a5e..5c439f40c1 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -150,15 +150,16 @@ mod.incompatiblemod = [red]Несумісно mod.blacklisted = [red]Не підтримується mod.unmetdependencies = [red]Відсутні залежності mod.erroredcontent = [scarlet]Помилки під час завантаження -mod.circulardependencies = [red]Circular Dependencies -mod.incompletedependencies = [red]Incomplete Dependencies -mod.requiresversion.details = Необхідна версія гри: [accent]{0}[]\nВаша гра застаріла. Мод потребує новішу версію гри (можливо бета- чи альфа-версію) для роботи.mod.outdatedv7.details = Ця модифікація не сумісна з останньою версією гри. Розробник модифікації має оновити її та додати [accent]minGameVersion: 136[] у свій [accent]mod.json[] файл. -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.circulardependencies = [red]Кругові залежності +mod.incompletedependencies = [red]Неповні залежності +mod.requiresversion.details = Необхідна версія гри: [accent]{0}[]\nВаша гра застаріла. Мод потребує новішу версію гри (можливо бета- чи альфа-версію) для роботи. +mod.outdatedv7.details = Ця модифікація не сумісна з останньою версією гри. Розробник модифікації має оновити її та додати [accent]minGameVersion: 136[] у свій [accent]mod.json[] файл. mod.blacklisted.details = Цю модифікацію було вручну внесено у чорний список за постійні збої або інші проблеми з цією версією гри. Не використовуйте її. -mod.missingdependencies.details = This mod is missing dependencies: {0} +mod.missingdependencies.details = У цій модифікації відсутні наступні залежності: {0} mod.erroredcontent.details = Ця модифікація спричинила помилки при завантаженні. Попросіть автора виправити їх. -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.circulardependencies.details = Цей мод має залежності, які залежать одна від одної. +mod.incompletedependencies.details = Цей мод неможливо завантажити через недійсні або відсутні залежності: {0} mod.requiresversion = Необхідна версія гри: [red]{0} mod.errors = Виникли помилки під час завантаження змісту. mod.noerrorplay = [red]Ви маєте модифікації з помилками.[] Або вимкніть проблемні модифікації, або виправте їх. @@ -293,7 +294,7 @@ server.invalidport = Недійсний номер порту! server.error = [crimson]Помилка створення сервера. save.new = Нове збереження save.overwrite = Ви дійсно хочете перезаписати це місце збереження? -save.nocampaign = Individual save files from the campaign cannot be imported. +save.nocampaign = Окремі файли збереження з кампанії не можна імпортувати. overwrite = Перезаписати save.none = Збережень не знайдено! savefail = Не вдалося зберегти гру! @@ -336,7 +337,7 @@ command.repair = Ремонтувати command.rebuild = Відбудовувати command.assist = Допомагати гравцеві command.move = Рухатися -command.boost = Boost +command.boost = Летіти openlink = Перейти за посиланням copylink = Скопіювати посилання back = Назад @@ -459,6 +460,8 @@ waves.sort.reverse = Зворотне сортування waves.sort.begin = Хвилями waves.sort.health = Здоров’ям waves.sort.type = Типом +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Сховати все waves.units.show = Показати все @@ -661,7 +664,7 @@ resources.max = Максимум bannedblocks = Заборонені блоки objectives = Завдання bannedunits = Заборонені одиниці -rules.hidebannedblocks = Приховати заборені блоки +rules.hidebannedblocks = Приховати заборонені блоки bannedunits.whitelist = Заборонені одиниці як білий список bannedblocks.whitelist = Заборонені блоки як білий список addall = Додати все @@ -897,6 +900,7 @@ stat.repairspeed = Швидкість відновлення stat.weapons = Зброя stat.bullet = Кулі stat.moduletier = Рівень модуля +stat.unittype = Тип одиниці stat.speedincrease = Збільшення швидкості stat.range = Радіус дії stat.drilltier = Видобуває @@ -948,8 +952,8 @@ ability.statusfield = {0} Поле підсилення ability.unitspawn = Завод одиниць «{0}» ability.shieldregenfield = Щитовідновлювальне поле ability.movelightning = Блискавки під час руху -ability.shieldarc = Shield Arc -ability.suppressionfield = Regen Suppression Field +ability.shieldarc = Щитова дуга +ability.suppressionfield = Поле пригнічення відновлення ability.energyfield = Енергетичне поле: [accent]{0}[] шкоди ~ [accent]{1}[] блоків / [accent]{2}[] цілей bar.onlycoredeposit = Передача предметів дозволена лише до ядра @@ -990,9 +994,11 @@ bullet.splashdamage = [stat]{0}[lightgray] шкода по ділянці ~[stat bullet.incendiary = [stat]запальний bullet.homing = [stat]самонаведення bullet.armorpierce = [stat]бронебійність +bullet.suppression = [stat]{0}[lightgray] сек. пригнічення відновлення ~ [stat]{1}[lightgray] плит. +bullet.interval = [stat]{0} за сек. [lightgray] період між кулями: bullet.frags = [stat]{0}[lightgray]x шкода по ділянці від снарядів: bullet.lightning = [stat]{0}[lightgray]x блискавки ~ [stat]{1}[lightgray] шкоди -bullet.buildingdamage = [stat]{0}%[lightgray] шкода по будівлям +bullet.buildingdamage = [stat]{0}%[lightgray] шкода по будівлях bullet.knockback = [stat]{0}[lightgray] відкидання bullet.pierce = [stat]{0}[lightgray]x пробиття bullet.infinitepierce = [stat]пробиття @@ -1039,7 +1045,7 @@ setting.blockreplace.name = Пропонування щодо автоматич setting.linear.name = Лінійна фільтрація setting.hints.name = Підказки setting.logichints.name = Підказки при роботі з логікою -setting.backgroundpause.name = Пауза в разі згортанні +setting.backgroundpause.name = Пауза в разі згортання setting.buildautopause.name = Автоматичне призупинення будування setting.doubletapmine.name = Подвійне швидке натискання для початку видобутку setting.commandmodehold.name = Утримуйте для переходу в режим командування @@ -1103,8 +1109,8 @@ setting.bridgeopacity.name = Непрозорість мостів setting.playerchat.name = Показувати хмару чата над гравцями setting.showweather.name = Показувати погоду setting.hidedisplays.name = Приховувати логічні дисплеї -public.confirm = Ви хочете зробити цю гру загальнодоступною?\n[accent]Будь-хто може приєднатися до вашої гри.\n[lightgray]Це можна змінити в Налаштування->Гра->Загальнодоступність гри. -public.confirm.really = Якщо ви хочете грати з друзями, використовуйте [green]Запросити друзів[] замість [scarlet]Публічного сервера[]!\nВи справді хочете зробити свою гру [scarlet]публічною[]? +steam.friendsonly = Лише друзі +steam.friendsonly.tooltip = Чи лише друзі Steam зможуть приєднатися до вашої гри.Якщо зняти цей прапорець, ваша гра стане загальнодоступною – будь-хто зможе приєднатися. public.beta = Зауважте, що в бета-версії гри ви не можете робити публічні ігри. uiscale.reset = Масштаб користувацького інтерфейсу було змінено.\nНатисніть «Гаразд» для підтвердження цього масштабу.\n[scarlet]Повернення налаштувань і вихід через[accent] {0}[] секунд… uiscale.cancel = Скасувати й вийти @@ -1157,7 +1163,7 @@ keybind.diagonal_placement.name = Діагональне розміщення keybind.pick.name = Вибрати блок keybind.break_block.name = Зламати блок keybind.select_all_units.name = Вибрати всі одиниці -keybind.select_all_unit_factories.name = Вибрати всі заводи зі створення одиниць +keybind.select_all_unit_factories.name = Вибрати всі заводи одиниць keybind.deselect.name = Скасувати keybind.pickupCargo.name = Взяти вантаж keybind.dropCargo.name = Скинути вантаж @@ -1219,7 +1225,7 @@ rules.unitbuildspeedmultiplier = Множник швидкості виробн rules.unitcostmultiplier = Множник вартості одиниць rules.unithealthmultiplier = Множник здоров’я бойових одиниць rules.unitdamagemultiplier = Множник шкоди бойових одиниць -rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier +rules.unitcrashdamagemultiplier = Множник шкоди одиниці при зіткненні одиниць rules.solarmultiplier = Множник сонячної енергії rules.unitcapvariable = Ядра збільшують обмеження на кількість одиниць rules.unitcap = Початкове обмеження одиниць @@ -1231,6 +1237,7 @@ rules.buildcostmultiplier = Множник затрат на будування rules.buildspeedmultiplier = Множник швидкості будування rules.deconstructrefundmultiplier = Множник відшкодування в разі демонтажу rules.waitForWaveToEnd = Хвилі чекають на завершення попередньої +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Радіус зони висадки:[lightgray] (плитки) rules.unitammo = Бойові одиниці потребують боєприпасів rules.enemyteam = Ворожа команда @@ -1578,17 +1585,17 @@ block.silicon-crucible.name = Кремнієвий тигель block.overdrive-dome.name = Великий прискорювач block.interplanetary-accelerator.name = Міжпланетний прискорювач block.constructor.name = Конструктор -block.constructor.description = Збирає споруди. Доступні розміри для збирання: 1x1, 2x2. +block.constructor.description = Англійська назва: Constructor\nЗбирає споруди. Доступні розміри для збирання: 1x1, 2x2. block.large-constructor.name = Великий конструктор -block.large-constructor.description = Збирає споруди. Доступні розміри для збирання: 1x1, 2x2, 3x3 та 4x4. +block.large-constructor.description = Англійська назва: Large Constructor\nЗбирає споруди. Доступні розміри для збирання: 1x1, 2x2, 3x3 та 4x4. block.deconstructor.name = Деконструктор -block.deconstructor.description = Деконструює споруди та одиниці. Повертає 100% вартості збірки. +block.deconstructor.description = Англійська назва: Deconstructor\nДеконструює споруди та одиниці. Повертає 100% вартості збірки. block.payload-loader.name = Вантажний завантажувач -block.payload-loader.description = Завантажує рідини та предмети в блоки. +block.payload-loader.description = Англійська назва: Payload Loader\nЗавантажує рідини та предмети в блоки. block.payload-unloader.name = Вантажний розвантажувач -block.payload-unloader.description = Розвантажує рідини та предмети з блоків. +block.payload-unloader.description = Англійська назва: Payload Unloader\nРозвантажує рідини та предмети з блоків. block.heat-source.name = Джерело тепла -block.heat-source.description = Блок, що нескінченно виробляє тепло. +block.heat-source.description = Англійська назва: Heat Source\nБлок, що нескінченно виробляє тепло. #Erekir block.empty.name = Порожнеча @@ -1665,7 +1672,7 @@ block.beryllium-wall.name = Берилієва стіна block.beryllium-wall-large.name = Велика берилієва стіна block.tungsten-wall.name = Вольфрамова стіна block.tungsten-wall-large.name = Велика вольфрамова стіна -block.blast-door.name = Двері з вибухонебезпечного з’єднання +block.blast-door.name = Посилені двері block.carbide-wall.name = Карбідна стіна block.carbide-wall-large.name = Велика карбідна стіна block.reinforced-surge-wall.name = Посилена кінетична стіна @@ -1776,7 +1783,7 @@ hint.unitControl = Утримуйте [accent][[лівий Ctrl][] і [accent]н hint.unitControl.mobile = [accent][Зробіть коротке натискання двічі[], щоби контролювати союзні одиниці чи башти. hint.unitSelectControl = Для керування одиницями увійдіть в [accent]режим командування[], утримуючи [accent]лівий Shift[].\nПеребуваючи в командному режимі, натисніть і протягуйте для вибору одиниць. Натисніть [accent]ПКМ[] на позицію або ціль, щоби віддати наказ одиницям, які там знаходяться. hint.unitSelectControl.mobile = Для керування одиницями увійдіть в [accent]режим командування[], натиснувши кнопку [accent]командувати[] ліворуч знизу.\nПеребуваючи в командному режимі, зробіть довгий натиск і протягуйте для вибору одиниць. Торкніться позиції або цілі, щоби віддати наказ одиницям, які там знаходяться. -hint.launch = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the bottom right. +hint.launch = Як тільки буде зібрано достатньо ресурсів, ви зможете зробити [accent]Запуск[] за допомогою вибору найближчих секторів \ue827 [accent]мапи[] внизу праворуч. hint.launch.mobile = Як тільки буде зібрано достатньо ресурсів, ви зможете зробити [accent]Запуск[] за допомогою вибору найближчих секторів з \ue827 [accent]мапи[] у \ue88c [accent]меню[]. hint.schematicSelect = Утримуйте [accent][[F][] і тягніть, щоби вибрати блоки для їхнього подальшого копіювання і вставлення.\n\nНатисніть [accent][[СКМ][], щоби скопіювати певний тип блоку. hint.rebuildSelect = Утримуючи [accent][[B][], протягніть, щоби вибрати зруйновані проєкти блоків.\nЦе призведе до їхнього автоматичного відновлення. @@ -1805,7 +1812,7 @@ gz.research.mobile = Відкрийте \ue875 дерево технологій gz.conveyors = Дослідіть і розташуйте\uf896 [accent]конвеєри[], щоби переміщувати видобуті ресурси\nвід бурів до ядра.\n\nНатисніть і протягніть для розміщення кількох конвеєрів.\n[accent]Прокручуйте[] для обертання. gz.conveyors.mobile = Дослідіть і розташуйте \uf896 [accent]конвеєри[], щоби переміщувати видобуті ресурси\nвід бурів до ядра.\n\nУтримуйте свій палець близько секунди протягніть його для розміщення кількох конвеєрів. gz.drills = Наростіть видобуток корисних копалин.\nРозмістіть більше механічних бурів.\nВидобудьте 100 міді. -gz.lead = \uf837 [accent]Свинець[]є ще одним часто використовуваним ресурсом.\nУстановіть бури, щоби розпочати видобуток. +gz.lead = \uf837 [accent]Свинець[] є ще одним часто використовуваним ресурсом.\nУстановіть бури, щоби розпочати видобуток. gz.moveup = \ue804 Рухайтеся вперед до подальших цілей. gz.turrets = Дослідіть і розмістіть 2 \uf861 [accent]подвійні[] башти, щоби захистити ядро.\nПодвійні башти потребують \uf838 [accent]боєприпаси[] з конвеєрів. gz.duoammo = Забезпечте подвійні башти [accent]міддю[], використовуючи конвеєри. @@ -1847,353 +1854,353 @@ split.acquire = Ви повинні дістати трохи вольфраму split.build = Одиниці повинні бути перенесені на іншу сторону стіни.\nУстановіть дві [accent]великі вантажні катапульти[], по одній на кожну сторону стіни.\nУстановіть зв’язок, натиснувши на одну з них, а потім вибравши іншу. split.container = Подібно до контейнера, одиниці також можуть бути перевезені за допомогою [accent]великої вантажної катапульти[].\nРозмістіть завод, що створює одиниці, поруч з вантажною катапультою, щоби завантажити одиниць, а потім відправити їх через стіну в атаку на базу противника. -item.copper.description = Використовується у всіх типах блоків і боєприпасах. +item.copper.description = Англійська назва: Copper\nВикористовується у всіх типах блоків і боєприпасах. item.copper.details = Мідь. Напрочуд багато жил цієї руди на Серпуло. За своєю структурою слабка, якщо не зміцнена. -item.lead.description = Широко використовується в електроніці та в транспортуванні рідин. +item.lead.description = Англійська назва: Lead\nШироко використовується в електроніці та в транспортуванні рідин. item.lead.details = Інертний сплав, що широко використовується в акумуляторах.\nПримітка. Мабуть, токсичний для біологічних форм життя. Не те щоби їх тут залишилося багато… -item.metaglass.description = Використовується для розподілу чи зберігання рідини. -item.graphite.description = Використовується для боєприпасів та електричних компонентів. -item.sand.description = Використовується для виробництва інших удосконалених матеріалів. -item.coal.description = Використовується для виробництва палива і вдосконалених матеріалів. +item.metaglass.description = Англійська назва: Metaglass\nВикористовується для розподілу чи зберігання рідини. +item.graphite.description = Англійська назва: Graphite\nВикористовується для боєприпасів та електричних компонентів. +item.sand.description = Англійська назва: Sand\nВикористовується для виробництва інших удосконалених матеріалів. +item.coal.description = Англійська назва: Coal\nВикористовується для виробництва палива і вдосконалених матеріалів. item.coal.details = Виглядає скам’янілою рослинною речовиною, утвореною задовго до Сівби. -item.titanium.description = Використовується в транспортуванні будівель, бурів та в заводах. -item.thorium.description = Використовується в міцних конструкціях і як ядерне паливо. -item.scrap.description = Використовується в Плавильнях і Подрібнювачах для перероблення в інші матеріали. +item.titanium.description = Англійська назва: Titanium\nВикористовується в транспортуванні будівель, бурів та в заводах. +item.thorium.description = Англійська назва: Thorium\nВикористовується в міцних конструкціях і як ядерне паливо. +item.scrap.description = Англійська назва: Scrap\nВикористовується в Плавильнях і Подрібнювачах для перероблення в інші матеріали. item.scrap.details = Залишки старих споруд та підрозділів. -item.silicon.description = Використовується в сонячних панелях, складній електроніці та боєприпасах самонаведення для башт. -item.plastanium.description = Використовується в передових одиницях та у фрагментованих боєприпасах. -item.phase-fabric.description = Використовується в передовій електроніці й технології самовідновлення. -item.surge-alloy.description = Використовується в передовій зброї та реактивних захисних конструкціях. -item.spore-pod.description = Використовується для перетворення на нафту, вибухівку та паливо. +item.silicon.description = Англійська назва: Silicon\nВикористовується в сонячних панелях, складній електроніці та боєприпасах самонаведення для башт. +item.plastanium.description = Англійська назва: Plastanium\nВикористовується в передових одиницях та у фрагментованих боєприпасах. +item.phase-fabric.description = Англійська назва: Phase Fabric\nВикористовується в передовій електроніці й технології самовідновлення. +item.surge-alloy.description = Англійська назва: Surge Alloy\nВикористовується в передовій зброї та реактивних захисних конструкціях. +item.spore-pod.description = Англійська назва: Spore Pod\nВикористовується для перетворення на нафту, вибухівку та паливо. item.spore-pod.details = Спори. Найімовірніше, синтетична форма життя. Виділяють гази, токсичні для іншого біологічного життя. Надзвичайно загарбницька поведінка. Легкозаймисті при певних умовах. -item.blast-compound.description = Використовується в бомбах та в розривних боєприпасах. -item.pyratite.description = Використовується в запальній зброї й твердопаливних генераторах. +item.blast-compound.description = Англійська назва: Blast Compound\nВикористовується в бомбах та в розривних боєприпасах. +item.pyratite.description = Англійська назва: Pyratite\nВикористовується в запальній зброї й твердопаливних генераторах. #Erekir -item.beryllium.description = Використовується в багатьох типах будівництва та боєприпасів на Ерекірі. -item.tungsten.description = Використовується в бурах, броні та боєприпасах. Необхідний при будівництві більш досконалих конструкцій. -item.oxide.description = Використовується як теплопровідник та ізолятор для електроенергії. -item.carbide.description = Використовується у передових конструкціях, важких одиницях та боєприпасах. +item.beryllium.description = Англійська назва: Beryllium\nВикористовується в багатьох типах будівництва та боєприпасів на Ерекірі. +item.tungsten.description = Англійська назва: Tungsten\nВикористовується в бурах, броні та боєприпасах. Необхідний при будівництві більш досконалих конструкцій. +item.oxide.description = Англійська назва: Oxide\nВикористовується як теплопровідник та ізолятор для електроенергії. +item.carbide.description = Англійська назва: Carbide\nВикористовується у передових конструкціях, важких одиницях та боєприпасах. -liquid.water.description = Використовується для охолодження машин та перероблювання відходів. -liquid.slag.description = Переробляється у відокремлювачах у складові метали або розпорошується на ворогів як зброя. -liquid.oil.description = Використовується у виробництві передових матеріалів і як запальні боєприпаси. -liquid.cryofluid.description = Використовується як теплоносій у реакторах, баштах і заводах. +liquid.water.description = Англійська назва: Water\nВикористовується для охолодження машин та перероблювання відходів. +liquid.slag.description = Англійська назва: Slag\nПереробляється у відокремлювачах у складові метали або розпорошується на ворогів як зброя. +liquid.oil.description = Англійська назва: Oil\nВикористовується у виробництві передових матеріалів і як запальні боєприпаси. +liquid.cryofluid.description = Англійська назва: Cryofluid\nВикористовується як теплоносій у реакторах, баштах і заводах. #Erekir -liquid.arkycite.description = Використовується в хімічних реакціях для виробництва електроенергії та синтезу матеріалів. -liquid.ozone.description = Використовується як окислювач у матеріальному виробництві, а також як паливо. Трохи вибухонебезпечний. -liquid.hydrogen.description = Застосовується при видобутку корисних копалин, виробництві одиниць та ремонті споруд. Легкозаймистий. -liquid.cyanogen.description = Використовується для виготовлення боєприпасів, будівництва передових одиниць, проведення різних реакцій в передових блоках. Легкозаймистий. -liquid.nitrogen.description = Використовується при видобутку корисних копалин, газоутворенні та агрегатному виробництві. Інертний. -liquid.neoplasm.description = Небезпечний біологічний побічний продукт неоплазмового реактора. Швидко поширюється на будь-які сусідні водовмісні блоки, яких торкається, пошкоджуючи їх в процесі. В’язка. +liquid.arkycite.description = Англійська назва: Arkycite\nВикористовується в хімічних реакціях для виробництва електроенергії та синтезу матеріалів. +liquid.ozone.description = Англійська назва: Ozone\nВикористовується як окислювач у матеріальному виробництві, а також як паливо. Трохи вибухонебезпечний. +liquid.hydrogen.description = Англійська назва: Hydrogen\nЗастосовується при видобутку корисних копалин, виробництві одиниць та ремонті споруд. Легкозаймистий. +liquid.cyanogen.description = Англійська назва: Cyanogen\nВикористовується для виготовлення боєприпасів, будівництва передових одиниць, проведення різних реакцій в передових блоках. Легкозаймистий. +liquid.nitrogen.description = Англійська назва: Nitrogen\nВикористовується при видобутку корисних копалин, газоутворенні та агрегатному виробництві. Інертний. +liquid.neoplasm.description = Англійська назва: Neoplasm\nНебезпечний біологічний побічний продукт неоплазмового реактора. Швидко поширюється на будь-які сусідні водовмісні блоки, яких торкається, пошкоджуючи їх в процесі. В’язка. liquid.neoplasm.details = Неоплазма. Неконтрольована маса синтетичних клітин, що швидко діляться, з консистенцією, подібною до осаду. Термостійка. Надзвичайно небезпечна для будь-яких конструкцій, пов’язаних з водою.\n\nЗанадто складна і нестабільна для звичайного аналізу. Потенційне застосування невідоме. Рекомендується спалювання в шлакових басейнах. block.derelict = \uf77e [lightgray]Переможені -block.armored-conveyor.description = Переміщує предмети вперед. Не приймає введення з боків ні з чого, крім інших конвеєрних стрічок. -block.illuminator.description = Випромінює світло. -block.message.description = Зберігає повідомлення для комунікації між союзниками. -block.reinforced-message.description = Зберігає повідомлення для комунікації між союзниками. -block.world-message.description = Блок повідомлення для використання у створенні мап. Не можна знищити. -block.graphite-press.description = Стискає вугілля в графіт. -block.multi-press.description = Стискає вугілля в графіт. Потребує воду для охолодження. -block.silicon-smelter.description = Синтезує пісок із вугіллям для отримання кремнію. -block.kiln.description = Виплавляє пісок та свинець у метаскло. -block.plastanium-compressor.description = Виробляє пластаній із нафти й титану. -block.phase-weaver.description = Синтезує фазову тканину з торію та піску. -block.surge-smelter.description = Поєднує титан, свинець, кремній і мідь у кінетичний сплав. -block.cryofluid-mixer.description = Змішує воду й подрібнений титан, щоби виробити кріогенну рідину. -block.blast-mixer.description = Виробляє вибухову суміш із пиротиту і спорових стручків. -block.pyratite-mixer.description = Змішує вугілля, свинець та пісок у легкозаймистий пиротит. -block.melter.description = Розплавляє брухт у шлак. -block.separator.description = Відокремлює шлак на його мінеральні компоненти. -block.spore-press.description = Стискає спорові стручки для синтезування нафти. -block.pulverizer.description = Подрібнює брухт у дрібний пісок. -block.coal-centrifuge.description = Нафта перетворюється у вугілля. -block.incinerator.description = Випаровує будь-який предмет або рідину, що отримує. -block.power-void.description = Знищує будь-яку під’єднану енергію. Тільки пісочниця. -block.power-source.description = Постійно генерує енергію. Тільки пісочниця. -block.item-source.description = Постійно створює предмети. Тільки пісочниця. -block.item-void.description = Руйнує будь-які предмети. Тільки пісочниця. -block.liquid-source.description = Постійно виробляє рідини. Тільки пісочниця. -block.liquid-void.description = Випаровує будь-які рідини. Тільки пісочниця. -block.payload-source.description = Нескінченно створює і виводить вантажі. Тільки пісочниця. -block.payload-void.description = Знищує будь-які вантажі. Тільки пісочниця. -block.copper-wall.description = Захищає споруди від ворожих снарядів. -block.copper-wall-large.description = Захищає споруди від ворожих снарядів. -block.titanium-wall.description = Захищає споруди від ворожих снарядів. -block.titanium-wall-large.description = Захищає споруди від ворожих снарядів. -block.plastanium-wall.description = Захищає споруди від ворожих снарядів. Поглинає електричні дуги й лазери. Блокує автоматичні з’єднання енергетичних вузлів. -block.plastanium-wall-large.description = Захищає споруди від ворожих снарядів. Поглинає електричні дуги й лазери. Блокує автоматичні з’єднання енергетичних вузлів. -block.thorium-wall.description = Захищає споруди від ворожих снарядів. -block.thorium-wall-large.description = Захищає споруди від ворожих снарядів. -block.phase-wall.description = Захищає споруди від ворожих снарядів, відбиває більшість куль у разі зіткненні. -block.phase-wall-large.description = Захищає споруди від ворожих снарядів, відбиває більшість куль у разі зіткненні. -block.surge-wall.description = Захищає споруди від ворожих снарядів, періодично випускає електричні дуги в разі зіткненні. -block.surge-wall-large.description = Захищає споруди від ворожих снарядів, періодично випускає електричні дуги в разі зіткненні. -block.door.description = Стіна, яку можна відчинити й зачинити. -block.door-large.description = Стіна, яку можна відчинити й зачинити. -block.mender.description = Періодично ремонтує блоки у своєму радіусі дії.\nЗа бажанням можна використати кремній задля підвищення радіусу дії й ефективності. -block.mend-projector.description = Ремонтує блоки у своєму радіусі дії.\nЗа бажанням можна використати фазову тканину задля підвищення радіусу дії й ефективності. -block.overdrive-projector.description = Збільшує швидкість найближчих будівель.\nЗа бажанням можна використати фазову тканину задля підвищення радіусу дії й ефективності. -block.force-projector.description = Створює навколо себе шестикутне силове поле, захищаючи будівлі та блоки всередині від пошкоджень.\nПерегрівається, якщо завдано занадто великої шкоди. За бажанням можна використати теплоносій для запобігання перегріву. Для збільшення розміру щита можна використовувати фазову тканину. -block.shock-mine.description = Випускає електричні дуги в разі контакту з ворогом. -block.conveyor.description = Переміщує предмети вперед. -block.titanium-conveyor.description = Переміщує предмети швидше, ніж звичайний конвеєр. -block.plastanium-conveyor.description = Переміщує предмети партіями. Приймає предмети на задній частині та вивантажує їх у трьох напрямках спереду. Потребує кілька точок завантаження та розвантаження для максимальної пропускної здатності. -block.junction.description = Діє як міст для двох перехресних конвеєрних стрічок. -block.bridge-conveyor.description = Транспортує предмети через будівлі або місцевість -block.phase-conveyor.description = Миттєво транспортує предмети через місцевості або будівлі. Більший діапазон, ніж у мостового конвеєра, але потребує енергії. -block.sorter.description = Якщо предмет відповідає вибраному, його можна передати. В іншому випадку предмет виводиться ліворуч та праворуч. -block.inverted-sorter.description = Схожий на звичайний сортувальник, але виводить обрані предмети на бокові сторони. -block.router.description = Розподіляє предмети, що надходять, порівну на 3 різні напрямки. +block.armored-conveyor.description = Англійська назва: Armored Conveyor\nПереміщує предмети вперед. Не приймає введення з боків ні з чого, крім інших конвеєрних стрічок. +block.illuminator.description = Англійська назва: Illuminator\nВипромінює світло. +block.message.description = Англійська назва: Message\nЗберігає повідомлення для комунікації між союзниками. +block.reinforced-message.description = Англійська назва: Reinforced Message\nЗберігає повідомлення для комунікації між союзниками. +block.world-message.description = Англійська назва: World Message\nБлок повідомлення для використання у створенні мап. Не можна знищити. +block.graphite-press.description = Англійська назва: Graphite Press\nСтискає вугілля в графіт. +block.multi-press.description = Англійська назва: Multi Press\nСтискає вугілля в графіт. Потребує воду для охолодження. +block.silicon-smelter.description = Англійська назва: Silicon Smelter\nСинтезує пісок із вугіллям для отримання кремнію. +block.kiln.description = Англійська назва: Kiln\nВиплавляє пісок та свинець у метаскло. +block.plastanium-compressor.description = Англійська назва: Plastanium Compressor\nВиробляє пластаній із нафти й титану. +block.phase-weaver.description = Англійська назва: Phase Weaver\nСинтезує фазову тканину з торію та піску. +block.surge-smelter.description = Англійська назва: Surge Smelter\nПоєднує титан, свинець, кремній і мідь у кінетичний сплав. +block.cryofluid-mixer.description = Англійська назва: Cryofluid Mixer\nЗмішує воду й подрібнений титан, щоби виробити кріогенну рідину. +block.blast-mixer.description = Англійська назва: Blast Mixer\nВиробляє вибухову суміш із пиротиту і спорових стручків. +block.pyratite-mixer.description = Англійська назва: Pyratite Mixer\nЗмішує вугілля, свинець та пісок у легкозаймистий пиротит. +block.melter.description = Англійська назва: Melter\nРозплавляє брухт у шлак. +block.separator.description = Англійська назва: Separator\nВідокремлює шлак на його мінеральні компоненти. +block.spore-press.description = Англійська назва: Spore Press\nСтискає спорові стручки для синтезування нафти. +block.pulverizer.description = Англійська назва: Pulverizer\nПодрібнює брухт у дрібний пісок. +block.coal-centrifuge.description = Англійська назва: Coal Centrifuge\nНафта перетворюється у вугілля. +block.incinerator.description = Англійська назва: Incinerator\nВипаровує будь-який предмет або рідину, що отримує. +block.power-void.description = Англійська назва: Power Void\nЗнищує будь-яку під’єднану енергію. Тільки пісочниця. +block.power-source.description = Англійська назва: Power Source\nПостійно генерує енергію. Тільки пісочниця. +block.item-source.description = Англійська назва: Item Source\nПостійно створює предмети. Тільки пісочниця. +block.item-void.description = Англійська назва: Item Void\nРуйнує будь-які предмети. Тільки пісочниця. +block.liquid-source.description = Англійська назва: Liquid Source\nПостійно виробляє рідини. Тільки пісочниця. +block.liquid-void.description = Англійська назва: Liquid Void\nВипаровує будь-які рідини. Тільки пісочниця. +block.payload-source.description = Англійська назва: Payload Source\nНескінченно створює і виводить вантажі. Тільки пісочниця. +block.payload-void.description = Англійська назва: Payload Void\nЗнищує будь-які вантажі. Тільки пісочниця. +block.copper-wall.description = Англійська назва: Copper Wall\nЗахищає споруди від ворожих снарядів. +block.copper-wall-large.description = Англійська назва: Copper Wall Large\nЗахищає споруди від ворожих снарядів. +block.titanium-wall.description = Англійська назва: Titanium Wall\nЗахищає споруди від ворожих снарядів. +block.titanium-wall-large.description = Англійська назва: Titanium Wall Large\nЗахищає споруди від ворожих снарядів. +block.plastanium-wall.description = Англійська назва: Plastanium Wall\nЗахищає споруди від ворожих снарядів. Поглинає електричні дуги й лазери. Блокує автоматичні з’єднання енергетичних вузлів. +block.plastanium-wall-large.description = Англійська назва: Plastanium Wall Large\nЗахищає споруди від ворожих снарядів. Поглинає електричні дуги й лазери. Блокує автоматичні з’єднання енергетичних вузлів. +block.thorium-wall.description = Англійська назва: Thorium Wall\nЗахищає споруди від ворожих снарядів. +block.thorium-wall-large.description = Англійська назва: Thorium Wall Large\nЗахищає споруди від ворожих снарядів. +block.phase-wall.description = Англійська назва: Phase Wall\nЗахищає споруди від ворожих снарядів, відбиває більшість куль у разі зіткненні. +block.phase-wall-large.description = Англійська назва: Phase Wall Large\nЗахищає споруди від ворожих снарядів, відбиває більшість куль у разі зіткненні. +block.surge-wall.description = Англійська назва: Surge Wall\nЗахищає споруди від ворожих снарядів, періодично випускає електричні дуги в разі зіткненні. +block.surge-wall-large.description = Англійська назва: Surge Wall Large\nЗахищає споруди від ворожих снарядів, періодично випускає електричні дуги в разі зіткненні. +block.door.description = Англійська назва: Door\nСтіна, яку можна відчинити й зачинити. +block.door-large.description = Англійська назва: Door Large\nСтіна, яку можна відчинити й зачинити. +block.mender.description = Англійська назва: Mender\nПеріодично ремонтує блоки у своєму радіусі дії.\nЗа бажанням можна використати кремній задля підвищення радіусу дії й ефективності. +block.mend-projector.description = Англійська назва: Mend Projector\nРемонтує блоки у своєму радіусі дії.\nЗа бажанням можна використати фазову тканину задля підвищення радіусу дії й ефективності. +block.overdrive-projector.description = Англійська назва: Overdrive Projector\nЗбільшує швидкість найближчих будівель.\nЗа бажанням можна використати фазову тканину задля підвищення радіусу дії й ефективності. +block.force-projector.description = Англійська назва: Force Projector\nСтворює навколо себе шестикутне силове поле, захищаючи будівлі та блоки всередині від пошкоджень.\nПерегрівається, якщо завдано занадто великої шкоди. За бажанням можна використати теплоносій для запобігання перегріву. Для збільшення розміру щита можна використовувати фазову тканину. +block.shock-mine.description = Англійська назва: Shock Mine\nВипускає електричні дуги в разі контакту з ворогом. +block.conveyor.description = Англійська назва: Conveyor\nПереміщує предмети вперед. +block.titanium-conveyor.description = Англійська назва: Titanium Conveyor\nПереміщує предмети швидше, ніж звичайний конвеєр. +block.plastanium-conveyor.description = Англійська назва: Plastanium Conveyor\nПереміщує предмети партіями. Приймає предмети на задній частині та вивантажує їх у трьох напрямках спереду. Потребує кілька точок завантаження та розвантаження для максимальної пропускної здатності. +block.junction.description = Англійська назва: Junction\nДіє як міст для двох перехресних конвеєрних стрічок. +block.bridge-conveyor.description = Англійська назва: Bridge Conveyor\nТранспортує предмети через будівлі або місцевість +block.phase-conveyor.description = Англійська назва: Phase Conveyor\nМиттєво транспортує предмети через місцевості або будівлі. Більший діапазон, ніж у мостового конвеєра, але потребує енергії. +block.sorter.description = Англійська назва: Sorter\nЯкщо предмет відповідає вибраному, його можна передати. В іншому випадку предмет виводиться ліворуч та праворуч. +block.inverted-sorter.description = Англійська назва: Inverted Sorter\nСхожий на звичайний сортувальник, але виводить обрані предмети на бокові сторони. +block.router.description = Англійська назва: Router\nРозподіляє предмети, що надходять, порівну на 3 різні напрямки. block.router.details = Необхідне зло. Не використовуйте поруч із входами до механізмів, оскільки вони, входи, будуть забиті вихідними предметами. -block.distributor.description = Розділяє предмети до 7 інших напрямків порівну. -block.overflow-gate.description = Вивантажує лише ліворуч і праворуч, якщо передній шлях заблокований. -block.underflow-gate.description = Повна протилежність надмірному затвору. Виводить предмет прямо, якщо лівий і правий шлях заблоковано. -block.mass-driver.description = Найкращий блок для транспортування предметів. Збирає кілька предметів, а потім вистрілює їх до іншої електромагнітної катапульти на велику відстань. Для роботи потребує енергію. -block.mechanical-pump.description = Дешева помпа із повільним виходом, але не потребує енергоспоживання. -block.rotary-pump.description = Поліпшена механічна помпа. Більше викачує, але потребує енергію. -block.impulse-pump.description = Найкраща помпа. -block.conduit.description = Пересуває рідини вперед. Застосовується спільно з помпами та іншими трубопроводами. -block.pulse-conduit.description = Пересуває рідини вперед. Швидше транспортує і зберігає більше рідини, ніж стандартні трубопроводи. -block.plated-conduit.description = Пересуває рідини вперед. Не приймає рідин із боків окрім інших трубопроводів. Не протікає. -block.liquid-router.description = Приймає рідини з одного напрямку та виводить їх до трьох інших напрямків порівну. Також може зберігати певну кількість рідини. -block.liquid-container.description = Зберігає чималу кількість рідини. Виводить у всі сторони, подібно до рідинного маршрутизатора. -block.liquid-tank.description = Зберігає велику кількість рідини. Виводить воду на всі сторони, через це схожий на рідинний маршрутизатор. -block.liquid-junction.description = Діє як міст для двох трубопроводів. -block.bridge-conduit.description = Транспортує рідину через місцевість і будівлі. -block.phase-conduit.description = Транспортує рідину через місцевість і будівлі. Діапазон дії більший ніж у мостового трубопроводу. -block.power-node.description = Передає живлення на приєднані вузли. Вузол буде отримувати живлення від будь-яких сусідніх блоків або подавати живлення до них. -block.power-node-large.description = Передовий вузол живлення з більшим радіусом дії. -block.surge-tower.description = Вузол живлення з меншою кількістю доступних з’єднань і з найбільшим радіусом дії. -block.diode.description = Живлення акумулятора може протікати через цей блок лише в одному напрямку, але лише в тому випадку, якщо інша сторона має менше енергії. -block.battery.description = Зберігає енергію як буфер у часи надлишкової енергії. Виводить енергію в періоди дефіциту. -block.battery-large.description = Зберігає енергію як буфер у часи надлишкової енергії. Виводить енергію в періоди дефіциту. Більша ємність ніж у звичайного акумулятора. -block.combustion-generator.description = Виробляє енергію, спалюючи легкозаймисті матеріали, як-от вугілля. -block.thermal-generator.description = Виробляє енергію в разі розміщення в гарячих місцях. -block.steam-generator.description = Виробляє енергію, спалюючи легкозаймисті матеріали й перетворює воду в пару. -block.differential-generator.description = Виробляє велику кількість енергії. Використовує різницю температур між кріогенною рідиною й пиротитом, що горить. -block.rtg-generator.description = Використовує тепло радіоактивних сполук, що розкладаються, для отримання енергії з повільною швидкістю. -block.solar-panel.description = Забезпечує невелику кількість енергії від сонця. -block.solar-panel-large.description = Забезпечує невелику кількість енергії від сонця. Значно ефективніша ніж стандартна сонячна панель. -block.thorium-reactor.description = Виробляє значну кількість енергії з торію. Потребує постійного охолодження. Сильно вибухне, якщо подаватиметься недостатня кількість теплоносія. -block.impact-reactor.description = Здатний створювати величезну кількість енергії за максимальної ефективності. Для запуску процесу потрібно значні обсяги енергії. -block.mechanical-drill.description = Якщо розмістити на доречних плитках, то виводитиме предмети постійно, але повільно. Придатний лише для базових ресурсів. -block.pneumatic-drill.description = Поліпшений бур, здатний видобувати титан. Видобуває швидше, ніж механічний бур. -block.laser-drill.description = Дає змогу видобувати ще швидше за допомогою лазерної технології, але потребує енергії. Здатний видобувати торій. -block.blast-drill.description = Найкращий бур. Потребує великої кількості енергії. -block.water-extractor.description = Викачує підземні води. Використовується в місцях, де немає поверхневої води. -block.cultivator.description = Культивує невеликі концентрації спор у стручки. +block.distributor.description = Англійська назва: Distributor\nРозділяє предмети до 7 інших напрямків порівну. +block.overflow-gate.description = Англійська назва: Overflow Gate\nВивантажує лише ліворуч і праворуч, якщо передній шлях заблокований. +block.underflow-gate.description = Англійська назва: Underflow Gate\nПовна протилежність надмірному затвору. Виводить предмет прямо, якщо лівий і правий шлях заблоковано. +block.mass-driver.description = Англійська назва: Mass Driver\nНайкращий блок для транспортування предметів. Збирає кілька предметів, а потім вистрілює їх до іншої електромагнітної катапульти на велику відстань. Для роботи потребує енергію. +block.mechanical-pump.description = Англійська назва: Mechanical Pump\nДешева помпа із повільним виходом, але не потребує енергоспоживання. +block.rotary-pump.description = Англійська назва: Rotary Pump\nПоліпшена механічна помпа. Більше викачує, але потребує енергію. +block.impulse-pump.description = Англійська назва: Impulse Pump\nНайкраща помпа. +block.conduit.description = Англійська назва: Conduit\nПересуває рідини вперед. Застосовується спільно з помпами та іншими трубопроводами. +block.pulse-conduit.description = Англійська назва: Pulse Conduit\nПересуває рідини вперед. Швидше транспортує і зберігає більше рідини, ніж стандартні трубопроводи. +block.plated-conduit.description = Англійська назва: Plated Conduit\nПересуває рідини вперед. Не приймає рідин із боків окрім інших трубопроводів. Не протікає. +block.liquid-router.description = Англійська назва: Liquid Router\nПриймає рідини з одного напрямку та виводить їх до трьох інших напрямків порівну. Також може зберігати певну кількість рідини. +block.liquid-container.description = Англійська назва: Liquid Container\nЗберігає чималу кількість рідини. Виводить у всі сторони, подібно до рідинного маршрутизатора. +block.liquid-tank.description = Англійська назва: Liquid Tank\nЗберігає велику кількість рідини. Виводить воду на всі сторони, через це схожий на рідинний маршрутизатор. +block.liquid-junction.description = Англійська назва: Liquid Junction\nДіє як міст для двох трубопроводів. +block.bridge-conduit.description = Англійська назва: Bridge Conduit\nТранспортує рідину через місцевість і будівлі. +block.phase-conduit.description = Англійська назва: Phase Conduit\nТранспортує рідину через місцевість і будівлі. Діапазон дії більший ніж у мостового трубопроводу. +block.power-node.description = Англійська назва: Power Node\nПередає живлення на приєднані вузли. Вузол буде отримувати живлення від будь-яких сусідніх блоків або подавати живлення до них. +block.power-node-large.description = Англійська назва: Power Node Large\nПередовий вузол живлення з більшим радіусом дії. +block.surge-tower.description = Англійська назва: Surge Tower\nВузол живлення з меншою кількістю доступних з’єднань і з найбільшим радіусом дії. +block.diode.description = Англійська назва: Diode\nЖивлення акумулятора може протікати через цей блок лише в одному напрямку, але лише в тому випадку, якщо інша сторона має менше енергії. +block.battery.description = Англійська назва: Battery\nЗберігає енергію як буфер у часи надлишкової енергії. Виводить енергію в періоди дефіциту. +block.battery-large.description = Англійська назва: Battery Large\nЗберігає енергію як буфер у часи надлишкової енергії. Виводить енергію в періоди дефіциту. Більша ємність ніж у звичайного акумулятора. +block.combustion-generator.description = Англійська назва: Combustion Generator\nВиробляє енергію, спалюючи легкозаймисті матеріали, як-от вугілля. +block.thermal-generator.description = Англійська назва: Thermal Generator\nВиробляє енергію в разі розміщення в гарячих місцях. +block.steam-generator.description = Англійська назва: Steam Generator\nВиробляє енергію, спалюючи легкозаймисті матеріали й перетворює воду в пару. +block.differential-generator.description = Англійська назва: Differential Generator\nВиробляє велику кількість енергії. Використовує різницю температур між кріогенною рідиною й пиротитом, що горить. +block.rtg-generator.description = Англійська назва: Rtg Generator\nВикористовує тепло радіоактивних сполук, що розкладаються, для отримання енергії з повільною швидкістю. +block.solar-panel.description = Англійська назва: Solar Panel\nЗабезпечує невелику кількість енергії від сонця. +block.solar-panel-large.description = Англійська назва: Solar Panel Large\nЗабезпечує невелику кількість енергії від сонця. Значно ефективніша ніж стандартна сонячна панель. +block.thorium-reactor.description = Англійська назва: Thorium Reactor\nВиробляє значну кількість енергії з торію. Потребує постійного охолодження. Сильно вибухне, якщо подаватиметься недостатня кількість теплоносія. +block.impact-reactor.description = Англійська назва: Impact Reactor\nЗдатний створювати величезну кількість енергії за максимальної ефективності. Для запуску процесу потрібно значні обсяги енергії. +block.mechanical-drill.description = Англійська назва: Mechanical Drill\nЯкщо розмістити на доречних плитках, то виводитиме предмети постійно, але повільно. Придатний лише для базових ресурсів. +block.pneumatic-drill.description = Англійська назва: Pneumatic Drill\nПоліпшений бур, здатний видобувати титан. Видобуває швидше, ніж механічний бур. +block.laser-drill.description = Англійська назва: Laser Drill\nДає змогу видобувати ще швидше за допомогою лазерної технології, але потребує енергії. Здатний видобувати торій. +block.blast-drill.description = Англійська назва: Blast Drill\nНайкращий бур. Потребує великої кількості енергії. +block.water-extractor.description = Англійська назва: Water Extractor\nВикачує підземні води. Використовується в місцях, де немає поверхневої води. +block.cultivator.description = Англійська назва: Cultivator\nКультивує невеликі концентрації спор у стручки. block.cultivator.details = Відновлена технологія. Використовується для отримання великої кількості біомаси якомога ефективніше. Ймовірно, початковий інкубатор спор, що зараз покриває Серпуло. -block.oil-extractor.description = Використовується велика кількість енергії, піску та води для отримання нафти. -block.core-shard.description = Ядро бази. Після знищення сектор втрачається. Найперша версія капсули ядра. Після його знищення всі контакти з регіоном втрачаються. Не допустіть цього. +block.oil-extractor.description = Англійська назва: Oil Extractor\nВикористовується велика кількість енергії, піску та води для отримання нафти. +block.core-shard.description = Англійська назва: Core Shard\nЯдро бази. Після знищення сектор втрачається. Найперша версія капсули ядра. Після його знищення всі контакти з регіоном втрачаються. Не допустіть цього. block.core-shard.details = Найперша версія капсули ядра. Компактне. Самовідтворюване. Оснащене одноразовими пусковими рушіями. Не призначено для міжпланетних подорожей. -block.core-foundation.description = Ядро бази. Добре броньоване. Зберігає більше ресурсів. +block.core-foundation.description = Англійська назва: Core Foundation\nЯдро бази. Добре броньоване. Зберігає більше ресурсів. block.core-foundation.details = Друга версія ядра. -block.core-nucleus.description = Ядро бази. Напрочуд добре броньовано. Зберігає величезну кількість ресурсів. +block.core-nucleus.description = Англійська назва: Core Nucleus\nЯдро бази. Напрочуд добре броньовано. Зберігає величезну кількість ресурсів. block.core-nucleus.details = Третя і фінальна версія ядра. -block.vault.description = Зберігає велику кількість предметів кожного типу. Блок розвантажувача може використовуватися для отримання предметів зі сховища. -block.container.description = Зберігає малу кількість предметів кожного типу. Блок розвантажувача може використовуватися для отримання предметів зі сховища. -block.unloader.description = Вивантажує предмети з найближчих блоків -block.launch-pad.description = Запускає партії предметів без необхідності запуску ядра. +block.vault.description = Англійська назва: Vault\nЗберігає велику кількість предметів кожного типу. Блок розвантажувача може використовуватися для отримання предметів зі сховища. +block.container.description = Англійська назва: Container\nЗберігає малу кількість предметів кожного типу. Блок розвантажувача може використовуватися для отримання предметів зі сховища. +block.unloader.description = Англійська назва: Unloader\nВивантажує предмети з найближчих блоків +block.launch-pad.description = Англійська назва: Launch Pad\nЗапускає партії предметів без необхідності запуску ядра. block.launch-pad.details = Суборбітальна система для транспортування ресурсів від точки А до точки Б. Корпуси вантажу крихкі й не здатні вижити при повторному вході. -block.duo.description = Вистрілює чергами куль у ворогів. -block.scatter.description = Вистрілює скупченням свинцю, брухту чи метаскла в повітряних противників. -block.scorch.description = Підпалює будь-яких наземних противників поблизу. Високоефективна на близькій відстані. -block.hail.description = Вистрілює невеликі снаряди в наземних ворогів на великі відстані. -block.wave.description = Вистрілює потоки рідин у ворогів. Автоматично гасить пожежі в разі постачання води. -block.lancer.description = Заряджає і вистрілює потужні пучки енергії в наземних противників. -block.arc.description = Вистрілює дугами електрики в наземних противників. -block.swarmer.description = Запускає ракети, що автоматично наводяться в противників. -block.salvo.description = Вистрілює швидкий залп куль у противника. -block.fuse.description = Вистрілює трьома променями, що пронизують броню, у малому радіусі в противників. -block.ripple.description = Вистрілює скупченням снарядів у противників. -block.cyclone.description = Підпалює вибухові грудки й вистрілює їх у скупчення противників. -block.spectre.description = Вистрілює великі бронебійні кулі в повітряні та наземні цілі. -block.meltdown.description = Заряджає і вистрілює лазерним променем у найближчих противників. Для роботи потрібен теплоносій. -block.foreshadow.description = Вистрілює великим болтом в одну ціль на велику дистанцію. -block.repair-point.description = Безперервно ремонтує найближчу пошкоджену бойову одиницю у своєму радіусі дії. Пріоритетні союзники з вищим максимальним здоров’ям. -block.segment.description = Пошкоджує та руйнує вхідні снаряди. Окрім лазерних. -block.parallax.description = Притягає ворожі повітряні одиниці, пошкоджуючи їх у процесі. -block.tsunami.description = Вистрілює потужними потоками рідини у ворогів. Автоматично гасить пожежі в разі постачання води. -block.silicon-crucible.description = Очищає кремній від піску та вугілля, використовуючи пиратит як додаткове джерело тепла. Більш ефективний у жарких місцях. -block.disassembler.description = Поділяє шлак на незначні кількості екзотичних мінеральних компонентів за низької ефективності. Може виробляти торій. -block.overdrive-dome.description = Збільшує швидкість найближчих будівель. Потребує фазову тканину і кремній. -block.payload-conveyor.description = Переміщує великі вантажі, як-от одиниці з заводів. -block.payload-router.description = Розділяє вантажі, що надходять, у 3 різні сторони. -block.ground-factory.description = Виробляє наземних одиниць. Вивід одиниць можна здійснити безпосередньо на місцевість, або спрямувати до реконструкторів для поліпшення. -block.air-factory.description = Виробляє повітряних одиниць. Вивід одиниць можна здійснити безпосередньо на місцевість, або спрямувати до реконструкторів для поліпшення. -block.naval-factory.description = Виробляє одиниць. Вивід одиниць можна здійснити безпосередньо на місцевість, або спрямувати до реконструкторів для поліпшення. -block.additive-reconstructor.description = Поліпшує введених одиниць до другого рівня. -block.multiplicative-reconstructor.description = Поліпшує введених одиниць до третього рівня. -block.exponential-reconstructor.description = Поліпшує введених одиниць до четвертого рівня. -block.tetrative-reconstructor.description = Поліпшує введених одиниць до п’ятого і фінального рівня. -block.switch.description = Перемикач. Стан можна читати й контролювати за допомогою логічних процесорів. -block.micro-processor.description = Запускає послідовність логічних вказівок (операцій) у нескінченному циклі. Може використовуватися для керування блоків та будівель. -block.logic-processor.description = Запускає послідовність логічних вказівок (операцій) у нескінченному циклі. Може використовуватися для керування блоків та будівель. Швидше ніж Мікропроцесор. -block.hyper-processor.description = Запускає послідовність логічних вказівок (операцій) у нескінченному циклі. Може використовуватися для керування блоків та будівель. Швидше ніж Логічний процесор -block.memory-cell.description = Зберігає інформацію для логічного процесора. -block.memory-bank.description = Зберігає інформацію для логічного процесора. Висока місткість. -block.logic-display.description = Показує довільну графіку з логічного процесора. -block.large-logic-display.description = Показує довільну графіку з логічного процесора. -block.interplanetary-accelerator.description = Велика електромагнітна башта-рейкотрон. Прискорює ядра, щоби подолати планетне тяжіння для міжпланетного розгортання. -block.repair-turret.description = Безпервно ремонтує найближчу пошкоджену одиницю. Для прискорення ремонтування можна охолодити. -block.payload-propulsion-tower.description = Структура транспортування вантажу на великі відстані. Вистрілює вантаж в інші вантажні катапульти. +block.duo.description = Англійська назва: Duo\nВистрілює чергами куль у ворогів. +block.scatter.description = Англійська назва: Scatter\nВистрілює скупченням свинцю, брухту чи метаскла в повітряних противників. +block.scorch.description = Англійська назва: Scorch\nПідпалює будь-яких наземних противників поблизу. Високоефективна на близькій відстані. +block.hail.description = Англійська назва: Hail\nВистрілює невеликі снаряди в наземних ворогів на великі відстані. +block.wave.description = Англійська назва: Wave\nВистрілює потоки рідин у ворогів. Автоматично гасить пожежі в разі постачання води. +block.lancer.description = Англійська назва: Lancer\nЗаряджає і вистрілює потужні пучки енергії в наземних противників. +block.arc.description = Англійська назва: Arc\nВистрілює дугами електрики в наземних противників. +block.swarmer.description = Англійська назва: Swarmer\nЗапускає ракети, що автоматично наводяться в противників. +block.salvo.description = Англійська назва: Salvo\nВистрілює швидкий залп куль у противника. +block.fuse.description = Англійська назва: Fuse\nВистрілює трьома променями, що пронизують броню, у малому радіусі в противників. +block.ripple.description = Англійська назва: Ripple\nВистрілює скупченням снарядів у противників. +block.cyclone.description = Англійська назва: Cyclone\nПідпалює вибухові грудки й вистрілює їх у скупчення противників. +block.spectre.description = Англійська назва: Spectre\nВистрілює великі бронебійні кулі в повітряні та наземні цілі. +block.meltdown.description = Англійська назва: Meltdown\nЗаряджає і вистрілює лазерним променем у найближчих противників. Для роботи потрібен теплоносій. +block.foreshadow.description = Англійська назва: Foreshadow\nВистрілює великим болтом в одну ціль на велику дистанцію. +block.repair-point.description = Англійська назва: Repair Point\nБезперервно ремонтує найближчу пошкоджену бойову одиницю у своєму радіусі дії. Пріоритетні союзники з вищим максимальним здоров’ям. +block.segment.description = Англійська назва: Segment\nПошкоджує та руйнує вхідні снаряди. Окрім лазерних. +block.parallax.description = Англійська назва: Parallax\nПритягає ворожі повітряні одиниці, пошкоджуючи їх у процесі. +block.tsunami.description = Англійська назва: Tsunami\nВистрілює потужними потоками рідини у ворогів. Автоматично гасить пожежі в разі постачання води. +block.silicon-crucible.description = Англійська назва: Silicon Crucible\nОчищає кремній від піску та вугілля, використовуючи пиратит як додаткове джерело тепла. Більш ефективний у жарких місцях. +block.disassembler.description = Англійська назва: Disassembler\nПоділяє шлак на незначні кількості екзотичних мінеральних компонентів за низької ефективності. Може виробляти торій. +block.overdrive-dome.description = Англійська назва: Overdrive Dome\nЗбільшує швидкість найближчих будівель. Потребує фазову тканину і кремній. +block.payload-conveyor.description = Англійська назва: Payload Conveyor\nПереміщує великі вантажі, як-от одиниці з заводів. +block.payload-router.description = Англійська назва: Payload Router\nРозділяє вантажі, що надходять, у 3 різні сторони. +block.ground-factory.description = Англійська назва: Ground Factory\nВиробляє наземних одиниць. Вивід одиниць можна здійснити безпосередньо на місцевість, або спрямувати до реконструкторів для поліпшення. +block.air-factory.description = Англійська назва: Air Factory\nВиробляє повітряних одиниць. Вивід одиниць можна здійснити безпосередньо на місцевість, або спрямувати до реконструкторів для поліпшення. +block.naval-factory.description = Англійська назва: Naval Factory\nВиробляє одиниць. Вивід одиниць можна здійснити безпосередньо на місцевість, або спрямувати до реконструкторів для поліпшення. +block.additive-reconstructor.description = Англійська назва: Additive Reconstructor\nПоліпшує введених одиниць до другого рівня. +block.multiplicative-reconstructor.description = Англійська назва: Multiplicative Reconstructor\nПоліпшує введених одиниць до третього рівня. +block.exponential-reconstructor.description = Англійська назва: Exponential Reconstructor\nПоліпшує введених одиниць до четвертого рівня. +block.tetrative-reconstructor.description = Англійська назва: Tetrative Reconstructor\nПоліпшує введених одиниць до п’ятого і фінального рівня. +block.switch.description = Англійська назва: Switch\nПеремикач. Стан можна читати й контролювати за допомогою логічних процесорів. +block.micro-processor.description = Англійська назва: Micro Processor\nЗапускає послідовність логічних вказівок (операцій) у нескінченному циклі. Може використовуватися для керування блоків та будівель. +block.logic-processor.description = Англійська назва: Logic Processor\nЗапускає послідовність логічних вказівок (операцій) у нескінченному циклі. Може використовуватися для керування блоків та будівель. Швидше ніж Мікропроцесор. +block.hyper-processor.description = Англійська назва: Hyper Processor\nЗапускає послідовність логічних вказівок (операцій) у нескінченному циклі. Може використовуватися для керування блоків та будівель. Швидше ніж Логічний процесор +block.memory-cell.description = Англійська назва: Memory Cell\nЗберігає інформацію для логічного процесора. +block.memory-bank.description = Англійська назва: Memory Bank\nЗберігає інформацію для логічного процесора. Висока місткість. +block.logic-display.description = Англійська назва: Logic Display\nПоказує довільну графіку з логічного процесора. +block.large-logic-display.description = Англійська назва: Large Logic Display\nПоказує довільну графіку з логічного процесора. +block.interplanetary-accelerator.description = Англійська назва: Interplanetary Accelerator\nВелика електромагнітна башта-рейкотрон. Прискорює ядра, щоби подолати планетне тяжіння для міжпланетного розгортання. +block.repair-turret.description = Англійська назва: Repair Turret\nБезпервно ремонтує найближчу пошкоджену одиницю. Для прискорення ремонтування можна охолодити. +block.payload-propulsion-tower.description = Англійська назва: Payload Propulsion Tower\nСтруктура транспортування вантажу на великі відстані. Вистрілює вантаж в інші вантажні катапульти. #Erekir -block.core-bastion.description = Ядро бази. Броньоване. Після знищення сектор втрачається. -block.core-citadel.description = Ядро бази. Дуже добре броньоване. Зберігає більше ресурсів, ніж ядро «Бастіон». -block.core-acropolis.description = Ядро бази. Надзвичайно добре броньоване. Зберігає більше ресурсів, ніж ядро «Цитадель». -block.breach.description = Веде вогонь по ворожих цілях бронебійними берилієвими або вольфрамовими боєприпасами. -block.diffuse.description = Вистрілює шквалом куль у формі широкого конуса. Відкидає ворожі цілі назад. -block.sublimate.description = Веде вогонь безперервним струменем полум’я по ворожих цілях. Пробиває броню. -block.titan.description = Веде вогонь осколково-фугасним артилерійським снарядом по наземних цілях. Потребує водню. -block.afflict.description = Стріляє масивною зарядженою кулею осколково-фугасних снарядів. Потребує підігріву. -block.disperse.description = Веде вогонь зенітними чергами по повітряних цілям. -block.lustre.description = Веде вогонь по ворожих цілях повільно рухомим одноцільовим лазером. -block.scathe.description = Запускає потужну ракету по наземних цілям на величезні відстані. -block.smite.description = Вогонь вівся чергами зі шрапнельних, блискавичних куль. -block.malign.description = Випускає шквал самонавідних лазерних зарядів по ворожих цілях. Потребує значного нагріву. -block.silicon-arc-furnace.description = Рафінує кремній з піску і графіту. -block.oxidation-chamber.description = Перетворює берилій та озон в оксид. Виділяє тепло як побічний продукт. -block.electric-heater.description = Нагріває лицьові блоки. Вимагає великої кількості електроенергії. -block.slag-heater.description = Нагріває лицьові блоки. Потребує шлаку. -block.phase-heater.description = Нагріває лицьові блоки. Потрібна фазова тканина. -block.heat-redirector.description = Перенаправляє отримане тепло на інші блоки. -block.heat-router.description = Розподіляє отримане тепло в трьох вихідних напрямках. -block.electrolyzer.description = Перетворює воду на водень та озоновий газ. -block.atmospheric-concentrator.description = Вбирає азот з атмосфери. Потребує тепла. -block.surge-crucible.description = Утворює кінетичний сплав зі шлаку і кремнію. Потребує тепла. -block.phase-synthesizer.description = Синтезує фазову тканину з торію, піску та озону. Потребує тепла. -block.carbide-crucible.description = Переплавляє графіт і вольфрам в карбід. Потребує тепла. -block.cyanogen-synthesizer.description = Синтезує ціаноген з аркициту і графіту. Потребує тепла. -block.slag-incinerator.description = Спалює нелеткі предмети або рідини. Потребує шлаку. -block.vent-condenser.description = Конденсує гази із джерела у воду. Споживає енергію. -block.plasma-bore.description = При розміщенні лицем до рудної стіни видає предмети нескінченно довго. Потребує невеликої кількості енергії. -block.large-plasma-bore.description = Більший плазмовий бурильник. Здатний видобувати вольфрам і торій. Потребує водню та енергії. -block.cliff-crusher.description = Дробить стіни, виводячи пісок нескінченно довго. Вимагає енергію. Ефективність залежить від типу стіни. -block.impact-drill.description = При розміщенні на руді видає предмети серіями до нескінченності. Потребує енергії та води. -block.eruption-drill.description = Поліпшений імпульсний бур. Здатний видобувати торій. Потребує водню. -block.reinforced-conduit.description = Переміщує рідини вперед. Не приймає нетрубоповідні входи з боків. -block.reinforced-liquid-router.description = Рівномірно розподіляє рідини на всі сторони. -block.reinforced-junction.description = Виконує роль моста для двох пересічних водоводів. -block.reinforced-liquid-tank.description = Зберігає велику кількість рідини. -block.reinforced-liquid-container.description = Зберігає значну кількість рідини. -block.reinforced-bridge-conduit.description = Транспортує рідини над спорудами та місцевістю. -block.reinforced-pump.description = Перекачує і виводить рідини. Потребує водню. -block.beryllium-wall.description = Захищає споруди від ворожих снарядів. -block.beryllium-wall-large.description = Захищає споруди від ворожих снарядів. -block.tungsten-wall.description = Захищає споруди від ворожих снарядів. -block.tungsten-wall-large.description = Захищає споруди від ворожих снарядів. -block.carbide-wall.description = Захищає споруди від ворожих снарядів. -block.carbide-wall-large.description = Захищає споруди від ворожих снарядів. -block.reinforced-surge-wall.description = Захищає споруди від ворожих снарядів, періодично випускаючи електричні дуги при зіткненні зі снарядом. -block.reinforced-surge-wall-large.description = Захищає споруди від ворожих снарядів, періодично випускаючи електричні дуги при зіткненні зі снарядом. -block.shielded-wall.description = Захищає споруди від ворожих снарядів. Розгортає щит, який поглинає більшість снарядів при подачі живлення. Проводить енергію. -block.blast-door.description = Стіна, яка відкривається, коли наземні одиниці союзників знаходяться в межах досяжності. Не може управлятися вручну. -block.duct.description = Переміщує предмети вперед. Здатний зберігати лише один предмет. -block.armored-duct.description = Переміщує предмети вперед. Не приймає неканальні входи з боків. -block.duct-router.description = Розподіляє речі рівномірно по трьох напрямках. Приймає предмети тільки зі зворотного боку. Може бути налаштований як сортувальник предметів. -block.overflow-duct.description = Виводить предмети в сторони тільки в тому випадку, якщо передній шлях заблокований. -block.duct-bridge.description = Переміщує предмети по спорудах та місцевості. -block.duct-unloader.description = Вивантажує вибраний елемент з блоку, що знаходиться за ним. Неможливо вивантажити з ядер. -block.underflow-duct.description = Антонім до надмірного затвора. Виводить на передню частину, якщо лівий і правий шляхи заблоковані. -block.reinforced-liquid-junction.description = Виконує функцію з’єднання між двома перехресними каналами. -block.surge-conveyor.description = Переміщує предмети партіями. Можна прискорити за допомогою енергії. Проводить енергію. -block.surge-router.description = Рівномірно розподіляє предмети в трьох напрямках від кінетичних конвеєрів. Можна прискорити за допомогою енергії. Проводить енергію. -block.unit-cargo-loader.description = Створює вантажні дрони. Дрони автоматично розподіляють предмети по пунктах розвантаження за допомогою відповідного фільтра. -block.unit-cargo-unload-point.description = Виступає в якості пункта розвантаження для вантажних дронів. Приймає вантажі, які відповідають вибраному фільтру. -block.beam-node.description = Передає енергію іншим блокам ортогонально. Запасає невелику кількість енергії. -block.beam-tower.description = Передає енергію іншим блокам ортогонально. Зберігає велику кількість енергії. Має великий радіус дії. -block.turbine-condenser.description = Виробляє енергію при розміщенні на джерелах. Виробляє невелику кількість води. -block.chemical-combustion-chamber.description = Виробляє енергію з аркициту та озону. -block.pyrolysis-generator.description = Виробляє велику кількість електроенергії з аркициту та шлаку. Виробляє воду як побічний продукт. -block.flux-reactor.description = При нагріванні виділяє велику кількість енергії. Потребує ціаногену як стабілізатора. Вихідна енергія і потреба в ціаногені пропорційні тепловому навантаженню.\nВибухає при недостатній кількості ціаногену. -block.neoplasia-reactor.description = Використовує аркіцит, воду і фазову тканину для виробництва великої кількості енергії. Виробляє тепло і небезпечні новоутворення як побічний продукт.\nВибухає з силою, якщо новоутворення не видалити з реактора через трубопроводи. -block.build-tower.description = Автоматично перебудовує споруди в зоні досяжності та допомагає іншим одиницям у будівництві. -block.regen-projector.description = Повільно ремонтує суміжні споруди у квадратному периметрі. Потребує водню. -block.reinforced-container.description = Зберігає невелику кількість предметів. Вміст можна отримати за допомогою розвантажувачів. Не збільшує ємність основного сховища. -block.reinforced-vault.description = Зберігає велику кількість предметів. Вміст можна отримати за допомогою розвантажувачів. Не збільшує ємність ядра. -block.tank-fabricator.description = Створює одиниці «Стел». Випущені одиниці можна використовувати безпосередньо або перемістити в переробний завод для поліпшення. -block.ship-fabricator.description = Створює одиниці «Ухиляч». Випущені одиниці можна використовувати безпосередньо або перемістити в переробний завод для поліпшення. -block.mech-fabricator.description = Створює одиниці «Меруй». Випущені одиниці можна використовувати безпосередньо або перемістити в переробний завод для поліпшення. -block.tank-assembler.description = Збирає великі танки з введених блоків та одиниць. Рівень виходу може бути збільшений шляхом додавання модулів. -block.ship-assembler.description = Збирає великі кораблі з введених блоків та одиниць. Рівень виходу може бути збільшений шляхом додавання модулів. -block.mech-assembler.description = Збирає великі мехи з введених блоків та одиниць. Рівень виходу може бути збільшений шляхом додавання модулів. -block.tank-refabricator.description = Поліпшує введені танкові одиниці до другого рівня. -block.ship-refabricator.description = Поліпшує введені корабельні одиниці до другого рівня. -block.mech-refabricator.description = Поліпшує введені мехові одиниці до другого рівня. -block.prime-refabricator.description = Поліпшує введені одиниці до другого рівня. -block.basic-assembler-module.description = Підвищує рівень збирача, якщо його розмістити поруч з межею будівлі. Потребує енергії. Може використовуватися як вхід для вантажу. -block.small-deconstructor.description = Деконструює введені конструкції та блоки. Повертає 100% вартості побудови. -block.reinforced-payload-conveyor.description = Переміщує вантаж вперед. -block.reinforced-payload-router.description = Розподіляє вантажі в сусідні блоки. Функціонує як сортувальник при встановленому фільтрі. -block.payload-mass-driver.description = Структура транспортування вантажу великої дальності. Вистрілює отриманий вантаж на зв’язані вантажні катапульти. -block.large-payload-mass-driver.description = Структура транспортування вантажу великої дальності. Вистрілює отриманий вантаж на зв’язані вантажні катапульти. -block.unit-repair-tower.description = Ремонтує всі одиниці, що знаходяться поблизу. Потребує озону. -block.radar.description = Поступово проявляє місцевість та одиниці противника у великому радіусі. Вимагає енергії. -block.shockwave-tower.description = Пошкоджує та знищує ворожі снаряди в радіусі. Потребує ціаногену. -block.canvas.description = Показує просте зображення із заздалегідь визначеною палітрою. Можна редагувати. +block.core-bastion.description = Англійська назва: Core Bastion\nЯдро бази. Броньоване. Після знищення сектор втрачається. +block.core-citadel.description = Англійська назва: Core Citadel\nЯдро бази. Дуже добре броньоване. Зберігає більше ресурсів, ніж ядро «Бастіон». +block.core-acropolis.description = Англійська назва: Core Acropolis\nЯдро бази. Надзвичайно добре броньоване. Зберігає більше ресурсів, ніж ядро «Цитадель». +block.breach.description = Англійська назва: Breach\nВеде вогонь по ворожих цілях бронебійними берилієвими або вольфрамовими боєприпасами. +block.diffuse.description = Англійська назва: Diffuse\nВистрілює шквалом куль у формі широкого конуса. Відкидає ворожі цілі назад. +block.sublimate.description = Англійська назва: Sublimate\nВеде вогонь безперервним струменем полум’я по ворожих цілях. Пробиває броню. +block.titan.description = Англійська назва: Titan\nВеде вогонь осколково-фугасним артилерійським снарядом по наземних цілях. Потребує водню. +block.afflict.description = Англійська назва: Afflict\nСтріляє масивною зарядженою кулею осколково-фугасних снарядів. Потребує підігріву. +block.disperse.description = Англійська назва: Disperse\nВеде вогонь зенітними чергами по повітряних цілям. +block.lustre.description = Англійська назва: Lustre\nВеде вогонь по ворожих цілях повільно рухомим одноцільовим лазером. +block.scathe.description = Англійська назва: Scathe\nЗапускає потужну ракету по наземних цілям на величезні відстані. +block.smite.description = Англійська назва: Smite\nВогонь веде чергами зі шрапнельних, блискавичних куль. +block.malign.description = Англійська назва: Malign\nВипускає шквал самонавідних лазерних зарядів по ворожих цілях. Потребує значного нагріву. +block.silicon-arc-furnace.description = Англійська назва: Silicon Arc Furnace\nРафінує кремній з піску і графіту. +block.oxidation-chamber.description = Англійська назва: Oxidation Chamber\nПеретворює берилій та озон в оксид. Виділяє тепло як побічний продукт. +block.electric-heater.description = Англійська назва: Electric Heater\nНагріває лицьові блоки. Вимагає великої кількості електроенергії. +block.slag-heater.description = Англійська назва: Slag Heater\nНагріває лицьові блоки. Потребує шлаку. +block.phase-heater.description = Англійська назва: Phase Heater\nНагріває лицьові блоки. Потрібна фазова тканина. +block.heat-redirector.description = Англійська назва: Heat Redirector\nПеренаправляє отримане тепло на інші блоки. +block.heat-router.description = Англійська назва: Heat Router\nРозподіляє отримане тепло в трьох вихідних напрямках. +block.electrolyzer.description = Англійська назва: Electrolyzer\nПеретворює воду на водень та озоновий газ. +block.atmospheric-concentrator.description = Англійська назва: Atmospheric Concentrator\nВбирає азот з атмосфери. Потребує тепла. +block.surge-crucible.description = Англійська назва: Surge Crucible\nУтворює кінетичний сплав зі шлаку і кремнію. Потребує тепла. +block.phase-synthesizer.description = Англійська назва: Phase Synthesizer\nСинтезує фазову тканину з торію, піску та озону. Потребує тепла. +block.carbide-crucible.description = Англійська назва: Carbide Crucible\nПереплавляє графіт і вольфрам в карбід. Потребує тепла. +block.cyanogen-synthesizer.description = Англійська назва: Cyanogen Synthesizer\nСинтезує ціаноген з аркициту і графіту. Потребує тепла. +block.slag-incinerator.description = Англійська назва: Slag Incinerator\nСпалює нелеткі предмети або рідини. Потребує шлаку. +block.vent-condenser.description = Англійська назва: Vent Condenser\nКонденсує гази із джерела у воду. Споживає енергію. +block.plasma-bore.description = Англійська назва: Plasma Bore\nПри розміщенні лицем до рудної стіни видає предмети нескінченно довго. Потребує невеликої кількості енергії. +block.large-plasma-bore.description = Англійська назва: Large Plasma Bore\nБільший плазмовий бурильник. Здатний видобувати вольфрам і торій. Потребує водню та енергії. +block.cliff-crusher.description = Англійська назва: Cliff Crusher\nДробить стіни, виводячи пісок нескінченно довго. Вимагає енергію. Ефективність залежить від типу стіни. +block.impact-drill.description = Англійська назва: Impact Drill\nПри розміщенні на руді видає предмети серіями до нескінченності. Потребує енергії та води. +block.eruption-drill.description = Англійська назва: Eruption Drill\nПоліпшений імпульсний бур. Здатний видобувати торій. Потребує водню. +block.reinforced-conduit.description = Англійська назва: Reinforced Conduit\nПереміщує рідини вперед. Не приймає нетрубоповідні входи з боків. +block.reinforced-liquid-router.description = Англійська назва: Reinforced Liquid Router\nРівномірно розподіляє рідини на всі сторони. +block.reinforced-junction.description = Англійська назва: Reinforced Junction\nВиконує роль моста для двох пересічних водоводів. +block.reinforced-liquid-tank.description = Англійська назва: Reinforced Liquid Tank\nЗберігає велику кількість рідини. +block.reinforced-liquid-container.description = Англійська назва: Reinforced Liquid Container\nЗберігає значну кількість рідини. +block.reinforced-bridge-conduit.description = Англійська назва: Reinforced Bridge Conduit\nТранспортує рідини над спорудами та місцевістю. +block.reinforced-pump.description = Англійська назва: Reinforced Pump\nПерекачує і виводить рідини. Потребує водню. +block.beryllium-wall.description = Англійська назва: Beryllium Wall\nЗахищає споруди від ворожих снарядів. +block.beryllium-wall-large.description = Англійська назва: Beryllium Wall Large\nЗахищає споруди від ворожих снарядів. +block.tungsten-wall.description = Англійська назва: Tungsten Wall\nЗахищає споруди від ворожих снарядів. +block.tungsten-wall-large.description = Англійська назва: Tungsten Wall Large\nЗахищає споруди від ворожих снарядів. +block.carbide-wall.description = Англійська назва: Carbide Wall\nЗахищає споруди від ворожих снарядів. +block.carbide-wall-large.description = Англійська назва: Carbide Wall Large\nЗахищає споруди від ворожих снарядів. +block.reinforced-surge-wall.description = Англійська назва: Reinforced Surge Wall\nЗахищає споруди від ворожих снарядів, періодично випускаючи електричні дуги при зіткненні зі снарядом. +block.reinforced-surge-wall-large.description = Англійська назва: Reinforced Surge Wall Large\nЗахищає споруди від ворожих снарядів, періодично випускаючи електричні дуги при зіткненні зі снарядом. +block.shielded-wall.description = Англійська назва: Shielded Wall\nЗахищає споруди від ворожих снарядів. Розгортає щит, який поглинає більшість снарядів при подачі живлення. Проводить енергію. +block.blast-door.description = Англійська назва: Blast Door\nСтіна, яка відкривається, коли наземні одиниці союзників знаходяться в межах досяжності. Не може управлятися вручну. +block.duct.description = Англійська назва: Duct\nПереміщує предмети вперед. Здатний зберігати лише один предмет. +block.armored-duct.description = Англійська назва: Armored Duct\nПереміщує предмети вперед. Не приймає неканальні входи з боків. +block.duct-router.description = Англійська назва: Duct Router\nРозподіляє речі рівномірно по трьох напрямках. Приймає предмети тільки зі зворотного боку. Може бути налаштований як сортувальник предметів. +block.overflow-duct.description = Англійська назва: Overflow Duct\nВиводить предмети в сторони тільки в тому випадку, якщо передній шлях заблокований. +block.duct-bridge.description = Англійська назва: Duct Bridge\nПереміщує предмети по спорудах та місцевості. +block.duct-unloader.description = Англійська назва: Duct Unloader\nВивантажує вибраний елемент з блоку, що знаходиться за ним. Неможливо вивантажити з ядер. +block.underflow-duct.description = Англійська назва: Underflow Duct\nАнтонім до надмірного затвора. Виводить на передню частину, якщо лівий і правий шляхи заблоковані. +block.reinforced-liquid-junction.description = Англійська назва: Reinforced Liquid Junction\nВиконує функцію з’єднання між двома перехресними каналами. +block.surge-conveyor.description = Англійська назва: Surge Conveyor\nПереміщує предмети партіями. Можна прискорити за допомогою енергії. Проводить енергію. +block.surge-router.description = Англійська назва: Surge Router\nРівномірно розподіляє предмети в трьох напрямках від кінетичних конвеєрів. Можна прискорити за допомогою енергії. Проводить енергію. +block.unit-cargo-loader.description = Англійська назва: Unit Cargo Loader\nСтворює вантажні дрони. Дрони автоматично розподіляють предмети по пунктах розвантаження за допомогою відповідного фільтра. +block.unit-cargo-unload-point.description = Англійська назва: Unit Cargo Unload Point\nВиступає в якості пункта розвантаження для вантажних дронів. Приймає вантажі, які відповідають вибраному фільтру. +block.beam-node.description = Англійська назва: Beam Node\nПередає енергію іншим блокам ортогонально. Запасає невелику кількість енергії. +block.beam-tower.description = Англійська назва: Beam Tower\nПередає енергію іншим блокам ортогонально. Зберігає велику кількість енергії. Має великий радіус дії. +block.turbine-condenser.description = Англійська назва: Turbine Condenser\nВиробляє енергію при розміщенні на джерелах. Виробляє невелику кількість води. +block.chemical-combustion-chamber.description = Англійська назва: Chemical Combustion Chamber\nВиробляє енергію з аркициту та озону. +block.pyrolysis-generator.description = Англійська назва: Pyrolysis Generator\nВиробляє велику кількість електроенергії з аркициту та шлаку. Виробляє воду як побічний продукт. +block.flux-reactor.description = Англійська назва: Flux Reactor\nПри нагріванні виділяє велику кількість енергії. Потребує ціаногену як стабілізатора. Вихідна енергія і потреба в ціаногені пропорційні тепловому навантаженню.\nВибухає при недостатній кількості ціаногену. +block.neoplasia-reactor.description = Англійська назва: Neoplasia Reactor\nВикористовує аркіцит, воду і фазову тканину для виробництва великої кількості енергії. Виробляє тепло і небезпечні новоутворення як побічний продукт.\nВибухає з силою, якщо новоутворення не видалити з реактора через трубопроводи. +block.build-tower.description = Англійська назва: Build Tower\nАвтоматично перебудовує споруди в зоні досяжності та допомагає іншим одиницям у будівництві. +block.regen-projector.description = Англійська назва: Regen Projector\nПовільно ремонтує суміжні споруди у квадратному периметрі. Потребує водню. +block.reinforced-container.description = Англійська назва: Reinforced Container\nЗберігає невелику кількість предметів. Вміст можна отримати за допомогою розвантажувачів. Не збільшує ємність основного сховища. +block.reinforced-vault.description = Англійська назва: Reinforced Vault\nЗберігає велику кількість предметів. Вміст можна отримати за допомогою розвантажувачів. Не збільшує ємність ядра. +block.tank-fabricator.description = Англійська назва: Tank Fabricator\nСтворює одиниці «Стел». Випущені одиниці можна використовувати безпосередньо або перемістити в переробний завод для поліпшення. +block.ship-fabricator.description = Англійська назва: Ship Fabricator\nСтворює одиниці «Ухиляч». Випущені одиниці можна використовувати безпосередньо або перемістити в переробний завод для поліпшення. +block.mech-fabricator.description = Англійська назва: Mech Fabricator\nСтворює одиниці «Меруй». Випущені одиниці можна використовувати безпосередньо або перемістити в переробний завод для поліпшення. +block.tank-assembler.description = Англійська назва: Tank Assembler\nЗбирає великі танки з введених блоків та одиниць. Рівень виходу може бути збільшений шляхом додавання модулів. +block.ship-assembler.description = Англійська назва: Ship Assembler\nЗбирає великі кораблі з введених блоків та одиниць. Рівень виходу може бути збільшений шляхом додавання модулів. +block.mech-assembler.description = Англійська назва: Mech Assembler\nЗбирає великі мехи з введених блоків та одиниць. Рівень виходу може бути збільшений шляхом додавання модулів. +block.tank-refabricator.description = Англійська назва: Tank Refabricator\nПоліпшує введені танкові одиниці до другого рівня. +block.ship-refabricator.description = Англійська назва: Ship Refabricator\nПоліпшує введені корабельні одиниці до другого рівня. +block.mech-refabricator.description = Англійська назва: Mech Refabricator\nПоліпшує введені мехові одиниці до другого рівня. +block.prime-refabricator.description = Англійська назва: Prime Refabricator\nПоліпшує введені одиниці до другого рівня. +block.basic-assembler-module.description = Англійська назва: Basic Assembler Module\nПідвищує рівень збирача, якщо його розмістити поруч з межею будівлі. Потребує енергії. Може використовуватися як вхід для вантажу. +block.small-deconstructor.description = Англійська назва: Small Deconstructor\nДеконструює введені конструкції та блоки. Повертає 100% вартості побудови. +block.reinforced-payload-conveyor.description = Англійська назва: Reinforced Payload Conveyor\nПереміщує вантаж вперед. +block.reinforced-payload-router.description = Англійська назва: Reinforced Payload Router\nРозподіляє вантажі в сусідні блоки. Функціонує як сортувальник при встановленому фільтрі. +block.payload-mass-driver.description = Англійська назва: Payload Mass Driver\nСтруктура транспортування вантажу великої дальності. Вистрілює отриманий вантаж на зв’язані вантажні катапульти. +block.large-payload-mass-driver.description = Англійська назва: Large Payload Mass Driver\nСтруктура транспортування вантажу великої дальності. Вистрілює отриманий вантаж на зв’язані вантажні катапульти. +block.unit-repair-tower.description = Англійська назва: Unit Repair Tower\nРемонтує всі одиниці, що знаходяться поблизу. Потребує озону. +block.radar.description = Англійська назва: Radar\nПоступово проявляє місцевість та одиниці противника у великому радіусі. Вимагає енергії. +block.shockwave-tower.description = Англійська назва: Shockwave Tower\nПошкоджує та знищує ворожі снаряди в радіусі. Потребує ціаногену. +block.canvas.description = Англійська назва: Canvas\nПоказує просте зображення із заздалегідь визначеною палітрою. Можна редагувати. -unit.dagger.description = Вистрілює стандартними кулями в найближчих ворогах. -unit.mace.description = Вистрілює потоками полум’я в найближчих ворогів. -unit.fortress.description = Вистрілює з далекобійної артилерії в наземних цілей. -unit.scepter.description = Вистрілює шквалом заряджених куль у найближчих ворогів. -unit.reign.description = Вистрілює шквалом масивних пронизливих куль у найближчих ворогів. -unit.nova.description = Вистрілює лазерними болтами, що завдають шкоди ворогам та відновлюють союзні споруди. Здатний до польоту. -unit.pulsar.description = Випускає дуги електрики, що завдають шкоди ворогам та відновлюють союзні споруди. Здатний до польоту. -unit.quasar.description = Вистрілює пробивними лазерними променями, що пошкоджують ворогів та відновлюють союзні споруди. Здатний до польоту. Захищений. -unit.vela.description = Вистрілює масивним безперервним лазерним променем, що завдає шкоди ворогам, спричиняє пожежі та відновлює союзні споруди. Здатний до польоту. -unit.corvus.description = Спричиняє масивний лазерний вибух, що завдає шкоди ворогам та відновлює споріднені споруди. Може переступати через більшість місцевості. -unit.crawler.description = Біжить до ворогів і самознищується, викликаючи великий вибух. -unit.atrax.description = Випалює виснажливі шари шлаку в наземних цілях. Може переступити більшість місцевості. -unit.spiroct.description = Вистрілює виснажливими лазерними променями у ворогів, відновлюючись водночас. Може переступати через більшість місцевості. -unit.arkyid.description = Вистрілює у ворогів великими виснажливими лазерними променями, відновлюючись при цьому. -unit.toxopid.description = Вистрілює у ворогів великими електричними касетними снарядами та пробивними лазерами. Може переступати через більшість місцевості. -unit.flare.description = Вистрілює стандартними кулями в найближчі цілі. -unit.horizon.description = Кидає купу бомб на наземні цілі. -unit.zenith.description = Вистрілює залпи ракет у всіх найближчих ворогів. -unit.antumbra.description = Вистрілює шквал куль у всіх найближчих ворогів. -unit.eclipse.description = Вистрілює двома пронизливими лазерами та шквалом куль у всіх найближчих ворогів. -unit.mono.description = Автоматично видобуває мідь і свинець і кладе їх у ядро. -unit.poly.description = Автоматично перебудовує зруйновані споруди та допомагає іншим одиницям у будівництві. -unit.mega.description = Автоматично відновлює пошкоджені споруди. Здатний нести блоки та невеликі наземні одиниці. -unit.quad.description = Кидає великі бомби на наземні цілі, відновлюючи союзні споруди та завдаючи шкоди ворогам. Здатний нести середні наземні одиниці. -unit.oct.description = Захищає найближчих союзників своїм відновлювальним щитом. Здатний нести більшість наземних одиниць. -unit.risso.description = Вистрілює шквалом ракет і куль по всіх найближчих ворогах. -unit.minke.description = Вистрілює запальними снарядами та стандартними кулями по найближчих наземних цілях. -unit.bryde.description = Вистрілює у ворогів артилерійськими снарядами та ракетами великої дальності. -unit.sei.description = Вистрілює у ворогів шквалом ракет і бронебійних куль. -unit.omura.description = Вистрілює у ворогів далекобійним болтом, що пробиває броню. Виробляє повітряних Фальшфеєрів. -unit.alpha.description = Захищає ядро «Уламок» від противників. Будує споруди. -unit.beta.description = Захищає ядро «Штаб» від противників. Будує споруди. -unit.gamma.description = Захищає ядро «Атом» від противників. Будує споруди. -unit.retusa.description = Вистрілює самонаведеними торпедами по ворогах. Ремонтує найближчі одиниці. -unit.oxynoe.description = Вистрілює потоками полум’я, що ремонтують споруди та завдають шкоду ворогам. Захищає від ворожих снарядів за допомогою башти точкової оборони. -unit.cyerce.description = Вистрілює у ворогів навідними касетними ракетами. Ремонтує найближчі одиниці. -unit.aegires.description = Електризує ворожі одиниці та будівлі, що входять до його енергетичного поля. Ремонтує всіх союзників. -unit.navanax.description = Вистрілює вибухонебезпечні снаряди електромагнітного імпульсу, завдаючи значної шкоди ворожим енергетичним мережам та ремонтуючи союзницькі споруди. Розплавляє сусідніх ворогів за допомогою 4 автономних лазерних веж. +unit.dagger.description = Англійська назва: Dagger\nВистрілює стандартними кулями в найближчих ворогах. +unit.mace.description = Англійська назва: Mace\nВистрілює потоками полум’я в найближчих ворогів. +unit.fortress.description = Англійська назва: Fortress\nВистрілює з далекобійної артилерії в наземних цілей. +unit.scepter.description = Англійська назва: Scepter\nВистрілює шквалом заряджених куль у найближчих ворогів. +unit.reign.description = Англійська назва: Reign\nВистрілює шквалом масивних пронизливих куль у найближчих ворогів. +unit.nova.description = Англійська назва: Nova\nВистрілює лазерними болтами, що завдають шкоди ворогам та відновлюють союзні споруди. Здатний до польоту. +unit.pulsar.description = Англійська назва: Pulsar\nВипускає дуги електрики, що завдають шкоди ворогам та відновлюють союзні споруди. Здатний до польоту. +unit.quasar.description = Англійська назва: Quasar\nВистрілює пробивними лазерними променями, що пошкоджують ворогів та відновлюють союзні споруди. Здатний до польоту. Захищений. +unit.vela.description = Англійська назва: Vela\nВистрілює масивним безперервним лазерним променем, що завдає шкоди ворогам, спричиняє пожежі та відновлює союзні споруди. Здатний до польоту. +unit.corvus.description = Англійська назва: Corvus\nСпричиняє масивний лазерний вибух, що завдає шкоди ворогам та відновлює споріднені споруди. Може переступати через більшість місцевості. +unit.crawler.description = Англійська назва: Crawler\nБіжить до ворогів і самознищується, викликаючи великий вибух. +unit.atrax.description = Англійська назва: Atrax\nВипалює виснажливі шари шлаку в наземних цілях. Може переступити більшість місцевості. +unit.spiroct.description = Англійська назва: Spiroct\nВистрілює виснажливими лазерними променями у ворогів, відновлюючись водночас. Може переступати через більшість місцевості. +unit.arkyid.description = Англійська назва: Arkyid\nВистрілює у ворогів великими виснажливими лазерними променями, відновлюючись при цьому. +unit.toxopid.description = Англійська назва: Toxopid\nВистрілює у ворогів великими електричними касетними снарядами та пробивними лазерами. Може переступати через більшість місцевості. +unit.flare.description = Англійська назва: Flare\nВистрілює стандартними кулями в найближчі цілі. +unit.horizon.description = Англійська назва: Horizon\nКидає купу бомб на наземні цілі. +unit.zenith.description = Англійська назва: Zenith\nВистрілює залпи ракет у всіх найближчих ворогів. +unit.antumbra.description = Англійська назва: Antumbra\nВистрілює шквал куль у всіх найближчих ворогів. +unit.eclipse.description = Англійська назва: Eclipse\nВистрілює двома пронизливими лазерами та шквалом куль у всіх найближчих ворогів. +unit.mono.description = Англійська назва: Mono\nАвтоматично видобуває мідь і свинець і кладе їх у ядро. +unit.poly.description = Англійська назва: Poly\nАвтоматично перебудовує зруйновані споруди та допомагає іншим одиницям у будівництві. +unit.mega.description = Англійська назва: Mega\nАвтоматично відновлює пошкоджені споруди. Здатний нести блоки та невеликі наземні одиниці. +unit.quad.description = Англійська назва: Quad\nКидає великі бомби на наземні цілі, відновлюючи союзні споруди та завдаючи шкоди ворогам. Здатний нести середні наземні одиниці. +unit.oct.description = Англійська назва: Oct\nЗахищає найближчих союзників своїм відновлювальним щитом. Здатний нести більшість наземних одиниць. +unit.risso.description = Англійська назва: Risso\nВистрілює шквалом ракет і куль по всіх найближчих ворогах. +unit.minke.description = Англійська назва: Minke\nВистрілює запальними снарядами та стандартними кулями по найближчих наземних цілях. +unit.bryde.description = Англійська назва: Bryde\nВистрілює у ворогів артилерійськими снарядами та ракетами великої дальності. +unit.sei.description = Англійська назва: Sei\nВистрілює у ворогів шквалом ракет і бронебійних куль. +unit.omura.description = Англійська назва: Omura\nВистрілює у ворогів далекобійним болтом, що пробиває броню. Виробляє повітряних Фальшфеєрів. +unit.alpha.description = Англійська назва: Alpha\nЗахищає ядро «Уламок» від противників. Будує споруди. +unit.beta.description = Англійська назва: Beta\nЗахищає ядро «Штаб» від противників. Будує споруди. +unit.gamma.description = Англійська назва: Gamma\nЗахищає ядро «Атом» від противників. Будує споруди. +unit.retusa.description = Англійська назва: Retusa\nВистрілює самонаведеними торпедами по ворогах. Ремонтує найближчі одиниці. +unit.oxynoe.description = Англійська назва: Oxynoe\nВистрілює потоками полум’я, що ремонтують споруди та завдають шкоду ворогам. Захищає від ворожих снарядів за допомогою башти точкової оборони. +unit.cyerce.description = Англійська назва: Cyerce\nВистрілює у ворогів навідними касетними ракетами. Ремонтує найближчі одиниці. +unit.aegires.description = Англійська назва: Aegires\nЕлектризує ворожі одиниці та будівлі, що входять до його енергетичного поля. Ремонтує всіх союзників. +unit.navanax.description = Англійська назва: Navanax\nВистрілює вибухонебезпечні снаряди електромагнітного імпульсу, завдаючи значної шкоди ворожим енергетичним мережам та ремонтуючи союзницькі споруди. Розплавляє сусідніх ворогів за допомогою 4 автономних лазерних веж. #Erekir -unit.stell.description = Веде вогонь по ворожих цілях звичайними кулями. -unit.locus.description = Веде почерговий вогонь по ворожих цілях. -unit.precept.description = Веде вогонь по ворожих цілях касетними кумулятивними кулями. -unit.vanquish.description = Веде вогонь по ворожих цілях великими пробивними осколково-фугасними кулями. -unit.conquer.description = Веде вогонь великими пробивними каскадами куль по ворожих цілях. -unit.merui.description = Веде вогонь з далекобійної артилерії по наземних цілях противника. Може пересуватися по більшості видів місцевості. -unit.cleroi.description = Веде вогонь здвоєними снарядами по ворожих цілях. Прицільно знищує снаряди противника за допомогою точкових захисних башт. Може пересуватися по більшості видів місцевості. -unit.anthicus.description = Веде вогонь по ворожих цілях ракетами дальнього радіуса дії з самонаведенням. Може пересуватися по більшості видів місцевості. -unit.tecta.description = Веде вогонь самонавідними плазмовими ракетами по ворожих цілях. Захищається за допомогою щита спрямованої дії. Може пересуватися по більшості видів місцевості. -unit.collaris.description = Веде дальній осколково-фугасний вогонь по ворожих цілях. Може пересуватися по більшості видів місцевості. -unit.elude.description = Стріляє парами самонавідних куль по ворожих цілях. Може парити над об’єктами з рідиною. -unit.avert.description = Веде вогонь по ворожих цілях закрученими парами куль. -unit.obviate.description = Стріляє по ворожих цілях закрученими парами блискавичних куль. -unit.quell.description = Веде вогонь далекобійними самонавідними ракетами по об’єктах противника. Блокує ремонтні пункти супротивника. -unit.disrupt.description = Веде вогонь ракетами дальнього радіуса дії з самонаведенням по об’єктах противника. Блокує ремонтні пункти супротивника. -unit.evoke.description = Будує споруди для захисту ядра «Бастіон». Ремонтує споруди за допомогою променя. -unit.incite.description = Будує споруди для захисту ядра «Цитадель». Ремонтує споруди за допомогою променя. -unit.emanate.description = Будує споруди для захисту ядра «Акрополь». Ремонтує споруди за допомогою променя. +unit.stell.description = Англійська назва: Stell\nВеде вогонь по ворожих цілях звичайними кулями. +unit.locus.description = Англійська назва: Locus\nВеде почерговий вогонь по ворожих цілях. +unit.precept.description = Англійська назва: Precept\nВеде вогонь по ворожих цілях касетними кумулятивними кулями. +unit.vanquish.description = Англійська назва: Vanquish\nВеде вогонь по ворожих цілях великими пробивними осколково-фугасними кулями. +unit.conquer.description = Англійська назва: Conquer\nВеде вогонь великими пробивними каскадами куль по ворожих цілях. +unit.merui.description = Англійська назва: Merui\nВеде вогонь з далекобійної артилерії по наземних цілях противника. Може пересуватися по більшості видів місцевості. +unit.cleroi.description = Англійська назва: Cleroi\nВеде вогонь здвоєними снарядами по ворожих цілях. Прицільно знищує снаряди противника за допомогою точкових захисних башт. Може пересуватися по більшості видів місцевості. +unit.anthicus.description = Англійська назва: Anthicus\nВеде вогонь по ворожих цілях ракетами дальнього радіуса дії з самонаведенням. Може пересуватися по більшості видів місцевості. +unit.tecta.description = Англійська назва: Tecta\nВеде вогонь самонавідними плазмовими ракетами по ворожих цілях. Захищається за допомогою щита спрямованої дії. Може пересуватися по більшості видів місцевості. +unit.collaris.description = Англійська назва: Collaris\nВеде дальній осколково-фугасний вогонь по ворожих цілях. Може пересуватися по більшості видів місцевості. +unit.elude.description = Англійська назва: Elude\nСтріляє парами самонавідних куль по ворожих цілях. Може парити над об’єктами з рідиною. +unit.avert.description = Англійська назва: Avert\nВеде вогонь по ворожих цілях закрученими парами куль. +unit.obviate.description = Англійська назва: Obviate\nСтріляє по ворожих цілях закрученими парами блискавичних куль. +unit.quell.description = Англійська назва: Quell\nВеде вогонь далекобійними самонавідними ракетами по об’єктах противника. Блокує ремонтні пункти супротивника. +unit.disrupt.description = Англійська назва: Disrupt\nВеде вогонь ракетами дальнього радіуса дії з самонаведенням по об’єктах противника. Блокує ремонтні пункти супротивника. +unit.evoke.description = Англійська назва: Evoke\nБудує споруди для захисту ядра «Бастіон». Ремонтує споруди за допомогою променя. +unit.incite.description = Англійська назва: Incite\nБудує споруди для захисту ядра «Цитадель». Ремонтує споруди за допомогою променя. +unit.emanate.description = Англійська назва: Emanate\nБудує споруди для захисту ядра «Акрополь». Ремонтує споруди за допомогою променя. lst.read = Зчитує число із з’єднаної комірки пам’яті. lst.write = Записує числу у з’єднану комірку пам’яті. @@ -2230,6 +2237,7 @@ lst.flushmessage = Показує повідомлення на екрані з lst.cutscene = Керує камерою гравця. lst.setflag = Установлює глобальний прапорець, який можуть прочитати усі процесори. lst.getflag = Перевіряє, чи встановлено глобальний прапорець. +lst.setprop = Установлює властивість одиниці чи будівлі. logic.nounitbuild = [red]Будування за допомогою процесорів заборено. diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties index 8e870c20c1..646ed73abd 100644 --- a/core/assets/bundles/bundle_vi.properties +++ b/core/assets/bundles/bundle_vi.properties @@ -14,7 +14,7 @@ link.f-droid.description = F-Droid listing link.wiki.description = Mindustry wiki chính thức link.suggestions.description = Đề xuất các tính năng mới link.bug.description = Tìm thấy lỗi? Báo cáo nó ở đây -linkopen = This server has sent you a link. Are you sure you want to open it?\n\n[sky]{0} +linkopen = Máy chủ này đã gửi cho bạn một liên kết. Có chắc muốn mở nó chứ?\n\n[sky]{0} linkfail = Không mở được liên kết!\nURL đã được sao chép vào bộ nhớ tạm. screenshot = Ảnh chụp màn hình được lưu vào {0} screenshot.invalid = Bản đồ quá lớn, có khả năng không đủ bộ nhớ để chụp ảnh màn hình. @@ -45,12 +45,12 @@ mods.browser = Duyệt mod mods.browser.selected = Mod Đã chọn mods.browser.add = Cài đặt mods.browser.reinstall = Cài đặt lại -mods.browser.view-releases = View Releases -mods.browser.noreleases = [scarlet]Không tìm thấy phiên bản\n[accent]Không thể tìm thấy bất kì phiên bản nào của mod này. Kiểm tra xem mod này đã có bất kỳ phiên bản nào được ra mắt chưa. +mods.browser.view-releases = Xem các bản phát hành +mods.browser.noreleases = [scarlet]Không Tìm Thấy Bản Phát Hành Nào\n[accent]Không thể tìm thấy bất cứ bản phát hành nào cho mod này. Hãy kiểm tra xem repository của mod đã có bản phát hành nào chưa. mods.browser.latest = -mods.browser.releases = Các phiên bản +mods.browser.releases = Các bản phát hành mods.github.open = Repo -mods.github.open-release = Release Page +mods.github.open-release = Trang phát hành mods.browser.sortdate = Sắp xếp theo gần đây mods.browser.sortstars = Sắp xếp theo sao @@ -82,13 +82,13 @@ schematic.tagdelconfirm = Xóa thẻ này? schematic.tagexists = Thẻ đã tồn tại. stats = Thống kê -stats.wave = Số lượt đã đánh bại +stats.wave = Đợt đã vượt qua stats.unitsCreated = Số quân lính đã tạo -stats.enemiesDestroyed = Số quân địch đã tiêu diệt -stats.built = Số kiến trúc đã xây dựng -stats.destroyed = Số kiến trúc bị phá hủy -stats.deconstructed = Số kiến trúc đã tháo dỡ -stats.playtime = Khoảng thời gian đã chơi +stats.enemiesDestroyed = Số kẻ địch đã tiêu diệt +stats.built = Số công trình đã xây +stats.destroyed = Số công trình bị phá huỷ +stats.deconstructed = Số công trình đã phá dỡ +stats.playtime = Thời gian chơi globalitems = [accent]Toàn bộ vật phẩm map.delete = Bạn có chắc chắn muốn xóa bản đồ "[accent]{0}[]"? @@ -144,20 +144,21 @@ mod.multiplayer.compatible = [gray]Tương thích với chế độ nhiều ngư mod.disable = Tắt mod.content = Nội dung: mod.delete.error = Không thể xóa mod. Tệp có thể đang được sử dụng. -mod.incompatiblegame = [red]Phiên bản game đã lỗi thời +mod.incompatiblegame = [red]Phiên bản trò chơi lỗi thời mod.incompatiblemod = [red]Không tương thích -mod.blacklisted = [red]Không hỗ trợ -mod.unmetdependencies = [red]Thiếu phần phụ thuộc +mod.blacklisted = [red]Không hổ trợ +mod.unmetdependencies = [red]Thiếu mod phụ thuộc mod.erroredcontent = [scarlet]Lỗi nội dung -mod.circulardependencies = [red]Circular Dependencies -mod.incompletedependencies = [red]Incomplete Dependencies -mod.requiresversion.details = Yêu cầu phiên bản game: [accent]{0}[]\nPhiên bản game của bạn đã lỗi thời. Mod này yêu cầu phiên bản mới hơn của game (có thể là phiên bản beta/alpha hoặc BE) để hoạt động. -mod.outdatedv7.details = Mod này không tương thích với phiên bản mới nhất của game. Tác giả của mod phải cập nhật nó, và thêm [accent]minGameVersion: 136[] vào trong tệp [accent]mod.json[]. -mod.blacklisted.details = Mod này đã vào danh sách đen vì gây ra các lỗi với phiên bản này của game. Đừng sử dụng nó. -mod.missingdependencies.details = Mod này thiếu phần phụ thuộc: {0} -mod.erroredcontent.details = Phần game này đã gặp lỗi khi tải. Liên hệ tác giả của mod để sửa chúng. -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.circulardependencies = [red]Phụ thuộc tròn +mod.incompletedependencies = [red]Thiếu mod phụ thuộc +mod.requiresversion.details = Yêu cầu phiên bản trò chơi: [accent]{0}[]\nPhiên bản của bạn đã lỗi thời. Mod này yêu cầu phiên bản mới hơn của trò chơi (có thể là các bản phát hành beta/alpha) để hoạt động. +mod.outdatedv7.details = Mod này không tương thích với phiên bản mới nhất của trò chơi. Tác giả cần phải cập nhật nó, và thêm [accent]minGameVersion: 136[] vào tệp [accent]mod.json[]. +mod.blacklisted.details = Mod này đã bị đưa vào danh sách đen do gây ra các sự cố đối với phiên bản trò chơi này. Đừng sử dụng nó. +mod.missingdependencies.details = Mod này thiếu các phụ thuộc: {0} +mod.erroredcontent.details = Đã xãy ra lỗi khi tải trò chơi. Vui lòng yêu cầu tác giả của mod sửa chúng. +mod.circulardependencies.details = Mod này có chứa các phụ thuộc mà chính nó cũng phụ thuộc vào các mod khác. +mod.incompletedependencies.details = Mod này không thể tải được do bị lỗi từ bên trong hoặc thiếu các phụ thuộc: {0}. + mod.requiresversion = Yêu cầu phiên bản game: [red]{0} mod.errors = Đã xảy ra lỗi khi tải nội dung. mod.noerrorplay = [scarlet]Bạn có mod bị lỗi.[]Tắt các mod bị lỗi hoặc sửa các lỗi trước khi chơi. @@ -186,14 +187,14 @@ launchcore = Phóng căn cứ filename = Tên tệp: unlocked = Đã mở khóa nội dung mới! available = Đã có mục nghiên cứu mới! -unlock.incampaign = < Mở khóa trong chiến dịch để biết chi tiết > +unlock.incampaign = < Mở khóa trong chiến dịch để biết thêm chi tiết > campaign.select = Chọn nơi bắt đầu chiến dịch -campaign.none = [lightgray]Chọn một hành tinh để bắt đầu.\nViệc này có thể thay đổi bất kì lúc nào. -campaign.erekir = Mới hơn, nội dung được trau chuốt hơn. Quá trình chơi liền mạch hơn.\n\nChất lượng và trải nghiệm tốt hơn. -campaign.serpulo = Nội dung cũ hơn; trải nghiệm cơ bản. Kết thúc mở.\n\nCó thể có các phần chơi và cơ chế chơi chưa được cân bằng. Ít được trau chuốt hơn. +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 chơi liền mạch hơn.\n\nBả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.\n\nRất có thể vẫn còn bản đồ hoặc hệ thống bị mất cân bằng. Ít được trau chuốt. completed = [accent]Hoàn tất techtree = Tiến trình -techtree.select = Lựa chọn tiến trình +techtree.select = Chọn nhánh nghiên cứu techtree.serpulo = Serpulo techtree.erekir = Erekir research.load = Tải @@ -210,13 +211,13 @@ server.closing = [accent]Đang đóng máy chủ... server.kicked.kick = Bạn đã bị kick khỏi máy chủ! server.kicked.whitelist = Bạn không nằm trong danh sách được vào máy chủ này. server.kicked.serverClose = Máy chủ đã đóng. -server.kicked.vote = Bạn đã bị vote-kick. Tạm biệt. +server.kicked.vote = Bạn đã bị bỏ phiếu buộc rời phòng. Tạm biệt. server.kicked.clientOutdated = Phiên bản máy chủ này mới hơn phiên bản trò chơi! Hãy cập nhật trò chơi của bạn! server.kicked.serverOutdated = Phiên bản máy chủ đã cũ! Hãy yêu cầu máy chủ đó cập nhật! server.kicked.banned = Bạn đã bị cấm trên máy chủ này. server.kicked.typeMismatch = Máy chủ này không tương thích với phiên bản của bạn. server.kicked.playerLimit = Máy chủ đã đầy. Hãy chờ một chỗ trống. -server.kicked.recentKick = Bạn đã bị kick gần đây.\nHãy chờ một lúc sau đó kết nối lại. +server.kicked.recentKick = Bạn đã bị buộc rời gần đây.\nHãy chờ một lúc sau đó kết nối lại. server.kicked.nameInUse = Có ai đó với cái tên này\nđã ở trong máy chủ. server.kicked.nameEmpty = Tên bạn đã chọn không hợp lệ. server.kicked.idInUse = Bạn đã ở trên máy chủ này! Bạn không được phép kết nối với hai tài khoản. @@ -256,7 +257,7 @@ trace.id = ID: [accent]{0} trace.mobile = Mobile Client: [accent]{0} trace.modclient = Client tùy chỉnh: [accent]{0} trace.times.joined = Số lần tham gia: [accent]{0} -trace.times.kicked = Số lần bị kick: [accent]{0} +trace.times.kicked = Số lần bị buộc rời: [accent]{0} invalidid = Client ID không hợp lệ! Vui lòng gửi báo cáo lỗi. server.bans = Cấm server.bans.none = Không có người chơi nào bị cấm! @@ -270,8 +271,8 @@ server.outdated.client = [scarlet]Trò chơi lỗi thời![] server.version = [gray]v{0} {1} server.custombuild = [accent]Phiên bản tùy chỉnh confirmban = Bạn có chắc chắn muốn cấm "{0}[white]"? -confirmkick = Bạn có chắc chắn muốn kick "{0}[white]"? -confirmvotekick = Bạn có chắc chắn muốn vote-kick "{0}[white]"? +confirmkick = Bạn có chắc chắn muốn buộc "{0}[white]" rời? +confirmvotekick = Bạn có chắc chắn muốn bỏ phiếu buộc "{0}[white]" rời? confirmunban = Bạn có chắc chắn muốn gỡ cấm người chơi này? confirmadmin = Bạn có chắc chắn muốn thêm "{0}[white]" làm quản trị viên? confirmunadmin = Bạn có chắc chắn muốn xóa quyền quản trị viên của "{0}[white]" ? @@ -331,11 +332,11 @@ customize = Luật tùy chỉnh cancel = Hủy command = Mệnh lệnh command.mine = Đào -command.repair = Sửa chữa -command.rebuild = Xây dựng lại -command.assist = Hỗ trợ người chơi -command.move = Di chuyển -command.boost = Boost +command.repair = Sửa Chữa +command.rebuild = Xây Dựng +command.assist = Hỗ Trợ Người Chơi +command.move = Di Chuyển +command.boost = Tăng Cường openlink = Mở link copylink = Sao chép link back = Quay lại @@ -356,11 +357,11 @@ downloading = [accent]Đang tải xuống... saving = [accent]Đang lưu... respawn = [accent][[{0}][] để hồi sinh tại căn cứ cancelbuilding = [accent][[{0}][] để hủy xây -selectschematic = [accent][[{0}][] to để chọn+sao chép +selectschematic = [accent][[{0}][] để chọn+sao chép pausebuilding = [accent][[{0}][] để tạm dừng xây dựng resumebuilding = [scarlet][[{0}][] để tiếp tục xây dựng enablebuilding = [scarlet][[{0}][] để bật xây dựng -showui = UI hidden.\nPress [accent][[{0}][] để hiện UI. +showui = Đã ẩn giao diện.\nNhấn [accent][[{0}][] để hiện lại giao diện. commandmode.name = [accent]Chế độ chỉ huy commandmode.nounits = [no units] wave = [accent]Đợt {0} @@ -392,7 +393,7 @@ map.publish.confirm = Bạn có chắc chắn muốn xuất bản bản đồ n workshop.menu = Chọn những gì bạn muốn làm với mục này. workshop.info = Thông tin mục changelog = Danh sách các thay đổi (không bắt buộc): -updatedesc = Ghi đè Tiêu đề và Mô tả +updatedesc = Ghi đè Tiêu đề & Mô tả eula = Steam EULA missing = Mục này đã bị xóa hoặc di chuyển.\n[lightgray]Danh sách workshop hiện đã được tự động hủy liên kết. publishing = [accent]Đang xuất bản... @@ -415,9 +416,9 @@ editor.nodescription = Bản đồ phải có mô tả ít nhất 4 ký tự tr editor.waves = Lượt: editor.rules = Luật: editor.generation = Cấu trúc: -editor.objectives = Objectives +editor.objectives = Mục tiêu editor.ingame = Chỉnh sửa trong trò chơi -editor.playtest = Playtest +editor.playtest = Chơi thử editor.publish.workshop = Xuất bản lên Workshop editor.newmap = Bản đồ mới editor.center = Trung tâm @@ -425,11 +426,11 @@ editor.search = Tìm kiếm bản đồ... editor.filters = Lọc bản đồ editor.filters.mode = Chế độ: editor.filters.type = Kiểu bản đồ: -editor.filters.search = Tìm kiếm trongtrong: +editor.filters.search = Tìm kiếm trong: editor.filters.author = Tác giả editor.filters.description = Miêu tả -editor.shiftx = Shift X -editor.shifty = Shift Y +editor.shiftx = Dịch theo X +editor.shifty = Dịch theo Y workshop = Workshop waves.title = Đợt waves.remove = Xóa @@ -440,7 +441,7 @@ waves.perspawn = mỗi lần xuất hiện waves.shields = khiên/đợt waves.to = đến waves.spawn = spawn: -waves.spawn.all = +waves.spawn.all = waves.spawn.select = Spawn Select waves.spawn.none = [scarlet]no spawns found in map waves.max = Số lượng quân lính tối đa @@ -458,6 +459,8 @@ waves.sort.reverse = Đảo ngược sắp xếp waves.sort.begin = Bắt đầu waves.sort.health = Máu waves.sort.type = Thể loại +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = Ẩn tất cả waves.units.show = Hiện tất cả @@ -483,12 +486,12 @@ editor.errorheader = Tệp bản đồ này không hợp lệ hoặc bị hỏng editor.errorname = Bản đồ không có tên được xác định. Bạn đang cố gắng tải một bản lưu? editor.update = Cập nhật editor.randomize = Ngẫu nhiên -editor.moveup = Move Up -editor.movedown = Move Down -editor.copy = Copy +editor.moveup = Di chuyển lên +editor.movedown = Di chuyển xuống +editor.copy = Sao Chép editor.apply = Áp dụng editor.generate = Tạo ra -editor.sectorgenerate = Sector Generate +editor.sectorgenerate = Tạo ra khu vực editor.resize = Thay đổi kích thước editor.loadmap = Mở bản đồ editor.savemap = Lưu bản đồ @@ -532,8 +535,8 @@ toolmode.fillteams = Fill Teams toolmode.fillteams.description = Fill teams instead of blocks. toolmode.drawteams = Draw Teams toolmode.drawteams.description = Draw teams instead of blocks. -toolmode.underliquid = Under Liquids -toolmode.underliquid.description = Draw floors under liquid tiles. +toolmode.underliquid = Dưới chất lỏng +toolmode.underliquid.description = Vẽ nền dưới các ô chất lỏng filters.empty = [lightgray]Không có bộ lọc! Thêm một cái bằng nút bên dưới. @@ -605,65 +608,65 @@ requirement.core = Phá hủy căn cứ địch ở {0} requirement.research = Nghiên cứu {0} requirement.produce = Sản lượng {0} requirement.capture = Chiếm {0} -requirement.onplanet = Control Sector On {0} -requirement.onsector = Land On Sector: {0} +requirement.onplanet = Kiểm Soát Khu Vực {0} +requirement.onsector = Đáp Xuống Khu Vực: {0} launch.text = Phóng research.multiplayer = Chỉ máy chủ mới có thể nghiên cứu các mục. map.multiplayer = Chỉ máy chủ mới có thể xem các khu vực. uncover = Khám phá configure = Tùy chỉnh vật phẩm -objective.research.name = Research -objective.produce.name = Obtain -objective.item.name = Obtain Item -objective.coreitem.name = Core Item -objective.buildcount.name = Build Count -objective.unitcount.name = Unit Count -objective.destroyunits.name = Destroy Units -objective.timer.name = Timer -objective.destroyblock.name = Destroy Block -objective.destroyblocks.name = Destroy Blocks -objective.destroycore.name = Destroy Core -objective.commandmode.name = Command Mode -objective.flag.name = Flag -marker.shapetext.name = Shape Text -marker.minimap.name = Minimap -marker.shape.name = Shape -marker.text.name = Text -marker.background = Background -marker.outline = Outline -objective.research = [accent]Research:\n[]{0}[lightgray]{1} -objective.produce = [accent]Obtain:\n[]{0}[lightgray]{1} -objective.destroyblock = [accent]Destroy:\n[]{0}[lightgray]{1} -objective.destroyblocks = [accent]Destroy: [lightgray]{0}[white]/{1}\n{2}[lightgray]{3} -objective.item = [accent]Obtain: [][lightgray]{0}[]/{1}\n{2}[lightgray]{3} -objective.coreitem = [accent]Move into Core:\n[][lightgray]{0}[]/{1}\n{2}[lightgray]{3} -objective.build = [accent]Build: [][lightgray]{0}[]x\n{1}[lightgray]{2} -objective.buildunit = [accent]Build Unit: [][lightgray]{0}[]x\n{1}[lightgray]{2} -objective.destroyunits = [accent]Destroy: [][lightgray]{0}[]x Units -objective.enemiesapproaching = [accent]Enemies approaching in [lightgray]{0}[] -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]⚠ Nuclear launch detected: [lightgray]{0} -announce.nuclearstrike = [red]⚠ NUCLEAR STRIKE INBOUND ⚠ +objective.research.name = Nghiên cứu +objective.produce.name = Nhận +objective.item.name = Nhận vật phẩm +objective.coreitem.name = Vật phẩm trong căn cứ +objective.buildcount.name = Xây công trình +objective.unitcount.name = Sản xuất quân lính +objective.destroyunits.name = Tiêu diệt kẻ địch +objective.timer.name = Hẹn giờ +objective.destroyblock.name = Phá huỷ khối +objective.destroyblocks.name = Phá huỷ khối +objective.destroycore.name = Phá huỷ căn cứ +objective.commandmode.name = Chế độ ra lệnh +objective.flag.name = Cờ +marker.shapetext.name = Hình dạng văn bản +marker.minimap.name = Bản đồ nhỏ +marker.shape.name = Hình dạng +marker.text.name = Văn bản +marker.background = Nền +marker.outline = Đường viền +objective.research = [accent]Nghiên cứu:\n[]{0}[lightgray]{1} +objective.produce = [accent]Nhận:\n[]{0}[lightgray]{1} +objective.destroyblock = [accent]Phá huỷ:\n[]{0}[lightgray]{1} +objective.destroyblocks = [accent]Phá huỷ: [lightgray]{0}[white]/{1}\n{2}[lightgray]{3} +objective.item = [accent]Nhận: [][lightgray]{0}[]/{1}\n{2}[lightgray]{3} +objective.coreitem = [accent]Chuyển vào căn cứ:\n[][lightgray]{0}[]/{1}\n{2}[lightgray]{3} +objective.build = [accent]Xây: [][lightgray]{0}[]x\n{1}[lightgray]{2} +objective.buildunit = [accent]Tạo quân lính: [][lightgray]{0}[]x\n{1}[lightgray]{2} +objective.destroyunits = [accent]Tiêu diệt: [][lightgray]{0}[]x Quân lính +objective.enemiesapproaching = [accent]Kẻ địch sẽ xuất hiện sau [lightgray]{0}[] +objective.enemyescelating = [accent]Kẻ địch sẽ bắt đầu sản xuất sau [lightgray]{0}[] +objective.enemyairunits = [accent]Kẻ địch sẽ bắt đầu tạo quân lính bay sau [lightgray]{0}[] +objective.destroycore = [accent]Phá huỷ căn cứ đối phương +objective.command = [accent]Ra lệnh +objective.nuclearlaunch = [accent]⚠ Phát hiện tên lửa hạt nhân sắp phóng: [lightgray]{0} +announce.nuclearstrike = [red]⚠ TÊN LỬA HẠT NHÂN SẮP VA CHẠM ⚠ loadout = Vật phẩm resources = Tài nguyên -resources.max = Max +resources.max = Tối đa bannedblocks = Khối bị cấm -objectives = Objectives +objectives = Mục tiêu bannedunits = Quân lính bị cấm -rules.hidebannedblocks = Hide Banned Blocks -bannedunits.whitelist = Banned Units As Whitelist -bannedblocks.whitelist = Banned Blocks As Whitelist +rules.hidebannedblocks = Ẩn Các Khối Bị Cấm +bannedunits.whitelist = Chỉ cho phép dùng các quân lính bị cấm +bannedblocks.whitelist = Chỉ cho phép dùng các khối bị cấm addall = Thêm tất cả launch.from = Đang phóng từ: [accent]{0} -launch.capacity = Launching Item Capacity: [accent]{0} +launch.capacity = Lượng vật phẩm tối đa có thể phóng: [accent]{0} launch.destination = Đích đến: {0} configure.invalid = Số lượng phải là số trong khoảng 0 đến {0}. add = Thêm... -guardian = Guardian +guardian = Boss connectfail = [scarlet]Lỗi kết nối:\n\n[accent]{0} error.unreachable = Không thể truy cập máy chủ.\nKiểm tra lại xem địa chỉ có đúng không? @@ -681,8 +684,8 @@ weather.snow.name = Tuyết weather.sandstorm.name = Bão cát weather.sporestorm.name = Bão bào tử weather.fog.name = Sương mù -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]Thời gian chơi trên khu vực: {0} +campaign.complete = [accent]Chúc mừng.\n\nKẻ địch trên {0} đã bị đánh bại.\n[lightgray]Khu vực cuối cùng đã được chinh phục. sectorlist = Khu vực sectorlist.attacked = {0} đang bị tấn công @@ -703,11 +706,11 @@ sectors.rename = Đổi tên khu vực sectors.enemybase = [scarlet]Căn cứ địch sectors.vulnerable = [scarlet]Dễ bị tổn thất sectors.underattack = [scarlet]Đang bị tấn công! [accent]{0}% tổn thất -sectors.underattack.nodamage = [scarlet]Uncaptured +sectors.underattack.nodamage = [scarlet]Chưa được chiếm sectors.survives = [accent]Vượt qua {0} đợt sectors.go = Đi -sector.abandon = Abandon -sector.abandon.confirm = This sector's core(s) will self-destruct.\nContinue? +sector.abandon = Rời bỏ +sector.abandon.confirm = Những căn cứ ở đây sẽ tự huỷ.\nTiếp tục chứ? sector.curcapture = Khu vực đã chiếm sector.curlost = Khu vực đã mất sector.missingresources = [scarlet]Không đủ tài nguyên căn cứ @@ -716,9 +719,9 @@ sector.lost = Khu vực [accent]{0}[white] đã mất! #note: the missing space in the line below is intentional sector.captured = Khu vực [accent]{0}[white]đã chiếm! sector.changeicon = Thay đổi icon -sector.noswitch.title = Unable to Switch Sectors -sector.noswitch = You may not switch sectors while an existing sector is under attack.\n\nSector: [accent]{0}[] on [accent]{1}[] -sector.view = View Sector +sector.noswitch.title = Không thể thay đổi sang khu vực khác +sector.noswitch = Bạn không thể đổi sang khu vực khác khi một khu vực đang bị tấn công.\n\nKhu vực: [accent]{0}[] ở [accent]{1}[] +sector.view = Xem khu vực threat.low = Thấp threat.medium = Trung bình @@ -751,24 +754,24 @@ sector.planetaryTerminal.name = Planetary Launch Terminal sector.coastline.name = Coastline sector.navalFortress.name = Naval Fortress -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ẻ thù thấp. Ít tài nguyên.\nThu thập càng nhiều chì và đồng càng tốt.\nTiến lên. -sector.frozenForest.description = Ngay cả ở đây, gần núi hơn, các bào tử đã phát tán. Nhiệt độ lạnh giá không thể chứa chúng mãi mãi.\n\nBắt đầu tham gia vào quyền lực. Chế tạo máy phát điện đốt. Học cách sử dụng Máy sửa chữa. -sector.saltFlats.description = Ở vùng ngoại ô của sa mạc Salt Flats. Có thể tìm thấy ít tài nguyên ở khu vực này.\n\nKẻ thù đã dựng lên một khu phức hợp lưu trữ tài nguyên ở đây. Loại bỏ căn cứ của họ. Không để lại gì. -sector.craters.description = Nước đã tích tụ trong miệng núi lửa này, di tích của các cuộc chiến tranh cũ. Hãy chiếm lại khu vực. Thu gom cát, metaglass . Bơm nước để làm mát súng và mũi khoan. -sector.ruinousShores.description = Qua những chất thải, là bờ biển. Một thời, vị trí này là nơi đặt một hệ thống phòng thủ ven biển. Không còn lại nhiều. Chỉ những công trình phòng thủ cơ bản nhất vẫn không bị tổn thương, mọi thứ khác đều trở thành đống sắt vụn.\nTiếp tục mở rộng ra bên ngoài. Khám phá lại công nghệ. -sector.stainedMountains.description = Xa hơn trong đất liền là những ngọn núi, chưa bị bào tử xâm hại.\nKhai thác titan dồi dào trong khu vực này. Tìm hiểu làm thế nào để sử dụng nó.\n\nSự hiện diện của kẻ thù ở đây lớn hơn. Đừng cho họ thời gian để có quân lính mạnh nhất của họ. -sector.overgrowth.description = Khu vực này cây cối mọc um tùm, gần nguồn bào tử hơn.\nĐịch đã lập tiền đồn ở đây. Chế tạo Mace. Phá hủy nó. Đòi lại thứ đã mất. -sector.tarFields.description = Vùng ngoại ô của khu sản xuất dầu, giữa núi và sa mạc. Một trong số ít khu vực có trữ lượng dầu có thể sử dụng được.\nMặc dù bị bỏ hoang, khu vực này có một số lực lượng địch nguy hiểm gần đó. Đừng đánh giá thấp chúng.\n\n[lightgray]Nghiên cứu công nghệ chế biến dầu nếu có thể. -sector.desolateRift.description = Một vùng cực kỳ nguy hiểm. Tài nguyên dồi dào, nhưng ít không gian. Nguy cơ phá hủy cao. Hãy rời đi càng sớm càng tốt. Đừng để bị lừa bởi khoảng cách dài giữa các cuộc tấn công của kẻ thù. +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ẻ thù thấp nhưng í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ù ở 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 chế tạo máy phát điện đốt và học cách sử dụng Máy sửa chữa. +sector.saltFlats.description = Ở vùng rìa sa mạc chính là Salt Flats, có thể tìm thấy một ít tài nguyên ở khu vực này.\n\nKẻ thù đã dựng lên một khu phức hợp lưu trữ tài nguyên ở đây. Hãy loại bỏ hoàn toàn căn cứ này. +sector.craters.description = Nước đã tích tụ trong miệng núi lửa ở đây, vốn là dấu tích của các cuộc chiến tranh cũ. Hãy chiếm lại khu vực. Thu gom cát, metaglass . Bơm nước để làm mát súng và mũi khoan. +sector.ruinousShores.description = Vượt qua những địa hình mấp mô, là bờ biển. Vị trí này từng là nơi đặt một hệ thống phòng thủ ven biển. Không còn lại gì nhiều, chỉ những công trình phòng thủ cơ bản nhất vẫn không bị tổn thương, mọi thứ khác đều trở thành đống sắt vụn.\nTiếp tục mở rộng ra bên ngoài. Khám phá công nghệ có ở đây. +sector.stainedMountains.description = Xa hơn trong đất liền là những ngọn núi, chưa bị bào tử xâm lấn.\nKhai thác titan dồi dào trong khu vực này. Tìm hiểu làm thế nào để sử dụng nó.\n\nSự hiện diện của kẻ thù ở đây lớn hơn. Đừng cho họ thời gian để có quân lính mạnh nhất của họ. +sector.overgrowth.description = Khu vực này cây cối mọc um tùm, gần nguồn bào tử hơn.\nĐịch đã lập tiền đồn ở đây. Chế tạo Mace. Phá hủy căn cứu địch và đòi lại thứ đã mất. +sector.tarFields.description = Vùng ngoại ô của khu sản xuất dầu, nằm giữa núi và sa mạc. Một trong số ít khu vực có trữ lượng dầu có thể sử dụng được.\nMặc dù bị bỏ hoang, khu vực này có một số lực lượng địch nguy hiểm gần đó. Đừng đánh giá thấp chúng.\n\n[lightgray]Nghiên cứu công nghệ chế biến dầu nếu có thể. +sector.desolateRift.description = Một vùng cực kỳ nguy hiểm. Tài nguyên dồi dào, nhưng ít không gian. Nguy cơ thất thủ cao. Hãy rời đi càng sớm càng tốt. Đừng để bị lừa bởi khoảng cách dài giữa các cuộc tấn công của kẻ thù. sector.nuclearComplex.description = Một cơ sở trước đây để sản xuất và chế biến thorium, đã biến thành đống đổ nát.\n[lightgray]Nghiên cứu thorium và nhiều công dụng của nó.\n\nKẻ thù có mặt ở đây với số lượng rất lớn, liên tục lùng sục những kẻ tấn công. sector.fungalPass.description = Khu vực chuyển tiếp giữa vùng núi cao và vùng đất thấp hơn, đầy bào tử. Một căn cứ trinh sát nhỏ của địch được đặt tại đây.\nPhá hủy nó.\nSử dụng quân lính Dagger và Crawler. Phá hủy hai căn cứ của địch. -sector.biomassFacility.description = Nguồn gốc của bào tử. Đây là cơ sở mà chúng được nghiên cứu và sản xuất ban đầu.\nNghiên cứu công nghệ có bên trong. Nuôi cấy bào tử để sản xuất nhiên liệu và chất dẻo.\n\n[lightgray]Khi cơ sở này sụp đổ, các bào tử đã được giải phóng. Không có gì trong hệ sinh thái địa phương có thể cạnh tranh với một sinh vật xâm lấn như vậy. -sector.windsweptIslands.description = Xa hơn đường bờ biển là chuỗi đảo xa xôi này. Hồ sơ cho thấy họ đã từng có công trình sản xuất [accent]Plastanium[] .\n\nChống lại các lực lượng hải quân của kẻ thù. Thiết lập căn cứ trên quần đảo. Nghiên cứu các nhà máy này. -sector.extractionOutpost.description = Một tiền đồn xa, được kẻ thù xây dựng với mục đích phóng nguồn lực sang các khu vực khác.\n\nCông nghệ vận tải xuyên ngành là điều cần thiết để chinh phục hơn nữa. Phá hủy căn cứ. Nghiên cứu bệ phóng của họ. -sector.impact0078.description = Đây là tàn tích của tàu vận chuyển giữa các vì sao lần đầu tiên đi vào hệ thống này.\n\nLấy càng nhiều càng tốt từ đống đổ nát. Nghiên cứu bất kỳ công nghệ nguyên vẹn nào. -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ăn cứ tới các hành tinh địa phương. Nó được bảo vệ cực kỳ cẩn thận.\n\nSản xuất quân lính hải quân. Loại bỏ kẻ thù càng nhanh càng tốt. Nghiên cứu cấu trúc phóng. -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.biomassFacility.description = Nguồn gốc của bào tử. Đây là cơ sở mà chúng được nghiên cứu và sản xuất ban đầu.\nNghiên cứu công nghệ có ở đây. Nuôi cấy bào tử để sản xuất nhiên liệu và chất dẻo.\n\n[lightgray]Khi cơ sở này sụp đổ, các bào tử đã được giải phóng. Không có gì trong hệ sinh thái địa phương có thể cạnh tranh với một dạng sống xâm lấn mạnh như vậy. +sector.windsweptIslands.description = Xa hơn đường bờ biển là chuỗi đảo xa xôi này. Hồ sơ cho thấy họ đã từng có công trình sản xuất [accent]Nhựa[] .\n\nChống lại các lực lượng hải quân của kẻ thù. Thiết lập căn cứ trên quần đảo. Nghiên cứu các nhà máy này. +sector.extractionOutpost.description = Một tiền đồn xa, được kẻ thù xây dựng với mục đích phóng nguồn lực sang các khu vực khác.\n\nCông nghệ vận tải qua lại giữa các khu vực rất cần thiết để mở rộng hơn nữa. Phá hủy căn cứ và nghiên cứu bệ phóng của họ. +sector.impact0078.description = Đây là tàn tích của tàu vận chuyển giữa các vì sao đã từng đến được hệ sao này.\n\nLấy càng nhiều càng tốt từ đống đổ nát. Nghiên cứu bất kỳ công nghệ nguyên vẹn nào. +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ăn cứ 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 quân lính hải quân. Loại bỏ kẻ thù 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 quân lính hải quân tại địa điểm này. Chặn các cuộc tấn công của kẻ địch, chiếm khu vực này, và lấy được công nghệ. +sector.navalFortress.description = Kẻ địch đã thiết lập một căn cứ điều kiển từ xa, trên đảo tự nhiên. Phá hủy tiền đồn này. Chiếm công nghệ chế tạo quân lính hải quân tiên tiến của địch và nghiên cứu nó. sector.onset.name = The Onset sector.aegis.name = Aegis sector.lake.name = Lake @@ -786,40 +789,42 @@ sector.siege.name = Siege sector.crossroads.name = Crossroads sector.karst.name = Karst sector.origin.name = Origin -sector.onset.description = Commence the conquest of Erekir. Gather resources, produce units, and begin researching technology. +sector.onset.description = Bắt đầu hành trình chinh phục Erekir. Thu thập nguồn lực, sản xuất quân lính, và bắt đầu nghiên cứu công nghệ. -sector.aegis.description = This sector contains deposits of tungsten.\nResearch the [accent]Impact Drill[] to mine this resource, and destroy the enemy base in the area. -sector.lake.description = This sector's slag lake greatly limits viable units. A hover unit is the only option.\nResearch the [accent]ship fabricator[] and produce an [accent]elude[] unit as soon as possible. -sector.intersect.description = Scans suggest that this sector will be attacked from multiple sides soon after landing.\nSet up defenses quickly and expand as soon as possible.\n[accent]Mech[] units will be required for the area's rough terrain. -sector.atlas.description = This sector contains varied terrain and will require a variety of units to attack effectively.\nUpgraded units may also be necessary to get past some of the tougher enemy bases detected here.\nResearch the [accent]Electrolyzer[] and the [accent]Tank Refabricator[]. -sector.split.description = The minimal enemy presence in this sector makes it perfect for testing new transport tech. -sector.basin.description = Large enemy presence detected in this sector.\nBuild units quickly and capture enemy cores to gain a foothold. -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 = No enemy cores detected in the sector, although it's an important transportation route for the enemy. Expect variety of enemy forces.\nProduce [accent]surge alloy[]. Construct [accent]Afflict[] turrets. -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.aegis.description = Khu vực này chứa các kho lưu trữ của tungsten.\nNghiên cứu [accent]Máy khoan động lực[] để khai thác tài nguyên này này, và phá hủy căn cứ của địch ở khu vực này. +sector.lake.description = Hồ xỉ nóng chảy của khu vực này giới hạn rất nhiều các loại quân lính. Một loại quân lính có thể bay được là sự lựa chọn duy nhất.\nNghiên cứu [accent]Máy chế tạo phi thuyền[] và sản xuất một quân lính [accent]elude[] nhanh nhất có thể. +sector.intersect.description = Các thông tin cho thấy khu vực này sẽ bị tấn công từ nhiều hướng ngay sau khi đáp.\nThiết lập các lớp phòng thủ nhanh chóng và mở rộng nhanh nhất có thể.\n[accent]Lính cơ động[] sẽ là sự lựa chọn tốt nhất cho địa hình khó khăn của khu vực này. +sector.atlas.description = Khu vực này có địa hình phong phú và sẽ cần một loạt các loại quân lính để tấn công hiệu quả.\nCác loại quân lính được nâng cấp cũng có thể cần thiết để vượt qua một số căn cứ của địch ở đây.\nNghiên cứu [accent]Máy điện phân[] và [accent]Máy chế tạo xe tăng[]. +sector.split.description = Sự hiện diện của kẻ địch ở khu vực này rất ít, nên nó là một khu vực tốt để thử nghiệm các công nghệ vận chuyển mới. +sector.basin.description = Sự hiện diện của kẻ địch ở khu vực này rất lớn.\nSản xuất quân lính nhanh chóng và chiếm được các căn cứ của địch để có được một vị trí ổn định. +sector.marsh.description = Khu vực này có trữ lượng lớn arkycite, nhưng có rất ít các lỗ hơi nước.\nXây dựng [accent]Bể điện hóa[] để tạo năng lượng. +sector.peaks.description = Địa hình đồi núi của khu vực này khiến hầu hết các loại quân lính vô dụng. Cần phải có các loại phi thuyền.\nHãy cẩn thận với các công trình phòng thủ trên không của địch. Có thể bị vô hiệu hóa bằng cách tấn công các công trình hỗ trợ. +sector.ravine.description = Không có căn cứ nào của địch được phát hiện ở khu vực này, nhưng nó là một đường vận chuyển quan trọng cho địch. Có thể sẽ có rất nhiều quân lính của địch.\nSản xuất [accent]hợp kim[]. Xây dựng [accent]Afflict[]. + +sector.caldera-erekir.description = Các tài nguyên được phát hiện ở khu vực này được phân bố trên nhiều đảo.\nNghiên cứu và triển khai vận chuyển dựa trên máy bay không người lái. +sector.stronghold.description = Các căn cứ của địch ở khu vực này đang bảo vệ một lượng lớn [accent]thorium[].\nSử dụng nó để phát triển các loại quân lính và công trình tốt hơn. + +sector.crevice.description = Địch sẽ gửi các quân lính tấn công mạnh mẽ để tiêu diệt căn cứ của bạn ở khu vực này.\nPhát triển [accent]carbide[] và [accent]Máy nhiệt phân[] là điều cần thiết để sống sót. +sector.siege.description = Khu vực này có hai hẻm núi song song với nhau, kẻ địch sẽ tấn công từ hai phía.\nNghiên cứu [accent]cyanogen[] để có thể chế tạo những xe tank mạnh hơn.\nChú ý: Phát hiện kẻ địch được trang bị tên lửa tầm xa. Các tên lửa có thể bị bắn hạ trước khi va chạm. +sector.crossroads.description = Các căn cứ của địch ở khu vực này được xây dựng trên các địa hình khác nhau. Nghiên cứu các loại quân lính khác nhau sao cho phù hợp.\nNgoài ra, một số căn cứ được bảo vệ bởi các máy chiếu khiên chắn. Tìm hiểu cách chúng được cung cấp năng lượng. +sector.karst.description = Khu vực này có rất nhiều tài nguyên, nhưng sẽ bị địch tấn công khi một căn cứ mới đáp.\nTận dụng các tài nguyên và nghiên cứu [accent]sợi lượng tử[]. +sector.origin.description = Khu vực cuối cùng với sự hiện diện của địch rất lớn.\nKhông còn bất cứ thứ gì cần nghiên cứu - tập trung hoàn toàn vào việc tiêu diệt tất cả các căn cứ của địch. status.burning.name = Cháy status.freezing.name = Đóng băng status.wet.name = Ẩm -status.muddy.name = Muddy +status.muddy.name = Sa lầy status.melting.name = Tan chảy status.sapped.name = Ăn mòn -status.electrified.name = Electrified -status.spore-slowed.name = Spore Slowed -status.tarred.name = Tarred -status.overdrive.name = Overdrive -status.overclock.name = Overclock -status.shocked.name = Shock +status.electrified.name = Nhiễm điện +status.spore-slowed.name = Nhiễm bào tử +status.tarred.name = Nhiễm dầu +status.overdrive.name = Tăng cường +status.overclock.name = Gia tốc +status.shocked.name = Sốc status.blasted.name = Nổ status.unmoving.name = Bất động -status.boss.name = Guardian +status.boss.name = Boss settings.language = Ngôn ngữ settings.data = Dữ liệu trò chơi @@ -850,14 +855,14 @@ error.title = [scarlet]Đã xảy ra lỗi error.crashtitle = Đã xảy ra lỗi unit.nobuild = [scarlet]Quân lính/Công trình không thể xây dựng lastaccessed = [lightgray]Truy cập lần cuối: {0} -lastcommanded = [lightgray]Last Commanded: {0} +lastcommanded = [lightgray]Được điều khiển lần cuối: {0} block.unknown = [lightgray]??? stat.showinmap = stat.description = Mô tả stat.input = Đầu vào stat.output = Sản phẩm -stat.maxefficiency = Max Efficiency +stat.maxefficiency = Hiệu suất tối đa stat.booster = Tăng cường stat.tiles = Yêu cầu khu vực stat.affinities = Phù hợp @@ -887,10 +892,11 @@ stat.repairtime = Thời gian sửa stat.repairspeed = Tốc độ sửa stat.weapons = Vũ khí stat.bullet = Đạn -stat.moduletier = Module Tier +stat.moduletier = Cấp Module +stat.unittype = Unit Type stat.speedincrease = Tăng tốc stat.range = Phạm vi -stat.drilltier = Khoang được +stat.drilltier = Khoan được stat.drillspeed = Tốc độ khoang cơ bản stat.boosteffect = Hiệu ứng tăng cường stat.maxunits = Số quân lính hoạt động tối đa @@ -927,28 +933,28 @@ stat.ammouse = Sử dụng đạn stat.damagemultiplier = Hệ số sát thương stat.healthmultiplier = Hệ số độ bền stat.speedmultiplier = Hệ số tốc độ -stat.reloadmultiplier = Reload Multiplier +stat.reloadmultiplier = Hệ số tốc độ tấn công stat.buildspeedmultiplier = Hệ số tốc độ xây dựng stat.reactive = Phản ứng. -stat.immunities = Immunities +stat.immunities = Miễn nhiễm stat.healing = Sửa chữa ability.forcefield = Tạo khiên ability.repairfield = Sửa chữa/Xây dựng -ability.statusfield = {0} Status Field +ability.statusfield = {0} Vùng gia tốc ability.unitspawn = Sản xuất {0} ability.shieldregenfield = Tạo khiên nhỏ -ability.movelightning = Movement Lightning -ability.shieldarc = Shield Arc -ability.suppressionfield = Regen Suppression Field -ability.energyfield = Energy Field: [accent]{0}[] damage ~ [accent]{1}[] blocks / [accent]{2}[] targets -bar.onlycoredeposit = Only Core Depositing Allowed +ability.movelightning = Phóng điện khi di chuyển +ability.shieldarc = Khiên Vòng Cung +ability.suppressionfield = Trường sửa chữa +ability.energyfield = Trường điện từ: [accent]{0}[] sát thương ~ [accent]{1}[] khối / [accent]{2}[] mục tiêu +bar.onlycoredeposit = Chỉ có thể đưa vào căn cứ bar.drilltierreq = Cần máy khoan tốt hơn bar.noresources = Thiếu tài nguyên bar.corereq = Yêu cầu căn cứ -bar.corefloor = Core Zone Tile Required -bar.cargounitcap = Cargo Unit Cap Reached +bar.corefloor = Cần vùng thích hợp xây căn cứ +bar.cargounitcap = Đã đạt sức chứa khối hàng tối đa bar.drillspeed = Tốc độ khoan: {0}/giây bar.pumpspeed = Tốc độ bơm: {0}/giây bar.efficiency = Hiệu suất: {0}% @@ -963,16 +969,16 @@ bar.capacity = Sức chứa: {0} bar.unitcap = {0} {1}/{2} bar.liquid = Chất lỏng bar.heat = Nhiệt độ -bar.instability = Instability -bar.heatamount = Heat: {0} -bar.heatpercent = Heat: {0} ({1}%) +bar.instability = Mức ổn định +bar.heatamount = Lượng nhiệt: {0} +bar.heatpercent = Lượng nhiệt: {0} ({1}%) bar.power = Năng lượng bar.progress = Đang xây dựng -bar.loadprogress = Progress -bar.launchcooldown = Launch Cooldown +bar.loadprogress = Tiến trình +bar.launchcooldown = Chờ phóng bar.input = Đầu vào bar.output = Sản phẩm -bar.strength = [stat]{0}[lightgray]x strength +bar.strength = [stat]{0}[lightgray]x Sức mạnh units.processorcontrol = [lightgray]Điều khiển bởi bộ xử lý @@ -980,18 +986,20 @@ bullet.damage = [stat]{0}[lightgray] sát thương bullet.splashdamage = [stat]{0}[lightgray] sát thương diện rộng ~[stat] {1}[lightgray] ô bullet.incendiary = [stat]cháy bullet.homing = [stat]truy đuổi -bullet.armorpierce = [stat]armor piercing +bullet.armorpierce = [stat]Xuyên giáp +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]phá mảnh bullet.lightning = [stat]{0}[lightgray]x tia chớp ~ [stat]{1}[lightgray] sát thương bullet.buildingdamage = [stat]{0}%[lightgray] sát thương khối bullet.knockback = [stat]{0}[lightgray] bật lùi -bullet.pierce = [stat]{0}[lightgray]x xuyên giáp +bullet.pierce = [stat]{0}[lightgray]x xuyên mục tiêu bullet.infinitepierce = [stat]xuyên thấu bullet.healpercent = [stat]{0}[lightgray]% sửa chữa -bullet.healamount = [stat]{0}[lightgray] direct repair +bullet.healamount = [stat]{0}[lightgray] Sửa chữa trực tiếp bullet.multiplier = [stat]{0}[lightgray]x lượng đạn -bullet.reload = [stat]{0}[lightgray]x tốc độ bắn -bullet.range = [stat]{0}[lightgray] tiles range +bullet.reload = [stat]{0}%[lightgray] tốc độ bắn +bullet.range = [stat]{0}[lightgray] Phạm vi unit.blocks = Khối unit.blockssquared = Khối² @@ -1001,7 +1009,7 @@ unit.liquidsecond = đơn vị chất lỏng/giây unit.itemssecond = vật phẩm/giây unit.liquidunits = đơn vị chất lỏng unit.powerunits = đơn vị năng lượng -unit.heatunits = heat units +unit.heatunits = Đơn vị nhiệt unit.degrees = độ unit.seconds = giây unit.minutes = phút @@ -1014,7 +1022,7 @@ unit.items = vật phẩm unit.thousands = k unit.millions = mil unit.billions = b -unit.pershot = /shot +unit.pershot = /phát bắn category.purpose = Mô tả category.general = Chung category.power = Năng lượng @@ -1023,7 +1031,7 @@ category.items = Vật phẩm category.crafting = Vào/Sản phẩm category.function = Chức năng category.optional = Cải tiến -setting.skipcoreanimation.name = Bỏ qua hiệu ứng phóng/đáp căn cứcứ +setting.skipcoreanimation.name = Bỏ qua hiệu ứng phóng/đáp căn cứ setting.landscape.name = Khóa ngang setting.shadows.name = Bóng đổ setting.blockreplace.name = Tự động đề xuất khối @@ -1033,7 +1041,7 @@ setting.logichints.name = Gợi ý Logic setting.backgroundpause.name = Tạm dừng trong nền setting.buildautopause.name = Tự động dừng xây dựng setting.doubletapmine.name = Nhấn đúp để Đào -setting.commandmodehold.name = Hold For Command Mode +setting.commandmodehold.name = Nhấn giữ để vào chế độ khiển quân setting.modcrashdisable.name = Tắt các mod khi gặp sự cố trong khởi động setting.animatedwater.name = Hiệu ứng nước setting.animatedshields.name = Hiệu ứng khiên @@ -1045,7 +1053,7 @@ setting.touchscreen.name = Điều khiển bằng màn hình cảm ứng setting.fpscap.name = FPS tối đa setting.fpscap.none = Không giới hạn setting.fpscap.text = {0} FPS -setting.uiscale.name = Kích thước UI +setting.uiscale.name = Kích thước giao diện setting.uiscale.description = Trò chơi sẽ khởi động lại để áp dụng các thay đổi. setting.swapdiagonal.name = Đặt luôn theo đường chéo setting.difficulty.training = Luyện tập @@ -1055,8 +1063,8 @@ setting.difficulty.hard = Khó setting.difficulty.insane = Rất khó setting.difficulty.name = Độ khó: setting.screenshake.name = Rung chuyển khung hình -setting.bloomintensity.name = Bloom Intensity -setting.bloomblur.name = Bloom Blur +setting.bloomintensity.name = Mức độ vụ nổ +setting.bloomblur.name = Xoá mờ vụ nổ setting.effects.name = Hiển thị hiệu ứng setting.destroyedblocks.name = Hiển thị khối bị phá setting.blockstatus.name = Hiển thị trạng thái khối @@ -1077,7 +1085,7 @@ setting.pixelate.name = Đồ họa pixel setting.minimap.name = Hiển thị bản đồ mini setting.coreitems.name = Hiển thị vật phẩm trong căn cứ setting.position.name = Hiển thị vị trí người chơi -setting.mouseposition.name = Show Mouse Position +setting.mouseposition.name = Hiện vị trí trỏ chuột setting.musicvol.name = Âm lượng nhạc setting.atmosphere.name = Hiển thị bầu khí quyển hành tinh setting.ambientvol.name = Âm lượng tổng @@ -1093,11 +1101,11 @@ setting.lasersopacity.name = Độ mờ kết nối năng lượng setting.bridgeopacity.name = Độ mờ cầu setting.playerchat.name = Hiển thị bong bóng trò chuyện của người chơi setting.showweather.name = Hiển thị đồ họa thời tiết -setting.hidedisplays.name = Hide Logic Displays -public.confirm = Bạn có muốn công khai trò chơi của mình không?\n[accent]Bất kỳ ai cũng có thể tham gia trò chơi của bạn.\n[lightgray]Điều này có thể được thay đổi sau trong Cài đặt-> Trò chơi-> Hiển thị trò chơi công khai. -public.confirm.really = Nếu bạn muốn chơi với bạn bè, sử dụng [green]Invite Friend[] thay vì [scarlet]Public server[]!\nBạn có chắc chắn muốn làm trò chơi của mình [scarlet]công khai[]? +setting.hidedisplays.name = Ẩn hiển thị logic +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 = Lưu ý rằng phiên bản beta của trò chơi không thể tạo sảnh công khai. -uiscale.reset = Kích thước UI đã được thay đổi.\nNhấn "OK" để xác nhận.\n[scarlet]Hoàn lại và thoát trong[accent] {0}[] giây... +uiscale.reset = Kích thước giao diện đã được thay đổi.\nNhấn "OK" để xác nhận.\n[scarlet]Hoàn lại và thoát trong[accent] {0}[] giây... uiscale.cancel = Hủy & Thoát setting.bloom.name = Hiệu ứng phát sáng keybind.title = Sửa phím @@ -1120,8 +1128,8 @@ keybind.move_y.name = Di chuyển Y keybind.mouse_move.name = Theo chuột keybind.pan.name = Di chuyển góc nhìn keybind.boost.name = Tăng tốc -keybind.command_mode.name = Command Mode -keybind.rebuild_select.name = Rebuild Region +keybind.command_mode.name = Chế độ điều khiển quân +keybind.rebuild_select.name = Chọn khu vực xây dựng lại keybind.schematic_select.name = Chọn khu vực keybind.schematic_menu.name = Menu bản thiết kế keybind.schematic_flip_x.name = Lật bản thiết kế X @@ -1147,8 +1155,8 @@ keybind.select.name = Chọn/Bắn keybind.diagonal_placement.name = Đặt chéo keybind.pick.name = Chọn khối keybind.break_block.name = Phá khối -keybind.select_all_units.name = Select All Units -keybind.select_all_unit_factories.name = Select All Unit Factories +keybind.select_all_units.name = Chọn tất cả quân lính +keybind.select_all_unit_factories.name = Chọn tất cả các nhà máy quân lính keybind.deselect.name = Bỏ chọn keybind.pickupCargo.name = Nhặt hàng keybind.dropCargo.name = Thả hàng @@ -1166,7 +1174,7 @@ keybind.player_list.name = Danh sách người chơi keybind.console.name = Bảng điều khiển keybind.rotate.name = Xoay keybind.rotateplaced.name = Xoay khối (Giữ) -keybind.toggle_menus.name = Ẩn/Hiện Menus +keybind.toggle_menus.name = Ẩn/Hiện Menu keybind.chat_history_prev.name = Lịch sử trò chuyện trước keybind.chat_history_next.name = Lịch sử trò chuyện sau keybind.chat_scroll.name = Cuộn trò chuyện @@ -1186,42 +1194,43 @@ mode.attack.description = Phá hủy căn cứ của kẻ địch. \n[gray]Cần mode.custom = Tùy chỉnh luật rules.infiniteresources = Tài nguyên vô hạn -rules.onlydepositcore = Only Allow Core Depositing +rules.onlydepositcore = Chỉ cho phép đưa tài nguyên vào căn cứ rules.reactorexplosions = Nổ lò phản ứng rules.coreincinerates = Hủy vật phẩm khi căn cứ đầy -rules.disableworldprocessors = Disable World Processors +rules.disableworldprocessors = Vô hiệu hoá bộ xử lý thế giới rules.schematic = Cho phép dùng bản thiết kế rules.wavetimer = Đếm ngược đợt -rules.wavesending = Wave Sending +rules.wavesending = Gửi đợt rules.waves = Đợt rules.attack = Chế độ tấn công rules.rtsai = RTS AI -rules.rtsminsquadsize = Min Squad Size -rules.rtsmaxsquadsize = Max Squad Size -rules.rtsminattackweight = Min Attack Weight +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 rules.cleanupdeadteams = Xóa công trình của đội bị đánh bại (PvP) rules.corecapture = Chiếm căn cứ khi phá hủy rules.polygoncoreprotection = Bảo vệ lõi kiểu đa giác. -rules.placerangecheck = Placement Range Check +rules.placerangecheck = Kiểm tra phạm vi xây dựng rules.enemyCheat = Tài nguyên vô hạn (kẻ địch) rules.blockhealthmultiplier = Hệ số độ bền khối rules.blockdamagemultiplier = Hệ số sát thương của khối rules.unitbuildspeedmultiplier = Hệ số tốc độ sản xuất lính -rules.unitcostmultiplier = Unit Cost Multiplier +rules.unitcostmultiplier = Hệ số yêu cầu tài nguyên sản xuất quân lính rules.unithealthmultiplier = Hệ số máu của quân lính rules.unitdamagemultiplier = Hệ số sát thương của quân lính -rules.unitcrashdamagemultiplier = Unit Crash Damage Multiplier -rules.solarmultiplier = Solar Power Multiplier +rules.unitcrashdamagemultiplier = Hệ số sát thương của quân lính khi bị bắn rơi +rules.solarmultiplier = Hệ số năng lượng mặt trời rules.unitcapvariable = Căn cứ tăng giới hạn quân lính rules.unitcap = Giới hạn quân lính -rules.limitarea = Limit Map Area +rules.limitarea = Giới hạn kích thước bản đồ rules.enemycorebuildradius = Bán kính không xây dựng trong căn cứ của kẻ địch:[lightgray] (ô) rules.wavespacing = Thời gian giữa các đợt:[lightgray] (giây) -rules.initialwavespacing = Initial Wave Spacing:[lightgray] (sec) +rules.initialwavespacing = Thời gian giữa các đợt ban đầu:[lightgray] (sec) rules.buildcostmultiplier = Hệ số chi phí xây dựng rules.buildspeedmultiplier = Hệ số tốc độ xây dựng rules.deconstructrefundmultiplier = Hệ số số vật phẩm hoàn lại khi phá công trình rules.waitForWaveToEnd = Đợt chờ hết kẻ địch +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = Bán kính vùng thả:[lightgray] (ô) rules.unitammo = Quân lính cần đạn rules.enemyteam = Đội quân địch @@ -1230,12 +1239,12 @@ rules.title.waves = Đợt rules.title.resourcesbuilding = Tài nguyên & Xây dựng rules.title.enemy = Kẻ địch rules.title.unit = Quân lính -rules.title.experimental = Thực nghiệm +rules.title.experimental = Thử nghiệm rules.title.environment = Môi trường rules.title.teams = Đội -rules.title.planet = Planet +rules.title.planet = Hành tinh rules.lighting = Ánh sáng -rules.fog = Fog of War +rules.fog = Hạn chế tầm nhìn rules.fire = Lửa rules.anyenv = rules.explosions = Sát thương nổ của Khối/Quân lính @@ -1251,8 +1260,8 @@ content.unit.name = Quân lính content.block.name = Khối content.status.name = Trạng thái hiệu ứng content.sector.name = Khu vực -content.team.name = Factions -wallore = (Wall) +content.team.name = Phe +wallore = (Tường) item.copper.name = Đồng item.lead.name = Chì @@ -1262,7 +1271,7 @@ item.titanium.name = Titan item.thorium.name = Thorium item.silicon.name = Silicon item.plastanium.name = Nhựa -item.phase-fabric.name = Phase Fabric +item.phase-fabric.name = Sợi lượng tử item.surge-alloy.name = Hợp kim item.spore-pod.name = Vỏ bào tử item.sand.name = Cát @@ -1270,12 +1279,12 @@ item.blast-compound.name = Chất nổ item.pyratite.name = Nhiệt thạch item.metaglass.name = Thuỷ tinh item.scrap.name = Phế liệu -item.fissile-matter.name = Fissile Matter +item.fissile-matter.name = Vật liệu phóng xạ item.beryllium.name = Beryllium item.tungsten.name = Tungsten item.oxide.name = Oxide item.carbide.name = Carbide -item.dormant-cyst.name = Dormant Cyst +item.dormant-cyst.name = Tế bào siêu tân sinh liquid.water.name = Nước liquid.slag.name = Xỉ nóng chảy @@ -1283,7 +1292,7 @@ liquid.oil.name = Dầu liquid.cryofluid.name = Chất làm lạnh liquid.neoplasm.name = Neoplasm liquid.arkycite.name = Arkycite -liquid.gallium.name = Gallium +liquid.gallium.name = Thuỷ Ngân liquid.ozone.name = Ozone liquid.hydrogen.name = Hydrogen liquid.nitrogen.name = Nitrogen @@ -1440,8 +1449,8 @@ block.titanium-wall.name = Tường titan block.titanium-wall-large.name = Tường titan lớn block.plastanium-wall.name = Tường Nhựa block.plastanium-wall-large.name = Tường Nhựa lớn -block.phase-wall.name = Tường Phase -block.phase-wall-large.name = Tường Phase lớn +block.phase-wall.name = Tường lượng tử +block.phase-wall-large.name = Tường lượng tử lớn block.thorium-wall.name = Tường Thorium block.thorium-wall-large.name = Tường Thorium lớn block.door.name = Cửa @@ -1461,13 +1470,13 @@ block.distributor.name = Bộ phân phát lớn block.sorter.name = Bộ lọc block.inverted-sorter.name = Bộ lọc ngược block.message.name = Thông điệp -block.reinforced-message.name = Reinforced Message -block.world-message.name = World Message +block.reinforced-message.name = Thông điệp [Gia cố] +block.world-message.name = Thông điệp thế giới block.illuminator.name = Đèn block.overflow-gate.name = Cổng tràn block.underflow-gate.name = Cổng tràn ngược block.silicon-smelter.name = Máy nấu silicon -block.phase-weaver.name = Máy tạo Phase +block.phase-weaver.name = Máy dệt lượng tử block.pulverizer.name = Máy nghiền block.cryofluid-mixer.name = Máy sản xuất chất làm lạnh block.melter.name = Lò nung chảy @@ -1505,7 +1514,7 @@ block.tsunami.name = Tsunami block.swarmer.name = Swarmer block.salvo.name = Salvo block.ripple.name = Ripple -block.phase-conveyor.name = Phase Conveyor +block.phase-conveyor.name = Băng chuyền lượng tử block.bridge-conveyor.name = Cầu dẫn block.plastanium-compressor.name = Máy sản xuất nhựa block.pyratite-mixer.name = Máy trộn nhiệt thạch @@ -1517,7 +1526,7 @@ block.repair-point.name = Điểm sửa chữa block.repair-turret.name = Súng sữa chữa block.pulse-conduit.name = Ống dẫn titan block.plated-conduit.name = Ống dẫn bọc giáp -block.phase-conduit.name = Ống dẫn Phase +block.phase-conduit.name = Ống dẫn lượng tử block.liquid-router.name = Bộ phân phát chất lỏng block.liquid-tank.name = Thùng chất lỏng block.liquid-container.name = Bình chất lỏng @@ -1547,21 +1556,21 @@ block.foreshadow.name = Foreshadow block.container.name = Container block.launch-pad.name = Bệ phóng block.segment.name = Segment -block.ground-factory.name = Nhà máy bộ binh +block.ground-factory.name = Nhà máy Bộ binh block.air-factory.name = Nhà máy Không quân block.naval-factory.name = Nhà máy Hải quân -block.additive-reconstructor.name = Máy nâng cấp quân đội cấp 2 -block.multiplicative-reconstructor.name = Máy nâng cấp quân đội cấp 3 -block.exponential-reconstructor.name = Máy nâng cấp quân đội cấp 4 -block.tetrative-reconstructor.name = Máy nâng cấp quân đội cấp 5 +block.additive-reconstructor.name = Máy nâng cấp quân lính cấp 2 +block.multiplicative-reconstructor.name = Máy nâng cấp quân lính cấp 3 +block.exponential-reconstructor.name = Máy nâng cấp quân lính cấp 4 +block.tetrative-reconstructor.name = Máy nâng cấp quân lính cấp 5 block.payload-conveyor.name = Băng chuyền khối hàng block.payload-router.name = Bộ định tuyến khối hàng -block.duct.name = Duct -block.duct-router.name = Duct Router -block.duct-bridge.name = Duct Bridge -block.large-payload-mass-driver.name = Large Payload Mass Driver -block.payload-void.name = Payload Void -block.payload-source.name = Payload Source +block.duct.name = Ống chân không +block.duct-router.name = Bộ phân phát chân không +block.duct-bridge.name = Cầu dẫn chân không +block.large-payload-mass-driver.name = Máy phóng từ trường lớn +block.payload-void.name = Huỷ khối hàng +block.payload-source.name = Nguồn khối hàng block.disassembler.name = Máy phân tách lớn block.silicon-crucible.name = Máy nấu Silicon lớn block.overdrive-dome.name = Máy tăng tốc lớn @@ -1572,130 +1581,130 @@ block.large-constructor.name = Máy chế tạo lớn block.large-constructor.description = Chế tạo các khối có kích thước lên đến 4x4 ô. block.deconstructor.name = Máy tháo dỡ block.deconstructor.description = Tháo dỡ khối và quân lính, trả lại 100% nguyên liệu. -block.payload-loader.name = Payload Loader +block.payload-loader.name = Máy nạp vật phẩm block.payload-loader.description = Nạp chất lỏng và vật phẩm vào khối. -block.payload-unloader.name = Payload Unloader +block.payload-unloader.name = Máy dỡ vật phẩm block.payload-unloader.description = Lấy chất lỏng và vật phẩm từ khối. -block.heat-source.name = Heat Source -block.heat-source.description = A 1x1 block that gives virtualy infinite heat. -block.empty.name = Empty -block.rhyolite-crater.name = Rhyolite Crater -block.rough-rhyolite.name = Rough Rhyolite -block.regolith.name = Regolith -block.yellow-stone.name = Yellow Stone -block.carbon-stone.name = Carbon Stone -block.ferric-stone.name = Ferric Stone -block.ferric-craters.name = Ferric Craters -block.beryllic-stone.name = Beryllic Stone -block.crystalline-stone.name = Crystalline Stone -block.crystal-floor.name = Crystal Floor -block.yellow-stone-plates.name = Yellow Stone Plates -block.red-stone.name = Red Stone -block.dense-red-stone.name = Dense Red Stone -block.red-ice.name = Red Ice -block.arkycite-floor.name = Arkycite Floor -block.arkyic-stone.name = Arkyic Stone -block.rhyolite-vent.name = Rhyolite Vent -block.carbon-vent.name = Carbon Vent -block.arkyic-vent.name = Arkyic Vent -block.yellow-stone-vent.name = Yellow Stone Vent -block.red-stone-vent.name = Red Stone Vent -block.crystalline-vent.name = Crystalline Vent +block.heat-source.name = Nguồn nhiệt +block.heat-source.description = Khối này cho bạn vô hạn nhiệt. +block.empty.name = Trống +block.rhyolite-crater.name = Miệng Núi Lửa Rhyolit +block.rough-rhyolite.name = Rhyolite Thô +block.regolith.name = Lớp Đất Mặt +block.yellow-stone.name = Đá Vàng +block.carbon-stone.name = Đá Carbon +block.ferric-stone.name = Đá Ferric +block.ferric-craters.name = Miệng núi lửa Ferric +block.beryllic-stone.name = Đá Beryllic +block.crystalline-stone.name = Đá Pha Lê +block.crystal-floor.name = Nền Pha Lê +block.yellow-stone-plates.name = Tấm Đá Vàng +block.red-stone.name = Đá Đỏ +block.dense-red-stone.name = Đá Đỏ Dày +block.red-ice.name = Băng Đỏ +block.arkycite-floor.name = Nền Arkycite +block.arkyic-stone.name = Đá Arkyic +block.rhyolite-vent.name = Lỗ Thông Hơi Rhyolite +block.carbon-vent.name = Lỗ Thông Hơi Carbon +block.arkyic-vent.name = Lỗ Thông Hơi Arkyic +block.yellow-stone-vent.name = Lỗ Thông Hơi Đá Vàng +block.red-stone-vent.name = Lỗ Thông Hơi Đá Đỏ +block.crystalline-vent.name = Lỗ thông hơi Pha Lê block.redmat.name = Redmat block.bluemat.name = Bluemat -block.core-zone.name = Core Zone -block.regolith-wall.name = Regolith Wall -block.yellow-stone-wall.name = Yellow Stone Wall -block.rhyolite-wall.name = Rhyolite Wall -block.carbon-wall.name = Carbon Wall -block.ferric-stone-wall.name = Ferric Stone Wall -block.beryllic-stone-wall.name = Beryllic Stone Wall -block.arkyic-wall.name = Arkyic Wall -block.crystalline-stone-wall.name = Crystalline Stone Wall -block.red-ice-wall.name = Red Ice Wall -block.red-stone-wall.name = Red Stone Wall -block.red-diamond-wall.name = Red Diamond Wall -block.redweed.name = Redweed +block.core-zone.name = Khu Vực Căn Cứ +block.regolith-wall.name = Tường Regolith +block.yellow-stone-wall.name = Tường Đá Vàng +block.rhyolite-wall.name = Tường Rhyolite +block.carbon-wall.name = Tường Carbon +block.ferric-stone-wall.name = Tường Đá Ferric +block.beryllic-stone-wall.name = Tường Đá Beryllic +block.arkyic-wall.name = Tường Arkyic +block.crystalline-stone-wall.name = Tường Pha Lê +block.red-ice-wall.name = Tường Băng Đỏ +block.red-stone-wall.name = Tường Đá Đỏ +block.red-diamond-wall.name = Tường Kim Cương Đỏ +block.redweed.name = Rêu Đỏ block.pur-bush.name = Pur Bush block.yellowcoral.name = Yellowcoral -block.carbon-boulder.name = Carbon Boulder -block.ferric-boulder.name = Ferric Boulder -block.beryllic-boulder.name = Beryllic Boulder -block.yellow-stone-boulder.name = Yellow Stone Boulder -block.arkyic-boulder.name = Arkyic Boulder -block.crystal-cluster.name = Crystal Cluster -block.vibrant-crystal-cluster.name = Vibrant Crystal Cluster -block.crystal-blocks.name = Crystal Blocks -block.crystal-orbs.name = Crystal Orbs -block.crystalline-boulder.name = Crystalline Boulder -block.red-ice-boulder.name = Red Ice Boulder -block.rhyolite-boulder.name = Rhyolite Boulder -block.red-stone-boulder.name = Red Stone Boulder -block.graphitic-wall.name = Graphitic Wall -block.silicon-arc-furnace.name = Silicon Arc Furnace -block.electrolyzer.name = Electrolyzer -block.atmospheric-concentrator.name = Atmospheric Concentrator -block.oxidation-chamber.name = Oxidation Chamber -block.electric-heater.name = Electric Heater -block.slag-heater.name = Slag Heater -block.phase-heater.name = Phase Heater -block.heat-redirector.name = Heat Redirector -block.heat-router.name = Heat Router -block.slag-incinerator.name = Slag Incinerator -block.carbide-crucible.name = Carbide Crucible -block.slag-centrifuge.name = Slag Centrifuge -block.surge-crucible.name = Surge Crucible -block.cyanogen-synthesizer.name = Cyanogen Synthesizer -block.phase-synthesizer.name = Phase Synthesizer -block.heat-reactor.name = Heat Reactor -block.beryllium-wall.name = Beryllium Wall -block.beryllium-wall-large.name = Large Beryllium Wall -block.tungsten-wall.name = Tungsten Wall -block.tungsten-wall-large.name = Large Tungsten Wall -block.blast-door.name = Blast Door -block.carbide-wall.name = Carbide Wall -block.carbide-wall-large.name = Large Carbide Wall -block.reinforced-surge-wall.name = Reinforced Surge Wall -block.reinforced-surge-wall-large.name = Large Reinforced Surge Wall -block.shielded-wall.name = Shielded Wall -block.radar.name = Radar -block.build-tower.name = Build Tower -block.regen-projector.name = Regen Projector -block.shockwave-tower.name = Shockwave Tower -block.shield-projector.name = Shield Projector -block.large-shield-projector.name = Large Shield Projector -block.armored-duct.name = Armored Duct -block.overflow-duct.name = Overflow Duct -block.underflow-duct.name = Underflow Duct -block.duct-unloader.name = Duct Unloader -block.surge-conveyor.name = Surge Conveyor -block.surge-router.name = Surge Router +block.carbon-boulder.name = Tảng Đá Carbon +block.ferric-boulder.name = Tảng Đá Ferric +block.beryllic-boulder.name = Tảng Đá Beryllic +block.yellow-stone-boulder.name = Tảng Đá Vàng +block.arkyic-boulder.name = Tảng Đá Arkyic +block.crystal-cluster.name = Cụm Pha Lê +block.vibrant-crystal-cluster.name = Cụm Pha Lê Sáng +block.crystal-blocks.name = Khối Pha Lê +block.crystal-orbs.name = Quả Cầu Pha Lê +block.crystalline-boulder.name = Tảng Đá Pha Lê +block.red-ice-boulder.name = Tảng Băng Đỏ +block.rhyolite-boulder.name = Tảng Đá Rhyolite +block.red-stone-boulder.name = Tảng Đá Đỏ +block.graphitic-wall.name = Tường Than Chì +block.silicon-arc-furnace.name = Lò tinh luyện Silicon +block.electrolyzer.name = Máy điện phân +block.atmospheric-concentrator.name = Máy thu hơi nước +block.oxidation-chamber.name = Bể Oxi hoá +block.electric-heater.name = Máy tạo nhiệt bằng điện +block.slag-heater.name = Máy tạo nhiệt bằng Xỉ +block.phase-heater.name = Máy tạo nhiệt lượng tử +block.heat-redirector.name = Khối điều hướng nhiệt +block.heat-router.name = Khối chia nhiệt +block.slag-incinerator.name = Lò nung huỷ vật phẩm +block.carbide-crucible.name = Máy nung Carbide +block.slag-centrifuge.name = Máy nấu Thuỷ ngân +block.surge-crucible.name = Máy tinh chế Hợp kim +block.cyanogen-synthesizer.name = Máy tổng hợp Cyano +block.phase-synthesizer.name = Máy tổng hợp lượng tử +block.heat-reactor.name = Lò phản ứng nhiệt +block.beryllium-wall.name = Tường Beryllium +block.beryllium-wall-large.name = Tường Beryllium lớn +block.tungsten-wall.name = Tường Tungsten +block.tungsten-wall-large.name = Tường Tungsten lớn +block.blast-door.name = Cửa tự động +block.carbide-wall.name = Tường Carbide +block.carbide-wall-large.name = Tường Carbide lớn +block.reinforced-surge-wall.name = Tường Hợp kim cứng +block.reinforced-surge-wall-large.name = Tường Hợp kim cứng lớn +block.shielded-wall.name = Tường khiên trường lực +block.radar.name = Máy quét +block.build-tower.name = Máy hỗ trợ xây dựng +block.regen-projector.name = Máy chiếu trường lực hồi phục +block.shockwave-tower.name = Máy tạo xung điện +block.shield-projector.name = Máy chiếu khiên chắn +block.large-shield-projector.name = Máy chiếu khiên chắn lớn +block.armored-duct.name = Ống chân không bọc giáp +block.overflow-duct.name = Ống tràn chân không +block.underflow-duct.name = Ống tràn ngược chân không +block.duct-unloader.name = Điểm dỡ hàng từ ống +block.surge-conveyor.name = Băng chuyền hợp kim +block.surge-router.name = Máy phân phát hợp kim block.unit-cargo-loader.name = Unit Cargo Loader block.unit-cargo-unload-point.name = Unit Cargo Unload Point -block.reinforced-pump.name = Reinforced Pump -block.reinforced-conduit.name = Reinforced Conduit -block.reinforced-liquid-junction.name = Reinforced Liquid Junction -block.reinforced-bridge-conduit.name = Reinforced Bridge Conduit -block.reinforced-liquid-router.name = Reinforced Liquid Router -block.reinforced-liquid-container.name = Reinforced Liquid Container -block.reinforced-liquid-tank.name = Reinforced Liquid Tank -block.beam-node.name = Beam Node -block.beam-tower.name = Beam Tower -block.beam-link.name = Beam Link -block.turbine-condenser.name = Turbine Condenser -block.chemical-combustion-chamber.name = Chemical Combustion Chamber -block.pyrolysis-generator.name = Pyrolysis Generator -block.vent-condenser.name = Vent Condenser -block.cliff-crusher.name = Cliff Crusher -block.plasma-bore.name = Plasma Bore -block.large-plasma-bore.name = Large Plasma Bore -block.impact-drill.name = Impact Drill -block.eruption-drill.name = Eruption Drill -block.core-bastion.name = Core Bastion -block.core-citadel.name = Core Citadel -block.core-acropolis.name = Core Acropolis -block.reinforced-container.name = Reinforced Container -block.reinforced-vault.name = Reinforced Vault +block.reinforced-pump.name = Máy bơm gia cố +block.reinforced-conduit.name = Ống dẫn cứng +block.reinforced-liquid-junction.name = Điểm giao ống dẫn cứng +block.reinforced-bridge-conduit.name = Cầu ống dẫn cứng +block.reinforced-liquid-router.name = Bộ phân phát chất lỏng cứng +block.reinforced-liquid-container.name = Container chất lỏng gia cố +block.reinforced-liquid-tank.name = Bể chứa chất lỏng gia cố +block.beam-node.name = Chốt tia điện +block.beam-tower.name = Chốt tia điện lớn +block.beam-link.name = Chốt viễn minh +block.turbine-condenser.name = Turbine điện hơi nước +block.chemical-combustion-chamber.name = Bể điện hoá +block.pyrolysis-generator.name = Máy nhiệt phân +block.vent-condenser.name = Máy ngưng tụ hơi nước +block.cliff-crusher.name = Máy phá đá +block.plasma-bore.name = Khoan plasma +block.large-plasma-bore.name = Khoan plasma lớn +block.impact-drill.name = Máy khoan động lực +block.eruption-drill.name = Máy khoan siêu động lực +block.core-bastion.name = Căn cứ: Pháo đài +block.core-citadel.name = Căn cứ: Thủ phủ +block.core-acropolis.name = Căn cứ: Đại đô +block.reinforced-container.name = Container gia cố +block.reinforced-vault.name = Kho gia cố block.breach.name = Breach block.sublimate.name = Sublimate block.titan.name = Titan @@ -1703,32 +1712,31 @@ block.disperse.name = Disperse block.afflict.name = Afflict block.lustre.name = Lustre block.scathe.name = Scathe -block.fabricator.name = Fabricator -block.tank-refabricator.name = Tank Refabricator -block.mech-refabricator.name = Mech Refabricator -block.ship-refabricator.name = Ship Refabricator -block.tank-assembler.name = Tank Assembler -block.ship-assembler.name = Ship Assembler -block.mech-assembler.name = Mech Assembler -block.reinforced-payload-conveyor.name = Reinforced Payload Conveyor -block.reinforced-payload-router.name = Reinforced Payload Router -block.payload-mass-driver.name = Payload Mass Driver -block.small-deconstructor.name = Small Deconstructor -block.canvas.name = Canvas -block.world-processor.name = World Processor -block.world-cell.name = World Cell -block.tank-fabricator.name = Tank Fabricator -block.mech-fabricator.name = Mech Fabricator -block.ship-fabricator.name = Ship Fabricator -block.prime-refabricator.name = Prime Refabricator -block.unit-repair-tower.name = Unit Repair Tower +block.fabricator.name = Máy tạo quân lính +block.tank-refabricator.name = Máy nâng cấp xe tăng +block.mech-refabricator.name = Máy nâng cấp lính cơ động +block.ship-refabricator.name = Máy nâng cấp phi thuyền +block.tank-assembler.name = Máy lắp ráp xe tăng +block.ship-assembler.name = Máy lắp ráp phi thuyền +block.mech-assembler.name = Máy lắp ráp lính cơ động +block.reinforced-payload-conveyor.name = Băng chuyền khối hàng gia cố +block.reinforced-payload-router.name = Bộ phân phát khối hàng gia cố +block.payload-mass-driver.name = Máy phóng từ trường +block.small-deconstructor.name = Máy tháo dỡ nhỏ +block.canvas.name = Màn hình vẽ +block.world-processor.name = Bộ xử lý thế giới +block.world-cell.name = Bộ nhớ thế giới +block.tank-fabricator.name = Máy chế tạo xe tăng +block.mech-fabricator.name = Máy chế tạo lính cơ động +block.ship-fabricator.name = Máy chế tạo phi thuyền +block.prime-refabricator.name = Máy chuyên biệt hoá quân lính +block.unit-repair-tower.name = Máy sửa chữa quân lính block.diffuse.name = Diffuse -block.basic-assembler-module.name = Basic Assembler Module +block.basic-assembler-module.name = Module lắp ráp quân lính block.smite.name = Smite block.malign.name = Malign -block.flux-reactor.name = Flux Reactor -block.neoplasia-reactor.name = Neoplasia Reactor - +block.flux-reactor.name = Lò phản ứng bốc hơi +block.neoplasia-reactor.name = Lò phản ứng siêu tân sinh block.switch.name = Công tắc block.micro-processor.name = Bộ xử lí nhỏ block.logic-processor.name = Bộ xử lý @@ -1737,12 +1745,12 @@ block.logic-display.name = Màn hình block.large-logic-display.name = Màn hình lớn block.memory-cell.name = Bộ nhớ block.memory-bank.name = Bộ nhớ lớn + team.malis.name = Malis team.crux.name = Crux team.sharded.name = Sharded team.derelict.name = Không xác định team.green.name = Xanh lá cây - team.blue.name = Xanh dương hint.skip = Bỏ qua @@ -1751,22 +1759,22 @@ hint.zoom = [accent]Cuộn[] để phóng to hoặc thu nhỏ. hint.desktopShoot = [accent][[chuột trái][] để bắn. hint.depositItems = Để di chuyển các vật phẩm, hãy kéo từ tàu của bạn đến căn cứ. hint.respawn = Để hồi sinh như tàu của bạn, nhấn [accent][[V][]. -hint.respawn.mobile = Bạn đã chuyển điều khiển một quân lính/cấu trúc. Để hồi sinh như một con tàu, [accent]nhấn vào hình đại diện ở phía trên cùng bên trái.[] +hint.respawn.mobile = Bạn đã chuyển điều khiển một quân lính/công trình. Để hồi sinh như một con tàu, [accent]nhấn vào hình đại diện ở phía trên cùng bên trái.[] hint.desktopPause = Nhấn [accent][[Space][] để tạm dừng và tiếp tục trò chơi. hint.breaking = [accent]Chuột phải[] và kéo để phá vỡ các khối. hint.breaking.mobile = Kích hoạt \ue817 [accent]Cây búa[] ở phía dưới cùng bên phải và nhấn để phá vỡ các khối.\n\nGiữ ngón tay của bạn trong một giây và kéo để phá khối trong vùng được chọn. hint.blockInfo = Xem thông tin của một khối bằng cách chọn nó trong [accent]menu xây dựng[], Sau đó chọn nút [accent][[?][] ở bên phải. -hint.derelict = [accent]Derelict[] structures are broken remnants of old bases that no longer function.\n\nThese structures can be [accent]deconstructed[] for resources. +hint.derelict = [accent]Không xác định[] là các công trình bị hỏng của các căn cứ cũ mà không còn hoạt động.\n\nCác công trình này có thể [accent]được tháo dỡ[] để nhận được nguyên liệu. hint.research = Sử dụng nút \ue875 [accent]Nghiên cứu[] để nghiên cứu công nghệ mới. hint.research.mobile = Sử dụng nút \ue875 [accent]Nghiên cứu[] trong \ue88c [accent]Menu[] để nghiên cứu công nghệ mới. hint.unitControl = Giữ [accent][[L-ctrl][] và [accent]click[] để điều khiển quân lính của bạn hoặc súng. hint.unitControl.mobile = [accent][Double-tap[] để điều khiển quân lính của bạn hoặc súng. -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.unitSelectControl = Để điều khiển quân lính, hãy nhấn [accent]chế độ ra lệnh[] bằng cách giữ [accent]L-shift.[]\nKhi ở chế độ lệnh, hãy nhấn và kéo để chọn quân lính. [accent]Nhấn chuột phải[] vào một vị trí hoặc mục tiêu để ra lệnh quân lính đó. +hint.unitSelectControl.mobile = Để điều khiển quân lính, hãy nhấn [accent]chế độ ra lệnh[] bằng cách nhấn nút [accent]lệnh[] ở phía dưới cùng bên trái.\nKhi ở chế độ ra lệnh, hãy nhấn và kéo để chọn quân lính. Tap vào một vị trí hoặc mục tiêu để ra lệnh quân lính đó. hint.launch = Sau khi thu thập đủ tài nguyên, bạn có thể [accent]Phóng[] bằng cách chọn các khu vực lân cận từ \ue827 [accent]Bản đồ[] ở phía dưới cùng bên phải. hint.launch.mobile = Sau khi thu thập đủ tài nguyên, bạn có thể [accent]Phóng[] bằng cách chọn các khu vực lân cận từ \ue827 [accent]Bản đồ[] trong \ue88c [accent]Menu[]. hint.schematicSelect = Giữ [accent][[F][] và kéo để chọn các khối để sao chép và dán.\n\n[accent][[Middle Click][] để sao chép một khối. -hint.rebuildSelect = Hold [accent][[B][] and drag to select destroyed block plans.\nThis will rebuild them automatically. +hint.rebuildSelect = Giữ [accent][[B][] và kéo để chọn các khối bị hỏng.\nChúng sẽ được tự động được xây lại. hint.conveyorPathfind = Giữ [accent][[L-Ctrl][] trong khi kéo băng chuyền để tự động tạo đường dẫn. hint.conveyorPathfind.mobile = Mở \ue844 [accent]chế độ đường chéo[] và kéo băng chuyền để tự động tạo đường dẫn. hint.boost = Giữ [accent][[L-Shift][] bay qua các chướng ngại vật với quân lính hiện tại của bạn.\n\nChỉ một số quân lính mặt đất có thể bay được. @@ -1779,56 +1787,56 @@ hint.generator = \uf879 [accent]Máy phát điện đốt cháy[] đốt than v hint.guardian = [accent]Boss[] được bọc giáp. Sử dụng loại đạn yếu chẳng hạn như [accent]Đồng[] và [accent]Chì[] là [scarlet]không hiệu quả[].\n\nSử dụng súng tiên tiến hơn hoặc sử dụng \uf835 [accent]Than chì làm đạn [] \uf861Duo/\uf859Salvo đạn dược để hạ gục Boss. hint.coreUpgrade = Các căn cứ có thể được nâng cấp bằng cách [accent]đặt căn cứ cấp cao hơn trên chúng[].\n\nĐặt một căn cứ \uf868 [accent]Trụ sở[] trên căn cứ \uf869 [accent]Cơ sở[]. Đảm bảo không có vật cản gần đó. hint.presetLaunch = Khác khu vực đáp [accent] xám[], như [accent]Frozen Forest[], có thể được phóng đến từ bất cứ đâu. Nó không yêu cầu chiếm các khu vực lân cận.\n\n[accent]Các khu vực được đánh số[], chẳng hạn như cái này, là [accent]không bắt buộc[]. -hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation. +hint.presetDifficulty = Khu vực này có [scarlet]mối đe dọa cao[].\nPhóng đến khu vực như vậy [accent]không được khuyến khích[] nếu không có công nghệ và chuẩn bị phù hợp. hint.coreIncinerate = Sau khi căn cứ đầy vật phẩm, bất kì vật phẩm vào thuộc loại đó nhận được sẽ bị [accent]tiêu hủy[]. -hint.factoryControl = To set a unit factory's [accent]output destination[], click a factory block while in command mode, then right-click a location.\nUnits produced by it will automatically move there. -hint.factoryControl.mobile = To set a unit factory's [accent]output destination[], tap a factory block while in command mode, then tap a location.\nUnits produced by it will automatically move there. -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.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. -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. +hint.factoryControl = Để đặt [accent]hướng đầu ra[] của một nhà máy, nhấp vào một khối nhà máy trong chế độ ra lệnh, sau đó nhấp chuột phải vào một vị trí.\nCác quân lính sản xuất bởi nó sẽ tự động di chuyển đến đó. +hint.factoryControl.mobile = Để đặt [accent]hướng đầu ra[] của một nhà máy, tap vào một khối nhà máy trong chế độ ra lệnh, sau đó tap vào một vị trí.\nCác quân lính sản xuất bởi nó sẽ tự động di chuyển đến đó. +gz.mine = Di chuyển gần \uf8c4 [accent]quặng đồng[] trên đất và click vào nó để bắt đầu khai thác. +gz.mine.mobile = Di chuyển gần \uf8c4 [accent]quặng đồng[] trên đất và nhấp vào nó để bắt đầu khai thác. +gz.research = Mở \ue875 tiến trình.\nNghiên cứu \uf870 [accent]Máy khoan cơ khí[], sau đó chọn nó từ menu ở góc dưới bên phải.\nNhấp vào một quặng đồng để đặt nó. +gz.research.mobile = Mở \ue875 tiến trình.\nNghiên cứu \uf870 [accent]Máy khoan cơ khí[], sau đó chọn nó từ menu ở góc dưới bên phải.\nNhấp vào một quặng đồng để đặt nó.\n\nNhấp vào \ue800 [accent]dấu tích[] ở góc dưới bên phải để xác nhận. +gz.conveyors = Nghiên cứu và đặt \uf896 [accent]băng chuyền[] để di chuyển các nguyên liệu được khai thác\n từ các máy khoan đến căn cứ.\n\nNhấp và kéo để đặt nhiều băng chuyền.\n[accent]Cuộn[] để xoay. +gz.conveyors.mobile = Nghiên cứu và đặt \uf896 [accent]băng chuyền[] để di chuyển các nguyên liệu được khai thác\n từ các máy khoan đến căn cứ.\n\nGiữ ngón tay một chút và kéo để đặt nhiều băng chuyền. +gz.drills = Mở rộng hoạt động khai thác.\nĐặt thêm Máy khoan cơ khí.\nKhai thác 100 đồng. +gz.lead = \uf837 [accent]Chì[] là một nguyên liệu được sử dụng phổ biến.\nHãy đặt các máy khoan để khai thác chì. +gz.moveup = \ue804 Di chuyển lên để xem các nhiệm vụ tiếp theo. +gz.turrets = Nghiên cứu và đặt 2 súng \uf861 [accent]Duo[] để bảo vệ căn cứ. Súng Duo cần \uf838 [accent]đạn[] từ băng chuyền. +gz.duoammo = Tiếp đạn cho súng Duo bằng [accent]đồng[], sử dụng băng chuyền. +gz.walls = [accent]Tường[] có thể ngăn chặn sát thương đến các công trình.\nĐặt \uf8ae [accent]tường đồng[] xung quanh các súng. +gz.defend = Quân địch đang đến, chuẩn bị bảo vệ. +gz.aa = Các quân lính bay không thể dễ dàng bị bắn hạ với các súng tiêu chuẩn.\n\uf860 [accent]Scatter[] cung cấp tốt khả năng phòng không, nhưng cần \uf837 [accent]chì[] là đạn. +gz.scatterammo = Tiếp đạn cho súng Scatter bằng [accent]chì[], sử dụng băng chuyền. +gz.supplyturret = [accent]Súng cung cấp +gz.zone1 = Đây là khu vực quân địch đáp xuống. +gz.zone2 = Bất kỳ thứ gì được xây dựng trong bán kính này sẽ bị phá hủy khi một đợt mới bắt đầu. +gz.zone3 = Đợt tiếp theo sẽ bắt đầu ngay bây giờ.\nHãy chuẩn bị. +gz.finish = Đặt thêm các súng, khai thác thêm nguyên liệu,\nvà vừa bảo vệ căn cứ, vượt qua tất cả các đợt để [accent]chiếm khu vực[]. +onset.mine = Nhấp để khai thác \uf748 [accent]beryllium[] từ tường.\n\nSử dụng [accent][[WASD] để di chuyển. +onset.mine.mobile = Nhấp để khai thác \uf748 [accent]beryllium[] từ tường. +onset.research = Mở \ue875 tiến trình.\nNghiên cứu, sau đó đặt \uf73e [accent]Turbine điện hơi nước[] trên lỗ thông hơi.\nĐiều này sẽ tạo ra [accent]điện[]. +onset.bore = Nghiên cứu và đặt \uf741 [accent]Khoan plasma[].\nĐiều này sẽ tự động khai thác nguyên liệu từ tường. +onset.power = Để nối [accent]điện[] cho khoan plasma, nghiên cứu và đặt \uf73d [accent]Chốt tia điện[].\nKết nối Turbine điện hơi nước với khoan plasma. +onset.ducts = Nghiên cứu và đặt \uf799 [accent]ống chân không[] để di chuyển các nguyên liệu được khai thác từ các máy khoan đến căn cứ.\nNhấp và kéo để đặt nhiều ống chân không.\n[accent]Cuộn[] để xoay. +onset.ducts.mobile = Nghiên cứu và đặt \uf799 [accent]ống chân không[] để di chuyển các nguyên liệu được khai thác từ các máy khoan đến căn cứ.\n\nGiữ ngón tay một chút và kéo để đặt nhiều ống chân không. +onset.moremine = Mở rộng hoạt động khai thác.\nĐặt thêm Máy khoan plasma và sử dụng chốt tia điện và ống chân không để kết nối và vận chuyển.\nKhai thác 200 beryllium. +onset.graphite = Các khối phức tạp hơn cần \uf835 [accent]than chì[].\nĐặt khoan plasma để khai thác than chì. +onset.research2 = Bắt đầu nghiên cứu [accent]nhà máy[].\nNghiên cứu \uf74d [accent]máy phá đá[] và \uf779 [accent]lò tinh luyện silicon[]. +onset.arcfurnace = Lò tinh luyện cần \uf834 [accent]cát[] và \uf835 [accent]than chì[] để tạo \uf82f [accent]silicon[].\nYêu cầu có [accent]Điện[]. +onset.crusher = Sử dụng \uf74d [accent]máy phá đá[] để khai thác cát. +onset.fabricator = Sử dụng [accent]quân lính[] để khám phá bản đồ, bảo vệ các công trình và tấn công quân địch.\nNghiên cứu và đặt \uf6a2 [accent]máy chế tạo xe tăng[]. +onset.makeunit = Sản xuất một quân lính.\nSử dụng nút "?" để xem các yêu cầu của máy đã chọn. +onset.turrets = Các quân lính rất tốt, nhưng [accent]súng[] cung cấp khả năng phòng thủ tốt hơn nếu được sử dụng hiệu quả.\nĐặt một \uf6eb [accent]Breach[].\nSúng cần \uf748 [accent]đạn[]. +onset.turretammo = Tiếp đạn cho súng bằng [accent]beryllium[]. +onset.walls = [accent]Tường[] có thể ngăn chặn sát thương đến các công trình.\nĐặt một số \uf6ee [accent]tường beryllium[] xung quanh súng. +onset.enemies = Quân địch đang đến, hãy chuẩn bị phòng thủ. +onset.attack = Quân địch đã suy yếu.\nHãy phản công. +onset.cores = Các căn cứ có thể được đặt trên [accent]ô căn cứ[].\nCác căn cứ mới có thể được đặt ở bất kỳ đâu trên bản đồ.\nĐặt một \uf725 căn cứ. +onset.detect = Quân địch sẽ phát hiện bạn trong vòng 2 phút.\nHãy chuẩn bị phòng thủ, khai thác và sản xuất. +split.pickup = Một số khối có thể được mang bởi quân lính.\nNhấp vào [accent]container[] và đặt nó lên [accent]máy nạp vật phẩm[].\n(Phím mặc định là [ và ] để mang và thả) +split.pickup.mobile = Một số khối có thể được mang bởi quân lính.\nNhấp vào [accent]container[] và đặt nó lên [accent]máy nạp vật phẩm[].\n(Để mang hoặc thả một khối, ấn giữ nó một chút.) +split.acquire = Bạn cần một số tungsten để sản xuất quân lính. +split.build = Quân lính phải được vận chuyển đến phía bên kia của tường.\nĐặt hai [accent]Máy phóng từ trường[], một ở mỗi bên của tường.\nĐặt liên kết bằng cách nhấp vào một trong số chúng, sau đó chọn cái còn lại. +split.container = Tương tự như container, quân lính cũng có thể được vận chuyển bằng [accent]Máy phóng từ trường[].\nĐặt một máy chế tạo quân lính cạnh máy phóng từ trường để nạp chúng, sau đó gửi chúng qua tường để tấn công căn cứ địch. item.copper.description = Dùng trong tất cả các khu xây dựng và các loại đạn dược. item.copper.details = Đồng, là kim loại phổ biến trên Serpulo. Có cấu trúc yếu trừ khi được tôi luyện. @@ -1851,35 +1859,35 @@ item.spore-pod.description = Dùng để chuyển đổi thành dầu, chất n item.spore-pod.details = Bào tử. Có thể là một dạng sống tổng hợp. Phát thải khí độc đối với sinh vật khác. Cực kỳ xâm lấn. Rất dễ cháy trong một số trường hợp nhất định. item.blast-compound.description = Dùng trong bom hoặc đạn nổ. item.pyratite.description = Dùng trong vũ khí gây cháy và máy phát điện chạy bằng nhiên liệu đốt. -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 = Được sử dụng trong nhiều loại công trình và đạn dược trên Erekir. +item.tungsten.description = Được sử dụng trong các máy khoan, áo giáp và đạn dược. Yêu cầu trong việc xây dựng các công trình cao cấp hơn. +item.oxide.description = Dùng làm chất dẫn nhiệt và cách điện cho nguồn điện. +item.carbide.description = Được sử dụng trong các công trình tiên tiến, các quân lính mạnh và đạn dược. liquid.water.description = Dùng để làm mát máy móc và xử lý chất thải. liquid.slag.description = Dùng để tách các kim loại, hoặc phun vào kẻ thù như một loại vũ khí. liquid.oil.description = Dùng trong sản xuất vật liệu tiên tiến và làm đạn gây cháy. liquid.cryofluid.description = Dùng làm chất làm mát trong lò phản ứng, súng và nhà máy. -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 = Được sử dụng trong các phản ứng hóa học để phát điện và tổng hợp vật liệu. +liquid.ozone.description = Được sử dụng như một chất oxy hóa trong sản xuất vật liệu và làm nhiên liệu. Gây nổ vừa phải. +liquid.hydrogen.description = Được sử dụng trong khai thác tài nguyên, sản xuất quân lính và sửa chữa công trình. Dễ cháy. +liquid.cyanogen.description = Được sử dụng cho đạn dược, xây dựng các quân lính tiên tiến và các phản ứng khác nhau trong các khối tiên tiến. Rất dễ cháy. +liquid.nitrogen.description = Được sử dụng trong khai thác tài nguyên, tạo khí và sản xuất quân lính. Trơ. +liquid.neoplasm.description = Một sản phẩm phụ sinh học nguy hiểm của lò phản ứng Neoplasia. Lan nhanh sang bất kì khối chứa nước nào mà nó chạm vào và gây hư hại chúng. Nhớt. +liquid.neoplasm.details = Neoplasm. Một khối lượng các tế bào tổng hợp phân chia nhanh chóng không kiểm soát với độ đặc giống như bùn. Kháng nhiệt. Cực kì nguy hiểm cho bất cứ khối nào có liên quan đến nước.\n\nQuá phức tạp và không ổn định để được phân tích. Chưa rõ được tiềm năng và ứng dụng của nó. Khuyến nghị đốt chúng trong các lò xỉ nóng chảy -block.derelict = \uf77e [lightgray]Derelict +block.derelict = \uf77e [lightgray]Không xác định block.armored-conveyor.description = Vận chuyển vật phẩm về phía trước. Không nhận đầu vào từ phía bên cạnh. block.illuminator.description = Phát sáng. block.message.description = Lưu trữ tin nhắn giao tiếp giữa đồng đội. -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 = Lưu trữ một thông điệp để liên lạc giữa các đồng minh. +block.world-message.description = Một khối thông điệp đùng để sử dụng trong việc làm bản đồ. Không thể bị phá hủy. block.graphite-press.description = Nén than thành than chì. block.multi-press.description = Nén than thành than chì. Cần nước làm mát. block.silicon-smelter.description = Tinh chế silicon từ cát và than. block.kiln.description = Nấu chảy cát và chì thành thuỷ tinh. block.plastanium-compressor.description = Sản xuất nhựa từ dầu và titan. -block.phase-weaver.description = Tổng hợp phase fabric từ thorium và cát. +block.phase-weaver.description = Tổng hợp sợi lượng tử từ thorium và cát. block.surge-smelter.description = Trộn titan, chì, silicon và đồng thành hợp kim. block.cryofluid-mixer.description = Trộn nước và titan để sản xuất chất làm mát. block.blast-mixer.description = Tạo ra hợp chất nổ từ nhiệt thạch và vỏ bào tử. @@ -1912,10 +1920,10 @@ block.surge-wall.description = Bảo vệ công trình khỏi đạn của kẻ block.surge-wall-large.description = Bảo vệ nhiều công trình khỏi đạn của kẻ thù, đôi khi tạo ra tia điện khi bị bắn. block.door.description = Một bức tường có thể đóng mở. block.door-large.description = Một bức tường có thể đóng mở. -block.mender.description = Sửa chữa định kỳ các khối trong vùng lân cận.\nSử dụng Phase Fabric để tăng phạm vi và hiệu quả. -block.mend-projector.description = Sửa chữa các khối lân cận.\nSử dụng Phase Fabric để tăng phạm vi và hiệu quả. -block.overdrive-projector.description = Tăng tốc độ làm việc của các công trình lân cận.\nSử dụng phase fabric để tăng phạm vi và hiệu quả. -block.force-projector.description = Tạo ra một trường lực lục giác xung quanh nó, bảo vệ các công trình và quân lính bên trong khỏi bị hư hại.\nQuá nóng nếu chịu quá nhiều sát thương. Sử dụng chất làm mát để giảm nhiệt độ. Sử dụng Phase fabric để tăng kích thước lá chắn. +block.mender.description = Sửa chữa định kỳ các khối trong vùng lân cận.\nSử dụng Sợi lượng tử để tăng phạm vi và hiệu quả. +block.mend-projector.description = Sửa chữa các khối lân cận.\nSử dụng Sợi lượng tử để tăng phạm vi và hiệu quả. +block.overdrive-projector.description = Tăng tốc độ làm việc của các công trình lân cận.\nSử dụng Sợi lượng tử để tăng phạm vi và hiệu quả. +block.force-projector.description = Tạo ra một trường lực lục giác xung quanh nó, bảo vệ các công trình và quân lính bên trong khỏi bị hư hại.\nQuá nóng nếu chịu quá nhiều sát thương. Sử dụng chất làm mát để giảm nhiệt độ. Sử dụng Sợi lượng tử để tăng kích thước lá chắn. block.shock-mine.description = Giải phóng tia điện khi tiếp xúc với quân lính đối phương. block.conveyor.description = Vận chuyển vật phẩm về phía trước. block.titanium-conveyor.description = Vận chuyển vật phẩm về phía trước. Nhanh hơn băng chuyền tiêu chuẩn. @@ -1998,7 +2006,7 @@ block.parallax.description = Bắn một tia kéo máy bay địch và làm hư block.tsunami.description = Phóng một tia chất lỏng mạnh vào kẻ địch. Tự chữa cháy nếu được cung cấp nước hoặc chất làm mát. block.silicon-crucible.description = Tinh chế silicon từ cát và than, sử dụng nhiệt thạch làm nguồn nhiệt phụ. Có hiệu quả cao hơn khi ở nơi nóng. block.disassembler.description = Tách xỉ thành các kim loại khác nhau với hiệu suất thấp. Có thể sản xuất thorium. -block.overdrive-dome.description = Tăng tốc độ làm việc của các công trình lân cận. Sử dụng phase fabric and silicon để hoạt động. +block.overdrive-dome.description = Tăng tốc độ làm việc của các công trình lân cận. Sử dụng sợi lượng tử and silicon để hoạt động. block.payload-conveyor.description = Di chuyển những khối hàng lớn, chẳng hạn như các quân lính từ nhà máy. block.payload-router.description = Tách những khối hàng đầu vào thành 3 hướng đầu ra. block.ground-factory.description = Sản xuất binh lính bộ binh. Các quân lính đầu ra có thể được sử dụng trực tiếp, hoặc đem nâng cấp. @@ -2019,99 +2027,99 @@ block.large-logic-display.description = Hiển thị đồ họa tùy ý từ b block.interplanetary-accelerator.description = Tòa súng từ trường cỡ lớn. Tăng tốc vật phóng đến vận tốc thoát để di chuyển giữa các hành tinh. block.repair-turret.description = Sửa chữa những quân lính bị hư hỏng trong khu vực nhất địnhđịnh. Có thể làm mát để tăng hiệu quả. block.payload-propulsion-tower.description = Cơ cấu vận chuyển các khối hàng tầm xa. Bắn khối hàng cho các tháp đẩy khối hàng kháckhác. -block.core-bastion.description = Core of the base. Armored. Once destroyed, the sector is lost. -block.core-citadel.description = Core of the base. Very well armored. Stores more resources than a Bastion core. -block.core-acropolis.description = Core of the base. Exceptionally well armored. Stores more resources than a Citadel core. -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.core-bastion.description = Trung tâm của căn cứ. Bọc giáp. Khu vực sẽ mất khi bị phá hủy. +block.core-citadel.description = Trung tâm của căn cứ. Bọc giáp tốt hơn. Lưu trữ nhiều vật phẩm hơn căn cứ Pháo đài. +block.core-acropolis.description = Trung tâm của căn cứ. Được bọc giáp rất tốt. Lưu trữ nhiều vật phẩm hơn căn cứ Thủ Phủ. +block.breach.description = Bắn đạn beryllium hoặc tungsten gây cháy vào kẻ địch. +block.diffuse.description = Bắn một loạt đạn gây cháy theo hình nón. Đồng thời đẩy kẻ địch về phía sau. +block.sublimate.description = Thổi tia lửa vào kẻ thù. Có khả năng xuyên giáp. +block.titan.description = Bắn đạn pháo khổng lồ vào các mục tiêu trên mặt đất. Yêu cầu hydrogen. +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 được làm nóng. +block.disperse.description = Bắng các mảnh gây nổ vào các mục tiêu trên không. +block.lustre.description = Bắn một tia laser vào các mục tiêu của địch. +block.scathe.description = Phóng một tên lửa mạnh vào các mục tiêu trên mặt đất ở khoảng cách lớn. 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.silicon-arc-furnace.description = Tinh chế silicone từ cát và than chì. +block.oxidation-chamber.description = Chuyển đổi beryllium và ozone thành oxide. Tạo ra nhiệt như sản phẩm phụ. +block.electric-heater.description = Làm nóng khối đối diện. Yêu cầu một lượng điện lớn. +block.slag-heater.description = Làm nóng khối đối diện. Yêu cầu xỉ. +block.phase-heater.description = Làm nóng khối đối diện. 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 = Chuyển lượng nhiệt nhận được sang ba hướng còn lại. +block.electrolyzer.description = Chuyển đổi nước thành hydrogen và ozone. +block.atmospheric-concentrator.description = Cô đặc nitơ 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ừ thorium, cát, và ozone. 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 cyanogen 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ỗ thông hơi để 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ỏ. +block.large-plasma-bore.description = Một máy khoan plasma lớn hơn. Có thể khoan tungsten và thorium. Yêu cầu hydrogen và điện. 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-junction.description = Acts as a bridge for two crossing conduits. -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.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ủ máy khoan động lực. Có thể khoan thorium. Yêu cầu hydrogen. +block.reinforced-conduit.description = Di chuyển chất lỏng về phía trước. Không nhận đầu vào 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-junction.description = Làm cầu nối cho hai ống dẫn chất lỏng giao nhau. +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 hydrogen. +block.beryllium-wall.description = Bảo vệ các công trình khỏi đạn của kẻ thù. +block.beryllium-wall-large.description = Bảo vệ các công trình khỏi đạn của kẻ thù. +block.tungsten-wall.description = Bảo vệ các công trình khỏi đạn của kẻ thù. +block.tungsten-wall-large.description = Bảo vệ các công trình khỏi đạn của kẻ thù. +block.carbide-wall.description = Bảo vệ các công trình khỏi đạn của kẻ thù. +block.carbide-wall-large.description = Bảo vệ các công trình khỏi đạn của kẻ thù. +block.reinforced-surge-wall.description = Bảo vệ các công trình khỏi đạn của kẻ thù, phóng ra các tia điện khi gặp đạn đối phương. +block.reinforced-surge-wall-large.description = Bảo vệ các công trình khỏi đạn của kẻ thù, phóng ra các tia điện khi gặp đạn đối phương.. +block.shielded-wall.description = Bảo vệ các công trình khỏi đạn của kẻ thù. Triển khai một cái khiên chống đạn khi được cung cấp điện. Dẫn điện. +block.blast-door.description = Một loại tường tự động mở ra khi quân lính đang ở gần. Không thể điều khiển bằng tay. +block.duct.description = Di chuyển vật phẩm về phía trước. Chỉ có thể lưu trữ một vật phẩm. +block.armored-duct.description = Di chuyển vật phẩm về phía trước. Không nhận đầu vào từ các bên. +block.duct-router.description = Phân chia vật phẩm đều cho tất cả các bên. Chỉ nhận đầu vào từ phía sau. Có thể được cấu hình thành một bộ sắp xếp vật phẩm. +block.overflow-duct.description = Chỉ xuất vật phẩm ra các bên nếu đường dẫn phía trước bị chặn. +block.duct-bridge.description = Vận chuyển vật phẩm qua các công trình và địa hình. +block.duct-unloader.description = Lấy ra vật phẩm đã chọn từ khối phía sau nó. Không thể lấy ra từ các căn cứ. +block.underflow-duct.description = Ngược lại với một ống tràn chân không. Xuất ra phía trước nếu các đường dẫn bên trái và phải bị chặn. +block.reinforced-liquid-junction.description = Làm cầu nối cho hai ống dẫn chất lỏng giao nhau. +block.surge-conveyor.description = Di chuyển vật phẩm theo lô. Có thể được tăng tốc bằng điện. Dẫn điện. +block.surge-router.description = Phân chia vật phẩm đều cho tất cả các bên từ các băng chuyền hợp kim. Có thể được tăng tốc bằng điện. Dẫn điện. 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.beam-node.description = Truyền điện cho các khối khác theo hướng thẳng. Lưu trữ một lượng điện nhỏ. +block.beam-tower.description = Truyền điện cho các khối khác theo hướng thẳng. Lưu trữ một lượng điện lớn. Có phạm vi rộng. +block.turbine-condenser.description = Tạo ra điện khi được đặt trên các lỗ thông hơi. Tạo ra một lượng nước nhỏ. +block.chemical-combustion-chamber.description = Tạo ra điện từ arkycite và ozone. +block.pyrolysis-generator.description = Tạo ra một lượng điện lớn từ arkycite và xỉ nóng chảy. Tạo ra nước như một sản phẩm phụ. +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 cyanogen như một chất làm ổn định. Lượng điện tạo ra và lượng tiêu thụ cyanogen tỷ lệ thuận với lượng nhiệt nhận được.\nPhát nổ nếu không cung cấp đủ cyanogen. +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à neoplasm như sản phẩm phụ trong quá trình hoạt động.\nPhát nổ dữ dội nếu 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 quân lính 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 hidrogen. +block.reinforced-container.description = Lưu trữ một lượng nhỏ vật phẩm. Vật phẩm 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 căn cứ. +block.reinforced-vault.description = Lưu trữ một lượng lớn vật phẩm. Vật phẩm 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 căn cứ. +block.tank-fabricator.description = Chế tạo quân lính Stell. Các quân lính đượ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 chế tạo khác để được nâng cấp. +block.ship-fabricator.description = Chế tạo quân lính Elude. Các quân lính đượ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 chế tạo khác để được nâng cấp. +block.mech-fabricator.description = Chế tạo quân lính Merui. Các quân lính đượ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 chế tạo khác để được nâng cấp. +block.tank-assembler.description = Lắp ráp các xe tăng lớn từ các khối và quân lính. Cấp độ đầu ra có thể được tăng bằng cách thêm các module. +block.ship-assembler.description = Lắp ráp các phi thuyền lớn từ các khối và quân lính. Cấp độ đầu ra có thể được tăng bằng cách thêm các module. +block.mech-assembler.description = Lắp ráp các lính cơ động lớn từ các khối và quân lính. Cấp độ đầu ra có thể được tăng bằng cách thêm các module. +block.tank-refabricator.description = Nâng cấp các xe tăng lên cấp hai. +block.ship-refabricator.description = Nâng cấp các phi thuyền lên cấp hai. +block.mech-refabricator.description = Nâng cấp các quân lính cơ động lên cấp hai. +block.prime-refabricator.description = Nâng cấp các quân lính lên cấp ba. +block.basic-assembler-module.description = Tăng cấp lắp ráp khi đặt cạnh một hệ thống lắp ráp. Yêu cầu điện. Có thể sử dụng như nơi nhập các khối hàng. +block.small-deconstructor.description = Tháo dỡ các công trình và quân lính đầu vào. Trả lại 100% chi phí tạo ra. +block.reinforced-payload-conveyor.description = Di chuyển khối hàng tiến về phía trước. +block.reinforced-payload-router.description = Phân chia các khối hàng vào các khối liền kề. Hoạt động như một bộ lọc khi thiết lập bộ lọc. +block.payload-mass-driver.description = Phương pháp vận chuyển khối hàng tầm xa. Bắn các khối hàng nhận được đến các máy phóng từ trường được liên kết. +block.large-payload-mass-driver.description = Phương pháp vận chuyển khối hàng tầm xa. Bắn các khối hàng nhận được đến các máy phóng từ trường được liên kết. +block.unit-repair-tower.description = Sửa chữa tất cả các quân lính trong phạm vi. Yêu cầu ozone. +block.radar.description = Quét một phạm vi lớn để phát hiện các đơn vị kẻ địch và mở rộng bản đồ. Yêu cầu điện. +block.shockwave-tower.description = Phá hủy và tiêu diệt các loại đạn của kẻ địch trong một phạm vi. Yêu cầu cyanogen. +block.canvas.description = Hiển thị một hình ảnh đơn giản với một bảng màu được định sẵn. Có thể chỉnh sửa. unit.dagger.description = Bắn đạn tiêu chuẩn vào tất cả kẻ địch xung quanh. unit.mace.description = Phun lửa vào tất cả kẻ địch xung quanh. @@ -2191,12 +2199,12 @@ lst.unitbind = Bind to the next unit of a type, and store it in [accent]@unit[]. lst.unitcontrol = Control the currently bound unit. lst.unitradar = Locate units around the currently bound unit. lst.unitlocate = Locate a specific type of position/building anywhere on the map.\nRequires a bound unit. -lst.getblock = Get tile data at any location. -lst.setblock = Set tile data at any location. -lst.spawnunit = Spawn unit at a location. +lst.getblock = Lấy dữ liệu từ ô từ vị trí bất kì. +lst.setblock = Chỉnh sửa dữ liệu từ ô từ vị trí bất kì. +lst.spawnunit = Tạo ra quân từ vị trí. lst.applystatus = Apply or clear a status effect from a uniut. lst.spawnwave = Simulate a wave being spawned at a arbitrary location.\nWill not increment the wave counter. -lst.explosion = Create an explosion at a location. +lst.explosion = Tạo ra một vụ nổ tại vị trí đó. 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. @@ -2205,6 +2213,7 @@ lst.flushmessage = Display a message on the screen from the text buffer.\nWill w 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. +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]Unit building logic is not allowed here. @@ -2219,21 +2228,21 @@ laccess.controller = Unit controller. If processor controlled, returns processor laccess.dead = Whether a unit/building is dead or no longer valid. laccess.controlled = Returns:\n[accent]@ctrlProcessor[] if unit controller is processor\n[accent]@ctrlPlayer[] if unit/building controller is player\n[accent]@ctrlFormation[] if unit is in formation\nOtherwise, 0. laccess.progress = Action progress, 0 to 1.\nReturns production, turret reload or construction progress. -laccess.speed = Top speed of a unit, in tiles/sec. -lcategory.unknown = Unknown +laccess.speed = Tốc độ của quân lính, tính bằng ô/giây. +lcategory.unknown = Không xác định lcategory.unknown.description = Uncategorized instructions. -lcategory.io = Input & Output +lcategory.io = Đầu Vào & Ra lcategory.io.description = Modify contents of memory blocks and processor buffers. -lcategory.block = Block Control -lcategory.block.description = Interact with blocks. +lcategory.block = Điều khiển khối +lcategory.block.description = Tương tác với khối lcategory.operation = Operations lcategory.operation.description = Logical operations. lcategory.control = Flow Control lcategory.control.description = Manage execution order. -lcategory.unit = Unit Control +lcategory.unit = Điều khiển quân lính lcategory.unit.description = Give units commands. -lcategory.world = World -lcategory.world.description = Control how the world behaves. +lcategory.world = Thế giới. +lcategory.world.description = Kiểm soát hành vi của thế giới. graphicstype.clear = Tô màu cho màn hình. graphicstype.color = Đặt màu cho thao tác vẽ tiếp theo. @@ -2352,5 +2361,5 @@ lenum.build = Xây công trình. lenum.getblock = Fetch a building and type at coordinates.\nUnit must be in range of position.\nSolid non-buildings will have the type [accent]@solid[]. lenum.within = Kiểm tra xem quân lính có gần vị trí không. lenum.boost = Bắt đầu/Dừng tăng tốc. -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. +onset.commandmode = Giữ [accent]shift[] để vào [accent]chế độ điều khiển quân[].\n[accent]Nhấp chuột trái và kéo[] để chọn các quân lính.\n[accent]Chuộc phải[] để điều khiển các quân lính di chuyển hoặc tấn công. +onset.commandmode.mobile = Nhấn vào [accent]nút điều khiển[] để vào [accent]chế độ điều khiển quân[].\nGiữ một ngón tay, sau đó [accent]kéo[] để chọn các quân lính.\n[accent]Tap[] để điều khiển các quân lính di chuyển hoặc tấn công. diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index d2cdb72104..0498d67681 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -461,6 +461,8 @@ waves.sort.reverse = 反向排序 waves.sort.begin = 出场顺序 waves.sort.health = 生命值 waves.sort.type = 类型 +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = 全部隐藏 waves.units.show = 全部显示 @@ -899,6 +901,7 @@ stat.repairspeed = 修理速度 stat.weapons = 武器 stat.bullet = 子弹 stat.moduletier = 模块等级 +stat.unittype = Unit Type stat.speedincrease = 提速 stat.range = 范围 stat.drilltier = 可钻探矿物 @@ -992,6 +995,8 @@ bullet.splashdamage = [stat]{0}[lightgray]范围伤害~[stat] {1}[lightgray]格 bullet.incendiary = [stat]燃烧 bullet.homing = [stat]追踪 bullet.armorpierce = [stat]穿甲 +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x分裂子弹: bullet.lightning = [stat]{0}[lightgray]x闪电~[stat]{1}[lightgray]伤害 bullet.buildingdamage = [stat]{0}%[lightgray]对建筑伤害 @@ -1105,8 +1110,8 @@ setting.bridgeopacity.name = 桥梁不透明度 setting.playerchat.name = 显示玩家聊天气泡 setting.showweather.name = 显示天气效果 setting.hidedisplays.name = 不显示逻辑绘图 -public.confirm = 确定使您的游戏公开可见?\n[accent]其他人将可以加入到您的游戏。 \n[lightgray]此后可以在 设置->游戏->游戏公开可见 里面更改。 -public.confirm.really = 如果您想与好友一起游戏,可以使用[green]邀请好友[]而不是[scarlet]公开游戏[]!\n您确定要使游戏[scarlet]公开可见[]吗? +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 = 请注意,测试版的游戏不能公开可见。 uiscale.reset = UI缩放比例已更改。\n点击“确定”接受更改。\n[accent]{0}[]秒后[scarlet]将自动退出并还原设置。 uiscale.cancel = 取消并退出 @@ -1233,6 +1238,7 @@ rules.buildcostmultiplier = 建造花费倍率 rules.buildspeedmultiplier = 建造速度倍率 rules.deconstructrefundmultiplier = 拆除返还倍率 rules.waitForWaveToEnd = 等待波次结束 +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = 敌人出生点禁区大小:[lightgray](格) rules.unitammo = 单位有弹药限制 rules.enemyteam = 敌方队伍 @@ -2232,6 +2238,7 @@ lst.flushmessage = 在屏幕中央投影文字缓存区的内容\n会等待上 lst.cutscene = 控制玩家游戏视角 lst.setflag = 设置一个可以被所有处理器读取的全局flag lst.getflag = 检查是否设置了全局flag +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]此处不允许处理器操控单位去建设 diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index 6cb6db4b90..e8e24825b3 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -458,6 +458,8 @@ waves.sort.reverse = 反向排序 waves.sort.begin = 開始 waves.sort.health = 血量 waves.sort.type = 兵種 +waves.search = Search waves... +waves.filter.unit = Unit Filter waves.units.hide = 全部隱藏 waves.units.show = 全部顯示 @@ -895,6 +897,7 @@ stat.repairspeed = 修復速度 stat.weapons = 武器 stat.bullet = 子彈 stat.moduletier = 模組等級 +stat.unittype = Unit Type stat.speedincrease = 速度提升 stat.range = 範圍 stat.drilltier = 可鑽取礦物 @@ -988,6 +991,8 @@ bullet.splashdamage = [stat]{0}[lightgray]範圍傷害 ~[stat] {1}[lightgray]格 bullet.incendiary = [stat]燃燒 bullet.homing = [stat]追蹤 bullet.armorpierce = [stat]穿甲 +bullet.suppression = [stat]{0} sec[lightgray] repair suppression ~ [stat]{1}[lightgray] tiles +bullet.interval = [stat]{0}/sec[lightgray] interval bullets: bullet.frags = [stat]{0}[lightgray]x 集束子彈: bullet.lightning = [stat]{0}[lightgray]x 電弧 ~ [stat]{1}[lightgray] 傷害 bullet.buildingdamage = [stat]{0}%[lightgray] 建築傷害 @@ -1101,8 +1106,8 @@ setting.bridgeopacity.name = 橋透明度 setting.playerchat.name = 在遊戲中顯示聊天視窗 setting.showweather.name = 顯示天氣動畫 setting.hidedisplays.name = 隱藏邏輯顯示 -public.confirm = 您想公開遊戲嗎?\n[accent]任何人都可以加入您的遊戲。\n[lightgray]之後可以在「設定」→「遊戲」→「公開遊戲可見度」中進行更改。 -public.confirm.really = 如果你想和朋友一起遊玩,可利用[green]邀請好友[]而不是[scarlet]公開伺服器[]!\n你確定要將伺服設為[scarlet]公開[]? +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 = 請注意,該遊戲的Beta版本無法公開遊戲大廳。 uiscale.reset = 使用者介面縮放已變更\n按下「確定」確認這個比例\n[scarlet][accent] {0}[] 秒後退出並還原設定 uiscale.cancel = 取消並退出 @@ -1229,6 +1234,7 @@ rules.buildcostmultiplier = 建設成本倍數 rules.buildspeedmultiplier = 建設速度倍數 rules.deconstructrefundmultiplier = 拆除資源返還比例 rules.waitForWaveToEnd = 等待所有敵人毀滅才開始下一波次 +rules.wavelimit = Map Ends After Wave rules.dropzoneradius = 空降區半徑:[lightgray](格) rules.unitammo = 單位需要彈藥 rules.enemyteam = 敵方隊伍 @@ -2216,6 +2222,7 @@ lst.flushmessage = 从文本緩存中讀取並於屏幕上顯示一條消息\n lst.cutscene = 控制玩家鏡頭 lst.setflag = 設置一個全局flag,可被所有處理器讀取 lst.getflag = 檢查某一全局flag是否存在 +lst.setprop = Sets a property of a unit or building. logic.nounitbuild = [red]單位建造邏輯已被禁止。 diff --git a/core/assets/contributors b/core/assets/contributors index ae5ef27b88..c90b956965 100644 --- a/core/assets/contributors +++ b/core/assets/contributors @@ -38,7 +38,6 @@ Jaiun Lee Gab_351 Carter Gale Jan Polák -JrTRinny JustYanns BasedUser Rex Aliis @@ -130,6 +129,7 @@ Skat WilloIzCitron SAMBUYYA genNAowl +JniTrRny TranquillyUnpleasant Darkness6030 hortiSquash @@ -153,3 +153,4 @@ BlackDeluxeCat zenonet AyuKo-o JojoFR1 +Xasmedy diff --git a/core/assets/scripts/global.js b/core/assets/scripts/global.js index 848fc5800c..662c336cbe 100755 --- a/core/assets/scripts/global.js +++ b/core/assets/scripts/global.js @@ -44,6 +44,7 @@ function extend(/*Base, ..., def*/){ importPackage(Packages.arc) importPackage(Packages.arc.audio) +importPackage(Packages.arc.files) importPackage(Packages.arc.func) importPackage(Packages.arc.flabel) importPackage(Packages.arc.graphics) diff --git a/core/src/mindustry/Vars.java b/core/src/mindustry/Vars.java index 4abe276b01..a8e0d9290e 100644 --- a/core/src/mindustry/Vars.java +++ b/core/src/mindustry/Vars.java @@ -149,7 +149,7 @@ public class Vars implements Loadable{ /** max GL texture size */ public static int maxTextureSize = 2048; /** Maximum schematic size.*/ - public static int maxSchematicSize = 32; + public static int maxSchematicSize = 64; /** Whether to show sector info upon landing. */ public static boolean showSectorLandInfo = true; /** Whether to check for memory use before taking screenshots. */ @@ -431,7 +431,12 @@ public class Vars implements Loadable{ settings.setAutosave(false); settings.load(); - Scl.setProduct(settings.getInt("uiscale", 100) / 100f); + //https://github.com/Anuken/Mindustry/issues/8483 + if(settings.getInt("uiscale") == 5){ + settings.put("uiscale", 100); + } + + Scl.setProduct(Math.max(settings.getInt("uiscale", 100), 25) / 100f); if(!loadLocales) return; diff --git a/core/src/mindustry/ai/ControlPathfinder.java b/core/src/mindustry/ai/ControlPathfinder.java index 0ee4ef61b5..7cbfc5eb19 100644 --- a/core/src/mindustry/ai/ControlPathfinder.java +++ b/core/src/mindustry/ai/ControlPathfinder.java @@ -8,8 +8,8 @@ import arc.math.geom.*; import arc.struct.*; import arc.util.*; import mindustry.core.*; -import mindustry.game.*; import mindustry.game.EventType.*; +import mindustry.game.*; import mindustry.gen.*; import mindustry.graphics.*; import mindustry.world.*; @@ -273,7 +273,7 @@ public class ControlPathfinder{ req.raycastTimer = 0; } - if(req.rayPathIndex < len){ + if(req.rayPathIndex < len && req.rayPathIndex >= 0){ Tile tile = tile(items[req.rayPathIndex]); out.set(tile); diff --git a/core/src/mindustry/ai/Pathfinder.java b/core/src/mindustry/ai/Pathfinder.java index c4ca3a2f90..bffb9031da 100644 --- a/core/src/mindustry/ai/Pathfinder.java +++ b/core/src/mindustry/ai/Pathfinder.java @@ -19,7 +19,7 @@ import mindustry.world.meta.*; import static mindustry.Vars.*; public class Pathfinder implements Runnable{ - private static final long maxUpdate = Time.millisToNanos(7); + private static final long maxUpdate = Time.millisToNanos(8); private static final int updateFPS = 60; private static final int updateInterval = 1000 / updateFPS; @@ -219,8 +219,6 @@ public class Pathfinder implements Runnable{ public void updateTile(Tile tile){ if(net.client()) return; - int x = tile.x, y = tile.y; - tile.getLinkedTiles(t -> { int pos = t.array(); if(pos < tiles.length){ @@ -232,15 +230,15 @@ public class Pathfinder implements Runnable{ for(Flowfield path : mainList){ if(path != null){ synchronized(path.targets){ - path.targets.clear(); - path.getPositions(path.targets); + path.updateTargetPositions(); } } } + //mark every flow field as dirty, so it updates when it's done queue.post(() -> { for(Flowfield data : threadList){ - updateTargets(data, x, y); + data.dirty = true; } }); } @@ -257,6 +255,13 @@ public class Pathfinder implements Runnable{ //each update time (not total!) no longer than maxUpdate for(Flowfield data : threadList){ + + //if it's dirty and there is nothing to update, begin updating once more + if(data.dirty && data.frontier.size == 0){ + updateTargets(data); + data.dirty = false; + } + updateFrontier(data, maxUpdate); } } @@ -306,8 +311,7 @@ public class Pathfinder implements Runnable{ synchronized(path.targets){ //make sure the position actually changed if(!(path.targets.size == 1 && tmpArray.size == 1 && path.targets.first() == tmpArray.first())){ - path.targets.clear(); - path.getPositions(path.targets); + path.updateTargetPositions(); //queue an update queue.post(() -> updateTargets(path)); @@ -315,7 +319,8 @@ public class Pathfinder implements Runnable{ } } - int[] values = path.weights; + //use complete weights if possible; these contain a complete flow field that is not being updated + int[] values = path.hasComplete ? path.completeWeights : path.weights; int apos = tile.array(); int value = values[apos]; @@ -341,32 +346,6 @@ public class Pathfinder implements Runnable{ return current; } - /** - * Clears the frontier, increments the search and sets up all flow sources. - * This only occurs for active teams. - */ - private void updateTargets(Flowfield path, int x, int y){ - int packed = world.packArray(x, y); - - if(packed > path.weights.length) return; - - if(path.weights[packed] == 0){ - //this was a previous target - path.frontier.clear(); - }else if(!path.frontier.isEmpty()){ - //skip if this path is processing - return; - } - - //update cost of the tile TODO maybe only update the cost when it's not passable - path.weights[packed] = path.cost.getCost(path.team.id, tiles[packed]); - - //clear frontier to prevent contamination - path.frontier.clear(); - - updateTargets(path); - } - /** Increments the search and sets up flow sources. Does not change the frontier. */ private void updateTargets(Flowfield path){ @@ -386,8 +365,7 @@ public class Pathfinder implements Runnable{ } private void preloadPath(Flowfield path){ - path.targets.clear(); - path.getPositions(path.targets); + path.updateTargetPositions(); registerPath(path); updateFrontier(path, -1); } @@ -421,6 +399,7 @@ public class Pathfinder implements Runnable{ /** Update the frontier for a path. Pathfinding thread only. */ private void updateFrontier(Flowfield path, long nsToRun){ + boolean hadAny = path.frontier.size > 0; long start = Time.nanos(); int counter = 0; @@ -462,6 +441,12 @@ public class Pathfinder implements Runnable{ } } } + + //there WERE some things in the frontier, but now they are gone, so the path is done; copy over latest data + if(hadAny && path.frontier.size == 0){ + System.arraycopy(path.weights, 0, path.completeWeights, 0, path.weights.length); + path.hasComplete = true; + } } public static class EnemyCoreField extends Flowfield{ @@ -505,11 +490,18 @@ public class Pathfinder implements Runnable{ protected Team team = Team.derelict; /** Function for calculating path cost. Set before using. */ protected PathCost cost = costTypes.get(costGround); + /** Whether there are valid weights in the complete array. */ + protected volatile boolean hasComplete; + /** If true, this flow field needs updating. This flag is only set to false once the flow field finishes and the weights are copied over. */ + protected boolean dirty = false; /** costs of getting to a specific tile */ public int[] weights; /** search IDs of each position - the highest, most recent search is prioritized and overwritten */ public int[] searches; + /** the last "complete" weights of this tilemap. */ + public int[] completeWeights; + /** search frontier, these are Pos objects */ IntQueue frontier = new IntQueue(); /** all target positions; these positions have a cost of 0, and must be synchronized on! */ @@ -524,10 +516,16 @@ public class Pathfinder implements Runnable{ void setup(int length){ this.weights = new int[length]; this.searches = new int[length]; + this.completeWeights = new int[length]; this.frontier.ensureCapacity((length) / 4); this.initialized = true; } + public void updateTargetPositions(){ + targets.clear(); + getPositions(targets); + } + protected boolean passable(int pos){ return cost.getCost(team.id, pathfinder.tiles[pos]) != impassable; } diff --git a/core/src/mindustry/ai/types/BuilderAI.java b/core/src/mindustry/ai/types/BuilderAI.java index eebb6ef850..6c71f5f934 100644 --- a/core/src/mindustry/ai/types/BuilderAI.java +++ b/core/src/mindustry/ai/types/BuilderAI.java @@ -19,7 +19,7 @@ public class BuilderAI extends AIController{ public @Nullable Teamc enemy; public @Nullable BlockPlan lastPlan; - public float fleeRange = 370f; + public float fleeRange = 370f, rebuildPeriod = 60f * 2f; public boolean alwaysFlee; public boolean onlyAssist; @@ -119,7 +119,7 @@ public class BuilderAI extends AIController{ } //follow someone and help them build - if(timer.get(timerTarget2, 60f)){ + if(timer.get(timerTarget2, 20f)){ found = false; Units.nearby(unit.team, unit.x, unit.y, buildRadius, u -> { @@ -158,10 +158,8 @@ public class BuilderAI extends AIController{ } } - float rebuildTime = 2f * 60f; - //find new plan - if(!onlyAssist && !unit.team.data().plans.isEmpty() && following == null && timer.get(timerTarget3, rebuildTime)){ + if(!onlyAssist && !unit.team.data().plans.isEmpty() && following == null && timer.get(timerTarget3, rebuildPeriod)){ Queue blocks = unit.team.data().plans; BlockPlan block = blocks.first(); diff --git a/core/src/mindustry/ai/types/LogicAI.java b/core/src/mindustry/ai/types/LogicAI.java index 64129d1ec7..5987dc2bc7 100644 --- a/core/src/mindustry/ai/types/LogicAI.java +++ b/core/src/mindustry/ai/types/LogicAI.java @@ -3,6 +3,7 @@ package mindustry.ai.types; import arc.math.*; import arc.struct.*; import arc.util.*; +import mindustry.*; import mindustry.entities.units.*; import mindustry.gen.*; import mindustry.logic.*; @@ -36,9 +37,18 @@ public class LogicAI extends AIController{ public PosTeam posTarget = PosTeam.create(); private ObjectSet radars = new ObjectSet<>(); + private float lastMoveX, lastMoveY; + private int lastPathId = 0; @Override public void updateMovement(){ + if(control == LUnitControl.pathfind){ + if(!Mathf.equal(moveX, lastMoveX, 0.1f) || !Mathf.equal(moveY, lastMoveY, 0.1f)){ + lastPathId ++; + lastMoveX = moveX; + lastMoveY = moveY; + } + } if(targetTimer > 0f){ targetTimer -= Time.delta; @@ -62,6 +72,15 @@ public class LogicAI extends AIController{ case approach -> { moveTo(Tmp.v1.set(moveX, moveY), moveRad - 7f, 7, true, null); } + case pathfind -> { + if(unit.isFlying()){ + moveTo(Tmp.v1.set(moveX, moveY), 1f, 30f); + }else{ + if(Vars.controlPath.getPathPosition(unit, lastPathId, Tmp.v2.set(moveX, moveY), Tmp.v1, null)){ + moveTo(Tmp.v1, 1f, Tmp.v2.epsilonEquals(Tmp.v1, 4.1f) ? 30f : 0f); + } + } + } case stop -> { unit.clearBuilding(); } diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index e6ece5c272..6a7cebb2ef 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -1494,9 +1494,10 @@ public class Blocks{ craftEffect = new RadialEffect(Fx.heatReactorSmoke, 4, 90f, 7f); itemCapacity = 20; + outputItem = new ItemStack(Items.fissileMatter, 1); + consumeItem(Items.thorium, 3); consumeLiquid(Liquids.nitrogen, 1f / 60f); - outputItem = new ItemStack(Items.fissileMatter, 1); }}; //endregion @@ -3046,6 +3047,20 @@ public class Blocks{ shoot = new ShootAlternate(3.5f); + recoils = 2; + drawer = new DrawTurret(){{ + for(int i = 0; i < 2; i ++){ + int f = i; + parts.add(new RegionPart("-barrel-" + (i == 0 ? "l" : "r")){{ + progress = PartProgress.recoil; + recoilIndex = f; + under = true; + moves.add(new PartMove(PartProgress.recoil, 0f, -1.5f, 0f)); + }}); + } + }}; + + recoil = 0.5f; shootY = 3f; reload = 20f; range = 110; diff --git a/core/src/mindustry/content/Bullets.java b/core/src/mindustry/content/Bullets.java index 98ec779ea1..0a42bda43d 100644 --- a/core/src/mindustry/content/Bullets.java +++ b/core/src/mindustry/content/Bullets.java @@ -2,8 +2,6 @@ package mindustry.content; import arc.graphics.*; import mindustry.entities.bullet.*; -import mindustry.entities.effect.*; -import mindustry.graphics.*; /** * Class for holding special internal bullets. diff --git a/core/src/mindustry/content/Planets.java b/core/src/mindustry/content/Planets.java index c1c82bbde5..c5e4531e55 100644 --- a/core/src/mindustry/content/Planets.java +++ b/core/src/mindustry/content/Planets.java @@ -68,6 +68,9 @@ public class Planets{ hiddenItems.addAll(Items.serpuloItems).removeAll(Items.erekirItems); enemyBuildSpeedMultiplier = 0.4f; + //TODO disallowed for now + allowLaunchToNumbered = false; + //TODO SHOULD there be lighting? updateLighting = false; diff --git a/core/src/mindustry/content/SerpuloTechTree.java b/core/src/mindustry/content/SerpuloTechTree.java index edeee02caa..6b7ab42668 100644 --- a/core/src/mindustry/content/SerpuloTechTree.java +++ b/core/src/mindustry/content/SerpuloTechTree.java @@ -4,8 +4,8 @@ import arc.struct.*; import mindustry.game.Objectives.*; import static mindustry.content.Blocks.*; -import static mindustry.content.SectorPresets.*; import static mindustry.content.SectorPresets.craters; +import static mindustry.content.SectorPresets.*; import static mindustry.content.TechTree.*; import static mindustry.content.UnitTypes.*; diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index fced520ba1..ffd418a857 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -2948,6 +2948,7 @@ public class UnitTypes{ weapons.add(new Weapon("merui-weapon"){{ shootSound = Sounds.missile; mirror = false; + showStatSprite = false; x = 0f; y = 1f; shootY = 4f; @@ -3151,6 +3152,7 @@ public class UnitTypes{ x = 29f / 4f; y = -11f / 4f; shootY = 1.5f; + showStatSprite = false; reload = 130f; layerOffset = 0.01f; heatColor = Color.red; diff --git a/core/src/mindustry/core/Control.java b/core/src/mindustry/core/Control.java index 9ee4287fa5..9d6a699bde 100644 --- a/core/src/mindustry/core/Control.java +++ b/core/src/mindustry/core/Control.java @@ -49,6 +49,7 @@ public class Control implements ApplicationListener, Loadable{ public Saves saves; public SoundControl sound; public InputHandler input; + public AttackIndicators indicators; private Interval timer = new Interval(2); private boolean hiscore = false; @@ -58,6 +59,13 @@ public class Control implements ApplicationListener, Loadable{ public Control(){ saves = new Saves(); sound = new SoundControl(); + indicators = new AttackIndicators(); + + Events.on(BuildDamageEvent.class, e -> { + if(e.build.team == Vars.player.team()){ + indicators.add(e.build.tileX(), e.build.tileY()); + } + }); //show dialog saying that mod loading was skipped. Events.on(ClientLoadEvent.class, e -> { @@ -100,6 +108,7 @@ public class Control implements ApplicationListener, Loadable{ Events.on(ResetEvent.class, event -> { player.reset(); toBePlaced.clear(); + indicators.clear(); hiscore = false; saves.resetSave(); @@ -193,7 +202,7 @@ public class Control implements ApplicationListener, Loadable{ if(!settings.getBool("skipcoreanimation") && !state.rules.pvp){ coreDelay = coreLandDuration; //delay player respawn so animation can play. - player.deathTimer = -80f; + player.deathTimer = Player.deathDelay - coreLandDuration; //TODO this sounds pretty bad due to conflict if(settings.getInt("musicvol") > 0){ Musics.land.stop(); @@ -628,6 +637,9 @@ public class Control implements ApplicationListener, Loadable{ if(state.isGame()){ input.update(); + if(!state.isPaused()){ + indicators.update(); + } //auto-update rpc every 5 seconds if(timer.get(0, 60 * 5)){ diff --git a/core/src/mindustry/core/Logic.java b/core/src/mindustry/core/Logic.java index 22bc9259d0..bde8089da8 100644 --- a/core/src/mindustry/core/Logic.java +++ b/core/src/mindustry/core/Logic.java @@ -310,6 +310,9 @@ public class Logic implements ApplicationListener{ Events.fire(new GameOverEvent(left == null ? Team.derelict : left.team)); state.gameOver = true; } + }else if(!state.gameOver && state.rules.waves && (state.enemies == 0 && state.rules.winWave > 0 && state.wave >= state.rules.winWave && !spawner.isSpawning())){ + state.gameOver = true; + Events.fire(new GameOverEvent(state.rules.defaultTeam)); } } } diff --git a/core/src/mindustry/core/NetClient.java b/core/src/mindustry/core/NetClient.java index b06d5dcade..99608a6168 100644 --- a/core/src/mindustry/core/NetClient.java +++ b/core/src/mindustry/core/NetClient.java @@ -201,10 +201,12 @@ public class NetClient implements ApplicationListener{ Sounds.chatMessage.play(); } - //display raw unformatted text above player head if(playersender != null && unformatted != null){ + //display raw unformatted text above player head playersender.lastText(unformatted); playersender.textFadeTime(1f); + + Events.fire(new PlayerChatEvent(playersender, unformatted)); } } @@ -435,8 +437,9 @@ public class NetClient implements ApplicationListener{ for(int j = 0; j < amount; j++){ readSyncEntity(input, Reads.get(input)); } - }catch(IOException e){ - throw new RuntimeException(e); + }catch(Exception e){ + //don't disconnect, just log it + Log.err("Error reading entity snapshot", e); } } diff --git a/core/src/mindustry/core/NetServer.java b/core/src/mindustry/core/NetServer.java index b5eedaf12c..1436c3c1e4 100644 --- a/core/src/mindustry/core/NetServer.java +++ b/core/src/mindustry/core/NetServer.java @@ -9,7 +9,6 @@ import arc.struct.*; import arc.util.*; import arc.util.CommandHandler.*; import arc.util.io.*; -import arc.util.serialization.*; import mindustry.annotations.Annotations.*; import mindustry.content.*; import mindustry.core.GameState.*; @@ -138,15 +137,6 @@ public class NetServer implements ApplicationListener{ con.connectTime = Time.millis(); String uuid = packet.uuid; - byte[] buuid = Base64Coder.decode(uuid); - CRC32 crc = new CRC32(); - crc.update(buuid, 0, 8); - ByteBuffer buff = ByteBuffer.allocate(8); - buff.put(buuid, 8, 8); - if(crc.getValue() != buff.getLong(0)){ - con.kick(KickReason.clientOutdated); - return; - } if(admins.isIPBanned(con.address) || admins.isSubnetBanned(con.address)) return; @@ -195,6 +185,7 @@ public class NetServer implements ApplicationListener{ result.append("Unnecessary mods:[lightgray]\n").append("> ").append(extraMods.toString("\n> ")); } con.kick(result.toString(), 0); + return; } if(!admins.isWhitelisted(packet.uuid, packet.usid)){ diff --git a/core/src/mindustry/core/Renderer.java b/core/src/mindustry/core/Renderer.java index 1966f79cd2..1eb37957f2 100644 --- a/core/src/mindustry/core/Renderer.java +++ b/core/src/mindustry/core/Renderer.java @@ -72,6 +72,8 @@ public class Renderer implements ApplicationListener{ landPTimer, //intensity for screen shake shakeIntensity, + //reduction rate of screen shake + shakeReduction, //current duration of screen shake shakeTime; //for landTime > 0: if true, core is currently *launching*, otherwise landing. @@ -83,14 +85,15 @@ public class Renderer implements ApplicationListener{ Shaders.init(); Events.on(ResetEvent.class, e -> { - shakeTime = shakeIntensity = 0f; + shakeTime = shakeIntensity = shakeReduction = 0f; camShakeOffset.setZero(); }); } public void shake(float intensity, float duration){ - shakeIntensity = Math.max(shakeIntensity, intensity); + shakeIntensity = Math.max(shakeIntensity, Mathf.clamp(intensity, 0, 100)); shakeTime = Math.max(shakeTime, duration); + shakeReduction = shakeIntensity / shakeTime; } public void addEnvRenderer(int mask, Runnable render){ @@ -210,7 +213,7 @@ public class Renderer implements ApplicationListener{ float intensity = shakeIntensity * (settings.getInt("screenshake", 4) / 4f) * 0.75f; camShakeOffset.setToRandomDirection().scl(Mathf.random(intensity)); camera.position.add(camShakeOffset); - shakeIntensity -= 0.25f * Time.delta; + shakeIntensity -= shakeReduction * Time.delta; shakeTime -= Time.delta; shakeIntensity = Mathf.clamp(shakeIntensity, 0f, 100f); }else{ diff --git a/core/src/mindustry/core/UI.java b/core/src/mindustry/core/UI.java index da49916c59..1c650935c3 100644 --- a/core/src/mindustry/core/UI.java +++ b/core/src/mindustry/core/UI.java @@ -75,6 +75,8 @@ public class UI implements ApplicationListener, Loadable{ public FullTextDialog fullText; public CampaignCompleteDialog campaignComplete; + public IntMap followUpMenus; + public Cursor drillCursor, unloadCursor, targetCursor; private @Nullable Element lastAnnouncement; @@ -202,6 +204,7 @@ public class UI implements ApplicationListener, Loadable{ logic = new LogicDialog(); fullText = new FullTextDialog(); campaignComplete = new CampaignCompleteDialog(); + followUpMenus = new IntMap<>(); Group group = Core.scene.root; @@ -261,28 +264,33 @@ public class UI implements ApplicationListener, Loadable{ }); } - public void showTextInput(String titleText, String dtext, int textLength, String def, boolean inumeric, Cons confirmed){ + public void showTextInput(String titleText, String text, int textLength, String def, boolean numbers, Cons confirmed, Runnable closed){ if(mobile){ Core.input.getTextInput(new TextInput(){{ this.title = (titleText.startsWith("@") ? Core.bundle.get(titleText.substring(1)) : titleText); this.text = def; - this.numeric = inumeric; + this.numeric = numbers; this.maxLength = textLength; this.accepted = confirmed; this.allowEmpty = false; }}); }else{ new Dialog(titleText){{ - cont.margin(30).add(dtext).padRight(6f); - TextFieldFilter filter = inumeric ? TextFieldFilter.digitsOnly : (f, c) -> true; + cont.margin(30).add(text).padRight(6f); + TextFieldFilter filter = numbers ? TextFieldFilter.digitsOnly : (f, c) -> true; TextField field = cont.field(def, t -> {}).size(330f, 50f).get(); - field.setFilter((f, c) -> field.getText().length() < textLength && filter.acceptChar(f, c)); + field.setMaxLength(textLength); + field.setFilter(filter); buttons.defaults().size(120, 54).pad(4); - buttons.button("@cancel", this::hide); + buttons.button("@cancel", () -> { + closed.run(); + hide(); + }); buttons.button("@ok", () -> { confirmed.get(field.getText()); hide(); }).disabled(b -> field.getText().isEmpty()); + keyDown(KeyCode.enter, () -> { String text = field.getText(); if(!text.isEmpty()){ @@ -290,9 +298,10 @@ public class UI implements ApplicationListener, Loadable{ hide(); } }); - keyDown(KeyCode.escape, this::hide); - keyDown(KeyCode.back, this::hide); + + closeOnBack(closed); show(); + Core.scene.setKeyboardFocus(field); field.setCursorPosition(def.length()); }}; @@ -303,8 +312,12 @@ public class UI implements ApplicationListener, Loadable{ showTextInput(title, text, 32, def, confirmed); } - public void showTextInput(String titleText, String text, int textLength, String def, Cons confirmed){ - showTextInput(titleText, text, textLength, def, false, confirmed); + public void showTextInput(String title, String text, int textLength, String def, Cons confirmed){ + showTextInput(title, text, textLength, def, false, confirmed); + } + + public void showTextInput(String title, String text, int textLength, String def, boolean numeric, Cons confirmed){ + showTextInput(title, text, textLength, def, numeric, confirmed, () -> {}); } public void showInfoFade(String info){ @@ -322,6 +335,24 @@ public class UI implements ApplicationListener, Loadable{ Core.scene.add(table); } + public void addDescTooltip(Element elem, String description){ + if(description == null) return; + + elem.addListener(new Tooltip(t -> t.background(Styles.black8).margin(4f).add(description).color(Color.lightGray)){ + { + allowMobile = true; + } + @Override + protected void setContainerPosition(Element element, float x, float y){ + this.targetActor = element; + Vec2 pos = element.localToStageCoordinates(Tmp.v1.set(0, 0)); + container.pack(); + container.setPosition(pos.x, pos.y, Align.topLeft); + container.setOrigin(0, element.getHeight()); + } + }); + } + /** Shows a fading label at the top of the screen. */ public void showInfoToast(String info, float duration){ var cinfo = Core.scene.find("coreinfo"); @@ -419,6 +450,8 @@ public class UI implements ApplicationListener, Loadable{ } public void showException(String text, Throwable exc){ + if(loadfrag == null) return; + loadfrag.hide(); new Dialog(""){{ String message = Strings.getFinalMessage(exc); @@ -562,17 +595,13 @@ public class UI implements ApplicationListener, Loadable{ dialog.show(); } - /** Shows a menu that fires a callback when an option is selected. If nothing is selected, -1 is returned. */ - public void showMenu(String title, String message, String[][] options, Intc callback){ - new Dialog("[accent]" + title){{ + // TODO REPLACE INTEGER WITH arc.fun.IntCons(int, T) or something like that. + public Dialog newMenuDialog(String title, String message, String[][] options, Cons2 buttonListener){ + return new Dialog(title){{ setFillParent(true); removeChild(titleTable); cont.add(titleTable).width(400f); - getStyle().titleFontColor = Color.white; - title.getStyle().fontColor = Color.white; - title.setStyle(title.getStyle()); - cont.row(); cont.image().width(400f).pad(2).colspan(2).height(4f).color(Pal.accent).bottom(); cont.row(); @@ -592,16 +621,47 @@ public class UI implements ApplicationListener, Loadable{ String optionName = optionsRow[i]; int finalOption = option; - buttonRow.button(optionName, () -> { - callback.get(finalOption); - hide(); - }).size(i == optionsRow.length - 1 ? lastWidth : width, 50).pad(4); + buttonRow.button(optionName, () -> buttonListener.get(finalOption, this)) + .size(i == optionsRow.length - 1 ? lastWidth : width, 50).pad(4); option++; } } }).growX(); - closeOnBack(() -> callback.get(-1)); - }}.show(); + }}; + } + + /** Shows a menu that fires a callback when an option is selected. If nothing is selected, -1 is returned. */ + public void showMenu(String title, String message, String[][] options, Intc callback){ + Dialog dialog = newMenuDialog(title, message, options, (option, myself) -> { + callback.get(option); + myself.hide(); + }); + dialog.closeOnBack(() -> callback.get(-1)); + dialog.show(); + } + + /** Shows a menu that hides when another followUp-menu is shown or when nothing is selected. + * @see UI#showMenu(String, String, String[][], Intc) */ + public void showFollowUpMenu(int menuId, String title, String message, String[][] options, Intc callback) { + Dialog dialog = newMenuDialog(title, message, options, (option, myself) -> callback.get(option)); + dialog.closeOnBack(() -> { + followUpMenus.remove(menuId); + callback.get(-1); + }); + + Dialog oldDialog = followUpMenus.remove(menuId); + if(oldDialog != null){ + dialog.show(Core.scene, null); + oldDialog.hide(null); + }else{ + dialog.show(); + } + followUpMenus.put(menuId, dialog); + } + + public void hideFollowUpMenu(int menuId) { + if(!followUpMenus.containsKey(menuId)) return; + followUpMenus.remove(menuId).hide(); } /** Formats time with hours:minutes:seconds. */ diff --git a/core/src/mindustry/editor/EditorTool.java b/core/src/mindustry/editor/EditorTool.java index d2470f578d..1ea88bd7ac 100644 --- a/core/src/mindustry/editor/EditorTool.java +++ b/core/src/mindustry/editor/EditorTool.java @@ -9,6 +9,7 @@ import arc.util.*; import mindustry.content.*; import mindustry.game.*; import mindustry.world.*; + import static mindustry.Vars.*; public enum EditorTool{ diff --git a/core/src/mindustry/editor/MapEditorDialog.java b/core/src/mindustry/editor/MapEditorDialog.java index d727c950d7..1d30d18d82 100644 --- a/core/src/mindustry/editor/MapEditorDialog.java +++ b/core/src/mindustry/editor/MapEditorDialog.java @@ -752,9 +752,9 @@ public class MapEditorDialog extends Dialog implements Disposable{ cont.table(search -> { search.image(Icon.zoom).padRight(8); - search.field("", this::rebuildBlockSelection) + search.field("", this::rebuildBlockSelection).growX() .name("editor/search").maxTextLength(maxNameLength).get().setMessageText("@players.search"); - }).pad(-2); + }).growX().pad(-2).padLeft(6f); cont.row(); cont.table(Tex.underline, extra -> extra.labelWrap(() -> editor.drawBlock.localizedName).width(200f).center()).growX(); cont.row(); @@ -803,7 +803,7 @@ public class MapEditorDialog extends Dialog implements Disposable{ } if(i == 0){ - blockSelection.add("@none").color(Color.lightGray).padLeft(80f).padTop(10f); + blockSelection.add("@none.found").color(Color.lightGray).padLeft(54f).padTop(10f); } } } diff --git a/core/src/mindustry/editor/MapLoadDialog.java b/core/src/mindustry/editor/MapLoadDialog.java index 4ed63a1a7f..1217c87020 100644 --- a/core/src/mindustry/editor/MapLoadDialog.java +++ b/core/src/mindustry/editor/MapLoadDialog.java @@ -30,6 +30,7 @@ public class MapLoadDialog extends BaseDialog{ buttons.defaults().size(200f, 50f); buttons.button("@cancel", this::hide); buttons.add(button); + addCloseListener(); } public void rebuild(){ @@ -48,13 +49,13 @@ public class MapLoadDialog extends BaseDialog{ table.defaults().size(200f, 90f).pad(4f); table.margin(10f); - ScrollPane pane = new ScrollPane(table, Styles.horizontalPane); + ScrollPane pane = new ScrollPane(table); pane.setFadeScrollBars(false); for(Map map : maps.all()){ - TextButton button = new TextButton(map.name(), Styles.togglet); - button.add(new BorderImage(map.safeTexture(), 2f).setScaling(Scaling.fit)).size(16 * 4f); + TextButton button = new TextButton(map.name(), Styles.flatTogglet); + button.add(new BorderImage(map.safeTexture(), 2f).setScaling(Scaling.fit)).padLeft(5f).size(16 * 4f); button.getCells().reverse(); button.clicked(() -> selected = map); button.getLabelCell().grow().left().padLeft(5f); @@ -63,14 +64,12 @@ public class MapLoadDialog extends BaseDialog{ if(++i % maxcol == 0) table.row(); } - if(maps.all().size == 0){ + if(maps.all().isEmpty()){ table.add("@maps.none").center(); - }else{ - cont.add("@editor.loadmap"); } cont.row(); - cont.add(pane); + cont.add(pane).growX(); } } diff --git a/core/src/mindustry/editor/MapObjectivesDialog.java b/core/src/mindustry/editor/MapObjectivesDialog.java index 57882f0b44..9642ea5126 100644 --- a/core/src/mindustry/editor/MapObjectivesDialog.java +++ b/core/src/mindustry/editor/MapObjectivesDialog.java @@ -482,7 +482,9 @@ public class MapObjectivesDialog extends BaseDialog{ loop: for(int y = 0; y < rows; y++){ for(int x = 0; x < columns; x++){ - canvas.tilemap.createTile(x * w, bounds - 1 - y * 2, objectives.get(i++)); + if(canvas.tilemap.createTile(x * w, y, objectives.get(i))){ + i++; + } if(i >= objectives.size) break loop; } } diff --git a/core/src/mindustry/editor/WaveInfoDialog.java b/core/src/mindustry/editor/WaveInfoDialog.java index cfbdb59f3c..66a29cd487 100644 --- a/core/src/mindustry/editor/WaveInfoDialog.java +++ b/core/src/mindustry/editor/WaveInfoDialog.java @@ -1,7 +1,9 @@ package mindustry.editor; import arc.*; +import arc.func.*; import arc.graphics.*; +import arc.input.*; import arc.math.*; import arc.math.geom.*; import arc.scene.event.*; @@ -21,19 +23,18 @@ import mindustry.type.*; import mindustry.ui.*; import mindustry.ui.dialogs.*; -import java.util.*; - import static mindustry.Vars.*; import static mindustry.game.SpawnGroup.*; public class WaveInfoDialog extends BaseDialog{ - private int displayed = 20; + private int start = 0, displayed = 20; Seq groups = new Seq<>(); - private SpawnGroup expandedGroup; + private @Nullable SpawnGroup expandedGroup; private Table table; - private int start = 0; + private int search = -1; private UnitType lastType = UnitTypes.dagger; + private @Nullable UnitType filterType; private Sort sort = Sort.begin; private boolean reverseSort = false; private float updateTimer, updatePeriod = 1f; @@ -49,45 +50,22 @@ public class WaveInfoDialog extends BaseDialog{ }); hidden(() -> state.rules.spawns = groups); - addCloseListener(); - onResize(this::setup); - buttons.button(Icon.filter, () -> { - BaseDialog dialog = new BaseDialog("@waves.sort"); - dialog.setFillParent(false); - dialog.cont.table(Tex.button, t -> { - for(Sort s : Sort.all){ - t.button("@waves.sort." + s, Styles.flatTogglet, () -> { - sort = s; - dialog.hide(); - buildGroups(); - }).size(150f, 60f).checked(s == sort); - } - }).row(); - dialog.cont.check("@waves.sort.reverse", b -> { - reverseSort = b; - buildGroups(); - }).padTop(4).checked(reverseSort).padBottom(8f); - dialog.addCloseButton(); - dialog.show(); - buildGroups(); - }).size(60f, 64f); - addCloseButton(); - buttons.button("@waves.edit", Icon.pencil, () -> { + buttons.button("@waves.edit", Icon.edit, () -> { BaseDialog dialog = new BaseDialog("@waves.edit"); dialog.addCloseButton(); dialog.setFillParent(false); dialog.cont.table(Tex.button, t -> { - var style = Styles.flatt; - t.defaults().size(210f, 58f); + var style = Styles.cleart; + t.defaults().size(280f, 64f).pad(2f); t.button("@waves.copy", Icon.copy, style, () -> { ui.showInfoFade("@waves.copied"); Core.app.setClipboardText(maps.writeWaves(groups)); dialog.hide(); - }).disabled(b -> groups == null).marginLeft(12f).row(); + }).disabled(b -> groups == null || groups.isEmpty()).marginLeft(12f).row(); t.button("@waves.load", Icon.download, style, () -> { try{ @@ -98,16 +76,16 @@ public class WaveInfoDialog extends BaseDialog{ ui.showErrorMessage("@waves.invalid"); } dialog.hide(); - }).marginLeft(12f).disabled(b -> Core.app.getClipboardText() == null || Core.app.getClipboardText().isEmpty()).row(); + }).disabled(Core.app.getClipboardText() == null || !Core.app.getClipboardText().startsWith("[")).marginLeft(12f).row(); - t.button("@settings.reset", Icon.upload, style, () -> ui.showConfirm("@confirm", "@settings.clear.confirm", () -> { - groups = JsonIO.copy(waves.get()); + t.button("@clear", Icon.none, style, () -> ui.showConfirm("@confirm", "@settings.clear.confirm", () -> { + groups.clear(); buildGroups(); dialog.hide(); })).marginLeft(12f).row(); - t.button("@clear", Icon.cancel, style, () -> ui.showConfirm("@confirm", "@settings.clear.confirm", () -> { - groups.clear(); + t.button("@settings.reset", Icon.refresh, style, () -> ui.showConfirm("@confirm", "@settings.clear.confirm", () -> { + groups = JsonIO.copy(waves.get()); buildGroups(); dialog.hide(); })).marginLeft(12f); @@ -144,7 +122,7 @@ public class WaveInfoDialog extends BaseDialog{ buttons.button(Core.bundle.get("waves.random"), Icon.refresh, () -> { groups.clear(); groups = Waves.generate(1f / 10f); - updateWaves(); + buildGroups(); }).width(200f); } } @@ -171,19 +149,53 @@ public class WaveInfoDialog extends BaseDialog{ void setup(){ groups = JsonIO.copy(state.rules.spawns.isEmpty() ? waves.get() : state.rules.spawns); + if(groups == null) groups = new Seq<>(); cont.clear(); cont.stack(new Table(Tex.clear, main -> { - main.pane(t -> table = t).growX().growY().padRight(8f).scrollX(false); - main.row(); - main.button("@add", () -> { - if(groups == null) groups = new Seq<>(); - SpawnGroup newGroup = new SpawnGroup(lastType); - groups.add(newGroup); - expandedGroup = newGroup; - showUpdate(newGroup); - buildGroups(); - }).growX().height(70f); + main.table(s -> { + 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.unit") + .update(b -> b.getStyle().imageUp = filterType != null ? new TextureRegionDrawable(filterType.uiIcon) : Icon.filter); + }).growX().pad(6f).row(); + + main.pane(t -> table = t).grow().padRight(8f).scrollX(false).row(); + + main.table(t -> { + t.button("@add", () -> { + SpawnGroup newGroup = new SpawnGroup(lastType); + groups.add(newGroup); + expandedGroup = newGroup; + showUnits(type -> newGroup.type = lastType = type, false); + buildGroups(); + }).growX().height(70f); + + t.button(Icon.filter, () -> { + BaseDialog dialog = new BaseDialog("@waves.sort"); + dialog.setFillParent(false); + dialog.cont.table(Tex.button, f -> { + for(Sort s : Sort.all){ + f.button("@waves.sort." + s, Styles.flatTogglet, () -> { + sort = s; + dialog.hide(); + buildGroups(); + }).size(150f, 60f).checked(s == sort); + } + }).row(); + dialog.cont.check("@waves.sort.reverse", b -> { + reverseSort = b; + buildGroups(); + }).padTop(4).checked(reverseSort).padBottom(8f); + dialog.addCloseButton(); + dialog.show(); + }).size(64f, 70f).padLeft(6f); + }).growX(); + }), new Label("@waves.none"){{ visible(() -> groups.isEmpty()); this.touchable = Touchable.disabled; @@ -202,10 +214,13 @@ public class WaveInfoDialog extends BaseDialog{ table.margin(10f); if(groups != null){ - groups.sort(sort.sort); + groups.sort(Structs.comps(Structs.comparingFloat(sort.sort), Structs.comparingFloat(sort.secondary))); if(reverseSort) groups.reverse(); for(SpawnGroup group : groups){ + if(group.effect == StatusEffects.none) group.effect = null; + if((search >= 0 && group.getSpawned(search) <= 0) || (filterType != null && group.type != filterType)) continue; + table.table(Tex.button, t -> { t.margin(0).defaults().pad(3).padLeft(5f).growX().left(); t.button(b -> { @@ -218,24 +233,31 @@ public class WaveInfoDialog extends BaseDialog{ b.label(() -> (group.begin + 1) + "").color(Color.lightGray).minWidth(45f).labelAlign(Align.left).left(); b.button(Icon.copySmall, Styles.emptyi, () -> { - SpawnGroup newGroup = group.copy(); - expandedGroup = newGroup; - groups.add(newGroup); + SpawnGroup copy = group.copy(); + expandedGroup = copy; + groups.insert(groups.indexOf(group) + 1, copy); buildGroups(); - }).pad(-6).size(46f); + }).pad(-6).size(46f).tooltip("@editor.copy"); - b.button(group.effect != null && group.effect != StatusEffects.none ? + b.button(group.effect != null ? new TextureRegionDrawable(group.effect.uiIcon) : Icon.logicSmall, - Styles.emptyi, () -> showEffect(group)).pad(-6).size(46f); + Styles.emptyi, () -> showEffects(group)).pad(-6).size(46f).scaling(Scaling.fit).tooltip(group.effect != null ? group.effect.localizedName : "@none"); - b.button(Icon.unitsSmall, Styles.emptyi, () -> showUpdate(group)).pad(-6).size(46f); + b.button(Icon.unitsSmall, Styles.emptyi, () -> showUnits(type -> group.type = lastType = type, false)).pad(-6).size(46f).tooltip("@stat.unittype"); b.button(Icon.cancel, Styles.emptyi, () -> { groups.remove(group); + if(expandedGroup == group) expandedGroup = null; table.getCell(t).pad(0f); t.remove(); buildGroups(); - }).pad(-6).size(46f).padRight(-12f); + }).pad(-6).size(46f).padRight(-12f).tooltip("@waves.remove"); + b.clicked(KeyCode.mouseMiddle, () -> { + SpawnGroup copy = group.copy(); + groups.insert(groups.indexOf(group) + 1, copy); + expandedGroup = copy; + buildGroups(); + }); }, () -> { expandedGroup = expandedGroup == group ? null : group; buildGroups(); @@ -369,7 +391,7 @@ public class WaveInfoDialog extends BaseDialog{ dialog.hide(); }).size(110f, 45f).checked(-1 == group.spawn); } - }); + }).grow(); dialog.setFillParent(false); dialog.addCloseButton(); dialog.show(); @@ -381,6 +403,10 @@ public class WaveInfoDialog extends BaseDialog{ table.row(); } + + if(table.getChildren().isEmpty() && groups.any()){ + table.add("@none.found"); + } }else{ table.add("@editor.default"); } @@ -388,11 +414,23 @@ public class WaveInfoDialog extends BaseDialog{ updateWaves(); } - void showUpdate(SpawnGroup group){ + void showUnits(Cons cons, boolean reset){ BaseDialog dialog = new BaseDialog(""); dialog.setFillParent(true); dialog.cont.pane(p -> { - int i = 0; + p.defaults().pad(2).fillX(); + if(reset){ + p.button(t -> { + t.left(); + t.image(Icon.none).size(8 * 4).scaling(Scaling.fit).padRight(2f); + t.add("@settings.resetKey"); + }, () -> { + cons.get(null); + dialog.hide(); + buildGroups(); + }).margin(12f); + } + int i = reset ? 1 : 0; for(UnitType type : content.units()){ if(type.isHidden()) continue; p.button(t -> { @@ -400,19 +438,18 @@ public class WaveInfoDialog extends BaseDialog{ t.image(type.uiIcon).size(8 * 4).scaling(Scaling.fit).padRight(2f); t.add(type.localizedName); }, () -> { - lastType = type; - group.type = type; + cons.get(type); dialog.hide(); buildGroups(); - }).pad(2).margin(12f).fillX(); + }).margin(12f); if(++i % 3 == 0) p.row(); } - }); + }).growX().scrollX(false); dialog.addCloseButton(); dialog.show(); } - void showEffect(SpawnGroup group){ + void showEffects(SpawnGroup group){ BaseDialog dialog = new BaseDialog(""); dialog.setFillParent(true); dialog.cont.pane(p -> { @@ -434,28 +471,33 @@ public class WaveInfoDialog extends BaseDialog{ t.add("@settings.resetKey"); } }, () -> { - group.effect = effect; + group.effect = effect != StatusEffects.none ? effect : null; dialog.hide(); buildGroups(); }).pad(2).margin(12f).fillX(); if(++i % 3 == 0) p.row(); } - }); + }).growX().scrollX(false); dialog.addCloseButton(); dialog.show(); } enum Sort{ - begin(Structs.comps(Structs.comparingFloat(g -> g.begin), Structs.comparingFloat(g -> g.type.id))), - health(Structs.comps(Structs.comparingFloat(g -> g.type.health), Structs.comparingFloat(g -> g.begin))), - type(Structs.comps(Structs.comparingFloat(g -> g.type.id), Structs.comparingFloat(g -> g.begin))); + begin(g -> g.begin, g -> g.type.id), + health(g -> g.type.health), + type(g -> g.type.id); static final Sort[] all = values(); - final Comparator sort; + final Floatf sort, secondary; - Sort(Comparator sort){ + Sort(Floatf sort){ + this(sort, g -> g.begin); + } + + Sort(Floatf sort, Floatf secondary){ this.sort = sort; + this.secondary = secondary; } } @@ -465,4 +507,4 @@ public class WaveInfoDialog extends BaseDialog{ graph.to = start + displayed; graph.rebuild(); } -} +} \ No newline at end of file diff --git a/core/src/mindustry/entities/Damage.java b/core/src/mindustry/entities/Damage.java index e7323d395b..4c2106e70b 100644 --- a/core/src/mindustry/entities/Damage.java +++ b/core/src/mindustry/entities/Damage.java @@ -160,7 +160,7 @@ public class Damage{ //add distance to list so it can be processed var build = world.build(x, y); - if(build != null && build.team != b.team && b.checkUnderBuild(build, x * tilesize, y * tilesize)){ + if(build != null && build.team != b.team && build.collide(b) && b.checkUnderBuild(build, x * tilesize, y * tilesize)){ distances.add(b.dst(build)); if(b.type.laserAbsorb && build.absorbLasers()){ @@ -237,7 +237,7 @@ public class Damage{ seg2.set(seg1).add(vec); World.raycastEachWorld(x, y, seg2.x, seg2.y, (cx, cy) -> { Building tile = world.build(cx, cy); - boolean collide = tile != null && hitter.checkUnderBuild(tile, cx * tilesize, cy * tilesize) + boolean collide = tile != null && tile.collide(hitter) && hitter.checkUnderBuild(tile, cx * tilesize, cy * tilesize) && ((tile.team != team && tile.collide(hitter)) || hitter.type.testCollision(hitter, tile)) && collidedBlocks.add(tile.pos()); if(collide){ collided.add(collidePool.obtain().set(cx * tilesize, cy * tilesize, tile)); @@ -618,7 +618,7 @@ public class Damage{ return Math.max(damage - armor, minArmorDamage * damage); } - public static class Collided{ + public static class Collided implements Pool.Poolable{ public float x, y; public Teamc target; @@ -628,5 +628,10 @@ public class Damage{ this.target = target; return this; } + + @Override + public void reset(){ + target = null; + } } } diff --git a/core/src/mindustry/entities/abilities/ForceFieldAbility.java b/core/src/mindustry/entities/abilities/ForceFieldAbility.java index 0a310b7008..4c0ff993c2 100644 --- a/core/src/mindustry/entities/abilities/ForceFieldAbility.java +++ b/core/src/mindustry/entities/abilities/ForceFieldAbility.java @@ -93,13 +93,13 @@ public class ForceFieldAbility extends Ability{ checkRadius(unit); if(unit.shield > 0){ - Draw.z(Layer.shields); - Draw.color(unit.team.color, Color.white, Mathf.clamp(alpha)); if(Vars.renderer.animateShields){ + Draw.z(Layer.shields + 0.001f * alpha); Fill.poly(unit.x, unit.y, sides, realRad, rotation); }else{ + Draw.z(Layer.shields); Lines.stroke(1.5f); Draw.alpha(0.09f); Fill.poly(unit.x, unit.y, sides, radius, rotation); diff --git a/core/src/mindustry/entities/bullet/BulletType.java b/core/src/mindustry/entities/bullet/BulletType.java index 26fccf1673..9797160948 100644 --- a/core/src/mindustry/entities/bullet/BulletType.java +++ b/core/src/mindustry/entities/bullet/BulletType.java @@ -46,6 +46,8 @@ public class BulletType extends Content implements Cloneable{ public boolean pierceBuilding; /** Maximum # of pierced objects. */ public int pierceCap = -1; + /** Multiplier of damage decreased per health pierced. */ + public float pierceDamageFactor = 0f; /** If false, this bullet isn't removed after pierceCap is exceeded. Expert usage only. */ public boolean removeAfterPierce = true; /** For piercing lasers, setting this to true makes it get absorbed by plastanium walls. */ @@ -143,7 +145,7 @@ public class BulletType extends Content implements Cloneable{ public boolean fragOnHit = true; /** If false, this bullet will not create fraags when absorbed by a shield. */ public boolean fragOnAbsorb = true; - /** If true, unit armor is ignored in damage calculations. Ignored for building armor. */ + /** If true, unit armor is ignored in damage calculations. */ public boolean pierceArmor = false; /** Whether status and despawnHit should automatically be set. */ public boolean setDefaults = true; @@ -177,6 +179,8 @@ public class BulletType extends Content implements Cloneable{ public float intervalSpread = 0f; /** Angle offset for interval bullets. */ public float intervalAngle = 0f; + /** Use a negative value to disable interval bullet delay. */ + public float intervalDelay = -1f; /** Color used for hit/despawn effects. */ public Color hitColor = Color.white; @@ -220,6 +224,8 @@ public class BulletType extends Content implements Cloneable{ /** Use a negative value to disable splash damage. */ public float splashDamageRadius = -1f; + /** If true, splash damage pierces through tiles. */ + public boolean splashDamagePierce = false; /** Amount of fires attempted around bullet. */ public int incendAmount = 0; @@ -358,6 +364,8 @@ public class BulletType extends Content implements Cloneable{ }else if(build.team != b.team && direct){ hit(b); } + + handlePierce(b, initialHealth, x, y); } public void hitEntity(Bullet b, Hitboxc entity, float health){ @@ -383,6 +391,19 @@ public class BulletType extends Content implements Cloneable{ if(!wasDead && entity instanceof Unit unit && unit.dead){ Events.fire(new UnitBulletDestroyEvent(unit, b)); } + + handlePierce(b, health, entity.x(), entity.y()); + } + + public void handlePierce(Bullet b, float initialHealth, float x, float y){ + float sub = Mathf.zero(pierceDamageFactor) ? 0f : Math.max(initialHealth * pierceDamageFactor, 0); + //subtract health from each consecutive pierce + b.damage -= Float.isNaN(sub) ? b.damage : Math.min(b.damage, sub); + + if(removeAfterPierce && b.damage <= 0){ + b.hit = true; + b.remove(); + } } public float damageMultiplier(Bullet b){ @@ -438,7 +459,7 @@ public class BulletType extends Content implements Cloneable{ public void createSplashDamage(Bullet b, float x, float y){ if(splashDamageRadius > 0 && !b.absorbed){ - Damage.damage(b.team, x, y, splashDamageRadius, splashDamage * b.damageMultiplier(), false, collidesAir, collidesGround, scaledSplashDamage, b); + Damage.damage(b.team, x, y, splashDamageRadius, splashDamage * b.damageMultiplier(), splashDamagePierce, collidesAir, collidesGround, scaledSplashDamage, b); if(status != StatusEffects.none){ Damage.status(b.team, x, y, splashDamageRadius, status, statusDuration, collidesAir, collidesGround); @@ -557,7 +578,7 @@ public class BulletType extends Content implements Cloneable{ } public void updateBulletInterval(Bullet b){ - if(intervalBullet != null && b.timer.get(2, bulletInterval)){ + if(intervalBullet != null && b.time >= intervalDelay && b.timer.get(2, bulletInterval)){ float ang = b.rotation(); for(int i = 0; i < intervalBullets; i++){ intervalBullet.create(b, b.x, b.y, ang + Mathf.range(intervalRandomSpread) + intervalAngle + ((i - (intervalBullets - 1f)/2f) * intervalSpread)); diff --git a/core/src/mindustry/entities/bullet/LaserBoltBulletType.java b/core/src/mindustry/entities/bullet/LaserBoltBulletType.java index beff118b7a..b0da2cd69e 100644 --- a/core/src/mindustry/entities/bullet/LaserBoltBulletType.java +++ b/core/src/mindustry/entities/bullet/LaserBoltBulletType.java @@ -1,8 +1,8 @@ package mindustry.entities.bullet; import arc.graphics.g2d.*; -import mindustry.gen.*; import mindustry.content.*; +import mindustry.gen.*; import mindustry.graphics.*; public class LaserBoltBulletType extends BasicBulletType{ diff --git a/core/src/mindustry/entities/bullet/PointLaserBulletType.java b/core/src/mindustry/entities/bullet/PointLaserBulletType.java index 9434d1eb3f..e78b91d2d8 100644 --- a/core/src/mindustry/entities/bullet/PointLaserBulletType.java +++ b/core/src/mindustry/entities/bullet/PointLaserBulletType.java @@ -45,6 +45,11 @@ public class PointLaserBulletType extends BulletType{ drawSize = 1000f; } + @Override + public float continuousDamage(){ + return damage / damageInterval * 60f; + } + @Override public float estimateDPS(){ return damage * 100f / damageInterval * 3f; diff --git a/core/src/mindustry/entities/bullet/RailBulletType.java b/core/src/mindustry/entities/bullet/RailBulletType.java index fcc667553c..9058d2cd90 100644 --- a/core/src/mindustry/entities/bullet/RailBulletType.java +++ b/core/src/mindustry/entities/bullet/RailBulletType.java @@ -13,8 +13,6 @@ public class RailBulletType extends BulletType{ public Effect pierceEffect = Fx.hitBulletSmall, pointEffect = Fx.none, lineEffect = Fx.none; public Effect endEffect = Fx.none; - /** Multiplier of damage decreased per health pierced. */ - public float pierceDamageFactor = 1f; public float length = 100f; @@ -37,8 +35,9 @@ public class RailBulletType extends BulletType{ return length; } - void handle(Bullet b, float initialHealth, float x, float y){ - float sub = Math.max(initialHealth*pierceDamageFactor, 0); + @Override + public void handlePierce(Bullet b, float initialHealth, float x, float y){ + float sub = Math.max(initialHealth * pierceDamageFactor, 0); if(b.damage <= 0){ b.fdata = Math.min(b.fdata, b.dst(x, y)); @@ -93,14 +92,8 @@ public class RailBulletType extends BulletType{ return bullet.team != tile.team; } - @Override - public void hitEntity(Bullet b, Hitboxc entity, float health){ - super.hitEntity(b, entity, health); - handle(b, health, entity.getX(), entity.getY()); - } - @Override public void hitTile(Bullet b, Building build, float x, float y, float initialHealth, boolean direct){ - handle(b, initialHealth, x, y); + handlePierce(b, initialHealth, x, y); } } diff --git a/core/src/mindustry/entities/comp/BlockUnitComp.java b/core/src/mindustry/entities/comp/BlockUnitComp.java index a01be90c4f..2ce9a3afd1 100644 --- a/core/src/mindustry/entities/comp/BlockUnitComp.java +++ b/core/src/mindustry/entities/comp/BlockUnitComp.java @@ -68,7 +68,7 @@ abstract class BlockUnitComp implements Unitc{ if(tile != null && this.team != team){ this.team = team; if(tile.team != team){ - tile.team(team); + tile.changeTeam(team); } } } diff --git a/core/src/mindustry/entities/comp/BuildingComp.java b/core/src/mindustry/entities/comp/BuildingComp.java index e0a753530c..a1c5f7b766 100644 --- a/core/src/mindustry/entities/comp/BuildingComp.java +++ b/core/src/mindustry/entities/comp/BuildingComp.java @@ -48,7 +48,7 @@ import static mindustry.Vars.*; @EntityDef(value = {Buildingc.class}, isFinal = false, genio = false, serialize = false) @Component(base = true) -abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, QuadTreeObject, Displayable, Senseable, Controllable, Sized{ +abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, QuadTreeObject, Displayable, Sized, Senseable, Controllable, Settable{ //region vars and initialization static final float timeToSleep = 60f * 1, recentDamageTime = 60f * 5f; static final ObjectSet tmpTiles = new ObjectSet<>(); @@ -1433,7 +1433,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, l.left(); for(Item item : content.items()){ if(flowItems.hasFlowItem(item)){ - l.image(item.uiIcon).padRight(3f); + l.image(item.uiIcon).scaling(Scaling.fit).padRight(3f); l.label(() -> flowItems.getFlowRate(item) < 0 ? "..." : Strings.fixed(flowItems.getFlowRate(item), 1) + ps).color(Color.lightGray); l.row(); } @@ -1463,7 +1463,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, l.left(); for(var liquid : content.liquids()){ if(liquids.hasFlowLiquid(liquid)){ - l.image(liquid.uiIcon).padRight(3f); + l.image(liquid.uiIcon).scaling(Scaling.fit).size(32f).padRight(3f); l.label(() -> liquids.getFlowRate(liquid) < 0 ? "..." : Strings.fixed(liquids.getFlowRate(liquid), 1) + ps).color(Color.lightGray); l.row(); } @@ -1758,8 +1758,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, return; } - //TODO why check for old state? - boolean prevValid = efficiency > 0, update = shouldConsume() && productionValid(); + boolean update = shouldConsume() && productionValid(); float minEfficiency = 1f; @@ -1791,7 +1790,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, updateEfficiencyMultiplier(); //second pass: update every consumer based on efficiency - if(update && prevValid && efficiency > 0){ + if(update && efficiency > 0){ for(var cons : block.updateConsumers){ cons.update(self()); } @@ -1951,6 +1950,58 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, } } + @Override + public void setProp(LAccess prop, double value){ + switch(prop){ + case health -> { + health = (float)Mathf.clamp(value, 0, maxHealth); + healthChanged(); + } + case team -> { + Team team = Team.get((int)value); + if(this.team != team){ + changeTeam(team); + } + } + case totalPower -> { + if(power != null && block.consPower != null && block.consPower.buffered){ + power.status = Mathf.clamp((float)(value / block.consPower.capacity)); + } + } + } + } + + @Override + public void setProp(LAccess prop, Object value){ + switch(prop){ + case team -> { + if(value instanceof Team team && this.team != team){ + changeTeam(team); + } + } + } + } + + @Override + public void setProp(UnlockableContent content, double value){ + if(content instanceof Item item && items != null){ + int amount = (int)value; + if(items.get(item) != amount){ + if(items.get(item) < amount){ + handleStack(item, acceptStack(item, amount - items.get(item), null), null); + }else if(amount >= 0){ + removeStack(item, items.get(item) - amount); + } + } + }else if(content instanceof Liquid liquid && liquids != null){ + float amount = Mathf.clamp((float)value, 0f, block.liquidCapacity); + //decreasing amount is always allowed + if(amount < liquids.get(liquid) || (acceptLiquid(self(), liquid) && (liquids.current() == liquid || liquids.currentAmount() <= 0.1f))){ + liquids.set(liquid, amount); + } + } + } + @Replace @Override public boolean inFogTo(Team viewer){ diff --git a/core/src/mindustry/entities/comp/FireComp.java b/core/src/mindustry/entities/comp/FireComp.java index 33f6e3c4ae..14ce9d8b1a 100644 --- a/core/src/mindustry/entities/comp/FireComp.java +++ b/core/src/mindustry/entities/comp/FireComp.java @@ -30,9 +30,8 @@ abstract class FireComp implements Timedc, Posc, Syncc, Drawc{ @Import float time, lifetime, x, y; Tile tile; - private transient Block block; private transient float - baseFlammability = -1, puddleFlammability, damageTimer = Mathf.random(40f), + puddleFlammability, damageTimer = Mathf.random(40f), spreadTimer = Mathf.random(spreadDelay), fireballTimer = Mathf.random(fireballDelay), warmup = 0f, animation = Mathf.random(frames - 1); @@ -64,12 +63,7 @@ abstract class FireComp implements Timedc, Posc, Syncc, Drawc{ Building entity = tile.build; boolean damage = entity != null; - if(baseFlammability < 0 || block != tile.block()){ - baseFlammability = tile.getFlammability(); - block = tile.block(); - } - - float flammability = baseFlammability + puddleFlammability; + float flammability = tile.getFlammability() + puddleFlammability; if(!damage && flammability <= 0){ time += Time.delta * 8; diff --git a/core/src/mindustry/entities/comp/PhysicsComp.java b/core/src/mindustry/entities/comp/PhysicsComp.java index a3009fe2a8..1924de8eb9 100644 --- a/core/src/mindustry/entities/comp/PhysicsComp.java +++ b/core/src/mindustry/entities/comp/PhysicsComp.java @@ -2,7 +2,6 @@ package mindustry.entities.comp; import arc.math.*; import arc.math.geom.*; -import arc.util.*; import mindustry.annotations.Annotations.*; import mindustry.async.PhysicsProcess.*; import mindustry.gen.*; diff --git a/core/src/mindustry/entities/comp/PuddleComp.java b/core/src/mindustry/entities/comp/PuddleComp.java index bc93435813..090a881060 100644 --- a/core/src/mindustry/entities/comp/PuddleComp.java +++ b/core/src/mindustry/entities/comp/PuddleComp.java @@ -127,7 +127,7 @@ abstract class PuddleComp implements Posc, Puddlec, Drawc, Syncc{ @Replace public float clipSize(){ - return 20; + return 50; //high for light drawing } @Override diff --git a/core/src/mindustry/entities/comp/ShieldComp.java b/core/src/mindustry/entities/comp/ShieldComp.java index 5739a4f81c..ca70594caf 100644 --- a/core/src/mindustry/entities/comp/ShieldComp.java +++ b/core/src/mindustry/entities/comp/ShieldComp.java @@ -1,6 +1,7 @@ package mindustry.entities.comp; import arc.util.*; +import mindustry.*; import mindustry.annotations.Annotations.*; import mindustry.content.*; import mindustry.entities.*; @@ -26,7 +27,7 @@ abstract class ShieldComp implements Healthc, Posc{ @Override public void damage(float amount){ //apply armor and scaling effects - rawDamage(Damage.applyArmor(amount, armor) / healthMultiplier); + rawDamage(Damage.applyArmor(amount, armor) / healthMultiplier / Vars.state.rules.unitHealth(team)); } @Replace @@ -34,14 +35,14 @@ abstract class ShieldComp implements Healthc, Posc{ public void damagePierce(float amount, boolean withEffect){ float pre = hitTime; - rawDamage(amount); + rawDamage(amount / healthMultiplier / Vars.state.rules.unitHealth(team)); if(!withEffect){ hitTime = pre; } } - private void rawDamage(float amount){ + protected void rawDamage(float amount){ boolean hadShields = shield > 0.0001f; if(hadShields){ diff --git a/core/src/mindustry/entities/comp/UnitComp.java b/core/src/mindustry/entities/comp/UnitComp.java index 88bf6bd672..550a68f45e 100644 --- a/core/src/mindustry/entities/comp/UnitComp.java +++ b/core/src/mindustry/entities/comp/UnitComp.java @@ -31,7 +31,7 @@ import static mindustry.Vars.*; import static mindustry.logic.GlobalVars.*; @Component(base = true) -abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, Itemsc, Rotc, Unitc, Weaponsc, Drawc, Boundedc, Syncc, Shieldc, Displayable, Senseable, Ranged, Minerc, Builderc{ +abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, Itemsc, Rotc, Unitc, Weaponsc, Drawc, Boundedc, Syncc, Shieldc, Displayable, Ranged, Minerc, Builderc, Senseable, Settable{ @Import boolean hovering, dead, disarmed; @Import float x, y, rotation, elevation, maxHealth, drag, armor, hitSize, health, ammo, dragMultiplier; @@ -40,6 +40,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I @Import @Nullable Tile mineTile; @Import Vec2 vel; @Import WeaponMount[] mounts; + @Import ItemStack stack; private UnitController controller; Ability[] abilities = {}; @@ -257,6 +258,60 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I return Float.NaN; } + @Override + public void setProp(LAccess prop, double value){ + switch(prop){ + case health -> health = (float)Mathf.clamp(value, 0, maxHealth); + case x -> x = World.unconv((float)value); + case y -> y = World.unconv((float)value); + case rotation -> rotation = (float)value; + case team -> { + if(!net.client()){ + Team team = Team.get((int)value); + if(controller instanceof Player p){ + p.team(team); + } + this.team = team; + } + } + case flag -> flag = value; + } + } + + @Override + public void setProp(LAccess prop, Object value){ + switch(prop){ + case team -> { + if(value instanceof Team t && !net.client()){ + if(controller instanceof Player p) p.team(t); + team = t; + } + } + case payloadType -> { + //only serverside + if(((Object)this) instanceof Payloadc pay && !net.client()){ + if(value instanceof Block b){ + Building build = b.newBuilding().create(b, team()); + if(pay.canPickup(build)) pay.addPayload(new BuildPayload(build)); + }else if(value instanceof UnitType ut){ + Unit unit = ut.create(team()); + if(pay.canPickup(unit)) pay.addPayload(new UnitPayload(unit)); + }else if(value == null && pay.payloads().size > 0){ + pay.dropLastPayload(); + } + } + } + } + } + + @Override + public void setProp(UnlockableContent content, double value){ + if(content instanceof Item item){ + stack.item = item; + stack.amount = Mathf.clamp((int)value, 0, type.itemCapacity); + } + } + @Override @Replace public boolean canDrown(){ diff --git a/core/src/mindustry/entities/effect/RadialEffect.java b/core/src/mindustry/entities/effect/RadialEffect.java index 99289d3e02..1ac37f172f 100644 --- a/core/src/mindustry/entities/effect/RadialEffect.java +++ b/core/src/mindustry/entities/effect/RadialEffect.java @@ -1,5 +1,6 @@ package mindustry.entities.effect; +import arc.graphics.*; import arc.math.*; import mindustry.content.*; import mindustry.entities.*; @@ -24,26 +25,14 @@ public class RadialEffect extends Effect{ } @Override - public void init(){ - effect.init(); - clip = Math.max(clip, effect.clip); - lifetime = effect.lifetime; - } + public void create(float x, float y, float rotation, Color color, Object data){ + if(!shouldCreate()) return; - @Override - public void render(EffectContainer e){ - float x = e.x, y = e.y; - - e.rotation += rotationOffset; + rotation += rotationOffset; for(int i = 0; i < amount; i++){ - e.x = x + Angles.trnsx(e.rotation, lengthOffset); - e.y = y + Angles.trnsy(e.rotation, lengthOffset); - effect.render(e); - e.rotation += rotationSpacing; - e.id ++; + effect.create(x + Angles.trnsx(rotation, lengthOffset), y + Angles.trnsy(rotation, lengthOffset), rotation, color, data); + rotation += rotationSpacing; } - - clip = Math.max(clip, effect.clip); } } diff --git a/core/src/mindustry/entities/part/DrawPart.java b/core/src/mindustry/entities/part/DrawPart.java index 245d1c8064..f3ebfc6ceb 100644 --- a/core/src/mindustry/entities/part/DrawPart.java +++ b/core/src/mindustry/entities/part/DrawPart.java @@ -14,6 +14,8 @@ public abstract class DrawPart{ public boolean under = false; /** For units, this is the index of the weapon this part gets its progress for. */ public int weaponIndex = 0; + /** Which recoil counter to use. < 0 to use base recoil. */ + public int recoilIndex = -1; public abstract void draw(PartParams params); public abstract void load(String name); @@ -41,6 +43,11 @@ public abstract class DrawPart{ this.sideMultiplier = 1; return this; } + + public PartParams setRecoil(float recoils){ + this.recoil = recoils; + return this; + } } public static class PartMove{ diff --git a/core/src/mindustry/entities/pattern/ShootAlternate.java b/core/src/mindustry/entities/pattern/ShootAlternate.java index 0e64e43423..7fd3795fad 100644 --- a/core/src/mindustry/entities/pattern/ShootAlternate.java +++ b/core/src/mindustry/entities/pattern/ShootAlternate.java @@ -1,5 +1,7 @@ package mindustry.entities.pattern; +import arc.util.*; + public class ShootAlternate extends ShootPattern{ /** number of barrels used for shooting. */ public int barrels = 2; @@ -16,10 +18,11 @@ public class ShootAlternate extends ShootPattern{ } @Override - public void shoot(int totalShots, BulletHandler handler){ + public void shoot(int totalShots, BulletHandler handler, @Nullable Runnable barrelIncrementer){ for(int i = 0; i < shots; i++){ float index = ((totalShots + i + barrelOffset) % barrels) - (barrels-1)/2f; handler.shoot(index * spread, 0, 0f, firstShotDelay + shotDelay * i); + if(barrelIncrementer != null) barrelIncrementer.run(); } } } diff --git a/core/src/mindustry/entities/pattern/ShootBarrel.java b/core/src/mindustry/entities/pattern/ShootBarrel.java index 18e6610ab6..debea85726 100644 --- a/core/src/mindustry/entities/pattern/ShootBarrel.java +++ b/core/src/mindustry/entities/pattern/ShootBarrel.java @@ -1,5 +1,7 @@ package mindustry.entities.pattern; +import arc.util.*; + public class ShootBarrel extends ShootPattern{ /** barrels [in x, y, rotation] format. */ public float[] barrels = {0f, 0f, 0f}; @@ -16,10 +18,11 @@ public class ShootBarrel extends ShootPattern{ } @Override - public void shoot(int totalShots, BulletHandler handler){ + public void shoot(int totalShots, BulletHandler handler, @Nullable Runnable barrelIncrementer){ for(int i = 0; i < shots; i++){ int index = ((i + totalShots + barrelOffset) % (barrels.length / 3)) * 3; handler.shoot(barrels[index], barrels[index + 1], barrels[index + 2], firstShotDelay + shotDelay * i); + if(barrelIncrementer != null) barrelIncrementer.run(); } } } diff --git a/core/src/mindustry/entities/pattern/ShootHelix.java b/core/src/mindustry/entities/pattern/ShootHelix.java index 88ca6d20c0..0b61c594c1 100644 --- a/core/src/mindustry/entities/pattern/ShootHelix.java +++ b/core/src/mindustry/entities/pattern/ShootHelix.java @@ -1,12 +1,13 @@ package mindustry.entities.pattern; import arc.math.*; +import arc.util.*; public class ShootHelix extends ShootPattern{ public float scl = 2f, mag = 1.5f, offset = Mathf.PI * 1.25f; @Override - public void shoot(int totalShots, BulletHandler handler){ + public void shoot(int totalShots, BulletHandler handler, @Nullable Runnable barrelIncrementer){ for(int i = 0; i < shots; i++){ for(int sign : Mathf.signs){ handler.shoot(0, 0, 0, firstShotDelay + shotDelay * i, diff --git a/core/src/mindustry/entities/pattern/ShootMulti.java b/core/src/mindustry/entities/pattern/ShootMulti.java index 34497957cd..f54ccdcd81 100644 --- a/core/src/mindustry/entities/pattern/ShootMulti.java +++ b/core/src/mindustry/entities/pattern/ShootMulti.java @@ -1,5 +1,7 @@ package mindustry.entities.pattern; +import arc.util.*; + public class ShootMulti extends ShootPattern{ public ShootPattern source; public ShootPattern[] dest = {}; @@ -25,7 +27,7 @@ public class ShootMulti extends ShootPattern{ } @Override - public void shoot(int totalShots, BulletHandler handler){ + public void shoot(int totalShots, BulletHandler handler, @Nullable Runnable barrelIncrementer){ source.shoot(totalShots, (x, y, rotation, delay, move) -> { for(var pattern : dest){ pattern.shoot(totalShots, (x2, y2, rot2, delay2, mover) -> { @@ -33,8 +35,8 @@ public class ShootMulti extends ShootPattern{ if(move != null) move.move(b); if(mover != null) mover.move(b); }); - }); + }, null); } - }); + }, barrelIncrementer); } } diff --git a/core/src/mindustry/entities/pattern/ShootPattern.java b/core/src/mindustry/entities/pattern/ShootPattern.java index 2098d24291..4cb15187df 100644 --- a/core/src/mindustry/entities/pattern/ShootPattern.java +++ b/core/src/mindustry/entities/pattern/ShootPattern.java @@ -1,5 +1,6 @@ package mindustry.entities.pattern; +import arc.util.*; import mindustry.entities.*; /** Handles different types of bullet patterns for shooting. */ @@ -11,6 +12,12 @@ public class ShootPattern implements Cloneable{ /** delay in ticks between shots */ public float shotDelay = 0; + /** Called on a single "trigger pull". This function should call the handler with any bullets that result. */ + public void shoot(int totalShots, BulletHandler handler, @Nullable Runnable barrelIncrementer){ + //the default implementation calls the "soft deprecated" variant for mod compatibility, so overrides from older mods can function properly + shoot(totalShots, handler); + } + /** Called on a single "trigger pull". This function should call the handler with any bullets that result. */ public void shoot(int totalShots, BulletHandler handler){ for(int i = 0; i < shots; i++){ diff --git a/core/src/mindustry/entities/pattern/ShootSine.java b/core/src/mindustry/entities/pattern/ShootSine.java index 1e8215bde4..4f4d5bc1e2 100644 --- a/core/src/mindustry/entities/pattern/ShootSine.java +++ b/core/src/mindustry/entities/pattern/ShootSine.java @@ -1,6 +1,7 @@ package mindustry.entities.pattern; import arc.math.*; +import arc.util.*; public class ShootSine extends ShootPattern{ /** scaling applied to bullet index */ @@ -17,7 +18,7 @@ public class ShootSine extends ShootPattern{ } @Override - public void shoot(int totalShots, BulletHandler handler){ + public void shoot(int totalShots, BulletHandler handler, @Nullable Runnable barrelIncrementer){ for(int i = 0; i < shots; i++){ float angleOffset = Mathf.sin(i + totalShots, scl, mag); handler.shoot(0, 0, angleOffset, firstShotDelay + shotDelay * i); diff --git a/core/src/mindustry/entities/pattern/ShootSpread.java b/core/src/mindustry/entities/pattern/ShootSpread.java index 98236c993f..0508fc8a91 100644 --- a/core/src/mindustry/entities/pattern/ShootSpread.java +++ b/core/src/mindustry/entities/pattern/ShootSpread.java @@ -1,5 +1,7 @@ package mindustry.entities.pattern; +import arc.util.*; + public class ShootSpread extends ShootPattern{ /** spread between bullets, in degrees. */ public float spread = 5f; @@ -13,7 +15,7 @@ public class ShootSpread extends ShootPattern{ } @Override - public void shoot(int totalShots, BulletHandler handler){ + public void shoot(int totalShots, BulletHandler handler, @Nullable Runnable barrelIncrementer){ for(int i = 0; i < shots; i++){ float angleOffset = i * spread - (shots - 1) * spread / 2f; handler.shoot(0, 0, angleOffset, firstShotDelay + shotDelay * i); diff --git a/core/src/mindustry/entities/pattern/ShootSummon.java b/core/src/mindustry/entities/pattern/ShootSummon.java index 3a0f1f164d..c57bd8936d 100644 --- a/core/src/mindustry/entities/pattern/ShootSummon.java +++ b/core/src/mindustry/entities/pattern/ShootSummon.java @@ -14,9 +14,7 @@ public class ShootSummon extends ShootPattern{ } @Override - public void shoot(int totalShots, BulletHandler handler){ - - + public void shoot(int totalShots, BulletHandler handler, @Nullable Runnable barrelIncrementer){ for(int i = 0; i < shots; i++){ Tmp.v1.trns(Mathf.random(360f), Mathf.random(radius)); diff --git a/core/src/mindustry/entities/units/BuildPlan.java b/core/src/mindustry/entities/units/BuildPlan.java index 26811b741f..9e1be93361 100644 --- a/core/src/mindustry/entities/units/BuildPlan.java +++ b/core/src/mindustry/entities/units/BuildPlan.java @@ -25,8 +25,10 @@ public class BuildPlan implements Position, QuadTreeObject{ /** Last progress.*/ public float progress; - /** Whether construction has started for this plan, and other special variables.*/ - public boolean initialized, worldContext = true, stuck, cachedValid; + /** Whether construction has started for this plan. */ + public boolean initialized, stuck, cachedValid; + /** If true, this plan is in the world. If false, it is being rendered in a schematic. */ + public boolean worldContext = true; /** Visual scale. Used only for rendering.*/ public float animScale = 0f; diff --git a/core/src/mindustry/entities/units/WeaponMount.java b/core/src/mindustry/entities/units/WeaponMount.java index 2bf0df7e6e..752b3fd071 100644 --- a/core/src/mindustry/entities/units/WeaponMount.java +++ b/core/src/mindustry/entities/units/WeaponMount.java @@ -14,6 +14,8 @@ public class WeaponMount{ public float rotation; /** weapon recoil */ public float recoil; + /** weapon barrel recoil */ + public @Nullable float[] recoils; /** destination rotation; do not modify! */ public float targetRotation; /** current heat, 0 to 1*/ @@ -34,8 +36,10 @@ public class WeaponMount{ public boolean rotate = false; /** extra state for alternating weapons */ public boolean side; - /** total bullets fired from this mount; used for alternating patterns */ + /** total bullets fired from this mount */ public int totalShots; + /** counter for which barrel bullets have been fired from; used for alternating patterns */ + public int barrelCounter; /** current bullet for continuous weapons */ public @Nullable Bullet bullet; /** sound loop for continuous weapons */ diff --git a/core/src/mindustry/game/AttackIndicators.java b/core/src/mindustry/game/AttackIndicators.java new file mode 100644 index 0000000000..dded3808ff --- /dev/null +++ b/core/src/mindustry/game/AttackIndicators.java @@ -0,0 +1,66 @@ +package mindustry.game; + +import arc.math.geom.*; +import arc.struct.*; +import arc.util.*; +import mindustry.annotations.Annotations.*; +import mindustry.gen.*; + +/** Updates and stores attack indicators for the minimap. */ +public class AttackIndicators{ + private static final float duration = 15f * 60f; + + private LongSeq indicators = new LongSeq(false, 16); + private IntIntMap posToIndex = new IntIntMap(); + + public LongSeq list(){ + return indicators; + } + + public void clear(){ + indicators.clear(); + posToIndex.clear(); + } + + public void add(int x, int y){ + int pos = Point2.pack(x, y); + int index = posToIndex.get(pos, -1); + + //there is an existing indicator... + if(index != -1){ + //reset its time (new attack) + indicators.items[index] = Indicator.time(indicators.items[index], 0f); + }else{ + //new indicator created + indicators.add(Indicator.get(pos, 0f)); + posToIndex.put(pos, indicators.size - 1); + } + } + + public void update(){ + long[] items = indicators.items; + for(int i = 0; i < indicators.size; i ++){ + long l = items[i]; + items[i] = l = Indicator.time(l, Indicator.time(l) + Time.delta); + + if(Indicator.time(l) >= duration){ + //remove the indicator as it has timed out, make sure to not skip the next one + indicators.removeIndex(i); + posToIndex.remove(Indicator.pos(l)); + + if(indicators.size > 0){ + //relocation of head to this new index + posToIndex.put(Indicator.pos(items[i]), i); + } + + i --; + } + } + } + + @Struct + class IndicatorStruct{ + int pos; + float time; + } +} diff --git a/core/src/mindustry/game/EventType.java b/core/src/mindustry/game/EventType.java index cf44cea851..2bfe8367d8 100644 --- a/core/src/mindustry/game/EventType.java +++ b/core/src/mindustry/game/EventType.java @@ -179,8 +179,21 @@ public class EventType{ public MenuOptionChooseEvent(Player player, int menuId, int option){ this.player = player; - this.option = option; this.menuId = menuId; + this.option = option; + } + } + + /** Consider using Menus.registerTextInput instead. */ + public static class TextInputEvent{ + public final Player player; + public final int textInputId; + public final @Nullable String text; + + public TextInputEvent(Player player, int textInputId, String text){ + this.player = player; + this.textInputId = textInputId; + this.text = text; } } diff --git a/core/src/mindustry/game/Rules.java b/core/src/mindustry/game/Rules.java index d26613f021..f6445db9ec 100644 --- a/core/src/mindustry/game/Rules.java +++ b/core/src/mindustry/game/Rules.java @@ -69,6 +69,8 @@ public class Rules{ public float unitCostMultiplier = 1f; /** How much damage units deal. */ public float unitDamageMultiplier = 1f; + /** How much health units start with. */ + public float unitHealthMultiplier = 1f; /** How much damage unit crash damage deals. (Compounds with unitDamageMultiplier) */ public float unitCrashDamageMultiplier = 1f; /** If true, ghost blocks will appear upon destruction, letting builder blocks/units rebuild them. */ @@ -111,7 +113,7 @@ public class Rules{ public float waveSpacing = 2 * Time.toMinutes; /** Starting wave spacing; if <=0, uses waveSpacing * 2. */ public float initialWaveSpacing = 0f; - /** Wave after which the player 'wins'. Used in sectors. Use a value <= 0 to disable. */ + /** Wave after which the player 'wins'. Use a value <= 0 to disable. */ public int winWave = 0; /** Base unit cap. Can still be increased by blocks. */ public int unitCap = 0; @@ -226,6 +228,11 @@ public class Rules{ return unitDamageMultiplier * teams.get(team).unitDamageMultiplier; } + public float unitHealth(Team team){ + //a 0 here would be a very bad idea. + return Math.max(unitHealthMultiplier * teams.get(team).unitHealthMultiplier, 0.000001f); + } + public float unitCrashDamage(Team team){ return unitDamage(team) * unitCrashDamageMultiplier * teams.get(team).unitCrashDamageMultiplier; } @@ -233,7 +240,6 @@ public class Rules{ public float blockHealth(Team team){ return blockHealthMultiplier * teams.get(team).blockHealthMultiplier; } - public float blockDamage(Team team){ return blockDamageMultiplier * teams.get(team).blockDamageMultiplier; } @@ -278,6 +284,8 @@ public class Rules{ public float unitCrashDamageMultiplier = 1f; /** Multiplier of resources that units take to build. */ public float unitCostMultiplier = 1f; + /** How much health units start with. */ + public float unitHealthMultiplier = 1f; /** How much health blocks start with. */ public float blockHealthMultiplier = 1f; /** How much damage blocks (turrets) deal. */ diff --git a/core/src/mindustry/game/Saves.java b/core/src/mindustry/game/Saves.java index ee7989711f..6927813008 100644 --- a/core/src/mindustry/game/Saves.java +++ b/core/src/mindustry/game/Saves.java @@ -17,6 +17,7 @@ import mindustry.type.*; import java.io.*; import java.text.*; import java.util.*; +import java.util.concurrent.*; import static mindustry.Vars.*; @@ -47,11 +48,24 @@ public class Saves{ public void load(){ saves.clear(); + //read saves in parallel + Seq> futures = new Seq<>(); + for(Fi file : saveDirectory.list()){ if(!file.name().contains("backup") && SaveIO.isSaveValid(file)){ - SaveSlot slot = new SaveSlot(file); - saves.add(slot); - slot.meta = SaveIO.getMeta(file); + futures.add(mainExecutor.submit(() -> { + SaveSlot slot = new SaveSlot(file); + slot.meta = SaveIO.getMeta(file); + return slot; + })); + } + } + + for(var future : futures){ + try{ + saves.add(future.get()); + }catch(Exception e){ + Log.err(e); } } diff --git a/core/src/mindustry/game/Schematics.java b/core/src/mindustry/game/Schematics.java index ca12b2668b..118fdaf14f 100644 --- a/core/src/mindustry/game/Schematics.java +++ b/core/src/mindustry/game/Schematics.java @@ -320,11 +320,24 @@ public class Schematics implements Loadable{ return block.size + maxLoadoutSchematicPad*2; } + Fi findFile(String schematicName){ + if(schematicName.isEmpty()) schematicName = "empty"; + Fi result = null; + int index = 0; + + while(result == null || result.exists()){ + result = schematicDirectory.child(schematicName + (index == 0 ? "" : "_" + index) + "." + schematicExtension); + index ++; + } + + return result; + } + /** Adds a schematic to the list, also copying it into the files.*/ public void add(Schematic schematic){ all.add(schematic); try{ - Fi file = schematicDirectory.child(Time.millis() + "." + schematicExtension); + Fi file = findFile(Strings.sanitizeFilename(schematic.name())); write(schematic, file); schematic.file = file; }catch(Exception e){ diff --git a/core/src/mindustry/game/SpawnGroup.java b/core/src/mindustry/game/SpawnGroup.java index b4877e7917..d155c8bc60 100644 --- a/core/src/mindustry/game/SpawnGroup.java +++ b/core/src/mindustry/game/SpawnGroup.java @@ -118,7 +118,7 @@ public class SpawnGroup implements JsonSerializable, Cloneable{ if(unitAmount != 1) json.writeValue("amount", unitAmount); if(effect != null) json.writeValue("effect", effect.name); if(spawn != -1) json.writeValue("spawn", spawn); - if(payloads != null && payloads.size > 0) json.writeValue("payloads", payloads.map(u -> u.name).toArray(String.class)); + if(payloads != null && payloads.any()) json.writeValue("payloads", payloads.map(u -> u.name).toArray(String.class)); if(items != null && items.amount > 0) json.writeValue("items", items); } @@ -127,7 +127,7 @@ public class SpawnGroup implements JsonSerializable, Cloneable{ public void read(Json json, JsonValue data){ String tname = data.getString("type", "dagger"); - type = content.getByName(ContentType.unit, LegacyIO.unitMap.get(tname, tname)); + type = content.unit(LegacyIO.unitMap.get(tname, tname)); if(type == null) type = UnitTypes.dagger; begin = data.getInt("begin", 0); end = data.getInt("end", never); @@ -138,7 +138,7 @@ public class SpawnGroup implements JsonSerializable, Cloneable{ shieldScaling = data.getFloat("shieldScaling", 0); unitAmount = data.getInt("amount", 1); spawn = data.getInt("spawn", -1); - if(data.has("payloads")) payloads = Seq.with(json.readValue(String[].class, data.get("payloads"))).map(s -> content.getByName(ContentType.unit, s)); + if(data.has("payloads")) payloads = Seq.with(json.readValue(String[].class, data.get("payloads"))).map(s -> content.unit(s)); if(data.has("items")) items = json.readValue(ItemStack.class, data.get("items")); @@ -146,7 +146,7 @@ public class SpawnGroup implements JsonSerializable, Cloneable{ if(data.has("effect") && data.get("effect").isNumber() && data.getInt("effect", -1) == 8){ effect = StatusEffects.boss; }else{ - effect = content.getByName(ContentType.status, data.has("effect") && data.get("effect").isString() ? data.getString("effect", "none") : "none"); + effect = content.statusEffect(data.has("effect") && data.get("effect").isString() ? data.getString("effect", "none") : "none"); } } diff --git a/core/src/mindustry/game/Teams.java b/core/src/mindustry/game/Teams.java index 85e03def0a..87eebbdbf0 100644 --- a/core/src/mindustry/game/Teams.java +++ b/core/src/mindustry/game/Teams.java @@ -37,7 +37,7 @@ public class Teams{ public CoreBuild closestEnemyCore(float x, float y, Team team){ CoreBuild closest = null; float closestDst = Float.MAX_VALUE; - + for(Team enemy : team.data().coreEnemies){ for(CoreBuild core : enemy.cores()){ float dst = Mathf.dst2(x, y, core.getX(), core.getY()); diff --git a/core/src/mindustry/game/Universe.java b/core/src/mindustry/game/Universe.java index 6ec77e62fd..01b1d714b3 100644 --- a/core/src/mindustry/game/Universe.java +++ b/core/src/mindustry/game/Universe.java @@ -82,12 +82,11 @@ public class Universe{ } } - if(state.hasSector() && state.getSector().planet.updateLighting){ - boolean disable = state.getSector().preset != null && state.getSector().preset.noLighting; + if(state.hasSector() && state.getSector().planet.updateLighting && !(state.getSector().preset != null && state.getSector().preset.noLighting)){ var planet = state.getSector().planet; //update sector light float light = state.getSector().getLight(); - float alpha = disable ? 1f : Mathf.clamp(Mathf.map(light, planet.lightSrcFrom, planet.lightSrcTo, planet.lightDstFrom, planet.lightDstTo)); + float alpha = Mathf.clamp(Mathf.map(light, planet.lightSrcFrom, planet.lightSrcTo, planet.lightDstFrom, planet.lightDstTo)); //assign and map so darkness is not 100% dark state.rules.ambientLight.a = 1f - alpha; diff --git a/core/src/mindustry/game/Waves.java b/core/src/mindustry/game/Waves.java index 462d8eba87..ea59f4224c 100644 --- a/core/src/mindustry/game/Waves.java +++ b/core/src/mindustry/game/Waves.java @@ -10,7 +10,7 @@ import mindustry.type.*; import static mindustry.content.UnitTypes.*; public class Waves{ - public static final int waveVersion = 5; + public static final int waveVersion = 6; private Seq spawns; diff --git a/core/src/mindustry/graphics/BlockRenderer.java b/core/src/mindustry/graphics/BlockRenderer.java index 7718b9f8c8..394238b8e8 100644 --- a/core/src/mindustry/graphics/BlockRenderer.java +++ b/core/src/mindustry/graphics/BlockRenderer.java @@ -85,6 +85,10 @@ public class BlockRenderer{ updateFloors.add(new UpdateRenderState(tile, tile.floor())); } + if(tile.overlay().updateRender(tile)){ + updateFloors.add(new UpdateRenderState(tile, tile.overlay())); + } + if(tile.build != null && (tile.team() == player.team() || !state.rules.fog || (tile.build.visibleFlags & (1L << player.team().id)) != 0)){ tile.build.wasVisible = true; } diff --git a/core/src/mindustry/graphics/InverseKinematics.java b/core/src/mindustry/graphics/InverseKinematics.java index 133eae78ff..016c3a47ec 100644 --- a/core/src/mindustry/graphics/InverseKinematics.java +++ b/core/src/mindustry/graphics/InverseKinematics.java @@ -12,6 +12,19 @@ public class InverseKinematics{ return solve(lengthA, lengthB, end, at1, result); } + /** + inputs: + + @param lengthA first line segment length + @param lengthB second line segment length + @param end length of the endpoint you want to reach + @param attractor direction you want the result to be closer to (since there are usually 2 solutions) + + output: + + @param result a point in-between (0, 0) and (end) such that (0, 0).dst(result) == lengthA and result.dst(end) == lengthB - or in basic terms, the position of a joint between (0, 0) and end where the two lengths of segments are lengthA and lengthB + @return whether IK succeeded (this can fail if end is too far, for example) + */ public static boolean solve(float lengthA, float lengthB, Vec2 end, Vec2 attractor, Vec2 result){ Vec2 axis = mat2[0].set(end).nor(); mat2[1].set(attractor).sub(temp2.set(axis).scl(attractor.dot(axis))).nor(); diff --git a/core/src/mindustry/graphics/MinimapRenderer.java b/core/src/mindustry/graphics/MinimapRenderer.java index 3750d33522..970eb390fa 100644 --- a/core/src/mindustry/graphics/MinimapRenderer.java +++ b/core/src/mindustry/graphics/MinimapRenderer.java @@ -21,7 +21,8 @@ import mindustry.world.*; import static mindustry.Vars.*; public class MinimapRenderer{ - private static final float baseSize = 16f; + private static final float baseSize = 16f, updateInterval = 2f; + private final Seq units = new Seq<>(); private Pixmap pixmap; private Texture texture; @@ -31,6 +32,8 @@ public class MinimapRenderer{ private float lastX, lastY, lastW, lastH, lastScl; private boolean worldSpace; + private IntSet updates = new IntSet(); + private float updateCounter = 0f; public MinimapRenderer(){ Events.on(WorldLoadEvent.class, event -> { @@ -65,6 +68,26 @@ public class MinimapRenderer{ }); Events.on(BuildTeamChangeEvent.class, event -> update(event.build.tile)); + + Events.run(Trigger.update, () -> { + //updates are batched to occur every 2 frames + if((updateCounter += Time.delta) >= updateInterval){ + updateCounter %= updateInterval; + + updates.each(pos -> { + Tile tile = world.tile(pos); + if(tile == null) return; + + int color = colorFor(tile); + pixmap.set(tile.x, pixmap.height - 1 - tile.y, color); + + //yes, this calls glTexSubImage2D every time, with a 1x1 region + Pixmaps.drawPixel(texture, tile.x, pixmap.height - 1 - tile.y, color); + }); + + updates.clear(); + } + }); } public Pixmap getPixmap(){ @@ -89,6 +112,7 @@ public class MinimapRenderer{ } public void reset(){ + updates.clear(); if(pixmap != null){ pixmap.dispose(); texture.dispose(); @@ -99,15 +123,15 @@ public class MinimapRenderer{ region = new TextureRegion(texture); } - public void drawEntities(float x, float y, float w, float h, float scaling, boolean withLabels){ + public void drawEntities(float x, float y, float w, float h, float scaling, boolean fullView){ lastX = x; lastY = y; lastW = w; lastH = h; lastScl = scaling; - worldSpace = withLabels; + worldSpace = fullView; - if(!withLabels){ + if(!fullView){ updateUnitArray(); }else{ units.clear(); @@ -125,8 +149,8 @@ public class MinimapRenderer{ for(Unit unit : units){ if(unit.inFogTo(player.team()) || !unit.type.drawMinimap) continue; - float rx = !withLabels ? (unit.x - rect.x) / rect.width * w : unit.x / (world.width() * tilesize) * w; - float ry = !withLabels ? (unit.y - rect.y) / rect.width * h : unit.y / (world.height() * tilesize) * h; + float rx = !fullView ? (unit.x - rect.x) / rect.width * w : unit.x / (world.width() * tilesize) * w; + float ry = !fullView ? (unit.y - rect.y) / rect.width * h : unit.y / (world.height() * tilesize) * h; Draw.mixcol(unit.team.color, 1f); float scale = Scl.scl(1f) / 2f * scaling * 32f; @@ -135,7 +159,7 @@ public class MinimapRenderer{ Draw.reset(); } - if(withLabels && net.active()){ + if(fullView && net.active()){ for(Player player : Groups.player){ if(!player.dead()){ float rx = player.x / (world.width() * tilesize) * w; @@ -149,7 +173,7 @@ public class MinimapRenderer{ Draw.reset(); if(state.rules.fog){ - if(withLabels){ + if(fullView){ float z = zoom; //max zoom out fixes everything, somehow? setZoom(99999f); @@ -186,12 +210,53 @@ public class MinimapRenderer{ } //TODO might be useful in the standard minimap too - if(withLabels){ + if(fullView){ drawSpawns(x, y, w, h, scaling); + + if(!mobile){ + //draw bounds for camera - not drawn on mobile because you can't shift it by tapping anyway + Rect r = Core.camera.bounds(Tmp.r1); + Vec2 bot = transform(Tmp.v1.set(r.x, r.y)); + Vec2 top = transform(Tmp.v2.set(r.x + r.width, r.y + r.height)); + Lines.stroke(Scl.scl(3f)); + Draw.color(Pal.accent); + Lines.rect(bot.x,bot.y, top.x - bot.x, top.y - bot.y); + Draw.reset(); + } } + LongSeq indicators = control.indicators.list(); + float fin = ((Time.globalTime / 30f) % 1f); + float rad = scale(fin * 5f + tilesize - 2f); + Lines.stroke(Scl.scl((1f - fin) * 4f + 0.5f)); + + for(int i = 0; i < indicators.size; i++){ + long ind = indicators.items[i]; + int + pos = Indicator.pos(ind), + ix = Point2.x(pos), + iy = Point2.y(pos); + float time = Indicator.time(ind), offset = 0f; + + //fix multiblock offset - this is suboptimal + Building build = world.build(pos); + if(build != null){ + offset = build.block.offset / tilesize; + } + + Vec2 v = transform(Tmp.v1.set((ix + 0.5f + offset) * tilesize, (iy + 0.5f + offset) * tilesize)); + + Draw.color(Color.orange, Color.scarlet, Mathf.clamp(time / 70f)); + + Lines.square(v.x, v.y, rad); + } + + Draw.reset(); + state.rules.objectives.eachRunning(obj -> { - for(var marker : obj.markers) marker.drawMinimap(this); + for(var marker : obj.markers){ + marker.drawMinimap(this); + } }); } @@ -278,10 +343,7 @@ public class MinimapRenderer{ } void updatePixel(Tile tile){ - int color = colorFor(tile); - pixmap.set(tile.x, pixmap.height - 1 - tile.y, color); - - Pixmaps.drawPixel(texture, tile.x, pixmap.height - 1 - tile.y, color); + updates.add(tile.pos()); } public void updateUnitArray(){ diff --git a/core/src/mindustry/graphics/g3d/PlanetRenderer.java b/core/src/mindustry/graphics/g3d/PlanetRenderer.java index 255e1ed1cf..1af20f68ed 100644 --- a/core/src/mindustry/graphics/g3d/PlanetRenderer.java +++ b/core/src/mindustry/graphics/g3d/PlanetRenderer.java @@ -188,9 +188,10 @@ public class PlanetRenderer implements Disposable{ } //render sector grid - Mesh mesh = outline(planet.grid.size); + float scaledOutlineRad = outlineRad * planet.radius; + Mesh mesh = outline(planet.grid.size, planet.radius); Shader shader = Shaders.planetGrid; - Vec3 tile = planet.intersect(cam.getMouseRay(), outlineRad); + Vec3 tile = planet.intersect(cam.getMouseRay(), scaledOutlineRad); Shaders.planetGrid.mouse.lerp(tile == null ? Vec3.Zero : tile.sub(planet.position).rotate(Vec3.Y, planet.getRotation()), 0.2f); shader.bind(); @@ -210,13 +211,14 @@ public class PlanetRenderer implements Disposable{ public void drawArc(Planet planet, Vec3 a, Vec3 b, Color from, Color to, float length, float timeScale, int pointCount){ //increase curve height when on opposite side of planet, so it doesn't tunnel through + float scaledOutlineRad = outlineRad * planet.radius; float dot = 1f - (Tmp.v32.set(a).nor().dot(Tmp.v33.set(b).nor()) + 1f)/2f; Vec3 avg = Tmp.v31.set(b).add(a).scl(0.5f); avg.setLength(planet.radius*(1f+length) + dot * 1.35f); points.clear(); - points.addAll(Tmp.v33.set(b).setLength(outlineRad), Tmp.v31, Tmp.v34.set(a).setLength(outlineRad)); + points.addAll(Tmp.v33.set(b).setLength(scaledOutlineRad), Tmp.v31, Tmp.v34.set(a).setLength(scaledOutlineRad)); Tmp.bz3.set(points); for(int i = 0; i < pointCount + 1; i++){ @@ -231,8 +233,8 @@ public class PlanetRenderer implements Disposable{ public void drawBorders(Sector sector, Color base, float alpha){ Color color = Tmp.c1.set(base).a((base.a + 0.3f + Mathf.absin(Time.globalTime, 5f, 0.3f)) * alpha); - float r1 = 1f; - float r2 = outlineRad + 0.001f; + float r1 = 1f * sector.planet.radius; + float r2 = outlineRad * sector.planet.radius + 0.001f; for(int i = 0; i < sector.tile.corners.length; i++){ Corner c = sector.tile.corners[i], next = sector.tile.corners[(i+1) % sector.tile.corners.length]; @@ -268,16 +270,16 @@ public class PlanetRenderer implements Disposable{ projector.setPlane( //origin on sector position - Tmp.v33.set(sector.tile.v).setLength(outlineRad + length).rotate(Vec3.Y, rotation).add(sector.planet.position), + Tmp.v33.set(sector.tile.v).setLength((outlineRad + length) * sector.planet.radius).rotate(Vec3.Y, rotation).add(sector.planet.position), //face up - sector.plane.project(Tmp.v32.set(sector.tile.v).add(Vec3.Y)).sub(sector.tile.v).rotate(Vec3.Y, rotation).nor(), + sector.plane.project(Tmp.v32.set(sector.tile.v).add(Vec3.Y)).sub(sector.tile.v, sector.planet.radius).rotate(Vec3.Y, rotation).nor(), //right vector Tmp.v31.set(Tmp.v32).rotate(Vec3.Y, -rotation).add(sector.tile.v).rotate(sector.tile.v, 90).sub(sector.tile.v).rotate(Vec3.Y, rotation).nor() ); } public void fill(Sector sector, Color color, float offset){ - float rr = outlineRad + offset; + float rr = outlineRad * sector.planet.radius + offset; for(int i = 0; i < sector.tile.corners.length; i++){ Corner c = sector.tile.corners[i], next = sector.tile.corners[(i+1) % sector.tile.corners.length]; batch.tri(Tmp.v31.set(c.v).setLength(rr), Tmp.v32.set(next.v).setLength(rr), Tmp.v33.set(sector.tile.v).setLength(rr), color); @@ -289,7 +291,7 @@ public class PlanetRenderer implements Disposable{ } public void drawSelection(Sector sector, Color color, float stroke, float length){ - float arad = outlineRad + length; + float arad = (outlineRad + length) * sector.planet.radius; for(int i = 0; i < sector.tile.corners.length; i++){ Corner next = sector.tile.corners[(i + 1) % sector.tile.corners.length]; @@ -311,7 +313,7 @@ public class PlanetRenderer implements Disposable{ } } - public Mesh outline(int size){ + public Mesh outline(int size, float radiusScale){ if(outlines[size] == null){ outlines[size] = MeshBuilder.buildHex(new HexMesher(){ @Override @@ -323,7 +325,7 @@ public class PlanetRenderer implements Disposable{ public Color getColor(Vec3 position){ return outlineColor; } - }, size, true, outlineRad, 0.2f); + }, size, true, outlineRad * radiusScale, 0.2f); } return outlines[size]; } diff --git a/core/src/mindustry/input/DesktopInput.java b/core/src/mindustry/input/DesktopInput.java index 96f82b1040..f24d4cba74 100644 --- a/core/src/mindustry/input/DesktopInput.java +++ b/core/src/mindustry/input/DesktopInput.java @@ -262,7 +262,7 @@ public class DesktopInput extends InputHandler{ shouldShoot = !scene.hasMouse() && !locked; - if(!locked && block == null && !scene.hasField() && + if(!locked && block == null && !scene.hasField() && !scene.hasDialog() && //disable command mode when player unit can boost and command mode binding is the same !(!player.dead() && player.unit().type.canBoost && keybinds.get(Binding.command_mode).key == keybinds.get(Binding.boost).key)){ if(settings.getBool("commandmodehold")){ @@ -770,6 +770,14 @@ public class DesktopInput extends InputHandler{ } } + @Override + public void panCamera(Vec2 position){ + if(!locked()){ + panning = true; + camera.position.set(position); + } + } + protected void updateMovement(Unit unit){ boolean omni = unit.type.omniMovement; diff --git a/core/src/mindustry/input/InputHandler.java b/core/src/mindustry/input/InputHandler.java index 589c1ae30b..11877512e5 100644 --- a/core/src/mindustry/input/InputHandler.java +++ b/core/src/mindustry/input/InputHandler.java @@ -1482,6 +1482,13 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ return World.toTile(vec.y); } + /** Forces the camera to a position and enables panning on desktop. */ + public void panCamera(Vec2 position){ + if(!locked()){ + camera.position.set(position); + } + } + public boolean selectedBlock(){ return isPlacing(); } diff --git a/core/src/mindustry/io/TypeIO.java b/core/src/mindustry/io/TypeIO.java index 394f464045..a12c2f5f7d 100644 --- a/core/src/mindustry/io/TypeIO.java +++ b/core/src/mindustry/io/TypeIO.java @@ -119,6 +119,15 @@ public class TypeIO{ }else if(object instanceof Team t){ write.b((byte)20); write.b(t.id); + }else if(object instanceof int[] i){ + write.b((byte)21); + writeInts(write, i); + }else if(object instanceof Object[] objs){ + write.b((byte)22); + write.i(objs.length); + for(Object obj : objs){ + writeObject(write, obj); + } }else{ throw new IllegalArgumentException("Unknown object type: " + object.getClass()); } @@ -184,6 +193,13 @@ public class TypeIO{ } case 19 -> new Vec2(read.f(), read.f()); case 20 -> Team.all[read.ub()]; + case 21 -> readInts(read); + case 22 -> { + int objlen = read.i(); + Object[] objs = new Object[objlen]; + for(int i = 0; i < objlen; i++) objs[i] = readObjectBoxed(read, box); + yield objs; + } default -> throw new IllegalArgumentException("Unknown object type: " + type); }; } @@ -631,8 +647,8 @@ public class TypeIO{ return new ItemStack(readItem(read), read.i()); } - public static void writeTeam(Writes write, Team reason){ - write.b(reason.id); + public static void writeTeam(Writes write, Team team){ + write.b(team == null ? 0 : team.id); } public static Team readTeam(Reads read){ diff --git a/core/src/mindustry/io/versions/LegacySaveVersion2.java b/core/src/mindustry/io/versions/LegacySaveVersion2.java index ea51e475b8..02a986cb85 100644 --- a/core/src/mindustry/io/versions/LegacySaveVersion2.java +++ b/core/src/mindustry/io/versions/LegacySaveVersion2.java @@ -1,7 +1,6 @@ package mindustry.io.versions; import arc.func.*; -import arc.util.*; import arc.util.io.*; import mindustry.gen.*; diff --git a/core/src/mindustry/logic/GlobalVars.java b/core/src/mindustry/logic/GlobalVars.java index b6f6c2dfa0..d3d37c5768 100644 --- a/core/src/mindustry/logic/GlobalVars.java +++ b/core/src/mindustry/logic/GlobalVars.java @@ -38,14 +38,14 @@ public class GlobalVars{ put("false", 0); put("true", 1); put("null", null); - + //math put("@pi", Mathf.PI); put("π", Mathf.PI); //for the "cool" kids put("@e", Mathf.E); put("@degToRad", Mathf.degRad); put("@radToDeg", Mathf.radDeg); - + //time varTime = put("@time", 0); varTick = put("@tick", 0); diff --git a/core/src/mindustry/logic/LAccess.java b/core/src/mindustry/logic/LAccess.java index 14d8730893..2c724d7c41 100644 --- a/core/src/mindustry/logic/LAccess.java +++ b/core/src/mindustry/logic/LAccess.java @@ -59,7 +59,8 @@ public enum LAccess{ public static final LAccess[] all = values(), senseable = Seq.select(all, t -> t.params.length <= 1).toArray(LAccess.class), - controls = Seq.select(all, t -> t.params.length > 0).toArray(LAccess.class); + controls = Seq.select(all, t -> t.params.length > 0).toArray(LAccess.class), + settable = {x, y, rotation, team, flag, health, totalPower, payloadType}; LAccess(String... params){ this.params = params; diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index 122369f374..b8ca76ec07 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -394,7 +394,7 @@ public class LExecutor{ case idle -> { ai.control = type; } - case move, stop, approach -> { + case move, stop, approach, pathfind -> { ai.control = type; ai.moveX = x1; ai.moveY = y1; @@ -1040,7 +1040,7 @@ public class LExecutor{ @Override public void run(LExecutor exec){ - + if(exec.building(target) instanceof MessageBuild d && (d.team == exec.team || exec.privileged)){ d.message.setLength(0); @@ -1433,12 +1433,13 @@ public class LExecutor{ } case ambientLight -> state.rules.ambientLight.fromDouble(exec.num(value)); case solarMultiplier -> state.rules.solarMultiplier = exec.numf(value); - case unitBuildSpeed, unitCost, unitDamage, blockHealth, blockDamage, buildSpeed, rtsMinSquad, rtsMinWeight -> { + case unitHealth, unitBuildSpeed, unitCost, unitDamage, blockHealth, blockDamage, buildSpeed, rtsMinSquad, rtsMinWeight -> { Team team = exec.team(p1); if(team != null){ float num = exec.numf(value); switch(rule){ case buildSpeed -> team.rules().buildSpeedMultiplier = Mathf.clamp(num, 0.001f, 50f); + case unitHealth -> team.rules().unitHealthMultiplier = Math.max(num, 0.001f); case unitBuildSpeed -> team.rules().unitBuildSpeedMultiplier = Mathf.clamp(num, 0f, 50f); case unitCost -> team.rules().unitCostMultiplier = Math.max(num, 0f); case unitDamage -> team.rules().unitDamageMultiplier = Math.max(num, 0f); @@ -1695,5 +1696,37 @@ public class LExecutor{ } } + public static class SetPropI implements LInstruction{ + public int type, of, value; + + public SetPropI(int type, int of, int value){ + this.type = type; + this.of = of; + this.value = value; + } + + public SetPropI(){ + } + + @Override + public void run(LExecutor exec){ + Object target = exec.obj(of); + Object key = exec.obj(type); + + if(target instanceof Settable sp){ + if(key instanceof LAccess property){ + Var var = exec.var(value); + if(var.isobj){ + sp.setProp(property, var.objval); + }else{ + sp.setProp(property, var.numval); + } + }else if(key instanceof UnlockableContent content){ + sp.setProp(content, exec.num(value)); + } + } + } + } + //endregion } diff --git a/core/src/mindustry/logic/LStatement.java b/core/src/mindustry/logic/LStatement.java index c95aee2427..e16830677d 100644 --- a/core/src/mindustry/logic/LStatement.java +++ b/core/src/mindustry/logic/LStatement.java @@ -2,7 +2,6 @@ package mindustry.logic; import arc.*; import arc.func.*; -import arc.graphics.*; import arc.math.*; import arc.scene.*; import arc.scene.actions.*; diff --git a/core/src/mindustry/logic/LStatements.java b/core/src/mindustry/logic/LStatements.java index 2e54844f4f..a8c35141b0 100644 --- a/core/src/mindustry/logic/LStatements.java +++ b/core/src/mindustry/logic/LStatements.java @@ -1370,7 +1370,7 @@ public class LStatements{ fields(table, "w", p3, s -> p3 = s); fields(table, "h", p4, s -> p4 = s); } - case buildSpeed, unitBuildSpeed, unitCost, unitDamage, blockHealth, blockDamage, rtsMinSquad, rtsMinWeight -> { + case buildSpeed, unitHealth, unitBuildSpeed, unitCost, unitDamage, blockHealth, blockDamage, rtsMinSquad, rtsMinWeight -> { if(p1.equals("0")){ p1 = "@sharded"; } @@ -1683,4 +1683,113 @@ public class LStatements{ return LCategory.world; } } + + @RegisterStatement("setprop") + public static class SetPropStatement extends LStatement{ + public String type = "@copper", of = "block1", value = "0"; + + private transient int selected = 0; + private transient TextField tfield; + + @Override + public void build(Table table){ + table.add(" set "); + + tfield = field(table, type, str -> type = str).padRight(0f).get(); + + table.button(b -> { + b.image(Icon.pencilSmall); + //240 + b.clicked(() -> showSelectTable(b, (t, hide) -> { + Table[] tables = { + //items + new Table(i -> { + i.left(); + int c = 0; + for(Item item : Vars.content.items()){ + if(item.hidden) continue; + i.button(new TextureRegionDrawable(item.uiIcon), Styles.flati, iconSmall, () -> { + stype("@" + item.name); + hide.run(); + }).size(40f); + + if(++c % 6 == 0) i.row(); + } + }), + //liquids + new Table(i -> { + i.left(); + int c = 0; + for(Liquid item : Vars.content.liquids()){ + if(!item.unlockedNow() || item.hidden) continue; + i.button(new TextureRegionDrawable(item.uiIcon), Styles.flati, iconSmall, () -> { + stype("@" + item.name); + hide.run(); + }).size(40f); + + if(++c % 6 == 0) i.row(); + } + }), + //sensors + new Table(i -> { + for(LAccess property : LAccess.settable){ + i.button(property.name(), Styles.flatt, () -> { + stype("@" + property.name()); + hide.run(); + }).size(240f, 40f).self(c -> tooltip(c, property)).row(); + } + }) + }; + + Drawable[] icons = {Icon.box, Icon.liquid, Icon.tree}; + Stack stack = new Stack(tables[selected]); + ButtonGroup