Compare commits

..
120 Commits
Author SHA1 Message Date
SITUVNgcd 5ea0ebbf2a Translate new strings (#11323)
Patch guide & Fields view
2025-10-30 13:24:16 -04:00
Github Actions 19ee3baa18 Automatic bundle update 2025-10-30 16:32:12 +00:00
summoner 1e80f9e867 Translation: Update bundle_hu.properties (#11253)
* Translation: Update bundle_hu.properties

Translate new strings

* Translation: Update bundle_hu.properties

Translate new string
Fix translation coherence with the new string

* Translation: Update bundle_hu.properties

Fix long sentence -> add \n linebreak

* Translation: Update bundle_hu.properties

Translate new string

* Translation: Update bundle_hu.properties

Follow the changes of the english bundle.properties

* Translation: Update bundle_hu.properties

Translate new strings

* Translation: Update bundle_hu.properties

Translate new strings
2025-10-30 12:31:05 -04:00
SITUVNgcdandAnuken bd492bfda4 Update Vietnamese translation (#11255)
* Update Vietnamese translation

https://github.com/Anuken/Mindustry/commit/72524a72895257bead10237b20d95d9f69dfd240

* Update Vietnamese translation

https://github.com/Anuken/Mindustry/commit/94fc6482e2eb79be776c3a187c726877e9c95393

* Translate new string

https://github.com/Anuken/Mindustry/commit/17663aee3f0b4a894e3b177d71a7f64086ef96f8

* Remove translation

https://github.com/Anuken/Mindustry/commit/ea72441958afcb632448689a1baaa67228d348db

* Translate new strings

Content patches https://github.com/Anuken/Mindustry/commit/a9a061541009ea36e13338b0dbc38ccc63c0c71c

---------

Co-authored-by: Anuken <arnukren@gmail.com>
2025-10-30 12:30:58 -04:00
ulwepo 09b5a0bb3b Update servers_v7.json (#11257)
Hello, this is a great sandbox server made by Kei2.
2025-10-30 12:30:33 -04:00
redloong b6b7403a52 优化并完善中文翻译/Optimize and improve Chinese translation (#11267)
* Update bundle_zh_CN.properties

* Update bundle_zh_CN.properties

* Delete core/assets/bundles/bundle_zh_CN.properties

* Add files via upload

* Update contributors

* Add files via upload

* Add files via upload

* Add files via upload

* Update bundle_zh_CN.properties

* Add files via upload

* “挤压伤害”变为“碾压伤害”

* “庇护”变“保护”

* “被超速的倍率”变为“超速效果倍率”

* 翻译更改

“返回控制方地址或领队,其他情况返回自身”变为“返回控制方的地址或其领队,其他情况返回自身”
修复原仓库“单位命令单位命令:”为“单位命令:”
上一个更改:删除所有”(正负表方向)“

* 同步https://github.com/Anuken/Mindustry/pull/11243

若不希望这样请联系我

* 中文翻译更改

更新`lenum.emod`的翻译
`反射概率`变为`弹射概率`
`解除武器`变为`缴械武器`
`fetch.team`和`explosion.team`的`阵营`变为`队伍`

* 翻译更改

`缴械武器`变为`缴械`
`弹射概率`变为`反弹概率`

* 尝试修复问题

* `地面`变为`地板`

* 中文翻译更改

添加`sectors.attempts =尝试次数:`
`Sunken Pier`变为`沉没码头`
2025-10-30 12:30:16 -04:00
Anuken ce63479d2d Merge remote-tracking branch 'origin/master' 2025-10-30 12:20:01 -04:00
Anuken 30a5761182 Closes Anuken/Mindustry-Suggestions/issues/5843 2025-10-30 12:19:55 -04:00
Kevin Vilyan 5045f38054 Update Bundle_id_ID.properties (#11321)
* Add files via upload

* Add files via upload
2025-10-30 11:48:50 -04:00
Anuken a7a0450fa2 Merge remote-tracking branch 'origin/master' 2025-10-30 11:46:31 -04:00
Anuken 7ecebef57e Better unit assembler patcher support 2025-10-30 11:46:25 -04:00
EggleEgg 5ae6ffae8e consider efficiency in reactor heat (#11322)
* whatever

* final touches maybe

* well forget that, I m stupid

* no
2025-10-30 00:43:15 -04:00
Anuken 6f1287e11f 20 heat is a bit much 2025-10-29 14:13:09 -04:00
Anuken 1c0458041e Merge remote-tracking branch 'origin/master' 2025-10-29 10:33:55 -04:00
Anuken 04bc7b1f22 Fixed #11320 2025-10-29 10:33:49 -04:00
Github Actions 83d79ce348 Automatic bundle update 2025-10-29 02:32:50 +00:00
HungGaming b3b8e557af Update servers_v7.json (#11311) 2025-10-28 22:31:41 -04:00
SeuEarthandAnuken a4500b29f9 Update bundle_ko.properties (#11258)
* Update bundle_ko.properties

* Update bundle_ko.properties

* Update bundle_ko.properties

* Update bundle_ko.properties

* Update bundle_ko.properties

* Sorts

* Update bundle_ko.properties

Updated various Korean translations for editor and block names.

* another small fix

* Update bundle_ko.properties

---------

Co-authored-by: Anuken <arnukren@gmail.com>
2025-10-28 22:31:31 -04:00
ursteiner 0658da9290 Update bundle_de.properties (#11305)
* Update bundle_de.properties

Noticed some untranslated texts while playing the tutorial.

* removed unnecessary spaces
2025-10-28 22:30:44 -04:00
GRaf-NEETandAnuken dd0a4d1c47 Translate content patch messages to Russian (#11318)
Co-authored-by: Anuken <arnukren@gmail.com>
2025-10-28 22:30:26 -04:00
EggleEgg 99df6527f2 imagine mixtech buff lmfao (#11319) 2025-10-28 22:29:26 -04:00
Github Actions d6806e546d Automatic bundle update 2025-10-28 23:52:05 +00:00
Anuken ecd10623fe Merge remote-tracking branch 'origin/master' 2025-10-28 19:50:57 -04:00
Anuken 7d5478ec1d Link to patch guide 2025-10-28 19:50:51 -04:00
Github Actions 1fe0a14183 Automatic bundle update 2025-10-28 23:34:32 +00:00
Anuken 3d4b432540 Button for viewing content fields on wiki + More tests and fixes 2025-10-28 19:33:04 -04:00
Anuken c06c76d296 Moved more packing logic to asset thread to prevent ANRs 2025-10-27 21:01:10 -04:00
Anuken a226a74578 Prohibit arbitrary class resolution in content patches 2025-10-26 16:48:51 -04:00
Anuken ed36204bed Core database in multiplayer on mobile in pause menu 2025-10-26 15:43:01 -04:00
Anuken 8f6afcecfb Merge remote-tracking branch 'origin/master' 2025-10-26 14:04:54 -04:00
Anuken c3309bf3a9 Logic insert line button (from foo's client) 2025-10-26 14:04:49 -04:00
Anuken 686df5046a Update README.md 2025-10-26 13:55:13 -04:00
Anuken b34ceae965 Fixed tests 2025-10-26 10:47:36 -04:00
Anuken 50e2b828f7 More tests, fixed patcher error handler 2025-10-25 22:24:32 -04:00
Anuken 09783898aa More patcher tests + unit type reassign support 2025-10-25 16:39:07 -04:00
Anuken 4812f89161 Include patches in crash logs 2025-10-25 12:50:44 -04:00
Anuken 53c534eaa8 Better unknown field warnings for patcher 2025-10-25 11:39:58 -04:00
Anuken 472cacbb3b More disallowed patcher fields / Continuous liquid turret minimum ammo amount firing threshold 2025-10-25 10:34:43 -04:00
Anuken a305ac31e6 More patcher tests and fixes 2025-10-24 20:30:08 -04:00
Anuken 6ff28b5d31 0 2025-10-24 11:56:36 -04:00
Anuken b472fed36d More patcher tests and fixes 2025-10-24 11:51:39 -04:00
Anuken 93b3f47d84 Fixed map re-import not working 2025-10-24 02:11:36 -04:00
Anuken 85f5557270 More test fixes 2025-10-23 22:50:58 -04:00
Anuken 977f320122 More test fixes 2025-10-23 22:37:15 -04:00
Anuken bed851afe9 Additional unit tests for the patcher + many bugfixes 2025-10-23 22:31:06 -04:00
Anuken effbdecbd5 Block consumer patch support 2025-10-22 20:04:00 -04:00
Anuken f3cac6a6bc Fixed #11309 2025-10-22 08:58:23 -04:00
Anuken ddaf9e24ca Copy button for content patches 2025-10-22 08:56:41 -04:00
Anuken e7966fc6fd More minor patcher issue fixes 2025-10-22 07:19:57 -04:00
Anuken 386b0929d8 Merge remote-tracking branch 'origin/master' 2025-10-22 07:01:37 -04:00
Anuken 45db096f0f Patcher fixes 2025-10-22 07:01:26 -04:00
Github Actions a9a0615410 Automatic bundle update 2025-10-22 10:48:16 +00:00
Anuken 49bbd0b593 Fixed #11306 2025-10-22 06:47:01 -04:00
Anuken 9cc3105518 Content patch import dialog & server support 2025-10-22 06:42:01 -04:00
Anuken 9f7817f70e Fixed #11304 2025-10-21 14:22:37 -04:00
Anuken b78cd5bbd9 Content patcher progress 2025-10-21 11:38:02 -04:00
Anuken 8898cbe6e4 Map submission updated / WIP content patcher experiments 2025-10-20 22:47:35 -04:00
Anuken 34d994f384 Merge remote-tracking branch 'origin/master' 2025-10-20 00:42:23 -04:00
Anuken 6b56566ae1 Reset game stats upon map save in editor 2025-10-20 00:42:18 -04:00
Волшебник ab0c534946 Update servers_v7.json (#11296)
New host
2025-10-19 10:45:40 -04:00
vladtepesch 3c7de8d1ca Fix typo in surge-crucible and correct large-cliff-crusher descriptions (#11294)
ais -> aus
translation of large cliff said it optionaly needs wolfram (instead of graphite)
2025-10-19 10:44:14 -04:00
Anuken 16a01cbef3 Merge remote-tracking branch 'origin/master' 2025-10-18 18:04:34 -04:00
Anuken fb37ecd1a8 Fixed overlay floor placement checks in in-game editor 2025-10-18 18:04:25 -04:00
WMF c2c1271a4c use BoostAI for enterPayloadCommand & better onlyDepositCore handling (#11297) 2025-10-18 10:31:47 -04:00
abcxyzDustry c2108a3ce5 old dead addresses update new addresses for abcxyz (#11293)
Replaced one server address and added three new ones.
2025-10-16 22:21:32 -04:00
Github Actions 22f6244788 Automatic bundle update 2025-10-15 23:08:31 +00:00
LegalPopcorn d4cf0cf27a Update bundle_cs.properties (#11287)
Corrected typos, translated few things that were already translated elsewhere.
2025-10-16 08:07:17 +09:00
abcxyzDustry 5cd46ebce6 update ip for abcyxz (#11275)
i want update new ip address for abcxyz
2025-10-15 07:16:12 +09:00
Nazareno Bucciarelli 755c0286f4 [TRANSLATION] Translate a few sentences to Spanish (#11276)
* translate some sentences to spanish

* make improvements
2025-10-15 07:16:01 +09:00
Anuken 527e38c2b5 Fixed #11286 2025-10-14 11:03:35 +09:00
Anuken 46ee282fda Redundant field cleanup 2025-10-13 23:21:48 +09:00
Anuken 9edd31fad3 Map objective curve & unnecessary rebuild fix 2025-10-13 22:53:16 +09:00
Anuken 30da4c0f47 Fixed Android save export 'corruption'
This was caused by downright atrocious default Android API behavior. Read https://issuetracker.google.com/issues/180526528?pli=1
2025-10-13 22:25:12 +09:00
Anuken bf61e4d6c2 Closes Anuken/Mindustry-Suggestions/issues/5891 2025-10-13 20:50:17 +09:00
Anuken 0b4c4c4049 Fixed #11281 2025-10-13 20:29:52 +09:00
Anuken a35f7605f7 Fixed #11284 / Cap item turret ammo on save read 2025-10-13 20:27:47 +09:00
Github Actions ea72441958 Automatic bundle update 2025-10-12 08:15:50 +00:00
Anuken 872939454f Fixed #11278 / FPS limit changes on iOS 2025-10-12 17:13:00 +09:00
Anuken 197d8c4060 Updated min ios version 2025-10-11 22:45:04 +09:00
Anuken 703e0ecd75 arc 2025-10-09 22:45:34 +09:00
Github Actions 17663aee3f Automatic bundle update 2025-10-09 13:43:46 +00:00
Anuken 2daf41c7d7 iOS uncap framerate option 2025-10-09 22:40:52 +09:00
Anuken a0cf5b7265 Intel GPU/OpenGL 2.x planet normals fix 2025-10-08 08:45:40 +09:00
Anuken 576b7f6b6b Fixed #11272 2025-10-08 08:24:14 +09:00
Anuken fd0d864cb8 Fixed icosphere generator 2025-10-08 08:14:57 +09:00
Anuken 65c7acb31c Fixed #11268 2025-10-06 21:25:10 +09:00
RGBaaa c99758fe5a update LExecutor (#11271) 2025-10-06 20:53:25 +09:00
Anuken 1033b5f374 Fixed #11269 2025-10-06 20:49:07 +09:00
Github Actions 94fc6482e2 Automatic bundle update 2025-10-05 00:04:07 +00:00
Anuken 76c3ceb41d Closes Anuken/Mindustry-Suggestions/issues/5884 2025-10-05 09:03:01 +09:00
Anuken 1985d67f7a Closes Anuken/Mindustry-Suggestions/issues/5877 2025-10-03 18:41:12 +09:00
Anuken 155f0d50f7 Re-triggering build 2025-10-03 11:48:37 +09:00
Anuken 74b8c6d184 Possible crash fix 2025-10-03 08:31:43 +09:00
Anuken a1a880a208 Fixed #11259 2025-10-03 06:33:23 +09:00
Anuken b31df41018 Fixed rune font spacing & invalid unicode conversion method 2025-10-03 05:59:08 +09:00
Anuken 53ef8d5ea0 Fixed #11256 2025-10-02 11:19:58 +09:00
Anuken 66124b68b0 Quasar + minor Pulsar buff 2025-10-02 10:59:22 +09:00
Anuken aac086066e Fixed menu margins again 2025-09-30 10:28:38 -04:00
Anuken 3e854edf4b Merge branch 'master' of https://github.com/Anuken/Mindustry 2025-09-30 10:19:51 -04:00
Anuken 6712f23fe4 Switched to MetalANGLE for iOS 2025-09-30 10:18:58 -04:00
Anuken 843a215df5 Screen border fix in menu 2025-09-29 19:50:05 -04:00
Anuken 58909a06a5 Fixed #11254 2025-09-29 12:48:26 -04:00
Anuken acaed63c52 Merge remote-tracking branch 'origin/master' 2025-09-29 08:51:08 -04:00
Anuken 4d6334a941 A few more submission updates 2025-09-29 08:51:03 -04:00
Github Actions 72524a7289 Automatic bundle update 2025-09-29 12:49:09 +00:00
Anuken 081621936e Merge remote-tracking branch 'origin/master' 2025-09-29 08:48:07 -04:00
Anuken 32b9ff9f5d Added difficulty modifier for clearing sectors upon loss 2025-09-29 08:47:59 -04:00
Github Actions c6f9bc3b6f Automatic bundle update 2025-09-29 12:42:28 +00:00
summoner 8602fd57f6 Translation: Update bundle_hu.properties (#11189)
* Translation: Update bundle_hu.properties

Follow the changes of the english bundle
Translate new string

* Update bundle_hu.properties

Translate new strings.

Follow the changes of the english bundle

* Update bundle_hu.properties

Fixing status effects translations

* Translation: Update bundle_hu.properties

Follow the changes of the english bundle

* Transltion: Update bundle_hu.properties

Translate new strings
2025-09-29 08:41:27 -04:00
SITUVNgcd 24fd6950c1 Update Vietnamese translation (#11195)
* Update Vietnamese translation

stat.frequency https://github.com/Anuken/Mindustry/commit/fb9373535227b6ba3c82999b3024d1a7da231423

* Update Vietnamese translation

https://github.com/Anuken/Mindustry/commit/8884aec2488f393e2fcd292162b46c37d59250a7
2025-09-28 21:33:06 -04:00
Anuken 72ce49a753 More tests for saves 2025-09-28 16:41:36 -04:00
Anuken dd8db10e72 Minor tweaks to make Android inset area look less awful 2025-09-28 16:02:49 -04:00
Anuken 6c0884a8d9 More tests and sector fixes 2025-09-28 13:30:53 -04:00
Anuken adc1316444 Fixed some more broken submissions 2025-09-28 12:30:57 -04:00
Anuken bfd742e89b Turret construct preview fix 2025-09-28 10:49:56 -04:00
Anuken d6e408267e Fixed 116 infinite resources / Fixed #11251 2025-09-28 10:42:07 -04:00
Anuken dbe67b056f Fixed derelict plastanium conveyor repairs 2025-09-27 20:25:57 -04:00
Anuken 6d2c0c3863 Turret serverside rotation fix 2025-09-27 09:22:06 -04:00
Anuken f8d86ac840 Merge remote-tracking branch 'origin/master' 2025-09-27 01:45:33 -04:00
Anuken 20a96a9c5d Android inset support, API level upgrade & editor inset fix 2025-09-27 01:45:25 -04:00
162 changed files with 2922 additions and 681 deletions
+3 -1
View File
@@ -11,7 +11,9 @@ _[Javadoc](https://mindustrygame.github.io/docs/)_
## Contributing
See [CONTRIBUTING](CONTRIBUTING.md).
See [CONTRIBUTING](CONTRIBUTING.md) for general code style and PR guidelines.
If you are a first-time contributor looking for features to implement or bugs to fix, see the issues tagged with 'candidate' [in the Mindustry-Suggestions repostiory](https://github.com/Anuken/Mindustry-Suggestions/issues?q=is%3Aissue%20state%3Aopen%20label%3Acandidate).
## Building
+4 -4
View File
@@ -30,8 +30,8 @@ task deploy(type: Copy){
android{
namespace = "io.anuke.mindustry"
buildToolsVersion = '34.0.0'
compileSdk = 34
buildToolsVersion = '36.0.0'
compileSdk = 36
sourceSets{
main{
manifest.srcFile 'AndroidManifest.xml'
@@ -57,8 +57,8 @@ android{
applicationId "io.anuke.mindustry"
minSdkVersion 14
targetSdkVersion 34
targetSdkVersion 36
versionName versionNameResult
versionCode = vcode
@@ -160,7 +160,7 @@ public class AndroidLauncher extends AndroidApplication{
@Override
public OutputStream write(boolean append){
try{
return getContentResolver().openOutputStream(uri);
return getContentResolver().openOutputStream(uri, "rwt");
}catch(IOException e){
throw new ArcRuntimeException(e);
}
+7 -1
View File
@@ -223,7 +223,7 @@ configure(project(":annotations")){
}
//compile with java 8 compatibility for everything except the annotation project
configure(subprojects - project(":annotations")){
configure(subprojects - project(":annotations") - project(":tests")){
tasks.withType(JavaCompile){
options.compilerArgs.addAll(['--release', '8'])
}
@@ -400,6 +400,12 @@ project(":tests"){
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.7.1"
}
tasks.withType(JavaCompile){
targetCompatibility = JavaVersion.VERSION_17
sourceCompatibility = JavaVersion.VERSION_17
options.compilerArgs.addAll(['--release', '17'])
}
test{
//fork every test so mods don't interact with each other
forkEvery = 1
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

+12
View File
@@ -101,6 +101,7 @@ coreattack = < Core is under attack! >
nearpoint = [[ [scarlet]LEAVE DROP POINT IMMEDIATELY[] ]\nannihilation imminent
database = Core Database
database.button = Database
viewfields = View Content Fields
savegame = Save Game
loadgame = Load Game
joingame = Join Game
@@ -470,6 +471,14 @@ editor.rules = Rules
editor.generation = Generation
editor.objectives = Objectives
editor.locales = Locale Bundles
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch: Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = World Processors
editor.worldprocessors.editname = Edit Name
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
@@ -794,6 +803,7 @@ campaign.complete = [accent]Congratulations.\n\nThe enemy on {0} has been defeat
sectorlist = Sectors
sectorlist.attacked = {0} under attack
sectors.unexplored = [lightgray]Unexplored
sectors.attempts = Attempts:
sectors.resources = Resources:
sectors.production = Production:
sectors.export = Export:
@@ -1450,6 +1460,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Min Squad Size
rules.rtsmaxsquadsize = Max Squad Size
rules.rtsminattackweight = Min Attack Weight
+12
View File
@@ -101,6 +101,7 @@ coreattack = < Ядро знаходзіцца пад атакай! >
nearpoint = [[ [scarlet]ПАКІНЬЦЕ КРОПКУ ВЫСАДКІ НЕАДКЛАДНА[] ]\nанігіляцыя непазбежна
database = База дадзеных ядра
database.button = База Дадзеных
viewfields = View Content Fields
savegame = Захаваць Гульню
loadgame = Спампаваць Гульню
joingame = Сеткавая Гульня
@@ -467,6 +468,14 @@ editor.rules = Правілы:
editor.generation = Генерацыя:
editor.objectives = Мэты
editor.locales = Locale Bundles
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = World Processors
editor.worldprocessors.editname = Edit Name
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Віншую.\n\nВорагі ў {0} былі пер
sectorlist = Сектары
sectorlist.attacked = {0} пад атакай
sectors.unexplored = [lightgray]Не Разведана
sectors.attempts = Attempts:
sectors.resources = Рэсурсы:
sectors.production = Вытворчасць:
sectors.export = Экспартавана:
@@ -1447,6 +1457,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Мінімальны Размер Атраду
rules.rtsmaxsquadsize = Максімальны Размер Атраду
rules.rtsminattackweight = Мінімальная Вага Атакі
+12
View File
@@ -101,6 +101,7 @@ coreattack = < Ядрото е нападнато! >
nearpoint = [[ [scarlet]НАПУСНЕТЕ ОПАСНАТА ЗОНА МОМЕНТАЛНО[] ]\nредстои унижощение
database = Енциклопедия
database.button = База данни
viewfields = View Content Fields
savegame = Запази Игра
loadgame = Зареди Игра
joingame = Присъедини се в Игра
@@ -467,6 +468,14 @@ editor.rules = Правила:
editor.generation = Генериране:
editor.objectives = Задачи
editor.locales = Locale Bundles
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = World Processors
editor.worldprocessors.editname = Edit Name
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Поздравления.\n\nВрагът на {0}
sectorlist = Сектори
sectorlist.attacked = {0} е в опасност
sectors.unexplored = [lightgray]Неизследвано
sectors.attempts = Attempts:
sectors.resources = Ресурси:
sectors.production = Производство:
sectors.export = Изнеси:
@@ -1447,6 +1457,8 @@ rules.buildaitier = Степен на ИИ строителя
rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Мин. размер на взводовете
rules.rtsmaxsquadsize = Макс. размер на взводовете
rules.rtsminattackweight = Мин. атакуваща тежест
+12
View File
@@ -101,6 +101,7 @@ coreattack = < Estan atacant el nucli! >
nearpoint = [[ [scarlet]ABANDONEU EL PUNT D’ATERRATGE IMMEDIATAMENT[] ]\nAniquilació imminent
database = Base de dades del nucli
database.button = Base de dades
viewfields = View Content Fields
savegame = Desa la partida
loadgame = Carrega una partida
joingame = Uneix-me a una partida
@@ -467,6 +468,14 @@ editor.rules = Regles
editor.generation = Generació
editor.objectives = Objectius
editor.locales = Paquet de traduccions
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = Processadors integrats
editor.worldprocessors.editname = Edita el nom
editor.worldprocessors.none = [lightgray]No s’han trobat blocs de processadors integrats!\nAfegiu-ne un a l’editor de mapes o feu servir el botó \ue813 de sota.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Felicitats.\n\nS’ha derrotat l’enemic de {0}.\n[
sectorlist = Sectors
sectorlist.attacked = Ataquen {0}.
sectors.unexplored = [lightgray]Inexplorat
sectors.attempts = Attempts:
sectors.resources = Recursos:
sectors.production = Producció:
sectors.export = Exporta:
@@ -1447,6 +1457,8 @@ rules.buildaitier = Nivell de construcció de la IA
rules.rtsai = IA avançada (RTS AI)
rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Mida mínima de l’esquadró
rules.rtsmaxsquadsize = Mida màxima de l’esquadró
rules.rtsminattackweight = Pes d’atac mínim
+94 -82
View File
@@ -13,7 +13,7 @@ link.google-play.description = Obchod Google Play
link.f-droid.description = F-Droid
link.wiki.description = Oficiální Wiki Mindustry
link.suggestions.description = Doporučit nové funkce
link.bug.description = Našel jsi nějaký? Nahlaš ho zde
link.bug.description = Našel jsi nějaký? Nahlas ho zde
linkopen = Tento server vám poslal odkaz. Jste si jist s jeho otevřením?\n\n[sky]{0}
linkfail = Nepodařilo se otevřít odkaz!\nAdresa URL byla zkopírována do schránky.
screenshot = Snímek obrazovky uložen {0}
@@ -42,16 +42,16 @@ be.noupdates = Aktualizace nebyla nalezena.
be.check = Zkontrolovat aktualizace
mods.browser = Prohlížeč modifikací
mods.browser.selected = Vybraný mod
mods.browser.selected = Vybraná modifikace
mods.browser.add = Stáhnout
mods.browser.reinstall = Reinstalovat
mods.browser.reinstall = Přeinstalovat
mods.browser.view-releases = Zobrazit Vydání
mods.browser.noreleases = [scarlet]Žádná Vydání Nenalezena\n[accent]Nenalezena žádná vydání pro tento mod. Zjistěte, jestli repozitář modu byl již veřejně vydán.
mods.browser.noreleases = [scarlet]Žádná Vydání Nenalezena\n[accent]Nenalezena žádná vydání pro tuto modifikaci. Zjistěte, jestli repozitář modu byl již veřejně vydán.
mods.browser.latest = <Poslední>
mods.browser.releases = Vydání
mods.github.open = Úložiště
mods.github.open-release = Stranka Vydání
mods.browser.sortdate = Řadit podle nedavných
mods.github.open-release = Stránka Vydání
mods.browser.sortdate = Řadit podle nedávných
mods.browser.sortstars = Řadit podle hvězd
schematic = Šablona
@@ -89,7 +89,7 @@ stats.unitsCreated = Jednotek Vytvořeno
stats.enemiesDestroyed = Nepřátel Zničeno
stats.built = Budov Postaveno
stats.destroyed = Budov Zničeno
stats.deconstructed = Budov Zdekonstruovano
stats.deconstructed = Budov Rozebráno
stats.playtime = Doba Hraní
globalitems = [accent]Celkové položky[]
@@ -101,6 +101,7 @@ coreattack = < Jádro je pod útokem! >
nearpoint = [ [scarlet]IHNED OPUSŤTE PROSTOR VÝSADKU[] ]\nNebezpečí okamžité smrti!
database = Katalog objektů
database.button = Databáze
viewfields = View Content Fields
savegame = Uložit hru
loadgame = Načíst hru
joingame = Připojit se ke hře
@@ -121,7 +122,7 @@ continue = Pokračovat
maps.none = [lightgray]Mapy nebyly nalezeny.[]
invalid = Neplatné
pickcolor = Vyber barvu
color = Color
color = Barva
preparingconfig = Připravuji konfiguraci
preparingcontent = Připravuji obsah hry
uploadingcontent = Nahrávám obsah hry
@@ -130,9 +131,9 @@ committingchanges = Provádím změny
done = Hotovo
feature.unsupported = Tvoje zařízení nepodporuje tuto vlastnost hry.
mods.initfailed = [red]⚠[] Poslední Mindustry instaci se nepodařilo inicializovat. Nejpravděpodobněji to bylo způsobeno špatnou funkcí modifikací.\n\nAby se zabránilo neustálému padání hry, [red]všechny modifikace se vyply.[]
mods = Mody
mods.name = Mod:
mods.initfailed = [red]⚠[] Poslední Mindustry instanci se nepodařilo inicializovat. Nejpravděpodobněji to bylo způsobeno špatnou funkcí modifikací.\n\nAby se zabránilo neustálému padání hry, [red]všechny modifikace jsou vypnuté.[]
mods = Modifikace
mods.name = Modifikace:
mods.none = [lightgray]Modifikace nebyly nalezeny.[]
mods.guide = Průvodce modifikacemi
mods.report = Nahlásit závadu
@@ -144,9 +145,9 @@ mod.installed = [[Instalováno]
mod.display = [gray]Modifikace:[][orange] {0}[]
mod.enabled = [lightgray]Povoleno[]
mod.disabled = [scarlet]Zakázáno[]
mod.multiplayer.compatible = [gray]Hra více hráčů komapitibilní
mod.multiplayer.compatible = [gray]Hra více hráčů kompatibilní
mod.disable = Zakázat
mod.version = Version:
mod.version = Verze:
mod.content = Obsah:
mod.delete.error = Nebylo možnost smazat modifikaci. Soubor by mohl být používán.
@@ -158,13 +159,13 @@ mod.erroredcontent = [scarlet]V obsahu jsou chyby[]
mod.circulardependencies = [red]Kruhové závislosti
mod.incompletedependencies = [red]Nedokončené závislosti
mod.requiresversion.details = Vyžaduje verzi hry: [accent]{0}[]\nVaše hra je zastaralá. Tento mod vyžaduje novější verzi hry (možná beta/alfa verze) aby fungoval.
mod.incompatiblemod.details = This mod is incompatible with the latest version of the game. The author must update it, and add [accent]minGameVersion: 147[] to its [accent]mod.json[] file.
mod.blacklisted.details = Tento mod byl ručně zařazen na černou listinu, protože způsobuje pády nebo jiné problémy s touto verzí hry. Nepoužívejte jej.
mod.requiresversion.details = Vyžaduje verzi hry: [accent]{0}[]\nVaše hra je zastaralá. Tato modifikace vyžaduje novější verzi hry (možná beta/alfa verze) aby fungovala.
mod.incompatiblemod.details = Tato modifikace není kompatibilní s touto verzí hry. Autor ji musí aktualizovat a přidat [accent]minGameVersion: 147[] do souboru [accent]mod.json[].
mod.blacklisted.details = Tato modifikace byla ručně zařazena na černou listinu, protože způsobuje pády nebo jiné problémy s touto verzí hry. Nepoužívejte ji.
mod.missingdependencies.details = Tomuto módu chybí závislosti: {0}
mod.erroredcontent.details = Tato hra způsobovala chyby při načítání. Požádejte autora módu o jejich opravu.
mod.circulardependencies.details = Tento mod má závislosti, které na sobě navzájem závisí.
mod.incompletedependencies.details = Tento mod nelze načíst kvůli neplatným nebo chybějícím závislostem: {0}.
mod.circulardependencies.details = Tato modifikace má závislosti, které na sobě navzájem závisí.
mod.incompletedependencies.details = Tato modifikace nelze načíst kvůli neplatným nebo chybějícím závislostem: {0}.
mod.requiresversion = Vyžaduje verzi hry: [red]{0}
@@ -172,7 +173,7 @@ mod.errors = Při načítání obsahu hry se vyskytly problémy.
mod.noerrorplay = [scarlet]Máš modifikace s chybami.[] Buď zakaž dotčené modifikace, nebo oprav chyby před tím, než začneš hrát.
mod.enable = Povolit
mod.requiresrestart = Hra bude ukončena, aby bylo možné nasadit modifikace.
mod.reloadrequired = [scarlet]Je vyžadováno znovuspuštění hry.
mod.reloadrequired = [scarlet]Je vyžadováno opakované spuštění hry.
mod.import = Importovat modifikaci
mod.import.file = Importovat soubor
mod.import.github = Import modifikace z GitHubu
@@ -185,7 +186,7 @@ mod.preview.missing = Než vystavíš svou modifikaci ve Workshopu na Steamu, mu
mod.folder.missing = Ve Workshopu na Steamu mohou být vystaveny pouze modifikace ve formě složky.\nAbys převedl modifikaci na formu složky, jednoduše rozbal zip soubor do složky a smaž starý zip soubor. Potom znovu spusť hru nebo znovu načti modifikace.
mod.scripts.disable = Tvoje zařízení nepodporuje skripty. Musíš zakázat tyto modifikace, abys mohl hrát hru.
mod.dependencies.error = [scarlet]Modifikaccím chybí závislosti
mod.dependencies.error = [scarlet]Modifikacím chybí závislosti
mod.dependencies.soft = (nepovinné)
mod.dependencies.download = Import
mod.dependencies.downloadreq = Vyžaduje se import
@@ -198,11 +199,11 @@ mod.dependencies.imported = Tato modifikace vyžaduje závislosti. Chcete je st
about.button = O hře
name = Jméno:
noname = Nejdřív si vyber [accent]jméno ve hře[].
search = Search:
search = Hledat:
planetmap = Planetární mapa
launchcore = Vyslat jádro
filename = Název souboru:
unlocked = Byl odemmknut nový blok!
unlocked = Byl odemknut nový blok!
available = Je zpřístupněn nový výzkum!
unlock.incampaign = < Odemkni v kampani pro více detailů >
campaign.select = Vybrat Začínající Kampaň
@@ -244,7 +245,7 @@ server.kicked.gameover = Konec hry!
server.kicked.serverRestarting = Server se restartuje.
server.versions = Verze klienta: [accent]{0}[]\nVerze serveru: [accent]{1}[]
host.info = Tento [accent]hostitel[] hostuje server na portu [scarlet]6567[]. \nKdokoliv na stejné [lightgray]síti Wifi nebo LAN (místní)[] by měl vidět server ve svém listu serverů.\n\nJestliže chcete, aby se uživatelé připojovali odkudkoliv pomocí adresy IP, může být nezbytné nastavit [accent]přesměrování portů[].\n\n[lightgray]Poznámka: Jestliže má někdo problém s připojením k LAN hře, měl by se předem ujistit, že má program Mindustry povolený přístup k místní síti v nastavení místního firewallu.
join.info = Zde můžeš vložit [accent]adresu IP serveru[], ke kterému se chceš připojit, nebo zkusit nalézt [accent]servery v místní síti[] nebo [accent]globální servery[], ke kterým se můžeš připojit.\nJsou podporovány režimy hry více hráčů přes LAN i WAN.\n\n[lightgray]Poznámka: Neexistuje automatický globální seznam serverů Mindustry. Pokud se chceš k někomu připojit pomocí adresy IP, budeš ji muset znát od hostitele. Ten ji může zjistit pomocí zadání "my ip" do vyhledávače Google ze svého zařízení.
join.info = Zde můžeš vložit [accent]adresu IP serveru[], ke kterému se chceš připojit, nebo zkusit nalézt [accent]servery v místní síti[] nebo [accent]globální servery[], ke kterým se můžeš připojit.\nesou podporovány režimy hry více hráčů přes LAN i WAN.\n\n[lightgray]Poznámka: Neexistuje automatický globální seznam serverů Mindustry. Pokud se chceš k někomu připojit pomocí adresy IP, budeš ji muset znát od hostitele. Ten ji může zjistit pomocí zadání "my ip" do vyhledávače Google ze svého zařízení.
hostserver = Hostovat hru více hráčů
invitefriends = Pozvat přátele
hostserver.mobile = Hostovat\nhru
@@ -312,7 +313,7 @@ disconnect.error = Chyba připojení.
disconnect.closed = Připojení bylo uzavřeno.
disconnect.timeout = Vypršel čas pro připojení.
disconnect.data = Chyba načtení dat ze serveru!
disconnect.snapshottimeout = Při získávání UDP snímků vyprššel čas spojení.\nTo může být způsobeno nestabilní sítí nebo připojením.
disconnect.snapshottimeout = Při získávání UDP snímků vypršel čas spojení.\nTo může být způsobeno nestabilní sítí nebo připojením.
cantconnect = Není možno se připojit ke hře ([accent]{0}[]).
connecting = [accent]Připojuji se...[]
reconnecting = [accent]Znovu se připojuji...
@@ -342,17 +343,17 @@ slot = [accent]Pozice {0}[]
editmessage = Upravit zprávu
save.corrupted = Uložená hra je poškozená nebo neplatná.
empty = <Prázný>
on = On
off = Off
on = Zapnuto
off = Vypnuto
save.search = Hledat uložené hry...
save.autosave = Automatické uložení: {0}
save.map = Mapa: {0}
save.wave = Vlna: {0}
save.mode = Herní mod: {0}
save.mode = Herní modifikace: {0}
save.date = Naposledy uloženo: {0}
save.playtime = Herní čas: {0}
dontshowagain = Don't show again
warn.32bit.title = 32-bit Deprecation Warning
dontshowagain = Nezobrazovat znovu
warn.32bit.title = Varování ohledně podpory 32 bitových systémů
warn.32bit = You are using a [red]32-bit[] version of Mindustry.\nAs newer Java versions have dropped 32-bit Windows support, [red]32-bit support will be discontinued in the future[].\n\nPlease upgrade to a 64-bit machine, and make sure you have the 64-bit version of Mindustry downloaded.\n\nIf you are running Mindustry as a JAR file, make sure you are using 64-bit Java.
warning = Varování.
confirm = Potvrdit
@@ -409,7 +410,7 @@ pausebuilding = [accent][[{0}][] zastaví stavění
resumebuilding = [scarlet][[{0}][] bude pokračovat ve stavění
enablebuilding = [scarlet][[{0}][] povolí stavení
showui = UI je skryto.\nZmáčkni [accent][[{0}][] pro jeho zobrazení.
commandmode.name = [accent]Velicí zežim
commandmode.name = [accent]Velicí režim
commandmode.nounits = [žádné jednotky]
wave = [accent]Vlna číslo {0}[]
wave.cap = [accent]Vlna {0} z {1}[]
@@ -453,7 +454,7 @@ editor.showterrain = Show Terrain
editor.showfloor = Show Floor
editor.planet = Planeta:
editor.sector = Sektor:
editor.seed = Seed:
editor.seed = Klíč generace:
editor.brush = Štětec
editor.openin = Otevřít v editoru
editor.oregen = Generování rud
@@ -467,7 +468,15 @@ editor.rules = Pravidla:
editor.generation = Generace:
editor.objectives = Úkoly:
editor.locales = Balíky jazyků
editor.worldprocessors = World Processors
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = Globální Procesor
editor.worldprocessors.editname = Upravit název
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this?
@@ -478,7 +487,7 @@ editor.publish.workshop = Publikovat do Workshopu na Steamu
editor.newmap = Nová mapa
editor.center = Vycentrovat
editor.search = Hledat mapy...
editor.filters = Filtrovat mšapy
editor.filters = Filtrovat mapy
editor.filters.mode = Herní režimy:
editor.filters.type = Typ Mapy:
editor.filters.search = Hledat V:
@@ -540,7 +549,7 @@ editor.removeunit = Odstranit jednotku
editor.teams = Týmy
editor.errorload = Chyba při načítání souboru.
editor.errorsave = Chyba při ukládání souboru.
editor.errorimage = Toto je obrázek, ne mapa.\nPokud chceš importovat mapu z verze 3.5/sestavení 40, použij položku nabídky 'Importovat starou mapu'.
editor.errorimage = Toto je obrázek, ne mapa.\nPokud chceš importovat mapu z verze 3.5/sestavení 40 použij položku nabídky 'Importovat starou mapu'.
editor.errorlegacy = Tato mapa je příliš stará a používá formát mapy, který už není podporován.
editor.errornot = Toto není soubor mapy.
editor.errorheader = Tento soubor mapy je buď neplatný nebo poškozen.
@@ -604,7 +613,7 @@ toolmode.drawteams = Kreslit týmy
toolmode.drawteams.description = Kreslí týmy místo bloků.
#unused
toolmode.underliquid = Pod Kapalinami
toolmode.underliquid.description = Kreslí podlahy pod kostkama kapalin.
toolmode.underliquid.description = Kreslí podlahy pod kostkami kapalin.
filters.empty = [lightgray]Nejsou zadány žádné filtry, přidej filtr tlačítkem níže.[]
@@ -612,7 +621,7 @@ filter.distort = Zkreslení
filter.noise = Zašumění
filter.enemyspawn = Výběr nepřátelské líhně
filter.spawnpath = Cesta k líhni
filter.corespawn = Váběr ládra
filter.corespawn = Výběr jádra
filter.median = Medián
filter.oremedian = Medián rud
filter.blend = Prolnutí
@@ -624,14 +633,14 @@ filter.clear = Vyčistit
filter.option.ignore = Ignorovat
filter.scatter = Rozptýlení
filter.terrain = Terén
filter.logic = Logic
filter.logic = Logika
filter.option.scale = Měřítko
filter.option.chance = Náhoda
filter.option.mag = Velikost
filter.option.threshold = Práh
filter.option.circle-scale = Poloměr kružnice
filter.option.octaves = Octávy
filter.option.octaves = Oktávy
filter.option.falloff = Pokles
filter.option.angle = Úhel
filter.option.tilt = Naklonit
@@ -644,7 +653,7 @@ filter.option.target = Cíl
filter.option.replacement = Výměna
filter.option.wall = Stěna
filter.option.ore = Ruda
filter.option.floor2 = Druhotný povrch
filter.option.floor2 = Druhotný povrch
filter.option.threshold2 = Druhotný práh
filter.option.radius = Poloměr
filter.option.percentile = Percentil
@@ -755,8 +764,8 @@ unbannedblocks = Povolené bloky
objectives = Úkoly
bannedunits = Zakázané jednotky
unbannedunits = Povolené jednotky
bannedunits.whitelist = Zakázané jednotky jako Whitelist
bannedblocks.whitelist = Zakázané bloky jako Whitelist
bannedunits.whitelist = Zakázané jednotky jako Bílá listina
bannedblocks.whitelist = Zakázané bloky jako Bílá listina
addall = Přidat vše
launch.from = Vysláno z: [accent]{0}
launch.capacity = Odpalovací kapacita: [accent]{0}
@@ -781,7 +790,7 @@ error.moddex = Mindustry nemůže načíst tuto modifikaci.\nVaše zařízení b
weather.rain.name = Déšť
weather.snowing.name = Sníh
weather.sandstorm.name = Písečná ouře
weather.sandstorm.name = Písečná bouře
weather.sporestorm.name = Spórová bouře
weather.fog.name = Mlha
@@ -791,6 +800,7 @@ campaign.complete = [accent]Nastavení.\n\nNepřítel na {0} byl poražen.\n[lig
sectorlist = Sektory
sectorlist.attacked = {0} pod útokem
sectors.unexplored = [lightgray]Neprozkoumáno
sectors.attempts = Pokusy:
sectors.resources = Zdroje:
sectors.production = Výroba:
sectors.export = Exportovat:
@@ -803,9 +813,9 @@ sectors.resume = Pokračovat
sectors.launch = Vyslat
sectors.viewsubmission = \ue80d Prohlížet příspěvky
sectors.select = Vybrat
sectors.launchselect = Select Launch Destination
sectors.launchselect = Vyber Cíl Odpalu
sectors.nonelaunch = [lightgray]bez (slunce)[]
sectors.redirect = Redirect Launch Pads
sectors.redirect = Přesměrovat Vysílací Plošinu
sectors.rename = Přejmenovat sektor
sectors.enemybase = [scarlet]Nepřátelská základna
sectors.vulnerable = [scarlet]Zranitelný
@@ -820,8 +830,8 @@ sector.curlost = Sektor ztracen
sector.missingresources = [scarlet]Nedostatečné zdroje v jádře
sector.attacked = Sektor [accent]{0}[white] pod útokem!
sector.lost = Sektor [accent]{0}[white] ztracen! :(
sector.capture = Sector [accent]{0}[white]Captured!
sector.capture.current = Sector Captured!
sector.capture = Sektor [accent]{0}[white]Polapen!
sector.capture.current = Sektor Polapen!
sector.changeicon = Změnit Ikonu
sector.noswitch.title = Nelze Vyměnit Sektor
sector.noswitch = Sektory nelze přepnut, pokud je stávající sektor pod útokem.\n\nSektor: [accent]{0}[] na [accent]{1}[]
@@ -851,7 +861,7 @@ planet.serpulo.name = Serpulo
planet.erekir.name = Erekir
planet.sun.name = Sol
sector.impact0078.name = Dopad 0078
sector.impact0078.name = Dopad 78
sector.groundZero.name = Základní tábor
sector.craters.name = Krátery
sector.frozenForest.name = Zamrzlý les
@@ -866,8 +876,8 @@ sector.fungalPass.name = Plísňový průsmyk
sector.biomassFacility.name = Zařízení pro syntézu biomasy
sector.windsweptIslands.name = Větrné ostrovy
sector.extractionOutpost.name = Extrakční základna
sector.facility32m.name = Facility 32 M
sector.taintedWoods.name = Tainted Woods
sector.facility32m.name = Zázemí 32 M
sector.taintedWoods.name = Poskvrněné lesy
sector.infestedCanyons.name = Zamořené kaňony
sector.planetaryTerminal.name = Planetární odpalovací terminál
sector.coastline.name = Pobřežní čára
@@ -876,10 +886,10 @@ sector.polarAerodrome.name = Polární aerodrom
sector.atolls.name = Atoly
sector.testingGrounds.name = Testovací zázemí
sector.seaPort.name = Mořský přístav
sector.weatheredChannels.name = Weathered Channels
sector.weatheredChannels.name = Zvětralé údolí
sector.mycelialBastion.name = Pevnost podhoubí
sector.frontier.name = Fronta
sector.sunkenPier.name = Sunken Pier
sector.sunkenPier.name = Potopené molo
sector.cruxscape.name = Cruxscape
sector.geothermalStronghold.name = Geotermální pevnost
@@ -965,8 +975,8 @@ status.tarred.name = Dehtovaný
status.overdrive.name = Posílený
status.overclock.name = Přetaktovaný
status.shocked.name = Šokovaný
status.blasted.name = Vybouchlý
status.corroded.name = Corroded
status.blasted.name = Vybuchlý
status.corroded.name = Zkorodovaný
status.unmoving.name = Nehybný
status.boss.name = Strážce
@@ -981,7 +991,7 @@ settings.sound = Zvuky
settings.graphics = Grafika
settings.cleardata = Vymazat data hry...
settings.clear.confirm = Jsi si jistý, že chceš vymazat svá data ve hře?\nTento krok je nevratný!
settings.clearall.confirm = [scarlet]Varování![]\nToto vyresetuje všechna Tvá data ve hře, včetně uložení hry, map, odemknutého postupu v kampani a nastavení ovládání.\nJakmile stiskneš "OK", všechna data se vymažou a hra se automaticky ukončí.
settings.clearall.confirm = [scarlet]Varování![]\nToto vymaže všechna Tvá data ve hře, včetně uložení hry, map, odemknutého postupu v kampani a nastavení ovládání.\nJakmile stiskneš "OK", všechna data se vymažou a hra se automaticky ukončí.
settings.clearsaves.confirm = Opravdu chceš vymazat veškeré Tvé uložené hry?
settings.clearsaves = Vymazat uložené hry
settings.clearresearch = Vymazat výzkum
@@ -1014,7 +1024,7 @@ stat.opposites = Protiklady
stat.powercapacity = Kapacita energie
stat.powershot = Energie na 1 výstřel
stat.damage = Poškození
stat.frequency = Frequency
stat.frequency = Frekvence
stat.targetsair = Zaměřuje vzdušné jednotky
stat.targetsground = Zaměřuje pozemní jednotky
stat.crushdamage = Crush Damage
@@ -1047,7 +1057,7 @@ stat.drillspeed = Základní rychlost vrtu
stat.boosteffect = Účinek posílení
stat.maxunits = Nejvýše aktivních jednotek
stat.health = Životy
stat.armor = Armor
stat.armor = Pancíř
stat.buildtime = Čas konstrukce
stat.maxconsecutive = Nejvýše po sobě
stat.buildcost = Cena konstrukce
@@ -1058,7 +1068,7 @@ stat.ammo = Střelivo
stat.shieldhealth = Zdraví štítu
stat.cooldowntime = Čas na zchladnutí
stat.explosiveness = Výbušnost
stat.basedeflectchance = Základní pravděpobnost odražení
stat.basedeflectchance = Základní pravděpodobnost odražení
stat.lightningchance = Pravděpodobnost blesku
stat.lightningdamage = Poškození bleskem
stat.flammability = Hořlavost
@@ -1081,7 +1091,7 @@ stat.damagemultiplier = Násobitel Poškození
stat.healthmultiplier = Násobitel Životů
stat.speedmultiplier = Násobitel Rychlostí
stat.reloadmultiplier = Násobitel Přebití
stat.buildspeedmultiplier = Nasobič Rychlostí Stavby
stat.buildspeedmultiplier = Násobitel Rychlostí Stavby
stat.reactive = Reaguje
stat.immunities = Imunita
stat.healing = Léčí se
@@ -1102,12 +1112,12 @@ ability.movelightning.description = Při pohybu vystřeluje blesky.
ability.armorplate = Pancíř
ability.armorplate.description = Snižuje poškození od střelby.
ability.shieldarc = Štítový Oblouk
ability.shieldarc.description = Vytváří silový štít oblokového tvaru, který pohlcuje kulky.
ability.shieldarc.description = Vytváří silový štít obloukového tvaru, který pohlcuje kulky.
ability.suppressionfield = Pole potlačení regenerace
ability.suppressionfield.description = Vyřadí z provozu všechny opravné stavby.
ability.energyfield = Energetické pole
ability.energyfield.description = Odpráskne blízké nepřátele
ability.energyfield.healdescription = Odpráskne blízké nepřátele a vyléří přátelské jednotky
ability.energyfield.healdescription = Odpráskne blízké nepřátele a vyléčí přátelské jednotky
ability.regen = Regenerace
ability.regen.description = Časem regeneruje svoje zdraví
ability.liquidregen = Pohlcení tekutiny
@@ -1144,7 +1154,7 @@ bar.drillspeed = Rychlost vrtu: {0}/s
bar.pumpspeed = Rychlost pumpy: {0}/s
bar.efficiency = Účinnost: {0}%
bar.boost = Posílení: +{0}%
bar.powerbuffer = Energie v bateriiích: {0}/{1}
bar.powerbuffer = Energie v bateriích: {0}/{1}
bar.powerbalance = Energie: {0}
bar.powerstored = Uskladněno: {0}/{1}
bar.poweramount = Energie celkem: {0}
@@ -1155,14 +1165,14 @@ bar.capacity = Kapacita: {0}
bar.unitcap = {0} {1}/{2}
bar.liquid = Chlazení
bar.heat = Teplo
bar.cooldown = Cooldown
bar.cooldown = Prodleva
bar.instability = Nestabilita
bar.heatamount = Teplo: {0}
bar.heatpercent = Teplo: {0} ({1}%)
bar.power = Energie
bar.progress = Konstrukce v průběhu
bar.loadprogress = Pokrok
bar.launchcooldown = Launch Cooldown
bar.launchcooldown = Prodleva Odletu
bar.input = Vstup
bar.output = Výstup
bar.strength = [stat]{0}[lightgray]x síla
@@ -1225,19 +1235,19 @@ category.crafting = Vstup/Výstup
category.function = Funkce
category.optional = Volitelné vylepšení
setting.alwaysmusic.name = Vždy přehrávat hudbu
setting.alwaysmusic.description = Pokud je toto nastavení povoleno, bude hudba hrát neustále.Jinak bude hrát pouze v náhodných intervalech.
setting.skipcoreanimation.name = Přeskočit Animaci Odpalu/Přístání Jádra
setting.alwaysmusic.description = Pokud je toto nastavení povoleno, bude hudba hrát neustále. Jinak bude hrát pouze v náhodných intervalech.
setting.skipcoreanimation.name = Přeskočit Animaci Odpalu/Přistání Jádra
setting.landscape.name = Uzamknout krajinu
setting.shadows.name = Stíny
setting.blockreplace.name = Automatický návrh bloků
setting.linear.name = Lineární filtrování
setting.hints.name = Rady a tipy
setting.logichints.name = Logic Nápovědy
setting.logichints.name = Logická Nápovědy
setting.backgroundpause.name = Pozastavit v pozadí
setting.buildautopause.name = Automaticky pozastavit stavění
setting.doubletapmine.name = Dvojklik pro Těžbu
setting.commandmodehold.name = Držet pro Příkazový Režim
setting.distinctcontrolgroups.name = Limit One Control Group Per Unit
setting.distinctcontrolgroups.name = Limit One Control Group Per Unit
setting.modcrashdisable.name = Vypnout Modifikace Při Pádovém Spuštění
setting.animatedwater.name = Animované povrchy
setting.animatedshields.name = Animované štíty
@@ -1286,7 +1296,7 @@ setting.mutemusic.name = Ztišit hudbu
setting.sfxvol.name = Hlasitost efektů
setting.mutesound.name = Ztišit zvuk
setting.crashreport.name = Poslat anonymní hlášení o spadnutí Mindustry
setting.communityservers.name = Fetch Community Server List
setting.communityservers.name = Aktualizovat Seznam Komunitních Serverů
setting.savecreate.name = Automaticky ukládat hru
setting.steampublichost.name = Veřejná viditelnost hry
setting.playerlimit.name = Nejvyšší počet hráčů
@@ -1300,12 +1310,12 @@ setting.hidedisplays.name = Skrýt displeje logiky
setting.macnotch.name = Přizpůsobte rozhraní zobrazení zářezu
setting.macnotch.description = Pro aplikování změn je potřeba restart
steam.friendsonly = Pouze pro přátele
steam.friendsonly.tooltip = Určuje, zda bude hra přístupná jen tvým přátelům na Steamu, nebo všem.Odškrtnutí udělá hru veřejnou - připojit se bude moci každý.
steam.friendsonly.tooltip = Určuje, zda bude hra přístupná jen tvým přátelům na Steamu, nebo všem. Odškrtnutí udělá hru veřejnou - připojit se bude moci každý.
setting.maxmagnificationmultiplierpercent.name = Minimální vzdálenost kamery
setting.minmagnificationmultiplierpercent.name = Maximální vzdálenost kamery
setting.minmagnificationmultiplierpercent.description = Vysoké hodnoty mohou způsobit problémy s výkonem.
public.beta = Poznámka: beta verze hry nemůžou vytvářet veřejné hry.
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.reset = Škálování uživatelského 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
setting.bloom.name = Použít filtr Bloom
keybind.title = Změnit klávesy
@@ -1394,7 +1404,7 @@ keybind.pause_building.name = Pozastavit nebo spustit stavění
keybind.minimap.name = Mini mapa
keybind.planet_map.name = Planetární mapa
keybind.research.name = Výzkum
keybind.block_info.name = Info o Bloku
keybind.block_info.name = Informace o Bloku
keybind.chat.name = Kanál zpráv
keybind.player_list.name = Seznam hráčů
keybind.console.name = Terminál
@@ -1447,6 +1457,8 @@ rules.buildaitier = Úroveň AI stavitele
rules.rtsai = RTS AI
rules.rtsai.campaign = Útočná RTS AI
rules.rtsai.campaign.info = Na útočných mapách vytváří skupiny jednotek, které útočí na hráčské základny inteligentnějším způsobem.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Min velikost skupiny
rules.rtsmaxsquadsize = Max velikost skupiny
rules.rtsminattackweight = Min váha útoku
@@ -1464,7 +1476,7 @@ rules.unitdamagemultiplier = Násobek poškození jednotkami
rules.unitcrashdamagemultiplier = Násobek poškození při nárazu jednotky
rules.unitminespeedmultiplier = Unit Mine Speed Multiplier
rules.solarmultiplier = Násobek Solární Energie
rules.unitcapvariable = Jádra Zvýšujou Maximum Počtu Jednotek
rules.unitcapvariable = Jádra Zvyšují Maximum Počtu Jednotek
rules.unitpayloadsexplode = Carried Payloads Explode With The Unit
rules.unitcap = Základní Maximum Počtu Jednotek
rules.limitarea = Limit Map Area
@@ -1516,7 +1528,7 @@ content.unit.name = Jednotky
content.block.name = Bloky
content.status.name = Stavové Efekty
content.sector.name = Sektory
content.team.name = Factions
content.team.name = Frakce
wallore = (Wall)
@@ -1836,10 +1848,10 @@ block.rtg-generator.name = RTG
block.spectre.name = Přízrak
block.meltdown.name = Rozpékač
block.foreshadow.name = Znamení osudu
block.container.name = Kontejnér
block.container.name = Kontejner
block.launch-pad.name = Vysílací plošina
block.advanced-launch-pad.name = Launch Pad
block.landing-pad.name = Landing Pad
block.advanced-launch-pad.name = Vysílací plošina
block.landing-pad.name = Přijímací plošina
block.segment.name = Úsek
block.ground-factory.name = Pozemní továrna
@@ -2055,7 +2067,7 @@ hint.respawn = Aby ses znovu přepnul na loď, zmáčkni [accent][[V][].
hint.respawn.mobile = Přepnul ses na ovládání jednotky nebo konstrukce. Aby ses přepnul zpět na loď, klikni na avatara vlevo nahoře.
hint.desktopPause = Zmáčkni [accent][[mezerník][] k pozastavení a zase spuštění hry.
hint.breaking = Klikni [accent]pravým tlačítkem[] a potáhni pro rozbití bloků.
hint.breaking.mobile = Použij \ue817 [accent]kladivo[] v pravém spodním rohu a pak ťupni pro rozbití bloků.\n\nPodrž chvíli prst a táhni pro rozbití bloků ve výběru.
hint.breaking.mobile = Použij \ue817 [accent]kladivo[] v pravém spodním rohu a pak ťupni pro rozbití bloků.\n\nPodrž chvíli prst a táhni pro rozbití bloků ve výběru.
hint.blockInfo = Pro zobrazení informací o bloku, vyberte blok ve [accent]stavebním menu[], poté kliknutím na [accent][[?][] tlačítka vpravo.
hint.derelict = [accent]Opuštěné[] struktury jsou rozbíté pozůstalky starých základen, které již nefungujou.\n\nTyto struktury můžou být [accent]rozebraný[] pro získaní zdrojů.
hint.research = Použij tlačítko \ue875 [accent]Výzkum[] pro vyzkoumání nové technologie.
@@ -2079,11 +2091,11 @@ hint.payloadDrop.mobile = [accent]Ťupni a drž[] na prázdném místě pro polo
hint.waveFire = [accent]Naplň[] věže vodou místo munice pro automatické hašení okolních požárů.
hint.generator = \uf879 [accent]Spalovací generátory[] pálí uhlí a přenášení energii do sousedících bloků.\n\nPřenos energie na delší vzdálenost se provádí pomocí \uf87f [accent]Energetických uzlů[].
hint.guardian = Jednotky [accent]Strážce[] jsou obrněné. Měkká munice, jako je například [accent]měď[] a [accent]olovo[] je [scarlet]neefektivní[].\n\nPoužij vylepšené věže nebo \uf835 [accent]grafitovou[] munici pro \uf861 Střílnu Duo/\uf859 Salvu, abys Strážce sejmul.
hint.coreUpgrade = Jádro může být vylepšeno [accent]překrytím jádrem vyšší úrovně[].\n\nUmísti jádro typu [accent]Základ[] přes jádro typu [accent]Odštěpek[]. Ujisti se, že v okolí nejsou žádné překážky.
hint.coreUpgrade = Jádro může být vylepšeno [accent]překrytím jádrem vyšší úrovně[].\n\nUmísti jádro typu [accent]Základ[] přes jádro typu [accent]Odštěpek[]. Ujisti se, že v okolí nejsou žádné překážky.
hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors.
hint.presetLaunch = Na šedé [accent]sektory v přistávací zóně[], jako je například [accent]Zamrzlý les[], se lze vyslat kdykoli. Nevyžadují polapení okolního teritoria.\n\n[accent]Číslované sektory[], jako je tento, jsou [accent]volitelné[].
hint.presetDifficulty = Tento sektor má [scarlet]vysokou úroveň nepřátelského ohrožření[].\nSpouštení do takových sektorů se [accent]nedoporučuje[] bez náležité technologie a přípravy.
hint.coreIncinerate = Poté, co je kapacita jádra určité položky naplněna, jakékoliv další stejné přijaté položky budou [accent]zničeny[].
hint.coreIncinerate = Poté, co je kapacita jádra určité položky naplněna, jakékoliv další stejné přijaté položky budou [accent]zničeny[].
hint.factoryControl = Chcete-li nastavit tovární nastavení jednotky[accent]výstupní cíl[], v příkazovém režimu klikněte na tovární blok a poté klikněte pravým tlačítkem na umístění.\nJednotky, které produkuje, se tam automaticky přesunou.
hint.factoryControl.mobile = Chcete-li nastavit tovární nastavení jednotky[accent]výstupní cíl[], v příkazovém režimu klepněte na tovární blok a poté klepněte na umístění.\nJednotky, které produkuje, se tam automaticky přesunou.
@@ -2540,7 +2552,7 @@ lst.setprop = Sets a property of a unit or building.
lst.effect = Create a particle effect.
lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most.
lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position.
lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world.
lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20 per world.
lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction.
lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first.
@@ -2643,7 +2655,7 @@ lenum.idiv = Číselné dělení.
lenum.div = Dělení.\nVrací [accent]null[], pokud je děleno nulou.
lenum.mod = Modulo (Vydělí 2 hodnoty a vrací zbytek).
lenum.emod = True modulo, result sign comes from the divisor.
lenum.equal = Stejné. Vynucuje typy.\nNon-null objekty porovnané s čísly se stanou 1, jinak 0.
lenum.equal = Stejné. Vynucuje typy.\nNon-null objekty porovnané s čísly se stanou 1 jinak 0.
lenum.notequal = Není stejné. Vynucuje typy.
lenum.strictequal = Přísná rovnost. Nevynucuje typy.\nMůže být použít, jestli je [accent]null[].
lenum.shl = Bitový posun vlevo.
@@ -2721,7 +2733,7 @@ control.unit = Jednotka/Budova k zamíření.
control.shoot = Zda střílet.
unitlocate.enemy = Zda lokalizovat nepřátelské budovy.
unitlocate.found = Zda objekt byl znalezen.
unitlocate.found = Zda objekt byl nalezen
unitlocate.building = Výstup hodnot pro lokalizovanou budovu.
unitlocate.outx = Výstup X pozice.
unitlocate.outy = Výstup Y pozice.
+12
View File
@@ -101,6 +101,7 @@ coreattack = < Kerne er under angreb! >
nearpoint = [[ [scarlet]FORLAD INVASIONSZONE OMGÅENDE[] ]\n Fare for udslettelse
database = Kerne-database
database.button = Database
viewfields = View Content Fields
savegame = Gem spil
loadgame = Hent spil
joingame = Deltag i spil
@@ -467,6 +468,14 @@ editor.rules = Regler:
editor.generation = Generering:
editor.objectives = Objectives
editor.locales = Locale Bundles
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = World Processors
editor.worldprocessors.editname = Edit Name
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Congratulations.\n\nThe enemy on {0} has been defeat
sectorlist = Sectors
sectorlist.attacked = {0} under attack
sectors.unexplored = [lightgray]Unexplored
sectors.attempts = Attempts:
sectors.resources = Resurser:
sectors.production = Produktion:
sectors.export = Export:
@@ -1447,6 +1457,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Min Squad Size
rules.rtsmaxsquadsize = Max Squad Size
rules.rtsminattackweight = Min Attack Weight
+21 -9
View File
@@ -101,6 +101,7 @@ coreattack = < Der Kern wird angegriffen! >
nearpoint = [[ [scarlet]SOFORT DEN SPAWNPUNKT VERLASSEN[] ]\nVernichtung droht
database = Kern-Datenbank
database.button = Datenbank
viewfields = View Content Fields
savegame = Spiel speichern
loadgame = Spiel laden
joingame = Spiel beitreten
@@ -467,6 +468,14 @@ editor.rules = Regeln
editor.generation = Generator
editor.objectives = Ziele
editor.locales = Sprach-Bundle
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = Weltprozessoren
editor.worldprocessors.editname = Name bearbeiten
editor.worldprocessors.none = [lightgray]Keine Weltprozessor-Blöcke gefunden!\nFüge einen im Karteneditor hinzu oder benutze den \ue813 Hinzufügen-Button unten.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Glückwunsch.\n\nDer Gegner auf {0} ist besiegt word
sectorlist = Sektoren
sectorlist.attacked = {0} wird angegriffen
sectors.unexplored = [lightgray]Unentdeckt
sectors.attempts = Attempts:
sectors.resources = Ressourcen:
sectors.production = Produktion:
sectors.export = Export:
@@ -1447,6 +1457,8 @@ rules.buildaitier = Bau-KI-Tier
rules.rtsai = RTS KI [red](unfertig)
rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Min. Squadgröße
rules.rtsmaxsquadsize = Max. Squadgröße
rules.rtsminattackweight = Min. Angriffsgröße
@@ -2097,12 +2109,12 @@ gz.drills = Erweitere den Bergbau.\nBaue mehr mechanische Bohrer.\nBaue 100 Kupf
gz.lead = :lead: [accent]Blei[] ist ein anderer wichtiger Rohstoff.\nBaue Bohrer, um Blei abzubauen.
gz.moveup = :up: Bewege dich weiter nach oben, um weitere Ziele zu erhalten.
gz.turrets = Erforsche und platziere 2 :duo: [accent]Doppelgeschütze[], um den Kern zu beschützen.\nDoppelgeschütze benötigen \uf838 [accent]Munition[] von Förderbändern.
gz.duoammo = Supply the Duo turrets with [accent]copper[], using conveyors.
gz.duoammo = Versorge die Doppelgeschütze mit :copper: [accent]Kupfererz[], indem du Förderbänder verwendest.
gz.walls = [accent]Mauern[] können andere Blöcke vor Schaden schützen.\nBaue :copper-wall: [accent]Kufpermauern[] um die Geschütze.
gz.defend = Feinde kommen bald, bereite dich vor.
gz.aa = Fliegende Einheiten können nicht leicht von normalen Geschützen bekämpft werden.\n:scatter: [accent]Luftgeschütze[] können dies deutlich besser, benötigen aber :lead: [accent]Blei[] als Munition.
gz.scatterammo = Supply the Scatter turret with [accent]lead[], using conveyors.
gz.supplyturret = [accent]Supply Turret
gz.scatterammo = Versorge die Luftgeschütze mit :lead: [accent]Blei[], indem du Förderbänder verwendest.
gz.supplyturret = [accent]Versorgungsturm
gz.zone1 = Dies ist die feindliche Drop-Zone.
gz.zone2 = Alle Blöcke in der Zone werden zerstört, wenn eine Welle kommt.
gz.zone3 = Jetzt kommt eine Welle.\nBereite dich vor.
@@ -2126,13 +2138,13 @@ onset.turrets = Einheiten sind effektiv, aber [accent]Geschütze[] sind beim Ver
onset.turretammo = Versorge das Geschütz mit [accent]Berylliummunition[].
onset.walls = [accent]Mauern[] können andere Blöcke vor Schaden schützen.\nBaue :beryllium-wall: [accent]Berylliummauern[] um die Geschütze.
onset.enemies = Feinde kommen bald, bereite dich vor.
onset.defenses = [accent]Set up defenses:[lightgray] {0}
onset.defenses = [accent]Baue eine Verteidigung auf:[lightgray] {0}
onset.attack = Der Feid ist verwundbar. Greife ihn an.
onset.cores = Neue Kerne können auf [accent]Kernzonen[] platziert werden.\nNeue Kerne funktionieren als Außenposten und haben alle Zugriff auf dasselbe Kerninventar.\nBaue einen :core-bastion: Kern.
onset.detect = Der Feind wird dich in zwei Minuten entdecken.\nStelle Verteidigung, Bergbau und Produktion auf.
onset.commandmode = Hold [accent]shift[] to enter [accent]command mode[].\n[accent]Left-click and drag[] to select units.\n[accent]Right-click[] to order selected units to move or attack.
onset.commandmode.mobile = Press the [accent]command button[] to enter [accent]command mode[].\nHold down a finger, then [accent]drag[] to select units.\n[accent]Tap[] to order selected units to move or attack.
aegis.tungsten = Tungsten can be mined using an [accent]impact drill[].\nThis structure requires [accent]water[] and [accent]power[].
onset.commandmode = Halte die [accent]Umschalttaste[] gedrückt, um den [accent]Befehlsmodus[] aufzurufen.\n[accent]Klicke mit der linken Maustaste und ziehe[], um Einheiten auszuwählen.\n[accent]Klicke mit der rechten Maustaste[], um ausgewählten Einheiten zu befehlen, sich zu bewegen oder anzugreifen.
onset.commandmode.mobile = Drücke die [accent]Befehlstaste[], um den [accent]Befehlsmodus[] aufzurufen. Halte einen Finger gedrückt und [accent]ziehe[] dann, um Einheiten auszuwählen. [accent]Tippe[], um ausgewählten Einheiten zu befehlen, sich zu bewegen oder anzugreifen.
aegis.tungsten = Wolfram kann mit einem [accent]Schlagbohrer[] abgebaut werden.\nDiese Struktur benötigt [accent]Wasser[] und [accent]Strom[].
split.pickup = Manche Blöcke können von der Kerneinheit aufgehoben werden.\nHebe diesen [accent]Behälter[] hoch und trage ihn auf den [accent]Frachtlader[].\n(Default-Tasten für Aufhaben und Fallenlassen sind [ und ] )
split.pickup.mobile = Manche Blöcke können von der Kerneinheit aufgehoben werden.\nHebe diesen [accent]Behälter[] hoch und trage ihn auf den [accent]Frachtlader[].\n(Um etwas aufzuheben oder fallenzulassen, tippe lange drauf.)
@@ -2364,7 +2376,7 @@ block.small-heat-redirector.description = Redirects accumulated heat to other bl
block.heat-router.description = Verteilt angesammelte Hitze auf die 3 anderen Seiten.
block.electrolyzer.description = Spaltet Wasser in Wasserstoff und Ozon.
block.atmospheric-concentrator.description = Sammelt Stickstoff aus der Atmosphäre. Benötigt Hitze.
block.surge-crucible.description = Formt Spannungslegierung ais Schlacke und Silizium. Benötigt Hitze.
block.surge-crucible.description = Formt Spannungslegierung aus Schlacke und Silizium. Benötigt Hitze.
block.phase-synthesizer.description = Synthetisiert Phasengewebe aus Thorium, Sand und Ozon. Benötigt Hitze.
block.carbide-crucible.description = Verschmilzt Graphit und Wolfram zu Karbid. Benötigt Hitze.
block.cyanogen-synthesizer.description = Synthetisiert Cyanogen aus Arkyzit und Graphit. Benötigt Hitze.
@@ -2373,7 +2385,7 @@ block.vent-condenser.description = Kondensiert Schlotgase zu Wasser. Verbraucht
block.plasma-bore.description = Baut unbefristet Erze aus einer Erzwand ab. Erfordert kleine Mengen an Strom.\nVerwendet optional Wasserstoff, um die Effizienz zu steigern.
block.large-plasma-bore.description = Ein größerer Plasmabohrer. Kann Wolfram und Thorium abbauen. Benötigt Wasserstoff und Strom.\nVerwendet optional Stickstoff, um die Effizienz zu steigern.
block.cliff-crusher.description = Zertrümmert Wände, um durchgehend Sand herzustellen. Benötigt Strom. Effizienz variiert je nach Wandart.
block.large-cliff-crusher.description = Zertrümmert Wände, um durchgehend Sand herzustellen. Benötigt Strom und Ozon. Effizienz variiert je nach Wandart. Optional wird Wolfram verbraucht um die Effizienz zu steigern.
block.large-cliff-crusher.description = Zertrümmert Wände, um durchgehend Sand herzustellen. Benötigt Strom und Ozon. Effizienz variiert je nach Wandart. Optional wird Graphit verbraucht um die Effizienz zu steigern.
block.impact-drill.description = Baut durchgehend Erze in Schüben aus dem Boden ab. Benötigt Strom und Wasser.
block.eruption-drill.description = Ein verbesserter Schlagbohrer. Kann Thorium abbauen. Benötigt Wasserstoff.
block.reinforced-conduit.description = Transportiert Flüssigkeiten. Nimmt von nicht-Kanälen nur von hinten an.
+63 -51
View File
@@ -101,6 +101,7 @@ coreattack = < ¡El núcleo está bajo ataque! >
nearpoint = [[ [scarlet]ABANDONA EL PUNTO DE ATERRIZAJE INMEDIATAMENTE[] ]\nAniquilación inminente
database = Base de datos del núcleo
database.button = Base de datos
viewfields = View Content Fields
savegame = Guardar partida
loadgame = Cargar partida
joingame = Unirse a partida
@@ -155,11 +156,11 @@ mod.incompatiblemod = [red]Incompatible
mod.blacklisted = [red]No soportado
mod.unmetdependencies = [red]Dependencias no satisfechas
mod.erroredcontent = [scarlet]Contenido erróneo
mod.circulardependencies = [red]Circular Dependencies
mod.incompletedependencies = [red]Incomplete Dependencies
mod.circulardependencies = [red]Dependencias circulares
mod.incompletedependencies = [red]Dependencias incompletas
mod.requiresversion.details = Requiere la versión del juego: [accent]{0}[]\nTu versión está desactualizada. Este mod requiere una versión más reciente del juego.
mod.incompatiblemod.details = This mod is incompatible with the latest version of the game. The author must update it, and add [accent]minGameVersion: 147[] to its [accent]mod.json[] file.
mod.incompatiblemod.details = Este mod es incompatible con la versión del juego actual. El autor debe actualizarlo y agregar [accent]minGameVersion: 147[] a su archivo [accent]mod.json[].
mod.blacklisted.details = Este mod ha sido bloqueado manualmente por causar cierres inesperados, errores u otros problemas en esta versión del juego. Será mejor no usarlo.
mod.missingdependencies.details = A este mod le faltan dependencias: {0}
mod.erroredcontent.details = La partida causó errores al cargar. Puedes pedir al autor del mod que los arregle.
@@ -209,7 +210,7 @@ campaign.select = Elegir campaña
campaign.none = [lightgray]Elige un planeta donde empezar.\nPuedes cambiar en cualquier momento.
campaign.erekir = [accent]Recomendado para nuevos jugadores.[]\n\nContenido más reciente y pulido. Progresión de campaña lineal.\n\nNiveles y experiencia de mayor calidad.
campaign.serpulo = [scarlet]No recomendado para jugadores novatos.[]\n\nContenido más antiguo; La experiencia clásica. More open-ended.\n\nNiveles y mecánicas de juego potencialmente desequilibrados.
campaign.difficulty = Difficulty
campaign.difficulty = Dificultad
completed = [accent]Completado
techtree = Investigaciones tecnológicas
techtree.select = Selección de esquemas de tecnologías
@@ -272,13 +273,13 @@ trace = Rastrear Jugador
trace.playername = Nombre del jugador: [accent]{0}
trace.ip = IP: [accent]{0}
trace.id = ID: [accent]{0}
trace.language = Language: [accent]{0}
trace.language = Idioma: [accent]{0}
trace.mobile = Cliente de móvil: [accent]{0}
trace.modclient = Cliente personalizado: [accent]{0}
trace.times.joined = Se ha unido [accent]{0} []veces
trace.times.kicked = Fue expulsado [accent]{0} []veces
trace.ips = IPs:
trace.names = Names:
trace.names = Nombres:
invalidid = ¡ID de cliente no válida! Puedes enviar un informe reportando el error.
player.ban = Ban
@@ -304,7 +305,7 @@ confirmunban = ¿Quieres quitar el veto a este jugador?
confirmadmin = ¿Quieres hacer administrador a "{0}[white]"?
confirmunadmin = ¿Quieres quitarle los permisos de administrador a "{0}[white]"?
votekick.reason = Razón del Voto de Expulsión
votekick.reason.message = Are you sure you want to vote-kick "{0}[white]"?\nIf yes, please enter the reason:
votekick.reason.message = ¿Seguro quieres iniciar una votación para expulsar a "{0}[white]"?\nSi lo deseas, por favor introduce la razón:
joingame.title = Unirse a una Partida
joingame.ip = Dirección IP:
disconnect = Desconectado.
@@ -312,14 +313,14 @@ disconnect.error = Error de conexión.
disconnect.closed = Conexión cerrada.
disconnect.timeout = Tiempo de espera agotado.
disconnect.data = ¡Hubo un fallo al cargar los datos!
disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may be caused by an unstable network or connection.
disconnect.snapshottimeout = Tiempo de espera agotado al recibir instantánea UDP.\nEsto puede ser debido a una red inestable o una conexión lenta.
cantconnect = No es posible unirse a la partida ([accent]{0}[]).
connecting = [accent]Conectando...
reconnecting = [accent]Reconectado...
connecting.data = [accent]Cargando datos del mundo...
server.port = Puerto:
server.invalidport = ¡El número de puerto no es valido!
server.error.addressinuse = [scarlet]Failed to open server on port 6567.[]\n\nMake sure no other Mindustry servers are running on your device or network!
server.error.addressinuse = [scarlet]Error al abrir servidor en puerto 6567.[]\n\n¡Asegúrate que no haya otros servidores Mindustry corriendo en tu dispositivo o red!
server.error = [scarlet]Error alojando el servidor.
save.new = Nuevo archivo de guardado
save.overwrite = ¿Quieres sobrescribir\neste guardado?
@@ -351,9 +352,9 @@ save.wave = Oleada {0}
save.mode = Modo de juego: {0}
save.date = Último guardado: {0}
save.playtime = Tiempo de juego: {0}
dontshowagain = Don't show again
warn.32bit.title = 32-bit Deprecation Warning
warn.32bit = You are using a [red]32-bit[] version of Mindustry.\nAs newer Java versions have dropped 32-bit Windows support, [red]32-bit support will be discontinued in the future[].\n\nPlease upgrade to a 64-bit machine, and make sure you have the 64-bit version of Mindustry downloaded.\n\nIf you are running Mindustry as a JAR file, make sure you are using 64-bit Java.
dontshowagain = No mostrar de nuevo
warn.32bit.title = Advertencia de obsolencia 32-bit
warn.32bit = Estas usando una versión [red]32-bit[] de Mindustry.\nDado que versiones mas nuevas de Java han abandonado el soporte 32-bit para Windows, [red]el soporte 32-bit será discontinuado a futuro[].\n\nPor favor, actualiza a una máquina 64-bit y asegúrate de tener la versión 64-bit de Mindustry descargada.\n\nSi estas ejecutando Mindustry como un JAR, asegúrate de usar Java 64-bit.
warning = Aviso.
confirm = Confirmar
delete = Borrar
@@ -466,7 +467,15 @@ editor.waves = Oleadas:
editor.rules = Normas:
editor.generation = Generación:
editor.objectives = Objetivos
editor.locales = Locale Bundles
editor.locales = Paquetes de localización
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = World Processors
editor.worldprocessors.editname = Edit Name
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
@@ -488,7 +497,7 @@ editor.shiftx = Trasladar X
editor.shifty = Trasladar Y
workshop = Steam Workshop
waves.title = Oleadas
waves.team = Team
waves.team = Equipo
waves.remove = Borrar
waves.every = cada
waves.waves = oleada(s)
@@ -515,8 +524,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 Filter
waves.search = Buscar oleadas...
waves.filter = Filtro de unidades
waves.units.hide = Ocultar todo
waves.units.show = Mostrar todo
@@ -525,14 +534,14 @@ wavemode.counts = limitadas
wavemode.totals = totales
wavemode.health = por salud
all = All
all = Todos
editor.default = [lightgray]<Por defecto>
details = Detalles...
edit = Editar...
variables = Variables
logic.clear.confirm = Are you sure you want to clear all code from this processor?
logic.restart = Restart
logic.globals = Built-in Variables
logic.clear.confirm = ¿Seguro quieres limpiar todo el código de este procesador?
logic.restart = Reiniciar
logic.globals = Variables Integradas
editor.name = Nombre:
editor.spawn = Generar unidad
@@ -791,6 +800,7 @@ campaign.complete = [accent]Enhorabuena.\n\nEl enemigo en {0} ha sido derrotado.
sectorlist = Sectores
sectorlist.attacked = {0} Bajo ataque
sectors.unexplored = [lightgray]Inexplorado
sectors.attempts = Attempts:
sectors.resources = Recursos:
sectors.production = Producción:
sectors.export = Exportaciones:
@@ -835,15 +845,15 @@ threat.extreme = Extrema
threat.eradication = Erradicación
difficulty.casual = Casual
difficulty.easy = Easy
difficulty.easy = Facil
difficulty.normal = Normal
difficulty.hard = Hard
difficulty.eradication = Eradication
difficulty.hard = Dificil
difficulty.eradication = Erradicación
difficulty.enemyHealthMultiplier = Enemy Health: {0}
difficulty.enemySpawnMultiplier = Enemy Amount: {0}
difficulty.waveTimeMultiplier = Wave Timer: {0}
difficulty.nomodifiers = [lightgray](No modifiers)
difficulty.enemyHealthMultiplier = Salud del enemigo: {0}
difficulty.enemySpawnMultiplier = Cantidad de enemigos: {0}
difficulty.waveTimeMultiplier = Temporizador de oleada: {0}
difficulty.nomodifiers = [lightgray](Sin modificadores)
planets = Planetas
@@ -1224,8 +1234,8 @@ category.items = Objetos
category.crafting = Fabricación
category.function = Función
category.optional = Mejoras Opcionales
setting.alwaysmusic.name = Always Play Music
setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals.
setting.alwaysmusic.name = Reproducir música siempre
setting.alwaysmusic.description = Cuando esté habilitado, la musica se reproducirá siempre en bucle en el juego.\nCuando esté deshabilitado, se reproducirá la musica en intervalos aleatorios.
setting.skipcoreanimation.name = Omitir animación de Lanzamiento/Aterrizaje del núcleo
setting.landscape.name = Bloquear en horizontal
setting.shadows.name = Sombras
@@ -1237,7 +1247,7 @@ setting.backgroundpause.name = Pausar en segundo plano
setting.buildautopause.name = Auto-pausar construcción
setting.doubletapmine.name = Doble clic para extraer minerales
setting.commandmodehold.name = Mantener para comandar unidades
setting.distinctcontrolgroups.name = Limit One Control Group Per Unit
setting.distinctcontrolgroups.name = Limitar un grupo de control por unidad
setting.modcrashdisable.name = Desactivar mods si el juego no puede iniciarse
setting.animatedwater.name = Animaciones de terreno
setting.animatedshields.name = Animación de escudos
@@ -1270,8 +1280,8 @@ setting.borderlesswindow.description = Aplicar los cambios podría requerir un r
setting.fps.name = Mostrar FPS y ping
setting.console.name = Activar consola
setting.smoothcamera.name = Movimiento de cámara suave
setting.detach-camera.name = Free Camera
setting.detach-camera.description = If enabled, the camera moves independently of the player unit.\nThis setting can be assigned a hotkey.
setting.detach-camera.name = Cámara libre
setting.detach-camera.description = Si se habilita, la cámara se mueve independientemente de la unidad del jugador.\nEsta configuración puede ser asignada a una tecla.
setting.vsync.name = Sincronización vertical
setting.pixelate.name = Pixelar
setting.minimap.name = Mostrar minimapa
@@ -1280,19 +1290,19 @@ setting.position.name = Mostrar posición de jugadores
setting.mouseposition.name = Mostrar posición del cursor
setting.musicvol.name = Volumen de la música
setting.atmosphere.name = Mostrar atmósfera de planetas
setting.drawlight.name = Draw Darkness/Lighting
setting.drawlight.name = Dibujar oscuridad/iluminación
setting.ambientvol.name = Volumen del ambiente
setting.mutemusic.name = Silenciar música
setting.sfxvol.name = Volumen del sonido
setting.mutesound.name = Silenciar sonido
setting.crashreport.name = Enviar registros de errores anónimos
setting.communityservers.name = Fetch Community Server List
setting.communityservers.name = Buscar lista de servidores de la comunidad
setting.savecreate.name = Guardado automático
setting.steampublichost.name = Public Game Visibility
setting.playerlimit.name = Limite de jugadores
setting.chatopacity.name = Opacidad del chat
setting.lasersopacity.name = Opacidad de láseres energía
setting.unitlaseropacity.name = Unit Mining Beam Opacity
setting.unitlaseropacity.name = Opacidad de rayo de minado de la unidad
setting.bridgeopacity.name = Opacidad de puentes
setting.playerchat.name = Mostrar chat de burbuja de jugadores
setting.showweather.name = Efectos visuales climáticos
@@ -1301,9 +1311,9 @@ setting.macnotch.name = Adaptar la interfaz para mostrar la muesca
setting.macnotch.description = Es necesario reiniciar para aplicar los cambios
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.
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
setting.minmagnificationmultiplierpercent.name = Max Camera Distance
setting.minmagnificationmultiplierpercent.description = High values may cause performance issues.
setting.maxmagnificationmultiplierpercent.name = Distancia de cámara mínima
setting.minmagnificationmultiplierpercent.name = Distancia de cámara máxima
setting.minmagnificationmultiplierpercent.description = Valores altos pueden causar problemas de rendimiento.
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
@@ -1389,7 +1399,7 @@ keybind.shoot.name = Disparar
keybind.zoom.name = Zoom
keybind.menu.name = Menú
keybind.pause.name = Pausa
keybind.skip_wave.name = Skip Wave
keybind.skip_wave.name = Saltar oleada
keybind.pause_building.name = Pausar/Reanudar construcción
keybind.minimap.name = Minimapa
keybind.planet_map.name = Mapa del planeta
@@ -1447,6 +1457,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = IA enemiga avanzada (RTS AI)
rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Tamaño mínimo de escuadrón
rules.rtsmaxsquadsize = Tamaño máximo de escuadrón
rules.rtsminattackweight = Peso mínimo de ataque
@@ -1491,12 +1503,12 @@ rules.title.teams = Equipos
rules.title.planet = Planeta
rules.lighting = Iluminación
rules.fog = Ocultar terreno inexplorado (Fog of War)
rules.invasions = Enemy Sector Invasions
rules.invasions = Invasiones de sector enemigo
rules.legacylaunchpads = Legacy Launch Pad Mechanics
rules.legacylaunchpads.info = Allows using launch pads without landing pads, as in 7.0.
landingpad.legacy.disabled = [scarlet]\ue815 Disabled[lightgray] (Legacy Launch Pads enabled)
rules.showspawns = Show Enemy Spawns
rules.randomwaveai = Unpredictable Wave AI
rules.showspawns = Mostrar puntos de aparición de unidades enemigas
rules.randomwaveai = Oleada impredecible de IA
rules.fire = Fuego
rules.anyenv = <Cualquiera>
rules.explosions = Daño de explosiones a bloques/unidades
@@ -1506,9 +1518,9 @@ rules.weather.frequency = Frecuencia:
rules.weather.always = Siempre
rules.weather.duration = Duracion:
rules.randomwaveai.info = Makes units spawned in waves target random structures instead of directly attacking the core or power generators.
rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy.
rules.onlydepositcore.info = Evita que las unidades depositen materiales en calquiera estructura a excepción del nucleo.
rules.randomwaveai.info = Hace que las unidades aparecidas en oleadas ataquen estructuras aleatorias en lugar de atacar directamente al núcleo o generadores de energía.
rules.placerangecheck.info = Previene que los jugadores construyan algo cerca de las estructuras enemigas. Cuando se intenta construir una torreta, el rango es aumentado, de modo que la torreta no podrá alcanzar al enemigo.
rules.onlydepositcore.info = Evita que las unidades depositen materiales en cualquier estructura a excepción del nucleo.
content.item.name = Objetos
content.liquid.name = Líquidos
@@ -1651,8 +1663,8 @@ block.graphite-press.name = Prensa de grafito
block.multi-press.name = Multi-Prensa
block.constructing = {0} [lightgray](Construyendo)
block.spawn.name = Zona de aterrizaje enemiga
block.remove-wall.name = Remove Wall
block.remove-ore.name = Remove Ore
block.remove-wall.name = Quitar muro
block.remove-ore.name = Quitar mineral
block.core-shard.name = Núcleo: Shard
block.core-foundation.name = Núcleo: Foundation
block.core-nucleus.name = Núcleo: Nucleus
@@ -1709,8 +1721,8 @@ block.metal-tiles-13.name = Metal Tiles 13
block.metal-wall-1.name = Metal Wall 1
block.metal-wall-2.name = Metal Wall 2
block.metal-wall-3.name = Metal Wall 3
block.colored-floor.name = Colored Floor
block.colored-wall.name = Colored Wall
block.colored-floor.name = Piso coloreado
block.colored-wall.name = Muro coloreado
block.character-overlay.name = Character Overlay
block.character-overlay-white.name = Character Overlay (White)
block.rune-overlay.name = Rune Overlay
@@ -1898,8 +1910,8 @@ block.arkyic-vent.name = Grieta de arquicita
block.yellow-stone-vent.name = Grieta de piedra amarillenta
block.red-stone-vent.name = Grieta de piedra rojiza
block.crystalline-vent.name = Grieta cristalina
block.stone-vent.name = Stone Vent
block.basalt-vent.name = Basalt Vent
block.stone-vent.name = Grieta de piedra
block.basalt-vent.name = Grieta de basalto
block.redmat.name = Manto rojo
block.bluemat.name = Manto azul
block.core-zone.name = Zona de núcleo
+12
View File
@@ -101,6 +101,7 @@ coreattack = < Tuum on rünnaku all! >
nearpoint = [[ [scarlet]LAHKU KOHESELT MAANDUMISPLATSILT[] ]\nVaenlaste maandumisel hävib siin kõik.
database = Tuumandmebaas
database.button = Andmebaas
viewfields = View Content Fields
savegame = Salvesta Mäng
loadgame = Lae Mäng
joingame = Liitu Mänguga
@@ -467,6 +468,14 @@ editor.rules = Reeglid:
editor.generation = Genereerimine:
editor.objectives = Objectives
editor.locales = Locale Bundles
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = World Processors
editor.worldprocessors.editname = Edit Name
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Congratulations.\n\nThe enemy on {0} has been defeat
sectorlist = Sectors
sectorlist.attacked = {0} under attack
sectors.unexplored = [lightgray]Unexplored
sectors.attempts = Attempts:
sectors.resources = Resources:
sectors.production = Production:
sectors.export = Export:
@@ -1447,6 +1457,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Min Squad Size
rules.rtsmaxsquadsize = Max Squad Size
rules.rtsminattackweight = Min Attack Weight
+12
View File
@@ -101,6 +101,7 @@ coreattack = < Muina erasopean dago! >
nearpoint = [[ [scarlet]ATERA ERRUNTZE EREMUTIK ATOAN[] ]\nDeuseztapena berehalakoa
database = Muinaren datu-basea
database.button = Database
viewfields = View Content Fields
savegame = Gorde partida
loadgame = Kargatu partida
joingame = Batu partidara
@@ -467,6 +468,14 @@ editor.rules = Arauak:
editor.generation = Sorrarazi:
editor.objectives = Objectives
editor.locales = Locale Bundles
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = World Processors
editor.worldprocessors.editname = Edit Name
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Congratulations.\n\nThe enemy on {0} has been defeat
sectorlist = Sectors
sectorlist.attacked = {0} under attack
sectors.unexplored = [lightgray]Unexplored
sectors.attempts = Attempts:
sectors.resources = Resources:
sectors.production = Production:
sectors.export = Export:
@@ -1447,6 +1457,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Min Squad Size
rules.rtsmaxsquadsize = Max Squad Size
rules.rtsminattackweight = Min Attack Weight
+12
View File
@@ -101,6 +101,7 @@ coreattack = < Ytimeen hyökätään! >
nearpoint = [[ [scarlet]POISTU VIHOLLISEN PUDOTUSPISTEELTÄ VÄLITTÖMÄSTI[]\nvälitön tuhoutuminen
database = Ytimen tietokanta
database.button = Tietokanta
viewfields = View Content Fields
savegame = Tallenna peli
loadgame = Lataa peli
joingame = Liity peliin
@@ -467,6 +468,14 @@ editor.rules = Säännöt:
editor.generation = Generaatio:
editor.objectives = Tehtävät
editor.locales = Locale Bundles
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = World Processors
editor.worldprocessors.editname = Edit Name
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Congratulations.\n\nThe enemy on {0} has been defeat
sectorlist = Sektorit
sectorlist.attacked = {0} on hyökkäyksen kohteena
sectors.unexplored = [lightgray]Tutkimaton
sectors.attempts = Attempts:
sectors.resources = Resurssit:
sectors.production = Produktio:
sectors.export = Vienti:
@@ -1447,6 +1457,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Min. hyökkäysjoukon koko
rules.rtsmaxsquadsize = Max Squad Size
rules.rtsminattackweight = Min. hyökkäyksen paino
+12
View File
@@ -101,6 +101,7 @@ coreattack = < Ang core ay inaatake! >
nearpoint = [[ [scarlet]UMALIS KAAGAD SA DROP POINT[] ]\nmamamatay ka...
database = Talaan ng Core
database.button = Talaan
viewfields = View Content Fields
savegame = Ibago ang Laro
loadgame = Ibukas ang Laro
joingame = Sumali sa Laro
@@ -467,6 +468,14 @@ editor.rules = Mga Alintuntunin:
editor.generation = Pagbuo:
editor.objectives = Mga Gawain
editor.locales = Locale Bundles
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = Proseso ng Map
editor.worldprocessors.editname = Iedit ang pangalan
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Congratulations.\n\nThe enemy on {0} has been defeat
sectorlist = Mga Sektor
sectorlist.attacked = {0} ay inaatake
sectors.unexplored = [lightgray]Unexplored
sectors.attempts = Attempts:
sectors.resources = Resources:
sectors.production = Produksyon:
sectors.export = Export:
@@ -1447,6 +1457,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = Sa mapang attake, ginagawa gina grupo ang mga unit at inaatake ang player bases sa mas-maraming matalinong na manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Pinakamaliit Squad Size
rules.rtsmaxsquadsize = Pinakaraming Squad Size
rules.rtsminattackweight = Min Attack Weight
+12
View File
@@ -101,6 +101,7 @@ coreattack = [scarlet]< Le Noyau est attaqué ! >
nearpoint = [[ [scarlet]QUITTEZ LE POINT D'APPARITION ENNEMI IMMÉDIATEMENT[] ]\nannihilation imminente
database = Base de données
database.button = Base de données
viewfields = View Content Fields
savegame = Sauvegarder la partie
loadgame = Charger une partie
joingame = Rejoindre une partie
@@ -467,6 +468,14 @@ editor.rules = Règles
editor.generation = Génération
editor.objectives = Objectifs
editor.locales = Locale Bundles
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = World Processors
editor.worldprocessors.editname = Editer le nom
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Félicitations.\n\nL'ennemi sur {0} a été battu.\n
sectorlist = Secteurs
sectorlist.attacked = {0} pris d'assaut
sectors.unexplored = [lightgray]Inexploré
sectors.attempts = Attempts:
sectors.resources = Ressources :
sectors.production = Production :
sectors.export = Exporter :
@@ -1447,6 +1457,8 @@ rules.buildaitier = Niveau de l'IA de Construction de Base
rules.rtsai = IA de RTS [red](WIP)
rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Taille Minimale d'une Escouade
rules.rtsmaxsquadsize = Taille Maximale d'une Escouade
rules.rtsminattackweight = Poids Minimum d'une Attaque
+33 -21
View File
@@ -101,6 +101,7 @@ coreattack = < A támaszpont támadás alatt áll! >
nearpoint = [[ [scarlet]AZONNAL HAGYD EL A LEDOBÁSI PONTOT[] ]\nA megsemmisülés fenyeget!
database = Támaszpont adatbázisa
database.button = Adatbázis
viewfields = Tartalmi mezők megtekintése
savegame = Játék mentése
loadgame = Játék betöltése
joingame = Kapcsolódás egy játékhoz
@@ -448,9 +449,9 @@ publish.confirm = Biztosan közzéteszed ezt az elemet?\n\n[lightgray]Győződj
publish.error = Hiba az elem közzétételekor: {0}
steam.error = Nem sikerült előkészíteni a Steam szolgáltatásokat.\nHiba: {0}
editor.showblocks = Show Blocks
editor.showterrain = Show Terrain
editor.showfloor = Show Floor
editor.showblocks = Blokkok megjelenítése
editor.showterrain = Domborzat megjelenítése
editor.showfloor = Talaj megjelenítése
editor.planet = Bolygó:
editor.sector = Szektor:
editor.seed = Kiindulóérték:
@@ -467,6 +468,14 @@ editor.rules = Szabályok
editor.generation = Előállítás
editor.objectives = Célok
editor.locales = Helyi csomagok
editor.patches.guide = Útmutató a javítócsomagokhoz
editor.patches = Tartalmi javítócsomagok
editor.patch = Javítócsomagok: {0}
editor.patches.none = [lightgray]Nincsenek javítócsomagok betöltve.
editor.patches.errors = Javítócsomag-hibák
editor.patches.importerror = Nem sikerült importálni a javítócsomagot
editor.patches.delete.confirm = Biztosan törölni szeretnéd ezt a javítócsomagot?
editor.patch.fields = {0} mezők
editor.worldprocessors = Világprocesszorok
editor.worldprocessors.editname = Név szerkesztése
editor.worldprocessors.none = [lightgray]Nem találhatók világprocesszor-blokkok!\nAdj hozzá egyet a pályaszerkesztőben vagy használd az alábbi \ue813 hozzáadás gombot.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Gratulálunk.\n\nLegyőzted az ellenséget a(z) {0}
sectorlist = Szektorok
sectorlist.attacked = {0} támadás alatt
sectors.unexplored = [lightgray]Felderítetlen
sectors.attempts = Elfoglalási kísérletek száma:
sectors.resources = Nyersanyagok:
sectors.production = Termelés:
sectors.export = Export:
@@ -801,7 +811,7 @@ sectors.wave = Hullám:
sectors.stored = Tárolt nyersanyagok:
sectors.resume = Folytatás
sectors.launch = Kilövés
sectors.viewsubmission = \ue80d Alküldetések megtekintése
sectors.viewsubmission = \ue80d Alküldetés megtekintése
sectors.select = Kiválasztás
sectors.launchselect = Célállomás kiválasztása
sectors.nonelaunch = [lightgray]semmi (nap)
@@ -879,7 +889,7 @@ sector.seaPort.name = Tengeri kikötő
sector.weatheredChannels.name = Viharvert csatornák
sector.mycelialBastion.name = Micéliumbástya
sector.frontier.name = Frontvidék
sector.sunkenPier.name = Sunken Pier
sector.sunkenPier.name = Elsüllyedt móló
sector.cruxscape.name = Crux-vidék
sector.geothermalStronghold.name = Geotermikus erődítmény
@@ -953,15 +963,15 @@ sector.crossroads.description = Az ellenséges támaszpontok ebben a szektorban
sector.karst.description = Ez a szektor gazdag a nyersanyagokban, de amint egy új támaszpont leszáll, az ellenség megtámadja azt.\nHasználd ki a nyersanyagokat és fedezd fel a [accent]tóritkvarcot[].
sector.origin.description = Az utolsó szektor, jelentős ellenséges jelenléttel.\nNem valószínű, hogy maradtak további fejlesztési lehetőségek – koncentrálj az ellenséges támaszpontok elpusztítására.
status.burning.name = Égő
status.freezing.name = Fagyos
status.wet.name = Nedves
status.burning.name = Égés
status.freezing.name = Fagyás
status.wet.name = Vizes
status.muddy.name = Sáros
status.melting.name = Olvadó
status.sapped.name = Kiszáradt
status.electrified.name = Elektromos
status.spore-slowed.name = Spórával lassított
status.tarred.name = Kátrányozott
status.melting.name = Olvadás
status.sapped.name = Legyengült
status.electrified.name = Árammal ellátott
status.spore-slowed.name = Spóralassított
status.tarred.name = Kátrányos
status.overdrive.name = Túlhajtott
status.overclock.name = Túlhúzott
status.shocked.name = Sokkolt
@@ -1014,10 +1024,10 @@ stat.opposites = Ellentettek
stat.powercapacity = Maximális tárolási kapacitás
stat.powershot = Áram/lövés
stat.damage = Sebzés
stat.frequency = Frequency
stat.frequency = Frekvencia
stat.targetsair = Légi célpontok
stat.targetsground = Földi célpontok
stat.crushdamage = Crush Damage
stat.crushdamage = Zúzó sebzés
stat.itemsmoved = Szállítási sebesség
stat.launchtime = Kilövések közötti idő
stat.shootrange = Hatótávolság
@@ -1102,7 +1112,7 @@ ability.movelightning.description = Mozgás közben villámokat bocsát ki
ability.armorplate = Páncéllemez
ability.armorplate.description = Csökkenti a kapott sebzést lövés közben
ability.shieldarc = Erőpajzs-ív
ability.shieldarc.description = Olyan erőpajzsot vetít ki egy ívben, amely elnyeli a lövedékeket
ability.shieldarc.description = Olyan erőpajzsot vetít ki egy ívben, amely elnyeli vagy eltéríti a lövedékeket, rakétákat és egységeket.
ability.suppressionfield = Javítás elnyomása
ability.suppressionfield.description = Leállítja a közeli javítóépületeket
ability.energyfield = Energiamező
@@ -1122,7 +1132,7 @@ ability.stat.regen = [stat]{0}[lightgray] életerő/mp
ability.stat.pulseregen = [stat]{0}[lightgray] életerő/impulzus
ability.stat.shield = [stat]{0}[lightgray] maximális pajzs
ability.stat.repairspeed = [stat]{0}/mp[lightgray] javítási sebesség
ability.stat.deflectchance = [stat]{0}%[lightgray] deflect chance
ability.stat.deflectchance = [stat]{0}%[lightgray] hárítási esély
ability.stat.slurpheal = [stat]{0}[lightgray] életerő/folyadékegység
ability.stat.cooldown = [stat]{0} mp[lightgray] újratöltődés
ability.stat.maxtargets = [stat]{0}[lightgray] célpont (legfeljebb)
@@ -1447,6 +1457,8 @@ rules.buildaitier = Építő MI szintje
rules.rtsai = RTS MI
rules.rtsai.campaign = RTS támadó-MI
rules.rtsai.campaign.info = A „támadómódú” pályákon (ahol az ellenség is rendelkezik támaszponttal) az MI által irányított\negységek csoportosulnak, és intelligensebb módon támadják a játékosok bázisait.
rules.clearsectoronloss = Szektor kiürítése elvesztés esetén
rules.clearsectoronloss.info = A szektor elvesztése esetén az előző elfoglalási kísérlet alatt\na játékos által épített épületek nem lesznek elérhetők.
rules.rtsminsquadsize = Minimális osztagméret
rules.rtsmaxsquadsize = Maximális osztagméret
rules.rtsminattackweight = Minimális támadási súly
@@ -1670,7 +1682,7 @@ block.snow.name = Hó
block.crater-stone.name = Kráterek
block.sand-water.name = Homokvíz
block.darksand-water.name = Sötét homokvíz
block.char.name = Faszén
block.char.name = Elszenesedett kő
block.dacite.name = Dácit
block.rhyolite.name = Riolit
block.dacite-wall.name = Dácitfal
@@ -2479,9 +2491,9 @@ unit.navanax.description = Robbanékony EMI-lövedékeket lő ki, jelentős kár
#Erekir
unit.stell.description = Szokásos lövedékeket lő ki az ellenséges célpontokra.
unit.locus.description = Változatos lövedékeket lő ki az ellenséges célpontokra.
unit.precept.description = Átütő erejű kazettás lövedékeket lő ki az ellenséges célpontokra.
unit.vanquish.description = Nagy, átütő erejű hasítólövedékeket lő ki az ellenséges célpontokra.
unit.conquer.description = Nagy, átütő erejű golyózáport lő ki az ellenséges célpontokra.
unit.precept.description = Átütő erejű kazettás lövedékeket lő ki az ellenséges célpontokra. Kevésbé sérül a káros tereptárgyaktól.
unit.vanquish.description = Nagy, átütő erejű hasítólövedékeket lő ki az ellenséges célpontokra. Kevésbé sérül a káros tereptárgyaktól.
unit.conquer.description = Nagy, átütő erejű golyózáport lő ki az ellenséges célpontokra. Kevésbé sérül a káros tereptárgyaktól.
unit.merui.description = Nagy hatótávolságú ágyúkkal lövi az ellenséges szárazföldi célpontokat. A legtöbb terepakadályt átlépi.
unit.cleroi.description = Kettős lövedékeket lő ki az ellenséges célpontokra. Célba veszi az ellenséges lövedékeket a pontvédelmi tornyokkal. A legtöbb terepakadályt átlépi.
unit.anthicus.description = Nagy hatótávolságú célkövető rakétákat lő ki az ellenséges célpontokra. A legtöbb terepakadályt átlépi.
+24 -12
View File
@@ -101,6 +101,7 @@ coreattack = < Inti sedang diserang! >
nearpoint = [[ [scarlet]TINGGALKAN ZONA PENDARATAN SEGERA[] ]\npenghancuran akan terjadi
database = Basis Data Inti
database.button = Basis Data
viewfields = Lihat Bidang Konten
savegame = Simpan Permainan
loadgame = Muat Permainan
joingame = Gabung Permainan
@@ -446,7 +447,7 @@ missing = Konten ini telah dihapus atau dipindah.\n[lightgray]Daftar Workshop se
publishing = [accent]Menerbitkan...
publish.confirm = Apakah Anda yakin untuk menerbitkan ini?\n\n[lightgray]Pastikan Anda setuju dengan EULA Workshop terlebih dahulu, atau konten Anda tidak akan muncul!
publish.error = Terjadi kesalahan saat menerbitkan konten: {0}
steam.error = Gagal untuk menjalankan layanan Steam.\nKesalahan: {0}
steam.error = Gagal menjalankan layanan Steam.\nKesalahan: {0}
editor.showblocks = Tampilkan Blok
editor.showterrain = Tampilkan Medan
@@ -467,6 +468,14 @@ editor.rules = Peraturan:
editor.generation = Generasi:
editor.objectives = Tujuan
editor.locales = Paket Lokal
editor.patches.guide = Panduan Patch Konten
editor.patches = Patch Konten
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]Tidak ada patchset yang dimuat.
editor.patches.errors = Daftar Patchset Error
editor.patches.importerror = Gagal mengimpor patchset
editor.patches.delete.confirm = Apakah Anda yakin ingin menghapus patchset ini?
editor.patch.fields = {0} bidang
editor.worldprocessors = Prosesor Dunia
editor.worldprocessors.editname = Sunting Nama
editor.worldprocessors.none = [lightgray]Tidak ada blok prosesor dunia yang ditemukan!\nTambahkan satu di penyunting peta, atau gunakan \ue813 tombol Tambah di bawah.
@@ -773,7 +782,7 @@ error.invalidaddress = Alamat tidak valid.
error.timedout = Kehabisan waktu!\nPastikan host mengaktifkan port forwarding, dan alamatnya benar!
error.mismatch = Paket bermasalah:\nkemungkinan versi client/server berbeda.\nPastikan Anda dan host mempunyai versi terbaru Mindustry!
error.alreadyconnected = Sudah tersambung.
error.mapnotfound = File peta tidak ditemaukan!
error.mapnotfound = File peta tidak ditemukan!
error.io = Terjadi kesalahan jaringan I/O.
error.any = Terjadi kesalahan Jaringan tidak diketahui.
error.bloom = Gagal untuk menjalankan efek bloom.\nPerangkat Anda mungkin tidak mendukung fitur ini.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Selamat.\n\nMusuh di {0} telah dikalahkan.\n[lightgr
sectorlist = Sektor
sectorlist.attacked = {0} sedang diserang
sectors.unexplored = [lightgray]Belum Ditelusuri
sectors.attempts = Percobaan:
sectors.resources = Sumber Daya:
sectors.production = Produksi:
sectors.export = Ekspor:
@@ -855,12 +865,12 @@ sector.impact0078.name = Benturan 0078
sector.groundZero.name = Titik Awal
sector.craters.name = Kawah
sector.frozenForest.name = Hutan Beku
sector.ruinousShores.name = Pantai Yang Hancur
sector.ruinousShores.name = Runtuhan Pesisir
sector.stainedMountains.name = Gunung Bernoda
sector.desolateRift.name = Retakan Terpencil
sector.nuclearComplex.name = Kompleks Produksi Nuklir
sector.overgrowth.name = Pertumbuhan
sector.tarFields.name = Lahan Perminyakan Mentah
sector.tarFields.name = Ladang Minyak
sector.saltFlats.name = Dataran Garam
sector.fungalPass.name = Lintasan Spora
sector.biomassFacility.name = Pabrik Sintesis Biomassa
@@ -872,7 +882,7 @@ sector.infestedCanyons.name = Ngarai Terinfestasi
sector.planetaryTerminal.name = Pusat Peluncuran Planet
sector.coastline.name = Tepi Pantai
sector.navalFortress.name = Benteng Laut
sector.polarAerodrome.name = Aerodrom Kutub
sector.polarAerodrome.name = Pangkalan Kutub
sector.atolls.name = Atol
sector.testingGrounds.name = Kawasan Uji Coba
sector.seaPort.name = Pelabuhan Laut
@@ -1120,7 +1130,7 @@ ability.liquidexplode.description = Menumpahkan cairan saat mati
ability.stat.firingrate = [stat]{0}/dtk[lightgray] laju penembakan
ability.stat.regen = [stat]{0}[lightgray] nyawa/detik
ability.stat.pulseregen = [stat]{0}[lightgray] nyawa/denyut
ability.stat.shield = [stat]{0}[lightgray] perisai
ability.stat.shield = [stat]{0}[lightgray] nyawa perisai
ability.stat.repairspeed = [stat]{0}/dtk[lightgray] kecepatan perbaikan
ability.stat.deflectchance = [stat]{0}%[lightgray] peluang defleksi
ability.stat.slurpheal = [stat]{0}[lightgray] nyawa/unit cair
@@ -1447,6 +1457,8 @@ rules.buildaitier = Tingkat A.I. Pembangun
rules.rtsai = A.I. RTS [red](WIP)
rules.rtsai.campaign = A.I. Serangan RTS
rules.rtsai.campaign.info = Dalam peta serangan, membuat unit berkelompok dan menyerang markas pemain dengan cara yang lebih cerdas.
rules.clearsectoronloss = Bersihkan Sektor Setelah Kalah
rules.clearsectoronloss.info = Ketika suatu sektor telah dikalahkan oleh musuh, semua bangunan pemain dari percobaan sebelumnya akan dihilangkan.
rules.rtsminsquadsize = Ukuran Regu Minimum
rules.rtsmaxsquadsize = Ukuran Regu Maksimum
rules.rtsminattackweight = Berat Serangan Minimum
@@ -1670,7 +1682,7 @@ block.snow.name = Salju
block.crater-stone.name = Kawah
block.sand-water.name = Air pada Pasir
block.darksand-water.name = Air pada Pasir Hitam
block.char.name = Bara
block.char.name = Bara Hangus
block.dacite.name = Dasit
block.rhyolite.name = Riolit
block.dacite-wall.name = Dinding Dasit
@@ -2460,7 +2472,7 @@ unit.eclipse.description = Menembak dua sinar laser dan rentetan peluru ke arah
unit.mono.description = Menambang tembaga dan timah secara otomatis, menyimpannya ke dalam inti.
unit.poly.description = Membangun kembali bangunan yang hancur secara otomatis dan membantu unit lain dalam pembangunan.
unit.mega.description = Memperbaiki bangunan secara otomatis. Dapat membawa bangunan dan unit darat kecil.
unit.quad.description = Menjatuhkan bom besar kepada target darat, yang bisa memberbaiki bangunan sekutu dan merusak musuh. Dapat membawa unit darat berukuran sedang.
unit.quad.description = Menjatuhkan bom besar ke target darat, yang bisa memberbaiki bangunan sekutu dan merusak musuh. Dapat membawa unit darat berukuran sedang.
unit.oct.description = Melindungi sekutu di sekitarnya dengan perisai yang dapat beregenerasi. Dapat membawa hampir semua unit darat.
unit.risso.description = Menembak rentetan misil dan peluru ke arah musuh.
unit.minke.description = Menembak cangkang pembakar dan peluru standar ke target darat.
@@ -2490,8 +2502,8 @@ unit.collaris.description = Menembak pecahan artileri jarak jauh ke arah musuh.
unit.elude.description = Menembak sepasang peluru pelacak ke arah musuh. Dapat mengambang diatas permukaan cairan.
unit.avert.description = Menembak sepasang peluru yang memutar ke arah musuh.
unit.obviate.description = Menembak sepasang bola listrik yang memutar ke arah musuh.
unit.quell.description = Menembak misil pelacak jarak jauh dengan perisai plasma yang tidak stabil ke arah musuh. Menekan bangunan perbaikan musuh.
unit.disrupt.description = Menembak misil pelacak penekan jarak jauh pada musuh. Menekan bangunan perbaikan musuh.
unit.quell.description = Menembak misil pelacak jarak jauh dengan perisai plasma yang tidak stabil ke arah musuh. Menekan bangunan perbaikan musuh. Hanya menyerang ke target darat.
unit.disrupt.description = Menembak misil pelacak penekan jarak jauh pada musuh. Menekan bangunan perbaikan musuh. Hanya menyerang ke target darat.
unit.evoke.description = Membangun struktur untuk melindungi Inti Bastion. Memperbaiki bangunan dengan sebuah sinar. Dapat membawa bangunan hingga ukuran 2x2.
unit.incite.description = Membangun struktur untuk melindungi Inti Citadel. Memperbaiki bangunan dengan sebuah sinar. Dapat membawa bangunan hingga ukuran 2x2.
unit.emanate.description = Membangun struktur untuk melindungi Inti Acropolis. Memperbaiki bangunan dengan sebuah sinar. Dapat membawa bangunan hingga ukuran 2x2
@@ -2765,8 +2777,8 @@ lenum.waves = Apakah gelombang dapat muncul sama sekali.
lenum.wavesending = Apakah gelombang dapat dipanggil secara manual dengan tombol putar.
lenum.attackmode = Menentukan apakah mode permainan adalah mode serangan.
lenum.wavespacing = Waktu antar gelombang dalam tick.
lenum.enemycorebuildradius = Zona dilarang membangun disekitar radius inti musuh.
lenum.dropzoneradius = Radius disekitar zona pendaratan gelombang musuh.
lenum.enemycorebuildradius = Zona dilarang membangun di sekitar radius inti musuh.
lenum.dropzoneradius = Radius di sekitar zona pendaratan gelombang musuh.
lenum.unitcap = Batas unit dasar. Dapat ditingkatkan dengan blok.
lenum.lighting = Apakah pencahayaan sekitar diaktifkan.
lenum.buildspeed = Penggandaan untuk kecepatan membangun.
+12
View File
@@ -101,6 +101,7 @@ coreattack = < Il Nucleo è sotto attacco! >
nearpoint = [[ [scarlet]LASCIA LA ZONA NEMICA IMMEDIATAMENTE[] ]\nautodistruzione imminente
database = Database Nucleo
database.button = Database
viewfields = View Content Fields
savegame = Salva
loadgame = Carica
joingame = Unisciti al Gioco
@@ -467,6 +468,14 @@ editor.rules = Regole:
editor.generation = Generazione:
editor.objectives = Obbiettivi
editor.locales = Locale Bundles
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = World Processors
editor.worldprocessors.editname = Edit Name
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Congratulations.\n\nThe enemy on {0} has been defeat
sectorlist = Settore
sectorlist.attacked = {0} sotto attacco
sectors.unexplored = [lightgray]Inesplorato
sectors.attempts = Attempts:
sectors.resources = Risorse:
sectors.production = Produzione:
sectors.export = Merce:
@@ -1447,6 +1457,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Dimensione minima squadra
rules.rtsmaxsquadsize = Dimensione massima squadra
rules.rtsminattackweight = Min Attack Weight
+12
View File
@@ -101,6 +101,7 @@ coreattack = < コアが攻撃を受けています! >
nearpoint = [[ [scarlet]直ちに出現ポイントより離脱せよ[] ]\n殲滅されます
database = コアデータベース
database.button = データベース
viewfields = View Content Fields
savegame = 保存
loadgame = 読み込む
joingame = マルチプレイ
@@ -467,6 +468,14 @@ editor.rules = ルール:
editor.generation = 生成:
editor.objectives = オブジェクティブ
editor.locales = Locale Bundles
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = World Processors
editor.worldprocessors.editname = 名前の変更
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
@@ -791,6 +800,7 @@ campaign.complete = [accent]おめでとうございます。\n\n{0} の敵を
sectorlist = セクター
sectorlist.attacked = {0}が攻撃を受けています
sectors.unexplored = [lightgray]未踏査
sectors.attempts = Attempts:
sectors.resources = 資源:
sectors.production = 生産:
sectors.export = 搬出:
@@ -1447,6 +1457,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = チームの最少人数
rules.rtsmaxsquadsize = チームの最大人数
rules.rtsminattackweight = 最小攻撃力
+36 -24
View File
@@ -46,10 +46,10 @@ 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 = 저장소 보기
mods.github.open = 페이지 보기
mods.github.open-release = 릴리즈 페이지
mods.browser.sortdate = 최근 업데이트
mods.browser.sortstars = 추천(스타) 수
@@ -98,9 +98,10 @@ level.highscore = 최고 점수: [accent]{0}
level.select = 맵 선택
level.mode = 게임 모드:
coreattack = < 코어가 공격을 받고 있습니다! >
nearpoint = [[ [scarlet]즉시 적 소환구역에서 떠나세요[] ]\n단계가 시작하는 순간 구역 내의 모든 건물과 유닛이 파괴됩니다!
nearpoint = [[ [scarlet]즉시 적 착륙 지점에서 떠나세요[] ]\n점멸이 임박됨
database = 코어 데이터베이스
database.button = 데이터베이스
viewfields = View Content Fields
savegame = 게임 저장
loadgame = 게임 불러오기
joingame = 서버 참여
@@ -214,7 +215,7 @@ completed = [accent]완료됨
techtree = 연구 기록
techtree.select = 연구 기록 선택
techtree.serpulo = 세르플로
techtree.erekir = 에르키아
techtree.erekir = 에러키얼
research.load = 불러오기
research.discard = 무시하기
research.list = [lightgray]연구:
@@ -454,7 +455,7 @@ editor.showfloor = 바닥 표시
editor.planet = 행성:
editor.sector = 구역:
editor.seed = 시드:
editor.brush = 브러쉬
editor.brush = 브러쉬 크기
editor.openin = 편집기 열기
editor.oregen = 광물 무작위 생성
editor.oregen.info = 광물 무작위 생성:
@@ -467,6 +468,14 @@ editor.rules = 규칙
editor.generation = 지형 생성
editor.objectives = 목표
editor.locales = 로케일 번들
editor.patches.guide = Patch Guide
editor.patches = 콘텐츠 패치
editor.patch = 패치셋: {0}
editor.patches.none = [lightgray]패치셋이 로드되지 않음.
editor.patches.errors = 패치셋 에러
editor.patches.importerror = 패치셋을 가져오는데 실패됨
editor.patches.delete.confirm = 이 패치셋을 삭제하시겠습니까?
editor.patch.fields = {0} 필드
editor.worldprocessors = 월드 프로세서
editor.worldprocessors.editname = 이름 수정
editor.worldprocessors.none = [lightgray]월드 프로세서 블록을 찾을 수 없습니다!\n맵 편집기에서 추가하거나 아래의 \ue813 추가 버튼을 사용하세요.
@@ -476,7 +485,7 @@ editor.ingame = 인게임 편집
editor.playtest = 맵 테스트
editor.publish.workshop = 창작마당 게시
editor.newmap = 맵 만들기
editor.center = 중앙
editor.center = 중앙으로 이동
editor.search = 맵 검색
editor.filters = 맵 필터링
editor.filters.mode = 게임 모드:
@@ -735,7 +744,7 @@ 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.build = [accent]건설: [][lightgray]{0}[]개\n{1}[lightgray]{2}
objective.build = [accent]건설: [][lightgray]{0}[]개의\n{1}[lightgray]{2}
objective.buildunit = [accent]유닛 생산: [][lightgray]{0}[]기\n{1}[lightgray]{2}
objective.destroyunits = [accent]처치: [][lightgray]{0}[]기의 유닛
objective.enemiesapproaching = [accent]적이 [lightgray]{0}[]초 후에 도착합니다
@@ -791,6 +800,7 @@ campaign.complete = [accent]축하드립니다.\n\n {0} 지역의 적이 패배
sectorlist = 지역 목록
sectorlist.attacked = {0} 공격받는 중
sectors.unexplored = [lightgray]미개척지[]
sectors.attempts = 시도 횟수:
sectors.resources = 자원:
sectors.production = 생산량:
sectors.export = 수출량:
@@ -848,7 +858,7 @@ difficulty.nomodifiers = [lightgray](옵션 없음)
planets = 태양계
planet.serpulo.name = 세르플로
planet.erekir.name = 에르키아
planet.erekir.name = 에러키얼
planet.sun.name = 태양
sector.impact0078.name = 임팩트 0078
@@ -864,7 +874,7 @@ sector.tarFields.name = 타르 벌판
sector.saltFlats.name = 소금 사막
sector.fungalPass.name = 포자 지대
sector.biomassFacility.name = 유기물 합성 시설
sector.windsweptIslands.name = 폭풍의 격전지
sector.windsweptIslands.name = 바람이 세찬 섬
sector.extractionOutpost.name = 자원 추출기지
sector.facility32m.name = 32 M 시설
sector.taintedWoods.name = 오염된 산림
@@ -935,7 +945,7 @@ sector.crossroads.name = 교차로
sector.karst.name = 카르스트
sector.origin.name = 근원
sector.onset.description = 에르키아 정복을 시작하세요. 자원을 모으고, 유닛을 생산하고, 기술 연구를 시작하세요.
sector.onset.description = 에러키얼 정복을 시작하세요. 자원을 모으고, 유닛을 생산하고, 기술 연구를 시작하세요.
sector.aegis.description = 이 구역에는 텅스텐 매장지가 있습니다.\n[accent]충격 드릴[]을 연구해 이 자원을 채굴하고 해당 지역의 적 기지를 파괴하세요.
sector.lake.description = 이 지역의 광재 호수는 유닛의 활동 범위를 크게 제한시킵니다. 호버링 유닛만이 유일한 선택지입니다.\n[accent]함선 재구성기[]를 연구하고 [accent]일루드[]를 가능한 한 빨리 생산하여야 합니다.
sector.intersect.description = 정찰 결과 이 지역은 착륙 직후 여러 방향에서 공격받을 것으로 예측됩니다.\n방어선을 빠르게 구축하고 가능한 한 빠르게 확장하여야 합니다.\n이 지역의 험난한 지형을 위해서는 [accent]기계[] 유닛이 필요할 것입니다.
@@ -1107,7 +1117,7 @@ ability.suppressionfield = 재생성 억제 필드
ability.suppressionfield.description = 근처 수리 건물을 잠깐동안 억제함
ability.energyfield = 에너지 필드
ability.energyfield.description = 근처 적을 감전시킴
ability.energyfield.healdescription = 근처 적에게 전기 충격을 주고 아군을 치료함
ability.energyfield.healdescription = 근처 적에게 전기 충격을 주고 건물과 아군을 치료함
ability.regen = 재생
ability.regen.description = 시간이 지남에 따라 스스로 체력을 재생함
ability.liquidregen = 액체 흡수
@@ -1447,6 +1457,8 @@ rules.buildaitier = 건설 AI 등급
rules.rtsai = RTS AI
rules.rtsai.campaign = RTS 공격 AI
rules.rtsai.campaign.info = 공격 맵에서는 유닛을 그룹화하여 더욱 지능적인 방식으로 플레이어 기지를 공격합니다.
rules.clearsectoronloss = 지역을 잃었을 시 잔해 제거
rules.clearsectoronloss.info = 지역을 잃게되면 이전 시도에서 건설한 플레이어의 건물이 유지되지 않습니다.
rules.rtsminsquadsize = 최소 부대 규모
rules.rtsmaxsquadsize = 최대 부대 규모
rules.rtsminattackweight = 최소 공격 중량
@@ -1711,8 +1723,8 @@ block.metal-wall-2.name = 금속 벽 2
block.metal-wall-3.name = 금속 벽 3
block.colored-floor.name = 색상 바닥
block.colored-wall.name = 색상 벽
block.character-overlay.name = 문자 타일
block.character-overlay-white.name = 문자 타일 (하얀색)
block.character-overlay.name = 문자 장식
block.character-overlay-white.name = 문자 장식 (하얀색)
block.rune-overlay.name = 룬 장식
block.rune-overlay-crux.name = 룬 장식 (크럭스)
block.dark-panel-1.name = 검은 패널 1
@@ -1830,7 +1842,7 @@ block.cyclone.name = 사이클론
block.fuse.name = 퓨즈
block.shock-mine.name = 전격 지뢰
block.overdrive-projector.name = 과부하 프로젝터
block.force-projector.name = 보호막 프로젝터
block.force-projector.name = 방호 프로젝터
block.arc.name = 아크
block.rtg-generator.name = RTG 발전기
block.spectre.name = 스펙터
@@ -1860,7 +1872,7 @@ block.payload-source.name = 화물 공급기
block.disassembler.name = 광재 분해기
block.silicon-crucible.name = 실리콘 도가니
block.overdrive-dome.name = 대형 과부하 프로젝터
block.interplanetary-accelerator.name = 성간 가속기
block.interplanetary-accelerator.name = 행성간 가속기
block.constructor.name = 건설기
block.constructor.description = 최대 2x2 크기의 구조물을 제작합니다.
block.large-constructor.name = 대형 건설기
@@ -1962,8 +1974,8 @@ 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.shield-projector.name = 보호막 프로젝터
block.large-shield-projector.name = 대형 보호막 프로젝터
block.armored-duct.name = 장갑 도관
block.overflow-duct.name = 포화 도관
block.underflow-duct.name = 불포화 도관
@@ -2089,21 +2101,21 @@ hint.factoryControl.mobile = 유닛 공장의 [accent]출력 목적지[]를 설
gz.mine = 주변 땅에 있는 \uf8c4 [accent]구리 광석[]으로 이동하고, 광석을 클릭해서 채굴을 시작하세요.
gz.mine.mobile = 주변 땅에 있는 \uf8c4 [accent]구리 광석[]으로 이동하고, 광석을 눌러서 채굴을 시작하세요.
gz.research = 오른쪽 하단에 \ue875 연구 기록을 클릭하거나 'J'키를 눌러 여세요.\n\uf870 [accent]기계식 드릴[]을 연구하고, 그 후 연구 기록을 닫은 후, 오른쪽 아래에 있는 블록 메뉴에서 [accent]드릴 아이콘의 카테고리[]를 클릭하고, 해당 드릴을 선택하세요.\n구리 광석 위에 클릭해서 배치합니다.\n(만약 바로 건설되는게 불편하다면, 설정에서 건설 자동 일시정지를 킬 수 있습니다.)[]
gz.research = 오른쪽 하단에 \ue875 연구 기록을 클릭하거나 'J'키를 눌러 여세요.\n\uf870 [accent]기계식 드릴[]을 연구하고, 그 후 연구 기록을 닫은 후, 오른쪽 아래에 있는 블록 메뉴에서 [accent]드릴 아이콘의 카테고리[]를 클릭하고, 해당 드릴을 선택하세요.\n구리 광석 위에 클릭해서 배치합니다.\n[lightgray](만약 바로 건설되는게 불편하다면, 설정->게임에서 건설 자동 일시정지를 킬 수 있습니다.)[]
gz.research.mobile = 왼쪽 상단에 \ue875 연구 기록을 눌러 여세요.\n\uf870 [accent]기계식 드릴[]을 연구하고, 그 후 연구 메뉴를 닫아서 오른쪽 아래에 있는 블록 메뉴에 [accent]드릴 아이콘의 카테고리[]를 누르고, 해당 드릴을 선택하세요.\n구리 광석 위에 눌러서 배치합니다.\n\n오른쪽 아래 \ue800 [accent]체크마크[]를 눌러 확정지으세요.
gz.conveyors = \uf896 이제 연구 기록을 다시 열어 [accent]컨베이어[]를 연구하고 배치하여 채굴된 자원을 운반하세요.\n드릴에서 코어로 말이죠.\n\n컨베이어를 선택하고, 클릭하고 드래그해서 컨베이어를 길게 배치하세요.\n[accent]스크롤[]로 방향을 회전할 수 있습니다.\n자원이 부족하면 연구나 건설이 불가능해지니 참고해주세요.
gz.conveyors.mobile = \uf896 이제 연구 기록을 다시 열어 [accent]컨베이어[]를 연구하고 배치하여 채굴된 자원을 운반하세요.\n드릴에서 코어로 말이죠.\n\n손가락을 길게 누르고 끌어서 컨베이어를 길게 배치하세요.\n자원이 부족하면 연구나 건설이 불가능해지니 참고해주세요.
gz.drills = 채굴 작업을 확장하세요.\n기계식 드릴을 더 배치하세요.\n[accent]새 목표:[] 드릴로 구리를 채굴하고 컨베이어를 이용해 [accent]구리 100개[]를 코어로 운반하기.
gz.lead = \uf837 [accent]납[]은 일반적으로 사용되는 또 다른 자원입니다.\n납을 채굴하기 위한 드릴을 건설하세요.
gz.lead = \uf837 [accent]납[]은 일반적으로 사용되는 또 다른 자원입니다.\n납을 채굴하기 위한 드릴과 컨베이어를 건설하세요.
gz.moveup = \ue804 추가 목표를 위해 위로 이동하세요.
gz.turrets = 이 게임의 핵심인 '코어'를 보호하기 위해 \uf861 [accent]듀오[] 포탑을 연구하고 2개를 설치하세요.\n듀오 포탑은 컨베이어로부터 \uf838 [accent]탄약[]을 공급받아야 합니다.
gz.duoammo = 컨베이어를 활용하여, 듀오 포탑에 [accent]구리[]를 공급하세요.
gz.walls = [accent]벽[]은 건물로 날아오는 공격을 막을 수 있습니다. \n포탑 주변에 \uf8ae [accent]구리 벽[]을 배치하세요.
gz.walls = [accent]벽[]은 건물로 날아오는 공격을 막을 수 있습니다. \n\uf8ae [accent]구리 벽[]을 연구하고 포탑 주변에 배치하세요.
gz.defend = 적이 다가옵니다, 방어 태세를 갖추세요.
gz.aa = 비행 유닛은 기본 포탑으로는 쉽게 처리할 수 없습니다.\n\uf860 [accent]스캐터[] 포탑은 훌륭한 대공 방어를 자랑하지만, 탄환으로 \uf837 [accent]납[]이 필요합니다.
gz.aa = 비행 유닛은 기본 포탑으로는 쉽게 처리할 수 없습니다.\n\uf860 [accent]스캐터[] 포탑은 훌륭한 대공 방어를 자랑하지만, 탄환으로 \uf837 [accent]납[]이 필요합니다.\n전에 숙지 했던 방법으로 스캐터를 배치하세요.
gz.scatterammo = 컨베이어를 활용하여, 스캐터 포탑에 [accent]납[]을 공급하세요.
gz.supplyturret = [accent]보급 포탑
gz.zone1 = 이건 적의 착륙 지점입니다.
gz.supplyturret = [accent]포탑에 탄약 보급
gz.zone1 = 여긴 적의 착륙 지점입니다.
gz.zone2 = 반경에 세워진 모든 것은 단계가 시작되면 파괴됩니다.
gz.zone3 = 단계가 지금 시작됩니다.\n준비하세요.
gz.finish = 포탑을 더 건설하고, 자원을 더 채굴하고,\n그리고 모든 단계를 막아내어 [accent]이 지역을 점령[]하세요. 이것으로 튜토리얼을 마칩니다. 행운을 빕니다.
@@ -2163,7 +2175,7 @@ item.blast-compound.description = 폭탄과 폭발성 탄약에 사용되는 불
item.pyratite.description = 방화 무기와 연료를 연소하는 발전기에 사용되는 가연성이 매우 높은 물질입니다.
#Erekir
item.beryllium.description = 에르키아의 여러 종류의 건축물과 탄약에 사용됩니다.
item.beryllium.description = 에러키얼의 여러 종류의 건축물과 탄약에 사용됩니다.
item.tungsten.description = 드릴, 장갑 및 탄약에 사용됩니다. 보다 발전된 구조물을 건설하는 데 필요합니다.
item.oxide.description = 전력용 열전도체 및 절연체로 사용됩니다.
item.carbide.description = 첨단 구조물, 강력한 유닛 및 탄약에 사용됩니다.
+12
View File
@@ -101,6 +101,7 @@ coreattack = < Branduolys yra puolamas! >
nearpoint = [[ [scarlet]NEDELSDAMI PALIKITE IŠMETIMO ZONĄ[] ]\nneišvengiamas sunaikinimas
database = Branduolio duomenų dazė
database.button = Database
viewfields = View Content Fields
savegame = Išsaugoti žaidimą
loadgame = Užkrauti žaidimą
joingame = Įeiti į žaidimą
@@ -467,6 +468,14 @@ editor.rules = Taisyklės:
editor.generation = Generacija:
editor.objectives = Objectives
editor.locales = Locale Bundles
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = World Processors
editor.worldprocessors.editname = Edit Name
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Congratulations.\n\nThe enemy on {0} has been defeat
sectorlist = Sectors
sectorlist.attacked = {0} under attack
sectors.unexplored = [lightgray]Unexplored
sectors.attempts = Attempts:
sectors.resources = Resources:
sectors.production = Production:
sectors.export = Export:
@@ -1447,6 +1457,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Min Squad Size
rules.rtsmaxsquadsize = Max Squad Size
rules.rtsminattackweight = Min Attack Weight
+12
View File
@@ -101,6 +101,7 @@ coreattack = < Core wordt aangevallen! >
nearpoint = [[ [scarlet]VERLAAT DE LANDINGSZONE ONMIDDELIJK[] ]\nlevensgevaarlijk
database = Core Database
database.button = Database
viewfields = View Content Fields
savegame = Opslaan
loadgame = Laden
joingame = Treed toe
@@ -467,6 +468,14 @@ editor.rules = Regels:
editor.generation = Generatie:
editor.objectives = Doelen
editor.locales = Locale Bundles
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = World Processors
editor.worldprocessors.editname = Edit Name
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Gefeliciteerd.\n\nDe vijand op {0} is verslagen.\n[l
sectorlist = Sectoren
sectorlist.attacked = {0} onder vuur
sectors.unexplored = [lightgray]Onverkend
sectors.attempts = Attempts:
sectors.resources = Grondstoffen:
sectors.production = Productie:
sectors.export = Export:
@@ -1447,6 +1457,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Min Ploeg Grootte
rules.rtsmaxsquadsize = Max Ploeg Grootte
rules.rtsminattackweight = Min Aanvalsgewicht
@@ -101,6 +101,7 @@ coreattack = < Kern wordt aangevallen! >
nearpoint = [[ [scarlet]VERLAAT dit gebied onmiddelijk[] ]\nDirecte vernietiging...
database = Kern Database
database.button = Database
viewfields = View Content Fields
savegame = Opslaan
loadgame = Openen
joingame = Multiplayer
@@ -467,6 +468,14 @@ editor.rules = Rules:
editor.generation = Generation:
editor.objectives = Objectives
editor.locales = Locale Bundles
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = World Processors
editor.worldprocessors.editname = Edit Name
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Congratulations.\n\nThe enemy on {0} has been defeat
sectorlist = Sectors
sectorlist.attacked = {0} under attack
sectors.unexplored = [lightgray]Unexplored
sectors.attempts = Attempts:
sectors.resources = Resources:
sectors.production = Production:
sectors.export = Export:
@@ -1447,6 +1457,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Min Squad Size
rules.rtsmaxsquadsize = Max Squad Size
rules.rtsminattackweight = Min Attack Weight
+12
View File
@@ -101,6 +101,7 @@ coreattack = < Rdzeń jest atakowany! >
nearpoint = [[ [scarlet]NATYCHMIAST OPUŚĆ PUNKT ZRZUTU[] ]\nnadciąga zniszczenie
database = Centralna baza danych
database.button = Baza Danych
viewfields = View Content Fields
savegame = Zapisz Grę
loadgame = Wczytaj Grę
joingame = Dołącz Do Gry
@@ -467,6 +468,14 @@ editor.rules = Zasady:
editor.generation = Generacja:
editor.objectives = Cele
editor.locales = Pakiety regionalne
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = World Processors
editor.worldprocessors.editname = Edytuj nazwę
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Gratulacje.\n\nWróg na sektorze {0} został pokonan
sectorlist = Sektory
sectorlist.attacked = {0} atakowanych
sectors.unexplored = [lightgray]Niezbadane
sectors.attempts = Attempts:
sectors.resources = Zasoby:
sectors.production = Produkcja:
sectors.export = Eksport:
@@ -1447,6 +1457,8 @@ rules.buildaitier = Poziom Budowania AI
rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = Na mapach typu „atak” sprawia, że ​​jednostki grupują się i atakują bazy graczy w bardziej inteligentny sposób.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Minimalny Rozmiar Składu
rules.rtsmaxsquadsize = Maksymalny Rozmiar Składu
rules.rtsminattackweight = Minimalna Waga Ataku
@@ -101,6 +101,7 @@ coreattack = < O Núcleo está sob ataque! >
nearpoint = [[ [scarlet]SAIA DO PONTO DE QUEDA IMEDIATAMENTE[] ]\naniquilação iminente
database = Banco de Dados do Núcleo
database.button = Banco de Dados
viewfields = View Content Fields
savegame = Salvar Jogo
loadgame = Carregar Jogo
joingame = Juntar-se ao Jogo
@@ -467,6 +468,14 @@ editor.rules = Regras:
editor.generation = Geração:
editor.objectives = Objetivos:
editor.locales = Locale Bundles
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = World Processors
editor.worldprocessors.editname = Edit Name
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Parabéns.\n\nO inimigo em {0} foi derrotado.\n[ligh
sectorlist = Setores
sectorlist.attacked = {0} sob ataque
sectors.unexplored = [lightgray]Inexplorado
sectors.attempts = Attempts:
sectors.resources = Recursos:
sectors.production = Produção:
sectors.export = Exportar:
@@ -1447,6 +1457,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Tamanho mínimo do esquadrão
rules.rtsmaxsquadsize = Tamanho máximo do esquadrão
rules.rtsminattackweight = Peso Mínimo de Ataque
@@ -101,6 +101,7 @@ coreattack = < O núcleo está sobre ataque! >
nearpoint = [[ [scarlet]SAIA DO PONTO DE SPAWN IMEDIATAMENTE[] ]\nAniquilação iminente
database = Banco de Dados do núcleo
database.button = Banco de Dados
viewfields = View Content Fields
savegame = Salvar Jogo
loadgame = Carregar Jogo
joingame = Entrar no Jogo
@@ -467,6 +468,14 @@ editor.rules = Regras:
editor.generation = Geração:
editor.objectives = Objectivos
editor.locales = Pacotes Locais
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = Processadores Globais
editor.worldprocessors.editname = Mudar Nome
editor.worldprocessors.none = [lightgray]Nenhum bloco de processadr global encontrado!\nAdiciona um no Editor, ou usa o botão \ue813 Adicionar abaixo.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Parabéns.\n\nO Inimigo em {0} foi derrotado.\n[ligh
sectorlist = Setores
sectorlist.attacked = {0} sob ataque
sectors.unexplored = [lightgray]Não explorado
sectors.attempts = Attempts:
sectors.resources = Recursos:
sectors.production = Produção:
sectors.export = Exportar:
@@ -1447,6 +1457,8 @@ rules.buildaitier = Nível de Construtor IA
rules.rtsai = RTS AI [red](WIP)
rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Tamanho Mínimo de Esquadrão
rules.rtsmaxsquadsize = Tamanho Máximo de Esquadrão
rules.rtsminattackweight = Peso Mínimo de Ataque
+12
View File
@@ -101,6 +101,7 @@ coreattack = < Nucleul este atacat! >
nearpoint = [[ [scarlet]PLEACĂ DE LA PUNCTUL DE LANSARE IMEDIAT[] ]\nanihilare imminentă
database = Datele Nucleului
database.button = Bază de date
viewfields = View Content Fields
savegame = Salvează Jocul
loadgame = Încarcă Jocul
joingame = Intră în Joc
@@ -467,6 +468,14 @@ editor.rules = Reguli:
editor.generation = Generare:
editor.objectives = Objectives
editor.locales = Locale Bundles
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = World Processors
editor.worldprocessors.editname = Edit Name
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Congratulations.\n\nThe enemy on {0} has been defeat
sectorlist = Sectoare
sectorlist.attacked = {0} sunt atacate
sectors.unexplored = [lightgray]Neexplorat
sectors.attempts = Attempts:
sectors.resources = Resurse:
sectors.production = Producție:
sectors.export = Exportă:
@@ -1447,6 +1457,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Min Squad Size
rules.rtsmaxsquadsize = Max Squad Size
rules.rtsminattackweight = Min Attack Weight
+12
View File
@@ -101,6 +101,7 @@ coreattack = < Ядро находится под атакой! >
nearpoint = [[ [scarlet]ПОКИНЬТЕ ТОЧКУ ВЫСАДКИ НЕМЕДЛЕННО[] ]\nаннигиляция неизбежна
database = База данных ядра
database.button = База данных
viewfields = View Content Fields
savegame = Сохранить игру
loadgame = Загрузить игру
joingame = Сетевая игра
@@ -467,6 +468,14 @@ editor.rules = Правила:
editor.generation = Генерация:
editor.objectives = Цели
editor.locales = Наборы локалей
editor.patches.guide = Patch Guide
editor.patches = Патчи контента
editor.patch = Набор патчей: {0}
editor.patches.none = [lightgray]Ни одного набора патчей не загружено.
editor.patches.errors = Ошибки набора патчей
editor.patches.importerror = Не удалось импортировать набор патчей
editor.patches.delete.confirm = Вы уверены, что хотите удалить этот набор патчей?
editor.patch.fields = Параметров: {0}
editor.worldprocessors = Мировые процессоры
editor.worldprocessors.editname = Изменить название
editor.worldprocessors.none = [lightgray]Не найдено ни одного блока мирового процессора\nДобавьте его в редакторе карт или воспользуйтесь кнопкой "\ue813 Добавить" ниже.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Поздравляем.\n\nВражеская фра
sectorlist = Секторы
sectorlist.attacked = {0} под атакой
sectors.unexplored = [lightgray]Не исследовано
sectors.attempts = Попытка:
sectors.resources = Ресурсы:
sectors.production = Производит:
sectors.export = Экспорт:
@@ -1447,6 +1457,8 @@ rules.buildaitier = Уровень баз ИИ
rules.rtsai = ИИ в реальном времени
rules.rtsai.campaign = ИИ в реальном времени
rules.rtsai.campaign.info = В секторах атаки, враги будут собираться в отряды и действовать умнее.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Минимальный размер отряда
rules.rtsmaxsquadsize = Максимальный размер отряда
rules.rtsminattackweight = Минимальный вес для атаки
+12
View File
@@ -101,6 +101,7 @@ coreattack = < Jezgro je napadnuto! >
nearpoint = [[ [scarlet]NAPUSTI ZONU DOLASKA ODMAH[] ]\nauništenje je neizostavno
database = Baza Podataka
database.button = Baza Podataka
viewfields = View Content Fields
savegame = Snimi Igru
loadgame = Učitaj Igru
joingame = Priključi se na Igru
@@ -467,6 +468,14 @@ editor.rules = Pravila:
editor.generation = Generisanje:
editor.objectives = Zadaci
editor.locales = Locale Bundles
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = World Processors
editor.worldprocessors.editname = Edit Name
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Čestitam.\n\nNeprijatelj na {0} je poražen.\n[ligh
sectorlist = Sektori
sectorlist.attacked = {0} pod napadom
sectors.unexplored = [lightgray]Neistraženo
sectors.attempts = Attempts:
sectors.resources = Resursi:
sectors.production = Proizvodnja:
sectors.export = Izvoz:
@@ -1447,6 +1457,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI [red](Nedovršeno)
rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Minimalna Veličina Odreda
rules.rtsmaxsquadsize = Maksimalna Veličina Odreda
rules.rtsminattackweight = Minimalna Težina Napada
+12
View File
@@ -101,6 +101,7 @@ coreattack = < Kärnan är under attack! >
nearpoint = [[ [scarlet]LÄMNA DROPPZONEN OMEDELBART[] ]\nförintelse oundviklig
database = Kärndatabas
database.button = Databas
viewfields = View Content Fields
savegame = Spara Spel
loadgame = Importera Spel
joingame = Gå med i Spel
@@ -467,6 +468,14 @@ editor.rules = Regler:
editor.generation = Generering:
editor.objectives = Objectives
editor.locales = Locale Bundles
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = World Processors
editor.worldprocessors.editname = Edit Name
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Congratulations.\n\nThe enemy on {0} has been defeat
sectorlist = Sectors
sectorlist.attacked = {0} under attack
sectors.unexplored = [lightgray]Oupptäckt
sectors.attempts = Attempts:
sectors.resources = Resurser:
sectors.production = Produktion:
sectors.export = Export:
@@ -1447,6 +1457,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Min Squad Size
rules.rtsmaxsquadsize = Max Squad Size
rules.rtsminattackweight = Min Attack Weight
+12
View File
@@ -101,6 +101,7 @@ coreattack = < แกนกลางถูกโจมตี! >
nearpoint = [[ [scarlet]ออกจากจุดเกิดด่วน![] ]\nการทำลายล้างกำลังใกล้เข้ามา
database = ฐานข้อมูลแกนกลาง
database.button = ฐานข้อมูล
viewfields = View Content Fields
savegame = เซฟเกม
loadgame = โหลดเกม
joingame = เข้าร่วมเกม
@@ -467,6 +468,14 @@ editor.rules = กฎ
editor.generation = เจนเนอเรชั่น
editor.objectives = เป้าหมาย
editor.locales = ชุดภาษาท้องถิ่น
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = ตัวประมวลผลโลก
editor.worldprocessors.editname = แก้ไขชื่อ
editor.worldprocessors.none = [lightgray]ไม่พบตัวประมวลผลโลกในแมพ!\nสามารถไปเพิ่มในตัวแก้ไขแมพ หรือกดปุ่ม \ue813 เพิ่ม ด้านล่าง
@@ -791,6 +800,7 @@ campaign.complete = [accent]ยินดีด้วย\n\nศัตรูบน
sectorlist = เซ็กเตอร์
sectorlist.attacked = {0} ถูกโจมตึ
sectors.unexplored = [lightgray]ยังไม่ได้สำรวจ
sectors.attempts = Attempts:
sectors.resources = ทรัพยากร:
sectors.production = การผลิต:
sectors.export = การส่งออก:
@@ -1447,6 +1457,8 @@ rules.buildaitier = ระดับการสร้างของ AI
rules.rtsai = RTS AI [red](ไม่เสถียร)
rules.rtsai.campaign = AI โจมตีแบบ RTS
rules.rtsai.campaign.info = ในแมพโจมตี จะทำให้ยูนิตรวมตัวกันและจู่โจมฐานทัพของผู้เล่นในวิถีการคำนวณที่ฉลาดมากกว่า
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = ขนาดกองทัพเล็กที่สุด
rules.rtsmaxsquadsize = ขนาดกองทัพใหญ่ที่สุด
rules.rtsminattackweight = ขนาดน้ำหนักการโจมตีน้อยที่สุด
+12
View File
@@ -101,6 +101,7 @@ coreattack = < Cekirdek Saldiri altinda! >
nearpoint = [[ [scarlet]LEAVE DROP POINT IMMEDIATELY[] ]\nannihilation imminent
database = Core Database
database.button = Database
viewfields = View Content Fields
savegame = Oyunu kaydet
loadgame = Devam et
joingame = Oyuna katil
@@ -467,6 +468,14 @@ editor.rules = Rules:
editor.generation = Generation:
editor.objectives = Objectives
editor.locales = Locale Bundles
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = World Processors
editor.worldprocessors.editname = Edit Name
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Congratulations.\n\nThe enemy on {0} has been defeat
sectorlist = Sectors
sectorlist.attacked = {0} under attack
sectors.unexplored = [lightgray]Unexplored
sectors.attempts = Attempts:
sectors.resources = Resources:
sectors.production = Production:
sectors.export = Export:
@@ -1447,6 +1457,8 @@ rules.buildaitier = Builder AI Tier
rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Min Squad Size
rules.rtsmaxsquadsize = Max Squad Size
rules.rtsminattackweight = Min Attack Weight
+12
View File
@@ -101,6 +101,7 @@ coreattack = < Merkez saldırı altında! >
nearpoint = [[ [scarlet]İNİŞ PİSTİNDEN AYRIL[] ]\nimha tehlikesi
database = Merkez Veritabanı
database.button = Veritabanı
viewfields = View Content Fields
savegame = Oyunu Kaydet
loadgame = Oyunu Yükle
joingame = Oyuna Katıl
@@ -467,6 +468,14 @@ editor.rules = Kurallar:
editor.generation = Oluşum:
editor.objectives = Görevler:
editor.locales = Dil Paketleri
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = Evrensel İşlemciler
editor.worldprocessors.editname = Adı Düzenle
editor.worldprocessors.none = [lightgray]Evrensel İşlemci bloğu bulunamadı!\nHarita düzenleyicisinden ekleyin veya aşağıdaki \ue813 Ekle butonunu kullanın.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Tebrikler!.\n\n{0} üzerinde bulunan düşman bozgun
sectorlist = Sektörler
sectorlist.attacked = {0} saldırı altında
sectors.unexplored = [lightgray]Keşfedilmemiş
sectors.attempts = Attempts:
sectors.resources = Kaynaklar:
sectors.production = Üretim:
sectors.export = İhracat:
@@ -1447,6 +1457,8 @@ rules.buildaitier = İnşaatçı YZ sınıfı
rules.rtsai = RTS YZ
rules.rtsai.campaign = RTS Saldırı YZ
rules.rtsai.campaign.info = Saldırı Haritalarında, yapay zekayı daha 'zeki' yapar.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Asgari Gurup Boyutu
rules.rtsmaxsquadsize = Azami Gurup Boyutu
rules.rtsminattackweight = Asgari Saldırı Boyutu
@@ -101,6 +101,7 @@ coreattack = < Ядро перебуває під атакою! >
nearpoint = [[ [scarlet]ЗАЛИШТЕ ЗОНУ ВИСАДКИ НЕГАЙНО[] ]\nанігіляція неминуча
database = База даних ядра
database.button = База даних
viewfields = View Content Fields
savegame = Зберегти гру
loadgame = Завантажити гру
joingame = Багатоосібна гра
@@ -467,6 +468,14 @@ editor.rules = Правила
editor.generation = Генерація
editor.objectives = Завдання
editor.locales = Мовні пакети
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = Світові процесори
editor.worldprocessors.editname = Редагувати назву
editor.worldprocessors.none = [lightgray]Блоки світового процесора не знайдено!\nДодайте його у редакторі мапи або скористайтеся кнопкою \ue813 «Додати» нижче.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Вітаємо.\n\nВорога на {0} розгр
sectorlist = Сектори
sectorlist.attacked = {0} під атакою
sectors.unexplored = [lightgray]Не досліджено
sectors.attempts = Attempts:
sectors.resources = Ресурси:
sectors.production = Виробництво:
sectors.export = Експортування:
@@ -1447,6 +1457,8 @@ rules.buildaitier = Рівень ШІ-будівельника
rules.rtsai = ШІ зі стратегій реального часу
rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = Мінімальний розмір загону
rules.rtsmaxsquadsize = Максимальний розмір загону
rules.rtsminattackweight = Мінімальна ударна вага
+38 -26
View File
@@ -101,6 +101,7 @@ coreattack = < Lõi đang bị tấn công! >
nearpoint = [[ [scarlet]RỜI KHỎI ĐIỂM ĐÁP NGAY LẬP TỨC[] ]\nsự hủy diệt sắp xảy ra
database = Cơ sở dữ liệu cốt lõi
database.button = Cơ sở dữ liệu
viewfields = Xem Các Trường Nội Dung
savegame = Lưu trò chơi
loadgame = Tải lại màn chơi
joingame = Tham gia trò chơi
@@ -376,14 +377,14 @@ command.loadUnits = Nhận Đơn vị
command.loadBlocks = Nhận Khối công trình
command.unloadPayload = Dỡ Khối hàng
command.loopPayload = Lặp vận chuyển đơn vị
stance.stop = Hủy Mệnh lệnh
stance.shoot = Tư thế: Bắn
stance.holdfire = Tư thế: Ngừng bắn
stance.pursuetarget = Tư thế: Bám đuổi Mục tiêu
stance.patrol = Tư thế: Đường tuần tra
stance.ram = Tư thế: Tông thẳng\n[lightgray]Đi theo đường thẳng, không tìm đường
stance.mineauto = Khai thác tự động
stance.mine = Vật phẩm khai thác: {0}
stance.stop = Hủy Mệnh Lệnh
stance.shoot = Thế Trận: Bắn
stance.holdfire = Thế Trận: Ngừng Bắn
stance.pursuetarget = Thế Trận: Bám Đuổi Mục Tiêu
stance.patrol = Thế Trận: Đường Tuần Tra
stance.ram = Thế Trận: Tông Thẳng\n[lightgray]Đi theo đường thẳng, không tìm đường
stance.mineauto = Tự Động Khai Khoáng
stance.mine = Vật Phẩm Khai Khoáng: {0}
openlink = Mở liên kết
copylink = Sao chép liên kết
back = Quay lại
@@ -448,9 +449,9 @@ publish.confirm = Bạn có chắc chắn muốn xuất bản không?\n\n[lightg
publish.error = Lỗi khi xuất bản mục: {0}
steam.error = Không thể khởi chạy dịch vụ Steam.\nLỗi: {0}
editor.showblocks = Show Blocks
editor.showterrain = Show Terrain
editor.showfloor = Show Floor
editor.showblocks = Hiện Khối
editor.showterrain = Hiện Địa Hình
editor.showfloor = Hiện Nền
editor.planet = Hành tinh:
editor.sector = Phân khu:
editor.seed = Mầm:
@@ -467,6 +468,14 @@ editor.rules = Quy tắc
editor.generation = Tạo ra
editor.objectives = Mục tiêu nhiệm vụ
editor.locales = Gói ngôn ngữ
editor.patches.guide = Hướng Dẫn Bản Vá
editor.patches = Bản Vá Nội Dung
editor.patch = Bộ vá: {0}
editor.patches.none = [lightgray]Không có bản vá nào được nạp.
editor.patches.errors = Lỗi Bộ Vá
editor.patches.importerror = Nhập bộ vá thất bại
editor.patches.delete.confirm = Bạn có chắc chắn muốn xóa bộ vá này không?
editor.patch.fields = {0} trường
editor.worldprocessors = Các bộ xử lý thế giới
editor.worldprocessors.editname = Sửa tên
editor.worldprocessors.none = [lightgray]không tìm thấy khối bộ xử lý thế giới nào!\nThêm một bộ trong trình chỉnh sửa bản đồ, hoặc dùng nút \ue813 Thêm ở dưới.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Chúc mừng.\n\nKẻ địch trên {0} đã bị đ
sectorlist = Phân khu
sectorlist.attacked = {0} đang bị tấn công
sectors.unexplored = [lightgray]Chưa được khám phá
sectors.attempts = Số lần tham chiến:
sectors.resources = Tài nguyên:
sectors.production = Sản lượng:
sectors.export = Xuất:
@@ -958,7 +968,7 @@ status.freezing.name = Đóng băng
status.wet.name = Ẩm ướt
status.muddy.name = Sa lầy
status.melting.name = Tan chảy
status.sapped.name = Ăn mòn
status.sapped.name = Suy yếu
status.electrified.name = Nhiễm điện
status.spore-slowed.name = Nhiễm bào tử chậm
status.tarred.name = Nhiễm dầu
@@ -966,7 +976,7 @@ status.overdrive.name = Tăng tốc
status.overclock.name = Ép xung
status.shocked.name = Sốc
status.blasted.name = Nổ
status.corroded.name = Corroded
status.corroded.name = Ăn mòn
status.unmoving.name = Bất động
status.boss.name = Trùm
@@ -1014,10 +1024,10 @@ stat.opposites = Đối nghịch
stat.powercapacity = Dung lượng điện
stat.powershot = Năng lượng/Phát bắn
stat.damage = Sát thương
stat.frequency = Frequency
stat.frequency = Tần suất
stat.targetsair = Mục tiêu trên không
stat.targetsground = Mục tiêu mặt đất
stat.crushdamage = Crush Damage
stat.crushdamage = Sát thương nghiền nát
stat.itemsmoved = Tốc độ dịch chuyển
stat.launchtime = Thời gian giữa các lần phóng
stat.shootrange = Phạm vi
@@ -1102,7 +1112,7 @@ ability.movelightning.description = Giải phóng tia điện khi di chuyển
ability.armorplate = Mảnh giáp
ability.armorplate.description = Giảm sát thương gánh chịu trong khi bắn
ability.shieldarc = Khiên vòng cung
ability.shieldarc.description = Phát một khiên trường lực vòng cung hấp thụ các loại đạn
ability.shieldarc.description = Phát một khiên trường lực vòng cung hấp thụ hoặc làm chệch hướng các loại đạn, tên lửa và đơn vị
ability.suppressionfield = Ngăn chặn sửa chữa
ability.suppressionfield.description = Dừng các công trình sửa chữa gần đó
ability.energyfield = Trường điện từ
@@ -1122,7 +1132,7 @@ ability.stat.regen = [stat]{0}[lightgray] độ bền/giây
ability.stat.pulseregen = [stat]{0}[lightgray] độ bền/xung nhịp
ability.stat.shield = [stat]{0}[lightgray] khiên tối đa
ability.stat.repairspeed = [stat]{0}/giây[lightgray] tốc độ sửa chữa
ability.stat.deflectchance = [stat]{0}%[lightgray] deflect chance
ability.stat.deflectchance = [stat]{0}%[lightgray] cơ hội làm chệch hướng
ability.stat.slurpheal = [stat]{0}[lightgray] độ bền/đơn vị chất lỏng
ability.stat.cooldown = [stat]{0} giây[lightgray] hồi phục
ability.stat.maxtargets = [stat]{0}[lightgray] mục tiêu tối đa
@@ -1334,11 +1344,11 @@ keybind.command_queue.name = Lệnh tuần tự đơn vị
keybind.create_control_group.name = Tạo nhóm điều khiển
keybind.cancel_orders.name = Hủy lệnh
keybind.unit_stance_shoot.name = Tư thế đơn vị: Bắn
keybind.unit_stance_hold_fire.name = Tư thế đơn vị: Ngừng bắn
keybind.unit_stance_pursue_target.name = Tư thế đơn vị: Bám đuổi mục tiêu
keybind.unit_stance_patrol.name = Tư thế đơn vị: Tuần tra
keybind.unit_stance_ram.name = Tư thế đơn vị: Tông thẳng
keybind.unit_stance_shoot.name = Thế Trận Đơn Vị: Bắn
keybind.unit_stance_hold_fire.name = Thế Trận Đơn Vị: Ngừng Bắn
keybind.unit_stance_pursue_target.name = Thế Trận Đơn Vị: Bám Đuổi Mục Tiêu
keybind.unit_stance_patrol.name = Thế Trận Đơn Vị: Tuần Tra
keybind.unit_stance_ram.name = Thế Trận Đơn Vị: Tông Thẳng
keybind.unit_command_move.name = Mệnh lệnh đơn vị: Di chuyển
keybind.unit_command_repair.name = Mệnh lệnh đơn vị: Sửa chữa
@@ -1447,6 +1457,8 @@ rules.buildaitier = Cấp Độ AI Xây Dựng
rules.rtsai = AI Chiến Thuật
rules.rtsai.campaign = AI chiến thuật tấn công
rules.rtsai.campaign.info = Trong bản đồ kiểu tấn công, làm các đơn vị tập hợp nhóm và tấn công căn cứ người chơi theo phương pháp thông minh hơn.
rules.clearsectoronloss = Dọn Sạch Phân Khu Khi Mất
rules.clearsectoronloss.info = Khi khu vực đó bị mất, các công trình của người chơi từ lần thử trước sẽ không được chuyển sang theo.
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
@@ -1670,7 +1682,7 @@ block.snow.name = Tuyết
block.crater-stone.name = Đá miệng núi lửa
block.sand-water.name = Nước cát
block.darksand-water.name = Nước cát đen
block.char.name = Than
block.char.name = Đá cháy đen
block.dacite.name = Đá Dacit
block.rhyolite.name = Đá Ryolit
block.dacite-wall.name = Tường Dacit
@@ -2479,9 +2491,9 @@ unit.navanax.description = Bắn tia xung điện từ (EMP) nổ, gây thiệt
#Erekir
unit.stell.description = Bắn các viên đạn tiêu chuẩn vào các mục tiêu kẻ địch.
unit.locus.description = Bắn các viên đạn xen kẽ vào các mục tiêu kẻ địch.
unit.precept.description = Bắn các viên đạn phân cụm xuyên thấu vào các mục tiêu kẻ địch.
unit.vanquish.description = Bắn các viên đạn phân chia xuyên thấu lớn vào các mục tiêu kẻ địch.
unit.conquer.description = Bắn các viên đạn xếp tầng xuyên thấu vào các mục tiêu kẻ địch.
unit.precept.description = Bắn các viên đạn phân cụm xuyên thấu vào các mục tiêu kẻ địch. Ít bị ảnh hưởng bởi địa hình gây hại.
unit.vanquish.description = Bắn các viên đạn phân chia xuyên thấu lớn vào các mục tiêu kẻ địch. Ít bị ảnh hưởng bởi địa hình gây hại.
unit.conquer.description = Bắn các viên đạn xếp tầng xuyên thấu vào các mục tiêu kẻ địch. Ít bị ảnh hưởng bởi địa hình gây hại.
unit.merui.description = Bắn pháo tầm xa vào các mục tiêu kẻ địch trên mặt đất. Có thể đi qua hầu hết loại địa hình.
unit.cleroi.description = Bắn trái phá kép vào các mục tiêu kẻ địch. Nhắm vào viên đạn kẻ địch với các tháp súng phòng thủ mũi nhọn. Có thể đi qua hầu hết loại địa hình.
unit.anthicus.description = Bắn tên lửa dẫn đường tầm xa vào các mục tiêu kẻ địch. Có thể đi qua hầu hết loại địa hình.
+53 -41
View File
@@ -101,6 +101,7 @@ coreattack = < 核心正在遭受攻击! >
nearpoint = [[ [scarlet]立即离开敌人出生点[] ]\n摧毁在即
database = 核心数据库
database.button = 数据库
viewfields = View Content Fields
savegame = 保存游戏
loadgame = 载入游戏
joingame = 加入游戏
@@ -351,9 +352,9 @@ save.wave = 波次 {0}
save.mode = 游戏模式:{0}
save.date = 最后保存时间:{0}
save.playtime = 游戏时长:{0}
dontshowagain = Don't show again
warn.32bit.title = 32-bit Deprecation Warning
warn.32bit = You are using a [red]32-bit[] version of Mindustry.\nAs newer Java versions have dropped 32-bit Windows support, [red]32-bit support will be discontinued in the future[].\n\nPlease upgrade to a 64-bit machine, and make sure you have the 64-bit version of Mindustry downloaded.\n\nIf you are running Mindustry as a JAR file, make sure you are using 64-bit Java.
dontshowagain = 不再显示
warn.32bit.title = 32位架构弃用警告
warn.32bit = 你正在游玩[red]32位[]版本的Mindustry。\nJava在新版本中弃用了对32位Windows的支持,[red]因此将在未来终止支持32位架构[]。\n\n请使用64位平台游玩,并且确保你下载的是64位的Mindustry。\n\n如果你通过运行JAR文件玩Mindustry,确保使用的是64位的Java。
warning = 警告!
confirm = 确认
delete = 删除
@@ -448,9 +449,9 @@ publish.confirm = 确定发布?\n\n[lightgray]请确认你同意创意工坊
publish.error = 发布项目时出错:{0}
steam.error = 初始化 Steam 服务失败。\n错误:{0}
editor.showblocks = Show Blocks
editor.showterrain = Show Terrain
editor.showfloor = Show Floor
editor.showblocks = 显示建筑
editor.showterrain = 显示墙体
editor.showfloor = 显示地板
editor.planet = 星球:
editor.sector = 区块:
editor.seed = 种子:
@@ -467,6 +468,14 @@ editor.rules = 规则
editor.generation = 生成
editor.objectives = 目标
editor.locales = 本地化语言包
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = 世界处理器
editor.worldprocessors.editname = 命名
editor.worldprocessors.none = [lightgray]未找到世界处理器!\n请在地图编辑器中添加或使用下方的 \ue813 添加按钮。
@@ -791,6 +800,7 @@ campaign.complete = [accent]恭喜!\n\n{0}上的敌人已被击败。\n[lightg
sectorlist = 区块列表
sectorlist.attacked = {0} 正在遭受攻击
sectors.unexplored = [lightgray]未探索
sectors.attempts = 尝试次数:
sectors.resources = 资源:
sectors.production = 产出:
sectors.export = 输出:
@@ -879,7 +889,7 @@ sector.seaPort.name = 边海港口
sector.weatheredChannels.name = 风化海峡
sector.mycelialBastion.name = 菌丝堡垒
sector.frontier.name = 边陲哨站
sector.sunkenPier.name = Sunken Pier
sector.sunkenPier.name = 沉没码头
sector.cruxscape.name = 赤色总部
sector.geothermalStronghold.name = 熔石要塞
@@ -966,7 +976,7 @@ status.overdrive.name = 过载
status.overclock.name = 超频
status.shocked.name = 电击
status.blasted.name = 爆炸
status.corroded.name = Corroded
status.corroded.name = 腐蚀
status.unmoving.name = 静止
status.boss.name = Boss
@@ -1014,10 +1024,10 @@ stat.opposites = 互斥
stat.powercapacity = 电力容量
stat.powershot = 电力/发
stat.damage = 伤害
stat.frequency = Frequency
stat.frequency = 频率
stat.targetsair = 攻击空中单位
stat.targetsground = 攻击地面单位
stat.crushdamage = Crush Damage
stat.crushdamage = 碾压伤害
stat.itemsmoved = 移动速度
stat.launchtime = 发射间隔
stat.shootrange = 范围
@@ -1122,7 +1132,7 @@ ability.stat.regen = [stat]{0}/秒[lightgray] 生命恢复速度
ability.stat.pulseregen = [stat]{0}[lightgray] 回盾/每次
ability.stat.shield = [stat]{0}[lightgray] 护盾
ability.stat.repairspeed = [stat]{0}/秒[lightgray] 修复速度
ability.stat.deflectchance = [stat]{0}%[lightgray] deflect chance
ability.stat.deflectchance = [stat]{0}%[lightgray] 反弹概率
ability.stat.slurpheal = [stat]{0}[lightgray] 生命/液体单位
ability.stat.cooldown = [stat]{0} 秒[lightgray] 冷却时间
ability.stat.maxtargets = [stat]{0}[lightgray] 最大目标数
@@ -1345,7 +1355,7 @@ keybind.unit_command_repair.name = 单位命令:修复
keybind.unit_command_rebuild.name = 单位命令:重建
keybind.unit_command_assist.name = 单位命令:协助建造
keybind.unit_command_mine.name = 单位命令:采矿
keybind.unit_command_boost.name = 单位命令单位命令:助推
keybind.unit_command_boost.name = 单位命令:助推
keybind.unit_command_load_units.name = 单位命令:拾取单位
keybind.unit_command_load_blocks.name = 单位命令:拾取建筑
keybind.unit_command_unload_payload.name = 单位命令:卸载载荷
@@ -1447,6 +1457,8 @@ rules.buildaitier = AI 建造等级
rules.rtsai = RTS AI
rules.rtsai.campaign = RTS 进攻 AI
rules.rtsai.campaign.info = 让敌方单位更智能地组队攻击玩家基地。
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = 最小部队规模
rules.rtsmaxsquadsize = 最大部队规模
rules.rtsminattackweight = 最低进攻强度
@@ -1705,16 +1717,16 @@ block.metal-tiles-9.name = 金属地基 9
block.metal-tiles-10.name = 金属地基 10
block.metal-tiles-11.name = 金属地基 11
block.metal-tiles-12.name = 金属地基 12
block.metal-tiles-13.name = Metal Tiles 13
block.metal-wall-1.name = Metal Wall 1
block.metal-wall-2.name = Metal Wall 2
block.metal-wall-3.name = Metal Wall 3
block.metal-tiles-13.name = 金属地基 13
block.metal-wall-1.name = 金属墙 1
block.metal-wall-2.name = 金属墙 2
block.metal-wall-3.name = 金属墙 3
block.colored-floor.name = 染色地板
block.colored-wall.name = 染色墙壁
block.character-overlay.name = 标识贴片
block.character-overlay-white.name = 标识贴片 (白色)
block.rune-overlay.name = Rune Overlay
block.rune-overlay-crux.name = Rune Overlay (Crux)
block.rune-overlay.name = 符文贴片
block.rune-overlay-crux.name = 符文贴片 (红队)
block.dark-panel-1.name = 暗面板 1
block.dark-panel-2.name = 暗面板 2
block.dark-panel-3.name = 暗面板 3
@@ -2530,7 +2542,7 @@ lst.explosion = 在某个位置生成爆炸。
lst.setrate = 在指令/时间刻的时间下设置处理器处理速度。
lst.fetch = 按索引查找单位、核心、玩家或建筑物\n索引从 0 开始,以其返回的计数结束。
lst.packcolor = 将 RGBA 各分量(0-1 范围)打包为单个整数,用于绘图或逻辑规则。
lst.unpackcolor = 从打包后的颜色值中解出 RGBA 分量。
lst.unpackcolor = 从使用[accent]Pack Color[]打包的颜色值中解压 RGBA 组件。
lst.setrule = 设置地图规则。
lst.flushmessage = 在屏幕中央投影文字缓存区的内容\n会等待上一个文字显示结束。
lst.cutscene = 控制玩家游戏视角。
@@ -2642,7 +2654,7 @@ lenum.always = 无条件跳转
lenum.idiv = 整数除法,返回不带小数的商
lenum.div = 除法,除以 0 时返回 [accent]null[]
lenum.mod = 求除法的余数
lenum.emod = 取模,结果总是正数
lenum.emod = 标准取模,结果符号取决于除数。
lenum.equal = 相等。转换参数类型后进行比较\n与数字进行比较时,null 转换为 0 ,非 null 对象转换为 1
lenum.notequal = 不相等。转换参数类型后进行比较
lenum.strictequal = 严格相等。不转换参数类型\n可用于准确检查 [accent]null[] 对象
@@ -2689,7 +2701,7 @@ lenum.player = 玩家控制的单位
lenum.ore = 矿脉
lenum.damaged = 受损的己方建筑
lenum.spawn = 敌人出生点\n可以是核心或者某个坐标
lenum.building = 某个分类下的建筑
lenum.building = 建筑
lenum.core = 核心
lenum.storage = 仓储建筑(容器/仓库)
@@ -2730,7 +2742,7 @@ unitlocate.group = 所搜寻的建筑分类
playsound.limit = 如果为真,则阻止该声音在同一帧内重复播放。
lenum.idle = 原地不动,但继续进行手上的采矿/建造动作\n单位的默认状态
lenum.stop = 停止移动/采矿/建造动作
lenum.stop = 停止
lenum.unbind = 停用单位的逻辑控制\n恢复常规 AI
lenum.move = 移动到某个位置
lenum.approach = 靠近某个位置至一定的距离内
@@ -2743,17 +2755,17 @@ lenum.itemtake = 从建筑中取出某种物品
lenum.paydrop = 卸下当前载荷
lenum.paytake = 从当前位置拾取载荷
lenum.payenter = 进入/降落到单位下方的荷载方块中
lenum.flag = 给单位赋予数字形式的标记
lenum.flag = 赋予单位数字形式的标记
lenum.mine = 从某个位置采集矿物
lenum.build = 建造建筑
lenum.getblock = 根据坐标获取建筑物、环境块和环境墙体类型。\n单位必须在位置范围内,否则返回空值。
lenum.within = 检查单位是否接近了某个位置
lenum.boost = 开始/停止助推
lenum.flushtext = 如果适用的话,将打印缓冲区的内容刷新到标记。\n如果 fetch 设置为 true,则尝试从地图本地化包或游戏的包中获取属性。
lenum.texture = 直接来自游戏纹理图集的纹理名称(使用 kebab-case 命名风格)。\n如果 printFlush 设置为 true,则将文本缓冲区内容作为文本参数消耗。
lenum.flushtext = 如果适用,将打印缓冲区的内容刷新到标记。\n如果[accent]Fetch[]设置为 true,则尝试从地图本地化包或游戏的包中获取属性。
lenum.texture = 直接来自游戏纹理图集的纹理名称(使用 kebab-case 命名风格)。\n如果[accent]Print Flush[]设置为 true,则将文本缓冲区内容作为文本参数消耗。
lenum.texturesize = 纹理的大小(格)。零值将标记宽度缩放为原始纹理的大小。
lenum.autoscale = 是否根据玩家的缩放级别缩放标记。
lenum.autoscale = 标记是否根据玩家屏幕的缩放级别缩放
lenum.posi = 索引位置,用于线和四边形标记,索引零表示第一个位置。
lenum.uvi = 纹理的位置范围从零到一,用于四边形标记。
lenum.colori = 索引位置,用于线和四边形标记,索引零表示第一个颜色。
@@ -2763,24 +2775,24 @@ lenum.wave = 当前波数,可以是非波次模式下的任何值
lenum.currentwavetime = 波次倒计时(以 tick 为单位)
lenum.waves = 波次是否可以生成
lenum.wavesending = 是否可以通过播放按钮手动生成波次
lenum.attackmode = 确定游戏模式是否为攻击模式
lenum.wavespacing = 波次之间的时间(以 tick 为单位)
lenum.enemycorebuildradius = 敌人核心半径周围无建筑区
lenum.dropzoneradius = 敌人出生点周围的半径
lenum.attackmode = 游戏是否为进攻模式
lenum.wavespacing = 波次之间的时间间隔(以 tick 为单位)
lenum.enemycorebuildradius = 敌人核心禁建范围半径
lenum.dropzoneradius = 敌人出生点范围半径
lenum.unitcap = 基本单位上限。但仍然可以通过方块增加
lenum.lighting = 是否启用环境光
lenum.buildspeed = 建筑速度倍率
lenum.buildspeed = 建造速度倍率
lenum.unithealth = 单位受伤减免,计算方式是伤害除以减免值
lenum.unitbuildspeed = 单元工厂建造单元的速度
lenum.unitcost = 单位建设所需资源的倍率
lenum.unitdamage = 单位造成多少伤害
lenum.blockhealth = 建筑初始拥有的生命值
lenum.blockdamage = 炮塔伤害
lenum.unitbuildspeed = 单位工厂建造单位的速度
lenum.unitcost = 建造单位所需资源的倍率
lenum.unitdamage = 单位伤害倍率
lenum.blockhealth = 建筑初始生命值倍率
lenum.blockdamage = 建筑伤害倍率
lenum.rtsminweight = 部队发动攻击所需的最小“优势”。数值越高,越谨慎。
lenum.rtsminsquad = 攻击小队的最小规模
lenum.maparea = 设置区域范围
lenum.ambientlight = 环境光颜色,启用照明时使用
lenum.solarmultiplier = 太阳能电池板的功率输出倍率
lenum.maparea = 设置地图大小和有效范围
lenum.ambientlight = 环境光颜色,可搭配[accent]Pack Color[]使用
lenum.solarmultiplier = 太阳能电池板的发电倍率
lenum.dragmultiplier = 环境阻力乘数
lenum.ban = 无法被放置或者建造的建筑或单位
lenum.unban = 解禁一个单位或建筑
lenum.ban = 禁用指定内容
lenum.unban = 解禁指定内容
@@ -101,6 +101,7 @@ coreattack = 〈核心正在受到攻擊!〉
nearpoint = 【[scarlet]立即離開空降區[]】\n湮滅即將來臨
database = 核心資料庫
database.button = 資料庫
viewfields = View Content Fields
savegame = 儲存遊戲
loadgame = 載入遊戲
joingame = 多人連線
@@ -467,6 +468,14 @@ editor.rules = 規則:
editor.generation = 自動生成:
editor.objectives = 目標
editor.locales = Locale Bundles
editor.patches.guide = Patch Guide
editor.patches = Content Patches
editor.patch = Patchset: {0}
editor.patches.none = [lightgray]No patchsets loaded.
editor.patches.errors = Patchset Errors
editor.patches.importerror = Failed to import patchset
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
editor.patch.fields = {0} fields
editor.worldprocessors = World Processors
editor.worldprocessors.editname = Edit Name
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
@@ -791,6 +800,7 @@ campaign.complete = [accent]Congratulations.\n\nThe enemy on {0} has been defeat
sectorlist = 地區
sectorlist.attacked = {0} 遭受攻擊
sectors.unexplored = [lightgray]未探索
sectors.attempts = Attempts:
sectors.resources = 資源:
sectors.production = 生產:
sectors.export = 輸出:
@@ -1447,6 +1457,8 @@ rules.buildaitier = 建築者 AI 等級
rules.rtsai = RTS AI
rules.rtsai.campaign = RTS Attack AI
rules.rtsai.campaign.info = In attack maps, makes units group up and attack player bases in a more intelligent manner.
rules.clearsectoronloss = Clear Sector On Loss
rules.clearsectoronloss.info = When the sector is lost, player buildings from the previous attempt will not carry over.
rules.rtsminsquadsize = 最小隊伍規模
rules.rtsmaxsquadsize = 最大隊伍規模
rules.rtsminattackweight = 最小攻擊力
+2 -1
View File
@@ -1,3 +1,4 @@
redloong9527
Prosta4okua
Felix Corvus
Vanguard
@@ -184,4 +185,4 @@ ITY
Iniquit
DSFdsfWxp
Someone's Shadow
buj
buj
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+2 -2
View File
@@ -29,10 +29,10 @@ void main(){
specular = vec3(1.0 * pow(specularFactor, 40.0)) * albedo;
}
vec3 norc = (u_ambientColor + specular) * (diffuse + vec3(clamp((dot(a_normal, u_lightdir) + 1.0) / 2.0, 0.0, 1.0)));
vec3 norc = (u_ambientColor + specular) * (diffuse + vec3(clamp((dot(a_normal, u_lightdir) + 1.0) / 2.0, 0.0, 1.0)));
float emissive = a_emissive.a * u_emissive * min(pow(max(0.0, (1.0 - norc.r) * 1.2), 3.0), 1.1);
v_col = vec4(mix(a_color.rgb, a_emissive.rgb, emissive), 1.0) * vec4(mix(norc, vec3(1.0), emissive), 1.0);
v_col = vec4(mix(a_color.rgb, a_emissive.rgb, emissive), 1.0) * vec4(mix(norc, vec3(1.0), emissive), 1.0);
gl_Position = u_proj * u_trans * a_position;
}
+2 -2
View File
@@ -8,6 +8,6 @@ uniform mat4 u_trans;
varying vec4 v_col;
void main(){
v_col = a_color;
gl_Position = u_proj * u_trans * a_position;
v_col = a_color;
gl_Position = u_proj * u_trans * a_position;
}
+13
View File
@@ -0,0 +1,13 @@
attribute vec4 a_position;
attribute vec3 a_normal;
uniform mat4 u_proj;
uniform mat4 u_trans;
uniform vec4 u_color;
varying vec4 v_col;
void main(){
v_col = vec4(1.0);
gl_Position = u_proj * u_trans * a_position;
}
+1 -1
View File
@@ -214,7 +214,7 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform
public void update(){
PerfCounter.update.begin();
int targetfps = Core.settings.getInt("fpscap", 120);
int targetfps = ios ? 0 : Core.settings.getInt("fpscap", 120);
boolean changed = lastTargetFps != targetfps && lastTargetFps != -1;
boolean limitFps = targetfps > 0 && targetfps <= 240;
+2
View File
@@ -79,6 +79,8 @@ public class Vars implements Loadable{
public static final String discordURL = "https://discord.gg/mindustry";
/** Link to the wiki's modding guide.*/
public static final String modGuideURL = "https://mindustrygame.github.io/wiki/modding/1-modding/";
/** Link to the wiki's patch guide.*/
public static final String patchesGuideURL = "https://mindustrygame.github.io/wiki/contentpatches/";
/** URLs to the JSON file containing all the BE servers. Only queried in BE. */
public static final String[] serverJsonBeURLs = {"https://raw.githubusercontent.com/Anuken/MindustryServerList/master/servers_be.json", "https://cdn.jsdelivr.net/gh/anuken/mindustryserverlist/servers_be.json"};
/** URLs to the JSON file containing all the stable servers. */
+1 -1
View File
@@ -89,7 +89,7 @@ public class UnitCommand extends MappableContent{
drawTarget = true;
resetTarget = false;
}};
enterPayloadCommand = new UnitCommand("enterPayload", "downOpen", Binding.unitCommandEnterPayload, null){{
enterPayloadCommand = new UnitCommand("enterPayload", "downOpen", Binding.unitCommandEnterPayload, u -> new BoostAI()){{
switchToMove = false;
drawTarget = true;
resetTarget = false;
@@ -16,7 +16,6 @@ public class SerpuloTechTree{
Planets.serpulo.techTree = nodeRoot("serpulo", coreShard, () -> {
node(conveyor, () -> {
node(junction, () -> {
node(router, () -> {
node(advancedLaunchPad, Seq.with(new SectorComplete(extractionOutpost)), () -> {
@@ -73,7 +72,6 @@ public class SerpuloTechTree{
});
node(mechanicalDrill, () -> {
node(mechanicalPump, () -> {
node(conduit, () -> {
node(liquidJunction, () -> {
+5 -5
View File
@@ -384,8 +384,8 @@ public class UnitTypes{
bullet = new LightningBulletType(){{
lightningColor = hitColor = Pal.heal;
damage = 14f;
lightningLength = 7;
damage = 15f;
lightningLength = 8;
lightningLengthRand = 7;
shootEffect = Fx.shootHeal;
//Does not actually do anything; Just here to make stats work
@@ -418,13 +418,13 @@ public class UnitTypes{
mechFrontSway = 0.55f;
ammoType = new PowerAmmoType(1500);
speed = 0.4f;
speed = 0.5f;
hitSize = 13f;
mineSpeed = 4f;
drawShields = false;
abilities.add(new ForceFieldAbility(60f, 0.3f, 400f, 60f * 6));
abilities.add(new ForceFieldAbility(60f, 0.4f, 500f, 60f * 6));
weapons.add(new Weapon("beam-weapon"){{
top = false;
@@ -443,7 +443,7 @@ public class UnitTypes{
sideLength = 70f;
healPercent = 10f;
collidesTeam = true;
length = 135f;
length = 150f;
colors = new Color[]{Pal.heal.cpy().a(0.4f), Pal.heal, Color.white};
}};
}});
@@ -40,6 +40,20 @@ public class ContentLoader{
}
}
public ContentLoader copy(){
var result = new ContentLoader();
result.initialization.addAll(initialization);
result.lastAdded = lastAdded;
result.currentMod = currentMod;
result.temporaryMapper = temporaryMapper;
result.nameMap.putAll(nameMap);
for(int i = 0; i < contentMap.length; i++){
result.contentMap[i].addAll(contentMap[i]);
result.contentNameMap[i].putAll(contentNameMap[i]);
}
return result;
}
/** Creates all base types. */
public void createBaseContent(){
UnitCommand.loadAll();
@@ -248,6 +262,10 @@ public class ContentLoader{
return (Seq<T>)contentMap[type.ordinal()];
}
public <T extends Content> ObjectMap<String, T> getNamesBy(ContentType type){
return (ObjectMap<String, T>)contentNameMap[type.ordinal()];
}
//utility methods, just makes things a bit shorter
public Seq<Block> blocks(){
+10 -4
View File
@@ -420,7 +420,10 @@ public class Control implements ApplicationListener, Loadable{
ui.planet.hide();
SaveSlot slot = sector.save;
sector.planet.setLastSector(sector);
if(slot != null && !clearSectors && (!sector.planet.clearSectorOnLose || sector.info.hasCore)){
boolean clearSave = sector.planet.clearSectorOnLose || sector.planet.campaignRules.clearSectorOnLose;
if(slot != null && !clearSectors && (!clearSave || sector.info.hasCore)){
try{
boolean hadNoCore = !sector.info.hasCore;
@@ -435,7 +438,7 @@ public class Control implements ApplicationListener, Loadable{
if(state.rules.defaultTeam.cores().isEmpty() || hadNoCore){
//don't carry over the spawn position and plans if the sector preset name or map size changed
if(sector.planet.clearSectorOnLose || sector.info.spawnPosition == 0 || !sector.info.sectorDataMatches(sector)){
if(clearSave || sector.info.spawnPosition == 0 || !sector.info.sectorDataMatches(sector)){
playNewSector(origin, sector, reloader);
}else{
int spawnPos = sector.info.spawnPosition;
@@ -499,8 +502,10 @@ public class Control implements ApplicationListener, Loadable{
}
});
//blocks placed after WorldLoadEvent didn't queue an update, so fix that.
renderer.minimap.updateAll();
Core.app.post(() -> {
//blocks placed after WorldLoadEvent didn't queue an update, so fix that.
renderer.minimap.updateAll();
});
}
}else{
state.set(State.playing);
@@ -531,6 +536,7 @@ public class Control implements ApplicationListener, Loadable{
state.rules.sector = sector;
sector.info.origin = origin;
sector.info.destination = origin;
sector.info.attempts ++;
if(beforePlay != null){
beforePlay.run();
+3
View File
@@ -6,6 +6,7 @@ import mindustry.game.EventType.*;
import mindustry.game.*;
import mindustry.gen.*;
import mindustry.maps.*;
import mindustry.mod.*;
import mindustry.type.*;
import mindustry.world.blocks.*;
@@ -42,6 +43,8 @@ public class GameState{
public Attributes envAttrs = new Attributes();
/** Team data. Gets reset every new game. */
public Teams teams = new Teams();
/** Handles JSON edits of game content. */
public ContentPatcher patcher = new ContentPatcher();
/** Number of enemies in the game; only used clientside in servers. */
public int enemies;
/** Map being playtested (not edited!) */
+6 -2
View File
@@ -134,10 +134,13 @@ public class Logic implements ApplicationListener{
//enable building AI on campaign unless the preset disables it
state.rules.coreIncinerates = true;
state.rules.infiniteResources = false;
state.rules.allowEditRules = false;
state.rules.allowEditWorldProcessors = false;
state.rules.waveTeam.rules().infiniteResources = true;
state.rules.waveTeam.rules().fillItems = true;
if(state.getPlanet().enemyInfiniteItems){
state.rules.waveTeam.rules().infiniteResources = true;
state.rules.waveTeam.rules().fillItems = true;
}
state.rules.waveTeam.rules().buildSpeedMultiplier *= state.getPlanet().enemyBuildSpeedMultiplier;
}
@@ -257,6 +260,7 @@ public class Logic implements ApplicationListener{
public void reset(){
State prev = state.getState();
state.patcher.unapply();
//recreate gamestate - sets state to menu
state = new GameState();
//fire change event, since it was technically changed
+6 -1
View File
@@ -25,6 +25,7 @@ import mindustry.game.EventType.*;
import mindustry.gen.*;
import mindustry.graphics.*;
import mindustry.logic.*;
import mindustry.mod.*;
import mindustry.ui.*;
import mindustry.ui.dialogs.*;
import mindustry.ui.fragments.*;
@@ -147,7 +148,7 @@ public class UI implements ApplicationListener, Loadable{
@Override
public Seq<AssetDescriptor> getDependencies(){
return Seq.with(new AssetDescriptor<>(Control.class), new AssetDescriptor<>("outline", Font.class), new AssetDescriptor<>("default", Font.class));
return Seq.with(new AssetDescriptor<>(Control.class), new AssetDescriptor<>("outline", Font.class), new AssetDescriptor<>("default", Font.class), new AssetDescriptor<>(Mods.class));
}
@Override
@@ -601,6 +602,10 @@ public class UI implements ApplicationListener, Loadable{
t.update(() -> {
t.setPosition(Core.graphics.getWidth()/2f, Core.graphics.getHeight()/2f, Align.center);
t.toFront();
if(state.isMenu() || !ui.hudfrag.shown){
t.remove();
}
});
t.actions(Actions.fadeOut(duration, Interp.pow4In), Actions.remove());
t.pack();
+5
View File
@@ -3,9 +3,11 @@ package mindustry.ctype;
import arc.files.*;
import arc.util.*;
import mindustry.*;
import mindustry.mod.*;
import mindustry.mod.Mods.*;
/** Base class for a content type that is loaded in {@link mindustry.core.ContentLoader}. */
@NoPatch
public abstract class Content implements Comparable<Content>{
public short id;
/** Info on which mod this content was loaded from. */
@@ -28,6 +30,9 @@ public abstract class Content implements Comparable<Content>{
/** Called after init(). */
public void postInit(){}
/** Called after being patched. */
public void afterPatch(){}
/**
* Called after all content is created, only on non-headless versions.
* Use for loading regions or other image data.
@@ -1,7 +1,9 @@
package mindustry.ctype;
import mindustry.*;
import mindustry.mod.*;
@NoPatch
public abstract class MappableContent extends Content{
public final String name;
@@ -14,6 +14,7 @@ import mindustry.content.TechTree.*;
import mindustry.game.EventType.*;
import mindustry.graphics.*;
import mindustry.graphics.MultiPacker.*;
import mindustry.mod.*;
import mindustry.type.*;
import mindustry.ui.*;
import mindustry.world.meta.*;
@@ -23,6 +24,7 @@ import static mindustry.Vars.*;
/** Base interface for an unlockable content type. */
public abstract class UnlockableContent extends MappableContent{
/** Stat storage for this content. Initialized on demand. */
@NoPatch
public Stats stats = new Stats();
/** Localized, formal name. Never null. Set to internal name if not found in bundle. */
public String localizedName;
@@ -60,10 +62,13 @@ public abstract class UnlockableContent extends MappableContent{
* */
public ObjectSet<UnlockableContent> databaseTabs = new ObjectSet<>();
/** The tech tree node for this content, if applicable. Null if not part of a tech tree. */
@NoPatch
public @Nullable TechNode techNode;
/** Tech nodes for all trees that this content is part of. */
@NoPatch
public Seq<TechNode> techNodes = new Seq<>();
/** Unlock state. Loaded from settings. Do not modify outside the constructor. */
@NoPatch
protected boolean unlocked;
public UnlockableContent(String name){
@@ -95,6 +100,14 @@ public abstract class UnlockableContent extends MappableContent{
uiIcon = Core.atlas.find(getContentType().name() + "-" + name + "-ui", fullIcon);
}
@Override
public void afterPatch(){
super.afterPatch();
//reset stats
stats = new Stats();
}
public boolean isBanned(){
return false;
}
@@ -90,6 +90,9 @@ public class EditorRenderer implements Disposable{
boolean prev = renderer.animateWater;
renderer.animateWater = false;
Tmp.m4.set(Draw.trans());
Draw.trans().idt();
Tmp.v3.set(Core.camera.position);
Core.camera.position.set(world.width()/2f * tilesize, world.height()/2f * tilesize);
Core.camera.width = 999999f;
@@ -144,7 +147,9 @@ public class EditorRenderer implements Disposable{
}
}
Core.camera.position.set(Tmp.v3);
Draw.trans(Tmp.m4);
}
void updateStatic(int x, int y){
@@ -383,6 +383,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
state.rules.allowEditRules = false;
state.rules.objectiveFlags.clear();
state.rules.objectives.each(MapObjective::reset);
state.stats = new GameStats();
String name = editor.tags.get("name", "").trim();
editor.tags.put("rules", JsonIO.write(state.rules));
editor.tags.remove("width");
+12 -1
View File
@@ -20,6 +20,7 @@ public class MapInfoDialog extends BaseDialog{
private MapObjectivesDialog objectives = new MapObjectivesDialog();
private MapLocalesDialog locales = new MapLocalesDialog();
private MapProcessorsDialog processors = new MapProcessorsDialog();
private MapPatchesDialog patches = new MapPatchesDialog();
public MapInfoDialog(){
super("@editor.mapinfo");
@@ -33,7 +34,7 @@ public class MapInfoDialog extends BaseDialog{
cont.clear();
ObjectMap<String, String> tags = editor.tags;
cont.pane(t -> {
t.add("@editor.mapname").padRight(8).left();
t.defaults().padTop(15);
@@ -113,6 +114,16 @@ public class MapInfoDialog extends BaseDialog{
hide();
processors.show();
}).marginLeft(10f);
r.row();
r.button("@editor.patches", Icon.file, style, () -> {
hide();
patches.show();
}).marginLeft(10f);
//empty space
r.add().marginLeft(10f);
}).colspan(2).center();
name.change();
@@ -255,7 +255,12 @@ public class MapObjectivesCanvas extends WidgetGroup{
float dist = Math.abs(x1 - x2) / 2f;
float cx1 = x1 + dist;
float cx2 = x2 - dist;
Lines.curve(x1, y1, cx1, y1, cx2, y2, x2, y2, Math.max(4, (int) (Mathf.dst(x1, y1, x2, y2) / 4f)));
if(Mathf.equal(y1, y2, 0.1f)){
Lines.line(x1, y1, x2, y2);
}else{
Lines.curve(x1, y1, cx1, y1, cx2, y2, x2, y2, Math.max(4, (int) (Mathf.dst(x1, y1, x2, y2) / 4f)));
}
float progress = (Time.time % (60 * 4)) / (60 * 4);
@@ -279,7 +284,7 @@ public class MapObjectivesCanvas extends WidgetGroup{
}
for(var other : children){
if(other instanceof ObjectiveTile tile && tile != ignore && Tmp.r2.set(tile.tx, tile.ty, objWidth, objHeight).overlaps(Tmp.r1)){
if(other instanceof ObjectiveTile tile && tile != ignore && Tmp.r2.set(tile.obj.editorX, tile.obj.editorY, objWidth, objHeight).overlaps(Tmp.r1)){
return false;
}
}
@@ -292,7 +297,11 @@ public class MapObjectivesCanvas extends WidgetGroup{
}
public boolean createTile(int x, int y, MapObjective obj){
if(!validPlace(x, y, null)) return false;
return createTile(x, y, obj, false);
}
public boolean createTile(int x, int y, MapObjective obj, boolean force){
if(!force && !validPlace(x, y, null)) return false;
ObjectiveTile tile = new ObjectiveTile(obj, x, y);
tile.pack();
@@ -331,7 +340,6 @@ public class MapObjectivesCanvas extends WidgetGroup{
public class ObjectiveTile extends Table{
public final MapObjective obj;
public int tx, ty;
public final Mover mover;
public final Connector conParent, conChildren;
@@ -383,8 +391,8 @@ public class MapObjectivesCanvas extends WidgetGroup{
}
public void pos(int x, int y){
tx = obj.editorX = x;
ty = obj.editorY = y;
obj.editorX = x;
obj.editorY = y;
this.x = x * unitSize;
this.y = y * unitSize;
}
@@ -430,8 +438,8 @@ public class MapObjectivesCanvas extends WidgetGroup{
moving = ObjectiveTile.this;
moving.toFront();
prevX = moving.tx;
prevY = moving.ty;
prevX = moving.obj.editorX;
prevY = moving.obj.editorY;
// Convert to world pos first because the button gets dragged too.
Vec2 pos = event.listenerActor.localToStageCoordinates(Tmp.v1.set(x, y));
@@ -545,10 +545,7 @@ public class MapObjectivesDialog extends BaseDialog{
if(
objectives.any() && (
// If the objectives were previously programmatically made...
objectives.contains(obj -> obj.editorX == -1 || obj.editorY == -1) ||
// ... or some idiot somehow made it not work...
objectives.contains(obj -> !canvas.tilemap.createTile(obj))
)){
objectives.contains(obj -> obj.editorX == -999 || obj.editorY == -999))){
// ... then rebuild the structure.
canvas.clearObjectives();
@@ -573,6 +570,8 @@ public class MapObjectivesDialog extends BaseDialog{
if(i >= objectives.size) break loop;
}
}
}else{
objectives.each(o -> canvas.tilemap.createTile(o.editorX, o.editorY, o, true));
}
canvas.objectives.set(objectives);
@@ -0,0 +1,163 @@
package mindustry.editor;
import arc.*;
import arc.func.*;
import arc.scene.ui.TextButton.*;
import arc.scene.ui.layout.*;
import arc.struct.*;
import arc.util.*;
import arc.util.serialization.*;
import mindustry.*;
import mindustry.gen.*;
import mindustry.ui.*;
import mindustry.ui.dialogs.*;
import static mindustry.Vars.*;
public class MapPatchesDialog extends BaseDialog{
private Table list;
public MapPatchesDialog(){
super("@editor.patches");
shown(this::setup);
addCloseButton();
buttons.button("@editor.patches.guide", Icon.link, () -> Core.app.openURI(patchesGuideURL)).size(200, 64f);
buttons.button("@add", Icon.add, () -> showImport(this::addPatch)).size(200f, 64f);
cont.top();
getCell(cont).grow();
cont.pane(t -> list = t);
}
private void setup(){
list.clearChildren();
var patches = state.patcher.patches;
if(patches.isEmpty()){
list.add("@editor.patches.none");
}else{
Table t = list;
t.defaults().pad(4f);
float h = 50f;
for(var patch : patches){
int fields = countFields(patch.json);
if(patch.warnings.size > 0){
t.button(Icon.warning, Styles.graySquarei, iconMed, () -> {
BaseDialog dialog = new BaseDialog("@editor.patches.errors");
dialog.cont.top().pane(p -> {
p.top();
for(var warning : patch.warnings){
p.table(Styles.grayPanel, in -> {
in.add(warning, Styles.monoLabel).grow().wrap();
}).margin(6f).growX().pad(3f).row();
}
}).grow();
dialog.addCloseButton();
dialog.show();
}).size(h);
}else{
t.add().size(h);
}
t.button((patch.name.isEmpty() ? "<unnamed>\n" : "[accent]" + patch.name + "\n") + "[lightgray][[" + Core.bundle.format("editor.patch.fields", fields) + "]", Styles.grayt, () -> {
BaseDialog dialog = new BaseDialog(Core.bundle.format("editor.patch", patch.name.isEmpty() ? "<unnamed>" : patch.name));
dialog.cont.top().pane(p -> {
p.top();
p.table(Styles.grayPanel, in -> {
in.add(patch.patch.replaceAll("\t", " "), Styles.monoLabel).grow().wrap().left().labelAlign(Align.left);
}).margin(6f).growX().pad(5f).row();
}).grow();
dialog.addCloseButton();
dialog.show();
}).size(mobile ? 390f : 450f, h).margin(10f).with(b -> {
b.getLabel().setAlignment(Align.left, Align.left);
});
t.button(Icon.copy, Styles.graySquarei, Vars.iconMed, () -> {
Core.app.setClipboardText(patch.patch);
ui.showInfoFade("@copied");
}).size(h);
t.button(Icon.refresh, Styles.graySquarei, Vars.iconMed, () -> {
showImport(str -> addPatch(str, patches.indexOf(patch)));
}).size(h);
t.button(Icon.trash, Styles.graySquarei, iconMed, () -> {
ui.showConfirm("@editor.patches.delete.confirm", () -> {
patches.remove(patch);
setup();
});
}).size(h);
t.row();
}
}
}
void showImport(Cons<String> handler){
BaseDialog dialog = new BaseDialog("@editor.import");
dialog.cont.pane(p -> {
p.margin(10f);
p.table(Tex.button, t -> {
TextButtonStyle style = Styles.flatt;
t.defaults().size(280f, 60f).left();
t.row();
t.button("@schematic.copy.import", Icon.copy, style, () -> {
dialog.hide();
handler.get(Core.app.getClipboardText());
}).marginLeft(12f).disabled(b -> Core.app.getClipboardText() == null);
t.row();
t.button("@schematic.importfile", Icon.download, style, () -> platform.showMultiFileChooser(file -> {
dialog.hide();
handler.get(file.readString());
}, "json", "hjson", "json5")).marginLeft(12f);
t.row();
});
});
dialog.addCloseButton();
dialog.show();
}
void addPatch(String patch){
addPatch(patch, -1);
}
void addPatch(String patch, int replaceIndex){
var oldPatches = state.patcher.patches.copy();
try{
Jval.read(patch); //validation
Seq<String> patches = state.patcher.patches.map(p -> p.patch);
if(replaceIndex == -1){
patches.add(patch);
}else{
patches.set(replaceIndex, patch);
}
state.patcher.apply(patches);
setup();
}catch(Exception e){
state.patcher.patches.set(oldPatches);
ui.showException("@editor.patches.importerror", e);
}
}
int countFields(JsonValue value){
if(value.isObject() || value.isArray()){
int sum = 0;
for(var child : value){
sum += countFields(child);
}
return Math.max(sum, 1);
}else{
return 1;
}
}
}
+10 -1
View File
@@ -3,6 +3,7 @@ package mindustry.entities;
import arc.math.*;
import arc.math.geom.*;
import arc.util.*;
import mindustry.entities.bullet.*;
import mindustry.gen.*;
/**
@@ -55,13 +56,21 @@ public class Predict{
return intercept(src, dst, 0, 0, v);
}
public static Vec2 intercept(Position src, Position dst, BulletType bullet){
return intercept(src, dst, 0f, 0f, bullet.keepVelocity, bullet.speed);
}
public static Vec2 intercept(Position src, Position dst, float offsetx, float offsety, float v){
return intercept(src, dst, offsetx, offsety, true, v);
}
public static Vec2 intercept(Position src, Position dst, float offsetx, float offsety, boolean useSrcVelocity, float v){
float ddx = 0, ddy = 0;
if(dst instanceof Hitboxc h){
ddx += h.deltaX();
ddy += h.deltaY();
}
if(src instanceof Hitboxc h){
if(src instanceof Hitboxc h && useSrcVelocity){
ddx -= h.deltaX();
ddy -= h.deltaY();
}
@@ -144,6 +144,8 @@ public class EnergyFieldAbility extends Ability{
all.sort(h -> h.dst2(rx, ry));
int len = Math.min(all.size, maxTargets);
float scaledDamage = damage * state.rules.unitDamage(unit.team) * unit.damageMultiplier;
for(int i = 0; i < len; i++){
Healthc other = all.get(i);
@@ -169,9 +171,9 @@ public class EnergyFieldAbility extends Ability{
}else{
anyNearby = true;
if(other instanceof Building b){
b.damage(unit.team, damage * state.rules.unitDamage(unit.team));
b.damage(unit.team, scaledDamage);
}else{
other.damage(damage * state.rules.unitDamage(unit.team));
other.damage(scaledDamage);
}
if(other instanceof Statusc s){
s.apply(status, statusDuration);
@@ -49,7 +49,7 @@ public class ShieldArcAbility extends Ability{
b.absorb();
Fx.absorb.at(b);
}
// break shield
if(paramField.data <= b.damage()){
paramField.data -= paramField.cooldown * paramField.regen;
@@ -69,7 +69,7 @@ public class ShieldArcAbility extends Ability{
!(unit.within(paramPos, paramField.radius - paramField.width) && paramPos.within(unit.x - unit.deltaX, unit.y - unit.deltaY, paramField.radius - paramField.width)) &&
(Tmp.v1.set(unit).add(unit.deltaX, unit.deltaY).within(paramPos, paramField.radius + paramField.width) || unit.within(paramPos, paramField.radius + paramField.width)) &&
(Angles.within(paramPos.angleTo(unit), paramUnit.rotation + paramField.angleOffset, paramField.angle / 2f) || Angles.within(paramPos.angleTo(unit.x + unit.deltaX, unit.y + unit.deltaY), paramUnit.rotation + paramField.angleOffset, paramField.angle / 2f))){
if(unit.isMissile() && unit.killable() && paramField.missileUnitMultiplier >= 0f){
unit.remove();
@@ -77,17 +77,17 @@ public class ShieldArcAbility extends Ability{
unit.type.deathExplosionEffect.at(unit);
Fx.absorb.at(unit);
Fx.circleColorSpark.at(unit.x, unit.y,paramUnit.team.color);
// consider missile hp and gamerule to damage the shield
paramField.data -= unit.health() * paramField.missileUnitMultiplier * Vars.state.rules.unitDamage(unit.team);
paramField.alpha = 1f;
}else{
}else if(paramField.pushUnits && !(!unit.isFlying() && paramUnit.isFlying())){
float reach = paramField.radius + paramField.width;
float overlapDst = reach - unit.dst(paramPos.x,paramPos.y);
if(overlapDst>0){
if(overlapDst > 0){
//stop
unit.vel.setZero();
// get out
@@ -132,6 +132,8 @@ public class ShieldArcAbility extends Ability{
public @Nullable Color color;
/** If true, sprite position will be influenced by x/y. */
public boolean offsetRegion = false;
/** If true, enemy units are pushed out. */
public boolean pushUnits = true;
/** State. */
protected float widthScale, alpha;
@@ -727,6 +727,10 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
}
public boolean allowDeposit(){
return block.alwaysAllowDeposit || !state.rules.onlyDepositCore;
}
/** Called when this block is dropped as a payload. */
public void dropped(){
@@ -111,7 +111,7 @@ public class AIController implements UnitController{
public void faceTarget(){
if(unit.type.omniMovement || unit instanceof Mechc){
if(!Units.invalidateTarget(target, unit, unit.range()) && unit.type.faceTarget && unit.type.hasWeapons()){
unit.lookAt(Predict.intercept(unit, target, unit.type.weapons.first().bullet.speed));
unit.lookAt(Predict.intercept(unit, target, unit.type.weapons.first().bullet));
}else if(unit.moving()){
unit.lookAt(unit.vel().angle());
}
@@ -218,7 +218,7 @@ public class AIController implements UnitController{
shoot = bomberTarget != null;
}
Vec2 to = Predict.intercept(unit, mount.target, weapon.bullet.speed);
Vec2 to = Predict.intercept(unit, mount.target, weapon.bullet);
mount.aimX = to.x;
mount.aimY = to.y;
}
@@ -12,6 +12,7 @@ public class CampaignRules{
public boolean randomWaveAI;
public boolean legacyLaunchPads;
public boolean rtsAI;
public boolean clearSectorOnLose;
public void apply(Planet planet, Rules rules){
rules.staticFog = rules.fog = fog;
+10
View File
@@ -1,6 +1,7 @@
package mindustry.game;
import arc.math.geom.*;
import arc.struct.*;
import arc.util.*;
import mindustry.core.GameState.*;
import mindustry.ctype.*;
@@ -102,6 +103,15 @@ public class EventType{
/** Called when a game begins and the world tiles are initiated. About to updates tile proximity and sets up physics for the world(Before WorldLoadEvent) */
public static class WorldLoadEndEvent{}
/** Called when a save loads custom patches. {@link #patches} can be modified in the event handler. */
public static class ContentPatchLoadEvent{
public final Seq<String> patches;
public ContentPatchLoadEvent(Seq<String> patches){
this.patches = patches;
}
}
public static class SaveLoadEvent{
public final boolean isMap;
-2
View File
@@ -19,8 +19,6 @@ public enum Gamemode{
}),
attack(rules -> {
rules.attackMode = true;
//TODO waves is now a bad idea
//rules.waves = true;
rules.waveTimer = true;
rules.waveSpacing = 2f * Time.toMinutes;
+1 -1
View File
@@ -185,7 +185,7 @@ public class MapObjectives implements Iterable<MapObjective>, Eachable<MapObject
private transient final Seq<MapObjective> children = new Seq<>(2);
/** For the objectives UI dialog. Do not modify directly! */
public transient int editorX = -1, editorY = -1;
public transient int editorX = -999, editorY = -999;
/** Whether this objective has been done yet. This is internally set. */
private boolean completed;
+3 -1
View File
@@ -59,6 +59,8 @@ public class SectorInfo{
public boolean attack = false;
/** Whether this sector has any enemy spawns. */
public boolean hasSpawns = true;
/** How many times the player has tried to land at this sector with a fresh core. */
public int attempts;
/** Wave # from state */
public int wave = 1, winWave = -1;
/** Waves this sector can survive if under attack. Based on wave in info. <0 means uncalculated. */
@@ -108,7 +110,7 @@ public class SectorInfo{
/** @return whether the sector was last saved with the same preset. if false, this means the preset changed, and thus the spawn/plan data should be discarded. */
public boolean sectorDataMatches(Sector sector){
if(sector.preset != null && (sector.preset.generator.map.width != lastWidth || sector.preset.generator.map.width != lastHeight)){
if(sector.preset != null && (sector.preset.generator.map.width != lastWidth || sector.preset.generator.map.height != lastHeight)){
return false;
}
return Structs.eq(sector.preset == null ? null : sector.preset.name, lastPresetName);
@@ -257,6 +257,7 @@ public class BlockRenderer{
if(other != null){
darkEvents.add(other.pos());
floor.recacheTile(other);
renderer.minimap.updatePixel(other);
}
}
}
+1 -1
View File
@@ -110,7 +110,7 @@ public final class FogRenderer{
dynamicFog.getTexture().setFilter(TextureFilter.linear);
Draw.shader(Shaders.fog);
Draw.color(state.rules.dynamicColor, 0.5f);
Draw.color(state.rules.dynamicColor, Float.isNaN(state.rules.dynamicColor.a) ? 0.5f : Math.max(0.5f, state.rules.dynamicColor.a));
Draw.fbo(dynamicFog.getTexture(), world.width(), world.height(), tilesize);
//TODO ai check?
if(state.rules.staticFog){
@@ -195,7 +195,7 @@ public class MinimapRenderer{
float wf = world.width() * tilesize;
float hf = world.height() * tilesize;
Draw.color(state.rules.dynamicColor, 0.5f);
Draw.color(state.rules.dynamicColor, Float.isNaN(state.rules.dynamicColor.a) ? 0.5f : Math.max(0.5f, state.rules.dynamicColor.a));
Draw.rect(Tmp.tr1, wf / 2, hf / 2, wf, hf);
if(state.rules.staticFog){
@@ -309,6 +309,7 @@ public class MinimapRenderer{
}
public void updateAll(){
if(pixmap.isDisposed() || texture.isDisposed()) return;
for(Tile tile : world.tiles){
pixmap.set(tile.x, pixmap.height - 1 - tile.y, colorFor(tile));
}
@@ -336,7 +337,7 @@ public class MinimapRenderer{
updatePixel(tile);
}
void updatePixel(Tile tile){
public void updatePixel(Tile tile){
updates.add(tile.pos());
}
@@ -246,7 +246,7 @@ public class OverlayRenderer{
if(input.canDropItem() && build != null && build.interactable(player.team()) && build.acceptStack(player.unit().item(), player.unit().stack.amount, player.unit()) > 0 && player.within(build, itemTransferRange) &&
input.itemDepositCooldown <= 0f){
boolean invalid = (state.rules.onlyDepositCore && !(build instanceof CoreBuild));
boolean invalid = !build.allowDeposit();
Lines.stroke(3f, Pal.gray);
Lines.square(build.x, build.y, build.block.size * tilesize / 2f + 3 + Mathf.absin(Time.time, 5f, 1f));
+3 -1
View File
@@ -33,7 +33,7 @@ public class Shaders{
public static AtmosphereShader atmosphere;
public static ShockwaveShader shockwave;
public static MeshShader mesh;
public static Shader unlit;
public static Shader unlit, unlitWhite;
public static Shader screenspace;
public static void init(){
@@ -70,6 +70,7 @@ public class Shaders{
planetGrid = new PlanetGridShader();
atmosphere = new AtmosphereShader();
unlit = new LoadShader("planet", "unlit");
unlitWhite = new LoadShader("planet", "unlitwhite");
screenspace = new LoadShader("screenspace", "screenspace");
//disabled for now...
@@ -144,6 +145,7 @@ public class Shaders{
camDir.set(renderer.planets.cam.direction).rotate(Vec3.Y, planet.getRotation());
setUniformf("u_alpha", alpha);
setUniformf("u_emissive", 0f);
setUniformf("u_lightdir", lightDir);
setUniformf("u_ambientColor", ambientColor.r, ambientColor.g, ambientColor.b);
}
@@ -15,7 +15,7 @@ public class MeshBuilder{
public static Mesh buildIcosphere(int divisions, float radius){
MeshResult result = Icosphere.create(divisions);
Mesh mesh = begin(result.vertices.size / 3, result.indices.size, false, false);
Mesh mesh = begin(result.vertices.size / 3, result.indices.size, false, false, false);
if(result.vertices.size >= 65535) throw new RuntimeException("Due to index size limits, only meshes with a maximum of 65535 vertices are supported. If you want more than that, make your own non-indexed mesh builder.");
@@ -193,6 +193,10 @@ public class MeshBuilder{
}
private static Mesh begin(int vertices, int indices, boolean normal, boolean emissive){
return begin(vertices, indices, normal, emissive, true);
}
private static Mesh begin(int vertices, int indices, boolean normal, boolean emissive, boolean color){
Seq<VertexAttribute> attributes = Seq.with(
VertexAttribute.position3
);
@@ -202,7 +206,9 @@ public class MeshBuilder{
attributes.add(packNormals ? VertexAttribute.packedNormal : VertexAttribute.normal);
}
attributes.add(VertexAttribute.color);
if(color){
attributes.add(VertexAttribute.color);
}
if(emissive){
attributes.add(new VertexAttribute(4, GL20.GL_UNSIGNED_BYTE, true, "a_emissive"));
@@ -269,8 +275,8 @@ public class MeshBuilder{
if(floats.length > 5) floats[5] = emissive;
}else{
floats[3] = normal.x;
floats[4] = normal.x;
floats[5] = normal.x;
floats[4] = normal.y;
floats[5] = normal.z;
floats[6] = color;
if(floats.length > 7) floats[7] = emissive;
+3 -3
View File
@@ -452,7 +452,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
@Remote(targets = Loc.both, forward = true, called = Loc.server)
public static void transferInventory(Player player, Building build){
if(player == null || build == null || !player.within(build, itemTransferRange) || build.items == null || player.dead() || (state.rules.onlyDepositCore && !(build instanceof CoreBuild))) return;
if(player == null || build == null || !player.within(build, itemTransferRange) || build.items == null || player.dead() || !build.allowDeposit()) return;
if(net.server() && (player.unit().stack.amount <= 0 || !Units.canInteract(player, build) ||
//to avoid rejecting deposit packets that happen to overlap due to packet speed differences, the actual cap is double the cooldown with 2 deposits.
@@ -2089,7 +2089,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
if(build != null && build.acceptStack(stack.item, stack.amount, player.unit()) > 0 && build.interactable(player.team()) &&
build.block.hasItems && player.unit().stack().amount > 0 && build.interactable(player.team())){
if(!(state.rules.onlyDepositCore && !(build instanceof CoreBuild)) && itemDepositCooldown <= 0f){
if(build.allowDeposit() && itemDepositCooldown <= 0f){
Call.transferInventory(player, build);
itemDepositCooldown = state.rules.itemDepositCooldown;
}
@@ -2254,7 +2254,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
Point2 next = i == points.size - 1 ? null : points.get(i + 1);
line.x = point.x;
line.y = point.y;
if(!overrideLineRotation || diagonal){
if((!overrideLineRotation || diagonal) && !(block != null && block.ignoreLineRotation)){
int result = baseRotation;
if(next != null){
result = Tile.relativeTo(point.x, point.y, next.x, next.y);
+1 -2
View File
@@ -1003,7 +1003,6 @@ public class MobileInput extends InputHandler implements GestureListener{
float attractDst = 15f;
float speed = unit.speed();
float range = unit.hasWeapons() ? unit.range() : 0f;
float bulletSpeed = unit.hasWeapons() ? type.weapons.first().bullet.speed : 0f;
float mouseAngle = unit.angleTo(unit.aimX(), unit.aimY());
boolean aimCursor = omni && player.shooting && type.hasWeapons() && !boosted && type.faceTarget;
@@ -1081,7 +1080,7 @@ public class MobileInput extends InputHandler implements GestureListener{
//this may be a bad idea, aiming for a point far in front could work better, test it out
unit.aim(Core.input.mouseWorldX(), Core.input.mouseWorldY());
}else{
Vec2 intercept = player.unit().type.weapons.contains(w -> w.predictTarget) ? Predict.intercept(unit, target, bulletSpeed) : Tmp.v1.set(target);
Vec2 intercept = player.unit().type.weapons.contains(w -> w.predictTarget) ? Predict.intercept(unit, target, type.weapons.first().bullet) : Tmp.v1.set(target);
player.mouseX = intercept.x;
player.mouseY = intercept.y;
+1
View File
@@ -97,6 +97,7 @@ public class MapIO{
};
ver.readRegion("content", stream, counter, ver::readContentHeader);
if(ver.version >= 11) ver.readRegion("content", stream, counter, ver::skipContentPatches);
ver.readRegion("preview_map", stream, counter, in -> ver.readMap(in, new WorldContext(){
@Override public void resize(int width, int height){}
@Override public boolean isGenerating(){return false;}
+1 -2
View File
@@ -20,8 +20,7 @@ public class SaveIO{
/** Save format header. */
public static final byte[] header = {'M', 'S', 'A', 'V'};
public static final IntMap<SaveVersion> versions = new IntMap<>();
public static final Seq<SaveVersion> versionArray = Seq.with(new Save1(), new Save2(), new Save3(), new Save4(), new Save5(), new Save6(), new Save7(), new Save8(), new Save9(), new Save10());
public static final Seq<SaveVersion> versionArray = Seq.with(new Save1(), new Save2(), new Save3(), new Save4(), new Save5(), new Save6(), new Save7(), new Save8(), new Save9(), new Save10(), new Save11());
static{
for(SaveVersion version : versionArray){
versions.put(version.version, version);
+65 -1
View File
@@ -12,6 +12,7 @@ import mindustry.core.*;
import mindustry.ctype.*;
import mindustry.entities.*;
import mindustry.game.*;
import mindustry.game.EventType.*;
import mindustry.game.Teams.*;
import mindustry.gen.*;
import mindustry.maps.Map;
@@ -67,6 +68,7 @@ public abstract class SaveVersion extends SaveFileReader{
readRegion("content", stream, counter, this::readContentHeader);
try{
if(version >= 11) readRegion("patches", stream, counter, this::readContentPatches);
readRegion("map", stream, counter, in -> readMap(in, context));
readRegion("entities", stream, counter, this::readEntities);
if(version >= 8) readRegion("markers", stream, counter, this::readMarkers);
@@ -79,6 +81,7 @@ public abstract class SaveVersion extends SaveFileReader{
public void write(DataOutputStream stream, StringMap extraTags) throws IOException{
writeRegion("meta", stream, out -> writeMeta(out, extraTags));
writeRegion("content", stream, this::writeContentHeader);
writeRegion("patches", stream, this::writeContentPatches);
writeRegion("map", stream, this::writeMap);
writeRegion("entities", stream, this::writeEntities);
writeRegion("markers", stream, this::writeMarkers);
@@ -502,8 +505,54 @@ public abstract class SaveVersion extends SaveFileReader{
readWorldEntities(stream, mapping);
}
public void skipContentPatches(DataInput stream) throws IOException{
int amount = stream.readUnsignedByte();
for(int i = 0; i < amount; i++){
int len = stream.readInt();
stream.skipBytes(len);
}
}
public void readContentPatches(DataInput stream) throws IOException{
Seq<String> patches = new Seq<>();
int amount = stream.readUnsignedByte();
if(amount > 0){
for(int i = 0; i < amount; i++){
int len = stream.readInt();
byte[] bytes = new byte[len];
stream.readFully(bytes);
patches.add(new String(bytes, Strings.utf8));
}
}
Events.fire(new ContentPatchLoadEvent(patches));
if(patches.size > 0){
try{
state.patcher.apply(patches);
}catch(Throwable e){
Log.err("Failed to apply patches: " + patches, e);
}
}
}
public void writeContentPatches(DataOutput stream) throws IOException{
if(state.patcher.patches.size > 0){
var patches = state.patcher.patches;
stream.writeByte(patches.size);
for(var patchset : patches){
byte[] bytes = patchset.patch.getBytes(Strings.utf8);
stream.writeInt(bytes.length);
stream.write(bytes);
}
}else{
stream.writeByte(0);
}
}
public void readContentHeader(DataInput stream) throws IOException{
byte mapped = stream.readByte();
int mapped = stream.readUnsignedByte();
MappableContent[][] map = new MappableContent[ContentType.all.length][0];
@@ -520,6 +569,21 @@ public abstract class SaveVersion extends SaveFileReader{
}
content.setTemporaryMapper(map);
//HACK: versions below 11 don't read the patch chunk, which means the event for reading patches is never triggered.
//manually fire the event here for older versions.
if(version < 11){
Seq<String> patches = new Seq<>();
Events.fire(new ContentPatchLoadEvent(patches));
if(patches.size > 0){
try{
state.patcher.apply(patches);
}catch(Throwable e){
Log.err("Failed to apply patches: " + patches, e);
}
}
}
}
public void writeContentHeader(DataOutput stream) throws IOException{
@@ -0,0 +1,11 @@
package mindustry.io.versions;
import mindustry.io.*;
/** Adds patches in content header. */
public class Save11 extends SaveVersion{
public Save11(){
super(11);
}
}
+10
View File
@@ -131,6 +131,10 @@ public class LCanvas extends Table{
statements.addChild(new StatementElem(statement));
}
public void addAt(int at, LStatement statement){
statements.addChildAt(at, new StatementElem(statement));
}
public String save(){
Seq<LStatement> st = statements.getChildren().<StatementElem>as().map(s -> s.st);
st.each(LStatement::saveUI);
@@ -433,6 +437,10 @@ public class LCanvas extends Table{
addressLabel = t.add(index + "").style(Styles.outlineLabel).color(color).padRight(8).get();
//taken from foo's client
t.button(Icon.add, Styles.logici, () -> Vars.ui.logic.showAddDialog(statements.insertPosition + 1))
.disabled(b -> canvas.statements.getChildren().size >= LExecutor.maxInstructions).size(24f).padRight(6);
t.button(Icon.copy, Styles.logici, () -> {
}).size(24f).padRight(6).get().tapped(this::copy);
@@ -447,6 +455,8 @@ public class LCanvas extends Table{
@Override
public boolean touchDown(InputEvent event, float x, float y, int pointer, KeyCode button){
//don't start dragging when pressing the menu buttons
if(event.targetActor instanceof Image) return false;
if(button == KeyCode.mouseMiddle){
copy();
+2 -2
View File
@@ -463,7 +463,7 @@ public class LExecutor{
}else{
Building build = p1.building();
int dropped = Math.min(unit.stack.amount, p2.numi());
if(build != null && build.team == unit.team && build.isValid() && dropped > 0 && unit.within(build, logicItemTransferRange + build.block.size * tilesize/2f)){
if(build != null && build.team == unit.team && build.isValid() && build.allowDeposit() && dropped > 0 && unit.within(build, logicItemTransferRange + build.block.size * tilesize/2f)){
int accepted = build.acceptStack(unit.item(), dropped, unit);
if(accepted > 0){
Call.transferItemTo(unit, unit.item(), accepted, unit.x, unit.y, build);
@@ -1689,7 +1689,7 @@ public class LExecutor{
return;
}
String text = exec.textBuffer.toString();
String text = UI.formatIcons(exec.textBuffer.toString());
if(text.startsWith("@")){
String substr = text.substring(1);
if(Core.bundle.has(substr)){

Some files were not shown because too many files have changed in this diff Show More